aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/Kconfig2
-rw-r--r--arch/alpha/include/asm/pci.h13
-rw-r--r--arch/alpha/mm/fault.c2
-rw-r--r--arch/arm/Kconfig6
-rw-r--r--arch/arm/boot/compressed/head.S9
-rw-r--r--arch/arm/common/gic.c2
-rw-r--r--arch/arm/common/vic.c8
-rw-r--r--arch/arm/configs/mini2440_defconfig2097
-rw-r--r--arch/arm/include/asm/pci.h13
-rw-r--r--arch/arm/include/asm/unistd.h2
-rw-r--r--arch/arm/kernel/calls.S2
-rw-r--r--arch/arm/kernel/irq.c6
-rw-r--r--arch/arm/kernel/process.c77
-rw-r--r--arch/arm/kernel/unwind.c19
-rw-r--r--arch/arm/kernel/vmlinux.lds.S8
-rw-r--r--arch/arm/mach-davinci/include/mach/nand.h8
-rw-r--r--arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h42
-rw-r--r--arch/arm/mach-omap2/clock.c2
-rw-r--r--arch/arm/mach-omap2/clock34xx.c42
-rw-r--r--arch/arm/mach-omap2/io.c36
-rw-r--r--arch/arm/mach-omap2/powerdomain.c2
-rw-r--r--arch/arm/mach-omap2/sram34xx.S129
-rw-r--r--arch/arm/mach-orion5x/addr-map.c2
-rw-r--r--arch/arm/mach-orion5x/common.c10
-rw-r--r--arch/arm/mach-orion5x/common.h1
-rw-r--r--arch/arm/mach-pxa/Kconfig10
-rw-r--r--arch/arm/mach-pxa/Makefile1
-rw-r--r--arch/arm/mach-pxa/corgi.c6
-rw-r--r--arch/arm/mach-pxa/em-x270.c63
-rw-r--r--arch/arm/mach-pxa/hx4700.c41
-rw-r--r--arch/arm/mach-pxa/include/mach/palmz72.h5
-rw-r--r--arch/arm/mach-pxa/include/mach/treo680.h49
-rw-r--r--arch/arm/mach-pxa/mioa701.c42
-rw-r--r--arch/arm/mach-pxa/palmz72.c65
-rw-r--r--arch/arm/mach-pxa/poodle.c6
-rw-r--r--arch/arm/mach-pxa/treo680.c612
-rw-r--r--arch/arm/mach-realview/realview_pbx.c1
-rw-r--r--arch/arm/mach-s3c2410/usb-simtec.c1
-rw-r--r--arch/arm/mach-s3c2440/Kconfig10
-rw-r--r--arch/arm/mach-s3c2440/Makefile1
-rw-r--r--arch/arm/mach-s3c2440/mach-mini2440.c703
-rw-r--r--arch/arm/mach-s3c2442/Kconfig12
-rw-r--r--arch/arm/mach-s3c2442/Makefile2
-rw-r--r--arch/arm/mach-s3c2442/include/mach/gta02.h84
-rw-r--r--arch/arm/mach-s3c2442/mach-gta02.c646
-rw-r--r--arch/arm/mm/alignment.c139
-rw-r--r--arch/arm/mm/fault.c2
-rw-r--r--arch/arm/mm/mmu.c7
-rw-r--r--arch/arm/plat-omap/include/mach/sram.h6
-rw-r--r--arch/arm/plat-omap/sram.c8
-rw-r--r--arch/arm/plat-s3c/Makefile1
-rw-r--r--arch/arm/plat-s3c/dev-audio.c68
-rw-r--r--arch/arm/plat-s3c/gpio-config.c2
-rw-r--r--arch/arm/plat-s3c/include/plat/devs.h5
-rw-r--r--arch/arm/plat-s3c/include/plat/nand.h31
-rw-r--r--arch/arm/plat-s3c64xx/Makefile1
-rw-r--r--arch/arm/plat-s3c64xx/clock.c2
-rw-r--r--arch/arm/plat-s3c64xx/cpufreq.c262
-rw-r--r--arch/arm/plat-s3c64xx/gpiolib.c6
-rw-r--r--arch/arm/plat-s3c64xx/include/plat/regs-clock.h10
-rw-r--r--arch/arm/tools/mach-types39
-rw-r--r--arch/avr32/kernel/process.c2
-rw-r--r--arch/avr32/mm/fault.c2
-rw-r--r--arch/blackfin/Kconfig68
-rw-r--r--arch/blackfin/boot/Makefile2
-rw-r--r--arch/blackfin/configs/BF518F-EZBRD_defconfig24
-rw-r--r--arch/blackfin/configs/BF526-EZBRD_defconfig22
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig22
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig25
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig22
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig22
-rw-r--r--arch/blackfin/configs/BF538-EZKIT_defconfig22
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig27
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig27
-rw-r--r--arch/blackfin/configs/BlackStamp_defconfig12
-rw-r--r--arch/blackfin/configs/CM-BF527_defconfig22
-rw-r--r--arch/blackfin/configs/CM-BF533_defconfig23
-rw-r--r--arch/blackfin/configs/CM-BF537E_defconfig22
-rw-r--r--arch/blackfin/configs/CM-BF537U_defconfig23
-rw-r--r--arch/blackfin/configs/CM-BF548_defconfig25
-rw-r--r--arch/blackfin/configs/CM-BF561_defconfig25
-rw-r--r--arch/blackfin/configs/H8606_defconfig14
-rw-r--r--arch/blackfin/configs/PNAV-10_defconfig20
-rw-r--r--arch/blackfin/configs/SRV1_defconfig14
-rw-r--r--arch/blackfin/configs/TCM-BF537_defconfig14
-rw-r--r--arch/blackfin/include/asm/atomic.h109
-rw-r--r--arch/blackfin/include/asm/auxvec.h5
-rw-r--r--arch/blackfin/include/asm/bitops.h198
-rw-r--r--arch/blackfin/include/asm/blackfin.h1
-rw-r--r--arch/blackfin/include/asm/bugs.h17
-rw-r--r--arch/blackfin/include/asm/cache.h4
-rw-r--r--arch/blackfin/include/asm/cacheflush.h10
-rw-r--r--arch/blackfin/include/asm/cplb.h32
-rw-r--r--arch/blackfin/include/asm/cputime.h5
-rw-r--r--arch/blackfin/include/asm/current.h24
-rw-r--r--arch/blackfin/include/asm/device.h6
-rw-r--r--arch/blackfin/include/asm/dma-mapping.h13
-rw-r--r--arch/blackfin/include/asm/elf.h2
-rw-r--r--arch/blackfin/include/asm/emergency-restart.h5
-rw-r--r--arch/blackfin/include/asm/errno.h7
-rw-r--r--arch/blackfin/include/asm/fb.h13
-rw-r--r--arch/blackfin/include/asm/futex.h5
-rw-r--r--arch/blackfin/include/asm/hardirq.h42
-rw-r--r--arch/blackfin/include/asm/hw_irq.h7
-rw-r--r--arch/blackfin/include/asm/io.h1
-rw-r--r--arch/blackfin/include/asm/ioctls.h84
-rw-r--r--arch/blackfin/include/asm/ipcbuf.h31
-rw-r--r--arch/blackfin/include/asm/ipipe.h11
-rw-r--r--arch/blackfin/include/asm/ipipe_base.h30
-rw-r--r--arch/blackfin/include/asm/irq.h12
-rw-r--r--arch/blackfin/include/asm/irqflags.h164
-rw-r--r--arch/blackfin/include/asm/kmap_types.h5
-rw-r--r--arch/blackfin/include/asm/local.h5
-rw-r--r--arch/blackfin/include/asm/mem_init.h88
-rw-r--r--arch/blackfin/include/asm/mem_map.h97
-rw-r--r--arch/blackfin/include/asm/mman.h44
-rw-r--r--arch/blackfin/include/asm/msgbuf.h32
-rw-r--r--arch/blackfin/include/asm/mutex.h2
-rw-r--r--arch/blackfin/include/asm/page.h85
-rw-r--r--arch/blackfin/include/asm/param.h23
-rw-r--r--arch/blackfin/include/asm/percpu.h5
-rw-r--r--arch/blackfin/include/asm/pgalloc.h9
-rw-r--r--arch/blackfin/include/asm/poll.h21
-rw-r--r--arch/blackfin/include/asm/posix_types.h56
-rw-r--r--arch/blackfin/include/asm/processor.h35
-rw-r--r--arch/blackfin/include/asm/resource.h5
-rw-r--r--arch/blackfin/include/asm/sembuf.h26
-rw-r--r--arch/blackfin/include/asm/serial.h6
-rw-r--r--arch/blackfin/include/asm/setup.h18
-rw-r--r--arch/blackfin/include/asm/shmbuf.h43
-rw-r--r--arch/blackfin/include/asm/shmparam.h7
-rw-r--r--arch/blackfin/include/asm/signal.h159
-rw-r--r--arch/blackfin/include/asm/socket.h60
-rw-r--r--arch/blackfin/include/asm/sockios.h14
-rw-r--r--arch/blackfin/include/asm/spinlock.h6
-rw-r--r--arch/blackfin/include/asm/statfs.h5
-rw-r--r--arch/blackfin/include/asm/swab.h6
-rw-r--r--arch/blackfin/include/asm/system.h4
-rw-r--r--arch/blackfin/include/asm/termbits.h199
-rw-r--r--arch/blackfin/include/asm/termios.h95
-rw-r--r--arch/blackfin/include/asm/tlbflush.h57
-rw-r--r--arch/blackfin/include/asm/topology.h5
-rw-r--r--arch/blackfin/include/asm/traps.h4
-rw-r--r--arch/blackfin/include/asm/types.h37
-rw-r--r--arch/blackfin/include/asm/uaccess.h22
-rw-r--r--arch/blackfin/include/asm/ucontext.h18
-rw-r--r--arch/blackfin/include/asm/unaligned.h12
-rw-r--r--arch/blackfin/include/asm/unistd.h3
-rw-r--r--arch/blackfin/include/asm/user.h90
-rw-r--r--arch/blackfin/kernel/Makefile1
-rw-r--r--arch/blackfin/kernel/bfin_ksyms.c1
-rw-r--r--arch/blackfin/kernel/cplb-mpu/cplbinit.c10
-rw-r--r--arch/blackfin/kernel/cplb-mpu/cplbmgr.c36
-rw-r--r--arch/blackfin/kernel/ipipe.c7
-rw-r--r--arch/blackfin/kernel/irqchip.c114
-rw-r--r--arch/blackfin/kernel/kgdb.c297
-rw-r--r--arch/blackfin/kernel/mcount.S70
-rw-r--r--arch/blackfin/kernel/process.c174
-rw-r--r--arch/blackfin/kernel/setup.c122
-rw-r--r--arch/blackfin/kernel/traps.c60
-rw-r--r--arch/blackfin/mach-bf518/boards/ezbrd.c16
-rw-r--r--arch/blackfin/mach-bf518/include/mach/anomaly.h37
-rw-r--r--arch/blackfin/mach-bf518/include/mach/blackfin.h1
-rw-r--r--arch/blackfin/mach-bf518/include/mach/mem_map.h56
-rw-r--r--arch/blackfin/mach-bf527/boards/cm_bf527.c1
-rw-r--r--arch/blackfin/mach-bf527/boards/ezbrd.c4
-rw-r--r--arch/blackfin/mach-bf527/boards/ezkit.c1
-rw-r--r--arch/blackfin/mach-bf527/include/mach/anomaly.h15
-rw-r--r--arch/blackfin/mach-bf527/include/mach/blackfin.h1
-rw-r--r--arch/blackfin/mach-bf527/include/mach/mem_map.h56
-rw-r--r--arch/blackfin/mach-bf533/boards/ezkit.c106
-rw-r--r--arch/blackfin/mach-bf533/include/mach/anomaly.h77
-rw-r--r--arch/blackfin/mach-bf533/include/mach/blackfin.h1
-rw-r--r--arch/blackfin/mach-bf533/include/mach/mem_map.h56
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c1
-rw-r--r--arch/blackfin/mach-bf537/include/mach/anomaly.h41
-rw-r--r--arch/blackfin/mach-bf537/include/mach/blackfin.h1
-rw-r--r--arch/blackfin/mach-bf537/include/mach/mem_map.h56
-rw-r--r--arch/blackfin/mach-bf538/include/mach/anomaly.h24
-rw-r--r--arch/blackfin/mach-bf538/include/mach/blackfin.h1
-rw-r--r--arch/blackfin/mach-bf538/include/mach/mem_map.h57
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c1
-rw-r--r--arch/blackfin/mach-bf548/include/mach/anomaly.h20
-rw-r--r--arch/blackfin/mach-bf548/include/mach/blackfin.h1
-rw-r--r--arch/blackfin/mach-bf548/include/mach/mem_map.h51
-rw-r--r--arch/blackfin/mach-bf561/boards/ezkit.c1
-rw-r--r--arch/blackfin/mach-bf561/include/mach/anomaly.h89
-rw-r--r--arch/blackfin/mach-bf561/include/mach/blackfin.h1
-rw-r--r--arch/blackfin/mach-bf561/include/mach/mem_map.h58
-rw-r--r--arch/blackfin/mach-common/Makefile3
-rw-r--r--arch/blackfin/mach-common/arch_checks.c4
-rw-r--r--arch/blackfin/mach-common/cpufreq.c2
-rw-r--r--arch/blackfin/mach-common/entry.S1
-rw-r--r--arch/blackfin/mach-common/ints-priority.c51
-rw-r--r--arch/blackfin/mach-common/irqpanic.c11
-rw-r--r--arch/blackfin/mach-common/pm.c4
-rw-r--r--arch/blackfin/mm/init.c2
-rw-r--r--arch/cris/arch-v10/kernel/dma.c4
-rw-r--r--arch/cris/arch-v32/drivers/cryptocop.c4
-rw-r--r--arch/cris/arch-v32/kernel/irq.c2
-rw-r--r--arch/cris/arch-v32/lib/Makefile2
-rw-r--r--arch/cris/arch-v32/lib/strcmp.S21
-rw-r--r--arch/cris/include/arch-v32/arch/spinlock.h6
-rw-r--r--arch/cris/include/asm/string.h6
-rw-r--r--arch/cris/mm/fault.c2
-rw-r--r--arch/frv/mm/fault.c2
-rw-r--r--arch/h8300/Kconfig.cpu8
-rw-r--r--arch/h8300/kernel/asm-offsets.c1
-rw-r--r--arch/ia64/Kconfig1
-rw-r--r--arch/ia64/hp/common/sba_iommu.c2
-rw-r--r--arch/ia64/hp/sim/hpsim_irq.c6
-rw-r--r--arch/ia64/include/asm/Kbuild1
-rw-r--r--arch/ia64/include/asm/dma-mapping.h110
-rw-r--r--arch/ia64/include/asm/gcc_intrin.h18
-rw-r--r--arch/ia64/include/asm/hw_irq.h4
-rw-r--r--arch/ia64/include/asm/iommu.h5
-rw-r--r--arch/ia64/include/asm/mca.h38
-rw-r--r--arch/ia64/include/asm/meminit.h18
-rw-r--r--arch/ia64/include/asm/pal.h24
-rw-r--r--arch/ia64/include/asm/pci.h13
-rw-r--r--arch/ia64/include/asm/processor.h56
-rw-r--r--arch/ia64/include/asm/sal.h8
-rw-r--r--arch/ia64/include/asm/sn/sn_sal.h2
-rw-r--r--arch/ia64/include/asm/types.h13
-rw-r--r--arch/ia64/include/asm/unistd.h4
-rw-r--r--arch/ia64/kernel/acpi-processor.c12
-rw-r--r--arch/ia64/kernel/efi.c10
-rw-r--r--arch/ia64/kernel/entry.S1
-rw-r--r--arch/ia64/kernel/iosapic.c10
-rw-r--r--arch/ia64/kernel/irq.c2
-rw-r--r--arch/ia64/kernel/irq_ia64.c2
-rw-r--r--arch/ia64/kernel/irq_lsapic.c2
-rw-r--r--arch/ia64/kernel/mca.c20
-rw-r--r--arch/ia64/kernel/module.c14
-rw-r--r--arch/ia64/kernel/msi_ia64.c2
-rw-r--r--arch/ia64/kernel/palinfo.c68
-rw-r--r--arch/ia64/kernel/paravirt_patchlist.c2
-rw-r--r--arch/ia64/kernel/pci-dma.c4
-rw-r--r--arch/ia64/kernel/pci-swiotlb.c2
-rw-r--r--arch/ia64/kernel/perfmon.c6
-rw-r--r--arch/ia64/kernel/setup.c32
-rw-r--r--arch/ia64/kernel/smp.c2
-rw-r--r--arch/ia64/kernel/smpboot.c4
-rw-r--r--arch/ia64/kernel/time.c2
-rw-r--r--arch/ia64/kernel/topology.c4
-rw-r--r--arch/ia64/kernel/uncached.c3
-rw-r--r--arch/ia64/mm/contig.c9
-rw-r--r--arch/ia64/mm/fault.c2
-rw-r--r--arch/ia64/mm/init.c15
-rw-r--r--arch/ia64/mm/tlb.c4
-rw-r--r--arch/ia64/pci/pci.c16
-rw-r--r--arch/ia64/sn/kernel/io_acpi_init.c4
-rw-r--r--arch/ia64/sn/kernel/io_common.c2
-rw-r--r--arch/ia64/sn/kernel/irq.c6
-rw-r--r--arch/ia64/sn/kernel/sn2/sn_hwperf.c4
-rw-r--r--arch/ia64/sn/kernel/sn2/sn_proc_fs.c2
-rw-r--r--arch/ia64/sn/kernel/tiocx.c2
-rw-r--r--arch/ia64/sn/pci/pcibr/pcibr_provider.c2
-rw-r--r--arch/ia64/sn/pci/tioca_provider.c6
-rw-r--r--arch/ia64/sn/pci/tioce_provider.c6
-rw-r--r--arch/ia64/xen/irq_xen.c2
-rw-r--r--arch/m32r/kernel/process.c5
-rw-r--r--arch/m32r/kernel/ptrace.c4
-rw-r--r--arch/m32r/mm/fault.c2
-rw-r--r--arch/m68k/kernel/traps.c1
-rw-r--r--arch/m68k/mm/fault.c2
-rw-r--r--arch/m68knommu/kernel/asm-offsets.c1
-rw-r--r--arch/m68knommu/kernel/traps.c1
-rw-r--r--arch/microblaze/kernel/init_task.c2
-rw-r--r--arch/microblaze/kernel/vmlinux.lds.S11
-rw-r--r--arch/microblaze/mm/fault.c2
-rw-r--r--arch/mips/Kconfig17
-rw-r--r--arch/mips/cavium-octeon/octeon-irq.c61
-rw-r--r--arch/mips/cavium-octeon/octeon_boot.h70
-rw-r--r--arch/mips/cavium-octeon/setup.c1
-rw-r--r--arch/mips/cavium-octeon/smp.c234
-rw-r--r--arch/mips/include/asm/bug.h1
-rw-r--r--arch/mips/include/asm/bugs.h1
-rw-r--r--arch/mips/include/asm/irq.h1
-rw-r--r--arch/mips/include/asm/mmu_context.h1
-rw-r--r--arch/mips/include/asm/pci.h13
-rw-r--r--arch/mips/include/asm/smp-ops.h4
-rw-r--r--arch/mips/include/asm/smp.h20
-rw-r--r--arch/mips/include/asm/sn/addrs.h1
-rw-r--r--arch/mips/jazz/irq.c1
-rw-r--r--arch/mips/kernel/cevt-bcm1480.c1
-rw-r--r--arch/mips/kernel/cevt-r4k.c1
-rw-r--r--arch/mips/kernel/cevt-sb1250.c1
-rw-r--r--arch/mips/kernel/cevt-smtc.c1
-rw-r--r--arch/mips/kernel/cpu-probe.c1
-rw-r--r--arch/mips/kernel/i8253.c1
-rw-r--r--arch/mips/kernel/irq-gic.c1
-rw-r--r--arch/mips/kernel/kgdb.c1
-rw-r--r--arch/mips/kernel/process.c13
-rw-r--r--arch/mips/kernel/smp-cmp.c1
-rw-r--r--arch/mips/kernel/smp-up.c16
-rw-r--r--arch/mips/kernel/smp.c18
-rw-r--r--arch/mips/kernel/smtc.c1
-rw-r--r--arch/mips/kernel/topology.c5
-rw-r--r--arch/mips/mipssim/sim_time.c1
-rw-r--r--arch/mips/mm/c-octeon.c1
-rw-r--r--arch/mips/mm/c-r3k.c1
-rw-r--r--arch/mips/mm/c-r4k.c1
-rw-r--r--arch/mips/mm/c-tx39.c1
-rw-r--r--arch/mips/mm/fault.c2
-rw-r--r--arch/mips/mm/highmem.c1
-rw-r--r--arch/mips/mm/init.c1
-rw-r--r--arch/mips/mm/page.c1
-rw-r--r--arch/mips/mm/tlb-r3k.c1
-rw-r--r--arch/mips/mm/tlb-r4k.c1
-rw-r--r--arch/mips/mm/tlb-r8k.c1
-rw-r--r--arch/mips/mm/tlbex.c1
-rw-r--r--arch/mips/mti-malta/malta-int.c1
-rw-r--r--arch/mips/pci/pci-ip27.c1
-rw-r--r--arch/mips/pmc-sierra/yosemite/smp.c1
-rw-r--r--arch/mips/power/hibernate.S9
-rw-r--r--arch/mips/sgi-ip27/ip27-init.c1
-rw-r--r--arch/mips/sgi-ip27/ip27-irq.c1
-rw-r--r--arch/mips/sgi-ip27/ip27-timer.c1
-rw-r--r--arch/mips/sgi-ip27/ip27-xtalk.c1
-rw-r--r--arch/mips/sibyte/bcm1480/irq.c1
-rw-r--r--arch/mips/sibyte/common/cfe_console.c7
-rw-r--r--arch/mips/sni/time.c1
-rw-r--r--arch/mn10300/include/asm/elf.h2
-rw-r--r--arch/mn10300/include/asm/pci.h13
-rw-r--r--arch/mn10300/kernel/module.c39
-rw-r--r--arch/mn10300/kernel/process.c3
-rw-r--r--arch/mn10300/kernel/vmlinux.lds.S60
-rw-r--r--arch/mn10300/mm/fault.c2
-rw-r--r--arch/parisc/hpux/fs.c5
-rw-r--r--arch/parisc/include/asm/pci.h13
-rw-r--r--arch/parisc/kernel/process.c5
-rw-r--r--arch/parisc/kernel/sys_parisc32.c5
-rw-r--r--arch/parisc/mm/fault.c2
-rw-r--r--arch/powerpc/Kconfig2
-rw-r--r--arch/powerpc/boot/.gitignore10
-rw-r--r--arch/powerpc/boot/dts/amigaone.dts4
-rw-r--r--arch/powerpc/boot/dts/mpc8610_hpcd.dts32
-rw-r--r--arch/powerpc/include/asm/dma-mapping.h24
-rw-r--r--arch/powerpc/include/asm/highmem.h57
-rw-r--r--arch/powerpc/include/asm/hw_irq.h26
-rw-r--r--arch/powerpc/include/asm/pci.h13
-rw-r--r--arch/powerpc/include/asm/perf_counter.h52
-rw-r--r--arch/powerpc/include/asm/pte-hash64-64k.h3
-rw-r--r--arch/powerpc/include/asm/rtas.h5
-rw-r--r--arch/powerpc/kernel/Makefile8
-rw-r--r--arch/powerpc/kernel/entry_32.S127
-rw-r--r--arch/powerpc/kernel/ftrace.c2
-rw-r--r--arch/powerpc/kernel/head_32.S17
-rw-r--r--arch/powerpc/kernel/mpc7450-pmu.c417
-rw-r--r--arch/powerpc/kernel/of_device.c2
-rw-r--r--arch/powerpc/kernel/perf_counter.c257
-rw-r--r--arch/powerpc/kernel/power4-pmu.c89
-rw-r--r--arch/powerpc/kernel/power5+-pmu.c95
-rw-r--r--arch/powerpc/kernel/power5-pmu.c98
-rw-r--r--arch/powerpc/kernel/power6-pmu.c72
-rw-r--r--arch/powerpc/kernel/power7-pmu.c61
-rw-r--r--arch/powerpc/kernel/ppc970-pmu.c63
-rw-r--r--arch/powerpc/kernel/process.c2
-rw-r--r--arch/powerpc/kernel/prom_init.c40
-rw-r--r--arch/powerpc/kernel/rtas.c69
-rw-r--r--arch/powerpc/kernel/setup_32.c2
-rw-r--r--arch/powerpc/kernel/smp.c3
-rw-r--r--arch/powerpc/kernel/time.c25
-rw-r--r--arch/powerpc/kernel/udbg_16550.c2
-rw-r--r--arch/powerpc/mm/Makefile1
-rw-r--r--arch/powerpc/mm/fault.c2
-rw-r--r--arch/powerpc/mm/highmem.c77
-rw-r--r--arch/powerpc/platforms/44x/warp.c44
-rw-r--r--arch/powerpc/platforms/86xx/mpc8610_hpcd.c4
-rw-r--r--arch/powerpc/platforms/Kconfig.cputype12
-rw-r--r--arch/powerpc/platforms/cell/smp.c30
-rw-r--r--arch/powerpc/platforms/cell/spu_fault.c2
-rw-r--r--arch/powerpc/platforms/chrp/smp.c33
-rw-r--r--arch/powerpc/platforms/maple/setup.c59
-rw-r--r--arch/powerpc/platforms/pasemi/setup.c15
-rw-r--r--arch/powerpc/platforms/powermac/setup.c41
-rw-r--r--arch/powerpc/platforms/powermac/smp.c166
-rw-r--r--arch/powerpc/platforms/pseries/eeh_driver.c38
-rw-r--r--arch/powerpc/platforms/pseries/smp.c30
-rw-r--r--arch/powerpc/sysdev/mpic.c34
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/s390/defconfig72
-rw-r--r--arch/s390/include/asm/cputime.h2
-rw-r--r--arch/s390/include/asm/debug.h9
-rw-r--r--arch/s390/include/asm/perf_counter.h8
-rw-r--r--arch/s390/include/asm/qdio.h2
-rw-r--r--arch/s390/kernel/compat_linux.c3
-rw-r--r--arch/s390/kernel/ftrace.c2
-rw-r--r--arch/s390/kernel/kprobes.c18
-rw-r--r--arch/s390/kernel/process.c3
-rw-r--r--arch/s390/kernel/smp.c28
-rw-r--r--arch/s390/kernel/time.c16
-rw-r--r--arch/s390/kernel/vtime.c27
-rw-r--r--arch/s390/lib/uaccess_pt.c2
-rw-r--r--arch/s390/mm/fault.c2
-rw-r--r--arch/s390/power/swsusp_asm64.S6
-rw-r--r--arch/sh/Kconfig16
-rw-r--r--arch/sh/Kconfig.debug1
-rw-r--r--arch/sh/boards/Kconfig1
-rw-r--r--arch/sh/boards/board-ap325rxa.c52
-rw-r--r--arch/sh/boards/board-sh7785lcr.c14
-rw-r--r--arch/sh/boards/board-urquell.c7
-rw-r--r--arch/sh/boards/mach-highlander/setup.c64
-rw-r--r--arch/sh/boards/mach-migor/setup.c79
-rw-r--r--arch/sh/boards/mach-rsk/devices-rsk7203.c8
-rw-r--r--arch/sh/boards/mach-se/7780/irq.c1
-rw-r--r--arch/sh/boards/mach-x3proto/setup.c12
-rw-r--r--arch/sh/configs/ap325rxa_defconfig70
-rw-r--r--arch/sh/configs/cayman_defconfig165
-rw-r--r--arch/sh/configs/dreamcast_defconfig78
-rw-r--r--arch/sh/configs/edosk7705_defconfig62
-rw-r--r--arch/sh/configs/edosk7760_defconfig79
-rw-r--r--arch/sh/configs/espt_defconfig78
-rw-r--r--arch/sh/configs/hp6xx_defconfig70
-rw-r--r--arch/sh/configs/landisk_defconfig136
-rw-r--r--arch/sh/configs/lboxre2_defconfig83
-rw-r--r--arch/sh/configs/magicpanelr2_defconfig75
-rw-r--r--arch/sh/configs/microdev_defconfig76
-rw-r--r--arch/sh/configs/migor_defconfig78
-rw-r--r--arch/sh/configs/polaris_defconfig67
-rw-r--r--arch/sh/configs/r7780mp_defconfig183
-rw-r--r--arch/sh/configs/r7785rp_defconfig89
-rw-r--r--arch/sh/configs/rsk7201_defconfig77
-rw-r--r--arch/sh/configs/rsk7203_defconfig141
-rw-r--r--arch/sh/configs/rts7751r2d1_defconfig106
-rw-r--r--arch/sh/configs/rts7751r2dplus_defconfig107
-rw-r--r--arch/sh/configs/sdk7780_defconfig88
-rw-r--r--arch/sh/configs/se7206_defconfig93
-rw-r--r--arch/sh/configs/se7343_defconfig219
-rw-r--r--arch/sh/configs/se7619_defconfig70
-rw-r--r--arch/sh/configs/se7705_defconfig74
-rw-r--r--arch/sh/configs/se7712_defconfig78
-rw-r--r--arch/sh/configs/se7721_defconfig87
-rw-r--r--arch/sh/configs/se7722_defconfig80
-rw-r--r--arch/sh/configs/se7724_defconfig71
-rw-r--r--arch/sh/configs/se7750_defconfig80
-rw-r--r--arch/sh/configs/se7751_defconfig75
-rw-r--r--arch/sh/configs/se7780_defconfig90
-rw-r--r--arch/sh/configs/sh03_defconfig90
-rw-r--r--arch/sh/configs/sh7710voipgw_defconfig75
-rw-r--r--arch/sh/configs/sh7724_generic_defconfig72
-rw-r--r--arch/sh/configs/sh7763rdp_defconfig84
-rw-r--r--arch/sh/configs/sh7770_generic_defconfig66
-rw-r--r--arch/sh/configs/sh7785lcr_32bit_defconfig85
-rw-r--r--arch/sh/configs/sh7785lcr_defconfig85
-rw-r--r--arch/sh/configs/shmin_defconfig74
-rw-r--r--arch/sh/configs/shx3_defconfig125
-rw-r--r--arch/sh/configs/snapgear_defconfig76
-rw-r--r--arch/sh/configs/systemh_defconfig66
-rw-r--r--arch/sh/configs/titan_defconfig91
-rw-r--r--arch/sh/configs/ul2_defconfig79
-rw-r--r--arch/sh/configs/urquell_defconfig584
-rw-r--r--arch/sh/drivers/pci/Makefile2
-rw-r--r--arch/sh/drivers/pci/ops-dreamcast.c1
-rw-r--r--arch/sh/drivers/pci/ops-sh7786.c134
-rw-r--r--arch/sh/drivers/pci/pci.c14
-rw-r--r--arch/sh/drivers/pci/pcie-sh7786.c355
-rw-r--r--arch/sh/drivers/pci/pcie-sh7786.h589
-rw-r--r--arch/sh/include/asm/atomic-irq.h24
-rw-r--r--arch/sh/include/asm/atomic.h2
-rw-r--r--arch/sh/include/asm/checksum.h2
-rw-r--r--arch/sh/include/asm/checksum_64.h78
-rw-r--r--arch/sh/include/asm/current.h21
-rw-r--r--arch/sh/include/asm/dma-mapping.h12
-rw-r--r--arch/sh/include/asm/dma.h10
-rw-r--r--arch/sh/include/asm/ipcbuf.h30
-rw-r--r--arch/sh/include/asm/irq.h2
-rw-r--r--arch/sh/include/asm/mman.h18
-rw-r--r--arch/sh/include/asm/mmu_context.h22
-rw-r--r--arch/sh/include/asm/module.h12
-rw-r--r--arch/sh/include/asm/msgbuf.h32
-rw-r--r--arch/sh/include/asm/param.h23
-rw-r--r--arch/sh/include/asm/parport.h17
-rw-r--r--arch/sh/include/asm/pci.h13
-rw-r--r--arch/sh/include/asm/perf_counter.h7
-rw-r--r--arch/sh/include/asm/posix_types_32.h119
-rw-r--r--arch/sh/include/asm/posix_types_64.h127
-rw-r--r--arch/sh/include/asm/scatterlist.h24
-rw-r--r--arch/sh/include/asm/sembuf.h26
-rw-r--r--arch/sh/include/asm/serial.h20
-rw-r--r--arch/sh/include/asm/setup.h2
-rw-r--r--arch/sh/include/asm/shmbuf.h43
-rw-r--r--arch/sh/include/asm/signal.h147
-rw-r--r--arch/sh/include/asm/smp.h3
-rw-r--r--arch/sh/include/asm/socket.h61
-rw-r--r--arch/sh/include/asm/swab.h3
-rw-r--r--arch/sh/include/asm/system.h1
-rw-r--r--arch/sh/include/asm/termbits.h199
-rw-r--r--arch/sh/include/asm/termios.h91
-rw-r--r--arch/sh/include/asm/timex.h7
-rw-r--r--arch/sh/include/asm/topology.h3
-rw-r--r--arch/sh/include/asm/types.h16
-rw-r--r--arch/sh/include/asm/ucontext.h13
-rw-r--r--arch/sh/include/asm/unaligned.h14
-rw-r--r--arch/sh/include/asm/unistd_32.h3
-rw-r--r--arch/sh/include/asm/unistd_64.h3
-rw-r--r--arch/sh/include/mach-common/mach/highlander.h3
-rw-r--r--arch/sh/kernel/cpu/clock-cpg.c16
-rw-r--r--arch/sh/kernel/cpu/sh4a/Makefile6
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7366.c10
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7723.c9
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7786.c29
-rw-r--r--arch/sh/kernel/cpu/sh4a/smp-shx3.c5
-rw-r--r--arch/sh/kernel/ftrace.c60
-rw-r--r--arch/sh/kernel/idle.c23
-rw-r--r--arch/sh/kernel/process_32.c7
-rw-r--r--arch/sh/kernel/process_64.c12
-rw-r--r--arch/sh/kernel/sh_ksyms_64.c7
-rw-r--r--arch/sh/kernel/signal_32.c4
-rw-r--r--arch/sh/kernel/smp.c10
-rw-r--r--arch/sh/kernel/sys_sh.c2
-rw-r--r--arch/sh/kernel/syscalls_32.S1
-rw-r--r--arch/sh/kernel/syscalls_64.S1
-rw-r--r--arch/sh/kernel/time.c27
-rw-r--r--arch/sh/kernel/traps.c1
-rw-r--r--arch/sh/lib64/Makefile2
-rw-r--r--arch/sh/lib64/c-checksum.c214
-rw-r--r--arch/sh/mm/fault_32.c6
-rw-r--r--arch/sh/mm/init.c4
-rw-r--r--arch/sh/mm/tlbflush_64.c2
-rw-r--r--arch/sparc/include/asm/pci_64.h2
-rw-r--r--arch/sparc/kernel/pci.c13
-rw-r--r--arch/sparc/mm/fault_32.c4
-rw-r--r--arch/sparc/mm/fault_64.c2
-rw-r--r--arch/sparc/mm/init_64.c6
-rw-r--r--arch/um/drivers/slip_kern.c1
-rw-r--r--arch/um/drivers/slirp_kern.c1
-rw-r--r--arch/um/include/asm/dma-mapping.h4
-rw-r--r--arch/um/kernel/trap.c2
-rw-r--r--arch/x86/Kconfig2
-rw-r--r--arch/x86/boot/Makefile1
-rw-r--r--arch/x86/boot/bioscall.S2
-rw-r--r--arch/x86/boot/compressed/Makefile1
-rw-r--r--arch/x86/crypto/aesni-intel_asm.S5
-rw-r--r--arch/x86/crypto/aesni-intel_glue.c4
-rw-r--r--arch/x86/crypto/fpu.c4
-rw-r--r--arch/x86/include/asm/acpi.h1
-rw-r--r--arch/x86/include/asm/amd_iommu.h2
-rw-r--r--arch/x86/include/asm/atomic_32.h3
-rw-r--r--arch/x86/include/asm/desc.h26
-rw-r--r--arch/x86/include/asm/dma-mapping.h173
-rw-r--r--arch/x86/include/asm/iommu.h1
-rw-r--r--arch/x86/include/asm/mce.h63
-rw-r--r--arch/x86/include/asm/msr.h7
-rw-r--r--arch/x86/include/asm/page_64_types.h2
-rw-r--r--arch/x86/include/asm/pci.h1
-rw-r--r--arch/x86/include/asm/pci_x86.h3
-rw-r--r--arch/x86/include/asm/perf_counter.h5
-rw-r--r--arch/x86/include/asm/pgtable_32.h8
-rw-r--r--arch/x86/include/asm/pgtable_64.h5
-rw-r--r--arch/x86/include/asm/therm_throt.h9
-rw-r--r--arch/x86/include/asm/timer.h6
-rw-r--r--arch/x86/include/asm/uaccess.h2
-rw-r--r--arch/x86/kernel/Makefile2
-rw-r--r--arch/x86/kernel/acpi/boot.c80
-rw-r--r--arch/x86/kernel/acpi/cstate.c16
-rw-r--r--arch/x86/kernel/acpi/processor.c13
-rw-r--r--arch/x86/kernel/acpi/realmode/Makefile1
-rw-r--r--arch/x86/kernel/amd_iommu.c16
-rw-r--r--arch/x86/kernel/amd_iommu_init.c26
-rw-r--r--arch/x86/kernel/apic/io_apic.c15
-rw-r--r--arch/x86/kernel/apic/probe_32.c11
-rw-r--r--arch/x86/kernel/apic/summit_32.c1
-rw-r--r--arch/x86/kernel/cpu/common.c5
-rw-r--r--arch/x86/kernel/cpu/mcheck/Makefile9
-rw-r--r--arch/x86/kernel/cpu/mcheck/k7.c3
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c233
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.h38
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_amd.c (renamed from arch/x86/kernel/cpu/mcheck/mce_amd_64.c)0
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_intel.c250
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_intel_64.c248
-rw-r--r--arch/x86/kernel/cpu/mcheck/non-fatal.c3
-rw-r--r--arch/x86/kernel/cpu/mcheck/p4.c48
-rw-r--r--arch/x86/kernel/cpu/mcheck/p5.c15
-rw-r--r--arch/x86/kernel/cpu/mcheck/p6.c3
-rw-r--r--arch/x86/kernel/cpu/mcheck/therm_throt.c106
-rw-r--r--arch/x86/kernel/cpu/mcheck/winchip.c3
-rw-r--r--arch/x86/kernel/cpu/perf_counter.c138
-rw-r--r--arch/x86/kernel/cpu/perfctr-watchdog.c12
-rw-r--r--arch/x86/kernel/crash.c6
-rw-r--r--arch/x86/kernel/efi.c31
-rw-r--r--arch/x86/kernel/entry_32.S66
-rw-r--r--arch/x86/kernel/entry_64.S2
-rw-r--r--arch/x86/kernel/ftrace.c6
-rw-r--r--arch/x86/kernel/head_32.S1
-rw-r--r--arch/x86/kernel/head_64.S1
-rw-r--r--arch/x86/kernel/hpet.c3
-rw-r--r--arch/x86/kernel/pci-dma.c8
-rw-r--r--arch/x86/kernel/pci-swiotlb.c3
-rw-r--r--arch/x86/kernel/traps.c3
-rw-r--r--arch/x86/kernel/tsc.c8
-rw-r--r--arch/x86/lib/usercopy_64.c2
-rw-r--r--arch/x86/mm/fault.c5
-rw-r--r--arch/x86/mm/gup.c67
-rw-r--r--arch/x86/mm/init_64.c2
-rw-r--r--arch/x86/pci/acpi.c33
-rw-r--r--arch/x86/pci/i386.c17
-rw-r--r--arch/x86/pci/mmconfig-shared.c65
-rw-r--r--arch/x86/vdso/Makefile1
-rw-r--r--arch/xtensa/configs/s6105_defconfig105
-rw-r--r--arch/xtensa/include/asm/cacheflush.h95
-rw-r--r--arch/xtensa/include/asm/gpio.h8
-rw-r--r--arch/xtensa/include/asm/irq.h12
-rw-r--r--arch/xtensa/kernel/irq.c2
-rw-r--r--arch/xtensa/kernel/process.c5
-rw-r--r--arch/xtensa/mm/fault.c2
-rw-r--r--arch/xtensa/platforms/s6105/device.c94
-rw-r--r--arch/xtensa/platforms/s6105/setup.c11
-rw-r--r--arch/xtensa/variants/s6000/Makefile2
-rw-r--r--arch/xtensa/variants/s6000/dmac.c173
-rw-r--r--arch/xtensa/variants/s6000/gpio.c163
-rw-r--r--arch/xtensa/variants/s6000/include/variant/dmac.h387
-rw-r--r--arch/xtensa/variants/s6000/include/variant/gpio.h2
-rw-r--r--arch/xtensa/variants/s6000/include/variant/irq.h6
615 files changed, 15414 insertions, 9166 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index 78a35e9dc10..99193b16023 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -112,3 +112,5 @@ config HAVE_DMA_API_DEBUG
112 112
113config HAVE_DEFAULT_NO_SPIN_MUTEXES 113config HAVE_DEFAULT_NO_SPIN_MUTEXES
114 bool 114 bool
115
116source "kernel/gcov/Kconfig"
diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h
index cb04eaa6ba3..d22ace99d13 100644
--- a/arch/alpha/include/asm/pci.h
+++ b/arch/alpha/include/asm/pci.h
@@ -237,19 +237,6 @@ extern void pcibios_resource_to_bus(struct pci_dev *, struct pci_bus_region *,
237extern void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, 237extern void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
238 struct pci_bus_region *region); 238 struct pci_bus_region *region);
239 239
240static inline struct resource *
241pcibios_select_root(struct pci_dev *pdev, struct resource *res)
242{
243 struct resource *root = NULL;
244
245 if (res->flags & IORESOURCE_IO)
246 root = &ioport_resource;
247 if (res->flags & IORESOURCE_MEM)
248 root = &iomem_resource;
249
250 return root;
251}
252
253#define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index 240#define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index
254 241
255static inline int pci_proc_domain(struct pci_bus *bus) 242static inline int pci_proc_domain(struct pci_bus *bus)
diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
index 4829f96585b..00a31deaa96 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -146,7 +146,7 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
146 /* If for any reason at all we couldn't handle the fault, 146 /* If for any reason at all we couldn't handle the fault,
147 make sure we exit gracefully rather than endlessly redo 147 make sure we exit gracefully rather than endlessly redo
148 the fault. */ 148 the fault. */
149 fault = handle_mm_fault(mm, vma, address, cause > 0); 149 fault = handle_mm_fault(mm, vma, address, cause > 0 ? FAULT_FLAG_WRITE : 0);
150 up_read(&mm->mmap_sem); 150 up_read(&mm->mmap_sem);
151 if (unlikely(fault & VM_FAULT_ERROR)) { 151 if (unlikely(fault & VM_FAULT_ERROR)) {
152 if (fault & VM_FAULT_OOM) 152 if (fault & VM_FAULT_OOM)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 29475101a7b..aef63c8e3d2 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1241,7 +1241,7 @@ endmenu
1241 1241
1242menu "CPU Power Management" 1242menu "CPU Power Management"
1243 1243
1244if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_PXA) 1244if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_PXA || ARCH_S3C64XX)
1245 1245
1246source "drivers/cpufreq/Kconfig" 1246source "drivers/cpufreq/Kconfig"
1247 1247
@@ -1272,6 +1272,10 @@ config CPU_FREQ_PXA
1272 default y 1272 default y
1273 select CPU_FREQ_DEFAULT_GOV_USERSPACE 1273 select CPU_FREQ_DEFAULT_GOV_USERSPACE
1274 1274
1275config CPU_FREQ_S3C64XX
1276 bool "CPUfreq support for Samsung S3C64XX CPUs"
1277 depends on CPU_FREQ && CPU_S3C6410
1278
1275endif 1279endif
1276 1280
1277source "drivers/cpuidle/Kconfig" 1281source "drivers/cpuidle/Kconfig"
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 01d49be3b2c..4515728c534 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -674,6 +674,15 @@ proc_types:
674 b __armv4_mmu_cache_off 674 b __armv4_mmu_cache_off
675 b __armv5tej_mmu_cache_flush 675 b __armv5tej_mmu_cache_flush
676 676
677#ifdef CONFIG_CPU_FEROCEON_OLD_ID
678 /* this conflicts with the standard ARMv5TE entry */
679 .long 0x41009260 @ Old Feroceon
680 .long 0xff00fff0
681 b __armv4_mmu_cache_on
682 b __armv4_mmu_cache_off
683 b __armv5tej_mmu_cache_flush
684#endif
685
677 .word 0x66015261 @ FA526 686 .word 0x66015261 @ FA526
678 .word 0xff01fff1 687 .word 0xff01fff1
679 b __fa526_cache_on 688 b __fa526_cache_on
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index 664c7b8b1ba..337741f734a 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -117,7 +117,7 @@ static int gic_set_cpu(unsigned int irq, const struct cpumask *mask_val)
117 u32 val; 117 u32 val;
118 118
119 spin_lock(&irq_controller_lock); 119 spin_lock(&irq_controller_lock);
120 irq_desc[irq].cpu = cpu; 120 irq_desc[irq].node = cpu;
121 val = readl(reg) & ~(0xff << shift); 121 val = readl(reg) & ~(0xff << shift);
122 val |= 1 << (cpu + shift); 122 val |= 1 << (cpu + shift);
123 writel(val, reg); 123 writel(val, reg);
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c
index 887c6eb3a18..6ed89836e90 100644
--- a/arch/arm/common/vic.c
+++ b/arch/arm/common/vic.c
@@ -229,14 +229,18 @@ static int vic_set_wake(unsigned int irq, unsigned int on)
229{ 229{
230 struct vic_device *v = vic_from_irq(irq); 230 struct vic_device *v = vic_from_irq(irq);
231 unsigned int off = irq & 31; 231 unsigned int off = irq & 31;
232 u32 bit = 1 << off;
232 233
233 if (!v) 234 if (!v)
234 return -EINVAL; 235 return -EINVAL;
235 236
237 if (!(bit & v->resume_sources))
238 return -EINVAL;
239
236 if (on) 240 if (on)
237 v->resume_irqs |= 1 << off; 241 v->resume_irqs |= bit;
238 else 242 else
239 v->resume_irqs &= ~(1 << off); 243 v->resume_irqs &= ~bit;
240 244
241 return 0; 245 return 0;
242} 246}
diff --git a/arch/arm/configs/mini2440_defconfig b/arch/arm/configs/mini2440_defconfig
new file mode 100644
index 00000000000..e49ed40f3be
--- /dev/null
+++ b/arch/arm/configs/mini2440_defconfig
@@ -0,0 +1,2097 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc6
4# Wed May 20 12:29:51 2009
5#
6CONFIG_ARM=y
7CONFIG_HAVE_PWM=y
8CONFIG_SYS_SUPPORTS_APM_EMULATION=y
9CONFIG_GENERIC_GPIO=y
10# CONFIG_GENERIC_TIME is not set
11# CONFIG_GENERIC_CLOCKEVENTS is not set
12CONFIG_MMU=y
13CONFIG_NO_IOPORT=y
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_STACKTRACE_SUPPORT=y
16CONFIG_HAVE_LATENCYTOP_SUPPORT=y
17CONFIG_LOCKDEP_SUPPORT=y
18CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_HARDIRQS_SW_RESEND=y
20CONFIG_GENERIC_IRQ_PROBE=y
21CONFIG_RWSEM_GENERIC_SPINLOCK=y
22# CONFIG_ARCH_HAS_ILOG2_U32 is not set
23# CONFIG_ARCH_HAS_ILOG2_U64 is not set
24CONFIG_GENERIC_HWEIGHT=y
25CONFIG_GENERIC_CALIBRATE_DELAY=y
26CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
27CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29
30#
31# General setup
32#
33CONFIG_EXPERIMENTAL=y
34CONFIG_BROKEN_ON_SMP=y
35CONFIG_INIT_ENV_ARG_LIMIT=32
36CONFIG_LOCALVERSION=""
37# CONFIG_LOCALVERSION_AUTO is not set
38CONFIG_SWAP=y
39CONFIG_SYSVIPC=y
40CONFIG_SYSVIPC_SYSCTL=y
41CONFIG_POSIX_MQUEUE=y
42CONFIG_POSIX_MQUEUE_SYSCTL=y
43# CONFIG_BSD_PROCESS_ACCT is not set
44# CONFIG_TASKSTATS is not set
45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_CLASSIC_RCU=y
51# CONFIG_TREE_RCU is not set
52# CONFIG_PREEMPT_RCU is not set
53# CONFIG_TREE_RCU_TRACE is not set
54# CONFIG_PREEMPT_RCU_TRACE is not set
55# CONFIG_IKCONFIG is not set
56CONFIG_LOG_BUF_SHIFT=17
57# CONFIG_GROUP_SCHED is not set
58# CONFIG_CGROUPS is not set
59# CONFIG_SYSFS_DEPRECATED_V2 is not set
60CONFIG_RELAY=y
61CONFIG_NAMESPACES=y
62CONFIG_UTS_NS=y
63CONFIG_IPC_NS=y
64# CONFIG_USER_NS is not set
65# CONFIG_PID_NS is not set
66# CONFIG_NET_NS is not set
67CONFIG_BLK_DEV_INITRD=y
68CONFIG_INITRAMFS_SOURCE=""
69CONFIG_RD_GZIP=y
70CONFIG_RD_BZIP2=y
71CONFIG_RD_LZMA=y
72CONFIG_CC_OPTIMIZE_FOR_SIZE=y
73CONFIG_SYSCTL=y
74CONFIG_ANON_INODES=y
75# CONFIG_EMBEDDED is not set
76CONFIG_UID16=y
77CONFIG_SYSCTL_SYSCALL=y
78CONFIG_KALLSYMS=y
79# CONFIG_KALLSYMS_ALL is not set
80# CONFIG_KALLSYMS_EXTRA_PASS is not set
81CONFIG_STRIP_ASM_SYMS=y
82CONFIG_HOTPLUG=y
83CONFIG_PRINTK=y
84CONFIG_BUG=y
85CONFIG_ELF_CORE=y
86CONFIG_BASE_FULL=y
87CONFIG_FUTEX=y
88CONFIG_EPOLL=y
89CONFIG_SIGNALFD=y
90CONFIG_TIMERFD=y
91CONFIG_EVENTFD=y
92CONFIG_SHMEM=y
93CONFIG_AIO=y
94CONFIG_VM_EVENT_COUNTERS=y
95CONFIG_SLUB_DEBUG=y
96# CONFIG_COMPAT_BRK is not set
97# CONFIG_SLAB is not set
98CONFIG_SLUB=y
99# CONFIG_SLOB is not set
100# CONFIG_PROFILING is not set
101# CONFIG_MARKERS is not set
102CONFIG_HAVE_OPROFILE=y
103# CONFIG_KPROBES is not set
104CONFIG_HAVE_KPROBES=y
105CONFIG_HAVE_KRETPROBES=y
106CONFIG_HAVE_CLK=y
107# CONFIG_SLOW_WORK is not set
108CONFIG_HAVE_GENERIC_DMA_COHERENT=y
109CONFIG_SLABINFO=y
110CONFIG_RT_MUTEXES=y
111CONFIG_BASE_SMALL=0
112CONFIG_MODULES=y
113CONFIG_MODULE_FORCE_LOAD=y
114CONFIG_MODULE_UNLOAD=y
115CONFIG_MODULE_FORCE_UNLOAD=y
116# CONFIG_MODVERSIONS is not set
117# CONFIG_MODULE_SRCVERSION_ALL is not set
118CONFIG_BLOCK=y
119CONFIG_LBD=y
120# CONFIG_BLK_DEV_BSG is not set
121CONFIG_BLK_DEV_INTEGRITY=y
122
123#
124# IO Schedulers
125#
126CONFIG_IOSCHED_NOOP=y
127CONFIG_IOSCHED_AS=y
128CONFIG_IOSCHED_DEADLINE=y
129CONFIG_IOSCHED_CFQ=y
130CONFIG_DEFAULT_AS=y
131# CONFIG_DEFAULT_DEADLINE is not set
132# CONFIG_DEFAULT_CFQ is not set
133# CONFIG_DEFAULT_NOOP is not set
134CONFIG_DEFAULT_IOSCHED="anticipatory"
135CONFIG_FREEZER=y
136
137#
138# System Type
139#
140# CONFIG_ARCH_AAEC2000 is not set
141# CONFIG_ARCH_INTEGRATOR is not set
142# CONFIG_ARCH_REALVIEW is not set
143# CONFIG_ARCH_VERSATILE is not set
144# CONFIG_ARCH_AT91 is not set
145# CONFIG_ARCH_CLPS711X is not set
146# CONFIG_ARCH_EBSA110 is not set
147# CONFIG_ARCH_EP93XX is not set
148# CONFIG_ARCH_GEMINI is not set
149# CONFIG_ARCH_FOOTBRIDGE is not set
150# CONFIG_ARCH_NETX is not set
151# CONFIG_ARCH_H720X is not set
152# CONFIG_ARCH_IMX is not set
153# CONFIG_ARCH_IOP13XX is not set
154# CONFIG_ARCH_IOP32X is not set
155# CONFIG_ARCH_IOP33X is not set
156# CONFIG_ARCH_IXP23XX is not set
157# CONFIG_ARCH_IXP2000 is not set
158# CONFIG_ARCH_IXP4XX is not set
159# CONFIG_ARCH_L7200 is not set
160# CONFIG_ARCH_KIRKWOOD is not set
161# CONFIG_ARCH_KS8695 is not set
162# CONFIG_ARCH_NS9XXX is not set
163# CONFIG_ARCH_LOKI is not set
164# CONFIG_ARCH_MV78XX0 is not set
165# CONFIG_ARCH_MXC is not set
166# CONFIG_ARCH_ORION5X is not set
167# CONFIG_ARCH_PNX4008 is not set
168# CONFIG_ARCH_PXA is not set
169# CONFIG_ARCH_MMP is not set
170# CONFIG_ARCH_RPC is not set
171# CONFIG_ARCH_SA1100 is not set
172CONFIG_ARCH_S3C2410=y
173# CONFIG_ARCH_S3C64XX is not set
174# CONFIG_ARCH_SHARK is not set
175# CONFIG_ARCH_LH7A40X is not set
176# CONFIG_ARCH_DAVINCI is not set
177# CONFIG_ARCH_OMAP is not set
178# CONFIG_ARCH_MSM is not set
179# CONFIG_ARCH_W90X900 is not set
180CONFIG_PLAT_S3C24XX=y
181CONFIG_S3C2410_CLOCK=y
182CONFIG_CPU_S3C244X=y
183CONFIG_S3C24XX_PWM=y
184CONFIG_S3C24XX_GPIO_EXTRA=0
185CONFIG_S3C2410_DMA=y
186# CONFIG_S3C2410_DMA_DEBUG is not set
187CONFIG_S3C24XX_ADC=y
188CONFIG_PLAT_S3C=y
189CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y
190CONFIG_CPU_LLSERIAL_S3C2440=y
191
192#
193# Boot options
194#
195# CONFIG_S3C_BOOT_WATCHDOG is not set
196# CONFIG_S3C_BOOT_ERROR_RESET is not set
197CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
198
199#
200# Power management
201#
202# CONFIG_S3C2410_PM_DEBUG is not set
203# CONFIG_S3C2410_PM_CHECK is not set
204CONFIG_S3C_LOWLEVEL_UART_PORT=0
205CONFIG_S3C_GPIO_SPACE=0
206
207#
208# S3C2400 Machines
209#
210CONFIG_S3C2410_PM=y
211CONFIG_S3C2410_GPIO=y
212
213#
214# S3C2410 Machines
215#
216# CONFIG_ARCH_SMDK2410 is not set
217# CONFIG_ARCH_H1940 is not set
218# CONFIG_MACH_N30 is not set
219# CONFIG_ARCH_BAST is not set
220# CONFIG_MACH_OTOM is not set
221# CONFIG_MACH_AML_M5900 is not set
222# CONFIG_MACH_TCT_HAMMER is not set
223# CONFIG_MACH_VR1000 is not set
224# CONFIG_MACH_QT2410 is not set
225
226#
227# S3C2412 Machines
228#
229# CONFIG_MACH_JIVE is not set
230# CONFIG_MACH_SMDK2413 is not set
231# CONFIG_MACH_SMDK2412 is not set
232# CONFIG_MACH_VSTMS is not set
233CONFIG_CPU_S3C2440=y
234CONFIG_S3C2440_DMA=y
235
236#
237# S3C2440 Machines
238#
239# CONFIG_MACH_ANUBIS is not set
240# CONFIG_MACH_OSIRIS is not set
241# CONFIG_MACH_RX3715 is not set
242# CONFIG_ARCH_S3C2440 is not set
243# CONFIG_MACH_NEXCODER_2440 is not set
244# CONFIG_MACH_AT2440EVB is not set
245CONFIG_MACH_MINI2440=y
246
247#
248# S3C2442 Machines
249#
250
251#
252# S3C2443 Machines
253#
254# CONFIG_MACH_SMDK2443 is not set
255
256#
257# Processor Type
258#
259CONFIG_CPU_32=y
260CONFIG_CPU_ARM920T=y
261CONFIG_CPU_32v4T=y
262CONFIG_CPU_ABRT_EV4T=y
263CONFIG_CPU_PABRT_NOIFAR=y
264CONFIG_CPU_CACHE_V4WT=y
265CONFIG_CPU_CACHE_VIVT=y
266CONFIG_CPU_COPY_V4WB=y
267CONFIG_CPU_TLB_V4WBI=y
268CONFIG_CPU_CP15=y
269CONFIG_CPU_CP15_MMU=y
270
271#
272# Processor Features
273#
274CONFIG_ARM_THUMB=y
275# CONFIG_CPU_ICACHE_DISABLE is not set
276# CONFIG_CPU_DCACHE_DISABLE is not set
277# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
278# CONFIG_OUTER_CACHE is not set
279
280#
281# Bus support
282#
283# CONFIG_PCI_SYSCALL is not set
284# CONFIG_ARCH_SUPPORTS_MSI is not set
285# CONFIG_PCCARD is not set
286
287#
288# Kernel Features
289#
290CONFIG_VMSPLIT_3G=y
291# CONFIG_VMSPLIT_2G is not set
292# CONFIG_VMSPLIT_1G is not set
293CONFIG_PAGE_OFFSET=0xC0000000
294# CONFIG_PREEMPT is not set
295CONFIG_HZ=200
296CONFIG_AEABI=y
297# CONFIG_OABI_COMPAT is not set
298CONFIG_ARCH_FLATMEM_HAS_HOLES=y
299# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
300# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
301# CONFIG_HIGHMEM is not set
302CONFIG_SELECT_MEMORY_MODEL=y
303CONFIG_FLATMEM_MANUAL=y
304# CONFIG_DISCONTIGMEM_MANUAL is not set
305# CONFIG_SPARSEMEM_MANUAL is not set
306CONFIG_FLATMEM=y
307CONFIG_FLAT_NODE_MEM_MAP=y
308CONFIG_PAGEFLAGS_EXTENDED=y
309CONFIG_SPLIT_PTLOCK_CPUS=4096
310# CONFIG_PHYS_ADDR_T_64BIT is not set
311CONFIG_ZONE_DMA_FLAG=0
312CONFIG_VIRT_TO_BUS=y
313CONFIG_UNEVICTABLE_LRU=y
314CONFIG_HAVE_MLOCK=y
315CONFIG_HAVE_MLOCKED_PAGE_BIT=y
316CONFIG_ALIGNMENT_TRAP=y
317
318#
319# Boot options
320#
321CONFIG_ZBOOT_ROM_TEXT=0
322CONFIG_ZBOOT_ROM_BSS=0
323CONFIG_CMDLINE=""
324# CONFIG_XIP_KERNEL is not set
325CONFIG_KEXEC=y
326CONFIG_ATAGS_PROC=y
327
328#
329# CPU Power Management
330#
331CONFIG_CPU_IDLE=y
332CONFIG_CPU_IDLE_GOV_LADDER=y
333
334#
335# Floating point emulation
336#
337
338#
339# At least one emulation must be selected
340#
341
342#
343# Userspace binary formats
344#
345CONFIG_BINFMT_ELF=y
346# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
347CONFIG_HAVE_AOUT=y
348CONFIG_BINFMT_AOUT=m
349CONFIG_BINFMT_MISC=m
350
351#
352# Power management options
353#
354CONFIG_PM=y
355# CONFIG_PM_DEBUG is not set
356CONFIG_PM_SLEEP=y
357CONFIG_SUSPEND=y
358CONFIG_SUSPEND_FREEZER=y
359CONFIG_APM_EMULATION=y
360CONFIG_ARCH_SUSPEND_POSSIBLE=y
361CONFIG_NET=y
362
363#
364# Networking options
365#
366CONFIG_PACKET=y
367CONFIG_PACKET_MMAP=y
368CONFIG_UNIX=y
369CONFIG_XFRM=y
370CONFIG_XFRM_USER=m
371# CONFIG_XFRM_SUB_POLICY is not set
372# CONFIG_XFRM_MIGRATE is not set
373# CONFIG_XFRM_STATISTICS is not set
374CONFIG_NET_KEY=m
375# CONFIG_NET_KEY_MIGRATE is not set
376CONFIG_INET=y
377CONFIG_IP_MULTICAST=y
378CONFIG_IP_ADVANCED_ROUTER=y
379CONFIG_ASK_IP_FIB_HASH=y
380# CONFIG_IP_FIB_TRIE is not set
381CONFIG_IP_FIB_HASH=y
382CONFIG_IP_MULTIPLE_TABLES=y
383CONFIG_IP_ROUTE_MULTIPATH=y
384CONFIG_IP_ROUTE_VERBOSE=y
385CONFIG_IP_PNP=y
386CONFIG_IP_PNP_DHCP=y
387CONFIG_IP_PNP_BOOTP=y
388CONFIG_IP_PNP_RARP=y
389# CONFIG_NET_IPIP is not set
390# CONFIG_NET_IPGRE is not set
391CONFIG_IP_MROUTE=y
392CONFIG_IP_PIMSM_V1=y
393CONFIG_IP_PIMSM_V2=y
394# CONFIG_ARPD is not set
395CONFIG_SYN_COOKIES=y
396# CONFIG_INET_AH is not set
397# CONFIG_INET_ESP is not set
398# CONFIG_INET_IPCOMP is not set
399# CONFIG_INET_XFRM_TUNNEL is not set
400# CONFIG_INET_TUNNEL is not set
401# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
402# CONFIG_INET_XFRM_MODE_TUNNEL is not set
403# CONFIG_INET_XFRM_MODE_BEET is not set
404# CONFIG_INET_LRO is not set
405CONFIG_INET_DIAG=m
406CONFIG_INET_TCP_DIAG=m
407# CONFIG_TCP_CONG_ADVANCED is not set
408CONFIG_TCP_CONG_CUBIC=y
409CONFIG_DEFAULT_TCP_CONG="cubic"
410# CONFIG_TCP_MD5SIG is not set
411# CONFIG_IPV6 is not set
412# CONFIG_NETWORK_SECMARK is not set
413CONFIG_NETFILTER=y
414# CONFIG_NETFILTER_DEBUG is not set
415CONFIG_NETFILTER_ADVANCED=y
416CONFIG_BRIDGE_NETFILTER=y
417
418#
419# Core Netfilter Configuration
420#
421# CONFIG_NETFILTER_NETLINK_QUEUE is not set
422# CONFIG_NETFILTER_NETLINK_LOG is not set
423# CONFIG_NF_CONNTRACK is not set
424# CONFIG_NETFILTER_XTABLES is not set
425# CONFIG_IP_VS is not set
426
427#
428# IP: Netfilter Configuration
429#
430# CONFIG_NF_DEFRAG_IPV4 is not set
431# CONFIG_IP_NF_QUEUE is not set
432# CONFIG_IP_NF_IPTABLES is not set
433# CONFIG_IP_NF_ARPTABLES is not set
434# CONFIG_BRIDGE_NF_EBTABLES is not set
435# CONFIG_IP_DCCP is not set
436# CONFIG_IP_SCTP is not set
437# CONFIG_TIPC is not set
438# CONFIG_ATM is not set
439CONFIG_STP=m
440CONFIG_GARP=m
441CONFIG_BRIDGE=m
442# CONFIG_NET_DSA is not set
443CONFIG_VLAN_8021Q=m
444CONFIG_VLAN_8021Q_GVRP=y
445# CONFIG_DECNET is not set
446CONFIG_LLC=m
447# CONFIG_LLC2 is not set
448# CONFIG_IPX is not set
449# CONFIG_ATALK is not set
450# CONFIG_X25 is not set
451# CONFIG_LAPB is not set
452# CONFIG_ECONET is not set
453# CONFIG_WAN_ROUTER is not set
454# CONFIG_PHONET is not set
455# CONFIG_NET_SCHED is not set
456# CONFIG_DCB is not set
457
458#
459# Network testing
460#
461CONFIG_NET_PKTGEN=m
462# CONFIG_HAMRADIO is not set
463# CONFIG_CAN is not set
464# CONFIG_IRDA is not set
465CONFIG_BT=m
466CONFIG_BT_L2CAP=m
467CONFIG_BT_SCO=m
468CONFIG_BT_RFCOMM=m
469CONFIG_BT_RFCOMM_TTY=y
470CONFIG_BT_BNEP=m
471CONFIG_BT_BNEP_MC_FILTER=y
472CONFIG_BT_BNEP_PROTO_FILTER=y
473CONFIG_BT_HIDP=m
474
475#
476# Bluetooth device drivers
477#
478CONFIG_BT_HCIBTUSB=m
479CONFIG_BT_HCIBTSDIO=m
480CONFIG_BT_HCIUART=m
481CONFIG_BT_HCIUART_H4=y
482CONFIG_BT_HCIUART_BCSP=y
483CONFIG_BT_HCIUART_LL=y
484CONFIG_BT_HCIBCM203X=m
485CONFIG_BT_HCIBPA10X=m
486CONFIG_BT_HCIBFUSB=m
487CONFIG_BT_HCIVHCI=m
488# CONFIG_AF_RXRPC is not set
489CONFIG_FIB_RULES=y
490CONFIG_WIRELESS=y
491CONFIG_CFG80211=m
492CONFIG_CFG80211_REG_DEBUG=y
493CONFIG_WIRELESS_OLD_REGULATORY=y
494CONFIG_WIRELESS_EXT=y
495CONFIG_WIRELESS_EXT_SYSFS=y
496CONFIG_LIB80211=m
497CONFIG_LIB80211_CRYPT_WEP=m
498CONFIG_LIB80211_CRYPT_CCMP=m
499CONFIG_LIB80211_CRYPT_TKIP=m
500# CONFIG_LIB80211_DEBUG is not set
501CONFIG_MAC80211=m
502
503#
504# Rate control algorithm selection
505#
506CONFIG_MAC80211_RC_MINSTREL=y
507# CONFIG_MAC80211_RC_DEFAULT_PID is not set
508CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
509CONFIG_MAC80211_RC_DEFAULT="minstrel"
510CONFIG_MAC80211_MESH=y
511CONFIG_MAC80211_LEDS=y
512# CONFIG_MAC80211_DEBUGFS is not set
513# CONFIG_MAC80211_DEBUG_MENU is not set
514# CONFIG_WIMAX is not set
515# CONFIG_RFKILL is not set
516# CONFIG_NET_9P is not set
517
518#
519# Device Drivers
520#
521
522#
523# Generic Driver Options
524#
525CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
526CONFIG_STANDALONE=y
527CONFIG_PREVENT_FIRMWARE_BUILD=y
528CONFIG_FW_LOADER=y
529# CONFIG_FIRMWARE_IN_KERNEL is not set
530CONFIG_EXTRA_FIRMWARE=""
531# CONFIG_DEBUG_DRIVER is not set
532# CONFIG_DEBUG_DEVRES is not set
533# CONFIG_SYS_HYPERVISOR is not set
534CONFIG_CONNECTOR=m
535CONFIG_MTD=y
536# CONFIG_MTD_DEBUG is not set
537CONFIG_MTD_CONCAT=y
538CONFIG_MTD_PARTITIONS=y
539# CONFIG_MTD_TESTS is not set
540# CONFIG_MTD_REDBOOT_PARTS is not set
541CONFIG_MTD_CMDLINE_PARTS=y
542# CONFIG_MTD_AFS_PARTS is not set
543# CONFIG_MTD_AR7_PARTS is not set
544
545#
546# User Modules And Translation Layers
547#
548CONFIG_MTD_CHAR=y
549CONFIG_MTD_BLKDEVS=y
550CONFIG_MTD_BLOCK=y
551CONFIG_FTL=y
552CONFIG_NFTL=y
553CONFIG_NFTL_RW=y
554CONFIG_INFTL=y
555CONFIG_RFD_FTL=y
556# CONFIG_SSFDC is not set
557# CONFIG_MTD_OOPS is not set
558
559#
560# RAM/ROM/Flash chip drivers
561#
562CONFIG_MTD_CFI=y
563CONFIG_MTD_JEDECPROBE=y
564CONFIG_MTD_GEN_PROBE=y
565# CONFIG_MTD_CFI_ADV_OPTIONS is not set
566CONFIG_MTD_MAP_BANK_WIDTH_1=y
567CONFIG_MTD_MAP_BANK_WIDTH_2=y
568CONFIG_MTD_MAP_BANK_WIDTH_4=y
569# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
570# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
571# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
572CONFIG_MTD_CFI_I1=y
573CONFIG_MTD_CFI_I2=y
574# CONFIG_MTD_CFI_I4 is not set
575# CONFIG_MTD_CFI_I8 is not set
576# CONFIG_MTD_CFI_INTELEXT is not set
577CONFIG_MTD_CFI_AMDSTD=y
578CONFIG_MTD_CFI_STAA=y
579CONFIG_MTD_CFI_UTIL=y
580CONFIG_MTD_RAM=y
581CONFIG_MTD_ROM=y
582# CONFIG_MTD_ABSENT is not set
583
584#
585# Mapping drivers for chip access
586#
587# CONFIG_MTD_COMPLEX_MAPPINGS is not set
588# CONFIG_MTD_PHYSMAP is not set
589# CONFIG_MTD_ARM_INTEGRATOR is not set
590# CONFIG_MTD_IMPA7 is not set
591# CONFIG_MTD_PLATRAM is not set
592
593#
594# Self-contained MTD device drivers
595#
596# CONFIG_MTD_DATAFLASH is not set
597# CONFIG_MTD_M25P80 is not set
598# CONFIG_MTD_SLRAM is not set
599# CONFIG_MTD_PHRAM is not set
600# CONFIG_MTD_MTDRAM is not set
601# CONFIG_MTD_BLOCK2MTD is not set
602
603#
604# Disk-On-Chip Device Drivers
605#
606# CONFIG_MTD_DOC2000 is not set
607# CONFIG_MTD_DOC2001 is not set
608# CONFIG_MTD_DOC2001PLUS is not set
609CONFIG_MTD_NAND=y
610CONFIG_MTD_NAND_VERIFY_WRITE=y
611# CONFIG_MTD_NAND_ECC_SMC is not set
612# CONFIG_MTD_NAND_MUSEUM_IDS is not set
613# CONFIG_MTD_NAND_GPIO is not set
614CONFIG_MTD_NAND_IDS=y
615CONFIG_MTD_NAND_S3C2410=y
616# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
617# CONFIG_MTD_NAND_S3C2410_HWECC is not set
618# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
619# CONFIG_MTD_NAND_DISKONCHIP is not set
620# CONFIG_MTD_NAND_NANDSIM is not set
621CONFIG_MTD_NAND_PLATFORM=y
622# CONFIG_MTD_ALAUDA is not set
623# CONFIG_MTD_ONENAND is not set
624
625#
626# LPDDR flash memory drivers
627#
628CONFIG_MTD_LPDDR=y
629CONFIG_MTD_QINFO_PROBE=y
630
631#
632# UBI - Unsorted block images
633#
634# CONFIG_MTD_UBI is not set
635# CONFIG_PARPORT is not set
636CONFIG_BLK_DEV=y
637# CONFIG_BLK_DEV_COW_COMMON is not set
638CONFIG_BLK_DEV_LOOP=m
639# CONFIG_BLK_DEV_CRYPTOLOOP is not set
640CONFIG_BLK_DEV_NBD=m
641# CONFIG_BLK_DEV_UB is not set
642CONFIG_BLK_DEV_RAM=y
643CONFIG_BLK_DEV_RAM_COUNT=16
644CONFIG_BLK_DEV_RAM_SIZE=65536
645# CONFIG_BLK_DEV_XIP is not set
646CONFIG_CDROM_PKTCDVD=m
647CONFIG_CDROM_PKTCDVD_BUFFERS=8
648# CONFIG_CDROM_PKTCDVD_WCACHE is not set
649# CONFIG_ATA_OVER_ETH is not set
650CONFIG_MISC_DEVICES=y
651# CONFIG_ICS932S401 is not set
652# CONFIG_ENCLOSURE_SERVICES is not set
653# CONFIG_ISL29003 is not set
654# CONFIG_C2PORT is not set
655
656#
657# EEPROM support
658#
659CONFIG_EEPROM_AT24=y
660# CONFIG_EEPROM_AT25 is not set
661# CONFIG_EEPROM_LEGACY is not set
662# CONFIG_EEPROM_93CX6 is not set
663CONFIG_HAVE_IDE=y
664# CONFIG_IDE is not set
665
666#
667# SCSI device support
668#
669# CONFIG_RAID_ATTRS is not set
670CONFIG_SCSI=m
671CONFIG_SCSI_DMA=y
672# CONFIG_SCSI_TGT is not set
673# CONFIG_SCSI_NETLINK is not set
674# CONFIG_SCSI_PROC_FS is not set
675
676#
677# SCSI support type (disk, tape, CD-ROM)
678#
679CONFIG_BLK_DEV_SD=m
680# CONFIG_CHR_DEV_ST is not set
681# CONFIG_CHR_DEV_OSST is not set
682# CONFIG_BLK_DEV_SR is not set
683CONFIG_CHR_DEV_SG=m
684# CONFIG_CHR_DEV_SCH is not set
685
686#
687# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
688#
689# CONFIG_SCSI_MULTI_LUN is not set
690# CONFIG_SCSI_CONSTANTS is not set
691# CONFIG_SCSI_LOGGING is not set
692# CONFIG_SCSI_SCAN_ASYNC is not set
693CONFIG_SCSI_WAIT_SCAN=m
694
695#
696# SCSI Transports
697#
698# CONFIG_SCSI_SPI_ATTRS is not set
699# CONFIG_SCSI_FC_ATTRS is not set
700# CONFIG_SCSI_ISCSI_ATTRS is not set
701# CONFIG_SCSI_SAS_LIBSAS is not set
702# CONFIG_SCSI_SRP_ATTRS is not set
703# CONFIG_SCSI_LOWLEVEL is not set
704# CONFIG_SCSI_DH is not set
705# CONFIG_SCSI_OSD_INITIATOR is not set
706# CONFIG_ATA is not set
707# CONFIG_MD is not set
708CONFIG_NETDEVICES=y
709CONFIG_COMPAT_NET_DEV_OPS=y
710# CONFIG_DUMMY is not set
711# CONFIG_BONDING is not set
712# CONFIG_MACVLAN is not set
713# CONFIG_EQUALIZER is not set
714CONFIG_TUN=m
715# CONFIG_VETH is not set
716# CONFIG_PHYLIB is not set
717CONFIG_NET_ETHERNET=y
718CONFIG_MII=y
719# CONFIG_AX88796 is not set
720# CONFIG_SMC91X is not set
721CONFIG_DM9000=y
722CONFIG_DM9000_DEBUGLEVEL=4
723# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
724# CONFIG_ENC28J60 is not set
725# CONFIG_ETHOC is not set
726# CONFIG_SMC911X is not set
727# CONFIG_SMSC911X is not set
728# CONFIG_DNET is not set
729# CONFIG_IBM_NEW_EMAC_ZMII is not set
730# CONFIG_IBM_NEW_EMAC_RGMII is not set
731# CONFIG_IBM_NEW_EMAC_TAH is not set
732# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
733# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
734# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
735# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
736# CONFIG_B44 is not set
737# CONFIG_NETDEV_1000 is not set
738# CONFIG_NETDEV_10000 is not set
739
740#
741# Wireless LAN
742#
743# CONFIG_WLAN_PRE80211 is not set
744CONFIG_WLAN_80211=y
745CONFIG_LIBERTAS=m
746# CONFIG_LIBERTAS_USB is not set
747CONFIG_LIBERTAS_SDIO=m
748# CONFIG_LIBERTAS_SPI is not set
749# CONFIG_LIBERTAS_DEBUG is not set
750# CONFIG_LIBERTAS_THINFIRM is not set
751# CONFIG_AT76C50X_USB is not set
752# CONFIG_USB_ZD1201 is not set
753# CONFIG_USB_NET_RNDIS_WLAN is not set
754# CONFIG_RTL8187 is not set
755# CONFIG_MAC80211_HWSIM is not set
756# CONFIG_P54_COMMON is not set
757# CONFIG_AR9170_USB is not set
758CONFIG_HOSTAP=m
759CONFIG_HOSTAP_FIRMWARE=y
760CONFIG_HOSTAP_FIRMWARE_NVRAM=y
761# CONFIG_B43 is not set
762# CONFIG_B43LEGACY is not set
763CONFIG_ZD1211RW=m
764CONFIG_ZD1211RW_DEBUG=y
765# CONFIG_RT2X00 is not set
766
767#
768# Enable WiMAX (Networking options) to see the WiMAX drivers
769#
770
771#
772# USB Network Adapters
773#
774# CONFIG_USB_CATC is not set
775# CONFIG_USB_KAWETH is not set
776# CONFIG_USB_PEGASUS is not set
777# CONFIG_USB_RTL8150 is not set
778# CONFIG_USB_USBNET is not set
779# CONFIG_WAN is not set
780CONFIG_PPP=m
781CONFIG_PPP_MULTILINK=y
782CONFIG_PPP_FILTER=y
783CONFIG_PPP_ASYNC=m
784CONFIG_PPP_SYNC_TTY=m
785CONFIG_PPP_DEFLATE=m
786CONFIG_PPP_BSDCOMP=m
787CONFIG_PPP_MPPE=m
788# CONFIG_PPPOE is not set
789# CONFIG_PPPOL2TP is not set
790# CONFIG_SLIP is not set
791CONFIG_SLHC=m
792# CONFIG_NETCONSOLE is not set
793# CONFIG_NETPOLL is not set
794# CONFIG_NET_POLL_CONTROLLER is not set
795# CONFIG_ISDN is not set
796
797#
798# Input device support
799#
800CONFIG_INPUT=y
801CONFIG_INPUT_FF_MEMLESS=y
802# CONFIG_INPUT_POLLDEV is not set
803
804#
805# Userland interfaces
806#
807CONFIG_INPUT_MOUSEDEV=y
808CONFIG_INPUT_MOUSEDEV_PSAUX=y
809CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
810CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
811# CONFIG_INPUT_JOYDEV is not set
812CONFIG_INPUT_EVDEV=y
813CONFIG_INPUT_EVBUG=m
814
815#
816# Input Device Drivers
817#
818CONFIG_INPUT_KEYBOARD=y
819# CONFIG_KEYBOARD_ATKBD is not set
820# CONFIG_KEYBOARD_SUNKBD is not set
821# CONFIG_KEYBOARD_LKKBD is not set
822# CONFIG_KEYBOARD_XTKBD is not set
823# CONFIG_KEYBOARD_NEWTON is not set
824# CONFIG_KEYBOARD_STOWAWAY is not set
825CONFIG_KEYBOARD_GPIO=y
826CONFIG_INPUT_MOUSE=y
827CONFIG_MOUSE_PS2=y
828CONFIG_MOUSE_PS2_ALPS=y
829CONFIG_MOUSE_PS2_LOGIPS2PP=y
830CONFIG_MOUSE_PS2_SYNAPTICS=y
831CONFIG_MOUSE_PS2_TRACKPOINT=y
832# CONFIG_MOUSE_PS2_ELANTECH is not set
833# CONFIG_MOUSE_PS2_TOUCHKIT is not set
834# CONFIG_MOUSE_SERIAL is not set
835# CONFIG_MOUSE_APPLETOUCH is not set
836# CONFIG_MOUSE_BCM5974 is not set
837# CONFIG_MOUSE_VSXXXAA is not set
838# CONFIG_MOUSE_GPIO is not set
839# CONFIG_INPUT_JOYSTICK is not set
840# CONFIG_INPUT_TABLET is not set
841CONFIG_INPUT_TOUCHSCREEN=y
842# CONFIG_TOUCHSCREEN_ADS7846 is not set
843# CONFIG_TOUCHSCREEN_AD7877 is not set
844# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
845# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
846# CONFIG_TOUCHSCREEN_AD7879 is not set
847# CONFIG_TOUCHSCREEN_FUJITSU is not set
848# CONFIG_TOUCHSCREEN_GUNZE is not set
849# CONFIG_TOUCHSCREEN_ELO is not set
850# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
851# CONFIG_TOUCHSCREEN_MTOUCH is not set
852# CONFIG_TOUCHSCREEN_INEXIO is not set
853# CONFIG_TOUCHSCREEN_MK712 is not set
854# CONFIG_TOUCHSCREEN_PENMOUNT is not set
855# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
856# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
857# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
858# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
859# CONFIG_TOUCHSCREEN_TSC2007 is not set
860# CONFIG_INPUT_MISC is not set
861
862#
863# Hardware I/O ports
864#
865CONFIG_SERIO=y
866CONFIG_SERIO_SERPORT=y
867CONFIG_SERIO_LIBPS2=y
868CONFIG_SERIO_RAW=y
869# CONFIG_GAMEPORT is not set
870
871#
872# Character devices
873#
874CONFIG_VT=y
875CONFIG_CONSOLE_TRANSLATIONS=y
876CONFIG_VT_CONSOLE=y
877CONFIG_HW_CONSOLE=y
878CONFIG_VT_HW_CONSOLE_BINDING=y
879CONFIG_DEVKMEM=y
880# CONFIG_SERIAL_NONSTANDARD is not set
881
882#
883# Serial drivers
884#
885# CONFIG_SERIAL_8250 is not set
886
887#
888# Non-8250 serial port support
889#
890CONFIG_SERIAL_SAMSUNG=y
891CONFIG_SERIAL_SAMSUNG_UARTS=3
892CONFIG_SERIAL_SAMSUNG_CONSOLE=y
893CONFIG_SERIAL_S3C2440=y
894# CONFIG_SERIAL_MAX3100 is not set
895CONFIG_SERIAL_CORE=y
896CONFIG_SERIAL_CORE_CONSOLE=y
897CONFIG_UNIX98_PTYS=y
898# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
899CONFIG_LEGACY_PTYS=y
900CONFIG_LEGACY_PTY_COUNT=128
901CONFIG_IPMI_HANDLER=m
902# CONFIG_IPMI_PANIC_EVENT is not set
903CONFIG_IPMI_DEVICE_INTERFACE=m
904CONFIG_IPMI_SI=m
905CONFIG_IPMI_WATCHDOG=m
906CONFIG_IPMI_POWEROFF=m
907CONFIG_HW_RANDOM=y
908# CONFIG_HW_RANDOM_TIMERIOMEM is not set
909# CONFIG_R3964 is not set
910# CONFIG_RAW_DRIVER is not set
911# CONFIG_TCG_TPM is not set
912CONFIG_I2C=y
913CONFIG_I2C_BOARDINFO=y
914CONFIG_I2C_CHARDEV=y
915CONFIG_I2C_HELPER_AUTO=y
916CONFIG_I2C_ALGOBIT=y
917
918#
919# I2C Hardware Bus support
920#
921
922#
923# I2C system bus drivers (mostly embedded / system-on-chip)
924#
925# CONFIG_I2C_GPIO is not set
926# CONFIG_I2C_OCORES is not set
927CONFIG_I2C_S3C2410=y
928CONFIG_I2C_SIMTEC=y
929
930#
931# External I2C/SMBus adapter drivers
932#
933# CONFIG_I2C_PARPORT_LIGHT is not set
934# CONFIG_I2C_TAOS_EVM is not set
935# CONFIG_I2C_TINY_USB is not set
936
937#
938# Other I2C/SMBus bus drivers
939#
940# CONFIG_I2C_PCA_PLATFORM is not set
941# CONFIG_I2C_STUB is not set
942
943#
944# Miscellaneous I2C Chip support
945#
946# CONFIG_DS1682 is not set
947# CONFIG_SENSORS_PCF8574 is not set
948# CONFIG_PCF8575 is not set
949# CONFIG_SENSORS_PCA9539 is not set
950# CONFIG_SENSORS_MAX6875 is not set
951CONFIG_SENSORS_TSL2550=m
952# CONFIG_I2C_DEBUG_CORE is not set
953# CONFIG_I2C_DEBUG_ALGO is not set
954# CONFIG_I2C_DEBUG_BUS is not set
955# CONFIG_I2C_DEBUG_CHIP is not set
956CONFIG_SPI=y
957# CONFIG_SPI_DEBUG is not set
958CONFIG_SPI_MASTER=y
959
960#
961# SPI Master Controller Drivers
962#
963CONFIG_SPI_BITBANG=y
964# CONFIG_SPI_GPIO is not set
965CONFIG_SPI_S3C24XX=y
966# CONFIG_SPI_S3C24XX_GPIO is not set
967
968#
969# SPI Protocol Masters
970#
971CONFIG_SPI_SPIDEV=y
972# CONFIG_SPI_TLE62X0 is not set
973CONFIG_ARCH_REQUIRE_GPIOLIB=y
974CONFIG_GPIOLIB=y
975# CONFIG_DEBUG_GPIO is not set
976CONFIG_GPIO_SYSFS=y
977
978#
979# Memory mapped GPIO expanders:
980#
981
982#
983# I2C GPIO expanders:
984#
985# CONFIG_GPIO_MAX732X is not set
986# CONFIG_GPIO_PCA953X is not set
987# CONFIG_GPIO_PCF857X is not set
988
989#
990# PCI GPIO expanders:
991#
992
993#
994# SPI GPIO expanders:
995#
996# CONFIG_GPIO_MAX7301 is not set
997# CONFIG_GPIO_MCP23S08 is not set
998# CONFIG_W1 is not set
999# CONFIG_POWER_SUPPLY is not set
1000CONFIG_HWMON=y
1001# CONFIG_HWMON_VID is not set
1002# CONFIG_SENSORS_AD7414 is not set
1003# CONFIG_SENSORS_AD7418 is not set
1004# CONFIG_SENSORS_ADCXX is not set
1005# CONFIG_SENSORS_ADM1021 is not set
1006# CONFIG_SENSORS_ADM1025 is not set
1007# CONFIG_SENSORS_ADM1026 is not set
1008# CONFIG_SENSORS_ADM1029 is not set
1009# CONFIG_SENSORS_ADM1031 is not set
1010# CONFIG_SENSORS_ADM9240 is not set
1011# CONFIG_SENSORS_ADT7462 is not set
1012# CONFIG_SENSORS_ADT7470 is not set
1013# CONFIG_SENSORS_ADT7473 is not set
1014# CONFIG_SENSORS_ADT7475 is not set
1015# CONFIG_SENSORS_ATXP1 is not set
1016# CONFIG_SENSORS_DS1621 is not set
1017# CONFIG_SENSORS_F71805F is not set
1018# CONFIG_SENSORS_F71882FG is not set
1019# CONFIG_SENSORS_F75375S is not set
1020# CONFIG_SENSORS_G760A is not set
1021# CONFIG_SENSORS_GL518SM is not set
1022# CONFIG_SENSORS_GL520SM is not set
1023# CONFIG_SENSORS_IBMAEM is not set
1024# CONFIG_SENSORS_IBMPEX is not set
1025# CONFIG_SENSORS_IT87 is not set
1026# CONFIG_SENSORS_LM63 is not set
1027# CONFIG_SENSORS_LM70 is not set
1028CONFIG_SENSORS_LM75=y
1029# CONFIG_SENSORS_LM77 is not set
1030# CONFIG_SENSORS_LM78 is not set
1031# CONFIG_SENSORS_LM80 is not set
1032# CONFIG_SENSORS_LM83 is not set
1033# CONFIG_SENSORS_LM85 is not set
1034# CONFIG_SENSORS_LM87 is not set
1035# CONFIG_SENSORS_LM90 is not set
1036# CONFIG_SENSORS_LM92 is not set
1037# CONFIG_SENSORS_LM93 is not set
1038# CONFIG_SENSORS_LTC4215 is not set
1039# CONFIG_SENSORS_LTC4245 is not set
1040# CONFIG_SENSORS_LM95241 is not set
1041# CONFIG_SENSORS_MAX1111 is not set
1042# CONFIG_SENSORS_MAX1619 is not set
1043# CONFIG_SENSORS_MAX6650 is not set
1044# CONFIG_SENSORS_PC87360 is not set
1045# CONFIG_SENSORS_PC87427 is not set
1046# CONFIG_SENSORS_PCF8591 is not set
1047# CONFIG_SENSORS_SHT15 is not set
1048# CONFIG_SENSORS_DME1737 is not set
1049# CONFIG_SENSORS_SMSC47M1 is not set
1050# CONFIG_SENSORS_SMSC47M192 is not set
1051# CONFIG_SENSORS_SMSC47B397 is not set
1052# CONFIG_SENSORS_ADS7828 is not set
1053# CONFIG_SENSORS_THMC50 is not set
1054# CONFIG_SENSORS_VT1211 is not set
1055# CONFIG_SENSORS_W83781D is not set
1056# CONFIG_SENSORS_W83791D is not set
1057# CONFIG_SENSORS_W83792D is not set
1058# CONFIG_SENSORS_W83793 is not set
1059# CONFIG_SENSORS_W83L785TS is not set
1060# CONFIG_SENSORS_W83L786NG is not set
1061# CONFIG_SENSORS_W83627HF is not set
1062# CONFIG_SENSORS_W83627EHF is not set
1063# CONFIG_SENSORS_LIS3_SPI is not set
1064# CONFIG_HWMON_DEBUG_CHIP is not set
1065CONFIG_THERMAL=m
1066# CONFIG_THERMAL_HWMON is not set
1067CONFIG_WATCHDOG=y
1068# CONFIG_WATCHDOG_NOWAYOUT is not set
1069
1070#
1071# Watchdog Device Drivers
1072#
1073# CONFIG_SOFT_WATCHDOG is not set
1074CONFIG_S3C2410_WATCHDOG=y
1075
1076#
1077# USB-based Watchdog Cards
1078#
1079# CONFIG_USBPCWATCHDOG is not set
1080CONFIG_SSB_POSSIBLE=y
1081
1082#
1083# Sonics Silicon Backplane
1084#
1085# CONFIG_SSB is not set
1086
1087#
1088# Multifunction device drivers
1089#
1090# CONFIG_MFD_CORE is not set
1091# CONFIG_MFD_SM501 is not set
1092# CONFIG_MFD_ASIC3 is not set
1093# CONFIG_HTC_EGPIO is not set
1094# CONFIG_HTC_PASIC3 is not set
1095# CONFIG_TPS65010 is not set
1096# CONFIG_TWL4030_CORE is not set
1097# CONFIG_MFD_TMIO is not set
1098# CONFIG_MFD_T7L66XB is not set
1099# CONFIG_MFD_TC6387XB is not set
1100# CONFIG_MFD_TC6393XB is not set
1101# CONFIG_PMIC_DA903X is not set
1102# CONFIG_MFD_WM8400 is not set
1103# CONFIG_MFD_WM8350_I2C is not set
1104# CONFIG_MFD_PCF50633 is not set
1105
1106#
1107# Multimedia devices
1108#
1109
1110#
1111# Multimedia core support
1112#
1113CONFIG_VIDEO_DEV=m
1114CONFIG_VIDEO_V4L2_COMMON=m
1115CONFIG_VIDEO_ALLOW_V4L1=y
1116CONFIG_VIDEO_V4L1_COMPAT=y
1117CONFIG_DVB_CORE=m
1118CONFIG_VIDEO_MEDIA=m
1119
1120#
1121# Multimedia drivers
1122#
1123# CONFIG_MEDIA_ATTACH is not set
1124CONFIG_MEDIA_TUNER=m
1125# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
1126CONFIG_MEDIA_TUNER_SIMPLE=m
1127CONFIG_MEDIA_TUNER_TDA8290=m
1128CONFIG_MEDIA_TUNER_TDA9887=m
1129CONFIG_MEDIA_TUNER_TEA5761=m
1130CONFIG_MEDIA_TUNER_TEA5767=m
1131CONFIG_MEDIA_TUNER_MT20XX=m
1132CONFIG_MEDIA_TUNER_XC2028=m
1133CONFIG_MEDIA_TUNER_XC5000=m
1134CONFIG_MEDIA_TUNER_MC44S803=m
1135CONFIG_VIDEO_V4L2=m
1136CONFIG_VIDEO_V4L1=m
1137CONFIG_VIDEOBUF_GEN=m
1138CONFIG_VIDEO_CAPTURE_DRIVERS=y
1139# CONFIG_VIDEO_ADV_DEBUG is not set
1140# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
1141CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
1142# CONFIG_VIDEO_VIVI is not set
1143# CONFIG_VIDEO_CPIA is not set
1144# CONFIG_VIDEO_CPIA2 is not set
1145# CONFIG_VIDEO_SAA5246A is not set
1146# CONFIG_VIDEO_SAA5249 is not set
1147# CONFIG_VIDEO_AU0828 is not set
1148CONFIG_SOC_CAMERA=m
1149# CONFIG_SOC_CAMERA_MT9M001 is not set
1150# CONFIG_SOC_CAMERA_MT9M111 is not set
1151# CONFIG_SOC_CAMERA_MT9T031 is not set
1152# CONFIG_SOC_CAMERA_MT9V022 is not set
1153# CONFIG_SOC_CAMERA_TW9910 is not set
1154CONFIG_SOC_CAMERA_PLATFORM=m
1155# CONFIG_SOC_CAMERA_OV772X is not set
1156# CONFIG_VIDEO_SH_MOBILE_CEU is not set
1157CONFIG_V4L_USB_DRIVERS=y
1158# CONFIG_USB_VIDEO_CLASS is not set
1159CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
1160CONFIG_USB_GSPCA=m
1161# CONFIG_USB_M5602 is not set
1162# CONFIG_USB_STV06XX is not set
1163# CONFIG_USB_GSPCA_CONEX is not set
1164# CONFIG_USB_GSPCA_ETOMS is not set
1165# CONFIG_USB_GSPCA_FINEPIX is not set
1166# CONFIG_USB_GSPCA_MARS is not set
1167# CONFIG_USB_GSPCA_MR97310A is not set
1168# CONFIG_USB_GSPCA_OV519 is not set
1169# CONFIG_USB_GSPCA_OV534 is not set
1170# CONFIG_USB_GSPCA_PAC207 is not set
1171# CONFIG_USB_GSPCA_PAC7311 is not set
1172# CONFIG_USB_GSPCA_SONIXB is not set
1173# CONFIG_USB_GSPCA_SONIXJ is not set
1174# CONFIG_USB_GSPCA_SPCA500 is not set
1175# CONFIG_USB_GSPCA_SPCA501 is not set
1176# CONFIG_USB_GSPCA_SPCA505 is not set
1177# CONFIG_USB_GSPCA_SPCA506 is not set
1178# CONFIG_USB_GSPCA_SPCA508 is not set
1179# CONFIG_USB_GSPCA_SPCA561 is not set
1180# CONFIG_USB_GSPCA_SQ905 is not set
1181# CONFIG_USB_GSPCA_SQ905C is not set
1182# CONFIG_USB_GSPCA_STK014 is not set
1183# CONFIG_USB_GSPCA_SUNPLUS is not set
1184# CONFIG_USB_GSPCA_T613 is not set
1185# CONFIG_USB_GSPCA_TV8532 is not set
1186# CONFIG_USB_GSPCA_VC032X is not set
1187CONFIG_USB_GSPCA_ZC3XX=m
1188# CONFIG_VIDEO_PVRUSB2 is not set
1189# CONFIG_VIDEO_HDPVR is not set
1190# CONFIG_VIDEO_EM28XX is not set
1191# CONFIG_VIDEO_CX231XX is not set
1192# CONFIG_VIDEO_USBVISION is not set
1193# CONFIG_USB_VICAM is not set
1194# CONFIG_USB_IBMCAM is not set
1195# CONFIG_USB_KONICAWC is not set
1196# CONFIG_USB_QUICKCAM_MESSENGER is not set
1197# CONFIG_USB_ET61X251 is not set
1198# CONFIG_VIDEO_OVCAMCHIP is not set
1199# CONFIG_USB_OV511 is not set
1200# CONFIG_USB_SE401 is not set
1201# CONFIG_USB_SN9C102 is not set
1202# CONFIG_USB_STV680 is not set
1203# CONFIG_USB_ZC0301 is not set
1204# CONFIG_USB_PWC is not set
1205# CONFIG_USB_PWC_INPUT_EVDEV is not set
1206# CONFIG_USB_ZR364XX is not set
1207# CONFIG_USB_STKWEBCAM is not set
1208# CONFIG_USB_S2255 is not set
1209CONFIG_RADIO_ADAPTERS=y
1210# CONFIG_USB_DSBR is not set
1211# CONFIG_USB_SI470X is not set
1212# CONFIG_USB_MR800 is not set
1213# CONFIG_RADIO_TEA5764 is not set
1214# CONFIG_DVB_DYNAMIC_MINORS is not set
1215CONFIG_DVB_CAPTURE_DRIVERS=y
1216# CONFIG_TTPCI_EEPROM is not set
1217
1218#
1219# Supported USB Adapters
1220#
1221# CONFIG_DVB_USB is not set
1222# CONFIG_DVB_SIANO_SMS1XXX is not set
1223
1224#
1225# Supported FlexCopII (B2C2) Adapters
1226#
1227# CONFIG_DVB_B2C2_FLEXCOP is not set
1228
1229#
1230# Supported DVB Frontends
1231#
1232# CONFIG_DVB_FE_CUSTOMISE is not set
1233# CONFIG_DAB is not set
1234
1235#
1236# Graphics support
1237#
1238# CONFIG_VGASTATE is not set
1239CONFIG_VIDEO_OUTPUT_CONTROL=y
1240CONFIG_FB=y
1241CONFIG_FIRMWARE_EDID=y
1242# CONFIG_FB_DDC is not set
1243# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1244CONFIG_FB_CFB_FILLRECT=y
1245CONFIG_FB_CFB_COPYAREA=y
1246CONFIG_FB_CFB_IMAGEBLIT=y
1247# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1248# CONFIG_FB_SYS_FILLRECT is not set
1249# CONFIG_FB_SYS_COPYAREA is not set
1250# CONFIG_FB_SYS_IMAGEBLIT is not set
1251# CONFIG_FB_FOREIGN_ENDIAN is not set
1252# CONFIG_FB_SYS_FOPS is not set
1253# CONFIG_FB_SVGALIB is not set
1254# CONFIG_FB_MACMODES is not set
1255# CONFIG_FB_BACKLIGHT is not set
1256CONFIG_FB_MODE_HELPERS=y
1257CONFIG_FB_TILEBLITTING=y
1258
1259#
1260# Frame buffer hardware drivers
1261#
1262# CONFIG_FB_UVESA is not set
1263# CONFIG_FB_S1D13XXX is not set
1264CONFIG_FB_S3C2410=y
1265# CONFIG_FB_S3C2410_DEBUG is not set
1266# CONFIG_FB_VIRTUAL is not set
1267# CONFIG_FB_METRONOME is not set
1268# CONFIG_FB_MB862XX is not set
1269# CONFIG_FB_BROADSHEET is not set
1270CONFIG_BACKLIGHT_LCD_SUPPORT=y
1271CONFIG_LCD_CLASS_DEVICE=y
1272# CONFIG_LCD_LTV350QV is not set
1273# CONFIG_LCD_ILI9320 is not set
1274# CONFIG_LCD_TDO24M is not set
1275# CONFIG_LCD_VGG2432A4 is not set
1276CONFIG_LCD_PLATFORM=y
1277CONFIG_BACKLIGHT_CLASS_DEVICE=y
1278# CONFIG_BACKLIGHT_GENERIC is not set
1279CONFIG_BACKLIGHT_PWM=y
1280
1281#
1282# Display device support
1283#
1284CONFIG_DISPLAY_SUPPORT=y
1285
1286#
1287# Display hardware drivers
1288#
1289
1290#
1291# Console display driver support
1292#
1293# CONFIG_VGA_CONSOLE is not set
1294CONFIG_DUMMY_CONSOLE=y
1295CONFIG_FRAMEBUFFER_CONSOLE=y
1296CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
1297CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
1298CONFIG_FONTS=y
1299CONFIG_FONT_8x8=y
1300# CONFIG_FONT_8x16 is not set
1301# CONFIG_FONT_6x11 is not set
1302# CONFIG_FONT_7x14 is not set
1303# CONFIG_FONT_PEARL_8x8 is not set
1304# CONFIG_FONT_ACORN_8x8 is not set
1305CONFIG_FONT_MINI_4x6=y
1306# CONFIG_FONT_SUN8x16 is not set
1307# CONFIG_FONT_SUN12x22 is not set
1308# CONFIG_FONT_10x18 is not set
1309CONFIG_LOGO=y
1310# CONFIG_LOGO_LINUX_MONO is not set
1311# CONFIG_LOGO_LINUX_VGA16 is not set
1312CONFIG_LOGO_LINUX_CLUT224=y
1313CONFIG_SOUND=y
1314CONFIG_SOUND_OSS_CORE=y
1315CONFIG_SND=y
1316CONFIG_SND_TIMER=y
1317CONFIG_SND_PCM=y
1318CONFIG_SND_HWDEP=m
1319CONFIG_SND_RAWMIDI=m
1320CONFIG_SND_JACK=y
1321CONFIG_SND_SEQUENCER=m
1322CONFIG_SND_SEQ_DUMMY=m
1323CONFIG_SND_OSSEMUL=y
1324CONFIG_SND_MIXER_OSS=m
1325CONFIG_SND_PCM_OSS=m
1326CONFIG_SND_PCM_OSS_PLUGINS=y
1327CONFIG_SND_SEQUENCER_OSS=y
1328CONFIG_SND_DYNAMIC_MINORS=y
1329CONFIG_SND_SUPPORT_OLD_API=y
1330CONFIG_SND_VERBOSE_PROCFS=y
1331# CONFIG_SND_VERBOSE_PRINTK is not set
1332# CONFIG_SND_DEBUG is not set
1333# CONFIG_SND_DRIVERS is not set
1334# CONFIG_SND_ARM is not set
1335# CONFIG_SND_SPI is not set
1336CONFIG_SND_USB=y
1337CONFIG_SND_USB_AUDIO=m
1338CONFIG_SND_USB_CAIAQ=m
1339CONFIG_SND_USB_CAIAQ_INPUT=y
1340CONFIG_SND_SOC=y
1341CONFIG_SND_S3C24XX_SOC=y
1342CONFIG_SND_S3C24XX_SOC_I2S=y
1343# CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650 is not set
1344CONFIG_SND_S3C24XX_SOC_S3C24XX_UDA134X=y
1345CONFIG_SND_SOC_I2C_AND_SPI=y
1346# CONFIG_SND_SOC_ALL_CODECS is not set
1347CONFIG_SND_SOC_L3=y
1348CONFIG_SND_SOC_UDA134X=y
1349# CONFIG_SOUND_PRIME is not set
1350CONFIG_HID_SUPPORT=y
1351CONFIG_HID=y
1352# CONFIG_HID_DEBUG is not set
1353CONFIG_HIDRAW=y
1354
1355#
1356# USB Input Devices
1357#
1358CONFIG_USB_HID=y
1359CONFIG_HID_PID=y
1360CONFIG_USB_HIDDEV=y
1361
1362#
1363# Special HID drivers
1364#
1365CONFIG_HID_A4TECH=y
1366CONFIG_HID_APPLE=y
1367CONFIG_HID_BELKIN=y
1368CONFIG_HID_CHERRY=y
1369CONFIG_HID_CHICONY=y
1370CONFIG_HID_CYPRESS=y
1371# CONFIG_DRAGONRISE_FF is not set
1372CONFIG_HID_EZKEY=y
1373CONFIG_HID_KYE=y
1374CONFIG_HID_GYRATION=y
1375CONFIG_HID_KENSINGTON=y
1376CONFIG_HID_LOGITECH=y
1377# CONFIG_LOGITECH_FF is not set
1378# CONFIG_LOGIRUMBLEPAD2_FF is not set
1379CONFIG_HID_MICROSOFT=y
1380CONFIG_HID_MONTEREY=y
1381CONFIG_HID_NTRIG=y
1382CONFIG_HID_PANTHERLORD=y
1383# CONFIG_PANTHERLORD_FF is not set
1384CONFIG_HID_PETALYNX=y
1385CONFIG_HID_SAMSUNG=y
1386CONFIG_HID_SONY=y
1387CONFIG_HID_SUNPLUS=y
1388# CONFIG_GREENASIA_FF is not set
1389CONFIG_HID_TOPSEED=y
1390# CONFIG_THRUSTMASTER_FF is not set
1391# CONFIG_ZEROPLUS_FF is not set
1392CONFIG_USB_SUPPORT=y
1393CONFIG_USB_ARCH_HAS_HCD=y
1394CONFIG_USB_ARCH_HAS_OHCI=y
1395# CONFIG_USB_ARCH_HAS_EHCI is not set
1396CONFIG_USB=y
1397# CONFIG_USB_DEBUG is not set
1398# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1399
1400#
1401# Miscellaneous USB options
1402#
1403CONFIG_USB_DEVICEFS=y
1404# CONFIG_USB_DEVICE_CLASS is not set
1405# CONFIG_USB_DYNAMIC_MINORS is not set
1406# CONFIG_USB_SUSPEND is not set
1407# CONFIG_USB_OTG is not set
1408# CONFIG_USB_MON is not set
1409# CONFIG_USB_WUSB is not set
1410# CONFIG_USB_WUSB_CBAF is not set
1411
1412#
1413# USB Host Controller Drivers
1414#
1415# CONFIG_USB_C67X00_HCD is not set
1416# CONFIG_USB_OXU210HP_HCD is not set
1417# CONFIG_USB_ISP116X_HCD is not set
1418# CONFIG_USB_ISP1760_HCD is not set
1419CONFIG_USB_OHCI_HCD=y
1420# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1421# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1422CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1423# CONFIG_USB_SL811_HCD is not set
1424# CONFIG_USB_R8A66597_HCD is not set
1425# CONFIG_USB_HWA_HCD is not set
1426# CONFIG_USB_MUSB_HDRC is not set
1427# CONFIG_USB_GADGET_MUSB_HDRC is not set
1428
1429#
1430# USB Device Class drivers
1431#
1432CONFIG_USB_ACM=m
1433# CONFIG_USB_PRINTER is not set
1434CONFIG_USB_WDM=m
1435# CONFIG_USB_TMC is not set
1436
1437#
1438# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1439#
1440
1441#
1442# also be needed; see USB_STORAGE Help for more info
1443#
1444CONFIG_USB_STORAGE=m
1445# CONFIG_USB_STORAGE_DEBUG is not set
1446CONFIG_USB_STORAGE_DATAFAB=m
1447# CONFIG_USB_STORAGE_FREECOM is not set
1448CONFIG_USB_STORAGE_ISD200=m
1449CONFIG_USB_STORAGE_USBAT=m
1450CONFIG_USB_STORAGE_SDDR09=m
1451CONFIG_USB_STORAGE_SDDR55=m
1452CONFIG_USB_STORAGE_JUMPSHOT=m
1453CONFIG_USB_STORAGE_ALAUDA=m
1454# CONFIG_USB_STORAGE_ONETOUCH is not set
1455# CONFIG_USB_STORAGE_KARMA is not set
1456# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1457CONFIG_USB_LIBUSUAL=y
1458
1459#
1460# USB Imaging devices
1461#
1462# CONFIG_USB_MDC800 is not set
1463# CONFIG_USB_MICROTEK is not set
1464
1465#
1466# USB port drivers
1467#
1468CONFIG_USB_SERIAL=m
1469# CONFIG_USB_EZUSB is not set
1470# CONFIG_USB_SERIAL_GENERIC is not set
1471# CONFIG_USB_SERIAL_AIRCABLE is not set
1472# CONFIG_USB_SERIAL_ARK3116 is not set
1473# CONFIG_USB_SERIAL_BELKIN is not set
1474# CONFIG_USB_SERIAL_CH341 is not set
1475# CONFIG_USB_SERIAL_WHITEHEAT is not set
1476# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1477CONFIG_USB_SERIAL_CP210X=m
1478# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1479# CONFIG_USB_SERIAL_EMPEG is not set
1480CONFIG_USB_SERIAL_FTDI_SIO=m
1481# CONFIG_USB_SERIAL_FUNSOFT is not set
1482# CONFIG_USB_SERIAL_VISOR is not set
1483# CONFIG_USB_SERIAL_IPAQ is not set
1484# CONFIG_USB_SERIAL_IR is not set
1485# CONFIG_USB_SERIAL_EDGEPORT is not set
1486# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1487# CONFIG_USB_SERIAL_GARMIN is not set
1488# CONFIG_USB_SERIAL_IPW is not set
1489# CONFIG_USB_SERIAL_IUU is not set
1490# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
1491# CONFIG_USB_SERIAL_KEYSPAN is not set
1492# CONFIG_USB_SERIAL_KLSI is not set
1493# CONFIG_USB_SERIAL_KOBIL_SCT is not set
1494# CONFIG_USB_SERIAL_MCT_U232 is not set
1495# CONFIG_USB_SERIAL_MOS7720 is not set
1496# CONFIG_USB_SERIAL_MOS7840 is not set
1497# CONFIG_USB_SERIAL_MOTOROLA is not set
1498# CONFIG_USB_SERIAL_NAVMAN is not set
1499# CONFIG_USB_SERIAL_PL2303 is not set
1500# CONFIG_USB_SERIAL_OTI6858 is not set
1501# CONFIG_USB_SERIAL_QUALCOMM is not set
1502CONFIG_USB_SERIAL_SPCP8X5=m
1503# CONFIG_USB_SERIAL_HP4X is not set
1504# CONFIG_USB_SERIAL_SAFE is not set
1505# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1506# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1507# CONFIG_USB_SERIAL_SYMBOL is not set
1508# CONFIG_USB_SERIAL_TI is not set
1509# CONFIG_USB_SERIAL_CYBERJACK is not set
1510# CONFIG_USB_SERIAL_XIRCOM is not set
1511# CONFIG_USB_SERIAL_OPTION is not set
1512# CONFIG_USB_SERIAL_OMNINET is not set
1513# CONFIG_USB_SERIAL_OPTICON is not set
1514# CONFIG_USB_SERIAL_DEBUG is not set
1515
1516#
1517# USB Miscellaneous drivers
1518#
1519# CONFIG_USB_EMI62 is not set
1520# CONFIG_USB_EMI26 is not set
1521# CONFIG_USB_ADUTUX is not set
1522# CONFIG_USB_SEVSEG is not set
1523# CONFIG_USB_RIO500 is not set
1524# CONFIG_USB_LEGOTOWER is not set
1525# CONFIG_USB_LCD is not set
1526# CONFIG_USB_BERRY_CHARGE is not set
1527# CONFIG_USB_LED is not set
1528# CONFIG_USB_CYPRESS_CY7C63 is not set
1529# CONFIG_USB_CYTHERM is not set
1530# CONFIG_USB_IDMOUSE is not set
1531# CONFIG_USB_FTDI_ELAN is not set
1532# CONFIG_USB_APPLEDISPLAY is not set
1533# CONFIG_USB_LD is not set
1534# CONFIG_USB_TRANCEVIBRATOR is not set
1535# CONFIG_USB_IOWARRIOR is not set
1536# CONFIG_USB_TEST is not set
1537# CONFIG_USB_ISIGHTFW is not set
1538# CONFIG_USB_VST is not set
1539CONFIG_USB_GADGET=y
1540# CONFIG_USB_GADGET_DEBUG is not set
1541# CONFIG_USB_GADGET_DEBUG_FILES is not set
1542# CONFIG_USB_GADGET_DEBUG_FS is not set
1543CONFIG_USB_GADGET_VBUS_DRAW=2
1544CONFIG_USB_GADGET_SELECTED=y
1545# CONFIG_USB_GADGET_AT91 is not set
1546# CONFIG_USB_GADGET_ATMEL_USBA is not set
1547# CONFIG_USB_GADGET_FSL_USB2 is not set
1548# CONFIG_USB_GADGET_LH7A40X is not set
1549# CONFIG_USB_GADGET_OMAP is not set
1550# CONFIG_USB_GADGET_PXA25X is not set
1551# CONFIG_USB_GADGET_PXA27X is not set
1552CONFIG_USB_GADGET_S3C2410=y
1553CONFIG_USB_S3C2410=y
1554# CONFIG_USB_S3C2410_DEBUG is not set
1555# CONFIG_USB_GADGET_IMX is not set
1556# CONFIG_USB_GADGET_M66592 is not set
1557# CONFIG_USB_GADGET_AMD5536UDC is not set
1558# CONFIG_USB_GADGET_FSL_QE is not set
1559# CONFIG_USB_GADGET_CI13XXX is not set
1560# CONFIG_USB_GADGET_NET2280 is not set
1561# CONFIG_USB_GADGET_GOKU is not set
1562# CONFIG_USB_GADGET_DUMMY_HCD is not set
1563# CONFIG_USB_GADGET_DUALSPEED is not set
1564CONFIG_USB_ZERO=m
1565CONFIG_USB_ETH=m
1566CONFIG_USB_ETH_RNDIS=y
1567CONFIG_USB_GADGETFS=m
1568CONFIG_USB_FILE_STORAGE=m
1569# CONFIG_USB_FILE_STORAGE_TEST is not set
1570CONFIG_USB_G_SERIAL=m
1571# CONFIG_USB_MIDI_GADGET is not set
1572# CONFIG_USB_G_PRINTER is not set
1573CONFIG_USB_CDC_COMPOSITE=m
1574
1575#
1576# OTG and related infrastructure
1577#
1578# CONFIG_USB_GPIO_VBUS is not set
1579# CONFIG_NOP_USB_XCEIV is not set
1580CONFIG_MMC=y
1581# CONFIG_MMC_DEBUG is not set
1582# CONFIG_MMC_UNSAFE_RESUME is not set
1583
1584#
1585# MMC/SD/SDIO Card Drivers
1586#
1587CONFIG_MMC_BLOCK=y
1588CONFIG_MMC_BLOCK_BOUNCE=y
1589CONFIG_SDIO_UART=y
1590# CONFIG_MMC_TEST is not set
1591
1592#
1593# MMC/SD/SDIO Host Controller Drivers
1594#
1595CONFIG_MMC_SDHCI=y
1596CONFIG_MMC_SPI=y
1597CONFIG_MMC_S3C=y
1598# CONFIG_MEMSTICK is not set
1599# CONFIG_ACCESSIBILITY is not set
1600CONFIG_NEW_LEDS=y
1601CONFIG_LEDS_CLASS=y
1602
1603#
1604# LED drivers
1605#
1606CONFIG_LEDS_S3C24XX=y
1607# CONFIG_LEDS_PCA9532 is not set
1608CONFIG_LEDS_GPIO=y
1609CONFIG_LEDS_GPIO_PLATFORM=y
1610# CONFIG_LEDS_LP5521 is not set
1611# CONFIG_LEDS_PCA955X is not set
1612# CONFIG_LEDS_DAC124S085 is not set
1613# CONFIG_LEDS_PWM is not set
1614# CONFIG_LEDS_BD2802 is not set
1615
1616#
1617# LED Triggers
1618#
1619CONFIG_LEDS_TRIGGERS=y
1620CONFIG_LEDS_TRIGGER_TIMER=y
1621CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1622CONFIG_LEDS_TRIGGER_BACKLIGHT=y
1623CONFIG_LEDS_TRIGGER_GPIO=y
1624CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
1625
1626#
1627# iptables trigger is under Netfilter config (LED target)
1628#
1629CONFIG_RTC_LIB=y
1630CONFIG_RTC_CLASS=y
1631CONFIG_RTC_HCTOSYS=y
1632CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1633# CONFIG_RTC_DEBUG is not set
1634
1635#
1636# RTC interfaces
1637#
1638CONFIG_RTC_INTF_SYSFS=y
1639CONFIG_RTC_INTF_PROC=y
1640CONFIG_RTC_INTF_DEV=y
1641CONFIG_RTC_INTF_DEV_UIE_EMUL=y
1642# CONFIG_RTC_DRV_TEST is not set
1643
1644#
1645# I2C RTC drivers
1646#
1647# CONFIG_RTC_DRV_DS1307 is not set
1648# CONFIG_RTC_DRV_DS1374 is not set
1649# CONFIG_RTC_DRV_DS1672 is not set
1650# CONFIG_RTC_DRV_MAX6900 is not set
1651# CONFIG_RTC_DRV_RS5C372 is not set
1652# CONFIG_RTC_DRV_ISL1208 is not set
1653# CONFIG_RTC_DRV_X1205 is not set
1654# CONFIG_RTC_DRV_PCF8563 is not set
1655# CONFIG_RTC_DRV_PCF8583 is not set
1656# CONFIG_RTC_DRV_M41T80 is not set
1657# CONFIG_RTC_DRV_S35390A is not set
1658# CONFIG_RTC_DRV_FM3130 is not set
1659# CONFIG_RTC_DRV_RX8581 is not set
1660
1661#
1662# SPI RTC drivers
1663#
1664# CONFIG_RTC_DRV_M41T94 is not set
1665# CONFIG_RTC_DRV_DS1305 is not set
1666# CONFIG_RTC_DRV_DS1390 is not set
1667# CONFIG_RTC_DRV_MAX6902 is not set
1668# CONFIG_RTC_DRV_R9701 is not set
1669# CONFIG_RTC_DRV_RS5C348 is not set
1670# CONFIG_RTC_DRV_DS3234 is not set
1671
1672#
1673# Platform RTC drivers
1674#
1675# CONFIG_RTC_DRV_CMOS is not set
1676# CONFIG_RTC_DRV_DS1286 is not set
1677# CONFIG_RTC_DRV_DS1511 is not set
1678# CONFIG_RTC_DRV_DS1553 is not set
1679# CONFIG_RTC_DRV_DS1742 is not set
1680# CONFIG_RTC_DRV_STK17TA8 is not set
1681# CONFIG_RTC_DRV_M48T86 is not set
1682# CONFIG_RTC_DRV_M48T35 is not set
1683# CONFIG_RTC_DRV_M48T59 is not set
1684# CONFIG_RTC_DRV_BQ4802 is not set
1685# CONFIG_RTC_DRV_V3020 is not set
1686
1687#
1688# on-CPU RTC drivers
1689#
1690CONFIG_RTC_DRV_S3C=y
1691CONFIG_DMADEVICES=y
1692
1693#
1694# DMA Devices
1695#
1696# CONFIG_AUXDISPLAY is not set
1697# CONFIG_REGULATOR is not set
1698# CONFIG_UIO is not set
1699# CONFIG_STAGING is not set
1700
1701#
1702# File systems
1703#
1704CONFIG_EXT2_FS=m
1705CONFIG_EXT2_FS_XATTR=y
1706CONFIG_EXT2_FS_POSIX_ACL=y
1707CONFIG_EXT2_FS_SECURITY=y
1708# CONFIG_EXT2_FS_XIP is not set
1709CONFIG_EXT3_FS=y
1710# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1711CONFIG_EXT3_FS_XATTR=y
1712CONFIG_EXT3_FS_POSIX_ACL=y
1713CONFIG_EXT3_FS_SECURITY=y
1714# CONFIG_EXT4_FS is not set
1715CONFIG_JBD=y
1716# CONFIG_JBD_DEBUG is not set
1717CONFIG_FS_MBCACHE=y
1718# CONFIG_REISERFS_FS is not set
1719# CONFIG_JFS_FS is not set
1720CONFIG_FS_POSIX_ACL=y
1721CONFIG_FILE_LOCKING=y
1722# CONFIG_XFS_FS is not set
1723# CONFIG_GFS2_FS is not set
1724# CONFIG_OCFS2_FS is not set
1725# CONFIG_BTRFS_FS is not set
1726CONFIG_DNOTIFY=y
1727CONFIG_INOTIFY=y
1728CONFIG_INOTIFY_USER=y
1729# CONFIG_QUOTA is not set
1730CONFIG_AUTOFS_FS=y
1731CONFIG_AUTOFS4_FS=y
1732# CONFIG_FUSE_FS is not set
1733CONFIG_GENERIC_ACL=y
1734
1735#
1736# Caches
1737#
1738# CONFIG_FSCACHE is not set
1739
1740#
1741# CD-ROM/DVD Filesystems
1742#
1743# CONFIG_ISO9660_FS is not set
1744# CONFIG_UDF_FS is not set
1745
1746#
1747# DOS/FAT/NT Filesystems
1748#
1749CONFIG_FAT_FS=y
1750CONFIG_MSDOS_FS=y
1751CONFIG_VFAT_FS=y
1752CONFIG_FAT_DEFAULT_CODEPAGE=437
1753CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1754# CONFIG_NTFS_FS is not set
1755
1756#
1757# Pseudo filesystems
1758#
1759CONFIG_PROC_FS=y
1760CONFIG_PROC_SYSCTL=y
1761CONFIG_PROC_PAGE_MONITOR=y
1762CONFIG_SYSFS=y
1763CONFIG_TMPFS=y
1764CONFIG_TMPFS_POSIX_ACL=y
1765# CONFIG_HUGETLB_PAGE is not set
1766CONFIG_CONFIGFS_FS=m
1767CONFIG_MISC_FILESYSTEMS=y
1768# CONFIG_ADFS_FS is not set
1769# CONFIG_AFFS_FS is not set
1770# CONFIG_ECRYPT_FS is not set
1771# CONFIG_HFS_FS is not set
1772# CONFIG_HFSPLUS_FS is not set
1773# CONFIG_BEFS_FS is not set
1774# CONFIG_BFS_FS is not set
1775# CONFIG_EFS_FS is not set
1776CONFIG_JFFS2_FS=y
1777CONFIG_JFFS2_FS_DEBUG=0
1778CONFIG_JFFS2_FS_WRITEBUFFER=y
1779# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1780# CONFIG_JFFS2_SUMMARY is not set
1781# CONFIG_JFFS2_FS_XATTR is not set
1782# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1783CONFIG_JFFS2_ZLIB=y
1784# CONFIG_JFFS2_LZO is not set
1785CONFIG_JFFS2_RTIME=y
1786# CONFIG_JFFS2_RUBIN is not set
1787CONFIG_CRAMFS=y
1788# CONFIG_SQUASHFS is not set
1789# CONFIG_VXFS_FS is not set
1790# CONFIG_MINIX_FS is not set
1791# CONFIG_OMFS_FS is not set
1792# CONFIG_HPFS_FS is not set
1793# CONFIG_QNX4FS_FS is not set
1794CONFIG_ROMFS_FS=y
1795# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
1796# CONFIG_ROMFS_BACKED_BY_MTD is not set
1797CONFIG_ROMFS_BACKED_BY_BOTH=y
1798CONFIG_ROMFS_ON_BLOCK=y
1799CONFIG_ROMFS_ON_MTD=y
1800# CONFIG_SYSV_FS is not set
1801# CONFIG_UFS_FS is not set
1802# CONFIG_NILFS2_FS is not set
1803CONFIG_NETWORK_FILESYSTEMS=y
1804CONFIG_NFS_FS=y
1805CONFIG_NFS_V3=y
1806CONFIG_NFS_V3_ACL=y
1807CONFIG_NFS_V4=y
1808CONFIG_ROOT_NFS=y
1809# CONFIG_NFSD is not set
1810CONFIG_LOCKD=y
1811CONFIG_LOCKD_V4=y
1812CONFIG_NFS_ACL_SUPPORT=y
1813CONFIG_NFS_COMMON=y
1814CONFIG_SUNRPC=y
1815CONFIG_SUNRPC_GSS=y
1816CONFIG_RPCSEC_GSS_KRB5=y
1817# CONFIG_RPCSEC_GSS_SPKM3 is not set
1818# CONFIG_SMB_FS is not set
1819# CONFIG_CIFS is not set
1820# CONFIG_NCP_FS is not set
1821# CONFIG_CODA_FS is not set
1822# CONFIG_AFS_FS is not set
1823
1824#
1825# Partition Types
1826#
1827CONFIG_PARTITION_ADVANCED=y
1828# CONFIG_ACORN_PARTITION is not set
1829# CONFIG_OSF_PARTITION is not set
1830# CONFIG_AMIGA_PARTITION is not set
1831# CONFIG_ATARI_PARTITION is not set
1832# CONFIG_MAC_PARTITION is not set
1833CONFIG_MSDOS_PARTITION=y
1834CONFIG_BSD_DISKLABEL=y
1835CONFIG_MINIX_SUBPARTITION=y
1836CONFIG_SOLARIS_X86_PARTITION=y
1837CONFIG_UNIXWARE_DISKLABEL=y
1838CONFIG_LDM_PARTITION=y
1839# CONFIG_LDM_DEBUG is not set
1840# CONFIG_SGI_PARTITION is not set
1841# CONFIG_ULTRIX_PARTITION is not set
1842# CONFIG_SUN_PARTITION is not set
1843# CONFIG_KARMA_PARTITION is not set
1844CONFIG_EFI_PARTITION=y
1845# CONFIG_SYSV68_PARTITION is not set
1846CONFIG_NLS=y
1847CONFIG_NLS_DEFAULT="cp437"
1848CONFIG_NLS_CODEPAGE_437=m
1849CONFIG_NLS_CODEPAGE_737=m
1850CONFIG_NLS_CODEPAGE_775=m
1851CONFIG_NLS_CODEPAGE_850=m
1852CONFIG_NLS_CODEPAGE_852=m
1853CONFIG_NLS_CODEPAGE_855=m
1854CONFIG_NLS_CODEPAGE_857=m
1855CONFIG_NLS_CODEPAGE_860=m
1856CONFIG_NLS_CODEPAGE_861=m
1857CONFIG_NLS_CODEPAGE_862=m
1858CONFIG_NLS_CODEPAGE_863=m
1859CONFIG_NLS_CODEPAGE_864=m
1860CONFIG_NLS_CODEPAGE_865=m
1861CONFIG_NLS_CODEPAGE_866=m
1862CONFIG_NLS_CODEPAGE_869=m
1863CONFIG_NLS_CODEPAGE_936=m
1864CONFIG_NLS_CODEPAGE_950=m
1865CONFIG_NLS_CODEPAGE_932=m
1866CONFIG_NLS_CODEPAGE_949=m
1867CONFIG_NLS_CODEPAGE_874=m
1868CONFIG_NLS_ISO8859_8=m
1869CONFIG_NLS_CODEPAGE_1250=m
1870CONFIG_NLS_CODEPAGE_1251=m
1871CONFIG_NLS_ASCII=m
1872CONFIG_NLS_ISO8859_1=m
1873CONFIG_NLS_ISO8859_2=m
1874CONFIG_NLS_ISO8859_3=m
1875CONFIG_NLS_ISO8859_4=m
1876CONFIG_NLS_ISO8859_5=m
1877CONFIG_NLS_ISO8859_6=m
1878CONFIG_NLS_ISO8859_7=m
1879CONFIG_NLS_ISO8859_9=m
1880CONFIG_NLS_ISO8859_13=m
1881CONFIG_NLS_ISO8859_14=m
1882CONFIG_NLS_ISO8859_15=m
1883CONFIG_NLS_KOI8_R=m
1884CONFIG_NLS_KOI8_U=m
1885CONFIG_NLS_UTF8=m
1886# CONFIG_DLM is not set
1887
1888#
1889# Kernel hacking
1890#
1891# CONFIG_PRINTK_TIME is not set
1892# CONFIG_ENABLE_WARN_DEPRECATED is not set
1893# CONFIG_ENABLE_MUST_CHECK is not set
1894CONFIG_FRAME_WARN=1024
1895# CONFIG_MAGIC_SYSRQ is not set
1896# CONFIG_UNUSED_SYMBOLS is not set
1897CONFIG_DEBUG_FS=y
1898# CONFIG_HEADERS_CHECK is not set
1899CONFIG_DEBUG_KERNEL=y
1900# CONFIG_DEBUG_SHIRQ is not set
1901CONFIG_DETECT_SOFTLOCKUP=y
1902# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1903CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1904CONFIG_DETECT_HUNG_TASK=y
1905# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1906CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1907# CONFIG_SCHED_DEBUG is not set
1908# CONFIG_SCHEDSTATS is not set
1909# CONFIG_TIMER_STATS is not set
1910# CONFIG_DEBUG_OBJECTS is not set
1911# CONFIG_SLUB_DEBUG_ON is not set
1912# CONFIG_SLUB_STATS is not set
1913# CONFIG_DEBUG_RT_MUTEXES is not set
1914# CONFIG_RT_MUTEX_TESTER is not set
1915# CONFIG_DEBUG_SPINLOCK is not set
1916# CONFIG_DEBUG_MUTEXES is not set
1917# CONFIG_DEBUG_LOCK_ALLOC is not set
1918# CONFIG_PROVE_LOCKING is not set
1919# CONFIG_LOCK_STAT is not set
1920# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1921# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1922# CONFIG_DEBUG_KOBJECT is not set
1923CONFIG_DEBUG_BUGVERBOSE=y
1924CONFIG_DEBUG_INFO=y
1925# CONFIG_DEBUG_VM is not set
1926# CONFIG_DEBUG_WRITECOUNT is not set
1927CONFIG_DEBUG_MEMORY_INIT=y
1928# CONFIG_DEBUG_LIST is not set
1929# CONFIG_DEBUG_SG is not set
1930# CONFIG_DEBUG_NOTIFIERS is not set
1931# CONFIG_BOOT_PRINTK_DELAY is not set
1932# CONFIG_RCU_TORTURE_TEST is not set
1933# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1934# CONFIG_BACKTRACE_SELF_TEST is not set
1935# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1936# CONFIG_FAULT_INJECTION is not set
1937# CONFIG_LATENCYTOP is not set
1938CONFIG_SYSCTL_SYSCALL_CHECK=y
1939# CONFIG_PAGE_POISONING is not set
1940CONFIG_HAVE_FUNCTION_TRACER=y
1941CONFIG_TRACING_SUPPORT=y
1942
1943#
1944# Tracers
1945#
1946# CONFIG_FUNCTION_TRACER is not set
1947# CONFIG_SCHED_TRACER is not set
1948# CONFIG_CONTEXT_SWITCH_TRACER is not set
1949# CONFIG_EVENT_TRACER is not set
1950# CONFIG_BOOT_TRACER is not set
1951# CONFIG_TRACE_BRANCH_PROFILING is not set
1952# CONFIG_STACK_TRACER is not set
1953# CONFIG_KMEMTRACE is not set
1954# CONFIG_WORKQUEUE_TRACER is not set
1955# CONFIG_BLK_DEV_IO_TRACE is not set
1956# CONFIG_DYNAMIC_DEBUG is not set
1957# CONFIG_SAMPLES is not set
1958CONFIG_HAVE_ARCH_KGDB=y
1959# CONFIG_KGDB is not set
1960CONFIG_ARM_UNWIND=y
1961CONFIG_DEBUG_USER=y
1962# CONFIG_DEBUG_ERRORS is not set
1963# CONFIG_DEBUG_STACK_USAGE is not set
1964# CONFIG_DEBUG_LL is not set
1965CONFIG_DEBUG_S3C_UART=0
1966
1967#
1968# Security options
1969#
1970CONFIG_KEYS=y
1971# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
1972# CONFIG_SECURITY is not set
1973# CONFIG_SECURITYFS is not set
1974CONFIG_SECURITY_FILE_CAPABILITIES=y
1975CONFIG_CRYPTO=y
1976
1977#
1978# Crypto core or helper
1979#
1980CONFIG_CRYPTO_FIPS=y
1981CONFIG_CRYPTO_ALGAPI=y
1982CONFIG_CRYPTO_ALGAPI2=y
1983CONFIG_CRYPTO_AEAD=m
1984CONFIG_CRYPTO_AEAD2=y
1985CONFIG_CRYPTO_BLKCIPHER=y
1986CONFIG_CRYPTO_BLKCIPHER2=y
1987CONFIG_CRYPTO_HASH=y
1988CONFIG_CRYPTO_HASH2=y
1989CONFIG_CRYPTO_RNG=m
1990CONFIG_CRYPTO_RNG2=y
1991CONFIG_CRYPTO_PCOMP=y
1992CONFIG_CRYPTO_MANAGER=y
1993CONFIG_CRYPTO_MANAGER2=y
1994CONFIG_CRYPTO_GF128MUL=m
1995CONFIG_CRYPTO_NULL=m
1996CONFIG_CRYPTO_WORKQUEUE=y
1997CONFIG_CRYPTO_CRYPTD=m
1998CONFIG_CRYPTO_AUTHENC=m
1999CONFIG_CRYPTO_TEST=m
2000
2001#
2002# Authenticated Encryption with Associated Data
2003#
2004CONFIG_CRYPTO_CCM=m
2005CONFIG_CRYPTO_GCM=m
2006CONFIG_CRYPTO_SEQIV=m
2007
2008#
2009# Block modes
2010#
2011CONFIG_CRYPTO_CBC=y
2012CONFIG_CRYPTO_CTR=m
2013CONFIG_CRYPTO_CTS=m
2014CONFIG_CRYPTO_ECB=y
2015CONFIG_CRYPTO_LRW=m
2016CONFIG_CRYPTO_PCBC=m
2017CONFIG_CRYPTO_XTS=m
2018
2019#
2020# Hash modes
2021#
2022CONFIG_CRYPTO_HMAC=y
2023CONFIG_CRYPTO_XCBC=m
2024
2025#
2026# Digest
2027#
2028CONFIG_CRYPTO_CRC32C=m
2029CONFIG_CRYPTO_MD4=m
2030CONFIG_CRYPTO_MD5=y
2031CONFIG_CRYPTO_MICHAEL_MIC=y
2032CONFIG_CRYPTO_RMD128=m
2033CONFIG_CRYPTO_RMD160=m
2034CONFIG_CRYPTO_RMD256=m
2035CONFIG_CRYPTO_RMD320=m
2036CONFIG_CRYPTO_SHA1=m
2037CONFIG_CRYPTO_SHA256=m
2038CONFIG_CRYPTO_SHA512=m
2039CONFIG_CRYPTO_TGR192=m
2040CONFIG_CRYPTO_WP512=m
2041
2042#
2043# Ciphers
2044#
2045CONFIG_CRYPTO_AES=y
2046CONFIG_CRYPTO_ANUBIS=m
2047CONFIG_CRYPTO_ARC4=y
2048CONFIG_CRYPTO_BLOWFISH=m
2049CONFIG_CRYPTO_CAMELLIA=m
2050CONFIG_CRYPTO_CAST5=m
2051CONFIG_CRYPTO_CAST6=m
2052CONFIG_CRYPTO_DES=y
2053CONFIG_CRYPTO_FCRYPT=m
2054CONFIG_CRYPTO_KHAZAD=m
2055CONFIG_CRYPTO_SALSA20=m
2056CONFIG_CRYPTO_SEED=m
2057CONFIG_CRYPTO_SERPENT=m
2058CONFIG_CRYPTO_TEA=m
2059CONFIG_CRYPTO_TWOFISH=m
2060CONFIG_CRYPTO_TWOFISH_COMMON=m
2061
2062#
2063# Compression
2064#
2065CONFIG_CRYPTO_DEFLATE=m
2066CONFIG_CRYPTO_ZLIB=m
2067CONFIG_CRYPTO_LZO=m
2068
2069#
2070# Random Number Generation
2071#
2072CONFIG_CRYPTO_ANSI_CPRNG=m
2073CONFIG_CRYPTO_HW=y
2074# CONFIG_BINARY_PRINTF is not set
2075
2076#
2077# Library routines
2078#
2079CONFIG_BITREVERSE=y
2080CONFIG_GENERIC_FIND_LAST_BIT=y
2081CONFIG_CRC_CCITT=m
2082CONFIG_CRC16=m
2083CONFIG_CRC_T10DIF=y
2084CONFIG_CRC_ITU_T=y
2085CONFIG_CRC32=y
2086CONFIG_CRC7=y
2087CONFIG_LIBCRC32C=m
2088CONFIG_ZLIB_INFLATE=y
2089CONFIG_ZLIB_DEFLATE=y
2090CONFIG_LZO_COMPRESS=m
2091CONFIG_LZO_DECOMPRESS=m
2092CONFIG_DECOMPRESS_GZIP=y
2093CONFIG_DECOMPRESS_BZIP2=y
2094CONFIG_DECOMPRESS_LZMA=y
2095CONFIG_HAS_IOMEM=y
2096CONFIG_HAS_DMA=y
2097CONFIG_NLATTR=y
diff --git a/arch/arm/include/asm/pci.h b/arch/arm/include/asm/pci.h
index 918d0cbbf06..0abf386ba3d 100644
--- a/arch/arm/include/asm/pci.h
+++ b/arch/arm/include/asm/pci.h
@@ -65,19 +65,6 @@ extern void
65pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, 65pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
66 struct pci_bus_region *region); 66 struct pci_bus_region *region);
67 67
68static inline struct resource *
69pcibios_select_root(struct pci_dev *pdev, struct resource *res)
70{
71 struct resource *root = NULL;
72
73 if (res->flags & IORESOURCE_IO)
74 root = &ioport_resource;
75 if (res->flags & IORESOURCE_MEM)
76 root = &iomem_resource;
77
78 return root;
79}
80
81/* 68/*
82 * Dummy implementation; always return 0. 69 * Dummy implementation; always return 0.
83 */ 70 */
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h
index 94cc58ef61a..0e97b8cb77d 100644
--- a/arch/arm/include/asm/unistd.h
+++ b/arch/arm/include/asm/unistd.h
@@ -389,6 +389,8 @@
389#define __NR_inotify_init1 (__NR_SYSCALL_BASE+360) 389#define __NR_inotify_init1 (__NR_SYSCALL_BASE+360)
390#define __NR_preadv (__NR_SYSCALL_BASE+361) 390#define __NR_preadv (__NR_SYSCALL_BASE+361)
391#define __NR_pwritev (__NR_SYSCALL_BASE+362) 391#define __NR_pwritev (__NR_SYSCALL_BASE+362)
392#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE+363)
393#define __NR_perf_counter_open (__NR_SYSCALL_BASE+364)
392 394
393/* 395/*
394 * The following SWIs are ARM private. 396 * The following SWIs are ARM private.
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 1680e9e9c83..f776e72a4cb 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -372,6 +372,8 @@
372/* 360 */ CALL(sys_inotify_init1) 372/* 360 */ CALL(sys_inotify_init1)
373 CALL(sys_preadv) 373 CALL(sys_preadv)
374 CALL(sys_pwritev) 374 CALL(sys_pwritev)
375 CALL(sys_rt_tgsigqueueinfo)
376 CALL(sys_perf_counter_open)
375#ifndef syscalls_counted 377#ifndef syscalls_counted
376.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls 378.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
377#define syscalls_counted 379#define syscalls_counted
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index 6874c7dca75..096f600dc8d 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -167,7 +167,7 @@ void __init init_IRQ(void)
167 167
168#ifdef CONFIG_SMP 168#ifdef CONFIG_SMP
169 cpumask_setall(bad_irq_desc.affinity); 169 cpumask_setall(bad_irq_desc.affinity);
170 bad_irq_desc.cpu = smp_processor_id(); 170 bad_irq_desc.node = smp_processor_id();
171#endif 171#endif
172 init_arch_irq(); 172 init_arch_irq();
173} 173}
@@ -176,7 +176,7 @@ void __init init_IRQ(void)
176 176
177static void route_irq(struct irq_desc *desc, unsigned int irq, unsigned int cpu) 177static void route_irq(struct irq_desc *desc, unsigned int irq, unsigned int cpu)
178{ 178{
179 pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->cpu, cpu); 179 pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->node, cpu);
180 180
181 spin_lock_irq(&desc->lock); 181 spin_lock_irq(&desc->lock);
182 desc->chip->set_affinity(irq, cpumask_of(cpu)); 182 desc->chip->set_affinity(irq, cpumask_of(cpu));
@@ -195,7 +195,7 @@ void migrate_irqs(void)
195 for (i = 0; i < NR_IRQS; i++) { 195 for (i = 0; i < NR_IRQS; i++) {
196 struct irq_desc *desc = irq_desc + i; 196 struct irq_desc *desc = irq_desc + i;
197 197
198 if (desc->cpu == cpu) { 198 if (desc->node == cpu) {
199 unsigned int newcpu = cpumask_any_and(desc->affinity, 199 unsigned int newcpu = cpumask_any_and(desc->affinity,
200 cpu_online_mask); 200 cpu_online_mask);
201 if (newcpu >= nr_cpu_ids) { 201 if (newcpu >= nr_cpu_ids) {
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 1585423699e..39196dff478 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -114,9 +114,6 @@ void arm_machine_restart(char mode, const char *cmd)
114/* 114/*
115 * Function pointers to optional machine specific functions 115 * Function pointers to optional machine specific functions
116 */ 116 */
117void (*pm_idle)(void);
118EXPORT_SYMBOL(pm_idle);
119
120void (*pm_power_off)(void); 117void (*pm_power_off)(void);
121EXPORT_SYMBOL(pm_power_off); 118EXPORT_SYMBOL(pm_power_off);
122 119
@@ -130,20 +127,19 @@ EXPORT_SYMBOL_GPL(arm_pm_restart);
130 */ 127 */
131static void default_idle(void) 128static void default_idle(void)
132{ 129{
133 if (hlt_counter) 130 if (!need_resched())
134 cpu_relax(); 131 arch_idle();
135 else { 132 local_irq_enable();
136 local_irq_disable();
137 if (!need_resched())
138 arch_idle();
139 local_irq_enable();
140 }
141} 133}
142 134
135void (*pm_idle)(void) = default_idle;
136EXPORT_SYMBOL(pm_idle);
137
143/* 138/*
144 * The idle thread. We try to conserve power, while trying to keep 139 * The idle thread, has rather strange semantics for calling pm_idle,
145 * overall latency low. The architecture specific idle is passed 140 * but this is what x86 does and we need to do the same, so that
146 * a value to indicate the level of "idleness" of the system. 141 * things like cpuidle get called in the same way. The only difference
142 * is that we always respect 'hlt_counter' to prevent low power idle.
147 */ 143 */
148void cpu_idle(void) 144void cpu_idle(void)
149{ 145{
@@ -151,21 +147,31 @@ void cpu_idle(void)
151 147
152 /* endless idle loop with no priority at all */ 148 /* endless idle loop with no priority at all */
153 while (1) { 149 while (1) {
154 void (*idle)(void) = pm_idle; 150 tick_nohz_stop_sched_tick(1);
155 151 leds_event(led_idle_start);
152 while (!need_resched()) {
156#ifdef CONFIG_HOTPLUG_CPU 153#ifdef CONFIG_HOTPLUG_CPU
157 if (cpu_is_offline(smp_processor_id())) { 154 if (cpu_is_offline(smp_processor_id()))
158 leds_event(led_idle_start); 155 cpu_die();
159 cpu_die();
160 }
161#endif 156#endif
162 157
163 if (!idle) 158 local_irq_disable();
164 idle = default_idle; 159 if (hlt_counter) {
165 leds_event(led_idle_start); 160 local_irq_enable();
166 tick_nohz_stop_sched_tick(1); 161 cpu_relax();
167 while (!need_resched()) 162 } else {
168 idle(); 163 stop_critical_timings();
164 pm_idle();
165 start_critical_timings();
166 /*
167 * This will eventually be removed - pm_idle
168 * functions should always return with IRQs
169 * enabled.
170 */
171 WARN_ON(irqs_disabled());
172 local_irq_enable();
173 }
174 }
169 leds_event(led_idle_end); 175 leds_event(led_idle_end);
170 tick_nohz_restart_sched_tick(); 176 tick_nohz_restart_sched_tick();
171 preempt_enable_no_resched(); 177 preempt_enable_no_resched();
@@ -352,6 +358,23 @@ asm( ".section .text\n"
352" .size kernel_thread_helper, . - kernel_thread_helper\n" 358" .size kernel_thread_helper, . - kernel_thread_helper\n"
353" .previous"); 359" .previous");
354 360
361#ifdef CONFIG_ARM_UNWIND
362extern void kernel_thread_exit(long code);
363asm( ".section .text\n"
364" .align\n"
365" .type kernel_thread_exit, #function\n"
366"kernel_thread_exit:\n"
367" .fnstart\n"
368" .cantunwind\n"
369" bl do_exit\n"
370" nop\n"
371" .fnend\n"
372" .size kernel_thread_exit, . - kernel_thread_exit\n"
373" .previous");
374#else
375#define kernel_thread_exit do_exit
376#endif
377
355/* 378/*
356 * Create a kernel thread. 379 * Create a kernel thread.
357 */ 380 */
@@ -363,7 +386,7 @@ pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
363 386
364 regs.ARM_r1 = (unsigned long)arg; 387 regs.ARM_r1 = (unsigned long)arg;
365 regs.ARM_r2 = (unsigned long)fn; 388 regs.ARM_r2 = (unsigned long)fn;
366 regs.ARM_r3 = (unsigned long)do_exit; 389 regs.ARM_r3 = (unsigned long)kernel_thread_exit;
367 regs.ARM_pc = (unsigned long)kernel_thread_helper; 390 regs.ARM_pc = (unsigned long)kernel_thread_helper;
368 regs.ARM_cpsr = SVC_MODE | PSR_ENDSTATE; 391 regs.ARM_cpsr = SVC_MODE | PSR_ENDSTATE;
369 392
diff --git a/arch/arm/kernel/unwind.c b/arch/arm/kernel/unwind.c
index 1dedc2c7ff4..dd56e11f339 100644
--- a/arch/arm/kernel/unwind.c
+++ b/arch/arm/kernel/unwind.c
@@ -212,7 +212,8 @@ static int unwind_exec_insn(struct unwind_ctrl_block *ctrl)
212 ctrl->vrs[14] = *vsp++; 212 ctrl->vrs[14] = *vsp++;
213 ctrl->vrs[SP] = (unsigned long)vsp; 213 ctrl->vrs[SP] = (unsigned long)vsp;
214 } else if (insn == 0xb0) { 214 } else if (insn == 0xb0) {
215 ctrl->vrs[PC] = ctrl->vrs[LR]; 215 if (ctrl->vrs[PC] == 0)
216 ctrl->vrs[PC] = ctrl->vrs[LR];
216 /* no further processing */ 217 /* no further processing */
217 ctrl->entries = 0; 218 ctrl->entries = 0;
218 } else if (insn == 0xb1) { 219 } else if (insn == 0xb1) {
@@ -309,18 +310,20 @@ int unwind_frame(struct stackframe *frame)
309 } 310 }
310 311
311 while (ctrl.entries > 0) { 312 while (ctrl.entries > 0) {
312 int urc; 313 int urc = unwind_exec_insn(&ctrl);
313
314 if (ctrl.vrs[SP] < low || ctrl.vrs[SP] >= high)
315 return -URC_FAILURE;
316 urc = unwind_exec_insn(&ctrl);
317 if (urc < 0) 314 if (urc < 0)
318 return urc; 315 return urc;
316 if (ctrl.vrs[SP] < low || ctrl.vrs[SP] >= high)
317 return -URC_FAILURE;
319 } 318 }
320 319
321 if (ctrl.vrs[PC] == 0) 320 if (ctrl.vrs[PC] == 0)
322 ctrl.vrs[PC] = ctrl.vrs[LR]; 321 ctrl.vrs[PC] = ctrl.vrs[LR];
323 322
323 /* check for infinite loop */
324 if (frame->pc == ctrl.vrs[PC])
325 return -URC_FAILURE;
326
324 frame->fp = ctrl.vrs[FP]; 327 frame->fp = ctrl.vrs[FP];
325 frame->sp = ctrl.vrs[SP]; 328 frame->sp = ctrl.vrs[SP];
326 frame->lr = ctrl.vrs[LR]; 329 frame->lr = ctrl.vrs[LR];
@@ -332,7 +335,6 @@ int unwind_frame(struct stackframe *frame)
332void unwind_backtrace(struct pt_regs *regs, struct task_struct *tsk) 335void unwind_backtrace(struct pt_regs *regs, struct task_struct *tsk)
333{ 336{
334 struct stackframe frame; 337 struct stackframe frame;
335 unsigned long high, low;
336 register unsigned long current_sp asm ("sp"); 338 register unsigned long current_sp asm ("sp");
337 339
338 pr_debug("%s(regs = %p tsk = %p)\n", __func__, regs, tsk); 340 pr_debug("%s(regs = %p tsk = %p)\n", __func__, regs, tsk);
@@ -362,9 +364,6 @@ void unwind_backtrace(struct pt_regs *regs, struct task_struct *tsk)
362 frame.pc = thread_saved_pc(tsk); 364 frame.pc = thread_saved_pc(tsk);
363 } 365 }
364 366
365 low = frame.sp & ~(THREAD_SIZE - 1);
366 high = low + THREAD_SIZE;
367
368 while (1) { 367 while (1) {
369 int urc; 368 int urc;
370 unsigned long where = frame.pc; 369 unsigned long where = frame.pc;
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 6c077979254..4340bf3d2c8 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -84,6 +84,14 @@ SECTIONS
84 *(.exitcall.exit) 84 *(.exitcall.exit)
85 *(.ARM.exidx.exit.text) 85 *(.ARM.exidx.exit.text)
86 *(.ARM.extab.exit.text) 86 *(.ARM.extab.exit.text)
87#ifndef CONFIG_HOTPLUG_CPU
88 *(.ARM.exidx.cpuexit.text)
89 *(.ARM.extab.cpuexit.text)
90#endif
91#ifndef CONFIG_HOTPLUG
92 *(.ARM.exidx.devexit.text)
93 *(.ARM.extab.devexit.text)
94#endif
87#ifndef CONFIG_MMU 95#ifndef CONFIG_MMU
88 *(.fixup) 96 *(.fixup)
89 *(__ex_table) 97 *(__ex_table)
diff --git a/arch/arm/mach-davinci/include/mach/nand.h b/arch/arm/mach-davinci/include/mach/nand.h
index aa482841270..b520c4b5678 100644
--- a/arch/arm/mach-davinci/include/mach/nand.h
+++ b/arch/arm/mach-davinci/include/mach/nand.h
@@ -68,10 +68,14 @@ struct davinci_nand_pdata { /* platform_data */
68 68
69 /* none == NAND_ECC_NONE (strongly *not* advised!!) 69 /* none == NAND_ECC_NONE (strongly *not* advised!!)
70 * soft == NAND_ECC_SOFT 70 * soft == NAND_ECC_SOFT
71 * 1-bit == NAND_ECC_HW 71 * else == NAND_ECC_HW, according to ecc_bits
72 * 4-bit == NAND_ECC_HW_SYNDROME (not on all chips) 72 *
73 * All DaVinci-family chips support 1-bit hardware ECC.
74 * Newer ones also support 4-bit ECC, but are awkward
75 * using it with large page chips.
73 */ 76 */
74 nand_ecc_modes_t ecc_mode; 77 nand_ecc_modes_t ecc_mode;
78 u8 ecc_bits;
75 79
76 /* e.g. NAND_BUSWIDTH_16 or NAND_USE_FLASH_BBT */ 80 /* e.g. NAND_BUSWIDTH_16 or NAND_USE_FLASH_BBT */
77 unsigned options; 81 unsigned options;
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h b/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h
new file mode 100644
index 00000000000..83f31cd0a27
--- /dev/null
+++ b/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h
@@ -0,0 +1,42 @@
1/*
2 * arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h
3 */
4
5#ifndef __ASM_ARCH_EP93XX_KEYPAD_H
6#define __ASM_ARCH_EP93XX_KEYPAD_H
7
8#define MAX_MATRIX_KEY_ROWS (8)
9#define MAX_MATRIX_KEY_COLS (8)
10
11/* flags for the ep93xx_keypad driver */
12#define EP93XX_KEYPAD_DISABLE_3_KEY (1<<0) /* disable 3-key reset */
13#define EP93XX_KEYPAD_DIAG_MODE (1<<1) /* diagnostic mode */
14#define EP93XX_KEYPAD_BACK_DRIVE (1<<2) /* back driving mode */
15#define EP93XX_KEYPAD_TEST_MODE (1<<3) /* scan only column 0 */
16#define EP93XX_KEYPAD_KDIV (1<<4) /* 1/4 clock or 1/16 clock */
17#define EP93XX_KEYPAD_AUTOREPEAT (1<<5) /* enable key autorepeat */
18
19/**
20 * struct ep93xx_keypad_platform_data - platform specific device structure
21 * @matrix_key_rows: number of rows in the keypad matrix
22 * @matrix_key_cols: number of columns in the keypad matrix
23 * @matrix_key_map: array of keycodes defining the keypad matrix
24 * @matrix_key_map_size: ARRAY_SIZE(matrix_key_map)
25 * @debounce: debounce start count; terminal count is 0xff
26 * @prescale: row/column counter pre-scaler load value
27 * @flags: see above
28 */
29struct ep93xx_keypad_platform_data {
30 unsigned int matrix_key_rows;
31 unsigned int matrix_key_cols;
32 unsigned int *matrix_key_map;
33 int matrix_key_map_size;
34 unsigned int debounce;
35 unsigned int prescale;
36 unsigned int flags;
37};
38
39/* macro for creating the matrix_key_map table */
40#define KEY(row, col, val) (((row) << 28) | ((col) << 24) | (val))
41
42#endif /* __ASM_ARCH_EP93XX_KEYPAD_H */
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index ba528f85749..b0665f161c0 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -302,7 +302,7 @@ int omap2_wait_clock_ready(void __iomem *reg, u32 mask, const char *name)
302 udelay(1); 302 udelay(1);
303 } 303 }
304 304
305 if (i < MAX_CLOCK_ENABLE_WAIT) 305 if (i <= MAX_CLOCK_ENABLE_WAIT)
306 pr_debug("Clock %s stable after %d loops\n", name, i); 306 pr_debug("Clock %s stable after %d loops\n", name, i);
307 else 307 else
308 printk(KERN_ERR "Clock %s didn't enable in %d tries\n", 308 printk(KERN_ERR "Clock %s didn't enable in %d tries\n",
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
index 9e43fe5209d..045da923e75 100644
--- a/arch/arm/mach-omap2/clock34xx.c
+++ b/arch/arm/mach-omap2/clock34xx.c
@@ -286,6 +286,20 @@ static struct omap_clk omap34xx_clks[] = {
286 286
287#define MIN_SDRC_DLL_LOCK_FREQ 83000000 287#define MIN_SDRC_DLL_LOCK_FREQ 83000000
288 288
289#define CYCLES_PER_MHZ 1000000
290
291/* Scale factor for fixed-point arith in omap3_core_dpll_m2_set_rate() */
292#define SDRC_MPURATE_SCALE 8
293
294/* 2^SDRC_MPURATE_BASE_SHIFT: MPU MHz that SDRC_MPURATE_LOOPS is defined for */
295#define SDRC_MPURATE_BASE_SHIFT 9
296
297/*
298 * SDRC_MPURATE_LOOPS: Number of MPU loops to execute at
299 * 2^MPURATE_BASE_SHIFT MHz for SDRC to stabilize
300 */
301#define SDRC_MPURATE_LOOPS 96
302
289/** 303/**
290 * omap3_dpll_recalc - recalculate DPLL rate 304 * omap3_dpll_recalc - recalculate DPLL rate
291 * @clk: DPLL struct clk 305 * @clk: DPLL struct clk
@@ -709,7 +723,8 @@ static int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)
709{ 723{
710 u32 new_div = 0; 724 u32 new_div = 0;
711 u32 unlock_dll = 0; 725 u32 unlock_dll = 0;
712 unsigned long validrate, sdrcrate; 726 u32 c;
727 unsigned long validrate, sdrcrate, mpurate;
713 struct omap_sdrc_params *sp; 728 struct omap_sdrc_params *sp;
714 729
715 if (!clk || !rate) 730 if (!clk || !rate)
@@ -718,18 +733,15 @@ static int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)
718 if (clk != &dpll3_m2_ck) 733 if (clk != &dpll3_m2_ck)
719 return -EINVAL; 734 return -EINVAL;
720 735
721 if (rate == clk->rate)
722 return 0;
723
724 validrate = omap2_clksel_round_rate_div(clk, rate, &new_div); 736 validrate = omap2_clksel_round_rate_div(clk, rate, &new_div);
725 if (validrate != rate) 737 if (validrate != rate)
726 return -EINVAL; 738 return -EINVAL;
727 739
728 sdrcrate = sdrc_ick.rate; 740 sdrcrate = sdrc_ick.rate;
729 if (rate > clk->rate) 741 if (rate > clk->rate)
730 sdrcrate <<= ((rate / clk->rate) - 1); 742 sdrcrate <<= ((rate / clk->rate) >> 1);
731 else 743 else
732 sdrcrate >>= ((clk->rate / rate) - 1); 744 sdrcrate >>= ((clk->rate / rate) >> 1);
733 745
734 sp = omap2_sdrc_get_params(sdrcrate); 746 sp = omap2_sdrc_get_params(sdrcrate);
735 if (!sp) 747 if (!sp)
@@ -740,17 +752,25 @@ static int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)
740 unlock_dll = 1; 752 unlock_dll = 1;
741 } 753 }
742 754
755 /*
756 * XXX This only needs to be done when the CPU frequency changes
757 */
758 mpurate = arm_fck.rate / CYCLES_PER_MHZ;
759 c = (mpurate << SDRC_MPURATE_SCALE) >> SDRC_MPURATE_BASE_SHIFT;
760 c += 1; /* for safety */
761 c *= SDRC_MPURATE_LOOPS;
762 c >>= SDRC_MPURATE_SCALE;
763 if (c == 0)
764 c = 1;
765
743 pr_debug("clock: changing CORE DPLL rate from %lu to %lu\n", clk->rate, 766 pr_debug("clock: changing CORE DPLL rate from %lu to %lu\n", clk->rate,
744 validrate); 767 validrate);
745 pr_debug("clock: SDRC timing params used: %08x %08x %08x\n", 768 pr_debug("clock: SDRC timing params used: %08x %08x %08x\n",
746 sp->rfr_ctrl, sp->actim_ctrla, sp->actim_ctrlb); 769 sp->rfr_ctrl, sp->actim_ctrla, sp->actim_ctrlb);
747 770
748 /* REVISIT: SRAM code doesn't support other M2 divisors yet */
749 WARN_ON(new_div != 1 && new_div != 2);
750
751 /* REVISIT: Add SDRC_MR changing to this code also */
752 omap3_configure_core_dpll(sp->rfr_ctrl, sp->actim_ctrla, 771 omap3_configure_core_dpll(sp->rfr_ctrl, sp->actim_ctrla,
753 sp->actim_ctrlb, new_div, unlock_dll); 772 sp->actim_ctrlb, new_div, unlock_dll, c,
773 sp->mr, rate > clk->rate);
754 774
755 return 0; 775 return 0;
756} 776}
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 32afd944821..3a86b0f6603 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -21,6 +21,7 @@
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/io.h> 23#include <linux/io.h>
24#include <linux/clk.h>
24 25
25#include <asm/tlb.h> 26#include <asm/tlb.h>
26 27
@@ -241,6 +242,40 @@ void __init omap2_map_common_io(void)
241 omapfb_reserve_sdram(); 242 omapfb_reserve_sdram();
242} 243}
243 244
245/*
246 * omap2_init_reprogram_sdrc - reprogram SDRC timing parameters
247 *
248 * Sets the CORE DPLL3 M2 divider to the same value that it's at
249 * currently. This has the effect of setting the SDRC SDRAM AC timing
250 * registers to the values currently defined by the kernel. Currently
251 * only defined for OMAP3; will return 0 if called on OMAP2. Returns
252 * -EINVAL if the dpll3_m2_ck cannot be found, 0 if called on OMAP2,
253 * or passes along the return value of clk_set_rate().
254 */
255static int __init _omap2_init_reprogram_sdrc(void)
256{
257 struct clk *dpll3_m2_ck;
258 int v = -EINVAL;
259 long rate;
260
261 if (!cpu_is_omap34xx())
262 return 0;
263
264 dpll3_m2_ck = clk_get(NULL, "dpll3_m2_ck");
265 if (!dpll3_m2_ck)
266 return -EINVAL;
267
268 rate = clk_get_rate(dpll3_m2_ck);
269 pr_info("Reprogramming SDRC clock to %ld Hz\n", rate);
270 v = clk_set_rate(dpll3_m2_ck, rate);
271 if (v)
272 pr_err("dpll3_m2_clk rate change failed: %d\n", v);
273
274 clk_put(dpll3_m2_ck);
275
276 return v;
277}
278
244void __init omap2_init_common_hw(struct omap_sdrc_params *sp) 279void __init omap2_init_common_hw(struct omap_sdrc_params *sp)
245{ 280{
246 omap2_mux_init(); 281 omap2_mux_init();
@@ -249,6 +284,7 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sp)
249 clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps); 284 clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps);
250 omap2_clk_init(); 285 omap2_clk_init();
251 omap2_sdrc_init(sp); 286 omap2_sdrc_init(sp);
287 _omap2_init_reprogram_sdrc();
252#endif 288#endif
253 gpmc_init(); 289 gpmc_init();
254} 290}
diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
index 73e2971b175..983f1cb676b 100644
--- a/arch/arm/mach-omap2/powerdomain.c
+++ b/arch/arm/mach-omap2/powerdomain.c
@@ -1099,7 +1099,7 @@ int pwrdm_wait_transition(struct powerdomain *pwrdm)
1099 (c++ < PWRDM_TRANSITION_BAILOUT)) 1099 (c++ < PWRDM_TRANSITION_BAILOUT))
1100 udelay(1); 1100 udelay(1);
1101 1101
1102 if (c >= PWRDM_TRANSITION_BAILOUT) { 1102 if (c > PWRDM_TRANSITION_BAILOUT) {
1103 printk(KERN_ERR "powerdomain: waited too long for " 1103 printk(KERN_ERR "powerdomain: waited too long for "
1104 "powerdomain %s to complete transition\n", pwrdm->name); 1104 "powerdomain %s to complete transition\n", pwrdm->name);
1105 return -EAGAIN; 1105 return -EAGAIN;
diff --git a/arch/arm/mach-omap2/sram34xx.S b/arch/arm/mach-omap2/sram34xx.S
index c080c82521e..f41f8d96ddb 100644
--- a/arch/arm/mach-omap2/sram34xx.S
+++ b/arch/arm/mach-omap2/sram34xx.S
@@ -3,13 +3,12 @@
3 * 3 *
4 * Omap3 specific functions that need to be run in internal SRAM 4 * Omap3 specific functions that need to be run in internal SRAM
5 * 5 *
6 * (C) Copyright 2007 6 * Copyright (C) 2004, 2007, 2008 Texas Instruments, Inc.
7 * Texas Instruments Inc. 7 * Copyright (C) 2008 Nokia Corporation
8 * Rajendra Nayak <rnayak@ti.com>
9 * 8 *
10 * (C) Copyright 2004 9 * Rajendra Nayak <rnayak@ti.com>
11 * Texas Instruments, <www.ti.com>
12 * Richard Woodruff <r-woodruff2@ti.com> 10 * Richard Woodruff <r-woodruff2@ti.com>
11 * Paul Walmsley
13 * 12 *
14 * This program is free software; you can redistribute it and/or 13 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License as 14 * modify it under the terms of the GNU General Public License as
@@ -37,61 +36,112 @@
37 36
38 .text 37 .text
39 38
39/* r4 parameters */
40#define SDRC_NO_UNLOCK_DLL 0x0
41#define SDRC_UNLOCK_DLL 0x1
42
43/* SDRC_DLLA_CTRL bit settings */
44#define FIXEDDELAY_SHIFT 24
45#define FIXEDDELAY_MASK (0xff << FIXEDDELAY_SHIFT)
46#define DLLIDLE_MASK 0x4
47
48/*
49 * SDRC_DLLA_CTRL default values: TI hardware team indicates that
50 * FIXEDDELAY should be initialized to 0xf. This apparently was
51 * empirically determined during process testing, so no derivation
52 * was provided.
53 */
54#define FIXEDDELAY_DEFAULT (0x0f << FIXEDDELAY_SHIFT)
55
56/* SDRC_DLLA_STATUS bit settings */
57#define LOCKSTATUS_MASK 0x4
58
59/* SDRC_POWER bit settings */
60#define SRFRONIDLEREQ_MASK 0x40
61#define PWDENA_MASK 0x4
62
63/* CM_IDLEST1_CORE bit settings */
64#define ST_SDRC_MASK 0x2
65
66/* CM_ICLKEN1_CORE bit settings */
67#define EN_SDRC_MASK 0x2
68
69/* CM_CLKSEL1_PLL bit settings */
70#define CORE_DPLL_CLKOUT_DIV_SHIFT 0x1b
71
40/* 72/*
41 * Change frequency of core dpll 73 * omap3_sram_configure_core_dpll - change DPLL3 M2 divider
42 * r0 = sdrc_rfr_ctrl r1 = sdrc_actim_ctrla r2 = sdrc_actim_ctrlb r3 = M2 74 * r0 = new SDRC_RFR_CTRL register contents
43 * r4 = Unlock SDRC DLL? (1 = yes, 0 = no) -- only unlock DLL for 75 * r1 = new SDRC_ACTIM_CTRLA register contents
76 * r2 = new SDRC_ACTIM_CTRLB register contents
77 * r3 = new M2 divider setting (only 1 and 2 supported right now)
78 * r4 = unlock SDRC DLL? (1 = yes, 0 = no). Only unlock DLL for
44 * SDRC rates < 83MHz 79 * SDRC rates < 83MHz
80 * r5 = number of MPU cycles to wait for SDRC to stabilize after
81 * reprogramming the SDRC when switching to a slower MPU speed
82 * r6 = new SDRC_MR_0 register value
83 * r7 = increasing SDRC rate? (1 = yes, 0 = no)
84 *
45 */ 85 */
46ENTRY(omap3_sram_configure_core_dpll) 86ENTRY(omap3_sram_configure_core_dpll)
47 stmfd sp!, {r1-r12, lr} @ store regs to stack 87 stmfd sp!, {r1-r12, lr} @ store regs to stack
48 ldr r4, [sp, #52] @ pull extra args off the stack 88 ldr r4, [sp, #52] @ pull extra args off the stack
89 ldr r5, [sp, #56] @ load extra args from the stack
90 ldr r6, [sp, #60] @ load extra args from the stack
91 ldr r7, [sp, #64] @ load extra args from the stack
49 dsb @ flush buffered writes to interconnect 92 dsb @ flush buffered writes to interconnect
50 cmp r3, #0x2 93 cmp r7, #1 @ if increasing SDRC clk rate,
51 blne configure_sdrc 94 bleq configure_sdrc @ program the SDRC regs early (for RFR)
52 cmp r4, #0x1 95 cmp r4, #SDRC_UNLOCK_DLL @ set the intended DLL state
53 bleq unlock_dll 96 bleq unlock_dll
54 blne lock_dll 97 blne lock_dll
55 bl sdram_in_selfrefresh @ put the SDRAM in self refresh 98 bl sdram_in_selfrefresh @ put SDRAM in self refresh, idle SDRC
56 bl configure_core_dpll 99 bl configure_core_dpll @ change the DPLL3 M2 divider
57 bl enable_sdrc 100 bl enable_sdrc @ take SDRC out of idle
58 cmp r4, #0x1 101 cmp r4, #SDRC_UNLOCK_DLL @ wait for DLL status to change
59 bleq wait_dll_unlock 102 bleq wait_dll_unlock
60 blne wait_dll_lock 103 blne wait_dll_lock
61 cmp r3, #0x1 104 cmp r7, #1 @ if increasing SDRC clk rate,
62 blne configure_sdrc 105 beq return_to_sdram @ return to SDRAM code, otherwise,
106 bl configure_sdrc @ reprogram SDRC regs now
107 mov r12, r5
108 bl wait_clk_stable @ wait for SDRC to stabilize
109return_to_sdram:
63 isb @ prevent speculative exec past here 110 isb @ prevent speculative exec past here
64 mov r0, #0 @ return value 111 mov r0, #0 @ return value
65 ldmfd sp!, {r1-r12, pc} @ restore regs and return 112 ldmfd sp!, {r1-r12, pc} @ restore regs and return
66unlock_dll: 113unlock_dll:
67 ldr r11, omap3_sdrc_dlla_ctrl 114 ldr r11, omap3_sdrc_dlla_ctrl
68 ldr r12, [r11] 115 ldr r12, [r11]
69 orr r12, r12, #0x4 116 and r12, r12, #FIXEDDELAY_MASK
117 orr r12, r12, #FIXEDDELAY_DEFAULT
118 orr r12, r12, #DLLIDLE_MASK
70 str r12, [r11] @ (no OCP barrier needed) 119 str r12, [r11] @ (no OCP barrier needed)
71 bx lr 120 bx lr
72lock_dll: 121lock_dll:
73 ldr r11, omap3_sdrc_dlla_ctrl 122 ldr r11, omap3_sdrc_dlla_ctrl
74 ldr r12, [r11] 123 ldr r12, [r11]
75 bic r12, r12, #0x4 124 bic r12, r12, #DLLIDLE_MASK
76 str r12, [r11] @ (no OCP barrier needed) 125 str r12, [r11] @ (no OCP barrier needed)
77 bx lr 126 bx lr
78sdram_in_selfrefresh: 127sdram_in_selfrefresh:
79 ldr r11, omap3_sdrc_power @ read the SDRC_POWER register 128 ldr r11, omap3_sdrc_power @ read the SDRC_POWER register
80 ldr r12, [r11] @ read the contents of SDRC_POWER 129 ldr r12, [r11] @ read the contents of SDRC_POWER
81 mov r9, r12 @ keep a copy of SDRC_POWER bits 130 mov r9, r12 @ keep a copy of SDRC_POWER bits
82 orr r12, r12, #0x40 @ enable self refresh on idle req 131 orr r12, r12, #SRFRONIDLEREQ_MASK @ enable self refresh on idle
83 bic r12, r12, #0x4 @ clear PWDENA 132 bic r12, r12, #PWDENA_MASK @ clear PWDENA
84 str r12, [r11] @ write back to SDRC_POWER register 133 str r12, [r11] @ write back to SDRC_POWER register
85 ldr r12, [r11] @ posted-write barrier for SDRC 134 ldr r12, [r11] @ posted-write barrier for SDRC
135idle_sdrc:
86 ldr r11, omap3_cm_iclken1_core @ read the CM_ICLKEN1_CORE reg 136 ldr r11, omap3_cm_iclken1_core @ read the CM_ICLKEN1_CORE reg
87 ldr r12, [r11] 137 ldr r12, [r11]
88 bic r12, r12, #0x2 @ disable iclk bit for SDRC 138 bic r12, r12, #EN_SDRC_MASK @ disable iclk bit for SDRC
89 str r12, [r11] 139 str r12, [r11]
90wait_sdrc_idle: 140wait_sdrc_idle:
91 ldr r11, omap3_cm_idlest1_core 141 ldr r11, omap3_cm_idlest1_core
92 ldr r12, [r11] 142 ldr r12, [r11]
93 and r12, r12, #0x2 @ check for SDRC idle 143 and r12, r12, #ST_SDRC_MASK @ check for SDRC idle
94 cmp r12, #2 144 cmp r12, #ST_SDRC_MASK
95 bne wait_sdrc_idle 145 bne wait_sdrc_idle
96 bx lr 146 bx lr
97configure_core_dpll: 147configure_core_dpll:
@@ -99,36 +149,23 @@ configure_core_dpll:
99 ldr r12, [r11] 149 ldr r12, [r11]
100 ldr r10, core_m2_mask_val @ modify m2 for core dpll 150 ldr r10, core_m2_mask_val @ modify m2 for core dpll
101 and r12, r12, r10 151 and r12, r12, r10
102 orr r12, r12, r3, lsl #0x1B @ r3 contains the M2 val 152 orr r12, r12, r3, lsl #CORE_DPLL_CLKOUT_DIV_SHIFT
103 str r12, [r11] 153 str r12, [r11]
104 ldr r12, [r11] @ posted-write barrier for CM 154 ldr r12, [r11] @ posted-write barrier for CM
105 mov r12, #0x800 @ wait for the clock to stabilise
106 cmp r3, #2
107 bne wait_clk_stable
108 bx lr 155 bx lr
109wait_clk_stable: 156wait_clk_stable:
110 subs r12, r12, #1 157 subs r12, r12, #1
111 bne wait_clk_stable 158 bne wait_clk_stable
112 nop
113 nop
114 nop
115 nop
116 nop
117 nop
118 nop
119 nop
120 nop
121 nop
122 bx lr 159 bx lr
123enable_sdrc: 160enable_sdrc:
124 ldr r11, omap3_cm_iclken1_core 161 ldr r11, omap3_cm_iclken1_core
125 ldr r12, [r11] 162 ldr r12, [r11]
126 orr r12, r12, #0x2 @ enable iclk bit for SDRC 163 orr r12, r12, #EN_SDRC_MASK @ enable iclk bit for SDRC
127 str r12, [r11] 164 str r12, [r11]
128wait_sdrc_idle1: 165wait_sdrc_idle1:
129 ldr r11, omap3_cm_idlest1_core 166 ldr r11, omap3_cm_idlest1_core
130 ldr r12, [r11] 167 ldr r12, [r11]
131 and r12, r12, #0x2 168 and r12, r12, #ST_SDRC_MASK
132 cmp r12, #0 169 cmp r12, #0
133 bne wait_sdrc_idle1 170 bne wait_sdrc_idle1
134restore_sdrc_power_val: 171restore_sdrc_power_val:
@@ -138,14 +175,14 @@ restore_sdrc_power_val:
138wait_dll_lock: 175wait_dll_lock:
139 ldr r11, omap3_sdrc_dlla_status 176 ldr r11, omap3_sdrc_dlla_status
140 ldr r12, [r11] 177 ldr r12, [r11]
141 and r12, r12, #0x4 178 and r12, r12, #LOCKSTATUS_MASK
142 cmp r12, #0x4 179 cmp r12, #LOCKSTATUS_MASK
143 bne wait_dll_lock 180 bne wait_dll_lock
144 bx lr 181 bx lr
145wait_dll_unlock: 182wait_dll_unlock:
146 ldr r11, omap3_sdrc_dlla_status 183 ldr r11, omap3_sdrc_dlla_status
147 ldr r12, [r11] 184 ldr r12, [r11]
148 and r12, r12, #0x4 185 and r12, r12, #LOCKSTATUS_MASK
149 cmp r12, #0x0 186 cmp r12, #0x0
150 bne wait_dll_unlock 187 bne wait_dll_unlock
151 bx lr 188 bx lr
@@ -156,7 +193,9 @@ configure_sdrc:
156 str r1, [r11] 193 str r1, [r11]
157 ldr r11, omap3_sdrc_actim_ctrlb 194 ldr r11, omap3_sdrc_actim_ctrlb
158 str r2, [r11] 195 str r2, [r11]
159 ldr r2, [r11] @ posted-write barrier for SDRC 196 ldr r11, omap3_sdrc_mr_0
197 str r6, [r11]
198 ldr r6, [r11] @ posted-write barrier for SDRC
160 bx lr 199 bx lr
161 200
162omap3_sdrc_power: 201omap3_sdrc_power:
@@ -173,6 +212,8 @@ omap3_sdrc_actim_ctrla:
173 .word OMAP34XX_SDRC_REGADDR(SDRC_ACTIM_CTRL_A_0) 212 .word OMAP34XX_SDRC_REGADDR(SDRC_ACTIM_CTRL_A_0)
174omap3_sdrc_actim_ctrlb: 213omap3_sdrc_actim_ctrlb:
175 .word OMAP34XX_SDRC_REGADDR(SDRC_ACTIM_CTRL_B_0) 214 .word OMAP34XX_SDRC_REGADDR(SDRC_ACTIM_CTRL_B_0)
215omap3_sdrc_mr_0:
216 .word OMAP34XX_SDRC_REGADDR(SDRC_MR_0)
176omap3_sdrc_dlla_status: 217omap3_sdrc_dlla_status:
177 .word OMAP34XX_SDRC_REGADDR(SDRC_DLLA_STATUS) 218 .word OMAP34XX_SDRC_REGADDR(SDRC_DLLA_STATUS)
178omap3_sdrc_dlla_ctrl: 219omap3_sdrc_dlla_ctrl:
diff --git a/arch/arm/mach-orion5x/addr-map.c b/arch/arm/mach-orion5x/addr-map.c
index 6f3f77d031d..d78731edebb 100644
--- a/arch/arm/mach-orion5x/addr-map.c
+++ b/arch/arm/mach-orion5x/addr-map.c
@@ -200,6 +200,6 @@ void __init orion5x_setup_pcie_wa_win(u32 base, u32 size)
200 200
201int __init orion5x_setup_sram_win(void) 201int __init orion5x_setup_sram_win(void)
202{ 202{
203 return setup_cpu_win(win_alloc_count, ORION5X_SRAM_PHYS_BASE, 203 return setup_cpu_win(win_alloc_count++, ORION5X_SRAM_PHYS_BASE,
204 ORION5X_SRAM_SIZE, TARGET_SRAM, ATTR_SRAM, -1); 204 ORION5X_SRAM_SIZE, TARGET_SRAM, ATTR_SRAM, -1);
205} 205}
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c
index eafcc49009e..f87fa125380 100644
--- a/arch/arm/mach-orion5x/common.c
+++ b/arch/arm/mach-orion5x/common.c
@@ -562,7 +562,7 @@ static struct platform_device orion5x_crypto_device = {
562 .resource = orion5x_crypto_res, 562 .resource = orion5x_crypto_res,
563}; 563};
564 564
565int __init orion5x_crypto_init(void) 565static int __init orion5x_crypto_init(void)
566{ 566{
567 int ret; 567 int ret;
568 568
@@ -697,6 +697,14 @@ void __init orion5x_init(void)
697 } 697 }
698 698
699 /* 699 /*
700 * The 5082/5181l/5182/6082/6082l/6183 have crypto
701 * while 5180n/5181/5281 don't have crypto.
702 */
703 if ((dev == MV88F5181_DEV_ID && rev >= MV88F5181L_REV_A0) ||
704 dev == MV88F5182_DEV_ID || dev == MV88F6183_DEV_ID)
705 orion5x_crypto_init();
706
707 /*
700 * Register watchdog driver 708 * Register watchdog driver
701 */ 709 */
702 orion5x_wdt_init(); 710 orion5x_wdt_init();
diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h
index de483e83edd..8f004503c96 100644
--- a/arch/arm/mach-orion5x/common.h
+++ b/arch/arm/mach-orion5x/common.h
@@ -38,7 +38,6 @@ void orion5x_spi_init(void);
38void orion5x_uart0_init(void); 38void orion5x_uart0_init(void);
39void orion5x_uart1_init(void); 39void orion5x_uart1_init(void);
40void orion5x_xor_init(void); 40void orion5x_xor_init(void);
41int orion5x_crypto_init(void);
42 41
43/* 42/*
44 * PCIe/PCI functions. 43 * PCIe/PCI functions.
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index f4533f8ff4e..89c992b8f75 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -401,6 +401,16 @@ config MACH_PALMZ72
401 Say Y here if you intend to run this kernel on Palm Zire 72 401 Say Y here if you intend to run this kernel on Palm Zire 72
402 handheld computer. 402 handheld computer.
403 403
404config MACH_TREO680
405 bool "Palm Treo 680"
406 default y
407 depends on ARCH_PXA_PALM
408 select PXA27x
409 select IWMMXT
410 help
411 Say Y here if you intend to run this kernel on Palm Treo 680
412 smartphone.
413
404config MACH_PALMLD 414config MACH_PALMLD
405 bool "Palm LifeDrive" 415 bool "Palm LifeDrive"
406 default y 416 default y
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
index d18ffef44b8..d4c6122a342 100644
--- a/arch/arm/mach-pxa/Makefile
+++ b/arch/arm/mach-pxa/Makefile
@@ -62,6 +62,7 @@ obj-$(CONFIG_MACH_PALMT5) += palmt5.o
62obj-$(CONFIG_MACH_PALMTX) += palmtx.o 62obj-$(CONFIG_MACH_PALMTX) += palmtx.o
63obj-$(CONFIG_MACH_PALMLD) += palmld.o 63obj-$(CONFIG_MACH_PALMLD) += palmld.o
64obj-$(CONFIG_MACH_PALMZ72) += palmz72.o 64obj-$(CONFIG_MACH_PALMZ72) += palmz72.o
65obj-$(CONFIG_MACH_TREO680) += treo680.o
65obj-$(CONFIG_ARCH_VIPER) += viper.o 66obj-$(CONFIG_ARCH_VIPER) += viper.o
66 67
67ifeq ($(CONFIG_MACH_ZYLONITE),y) 68ifeq ($(CONFIG_MACH_ZYLONITE),y)
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index 962dda2e154..5363e1aea3f 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -23,6 +23,7 @@
23#include <linux/pm.h> 23#include <linux/pm.h>
24#include <linux/gpio.h> 24#include <linux/gpio.h>
25#include <linux/backlight.h> 25#include <linux/backlight.h>
26#include <linux/i2c.h>
26#include <linux/io.h> 27#include <linux/io.h>
27#include <linux/spi/spi.h> 28#include <linux/spi/spi.h>
28#include <linux/spi/ads7846.h> 29#include <linux/spi/ads7846.h>
@@ -600,6 +601,10 @@ static struct platform_device *devices[] __initdata = {
600 &sharpsl_rom_device, 601 &sharpsl_rom_device,
601}; 602};
602 603
604static struct i2c_board_info __initdata corgi_i2c_devices[] = {
605 { I2C_BOARD_INFO("wm8731", 0x1b) },
606};
607
603static void corgi_poweroff(void) 608static void corgi_poweroff(void)
604{ 609{
605 if (!machine_is_corgi()) 610 if (!machine_is_corgi())
@@ -634,6 +639,7 @@ static void __init corgi_init(void)
634 pxa_set_mci_info(&corgi_mci_platform_data); 639 pxa_set_mci_info(&corgi_mci_platform_data);
635 pxa_set_ficp_info(&corgi_ficp_platform_data); 640 pxa_set_ficp_info(&corgi_ficp_platform_data);
636 pxa_set_i2c_info(NULL); 641 pxa_set_i2c_info(NULL);
642 i2c_register_board_info(0, ARRAY_AND_SIZE(corgi_i2c_devices));
637 643
638 platform_scoop_config = &corgi_pcmcia_config; 644 platform_scoop_config = &corgi_pcmcia_config;
639 645
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
index 243e0802b5f..63b10d9bb1d 100644
--- a/arch/arm/mach-pxa/em-x270.c
+++ b/arch/arm/mach-pxa/em-x270.c
@@ -30,6 +30,7 @@
30#include <linux/apm-emulation.h> 30#include <linux/apm-emulation.h>
31#include <linux/i2c.h> 31#include <linux/i2c.h>
32#include <linux/i2c/pca953x.h> 32#include <linux/i2c/pca953x.h>
33#include <linux/regulator/userspace-consumer.h>
33 34
34#include <media/soc_camera.h> 35#include <media/soc_camera.h>
35 36
@@ -735,6 +736,7 @@ static struct pxa2xx_spi_chip em_x270_libertas_chip = {
735 .rx_threshold = 1, 736 .rx_threshold = 1,
736 .tx_threshold = 1, 737 .tx_threshold = 1,
737 .timeout = 1000, 738 .timeout = 1000,
739 .gpio_cs = 14,
738}; 740};
739 741
740static unsigned long em_x270_libertas_pin_config[] = { 742static unsigned long em_x270_libertas_pin_config[] = {
@@ -803,7 +805,6 @@ static int em_x270_libertas_teardown(struct spi_device *spi)
803 805
804struct libertas_spi_platform_data em_x270_libertas_pdata = { 806struct libertas_spi_platform_data em_x270_libertas_pdata = {
805 .use_dummy_writes = 1, 807 .use_dummy_writes = 1,
806 .gpio_cs = 14,
807 .setup = em_x270_libertas_setup, 808 .setup = em_x270_libertas_setup,
808 .teardown = em_x270_libertas_teardown, 809 .teardown = em_x270_libertas_teardown,
809}; 810};
@@ -838,10 +839,14 @@ static void __init em_x270_init_spi(void)
838static inline void em_x270_init_spi(void) {} 839static inline void em_x270_init_spi(void) {}
839#endif 840#endif
840 841
841#if defined(CONFIG_SND_PXA2XX_AC97) || defined(CONFIG_SND_PXA2XX_AC97_MODULE) 842#if defined(CONFIG_SND_PXA2XX_LIB_AC97)
843static pxa2xx_audio_ops_t em_x270_ac97_info = {
844 .reset_gpio = 113,
845};
846
842static void __init em_x270_init_ac97(void) 847static void __init em_x270_init_ac97(void)
843{ 848{
844 pxa_set_ac97_info(NULL); 849 pxa_set_ac97_info(&em_x270_ac97_info);
845} 850}
846#else 851#else
847static inline void em_x270_init_ac97(void) {} 852static inline void em_x270_init_ac97(void) {}
@@ -1038,6 +1043,52 @@ static void __init em_x270_init_camera(void)
1038static inline void em_x270_init_camera(void) {} 1043static inline void em_x270_init_camera(void) {}
1039#endif 1044#endif
1040 1045
1046static struct regulator_bulk_data em_x270_gps_consumer_supply = {
1047 .supply = "vcc gps",
1048};
1049
1050static struct regulator_userspace_consumer_data em_x270_gps_consumer_data = {
1051 .name = "vcc gps",
1052 .num_supplies = 1,
1053 .supplies = &em_x270_gps_consumer_supply,
1054};
1055
1056static struct platform_device em_x270_gps_userspace_consumer = {
1057 .name = "reg-userspace-consumer",
1058 .id = 0,
1059 .dev = {
1060 .platform_data = &em_x270_gps_consumer_data,
1061 },
1062};
1063
1064static struct regulator_bulk_data em_x270_gprs_consumer_supply = {
1065 .supply = "vcc gprs",
1066};
1067
1068static struct regulator_userspace_consumer_data em_x270_gprs_consumer_data = {
1069 .name = "vcc gprs",
1070 .num_supplies = 1,
1071 .supplies = &em_x270_gprs_consumer_supply
1072};
1073
1074static struct platform_device em_x270_gprs_userspace_consumer = {
1075 .name = "reg-userspace-consumer",
1076 .id = 1,
1077 .dev = {
1078 .platform_data = &em_x270_gprs_consumer_data,
1079 }
1080};
1081
1082static struct platform_device *em_x270_userspace_consumers[] = {
1083 &em_x270_gps_userspace_consumer,
1084 &em_x270_gprs_userspace_consumer,
1085};
1086
1087static void __init em_x270_userspace_consumers_init(void)
1088{
1089 platform_add_devices(ARRAY_AND_SIZE(em_x270_userspace_consumers));
1090}
1091
1041/* DA9030 related initializations */ 1092/* DA9030 related initializations */
1042#define REGULATOR_CONSUMER(_name, _dev, _supply) \ 1093#define REGULATOR_CONSUMER(_name, _dev, _supply) \
1043 static struct regulator_consumer_supply _name##_consumers[] = { \ 1094 static struct regulator_consumer_supply _name##_consumers[] = { \
@@ -1047,11 +1098,11 @@ static inline void em_x270_init_camera(void) {}
1047 }, \ 1098 }, \
1048 } 1099 }
1049 1100
1050REGULATOR_CONSUMER(ldo3, NULL, "vcc gps"); 1101REGULATOR_CONSUMER(ldo3, &em_x270_gps_userspace_consumer.dev, "vcc gps");
1051REGULATOR_CONSUMER(ldo5, NULL, "vcc cam"); 1102REGULATOR_CONSUMER(ldo5, NULL, "vcc cam");
1052REGULATOR_CONSUMER(ldo10, &pxa_device_mci.dev, "vcc sdio"); 1103REGULATOR_CONSUMER(ldo10, &pxa_device_mci.dev, "vcc sdio");
1053REGULATOR_CONSUMER(ldo12, NULL, "vcc usb"); 1104REGULATOR_CONSUMER(ldo12, NULL, "vcc usb");
1054REGULATOR_CONSUMER(ldo19, NULL, "vcc gprs"); 1105REGULATOR_CONSUMER(ldo19, &em_x270_gprs_userspace_consumer.dev, "vcc gprs");
1055 1106
1056#define REGULATOR_INIT(_ldo, _min_uV, _max_uV, _ops_mask) \ 1107#define REGULATOR_INIT(_ldo, _min_uV, _max_uV, _ops_mask) \
1057 static struct regulator_init_data _ldo##_data = { \ 1108 static struct regulator_init_data _ldo##_data = { \
@@ -1062,6 +1113,7 @@ REGULATOR_CONSUMER(ldo19, NULL, "vcc gprs");
1062 .enabled = 0, \ 1113 .enabled = 0, \
1063 }, \ 1114 }, \
1064 .valid_ops_mask = _ops_mask, \ 1115 .valid_ops_mask = _ops_mask, \
1116 .apply_uV = 1, \
1065 }, \ 1117 }, \
1066 .num_consumer_supplies = ARRAY_SIZE(_ldo##_consumers), \ 1118 .num_consumer_supplies = ARRAY_SIZE(_ldo##_consumers), \
1067 .consumer_supplies = _ldo##_consumers, \ 1119 .consumer_supplies = _ldo##_consumers, \
@@ -1240,6 +1292,7 @@ static void __init em_x270_init(void)
1240 em_x270_init_spi(); 1292 em_x270_init_spi();
1241 em_x270_init_i2c(); 1293 em_x270_init_i2c();
1242 em_x270_init_camera(); 1294 em_x270_init_camera();
1295 em_x270_userspace_consumers_init();
1243} 1296}
1244 1297
1245MACHINE_START(EM_X270, "Compulab EM-X270") 1298MACHINE_START(EM_X270, "Compulab EM-X270")
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
index 7fff467e84f..81359d574f8 100644
--- a/arch/arm/mach-pxa/hx4700.c
+++ b/arch/arm/mach-pxa/hx4700.c
@@ -30,6 +30,7 @@
30#include <linux/pwm_backlight.h> 30#include <linux/pwm_backlight.h>
31#include <linux/regulator/bq24022.h> 31#include <linux/regulator/bq24022.h>
32#include <linux/regulator/machine.h> 32#include <linux/regulator/machine.h>
33#include <linux/regulator/max1586.h>
33#include <linux/spi/ads7846.h> 34#include <linux/spi/ads7846.h>
34#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
35#include <linux/usb/gpio_vbus.h> 36#include <linux/usb/gpio_vbus.h>
@@ -775,6 +776,45 @@ static struct platform_device strataflash = {
775}; 776};
776 777
777/* 778/*
779 * Maxim MAX1587A on PI2C
780 */
781
782static struct regulator_consumer_supply max1587a_consumer = {
783 .supply = "vcc_core",
784};
785
786static struct regulator_init_data max1587a_v3_info = {
787 .constraints = {
788 .name = "vcc_core range",
789 .min_uV = 900000,
790 .max_uV = 1705000,
791 .always_on = 1,
792 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
793 },
794 .num_consumer_supplies = 1,
795 .consumer_supplies = &max1587a_consumer,
796};
797
798static struct max1586_subdev_data max1587a_subdev = {
799 .name = "vcc_core",
800 .id = MAX1586_V3,
801 .platform_data = &max1587a_v3_info,
802};
803
804static struct max1586_platform_data max1587a_info = {
805 .num_subdevs = 1,
806 .subdevs = &max1587a_subdev,
807 .v3_gain = MAX1586_GAIN_R24_3k32, /* 730..1550 mV */
808};
809
810static struct i2c_board_info __initdata pi2c_board_info[] = {
811 {
812 I2C_BOARD_INFO("max1586", 0x14),
813 .platform_data = &max1587a_info,
814 },
815};
816
817/*
778 * PCMCIA 818 * PCMCIA
779 */ 819 */
780 820
@@ -828,6 +868,7 @@ static void __init hx4700_init(void)
828 pxa_set_ficp_info(&ficp_info); 868 pxa_set_ficp_info(&ficp_info);
829 pxa27x_set_i2c_power_info(NULL); 869 pxa27x_set_i2c_power_info(NULL);
830 pxa_set_i2c_info(NULL); 870 pxa_set_i2c_info(NULL);
871 i2c_register_board_info(1, ARRAY_AND_SIZE(pi2c_board_info));
831 pxa2xx_set_spi_info(2, &pxa_ssp2_master_info); 872 pxa2xx_set_spi_info(2, &pxa_ssp2_master_info);
832 spi_register_board_info(ARRAY_AND_SIZE(tsc2046_board_info)); 873 spi_register_board_info(ARRAY_AND_SIZE(tsc2046_board_info));
833 874
diff --git a/arch/arm/mach-pxa/include/mach/palmz72.h b/arch/arm/mach-pxa/include/mach/palmz72.h
index 5032307ebf7..2806ef69ba5 100644
--- a/arch/arm/mach-pxa/include/mach/palmz72.h
+++ b/arch/arm/mach-pxa/include/mach/palmz72.h
@@ -21,7 +21,7 @@
21/* SD/MMC */ 21/* SD/MMC */
22#define GPIO_NR_PALMZ72_SD_DETECT_N 14 22#define GPIO_NR_PALMZ72_SD_DETECT_N 14
23#define GPIO_NR_PALMZ72_SD_POWER_N 98 23#define GPIO_NR_PALMZ72_SD_POWER_N 98
24#define GPIO_NR_PALMZ72_SD_RO 115 24#define GPIO_NR_PALMZ72_SD_RO 115
25 25
26/* Touchscreen */ 26/* Touchscreen */
27#define GPIO_NR_PALMZ72_WM9712_IRQ 27 27#define GPIO_NR_PALMZ72_WM9712_IRQ 27
@@ -31,8 +31,7 @@
31 31
32/* USB */ 32/* USB */
33#define GPIO_NR_PALMZ72_USB_DETECT_N 15 33#define GPIO_NR_PALMZ72_USB_DETECT_N 15
34#define GPIO_NR_PALMZ72_USB_POWER 95 34#define GPIO_NR_PALMZ72_USB_PULLUP 95
35#define GPIO_NR_PALMZ72_USB_PULLUP 12
36 35
37/* LCD/Backlight */ 36/* LCD/Backlight */
38#define GPIO_NR_PALMZ72_BL_POWER 20 37#define GPIO_NR_PALMZ72_BL_POWER 20
diff --git a/arch/arm/mach-pxa/include/mach/treo680.h b/arch/arm/mach-pxa/include/mach/treo680.h
new file mode 100644
index 00000000000..af443b24d99
--- /dev/null
+++ b/arch/arm/mach-pxa/include/mach/treo680.h
@@ -0,0 +1,49 @@
1/*
2 * GPIOs and interrupts for Palm Treo 680 smartphone
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 */
9
10#ifndef _INCLUDE_TREO680_H_
11#define _INCLUDE_TREO680_H_
12
13/* GPIOs */
14#define GPIO_NR_TREO680_POWER_DETECT 0
15#define GPIO_NR_TREO680_AMP_EN 27
16#define GPIO_NR_TREO680_KEYB_BL 24
17#define GPIO_NR_TREO680_VIBRATE_EN 44
18#define GPIO_NR_TREO680_GREEN_LED 20
19#define GPIO_NR_TREO680_RED_LED 79
20#define GPIO_NR_TREO680_SD_DETECT_N 113
21#define GPIO_NR_TREO680_SD_READONLY 33
22#define GPIO_NR_TREO680_EP_DETECT_N 116
23#define GPIO_NR_TREO680_SD_POWER 42
24#define GPIO_NR_TREO680_USB_DETECT 1
25#define GPIO_NR_TREO680_USB_PULLUP 114
26#define GPIO_NR_TREO680_GSM_POWER 40
27#define GPIO_NR_TREO680_GSM_RESET 87
28#define GPIO_NR_TREO680_GSM_WAKE 57
29#define GPIO_NR_TREO680_GSM_HOST_WAKE 14
30#define GPIO_NR_TREO680_GSM_TRIGGER 10
31#define GPIO_NR_TREO680_BT_EN 43
32#define GPIO_NR_TREO680_IR_EN 115
33#define GPIO_NR_TREO680_IR_TXD 47
34#define GPIO_NR_TREO680_BL_POWER 38
35#define GPIO_NR_TREO680_LCD_POWER 25
36
37/* Various addresses */
38#define TREO680_PHYS_RAM_START 0xa0000000
39#define TREO680_PHYS_IO_START 0x40000000
40#define TREO680_STR_BASE 0xa2000000
41
42/* BACKLIGHT */
43#define TREO680_MAX_INTENSITY 254
44#define TREO680_DEFAULT_INTENSITY 160
45#define TREO680_LIMIT_MASK 0x7F
46#define TREO680_PRESCALER 63
47#define TREO680_PERIOD_NS 3500
48
49#endif
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c
index 4dc8c2ec40a..2d28132c725 100644
--- a/arch/arm/mach-pxa/mioa701.c
+++ b/arch/arm/mach-pxa/mioa701.c
@@ -37,6 +37,7 @@
37#include <linux/wm97xx_batt.h> 37#include <linux/wm97xx_batt.h>
38#include <linux/mtd/physmap.h> 38#include <linux/mtd/physmap.h>
39#include <linux/usb/gpio_vbus.h> 39#include <linux/usb/gpio_vbus.h>
40#include <linux/regulator/max1586.h>
40 41
41#include <asm/mach-types.h> 42#include <asm/mach-types.h>
42#include <asm/mach/arch.h> 43#include <asm/mach/arch.h>
@@ -717,6 +718,38 @@ static struct wm97xx_batt_info mioa701_battery_data = {
717}; 718};
718 719
719/* 720/*
721 * Voltage regulation
722 */
723static struct regulator_consumer_supply max1586_consumers[] = {
724 {
725 .supply = "vcc_core",
726 }
727};
728
729static struct regulator_init_data max1586_v3_info = {
730 .constraints = {
731 .name = "vcc_core range",
732 .min_uV = 1000000,
733 .max_uV = 1705000,
734 .always_on = 1,
735 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
736 },
737 .num_consumer_supplies = ARRAY_SIZE(max1586_consumers),
738 .consumer_supplies = max1586_consumers,
739};
740
741static struct max1586_subdev_data max1586_subdevs[] = {
742 { .name = "vcc_core", .id = MAX1586_V3,
743 .platform_data = &max1586_v3_info },
744};
745
746static struct max1586_platform_data max1586_info = {
747 .subdevs = max1586_subdevs,
748 .num_subdevs = ARRAY_SIZE(max1586_subdevs),
749 .v3_gain = MAX1586_GAIN_NO_R24, /* 700..1475 mV */
750};
751
752/*
720 * Camera interface 753 * Camera interface
721 */ 754 */
722struct pxacamera_platform_data mioa701_pxacamera_platform_data = { 755struct pxacamera_platform_data mioa701_pxacamera_platform_data = {
@@ -725,6 +758,13 @@ struct pxacamera_platform_data mioa701_pxacamera_platform_data = {
725 .mclk_10khz = 5000, 758 .mclk_10khz = 5000,
726}; 759};
727 760
761static struct i2c_board_info __initdata mioa701_pi2c_devices[] = {
762 {
763 I2C_BOARD_INFO("max1586", 0x14),
764 .platform_data = &max1586_info,
765 },
766};
767
728static struct soc_camera_link iclink = { 768static struct soc_camera_link iclink = {
729 .bus_id = 0, /* Must match id in pxa27x_device_camera in device.c */ 769 .bus_id = 0, /* Must match id in pxa27x_device_camera in device.c */
730}; 770};
@@ -825,7 +865,9 @@ static void __init mioa701_machine_init(void)
825 platform_add_devices(devices, ARRAY_SIZE(devices)); 865 platform_add_devices(devices, ARRAY_SIZE(devices));
826 gsm_init(); 866 gsm_init();
827 867
868 i2c_register_board_info(1, ARRAY_AND_SIZE(mioa701_pi2c_devices));
828 pxa_set_i2c_info(&i2c_pdata); 869 pxa_set_i2c_info(&i2c_pdata);
870 pxa27x_set_i2c_power_info(NULL);
829 pxa_set_camera_info(&mioa701_pxacamera_platform_data); 871 pxa_set_camera_info(&mioa701_pxacamera_platform_data);
830 i2c_register_board_info(0, ARRAY_AND_SIZE(mioa701_i2c_devices)); 872 i2c_register_board_info(0, ARRAY_AND_SIZE(mioa701_i2c_devices));
831} 873}
diff --git a/arch/arm/mach-pxa/palmz72.c b/arch/arm/mach-pxa/palmz72.c
index b88eb4dd2c8..c3645aa3fa3 100644
--- a/arch/arm/mach-pxa/palmz72.c
+++ b/arch/arm/mach-pxa/palmz72.c
@@ -27,7 +27,9 @@
27#include <linux/pda_power.h> 27#include <linux/pda_power.h>
28#include <linux/pwm_backlight.h> 28#include <linux/pwm_backlight.h>
29#include <linux/gpio.h> 29#include <linux/gpio.h>
30#include <linux/wm97xx_batt.h>
30#include <linux/power_supply.h> 31#include <linux/power_supply.h>
32#include <linux/usb/gpio_vbus.h>
31 33
32#include <asm/mach-types.h> 34#include <asm/mach-types.h>
33#include <asm/mach/arch.h> 35#include <asm/mach/arch.h>
@@ -41,6 +43,8 @@
41#include <mach/irda.h> 43#include <mach/irda.h>
42#include <mach/pxa27x_keypad.h> 44#include <mach/pxa27x_keypad.h>
43#include <mach/udc.h> 45#include <mach/udc.h>
46#include <mach/palmasoc.h>
47
44#include <mach/pm.h> 48#include <mach/pm.h>
45 49
46#include "generic.h" 50#include "generic.h"
@@ -66,6 +70,8 @@ static unsigned long palmz72_pin_config[] __initdata = {
66 GPIO29_AC97_SDATA_IN_0, 70 GPIO29_AC97_SDATA_IN_0,
67 GPIO30_AC97_SDATA_OUT, 71 GPIO30_AC97_SDATA_OUT,
68 GPIO31_AC97_SYNC, 72 GPIO31_AC97_SYNC,
73 GPIO89_AC97_SYSCLK,
74 GPIO113_AC97_nRESET,
69 75
70 /* IrDA */ 76 /* IrDA */
71 GPIO49_GPIO, /* ir disable */ 77 GPIO49_GPIO, /* ir disable */
@@ -77,8 +83,7 @@ static unsigned long palmz72_pin_config[] __initdata = {
77 83
78 /* USB */ 84 /* USB */
79 GPIO15_GPIO, /* usb detect */ 85 GPIO15_GPIO, /* usb detect */
80 GPIO12_GPIO, /* usb pullup */ 86 GPIO95_GPIO, /* usb pullup */
81 GPIO95_GPIO, /* usb power */
82 87
83 /* Matrix keypad */ 88 /* Matrix keypad */
84 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, 89 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
@@ -355,6 +360,22 @@ static struct platform_device palmz72_leds = {
355}; 360};
356 361
357/****************************************************************************** 362/******************************************************************************
363 * UDC
364 ******************************************************************************/
365static struct gpio_vbus_mach_info palmz72_udc_info = {
366 .gpio_vbus = GPIO_NR_PALMZ72_USB_DETECT_N,
367 .gpio_pullup = GPIO_NR_PALMZ72_USB_PULLUP,
368};
369
370static struct platform_device palmz72_gpio_vbus = {
371 .name = "gpio-vbus",
372 .id = -1,
373 .dev = {
374 .platform_data = &palmz72_udc_info,
375 },
376};
377
378/******************************************************************************
358 * Power supply 379 * Power supply
359 ******************************************************************************/ 380 ******************************************************************************/
360static int power_supply_init(struct device *dev) 381static int power_supply_init(struct device *dev)
@@ -422,6 +443,31 @@ static struct platform_device power_supply = {
422}; 443};
423 444
424/****************************************************************************** 445/******************************************************************************
446 * WM97xx battery
447 ******************************************************************************/
448static struct wm97xx_batt_info wm97xx_batt_pdata = {
449 .batt_aux = WM97XX_AUX_ID3,
450 .temp_aux = WM97XX_AUX_ID2,
451 .charge_gpio = -1,
452 .max_voltage = PALMZ72_BAT_MAX_VOLTAGE,
453 .min_voltage = PALMZ72_BAT_MIN_VOLTAGE,
454 .batt_mult = 1000,
455 .batt_div = 414,
456 .temp_mult = 1,
457 .temp_div = 1,
458 .batt_tech = POWER_SUPPLY_TECHNOLOGY_LIPO,
459 .batt_name = "main-batt",
460};
461
462/******************************************************************************
463 * aSoC audio
464 ******************************************************************************/
465static struct platform_device palmz72_asoc = {
466 .name = "palm27x-asoc",
467 .id = -1,
468};
469
470/******************************************************************************
425 * Framebuffer 471 * Framebuffer
426 ******************************************************************************/ 472 ******************************************************************************/
427static struct pxafb_mode_info palmz72_lcd_modes[] = { 473static struct pxafb_mode_info palmz72_lcd_modes[] = {
@@ -527,17 +573,32 @@ device_initcall(palmz72_pm_init);
527static struct platform_device *devices[] __initdata = { 573static struct platform_device *devices[] __initdata = {
528 &palmz72_backlight, 574 &palmz72_backlight,
529 &palmz72_leds, 575 &palmz72_leds,
576 &palmz72_asoc,
530 &power_supply, 577 &power_supply,
578 &palmz72_gpio_vbus,
531}; 579};
532 580
581/* setup udc GPIOs initial state */
582static void __init palmz72_udc_init(void)
583{
584 if (!gpio_request(GPIO_NR_PALMZ72_USB_PULLUP, "USB Pullup")) {
585 gpio_direction_output(GPIO_NR_PALMZ72_USB_PULLUP, 0);
586 gpio_free(GPIO_NR_PALMZ72_USB_PULLUP);
587 }
588}
589
533static void __init palmz72_init(void) 590static void __init palmz72_init(void)
534{ 591{
535 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmz72_pin_config)); 592 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmz72_pin_config));
593
536 set_pxa_fb_info(&palmz72_lcd_screen); 594 set_pxa_fb_info(&palmz72_lcd_screen);
537 pxa_set_mci_info(&palmz72_mci_platform_data); 595 pxa_set_mci_info(&palmz72_mci_platform_data);
596 palmz72_udc_init();
538 pxa_set_ac97_info(NULL); 597 pxa_set_ac97_info(NULL);
539 pxa_set_ficp_info(&palmz72_ficp_platform_data); 598 pxa_set_ficp_info(&palmz72_ficp_platform_data);
540 pxa_set_keypad_info(&palmz72_keypad_platform_data); 599 pxa_set_keypad_info(&palmz72_keypad_platform_data);
600 wm97xx_bat_set_pdata(&wm97xx_batt_pdata);
601
541 platform_add_devices(devices, ARRAY_SIZE(devices)); 602 platform_add_devices(devices, ARRAY_SIZE(devices));
542} 603}
543 604
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
index ac431ed1039..9352d4a3483 100644
--- a/arch/arm/mach-pxa/poodle.c
+++ b/arch/arm/mach-pxa/poodle.c
@@ -22,6 +22,7 @@
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/mtd/physmap.h> 23#include <linux/mtd/physmap.h>
24#include <linux/gpio.h> 24#include <linux/gpio.h>
25#include <linux/i2c.h>
25#include <linux/spi/spi.h> 26#include <linux/spi/spi.h>
26#include <linux/spi/ads7846.h> 27#include <linux/spi/ads7846.h>
27#include <linux/mtd/sharpsl.h> 28#include <linux/mtd/sharpsl.h>
@@ -486,6 +487,10 @@ static struct platform_device *devices[] __initdata = {
486 &sharpsl_rom_device, 487 &sharpsl_rom_device,
487}; 488};
488 489
490static struct i2c_board_info __initdata poodle_i2c_devices[] = {
491 { I2C_BOARD_INFO("wm8731", 0x1b) },
492};
493
489static void poodle_poweroff(void) 494static void poodle_poweroff(void)
490{ 495{
491 arm_machine_restart('h', NULL); 496 arm_machine_restart('h', NULL);
@@ -519,6 +524,7 @@ static void __init poodle_init(void)
519 pxa_set_mci_info(&poodle_mci_platform_data); 524 pxa_set_mci_info(&poodle_mci_platform_data);
520 pxa_set_ficp_info(&poodle_ficp_platform_data); 525 pxa_set_ficp_info(&poodle_ficp_platform_data);
521 pxa_set_i2c_info(NULL); 526 pxa_set_i2c_info(NULL);
527 i2c_register_board_info(0, ARRAY_AND_SIZE(poodle_i2c_devices));
522 poodle_init_spi(); 528 poodle_init_spi();
523} 529}
524 530
diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
new file mode 100644
index 00000000000..a06f19edebb
--- /dev/null
+++ b/arch/arm/mach-pxa/treo680.c
@@ -0,0 +1,612 @@
1/*
2 * Hardware definitions for Palm Treo 680
3 *
4 * Author: Tomas Cech <sleep_walker@suse.cz>
5 *
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
8 * published by the Free Software Foundation.
9 *
10 * (find more info at www.hackndev.com)
11 *
12 */
13
14#include <linux/platform_device.h>
15#include <linux/delay.h>
16#include <linux/irq.h>
17#include <linux/gpio_keys.h>
18#include <linux/input.h>
19#include <linux/pda_power.h>
20#include <linux/pwm_backlight.h>
21#include <linux/gpio.h>
22#include <linux/wm97xx_batt.h>
23#include <linux/power_supply.h>
24#include <linux/sysdev.h>
25#include <linux/w1-gpio.h>
26
27#include <asm/mach-types.h>
28#include <asm/mach/arch.h>
29#include <asm/mach/map.h>
30
31#include <mach/pxa27x.h>
32#include <mach/pxa27x-udc.h>
33#include <mach/audio.h>
34#include <mach/treo680.h>
35#include <mach/mmc.h>
36#include <mach/pxafb.h>
37#include <mach/irda.h>
38#include <mach/pxa27x_keypad.h>
39#include <mach/udc.h>
40#include <mach/ohci.h>
41#include <mach/pxa2xx-regs.h>
42#include <mach/palmasoc.h>
43#include <mach/camera.h>
44
45#include <sound/pxa2xx-lib.h>
46
47#include "generic.h"
48#include "devices.h"
49
50/******************************************************************************
51 * Pin configuration
52 ******************************************************************************/
53static unsigned long treo680_pin_config[] __initdata = {
54 /* MMC */
55 GPIO32_MMC_CLK,
56 GPIO92_MMC_DAT_0,
57 GPIO109_MMC_DAT_1,
58 GPIO110_MMC_DAT_2,
59 GPIO111_MMC_DAT_3,
60 GPIO112_MMC_CMD,
61 GPIO33_GPIO, /* SD read only */
62 GPIO113_GPIO, /* SD detect */
63
64 /* AC97 */
65 GPIO28_AC97_BITCLK,
66 GPIO29_AC97_SDATA_IN_0,
67 GPIO30_AC97_SDATA_OUT,
68 GPIO31_AC97_SYNC,
69 GPIO89_AC97_SYSCLK,
70 GPIO95_AC97_nRESET,
71
72 /* IrDA */
73 GPIO46_FICP_RXD,
74 GPIO47_FICP_TXD,
75
76 /* PWM */
77 GPIO16_PWM0_OUT,
78
79 /* USB */
80 GPIO1_GPIO | WAKEUP_ON_EDGE_BOTH, /* usb detect */
81
82 /* MATRIX KEYPAD */
83 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
84 GPIO101_KP_MKIN_1,
85 GPIO102_KP_MKIN_2,
86 GPIO97_KP_MKIN_3,
87 GPIO98_KP_MKIN_4,
88 GPIO99_KP_MKIN_5,
89 GPIO91_KP_MKIN_6,
90 GPIO13_KP_MKIN_7,
91 GPIO103_KP_MKOUT_0 | MFP_LPM_DRIVE_HIGH,
92 GPIO104_KP_MKOUT_1,
93 GPIO105_KP_MKOUT_2,
94 GPIO106_KP_MKOUT_3,
95 GPIO107_KP_MKOUT_4,
96 GPIO108_KP_MKOUT_5,
97 GPIO96_KP_MKOUT_6,
98 GPIO93_KP_DKIN_0 | WAKEUP_ON_LEVEL_HIGH, /* Hotsync button */
99
100 /* LCD */
101 GPIO58_LCD_LDD_0,
102 GPIO59_LCD_LDD_1,
103 GPIO60_LCD_LDD_2,
104 GPIO61_LCD_LDD_3,
105 GPIO62_LCD_LDD_4,
106 GPIO63_LCD_LDD_5,
107 GPIO64_LCD_LDD_6,
108 GPIO65_LCD_LDD_7,
109 GPIO66_LCD_LDD_8,
110 GPIO67_LCD_LDD_9,
111 GPIO68_LCD_LDD_10,
112 GPIO69_LCD_LDD_11,
113 GPIO70_LCD_LDD_12,
114 GPIO71_LCD_LDD_13,
115 GPIO72_LCD_LDD_14,
116 GPIO73_LCD_LDD_15,
117 GPIO74_LCD_FCLK,
118 GPIO75_LCD_LCLK,
119 GPIO76_LCD_PCLK,
120
121 /* Quick Capture Interface */
122 GPIO84_CIF_FV,
123 GPIO85_CIF_LV,
124 GPIO53_CIF_MCLK,
125 GPIO54_CIF_PCLK,
126 GPIO81_CIF_DD_0,
127 GPIO55_CIF_DD_1,
128 GPIO51_CIF_DD_2,
129 GPIO50_CIF_DD_3,
130 GPIO52_CIF_DD_4,
131 GPIO48_CIF_DD_5,
132 GPIO17_CIF_DD_6,
133 GPIO12_CIF_DD_7,
134
135 /* I2C */
136 GPIO117_I2C_SCL,
137 GPIO118_I2C_SDA,
138
139 /* GSM */
140 GPIO14_GPIO | WAKEUP_ON_EDGE_BOTH, /* GSM host wake up */
141 GPIO34_FFUART_RXD,
142 GPIO35_FFUART_CTS,
143 GPIO39_FFUART_TXD,
144 GPIO41_FFUART_RTS,
145
146 /* MISC. */
147 GPIO0_GPIO | WAKEUP_ON_EDGE_BOTH, /* external power detect */
148 GPIO15_GPIO | WAKEUP_ON_EDGE_BOTH, /* silent switch */
149 GPIO116_GPIO, /* headphone detect */
150 GPIO11_GPIO | WAKEUP_ON_EDGE_BOTH, /* bluetooth host wake up */
151};
152
153/******************************************************************************
154 * SD/MMC card controller
155 ******************************************************************************/
156static int treo680_mci_init(struct device *dev,
157 irq_handler_t treo680_detect_int, void *data)
158{
159 int err = 0;
160
161 /* Setup an interrupt for detecting card insert/remove events */
162 err = gpio_request(GPIO_NR_TREO680_SD_DETECT_N, "SD IRQ");
163
164 if (err)
165 goto err;
166
167 err = gpio_direction_input(GPIO_NR_TREO680_SD_DETECT_N);
168 if (err)
169 goto err2;
170
171 err = request_irq(gpio_to_irq(GPIO_NR_TREO680_SD_DETECT_N),
172 treo680_detect_int, IRQF_DISABLED | IRQF_SAMPLE_RANDOM |
173 IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
174 "SD/MMC card detect", data);
175
176 if (err) {
177 dev_err(dev, "%s: cannot request SD/MMC card detect IRQ\n",
178 __func__);
179 goto err2;
180 }
181
182 err = gpio_request(GPIO_NR_TREO680_SD_POWER, "SD_POWER");
183 if (err)
184 goto err3;
185
186 err = gpio_direction_output(GPIO_NR_TREO680_SD_POWER, 1);
187 if (err)
188 goto err4;
189
190 err = gpio_request(GPIO_NR_TREO680_SD_READONLY, "SD_READONLY");
191 if (err)
192 goto err4;
193
194 err = gpio_direction_input(GPIO_NR_TREO680_SD_READONLY);
195 if (err)
196 goto err5;
197
198 return 0;
199
200err5:
201 gpio_free(GPIO_NR_TREO680_SD_READONLY);
202err4:
203 gpio_free(GPIO_NR_TREO680_SD_POWER);
204err3:
205 free_irq(gpio_to_irq(GPIO_NR_TREO680_SD_DETECT_N), data);
206err2:
207 gpio_free(GPIO_NR_TREO680_SD_DETECT_N);
208err:
209 return err;
210}
211
212static void treo680_mci_exit(struct device *dev, void *data)
213{
214 gpio_free(GPIO_NR_TREO680_SD_READONLY);
215 gpio_free(GPIO_NR_TREO680_SD_POWER);
216 free_irq(gpio_to_irq(GPIO_NR_TREO680_SD_DETECT_N), data);
217 gpio_free(GPIO_NR_TREO680_SD_DETECT_N);
218}
219
220static void treo680_mci_power(struct device *dev, unsigned int vdd)
221{
222 struct pxamci_platform_data *p_d = dev->platform_data;
223 gpio_set_value(GPIO_NR_TREO680_SD_POWER, p_d->ocr_mask & (1 << vdd));
224}
225
226static int treo680_mci_get_ro(struct device *dev)
227{
228 return gpio_get_value(GPIO_NR_TREO680_SD_READONLY);
229}
230
231static struct pxamci_platform_data treo680_mci_platform_data = {
232 .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
233 .setpower = treo680_mci_power,
234 .get_ro = treo680_mci_get_ro,
235 .init = treo680_mci_init,
236 .exit = treo680_mci_exit,
237};
238
239/******************************************************************************
240 * GPIO keyboard
241 ******************************************************************************/
242static unsigned int treo680_matrix_keys[] = {
243 KEY(0, 0, KEY_F8), /* Red/Off/Power */
244 KEY(0, 1, KEY_LEFT),
245 KEY(0, 2, KEY_LEFTCTRL), /* Alternate */
246 KEY(0, 3, KEY_L),
247 KEY(0, 4, KEY_A),
248 KEY(0, 5, KEY_Q),
249 KEY(0, 6, KEY_P),
250
251 KEY(1, 0, KEY_RIGHTCTRL), /* Menu */
252 KEY(1, 1, KEY_RIGHT),
253 KEY(1, 2, KEY_LEFTSHIFT), /* Left shift */
254 KEY(1, 3, KEY_Z),
255 KEY(1, 4, KEY_S),
256 KEY(1, 5, KEY_W),
257
258 KEY(2, 0, KEY_F1), /* Phone */
259 KEY(2, 1, KEY_UP),
260 KEY(2, 2, KEY_0),
261 KEY(2, 3, KEY_X),
262 KEY(2, 4, KEY_D),
263 KEY(2, 5, KEY_E),
264
265 KEY(3, 0, KEY_F10), /* Calendar */
266 KEY(3, 1, KEY_DOWN),
267 KEY(3, 2, KEY_SPACE),
268 KEY(3, 3, KEY_C),
269 KEY(3, 4, KEY_F),
270 KEY(3, 5, KEY_R),
271
272 KEY(4, 0, KEY_F12), /* Mail */
273 KEY(4, 1, KEY_KPENTER),
274 KEY(4, 2, KEY_RIGHTALT), /* Alt */
275 KEY(4, 3, KEY_V),
276 KEY(4, 4, KEY_G),
277 KEY(4, 5, KEY_T),
278
279 KEY(5, 0, KEY_F9), /* Home */
280 KEY(5, 1, KEY_PAGEUP), /* Side up */
281 KEY(5, 2, KEY_DOT),
282 KEY(5, 3, KEY_B),
283 KEY(5, 4, KEY_H),
284 KEY(5, 5, KEY_Y),
285
286 KEY(6, 0, KEY_TAB), /* Side Activate */
287 KEY(6, 1, KEY_PAGEDOWN), /* Side down */
288 KEY(6, 2, KEY_ENTER),
289 KEY(6, 3, KEY_N),
290 KEY(6, 4, KEY_J),
291 KEY(6, 5, KEY_U),
292
293 KEY(7, 0, KEY_F6), /* Green/Call */
294 KEY(7, 1, KEY_O),
295 KEY(7, 2, KEY_BACKSPACE),
296 KEY(7, 3, KEY_M),
297 KEY(7, 4, KEY_K),
298 KEY(7, 5, KEY_I),
299};
300
301static struct pxa27x_keypad_platform_data treo680_keypad_platform_data = {
302 .matrix_key_rows = 8,
303 .matrix_key_cols = 7,
304 .matrix_key_map = treo680_matrix_keys,
305 .matrix_key_map_size = ARRAY_SIZE(treo680_matrix_keys),
306 .direct_key_map = { KEY_CONNECT },
307 .direct_key_num = 1,
308
309 .debounce_interval = 30,
310};
311
312/******************************************************************************
313 * aSoC audio
314 ******************************************************************************/
315
316static pxa2xx_audio_ops_t treo680_ac97_pdata = {
317 .reset_gpio = 95,
318};
319
320/******************************************************************************
321 * Backlight
322 ******************************************************************************/
323static int treo680_backlight_init(struct device *dev)
324{
325 int ret;
326
327 ret = gpio_request(GPIO_NR_TREO680_BL_POWER, "BL POWER");
328 if (ret)
329 goto err;
330 ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
331 if (ret)
332 goto err2;
333 ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
334 if (ret)
335 goto err2;
336 ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
337 if (ret)
338 goto err3;
339
340 return 0;
341err3:
342 gpio_free(GPIO_NR_TREO680_LCD_POWER);
343err2:
344 gpio_free(GPIO_NR_TREO680_BL_POWER);
345err:
346 return ret;
347}
348
349static int treo680_backlight_notify(int brightness)
350{
351 gpio_set_value(GPIO_NR_TREO680_BL_POWER, brightness);
352 return TREO680_MAX_INTENSITY - brightness;
353};
354
355static void treo680_backlight_exit(struct device *dev)
356{
357 gpio_free(GPIO_NR_TREO680_BL_POWER);
358 gpio_free(GPIO_NR_TREO680_LCD_POWER);
359}
360
361static struct platform_pwm_backlight_data treo680_backlight_data = {
362 .pwm_id = 0,
363 .max_brightness = TREO680_MAX_INTENSITY,
364 .dft_brightness = TREO680_DEFAULT_INTENSITY,
365 .pwm_period_ns = TREO680_PERIOD_NS,
366 .init = treo680_backlight_init,
367 .notify = treo680_backlight_notify,
368 .exit = treo680_backlight_exit,
369};
370
371static struct platform_device treo680_backlight = {
372 .name = "pwm-backlight",
373 .dev = {
374 .parent = &pxa27x_device_pwm0.dev,
375 .platform_data = &treo680_backlight_data,
376 },
377};
378
379/******************************************************************************
380 * IrDA
381 ******************************************************************************/
382static void treo680_transceiver_mode(struct device *dev, int mode)
383{
384 gpio_set_value(GPIO_NR_TREO680_IR_EN, mode & IR_OFF);
385 pxa2xx_transceiver_mode(dev, mode);
386}
387
388static int treo680_irda_startup(struct device *dev)
389{
390 int err;
391
392 err = gpio_request(GPIO_NR_TREO680_IR_EN, "Ir port disable");
393 if (err)
394 goto err1;
395
396 err = gpio_direction_output(GPIO_NR_TREO680_IR_EN, 1);
397 if (err)
398 goto err2;
399
400 return 0;
401
402err2:
403 dev_err(dev, "treo680_irda: cannot change IR gpio direction\n");
404 gpio_free(GPIO_NR_TREO680_IR_EN);
405err1:
406 dev_err(dev, "treo680_irda: cannot allocate IR gpio\n");
407 return err;
408}
409
410static void treo680_irda_shutdown(struct device *dev)
411{
412 gpio_free(GPIO_NR_TREO680_AMP_EN);
413}
414
415static struct pxaficp_platform_data treo680_ficp_info = {
416 .transceiver_cap = IR_FIRMODE | IR_SIRMODE | IR_OFF,
417 .startup = treo680_irda_startup,
418 .shutdown = treo680_irda_shutdown,
419 .transceiver_mode = treo680_transceiver_mode,
420};
421
422/******************************************************************************
423 * UDC
424 ******************************************************************************/
425static struct pxa2xx_udc_mach_info treo680_udc_info __initdata = {
426 .gpio_vbus = GPIO_NR_TREO680_USB_DETECT,
427 .gpio_vbus_inverted = 1,
428 .gpio_pullup = GPIO_NR_TREO680_USB_PULLUP,
429};
430
431
432/******************************************************************************
433 * USB host
434 ******************************************************************************/
435static struct pxaohci_platform_data treo680_ohci_info = {
436 .port_mode = PMM_PERPORT_MODE,
437 .flags = ENABLE_PORT1 | ENABLE_PORT3,
438 .power_budget = 0,
439};
440
441/******************************************************************************
442 * Power supply
443 ******************************************************************************/
444static int power_supply_init(struct device *dev)
445{
446 int ret;
447
448 ret = gpio_request(GPIO_NR_TREO680_POWER_DETECT, "CABLE_STATE_AC");
449 if (ret)
450 goto err1;
451 ret = gpio_direction_input(GPIO_NR_TREO680_POWER_DETECT);
452 if (ret)
453 goto err2;
454
455 return 0;
456
457err2:
458 gpio_free(GPIO_NR_TREO680_POWER_DETECT);
459err1:
460 return ret;
461}
462
463static int treo680_is_ac_online(void)
464{
465 return gpio_get_value(GPIO_NR_TREO680_POWER_DETECT);
466}
467
468static void power_supply_exit(struct device *dev)
469{
470 gpio_free(GPIO_NR_TREO680_POWER_DETECT);
471}
472
473static char *treo680_supplicants[] = {
474 "main-battery",
475};
476
477static struct pda_power_pdata power_supply_info = {
478 .init = power_supply_init,
479 .is_ac_online = treo680_is_ac_online,
480 .exit = power_supply_exit,
481 .supplied_to = treo680_supplicants,
482 .num_supplicants = ARRAY_SIZE(treo680_supplicants),
483};
484
485static struct platform_device power_supply = {
486 .name = "pda-power",
487 .id = -1,
488 .dev = {
489 .platform_data = &power_supply_info,
490 },
491};
492
493/******************************************************************************
494 * Vibra and LEDs
495 ******************************************************************************/
496static struct gpio_led gpio_leds[] = {
497 {
498 .name = "treo680:vibra:vibra",
499 .default_trigger = "none",
500 .gpio = GPIO_NR_TREO680_VIBRATE_EN,
501 },
502 {
503 .name = "treo680:green:led",
504 .default_trigger = "mmc0",
505 .gpio = GPIO_NR_TREO680_GREEN_LED,
506 },
507 {
508 .name = "treo680:keybbl:keybbl",
509 .default_trigger = "none",
510 .gpio = GPIO_NR_TREO680_KEYB_BL,
511 },
512};
513
514static struct gpio_led_platform_data gpio_led_info = {
515 .leds = gpio_leds,
516 .num_leds = ARRAY_SIZE(gpio_leds),
517};
518
519static struct platform_device treo680_leds = {
520 .name = "leds-gpio",
521 .id = -1,
522 .dev = {
523 .platform_data = &gpio_led_info,
524 }
525};
526
527
528/******************************************************************************
529 * Framebuffer
530 ******************************************************************************/
531/* TODO: add support for 324x324 */
532static struct pxafb_mode_info treo680_lcd_modes[] = {
533{
534 .pixclock = 86538,
535 .xres = 320,
536 .yres = 320,
537 .bpp = 16,
538
539 .left_margin = 20,
540 .right_margin = 8,
541 .upper_margin = 8,
542 .lower_margin = 5,
543
544 .hsync_len = 4,
545 .vsync_len = 1,
546},
547};
548
549static struct pxafb_mach_info treo680_lcd_screen = {
550 .modes = treo680_lcd_modes,
551 .num_modes = ARRAY_SIZE(treo680_lcd_modes),
552 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
553};
554
555/******************************************************************************
556 * Power management - standby
557 ******************************************************************************/
558static void __init treo680_pm_init(void)
559{
560 static u32 resume[] = {
561 0xe3a00101, /* mov r0, #0x40000000 */
562 0xe380060f, /* orr r0, r0, #0x00f00000 */
563 0xe590f008, /* ldr pc, [r0, #0x08] */
564 };
565
566 /* this is where the bootloader jumps */
567 memcpy(phys_to_virt(TREO680_STR_BASE), resume, sizeof(resume));
568}
569
570/******************************************************************************
571 * Machine init
572 ******************************************************************************/
573static struct platform_device *devices[] __initdata = {
574 &treo680_backlight,
575 &treo680_leds,
576 &power_supply,
577};
578
579/* setup udc GPIOs initial state */
580static void __init treo680_udc_init(void)
581{
582 if (!gpio_request(GPIO_NR_TREO680_USB_PULLUP, "UDC Vbus")) {
583 gpio_direction_output(GPIO_NR_TREO680_USB_PULLUP, 1);
584 gpio_free(GPIO_NR_TREO680_USB_PULLUP);
585 }
586}
587
588static void __init treo680_init(void)
589{
590 treo680_pm_init();
591 pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config));
592 pxa_set_keypad_info(&treo680_keypad_platform_data);
593 set_pxa_fb_info(&treo680_lcd_screen);
594 pxa_set_mci_info(&treo680_mci_platform_data);
595 treo680_udc_init();
596 pxa_set_udc_info(&treo680_udc_info);
597 pxa_set_ac97_info(&treo680_ac97_pdata);
598 pxa_set_ficp_info(&treo680_ficp_info);
599 pxa_set_ohci_info(&treo680_ohci_info);
600
601 platform_add_devices(devices, ARRAY_SIZE(devices));
602}
603
604MACHINE_START(TREO680, "Palm Treo 680")
605 .phys_io = TREO680_PHYS_IO_START,
606 .io_pg_offst = io_p2v(0x40000000),
607 .boot_params = 0xa0000100,
608 .map_io = pxa_map_io,
609 .init_irq = pxa27x_init_irq,
610 .timer = &pxa_timer,
611 .init_machine = treo680_init,
612MACHINE_END
diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c
index 1fe294d0bf9..ede2a57240a 100644
--- a/arch/arm/mach-realview/realview_pbx.c
+++ b/arch/arm/mach-realview/realview_pbx.c
@@ -27,6 +27,7 @@
27#include <asm/irq.h> 27#include <asm/irq.h>
28#include <asm/leds.h> 28#include <asm/leds.h>
29#include <asm/mach-types.h> 29#include <asm/mach-types.h>
30#include <asm/smp_twd.h>
30#include <asm/hardware/gic.h> 31#include <asm/hardware/gic.h>
31#include <asm/hardware/cache-l2x0.h> 32#include <asm/hardware/cache-l2x0.h>
32 33
diff --git a/arch/arm/mach-s3c2410/usb-simtec.c b/arch/arm/mach-s3c2410/usb-simtec.c
index 6cd9377ddb8..50e25fc5f8a 100644
--- a/arch/arm/mach-s3c2410/usb-simtec.c
+++ b/arch/arm/mach-s3c2410/usb-simtec.c
@@ -22,7 +22,6 @@
22#include <linux/timer.h> 22#include <linux/timer.h>
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/device.h> 24#include <linux/device.h>
25#include <linux/gpio.h>
26#include <linux/io.h> 25#include <linux/io.h>
27 26
28#include <asm/mach/arch.h> 27#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-s3c2440/Kconfig b/arch/arm/mach-s3c2440/Kconfig
index 5df73cbf2b4..8cfeaec3730 100644
--- a/arch/arm/mach-s3c2440/Kconfig
+++ b/arch/arm/mach-s3c2440/Kconfig
@@ -84,5 +84,15 @@ config MACH_AT2440EVB
84 help 84 help
85 Say Y here if you are using the AT2440EVB development board 85 Say Y here if you are using the AT2440EVB development board
86 86
87config MACH_MINI2440
88 bool "MINI2440 development board"
89 select CPU_S3C2440
90 select EEPROM_AT24
91 select LEDS_TRIGGER_BACKLIGHT
92 select SND_S3C24XX_SOC_S3C24XX_UDA134X
93 help
94 Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
95 available via various sources. It can come with a 3.5" or 7" touch LCD.
96
87endmenu 97endmenu
88 98
diff --git a/arch/arm/mach-s3c2440/Makefile b/arch/arm/mach-s3c2440/Makefile
index 0b4440e79b9..bfadcf684a2 100644
--- a/arch/arm/mach-s3c2440/Makefile
+++ b/arch/arm/mach-s3c2440/Makefile
@@ -22,3 +22,4 @@ obj-$(CONFIG_MACH_RX3715) += mach-rx3715.o
22obj-$(CONFIG_ARCH_S3C2440) += mach-smdk2440.o 22obj-$(CONFIG_ARCH_S3C2440) += mach-smdk2440.o
23obj-$(CONFIG_MACH_NEXCODER_2440) += mach-nexcoder.o 23obj-$(CONFIG_MACH_NEXCODER_2440) += mach-nexcoder.o
24obj-$(CONFIG_MACH_AT2440EVB) += mach-at2440evb.o 24obj-$(CONFIG_MACH_AT2440EVB) += mach-at2440evb.o
25obj-$(CONFIG_MACH_MINI2440) += mach-mini2440.o
diff --git a/arch/arm/mach-s3c2440/mach-mini2440.c b/arch/arm/mach-s3c2440/mach-mini2440.c
new file mode 100644
index 00000000000..6a5bc3021bd
--- /dev/null
+++ b/arch/arm/mach-s3c2440/mach-mini2440.c
@@ -0,0 +1,703 @@
1/* linux/arch/arm/mach-s3c2440/mach-mini2440.c
2 *
3 * Copyright (c) 2008 Ramax Lo <ramaxlo@gmail.com>
4 * Based on mach-anubis.c by Ben Dooks <ben@simtec.co.uk>
5 * and modifications by SBZ <sbz@spgui.org> and
6 * Weibing <http://weibing.blogbus.com> and
7 * Michel Pollet <buserror@gmail.com>
8 *
9 * For product information, visit http://code.google.com/p/mini2440/
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
14*/
15
16#include <linux/kernel.h>
17#include <linux/types.h>
18#include <linux/interrupt.h>
19#include <linux/list.h>
20#include <linux/timer.h>
21#include <linux/init.h>
22#include <linux/gpio.h>
23#include <linux/input.h>
24#include <linux/io.h>
25#include <linux/serial_core.h>
26#include <linux/dm9000.h>
27#include <linux/i2c/at24.h>
28#include <linux/platform_device.h>
29#include <linux/gpio_keys.h>
30#include <linux/i2c.h>
31#include <linux/mmc/host.h>
32
33#include <asm/mach/arch.h>
34#include <asm/mach/map.h>
35
36#include <mach/hardware.h>
37#include <mach/fb.h>
38#include <asm/mach-types.h>
39
40#include <plat/regs-serial.h>
41#include <mach/regs-gpio.h>
42#include <mach/leds-gpio.h>
43#include <mach/regs-mem.h>
44#include <mach/regs-lcd.h>
45#include <mach/irqs.h>
46#include <plat/nand.h>
47#include <plat/iic.h>
48#include <plat/mci.h>
49#include <plat/udc.h>
50
51#include <plat/regs-serial.h>
52
53#include <linux/mtd/mtd.h>
54#include <linux/mtd/nand.h>
55#include <linux/mtd/nand_ecc.h>
56#include <linux/mtd/partitions.h>
57
58#include <plat/clock.h>
59#include <plat/devs.h>
60#include <plat/cpu.h>
61
62#include <sound/s3c24xx_uda134x.h>
63
64#define MACH_MINI2440_DM9K_BASE (S3C2410_CS4 + 0x300)
65
66static struct map_desc mini2440_iodesc[] __initdata = {
67 /* nothing to declare, move along */
68};
69
70#define UCON S3C2410_UCON_DEFAULT
71#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
72#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
73
74
75static struct s3c2410_uartcfg mini2440_uartcfgs[] __initdata = {
76 [0] = {
77 .hwport = 0,
78 .flags = 0,
79 .ucon = UCON,
80 .ulcon = ULCON,
81 .ufcon = UFCON,
82 },
83 [1] = {
84 .hwport = 1,
85 .flags = 0,
86 .ucon = UCON,
87 .ulcon = ULCON,
88 .ufcon = UFCON,
89 },
90 [2] = {
91 .hwport = 2,
92 .flags = 0,
93 .ucon = UCON,
94 .ulcon = ULCON,
95 .ufcon = UFCON,
96 },
97};
98
99/* USB device UDC support */
100
101static void mini2440_udc_pullup(enum s3c2410_udc_cmd_e cmd)
102{
103 pr_debug("udc: pullup(%d)\n", cmd);
104
105 switch (cmd) {
106 case S3C2410_UDC_P_ENABLE :
107 s3c2410_gpio_setpin(S3C2410_GPC(5), 1);
108 break;
109 case S3C2410_UDC_P_DISABLE :
110 s3c2410_gpio_setpin(S3C2410_GPC(5), 0);
111 break;
112 case S3C2410_UDC_P_RESET :
113 break;
114 default:
115 break;
116 }
117}
118
119static struct s3c2410_udc_mach_info mini2440_udc_cfg __initdata = {
120 .udc_command = mini2440_udc_pullup,
121};
122
123
124/* LCD timing and setup */
125
126/*
127 * This macro simplifies the table bellow
128 */
129#define _LCD_DECLARE(_clock,_xres,margin_left,margin_right,hsync, \
130 _yres,margin_top,margin_bottom,vsync, refresh) \
131 .width = _xres, \
132 .xres = _xres, \
133 .height = _yres, \
134 .yres = _yres, \
135 .left_margin = margin_left, \
136 .right_margin = margin_right, \
137 .upper_margin = margin_top, \
138 .lower_margin = margin_bottom, \
139 .hsync_len = hsync, \
140 .vsync_len = vsync, \
141 .pixclock = ((_clock*100000000000LL) / \
142 ((refresh) * \
143 (hsync + margin_left + _xres + margin_right) * \
144 (vsync + margin_top + _yres + margin_bottom))), \
145 .bpp = 16,\
146 .type = (S3C2410_LCDCON1_TFT16BPP |\
147 S3C2410_LCDCON1_TFT)
148
149struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = {
150 [0] = { /* mini2440 + 3.5" TFT + touchscreen */
151 _LCD_DECLARE(
152 7, /* The 3.5 is quite fast */
153 240, 21, 38, 6, /* x timing */
154 320, 4, 4, 2, /* y timing */
155 60), /* refresh rate */
156 .lcdcon5 = (S3C2410_LCDCON5_FRM565 |
157 S3C2410_LCDCON5_INVVLINE |
158 S3C2410_LCDCON5_INVVFRAME |
159 S3C2410_LCDCON5_INVVDEN |
160 S3C2410_LCDCON5_PWREN),
161 },
162 [1] = { /* mini2440 + 7" TFT + touchscreen */
163 _LCD_DECLARE(
164 10, /* the 7" runs slower */
165 800, 40, 40, 48, /* x timing */
166 480, 29, 3, 3, /* y timing */
167 50), /* refresh rate */
168 .lcdcon5 = (S3C2410_LCDCON5_FRM565 |
169 S3C2410_LCDCON5_INVVLINE |
170 S3C2410_LCDCON5_INVVFRAME |
171 S3C2410_LCDCON5_PWREN),
172 },
173 /* The VGA shield can outout at several resolutions. All share
174 * the same timings, however, anything smaller than 1024x768
175 * will only be displayed in the top left corner of a 1024x768
176 * XGA output unless you add optional dip switches to the shield.
177 * Therefore timings for other resolutions have been ommited here.
178 */
179 [2] = {
180 _LCD_DECLARE(
181 10,
182 1024, 1, 2, 2, /* y timing */
183 768, 200, 16, 16, /* x timing */
184 24), /* refresh rate, maximum stable,
185 tested with the FPGA shield */
186 .lcdcon5 = (S3C2410_LCDCON5_FRM565 |
187 S3C2410_LCDCON5_HWSWP),
188 },
189};
190
191/* todo - put into gpio header */
192
193#define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2))
194#define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2))
195
196struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
197 .displays = &mini2440_lcd_cfg[0], /* not constant! see init */
198 .num_displays = 1,
199 .default_display = 0,
200
201 /* Enable VD[2..7], VD[10..15], VD[18..23] and VCLK, syncs, VDEN
202 * and disable the pull down resistors on pins we are using for LCD
203 * data. */
204
205 .gpcup = (0xf << 1) | (0x3f << 10),
206
207 .gpccon = (S3C2410_GPC1_VCLK | S3C2410_GPC2_VLINE |
208 S3C2410_GPC3_VFRAME | S3C2410_GPC4_VM |
209 S3C2410_GPC10_VD2 | S3C2410_GPC11_VD3 |
210 S3C2410_GPC12_VD4 | S3C2410_GPC13_VD5 |
211 S3C2410_GPC14_VD6 | S3C2410_GPC15_VD7),
212
213 .gpccon_mask = (S3C2410_GPCCON_MASK(1) | S3C2410_GPCCON_MASK(2) |
214 S3C2410_GPCCON_MASK(3) | S3C2410_GPCCON_MASK(4) |
215 S3C2410_GPCCON_MASK(10) | S3C2410_GPCCON_MASK(11) |
216 S3C2410_GPCCON_MASK(12) | S3C2410_GPCCON_MASK(13) |
217 S3C2410_GPCCON_MASK(14) | S3C2410_GPCCON_MASK(15)),
218
219 .gpdup = (0x3f << 2) | (0x3f << 10),
220
221 .gpdcon = (S3C2410_GPD2_VD10 | S3C2410_GPD3_VD11 |
222 S3C2410_GPD4_VD12 | S3C2410_GPD5_VD13 |
223 S3C2410_GPD6_VD14 | S3C2410_GPD7_VD15 |
224 S3C2410_GPD10_VD18 | S3C2410_GPD11_VD19 |
225 S3C2410_GPD12_VD20 | S3C2410_GPD13_VD21 |
226 S3C2410_GPD14_VD22 | S3C2410_GPD15_VD23),
227
228 .gpdcon_mask = (S3C2410_GPDCON_MASK(2) | S3C2410_GPDCON_MASK(3) |
229 S3C2410_GPDCON_MASK(4) | S3C2410_GPDCON_MASK(5) |
230 S3C2410_GPDCON_MASK(6) | S3C2410_GPDCON_MASK(7) |
231 S3C2410_GPDCON_MASK(10) | S3C2410_GPDCON_MASK(11)|
232 S3C2410_GPDCON_MASK(12) | S3C2410_GPDCON_MASK(13)|
233 S3C2410_GPDCON_MASK(14) | S3C2410_GPDCON_MASK(15)),
234};
235
236/* MMC/SD */
237
238static struct s3c24xx_mci_pdata mini2440_mmc_cfg __initdata = {
239 .gpio_detect = S3C2410_GPG(8),
240 .gpio_wprotect = S3C2410_GPH(8),
241 .set_power = NULL,
242 .ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34,
243};
244
245/* NAND Flash on MINI2440 board */
246
247static struct mtd_partition mini2440_default_nand_part[] __initdata = {
248 [0] = {
249 .name = "u-boot",
250 .size = SZ_256K,
251 .offset = 0,
252 },
253 [1] = {
254 .name = "u-boot-env",
255 .size = SZ_128K,
256 .offset = SZ_256K,
257 },
258 [2] = {
259 .name = "kernel",
260 /* 5 megabytes, for a kernel with no modules
261 * or a uImage with a ramdisk attached */
262 .size = 0x00500000,
263 .offset = SZ_256K + SZ_128K,
264 },
265 [3] = {
266 .name = "root",
267 .offset = SZ_256K + SZ_128K + 0x00500000,
268 .size = MTDPART_SIZ_FULL,
269 },
270};
271
272static struct s3c2410_nand_set mini2440_nand_sets[] __initdata = {
273 [0] = {
274 .name = "nand",
275 .nr_chips = 1,
276 .nr_partitions = ARRAY_SIZE(mini2440_default_nand_part),
277 .partitions = mini2440_default_nand_part,
278 },
279};
280
281static struct s3c2410_platform_nand mini2440_nand_info __initdata = {
282 .tacls = 0,
283 .twrph0 = 25,
284 .twrph1 = 15,
285 .nr_sets = ARRAY_SIZE(mini2440_nand_sets),
286 .sets = mini2440_nand_sets,
287 .ignore_unset_ecc = 1,
288};
289
290/* DM9000AEP 10/100 ethernet controller */
291
292static struct resource mini2440_dm9k_resource[] __initdata = {
293 [0] = {
294 .start = MACH_MINI2440_DM9K_BASE,
295 .end = MACH_MINI2440_DM9K_BASE + 3,
296 .flags = IORESOURCE_MEM
297 },
298 [1] = {
299 .start = MACH_MINI2440_DM9K_BASE + 4,
300 .end = MACH_MINI2440_DM9K_BASE + 7,
301 .flags = IORESOURCE_MEM
302 },
303 [2] = {
304 .start = IRQ_EINT7,
305 .end = IRQ_EINT7,
306 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
307 }
308};
309
310/*
311 * The DM9000 has no eeprom, and it's MAC address is set by
312 * the bootloader before starting the kernel.
313 */
314static struct dm9000_plat_data mini2440_dm9k_pdata __initdata = {
315 .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
316};
317
318static struct platform_device mini2440_device_eth __initdata = {
319 .name = "dm9000",
320 .id = -1,
321 .num_resources = ARRAY_SIZE(mini2440_dm9k_resource),
322 .resource = mini2440_dm9k_resource,
323 .dev = {
324 .platform_data = &mini2440_dm9k_pdata,
325 },
326};
327
328/* CON5
329 * +--+ /-----\
330 * | | | |
331 * | | | BAT |
332 * | | \_____/
333 * | |
334 * | | +----+ +----+
335 * | | | K5 | | K1 |
336 * | | +----+ +----+
337 * | | +----+ +----+
338 * | | | K4 | | K2 |
339 * | | +----+ +----+
340 * | | +----+ +----+
341 * | | | K6 | | K3 |
342 * | | +----+ +----+
343 * .....
344 */
345static struct gpio_keys_button mini2440_buttons[] __initdata = {
346 {
347 .gpio = S3C2410_GPG(0), /* K1 */
348 .code = KEY_F1,
349 .desc = "Button 1",
350 .active_low = 1,
351 },
352 {
353 .gpio = S3C2410_GPG(3), /* K2 */
354 .code = KEY_F2,
355 .desc = "Button 2",
356 .active_low = 1,
357 },
358 {
359 .gpio = S3C2410_GPG(5), /* K3 */
360 .code = KEY_F3,
361 .desc = "Button 3",
362 .active_low = 1,
363 },
364 {
365 .gpio = S3C2410_GPG(6), /* K4 */
366 .code = KEY_POWER,
367 .desc = "Power",
368 .active_low = 1,
369 },
370 {
371 .gpio = S3C2410_GPG(7), /* K5 */
372 .code = KEY_F5,
373 .desc = "Button 5",
374 .active_low = 1,
375 },
376#if 0
377 /* this pin is also known as TCLK1 and seems to already
378 * marked as "in use" somehow in the kernel -- possibly wrongly */
379 {
380 .gpio = S3C2410_GPG(11), /* K6 */
381 .code = KEY_F6,
382 .desc = "Button 6",
383 .active_low = 1,
384 },
385#endif
386};
387
388static struct gpio_keys_platform_data mini2440_button_data __initdata = {
389 .buttons = mini2440_buttons,
390 .nbuttons = ARRAY_SIZE(mini2440_buttons),
391};
392
393static struct platform_device mini2440_button_device __initdata = {
394 .name = "gpio-keys",
395 .id = -1,
396 .dev = {
397 .platform_data = &mini2440_button_data,
398 }
399};
400
401/* LEDS */
402
403static struct s3c24xx_led_platdata mini2440_led1_pdata __initdata = {
404 .name = "led1",
405 .gpio = S3C2410_GPB(5),
406 .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
407 .def_trigger = "heartbeat",
408};
409
410static struct s3c24xx_led_platdata mini2440_led2_pdata __initdata = {
411 .name = "led2",
412 .gpio = S3C2410_GPB(6),
413 .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
414 .def_trigger = "nand-disk",
415};
416
417static struct s3c24xx_led_platdata mini2440_led3_pdata __initdata = {
418 .name = "led3",
419 .gpio = S3C2410_GPB(7),
420 .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
421 .def_trigger = "mmc0",
422};
423
424static struct s3c24xx_led_platdata mini2440_led4_pdata __initdata = {
425 .name = "led4",
426 .gpio = S3C2410_GPB(8),
427 .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
428 .def_trigger = "",
429};
430
431static struct s3c24xx_led_platdata mini2440_led_backlight_pdata __initdata = {
432 .name = "backlight",
433 .gpio = S3C2410_GPG(4),
434 .def_trigger = "backlight",
435};
436
437static struct platform_device mini2440_led1 __initdata = {
438 .name = "s3c24xx_led",
439 .id = 1,
440 .dev = {
441 .platform_data = &mini2440_led1_pdata,
442 },
443};
444
445static struct platform_device mini2440_led2 __initdata = {
446 .name = "s3c24xx_led",
447 .id = 2,
448 .dev = {
449 .platform_data = &mini2440_led2_pdata,
450 },
451};
452
453static struct platform_device mini2440_led3 __initdata = {
454 .name = "s3c24xx_led",
455 .id = 3,
456 .dev = {
457 .platform_data = &mini2440_led3_pdata,
458 },
459};
460
461static struct platform_device mini2440_led4 __initdata = {
462 .name = "s3c24xx_led",
463 .id = 4,
464 .dev = {
465 .platform_data = &mini2440_led4_pdata,
466 },
467};
468
469static struct platform_device mini2440_led_backlight __initdata = {
470 .name = "s3c24xx_led",
471 .id = 5,
472 .dev = {
473 .platform_data = &mini2440_led_backlight_pdata,
474 },
475};
476
477/* AUDIO */
478
479static struct s3c24xx_uda134x_platform_data mini2440_audio_pins __initdata = {
480 .l3_clk = S3C2410_GPB(4),
481 .l3_mode = S3C2410_GPB(2),
482 .l3_data = S3C2410_GPB(3),
483 .model = UDA134X_UDA1341
484};
485
486static struct platform_device mini2440_audio __initdata = {
487 .name = "s3c24xx_uda134x",
488 .id = 0,
489 .dev = {
490 .platform_data = &mini2440_audio_pins,
491 },
492};
493
494/*
495 * I2C devices
496 */
497static struct at24_platform_data at24c08 = {
498 .byte_len = SZ_8K / 8,
499 .page_size = 16,
500};
501
502static struct i2c_board_info mini2440_i2c_devs[] __initdata = {
503 {
504 I2C_BOARD_INFO("24c08", 0x50),
505 .platform_data = &at24c08,
506 },
507};
508
509static struct platform_device *mini2440_devices[] __initdata = {
510 &s3c_device_usb,
511 &s3c_device_wdt,
512/* &s3c_device_adc,*/ /* ADC doesn't like living with touchscreen ! */
513 &s3c_device_i2c0,
514 &s3c_device_rtc,
515 &s3c_device_usbgadget,
516 &mini2440_device_eth,
517 &mini2440_led1,
518 &mini2440_led2,
519 &mini2440_led3,
520 &mini2440_led4,
521 &mini2440_button_device,
522 &s3c_device_nand,
523 &s3c_device_sdi,
524 &s3c_device_iis,
525 &mini2440_audio,
526/* &s3c_device_timer[0],*/ /* buzzer pwm, no API for it */
527 /* remaining devices are optional */
528};
529
530static void __init mini2440_map_io(void)
531{
532 s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc));
533 s3c24xx_init_clocks(12000000);
534 s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs));
535
536 s3c_device_nand.dev.platform_data = &mini2440_nand_info;
537 s3c_device_sdi.dev.platform_data = &mini2440_mmc_cfg;
538}
539
540/*
541 * mini2440_features string
542 *
543 * t = Touchscreen present
544 * b = backlight control
545 * c = camera [TODO]
546 * 0-9 LCD configuration
547 *
548 */
549static char mini2440_features_str[12] __initdata = "0tb";
550
551static int __init mini2440_features_setup(char *str)
552{
553 if (str)
554 strlcpy(mini2440_features_str, str, sizeof(mini2440_features_str));
555 return 1;
556}
557
558__setup("mini2440=", mini2440_features_setup);
559
560#define FEATURE_SCREEN (1 << 0)
561#define FEATURE_BACKLIGHT (1 << 1)
562#define FEATURE_TOUCH (1 << 2)
563#define FEATURE_CAMERA (1 << 3)
564
565struct mini2440_features_t {
566 int count;
567 int done;
568 int lcd_index;
569 struct platform_device *optional[8];
570};
571
572static void mini2440_parse_features(
573 struct mini2440_features_t * features,
574 const char * features_str )
575{
576 const char * fp = features_str;
577
578 features->count = 0;
579 features->done = 0;
580 features->lcd_index = -1;
581
582 while (*fp) {
583 char f = *fp++;
584
585 switch (f) {
586 case '0'...'9': /* tft screen */
587 if (features->done & FEATURE_SCREEN) {
588 printk(KERN_INFO "MINI2440: '%c' ignored, "
589 "screen type already set\n", f);
590 } else {
591 int li = f - '0';
592 if (li >= ARRAY_SIZE(mini2440_lcd_cfg))
593 printk(KERN_INFO "MINI2440: "
594 "'%c' out of range LCD mode\n", f);
595 else {
596 features->optional[features->count++] =
597 &s3c_device_lcd;
598 features->lcd_index = li;
599 }
600 }
601 features->done |= FEATURE_SCREEN;
602 break;
603 case 'b':
604 if (features->done & FEATURE_BACKLIGHT)
605 printk(KERN_INFO "MINI2440: '%c' ignored, "
606 "backlight already set\n", f);
607 else {
608 features->optional[features->count++] =
609 &mini2440_led_backlight;
610 }
611 features->done |= FEATURE_BACKLIGHT;
612 break;
613 case 't':
614 printk(KERN_INFO "MINI2440: '%c' ignored, "
615 "touchscreen not compiled in\n", f);
616 break;
617 case 'c':
618 if (features->done & FEATURE_CAMERA)
619 printk(KERN_INFO "MINI2440: '%c' ignored, "
620 "camera already registered\n", f);
621 else
622 features->optional[features->count++] =
623 &s3c_device_camif;
624 features->done |= FEATURE_CAMERA;
625 break;
626 }
627 }
628}
629
630static void __init mini2440_init(void)
631{
632 struct mini2440_features_t features = { 0 };
633 int i;
634
635 printk(KERN_INFO "MINI2440: Option string mini2440=%s\n",
636 mini2440_features_str);
637
638 /* Parse the feature string */
639 mini2440_parse_features(&features, mini2440_features_str);
640
641 /* turn LCD on */
642 s3c2410_gpio_cfgpin(S3C2410_GPC(0), S3C2410_GPC0_LEND);
643
644 /* Turn the backlight early on */
645 s3c2410_gpio_setpin(S3C2410_GPG(4), 1);
646 s3c2410_gpio_cfgpin(S3C2410_GPG(4), S3C2410_GPIO_OUTPUT);
647
648 /* remove pullup on optional PWM backlight -- unused on 3.5 and 7"s */
649 s3c2410_gpio_pullup(S3C2410_GPB(1), 0);
650 s3c2410_gpio_setpin(S3C2410_GPB(1), 0);
651 s3c2410_gpio_cfgpin(S3C2410_GPB(1), S3C2410_GPIO_INPUT);
652
653 /* Make sure the D+ pullup pin is output */
654 s3c2410_gpio_cfgpin(S3C2410_GPC(5), S3C2410_GPIO_OUTPUT);
655
656 /* mark the key as input, without pullups (there is one on the board) */
657 for (i = 0; i < ARRAY_SIZE(mini2440_buttons); i++) {
658 s3c2410_gpio_pullup(mini2440_buttons[i].gpio, 0);
659 s3c2410_gpio_cfgpin(mini2440_buttons[i].gpio,
660 S3C2410_GPIO_INPUT);
661 }
662 if (features.lcd_index != -1) {
663 int li;
664
665 mini2440_fb_info.displays =
666 &mini2440_lcd_cfg[features.lcd_index];
667
668 printk(KERN_INFO "MINI2440: LCD");
669 for (li = 0; li < ARRAY_SIZE(mini2440_lcd_cfg); li++)
670 if (li == features.lcd_index)
671 printk(" [%d:%dx%d]", li,
672 mini2440_lcd_cfg[li].width,
673 mini2440_lcd_cfg[li].height);
674 else
675 printk(" %d:%dx%d", li,
676 mini2440_lcd_cfg[li].width,
677 mini2440_lcd_cfg[li].height);
678 printk("\n");
679 s3c24xx_fb_set_platdata(&mini2440_fb_info);
680 }
681 s3c24xx_udc_set_platdata(&mini2440_udc_cfg);
682 s3c_i2c0_set_platdata(NULL);
683 i2c_register_board_info(0, mini2440_i2c_devs,
684 ARRAY_SIZE(mini2440_i2c_devs));
685
686 platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices));
687
688 if (features.count) /* the optional features */
689 platform_add_devices(features.optional, features.count);
690
691}
692
693
694MACHINE_START(MINI2440, "MINI2440")
695 /* Maintainer: Michel Pollet <buserror@gmail.com> */
696 .phys_io = S3C2410_PA_UART,
697 .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
698 .boot_params = S3C2410_SDRAM_PA + 0x100,
699 .map_io = mini2440_map_io,
700 .init_machine = mini2440_init,
701 .init_irq = s3c24xx_init_irq,
702 .timer = &s3c24xx_timer,
703MACHINE_END
diff --git a/arch/arm/mach-s3c2442/Kconfig b/arch/arm/mach-s3c2442/Kconfig
index b289d198020..103e913f225 100644
--- a/arch/arm/mach-s3c2442/Kconfig
+++ b/arch/arm/mach-s3c2442/Kconfig
@@ -24,6 +24,18 @@ config SMDK2440_CPU2442
24 depends on ARCH_S3C2440 24 depends on ARCH_S3C2440
25 select CPU_S3C2442 25 select CPU_S3C2442
26 26
27config MACH_NEO1973_GTA02
28 bool "Openmoko GTA02 / Freerunner phone"
29 select CPU_S3C2442
30 select MFD_PCF50633
31 select PCF50633_GPIO
32 select I2C
33 select POWER_SUPPLY
34 select MACH_NEO1973
35 select S3C2410_PWM
36 help
37 Say Y here if you are using the Openmoko GTA02 / Freerunner GSM Phone
38
27 39
28endmenu 40endmenu
29 41
diff --git a/arch/arm/mach-s3c2442/Makefile b/arch/arm/mach-s3c2442/Makefile
index 2a909c6c579..2a19113a576 100644
--- a/arch/arm/mach-s3c2442/Makefile
+++ b/arch/arm/mach-s3c2442/Makefile
@@ -12,5 +12,7 @@ obj- :=
12obj-$(CONFIG_CPU_S3C2442) += s3c2442.o 12obj-$(CONFIG_CPU_S3C2442) += s3c2442.o
13obj-$(CONFIG_CPU_S3C2442) += clock.o 13obj-$(CONFIG_CPU_S3C2442) += clock.o
14 14
15obj-$(CONFIG_MACH_NEO1973_GTA02) += mach-gta02.o
16
15# Machine support 17# Machine support
16 18
diff --git a/arch/arm/mach-s3c2442/include/mach/gta02.h b/arch/arm/mach-s3c2442/include/mach/gta02.h
new file mode 100644
index 00000000000..953331d8d56
--- /dev/null
+++ b/arch/arm/mach-s3c2442/include/mach/gta02.h
@@ -0,0 +1,84 @@
1#ifndef _GTA02_H
2#define _GTA02_H
3
4#include <mach/regs-gpio.h>
5
6/* Different hardware revisions, passed in ATAG_REVISION by u-boot */
7#define GTA02v1_SYSTEM_REV 0x00000310
8#define GTA02v2_SYSTEM_REV 0x00000320
9#define GTA02v3_SYSTEM_REV 0x00000330
10#define GTA02v4_SYSTEM_REV 0x00000340
11#define GTA02v5_SYSTEM_REV 0x00000350
12/* since A7 is basically same as A6, we use A6 PCB ID */
13#define GTA02v6_SYSTEM_REV 0x00000360
14
15#define GTA02_GPIO_n3DL_GSM S3C2410_GPA(13) /* v1 + v2 + v3 only */
16
17#define GTA02_GPIO_PWR_LED1 S3C2410_GPB(0)
18#define GTA02_GPIO_PWR_LED2 S3C2410_GPB(1)
19#define GTA02_GPIO_AUX_LED S3C2410_GPB(2)
20#define GTA02_GPIO_VIBRATOR_ON S3C2410_GPB(3)
21#define GTA02_GPIO_MODEM_RST S3C2410_GPB(5)
22#define GTA02_GPIO_BT_EN S3C2410_GPB(6)
23#define GTA02_GPIO_MODEM_ON S3C2410_GPB(7)
24#define GTA02_GPIO_EXTINT8 S3C2410_GPB(8)
25#define GTA02_GPIO_USB_PULLUP S3C2410_GPB(9)
26
27#define GTA02_GPIO_PIO5 S3C2410_GPC(5) /* v3 + v4 only */
28
29#define GTA02v3_GPIO_nG1_CS S3C2410_GPD(12) /* v3 + v4 only */
30#define GTA02v3_GPIO_nG2_CS S3C2410_GPD(13) /* v3 + v4 only */
31#define GTA02v5_GPIO_HDQ S3C2410_GPD(14) /* v5 + */
32
33#define GTA02_GPIO_nG1_INT S3C2410_GPF(0)
34#define GTA02_GPIO_IO1 S3C2410_GPF(1)
35#define GTA02_GPIO_PIO_2 S3C2410_GPF(2) /* v2 + v3 + v4 only */
36#define GTA02_GPIO_JACK_INSERT S3C2410_GPF(4)
37#define GTA02_GPIO_WLAN_GPIO1 S3C2410_GPF(5) /* v2 + v3 + v4 only */
38#define GTA02_GPIO_AUX_KEY S3C2410_GPF(6)
39#define GTA02_GPIO_HOLD_KEY S3C2410_GPF(7)
40
41#define GTA02_GPIO_3D_IRQ S3C2410_GPG(4)
42#define GTA02v2_GPIO_nG2_INT S3C2410_GPG(8) /* v2 + v3 + v4 only */
43#define GTA02v3_GPIO_nUSB_OC S3C2410_GPG(9) /* v3 + v4 only */
44#define GTA02v3_GPIO_nUSB_FLT S3C2410_GPG(10) /* v3 + v4 only */
45#define GTA02v3_GPIO_nGSM_OC S3C2410_GPG(11) /* v3 + v4 only */
46
47#define GTA02_GPIO_AMP_SHUT S3C2440_GPJ1 /* v2 + v3 + v4 only */
48#define GTA02v1_GPIO_WLAN_GPIO10 S3C2440_GPJ2
49#define GTA02_GPIO_HP_IN S3C2440_GPJ2 /* v2 + v3 + v4 only */
50#define GTA02_GPIO_INT0 S3C2440_GPJ3 /* v2 + v3 + v4 only */
51#define GTA02_GPIO_nGSM_EN S3C2440_GPJ4
52#define GTA02_GPIO_3D_RESET S3C2440_GPJ5
53#define GTA02_GPIO_nDL_GSM S3C2440_GPJ6 /* v4 + v5 only */
54#define GTA02_GPIO_WLAN_GPIO0 S3C2440_GPJ7
55#define GTA02v1_GPIO_BAT_ID S3C2440_GPJ8
56#define GTA02_GPIO_KEEPACT S3C2440_GPJ8
57#define GTA02v1_GPIO_HP_IN S3C2440_GPJ10
58#define GTA02_CHIP_PWD S3C2440_GPJ11 /* v2 + v3 + v4 only */
59#define GTA02_GPIO_nWLAN_RESET S3C2440_GPJ12 /* v2 + v3 + v4 only */
60
61#define GTA02_IRQ_GSENSOR_1 IRQ_EINT0
62#define GTA02_IRQ_MODEM IRQ_EINT1
63#define GTA02_IRQ_PIO_2 IRQ_EINT2 /* v2 + v3 + v4 only */
64#define GTA02_IRQ_nJACK_INSERT IRQ_EINT4
65#define GTA02_IRQ_WLAN_GPIO1 IRQ_EINT5
66#define GTA02_IRQ_AUX IRQ_EINT6
67#define GTA02_IRQ_nHOLD IRQ_EINT7
68#define GTA02_IRQ_PCF50633 IRQ_EINT9
69#define GTA02_IRQ_3D IRQ_EINT12
70#define GTA02_IRQ_GSENSOR_2 IRQ_EINT16 /* v2 + v3 + v4 only */
71#define GTA02v3_IRQ_nUSB_OC IRQ_EINT17 /* v3 + v4 only */
72#define GTA02v3_IRQ_nUSB_FLT IRQ_EINT18 /* v3 + v4 only */
73#define GTA02v3_IRQ_nGSM_OC IRQ_EINT19 /* v3 + v4 only */
74
75/* returns 00 000 on GTA02 A5 and earlier, A6 returns 01 001 */
76#define GTA02_PCB_ID1_0 S3C2410_GPC(13)
77#define GTA02_PCB_ID1_1 S3C2410_GPC(15)
78#define GTA02_PCB_ID1_2 S3C2410_GPD(0)
79#define GTA02_PCB_ID2_0 S3C2410_GPD(3)
80#define GTA02_PCB_ID2_1 S3C2410_GPD(4)
81
82int gta02_get_pcb_revision(void);
83
84#endif /* _GTA02_H */
diff --git a/arch/arm/mach-s3c2442/mach-gta02.c b/arch/arm/mach-s3c2442/mach-gta02.c
new file mode 100644
index 00000000000..e23b581aa0e
--- /dev/null
+++ b/arch/arm/mach-s3c2442/mach-gta02.c
@@ -0,0 +1,646 @@
1/*
2 * linux/arch/arm/mach-s3c2442/mach-gta02.c
3 *
4 * S3C2442 Machine Support for Openmoko GTA02 / FreeRunner.
5 *
6 * Copyright (C) 2006-2009 by Openmoko, Inc.
7 * Authors: Harald Welte <laforge@openmoko.org>
8 * Andy Green <andy@openmoko.org>
9 * Werner Almesberger <werner@openmoko.org>
10 * All rights reserved.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of
15 * the License, or (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
25 * MA 02111-1307 USA
26 *
27 */
28
29#include <linux/kernel.h>
30#include <linux/types.h>
31#include <linux/interrupt.h>
32#include <linux/list.h>
33#include <linux/delay.h>
34#include <linux/timer.h>
35#include <linux/init.h>
36#include <linux/gpio.h>
37#include <linux/workqueue.h>
38#include <linux/platform_device.h>
39#include <linux/serial_core.h>
40#include <linux/spi/spi.h>
41
42#include <linux/mmc/host.h>
43
44#include <linux/mtd/mtd.h>
45#include <linux/mtd/nand.h>
46#include <linux/mtd/nand_ecc.h>
47#include <linux/mtd/partitions.h>
48#include <linux/mtd/physmap.h>
49#include <linux/io.h>
50
51#include <linux/i2c.h>
52#include <linux/backlight.h>
53#include <linux/regulator/machine.h>
54
55#include <linux/mfd/pcf50633/core.h>
56#include <linux/mfd/pcf50633/mbc.h>
57#include <linux/mfd/pcf50633/adc.h>
58#include <linux/mfd/pcf50633/gpio.h>
59#include <linux/mfd/pcf50633/pmic.h>
60
61#include <asm/mach/arch.h>
62#include <asm/mach/map.h>
63#include <asm/mach/irq.h>
64
65#include <asm/irq.h>
66#include <asm/mach-types.h>
67
68#include <mach/regs-irq.h>
69#include <mach/regs-gpio.h>
70#include <mach/regs-gpioj.h>
71#include <mach/fb.h>
72
73#include <mach/spi.h>
74#include <mach/spi-gpio.h>
75#include <plat/usb-control.h>
76#include <mach/regs-mem.h>
77#include <mach/hardware.h>
78
79#include <mach/gta02.h>
80
81#include <plat/regs-serial.h>
82#include <plat/nand.h>
83#include <plat/devs.h>
84#include <plat/cpu.h>
85#include <plat/pm.h>
86#include <plat/udc.h>
87#include <plat/gpio-cfg.h>
88#include <plat/iic.h>
89
90static struct pcf50633 *gta02_pcf;
91
92/*
93 * This gets called every 1ms when we paniced.
94 */
95
96static long gta02_panic_blink(long count)
97{
98 long delay = 0;
99 static long last_blink;
100 static char led;
101
102 /* Fast blink: 200ms period. */
103 if (count - last_blink < 100)
104 return 0;
105
106 led ^= 1;
107 gpio_direction_output(GTA02_GPIO_AUX_LED, led);
108
109 last_blink = count;
110
111 return delay;
112}
113
114
115static struct map_desc gta02_iodesc[] __initdata = {
116 {
117 .virtual = 0xe0000000,
118 .pfn = __phys_to_pfn(S3C2410_CS3 + 0x01000000),
119 .length = SZ_1M,
120 .type = MT_DEVICE
121 },
122};
123
124#define UCON (S3C2410_UCON_DEFAULT | S3C2443_UCON_RXERR_IRQEN)
125#define ULCON (S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB)
126#define UFCON (S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE)
127
128static struct s3c2410_uartcfg gta02_uartcfgs[] = {
129 [0] = {
130 .hwport = 0,
131 .flags = 0,
132 .ucon = UCON,
133 .ulcon = ULCON,
134 .ufcon = UFCON,
135 },
136 [1] = {
137 .hwport = 1,
138 .flags = 0,
139 .ucon = UCON,
140 .ulcon = ULCON,
141 .ufcon = UFCON,
142 },
143 [2] = {
144 .hwport = 2,
145 .flags = 0,
146 .ucon = UCON,
147 .ulcon = ULCON,
148 .ufcon = UFCON,
149 },
150};
151
152#ifdef CONFIG_CHARGER_PCF50633
153/*
154 * On GTA02 the 1A charger features a 48K resistor to 0V on the ID pin.
155 * We use this to recognize that we can pull 1A from the USB socket.
156 *
157 * These constants are the measured pcf50633 ADC levels with the 1A
158 * charger / 48K resistor, and with no pulldown resistor.
159 */
160
161#define ADC_NOM_CHG_DETECT_1A 6
162#define ADC_NOM_CHG_DETECT_USB 43
163
164static void
165gta02_configure_pmu_for_charger(struct pcf50633 *pcf, void *unused, int res)
166{
167 int ma;
168
169 /* Interpret charger type */
170 if (res < ((ADC_NOM_CHG_DETECT_USB + ADC_NOM_CHG_DETECT_1A) / 2)) {
171
172 /*
173 * Sanity - stop GPO driving out now that we have a 1A charger
174 * GPO controls USB Host power generation on GTA02
175 */
176 pcf50633_gpio_set(pcf, PCF50633_GPO, 0);
177
178 ma = 1000;
179 } else
180 ma = 100;
181
182 pcf50633_mbc_usb_curlim_set(pcf, ma);
183}
184
185static struct delayed_work gta02_charger_work;
186static int gta02_usb_vbus_draw;
187
188static void gta02_charger_worker(struct work_struct *work)
189{
190 if (gta02_usb_vbus_draw) {
191 pcf50633_mbc_usb_curlim_set(gta02_pcf, gta02_usb_vbus_draw);
192 return;
193 }
194
195#ifdef CONFIG_PCF50633_ADC
196 pcf50633_adc_async_read(gta02_pcf,
197 PCF50633_ADCC1_MUX_ADCIN1,
198 PCF50633_ADCC1_AVERAGE_16,
199 gta02_configure_pmu_for_charger,
200 NULL);
201#else
202 /*
203 * If the PCF50633 ADC is disabled we fallback to a
204 * 100mA limit for safety.
205 */
206 pcf50633_mbc_usb_curlim_set(pcf, 100);
207#endif
208}
209
210#define GTA02_CHARGER_CONFIGURE_TIMEOUT ((3000 * HZ) / 1000)
211
212static void gta02_pmu_event_callback(struct pcf50633 *pcf, int irq)
213{
214 if (irq == PCF50633_IRQ_USBINS) {
215 schedule_delayed_work(&gta02_charger_work,
216 GTA02_CHARGER_CONFIGURE_TIMEOUT);
217
218 return;
219 }
220
221 if (irq == PCF50633_IRQ_USBREM) {
222 cancel_delayed_work_sync(&gta02_charger_work);
223 gta02_usb_vbus_draw = 0;
224 }
225}
226
227static void gta02_udc_vbus_draw(unsigned int ma)
228{
229 if (!gta02_pcf)
230 return;
231
232 gta02_usb_vbus_draw = ma;
233
234 schedule_delayed_work(&gta02_charger_work,
235 GTA02_CHARGER_CONFIGURE_TIMEOUT);
236}
237#else /* !CONFIG_CHARGER_PCF50633 */
238#define gta02_pmu_event_callback NULL
239#define gta02_udc_vbus_draw NULL
240#endif
241
242/*
243 * This is called when pc50633 is probed, unfortunately quite late in the
244 * day since it is an I2C bus device. Here we can belatedly define some
245 * platform devices with the advantage that we can mark the pcf50633 as the
246 * parent. This makes them get suspended and resumed with their parent
247 * the pcf50633 still around.
248 */
249
250static void gta02_pmu_attach_child_devices(struct pcf50633 *pcf);
251
252
253static char *gta02_batteries[] = {
254 "battery",
255};
256
257struct pcf50633_platform_data gta02_pcf_pdata = {
258 .resumers = {
259 [0] = PCF50633_INT1_USBINS |
260 PCF50633_INT1_USBREM |
261 PCF50633_INT1_ALARM,
262 [1] = PCF50633_INT2_ONKEYF,
263 [2] = PCF50633_INT3_ONKEY1S,
264 [3] = PCF50633_INT4_LOWSYS |
265 PCF50633_INT4_LOWBAT |
266 PCF50633_INT4_HIGHTMP,
267 },
268
269 .batteries = gta02_batteries,
270 .num_batteries = ARRAY_SIZE(gta02_batteries),
271 .reg_init_data = {
272 [PCF50633_REGULATOR_AUTO] = {
273 .constraints = {
274 .min_uV = 3300000,
275 .max_uV = 3300000,
276 .valid_modes_mask = REGULATOR_MODE_NORMAL,
277 .always_on = 1,
278 .apply_uV = 1,
279 .state_mem = {
280 .enabled = 1,
281 },
282 },
283 },
284 [PCF50633_REGULATOR_DOWN1] = {
285 .constraints = {
286 .min_uV = 1300000,
287 .max_uV = 1600000,
288 .valid_modes_mask = REGULATOR_MODE_NORMAL,
289 .always_on = 1,
290 .apply_uV = 1,
291 },
292 },
293 [PCF50633_REGULATOR_DOWN2] = {
294 .constraints = {
295 .min_uV = 1800000,
296 .max_uV = 1800000,
297 .valid_modes_mask = REGULATOR_MODE_NORMAL,
298 .apply_uV = 1,
299 .always_on = 1,
300 .state_mem = {
301 .enabled = 1,
302 },
303 },
304 },
305 [PCF50633_REGULATOR_HCLDO] = {
306 .constraints = {
307 .min_uV = 2000000,
308 .max_uV = 3300000,
309 .valid_modes_mask = REGULATOR_MODE_NORMAL,
310 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
311 .always_on = 1,
312 },
313 },
314 [PCF50633_REGULATOR_LDO1] = {
315 .constraints = {
316 .min_uV = 3300000,
317 .max_uV = 3300000,
318 .valid_modes_mask = REGULATOR_MODE_NORMAL,
319 .apply_uV = 1,
320 .state_mem = {
321 .enabled = 0,
322 },
323 },
324 },
325 [PCF50633_REGULATOR_LDO2] = {
326 .constraints = {
327 .min_uV = 3300000,
328 .max_uV = 3300000,
329 .valid_modes_mask = REGULATOR_MODE_NORMAL,
330 .apply_uV = 1,
331 },
332 },
333 [PCF50633_REGULATOR_LDO3] = {
334 .constraints = {
335 .min_uV = 3000000,
336 .max_uV = 3000000,
337 .valid_modes_mask = REGULATOR_MODE_NORMAL,
338 .apply_uV = 1,
339 },
340 },
341 [PCF50633_REGULATOR_LDO4] = {
342 .constraints = {
343 .min_uV = 3200000,
344 .max_uV = 3200000,
345 .valid_modes_mask = REGULATOR_MODE_NORMAL,
346 .apply_uV = 1,
347 },
348 },
349 [PCF50633_REGULATOR_LDO5] = {
350 .constraints = {
351 .min_uV = 3000000,
352 .max_uV = 3000000,
353 .valid_modes_mask = REGULATOR_MODE_NORMAL,
354 .apply_uV = 1,
355 .state_mem = {
356 .enabled = 1,
357 },
358 },
359 },
360 [PCF50633_REGULATOR_LDO6] = {
361 .constraints = {
362 .min_uV = 3000000,
363 .max_uV = 3000000,
364 .valid_modes_mask = REGULATOR_MODE_NORMAL,
365 },
366 },
367 [PCF50633_REGULATOR_MEMLDO] = {
368 .constraints = {
369 .min_uV = 1800000,
370 .max_uV = 1800000,
371 .valid_modes_mask = REGULATOR_MODE_NORMAL,
372 .state_mem = {
373 .enabled = 1,
374 },
375 },
376 },
377
378 },
379 .probe_done = gta02_pmu_attach_child_devices,
380 .mbc_event_callback = gta02_pmu_event_callback,
381};
382
383
384/* NOR Flash. */
385
386#define GTA02_FLASH_BASE 0x18000000 /* GCS3 */
387#define GTA02_FLASH_SIZE 0x200000 /* 2MBytes */
388
389static struct physmap_flash_data gta02_nor_flash_data = {
390 .width = 2,
391};
392
393static struct resource gta02_nor_flash_resource = {
394 .start = GTA02_FLASH_BASE,
395 .end = GTA02_FLASH_BASE + GTA02_FLASH_SIZE - 1,
396 .flags = IORESOURCE_MEM,
397};
398
399static struct platform_device gta02_nor_flash = {
400 .name = "physmap-flash",
401 .id = 0,
402 .dev = {
403 .platform_data = &gta02_nor_flash_data,
404 },
405 .resource = &gta02_nor_flash_resource,
406 .num_resources = 1,
407};
408
409
410struct platform_device s3c24xx_pwm_device = {
411 .name = "s3c24xx_pwm",
412 .num_resources = 0,
413};
414
415static struct i2c_board_info gta02_i2c_devs[] __initdata = {
416 {
417 I2C_BOARD_INFO("pcf50633", 0x73),
418 .irq = GTA02_IRQ_PCF50633,
419 .platform_data = &gta02_pcf_pdata,
420 },
421 {
422 I2C_BOARD_INFO("wm8753", 0x1a),
423 },
424};
425
426static struct s3c2410_nand_set gta02_nand_sets[] = {
427 [0] = {
428 /*
429 * This name is also hard-coded in the boot loaders, so
430 * changing it would would require all users to upgrade
431 * their boot loaders, some of which are stored in a NOR
432 * that is considered to be immutable.
433 */
434 .name = "neo1973-nand",
435 .nr_chips = 1,
436 .use_bbt = 1,
437 .force_soft_ecc = 1,
438 },
439};
440
441/*
442 * Choose a set of timings derived from S3C@2442B MCP54
443 * data sheet (K5D2G13ACM-D075 MCP Memory).
444 */
445
446static struct s3c2410_platform_nand gta02_nand_info = {
447 .tacls = 0,
448 .twrph0 = 25,
449 .twrph1 = 15,
450 .nr_sets = ARRAY_SIZE(gta02_nand_sets),
451 .sets = gta02_nand_sets,
452};
453
454
455static void gta02_udc_command(enum s3c2410_udc_cmd_e cmd)
456{
457 switch (cmd) {
458 case S3C2410_UDC_P_ENABLE:
459 pr_debug("%s S3C2410_UDC_P_ENABLE\n", __func__);
460 gpio_direction_output(GTA02_GPIO_USB_PULLUP, 1);
461 break;
462 case S3C2410_UDC_P_DISABLE:
463 pr_debug("%s S3C2410_UDC_P_DISABLE\n", __func__);
464 gpio_direction_output(GTA02_GPIO_USB_PULLUP, 0);
465 break;
466 case S3C2410_UDC_P_RESET:
467 pr_debug("%s S3C2410_UDC_P_RESET\n", __func__);
468 /* FIXME: Do something here. */
469 }
470}
471
472/* Get PMU to set USB current limit accordingly. */
473static struct s3c2410_udc_mach_info gta02_udc_cfg = {
474 .vbus_draw = gta02_udc_vbus_draw,
475 .udc_command = gta02_udc_command,
476
477};
478
479
480
481static void gta02_bl_set_intensity(int intensity)
482{
483 struct pcf50633 *pcf = gta02_pcf;
484 int old_intensity = pcf50633_reg_read(pcf, PCF50633_REG_LEDOUT);
485
486 /* We map 8-bit intensity to 6-bit intensity in hardware. */
487 intensity >>= 2;
488
489 /*
490 * This can happen during, eg, print of panic on blanked console,
491 * but we can't service i2c without interrupts active, so abort.
492 */
493 if (in_atomic()) {
494 printk(KERN_ERR "gta02_bl_set_intensity called while atomic\n");
495 return;
496 }
497
498 old_intensity = pcf50633_reg_read(pcf, PCF50633_REG_LEDOUT);
499 if (intensity == old_intensity)
500 return;
501
502 /* We can't do this anywhere else. */
503 pcf50633_reg_write(pcf, PCF50633_REG_LEDDIM, 5);
504
505 if (!(pcf50633_reg_read(pcf, PCF50633_REG_LEDENA) & 3))
506 old_intensity = 0;
507
508 /*
509 * The PCF50633 cannot handle LEDOUT = 0 (datasheet p60)
510 * if seen, you have to re-enable the LED unit.
511 */
512 if (!intensity || !old_intensity)
513 pcf50633_reg_write(pcf, PCF50633_REG_LEDENA, 0);
514
515 /* Illegal to set LEDOUT to 0. */
516 if (!intensity)
517 pcf50633_reg_set_bit_mask(pcf, PCF50633_REG_LEDOUT, 0x3f, 2);
518 else
519 pcf50633_reg_set_bit_mask(pcf, PCF50633_REG_LEDOUT, 0x3f,
520 intensity);
521
522 if (intensity)
523 pcf50633_reg_write(pcf, PCF50633_REG_LEDENA, 2);
524
525}
526
527static struct generic_bl_info gta02_bl_info = {
528 .name = "gta02-bl",
529 .max_intensity = 0xff,
530 .default_intensity = 0xff,
531 .set_bl_intensity = gta02_bl_set_intensity,
532};
533
534static struct platform_device gta02_bl_dev = {
535 .name = "generic-bl",
536 .id = 1,
537 .dev = {
538 .platform_data = &gta02_bl_info,
539 },
540};
541
542
543
544/* USB */
545static struct s3c2410_hcd_info gta02_usb_info = {
546 .port[0] = {
547 .flags = S3C_HCDFLG_USED,
548 },
549 .port[1] = {
550 .flags = 0,
551 },
552};
553
554
555static void __init gta02_map_io(void)
556{
557 s3c24xx_init_io(gta02_iodesc, ARRAY_SIZE(gta02_iodesc));
558 s3c24xx_init_clocks(12000000);
559 s3c24xx_init_uarts(gta02_uartcfgs, ARRAY_SIZE(gta02_uartcfgs));
560}
561
562
563/* These are the guys that don't need to be children of PMU. */
564
565static struct platform_device *gta02_devices[] __initdata = {
566 &s3c_device_usb,
567 &s3c_device_wdt,
568 &s3c_device_sdi,
569 &s3c_device_usbgadget,
570 &s3c_device_nand,
571 &gta02_nor_flash,
572 &s3c24xx_pwm_device,
573 &s3c_device_iis,
574 &s3c_device_i2c0,
575};
576
577/* These guys DO need to be children of PMU. */
578
579static struct platform_device *gta02_devices_pmu_children[] = {
580 &gta02_bl_dev,
581};
582
583
584/*
585 * This is called when pc50633 is probed, quite late in the day since it is an
586 * I2C bus device. Here we can define platform devices with the advantage that
587 * we can mark the pcf50633 as the parent. This makes them get suspended and
588 * resumed with their parent the pcf50633 still around. All devices whose
589 * operation depends on something from pcf50633 must have this relationship
590 * made explicit like this, or suspend and resume will become an unreliable
591 * hellworld.
592 */
593
594static void gta02_pmu_attach_child_devices(struct pcf50633 *pcf)
595{
596 int n;
597
598 /* Grab a copy of the now probed PMU pointer. */
599 gta02_pcf = pcf;
600
601 for (n = 0; n < ARRAY_SIZE(gta02_devices_pmu_children); n++)
602 gta02_devices_pmu_children[n]->dev.parent = pcf->dev;
603
604 platform_add_devices(gta02_devices_pmu_children,
605 ARRAY_SIZE(gta02_devices_pmu_children));
606}
607
608static void gta02_poweroff(void)
609{
610 pcf50633_reg_set_bit_mask(gta02_pcf, PCF50633_REG_OOCSHDWN, 1, 1);
611}
612
613static void __init gta02_machine_init(void)
614{
615 /* Set the panic callback to make AUX LED blink at ~5Hz. */
616 panic_blink = gta02_panic_blink;
617
618 s3c_pm_init();
619
620#ifdef CONFIG_CHARGER_PCF50633
621 INIT_DELAYED_WORK(&gta02_charger_work, gta02_charger_worker);
622#endif
623
624 s3c_device_usb.dev.platform_data = &gta02_usb_info;
625 s3c_device_nand.dev.platform_data = &gta02_nand_info;
626
627 s3c24xx_udc_set_platdata(&gta02_udc_cfg);
628 s3c_i2c0_set_platdata(NULL);
629
630 i2c_register_board_info(0, gta02_i2c_devs, ARRAY_SIZE(gta02_i2c_devs));
631
632 platform_add_devices(gta02_devices, ARRAY_SIZE(gta02_devices));
633 pm_power_off = gta02_poweroff;
634}
635
636
637MACHINE_START(NEO1973_GTA02, "GTA02")
638 /* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */
639 .phys_io = S3C2410_PA_UART,
640 .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
641 .boot_params = S3C2410_SDRAM_PA + 0x100,
642 .map_io = gta02_map_io,
643 .init_irq = s3c24xx_init_irq,
644 .init_machine = gta02_machine_init,
645 .timer = &s3c24xx_timer,
646MACHINE_END
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
index 3a398befed4..03cd27d917b 100644
--- a/arch/arm/mm/alignment.c
+++ b/arch/arm/mm/alignment.c
@@ -62,6 +62,12 @@
62#define SHIFT_ASR 0x40 62#define SHIFT_ASR 0x40
63#define SHIFT_RORRRX 0x60 63#define SHIFT_RORRRX 0x60
64 64
65#define BAD_INSTR 0xdeadc0de
66
67/* Thumb-2 32 bit format per ARMv7 DDI0406A A6.3, either f800h,e800h,f800h */
68#define IS_T32(hi16) \
69 (((hi16) & 0xe000) == 0xe000 && ((hi16) & 0x1800))
70
65static unsigned long ai_user; 71static unsigned long ai_user;
66static unsigned long ai_sys; 72static unsigned long ai_sys;
67static unsigned long ai_skipped; 73static unsigned long ai_skipped;
@@ -332,38 +338,48 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
332 struct pt_regs *regs) 338 struct pt_regs *regs)
333{ 339{
334 unsigned int rd = RD_BITS(instr); 340 unsigned int rd = RD_BITS(instr);
335 341 unsigned int rd2;
336 if (((rd & 1) == 1) || (rd == 14)) 342 int load;
343
344 if ((instr & 0xfe000000) == 0xe8000000) {
345 /* ARMv7 Thumb-2 32-bit LDRD/STRD */
346 rd2 = (instr >> 8) & 0xf;
347 load = !!(LDST_L_BIT(instr));
348 } else if (((rd & 1) == 1) || (rd == 14))
337 goto bad; 349 goto bad;
350 else {
351 load = ((instr & 0xf0) == 0xd0);
352 rd2 = rd + 1;
353 }
338 354
339 ai_dword += 1; 355 ai_dword += 1;
340 356
341 if (user_mode(regs)) 357 if (user_mode(regs))
342 goto user; 358 goto user;
343 359
344 if ((instr & 0xf0) == 0xd0) { 360 if (load) {
345 unsigned long val; 361 unsigned long val;
346 get32_unaligned_check(val, addr); 362 get32_unaligned_check(val, addr);
347 regs->uregs[rd] = val; 363 regs->uregs[rd] = val;
348 get32_unaligned_check(val, addr + 4); 364 get32_unaligned_check(val, addr + 4);
349 regs->uregs[rd + 1] = val; 365 regs->uregs[rd2] = val;
350 } else { 366 } else {
351 put32_unaligned_check(regs->uregs[rd], addr); 367 put32_unaligned_check(regs->uregs[rd], addr);
352 put32_unaligned_check(regs->uregs[rd + 1], addr + 4); 368 put32_unaligned_check(regs->uregs[rd2], addr + 4);
353 } 369 }
354 370
355 return TYPE_LDST; 371 return TYPE_LDST;
356 372
357 user: 373 user:
358 if ((instr & 0xf0) == 0xd0) { 374 if (load) {
359 unsigned long val; 375 unsigned long val;
360 get32t_unaligned_check(val, addr); 376 get32t_unaligned_check(val, addr);
361 regs->uregs[rd] = val; 377 regs->uregs[rd] = val;
362 get32t_unaligned_check(val, addr + 4); 378 get32t_unaligned_check(val, addr + 4);
363 regs->uregs[rd + 1] = val; 379 regs->uregs[rd2] = val;
364 } else { 380 } else {
365 put32t_unaligned_check(regs->uregs[rd], addr); 381 put32t_unaligned_check(regs->uregs[rd], addr);
366 put32t_unaligned_check(regs->uregs[rd + 1], addr + 4); 382 put32t_unaligned_check(regs->uregs[rd2], addr + 4);
367 } 383 }
368 384
369 return TYPE_LDST; 385 return TYPE_LDST;
@@ -616,8 +632,72 @@ thumb2arm(u16 tinstr)
616 /* Else fall through for illegal instruction case */ 632 /* Else fall through for illegal instruction case */
617 633
618 default: 634 default:
619 return 0xdeadc0de; 635 return BAD_INSTR;
636 }
637}
638
639/*
640 * Convert Thumb-2 32 bit LDM, STM, LDRD, STRD to equivalent instruction
641 * handlable by ARM alignment handler, also find the corresponding handler,
642 * so that we can reuse ARM userland alignment fault fixups for Thumb.
643 *
644 * @pinstr: original Thumb-2 instruction; returns new handlable instruction
645 * @regs: register context.
646 * @poffset: return offset from faulted addr for later writeback
647 *
648 * NOTES:
649 * 1. Comments below refer to ARMv7 DDI0406A Thumb Instruction sections.
650 * 2. Register name Rt from ARMv7 is same as Rd from ARMv6 (Rd is Rt)
651 */
652static void *
653do_alignment_t32_to_handler(unsigned long *pinstr, struct pt_regs *regs,
654 union offset_union *poffset)
655{
656 unsigned long instr = *pinstr;
657 u16 tinst1 = (instr >> 16) & 0xffff;
658 u16 tinst2 = instr & 0xffff;
659 poffset->un = 0;
660
661 switch (tinst1 & 0xffe0) {
662 /* A6.3.5 Load/Store multiple */
663 case 0xe880: /* STM/STMIA/STMEA,LDM/LDMIA, PUSH/POP T2 */
664 case 0xe8a0: /* ...above writeback version */
665 case 0xe900: /* STMDB/STMFD, LDMDB/LDMEA */
666 case 0xe920: /* ...above writeback version */
667 /* no need offset decision since handler calculates it */
668 return do_alignment_ldmstm;
669
670 case 0xf840: /* POP/PUSH T3 (single register) */
671 if (RN_BITS(instr) == 13 && (tinst2 & 0x09ff) == 0x0904) {
672 u32 L = !!(LDST_L_BIT(instr));
673 const u32 subset[2] = {
674 0xe92d0000, /* STMDB sp!,{registers} */
675 0xe8bd0000, /* LDMIA sp!,{registers} */
676 };
677 *pinstr = subset[L] | (1<<RD_BITS(instr));
678 return do_alignment_ldmstm;
679 }
680 /* Else fall through for illegal instruction case */
681 break;
682
683 /* A6.3.6 Load/store double, STRD/LDRD(immed, lit, reg) */
684 case 0xe860:
685 case 0xe960:
686 case 0xe8e0:
687 case 0xe9e0:
688 poffset->un = (tinst2 & 0xff) << 2;
689 case 0xe940:
690 case 0xe9c0:
691 return do_alignment_ldrdstrd;
692
693 /*
694 * No need to handle load/store instructions up to word size
695 * since ARMv6 and later CPUs can perform unaligned accesses.
696 */
697 default:
698 break;
620 } 699 }
700 return NULL;
621} 701}
622 702
623static int 703static int
@@ -630,6 +710,8 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
630 mm_segment_t fs; 710 mm_segment_t fs;
631 unsigned int fault; 711 unsigned int fault;
632 u16 tinstr = 0; 712 u16 tinstr = 0;
713 int isize = 4;
714 int thumb2_32b = 0;
633 715
634 instrptr = instruction_pointer(regs); 716 instrptr = instruction_pointer(regs);
635 717
@@ -637,8 +719,19 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
637 set_fs(KERNEL_DS); 719 set_fs(KERNEL_DS);
638 if (thumb_mode(regs)) { 720 if (thumb_mode(regs)) {
639 fault = __get_user(tinstr, (u16 *)(instrptr & ~1)); 721 fault = __get_user(tinstr, (u16 *)(instrptr & ~1));
640 if (!(fault)) 722 if (!fault) {
641 instr = thumb2arm(tinstr); 723 if (cpu_architecture() >= CPU_ARCH_ARMv7 &&
724 IS_T32(tinstr)) {
725 /* Thumb-2 32-bit */
726 u16 tinst2 = 0;
727 fault = __get_user(tinst2, (u16 *)(instrptr+2));
728 instr = (tinstr << 16) | tinst2;
729 thumb2_32b = 1;
730 } else {
731 isize = 2;
732 instr = thumb2arm(tinstr);
733 }
734 }
642 } else 735 } else
643 fault = __get_user(instr, (u32 *)instrptr); 736 fault = __get_user(instr, (u32 *)instrptr);
644 set_fs(fs); 737 set_fs(fs);
@@ -655,7 +748,7 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
655 748
656 fixup: 749 fixup:
657 750
658 regs->ARM_pc += thumb_mode(regs) ? 2 : 4; 751 regs->ARM_pc += isize;
659 752
660 switch (CODING_BITS(instr)) { 753 switch (CODING_BITS(instr)) {
661 case 0x00000000: /* 3.13.4 load/store instruction extensions */ 754 case 0x00000000: /* 3.13.4 load/store instruction extensions */
@@ -714,18 +807,25 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
714 handler = do_alignment_ldrstr; 807 handler = do_alignment_ldrstr;
715 break; 808 break;
716 809
717 case 0x08000000: /* ldm or stm */ 810 case 0x08000000: /* ldm or stm, or thumb-2 32bit instruction */
718 handler = do_alignment_ldmstm; 811 if (thumb2_32b)
812 handler = do_alignment_t32_to_handler(&instr, regs, &offset);
813 else
814 handler = do_alignment_ldmstm;
719 break; 815 break;
720 816
721 default: 817 default:
722 goto bad; 818 goto bad;
723 } 819 }
724 820
821 if (!handler)
822 goto bad;
725 type = handler(addr, instr, regs); 823 type = handler(addr, instr, regs);
726 824
727 if (type == TYPE_ERROR || type == TYPE_FAULT) 825 if (type == TYPE_ERROR || type == TYPE_FAULT) {
826 regs->ARM_pc -= isize;
728 goto bad_or_fault; 827 goto bad_or_fault;
828 }
729 829
730 if (type == TYPE_LDST) 830 if (type == TYPE_LDST)
731 do_alignment_finish_ldst(addr, instr, regs, offset); 831 do_alignment_finish_ldst(addr, instr, regs, offset);
@@ -735,7 +835,6 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
735 bad_or_fault: 835 bad_or_fault:
736 if (type == TYPE_ERROR) 836 if (type == TYPE_ERROR)
737 goto bad; 837 goto bad;
738 regs->ARM_pc -= thumb_mode(regs) ? 2 : 4;
739 /* 838 /*
740 * We got a fault - fix it up, or die. 839 * We got a fault - fix it up, or die.
741 */ 840 */
@@ -751,8 +850,8 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
751 */ 850 */
752 printk(KERN_ERR "Alignment trap: not handling instruction " 851 printk(KERN_ERR "Alignment trap: not handling instruction "
753 "%0*lx at [<%08lx>]\n", 852 "%0*lx at [<%08lx>]\n",
754 thumb_mode(regs) ? 4 : 8, 853 isize << 1,
755 thumb_mode(regs) ? tinstr : instr, instrptr); 854 isize == 2 ? tinstr : instr, instrptr);
756 ai_skipped += 1; 855 ai_skipped += 1;
757 return 1; 856 return 1;
758 857
@@ -763,8 +862,8 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
763 printk("Alignment trap: %s (%d) PC=0x%08lx Instr=0x%0*lx " 862 printk("Alignment trap: %s (%d) PC=0x%08lx Instr=0x%0*lx "
764 "Address=0x%08lx FSR 0x%03x\n", current->comm, 863 "Address=0x%08lx FSR 0x%03x\n", current->comm,
765 task_pid_nr(current), instrptr, 864 task_pid_nr(current), instrptr,
766 thumb_mode(regs) ? 4 : 8, 865 isize << 1,
767 thumb_mode(regs) ? tinstr : instr, 866 isize == 2 ? tinstr : instr,
768 addr, fsr); 867 addr, fsr);
769 868
770 if (ai_usermode & UM_FIXUP) 869 if (ai_usermode & UM_FIXUP)
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index 0455557a289..6fdcbb70982 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -208,7 +208,7 @@ good_area:
208 * than endlessly redo the fault. 208 * than endlessly redo the fault.
209 */ 209 */
210survive: 210survive:
211 fault = handle_mm_fault(mm, vma, addr & PAGE_MASK, fsr & (1 << 11)); 211 fault = handle_mm_fault(mm, vma, addr & PAGE_MASK, (fsr & (1 << 11)) ? FAULT_FLAG_WRITE : 0);
212 if (unlikely(fault & VM_FAULT_ERROR)) { 212 if (unlikely(fault & VM_FAULT_ERROR)) {
213 if (fault & VM_FAULT_OOM) 213 if (fault & VM_FAULT_OOM)
214 goto out_of_memory; 214 goto out_of_memory;
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index fdaa9bb87c1..4722582b17b 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -836,6 +836,13 @@ void __init reserve_node_zero(pg_data_t *pgdat)
836 BOOTMEM_EXCLUSIVE); 836 BOOTMEM_EXCLUSIVE);
837 } 837 }
838 838
839 if (machine_is_treo680()) {
840 reserve_bootmem_node(pgdat, 0xa0000000, 0x1000,
841 BOOTMEM_EXCLUSIVE);
842 reserve_bootmem_node(pgdat, 0xa2000000, 0x1000,
843 BOOTMEM_EXCLUSIVE);
844 }
845
839 if (machine_is_palmt5()) 846 if (machine_is_palmt5())
840 reserve_bootmem_node(pgdat, 0xa0200000, 0x1000, 847 reserve_bootmem_node(pgdat, 0xa0200000, 0x1000,
841 BOOTMEM_EXCLUSIVE); 848 BOOTMEM_EXCLUSIVE);
diff --git a/arch/arm/plat-omap/include/mach/sram.h b/arch/arm/plat-omap/include/mach/sram.h
index dca7c16ae90..4d53cc59d7a 100644
--- a/arch/arm/plat-omap/include/mach/sram.h
+++ b/arch/arm/plat-omap/include/mach/sram.h
@@ -24,7 +24,8 @@ extern u32 omap2_set_prcm(u32 dpll_ctrl_val, u32 sdrc_rfr_val, int bypass);
24extern u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, 24extern u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl,
25 u32 sdrc_actim_ctrla, 25 u32 sdrc_actim_ctrla,
26 u32 sdrc_actim_ctrlb, u32 m2, 26 u32 sdrc_actim_ctrlb, u32 m2,
27 u32 unlock_dll); 27 u32 unlock_dll, u32 f, u32 sdrc_mr,
28 u32 inc);
28 29
29/* Do not use these */ 30/* Do not use these */
30extern void omap1_sram_reprogram_clock(u32 ckctl, u32 dpllctl); 31extern void omap1_sram_reprogram_clock(u32 ckctl, u32 dpllctl);
@@ -62,7 +63,8 @@ extern unsigned long omap243x_sram_reprogram_sdrc_sz;
62extern u32 omap3_sram_configure_core_dpll(u32 sdrc_rfr_ctrl, 63extern u32 omap3_sram_configure_core_dpll(u32 sdrc_rfr_ctrl,
63 u32 sdrc_actim_ctrla, 64 u32 sdrc_actim_ctrla,
64 u32 sdrc_actim_ctrlb, u32 m2, 65 u32 sdrc_actim_ctrlb, u32 m2,
65 u32 unlock_dll); 66 u32 unlock_dll, u32 f, u32 sdrc_mr,
67 u32 inc);
66extern unsigned long omap3_sram_configure_core_dpll_sz; 68extern unsigned long omap3_sram_configure_core_dpll_sz;
67 69
68#endif 70#endif
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
index a5b9bcd6b10..65006df3f1b 100644
--- a/arch/arm/plat-omap/sram.c
+++ b/arch/arm/plat-omap/sram.c
@@ -371,15 +371,17 @@ static inline int omap243x_sram_init(void)
371static u32 (*_omap3_sram_configure_core_dpll)(u32 sdrc_rfr_ctrl, 371static u32 (*_omap3_sram_configure_core_dpll)(u32 sdrc_rfr_ctrl,
372 u32 sdrc_actim_ctrla, 372 u32 sdrc_actim_ctrla,
373 u32 sdrc_actim_ctrlb, 373 u32 sdrc_actim_ctrlb,
374 u32 m2, u32 unlock_dll); 374 u32 m2, u32 unlock_dll,
375 u32 f, u32 sdrc_mr, u32 inc);
375u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, u32 sdrc_actim_ctrla, 376u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, u32 sdrc_actim_ctrla,
376 u32 sdrc_actim_ctrlb, u32 m2, u32 unlock_dll) 377 u32 sdrc_actim_ctrlb, u32 m2, u32 unlock_dll,
378 u32 f, u32 sdrc_mr, u32 inc)
377{ 379{
378 BUG_ON(!_omap3_sram_configure_core_dpll); 380 BUG_ON(!_omap3_sram_configure_core_dpll);
379 return _omap3_sram_configure_core_dpll(sdrc_rfr_ctrl, 381 return _omap3_sram_configure_core_dpll(sdrc_rfr_ctrl,
380 sdrc_actim_ctrla, 382 sdrc_actim_ctrla,
381 sdrc_actim_ctrlb, m2, 383 sdrc_actim_ctrlb, m2,
382 unlock_dll); 384 unlock_dll, f, sdrc_mr, inc);
383} 385}
384 386
385/* REVISIT: Should this be same as omap34xx_sram_init() after off-idle? */ 387/* REVISIT: Should this be same as omap34xx_sram_init() after off-idle? */
diff --git a/arch/arm/plat-s3c/Makefile b/arch/arm/plat-s3c/Makefile
index 610651455a7..74bb7cb5da4 100644
--- a/arch/arm/plat-s3c/Makefile
+++ b/arch/arm/plat-s3c/Makefile
@@ -34,6 +34,7 @@ obj-$(CONFIG_S3C_DEV_HSMMC) += dev-hsmmc.o
34obj-$(CONFIG_S3C_DEV_HSMMC1) += dev-hsmmc1.o 34obj-$(CONFIG_S3C_DEV_HSMMC1) += dev-hsmmc1.o
35obj-y += dev-i2c0.o 35obj-y += dev-i2c0.o
36obj-$(CONFIG_S3C_DEV_I2C1) += dev-i2c1.o 36obj-$(CONFIG_S3C_DEV_I2C1) += dev-i2c1.o
37obj-$(CONFIG_SND_S3C24XX_SOC) += dev-audio.o
37obj-$(CONFIG_S3C_DEV_FB) += dev-fb.o 38obj-$(CONFIG_S3C_DEV_FB) += dev-fb.o
38obj-$(CONFIG_S3C_DEV_USB_HOST) += dev-usb.o 39obj-$(CONFIG_S3C_DEV_USB_HOST) += dev-usb.o
39obj-$(CONFIG_S3C_DEV_USB_HSOTG) += dev-usb-hsotg.o 40obj-$(CONFIG_S3C_DEV_USB_HSOTG) += dev-usb-hsotg.o
diff --git a/arch/arm/plat-s3c/dev-audio.c b/arch/arm/plat-s3c/dev-audio.c
new file mode 100644
index 00000000000..1322beb40dd
--- /dev/null
+++ b/arch/arm/plat-s3c/dev-audio.c
@@ -0,0 +1,68 @@
1/* linux/arch/arm/plat-s3c/dev-audio.c
2 *
3 * Copyright 2009 Wolfson Microelectronics
4 * Mark Brown <broonie@opensource.wolfsonmicro.com>
5 *
6
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <linux/kernel.h>
13#include <linux/string.h>
14#include <linux/platform_device.h>
15
16#include <mach/irqs.h>
17#include <mach/map.h>
18
19#include <plat/devs.h>
20
21
22static struct resource s3c64xx_iis0_resource[] = {
23 [0] = {
24 .start = S3C64XX_PA_IIS0,
25 .end = S3C64XX_PA_IIS0 + 0x100 - 1,
26 .flags = IORESOURCE_MEM,
27 },
28};
29
30struct platform_device s3c64xx_device_iis0 = {
31 .name = "s3c64xx-iis",
32 .id = 0,
33 .num_resources = ARRAY_SIZE(s3c64xx_iis0_resource),
34 .resource = s3c64xx_iis0_resource,
35};
36EXPORT_SYMBOL(s3c64xx_device_iis0);
37
38static struct resource s3c64xx_iis1_resource[] = {
39 [0] = {
40 .start = S3C64XX_PA_IIS1,
41 .end = S3C64XX_PA_IIS1 + 0x100 - 1,
42 .flags = IORESOURCE_MEM,
43 },
44};
45
46struct platform_device s3c64xx_device_iis1 = {
47 .name = "s3c64xx-iis",
48 .id = 1,
49 .num_resources = ARRAY_SIZE(s3c64xx_iis1_resource),
50 .resource = s3c64xx_iis1_resource,
51};
52EXPORT_SYMBOL(s3c64xx_device_iis1);
53
54static struct resource s3c64xx_iisv4_resource[] = {
55 [0] = {
56 .start = S3C64XX_PA_IISV4,
57 .end = S3C64XX_PA_IISV4 + 0x100 - 1,
58 .flags = IORESOURCE_MEM,
59 },
60};
61
62struct platform_device s3c64xx_device_iisv4 = {
63 .name = "s3c64xx-iis-v4",
64 .id = -1,
65 .num_resources = ARRAY_SIZE(s3c64xx_iisv4_resource),
66 .resource = s3c64xx_iisv4_resource,
67};
68EXPORT_SYMBOL(s3c64xx_device_iisv4);
diff --git a/arch/arm/plat-s3c/gpio-config.c b/arch/arm/plat-s3c/gpio-config.c
index 08044dec973..456969b6fa0 100644
--- a/arch/arm/plat-s3c/gpio-config.c
+++ b/arch/arm/plat-s3c/gpio-config.c
@@ -119,7 +119,7 @@ int s3c_gpio_setcfg_s3c64xx_4bit(struct s3c_gpio_chip *chip,
119 unsigned int shift = (off & 7) * 4; 119 unsigned int shift = (off & 7) * 4;
120 u32 con; 120 u32 con;
121 121
122 if (off < 8 && chip->chip.ngpio >= 8) 122 if (off < 8 && chip->chip.ngpio > 8)
123 reg -= 4; 123 reg -= 4;
124 124
125 if (s3c_gpio_is_cfg_special(cfg)) { 125 if (s3c_gpio_is_cfg_special(cfg)) {
diff --git a/arch/arm/plat-s3c/include/plat/devs.h b/arch/arm/plat-s3c/include/plat/devs.h
index a0b6768fddc..b5b9c4d46e9 100644
--- a/arch/arm/plat-s3c/include/plat/devs.h
+++ b/arch/arm/plat-s3c/include/plat/devs.h
@@ -24,13 +24,16 @@ extern struct platform_device *s3c24xx_uart_src[];
24 24
25extern struct platform_device s3c_device_timer[]; 25extern struct platform_device s3c_device_timer[];
26 26
27extern struct platform_device s3c64xx_device_iis0;
28extern struct platform_device s3c64xx_device_iis1;
29extern struct platform_device s3c64xx_device_iisv4;
30
27extern struct platform_device s3c_device_fb; 31extern struct platform_device s3c_device_fb;
28extern struct platform_device s3c_device_usb; 32extern struct platform_device s3c_device_usb;
29extern struct platform_device s3c_device_lcd; 33extern struct platform_device s3c_device_lcd;
30extern struct platform_device s3c_device_wdt; 34extern struct platform_device s3c_device_wdt;
31extern struct platform_device s3c_device_i2c0; 35extern struct platform_device s3c_device_i2c0;
32extern struct platform_device s3c_device_i2c1; 36extern struct platform_device s3c_device_i2c1;
33extern struct platform_device s3c_device_iis;
34extern struct platform_device s3c_device_rtc; 37extern struct platform_device s3c_device_rtc;
35extern struct platform_device s3c_device_adc; 38extern struct platform_device s3c_device_adc;
36extern struct platform_device s3c_device_sdi; 39extern struct platform_device s3c_device_sdi;
diff --git a/arch/arm/plat-s3c/include/plat/nand.h b/arch/arm/plat-s3c/include/plat/nand.h
index f4dcd14af05..18f958801e6 100644
--- a/arch/arm/plat-s3c/include/plat/nand.h
+++ b/arch/arm/plat-s3c/include/plat/nand.h
@@ -10,19 +10,26 @@
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11*/ 11*/
12 12
13/* struct s3c2410_nand_set 13/**
14 * struct s3c2410_nand_set - define a set of one or more nand chips
15 * @disable_ecc: Entirely disable ECC - Dangerous
16 * @flash_bbt: Openmoko u-boot can create a Bad Block Table
17 * Setting this flag will allow the kernel to
18 * look for it at boot time and also skip the NAND
19 * scan.
20 * @nr_chips: Number of chips in this set
21 * @nr_partitions: Number of partitions pointed to by @partitions
22 * @name: Name of set (optional)
23 * @nr_map: Map for low-layer logical to physical chip numbers (option)
24 * @partitions: The mtd partition list
14 * 25 *
15 * define an set of one or more nand chips registered with an unique mtd 26 * define a set of one or more nand chips registered with an unique mtd. Also
16 * 27 * allows to pass flag to the underlying NAND layer. 'disable_ecc' will trigger
17 * nr_chips = number of chips in this set 28 * a warning at boot time.
18 * nr_partitions = number of partitions pointed to be partitoons (or zero) 29 */
19 * name = name of set (optional)
20 * nr_map = map for low-layer logical to physical chip numbers (option)
21 * partitions = mtd partition list
22*/
23
24struct s3c2410_nand_set { 30struct s3c2410_nand_set {
25 unsigned int disable_ecc : 1; 31 unsigned int disable_ecc:1;
32 unsigned int flash_bbt:1;
26 33
27 int nr_chips; 34 int nr_chips;
28 int nr_partitions; 35 int nr_partitions;
@@ -39,7 +46,7 @@ struct s3c2410_platform_nand {
39 int twrph0; /* active time for nWE/nOE */ 46 int twrph0; /* active time for nWE/nOE */
40 int twrph1; /* time for release CLE/ALE from nWE/nOE inactive */ 47 int twrph1; /* time for release CLE/ALE from nWE/nOE inactive */
41 48
42 unsigned int ignore_unset_ecc : 1; 49 unsigned int ignore_unset_ecc:1;
43 50
44 int nr_sets; 51 int nr_sets;
45 struct s3c2410_nand_set *sets; 52 struct s3c2410_nand_set *sets;
diff --git a/arch/arm/plat-s3c64xx/Makefile b/arch/arm/plat-s3c64xx/Makefile
index 2ed5df34f9e..3c8882cd626 100644
--- a/arch/arm/plat-s3c64xx/Makefile
+++ b/arch/arm/plat-s3c64xx/Makefile
@@ -23,6 +23,7 @@ obj-y += gpiolib.o
23 23
24obj-$(CONFIG_CPU_S3C6400_INIT) += s3c6400-init.o 24obj-$(CONFIG_CPU_S3C6400_INIT) += s3c6400-init.o
25obj-$(CONFIG_CPU_S3C6400_CLOCK) += s3c6400-clock.o 25obj-$(CONFIG_CPU_S3C6400_CLOCK) += s3c6400-clock.o
26obj-$(CONFIG_CPU_FREQ_S3C64XX) += cpufreq.o
26 27
27# PM support 28# PM support
28 29
diff --git a/arch/arm/plat-s3c64xx/clock.c b/arch/arm/plat-s3c64xx/clock.c
index 0bc2fa1dfc4..7a36e899360 100644
--- a/arch/arm/plat-s3c64xx/clock.c
+++ b/arch/arm/plat-s3c64xx/clock.c
@@ -191,7 +191,7 @@ static struct clk init_clocks[] = {
191 .id = -1, 191 .id = -1,
192 .parent = &clk_h, 192 .parent = &clk_h,
193 .enable = s3c64xx_hclk_ctrl, 193 .enable = s3c64xx_hclk_ctrl,
194 .ctrlbit = S3C_CLKCON_SCLK_UHOST, 194 .ctrlbit = S3C_CLKCON_HCLK_UHOST,
195 }, { 195 }, {
196 .name = "hsmmc", 196 .name = "hsmmc",
197 .id = 0, 197 .id = 0,
diff --git a/arch/arm/plat-s3c64xx/cpufreq.c b/arch/arm/plat-s3c64xx/cpufreq.c
new file mode 100644
index 00000000000..e6e0843215d
--- /dev/null
+++ b/arch/arm/plat-s3c64xx/cpufreq.c
@@ -0,0 +1,262 @@
1/* linux/arch/arm/plat-s3c64xx/cpufreq.c
2 *
3 * Copyright 2009 Wolfson Microelectronics plc
4 *
5 * S3C64xx CPUfreq Support
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <linux/kernel.h>
13#include <linux/types.h>
14#include <linux/init.h>
15#include <linux/cpufreq.h>
16#include <linux/clk.h>
17#include <linux/err.h>
18#include <linux/regulator/consumer.h>
19
20static struct clk *armclk;
21static struct regulator *vddarm;
22
23#ifdef CONFIG_CPU_S3C6410
24struct s3c64xx_dvfs {
25 unsigned int vddarm_min;
26 unsigned int vddarm_max;
27};
28
29static struct s3c64xx_dvfs s3c64xx_dvfs_table[] = {
30 [0] = { 1000000, 1000000 },
31 [1] = { 1000000, 1050000 },
32 [2] = { 1050000, 1100000 },
33 [3] = { 1050000, 1150000 },
34 [4] = { 1250000, 1350000 },
35};
36
37static struct cpufreq_frequency_table s3c64xx_freq_table[] = {
38 { 0, 66000 },
39 { 0, 133000 },
40 { 1, 222000 },
41 { 1, 266000 },
42 { 2, 333000 },
43 { 2, 400000 },
44 { 3, 532000 },
45 { 3, 533000 },
46 { 4, 667000 },
47 { 0, CPUFREQ_TABLE_END },
48};
49#endif
50
51static int s3c64xx_cpufreq_verify_speed(struct cpufreq_policy *policy)
52{
53 if (policy->cpu != 0)
54 return -EINVAL;
55
56 return cpufreq_frequency_table_verify(policy, s3c64xx_freq_table);
57}
58
59static unsigned int s3c64xx_cpufreq_get_speed(unsigned int cpu)
60{
61 if (cpu != 0)
62 return 0;
63
64 return clk_get_rate(armclk) / 1000;
65}
66
67static int s3c64xx_cpufreq_set_target(struct cpufreq_policy *policy,
68 unsigned int target_freq,
69 unsigned int relation)
70{
71 int ret;
72 unsigned int i;
73 struct cpufreq_freqs freqs;
74 struct s3c64xx_dvfs *dvfs;
75
76 ret = cpufreq_frequency_table_target(policy, s3c64xx_freq_table,
77 target_freq, relation, &i);
78 if (ret != 0)
79 return ret;
80
81 freqs.cpu = 0;
82 freqs.old = clk_get_rate(armclk) / 1000;
83 freqs.new = s3c64xx_freq_table[i].frequency;
84 freqs.flags = 0;
85 dvfs = &s3c64xx_dvfs_table[s3c64xx_freq_table[i].index];
86
87 if (freqs.old == freqs.new)
88 return 0;
89
90 pr_debug("cpufreq: Transition %d-%dkHz\n", freqs.old, freqs.new);
91
92 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
93
94#ifdef CONFIG_REGULATOR
95 if (vddarm && freqs.new > freqs.old) {
96 ret = regulator_set_voltage(vddarm,
97 dvfs->vddarm_min,
98 dvfs->vddarm_max);
99 if (ret != 0) {
100 pr_err("cpufreq: Failed to set VDDARM for %dkHz: %d\n",
101 freqs.new, ret);
102 goto err;
103 }
104 }
105#endif
106
107 ret = clk_set_rate(armclk, freqs.new * 1000);
108 if (ret < 0) {
109 pr_err("cpufreq: Failed to set rate %dkHz: %d\n",
110 freqs.new, ret);
111 goto err;
112 }
113
114#ifdef CONFIG_REGULATOR
115 if (vddarm && freqs.new < freqs.old) {
116 ret = regulator_set_voltage(vddarm,
117 dvfs->vddarm_min,
118 dvfs->vddarm_max);
119 if (ret != 0) {
120 pr_err("cpufreq: Failed to set VDDARM for %dkHz: %d\n",
121 freqs.new, ret);
122 goto err_clk;
123 }
124 }
125#endif
126
127 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
128
129 pr_debug("cpufreq: Set actual frequency %lukHz\n",
130 clk_get_rate(armclk) / 1000);
131
132 return 0;
133
134err_clk:
135 if (clk_set_rate(armclk, freqs.old * 1000) < 0)
136 pr_err("Failed to restore original clock rate\n");
137err:
138 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
139
140 return ret;
141}
142
143#ifdef CONFIG_REGULATOR
144static void __init s3c64xx_cpufreq_constrain_voltages(void)
145{
146 int count, v, i, found;
147 struct cpufreq_frequency_table *freq;
148 struct s3c64xx_dvfs *dvfs;
149
150 count = regulator_count_voltages(vddarm);
151 if (count < 0) {
152 pr_err("cpufreq: Unable to check supported voltages\n");
153 return;
154 }
155
156 freq = s3c64xx_freq_table;
157 while (freq->frequency != CPUFREQ_TABLE_END) {
158 if (freq->frequency == CPUFREQ_ENTRY_INVALID)
159 continue;
160
161 dvfs = &s3c64xx_dvfs_table[freq->index];
162 found = 0;
163
164 for (i = 0; i < count; i++) {
165 v = regulator_list_voltage(vddarm, i);
166 if (v >= dvfs->vddarm_min && v <= dvfs->vddarm_max)
167 found = 1;
168 }
169
170 if (!found) {
171 pr_debug("cpufreq: %dkHz unsupported by regulator\n",
172 freq->frequency);
173 freq->frequency = CPUFREQ_ENTRY_INVALID;
174 }
175
176 freq++;
177 }
178}
179#endif
180
181static int __init s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
182{
183 int ret;
184 struct cpufreq_frequency_table *freq;
185
186 if (policy->cpu != 0)
187 return -EINVAL;
188
189 if (s3c64xx_freq_table == NULL) {
190 pr_err("cpufreq: No frequency information for this CPU\n");
191 return -ENODEV;
192 }
193
194 armclk = clk_get(NULL, "armclk");
195 if (IS_ERR(armclk)) {
196 pr_err("cpufreq: Unable to obtain ARMCLK: %ld\n",
197 PTR_ERR(armclk));
198 return PTR_ERR(armclk);
199 }
200
201#ifdef CONFIG_REGULATOR
202 vddarm = regulator_get(NULL, "vddarm");
203 if (IS_ERR(vddarm)) {
204 ret = PTR_ERR(vddarm);
205 pr_err("cpufreq: Failed to obtain VDDARM: %d\n", ret);
206 pr_err("cpufreq: Only frequency scaling available\n");
207 vddarm = NULL;
208 } else {
209 s3c64xx_cpufreq_constrain_voltages();
210 }
211#endif
212
213 freq = s3c64xx_freq_table;
214 while (freq->frequency != CPUFREQ_TABLE_END) {
215 unsigned long r;
216
217 /* Check for frequencies we can generate */
218 r = clk_round_rate(armclk, freq->frequency * 1000);
219 r /= 1000;
220 if (r != freq->frequency)
221 freq->frequency = CPUFREQ_ENTRY_INVALID;
222
223 /* If we have no regulator then assume startup
224 * frequency is the maximum we can support. */
225 if (!vddarm && freq->frequency > s3c64xx_cpufreq_get_speed(0))
226 freq->frequency = CPUFREQ_ENTRY_INVALID;
227
228 freq++;
229 }
230
231 policy->cur = clk_get_rate(armclk) / 1000;
232
233 /* Pick a conservative guess in ns: we'll need ~1 I2C/SPI
234 * write plus clock reprogramming. */
235 policy->cpuinfo.transition_latency = 2 * 1000 * 1000;
236
237 ret = cpufreq_frequency_table_cpuinfo(policy, s3c64xx_freq_table);
238 if (ret != 0) {
239 pr_err("cpufreq: Failed to configure frequency table: %d\n",
240 ret);
241 regulator_put(vddarm);
242 clk_put(armclk);
243 }
244
245 return ret;
246}
247
248static struct cpufreq_driver s3c64xx_cpufreq_driver = {
249 .owner = THIS_MODULE,
250 .flags = 0,
251 .verify = s3c64xx_cpufreq_verify_speed,
252 .target = s3c64xx_cpufreq_set_target,
253 .get = s3c64xx_cpufreq_get_speed,
254 .init = s3c64xx_cpufreq_driver_init,
255 .name = "s3c",
256};
257
258static int __init s3c64xx_cpufreq_init(void)
259{
260 return cpufreq_register_driver(&s3c64xx_cpufreq_driver);
261}
262module_init(s3c64xx_cpufreq_init);
diff --git a/arch/arm/plat-s3c64xx/gpiolib.c b/arch/arm/plat-s3c64xx/gpiolib.c
index da7b60ee5e6..92859290ea3 100644
--- a/arch/arm/plat-s3c64xx/gpiolib.c
+++ b/arch/arm/plat-s3c64xx/gpiolib.c
@@ -321,6 +321,11 @@ static struct s3c_gpio_cfg gpio_2bit_cfg_eint11 = {
321 .get_pull = s3c_gpio_getpull_updown, 321 .get_pull = s3c_gpio_getpull_updown,
322}; 322};
323 323
324int s3c64xx_gpio2int_gpn(struct gpio_chip *chip, unsigned pin)
325{
326 return IRQ_EINT(0) + pin;
327}
328
324static struct s3c_gpio_chip gpio_2bit[] = { 329static struct s3c_gpio_chip gpio_2bit[] = {
325 { 330 {
326 .base = S3C64XX_GPF_BASE, 331 .base = S3C64XX_GPF_BASE,
@@ -353,6 +358,7 @@ static struct s3c_gpio_chip gpio_2bit[] = {
353 .base = S3C64XX_GPN(0), 358 .base = S3C64XX_GPN(0),
354 .ngpio = S3C64XX_GPIO_N_NR, 359 .ngpio = S3C64XX_GPIO_N_NR,
355 .label = "GPN", 360 .label = "GPN",
361 .to_irq = s3c64xx_gpio2int_gpn,
356 }, 362 },
357 }, { 363 }, {
358 .base = S3C64XX_GPO_BASE, 364 .base = S3C64XX_GPO_BASE,
diff --git a/arch/arm/plat-s3c64xx/include/plat/regs-clock.h b/arch/arm/plat-s3c64xx/include/plat/regs-clock.h
index 52836d41e33..a8777a755df 100644
--- a/arch/arm/plat-s3c64xx/include/plat/regs-clock.h
+++ b/arch/arm/plat-s3c64xx/include/plat/regs-clock.h
@@ -88,11 +88,11 @@
88#define S3C6400_CLKDIV2_SPI0_SHIFT (0) 88#define S3C6400_CLKDIV2_SPI0_SHIFT (0)
89 89
90/* HCLK GATE Registers */ 90/* HCLK GATE Registers */
91#define S3C_CLKCON_HCLK_BUS (1<<30) 91#define S3C_CLKCON_HCLK_3DSE (1<<31)
92#define S3C_CLKCON_HCLK_SECUR (1<<29) 92#define S3C_CLKCON_HCLK_UHOST (1<<29)
93#define S3C_CLKCON_HCLK_SDMA1 (1<<28) 93#define S3C_CLKCON_HCLK_SECUR (1<<28)
94#define S3C_CLKCON_HCLK_SDMA2 (1<<27) 94#define S3C_CLKCON_HCLK_SDMA1 (1<<27)
95#define S3C_CLKCON_HCLK_UHOST (1<<26) 95#define S3C_CLKCON_HCLK_SDMA0 (1<<26)
96#define S3C_CLKCON_HCLK_IROM (1<<25) 96#define S3C_CLKCON_HCLK_IROM (1<<25)
97#define S3C_CLKCON_HCLK_DDR1 (1<<24) 97#define S3C_CLKCON_HCLK_DDR1 (1<<24)
98#define S3C_CLKCON_HCLK_DDR0 (1<<23) 98#define S3C_CLKCON_HCLK_DDR0 (1<<23)
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index fec64678a63..33026eff2aa 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -12,7 +12,7 @@
12# 12#
13# http://www.arm.linux.org.uk/developer/machines/?action=new 13# http://www.arm.linux.org.uk/developer/machines/?action=new
14# 14#
15# Last update: Fri May 29 10:14:20 2009 15# Last update: Sat Jun 20 22:28:39 2009
16# 16#
17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
18# 18#
@@ -1455,7 +1455,7 @@ gba MACH_GBA GBA 1457
1455h6044 MACH_H6044 H6044 1458 1455h6044 MACH_H6044 H6044 1458
1456app MACH_APP APP 1459 1456app MACH_APP APP 1459
1457tct_hammer MACH_TCT_HAMMER TCT_HAMMER 1460 1457tct_hammer MACH_TCT_HAMMER TCT_HAMMER 1460
1458herald MACH_HERMES HERMES 1461 1458herald MACH_HERALD HERALD 1461
1459artemis MACH_ARTEMIS ARTEMIS 1462 1459artemis MACH_ARTEMIS ARTEMIS 1462
1460htctitan MACH_HTCTITAN HTCTITAN 1463 1460htctitan MACH_HTCTITAN HTCTITAN 1463
1461qranium MACH_QRANIUM QRANIUM 1464 1461qranium MACH_QRANIUM QRANIUM 1464
@@ -2245,3 +2245,38 @@ str9 MACH_STR9 STR9 2257
2245omap3_wl_ff MACH_OMAP3_WL_FF OMAP3_WL_FF 2258 2245omap3_wl_ff MACH_OMAP3_WL_FF OMAP3_WL_FF 2258
2246simcom MACH_SIMCOM SIMCOM 2259 2246simcom MACH_SIMCOM SIMCOM 2259
2247mcwebio MACH_MCWEBIO MCWEBIO 2260 2247mcwebio MACH_MCWEBIO MCWEBIO 2260
2248omap3_phrazer MACH_OMAP3_PHRAZER OMAP3_PHRAZER 2261
2249darwin MACH_DARWIN DARWIN 2262
2250oratiscomu MACH_ORATISCOMU ORATISCOMU 2263
2251rtsbc20 MACH_RTSBC20 RTSBC20 2264
2252i780 MACH_I780 I780 2265
2253gemini324 MACH_GEMINI324 GEMINI324 2266
2254oratislan MACH_ORATISLAN ORATISLAN 2267
2255oratisalog MACH_ORATISALOG ORATISALOG 2268
2256oratismadi MACH_ORATISMADI ORATISMADI 2269
2257oratisot16 MACH_ORATISOT16 ORATISOT16 2270
2258oratisdesk MACH_ORATISDESK ORATISDESK 2271
2259v2p_ca9 MACH_V2P_CA9 V2P_CA9 2272
2260sintexo MACH_SINTEXO SINTEXO 2273
2261cm3389 MACH_CM3389 CM3389 2274
2262omap3_cio MACH_OMAP3_CIO OMAP3_CIO 2275
2263sgh_i900 MACH_SGH_I900 SGH_I900 2276
2264bst100 MACH_BST100 BST100 2277
2265passion MACH_PASSION PASSION 2278
2266indesign_at91sam MACH_INDESIGN_AT91SAM INDESIGN_AT91SAM 2279
2267c4_badger MACH_C4_BADGER C4_BADGER 2280
2268c4_viper MACH_C4_VIPER C4_VIPER 2281
2269d2net MACH_D2NET D2NET 2282
2270bigdisk MACH_BIGDISK BIGDISK 2283
2271notalvision MACH_NOTALVISION NOTALVISION 2284
2272omap3_kboc MACH_OMAP3_KBOC OMAP3_KBOC 2285
2273cyclone MACH_CYCLONE CYCLONE 2286
2274ninja MACH_NINJA NINJA 2287
2275at91sam9g20ek_2mmc MACH_AT91SAM9G20EK_2MMC AT91SAM9G20EK_2MMC 2288
2276bcmring MACH_BCMRING BCMRING 2289
2277resol_dl2 MACH_RESOL_DL2 RESOL_DL2 2290
2278ifosw MACH_IFOSW IFOSW 2291
2279htcrhodium MACH_HTCRHODIUM HTCRHODIUM 2292
2280htctopaz MACH_HTCTOPAZ HTCTOPAZ 2293
2281matrix504 MACH_MATRIX504 MATRIX504 2294
2282mrfsa MACH_MRFSA MRFSA 2295
diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c
index 1bbe1da5486..93c0342530a 100644
--- a/arch/avr32/kernel/process.c
+++ b/arch/avr32/kernel/process.c
@@ -394,8 +394,6 @@ asmlinkage int sys_execve(char __user *ufilename, char __user *__user *uargv,
394 goto out; 394 goto out;
395 395
396 error = do_execve(filename, uargv, uenvp, regs); 396 error = do_execve(filename, uargv, uenvp, regs);
397 if (error == 0)
398 current->ptrace &= ~PT_DTRACE;
399 putname(filename); 397 putname(filename);
400 398
401out: 399out:
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
index 62d4abbaa65..b61d86d3deb 100644
--- a/arch/avr32/mm/fault.c
+++ b/arch/avr32/mm/fault.c
@@ -133,7 +133,7 @@ good_area:
133 * fault. 133 * fault.
134 */ 134 */
135survive: 135survive:
136 fault = handle_mm_fault(mm, vma, address, writeaccess); 136 fault = handle_mm_fault(mm, vma, address, writeaccess ? FAULT_FLAG_WRITE : 0);
137 if (unlikely(fault & VM_FAULT_ERROR)) { 137 if (unlikely(fault & VM_FAULT_ERROR)) {
138 if (fault & VM_FAULT_OOM) 138 if (fault & VM_FAULT_OOM)
139 goto out_of_memory; 139 goto out_of_memory;
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 8ea0d942cde..7faa2f554ab 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -274,7 +274,7 @@ config BF_REV_0_0
274 274
275config BF_REV_0_1 275config BF_REV_0_1
276 bool "0.1" 276 bool "0.1"
277 depends on (BF52x || (BF54x && !BF54xM)) 277 depends on (BF51x || BF52x || (BF54x && !BF54xM))
278 278
279config BF_REV_0_2 279config BF_REV_0_2
280 bool "0.2" 280 bool "0.2"
@@ -358,7 +358,7 @@ config MEM_MT48LC8M32B2B5_7
358 358
359config MEM_MT48LC32M16A2TG_75 359config MEM_MT48LC32M16A2TG_75
360 bool 360 bool
361 depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP || BFIN526_EZBRD) 361 depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP)
362 default y 362 default y
363 363
364config MEM_MT48LC32M8A2_75 364config MEM_MT48LC32M8A2_75
@@ -366,6 +366,11 @@ config MEM_MT48LC32M8A2_75
366 depends on (BFIN518F_EZBRD) 366 depends on (BFIN518F_EZBRD)
367 default y 367 default y
368 368
369config MEM_MT48H32M16LFCJ_75
370 bool
371 depends on (BFIN526_EZBRD)
372 default y
373
369source "arch/blackfin/mach-bf518/Kconfig" 374source "arch/blackfin/mach-bf518/Kconfig"
370source "arch/blackfin/mach-bf527/Kconfig" 375source "arch/blackfin/mach-bf527/Kconfig"
371source "arch/blackfin/mach-bf533/Kconfig" 376source "arch/blackfin/mach-bf533/Kconfig"
@@ -623,7 +628,6 @@ choice
623config TICKSOURCE_GPTMR0 628config TICKSOURCE_GPTMR0
624 bool "Gptimer0 (SCLK domain)" 629 bool "Gptimer0 (SCLK domain)"
625 select BFIN_GPTIMERS 630 select BFIN_GPTIMERS
626 depends on !IPIPE
627 631
628config TICKSOURCE_CORETMR 632config TICKSOURCE_CORETMR
629 bool "Core timer (CCLK domain)" 633 bool "Core timer (CCLK domain)"
@@ -644,6 +648,7 @@ config CYCLES_CLOCKSOURCE
644 648
645config GPTMR0_CLOCKSOURCE 649config GPTMR0_CLOCKSOURCE
646 bool "Use GPTimer0 as a clocksource (higher rating)" 650 bool "Use GPTimer0 as a clocksource (higher rating)"
651 select BFIN_GPTIMERS
647 depends on GENERIC_CLOCKEVENTS 652 depends on GENERIC_CLOCKEVENTS
648 depends on !TICKSOURCE_GPTMR0 653 depends on !TICKSOURCE_GPTMR0
649 654
@@ -908,23 +913,41 @@ endchoice
908 913
909 914
910comment "Cache Support" 915comment "Cache Support"
916
911config BFIN_ICACHE 917config BFIN_ICACHE
912 bool "Enable ICACHE" 918 bool "Enable ICACHE"
919 default y
920config BFIN_ICACHE_LOCK
921 bool "Enable Instruction Cache Locking"
922 depends on BFIN_ICACHE
923 default n
924config BFIN_EXTMEM_ICACHEABLE
925 bool "Enable ICACHE for external memory"
926 depends on BFIN_ICACHE
927 default y
928config BFIN_L2_ICACHEABLE
929 bool "Enable ICACHE for L2 SRAM"
930 depends on BFIN_ICACHE
931 depends on BF54x || BF561
932 default n
933
913config BFIN_DCACHE 934config BFIN_DCACHE
914 bool "Enable DCACHE" 935 bool "Enable DCACHE"
936 default y
915config BFIN_DCACHE_BANKA 937config BFIN_DCACHE_BANKA
916 bool "Enable only 16k BankA DCACHE - BankB is SRAM" 938 bool "Enable only 16k BankA DCACHE - BankB is SRAM"
917 depends on BFIN_DCACHE && !BF531 939 depends on BFIN_DCACHE && !BF531
918 default n 940 default n
919config BFIN_ICACHE_LOCK 941config BFIN_EXTMEM_DCACHEABLE
920 bool "Enable Instruction Cache Locking" 942 bool "Enable DCACHE for external memory"
921
922choice
923 prompt "External memory cache policy"
924 depends on BFIN_DCACHE 943 depends on BFIN_DCACHE
925 default BFIN_WB if !SMP 944 default y
926 default BFIN_WT if SMP 945choice
927config BFIN_WB 946 prompt "External memory DCACHE policy"
947 depends on BFIN_EXTMEM_DCACHEABLE
948 default BFIN_EXTMEM_WRITEBACK if !SMP
949 default BFIN_EXTMEM_WRITETHROUGH if SMP
950config BFIN_EXTMEM_WRITEBACK
928 bool "Write back" 951 bool "Write back"
929 depends on !SMP 952 depends on !SMP
930 help 953 help
@@ -942,7 +965,7 @@ config BFIN_WB
942 If you are unsure of the options and you want to be safe, 965 If you are unsure of the options and you want to be safe,
943 then go with Write Through. 966 then go with Write Through.
944 967
945config BFIN_WT 968config BFIN_EXTMEM_WRITETHROUGH
946 bool "Write through" 969 bool "Write through"
947 help 970 help
948 Write Back Policy: 971 Write Back Policy:
@@ -961,23 +984,26 @@ config BFIN_WT
961 984
962endchoice 985endchoice
963 986
987config BFIN_L2_DCACHEABLE
988 bool "Enable DCACHE for L2 SRAM"
989 depends on BFIN_DCACHE
990 depends on BF54x || BF561
991 default n
964choice 992choice
965 prompt "L2 SRAM cache policy" 993 prompt "L2 SRAM DCACHE policy"
966 depends on (BF54x || BF561) 994 depends on BFIN_L2_DCACHEABLE
967 default BFIN_L2_WT 995 default BFIN_L2_WRITEBACK
968config BFIN_L2_WB 996config BFIN_L2_WRITEBACK
969 bool "Write back" 997 bool "Write back"
970 depends on !SMP 998 depends on !SMP
971 999
972config BFIN_L2_WT 1000config BFIN_L2_WRITETHROUGH
973 bool "Write through" 1001 bool "Write through"
974 depends on !SMP 1002 depends on !SMP
975
976config BFIN_L2_NOT_CACHED
977 bool "Not cached"
978
979endchoice 1003endchoice
980 1004
1005
1006comment "Memory Protection Unit"
981config MPU 1007config MPU
982 bool "Enable the memory protection unit (EXPERIMENTAL)" 1008 bool "Enable the memory protection unit (EXPERIMENTAL)"
983 default n 1009 default n
diff --git a/arch/blackfin/boot/Makefile b/arch/blackfin/boot/Makefile
index 3ab6f23561d..fd9ccc5fea1 100644
--- a/arch/blackfin/boot/Makefile
+++ b/arch/blackfin/boot/Makefile
@@ -13,7 +13,7 @@ extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma
13 13
14quiet_cmd_uimage = UIMAGE $@ 14quiet_cmd_uimage = UIMAGE $@
15 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(ARCH) -O linux -T kernel \ 15 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(ARCH) -O linux -T kernel \
16 -C $(2) -n 'Linux-$(KERNELRELEASE)' -a $(CONFIG_BOOT_LOAD) \ 16 -C $(2) -n '$(MACHINE)-$(KERNELRELEASE)' -a $(CONFIG_BOOT_LOAD) \
17 -e $(shell $(NM) vmlinux | awk '$$NF == "__start" {print $$1}') \ 17 -e $(shell $(NM) vmlinux | awk '$$NF == "__start" {print $$1}') \
18 -d $< $@ 18 -d $< $@
19 19
diff --git a/arch/blackfin/configs/BF518F-EZBRD_defconfig b/arch/blackfin/configs/BF518F-EZBRD_defconfig
index baec1337f28..dcfb4889559 100644
--- a/arch/blackfin/configs/BF518F-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF518F-EZBRD_defconfig
@@ -326,11 +326,17 @@ CONFIG_DMA_UNCACHED_1M=y
326# Cache Support 326# Cache Support
327# 327#
328CONFIG_BFIN_ICACHE=y 328CONFIG_BFIN_ICACHE=y
329# CONFIG_BFIN_ICACHE_LOCK is not set
329CONFIG_BFIN_DCACHE=y 330CONFIG_BFIN_DCACHE=y
330# CONFIG_BFIN_DCACHE_BANKA is not set 331# CONFIG_BFIN_DCACHE_BANKA is not set
331# CONFIG_BFIN_ICACHE_LOCK is not set 332CONFIG_BFIN_EXTMEM_ICACHEABLE=y
332CONFIG_BFIN_WB=y 333CONFIG_BFIN_EXTMEM_DCACHEABLE=y
333# CONFIG_BFIN_WT is not set 334CONFIG_BFIN_EXTMEM_WRITEBACK=y
335# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
336
337#
338# Memory Protection Unit
339#
334# CONFIG_MPU is not set 340# CONFIG_MPU is not set
335 341
336# 342#
@@ -413,11 +419,11 @@ CONFIG_IP_PNP=y
413# CONFIG_INET_IPCOMP is not set 419# CONFIG_INET_IPCOMP is not set
414# CONFIG_INET_XFRM_TUNNEL is not set 420# CONFIG_INET_XFRM_TUNNEL is not set
415# CONFIG_INET_TUNNEL is not set 421# CONFIG_INET_TUNNEL is not set
416CONFIG_INET_XFRM_MODE_TRANSPORT=y 422# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
417CONFIG_INET_XFRM_MODE_TUNNEL=y 423# CONFIG_INET_XFRM_MODE_TUNNEL is not set
418CONFIG_INET_XFRM_MODE_BEET=y 424# CONFIG_INET_XFRM_MODE_BEET is not set
419# CONFIG_INET_LRO is not set 425# CONFIG_INET_LRO is not set
420CONFIG_INET_DIAG=y 426# CONFIG_INET_DIAG is not set
421CONFIG_INET_TCP_DIAG=y 427CONFIG_INET_TCP_DIAG=y
422# CONFIG_TCP_CONG_ADVANCED is not set 428# CONFIG_TCP_CONG_ADVANCED is not set
423CONFIG_TCP_CONG_CUBIC=y 429CONFIG_TCP_CONG_CUBIC=y
@@ -916,7 +922,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
916# CONFIG_MMC_SDHCI is not set 922# CONFIG_MMC_SDHCI is not set
917CONFIG_SDH_BFIN=m 923CONFIG_SDH_BFIN=m
918CONFIG_SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND=y 924CONFIG_SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND=y
919CONFIG_SDH_BFIN_ENABLE_SDIO_IRQ=y 925# CONFIG_SDH_BFIN_ENABLE_SDIO_IRQ is not set
920# CONFIG_MMC_SPI is not set 926# CONFIG_MMC_SPI is not set
921# CONFIG_MEMSTICK is not set 927# CONFIG_MEMSTICK is not set
922# CONFIG_NEW_LEDS is not set 928# CONFIG_NEW_LEDS is not set
@@ -1147,7 +1153,7 @@ CONFIG_SCHED_DEBUG=y
1147# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1153# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1148# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1154# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1149# CONFIG_DEBUG_KOBJECT is not set 1155# CONFIG_DEBUG_KOBJECT is not set
1150# CONFIG_DEBUG_BUGVERBOSE is not set 1156CONFIG_DEBUG_BUGVERBOSE=y
1151CONFIG_DEBUG_INFO=y 1157CONFIG_DEBUG_INFO=y
1152# CONFIG_DEBUG_VM is not set 1158# CONFIG_DEBUG_VM is not set
1153# CONFIG_DEBUG_WRITECOUNT is not set 1159# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/BF526-EZBRD_defconfig b/arch/blackfin/configs/BF526-EZBRD_defconfig
index c06262e41f7..48a3a7a9099 100644
--- a/arch/blackfin/configs/BF526-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF526-EZBRD_defconfig
@@ -331,16 +331,18 @@ CONFIG_DMA_UNCACHED_1M=y
331# Cache Support 331# Cache Support
332# 332#
333CONFIG_BFIN_ICACHE=y 333CONFIG_BFIN_ICACHE=y
334# CONFIG_BFIN_ICACHE_LOCK is not set
334CONFIG_BFIN_DCACHE=y 335CONFIG_BFIN_DCACHE=y
335# CONFIG_BFIN_DCACHE_BANKA is not set 336# CONFIG_BFIN_DCACHE_BANKA is not set
336# CONFIG_BFIN_ICACHE_LOCK is not set 337CONFIG_BFIN_EXTMEM_ICACHEABLE=y
337CONFIG_BFIN_WB=y 338CONFIG_BFIN_EXTMEM_DCACHEABLE=y
338# CONFIG_BFIN_WT is not set 339CONFIG_BFIN_EXTMEM_WRITEBACK=y
339# CONFIG_MPU is not set 340# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
340 341
341# 342#
342# Asynchonous Memory Configuration 343# Memory Protection Unit
343# 344#
345# CONFIG_MPU is not set
344 346
345# 347#
346# EBIU_AMGCTL Global Control 348# EBIU_AMGCTL Global Control
@@ -418,11 +420,11 @@ CONFIG_IP_PNP=y
418# CONFIG_INET_IPCOMP is not set 420# CONFIG_INET_IPCOMP is not set
419# CONFIG_INET_XFRM_TUNNEL is not set 421# CONFIG_INET_XFRM_TUNNEL is not set
420# CONFIG_INET_TUNNEL is not set 422# CONFIG_INET_TUNNEL is not set
421CONFIG_INET_XFRM_MODE_TRANSPORT=y 423# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
422CONFIG_INET_XFRM_MODE_TUNNEL=y 424# CONFIG_INET_XFRM_MODE_TUNNEL is not set
423CONFIG_INET_XFRM_MODE_BEET=y 425# CONFIG_INET_XFRM_MODE_BEET is not set
424# CONFIG_INET_LRO is not set 426# CONFIG_INET_LRO is not set
425CONFIG_INET_DIAG=y 427# CONFIG_INET_DIAG is not set
426CONFIG_INET_TCP_DIAG=y 428CONFIG_INET_TCP_DIAG=y
427# CONFIG_TCP_CONG_ADVANCED is not set 429# CONFIG_TCP_CONG_ADVANCED is not set
428CONFIG_TCP_CONG_CUBIC=y 430CONFIG_TCP_CONG_CUBIC=y
@@ -1424,7 +1426,7 @@ CONFIG_SCHED_DEBUG=y
1424# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1426# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1425# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1427# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1426# CONFIG_DEBUG_KOBJECT is not set 1428# CONFIG_DEBUG_KOBJECT is not set
1427# CONFIG_DEBUG_BUGVERBOSE is not set 1429CONFIG_DEBUG_BUGVERBOSE=y
1428CONFIG_DEBUG_INFO=y 1430CONFIG_DEBUG_INFO=y
1429# CONFIG_DEBUG_VM is not set 1431# CONFIG_DEBUG_VM is not set
1430# CONFIG_DEBUG_WRITECOUNT is not set 1432# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index e9175c608aa..dd8352791da 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -331,11 +331,17 @@ CONFIG_DMA_UNCACHED_1M=y
331# Cache Support 331# Cache Support
332# 332#
333CONFIG_BFIN_ICACHE=y 333CONFIG_BFIN_ICACHE=y
334# CONFIG_BFIN_ICACHE_LOCK is not set
334CONFIG_BFIN_DCACHE=y 335CONFIG_BFIN_DCACHE=y
335# CONFIG_BFIN_DCACHE_BANKA is not set 336# CONFIG_BFIN_DCACHE_BANKA is not set
336# CONFIG_BFIN_ICACHE_LOCK is not set 337CONFIG_BFIN_EXTMEM_ICACHEABLE=y
337CONFIG_BFIN_WB=y 338CONFIG_BFIN_EXTMEM_DCACHEABLE=y
338# CONFIG_BFIN_WT is not set 339CONFIG_BFIN_EXTMEM_WRITEBACK=y
340# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
341
342#
343# Memory Protection Unit
344#
339# CONFIG_MPU is not set 345# CONFIG_MPU is not set
340 346
341# 347#
@@ -418,11 +424,11 @@ CONFIG_IP_PNP=y
418# CONFIG_INET_IPCOMP is not set 424# CONFIG_INET_IPCOMP is not set
419# CONFIG_INET_XFRM_TUNNEL is not set 425# CONFIG_INET_XFRM_TUNNEL is not set
420# CONFIG_INET_TUNNEL is not set 426# CONFIG_INET_TUNNEL is not set
421CONFIG_INET_XFRM_MODE_TRANSPORT=y 427# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
422CONFIG_INET_XFRM_MODE_TUNNEL=y 428# CONFIG_INET_XFRM_MODE_TUNNEL is not set
423CONFIG_INET_XFRM_MODE_BEET=y 429# CONFIG_INET_XFRM_MODE_BEET is not set
424# CONFIG_INET_LRO is not set 430# CONFIG_INET_LRO is not set
425CONFIG_INET_DIAG=y 431# CONFIG_INET_DIAG is not set
426CONFIG_INET_TCP_DIAG=y 432CONFIG_INET_TCP_DIAG=y
427# CONFIG_TCP_CONG_ADVANCED is not set 433# CONFIG_TCP_CONG_ADVANCED is not set
428CONFIG_TCP_CONG_CUBIC=y 434CONFIG_TCP_CONG_CUBIC=y
@@ -1505,7 +1511,7 @@ CONFIG_SCHED_DEBUG=y
1505# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1511# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1506# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1512# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1507# CONFIG_DEBUG_KOBJECT is not set 1513# CONFIG_DEBUG_KOBJECT is not set
1508# CONFIG_DEBUG_BUGVERBOSE is not set 1514CONFIG_DEBUG_BUGVERBOSE=y
1509CONFIG_DEBUG_INFO=y 1515CONFIG_DEBUG_INFO=y
1510# CONFIG_DEBUG_VM is not set 1516# CONFIG_DEBUG_VM is not set
1511# CONFIG_DEBUG_WRITECOUNT is not set 1517# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
index 5aa63bafdd6..4c044805cb5 100644
--- a/arch/blackfin/configs/BF533-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -292,12 +292,21 @@ CONFIG_DMA_UNCACHED_1M=y
292# 292#
293# Cache Support 293# Cache Support
294# 294#
295#
296# Cache Support
297#
295CONFIG_BFIN_ICACHE=y 298CONFIG_BFIN_ICACHE=y
299# CONFIG_BFIN_ICACHE_LOCK is not set
296CONFIG_BFIN_DCACHE=y 300CONFIG_BFIN_DCACHE=y
297# CONFIG_BFIN_DCACHE_BANKA is not set 301# CONFIG_BFIN_DCACHE_BANKA is not set
298# CONFIG_BFIN_ICACHE_LOCK is not set 302CONFIG_BFIN_EXTMEM_ICACHEABLE=y
299CONFIG_BFIN_WB=y 303CONFIG_BFIN_EXTMEM_DCACHEABLE=y
300# CONFIG_BFIN_WT is not set 304CONFIG_BFIN_EXTMEM_WRITEBACK=y
305# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
306
307#
308# Memory Protection Unit
309#
301# CONFIG_MPU is not set 310# CONFIG_MPU is not set
302 311
303# 312#
@@ -391,11 +400,11 @@ CONFIG_IP_PNP=y
391# CONFIG_INET_IPCOMP is not set 400# CONFIG_INET_IPCOMP is not set
392# CONFIG_INET_XFRM_TUNNEL is not set 401# CONFIG_INET_XFRM_TUNNEL is not set
393# CONFIG_INET_TUNNEL is not set 402# CONFIG_INET_TUNNEL is not set
394CONFIG_INET_XFRM_MODE_TRANSPORT=y 403# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
395CONFIG_INET_XFRM_MODE_TUNNEL=y 404# CONFIG_INET_XFRM_MODE_TUNNEL is not set
396CONFIG_INET_XFRM_MODE_BEET=y 405# CONFIG_INET_XFRM_MODE_BEET is not set
397# CONFIG_INET_LRO is not set 406# CONFIG_INET_LRO is not set
398CONFIG_INET_DIAG=y 407# CONFIG_INET_DIAG is not set
399CONFIG_INET_TCP_DIAG=y 408CONFIG_INET_TCP_DIAG=y
400# CONFIG_TCP_CONG_ADVANCED is not set 409# CONFIG_TCP_CONG_ADVANCED is not set
401CONFIG_TCP_CONG_CUBIC=y 410CONFIG_TCP_CONG_CUBIC=y
@@ -1052,7 +1061,7 @@ CONFIG_SCHED_DEBUG=y
1052# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1061# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1053# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1062# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1054# CONFIG_DEBUG_KOBJECT is not set 1063# CONFIG_DEBUG_KOBJECT is not set
1055# CONFIG_DEBUG_BUGVERBOSE is not set 1064CONFIG_DEBUG_BUGVERBOSE=y
1056CONFIG_DEBUG_INFO=y 1065CONFIG_DEBUG_INFO=y
1057# CONFIG_DEBUG_VM is not set 1066# CONFIG_DEBUG_VM is not set
1058# CONFIG_DEBUG_WRITECOUNT is not set 1067# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
index fed25329e13..c99bbcd09a6 100644
--- a/arch/blackfin/configs/BF533-STAMP_defconfig
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -293,11 +293,17 @@ CONFIG_DMA_UNCACHED_1M=y
293# Cache Support 293# Cache Support
294# 294#
295CONFIG_BFIN_ICACHE=y 295CONFIG_BFIN_ICACHE=y
296# CONFIG_BFIN_ICACHE_LOCK is not set
296CONFIG_BFIN_DCACHE=y 297CONFIG_BFIN_DCACHE=y
297# CONFIG_BFIN_DCACHE_BANKA is not set 298# CONFIG_BFIN_DCACHE_BANKA is not set
298# CONFIG_BFIN_ICACHE_LOCK is not set 299CONFIG_BFIN_EXTMEM_ICACHEABLE=y
299CONFIG_BFIN_WB=y 300CONFIG_BFIN_EXTMEM_DCACHEABLE=y
300# CONFIG_BFIN_WT is not set 301CONFIG_BFIN_EXTMEM_WRITEBACK=y
302# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
303
304#
305# Memory Protection Unit
306#
301# CONFIG_MPU is not set 307# CONFIG_MPU is not set
302 308
303# 309#
@@ -391,11 +397,11 @@ CONFIG_IP_PNP=y
391# CONFIG_INET_IPCOMP is not set 397# CONFIG_INET_IPCOMP is not set
392# CONFIG_INET_XFRM_TUNNEL is not set 398# CONFIG_INET_XFRM_TUNNEL is not set
393# CONFIG_INET_TUNNEL is not set 399# CONFIG_INET_TUNNEL is not set
394CONFIG_INET_XFRM_MODE_TRANSPORT=y 400# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
395CONFIG_INET_XFRM_MODE_TUNNEL=y 401# CONFIG_INET_XFRM_MODE_TUNNEL is not set
396CONFIG_INET_XFRM_MODE_BEET=y 402# CONFIG_INET_XFRM_MODE_BEET is not set
397# CONFIG_INET_LRO is not set 403# CONFIG_INET_LRO is not set
398CONFIG_INET_DIAG=y 404# CONFIG_INET_DIAG is not set
399CONFIG_INET_TCP_DIAG=y 405CONFIG_INET_TCP_DIAG=y
400# CONFIG_TCP_CONG_ADVANCED is not set 406# CONFIG_TCP_CONG_ADVANCED is not set
401CONFIG_TCP_CONG_CUBIC=y 407CONFIG_TCP_CONG_CUBIC=y
@@ -1216,7 +1222,7 @@ CONFIG_SCHED_DEBUG=y
1216# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1222# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1217# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1223# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1218# CONFIG_DEBUG_KOBJECT is not set 1224# CONFIG_DEBUG_KOBJECT is not set
1219# CONFIG_DEBUG_BUGVERBOSE is not set 1225CONFIG_DEBUG_BUGVERBOSE=y
1220CONFIG_DEBUG_INFO=y 1226CONFIG_DEBUG_INFO=y
1221# CONFIG_DEBUG_VM is not set 1227# CONFIG_DEBUG_VM is not set
1222# CONFIG_DEBUG_WRITECOUNT is not set 1228# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
index f9ac20d5579..092ffda80e6 100644
--- a/arch/blackfin/configs/BF537-STAMP_defconfig
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -300,11 +300,17 @@ CONFIG_DMA_UNCACHED_1M=y
300# Cache Support 300# Cache Support
301# 301#
302CONFIG_BFIN_ICACHE=y 302CONFIG_BFIN_ICACHE=y
303# CONFIG_BFIN_ICACHE_LOCK is not set
303CONFIG_BFIN_DCACHE=y 304CONFIG_BFIN_DCACHE=y
304# CONFIG_BFIN_DCACHE_BANKA is not set 305# CONFIG_BFIN_DCACHE_BANKA is not set
305# CONFIG_BFIN_ICACHE_LOCK is not set 306CONFIG_BFIN_EXTMEM_ICACHEABLE=y
306CONFIG_BFIN_WB=y 307CONFIG_BFIN_EXTMEM_DCACHEABLE=y
307# CONFIG_BFIN_WT is not set 308CONFIG_BFIN_EXTMEM_WRITEBACK=y
309# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
310
311#
312# Memory Protection Unit
313#
308# CONFIG_MPU is not set 314# CONFIG_MPU is not set
309 315
310# 316#
@@ -399,11 +405,11 @@ CONFIG_IP_PNP=y
399# CONFIG_INET_IPCOMP is not set 405# CONFIG_INET_IPCOMP is not set
400# CONFIG_INET_XFRM_TUNNEL is not set 406# CONFIG_INET_XFRM_TUNNEL is not set
401# CONFIG_INET_TUNNEL is not set 407# CONFIG_INET_TUNNEL is not set
402CONFIG_INET_XFRM_MODE_TRANSPORT=y 408# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
403CONFIG_INET_XFRM_MODE_TUNNEL=y 409# CONFIG_INET_XFRM_MODE_TUNNEL is not set
404CONFIG_INET_XFRM_MODE_BEET=y 410# CONFIG_INET_XFRM_MODE_BEET is not set
405# CONFIG_INET_LRO is not set 411# CONFIG_INET_LRO is not set
406CONFIG_INET_DIAG=y 412# CONFIG_INET_DIAG is not set
407CONFIG_INET_TCP_DIAG=y 413CONFIG_INET_TCP_DIAG=y
408# CONFIG_TCP_CONG_ADVANCED is not set 414# CONFIG_TCP_CONG_ADVANCED is not set
409CONFIG_TCP_CONG_CUBIC=y 415CONFIG_TCP_CONG_CUBIC=y
@@ -1269,7 +1275,7 @@ CONFIG_SCHED_DEBUG=y
1269# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1275# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1270# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1276# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1271# CONFIG_DEBUG_KOBJECT is not set 1277# CONFIG_DEBUG_KOBJECT is not set
1272# CONFIG_DEBUG_BUGVERBOSE is not set 1278CONFIG_DEBUG_BUGVERBOSE=y
1273CONFIG_DEBUG_INFO=y 1279CONFIG_DEBUG_INFO=y
1274# CONFIG_DEBUG_VM is not set 1280# CONFIG_DEBUG_VM is not set
1275# CONFIG_DEBUG_WRITECOUNT is not set 1281# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/BF538-EZKIT_defconfig b/arch/blackfin/configs/BF538-EZKIT_defconfig
index ee98e227b88..fa698a89f6f 100644
--- a/arch/blackfin/configs/BF538-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF538-EZKIT_defconfig
@@ -311,11 +311,17 @@ CONFIG_DMA_UNCACHED_1M=y
311# Cache Support 311# Cache Support
312# 312#
313CONFIG_BFIN_ICACHE=y 313CONFIG_BFIN_ICACHE=y
314# CONFIG_BFIN_ICACHE_LOCK is not set
314CONFIG_BFIN_DCACHE=y 315CONFIG_BFIN_DCACHE=y
315# CONFIG_BFIN_DCACHE_BANKA is not set 316# CONFIG_BFIN_DCACHE_BANKA is not set
316# CONFIG_BFIN_ICACHE_LOCK is not set 317CONFIG_BFIN_EXTMEM_ICACHEABLE=y
317CONFIG_BFIN_WB=y 318CONFIG_BFIN_EXTMEM_DCACHEABLE=y
318# CONFIG_BFIN_WT is not set 319CONFIG_BFIN_EXTMEM_WRITEBACK=y
320# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
321
322#
323# Memory Protection Unit
324#
319# CONFIG_MPU is not set 325# CONFIG_MPU is not set
320 326
321# 327#
@@ -398,11 +404,11 @@ CONFIG_IP_PNP=y
398# CONFIG_INET_IPCOMP is not set 404# CONFIG_INET_IPCOMP is not set
399# CONFIG_INET_XFRM_TUNNEL is not set 405# CONFIG_INET_XFRM_TUNNEL is not set
400# CONFIG_INET_TUNNEL is not set 406# CONFIG_INET_TUNNEL is not set
401CONFIG_INET_XFRM_MODE_TRANSPORT=y 407# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
402CONFIG_INET_XFRM_MODE_TUNNEL=y 408# CONFIG_INET_XFRM_MODE_TUNNEL is not set
403CONFIG_INET_XFRM_MODE_BEET=y 409# CONFIG_INET_XFRM_MODE_BEET is not set
404# CONFIG_INET_LRO is not set 410# CONFIG_INET_LRO is not set
405CONFIG_INET_DIAG=y 411# CONFIG_INET_DIAG is not set
406CONFIG_INET_TCP_DIAG=y 412CONFIG_INET_TCP_DIAG=y
407# CONFIG_TCP_CONG_ADVANCED is not set 413# CONFIG_TCP_CONG_ADVANCED is not set
408CONFIG_TCP_CONG_CUBIC=y 414CONFIG_TCP_CONG_CUBIC=y
@@ -1203,7 +1209,7 @@ CONFIG_SCHED_DEBUG=y
1203# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1209# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1204# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1210# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1205# CONFIG_DEBUG_KOBJECT is not set 1211# CONFIG_DEBUG_KOBJECT is not set
1206# CONFIG_DEBUG_BUGVERBOSE is not set 1212CONFIG_DEBUG_BUGVERBOSE=y
1207CONFIG_DEBUG_INFO=y 1213CONFIG_DEBUG_INFO=y
1208# CONFIG_DEBUG_VM is not set 1214# CONFIG_DEBUG_VM is not set
1209# CONFIG_DEBUG_WRITECOUNT is not set 1215# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index deeabef8ab8..b3d3cab81cf 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -366,14 +366,19 @@ CONFIG_DMA_UNCACHED_2M=y
366# Cache Support 366# Cache Support
367# 367#
368CONFIG_BFIN_ICACHE=y 368CONFIG_BFIN_ICACHE=y
369# CONFIG_BFIN_ICACHE_LOCK is not set
369CONFIG_BFIN_DCACHE=y 370CONFIG_BFIN_DCACHE=y
370# CONFIG_BFIN_DCACHE_BANKA is not set 371# CONFIG_BFIN_DCACHE_BANKA is not set
371# CONFIG_BFIN_ICACHE_LOCK is not set 372CONFIG_BFIN_EXTMEM_ICACHEABLE=y
372CONFIG_BFIN_WB=y 373CONFIG_BFIN_EXTMEM_DCACHEABLE=y
373# CONFIG_BFIN_WT is not set 374CONFIG_BFIN_EXTMEM_WRITEBACK=y
374# CONFIG_BFIN_L2_WB is not set 375# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
375CONFIG_BFIN_L2_WT=y 376# CONFIG_BFIN_L2_ICACHEABLE is not set
376# CONFIG_BFIN_L2_NOT_CACHED is not set 377# CONFIG_BFIN_L2_DCACHEABLE is not set
378
379#
380# Memory Protection Unit
381#
377# CONFIG_MPU is not set 382# CONFIG_MPU is not set
378 383
379# 384#
@@ -459,11 +464,11 @@ CONFIG_IP_PNP=y
459# CONFIG_INET_IPCOMP is not set 464# CONFIG_INET_IPCOMP is not set
460# CONFIG_INET_XFRM_TUNNEL is not set 465# CONFIG_INET_XFRM_TUNNEL is not set
461# CONFIG_INET_TUNNEL is not set 466# CONFIG_INET_TUNNEL is not set
462CONFIG_INET_XFRM_MODE_TRANSPORT=y 467# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
463CONFIG_INET_XFRM_MODE_TUNNEL=y 468# CONFIG_INET_XFRM_MODE_TUNNEL is not set
464CONFIG_INET_XFRM_MODE_BEET=y 469# CONFIG_INET_XFRM_MODE_BEET is not set
465# CONFIG_INET_LRO is not set 470# CONFIG_INET_LRO is not set
466CONFIG_INET_DIAG=y 471# CONFIG_INET_DIAG is not set
467CONFIG_INET_TCP_DIAG=y 472CONFIG_INET_TCP_DIAG=y
468# CONFIG_TCP_CONG_ADVANCED is not set 473# CONFIG_TCP_CONG_ADVANCED is not set
469CONFIG_TCP_CONG_CUBIC=y 474CONFIG_TCP_CONG_CUBIC=y
@@ -1606,7 +1611,7 @@ CONFIG_SCHED_DEBUG=y
1606# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1611# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1607# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1612# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1608# CONFIG_DEBUG_KOBJECT is not set 1613# CONFIG_DEBUG_KOBJECT is not set
1609# CONFIG_DEBUG_BUGVERBOSE is not set 1614CONFIG_DEBUG_BUGVERBOSE=y
1610CONFIG_DEBUG_INFO=y 1615CONFIG_DEBUG_INFO=y
1611# CONFIG_DEBUG_VM is not set 1616# CONFIG_DEBUG_VM is not set
1612# CONFIG_DEBUG_WRITECOUNT is not set 1617# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
index dcfbe2e2931..0313cd1d982 100644
--- a/arch/blackfin/configs/BF561-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -331,14 +331,19 @@ CONFIG_DMA_UNCACHED_1M=y
331# Cache Support 331# Cache Support
332# 332#
333CONFIG_BFIN_ICACHE=y 333CONFIG_BFIN_ICACHE=y
334# CONFIG_BFIN_ICACHE_LOCK is not set
334CONFIG_BFIN_DCACHE=y 335CONFIG_BFIN_DCACHE=y
335# CONFIG_BFIN_DCACHE_BANKA is not set 336# CONFIG_BFIN_DCACHE_BANKA is not set
336# CONFIG_BFIN_ICACHE_LOCK is not set 337CONFIG_BFIN_EXTMEM_ICACHEABLE=y
337CONFIG_BFIN_WB=y 338CONFIG_BFIN_EXTMEM_DCACHEABLE=y
338# CONFIG_BFIN_WT is not set 339CONFIG_BFIN_EXTMEM_WRITEBACK=y
339# CONFIG_BFIN_L2_WB is not set 340# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
340CONFIG_BFIN_L2_WT=y 341# CONFIG_BFIN_L2_ICACHEABLE is not set
341# CONFIG_BFIN_L2_NOT_CACHED is not set 342# CONFIG_BFIN_L2_DCACHEABLE is not set
343
344#
345# Memory Protection Unit
346#
342# CONFIG_MPU is not set 347# CONFIG_MPU is not set
343 348
344# 349#
@@ -425,11 +430,11 @@ CONFIG_IP_PNP=y
425# CONFIG_INET_IPCOMP is not set 430# CONFIG_INET_IPCOMP is not set
426# CONFIG_INET_XFRM_TUNNEL is not set 431# CONFIG_INET_XFRM_TUNNEL is not set
427# CONFIG_INET_TUNNEL is not set 432# CONFIG_INET_TUNNEL is not set
428CONFIG_INET_XFRM_MODE_TRANSPORT=y 433# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
429CONFIG_INET_XFRM_MODE_TUNNEL=y 434# CONFIG_INET_XFRM_MODE_TUNNEL is not set
430CONFIG_INET_XFRM_MODE_BEET=y 435# CONFIG_INET_XFRM_MODE_BEET is not set
431# CONFIG_INET_LRO is not set 436# CONFIG_INET_LRO is not set
432CONFIG_INET_DIAG=y 437# CONFIG_INET_DIAG is not set
433CONFIG_INET_TCP_DIAG=y 438CONFIG_INET_TCP_DIAG=y
434# CONFIG_TCP_CONG_ADVANCED is not set 439# CONFIG_TCP_CONG_ADVANCED is not set
435CONFIG_TCP_CONG_CUBIC=y 440CONFIG_TCP_CONG_CUBIC=y
@@ -1044,7 +1049,7 @@ CONFIG_SCHED_DEBUG=y
1044# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1049# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1045# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1050# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1046# CONFIG_DEBUG_KOBJECT is not set 1051# CONFIG_DEBUG_KOBJECT is not set
1047# CONFIG_DEBUG_BUGVERBOSE is not set 1052CONFIG_DEBUG_BUGVERBOSE=y
1048CONFIG_DEBUG_INFO=y 1053CONFIG_DEBUG_INFO=y
1049# CONFIG_DEBUG_VM is not set 1054# CONFIG_DEBUG_VM is not set
1050# CONFIG_DEBUG_WRITECOUNT is not set 1055# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/BlackStamp_defconfig b/arch/blackfin/configs/BlackStamp_defconfig
index 174c578b8ec..5d944ffd4ab 100644
--- a/arch/blackfin/configs/BlackStamp_defconfig
+++ b/arch/blackfin/configs/BlackStamp_defconfig
@@ -285,11 +285,17 @@ CONFIG_DMA_UNCACHED_1M=y
285# Cache Support 285# Cache Support
286# 286#
287CONFIG_BFIN_ICACHE=y 287CONFIG_BFIN_ICACHE=y
288# CONFIG_BFIN_ICACHE_LOCK is not set
288CONFIG_BFIN_DCACHE=y 289CONFIG_BFIN_DCACHE=y
289# CONFIG_BFIN_DCACHE_BANKA is not set 290# CONFIG_BFIN_DCACHE_BANKA is not set
290# CONFIG_BFIN_ICACHE_LOCK is not set 291CONFIG_BFIN_EXTMEM_ICACHEABLE=y
291CONFIG_BFIN_WB=y 292CONFIG_BFIN_EXTMEM_DCACHEABLE=y
292# CONFIG_BFIN_WT is not set 293CONFIG_BFIN_EXTMEM_WRITEBACK=y
294# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
295
296#
297# Memory Protection Unit
298#
293# CONFIG_MPU is not set 299# CONFIG_MPU is not set
294 300
295# 301#
diff --git a/arch/blackfin/configs/CM-BF527_defconfig b/arch/blackfin/configs/CM-BF527_defconfig
index e17875e8abe..648a31d01bf 100644
--- a/arch/blackfin/configs/CM-BF527_defconfig
+++ b/arch/blackfin/configs/CM-BF527_defconfig
@@ -329,11 +329,17 @@ CONFIG_DMA_UNCACHED_1M=y
329# Cache Support 329# Cache Support
330# 330#
331CONFIG_BFIN_ICACHE=y 331CONFIG_BFIN_ICACHE=y
332# CONFIG_BFIN_ICACHE_LOCK is not set
332CONFIG_BFIN_DCACHE=y 333CONFIG_BFIN_DCACHE=y
333# CONFIG_BFIN_DCACHE_BANKA is not set 334# CONFIG_BFIN_DCACHE_BANKA is not set
334# CONFIG_BFIN_ICACHE_LOCK is not set 335CONFIG_BFIN_EXTMEM_ICACHEABLE=y
335CONFIG_BFIN_WB=y 336CONFIG_BFIN_EXTMEM_DCACHEABLE=y
336# CONFIG_BFIN_WT is not set 337CONFIG_BFIN_EXTMEM_WRITEBACK=y
338# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
339
340#
341# Memory Protection Unit
342#
337# CONFIG_MPU is not set 343# CONFIG_MPU is not set
338 344
339# 345#
@@ -417,11 +423,11 @@ CONFIG_IP_PNP=y
417# CONFIG_INET_IPCOMP is not set 423# CONFIG_INET_IPCOMP is not set
418# CONFIG_INET_XFRM_TUNNEL is not set 424# CONFIG_INET_XFRM_TUNNEL is not set
419# CONFIG_INET_TUNNEL is not set 425# CONFIG_INET_TUNNEL is not set
420CONFIG_INET_XFRM_MODE_TRANSPORT=y 426# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
421CONFIG_INET_XFRM_MODE_TUNNEL=y 427# CONFIG_INET_XFRM_MODE_TUNNEL is not set
422CONFIG_INET_XFRM_MODE_BEET=y 428# CONFIG_INET_XFRM_MODE_BEET is not set
423# CONFIG_INET_LRO is not set 429# CONFIG_INET_LRO is not set
424CONFIG_INET_DIAG=y 430# CONFIG_INET_DIAG is not set
425CONFIG_INET_TCP_DIAG=y 431CONFIG_INET_TCP_DIAG=y
426# CONFIG_TCP_CONG_ADVANCED is not set 432# CONFIG_TCP_CONG_ADVANCED is not set
427CONFIG_TCP_CONG_CUBIC=y 433CONFIG_TCP_CONG_CUBIC=y
@@ -1246,7 +1252,7 @@ CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1246# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1252# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1247# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1253# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1248# CONFIG_DEBUG_KOBJECT is not set 1254# CONFIG_DEBUG_KOBJECT is not set
1249# CONFIG_DEBUG_BUGVERBOSE is not set 1255CONFIG_DEBUG_BUGVERBOSE=y
1250# CONFIG_DEBUG_INFO is not set 1256# CONFIG_DEBUG_INFO is not set
1251# CONFIG_DEBUG_VM is not set 1257# CONFIG_DEBUG_VM is not set
1252# CONFIG_DEBUG_WRITECOUNT is not set 1258# CONFIG_DEBUG_WRITECOUNT is not set
diff --git a/arch/blackfin/configs/CM-BF533_defconfig b/arch/blackfin/configs/CM-BF533_defconfig
index fafd95e84b2..ae665b93b87 100644
--- a/arch/blackfin/configs/CM-BF533_defconfig
+++ b/arch/blackfin/configs/CM-BF533_defconfig
@@ -262,12 +262,17 @@ CONFIG_DMA_UNCACHED_1M=y
262# Cache Support 262# Cache Support
263# 263#
264CONFIG_BFIN_ICACHE=y 264CONFIG_BFIN_ICACHE=y
265# CONFIG_BFIN_ICACHE_LOCK is not set
265CONFIG_BFIN_DCACHE=y 266CONFIG_BFIN_DCACHE=y
266# CONFIG_BFIN_DCACHE_BANKA is not set 267# CONFIG_BFIN_DCACHE_BANKA is not set
267# CONFIG_BFIN_ICACHE_LOCK is not set 268CONFIG_BFIN_EXTMEM_ICACHEABLE=y
268CONFIG_BFIN_WB=y 269CONFIG_BFIN_EXTMEM_DCACHEABLE=y
269# CONFIG_BFIN_WT is not set 270CONFIG_BFIN_EXTMEM_WRITEBACK=y
270CONFIG_L1_MAX_PIECE=16 271# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
272
273#
274# Memory Protection Unit
275#
271# CONFIG_MPU is not set 276# CONFIG_MPU is not set
272 277
273# 278#
@@ -353,10 +358,10 @@ CONFIG_IP_FIB_HASH=y
353# CONFIG_INET_IPCOMP is not set 358# CONFIG_INET_IPCOMP is not set
354# CONFIG_INET_XFRM_TUNNEL is not set 359# CONFIG_INET_XFRM_TUNNEL is not set
355# CONFIG_INET_TUNNEL is not set 360# CONFIG_INET_TUNNEL is not set
356CONFIG_INET_XFRM_MODE_TRANSPORT=y 361# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
357CONFIG_INET_XFRM_MODE_TUNNEL=y 362# CONFIG_INET_XFRM_MODE_TUNNEL is not set
358CONFIG_INET_XFRM_MODE_BEET=y 363# CONFIG_INET_XFRM_MODE_BEET is not set
359CONFIG_INET_DIAG=y 364# CONFIG_INET_DIAG is not set
360CONFIG_INET_TCP_DIAG=y 365CONFIG_INET_TCP_DIAG=y
361# CONFIG_TCP_CONG_ADVANCED is not set 366# CONFIG_TCP_CONG_ADVANCED is not set
362CONFIG_TCP_CONG_CUBIC=y 367CONFIG_TCP_CONG_CUBIC=y
@@ -873,7 +878,7 @@ CONFIG_ENABLE_MUST_CHECK=y
873CONFIG_DEBUG_FS=y 878CONFIG_DEBUG_FS=y
874# CONFIG_HEADERS_CHECK is not set 879# CONFIG_HEADERS_CHECK is not set
875# CONFIG_DEBUG_KERNEL is not set 880# CONFIG_DEBUG_KERNEL is not set
876# CONFIG_DEBUG_BUGVERBOSE is not set 881CONFIG_DEBUG_BUGVERBOSE=y
877CONFIG_DEBUG_MMRS=y 882CONFIG_DEBUG_MMRS=y
878CONFIG_DEBUG_HUNT_FOR_ZERO=y 883CONFIG_DEBUG_HUNT_FOR_ZERO=y
879CONFIG_DEBUG_BFIN_HWTRACE_ON=y 884CONFIG_DEBUG_BFIN_HWTRACE_ON=y
diff --git a/arch/blackfin/configs/CM-BF537E_defconfig b/arch/blackfin/configs/CM-BF537E_defconfig
index e73aa5af58b..d74b6f4db35 100644
--- a/arch/blackfin/configs/CM-BF537E_defconfig
+++ b/arch/blackfin/configs/CM-BF537E_defconfig
@@ -297,11 +297,17 @@ CONFIG_DMA_UNCACHED_1M=y
297# Cache Support 297# Cache Support
298# 298#
299CONFIG_BFIN_ICACHE=y 299CONFIG_BFIN_ICACHE=y
300# CONFIG_BFIN_ICACHE_LOCK is not set
300CONFIG_BFIN_DCACHE=y 301CONFIG_BFIN_DCACHE=y
301# CONFIG_BFIN_DCACHE_BANKA is not set 302# CONFIG_BFIN_DCACHE_BANKA is not set
302# CONFIG_BFIN_ICACHE_LOCK is not set 303CONFIG_BFIN_EXTMEM_ICACHEABLE=y
303CONFIG_BFIN_WB=y 304CONFIG_BFIN_EXTMEM_DCACHEABLE=y
304# CONFIG_BFIN_WT is not set 305CONFIG_BFIN_EXTMEM_WRITEBACK=y
306# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
307
308#
309# Memory Protection Unit
310#
305# CONFIG_MPU is not set 311# CONFIG_MPU is not set
306 312
307# 313#
@@ -383,11 +389,11 @@ CONFIG_IP_PNP=y
383# CONFIG_INET_IPCOMP is not set 389# CONFIG_INET_IPCOMP is not set
384# CONFIG_INET_XFRM_TUNNEL is not set 390# CONFIG_INET_XFRM_TUNNEL is not set
385# CONFIG_INET_TUNNEL is not set 391# CONFIG_INET_TUNNEL is not set
386CONFIG_INET_XFRM_MODE_TRANSPORT=y 392# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
387CONFIG_INET_XFRM_MODE_TUNNEL=y 393# CONFIG_INET_XFRM_MODE_TUNNEL is not set
388CONFIG_INET_XFRM_MODE_BEET=y 394# CONFIG_INET_XFRM_MODE_BEET is not set
389# CONFIG_INET_LRO is not set 395# CONFIG_INET_LRO is not set
390CONFIG_INET_DIAG=y 396# CONFIG_INET_DIAG is not set
391CONFIG_INET_TCP_DIAG=y 397CONFIG_INET_TCP_DIAG=y
392# CONFIG_TCP_CONG_ADVANCED is not set 398# CONFIG_TCP_CONG_ADVANCED is not set
393CONFIG_TCP_CONG_CUBIC=y 399CONFIG_TCP_CONG_CUBIC=y
@@ -861,7 +867,7 @@ CONFIG_DEBUG_FS=y
861# CONFIG_HEADERS_CHECK is not set 867# CONFIG_HEADERS_CHECK is not set
862CONFIG_DEBUG_SECTION_MISMATCH=y 868CONFIG_DEBUG_SECTION_MISMATCH=y
863# CONFIG_DEBUG_KERNEL is not set 869# CONFIG_DEBUG_KERNEL is not set
864# CONFIG_DEBUG_BUGVERBOSE is not set 870CONFIG_DEBUG_BUGVERBOSE=y
865# CONFIG_DEBUG_MEMORY_INIT is not set 871# CONFIG_DEBUG_MEMORY_INIT is not set
866# CONFIG_RCU_CPU_STALL_DETECTOR is not set 872# CONFIG_RCU_CPU_STALL_DETECTOR is not set
867 873
diff --git a/arch/blackfin/configs/CM-BF537U_defconfig b/arch/blackfin/configs/CM-BF537U_defconfig
index 80211303f6b..7fc8dfa1719 100644
--- a/arch/blackfin/configs/CM-BF537U_defconfig
+++ b/arch/blackfin/configs/CM-BF537U_defconfig
@@ -270,12 +270,17 @@ CONFIG_DMA_UNCACHED_1M=y
270# Cache Support 270# Cache Support
271# 271#
272CONFIG_BFIN_ICACHE=y 272CONFIG_BFIN_ICACHE=y
273# CONFIG_BFIN_ICACHE_LOCK is not set
273CONFIG_BFIN_DCACHE=y 274CONFIG_BFIN_DCACHE=y
274# CONFIG_BFIN_DCACHE_BANKA is not set 275# CONFIG_BFIN_DCACHE_BANKA is not set
275# CONFIG_BFIN_ICACHE_LOCK is not set 276CONFIG_BFIN_EXTMEM_ICACHEABLE=y
276CONFIG_BFIN_WB=y 277CONFIG_BFIN_EXTMEM_DCACHEABLE=y
277# CONFIG_BFIN_WT is not set 278CONFIG_BFIN_EXTMEM_WRITEBACK=y
278CONFIG_L1_MAX_PIECE=16 279# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
280
281#
282# Memory Protection Unit
283#
279# CONFIG_MPU is not set 284# CONFIG_MPU is not set
280 285
281# 286#
@@ -361,10 +366,10 @@ CONFIG_IP_FIB_HASH=y
361# CONFIG_INET_IPCOMP is not set 366# CONFIG_INET_IPCOMP is not set
362# CONFIG_INET_XFRM_TUNNEL is not set 367# CONFIG_INET_XFRM_TUNNEL is not set
363# CONFIG_INET_TUNNEL is not set 368# CONFIG_INET_TUNNEL is not set
364CONFIG_INET_XFRM_MODE_TRANSPORT=y 369# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
365CONFIG_INET_XFRM_MODE_TUNNEL=y 370# CONFIG_INET_XFRM_MODE_TUNNEL is not set
366CONFIG_INET_XFRM_MODE_BEET=y 371# CONFIG_INET_XFRM_MODE_BEET is not set
367CONFIG_INET_DIAG=y 372# CONFIG_INET_DIAG is not set
368CONFIG_INET_TCP_DIAG=y 373CONFIG_INET_TCP_DIAG=y
369# CONFIG_TCP_CONG_ADVANCED is not set 374# CONFIG_TCP_CONG_ADVANCED is not set
370CONFIG_TCP_CONG_CUBIC=y 375CONFIG_TCP_CONG_CUBIC=y
@@ -901,7 +906,7 @@ CONFIG_ENABLE_MUST_CHECK=y
901CONFIG_DEBUG_FS=y 906CONFIG_DEBUG_FS=y
902# CONFIG_HEADERS_CHECK is not set 907# CONFIG_HEADERS_CHECK is not set
903# CONFIG_DEBUG_KERNEL is not set 908# CONFIG_DEBUG_KERNEL is not set
904# CONFIG_DEBUG_BUGVERBOSE is not set 909CONFIG_DEBUG_BUGVERBOSE=y
905CONFIG_DEBUG_MMRS=y 910CONFIG_DEBUG_MMRS=y
906CONFIG_DEBUG_HUNT_FOR_ZERO=y 911CONFIG_DEBUG_HUNT_FOR_ZERO=y
907CONFIG_DEBUG_BFIN_HWTRACE_ON=y 912CONFIG_DEBUG_BFIN_HWTRACE_ON=y
diff --git a/arch/blackfin/configs/CM-BF548_defconfig b/arch/blackfin/configs/CM-BF548_defconfig
index dd815f0d151..acca4e51a45 100644
--- a/arch/blackfin/configs/CM-BF548_defconfig
+++ b/arch/blackfin/configs/CM-BF548_defconfig
@@ -333,12 +333,19 @@ CONFIG_DMA_UNCACHED_1M=y
333# Cache Support 333# Cache Support
334# 334#
335CONFIG_BFIN_ICACHE=y 335CONFIG_BFIN_ICACHE=y
336# CONFIG_BFIN_ICACHE_LOCK is not set
336CONFIG_BFIN_DCACHE=y 337CONFIG_BFIN_DCACHE=y
337# CONFIG_BFIN_DCACHE_BANKA is not set 338# CONFIG_BFIN_DCACHE_BANKA is not set
338# CONFIG_BFIN_ICACHE_LOCK is not set 339CONFIG_BFIN_EXTMEM_ICACHEABLE=y
339CONFIG_BFIN_WB=y 340CONFIG_BFIN_EXTMEM_DCACHEABLE=y
340# CONFIG_BFIN_WT is not set 341CONFIG_BFIN_EXTMEM_WRITEBACK=y
341CONFIG_L1_MAX_PIECE=16 342# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
343# CONFIG_BFIN_L2_ICACHEABLE is not set
344# CONFIG_BFIN_L2_DCACHEABLE is not set
345
346#
347# Memory Protection Unit
348#
342# CONFIG_MPU is not set 349# CONFIG_MPU is not set
343 350
344# 351#
@@ -428,11 +435,11 @@ CONFIG_IP_PNP=y
428# CONFIG_INET_IPCOMP is not set 435# CONFIG_INET_IPCOMP is not set
429# CONFIG_INET_XFRM_TUNNEL is not set 436# CONFIG_INET_XFRM_TUNNEL is not set
430# CONFIG_INET_TUNNEL is not set 437# CONFIG_INET_TUNNEL is not set
431CONFIG_INET_XFRM_MODE_TRANSPORT=y 438# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
432CONFIG_INET_XFRM_MODE_TUNNEL=y 439# CONFIG_INET_XFRM_MODE_TUNNEL is not set
433CONFIG_INET_XFRM_MODE_BEET=y 440# CONFIG_INET_XFRM_MODE_BEET is not set
434# CONFIG_INET_LRO is not set 441# CONFIG_INET_LRO is not set
435CONFIG_INET_DIAG=y 442# CONFIG_INET_DIAG is not set
436CONFIG_INET_TCP_DIAG=y 443CONFIG_INET_TCP_DIAG=y
437# CONFIG_TCP_CONG_ADVANCED is not set 444# CONFIG_TCP_CONG_ADVANCED is not set
438CONFIG_TCP_CONG_CUBIC=y 445CONFIG_TCP_CONG_CUBIC=y
@@ -1334,7 +1341,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1334CONFIG_DEBUG_FS=y 1341CONFIG_DEBUG_FS=y
1335# CONFIG_HEADERS_CHECK is not set 1342# CONFIG_HEADERS_CHECK is not set
1336# CONFIG_DEBUG_KERNEL is not set 1343# CONFIG_DEBUG_KERNEL is not set
1337# CONFIG_DEBUG_BUGVERBOSE is not set 1344CONFIG_DEBUG_BUGVERBOSE=y
1338# CONFIG_SAMPLES is not set 1345# CONFIG_SAMPLES is not set
1339CONFIG_DEBUG_MMRS=y 1346CONFIG_DEBUG_MMRS=y
1340CONFIG_DEBUG_HUNT_FOR_ZERO=y 1347CONFIG_DEBUG_HUNT_FOR_ZERO=y
diff --git a/arch/blackfin/configs/CM-BF561_defconfig b/arch/blackfin/configs/CM-BF561_defconfig
index 16c198bd40c..bae4ee6e68b 100644
--- a/arch/blackfin/configs/CM-BF561_defconfig
+++ b/arch/blackfin/configs/CM-BF561_defconfig
@@ -308,12 +308,19 @@ CONFIG_DMA_UNCACHED_1M=y
308# Cache Support 308# Cache Support
309# 309#
310CONFIG_BFIN_ICACHE=y 310CONFIG_BFIN_ICACHE=y
311# CONFIG_BFIN_ICACHE_LOCK is not set
311CONFIG_BFIN_DCACHE=y 312CONFIG_BFIN_DCACHE=y
312# CONFIG_BFIN_DCACHE_BANKA is not set 313# CONFIG_BFIN_DCACHE_BANKA is not set
313# CONFIG_BFIN_ICACHE_LOCK is not set 314CONFIG_BFIN_EXTMEM_ICACHEABLE=y
314CONFIG_BFIN_WB=y 315CONFIG_BFIN_EXTMEM_DCACHEABLE=y
315# CONFIG_BFIN_WT is not set 316CONFIG_BFIN_EXTMEM_WRITEBACK=y
316CONFIG_L1_MAX_PIECE=16 317# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
318# CONFIG_BFIN_L2_ICACHEABLE is not set
319# CONFIG_BFIN_L2_DCACHEABLE is not set
320
321#
322# Memory Protection Unit
323#
317# CONFIG_MPU is not set 324# CONFIG_MPU is not set
318 325
319# 326#
@@ -395,11 +402,11 @@ CONFIG_IP_FIB_HASH=y
395# CONFIG_INET_IPCOMP is not set 402# CONFIG_INET_IPCOMP is not set
396# CONFIG_INET_XFRM_TUNNEL is not set 403# CONFIG_INET_XFRM_TUNNEL is not set
397# CONFIG_INET_TUNNEL is not set 404# CONFIG_INET_TUNNEL is not set
398CONFIG_INET_XFRM_MODE_TRANSPORT=y 405# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
399CONFIG_INET_XFRM_MODE_TUNNEL=y 406# CONFIG_INET_XFRM_MODE_TUNNEL is not set
400CONFIG_INET_XFRM_MODE_BEET=y 407# CONFIG_INET_XFRM_MODE_BEET is not set
401# CONFIG_INET_LRO is not set 408# CONFIG_INET_LRO is not set
402CONFIG_INET_DIAG=y 409# CONFIG_INET_DIAG is not set
403CONFIG_INET_TCP_DIAG=y 410CONFIG_INET_TCP_DIAG=y
404# CONFIG_TCP_CONG_ADVANCED is not set 411# CONFIG_TCP_CONG_ADVANCED is not set
405CONFIG_TCP_CONG_CUBIC=y 412CONFIG_TCP_CONG_CUBIC=y
@@ -837,7 +844,7 @@ CONFIG_ENABLE_MUST_CHECK=y
837CONFIG_DEBUG_FS=y 844CONFIG_DEBUG_FS=y
838# CONFIG_HEADERS_CHECK is not set 845# CONFIG_HEADERS_CHECK is not set
839# CONFIG_DEBUG_KERNEL is not set 846# CONFIG_DEBUG_KERNEL is not set
840# CONFIG_DEBUG_BUGVERBOSE is not set 847CONFIG_DEBUG_BUGVERBOSE=y
841# CONFIG_SAMPLES is not set 848# CONFIG_SAMPLES is not set
842CONFIG_DEBUG_MMRS=y 849CONFIG_DEBUG_MMRS=y
843CONFIG_DEBUG_HUNT_FOR_ZERO=y 850CONFIG_DEBUG_HUNT_FOR_ZERO=y
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig
index 6b4c1a98238..a6a7c8ede70 100644
--- a/arch/blackfin/configs/H8606_defconfig
+++ b/arch/blackfin/configs/H8606_defconfig
@@ -258,12 +258,18 @@ CONFIG_DMA_UNCACHED_1M=y
258# Cache Support 258# Cache Support
259# 259#
260CONFIG_BFIN_ICACHE=y 260CONFIG_BFIN_ICACHE=y
261# CONFIG_BFIN_ICACHE_LOCK is not set
261CONFIG_BFIN_DCACHE=y 262CONFIG_BFIN_DCACHE=y
262# CONFIG_BFIN_DCACHE_BANKA is not set 263# CONFIG_BFIN_DCACHE_BANKA is not set
263CONFIG_BFIN_ICACHE_LOCK=y 264CONFIG_BFIN_EXTMEM_ICACHEABLE=y
264CONFIG_BFIN_WB=y 265CONFIG_BFIN_EXTMEM_DCACHEABLE=y
265# CONFIG_BFIN_WT is not set 266CONFIG_BFIN_EXTMEM_WRITEBACK=y
266CONFIG_L1_MAX_PIECE=16 267# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
268
269#
270# Memory Protection Unit
271#
272# CONFIG_MPU is not set
267 273
268# 274#
269# Asynchonous Memory Configuration 275# Asynchonous Memory Configuration
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig
index 09701f907e9..ff377fae061 100644
--- a/arch/blackfin/configs/PNAV-10_defconfig
+++ b/arch/blackfin/configs/PNAV-10_defconfig
@@ -295,11 +295,17 @@ CONFIG_DMA_UNCACHED_1M=y
295# Cache Support 295# Cache Support
296# 296#
297CONFIG_BFIN_ICACHE=y 297CONFIG_BFIN_ICACHE=y
298# CONFIG_BFIN_ICACHE_LOCK is not set
298CONFIG_BFIN_DCACHE=y 299CONFIG_BFIN_DCACHE=y
299# CONFIG_BFIN_DCACHE_BANKA is not set 300# CONFIG_BFIN_DCACHE_BANKA is not set
300# CONFIG_BFIN_ICACHE_LOCK is not set 301CONFIG_BFIN_EXTMEM_ICACHEABLE=y
301CONFIG_BFIN_WB=y 302CONFIG_BFIN_EXTMEM_DCACHEABLE=y
302# CONFIG_BFIN_WT is not set 303CONFIG_BFIN_EXTMEM_WRITEBACK=y
304# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
305
306#
307# Memory Protection Unit
308#
303# CONFIG_MPU is not set 309# CONFIG_MPU is not set
304 310
305# 311#
@@ -382,11 +388,11 @@ CONFIG_IP_PNP=y
382# CONFIG_INET_IPCOMP is not set 388# CONFIG_INET_IPCOMP is not set
383# CONFIG_INET_XFRM_TUNNEL is not set 389# CONFIG_INET_XFRM_TUNNEL is not set
384# CONFIG_INET_TUNNEL is not set 390# CONFIG_INET_TUNNEL is not set
385CONFIG_INET_XFRM_MODE_TRANSPORT=y 391# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
386CONFIG_INET_XFRM_MODE_TUNNEL=y 392# CONFIG_INET_XFRM_MODE_TUNNEL is not set
387CONFIG_INET_XFRM_MODE_BEET=y 393# CONFIG_INET_XFRM_MODE_BEET is not set
388# CONFIG_INET_LRO is not set 394# CONFIG_INET_LRO is not set
389CONFIG_INET_DIAG=y 395# CONFIG_INET_DIAG is not set
390CONFIG_INET_TCP_DIAG=y 396CONFIG_INET_TCP_DIAG=y
391# CONFIG_TCP_CONG_ADVANCED is not set 397# CONFIG_TCP_CONG_ADVANCED is not set
392CONFIG_TCP_CONG_CUBIC=y 398CONFIG_TCP_CONG_CUBIC=y
diff --git a/arch/blackfin/configs/SRV1_defconfig b/arch/blackfin/configs/SRV1_defconfig
index ec84a53daae..814f9cacf40 100644
--- a/arch/blackfin/configs/SRV1_defconfig
+++ b/arch/blackfin/configs/SRV1_defconfig
@@ -279,12 +279,18 @@ CONFIG_DMA_UNCACHED_2M=y
279# Cache Support 279# Cache Support
280# 280#
281CONFIG_BFIN_ICACHE=y 281CONFIG_BFIN_ICACHE=y
282# CONFIG_BFIN_ICACHE_LOCK is not set
282CONFIG_BFIN_DCACHE=y 283CONFIG_BFIN_DCACHE=y
283# CONFIG_BFIN_DCACHE_BANKA is not set 284# CONFIG_BFIN_DCACHE_BANKA is not set
284# CONFIG_BFIN_ICACHE_LOCK is not set 285CONFIG_BFIN_EXTMEM_ICACHEABLE=y
285CONFIG_BFIN_WB=y 286CONFIG_BFIN_EXTMEM_DCACHEABLE=y
286# CONFIG_BFIN_WT is not set 287CONFIG_BFIN_EXTMEM_WRITEBACK=y
287CONFIG_L1_MAX_PIECE=16 288# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
289
290#
291# Memory Protection Unit
292#
293# CONFIG_MPU is not set
288 294
289# 295#
290# Asynchonous Memory Configuration 296# Asynchonous Memory Configuration
diff --git a/arch/blackfin/configs/TCM-BF537_defconfig b/arch/blackfin/configs/TCM-BF537_defconfig
index 6e2796240fd..375e75a27ab 100644
--- a/arch/blackfin/configs/TCM-BF537_defconfig
+++ b/arch/blackfin/configs/TCM-BF537_defconfig
@@ -287,11 +287,17 @@ CONFIG_DMA_UNCACHED_1M=y
287# Cache Support 287# Cache Support
288# 288#
289CONFIG_BFIN_ICACHE=y 289CONFIG_BFIN_ICACHE=y
290# CONFIG_BFIN_ICACHE_LOCK is not set
290CONFIG_BFIN_DCACHE=y 291CONFIG_BFIN_DCACHE=y
291# CONFIG_BFIN_DCACHE_BANKA is not set 292# CONFIG_BFIN_DCACHE_BANKA is not set
292# CONFIG_BFIN_ICACHE_LOCK is not set 293CONFIG_BFIN_EXTMEM_ICACHEABLE=y
293CONFIG_BFIN_WB=y 294CONFIG_BFIN_EXTMEM_DCACHEABLE=y
294# CONFIG_BFIN_WT is not set 295CONFIG_BFIN_EXTMEM_WRITEBACK=y
296# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
297
298#
299# Memory Protection Unit
300#
295# CONFIG_MPU is not set 301# CONFIG_MPU is not set
296 302
297# 303#
@@ -709,7 +715,7 @@ CONFIG_FRAME_WARN=1024
709CONFIG_DEBUG_FS=y 715CONFIG_DEBUG_FS=y
710# CONFIG_HEADERS_CHECK is not set 716# CONFIG_HEADERS_CHECK is not set
711# CONFIG_DEBUG_KERNEL is not set 717# CONFIG_DEBUG_KERNEL is not set
712# CONFIG_DEBUG_BUGVERBOSE is not set 718CONFIG_DEBUG_BUGVERBOSE=y
713# CONFIG_DEBUG_MEMORY_INIT is not set 719# CONFIG_DEBUG_MEMORY_INIT is not set
714# CONFIG_RCU_CPU_STALL_DETECTOR is not set 720# CONFIG_RCU_CPU_STALL_DETECTOR is not set
715# CONFIG_SYSCTL_SYSCALL_CHECK is not set 721# CONFIG_SYSCTL_SYSCALL_CHECK is not set
diff --git a/arch/blackfin/include/asm/atomic.h b/arch/blackfin/include/asm/atomic.h
index b1d92f13ef9..88f36d599fe 100644
--- a/arch/blackfin/include/asm/atomic.h
+++ b/arch/blackfin/include/asm/atomic.h
@@ -1,24 +1,21 @@
1#ifndef __ARCH_BLACKFIN_ATOMIC__ 1#ifndef __ARCH_BLACKFIN_ATOMIC__
2#define __ARCH_BLACKFIN_ATOMIC__ 2#define __ARCH_BLACKFIN_ATOMIC__
3 3
4#ifndef CONFIG_SMP
5# include <asm-generic/atomic.h>
6#else
7
4#include <linux/types.h> 8#include <linux/types.h>
5#include <asm/system.h> /* local_irq_XXX() */ 9#include <asm/system.h> /* local_irq_XXX() */
6 10
7/* 11/*
8 * Atomic operations that C can't guarantee us. Useful for 12 * Atomic operations that C can't guarantee us. Useful for
9 * resource counting etc.. 13 * resource counting etc..
10 *
11 * Generally we do not concern about SMP BFIN systems, so we don't have
12 * to deal with that.
13 *
14 * Tony Kou (tonyko@lineo.ca) Lineo Inc. 2001
15 */ 14 */
16 15
17#define ATOMIC_INIT(i) { (i) } 16#define ATOMIC_INIT(i) { (i) }
18#define atomic_set(v, i) (((v)->counter) = i) 17#define atomic_set(v, i) (((v)->counter) = i)
19 18
20#ifdef CONFIG_SMP
21
22#define atomic_read(v) __raw_uncached_fetch_asm(&(v)->counter) 19#define atomic_read(v) __raw_uncached_fetch_asm(&(v)->counter)
23 20
24asmlinkage int __raw_uncached_fetch_asm(const volatile int *ptr); 21asmlinkage int __raw_uncached_fetch_asm(const volatile int *ptr);
@@ -84,100 +81,6 @@ static inline int atomic_test_mask(int mask, atomic_t *v)
84#define smp_mb__before_atomic_inc() barrier() 81#define smp_mb__before_atomic_inc() barrier()
85#define smp_mb__after_atomic_inc() barrier() 82#define smp_mb__after_atomic_inc() barrier()
86 83
87#else /* !CONFIG_SMP */
88
89#define atomic_read(v) ((v)->counter)
90
91static inline void atomic_add(int i, atomic_t *v)
92{
93 unsigned long flags;
94
95 local_irq_save_hw(flags);
96 v->counter += i;
97 local_irq_restore_hw(flags);
98}
99
100static inline void atomic_sub(int i, atomic_t *v)
101{
102 unsigned long flags;
103
104 local_irq_save_hw(flags);
105 v->counter -= i;
106 local_irq_restore_hw(flags);
107
108}
109
110static inline int atomic_add_return(int i, atomic_t *v)
111{
112 int __temp = 0;
113 unsigned long flags;
114
115 local_irq_save_hw(flags);
116 v->counter += i;
117 __temp = v->counter;
118 local_irq_restore_hw(flags);
119
120
121 return __temp;
122}
123
124static inline int atomic_sub_return(int i, atomic_t *v)
125{
126 int __temp = 0;
127 unsigned long flags;
128
129 local_irq_save_hw(flags);
130 v->counter -= i;
131 __temp = v->counter;
132 local_irq_restore_hw(flags);
133
134 return __temp;
135}
136
137static inline void atomic_inc(volatile atomic_t *v)
138{
139 unsigned long flags;
140
141 local_irq_save_hw(flags);
142 v->counter++;
143 local_irq_restore_hw(flags);
144}
145
146static inline void atomic_dec(volatile atomic_t *v)
147{
148 unsigned long flags;
149
150 local_irq_save_hw(flags);
151 v->counter--;
152 local_irq_restore_hw(flags);
153}
154
155static inline void atomic_clear_mask(unsigned int mask, atomic_t *v)
156{
157 unsigned long flags;
158
159 local_irq_save_hw(flags);
160 v->counter &= ~mask;
161 local_irq_restore_hw(flags);
162}
163
164static inline void atomic_set_mask(unsigned int mask, atomic_t *v)
165{
166 unsigned long flags;
167
168 local_irq_save_hw(flags);
169 v->counter |= mask;
170 local_irq_restore_hw(flags);
171}
172
173/* Atomic operations are already serializing */
174#define smp_mb__before_atomic_dec() barrier()
175#define smp_mb__after_atomic_dec() barrier()
176#define smp_mb__before_atomic_inc() barrier()
177#define smp_mb__after_atomic_inc() barrier()
178
179#endif /* !CONFIG_SMP */
180
181#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) 84#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0)
182#define atomic_dec_return(v) atomic_sub_return(1,(v)) 85#define atomic_dec_return(v) atomic_sub_return(1,(v))
183#define atomic_inc_return(v) atomic_add_return(1,(v)) 86#define atomic_inc_return(v) atomic_add_return(1,(v))
@@ -210,4 +113,6 @@ static inline void atomic_set_mask(unsigned int mask, atomic_t *v)
210 113
211#include <asm-generic/atomic-long.h> 114#include <asm-generic/atomic-long.h>
212 115
213#endif /* __ARCH_BLACKFIN_ATOMIC __ */ 116#endif
117
118#endif
diff --git a/arch/blackfin/include/asm/auxvec.h b/arch/blackfin/include/asm/auxvec.h
index 215506cd87b..41fa68b7128 100644
--- a/arch/blackfin/include/asm/auxvec.h
+++ b/arch/blackfin/include/asm/auxvec.h
@@ -1,4 +1 @@
1#ifndef __ASMBFIN_AUXVEC_H #include <asm-generic/auxvec.h>
2#define __ASMBFIN_AUXVEC_H
3
4#endif
diff --git a/arch/blackfin/include/asm/bitops.h b/arch/blackfin/include/asm/bitops.h
index 75fee2f7d9f..daffa71576d 100644
--- a/arch/blackfin/include/asm/bitops.h
+++ b/arch/blackfin/include/asm/bitops.h
@@ -1,26 +1,22 @@
1#ifndef _BLACKFIN_BITOPS_H 1#ifndef _BLACKFIN_BITOPS_H
2#define _BLACKFIN_BITOPS_H 2#define _BLACKFIN_BITOPS_H
3 3
4/* 4#ifndef CONFIG_SMP
5 * Copyright 1992, Linus Torvalds. 5# include <asm-generic/bitops.h>
6 */ 6#else
7
8#include <linux/compiler.h>
9#include <asm/byteorder.h> /* swab32 */
10
11#ifdef __KERNEL__
12 7
13#ifndef _LINUX_BITOPS_H 8#ifndef _LINUX_BITOPS_H
14#error only <linux/bitops.h> can be included directly 9#error only <linux/bitops.h> can be included directly
15#endif 10#endif
16 11
12#include <linux/compiler.h>
13#include <asm/byteorder.h> /* swab32 */
14
17#include <asm-generic/bitops/ffs.h> 15#include <asm-generic/bitops/ffs.h>
18#include <asm-generic/bitops/__ffs.h> 16#include <asm-generic/bitops/__ffs.h>
19#include <asm-generic/bitops/sched.h> 17#include <asm-generic/bitops/sched.h>
20#include <asm-generic/bitops/ffz.h> 18#include <asm-generic/bitops/ffz.h>
21 19
22#ifdef CONFIG_SMP
23
24#include <linux/linkage.h> 20#include <linux/linkage.h>
25 21
26asmlinkage int __raw_bit_set_asm(volatile unsigned long *addr, int nr); 22asmlinkage int __raw_bit_set_asm(volatile unsigned long *addr, int nr);
@@ -79,189 +75,13 @@ static inline int test_and_change_bit(int nr, volatile unsigned long *addr)
79 return __raw_bit_test_toggle_asm(a, nr & 0x1f); 75 return __raw_bit_test_toggle_asm(a, nr & 0x1f);
80} 76}
81 77
82#else /* !CONFIG_SMP */
83
84#include <asm/system.h> /* save_flags */
85
86static inline void set_bit(int nr, volatile unsigned long *addr)
87{
88 int *a = (int *)addr;
89 int mask;
90 unsigned long flags;
91 a += nr >> 5;
92 mask = 1 << (nr & 0x1f);
93 local_irq_save_hw(flags);
94 *a |= mask;
95 local_irq_restore_hw(flags);
96}
97
98static inline void clear_bit(int nr, volatile unsigned long *addr)
99{
100 int *a = (int *)addr;
101 int mask;
102 unsigned long flags;
103 a += nr >> 5;
104 mask = 1 << (nr & 0x1f);
105 local_irq_save_hw(flags);
106 *a &= ~mask;
107 local_irq_restore_hw(flags);
108}
109
110static inline void change_bit(int nr, volatile unsigned long *addr)
111{
112 int mask;
113 unsigned long flags;
114 unsigned long *ADDR = (unsigned long *)addr;
115
116 ADDR += nr >> 5;
117 mask = 1 << (nr & 31);
118 local_irq_save_hw(flags);
119 *ADDR ^= mask;
120 local_irq_restore_hw(flags);
121}
122
123static inline int test_and_set_bit(int nr, volatile unsigned long *addr)
124{
125 int mask, retval;
126 volatile unsigned int *a = (volatile unsigned int *)addr;
127 unsigned long flags;
128
129 a += nr >> 5;
130 mask = 1 << (nr & 0x1f);
131 local_irq_save_hw(flags);
132 retval = (mask & *a) != 0;
133 *a |= mask;
134 local_irq_restore_hw(flags);
135
136 return retval;
137}
138
139static inline int test_and_clear_bit(int nr, volatile unsigned long *addr)
140{
141 int mask, retval;
142 volatile unsigned int *a = (volatile unsigned int *)addr;
143 unsigned long flags;
144
145 a += nr >> 5;
146 mask = 1 << (nr & 0x1f);
147 local_irq_save_hw(flags);
148 retval = (mask & *a) != 0;
149 *a &= ~mask;
150 local_irq_restore_hw(flags);
151
152 return retval;
153}
154
155static inline int test_and_change_bit(int nr, volatile unsigned long *addr)
156{
157 int mask, retval;
158 volatile unsigned int *a = (volatile unsigned int *)addr;
159 unsigned long flags;
160
161 a += nr >> 5;
162 mask = 1 << (nr & 0x1f);
163 local_irq_save_hw(flags);
164 retval = (mask & *a) != 0;
165 *a ^= mask;
166 local_irq_restore_hw(flags);
167 return retval;
168}
169
170#endif /* CONFIG_SMP */
171
172/* 78/*
173 * clear_bit() doesn't provide any barrier for the compiler. 79 * clear_bit() doesn't provide any barrier for the compiler.
174 */ 80 */
175#define smp_mb__before_clear_bit() barrier() 81#define smp_mb__before_clear_bit() barrier()
176#define smp_mb__after_clear_bit() barrier() 82#define smp_mb__after_clear_bit() barrier()
177 83
178static inline void __set_bit(int nr, volatile unsigned long *addr) 84#include <asm-generic/bitops/non-atomic.h>
179{
180 int *a = (int *)addr;
181 int mask;
182
183 a += nr >> 5;
184 mask = 1 << (nr & 0x1f);
185 *a |= mask;
186}
187
188static inline void __clear_bit(int nr, volatile unsigned long *addr)
189{
190 int *a = (int *)addr;
191 int mask;
192
193 a += nr >> 5;
194 mask = 1 << (nr & 0x1f);
195 *a &= ~mask;
196}
197
198static inline void __change_bit(int nr, volatile unsigned long *addr)
199{
200 int mask;
201 unsigned long *ADDR = (unsigned long *)addr;
202
203 ADDR += nr >> 5;
204 mask = 1 << (nr & 31);
205 *ADDR ^= mask;
206}
207
208static inline int __test_and_set_bit(int nr, volatile unsigned long *addr)
209{
210 int mask, retval;
211 volatile unsigned int *a = (volatile unsigned int *)addr;
212
213 a += nr >> 5;
214 mask = 1 << (nr & 0x1f);
215 retval = (mask & *a) != 0;
216 *a |= mask;
217 return retval;
218}
219
220static inline int __test_and_clear_bit(int nr, volatile unsigned long *addr)
221{
222 int mask, retval;
223 volatile unsigned int *a = (volatile unsigned int *)addr;
224
225 a += nr >> 5;
226 mask = 1 << (nr & 0x1f);
227 retval = (mask & *a) != 0;
228 *a &= ~mask;
229 return retval;
230}
231
232static inline int __test_and_change_bit(int nr,
233 volatile unsigned long *addr)
234{
235 int mask, retval;
236 volatile unsigned int *a = (volatile unsigned int *)addr;
237
238 a += nr >> 5;
239 mask = 1 << (nr & 0x1f);
240 retval = (mask & *a) != 0;
241 *a ^= mask;
242 return retval;
243}
244
245static inline int __test_bit(int nr, const void *addr)
246{
247 int *a = (int *)addr;
248 int mask;
249
250 a += nr >> 5;
251 mask = 1 << (nr & 0x1f);
252 return ((mask & *a) != 0);
253}
254
255#ifndef CONFIG_SMP
256/*
257 * This routine doesn't need irq save and restore ops in UP
258 * context.
259 */
260static inline int test_bit(int nr, const void *addr)
261{
262 return __test_bit(nr, addr);
263}
264#endif
265 85
266#include <asm-generic/bitops/find.h> 86#include <asm-generic/bitops/find.h>
267#include <asm-generic/bitops/hweight.h> 87#include <asm-generic/bitops/hweight.h>
@@ -272,10 +92,10 @@ static inline int test_bit(int nr, const void *addr)
272 92
273#include <asm-generic/bitops/minix.h> 93#include <asm-generic/bitops/minix.h>
274 94
275#endif /* __KERNEL__ */
276
277#include <asm-generic/bitops/fls.h> 95#include <asm-generic/bitops/fls.h>
278#include <asm-generic/bitops/__fls.h> 96#include <asm-generic/bitops/__fls.h>
279#include <asm-generic/bitops/fls64.h> 97#include <asm-generic/bitops/fls64.h>
280 98
99#endif /* CONFIG_SMP */
100
281#endif /* _BLACKFIN_BITOPS_H */ 101#endif /* _BLACKFIN_BITOPS_H */
diff --git a/arch/blackfin/include/asm/blackfin.h b/arch/blackfin/include/asm/blackfin.h
index 8bb2cb13975..4d443958339 100644
--- a/arch/blackfin/include/asm/blackfin.h
+++ b/arch/blackfin/include/asm/blackfin.h
@@ -86,6 +86,7 @@ static inline void CSYNC(void)
86 86
87#endif /* __ASSEMBLY__ */ 87#endif /* __ASSEMBLY__ */
88 88
89#include <asm/mem_map.h>
89#include <mach/blackfin.h> 90#include <mach/blackfin.h>
90#include <asm/bfin-global.h> 91#include <asm/bfin-global.h>
91 92
diff --git a/arch/blackfin/include/asm/bugs.h b/arch/blackfin/include/asm/bugs.h
index 9093c9c1fb8..61791e1ad9f 100644
--- a/arch/blackfin/include/asm/bugs.h
+++ b/arch/blackfin/include/asm/bugs.h
@@ -1,16 +1 @@
1/* #include <asm-generic/bugs.h>
2 * include/asm-blackfin/bugs.h
3 *
4 * Copyright (C) 1994 Linus Torvalds
5 */
6
7/*
8 * This is included by init/main.c to check for architecture-dependent bugs.
9 *
10 * Needs:
11 * void check_bugs(void);
12 */
13
14static void check_bugs(void)
15{
16}
diff --git a/arch/blackfin/include/asm/cache.h b/arch/blackfin/include/asm/cache.h
index 2ef669ed922..477050ad5c5 100644
--- a/arch/blackfin/include/asm/cache.h
+++ b/arch/blackfin/include/asm/cache.h
@@ -35,10 +35,10 @@
35 35
36#if defined(CONFIG_SMP) && \ 36#if defined(CONFIG_SMP) && \
37 !defined(CONFIG_BFIN_CACHE_COHERENT) 37 !defined(CONFIG_BFIN_CACHE_COHERENT)
38# if defined(CONFIG_BFIN_ICACHE) 38# if defined(CONFIG_BFIN_ICACHEABLE) || defined(CONFIG_BFIN_L2_ICACHEABLE)
39# define __ARCH_SYNC_CORE_ICACHE 39# define __ARCH_SYNC_CORE_ICACHE
40# endif 40# endif
41# if defined(CONFIG_BFIN_DCACHE) 41# if defined(CONFIG_BFIN_DCACHEABLE) || defined(CONFIG_BFIN_L2_DCACHEABLE)
42# define __ARCH_SYNC_CORE_DCACHE 42# define __ARCH_SYNC_CORE_DCACHE
43# endif 43# endif
44#ifndef __ASSEMBLY__ 44#ifndef __ASSEMBLY__
diff --git a/arch/blackfin/include/asm/cacheflush.h b/arch/blackfin/include/asm/cacheflush.h
index 5c17dee53b5..7e55549e180 100644
--- a/arch/blackfin/include/asm/cacheflush.h
+++ b/arch/blackfin/include/asm/cacheflush.h
@@ -56,7 +56,7 @@ extern void blackfin_invalidate_entire_icache(void);
56 56
57static inline void flush_icache_range(unsigned start, unsigned end) 57static inline void flush_icache_range(unsigned start, unsigned end)
58{ 58{
59#if defined(CONFIG_BFIN_WB) 59#if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK)
60 blackfin_dcache_flush_range(start, end); 60 blackfin_dcache_flush_range(start, end);
61#endif 61#endif
62 62
@@ -87,9 +87,9 @@ do { memcpy(dst, src, len); \
87#else 87#else
88# define invalidate_dcache_range(start,end) do { } while (0) 88# define invalidate_dcache_range(start,end) do { } while (0)
89#endif 89#endif
90#if defined(CONFIG_BFIN_DCACHE) && defined(CONFIG_BFIN_WB) 90#if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK)
91# define flush_dcache_range(start,end) blackfin_dcache_flush_range((start), (end)) 91# define flush_dcache_range(start,end) blackfin_dcache_flush_range((start), (end))
92# define flush_dcache_page(page) blackfin_dflush_page(page_address(page)) 92# define flush_dcache_page(page) blackfin_dflush_page(page_address(page))
93#else 93#else
94# define flush_dcache_range(start,end) do { } while (0) 94# define flush_dcache_range(start,end) do { } while (0)
95# define flush_dcache_page(page) do { } while (0) 95# define flush_dcache_page(page) do { } while (0)
@@ -100,7 +100,7 @@ extern unsigned long reserved_mem_icache_on;
100 100
101static inline int bfin_addr_dcacheable(unsigned long addr) 101static inline int bfin_addr_dcacheable(unsigned long addr)
102{ 102{
103#ifdef CONFIG_BFIN_DCACHE 103#ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE
104 if (addr < (_ramend - DMA_UNCACHED_REGION)) 104 if (addr < (_ramend - DMA_UNCACHED_REGION))
105 return 1; 105 return 1;
106#endif 106#endif
@@ -109,7 +109,7 @@ static inline int bfin_addr_dcacheable(unsigned long addr)
109 addr >= _ramend && addr < physical_mem_end) 109 addr >= _ramend && addr < physical_mem_end)
110 return 1; 110 return 1;
111 111
112#ifndef CONFIG_BFIN_L2_NOT_CACHED 112#ifdef CONFIG_BFIN_L2_DCACHEABLE
113 if (addr >= L2_START && addr < L2_START + L2_LENGTH) 113 if (addr >= L2_START && addr < L2_START + L2_LENGTH)
114 return 1; 114 return 1;
115#endif 115#endif
diff --git a/arch/blackfin/include/asm/cplb.h b/arch/blackfin/include/asm/cplb.h
index a75a6a9f094..c5dacf8f8cf 100644
--- a/arch/blackfin/include/asm/cplb.h
+++ b/arch/blackfin/include/asm/cplb.h
@@ -37,8 +37,6 @@
37#define L1_IMEMORY ( CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) 37#define L1_IMEMORY ( CPLB_USER_RD | CPLB_VALID | CPLB_LOCK)
38#define SDRAM_INON_CHBL ( CPLB_USER_RD | CPLB_VALID) 38#define SDRAM_INON_CHBL ( CPLB_USER_RD | CPLB_VALID)
39 39
40/*Use the menuconfig cache policy here - CONFIG_BFIN_WT/CONFIG_BFIN_WB*/
41
42#if ANOMALY_05000158 40#if ANOMALY_05000158
43#define ANOMALY_05000158_WORKAROUND 0x200 41#define ANOMALY_05000158_WORKAROUND 0x200
44#else 42#else
@@ -47,10 +45,12 @@
47 45
48#define CPLB_COMMON (CPLB_DIRTY | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) 46#define CPLB_COMMON (CPLB_DIRTY | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND)
49 47
50#ifdef CONFIG_BFIN_WB /*Write Back Policy */ 48#ifdef CONFIG_BFIN_EXTMEM_WRITEBACK
51#define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_COMMON) 49#define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_COMMON)
52#else /*Write Through */ 50#elif defined(CONFIG_BFIN_EXTMEM_WRITETHROUGH)
53#define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_COMMON) 51#define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_COMMON)
52#else
53#define SDRAM_DGENERIC (CPLB_COMMON)
54#endif 54#endif
55 55
56#define SDRAM_DNON_CHBL (CPLB_COMMON) 56#define SDRAM_DNON_CHBL (CPLB_COMMON)
@@ -61,21 +61,23 @@
61 61
62#ifdef CONFIG_SMP 62#ifdef CONFIG_SMP
63#define L2_ATTR (INITIAL_T | I_CPLB | D_CPLB) 63#define L2_ATTR (INITIAL_T | I_CPLB | D_CPLB)
64#define L2_IMEMORY (CPLB_COMMON) 64#define L2_IMEMORY (CPLB_COMMON | PAGE_SIZE_1MB)
65#define L2_DMEMORY (CPLB_LOCK | CPLB_COMMON) 65#define L2_DMEMORY (CPLB_LOCK | CPLB_COMMON | PAGE_SIZE_1MB)
66 66
67#else 67#else
68#define L2_ATTR (INITIAL_T | SWITCH_T | I_CPLB | D_CPLB) 68#define L2_ATTR (INITIAL_T | SWITCH_T | I_CPLB | D_CPLB)
69#define L2_IMEMORY (SDRAM_IGENERIC) 69# if defined(CONFIG_BFIN_L2_ICACHEABLE)
70 70# define L2_IMEMORY (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | PAGE_SIZE_1MB)
71# if defined(CONFIG_BFIN_L2_WB) 71# else
72# define L2_DMEMORY (CPLB_L1_CHBL | CPLB_COMMON) 72# define L2_IMEMORY ( CPLB_USER_RD | CPLB_VALID | PAGE_SIZE_1MB)
73# elif defined(CONFIG_BFIN_L2_WT) 73# endif
74# define L2_DMEMORY (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_COMMON) 74
75# elif defined(CONFIG_BFIN_L2_NOT_CACHED) 75# if defined(CONFIG_BFIN_L2_WRITEBACK)
76# define L2_DMEMORY (CPLB_COMMON) 76# define L2_DMEMORY (CPLB_L1_CHBL | CPLB_COMMON | PAGE_SIZE_1MB)
77# elif defined(CONFIG_BFIN_L2_WRITETHROUGH)
78# define L2_DMEMORY (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_COMMON | PAGE_SIZE_1MB)
77# else 79# else
78# define L2_DMEMORY (0) 80# define L2_DMEMORY (CPLB_COMMON | PAGE_SIZE_1MB)
79# endif 81# endif
80#endif /* CONFIG_SMP */ 82#endif /* CONFIG_SMP */
81 83
diff --git a/arch/blackfin/include/asm/cputime.h b/arch/blackfin/include/asm/cputime.h
index 2b19705f988..6d68ad7e0ea 100644
--- a/arch/blackfin/include/asm/cputime.h
+++ b/arch/blackfin/include/asm/cputime.h
@@ -1,6 +1 @@
1#ifndef __BLACKFIN_CPUTIME_H
2#define __BLACKFIN_CPUTIME_H
3
4#include <asm-generic/cputime.h> #include <asm-generic/cputime.h>
5
6#endif /* __BLACKFIN_CPUTIME_H */
diff --git a/arch/blackfin/include/asm/current.h b/arch/blackfin/include/asm/current.h
index 31918d29122..4c51401b553 100644
--- a/arch/blackfin/include/asm/current.h
+++ b/arch/blackfin/include/asm/current.h
@@ -1,23 +1 @@
1#ifndef _BLACKFIN_CURRENT_H #include <asm-generic/current.h>
2#define _BLACKFIN_CURRENT_H
3/*
4 * current.h
5 * (C) Copyright 2000, Lineo, David McCullough <davidm@lineo.com>
6 *
7 * rather than dedicate a register (as the m68k source does), we
8 * just keep a global, we should probably just change it all to be
9 * current and lose _current_task.
10 */
11#include <linux/thread_info.h>
12
13struct task_struct;
14
15static inline struct task_struct *get_current(void) __attribute__ ((__const__));
16static inline struct task_struct *get_current(void)
17{
18 return (current_thread_info()->task);
19}
20
21#define current (get_current())
22
23#endif /* _BLACKFIN_CURRENT_H */
diff --git a/arch/blackfin/include/asm/device.h b/arch/blackfin/include/asm/device.h
index d8f9872b0e2..f0a4c256403 100644
--- a/arch/blackfin/include/asm/device.h
+++ b/arch/blackfin/include/asm/device.h
@@ -1,7 +1 @@
1/*
2 * Arch specific extensions to struct device
3 *
4 * This file is released under the GPLv2
5 */
6#include <asm-generic/device.h> #include <asm-generic/device.h>
7
diff --git a/arch/blackfin/include/asm/dma-mapping.h b/arch/blackfin/include/asm/dma-mapping.h
index d7d9148e433..ed6b1f3cccc 100644
--- a/arch/blackfin/include/asm/dma-mapping.h
+++ b/arch/blackfin/include/asm/dma-mapping.h
@@ -95,4 +95,17 @@ static inline void dma_sync_single_for_device(struct device *dev,
95 enum dma_data_direction dir) 95 enum dma_data_direction dir)
96{ 96{
97} 97}
98
99static inline void dma_sync_sg_for_cpu(struct device *dev,
100 struct scatterlist *sg,
101 int nents, enum dma_data_direction dir)
102{
103}
104
105static inline void dma_sync_sg_for_device(struct device *dev,
106 struct scatterlist *sg,
107 int nents, enum dma_data_direction dir)
108{
109}
110
98#endif /* _BLACKFIN_DMA_MAPPING_H */ 111#endif /* _BLACKFIN_DMA_MAPPING_H */
diff --git a/arch/blackfin/include/asm/elf.h b/arch/blackfin/include/asm/elf.h
index 230e1605d3f..5a87baf0659 100644
--- a/arch/blackfin/include/asm/elf.h
+++ b/arch/blackfin/include/asm/elf.h
@@ -20,7 +20,7 @@
20 20
21typedef unsigned long elf_greg_t; 21typedef unsigned long elf_greg_t;
22 22
23#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t)) 23#define ELF_NGREG 40 /* (sizeof(struct user_regs_struct) / sizeof(elf_greg_t)) */
24typedef elf_greg_t elf_gregset_t[ELF_NGREG]; 24typedef elf_greg_t elf_gregset_t[ELF_NGREG];
25 25
26typedef struct user_bfinfp_struct elf_fpregset_t; 26typedef struct user_bfinfp_struct elf_fpregset_t;
diff --git a/arch/blackfin/include/asm/emergency-restart.h b/arch/blackfin/include/asm/emergency-restart.h
index 27f6c785d10..3711bd9d50b 100644
--- a/arch/blackfin/include/asm/emergency-restart.h
+++ b/arch/blackfin/include/asm/emergency-restart.h
@@ -1,6 +1 @@
1#ifndef _ASM_EMERGENCY_RESTART_H
2#define _ASM_EMERGENCY_RESTART_H
3
4#include <asm-generic/emergency-restart.h> #include <asm-generic/emergency-restart.h>
5
6#endif /* _ASM_EMERGENCY_RESTART_H */
diff --git a/arch/blackfin/include/asm/errno.h b/arch/blackfin/include/asm/errno.h
index 164e4f39bb5..4c82b503d92 100644
--- a/arch/blackfin/include/asm/errno.h
+++ b/arch/blackfin/include/asm/errno.h
@@ -1,6 +1 @@
1#ifndef _BFIN_ERRNO_H #include <asm-generic/errno.h>
2#define _BFIN_ERRNO_H
3
4#include<asm-generic/errno.h>
5
6#endif /* _BFIN_ERRNO_H */
diff --git a/arch/blackfin/include/asm/fb.h b/arch/blackfin/include/asm/fb.h
index c7df3803099..3a4988e8df4 100644
--- a/arch/blackfin/include/asm/fb.h
+++ b/arch/blackfin/include/asm/fb.h
@@ -1,12 +1 @@
1#ifndef _ASM_FB_H_ #include <asm-generic/fb.h>
2#define _ASM_FB_H_
3#include <linux/fb.h>
4
5#define fb_pgprotect(...) do {} while (0)
6
7static inline int fb_is_primary_device(struct fb_info *info)
8{
9 return 0;
10}
11
12#endif /* _ASM_FB_H_ */
diff --git a/arch/blackfin/include/asm/futex.h b/arch/blackfin/include/asm/futex.h
index 6a332a9f099..0b745828f42 100644
--- a/arch/blackfin/include/asm/futex.h
+++ b/arch/blackfin/include/asm/futex.h
@@ -1,6 +1 @@
1#ifndef _ASM_FUTEX_H
2#define _ASM_FUTEX_H
3
4#include <asm-generic/futex.h> #include <asm-generic/futex.h>
5
6#endif
diff --git a/arch/blackfin/include/asm/hardirq.h b/arch/blackfin/include/asm/hardirq.h
index 717181a1749..cbd52f86bb9 100644
--- a/arch/blackfin/include/asm/hardirq.h
+++ b/arch/blackfin/include/asm/hardirq.h
@@ -1,47 +1,11 @@
1#ifndef __BFIN_HARDIRQ_H 1#ifndef __BFIN_HARDIRQ_H
2#define __BFIN_HARDIRQ_H 2#define __BFIN_HARDIRQ_H
3 3
4#include <linux/cache.h>
5#include <linux/threads.h>
6#include <asm/irq.h>
7
8typedef struct {
9 unsigned int __softirq_pending;
10 unsigned int __syscall_count;
11 struct task_struct *__ksoftirqd_task;
12} ____cacheline_aligned irq_cpustat_t;
13
14#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
15
16/*
17 * We put the hardirq and softirq counter into the preemption
18 * counter. The bitmask has the following meaning:
19 *
20 * - bits 0-7 are the preemption count (max preemption depth: 256)
21 * - bits 8-15 are the softirq count (max # of softirqs: 256)
22 * - bits 16-23 are the hardirq count (max # of hardirqs: 256)
23 *
24 * - ( bit 26 is the PREEMPT_ACTIVE flag. )
25 *
26 * PREEMPT_MASK: 0x000000ff
27 * HARDIRQ_MASK: 0x0000ff00
28 * SOFTIRQ_MASK: 0x00ff0000
29 */
30
31#if NR_IRQS > 256
32#define HARDIRQ_BITS 9
33#else
34#define HARDIRQ_BITS 8
35#endif
36
37#ifdef NR_IRQS
38# if (1 << HARDIRQ_BITS) < NR_IRQS
39# error HARDIRQ_BITS is too low!
40# endif
41#endif
42
43#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 4#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
44 5
45extern void ack_bad_irq(unsigned int irq); 6extern void ack_bad_irq(unsigned int irq);
7#define ack_bad_irq ack_bad_irq
8
9#include <asm-generic/hardirq.h>
46 10
47#endif 11#endif
diff --git a/arch/blackfin/include/asm/hw_irq.h b/arch/blackfin/include/asm/hw_irq.h
index 5b51eaec012..1f5ef7da004 100644
--- a/arch/blackfin/include/asm/hw_irq.h
+++ b/arch/blackfin/include/asm/hw_irq.h
@@ -1,6 +1 @@
1#ifndef __ASM_BFIN_HW_IRQ_H #include <asm-generic/hw_irq.h>
2#define __ASM_BFIN_HW_IRQ_H
3
4/* Dummy include. */
5
6#endif
diff --git a/arch/blackfin/include/asm/io.h b/arch/blackfin/include/asm/io.h
index 3022b5c96b3..37053eca200 100644
--- a/arch/blackfin/include/asm/io.h
+++ b/arch/blackfin/include/asm/io.h
@@ -222,7 +222,6 @@ extern void blkfin_inv_cache_all(void);
222#define ioport_unmap(addr) 222#define ioport_unmap(addr)
223 223
224/* Pages to physical address... */ 224/* Pages to physical address... */
225#define page_to_phys(page) ((page - mem_map) << PAGE_SHIFT)
226#define page_to_bus(page) ((page - mem_map) << PAGE_SHIFT) 225#define page_to_bus(page) ((page - mem_map) << PAGE_SHIFT)
227 226
228#define phys_to_virt(vaddr) ((void *) (vaddr)) 227#define phys_to_virt(vaddr) ((void *) (vaddr))
diff --git a/arch/blackfin/include/asm/ioctls.h b/arch/blackfin/include/asm/ioctls.h
index 895e3173165..eca8d75b0a8 100644
--- a/arch/blackfin/include/asm/ioctls.h
+++ b/arch/blackfin/include/asm/ioctls.h
@@ -1,87 +1,7 @@
1#ifndef __ARCH_BFIN_IOCTLS_H__ 1#ifndef __ARCH_BFIN_IOCTLS_H__
2#define __ARCH_BFIN_IOCTLS_H__ 2#define __ARCH_BFIN_IOCTLS_H__
3 3
4#include <asm/ioctl.h>
5
6/* 0x54 is just a magic number to make these relatively unique ('T') */
7
8#define TCGETS 0x5401
9#define TCSETS 0x5402
10#define TCSETSW 0x5403
11#define TCSETSF 0x5404
12#define TCGETA 0x5405
13#define TCSETA 0x5406
14#define TCSETAW 0x5407
15#define TCSETAF 0x5408
16#define TCSBRK 0x5409
17#define TCXONC 0x540A
18#define TCFLSH 0x540B
19#define TIOCEXCL 0x540C
20#define TIOCNXCL 0x540D
21#define TIOCSCTTY 0x540E
22#define TIOCGPGRP 0x540F
23#define TIOCSPGRP 0x5410
24#define TIOCOUTQ 0x5411
25#define TIOCSTI 0x5412
26#define TIOCGWINSZ 0x5413
27#define TIOCSWINSZ 0x5414
28#define TIOCMGET 0x5415
29#define TIOCMBIS 0x5416
30#define TIOCMBIC 0x5417
31#define TIOCMSET 0x5418
32#define TIOCGSOFTCAR 0x5419
33#define TIOCSSOFTCAR 0x541A
34#define FIONREAD 0x541B
35#define TIOCINQ FIONREAD
36#define TIOCLINUX 0x541C
37#define TIOCCONS 0x541D
38#define TIOCGSERIAL 0x541E
39#define TIOCSSERIAL 0x541F
40#define TIOCPKT 0x5420
41#define FIONBIO 0x5421
42#define TIOCNOTTY 0x5422
43#define TIOCSETD 0x5423
44#define TIOCGETD 0x5424
45#define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
46#define TIOCTTYGSTRUCT 0x5426 /* For debugging only */
47#define TIOCSBRK 0x5427 /* BSD compatibility */
48#define TIOCCBRK 0x5428 /* BSD compatibility */
49#define TIOCGSID 0x5429 /* Return the session ID of FD */
50#define TCGETS2 _IOR('T', 0x2A, struct termios2)
51#define TCSETS2 _IOW('T', 0x2B, struct termios2)
52#define TCSETSW2 _IOW('T', 0x2C, struct termios2)
53#define TCSETSF2 _IOW('T', 0x2D, struct termios2)
54/* Get Pty Number (of pty-mux device) */
55#define TIOCGPTN _IOR('T', 0x30, unsigned int)
56#define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */
57
58#define FIONCLEX 0x5450 /* these numbers need to be adjusted. */
59#define FIOCLEX 0x5451
60#define FIOASYNC 0x5452
61#define TIOCSERCONFIG 0x5453
62#define TIOCSERGWILD 0x5454
63#define TIOCSERSWILD 0x5455
64#define TIOCGLCKTRMIOS 0x5456
65#define TIOCSLCKTRMIOS 0x5457
66#define TIOCSERGSTRUCT 0x5458 /* For debugging only */
67#define TIOCSERGETLSR 0x5459 /* Get line status register */
68#define TIOCSERGETMULTI 0x545A /* Get multiport config */
69#define TIOCSERSETMULTI 0x545B /* Set multiport config */
70
71#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */
72#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
73
74#define FIOQSIZE 0x545E 4#define FIOQSIZE 0x545E
5#include <asm-generic/ioctls.h>
75 6
76/* Used for packet mode */ 7#endif
77#define TIOCPKT_DATA 0
78#define TIOCPKT_FLUSHREAD 1
79#define TIOCPKT_FLUSHWRITE 2
80#define TIOCPKT_STOP 4
81#define TIOCPKT_START 8
82#define TIOCPKT_NOSTOP 16
83#define TIOCPKT_DOSTOP 32
84
85#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
86
87#endif /* __ARCH_BFIN_IOCTLS_H__ */
diff --git a/arch/blackfin/include/asm/ipcbuf.h b/arch/blackfin/include/asm/ipcbuf.h
index 8f0899cdf4d..84c7e51cb6d 100644
--- a/arch/blackfin/include/asm/ipcbuf.h
+++ b/arch/blackfin/include/asm/ipcbuf.h
@@ -1,30 +1 @@
1/* Changes origined from m68k version. Lineo Inc. May 2001 */ #include <asm-generic/ipcbuf.h>
2
3#ifndef __BFIN_IPCBUF_H__
4#define __BFIN_IPCBUF_H__
5
6/*
7 * The user_ipc_perm structure for m68k architecture.
8 * Note extra padding because this structure is passed back and forth
9 * between kernel and user space.
10 *
11 * Pad space is left for:
12 * - 32-bit mode_t and seq
13 * - 2 miscellaneous 32-bit values
14 */
15
16struct ipc64_perm {
17 __kernel_key_t key;
18 __kernel_uid32_t uid;
19 __kernel_gid32_t gid;
20 __kernel_uid32_t cuid;
21 __kernel_gid32_t cgid;
22 __kernel_mode_t mode;
23 unsigned short __pad1;
24 unsigned short seq;
25 unsigned short __pad2;
26 unsigned long __unused1;
27 unsigned long __unused2;
28};
29
30#endif /* __BFIN_IPCBUF_H__ */
diff --git a/arch/blackfin/include/asm/ipipe.h b/arch/blackfin/include/asm/ipipe.h
index bbe1c3726b6..87ba9ad399c 100644
--- a/arch/blackfin/include/asm/ipipe.h
+++ b/arch/blackfin/include/asm/ipipe.h
@@ -35,9 +35,9 @@
35#include <asm/atomic.h> 35#include <asm/atomic.h>
36#include <asm/traps.h> 36#include <asm/traps.h>
37 37
38#define IPIPE_ARCH_STRING "1.10-00" 38#define IPIPE_ARCH_STRING "1.11-00"
39#define IPIPE_MAJOR_NUMBER 1 39#define IPIPE_MAJOR_NUMBER 1
40#define IPIPE_MINOR_NUMBER 10 40#define IPIPE_MINOR_NUMBER 11
41#define IPIPE_PATCH_NUMBER 0 41#define IPIPE_PATCH_NUMBER 0
42 42
43#ifdef CONFIG_SMP 43#ifdef CONFIG_SMP
@@ -207,7 +207,7 @@ void ipipe_init_irq_threads(void);
207 207
208int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc); 208int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc);
209 209
210#ifdef CONFIG_GENERIC_CLOCKEVENTS 210#ifdef CONFIG_TICKSOURCE_CORETMR
211#define IRQ_SYSTMR IRQ_CORETMR 211#define IRQ_SYSTMR IRQ_CORETMR
212#define IRQ_PRIOTMR IRQ_CORETMR 212#define IRQ_PRIOTMR IRQ_CORETMR
213#else 213#else
@@ -240,8 +240,13 @@ int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc);
240#define ipipe_init_irq_threads() do { } while (0) 240#define ipipe_init_irq_threads() do { } while (0)
241#define ipipe_start_irq_thread(irq, desc) 0 241#define ipipe_start_irq_thread(irq, desc) 0
242 242
243#ifndef CONFIG_TICKSOURCE_GPTMR0
243#define IRQ_SYSTMR IRQ_CORETMR 244#define IRQ_SYSTMR IRQ_CORETMR
244#define IRQ_PRIOTMR IRQ_CORETMR 245#define IRQ_PRIOTMR IRQ_CORETMR
246#else
247#define IRQ_SYSTMR IRQ_TIMER0
248#define IRQ_PRIOTMR CONFIG_IRQ_TIMER0
249#endif
245 250
246#define __ipipe_root_tick_p(regs) 1 251#define __ipipe_root_tick_p(regs) 1
247 252
diff --git a/arch/blackfin/include/asm/ipipe_base.h b/arch/blackfin/include/asm/ipipe_base.h
index 3e8acbd1a3b..490098f532a 100644
--- a/arch/blackfin/include/asm/ipipe_base.h
+++ b/arch/blackfin/include/asm/ipipe_base.h
@@ -51,23 +51,23 @@
51 51
52extern unsigned long __ipipe_root_status; /* Alias to ipipe_root_cpudom_var(status) */ 52extern unsigned long __ipipe_root_status; /* Alias to ipipe_root_cpudom_var(status) */
53 53
54static inline void __ipipe_stall_root(void) 54#define __ipipe_stall_root() \
55{ 55 do { \
56 volatile unsigned long *p = &__ipipe_root_status; 56 volatile unsigned long *p = &__ipipe_root_status; \
57 set_bit(0, p); 57 set_bit(0, p); \
58} 58 } while (0)
59 59
60static inline unsigned long __ipipe_test_and_stall_root(void) 60#define __ipipe_test_and_stall_root() \
61{ 61 ({ \
62 volatile unsigned long *p = &__ipipe_root_status; 62 volatile unsigned long *p = &__ipipe_root_status; \
63 return test_and_set_bit(0, p); 63 test_and_set_bit(0, p); \
64} 64 })
65 65
66static inline unsigned long __ipipe_test_root(void) 66#define __ipipe_test_root() \
67{ 67 ({ \
68 const unsigned long *p = &__ipipe_root_status; 68 const unsigned long *p = &__ipipe_root_status; \
69 return test_bit(0, p); 69 test_bit(0, p); \
70} 70 })
71 71
72#endif /* !__ASSEMBLY__ */ 72#endif /* !__ASSEMBLY__ */
73 73
diff --git a/arch/blackfin/include/asm/irq.h b/arch/blackfin/include/asm/irq.h
index 400bdd52ce8..42a15f5ce0d 100644
--- a/arch/blackfin/include/asm/irq.h
+++ b/arch/blackfin/include/asm/irq.h
@@ -22,13 +22,6 @@
22/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */ 22/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */
23#include <mach/irq.h> 23#include <mach/irq.h>
24 24
25/* Xenomai IPIPE helpers */
26#define local_irq_restore_hw(x) local_irq_restore(x)
27#define local_irq_save_hw(x) local_irq_save(x)
28#define local_irq_enable_hw(x) local_irq_enable(x)
29#define local_irq_disable_hw(x) local_irq_disable(x)
30#define irqs_disabled_hw(x) irqs_disabled(x)
31
32#if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE) 25#if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE)
33# define NOP_PAD_ANOMALY_05000244 "nop; nop;" 26# define NOP_PAD_ANOMALY_05000244 "nop; nop;"
34#else 27#else
@@ -45,9 +38,6 @@
45 : "d" (bfin_irq_flags) \ 38 : "d" (bfin_irq_flags) \
46 ) 39 )
47 40
48static inline int irq_canonicalize(int irq) 41#include <asm-generic/irq.h>
49{
50 return irq;
51}
52 42
53#endif /* _BFIN_IRQ_H_ */ 43#endif /* _BFIN_IRQ_H_ */
diff --git a/arch/blackfin/include/asm/irqflags.h b/arch/blackfin/include/asm/irqflags.h
index 139cba4651b..9b19a19d9ae 100644
--- a/arch/blackfin/include/asm/irqflags.h
+++ b/arch/blackfin/include/asm/irqflags.h
@@ -31,6 +31,150 @@ static inline unsigned long bfin_cli(void)
31 return flags; 31 return flags;
32} 32}
33 33
34#ifdef CONFIG_IPIPE
35
36#include <linux/ipipe_base.h>
37#include <linux/ipipe_trace.h>
38
39#ifdef CONFIG_DEBUG_HWERR
40# define bfin_no_irqs 0x3f
41#else
42# define bfin_no_irqs 0x1f
43#endif
44
45#define raw_local_irq_disable() \
46 do { \
47 ipipe_check_context(ipipe_root_domain); \
48 __ipipe_stall_root(); \
49 barrier(); \
50 } while (0)
51
52static inline void raw_local_irq_enable(void)
53{
54 barrier();
55 ipipe_check_context(ipipe_root_domain);
56 __ipipe_unstall_root();
57}
58
59#define raw_local_save_flags_ptr(x) \
60 do { \
61 *(x) = __ipipe_test_root() ? bfin_no_irqs : bfin_irq_flags; \
62 } while (0)
63
64#define raw_local_save_flags(x) raw_local_save_flags_ptr(&(x))
65
66#define raw_irqs_disabled_flags(x) ((x) == bfin_no_irqs)
67
68#define raw_local_irq_save_ptr(x) \
69 do { \
70 *(x) = __ipipe_test_and_stall_root() ? bfin_no_irqs : bfin_irq_flags; \
71 barrier(); \
72 } while (0)
73
74#define raw_local_irq_save(x) \
75 do { \
76 ipipe_check_context(ipipe_root_domain); \
77 raw_local_irq_save_ptr(&(x)); \
78 } while (0)
79
80static inline unsigned long raw_mangle_irq_bits(int virt, unsigned long real)
81{
82 /*
83 * Merge virtual and real interrupt mask bits into a single
84 * 32bit word.
85 */
86 return (real & ~(1 << 31)) | ((virt != 0) << 31);
87}
88
89static inline int raw_demangle_irq_bits(unsigned long *x)
90{
91 int virt = (*x & (1 << 31)) != 0;
92 *x &= ~(1L << 31);
93 return virt;
94}
95
96static inline void local_irq_disable_hw_notrace(void)
97{
98 bfin_cli();
99}
100
101static inline void local_irq_enable_hw_notrace(void)
102{
103 bfin_sti(bfin_irq_flags);
104}
105
106#define local_save_flags_hw(flags) \
107 do { \
108 (flags) = bfin_read_IMASK(); \
109 } while (0)
110
111#define irqs_disabled_flags_hw(flags) (((flags) & ~0x3f) == 0)
112
113#define irqs_disabled_hw() \
114 ({ \
115 unsigned long flags; \
116 local_save_flags_hw(flags); \
117 irqs_disabled_flags_hw(flags); \
118 })
119
120static inline void local_irq_save_ptr_hw(unsigned long *flags)
121{
122 *flags = bfin_cli();
123#ifdef CONFIG_DEBUG_HWERR
124 bfin_sti(0x3f);
125#endif
126}
127
128#define local_irq_save_hw_notrace(flags) \
129 do { \
130 local_irq_save_ptr_hw(&(flags)); \
131 } while (0)
132
133static inline void local_irq_restore_hw_notrace(unsigned long flags)
134{
135 if (!irqs_disabled_flags_hw(flags))
136 local_irq_enable_hw_notrace();
137}
138
139#ifdef CONFIG_IPIPE_TRACE_IRQSOFF
140# define local_irq_disable_hw() \
141 do { \
142 if (!irqs_disabled_hw()) { \
143 local_irq_disable_hw_notrace(); \
144 ipipe_trace_begin(0x80000000); \
145 } \
146 } while (0)
147# define local_irq_enable_hw() \
148 do { \
149 if (irqs_disabled_hw()) { \
150 ipipe_trace_end(0x80000000); \
151 local_irq_enable_hw_notrace(); \
152 } \
153 } while (0)
154# define local_irq_save_hw(flags) \
155 do { \
156 local_save_flags_hw(flags); \
157 if (!irqs_disabled_flags_hw(flags)) { \
158 local_irq_disable_hw_notrace(); \
159 ipipe_trace_begin(0x80000001); \
160 } \
161 } while (0)
162# define local_irq_restore_hw(flags) \
163 do { \
164 if (!irqs_disabled_flags_hw(flags)) { \
165 ipipe_trace_end(0x80000001); \
166 local_irq_enable_hw_notrace(); \
167 } \
168 } while (0)
169#else /* !CONFIG_IPIPE_TRACE_IRQSOFF */
170# define local_irq_disable_hw() local_irq_disable_hw_notrace()
171# define local_irq_enable_hw() local_irq_enable_hw_notrace()
172# define local_irq_save_hw(flags) local_irq_save_hw_notrace(flags)
173# define local_irq_restore_hw(flags) local_irq_restore_hw_notrace(flags)
174#endif /* !CONFIG_IPIPE_TRACE_IRQSOFF */
175
176#else /* CONFIG_IPIPE */
177
34static inline void raw_local_irq_disable(void) 178static inline void raw_local_irq_disable(void)
35{ 179{
36 bfin_cli(); 180 bfin_cli();
@@ -44,12 +188,6 @@ static inline void raw_local_irq_enable(void)
44 188
45#define raw_irqs_disabled_flags(flags) (((flags) & ~0x3f) == 0) 189#define raw_irqs_disabled_flags(flags) (((flags) & ~0x3f) == 0)
46 190
47static inline void raw_local_irq_restore(unsigned long flags)
48{
49 if (!raw_irqs_disabled_flags(flags))
50 raw_local_irq_enable();
51}
52
53static inline unsigned long __raw_local_irq_save(void) 191static inline unsigned long __raw_local_irq_save(void)
54{ 192{
55 unsigned long flags = bfin_cli(); 193 unsigned long flags = bfin_cli();
@@ -60,4 +198,18 @@ static inline unsigned long __raw_local_irq_save(void)
60} 198}
61#define raw_local_irq_save(flags) do { (flags) = __raw_local_irq_save(); } while (0) 199#define raw_local_irq_save(flags) do { (flags) = __raw_local_irq_save(); } while (0)
62 200
201#define local_irq_save_hw(flags) raw_local_irq_save(flags)
202#define local_irq_restore_hw(flags) raw_local_irq_restore(flags)
203#define local_irq_enable_hw() raw_local_irq_enable()
204#define local_irq_disable_hw() raw_local_irq_disable()
205#define irqs_disabled_hw() irqs_disabled()
206
207#endif /* !CONFIG_IPIPE */
208
209static inline void raw_local_irq_restore(unsigned long flags)
210{
211 if (!raw_irqs_disabled_flags(flags))
212 raw_local_irq_enable();
213}
214
63#endif 215#endif
diff --git a/arch/blackfin/include/asm/kmap_types.h b/arch/blackfin/include/asm/kmap_types.h
index 0a88622339e..3575c64af42 100644
--- a/arch/blackfin/include/asm/kmap_types.h
+++ b/arch/blackfin/include/asm/kmap_types.h
@@ -1,6 +1 @@
1#ifndef _ASM_KMAP_TYPES_H
2#define _ASM_KMAP_TYPES_H
3
4#include <asm-generic/kmap_types.h> #include <asm-generic/kmap_types.h>
5
6#endif
diff --git a/arch/blackfin/include/asm/local.h b/arch/blackfin/include/asm/local.h
index 75afffbc642..c11c530f74d 100644
--- a/arch/blackfin/include/asm/local.h
+++ b/arch/blackfin/include/asm/local.h
@@ -1,6 +1 @@
1#ifndef __BLACKFIN_LOCAL_H
2#define __BLACKFIN_LOCAL_H
3
4#include <asm-generic/local.h> #include <asm-generic/local.h>
5
6#endif /* __BLACKFIN_LOCAL_H */
diff --git a/arch/blackfin/include/asm/mem_init.h b/arch/blackfin/include/asm/mem_init.h
index 61f7487fbf1..4179e329b9c 100644
--- a/arch/blackfin/include/asm/mem_init.h
+++ b/arch/blackfin/include/asm/mem_init.h
@@ -59,7 +59,7 @@
59#define SDRAM_tRP TRP_1 59#define SDRAM_tRP TRP_1
60#define SDRAM_tRP_num 1 60#define SDRAM_tRP_num 1
61#define SDRAM_tRAS TRAS_4 61#define SDRAM_tRAS TRAS_4
62#define SDRAM_tRAS_num 3 62#define SDRAM_tRAS_num 4
63#define SDRAM_tRCD TRCD_1 63#define SDRAM_tRCD TRCD_1
64#define SDRAM_tWR TWR_2 64#define SDRAM_tWR TWR_2
65#endif 65#endif
@@ -89,6 +89,85 @@
89#endif 89#endif
90#endif 90#endif
91 91
92/*
93 * The BF526-EZ-Board changed SDRAM chips between revisions,
94 * so we use below timings to accommodate both.
95 */
96#if defined(CONFIG_MEM_MT48H32M16LFCJ_75)
97#if (CONFIG_SCLK_HZ > 119402985)
98#define SDRAM_tRP TRP_2
99#define SDRAM_tRP_num 2
100#define SDRAM_tRAS TRAS_8
101#define SDRAM_tRAS_num 8
102#define SDRAM_tRCD TRCD_2
103#define SDRAM_tWR TWR_2
104#endif
105#if (CONFIG_SCLK_HZ > 104477612) && (CONFIG_SCLK_HZ <= 119402985)
106#define SDRAM_tRP TRP_2
107#define SDRAM_tRP_num 2
108#define SDRAM_tRAS TRAS_7
109#define SDRAM_tRAS_num 7
110#define SDRAM_tRCD TRCD_2
111#define SDRAM_tWR TWR_2
112#endif
113#if (CONFIG_SCLK_HZ > 89552239) && (CONFIG_SCLK_HZ <= 104477612)
114#define SDRAM_tRP TRP_2
115#define SDRAM_tRP_num 2
116#define SDRAM_tRAS TRAS_6
117#define SDRAM_tRAS_num 6
118#define SDRAM_tRCD TRCD_2
119#define SDRAM_tWR TWR_2
120#endif
121#if (CONFIG_SCLK_HZ > 74626866) && (CONFIG_SCLK_HZ <= 89552239)
122#define SDRAM_tRP TRP_2
123#define SDRAM_tRP_num 2
124#define SDRAM_tRAS TRAS_5
125#define SDRAM_tRAS_num 5
126#define SDRAM_tRCD TRCD_2
127#define SDRAM_tWR TWR_2
128#endif
129#if (CONFIG_SCLK_HZ > 66666667) && (CONFIG_SCLK_HZ <= 74626866)
130#define SDRAM_tRP TRP_2
131#define SDRAM_tRP_num 2
132#define SDRAM_tRAS TRAS_4
133#define SDRAM_tRAS_num 4
134#define SDRAM_tRCD TRCD_2
135#define SDRAM_tWR TWR_2
136#endif
137#if (CONFIG_SCLK_HZ > 59701493) && (CONFIG_SCLK_HZ <= 66666667)
138#define SDRAM_tRP TRP_2
139#define SDRAM_tRP_num 2
140#define SDRAM_tRAS TRAS_4
141#define SDRAM_tRAS_num 4
142#define SDRAM_tRCD TRCD_1
143#define SDRAM_tWR TWR_2
144#endif
145#if (CONFIG_SCLK_HZ > 44776119) && (CONFIG_SCLK_HZ <= 59701493)
146#define SDRAM_tRP TRP_2
147#define SDRAM_tRP_num 2
148#define SDRAM_tRAS TRAS_3
149#define SDRAM_tRAS_num 3
150#define SDRAM_tRCD TRCD_1
151#define SDRAM_tWR TWR_2
152#endif
153#if (CONFIG_SCLK_HZ > 29850746) && (CONFIG_SCLK_HZ <= 44776119)
154#define SDRAM_tRP TRP_1
155#define SDRAM_tRP_num 1
156#define SDRAM_tRAS TRAS_3
157#define SDRAM_tRAS_num 3
158#define SDRAM_tRCD TRCD_1
159#define SDRAM_tWR TWR_2
160#endif
161#if (CONFIG_SCLK_HZ <= 29850746)
162#define SDRAM_tRP TRP_1
163#define SDRAM_tRP_num 1
164#define SDRAM_tRAS TRAS_2
165#define SDRAM_tRAS_num 2
166#define SDRAM_tRCD TRCD_1
167#define SDRAM_tWR TWR_2
168#endif
169#endif
170
92#if defined(CONFIG_MEM_MT48LC16M8A2TG_75) || \ 171#if defined(CONFIG_MEM_MT48LC16M8A2TG_75) || \
93 defined(CONFIG_MEM_MT48LC8M32B2B5_7) 172 defined(CONFIG_MEM_MT48LC8M32B2B5_7)
94 /*SDRAM INFORMATION: */ 173 /*SDRAM INFORMATION: */
@@ -109,6 +188,13 @@
109#define SDRAM_CL CL_3 188#define SDRAM_CL CL_3
110#endif 189#endif
111 190
191#if defined(CONFIG_MEM_MT48H32M16LFCJ_75)
192 /*SDRAM INFORMATION: */
193#define SDRAM_Tref 64 /* Refresh period in milliseconds */
194#define SDRAM_NRA 8192 /* Number of row addresses in SDRAM */
195#define SDRAM_CL CL_2
196#endif
197
112 198
113#ifdef CONFIG_BFIN_KERNEL_CLOCK_MEMINIT_CALC 199#ifdef CONFIG_BFIN_KERNEL_CLOCK_MEMINIT_CALC
114/* Equation from section 17 (p17-46) of BF533 HRM */ 200/* Equation from section 17 (p17-46) of BF533 HRM */
diff --git a/arch/blackfin/include/asm/mem_map.h b/arch/blackfin/include/asm/mem_map.h
index e92b31051bb..5e21627c9ba 100644
--- a/arch/blackfin/include/asm/mem_map.h
+++ b/arch/blackfin/include/asm/mem_map.h
@@ -1,87 +1,84 @@
1/* 1/*
2 * mem_map.h 2 * Common Blackfin memory map
3 * Common header file for blackfin family of processors.
4 * 3 *
4 * Copyright 2004-2009 Analog Devices Inc.
5 * Licensed under the GPL-2 or later.
5 */ 6 */
6 7
7#ifndef _MEM_MAP_H_ 8#ifndef __BFIN_MEM_MAP_H__
8#define _MEM_MAP_H_ 9#define __BFIN_MEM_MAP_H__
9 10
10#include <mach/mem_map.h> 11#include <mach/mem_map.h>
11 12
12#ifndef __ASSEMBLY__ 13/* Every Blackfin so far has MMRs like this */
14#ifndef COREMMR_BASE
15# define COREMMR_BASE 0xFFE00000
16#endif
17#ifndef SYSMMR_BASE
18# define SYSMMR_BASE 0xFFC00000
19#endif
13 20
14#ifdef CONFIG_SMP 21/* Every Blackfin so far has on-chip Scratch Pad SRAM like this */
15static inline ulong get_l1_scratch_start_cpu(int cpu) 22#ifndef L1_SCRATCH_START
16{ 23# define L1_SCRATCH_START 0xFFB00000
17 return (cpu) ? COREB_L1_SCRATCH_START : COREA_L1_SCRATCH_START; 24# define L1_SCRATCH_LENGTH 0x1000
18} 25#endif
19static inline ulong get_l1_code_start_cpu(int cpu)
20{
21 return (cpu) ? COREB_L1_CODE_START : COREA_L1_CODE_START;
22}
23static inline ulong get_l1_data_a_start_cpu(int cpu)
24{
25 return (cpu) ? COREB_L1_DATA_A_START : COREA_L1_DATA_A_START;
26}
27static inline ulong get_l1_data_b_start_cpu(int cpu)
28{
29 return (cpu) ? COREB_L1_DATA_B_START : COREA_L1_DATA_B_START;
30}
31 26
32static inline ulong get_l1_scratch_start(void) 27/* Most parts lack on-chip L2 SRAM */
33{ 28#ifndef L2_START
34 return get_l1_scratch_start_cpu(blackfin_core_id()); 29# define L2_START 0
35} 30# define L2_LENGTH 0
36static inline ulong get_l1_code_start(void) 31#endif
37{ 32
38 return get_l1_code_start_cpu(blackfin_core_id()); 33/* Most parts lack on-chip L1 ROM */
39} 34#ifndef L1_ROM_START
40static inline ulong get_l1_data_a_start(void) 35# define L1_ROM_START 0
41{ 36# define L1_ROM_LENGTH 0
42 return get_l1_data_a_start_cpu(blackfin_core_id()); 37#endif
43} 38
44static inline ulong get_l1_data_b_start(void) 39/* Allow wonky SMP ports to override this */
45{ 40#ifndef GET_PDA_SAFE
46 return get_l1_data_b_start_cpu(blackfin_core_id()); 41# define GET_PDA_SAFE(preg) \
47} 42 preg.l = _cpu_pda; \
43 preg.h = _cpu_pda;
44# define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
48 45
49#else /* !CONFIG_SMP */ 46# ifndef __ASSEMBLY__
50 47
51static inline ulong get_l1_scratch_start_cpu(int cpu) 48static inline unsigned long get_l1_scratch_start_cpu(int cpu)
52{ 49{
53 return L1_SCRATCH_START; 50 return L1_SCRATCH_START;
54} 51}
55static inline ulong get_l1_code_start_cpu(int cpu) 52static inline unsigned long get_l1_code_start_cpu(int cpu)
56{ 53{
57 return L1_CODE_START; 54 return L1_CODE_START;
58} 55}
59static inline ulong get_l1_data_a_start_cpu(int cpu) 56static inline unsigned long get_l1_data_a_start_cpu(int cpu)
60{ 57{
61 return L1_DATA_A_START; 58 return L1_DATA_A_START;
62} 59}
63static inline ulong get_l1_data_b_start_cpu(int cpu) 60static inline unsigned long get_l1_data_b_start_cpu(int cpu)
64{ 61{
65 return L1_DATA_B_START; 62 return L1_DATA_B_START;
66} 63}
67static inline ulong get_l1_scratch_start(void) 64static inline unsigned long get_l1_scratch_start(void)
68{ 65{
69 return get_l1_scratch_start_cpu(0); 66 return get_l1_scratch_start_cpu(0);
70} 67}
71static inline ulong get_l1_code_start(void) 68static inline unsigned long get_l1_code_start(void)
72{ 69{
73 return get_l1_code_start_cpu(0); 70 return get_l1_code_start_cpu(0);
74} 71}
75static inline ulong get_l1_data_a_start(void) 72static inline unsigned long get_l1_data_a_start(void)
76{ 73{
77 return get_l1_data_a_start_cpu(0); 74 return get_l1_data_a_start_cpu(0);
78} 75}
79static inline ulong get_l1_data_b_start(void) 76static inline unsigned long get_l1_data_b_start(void)
80{ 77{
81 return get_l1_data_b_start_cpu(0); 78 return get_l1_data_b_start_cpu(0);
82} 79}
83 80
84#endif /* CONFIG_SMP */ 81# endif /* __ASSEMBLY__ */
85#endif /* __ASSEMBLY__ */ 82#endif /* !GET_PDA_SAFE */
86 83
87#endif /* _MEM_MAP_H_ */ 84#endif
diff --git a/arch/blackfin/include/asm/mman.h b/arch/blackfin/include/asm/mman.h
index b58f5ad3f02..8eebf89f5ab 100644
--- a/arch/blackfin/include/asm/mman.h
+++ b/arch/blackfin/include/asm/mman.h
@@ -1,43 +1 @@
1#ifndef __BFIN_MMAN_H__ #include <asm-generic/mman.h>
2#define __BFIN_MMAN_H__
3
4#define PROT_READ 0x1 /* page can be read */
5#define PROT_WRITE 0x2 /* page can be written */
6#define PROT_EXEC 0x4 /* page can be executed */
7#define PROT_SEM 0x8 /* page may be used for atomic ops */
8#define PROT_NONE 0x0 /* page can not be accessed */
9#define PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend change to start of growsdown vma */
10#define PROT_GROWSUP 0x02000000 /* mprotect flag: extend change to end of growsup vma */
11
12#define MAP_SHARED 0x01 /* Share changes */
13#define MAP_PRIVATE 0x02 /* Changes are private */
14#define MAP_TYPE 0x0f /* Mask for type of mapping */
15#define MAP_FIXED 0x10 /* Interpret addr exactly */
16#define MAP_ANONYMOUS 0x20 /* don't use a file */
17
18#define MAP_GROWSDOWN 0x0100 /* stack-like segment */
19#define MAP_DENYWRITE 0x0800 /* ETXTBSY */
20#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
21#define MAP_LOCKED 0x2000 /* pages are locked */
22#define MAP_NORESERVE 0x4000 /* don't check for reservations */
23#define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
24#define MAP_NONBLOCK 0x10000 /* do not block on IO */
25
26#define MS_ASYNC 1 /* sync memory asynchronously */
27#define MS_INVALIDATE 2 /* invalidate the caches */
28#define MS_SYNC 4 /* synchronous memory sync */
29
30#define MCL_CURRENT 1 /* lock all current mappings */
31#define MCL_FUTURE 2 /* lock all future mappings */
32
33#define MADV_NORMAL 0x0 /* default page-in behavior */
34#define MADV_RANDOM 0x1 /* page-in minimum required */
35#define MADV_SEQUENTIAL 0x2 /* read-ahead aggressively */
36#define MADV_WILLNEED 0x3 /* pre-fault pages */
37#define MADV_DONTNEED 0x4 /* discard these pages */
38
39/* compatibility flags */
40#define MAP_ANON MAP_ANONYMOUS
41#define MAP_FILE 0
42
43#endif /* __BFIN_MMAN_H__ */
diff --git a/arch/blackfin/include/asm/msgbuf.h b/arch/blackfin/include/asm/msgbuf.h
index 6fcbe8cd801..809134c644a 100644
--- a/arch/blackfin/include/asm/msgbuf.h
+++ b/arch/blackfin/include/asm/msgbuf.h
@@ -1,31 +1 @@
1#ifndef _BFIN_MSGBUF_H #include <asm-generic/msgbuf.h>
2#define _BFIN_MSGBUF_H
3
4/*
5 * The msqid64_ds structure for bfin architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct msqid64_ds {
15 struct ipc64_perm msg_perm;
16 __kernel_time_t msg_stime; /* last msgsnd time */
17 unsigned long __unused1;
18 __kernel_time_t msg_rtime; /* last msgrcv time */
19 unsigned long __unused2;
20 __kernel_time_t msg_ctime; /* last change time */
21 unsigned long __unused3;
22 unsigned long msg_cbytes; /* current number of bytes on queue */
23 unsigned long msg_qnum; /* number of messages in queue */
24 unsigned long msg_qbytes; /* max number of bytes on queue */
25 __kernel_pid_t msg_lspid; /* pid of last msgsnd */
26 __kernel_pid_t msg_lrpid; /* last receive pid */
27 unsigned long __unused4;
28 unsigned long __unused5;
29};
30
31#endif /* _BFIN_MSGBUF_H */
diff --git a/arch/blackfin/include/asm/mutex.h b/arch/blackfin/include/asm/mutex.h
index 5d399256bf0..5cc641c5083 100644
--- a/arch/blackfin/include/asm/mutex.h
+++ b/arch/blackfin/include/asm/mutex.h
@@ -10,7 +10,7 @@
10#define _ASM_MUTEX_H 10#define _ASM_MUTEX_H
11 11
12#ifndef CONFIG_SMP 12#ifndef CONFIG_SMP
13#include <asm-generic/mutex-dec.h> 13#include <asm-generic/mutex.h>
14#else 14#else
15 15
16static inline void 16static inline void
diff --git a/arch/blackfin/include/asm/page.h b/arch/blackfin/include/asm/page.h
index 3ea2016a1d4..29dcf75c611 100644
--- a/arch/blackfin/include/asm/page.h
+++ b/arch/blackfin/include/asm/page.h
@@ -1,88 +1,7 @@
1#ifndef _BLACKFIN_PAGE_H 1#ifndef _BLACKFIN_PAGE_H
2#define _BLACKFIN_PAGE_H 2#define _BLACKFIN_PAGE_H
3 3
4/* PAGE_SHIFT determines the page size */ 4#include <asm-generic/page.h>
5#define MAP_NR(addr) (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)
5 6
6#define PAGE_SHIFT 12
7#ifdef __ASSEMBLY__
8#define PAGE_SIZE (1 << PAGE_SHIFT)
9#else
10#define PAGE_SIZE (1UL << PAGE_SHIFT)
11#endif 7#endif
12#define PAGE_MASK (~(PAGE_SIZE-1))
13
14#include <asm/setup.h>
15
16#ifndef __ASSEMBLY__
17
18#define get_user_page(vaddr) __get_free_page(GFP_KERNEL)
19#define free_user_page(page, addr) free_page(addr)
20
21#define clear_page(page) memset((page), 0, PAGE_SIZE)
22#define copy_page(to,from) memcpy((to), (from), PAGE_SIZE)
23
24#define clear_user_page(page, vaddr,pg) clear_page(page)
25#define copy_user_page(to, from, vaddr,pg) copy_page(to, from)
26
27/*
28 * These are used to make use of C type-checking..
29 */
30typedef struct {
31 unsigned long pte;
32} pte_t;
33typedef struct {
34 unsigned long pmd[16];
35} pmd_t;
36typedef struct {
37 unsigned long pgd;
38} pgd_t;
39typedef struct {
40 unsigned long pgprot;
41} pgprot_t;
42typedef struct page *pgtable_t;
43
44#define pte_val(x) ((x).pte)
45#define pmd_val(x) ((&x)->pmd[0])
46#define pgd_val(x) ((x).pgd)
47#define pgprot_val(x) ((x).pgprot)
48
49#define __pte(x) ((pte_t) { (x) } )
50#define __pmd(x) ((pmd_t) { (x) } )
51#define __pgd(x) ((pgd_t) { (x) } )
52#define __pgprot(x) ((pgprot_t) { (x) } )
53
54extern unsigned long memory_start;
55extern unsigned long memory_end;
56
57#endif /* !__ASSEMBLY__ */
58
59#include <asm/page_offset.h>
60#include <asm/io.h>
61
62#define PAGE_OFFSET (PAGE_OFFSET_RAW)
63
64#ifndef __ASSEMBLY__
65
66#define __pa(vaddr) virt_to_phys((void *)(vaddr))
67#define __va(paddr) phys_to_virt((unsigned long)(paddr))
68
69#define MAP_NR(addr) (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)
70
71#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT)
72#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT)
73#define virt_to_page(addr) (mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT))
74#define page_to_virt(page) ((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET)
75#define VALID_PAGE(page) ((page - mem_map) < max_mapnr)
76
77#define pfn_to_page(pfn) virt_to_page(pfn_to_virt(pfn))
78#define page_to_pfn(page) virt_to_pfn(page_to_virt(page))
79#define pfn_valid(pfn) ((pfn) < max_mapnr)
80
81#define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
82 ((void *)(kaddr) < (void *)memory_end))
83
84#include <asm-generic/getorder.h>
85
86#endif /* __ASSEMBLY__ */
87
88#endif /* _BLACKFIN_PAGE_H */
diff --git a/arch/blackfin/include/asm/param.h b/arch/blackfin/include/asm/param.h
index 41564a6347f..965d4542797 100644
--- a/arch/blackfin/include/asm/param.h
+++ b/arch/blackfin/include/asm/param.h
@@ -1,22 +1 @@
1#ifndef _BLACKFIN_PARAM_H #include <asm-generic/param.h>
2#define _BLACKFIN_PARAM_H
3
4#ifdef __KERNEL__
5#define HZ CONFIG_HZ
6#define USER_HZ 100
7#define CLOCKS_PER_SEC (USER_HZ)
8#endif
9
10#ifndef HZ
11#define HZ 100
12#endif
13
14#define EXEC_PAGESIZE 4096
15
16#ifndef NOGROUP
17#define NOGROUP (-1)
18#endif
19
20#define MAXHOSTNAMELEN 64 /* max length of hostname */
21
22#endif /* _BLACKFIN_PARAM_H */
diff --git a/arch/blackfin/include/asm/percpu.h b/arch/blackfin/include/asm/percpu.h
index c94c7bc88c7..06a959d6723 100644
--- a/arch/blackfin/include/asm/percpu.h
+++ b/arch/blackfin/include/asm/percpu.h
@@ -1,6 +1 @@
1#ifndef __ARCH_BLACKFIN_PERCPU__
2#define __ARCH_BLACKFIN_PERCPU__
3
4#include <asm-generic/percpu.h> #include <asm-generic/percpu.h>
5
6#endif /* __ARCH_BLACKFIN_PERCPU__ */
diff --git a/arch/blackfin/include/asm/pgalloc.h b/arch/blackfin/include/asm/pgalloc.h
index c686e0542fd..f261cb7dda0 100644
--- a/arch/blackfin/include/asm/pgalloc.h
+++ b/arch/blackfin/include/asm/pgalloc.h
@@ -1,8 +1 @@
1#ifndef _BLACKFIN_PGALLOC_H #include <asm-generic/pgalloc.h>
2#define _BLACKFIN_PGALLOC_H
3
4#include <asm/setup.h>
5
6#define check_pgt_cache() do { } while (0)
7
8#endif /* _BLACKFIN_PGALLOC_H */
diff --git a/arch/blackfin/include/asm/poll.h b/arch/blackfin/include/asm/poll.h
index 94cc2636e0e..a0556671357 100644
--- a/arch/blackfin/include/asm/poll.h
+++ b/arch/blackfin/include/asm/poll.h
@@ -1,24 +1,9 @@
1#ifndef __BFIN_POLL_H 1#ifndef __BFIN_POLL_H
2#define __BFIN_POLL_H 2#define __BFIN_POLL_H
3 3
4#define POLLIN 1 4#define POLLWRNORM 4 /* POLLOUT */
5#define POLLPRI 2
6#define POLLOUT 4
7#define POLLERR 8
8#define POLLHUP 16
9#define POLLNVAL 32
10#define POLLRDNORM 64
11#define POLLWRNORM POLLOUT
12#define POLLRDBAND 128
13#define POLLWRBAND 256 5#define POLLWRBAND 256
14#define POLLMSG 0x0400
15#define POLLREMOVE 0x1000
16#define POLLRDHUP 0x2000
17 6
18struct pollfd { 7#include <asm-generic/poll.h>
19 int fd;
20 short events;
21 short revents;
22};
23 8
24#endif /* __BFIN_POLL_H */ 9#endif
diff --git a/arch/blackfin/include/asm/posix_types.h b/arch/blackfin/include/asm/posix_types.h
index 23aa1f8c1bd..80c9d64eb26 100644
--- a/arch/blackfin/include/asm/posix_types.h
+++ b/arch/blackfin/include/asm/posix_types.h
@@ -1,61 +1,27 @@
1#ifndef __ARCH_BFIN_POSIX_TYPES_H 1#ifndef __ARCH_BFIN_POSIX_TYPES_H
2#define __ARCH_BFIN_POSIX_TYPES_H 2#define __ARCH_BFIN_POSIX_TYPES_H
3 3
4/*
5 * This file is generally used by user-level software, so you need to
6 * be a little careful about namespace pollution etc. Also, we cannot
7 * assume GCC is being used.
8 */
9
10typedef unsigned long __kernel_ino_t;
11typedef unsigned short __kernel_mode_t; 4typedef unsigned short __kernel_mode_t;
5#define __kernel_mode_t __kernel_mode_t
6
12typedef unsigned short __kernel_nlink_t; 7typedef unsigned short __kernel_nlink_t;
13typedef long __kernel_off_t; 8#define __kernel_nlink_t __kernel_nlink_t
14typedef int __kernel_pid_t; 9
15typedef unsigned int __kernel_ipc_pid_t; 10typedef unsigned int __kernel_ipc_pid_t;
16typedef unsigned int __kernel_uid_t; 11#define __kernel_ipc_pid_t __kernel_ipc_pid_t
17typedef unsigned int __kernel_gid_t; 12
18typedef unsigned long __kernel_size_t; 13typedef unsigned long __kernel_size_t;
19typedef long __kernel_ssize_t; 14typedef long __kernel_ssize_t;
20typedef int __kernel_ptrdiff_t; 15typedef int __kernel_ptrdiff_t;
21typedef long __kernel_time_t; 16#define __kernel_size_t __kernel_size_t
22typedef long __kernel_suseconds_t;
23typedef long __kernel_clock_t;
24typedef int __kernel_timer_t;
25typedef int __kernel_clockid_t;
26typedef int __kernel_daddr_t;
27typedef char *__kernel_caddr_t;
28typedef unsigned short __kernel_uid16_t;
29typedef unsigned short __kernel_gid16_t;
30typedef unsigned int __kernel_uid32_t;
31typedef unsigned int __kernel_gid32_t;
32 17
33typedef unsigned short __kernel_old_uid_t; 18typedef unsigned short __kernel_old_uid_t;
34typedef unsigned short __kernel_old_gid_t; 19typedef unsigned short __kernel_old_gid_t;
35typedef unsigned short __kernel_old_dev_t; 20#define __kernel_old_uid_t __kernel_old_uid_t
36
37#ifdef __GNUC__
38typedef long long __kernel_loff_t;
39#endif
40 21
41typedef struct { 22typedef unsigned short __kernel_old_dev_t;
42 int val[2]; 23#define __kernel_old_dev_t __kernel_old_dev_t
43} __kernel_fsid_t;
44
45#if defined(__KERNEL__)
46
47#undef __FD_SET
48#define __FD_SET(d, set) ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
49
50#undef __FD_CLR
51#define __FD_CLR(d, set) ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
52
53#undef __FD_ISSET
54#define __FD_ISSET(d, set) ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
55
56#undef __FD_ZERO
57#define __FD_ZERO(fdsetp) (memset (fdsetp, 0, sizeof(*(fd_set *)fdsetp)))
58 24
59#endif /* defined(__KERNEL__) */ 25#include <asm-generic/posix_types.h>
60 26
61#endif 27#endif
diff --git a/arch/blackfin/include/asm/processor.h b/arch/blackfin/include/asm/processor.h
index 3040415523b..d0be99be830 100644
--- a/arch/blackfin/include/asm/processor.h
+++ b/arch/blackfin/include/asm/processor.h
@@ -7,9 +7,8 @@
7 */ 7 */
8#define current_text_addr() ({ __label__ _l; _l: &&_l;}) 8#define current_text_addr() ({ __label__ _l; _l: &&_l;})
9 9
10#include <asm/ptrace.h>
10#include <asm/blackfin.h> 11#include <asm/blackfin.h>
11#include <asm/segment.h>
12#include <linux/compiler.h>
13 12
14static inline unsigned long rdusp(void) 13static inline unsigned long rdusp(void)
15{ 14{
@@ -59,36 +58,8 @@ struct thread_struct {
59 PS_S, 0, 0 \ 58 PS_S, 0, 0 \
60} 59}
61 60
62/* 61extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
63 * Do necessary setup to start up a newly executed thread. 62 unsigned long new_sp);
64 *
65 * pass the data segment into user programs if it exists,
66 * it can't hurt anything as far as I can tell
67 */
68#ifndef CONFIG_SMP
69#define start_thread(_regs, _pc, _usp) \
70do { \
71 set_fs(USER_DS); \
72 (_regs)->pc = (_pc); \
73 if (current->mm) \
74 (_regs)->p5 = current->mm->start_data; \
75 task_thread_info(current)->l1_task_info.stack_start \
76 = (void *)current->mm->context.stack_start; \
77 task_thread_info(current)->l1_task_info.lowest_sp = (void *)(_usp); \
78 memcpy(L1_SCRATCH_TASK_INFO, &task_thread_info(current)->l1_task_info, \
79 sizeof(*L1_SCRATCH_TASK_INFO)); \
80 wrusp(_usp); \
81} while(0)
82#else
83#define start_thread(_regs, _pc, _usp) \
84do { \
85 set_fs(USER_DS); \
86 (_regs)->pc = (_pc); \
87 if (current->mm) \
88 (_regs)->p5 = current->mm->start_data; \
89 wrusp(_usp); \
90} while (0)
91#endif
92 63
93/* Forward declaration, a strange C thing */ 64/* Forward declaration, a strange C thing */
94struct task_struct; 65struct task_struct;
diff --git a/arch/blackfin/include/asm/resource.h b/arch/blackfin/include/asm/resource.h
index 091355ab349..04bc4db8921 100644
--- a/arch/blackfin/include/asm/resource.h
+++ b/arch/blackfin/include/asm/resource.h
@@ -1,6 +1 @@
1#ifndef _BFIN_RESOURCE_H
2#define _BFIN_RESOURCE_H
3
4#include <asm-generic/resource.h> #include <asm-generic/resource.h>
5
6#endif /* _BFIN_RESOURCE_H */
diff --git a/arch/blackfin/include/asm/sembuf.h b/arch/blackfin/include/asm/sembuf.h
index 18deb5c7fa5..7673b83cfef 100644
--- a/arch/blackfin/include/asm/sembuf.h
+++ b/arch/blackfin/include/asm/sembuf.h
@@ -1,25 +1 @@
1#ifndef _BFIN_SEMBUF_H #include <asm-generic/sembuf.h>
2#define _BFIN_SEMBUF_H
3
4/*
5 * The semid64_ds structure for bfin architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct semid64_ds {
15 struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
16 __kernel_time_t sem_otime; /* last semop time */
17 unsigned long __unused1;
18 __kernel_time_t sem_ctime; /* last change time */
19 unsigned long __unused2;
20 unsigned long sem_nsems; /* no. of semaphores in array */
21 unsigned long __unused3;
22 unsigned long __unused4;
23};
24
25#endif /* _BFIN_SEMBUF_H */
diff --git a/arch/blackfin/include/asm/serial.h b/arch/blackfin/include/asm/serial.h
index 3a47606c858..94a4a12e3bf 100644
--- a/arch/blackfin/include/asm/serial.h
+++ b/arch/blackfin/include/asm/serial.h
@@ -1,6 +1,2 @@
1/* 1#include <asm-generic/serial.h>
2 * include/asm-blackfin/serial.h
3 */
4
5#define SERIAL_EXTRA_IRQ_FLAGS IRQF_TRIGGER_HIGH 2#define SERIAL_EXTRA_IRQ_FLAGS IRQF_TRIGGER_HIGH
6#define BASE_BAUD (1843200 / 16)
diff --git a/arch/blackfin/include/asm/setup.h b/arch/blackfin/include/asm/setup.h
index 01c8c6cbe6f..552df83f1a4 100644
--- a/arch/blackfin/include/asm/setup.h
+++ b/arch/blackfin/include/asm/setup.h
@@ -1,17 +1 @@
1/* #include <asm-generic/setup.h>
2** asm/setup.h -- Definition of the Linux/bfin setup information
3**
4** This file is subject to the terms and conditions of the GNU General Public
5** License. See the file COPYING in the main directory of this archive
6** for more details.
7**
8** Copyright Lineo, Inc 2001 Tony Kou
9**
10*/
11
12#ifndef _BFIN_SETUP_H
13#define _BFIN_SETUP_H
14
15#define COMMAND_LINE_SIZE 512
16
17#endif /* _BFIN_SETUP_H */
diff --git a/arch/blackfin/include/asm/shmbuf.h b/arch/blackfin/include/asm/shmbuf.h
index 612436303e8..83c05fc2de3 100644
--- a/arch/blackfin/include/asm/shmbuf.h
+++ b/arch/blackfin/include/asm/shmbuf.h
@@ -1,42 +1 @@
1#ifndef _BFIN_SHMBUF_H #include <asm-generic/shmbuf.h>
2#define _BFIN_SHMBUF_H
3
4/*
5 * The shmid64_ds structure for bfin architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct shmid64_ds {
15 struct ipc64_perm shm_perm; /* operation perms */
16 size_t shm_segsz; /* size of segment (bytes) */
17 __kernel_time_t shm_atime; /* last attach time */
18 unsigned long __unused1;
19 __kernel_time_t shm_dtime; /* last detach time */
20 unsigned long __unused2;
21 __kernel_time_t shm_ctime; /* last change time */
22 unsigned long __unused3;
23 __kernel_pid_t shm_cpid; /* pid of creator */
24 __kernel_pid_t shm_lpid; /* pid of last operator */
25 unsigned long shm_nattch; /* no. of current attaches */
26 unsigned long __unused4;
27 unsigned long __unused5;
28};
29
30struct shminfo64 {
31 unsigned long shmmax;
32 unsigned long shmmin;
33 unsigned long shmmni;
34 unsigned long shmseg;
35 unsigned long shmall;
36 unsigned long __unused1;
37 unsigned long __unused2;
38 unsigned long __unused3;
39 unsigned long __unused4;
40};
41
42#endif /* _BFIN_SHMBUF_H */
diff --git a/arch/blackfin/include/asm/shmparam.h b/arch/blackfin/include/asm/shmparam.h
index 3c03906b766..93f30deb95d 100644
--- a/arch/blackfin/include/asm/shmparam.h
+++ b/arch/blackfin/include/asm/shmparam.h
@@ -1,6 +1 @@
1#ifndef _BFIN_SHMPARAM_H #include <asm-generic/shmparam.h>
2#define _BFIN_SHMPARAM_H
3
4#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */
5
6#endif /* _BFIN_SHMPARAM_H */
diff --git a/arch/blackfin/include/asm/signal.h b/arch/blackfin/include/asm/signal.h
index 2eea9079445..77a3bf37b69 100644
--- a/arch/blackfin/include/asm/signal.h
+++ b/arch/blackfin/include/asm/signal.h
@@ -1,160 +1,7 @@
1#ifndef _BLACKFIN_SIGNAL_H 1#ifndef _BLACKFIN_SIGNAL_H
2#define _BLACKFIN_SIGNAL_H 2#define _BLACKFIN_SIGNAL_H
3 3
4#include <linux/types.h> 4#define SA_RESTORER 0x04000000
5#include <asm-generic/signal.h>
5 6
6/* Avoid too many header ordering problems. */ 7#endif
7struct siginfo;
8
9#ifdef __KERNEL__
10/* Most things should be clean enough to redefine this at will, if care
11 is taken to make libc match. */
12
13#define _NSIG 64
14#define _NSIG_BPW 32
15#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
16
17typedef unsigned long old_sigset_t; /* at least 32 bits */
18
19typedef struct {
20 unsigned long sig[_NSIG_WORDS];
21} sigset_t;
22
23#else
24/* Here we must cater to libcs that poke about in kernel headers. */
25
26#define NSIG 32
27typedef unsigned long sigset_t;
28
29#endif /* __KERNEL__ */
30
31#define SIGHUP 1
32#define SIGINT 2
33#define SIGQUIT 3
34#define SIGILL 4
35#define SIGTRAP 5
36#define SIGABRT 6
37#define SIGIOT 6
38#define SIGBUS 7
39#define SIGFPE 8
40#define SIGKILL 9
41#define SIGUSR1 10
42#define SIGSEGV 11
43#define SIGUSR2 12
44#define SIGPIPE 13
45#define SIGALRM 14
46#define SIGTERM 15
47#define SIGSTKFLT 16
48#define SIGCHLD 17
49#define SIGCONT 18
50#define SIGSTOP 19
51#define SIGTSTP 20
52#define SIGTTIN 21
53#define SIGTTOU 22
54#define SIGURG 23
55#define SIGXCPU 24
56#define SIGXFSZ 25
57#define SIGVTALRM 26
58#define SIGPROF 27
59#define SIGWINCH 28
60#define SIGIO 29
61#define SIGPOLL SIGIO
62/*
63#define SIGLOST 29
64*/
65#define SIGPWR 30
66#define SIGSYS 31
67#define SIGUNUSED 31
68
69/* These should not be considered constants from userland. */
70#define SIGRTMIN 32
71#define SIGRTMAX _NSIG
72
73/*
74 * SA_FLAGS values:
75 *
76 * SA_ONSTACK indicates that a registered stack_t will be used.
77 * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
78 * SA_RESTART flag to get restarting signals (which were the default long ago)
79 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
80 * SA_RESETHAND clears the handler when the signal is delivered.
81 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
82 * SA_NODEFER prevents the current signal from being masked in the handler.
83 *
84 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
85 * Unix names RESETHAND and NODEFER respectively.
86 */
87#define SA_NOCLDSTOP 0x00000001
88#define SA_NOCLDWAIT 0x00000002 /* not supported yet */
89#define SA_SIGINFO 0x00000004
90#define SA_ONSTACK 0x08000000
91#define SA_RESTART 0x10000000
92#define SA_NODEFER 0x40000000
93#define SA_RESETHAND 0x80000000
94
95#define SA_NOMASK SA_NODEFER
96#define SA_ONESHOT SA_RESETHAND
97
98/*
99 * sigaltstack controls
100 */
101#define SS_ONSTACK 1
102#define SS_DISABLE 2
103
104#define MINSIGSTKSZ 2048
105#define SIGSTKSZ 8192
106
107#include <asm-generic/signal-defs.h>
108
109#ifdef __KERNEL__
110struct old_sigaction {
111 __sighandler_t sa_handler;
112 old_sigset_t sa_mask;
113 unsigned long sa_flags;
114 void (*sa_restorer) (void);
115};
116
117struct sigaction {
118 __sighandler_t sa_handler;
119 unsigned long sa_flags;
120 void (*sa_restorer) (void);
121 sigset_t sa_mask; /* mask last for extensibility */
122};
123
124struct k_sigaction {
125 struct sigaction sa;
126};
127#else
128/* Here we must cater to libcs that poke about in kernel headers. */
129
130struct sigaction {
131 union {
132 __sighandler_t _sa_handler;
133 void (*_sa_sigaction) (int, struct siginfo *, void *);
134 } _u;
135 sigset_t sa_mask;
136 unsigned long sa_flags;
137 void (*sa_restorer) (void);
138};
139
140#define sa_handler _u._sa_handler
141#define sa_sigaction _u._sa_sigaction
142
143#endif /* __KERNEL__ */
144
145typedef struct sigaltstack {
146 void __user *ss_sp;
147 int ss_flags;
148 size_t ss_size;
149} stack_t;
150
151#ifdef __KERNEL__
152
153#include <asm/sigcontext.h>
154#undef __HAVE_ARCH_SIG_BITOPS
155
156#define ptrace_signal_deliver(regs, cookie) do { } while (0)
157
158#endif /* __KERNEL__ */
159
160#endif /* _BLACKFIN_SIGNAL_H */
diff --git a/arch/blackfin/include/asm/socket.h b/arch/blackfin/include/asm/socket.h
index fac7fe9e1f8..6b71384b9d8 100644
--- a/arch/blackfin/include/asm/socket.h
+++ b/arch/blackfin/include/asm/socket.h
@@ -1,59 +1 @@
1#ifndef _ASM_SOCKET_H #include <asm-generic/socket.h>
2#define _ASM_SOCKET_H
3
4#include <asm/sockios.h>
5
6/* For setsockoptions(2) */
7#define SOL_SOCKET 1
8
9#define SO_DEBUG 1
10#define SO_REUSEADDR 2
11#define SO_TYPE 3
12#define SO_ERROR 4
13#define SO_DONTROUTE 5
14#define SO_BROADCAST 6
15#define SO_SNDBUF 7
16#define SO_RCVBUF 8
17#define SO_SNDBUFFORCE 32
18#define SO_RCVBUFFORCE 33
19#define SO_KEEPALIVE 9
20#define SO_OOBINLINE 10
21#define SO_NO_CHECK 11
22#define SO_PRIORITY 12
23#define SO_LINGER 13
24#define SO_BSDCOMPAT 14
25/* To add :#define SO_REUSEPORT 15 */
26#define SO_PASSCRED 16
27#define SO_PEERCRED 17
28#define SO_RCVLOWAT 18
29#define SO_SNDLOWAT 19
30#define SO_RCVTIMEO 20
31#define SO_SNDTIMEO 21
32
33/* Security levels - as per NRL IPv6 - don't actually do anything */
34#define SO_SECURITY_AUTHENTICATION 22
35#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
36#define SO_SECURITY_ENCRYPTION_NETWORK 24
37
38#define SO_BINDTODEVICE 25
39
40/* Socket filtering */
41#define SO_ATTACH_FILTER 26
42#define SO_DETACH_FILTER 27
43
44#define SO_PEERNAME 28
45#define SO_TIMESTAMP 29
46#define SCM_TIMESTAMP SO_TIMESTAMP
47
48#define SO_ACCEPTCONN 30
49#define SO_PEERSEC 31
50#define SO_PASSSEC 34
51#define SO_TIMESTAMPNS 35
52#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
53
54#define SO_MARK 36
55
56#define SO_TIMESTAMPING 37
57#define SCM_TIMESTAMPING SO_TIMESTAMPING
58
59#endif /* _ASM_SOCKET_H */
diff --git a/arch/blackfin/include/asm/sockios.h b/arch/blackfin/include/asm/sockios.h
index 426b89bfaa8..def6d4746ee 100644
--- a/arch/blackfin/include/asm/sockios.h
+++ b/arch/blackfin/include/asm/sockios.h
@@ -1,13 +1 @@
1#ifndef __ARCH_BFIN_SOCKIOS__ #include <asm-generic/sockios.h>
2#define __ARCH_BFIN_SOCKIOS__
3
4/* Socket-level I/O control calls. */
5#define FIOSETOWN 0x8901
6#define SIOCSPGRP 0x8902
7#define FIOGETOWN 0x8903
8#define SIOCGPGRP 0x8904
9#define SIOCATMARK 0x8905
10#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
11#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
12
13#endif /* __ARCH_BFIN_SOCKIOS__ */
diff --git a/arch/blackfin/include/asm/spinlock.h b/arch/blackfin/include/asm/spinlock.h
index 0249ac31947..d6ff4b59fcb 100644
--- a/arch/blackfin/include/asm/spinlock.h
+++ b/arch/blackfin/include/asm/spinlock.h
@@ -1,6 +1,10 @@
1#ifndef __BFIN_SPINLOCK_H 1#ifndef __BFIN_SPINLOCK_H
2#define __BFIN_SPINLOCK_H 2#define __BFIN_SPINLOCK_H
3 3
4#ifndef CONFIG_SMP
5# include <asm-generic/spinlock.h>
6#else
7
4#include <asm/atomic.h> 8#include <asm/atomic.h>
5 9
6asmlinkage int __raw_spin_is_locked_asm(volatile int *ptr); 10asmlinkage int __raw_spin_is_locked_asm(volatile int *ptr);
@@ -86,4 +90,6 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
86#define _raw_read_relax(lock) cpu_relax() 90#define _raw_read_relax(lock) cpu_relax()
87#define _raw_write_relax(lock) cpu_relax() 91#define _raw_write_relax(lock) cpu_relax()
88 92
93#endif
94
89#endif /* !__BFIN_SPINLOCK_H */ 95#endif /* !__BFIN_SPINLOCK_H */
diff --git a/arch/blackfin/include/asm/statfs.h b/arch/blackfin/include/asm/statfs.h
index 350672091ba..0b91fe198c2 100644
--- a/arch/blackfin/include/asm/statfs.h
+++ b/arch/blackfin/include/asm/statfs.h
@@ -1,6 +1 @@
1#ifndef _BFIN_STATFS_H
2#define _BFIN_STATFS_H
3
4#include <asm-generic/statfs.h> #include <asm-generic/statfs.h>
5
6#endif /* _BFIN_STATFS_H */
diff --git a/arch/blackfin/include/asm/swab.h b/arch/blackfin/include/asm/swab.h
index 6403ad2932e..d442113de51 100644
--- a/arch/blackfin/include/asm/swab.h
+++ b/arch/blackfin/include/asm/swab.h
@@ -2,11 +2,7 @@
2#define _BLACKFIN_SWAB_H 2#define _BLACKFIN_SWAB_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/compiler.h> 5#include <asm-generic/swab.h>
6
7#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
8# define __SWAB_64_THRU_32__
9#endif
10 6
11#ifdef __GNUC__ 7#ifdef __GNUC__
12 8
diff --git a/arch/blackfin/include/asm/system.h b/arch/blackfin/include/asm/system.h
index 294dbda2416..85e8f16cf8c 100644
--- a/arch/blackfin/include/asm/system.h
+++ b/arch/blackfin/include/asm/system.h
@@ -135,11 +135,13 @@ struct __xchg_dummy {
135}; 135};
136#define __xg(x) ((volatile struct __xchg_dummy *)(x)) 136#define __xg(x) ((volatile struct __xchg_dummy *)(x))
137 137
138#include <mach/blackfin.h>
139
138static inline unsigned long __xchg(unsigned long x, volatile void *ptr, 140static inline unsigned long __xchg(unsigned long x, volatile void *ptr,
139 int size) 141 int size)
140{ 142{
141 unsigned long tmp = 0; 143 unsigned long tmp = 0;
142 unsigned long flags = 0; 144 unsigned long flags;
143 145
144 local_irq_save_hw(flags); 146 local_irq_save_hw(flags);
145 147
diff --git a/arch/blackfin/include/asm/termbits.h b/arch/blackfin/include/asm/termbits.h
index f37feb7cf89..3935b106de7 100644
--- a/arch/blackfin/include/asm/termbits.h
+++ b/arch/blackfin/include/asm/termbits.h
@@ -1,198 +1 @@
1#ifndef __ARCH_BFIN_TERMBITS_H__ #include <asm-generic/termbits.h>
2#define __ARCH_BFIN_TERMBITS_H__
3
4#include <linux/posix_types.h>
5
6typedef unsigned char cc_t;
7typedef unsigned int speed_t;
8typedef unsigned int tcflag_t;
9
10#define NCCS 19
11struct termios {
12 tcflag_t c_iflag; /* input mode flags */
13 tcflag_t c_oflag; /* output mode flags */
14 tcflag_t c_cflag; /* control mode flags */
15 tcflag_t c_lflag; /* local mode flags */
16 cc_t c_line; /* line discipline */
17 cc_t c_cc[NCCS]; /* control characters */
18};
19
20struct termios2 {
21 tcflag_t c_iflag; /* input mode flags */
22 tcflag_t c_oflag; /* output mode flags */
23 tcflag_t c_cflag; /* control mode flags */
24 tcflag_t c_lflag; /* local mode flags */
25 cc_t c_line; /* line discipline */
26 cc_t c_cc[NCCS]; /* control characters */
27 speed_t c_ispeed; /* input speed */
28 speed_t c_ospeed; /* output speed */
29};
30
31struct ktermios {
32 tcflag_t c_iflag; /* input mode flags */
33 tcflag_t c_oflag; /* output mode flags */
34 tcflag_t c_cflag; /* control mode flags */
35 tcflag_t c_lflag; /* local mode flags */
36 cc_t c_line; /* line discipline */
37 cc_t c_cc[NCCS]; /* control characters */
38 speed_t c_ispeed; /* input speed */
39 speed_t c_ospeed; /* output speed */
40};
41
42/* c_cc characters */
43#define VINTR 0
44#define VQUIT 1
45#define VERASE 2
46#define VKILL 3
47#define VEOF 4
48#define VTIME 5
49#define VMIN 6
50#define VSWTC 7
51#define VSTART 8
52#define VSTOP 9
53#define VSUSP 10
54#define VEOL 11
55#define VREPRINT 12
56#define VDISCARD 13
57#define VWERASE 14
58#define VLNEXT 15
59#define VEOL2 16
60
61/* c_iflag bits */
62#define IGNBRK 0000001
63#define BRKINT 0000002
64#define IGNPAR 0000004
65#define PARMRK 0000010
66#define INPCK 0000020
67#define ISTRIP 0000040
68#define INLCR 0000100
69#define IGNCR 0000200
70#define ICRNL 0000400
71#define IUCLC 0001000
72#define IXON 0002000
73#define IXANY 0004000
74#define IXOFF 0010000
75#define IMAXBEL 0020000
76#define IUTF8 0040000
77
78/* c_oflag bits */
79#define OPOST 0000001
80#define OLCUC 0000002
81#define ONLCR 0000004
82#define OCRNL 0000010
83#define ONOCR 0000020
84#define ONLRET 0000040
85#define OFILL 0000100
86#define OFDEL 0000200
87#define NLDLY 0000400
88#define NL0 0000000
89#define NL1 0000400
90#define CRDLY 0003000
91#define CR0 0000000
92#define CR1 0001000
93#define CR2 0002000
94#define CR3 0003000
95#define TABDLY 0014000
96#define TAB0 0000000
97#define TAB1 0004000
98#define TAB2 0010000
99#define TAB3 0014000
100#define XTABS 0014000
101#define BSDLY 0020000
102#define BS0 0000000
103#define BS1 0020000
104#define VTDLY 0040000
105#define VT0 0000000
106#define VT1 0040000
107#define FFDLY 0100000
108#define FF0 0000000
109#define FF1 0100000
110
111/* c_cflag bit meaning */
112#define CBAUD 0010017
113#define B0 0000000 /* hang up */
114#define B50 0000001
115#define B75 0000002
116#define B110 0000003
117#define B134 0000004
118#define B150 0000005
119#define B200 0000006
120#define B300 0000007
121#define B600 0000010
122#define B1200 0000011
123#define B1800 0000012
124#define B2400 0000013
125#define B4800 0000014
126#define B9600 0000015
127#define B19200 0000016
128#define B38400 0000017
129#define EXTA B19200
130#define EXTB B38400
131#define CSIZE 0000060
132#define CS5 0000000
133#define CS6 0000020
134#define CS7 0000040
135#define CS8 0000060
136#define CSTOPB 0000100
137#define CREAD 0000200
138#define PARENB 0000400
139#define PARODD 0001000
140#define HUPCL 0002000
141#define CLOCAL 0004000
142#define CBAUDEX 0010000
143#define BOTHER 0010000
144#define B57600 0010001
145#define B115200 0010002
146#define B230400 0010003
147#define B460800 0010004
148#define B500000 0010005
149#define B576000 0010006
150#define B921600 0010007
151#define B1000000 0010010
152#define B1152000 0010011
153#define B1500000 0010012
154#define B2000000 0010013
155#define B2500000 0010014
156#define B3000000 0010015
157#define B3500000 0010016
158#define B4000000 0010017
159#define CIBAUD 002003600000 /* input baud rate */
160#define CMSPAR 010000000000 /* mark or space (stick) parity */
161#define CRTSCTS 020000000000 /* flow control */
162
163#define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */
164
165/* c_lflag bits */
166#define ISIG 0000001
167#define ICANON 0000002
168#define XCASE 0000004
169#define ECHO 0000010
170#define ECHOE 0000020
171#define ECHOK 0000040
172#define ECHONL 0000100
173#define NOFLSH 0000200
174#define TOSTOP 0000400
175#define ECHOCTL 0001000
176#define ECHOPRT 0002000
177#define ECHOKE 0004000
178#define FLUSHO 0010000
179#define PENDIN 0040000
180#define IEXTEN 0100000
181
182/* tcflow() and TCXONC use these */
183#define TCOOFF 0
184#define TCOON 1
185#define TCIOFF 2
186#define TCION 3
187
188/* tcflush() and TCFLSH use these */
189#define TCIFLUSH 0
190#define TCOFLUSH 1
191#define TCIOFLUSH 2
192
193/* tcsetattr uses these */
194#define TCSANOW 0
195#define TCSADRAIN 1
196#define TCSAFLUSH 2
197
198#endif /* __ARCH_BFIN_TERMBITS_H__ */
diff --git a/arch/blackfin/include/asm/termios.h b/arch/blackfin/include/asm/termios.h
index d50d063c605..280d78a9d96 100644
--- a/arch/blackfin/include/asm/termios.h
+++ b/arch/blackfin/include/asm/termios.h
@@ -1,94 +1 @@
1#ifndef __BFIN_TERMIOS_H__ #include <asm-generic/termios.h>
2#define __BFIN_TERMIOS_H__
3
4#include <asm/termbits.h>
5#include <asm/ioctls.h>
6
7struct winsize {
8 unsigned short ws_row;
9 unsigned short ws_col;
10 unsigned short ws_xpixel;
11 unsigned short ws_ypixel;
12};
13
14#define NCC 8
15struct termio {
16 unsigned short c_iflag; /* input mode flags */
17 unsigned short c_oflag; /* output mode flags */
18 unsigned short c_cflag; /* control mode flags */
19 unsigned short c_lflag; /* local mode flags */
20 unsigned char c_line; /* line discipline */
21 unsigned char c_cc[NCC]; /* control characters */
22};
23
24/* modem lines */
25#define TIOCM_LE 0x001
26#define TIOCM_DTR 0x002
27#define TIOCM_RTS 0x004
28#define TIOCM_ST 0x008
29#define TIOCM_SR 0x010
30#define TIOCM_CTS 0x020
31#define TIOCM_CAR 0x040
32#define TIOCM_RNG 0x080
33#define TIOCM_DSR 0x100
34#define TIOCM_CD TIOCM_CAR
35#define TIOCM_RI TIOCM_RNG
36#define TIOCM_OUT1 0x2000
37#define TIOCM_OUT2 0x4000
38#define TIOCM_LOOP 0x8000
39
40/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
41
42#ifdef __KERNEL__
43
44/* intr=^C quit=^\ erase=del kill=^U
45 eof=^D vtime=\0 vmin=\1 sxtc=\0
46 start=^Q stop=^S susp=^Z eol=\0
47 reprint=^R discard=^U werase=^W lnext=^V
48 eol2=\0
49*/
50#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
51
52/*
53 * Translate a "termio" structure into a "termios". Ugh.
54 */
55#define SET_LOW_TERMIOS_BITS(termios, termio, x) { \
56 unsigned short __tmp; \
57 get_user(__tmp,&(termio)->x); \
58 *(unsigned short *) &(termios)->x = __tmp; \
59}
60
61#define user_termio_to_kernel_termios(termios, termio) \
62({ \
63 SET_LOW_TERMIOS_BITS(termios, termio, c_iflag); \
64 SET_LOW_TERMIOS_BITS(termios, termio, c_oflag); \
65 SET_LOW_TERMIOS_BITS(termios, termio, c_cflag); \
66 SET_LOW_TERMIOS_BITS(termios, termio, c_lflag); \
67 copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \
68})
69
70/*
71 * Translate a "termios" structure into a "termio". Ugh.
72 */
73#define kernel_termios_to_user_termio(termio, termios) \
74({ \
75 put_user((termios)->c_iflag, &(termio)->c_iflag); \
76 put_user((termios)->c_oflag, &(termio)->c_oflag); \
77 put_user((termios)->c_cflag, &(termio)->c_cflag); \
78 put_user((termios)->c_lflag, &(termio)->c_lflag); \
79 put_user((termios)->c_line, &(termio)->c_line); \
80 copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \
81})
82
83#define user_termios_to_kernel_termios(k, u) \
84 copy_from_user(k, u, sizeof(struct termios2))
85#define kernel_termios_to_user_termios(u, k) \
86 copy_to_user(u, k, sizeof(struct termios2))
87#define user_termios_to_kernel_termios_1(k, u) \
88 copy_from_user(k, u, sizeof(struct termios))
89#define kernel_termios_to_user_termios_1(u, k) \
90 copy_to_user(u, k, sizeof(struct termios))
91
92#endif /* __KERNEL__ */
93
94#endif /* __BFIN_TERMIOS_H__ */
diff --git a/arch/blackfin/include/asm/tlbflush.h b/arch/blackfin/include/asm/tlbflush.h
index 277b400924b..f1a06c006ed 100644
--- a/arch/blackfin/include/asm/tlbflush.h
+++ b/arch/blackfin/include/asm/tlbflush.h
@@ -1,56 +1 @@
1#ifndef _BLACKFIN_TLBFLUSH_H #include <asm-generic/tlbflush.h>
2#define _BLACKFIN_TLBFLUSH_H
3
4/*
5 * Copyright (C) 2000 Lineo, David McCullough <davidm@uclinux.org>
6 * Copyright (C) 2000-2002, Greg Ungerer <gerg@snapgear.com>
7 */
8
9#include <asm/setup.h>
10
11/*
12 * flush all user-space atc entries.
13 */
14static inline void __flush_tlb(void)
15{
16 BUG();
17}
18
19static inline void __flush_tlb_one(unsigned long addr)
20{
21 BUG();
22}
23
24#define flush_tlb() __flush_tlb()
25
26/*
27 * flush all atc entries (both kernel and user-space entries).
28 */
29static inline void flush_tlb_all(void)
30{
31 BUG();
32}
33
34static inline void flush_tlb_mm(struct mm_struct *mm)
35{
36 BUG();
37}
38
39static inline void flush_tlb_page(struct vm_area_struct *vma,
40 unsigned long addr)
41{
42 BUG();
43}
44
45static inline void flush_tlb_range(struct mm_struct *mm,
46 unsigned long start, unsigned long end)
47{
48 BUG();
49}
50
51static inline void flush_tlb_kernel_page(unsigned long addr)
52{
53 BUG();
54}
55
56#endif
diff --git a/arch/blackfin/include/asm/topology.h b/arch/blackfin/include/asm/topology.h
index acee2398789..5428f333a02 100644
--- a/arch/blackfin/include/asm/topology.h
+++ b/arch/blackfin/include/asm/topology.h
@@ -1,6 +1 @@
1#ifndef _ASM_BLACKFIN_TOPOLOGY_H
2#define _ASM_BLACKFIN_TOPOLOGY_H
3
4#include <asm-generic/topology.h> #include <asm-generic/topology.h>
5
6#endif /* _ASM_BLACKFIN_TOPOLOGY_H */
diff --git a/arch/blackfin/include/asm/traps.h b/arch/blackfin/include/asm/traps.h
index 34f7295fb07..3cdc454cde2 100644
--- a/arch/blackfin/include/asm/traps.h
+++ b/arch/blackfin/include/asm/traps.h
@@ -111,9 +111,7 @@
111 level " bits in the Watchpoint Instruction Address Control register (WPIACTL) is set.\n" 111 level " bits in the Watchpoint Instruction Address Control register (WPIACTL) is set.\n"
112#define EXC_0x2A(level) \ 112#define EXC_0x2A(level) \
113 "Instruction fetch misaligned address violation\n" \ 113 "Instruction fetch misaligned address violation\n" \
114 level " - Attempted misaligned instruction cache fetch. On a misaligned instruction fetch\n" \ 114 level " - Attempted misaligned instruction cache fetch.\n"
115 level " exception, the return address provided in RETX is the destination address which is\n" \
116 level " misaligned, rather than the address of the offending instruction.\n"
117#define EXC_0x2B(level) \ 115#define EXC_0x2B(level) \
118 "CPLB protection violation\n" \ 116 "CPLB protection violation\n" \
119 level " - Illegal instruction fetch access (memory protection violation).\n" 117 level " - Illegal instruction fetch access (memory protection violation).\n"
diff --git a/arch/blackfin/include/asm/types.h b/arch/blackfin/include/asm/types.h
index 8441cbc2bf9..b9e79bc580d 100644
--- a/arch/blackfin/include/asm/types.h
+++ b/arch/blackfin/include/asm/types.h
@@ -1,36 +1 @@
1#ifndef _BFIN_TYPES_H #include <asm-generic/types.h>
2#define _BFIN_TYPES_H
3
4/*
5 * This file is never included by application software unless
6 * explicitly requested (e.g., via linux/types.h) in which case the
7 * application is Linux specific so (user-) name space pollution is
8 * not a major issue. However, for interoperability, libraries still
9 * need to be careful to avoid a name clashes.
10 */
11#include <asm-generic/int-ll64.h>
12
13#ifndef __ASSEMBLY__
14
15typedef unsigned short umode_t;
16
17#endif /* __ASSEMBLY__ */
18/*
19 * These aren't exported outside the kernel to avoid name space clashes
20 */
21#ifdef __KERNEL__
22
23#define BITS_PER_LONG 32
24
25#ifndef __ASSEMBLY__
26
27/* Dma addresses are 32-bits wide. */
28
29typedef u32 dma_addr_t;
30typedef u64 dma64_addr_t;
31
32#endif /* __ASSEMBLY__ */
33
34#endif /* __KERNEL__ */
35
36#endif /* _BFIN_TYPES_H */
diff --git a/arch/blackfin/include/asm/uaccess.h b/arch/blackfin/include/asm/uaccess.h
index 8894e9ffbb5..2f469a1f80f 100644
--- a/arch/blackfin/include/asm/uaccess.h
+++ b/arch/blackfin/include/asm/uaccess.h
@@ -265,4 +265,26 @@ __clear_user(void *to, unsigned long n)
265 265
266#define clear_user(to, n) __clear_user(to, n) 266#define clear_user(to, n) __clear_user(to, n)
267 267
268/* How to interpret these return values:
269 * CORE: can be accessed by core load or dma memcpy
270 * CORE_ONLY: can only be accessed by core load
271 * DMA: can only be accessed by dma memcpy
272 * IDMA: can only be accessed by interprocessor dma memcpy (BF561)
273 * ITEST: can be accessed by isram memcpy or dma memcpy
274 */
275enum {
276 BFIN_MEM_ACCESS_CORE = 0,
277 BFIN_MEM_ACCESS_CORE_ONLY,
278 BFIN_MEM_ACCESS_DMA,
279 BFIN_MEM_ACCESS_IDMA,
280 BFIN_MEM_ACCESS_ITEST,
281};
282/**
283 * bfin_mem_access_type() - what kind of memory access is required
284 * @addr: the address to check
285 * @size: number of bytes needed
286 * @return: <0 is error, >=0 is BFIN_MEM_ACCESS_xxx enum (see above)
287 */
288int bfin_mem_access_type(unsigned long addr, unsigned long size);
289
268#endif /* _BLACKFIN_UACCESS_H */ 290#endif /* _BLACKFIN_UACCESS_H */
diff --git a/arch/blackfin/include/asm/ucontext.h b/arch/blackfin/include/asm/ucontext.h
index 4a4e3856beb..9bc07b9f30f 100644
--- a/arch/blackfin/include/asm/ucontext.h
+++ b/arch/blackfin/include/asm/ucontext.h
@@ -1,17 +1 @@
1/** Changes made by Tony Kou Lineo Inc. May 2001 #include <asm-generic/ucontext.h>
2 *
3 * Based on: include/m68knommu/ucontext.h
4 */
5
6#ifndef _BLACKFIN_UCONTEXT_H
7#define _BLACKFIN_UCONTEXT_H
8
9struct ucontext {
10 unsigned long uc_flags; /* the others are necessary */
11 struct ucontext *uc_link;
12 stack_t uc_stack;
13 struct sigcontext uc_mcontext;
14 sigset_t uc_sigmask; /* mask last for extensibility */
15};
16
17#endif /* _BLACKFIN_UCONTEXT_H */
diff --git a/arch/blackfin/include/asm/unaligned.h b/arch/blackfin/include/asm/unaligned.h
index fd8a1d63494..6cecbbb2111 100644
--- a/arch/blackfin/include/asm/unaligned.h
+++ b/arch/blackfin/include/asm/unaligned.h
@@ -1,11 +1 @@
1#ifndef _ASM_BLACKFIN_UNALIGNED_H #include <asm-generic/unaligned.h>
2#define _ASM_BLACKFIN_UNALIGNED_H
3
4#include <linux/unaligned/le_struct.h>
5#include <linux/unaligned/be_byteshift.h>
6#include <linux/unaligned/generic.h>
7
8#define get_unaligned __get_unaligned_le
9#define put_unaligned __put_unaligned_le
10
11#endif /* _ASM_BLACKFIN_UNALIGNED_H */
diff --git a/arch/blackfin/include/asm/unistd.h b/arch/blackfin/include/asm/unistd.h
index da35133c171..c8e7ee4768c 100644
--- a/arch/blackfin/include/asm/unistd.h
+++ b/arch/blackfin/include/asm/unistd.h
@@ -381,8 +381,9 @@
381#define __NR_preadv 366 381#define __NR_preadv 366
382#define __NR_pwritev 367 382#define __NR_pwritev 367
383#define __NR_rt_tgsigqueueinfo 368 383#define __NR_rt_tgsigqueueinfo 368
384#define __NR_perf_counter_open 369
384 385
385#define __NR_syscall 369 386#define __NR_syscall 370
386#define NR_syscalls __NR_syscall 387#define NR_syscalls __NR_syscall
387 388
388/* Old optional stuff no one actually uses */ 389/* Old optional stuff no one actually uses */
diff --git a/arch/blackfin/include/asm/user.h b/arch/blackfin/include/asm/user.h
index afe6a0e1f7c..4792a60831e 100644
--- a/arch/blackfin/include/asm/user.h
+++ b/arch/blackfin/include/asm/user.h
@@ -1,89 +1 @@
1#ifndef _BFIN_USER_H #include <asm-generic/user.h>
2#define _BFIN_USER_H
3
4/* Changes by Tony Kou Lineo, Inc. July, 2001
5 *
6 * Based include/asm-m68knommu/user.h
7 *
8 */
9
10/* Core file format: The core file is written in such a way that gdb
11 can understand it and provide useful information to the user (under
12 linux we use the 'trad-core' bfd). There are quite a number of
13 obstacles to being able to view the contents of the floating point
14 registers, and until these are solved you will not be able to view the
15 contents of them. Actually, you can read in the core file and look at
16 the contents of the user struct to find out what the floating point
17 registers contain.
18 The actual file contents are as follows:
19 UPAGE: 1 page consisting of a user struct that tells gdb what is present
20 in the file. Directly after this is a copy of the task_struct, which
21 is currently not used by gdb, but it may come in useful at some point.
22 All of the registers are stored as part of the upage. The upage should
23 always be only one page.
24 DATA: The data area is stored. We use current->end_text to
25 current->brk to pick up all of the user variables, plus any memory
26 that may have been malloced. No attempt is made to determine if a page
27 is demand-zero or if a page is totally unused, we just cover the entire
28 range. All of the addresses are rounded in such a way that an integral
29 number of pages is written.
30 STACK: We need the stack information in order to get a meaningful
31 backtrace. We need to write the data from (esp) to
32 current->start_stack, so we round each of these off in order to be able
33 to write an integer number of pages.
34 The minimum core file size is 3 pages, or 12288 bytes.
35*/
36struct user_bfinfp_struct {
37};
38
39/* This is the old layout of "struct pt_regs" as of Linux 1.x, and
40 is still the layout used by user (the new pt_regs doesn't have
41 all registers). */
42struct user_regs_struct {
43 long r0, r1, r2, r3, r4, r5, r6, r7;
44 long p0, p1, p2, p3, p4, p5, usp, fp;
45 long i0, i1, i2, i3;
46 long l0, l1, l2, l3;
47 long b0, b1, b2, b3;
48 long m0, m1, m2, m3;
49 long a0w, a1w;
50 long a0x, a1x;
51 unsigned long rets;
52 unsigned long astat;
53 unsigned long pc;
54 unsigned long orig_p0;
55};
56
57/* When the kernel dumps core, it starts by dumping the user struct -
58 this will be used by gdb to figure out where the data and stack segments
59 are within the file, and what virtual addresses to use. */
60
61struct user {
62/* We start with the registers, to mimic the way that "memory" is returned
63 from the ptrace(3,...) function. */
64
65 struct user_regs_struct regs; /* Where the registers are actually stored */
66
67/* The rest of this junk is to help gdb figure out what goes where */
68 unsigned long int u_tsize; /* Text segment size (pages). */
69 unsigned long int u_dsize; /* Data segment size (pages). */
70 unsigned long int u_ssize; /* Stack segment size (pages). */
71 unsigned long start_code; /* Starting virtual address of text. */
72 unsigned long start_stack; /* Starting virtual address of stack area.
73 This is actually the bottom of the stack,
74 the top of the stack is always found in the
75 esp register. */
76 long int signal; /* Signal that caused the core dump. */
77 int reserved; /* No longer used */
78 unsigned long u_ar0;
79 /* Used by gdb to help find the values for */
80 /* the registers. */
81 unsigned long magic; /* To uniquely identify a core file */
82 char u_comm[32]; /* User command that was responsible */
83};
84#define NBPG PAGE_SIZE
85#define UPAGES 1
86#define HOST_TEXT_START_ADDR (u.start_code)
87#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
88
89#endif
diff --git a/arch/blackfin/kernel/Makefile b/arch/blackfin/kernel/Makefile
index 3731088e181..141d9281e4b 100644
--- a/arch/blackfin/kernel/Makefile
+++ b/arch/blackfin/kernel/Makefile
@@ -20,7 +20,6 @@ obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
20CFLAGS_REMOVE_ftrace.o = -pg 20CFLAGS_REMOVE_ftrace.o = -pg
21 21
22obj-$(CONFIG_IPIPE) += ipipe.o 22obj-$(CONFIG_IPIPE) += ipipe.o
23obj-$(CONFIG_IPIPE_TRACE_MCOUNT) += mcount.o
24obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o 23obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o
25obj-$(CONFIG_CPLB_INFO) += cplbinfo.o 24obj-$(CONFIG_CPLB_INFO) += cplbinfo.o
26obj-$(CONFIG_MODULES) += module.o 25obj-$(CONFIG_MODULES) += module.o
diff --git a/arch/blackfin/kernel/bfin_ksyms.c b/arch/blackfin/kernel/bfin_ksyms.c
index aa05e638fb7..ed8392c117e 100644
--- a/arch/blackfin/kernel/bfin_ksyms.c
+++ b/arch/blackfin/kernel/bfin_ksyms.c
@@ -10,6 +10,7 @@
10#include <linux/uaccess.h> 10#include <linux/uaccess.h>
11 11
12#include <asm/cacheflush.h> 12#include <asm/cacheflush.h>
13#include <asm/io.h>
13 14
14/* Allow people to have their own Blackfin exception handler in a module */ 15/* Allow people to have their own Blackfin exception handler in a module */
15EXPORT_SYMBOL(bfin_return_from_exception); 16EXPORT_SYMBOL(bfin_return_from_exception);
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbinit.c b/arch/blackfin/kernel/cplb-mpu/cplbinit.c
index c006a44527b..36193eed9a1 100644
--- a/arch/blackfin/kernel/cplb-mpu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-mpu/cplbinit.c
@@ -46,13 +46,13 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
46 46
47 printk(KERN_INFO "MPU: setting up cplb tables with memory protection\n"); 47 printk(KERN_INFO "MPU: setting up cplb tables with memory protection\n");
48 48
49#ifdef CONFIG_BFIN_ICACHE 49#ifdef CONFIG_BFIN_EXTMEM_ICACHEABLE
50 i_cache = CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; 50 i_cache = CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND;
51#endif 51#endif
52 52
53#ifdef CONFIG_BFIN_DCACHE 53#ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE
54 d_cache = CPLB_L1_CHBL; 54 d_cache = CPLB_L1_CHBL;
55#ifdef CONFIG_BFIN_WT 55#ifdef CONFIG_BFIN_EXTMEM_WRITETROUGH
56 d_cache |= CPLB_L1_AOW | CPLB_WT; 56 d_cache |= CPLB_L1_AOW | CPLB_WT;
57#endif 57#endif
58#endif 58#endif
@@ -91,9 +91,9 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
91 /* Cover L2 memory */ 91 /* Cover L2 memory */
92#if L2_LENGTH > 0 92#if L2_LENGTH > 0
93 dcplb_tbl[cpu][i_d].addr = L2_START; 93 dcplb_tbl[cpu][i_d].addr = L2_START;
94 dcplb_tbl[cpu][i_d++].data = L2_DMEMORY | PAGE_SIZE_1MB; 94 dcplb_tbl[cpu][i_d++].data = L2_DMEMORY;
95 icplb_tbl[cpu][i_i].addr = L2_START; 95 icplb_tbl[cpu][i_i].addr = L2_START;
96 icplb_tbl[cpu][i_i++].data = L2_IMEMORY | PAGE_SIZE_1MB; 96 icplb_tbl[cpu][i_i++].data = L2_IMEMORY;
97#endif 97#endif
98 98
99 first_mask_dcplb = i_d; 99 first_mask_dcplb = i_d;
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
index 784923e52a9..bcdfe9b0b71 100644
--- a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
+++ b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
@@ -150,15 +150,19 @@ static noinline int dcplb_miss(unsigned int cpu)
150 nr_dcplb_miss[cpu]++; 150 nr_dcplb_miss[cpu]++;
151 151
152 d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB; 152 d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB;
153#ifdef CONFIG_BFIN_DCACHE 153#ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE
154 if (bfin_addr_dcacheable(addr)) { 154 if (bfin_addr_dcacheable(addr)) {
155 d_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; 155 d_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND;
156#ifdef CONFIG_BFIN_WT 156# ifdef CONFIG_BFIN_EXTMEM_WRITETHROUGH
157 d_data |= CPLB_L1_AOW | CPLB_WT; 157 d_data |= CPLB_L1_AOW | CPLB_WT;
158#endif 158# endif
159 } 159 }
160#endif 160#endif
161 if (addr >= physical_mem_end) { 161
162 if (L2_LENGTH && addr >= L2_START && addr < L2_START + L2_LENGTH) {
163 addr = L2_START;
164 d_data = L2_DMEMORY;
165 } else if (addr >= physical_mem_end) {
162 if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE 166 if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE
163 && (status & FAULT_USERSUPV)) { 167 && (status & FAULT_USERSUPV)) {
164 addr &= ~0x3fffff; 168 addr &= ~0x3fffff;
@@ -235,7 +239,7 @@ static noinline int icplb_miss(unsigned int cpu)
235 239
236 i_data = CPLB_VALID | CPLB_PORTPRIO | PAGE_SIZE_4KB; 240 i_data = CPLB_VALID | CPLB_PORTPRIO | PAGE_SIZE_4KB;
237 241
238#ifdef CONFIG_BFIN_ICACHE 242#ifdef CONFIG_BFIN_EXTMEM_ICACHEABLE
239 /* 243 /*
240 * Normal RAM, and possibly the reserved memory area, are 244 * Normal RAM, and possibly the reserved memory area, are
241 * cacheable. 245 * cacheable.
@@ -245,7 +249,10 @@ static noinline int icplb_miss(unsigned int cpu)
245 i_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; 249 i_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND;
246#endif 250#endif
247 251
248 if (addr >= physical_mem_end) { 252 if (L2_LENGTH && addr >= L2_START && addr < L2_START + L2_LENGTH) {
253 addr = L2_START;
254 i_data = L2_IMEMORY;
255 } else if (addr >= physical_mem_end) {
249 if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH 256 if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH
250 && (status & FAULT_USERSUPV)) { 257 && (status & FAULT_USERSUPV)) {
251 addr &= ~(1 * 1024 * 1024 - 1); 258 addr &= ~(1 * 1024 * 1024 - 1);
@@ -365,13 +372,18 @@ void set_mask_dcplbs(unsigned long *masks, unsigned int cpu)
365 local_irq_save_hw(flags); 372 local_irq_save_hw(flags);
366 current_rwx_mask[cpu] = masks; 373 current_rwx_mask[cpu] = masks;
367 374
368 d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB; 375 if (L2_LENGTH && addr >= L2_START && addr < L2_START + L2_LENGTH) {
369#ifdef CONFIG_BFIN_DCACHE 376 addr = L2_START;
370 d_data |= CPLB_L1_CHBL; 377 d_data = L2_DMEMORY;
371#ifdef CONFIG_BFIN_WT 378 } else {
372 d_data |= CPLB_L1_AOW | CPLB_WT; 379 d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB;
373#endif 380#ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE
381 d_data |= CPLB_L1_CHBL;
382# ifdef CONFIG_BFIN_EXTMEM_WRITETHROUGH
383 d_data |= CPLB_L1_AOW | CPLB_WT;
384# endif
374#endif 385#endif
386 }
375 387
376 disable_dcplb(); 388 disable_dcplb();
377 for (i = first_mask_dcplb; i < first_switched_dcplb; i++) { 389 for (i = first_mask_dcplb; i < first_switched_dcplb; i++) {
diff --git a/arch/blackfin/kernel/ipipe.c b/arch/blackfin/kernel/ipipe.c
index d8cde1fc5cb..b8d22034b9a 100644
--- a/arch/blackfin/kernel/ipipe.c
+++ b/arch/blackfin/kernel/ipipe.c
@@ -52,7 +52,7 @@ EXPORT_SYMBOL(__ipipe_freq_scale);
52 52
53atomic_t __ipipe_irq_lvdepth[IVG15 + 1]; 53atomic_t __ipipe_irq_lvdepth[IVG15 + 1];
54 54
55unsigned long __ipipe_irq_lvmask = __all_masked_irq_flags; 55unsigned long __ipipe_irq_lvmask = bfin_no_irqs;
56EXPORT_SYMBOL(__ipipe_irq_lvmask); 56EXPORT_SYMBOL(__ipipe_irq_lvmask);
57 57
58static void __ipipe_ack_irq(unsigned irq, struct irq_desc *desc) 58static void __ipipe_ack_irq(unsigned irq, struct irq_desc *desc)
@@ -342,8 +342,3 @@ void ___ipipe_sync_pipeline(unsigned long syncmask)
342} 342}
343 343
344EXPORT_SYMBOL(show_stack); 344EXPORT_SYMBOL(show_stack);
345
346#ifdef CONFIG_IPIPE_TRACE_MCOUNT
347void notrace _mcount(void);
348EXPORT_SYMBOL(_mcount);
349#endif /* CONFIG_IPIPE_TRACE_MCOUNT */
diff --git a/arch/blackfin/kernel/irqchip.c b/arch/blackfin/kernel/irqchip.c
index 6e31e935bb3..4b5fd36187d 100644
--- a/arch/blackfin/kernel/irqchip.c
+++ b/arch/blackfin/kernel/irqchip.c
@@ -38,38 +38,15 @@
38#include <asm/pda.h> 38#include <asm/pda.h>
39 39
40static atomic_t irq_err_count; 40static atomic_t irq_err_count;
41static spinlock_t irq_controller_lock;
42
43/*
44 * Dummy mask/unmask handler
45 */
46void dummy_mask_unmask_irq(unsigned int irq)
47{
48}
49
50void ack_bad_irq(unsigned int irq) 41void ack_bad_irq(unsigned int irq)
51{ 42{
52 atomic_inc(&irq_err_count); 43 atomic_inc(&irq_err_count);
53 printk(KERN_ERR "IRQ: spurious interrupt %d\n", irq); 44 printk(KERN_ERR "IRQ: spurious interrupt %d\n", irq);
54} 45}
55 46
56static struct irq_chip bad_chip = {
57 .ack = dummy_mask_unmask_irq,
58 .mask = dummy_mask_unmask_irq,
59 .unmask = dummy_mask_unmask_irq,
60};
61
62static int bad_stats;
63static struct irq_desc bad_irq_desc = { 47static struct irq_desc bad_irq_desc = {
64 .status = IRQ_DISABLED,
65 .chip = &bad_chip,
66 .handle_irq = handle_bad_irq, 48 .handle_irq = handle_bad_irq,
67 .depth = 1,
68 .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock), 49 .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock),
69 .kstat_irqs = &bad_stats,
70#ifdef CONFIG_SMP
71 .affinity = CPU_MASK_ALL
72#endif
73}; 50};
74 51
75#ifdef CONFIG_CPUMASK_OFFSTACK 52#ifdef CONFIG_CPUMASK_OFFSTACK
@@ -77,6 +54,7 @@ static struct irq_desc bad_irq_desc = {
77#error "Blackfin architecture does not support CONFIG_CPUMASK_OFFSTACK." 54#error "Blackfin architecture does not support CONFIG_CPUMASK_OFFSTACK."
78#endif 55#endif
79 56
57#ifdef CONFIG_PROC_FS
80int show_interrupts(struct seq_file *p, void *v) 58int show_interrupts(struct seq_file *p, void *v)
81{ 59{
82 int i = *(loff_t *) v, j; 60 int i = *(loff_t *) v, j;
@@ -108,50 +86,29 @@ int show_interrupts(struct seq_file *p, void *v)
108 } 86 }
109 return 0; 87 return 0;
110} 88}
111
112/*
113 * do_IRQ handles all hardware IRQs. Decoded IRQs should not
114 * come via this function. Instead, they should provide their
115 * own 'handler'
116 */
117#ifdef CONFIG_DO_IRQ_L1
118__attribute__((l1_text))
119#endif
120asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
121{
122 struct pt_regs *old_regs;
123 struct irq_desc *desc = irq_desc + irq;
124#ifndef CONFIG_IPIPE
125 unsigned short pending, other_ints;
126#endif 89#endif
127 old_regs = set_irq_regs(regs);
128 90
129 /*
130 * Some hardware gives randomly wrong interrupts. Rather
131 * than crashing, do something sensible.
132 */
133 if (irq >= NR_IRQS)
134 desc = &bad_irq_desc;
135
136 irq_enter();
137#ifdef CONFIG_DEBUG_STACKOVERFLOW 91#ifdef CONFIG_DEBUG_STACKOVERFLOW
92static void check_stack_overflow(int irq)
93{
138 /* Debugging check for stack overflow: is there less than STACK_WARN free? */ 94 /* Debugging check for stack overflow: is there less than STACK_WARN free? */
139 { 95 long sp = __get_SP() & (THREAD_SIZE - 1);
140 long sp;
141
142 sp = __get_SP() & (THREAD_SIZE-1);
143 96
144 if (unlikely(sp < (sizeof(struct thread_info) + STACK_WARN))) { 97 if (unlikely(sp < (sizeof(struct thread_info) + STACK_WARN))) {
145 dump_stack(); 98 dump_stack();
146 printk(KERN_EMERG "%s: possible stack overflow while handling irq %i " 99 pr_emerg("irq%i: possible stack overflow only %ld bytes free\n",
147 " only %ld bytes free\n", 100 irq, sp - sizeof(struct thread_info));
148 __func__, irq, sp - sizeof(struct thread_info));
149 }
150 } 101 }
102}
103#else
104static inline void check_stack_overflow(int irq) { }
151#endif 105#endif
152 generic_handle_irq(irq);
153 106
154#ifndef CONFIG_IPIPE 107#ifndef CONFIG_IPIPE
108static void maybe_lower_to_irq14(void)
109{
110 unsigned short pending, other_ints;
111
155 /* 112 /*
156 * If we're the only interrupt running (ignoring IRQ15 which 113 * If we're the only interrupt running (ignoring IRQ15 which
157 * is for syscalls), lower our priority to IRQ14 so that 114 * is for syscalls), lower our priority to IRQ14 so that
@@ -165,7 +122,38 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
165 other_ints = pending & (pending - 1); 122 other_ints = pending & (pending - 1);
166 if (other_ints == 0) 123 if (other_ints == 0)
167 lower_to_irq14(); 124 lower_to_irq14();
168#endif /* !CONFIG_IPIPE */ 125}
126#else
127static inline void maybe_lower_to_irq14(void) { }
128#endif
129
130/*
131 * do_IRQ handles all hardware IRQs. Decoded IRQs should not
132 * come via this function. Instead, they should provide their
133 * own 'handler'
134 */
135#ifdef CONFIG_DO_IRQ_L1
136__attribute__((l1_text))
137#endif
138asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
139{
140 struct pt_regs *old_regs = set_irq_regs(regs);
141
142 irq_enter();
143
144 check_stack_overflow(irq);
145
146 /*
147 * Some hardware gives randomly wrong interrupts. Rather
148 * than crashing, do something sensible.
149 */
150 if (irq >= NR_IRQS)
151 handle_bad_irq(irq, &bad_irq_desc);
152 else
153 generic_handle_irq(irq);
154
155 maybe_lower_to_irq14();
156
169 irq_exit(); 157 irq_exit();
170 158
171 set_irq_regs(old_regs); 159 set_irq_regs(old_regs);
@@ -173,14 +161,6 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
173 161
174void __init init_IRQ(void) 162void __init init_IRQ(void)
175{ 163{
176 struct irq_desc *desc;
177 int irq;
178
179 spin_lock_init(&irq_controller_lock);
180 for (irq = 0, desc = irq_desc; irq < NR_IRQS; irq++, desc++) {
181 *desc = bad_irq_desc;
182 }
183
184 init_arch_irq(); 164 init_arch_irq();
185 165
186#ifdef CONFIG_DEBUG_BFIN_HWTRACE_EXPAND 166#ifdef CONFIG_DEBUG_BFIN_HWTRACE_EXPAND
diff --git a/arch/blackfin/kernel/kgdb.c b/arch/blackfin/kernel/kgdb.c
index da28f796ad7..cce79d05b90 100644
--- a/arch/blackfin/kernel/kgdb.c
+++ b/arch/blackfin/kernel/kgdb.c
@@ -34,15 +34,6 @@ int gdb_bfin_vector = -1;
34#error change the definition of slavecpulocks 34#error change the definition of slavecpulocks
35#endif 35#endif
36 36
37#define IN_MEM(addr, size, l1_addr, l1_size) \
38({ \
39 unsigned long __addr = (unsigned long)(addr); \
40 (l1_size && __addr >= l1_addr && __addr + (size) <= l1_addr + l1_size); \
41})
42#define ASYNC_BANK_SIZE \
43 (ASYNC_BANK0_SIZE + ASYNC_BANK1_SIZE + \
44 ASYNC_BANK2_SIZE + ASYNC_BANK3_SIZE)
45
46void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) 37void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
47{ 38{
48 gdb_regs[BFIN_R0] = regs->r0; 39 gdb_regs[BFIN_R0] = regs->r0;
@@ -463,41 +454,88 @@ static int hex(char ch)
463 454
464static int validate_memory_access_address(unsigned long addr, int size) 455static int validate_memory_access_address(unsigned long addr, int size)
465{ 456{
466 int cpu = raw_smp_processor_id(); 457 if (size < 0 || addr == 0)
467
468 if (size < 0)
469 return -EFAULT; 458 return -EFAULT;
470 if (addr >= 0x1000 && (addr + size) <= physical_mem_end) 459 return bfin_mem_access_type(addr, size);
471 return 0; 460}
472 if (addr >= SYSMMR_BASE) 461
473 return 0; 462static int bfin_probe_kernel_read(char *dst, char *src, int size)
474 if (IN_MEM(addr, size, ASYNC_BANK0_BASE, ASYNC_BANK_SIZE)) 463{
475 return 0; 464 unsigned long lsrc = (unsigned long)src;
476 if (cpu == 0) { 465 int mem_type;
477 if (IN_MEM(addr, size, L1_SCRATCH_START, L1_SCRATCH_LENGTH)) 466
478 return 0; 467 mem_type = validate_memory_access_address(lsrc, size);
479 if (IN_MEM(addr, size, L1_CODE_START, L1_CODE_LENGTH)) 468 if (mem_type < 0)
480 return 0; 469 return mem_type;
481 if (IN_MEM(addr, size, L1_DATA_A_START, L1_DATA_A_LENGTH)) 470
482 return 0; 471 if (lsrc >= SYSMMR_BASE) {
483 if (IN_MEM(addr, size, L1_DATA_B_START, L1_DATA_B_LENGTH)) 472 if (size == 2 && lsrc % 2 == 0) {
484 return 0; 473 u16 mmr = bfin_read16(src);
485#ifdef CONFIG_SMP 474 memcpy(dst, &mmr, sizeof(mmr));
486 } else if (cpu == 1) {
487 if (IN_MEM(addr, size, COREB_L1_SCRATCH_START, L1_SCRATCH_LENGTH))
488 return 0; 475 return 0;
489 if (IN_MEM(addr, size, COREB_L1_CODE_START, L1_CODE_LENGTH)) 476 } else if (size == 4 && lsrc % 4 == 0) {
477 u32 mmr = bfin_read32(src);
478 memcpy(dst, &mmr, sizeof(mmr));
490 return 0; 479 return 0;
491 if (IN_MEM(addr, size, COREB_L1_DATA_A_START, L1_DATA_A_LENGTH)) 480 }
481 } else {
482 switch (mem_type) {
483 case BFIN_MEM_ACCESS_CORE:
484 case BFIN_MEM_ACCESS_CORE_ONLY:
485 return probe_kernel_read(dst, src, size);
486 /* XXX: should support IDMA here with SMP */
487 case BFIN_MEM_ACCESS_DMA:
488 if (dma_memcpy(dst, src, size))
489 return 0;
490 break;
491 case BFIN_MEM_ACCESS_ITEST:
492 if (isram_memcpy(dst, src, size))
493 return 0;
494 break;
495 }
496 }
497
498 return -EFAULT;
499}
500
501static int bfin_probe_kernel_write(char *dst, char *src, int size)
502{
503 unsigned long ldst = (unsigned long)dst;
504 int mem_type;
505
506 mem_type = validate_memory_access_address(ldst, size);
507 if (mem_type < 0)
508 return mem_type;
509
510 if (ldst >= SYSMMR_BASE) {
511 if (size == 2 && ldst % 2 == 0) {
512 u16 mmr;
513 memcpy(&mmr, src, sizeof(mmr));
514 bfin_write16(dst, mmr);
492 return 0; 515 return 0;
493 if (IN_MEM(addr, size, COREB_L1_DATA_B_START, L1_DATA_B_LENGTH)) 516 } else if (size == 4 && ldst % 4 == 0) {
517 u32 mmr;
518 memcpy(&mmr, src, sizeof(mmr));
519 bfin_write32(dst, mmr);
494 return 0; 520 return 0;
495#endif 521 }
522 } else {
523 switch (mem_type) {
524 case BFIN_MEM_ACCESS_CORE:
525 case BFIN_MEM_ACCESS_CORE_ONLY:
526 return probe_kernel_write(dst, src, size);
527 /* XXX: should support IDMA here with SMP */
528 case BFIN_MEM_ACCESS_DMA:
529 if (dma_memcpy(dst, src, size))
530 return 0;
531 break;
532 case BFIN_MEM_ACCESS_ITEST:
533 if (isram_memcpy(dst, src, size))
534 return 0;
535 break;
536 }
496 } 537 }
497 538
498 if (IN_MEM(addr, size, L2_START, L2_LENGTH))
499 return 0;
500
501 return -EFAULT; 539 return -EFAULT;
502} 540}
503 541
@@ -509,14 +547,6 @@ int kgdb_mem2hex(char *mem, char *buf, int count)
509{ 547{
510 char *tmp; 548 char *tmp;
511 int err; 549 int err;
512 unsigned char *pch;
513 unsigned short mmr16;
514 unsigned long mmr32;
515 int cpu = raw_smp_processor_id();
516
517 err = validate_memory_access_address((unsigned long)mem, count);
518 if (err)
519 return err;
520 550
521 /* 551 /*
522 * We use the upper half of buf as an intermediate buffer for the 552 * We use the upper half of buf as an intermediate buffer for the
@@ -524,44 +554,7 @@ int kgdb_mem2hex(char *mem, char *buf, int count)
524 */ 554 */
525 tmp = buf + count; 555 tmp = buf + count;
526 556
527 if ((unsigned int)mem >= SYSMMR_BASE) { /*access MMR registers*/ 557 err = bfin_probe_kernel_read(tmp, mem, count);
528 switch (count) {
529 case 2:
530 if ((unsigned int)mem % 2 == 0) {
531 mmr16 = *(unsigned short *)mem;
532 pch = (unsigned char *)&mmr16;
533 *tmp++ = *pch++;
534 *tmp++ = *pch++;
535 tmp -= 2;
536 } else
537 err = -EFAULT;
538 break;
539 case 4:
540 if ((unsigned int)mem % 4 == 0) {
541 mmr32 = *(unsigned long *)mem;
542 pch = (unsigned char *)&mmr32;
543 *tmp++ = *pch++;
544 *tmp++ = *pch++;
545 *tmp++ = *pch++;
546 *tmp++ = *pch++;
547 tmp -= 4;
548 } else
549 err = -EFAULT;
550 break;
551 default:
552 err = -EFAULT;
553 }
554 } else if ((cpu == 0 && IN_MEM(mem, count, L1_CODE_START, L1_CODE_LENGTH))
555#ifdef CONFIG_SMP
556 || (cpu == 1 && IN_MEM(mem, count, COREB_L1_CODE_START, L1_CODE_LENGTH))
557#endif
558 ) {
559 /* access L1 instruction SRAM*/
560 if (dma_memcpy(tmp, mem, count) == NULL)
561 err = -EFAULT;
562 } else
563 err = probe_kernel_read(tmp, mem, count);
564
565 if (!err) { 558 if (!err) {
566 while (count > 0) { 559 while (count > 0) {
567 buf = pack_hex_byte(buf, *tmp); 560 buf = pack_hex_byte(buf, *tmp);
@@ -582,13 +575,8 @@ int kgdb_mem2hex(char *mem, char *buf, int count)
582 */ 575 */
583int kgdb_ebin2mem(char *buf, char *mem, int count) 576int kgdb_ebin2mem(char *buf, char *mem, int count)
584{ 577{
585 char *tmp_old; 578 char *tmp_old, *tmp_new;
586 char *tmp_new;
587 unsigned short *mmr16;
588 unsigned long *mmr32;
589 int err;
590 int size; 579 int size;
591 int cpu = raw_smp_processor_id();
592 580
593 tmp_old = tmp_new = buf; 581 tmp_old = tmp_new = buf;
594 582
@@ -601,41 +589,7 @@ int kgdb_ebin2mem(char *buf, char *mem, int count)
601 tmp_old++; 589 tmp_old++;
602 } 590 }
603 591
604 err = validate_memory_access_address((unsigned long)mem, size); 592 return bfin_probe_kernel_write(mem, buf, count);
605 if (err)
606 return err;
607
608 if ((unsigned int)mem >= SYSMMR_BASE) { /*access MMR registers*/
609 switch (size) {
610 case 2:
611 if ((unsigned int)mem % 2 == 0) {
612 mmr16 = (unsigned short *)buf;
613 *(unsigned short *)mem = *mmr16;
614 } else
615 err = -EFAULT;
616 break;
617 case 4:
618 if ((unsigned int)mem % 4 == 0) {
619 mmr32 = (unsigned long *)buf;
620 *(unsigned long *)mem = *mmr32;
621 } else
622 err = -EFAULT;
623 break;
624 default:
625 err = -EFAULT;
626 }
627 } else if ((cpu == 0 && IN_MEM(mem, count, L1_CODE_START, L1_CODE_LENGTH))
628#ifdef CONFIG_SMP
629 || (cpu == 1 && IN_MEM(mem, count, COREB_L1_CODE_START, L1_CODE_LENGTH))
630#endif
631 ) {
632 /* access L1 instruction SRAM */
633 if (dma_memcpy(mem, buf, size) == NULL)
634 err = -EFAULT;
635 } else
636 err = probe_kernel_write(mem, buf, size);
637
638 return err;
639} 593}
640 594
641/* 595/*
@@ -645,16 +599,7 @@ int kgdb_ebin2mem(char *buf, char *mem, int count)
645 */ 599 */
646int kgdb_hex2mem(char *buf, char *mem, int count) 600int kgdb_hex2mem(char *buf, char *mem, int count)
647{ 601{
648 char *tmp_raw; 602 char *tmp_raw, *tmp_hex;
649 char *tmp_hex;
650 unsigned short *mmr16;
651 unsigned long *mmr32;
652 int err;
653 int cpu = raw_smp_processor_id();
654
655 err = validate_memory_access_address((unsigned long)mem, count);
656 if (err)
657 return err;
658 603
659 /* 604 /*
660 * We use the upper half of buf as an intermediate buffer for the 605 * We use the upper half of buf as an intermediate buffer for the
@@ -669,39 +614,18 @@ int kgdb_hex2mem(char *buf, char *mem, int count)
669 *tmp_raw |= hex(*tmp_hex--) << 4; 614 *tmp_raw |= hex(*tmp_hex--) << 4;
670 } 615 }
671 616
672 if ((unsigned int)mem >= SYSMMR_BASE) { /*access MMR registers*/ 617 return bfin_probe_kernel_write(mem, tmp_raw, count);
673 switch (count) {
674 case 2:
675 if ((unsigned int)mem % 2 == 0) {
676 mmr16 = (unsigned short *)tmp_raw;
677 *(unsigned short *)mem = *mmr16;
678 } else
679 err = -EFAULT;
680 break;
681 case 4:
682 if ((unsigned int)mem % 4 == 0) {
683 mmr32 = (unsigned long *)tmp_raw;
684 *(unsigned long *)mem = *mmr32;
685 } else
686 err = -EFAULT;
687 break;
688 default:
689 err = -EFAULT;
690 }
691 } else if ((cpu == 0 && IN_MEM(mem, count, L1_CODE_START, L1_CODE_LENGTH))
692#ifdef CONFIG_SMP
693 || (cpu == 1 && IN_MEM(mem, count, COREB_L1_CODE_START, L1_CODE_LENGTH))
694#endif
695 ) {
696 /* access L1 instruction SRAM */
697 if (dma_memcpy(mem, tmp_raw, count) == NULL)
698 err = -EFAULT;
699 } else
700 err = probe_kernel_write(mem, tmp_raw, count);
701
702 return err;
703} 618}
704 619
620#define IN_MEM(addr, size, l1_addr, l1_size) \
621({ \
622 unsigned long __addr = (unsigned long)(addr); \
623 (l1_size && __addr >= l1_addr && __addr + (size) <= l1_addr + l1_size); \
624})
625#define ASYNC_BANK_SIZE \
626 (ASYNC_BANK0_SIZE + ASYNC_BANK1_SIZE + \
627 ASYNC_BANK2_SIZE + ASYNC_BANK3_SIZE)
628
705int kgdb_validate_break_address(unsigned long addr) 629int kgdb_validate_break_address(unsigned long addr)
706{ 630{
707 int cpu = raw_smp_processor_id(); 631 int cpu = raw_smp_processor_id();
@@ -724,46 +648,17 @@ int kgdb_validate_break_address(unsigned long addr)
724 648
725int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr) 649int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr)
726{ 650{
727 int err; 651 int err = bfin_probe_kernel_read(saved_instr, (char *)addr,
728 int cpu = raw_smp_processor_id(); 652 BREAK_INSTR_SIZE);
729 653 if (err)
730 if ((cpu == 0 && IN_MEM(addr, BREAK_INSTR_SIZE, L1_CODE_START, L1_CODE_LENGTH)) 654 return err;
731#ifdef CONFIG_SMP 655 return bfin_probe_kernel_write((char *)addr, arch_kgdb_ops.gdb_bpt_instr,
732 || (cpu == 1 && IN_MEM(addr, BREAK_INSTR_SIZE, COREB_L1_CODE_START, L1_CODE_LENGTH)) 656 BREAK_INSTR_SIZE);
733#endif
734 ) {
735 /* access L1 instruction SRAM */
736 if (dma_memcpy(saved_instr, (void *)addr, BREAK_INSTR_SIZE)
737 == NULL)
738 return -EFAULT;
739
740 if (dma_memcpy((void *)addr, arch_kgdb_ops.gdb_bpt_instr,
741 BREAK_INSTR_SIZE) == NULL)
742 return -EFAULT;
743
744 return 0;
745 } else {
746 err = probe_kernel_read(saved_instr, (char *)addr,
747 BREAK_INSTR_SIZE);
748 if (err)
749 return err;
750
751 return probe_kernel_write((char *)addr,
752 arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE);
753 }
754} 657}
755 658
756int kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle) 659int kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle)
757{ 660{
758 if (IN_MEM(addr, BREAK_INSTR_SIZE, L1_CODE_START, L1_CODE_LENGTH)) { 661 return bfin_probe_kernel_write((char *)addr, bundle, BREAK_INSTR_SIZE);
759 /* access L1 instruction SRAM */
760 if (dma_memcpy((void *)addr, bundle, BREAK_INSTR_SIZE) == NULL)
761 return -EFAULT;
762
763 return 0;
764 } else
765 return probe_kernel_write((char *)addr,
766 (char *)bundle, BREAK_INSTR_SIZE);
767} 662}
768 663
769int kgdb_arch_init(void) 664int kgdb_arch_init(void)
diff --git a/arch/blackfin/kernel/mcount.S b/arch/blackfin/kernel/mcount.S
deleted file mode 100644
index edcfb3865f4..00000000000
--- a/arch/blackfin/kernel/mcount.S
+++ /dev/null
@@ -1,70 +0,0 @@
1/*
2 * linux/arch/blackfin/mcount.S
3 *
4 * Copyright (C) 2006 Analog Devices Inc.
5 *
6 * 2007/04/12 Save index, length, modify and base registers. --rpm
7 */
8
9#include <linux/linkage.h>
10#include <asm/blackfin.h>
11
12.text
13
14.align 4 /* just in case */
15
16ENTRY(__mcount)
17 [--sp] = i0;
18 [--sp] = i1;
19 [--sp] = i2;
20 [--sp] = i3;
21 [--sp] = l0;
22 [--sp] = l1;
23 [--sp] = l2;
24 [--sp] = l3;
25 [--sp] = m0;
26 [--sp] = m1;
27 [--sp] = m2;
28 [--sp] = m3;
29 [--sp] = b0;
30 [--sp] = b1;
31 [--sp] = b2;
32 [--sp] = b3;
33 [--sp] = ( r7:0, p5:0 );
34 [--sp] = ASTAT;
35
36 p1.L = _ipipe_trace_enable;
37 p1.H = _ipipe_trace_enable;
38 r7 = [p1];
39 CC = r7 == 0;
40 if CC jump out;
41 link 0x10;
42 r0 = 0x0;
43 [sp + 0xc] = r0; /* v */
44 r0 = 0x0; /* type: IPIPE_TRACE_FN */
45 r1 = rets;
46 p0 = [fp]; /* p0: Prior FP */
47 r2 = [p0 + 4]; /* r2: Prior RETS */
48 call ___ipipe_trace;
49 unlink;
50out:
51 ASTAT = [sp++];
52 ( r7:0, p5:0 ) = [sp++];
53 b3 = [sp++];
54 b2 = [sp++];
55 b1 = [sp++];
56 b0 = [sp++];
57 m3 = [sp++];
58 m2 = [sp++];
59 m1 = [sp++];
60 m0 = [sp++];
61 l3 = [sp++];
62 l2 = [sp++];
63 l1 = [sp++];
64 l0 = [sp++];
65 i3 = [sp++];
66 i2 = [sp++];
67 i1 = [sp++];
68 i0 = [sp++];
69 rts;
70ENDPROC(__mcount)
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c
index 30d0843ed70..79cad0ac589 100644
--- a/arch/blackfin/kernel/process.c
+++ b/arch/blackfin/kernel/process.c
@@ -160,6 +160,29 @@ pid_t kernel_thread(int (*fn) (void *), void *arg, unsigned long flags)
160} 160}
161EXPORT_SYMBOL(kernel_thread); 161EXPORT_SYMBOL(kernel_thread);
162 162
163/*
164 * Do necessary setup to start up a newly executed thread.
165 *
166 * pass the data segment into user programs if it exists,
167 * it can't hurt anything as far as I can tell
168 */
169void start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
170{
171 set_fs(USER_DS);
172 regs->pc = new_ip;
173 if (current->mm)
174 regs->p5 = current->mm->start_data;
175#ifdef CONFIG_SMP
176 task_thread_info(current)->l1_task_info.stack_start =
177 (void *)current->mm->context.stack_start;
178 task_thread_info(current)->l1_task_info.lowest_sp = (void *)new_sp;
179 memcpy(L1_SCRATCH_TASK_INFO, &task_thread_info(current)->l1_task_info,
180 sizeof(*L1_SCRATCH_TASK_INFO));
181#endif
182 wrusp(new_sp);
183}
184EXPORT_SYMBOL_GPL(start_thread);
185
163void flush_thread(void) 186void flush_thread(void)
164{ 187{
165} 188}
@@ -321,6 +344,87 @@ void finish_atomic_sections (struct pt_regs *regs)
321 } 344 }
322} 345}
323 346
347static inline
348int in_mem(unsigned long addr, unsigned long size,
349 unsigned long start, unsigned long end)
350{
351 return addr >= start && addr + size <= end;
352}
353static inline
354int in_mem_const_off(unsigned long addr, unsigned long size, unsigned long off,
355 unsigned long const_addr, unsigned long const_size)
356{
357 return const_size &&
358 in_mem(addr, size, const_addr + off, const_addr + const_size);
359}
360static inline
361int in_mem_const(unsigned long addr, unsigned long size,
362 unsigned long const_addr, unsigned long const_size)
363{
364 return in_mem_const_off(addr, 0, size, const_addr, const_size);
365}
366#define IN_ASYNC(bnum, bctlnum) \
367({ \
368 (bfin_read_EBIU_AMGCTL() & 0xe) < ((bnum + 1) << 1) ? -EFAULT : \
369 bfin_read_EBIU_AMBCTL##bctlnum() & B##bnum##RDYEN ? -EFAULT : \
370 BFIN_MEM_ACCESS_CORE; \
371})
372
373int bfin_mem_access_type(unsigned long addr, unsigned long size)
374{
375 int cpu = raw_smp_processor_id();
376
377 /* Check that things do not wrap around */
378 if (addr > ULONG_MAX - size)
379 return -EFAULT;
380
381 if (in_mem(addr, size, FIXED_CODE_START, physical_mem_end))
382 return BFIN_MEM_ACCESS_CORE;
383
384 if (in_mem_const(addr, size, L1_CODE_START, L1_CODE_LENGTH))
385 return cpu == 0 ? BFIN_MEM_ACCESS_ITEST : BFIN_MEM_ACCESS_IDMA;
386 if (in_mem_const(addr, size, L1_SCRATCH_START, L1_SCRATCH_LENGTH))
387 return cpu == 0 ? BFIN_MEM_ACCESS_CORE_ONLY : -EFAULT;
388 if (in_mem_const(addr, size, L1_DATA_A_START, L1_DATA_A_LENGTH))
389 return cpu == 0 ? BFIN_MEM_ACCESS_CORE : BFIN_MEM_ACCESS_IDMA;
390 if (in_mem_const(addr, size, L1_DATA_B_START, L1_DATA_B_LENGTH))
391 return cpu == 0 ? BFIN_MEM_ACCESS_CORE : BFIN_MEM_ACCESS_IDMA;
392#ifdef COREB_L1_CODE_START
393 if (in_mem_const(addr, size, COREB_L1_CODE_START, L1_CODE_LENGTH))
394 return cpu == 1 ? BFIN_MEM_ACCESS_ITEST : BFIN_MEM_ACCESS_IDMA;
395 if (in_mem_const(addr, size, COREB_L1_SCRATCH_START, L1_SCRATCH_LENGTH))
396 return cpu == 1 ? BFIN_MEM_ACCESS_CORE_ONLY : -EFAULT;
397 if (in_mem_const(addr, size, COREB_L1_DATA_A_START, L1_DATA_A_LENGTH))
398 return cpu == 1 ? BFIN_MEM_ACCESS_CORE : BFIN_MEM_ACCESS_IDMA;
399 if (in_mem_const(addr, size, COREB_L1_DATA_B_START, L1_DATA_B_LENGTH))
400 return cpu == 1 ? BFIN_MEM_ACCESS_CORE : BFIN_MEM_ACCESS_IDMA;
401#endif
402 if (in_mem_const(addr, size, L2_START, L2_LENGTH))
403 return BFIN_MEM_ACCESS_CORE;
404
405 if (addr >= SYSMMR_BASE)
406 return BFIN_MEM_ACCESS_CORE_ONLY;
407
408 /* We can't read EBIU banks that aren't enabled or we end up hanging
409 * on the access to the async space.
410 */
411 if (in_mem_const(addr, size, ASYNC_BANK0_BASE, ASYNC_BANK0_SIZE))
412 return IN_ASYNC(0, 0);
413 if (in_mem_const(addr, size, ASYNC_BANK1_BASE, ASYNC_BANK1_SIZE))
414 return IN_ASYNC(1, 0);
415 if (in_mem_const(addr, size, ASYNC_BANK2_BASE, ASYNC_BANK2_SIZE))
416 return IN_ASYNC(2, 1);
417 if (in_mem_const(addr, size, ASYNC_BANK3_BASE, ASYNC_BANK3_SIZE))
418 return IN_ASYNC(3, 1);
419
420 if (in_mem_const(addr, size, BOOT_ROM_START, BOOT_ROM_LENGTH))
421 return BFIN_MEM_ACCESS_CORE;
422 if (in_mem_const(addr, size, L1_ROM_START, L1_ROM_LENGTH))
423 return BFIN_MEM_ACCESS_DMA;
424
425 return -EFAULT;
426}
427
324#if defined(CONFIG_ACCESS_CHECK) 428#if defined(CONFIG_ACCESS_CHECK)
325#ifdef CONFIG_ACCESS_OK_L1 429#ifdef CONFIG_ACCESS_OK_L1
326__attribute__((l1_text)) 430__attribute__((l1_text))
@@ -330,51 +434,61 @@ int _access_ok(unsigned long addr, unsigned long size)
330{ 434{
331 if (size == 0) 435 if (size == 0)
332 return 1; 436 return 1;
333 if (addr > (addr + size)) 437 /* Check that things do not wrap around */
438 if (addr > ULONG_MAX - size)
334 return 0; 439 return 0;
335 if (segment_eq(get_fs(), KERNEL_DS)) 440 if (segment_eq(get_fs(), KERNEL_DS))
336 return 1; 441 return 1;
337#ifdef CONFIG_MTD_UCLINUX 442#ifdef CONFIG_MTD_UCLINUX
338 if (addr >= memory_start && (addr + size) <= memory_end) 443 if (1)
339 return 1; 444#else
340 if (addr >= memory_mtd_end && (addr + size) <= physical_mem_end) 445 if (0)
446#endif
447 {
448 if (in_mem(addr, size, memory_start, memory_end))
449 return 1;
450 if (in_mem(addr, size, memory_mtd_end, physical_mem_end))
451 return 1;
452# ifndef CONFIG_ROMFS_ON_MTD
453 if (0)
454# endif
455 /* For XIP, allow user space to use pointers within the ROMFS. */
456 if (in_mem(addr, size, memory_mtd_start, memory_mtd_end))
457 return 1;
458 } else {
459 if (in_mem(addr, size, memory_start, physical_mem_end))
460 return 1;
461 }
462
463 if (in_mem(addr, size, (unsigned long)__init_begin, (unsigned long)__init_end))
341 return 1; 464 return 1;
342 465
343#ifdef CONFIG_ROMFS_ON_MTD 466 if (in_mem_const(addr, size, L1_CODE_START, L1_CODE_LENGTH))
344 /* For XIP, allow user space to use pointers within the ROMFS. */
345 if (addr >= memory_mtd_start && (addr + size) <= memory_mtd_end)
346 return 1; 467 return 1;
347#endif 468 if (in_mem_const_off(addr, size, _etext_l1 - _stext_l1, L1_CODE_START, L1_CODE_LENGTH))
348#else
349 if (addr >= memory_start && (addr + size) <= physical_mem_end)
350 return 1; 469 return 1;
351#endif 470 if (in_mem_const_off(addr, size, _ebss_l1 - _sdata_l1, L1_DATA_A_START, L1_DATA_A_LENGTH))
352 if (addr >= (unsigned long)__init_begin &&
353 addr + size <= (unsigned long)__init_end)
354 return 1; 471 return 1;
355 if (addr >= get_l1_scratch_start() 472 if (in_mem_const_off(addr, size, _ebss_b_l1 - _sdata_b_l1, L1_DATA_B_START, L1_DATA_B_LENGTH))
356 && addr + size <= get_l1_scratch_start() + L1_SCRATCH_LENGTH)
357 return 1; 473 return 1;
358#if L1_CODE_LENGTH != 0 474#ifdef COREB_L1_CODE_START
359 if (addr >= get_l1_code_start() + (_etext_l1 - _stext_l1) 475 if (in_mem_const(addr, size, COREB_L1_CODE_START, L1_CODE_LENGTH))
360 && addr + size <= get_l1_code_start() + L1_CODE_LENGTH)
361 return 1; 476 return 1;
362#endif 477 if (in_mem_const(addr, size, COREB_L1_SCRATCH_START, L1_SCRATCH_LENGTH))
363#if L1_DATA_A_LENGTH != 0
364 if (addr >= get_l1_data_a_start() + (_ebss_l1 - _sdata_l1)
365 && addr + size <= get_l1_data_a_start() + L1_DATA_A_LENGTH)
366 return 1; 478 return 1;
367#endif 479 if (in_mem_const(addr, size, COREB_L1_DATA_A_START, L1_DATA_A_LENGTH))
368#if L1_DATA_B_LENGTH != 0
369 if (addr >= get_l1_data_b_start() + (_ebss_b_l1 - _sdata_b_l1)
370 && addr + size <= get_l1_data_b_start() + L1_DATA_B_LENGTH)
371 return 1; 480 return 1;
372#endif 481 if (in_mem_const(addr, size, COREB_L1_DATA_B_START, L1_DATA_B_LENGTH))
373#if L2_LENGTH != 0
374 if (addr >= L2_START + (_ebss_l2 - _stext_l2)
375 && addr + size <= L2_START + L2_LENGTH)
376 return 1; 482 return 1;
377#endif 483#endif
484 if (in_mem_const_off(addr, size, _ebss_l2 - _stext_l2, L2_START, L2_LENGTH))
485 return 1;
486
487 if (in_mem_const(addr, size, BOOT_ROM_START, BOOT_ROM_LENGTH))
488 return 1;
489 if (in_mem_const(addr, size, L1_ROM_START, L1_ROM_LENGTH))
490 return 1;
491
378 return 0; 492 return 0;
379} 493}
380EXPORT_SYMBOL(_access_ok); 494EXPORT_SYMBOL(_access_ok);
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index 6454babdfaf..298f023bcc0 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -117,15 +117,49 @@ void __cpuinit bfin_setup_caches(unsigned int cpu)
117 */ 117 */
118#ifdef CONFIG_BFIN_ICACHE 118#ifdef CONFIG_BFIN_ICACHE
119 printk(KERN_INFO "Instruction Cache Enabled for CPU%u\n", cpu); 119 printk(KERN_INFO "Instruction Cache Enabled for CPU%u\n", cpu);
120 printk(KERN_INFO " External memory:"
121# ifdef CONFIG_BFIN_EXTMEM_ICACHEABLE
122 " cacheable"
123# else
124 " uncacheable"
125# endif
126 " in instruction cache\n");
127 if (L2_LENGTH)
128 printk(KERN_INFO " L2 SRAM :"
129# ifdef CONFIG_BFIN_L2_ICACHEABLE
130 " cacheable"
131# else
132 " uncacheable"
133# endif
134 " in instruction cache\n");
135
136#else
137 printk(KERN_INFO "Instruction Cache Disabled for CPU%u\n", cpu);
120#endif 138#endif
139
121#ifdef CONFIG_BFIN_DCACHE 140#ifdef CONFIG_BFIN_DCACHE
122 printk(KERN_INFO "Data Cache Enabled for CPU%u" 141 printk(KERN_INFO "Data Cache Enabled for CPU%u\n", cpu);
123# if defined CONFIG_BFIN_WB 142 printk(KERN_INFO " External memory:"
124 " (write-back)" 143# if defined CONFIG_BFIN_EXTMEM_WRITEBACK
125# elif defined CONFIG_BFIN_WT 144 " cacheable (write-back)"
126 " (write-through)" 145# elif defined CONFIG_BFIN_EXTMEM_WRITETHROUGH
146 " cacheable (write-through)"
147# else
148 " uncacheable"
127# endif 149# endif
128 "\n", cpu); 150 " in data cache\n");
151 if (L2_LENGTH)
152 printk(KERN_INFO " L2 SRAM :"
153# if defined CONFIG_BFIN_L2_WRITEBACK
154 " cacheable (write-back)"
155# elif defined CONFIG_BFIN_L2_WRITETHROUGH
156 " cacheable (write-through)"
157# else
158 " uncacheable"
159# endif
160 " in data cache\n");
161#else
162 printk(KERN_INFO "Data Cache Disabled for CPU%u\n", cpu);
129#endif 163#endif
130} 164}
131 165
@@ -443,9 +477,11 @@ static __init void parse_cmdline_early(char *cmdline_p)
443 } else if (!memcmp(to, "clkin_hz=", 9)) { 477 } else if (!memcmp(to, "clkin_hz=", 9)) {
444 to += 9; 478 to += 9;
445 early_init_clkin_hz(to); 479 early_init_clkin_hz(to);
480#ifdef CONFIG_EARLY_PRINTK
446 } else if (!memcmp(to, "earlyprintk=", 12)) { 481 } else if (!memcmp(to, "earlyprintk=", 12)) {
447 to += 12; 482 to += 12;
448 setup_early_printk(to); 483 setup_early_printk(to);
484#endif
449 } else if (!memcmp(to, "memmap=", 7)) { 485 } else if (!memcmp(to, "memmap=", 7)) {
450 to += 7; 486 to += 7;
451 parse_memmap(to); 487 parse_memmap(to);
@@ -516,7 +552,7 @@ static __init void memory_setup(void)
516 && ((unsigned long *)mtd_phys)[1] == ROMSB_WORD1) 552 && ((unsigned long *)mtd_phys)[1] == ROMSB_WORD1)
517 mtd_size = 553 mtd_size =
518 PAGE_ALIGN(be32_to_cpu(((unsigned long *)mtd_phys)[2])); 554 PAGE_ALIGN(be32_to_cpu(((unsigned long *)mtd_phys)[2]));
519# if (defined(CONFIG_BFIN_ICACHE) && ANOMALY_05000263) 555# if (defined(CONFIG_BFIN_EXTMEM_ICACHEABLE) && ANOMALY_05000263)
520 /* Due to a Hardware Anomaly we need to limit the size of usable 556 /* Due to a Hardware Anomaly we need to limit the size of usable
521 * instruction memory to max 60MB, 56 if HUNT_FOR_ZERO is on 557 * instruction memory to max 60MB, 56 if HUNT_FOR_ZERO is on
522 * 05000263 - Hardware loop corrupted when taking an ICPLB exception 558 * 05000263 - Hardware loop corrupted when taking an ICPLB exception
@@ -544,7 +580,7 @@ static __init void memory_setup(void)
544 dma_memcpy((void *)uclinux_ram_map.phys, _end, uclinux_ram_map.size); 580 dma_memcpy((void *)uclinux_ram_map.phys, _end, uclinux_ram_map.size);
545#endif /* CONFIG_MTD_UCLINUX */ 581#endif /* CONFIG_MTD_UCLINUX */
546 582
547#if (defined(CONFIG_BFIN_ICACHE) && ANOMALY_05000263) 583#if (defined(CONFIG_BFIN_EXTMEM_ICACHEABLE) && ANOMALY_05000263)
548 /* Due to a Hardware Anomaly we need to limit the size of usable 584 /* Due to a Hardware Anomaly we need to limit the size of usable
549 * instruction memory to max 60MB, 56 if HUNT_FOR_ZERO is on 585 * instruction memory to max 60MB, 56 if HUNT_FOR_ZERO is on
550 * 05000263 - Hardware loop corrupted when taking an ICPLB exception 586 * 05000263 - Hardware loop corrupted when taking an ICPLB exception
@@ -764,6 +800,11 @@ void __init setup_arch(char **cmdline_p)
764{ 800{
765 unsigned long sclk, cclk; 801 unsigned long sclk, cclk;
766 802
803 /* Check to make sure we are running on the right processor */
804 if (unlikely(CPUID != bfin_cpuid()))
805 printk(KERN_ERR "ERROR: Not running on ADSP-%s: unknown CPUID 0x%04x Rev 0.%d\n",
806 CPU, bfin_cpuid(), bfin_revid());
807
767#ifdef CONFIG_DUMMY_CONSOLE 808#ifdef CONFIG_DUMMY_CONSOLE
768 conswitchp = &dummy_con; 809 conswitchp = &dummy_con;
769#endif 810#endif
@@ -778,14 +819,17 @@ void __init setup_arch(char **cmdline_p)
778 memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE); 819 memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
779 boot_command_line[COMMAND_LINE_SIZE - 1] = '\0'; 820 boot_command_line[COMMAND_LINE_SIZE - 1] = '\0';
780 821
781 /* setup memory defaults from the user config */
782 physical_mem_end = 0;
783 _ramend = get_mem_size() * 1024 * 1024;
784
785 memset(&bfin_memmap, 0, sizeof(bfin_memmap)); 822 memset(&bfin_memmap, 0, sizeof(bfin_memmap));
786 823
824 /* If the user does not specify things on the command line, use
825 * what the bootloader set things up as
826 */
827 physical_mem_end = 0;
787 parse_cmdline_early(&command_line[0]); 828 parse_cmdline_early(&command_line[0]);
788 829
830 if (_ramend == 0)
831 _ramend = get_mem_size() * 1024 * 1024;
832
789 if (physical_mem_end == 0) 833 if (physical_mem_end == 0)
790 physical_mem_end = _ramend; 834 physical_mem_end = _ramend;
791 835
@@ -837,7 +881,8 @@ void __init setup_arch(char **cmdline_p)
837 defined(CONFIG_BF538) || defined(CONFIG_BF539) 881 defined(CONFIG_BF538) || defined(CONFIG_BF539)
838 _bfin_swrst = bfin_read_SWRST(); 882 _bfin_swrst = bfin_read_SWRST();
839#else 883#else
840 _bfin_swrst = bfin_read_SYSCR(); 884 /* Clear boot mode field */
885 _bfin_swrst = bfin_read_SYSCR() & ~0xf;
841#endif 886#endif
842 887
843#ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT 888#ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT
@@ -875,10 +920,7 @@ void __init setup_arch(char **cmdline_p)
875 else 920 else
876 printk(KERN_INFO "Compiled for ADSP-%s Rev 0.%d\n", CPU, bfin_compiled_revid()); 921 printk(KERN_INFO "Compiled for ADSP-%s Rev 0.%d\n", CPU, bfin_compiled_revid());
877 922
878 if (unlikely(CPUID != bfin_cpuid())) 923 if (likely(CPUID == bfin_cpuid())) {
879 printk(KERN_ERR "ERROR: Not running on ADSP-%s: unknown CPUID 0x%04x Rev 0.%d\n",
880 CPU, bfin_cpuid(), bfin_revid());
881 else {
882 if (bfin_revid() != bfin_compiled_revid()) { 924 if (bfin_revid() != bfin_compiled_revid()) {
883 if (bfin_compiled_revid() == -1) 925 if (bfin_compiled_revid() == -1)
884 printk(KERN_ERR "Warning: Compiled for Rev none, but running on Rev %d\n", 926 printk(KERN_ERR "Warning: Compiled for Rev none, but running on Rev %d\n",
@@ -1157,16 +1199,25 @@ static int show_cpuinfo(struct seq_file *m, void *v)
1157 icache_size = 0; 1199 icache_size = 0;
1158 1200
1159 seq_printf(m, "cache size\t: %d KB(L1 icache) " 1201 seq_printf(m, "cache size\t: %d KB(L1 icache) "
1160 "%d KB(L1 dcache%s) %d KB(L2 cache)\n", 1202 "%d KB(L1 dcache) %d KB(L2 cache)\n",
1161 icache_size, dcache_size, 1203 icache_size, dcache_size, 0);
1162#if defined CONFIG_BFIN_WB
1163 "-wb"
1164#elif defined CONFIG_BFIN_WT
1165 "-wt"
1166#endif
1167 "", 0);
1168
1169 seq_printf(m, "%s\n", cache); 1204 seq_printf(m, "%s\n", cache);
1205 seq_printf(m, "external memory\t: "
1206#if defined(CONFIG_BFIN_EXTMEM_ICACHEABLE)
1207 "cacheable"
1208#else
1209 "uncacheable"
1210#endif
1211 " in instruction cache\n");
1212 seq_printf(m, "external memory\t: "
1213#if defined(CONFIG_BFIN_EXTMEM_WRITEBACK)
1214 "cacheable (write-back)"
1215#elif defined(CONFIG_BFIN_EXTMEM_WRITETHROUGH)
1216 "cacheable (write-through)"
1217#else
1218 "uncacheable"
1219#endif
1220 " in data cache\n");
1170 1221
1171 if (icache_size) 1222 if (icache_size)
1172 seq_printf(m, "icache setup\t: %d Sub-banks/%d Ways, %d Lines/Way\n", 1223 seq_printf(m, "icache setup\t: %d Sub-banks/%d Ways, %d Lines/Way\n",
@@ -1239,8 +1290,25 @@ static int show_cpuinfo(struct seq_file *m, void *v)
1239 if (cpu_num != num_possible_cpus() - 1) 1290 if (cpu_num != num_possible_cpus() - 1)
1240 return 0; 1291 return 0;
1241 1292
1242 if (L2_LENGTH) 1293 if (L2_LENGTH) {
1243 seq_printf(m, "L2 SRAM\t\t: %dKB\n", L2_LENGTH/0x400); 1294 seq_printf(m, "L2 SRAM\t\t: %dKB\n", L2_LENGTH/0x400);
1295 seq_printf(m, "L2 SRAM\t\t: "
1296#if defined(CONFIG_BFIN_L2_ICACHEABLE)
1297 "cacheable"
1298#else
1299 "uncacheable"
1300#endif
1301 " in instruction cache\n");
1302 seq_printf(m, "L2 SRAM\t\t: "
1303#if defined(CONFIG_BFIN_L2_WRITEBACK)
1304 "cacheable (write-back)"
1305#elif defined(CONFIG_BFIN_L2_WRITETHROUGH)
1306 "cacheable (write-through)"
1307#else
1308 "uncacheable"
1309#endif
1310 " in data cache\n");
1311 }
1244 seq_printf(m, "board name\t: %s\n", bfin_board_name); 1312 seq_printf(m, "board name\t: %s\n", bfin_board_name);
1245 seq_printf(m, "board memory\t: %ld kB (0x%p -> 0x%p)\n", 1313 seq_printf(m, "board memory\t: %ld kB (0x%p -> 0x%p)\n",
1246 physical_mem_end >> 10, (void *)0, (void *)physical_mem_end); 1314 physical_mem_end >> 10, (void *)0, (void *)physical_mem_end);
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index d279552fe9b..8eeb457ce5d 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -37,6 +37,7 @@
37#include <asm/traps.h> 37#include <asm/traps.h>
38#include <asm/cacheflush.h> 38#include <asm/cacheflush.h>
39#include <asm/cplb.h> 39#include <asm/cplb.h>
40#include <asm/dma.h>
40#include <asm/blackfin.h> 41#include <asm/blackfin.h>
41#include <asm/irq_handler.h> 42#include <asm/irq_handler.h>
42#include <linux/irq.h> 43#include <linux/irq.h>
@@ -636,57 +637,30 @@ asmlinkage void trap_c(struct pt_regs *fp)
636 */ 637 */
637static bool get_instruction(unsigned short *val, unsigned short *address) 638static bool get_instruction(unsigned short *val, unsigned short *address)
638{ 639{
639 640 unsigned long addr = (unsigned long)address;
640 unsigned long addr;
641
642 addr = (unsigned long)address;
643 641
644 /* Check for odd addresses */ 642 /* Check for odd addresses */
645 if (addr & 0x1) 643 if (addr & 0x1)
646 return false; 644 return false;
647 645
648 /* Check that things do not wrap around */ 646 /* MMR region will never have instructions */
649 if (addr > (addr + 2)) 647 if (addr >= SYSMMR_BASE)
650 return false; 648 return false;
651 649
652 /* 650 switch (bfin_mem_access_type(addr, 2)) {
653 * Since we are in exception context, we need to do a little address checking 651 case BFIN_MEM_ACCESS_CORE:
654 * We need to make sure we are only accessing valid memory, and 652 case BFIN_MEM_ACCESS_CORE_ONLY:
655 * we don't read something in the async space that can hang forever 653 *val = *address;
656 */ 654 return true;
657 if ((addr >= FIXED_CODE_START && (addr + 2) <= physical_mem_end) || 655 case BFIN_MEM_ACCESS_DMA:
658#if L2_LENGTH != 0 656 dma_memcpy(val, address, 2);
659 (addr >= L2_START && (addr + 2) <= (L2_START + L2_LENGTH)) || 657 return true;
660#endif 658 case BFIN_MEM_ACCESS_ITEST:
661 (addr >= BOOT_ROM_START && (addr + 2) <= (BOOT_ROM_START + BOOT_ROM_LENGTH)) || 659 isram_memcpy(val, address, 2);
662#if L1_DATA_A_LENGTH != 0 660 return true;
663 (addr >= L1_DATA_A_START && (addr + 2) <= (L1_DATA_A_START + L1_DATA_A_LENGTH)) || 661 default: /* invalid access */
664#endif 662 return false;
665#if L1_DATA_B_LENGTH != 0
666 (addr >= L1_DATA_B_START && (addr + 2) <= (L1_DATA_B_START + L1_DATA_B_LENGTH)) ||
667#endif
668 (addr >= L1_SCRATCH_START && (addr + 2) <= (L1_SCRATCH_START + L1_SCRATCH_LENGTH)) ||
669 (!(bfin_read_EBIU_AMBCTL0() & B0RDYEN) &&
670 addr >= ASYNC_BANK0_BASE && (addr + 2) <= (ASYNC_BANK0_BASE + ASYNC_BANK0_SIZE)) ||
671 (!(bfin_read_EBIU_AMBCTL0() & B1RDYEN) &&
672 addr >= ASYNC_BANK1_BASE && (addr + 2) <= (ASYNC_BANK1_BASE + ASYNC_BANK1_SIZE)) ||
673 (!(bfin_read_EBIU_AMBCTL1() & B2RDYEN) &&
674 addr >= ASYNC_BANK2_BASE && (addr + 2) <= (ASYNC_BANK2_BASE + ASYNC_BANK1_SIZE)) ||
675 (!(bfin_read_EBIU_AMBCTL1() & B3RDYEN) &&
676 addr >= ASYNC_BANK3_BASE && (addr + 2) <= (ASYNC_BANK3_BASE + ASYNC_BANK1_SIZE))) {
677 *val = *address;
678 return true;
679 } 663 }
680
681#if L1_CODE_LENGTH != 0
682 if (addr >= L1_CODE_START && (addr + 2) <= (L1_CODE_START + L1_CODE_LENGTH)) {
683 isram_memcpy(val, address, 2);
684 return true;
685 }
686#endif
687
688
689 return false;
690} 664}
691 665
692/* 666/*
diff --git a/arch/blackfin/mach-bf518/boards/ezbrd.c b/arch/blackfin/mach-bf518/boards/ezbrd.c
index 1382f038235..d9791106be9 100644
--- a/arch/blackfin/mach-bf518/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf518/boards/ezbrd.c
@@ -119,13 +119,19 @@ static struct platform_device bfin_mac_device = {
119}; 119};
120 120
121#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) 121#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
122static struct dsa_platform_data ksz8893m_switch_data = { 122static struct dsa_chip_data ksz8893m_switch_chip_data = {
123 .mii_bus = &bfin_mii_bus.dev, 123 .mii_bus = &bfin_mii_bus.dev,
124 .port_names = {
125 NULL,
126 "eth%d",
127 "eth%d",
128 "cpu",
129 },
130};
131static struct dsa_platform_data ksz8893m_switch_data = {
132 .nr_chips = 1,
124 .netdev = &bfin_mac_device.dev, 133 .netdev = &bfin_mac_device.dev,
125 .port_names[0] = NULL, 134 .chip = &ksz8893m_switch_chip_data,
126 .port_names[1] = "eth%d",
127 .port_names[2] = "eth%d",
128 .port_names[3] = "cpu",
129}; 135};
130 136
131static struct platform_device ksz8893m_switch_device = { 137static struct platform_device ksz8893m_switch_device = {
diff --git a/arch/blackfin/mach-bf518/include/mach/anomaly.h b/arch/blackfin/mach-bf518/include/mach/anomaly.h
index b69bd9af38d..426e064062a 100644
--- a/arch/blackfin/mach-bf518/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf518/include/mach/anomaly.h
@@ -7,7 +7,7 @@
7 */ 7 */
8 8
9/* This file should be up to date with: 9/* This file should be up to date with:
10 * - Revision B, 02/03/2009; ADSP-BF512/BF514/BF516/BF518 Blackfin Processor Anomaly List 10 * - Revision C, 06/12/2009; ADSP-BF512/BF514/BF516/BF518 Blackfin Processor Anomaly List
11 */ 11 */
12 12
13/* We plan on not supporting 0.0 silicon, but 0.1 isn't out yet - sorry */ 13/* We plan on not supporting 0.0 silicon, but 0.1 isn't out yet - sorry */
@@ -18,7 +18,7 @@
18#ifndef _MACH_ANOMALY_H_ 18#ifndef _MACH_ANOMALY_H_
19#define _MACH_ANOMALY_H_ 19#define _MACH_ANOMALY_H_
20 20
21/* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 21/* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */
22#define ANOMALY_05000074 (1) 22#define ANOMALY_05000074 (1)
23/* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ 23/* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */
24#define ANOMALY_05000122 (1) 24#define ANOMALY_05000122 (1)
@@ -45,29 +45,31 @@
45/* Speculative Fetches of Indirect-Pointer Instructions Can Cause False Hardware Errors */ 45/* Speculative Fetches of Indirect-Pointer Instructions Can Cause False Hardware Errors */
46#define ANOMALY_05000426 (1) 46#define ANOMALY_05000426 (1)
47/* Software System Reset Corrupts PLL_LOCKCNT Register */ 47/* Software System Reset Corrupts PLL_LOCKCNT Register */
48#define ANOMALY_05000430 (1) 48#define ANOMALY_05000430 (__SILICON_REVISION__ < 1)
49/* Incorrect Use of Stack in Lockbox Firmware During Authentication */ 49/* Incorrect Use of Stack in Lockbox Firmware During Authentication */
50#define ANOMALY_05000431 (1) 50#define ANOMALY_05000431 (1)
51/* Certain SIC Registers are not Reset After Soft or Core Double Fault Reset */ 51/* Certain SIC Registers are not Reset After Soft or Core Double Fault Reset */
52#define ANOMALY_05000435 (1) 52#define ANOMALY_05000435 (__SILICON_REVISION__ < 1)
53/* PORTx_DRIVE and PORTx_HYSTERESIS Registers Read Back Incorrect Values */ 53/* PORTx_DRIVE and PORTx_HYSTERESIS Registers Read Back Incorrect Values */
54#define ANOMALY_05000438 (1) 54#define ANOMALY_05000438 (__SILICON_REVISION__ < 1)
55/* Preboot Cannot be Used to Alter the PLL_DIV Register */ 55/* Preboot Cannot be Used to Alter the PLL_DIV Register */
56#define ANOMALY_05000439 (1) 56#define ANOMALY_05000439 (__SILICON_REVISION__ < 1)
57/* bfrom_SysControl() Cannot be Used to Write the PLL_DIV Register */ 57/* bfrom_SysControl() Cannot be Used to Write the PLL_DIV Register */
58#define ANOMALY_05000440 (1) 58#define ANOMALY_05000440 (__SILICON_REVISION__ < 1)
59/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 59/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */
60#define ANOMALY_05000443 (1) 60#define ANOMALY_05000443 (1)
61/* Incorrect L1 Instruction Bank B Memory Map Location */ 61/* Incorrect L1 Instruction Bank B Memory Map Location */
62#define ANOMALY_05000444 (1) 62#define ANOMALY_05000444 (__SILICON_REVISION__ < 1)
63/* Incorrect Default Hysteresis Setting for RESET, NMI, and BMODE Signals */ 63/* Incorrect Default Hysteresis Setting for RESET, NMI, and BMODE Signals */
64#define ANOMALY_05000452 (1) 64#define ANOMALY_05000452 (__SILICON_REVISION__ < 1)
65/* PWM_TRIPB Signal Not Available on PG10 */ 65/* PWM_TRIPB Signal Not Available on PG10 */
66#define ANOMALY_05000453 (1) 66#define ANOMALY_05000453 (__SILICON_REVISION__ < 1)
67/* PPI_FS3 is Driven One Half Cycle Later Than PPI Data */ 67/* PPI_FS3 is Driven One Half Cycle Later Than PPI Data */
68#define ANOMALY_05000455 (1) 68#define ANOMALY_05000455 (__SILICON_REVISION__ < 1)
69/* False Hardware Error when RETI points to invalid memory */ 69/* False Hardware Error when RETI Points to Invalid Memory */
70#define ANOMALY_05000461 (1) 70#define ANOMALY_05000461 (1)
71/* Synchronization Problem at Startup May Cause SPORT Transmit Channels to Misalign */
72#define ANOMALY_05000462 (1)
71 73
72/* Anomalies that don't exist on this proc */ 74/* Anomalies that don't exist on this proc */
73#define ANOMALY_05000099 (0) 75#define ANOMALY_05000099 (0)
@@ -78,24 +80,30 @@
78#define ANOMALY_05000158 (0) 80#define ANOMALY_05000158 (0)
79#define ANOMALY_05000171 (0) 81#define ANOMALY_05000171 (0)
80#define ANOMALY_05000179 (0) 82#define ANOMALY_05000179 (0)
83#define ANOMALY_05000182 (0)
81#define ANOMALY_05000183 (0) 84#define ANOMALY_05000183 (0)
82#define ANOMALY_05000198 (0) 85#define ANOMALY_05000198 (0)
86#define ANOMALY_05000202 (0)
83#define ANOMALY_05000215 (0) 87#define ANOMALY_05000215 (0)
84#define ANOMALY_05000220 (0) 88#define ANOMALY_05000220 (0)
85#define ANOMALY_05000227 (0) 89#define ANOMALY_05000227 (0)
86#define ANOMALY_05000230 (0) 90#define ANOMALY_05000230 (0)
87#define ANOMALY_05000231 (0) 91#define ANOMALY_05000231 (0)
88#define ANOMALY_05000233 (0) 92#define ANOMALY_05000233 (0)
93#define ANOMALY_05000234 (0)
89#define ANOMALY_05000242 (0) 94#define ANOMALY_05000242 (0)
90#define ANOMALY_05000244 (0) 95#define ANOMALY_05000244 (0)
91#define ANOMALY_05000248 (0) 96#define ANOMALY_05000248 (0)
92#define ANOMALY_05000250 (0) 97#define ANOMALY_05000250 (0)
98#define ANOMALY_05000257 (0)
93#define ANOMALY_05000261 (0) 99#define ANOMALY_05000261 (0)
94#define ANOMALY_05000263 (0) 100#define ANOMALY_05000263 (0)
95#define ANOMALY_05000266 (0) 101#define ANOMALY_05000266 (0)
96#define ANOMALY_05000273 (0) 102#define ANOMALY_05000273 (0)
97#define ANOMALY_05000274 (0) 103#define ANOMALY_05000274 (0)
98#define ANOMALY_05000278 (0) 104#define ANOMALY_05000278 (0)
105#define ANOMALY_05000281 (0)
106#define ANOMALY_05000283 (0)
99#define ANOMALY_05000285 (0) 107#define ANOMALY_05000285 (0)
100#define ANOMALY_05000287 (0) 108#define ANOMALY_05000287 (0)
101#define ANOMALY_05000301 (0) 109#define ANOMALY_05000301 (0)
@@ -103,10 +111,13 @@
103#define ANOMALY_05000307 (0) 111#define ANOMALY_05000307 (0)
104#define ANOMALY_05000311 (0) 112#define ANOMALY_05000311 (0)
105#define ANOMALY_05000312 (0) 113#define ANOMALY_05000312 (0)
114#define ANOMALY_05000315 (0)
106#define ANOMALY_05000323 (0) 115#define ANOMALY_05000323 (0)
107#define ANOMALY_05000353 (0) 116#define ANOMALY_05000353 (0)
117#define ANOMALY_05000357 (0)
108#define ANOMALY_05000362 (1) 118#define ANOMALY_05000362 (1)
109#define ANOMALY_05000363 (0) 119#define ANOMALY_05000363 (0)
120#define ANOMALY_05000371 (0)
110#define ANOMALY_05000380 (0) 121#define ANOMALY_05000380 (0)
111#define ANOMALY_05000386 (0) 122#define ANOMALY_05000386 (0)
112#define ANOMALY_05000389 (0) 123#define ANOMALY_05000389 (0)
@@ -117,5 +128,7 @@
117#define ANOMALY_05000448 (0) 128#define ANOMALY_05000448 (0)
118#define ANOMALY_05000456 (0) 129#define ANOMALY_05000456 (0)
119#define ANOMALY_05000450 (0) 130#define ANOMALY_05000450 (0)
131#define ANOMALY_05000465 (0)
132#define ANOMALY_05000467 (0)
120 133
121#endif 134#endif
diff --git a/arch/blackfin/mach-bf518/include/mach/blackfin.h b/arch/blackfin/mach-bf518/include/mach/blackfin.h
index 267bb7c8bfb..e8e14c2769e 100644
--- a/arch/blackfin/mach-bf518/include/mach/blackfin.h
+++ b/arch/blackfin/mach-bf518/include/mach/blackfin.h
@@ -33,7 +33,6 @@
33#define _MACH_BLACKFIN_H_ 33#define _MACH_BLACKFIN_H_
34 34
35#include "bf518.h" 35#include "bf518.h"
36#include "mem_map.h"
37#include "defBF512.h" 36#include "defBF512.h"
38#include "anomaly.h" 37#include "anomaly.h"
39 38
diff --git a/arch/blackfin/mach-bf518/include/mach/mem_map.h b/arch/blackfin/mach-bf518/include/mach/mem_map.h
index 62bcc781bfa..3c6777cb353 100644
--- a/arch/blackfin/mach-bf518/include/mach/mem_map.h
+++ b/arch/blackfin/mach-bf518/include/mach/mem_map.h
@@ -1,38 +1,16 @@
1/* 1/*
2 * file: include/asm-blackfin/mach-bf518/mem_map.h 2 * BF51x memory map
3 * based on: include/asm-blackfin/mach-bf527/mem_map.h
4 * author: Bryan Wu <cooloney@kernel.org>
5 * 3 *
6 * created: 4 * Copyright 2004-2009 Analog Devices Inc.
7 * description: 5 * Licensed under the GPL-2 or later.
8 * Memory MAP Common header file for blackfin BF518/6/4/2 of processors.
9 * rev:
10 *
11 * modified:
12 *
13 * bugs: enter bugs at http://blackfin.uclinux.org/
14 *
15 * this program is free software; you can redistribute it and/or modify
16 * it under the terms of the gnu general public license as published by
17 * the free software foundation; either version 2, or (at your option)
18 * any later version.
19 *
20 * this program is distributed in the hope that it will be useful,
21 * but without any warranty; without even the implied warranty of
22 * merchantability or fitness for a particular purpose. see the
23 * gnu general public license for more details.
24 *
25 * you should have received a copy of the gnu general public license
26 * along with this program; see the file copying.
27 * if not, write to the free software foundation,
28 * 59 temple place - suite 330, boston, ma 02111-1307, usa.
29 */ 6 */
30 7
31#ifndef _MEM_MAP_518_H_ 8#ifndef __BFIN_MACH_MEM_MAP_H__
32#define _MEM_MAP_518_H_ 9#define __BFIN_MACH_MEM_MAP_H__
33 10
34#define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 11#ifndef __BFIN_MEM_MAP_H__
35#define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 12# error "do not include mach/mem_map.h directly -- use asm/mem_map.h"
13#endif
36 14
37/* Async Memory Banks */ 15/* Async Memory Banks */
38#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ 16#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */
@@ -89,20 +67,4 @@
89#define BFIN_DSUPBANKS 0 67#define BFIN_DSUPBANKS 0
90#endif /*CONFIG_BFIN_DCACHE */ 68#endif /*CONFIG_BFIN_DCACHE */
91 69
92/* Level 2 Memory - none */ 70#endif
93
94#define L2_START 0
95#define L2_LENGTH 0
96
97/* Scratch Pad Memory */
98
99#define L1_SCRATCH_START 0xFFB00000
100#define L1_SCRATCH_LENGTH 0x1000
101
102#define GET_PDA_SAFE(preg) \
103 preg.l = _cpu_pda; \
104 preg.h = _cpu_pda;
105
106#define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
107
108#endif /* _MEM_MAP_518_H_ */
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c
index 1eaf27ff722..f4867ce0c61 100644
--- a/arch/blackfin/mach-bf527/boards/cm_bf527.c
+++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c
@@ -78,7 +78,6 @@ static struct resource bfin_isp1760_resources[] = {
78 78
79static struct isp1760_platform_data isp1760_priv = { 79static struct isp1760_platform_data isp1760_priv = {
80 .is_isp1761 = 0, 80 .is_isp1761 = 0,
81 .port1_disable = 0,
82 .bus_width_16 = 1, 81 .bus_width_16 = 1,
83 .port1_otg = 0, 82 .port1_otg = 0,
84 .analog_oc = 0, 83 .analog_oc = 0,
diff --git a/arch/blackfin/mach-bf527/boards/ezbrd.c b/arch/blackfin/mach-bf527/boards/ezbrd.c
index 9f9c0005dcf..b2f30f06b73 100644
--- a/arch/blackfin/mach-bf527/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf527/boards/ezbrd.c
@@ -237,10 +237,10 @@ static struct flash_platform_data bfin_spi_flash_data = {
237 .name = "m25p80", 237 .name = "m25p80",
238 .parts = bfin_spi_flash_partitions, 238 .parts = bfin_spi_flash_partitions,
239 .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions), 239 .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions),
240 .type = "m25p16", 240 .type = "sst25wf040",
241}; 241};
242 242
243/* SPI flash chip (m25p64) */ 243/* SPI flash chip (sst25wf040) */
244static struct bfin5xx_spi_chip spi_flash_chip_info = { 244static struct bfin5xx_spi_chip spi_flash_chip_info = {
245 .enable_dma = 0, /* use dma transfer with this chip*/ 245 .enable_dma = 0, /* use dma transfer with this chip*/
246 .bits_per_word = 8, 246 .bits_per_word = 8,
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c
index 3e5b7db6b06..799a1d1fa89 100644
--- a/arch/blackfin/mach-bf527/boards/ezkit.c
+++ b/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -77,7 +77,6 @@ static struct resource bfin_isp1760_resources[] = {
77 77
78static struct isp1760_platform_data isp1760_priv = { 78static struct isp1760_platform_data isp1760_priv = {
79 .is_isp1761 = 0, 79 .is_isp1761 = 0,
80 .port1_disable = 0,
81 .bus_width_16 = 1, 80 .bus_width_16 = 1,
82 .port1_otg = 0, 81 .port1_otg = 0,
83 .analog_oc = 0, 82 .analog_oc = 0,
diff --git a/arch/blackfin/mach-bf527/include/mach/anomaly.h b/arch/blackfin/mach-bf527/include/mach/anomaly.h
index c84ddea9574..0d63f740616 100644
--- a/arch/blackfin/mach-bf527/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf527/include/mach/anomaly.h
@@ -34,7 +34,7 @@
34#define _ANOMALY_BF527(rev527) (ANOMALY_BF527 && __SILICON_REVISION__ rev527) 34#define _ANOMALY_BF527(rev527) (ANOMALY_BF527 && __SILICON_REVISION__ rev527)
35#define _ANOMALY_BF526_BF527(rev526, rev527) (_ANOMALY_BF526(rev526) || _ANOMALY_BF527(rev527)) 35#define _ANOMALY_BF526_BF527(rev526, rev527) (_ANOMALY_BF526(rev526) || _ANOMALY_BF527(rev527))
36 36
37/* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 37/* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */
38#define ANOMALY_05000074 (1) 38#define ANOMALY_05000074 (1)
39/* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ 39/* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */
40#define ANOMALY_05000119 (1) /* note: brokenness is noted in documentation, not anomaly sheet */ 40#define ANOMALY_05000119 (1) /* note: brokenness is noted in documentation, not anomaly sheet */
@@ -184,8 +184,12 @@
184#define ANOMALY_05000456 (1) 184#define ANOMALY_05000456 (1)
185/* Host DMA Port Responds to Certain Bus Activity Without HOST_CE Assertion */ 185/* Host DMA Port Responds to Certain Bus Activity Without HOST_CE Assertion */
186#define ANOMALY_05000457 (1) 186#define ANOMALY_05000457 (1)
187/* False Hardware Error when RETI points to invalid memory */ 187/* False Hardware Error when RETI Points to Invalid Memory */
188#define ANOMALY_05000461 (1) 188#define ANOMALY_05000461 (1)
189/* USB Rx DMA hang */
190#define ANOMALY_05000465 (1)
191/* Possible RX data corruption when control & data EP FIFOs are accessed via the core */
192#define ANOMALY_05000467 (1)
189 193
190/* Anomalies that don't exist on this proc */ 194/* Anomalies that don't exist on this proc */
191#define ANOMALY_05000099 (0) 195#define ANOMALY_05000099 (0)
@@ -195,24 +199,30 @@
195#define ANOMALY_05000158 (0) 199#define ANOMALY_05000158 (0)
196#define ANOMALY_05000171 (0) 200#define ANOMALY_05000171 (0)
197#define ANOMALY_05000179 (0) 201#define ANOMALY_05000179 (0)
202#define ANOMALY_05000182 (0)
198#define ANOMALY_05000183 (0) 203#define ANOMALY_05000183 (0)
199#define ANOMALY_05000198 (0) 204#define ANOMALY_05000198 (0)
205#define ANOMALY_05000202 (0)
200#define ANOMALY_05000215 (0) 206#define ANOMALY_05000215 (0)
201#define ANOMALY_05000220 (0) 207#define ANOMALY_05000220 (0)
202#define ANOMALY_05000227 (0) 208#define ANOMALY_05000227 (0)
203#define ANOMALY_05000230 (0) 209#define ANOMALY_05000230 (0)
204#define ANOMALY_05000231 (0) 210#define ANOMALY_05000231 (0)
205#define ANOMALY_05000233 (0) 211#define ANOMALY_05000233 (0)
212#define ANOMALY_05000234 (0)
206#define ANOMALY_05000242 (0) 213#define ANOMALY_05000242 (0)
207#define ANOMALY_05000244 (0) 214#define ANOMALY_05000244 (0)
208#define ANOMALY_05000248 (0) 215#define ANOMALY_05000248 (0)
209#define ANOMALY_05000250 (0) 216#define ANOMALY_05000250 (0)
217#define ANOMALY_05000257 (0)
210#define ANOMALY_05000261 (0) 218#define ANOMALY_05000261 (0)
211#define ANOMALY_05000263 (0) 219#define ANOMALY_05000263 (0)
212#define ANOMALY_05000266 (0) 220#define ANOMALY_05000266 (0)
213#define ANOMALY_05000273 (0) 221#define ANOMALY_05000273 (0)
214#define ANOMALY_05000274 (0) 222#define ANOMALY_05000274 (0)
215#define ANOMALY_05000278 (0) 223#define ANOMALY_05000278 (0)
224#define ANOMALY_05000281 (0)
225#define ANOMALY_05000283 (0)
216#define ANOMALY_05000285 (0) 226#define ANOMALY_05000285 (0)
217#define ANOMALY_05000287 (0) 227#define ANOMALY_05000287 (0)
218#define ANOMALY_05000301 (0) 228#define ANOMALY_05000301 (0)
@@ -220,6 +230,7 @@
220#define ANOMALY_05000307 (0) 230#define ANOMALY_05000307 (0)
221#define ANOMALY_05000311 (0) 231#define ANOMALY_05000311 (0)
222#define ANOMALY_05000312 (0) 232#define ANOMALY_05000312 (0)
233#define ANOMALY_05000315 (0)
223#define ANOMALY_05000323 (0) 234#define ANOMALY_05000323 (0)
224#define ANOMALY_05000362 (1) 235#define ANOMALY_05000362 (1)
225#define ANOMALY_05000363 (0) 236#define ANOMALY_05000363 (0)
diff --git a/arch/blackfin/mach-bf527/include/mach/blackfin.h b/arch/blackfin/mach-bf527/include/mach/blackfin.h
index 417abcd61f4..03665a8e16b 100644
--- a/arch/blackfin/mach-bf527/include/mach/blackfin.h
+++ b/arch/blackfin/mach-bf527/include/mach/blackfin.h
@@ -33,7 +33,6 @@
33#define _MACH_BLACKFIN_H_ 33#define _MACH_BLACKFIN_H_
34 34
35#include "bf527.h" 35#include "bf527.h"
36#include "mem_map.h"
37#include "defBF522.h" 36#include "defBF522.h"
38#include "anomaly.h" 37#include "anomaly.h"
39 38
diff --git a/arch/blackfin/mach-bf527/include/mach/mem_map.h b/arch/blackfin/mach-bf527/include/mach/mem_map.h
index 019e0017ad8..d96e894afd2 100644
--- a/arch/blackfin/mach-bf527/include/mach/mem_map.h
+++ b/arch/blackfin/mach-bf527/include/mach/mem_map.h
@@ -1,38 +1,16 @@
1/* 1/*
2 * file: include/asm-blackfin/mach-bf527/mem_map.h 2 * BF52x memory map
3 * based on: include/asm-blackfin/mach-bf537/mem_map.h
4 * author: Michael Hennerich (michael.hennerich@analog.com)
5 * 3 *
6 * created: 4 * Copyright 2004-2009 Analog Devices Inc.
7 * description: 5 * Licensed under the GPL-2 or later.
8 * Memory MAP Common header file for blackfin BF527/5/2 of processors.
9 * rev:
10 *
11 * modified:
12 *
13 * bugs: enter bugs at http://blackfin.uclinux.org/
14 *
15 * this program is free software; you can redistribute it and/or modify
16 * it under the terms of the gnu general public license as published by
17 * the free software foundation; either version 2, or (at your option)
18 * any later version.
19 *
20 * this program is distributed in the hope that it will be useful,
21 * but without any warranty; without even the implied warranty of
22 * merchantability or fitness for a particular purpose. see the
23 * gnu general public license for more details.
24 *
25 * you should have received a copy of the gnu general public license
26 * along with this program; see the file copying.
27 * if not, write to the free software foundation,
28 * 59 temple place - suite 330, boston, ma 02111-1307, usa.
29 */ 6 */
30 7
31#ifndef _MEM_MAP_527_H_ 8#ifndef __BFIN_MACH_MEM_MAP_H__
32#define _MEM_MAP_527_H_ 9#define __BFIN_MACH_MEM_MAP_H__
33 10
34#define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 11#ifndef __BFIN_MEM_MAP_H__
35#define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 12# error "do not include mach/mem_map.h directly -- use asm/mem_map.h"
13#endif
36 14
37/* Async Memory Banks */ 15/* Async Memory Banks */
38#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ 16#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */
@@ -89,20 +67,4 @@
89#define BFIN_DSUPBANKS 0 67#define BFIN_DSUPBANKS 0
90#endif /*CONFIG_BFIN_DCACHE */ 68#endif /*CONFIG_BFIN_DCACHE */
91 69
92/* Level 2 Memory - none */ 70#endif
93
94#define L2_START 0
95#define L2_LENGTH 0
96
97/* Scratch Pad Memory */
98
99#define L1_SCRATCH_START 0xFFB00000
100#define L1_SCRATCH_LENGTH 0x1000
101
102#define GET_PDA_SAFE(preg) \
103 preg.l = _cpu_pda; \
104 preg.h = _cpu_pda;
105
106#define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
107
108#endif /* _MEM_MAP_527_H_ */
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c
index 89a5ec4ca04..4e3e511bf14 100644
--- a/arch/blackfin/mach-bf533/boards/ezkit.c
+++ b/arch/blackfin/mach-bf533/boards/ezkit.c
@@ -32,6 +32,7 @@
32#include <linux/platform_device.h> 32#include <linux/platform_device.h>
33#include <linux/mtd/mtd.h> 33#include <linux/mtd/mtd.h>
34#include <linux/mtd/partitions.h> 34#include <linux/mtd/partitions.h>
35#include <linux/mtd/plat-ram.h>
35#include <linux/spi/spi.h> 36#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 37#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 38#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
@@ -86,6 +87,101 @@ static struct platform_device smc91x_device = {
86}; 87};
87#endif 88#endif
88 89
90#if defined(CONFIG_MTD_PSD4256G) || defined(CONFIG_MTD_PSD4256G_MODULE)
91static const char *map_probes[] = {
92 "stm_flash",
93 NULL,
94};
95
96static struct platdata_mtd_ram stm_pri_data_a = {
97 .mapname = "Flash A Primary",
98 .map_probes = map_probes,
99 .bankwidth = 2,
100};
101
102static struct resource stm_pri_resource_a = {
103 .start = 0x20000000,
104 .end = 0x200fffff,
105 .flags = IORESOURCE_MEM,
106};
107
108static struct platform_device stm_pri_device_a = {
109 .name = "mtd-ram",
110 .id = 0,
111 .dev = {
112 .platform_data = &stm_pri_data_a,
113 },
114 .num_resources = 1,
115 .resource = &stm_pri_resource_a,
116};
117
118static struct platdata_mtd_ram stm_pri_data_b = {
119 .mapname = "Flash B Primary",
120 .map_probes = map_probes,
121 .bankwidth = 2,
122};
123
124static struct resource stm_pri_resource_b = {
125 .start = 0x20100000,
126 .end = 0x201fffff,
127 .flags = IORESOURCE_MEM,
128};
129
130static struct platform_device stm_pri_device_b = {
131 .name = "mtd-ram",
132 .id = 4,
133 .dev = {
134 .platform_data = &stm_pri_data_b,
135 },
136 .num_resources = 1,
137 .resource = &stm_pri_resource_b,
138};
139#endif
140
141#if defined(CONFIG_MTD_PLATRAM) || defined(CONFIG_MTD_PLATRAM_MODULE)
142static struct platdata_mtd_ram sram_data_a = {
143 .mapname = "Flash A SRAM",
144 .bankwidth = 2,
145};
146
147static struct resource sram_resource_a = {
148 .start = 0x20240000,
149 .end = 0x2024ffff,
150 .flags = IORESOURCE_MEM,
151};
152
153static struct platform_device sram_device_a = {
154 .name = "mtd-ram",
155 .id = 8,
156 .dev = {
157 .platform_data = &sram_data_a,
158 },
159 .num_resources = 1,
160 .resource = &sram_resource_a,
161};
162
163static struct platdata_mtd_ram sram_data_b = {
164 .mapname = "Flash B SRAM",
165 .bankwidth = 2,
166};
167
168static struct resource sram_resource_b = {
169 .start = 0x202c0000,
170 .end = 0x202cffff,
171 .flags = IORESOURCE_MEM,
172};
173
174static struct platform_device sram_device_b = {
175 .name = "mtd-ram",
176 .id = 9,
177 .dev = {
178 .platform_data = &sram_data_b,
179 },
180 .num_resources = 1,
181 .resource = &sram_resource_b,
182};
183#endif
184
89#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) 185#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE)
90static struct mtd_partition bfin_spi_flash_partitions[] = { 186static struct mtd_partition bfin_spi_flash_partitions[] = {
91 { 187 {
@@ -357,6 +453,16 @@ static struct platform_device *ezkit_devices[] __initdata = {
357 453
358 &bfin_dpmc, 454 &bfin_dpmc,
359 455
456#if defined(CONFIG_MTD_PSD4256G) || defined(CONFIG_MTD_PSD4256G_MODULE)
457 &stm_pri_device_a,
458 &stm_pri_device_b,
459#endif
460
461#if defined(CONFIG_MTD_PLATRAM) || defined(CONFIG_MTD_PLATRAM_MODULE)
462 &sram_device_a,
463 &sram_device_b,
464#endif
465
360#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 466#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
361 &smc91x_device, 467 &smc91x_device,
362#endif 468#endif
diff --git a/arch/blackfin/mach-bf533/include/mach/anomaly.h b/arch/blackfin/mach-bf533/include/mach/anomaly.h
index 31145b509e2..70a0ad69c61 100644
--- a/arch/blackfin/mach-bf533/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf533/include/mach/anomaly.h
@@ -34,7 +34,7 @@
34# define ANOMALY_BF533 0 34# define ANOMALY_BF533 0
35#endif 35#endif
36 36
37/* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 37/* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */
38#define ANOMALY_05000074 (1) 38#define ANOMALY_05000074 (1)
39/* UART Line Status Register (UART_LSR) Bits Are Not Updated at the Same Time */ 39/* UART Line Status Register (UART_LSR) Bits Are Not Updated at the Same Time */
40#define ANOMALY_05000099 (__SILICON_REVISION__ < 5) 40#define ANOMALY_05000099 (__SILICON_REVISION__ < 5)
@@ -46,7 +46,7 @@
46#define ANOMALY_05000122 (1) 46#define ANOMALY_05000122 (1)
47/* Instruction DMA Can Cause Data Cache Fills to Fail (Boot Implications) */ 47/* Instruction DMA Can Cause Data Cache Fills to Fail (Boot Implications) */
48#define ANOMALY_05000158 (__SILICON_REVISION__ < 5) 48#define ANOMALY_05000158 (__SILICON_REVISION__ < 5)
49/* PPI Data Lengths Between 8 and 16 Do Not Zero Out Upper Bits */ 49/* PPI Data Lengths between 8 and 16 Do Not Zero Out Upper Bits */
50#define ANOMALY_05000166 (1) 50#define ANOMALY_05000166 (1)
51/* Turning SPORTs on while External Frame Sync Is Active May Corrupt Data */ 51/* Turning SPORTs on while External Frame Sync Is Active May Corrupt Data */
52#define ANOMALY_05000167 (1) 52#define ANOMALY_05000167 (1)
@@ -56,13 +56,13 @@
56#define ANOMALY_05000180 (1) 56#define ANOMALY_05000180 (1)
57/* Timer Pin Limitations for PPI TX Modes with External Frame Syncs */ 57/* Timer Pin Limitations for PPI TX Modes with External Frame Syncs */
58#define ANOMALY_05000183 (__SILICON_REVISION__ < 4) 58#define ANOMALY_05000183 (__SILICON_REVISION__ < 4)
59/* False Protection Exceptions */ 59/* False Protection Exceptions when Speculative Fetch Is Cancelled */
60#define ANOMALY_05000189 (__SILICON_REVISION__ < 4) 60#define ANOMALY_05000189 (__SILICON_REVISION__ < 4)
61/* False I/O Pin Interrupts on Edge-Sensitive Inputs When Polarity Setting Is Changed */ 61/* False I/O Pin Interrupts on Edge-Sensitive Inputs When Polarity Setting Is Changed */
62#define ANOMALY_05000193 (__SILICON_REVISION__ < 4) 62#define ANOMALY_05000193 (__SILICON_REVISION__ < 4)
63/* Restarting SPORT in Specific Modes May Cause Data Corruption */ 63/* Restarting SPORT in Specific Modes May Cause Data Corruption */
64#define ANOMALY_05000194 (__SILICON_REVISION__ < 4) 64#define ANOMALY_05000194 (__SILICON_REVISION__ < 4)
65/* Failing MMR Accesses When Stalled by Preceding Memory Read */ 65/* Failing MMR Accesses when Preceding Memory Read Stalls */
66#define ANOMALY_05000198 (__SILICON_REVISION__ < 5) 66#define ANOMALY_05000198 (__SILICON_REVISION__ < 5)
67/* Current DMA Address Shows Wrong Value During Carry Fix */ 67/* Current DMA Address Shows Wrong Value During Carry Fix */
68#define ANOMALY_05000199 (__SILICON_REVISION__ < 4) 68#define ANOMALY_05000199 (__SILICON_REVISION__ < 4)
@@ -74,7 +74,7 @@
74#define ANOMALY_05000202 (__SILICON_REVISION__ < 5) 74#define ANOMALY_05000202 (__SILICON_REVISION__ < 5)
75/* Specific Sequence That Can Cause DMA Error or DMA Stopping */ 75/* Specific Sequence That Can Cause DMA Error or DMA Stopping */
76#define ANOMALY_05000203 (__SILICON_REVISION__ < 4) 76#define ANOMALY_05000203 (__SILICON_REVISION__ < 4)
77/* Incorrect data read with write-through cache and allocate cache lines on reads only mode */ 77/* Incorrect Data Read with Writethrough "Allocate Cache Lines on Reads Only" Cache Mode */
78#define ANOMALY_05000204 (__SILICON_REVISION__ < 4 && ANOMALY_BF533) 78#define ANOMALY_05000204 (__SILICON_REVISION__ < 4 && ANOMALY_BF533)
79/* Recovery from "Brown-Out" Condition */ 79/* Recovery from "Brown-Out" Condition */
80#define ANOMALY_05000207 (__SILICON_REVISION__ < 4) 80#define ANOMALY_05000207 (__SILICON_REVISION__ < 4)
@@ -106,7 +106,7 @@
106#define ANOMALY_05000244 (__SILICON_REVISION__ < 5) 106#define ANOMALY_05000244 (__SILICON_REVISION__ < 5)
107/* False Hardware Error from an Access in the Shadow of a Conditional Branch */ 107/* False Hardware Error from an Access in the Shadow of a Conditional Branch */
108#define ANOMALY_05000245 (1) 108#define ANOMALY_05000245 (1)
109/* Data CPLBs Should Prevent Spurious Hardware Errors */ 109/* Data CPLBs Should Prevent False Hardware Errors */
110#define ANOMALY_05000246 (__SILICON_REVISION__ < 5) 110#define ANOMALY_05000246 (__SILICON_REVISION__ < 5)
111/* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */ 111/* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */
112#define ANOMALY_05000250 (__SILICON_REVISION__ == 4) 112#define ANOMALY_05000250 (__SILICON_REVISION__ == 4)
@@ -148,21 +148,21 @@
148#define ANOMALY_05000277 (__SILICON_REVISION__ < 6) 148#define ANOMALY_05000277 (__SILICON_REVISION__ < 6)
149/* Disabling Peripherals with DMA Running May Cause DMA System Instability */ 149/* Disabling Peripherals with DMA Running May Cause DMA System Instability */
150#define ANOMALY_05000278 (__SILICON_REVISION__ < 6) 150#define ANOMALY_05000278 (__SILICON_REVISION__ < 6)
151/* False Hardware Error Exception When ISR Context Is Not Restored */ 151/* False Hardware Error Exception when ISR Context Is Not Restored */
152#define ANOMALY_05000281 (__SILICON_REVISION__ < 6) 152#define ANOMALY_05000281 (__SILICON_REVISION__ < 6)
153/* Memory DMA Corruption with 32-Bit Data and Traffic Control */ 153/* Memory DMA Corruption with 32-Bit Data and Traffic Control */
154#define ANOMALY_05000282 (__SILICON_REVISION__ < 6) 154#define ANOMALY_05000282 (__SILICON_REVISION__ < 6)
155/* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ 155/* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */
156#define ANOMALY_05000283 (__SILICON_REVISION__ < 6) 156#define ANOMALY_05000283 (__SILICON_REVISION__ < 6)
157/* SPORTs May Receive Bad Data If FIFOs Fill Up */ 157/* SPORTs May Receive Bad Data If FIFOs Fill Up */
158#define ANOMALY_05000288 (__SILICON_REVISION__ < 6) 158#define ANOMALY_05000288 (__SILICON_REVISION__ < 6)
159/* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */ 159/* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */
160#define ANOMALY_05000301 (__SILICON_REVISION__ < 6) 160#define ANOMALY_05000301 (__SILICON_REVISION__ < 6)
161/* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ 161/* SSYNCs after Writes to DMA MMR Registers May Not Be Handled Correctly */
162#define ANOMALY_05000302 (__SILICON_REVISION__ < 5) 162#define ANOMALY_05000302 (__SILICON_REVISION__ < 5)
163/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */ 163/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */
164#define ANOMALY_05000305 (__SILICON_REVISION__ < 5) 164#define ANOMALY_05000305 (__SILICON_REVISION__ < 5)
165/* New Feature: Additional PPI Frame Sync Sampling Options (Not Available On Older Silicon) */ 165/* ALT_TIMING Bit in PPI_CONTROL Register Is Not Functional */
166#define ANOMALY_05000306 (__SILICON_REVISION__ < 5) 166#define ANOMALY_05000306 (__SILICON_REVISION__ < 5)
167/* SCKELOW Bit Does Not Maintain State Through Hibernate */ 167/* SCKELOW Bit Does Not Maintain State Through Hibernate */
168#define ANOMALY_05000307 (1) /* note: brokenness is noted in documentation, not anomaly sheet */ 168#define ANOMALY_05000307 (1) /* note: brokenness is noted in documentation, not anomaly sheet */
@@ -170,11 +170,11 @@
170#define ANOMALY_05000310 (1) 170#define ANOMALY_05000310 (1)
171/* Erroneous Flag (GPIO) Pin Operations under Specific Sequences */ 171/* Erroneous Flag (GPIO) Pin Operations under Specific Sequences */
172#define ANOMALY_05000311 (__SILICON_REVISION__ < 6) 172#define ANOMALY_05000311 (__SILICON_REVISION__ < 6)
173/* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 173/* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */
174#define ANOMALY_05000312 (__SILICON_REVISION__ < 6) 174#define ANOMALY_05000312 (__SILICON_REVISION__ < 6)
175/* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */ 175/* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */
176#define ANOMALY_05000313 (__SILICON_REVISION__ < 6) 176#define ANOMALY_05000313 (__SILICON_REVISION__ < 6)
177/* Killed System MMR Write Completes Erroneously On Next System MMR Access */ 177/* Killed System MMR Write Completes Erroneously on Next System MMR Access */
178#define ANOMALY_05000315 (__SILICON_REVISION__ < 6) 178#define ANOMALY_05000315 (__SILICON_REVISION__ < 6)
179/* Internal Voltage Regulator Values of 1.05V, 1.10V and 1.15V Not Allowed for LQFP Packages */ 179/* Internal Voltage Regulator Values of 1.05V, 1.10V and 1.15V Not Allowed for LQFP Packages */
180#define ANOMALY_05000319 ((ANOMALY_BF531 || ANOMALY_BF532) && __SILICON_REVISION__ < 6) 180#define ANOMALY_05000319 ((ANOMALY_BF531 || ANOMALY_BF532) && __SILICON_REVISION__ < 6)
@@ -200,7 +200,7 @@
200#define ANOMALY_05000426 (1) 200#define ANOMALY_05000426 (1)
201/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 201/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */
202#define ANOMALY_05000443 (1) 202#define ANOMALY_05000443 (1)
203/* False Hardware Error when RETI points to invalid memory */ 203/* False Hardware Error when RETI Points to Invalid Memory */
204#define ANOMALY_05000461 (1) 204#define ANOMALY_05000461 (1)
205 205
206/* These anomalies have been "phased" out of analog.com anomaly sheets and are 206/* These anomalies have been "phased" out of analog.com anomaly sheets and are
@@ -215,17 +215,17 @@
215#define ANOMALY_05000070 (__SILICON_REVISION__ < 2) 215#define ANOMALY_05000070 (__SILICON_REVISION__ < 2)
216/* Writing FIO_DIR can corrupt a programmable flag's data */ 216/* Writing FIO_DIR can corrupt a programmable flag's data */
217#define ANOMALY_05000079 (__SILICON_REVISION__ < 2) 217#define ANOMALY_05000079 (__SILICON_REVISION__ < 2)
218/* Timer Auto-Baud Mode requires the UART clock to be enabled */ 218/* Timer Auto-Baud Mode requires the UART clock to be enabled. */
219#define ANOMALY_05000086 (__SILICON_REVISION__ < 2) 219#define ANOMALY_05000086 (__SILICON_REVISION__ < 2)
220/* Internal Clocking Modes on SPORT0 not supported */ 220/* Internal Clocking Modes on SPORT0 not supported */
221#define ANOMALY_05000088 (__SILICON_REVISION__ < 2) 221#define ANOMALY_05000088 (__SILICON_REVISION__ < 2)
222/* Internal voltage regulator does not wake up from an RTC wakeup */ 222/* Internal voltage regulator does not wake up from an RTC wakeup */
223#define ANOMALY_05000092 (__SILICON_REVISION__ < 2) 223#define ANOMALY_05000092 (__SILICON_REVISION__ < 2)
224/* The IFLUSH instruction must be preceded by a CSYNC instruction */ 224/* The IFLUSH Instruction Must Be Preceded by a CSYNC Instruction */
225#define ANOMALY_05000093 (__SILICON_REVISION__ < 2) 225#define ANOMALY_05000093 (__SILICON_REVISION__ < 2)
226/* Vectoring to an instruction that is presently being filled into the instruction cache may cause erroneous behavior */ 226/* Vectoring to instruction that is being filled into the i-cache may cause erroneous behavior */
227#define ANOMALY_05000095 (__SILICON_REVISION__ < 2) 227#define ANOMALY_05000095 (__SILICON_REVISION__ < 2)
228/* PREFETCH, FLUSH, and FLUSHINV must be followed by a CSYNC */ 228/* PREFETCH, FLUSH, and FLUSHINV Instructions Must Be Followed by a CSYNC Instruction */
229#define ANOMALY_05000096 (__SILICON_REVISION__ < 2) 229#define ANOMALY_05000096 (__SILICON_REVISION__ < 2)
230/* Performance Monitor 0 and 1 are swapped when monitoring memory events */ 230/* Performance Monitor 0 and 1 are swapped when monitoring memory events */
231#define ANOMALY_05000097 (__SILICON_REVISION__ < 2) 231#define ANOMALY_05000097 (__SILICON_REVISION__ < 2)
@@ -235,45 +235,45 @@
235#define ANOMALY_05000100 (__SILICON_REVISION__ < 2) 235#define ANOMALY_05000100 (__SILICON_REVISION__ < 2)
236/* Reading X_MODIFY or Y_MODIFY while DMA channel is active */ 236/* Reading X_MODIFY or Y_MODIFY while DMA channel is active */
237#define ANOMALY_05000101 (__SILICON_REVISION__ < 2) 237#define ANOMALY_05000101 (__SILICON_REVISION__ < 2)
238/* Descriptor-based MemDMA may lock up with 32-bit transfers or if transfers span 64KB buffers */ 238/* Descriptor MemDMA may lock up with 32-bit transfers or if transfers span 64KB buffers */
239#define ANOMALY_05000102 (__SILICON_REVISION__ < 2) 239#define ANOMALY_05000102 (__SILICON_REVISION__ < 2)
240/* Incorrect value written to the cycle counters */ 240/* Incorrect Value Written to the Cycle Counters */
241#define ANOMALY_05000103 (__SILICON_REVISION__ < 2) 241#define ANOMALY_05000103 (__SILICON_REVISION__ < 2)
242/* Stores to L1 Data memory incorrect when a specific sequence is followed */ 242/* Stores to L1 Data Memory Incorrect when a Specific Sequence Is Followed */
243#define ANOMALY_05000104 (__SILICON_REVISION__ < 2) 243#define ANOMALY_05000104 (__SILICON_REVISION__ < 2)
244/* Programmable Flag (PF3) functionality not supported in all PPI modes */ 244/* Programmable Flag (PF3) functionality not supported in all PPI modes */
245#define ANOMALY_05000106 (__SILICON_REVISION__ < 2) 245#define ANOMALY_05000106 (__SILICON_REVISION__ < 2)
246/* Data store can be lost when targeting a cache line fill */ 246/* Data store can be lost when targeting a cache line fill */
247#define ANOMALY_05000107 (__SILICON_REVISION__ < 2) 247#define ANOMALY_05000107 (__SILICON_REVISION__ < 2)
248/* Reserved bits in SYSCFG register not set at power on */ 248/* Reserved Bits in SYSCFG Register Not Set at Power-On */
249#define ANOMALY_05000109 (__SILICON_REVISION__ < 3) 249#define ANOMALY_05000109 (__SILICON_REVISION__ < 3)
250/* Infinite Core Stall */ 250/* Infinite Core Stall */
251#define ANOMALY_05000114 (__SILICON_REVISION__ < 2) 251#define ANOMALY_05000114 (__SILICON_REVISION__ < 2)
252/* PPI_FSx may glitch when generated by the on chip Timers */ 252/* PPI_FSx may glitch when generated by the on chip Timers. */
253#define ANOMALY_05000115 (__SILICON_REVISION__ < 2) 253#define ANOMALY_05000115 (__SILICON_REVISION__ < 2)
254/* Trace Buffers may record discontinuities into emulation mode and/or exception, NMI, reset handlers */ 254/* Trace Buffers May Contain Errors in Emulation Mode and/or Exception, NMI, Reset Handlers */
255#define ANOMALY_05000116 (__SILICON_REVISION__ < 3) 255#define ANOMALY_05000116 (__SILICON_REVISION__ < 3)
256/* DTEST registers allow access to Data Cache when DTEST_COMMAND< 14 >= 0 */ 256/* DTEST registers allow access to Data Cache when DTEST_COMMAND< 14 >= 0 */
257#define ANOMALY_05000117 (__SILICON_REVISION__ < 2) 257#define ANOMALY_05000117 (__SILICON_REVISION__ < 2)
258/* Booting from an 8-bit or 24-bit Addressable SPI device is not supported */ 258/* Booting from an 8-bit or 24-bit Addressable SPI device is not supported */
259#define ANOMALY_05000118 (__SILICON_REVISION__ < 2) 259#define ANOMALY_05000118 (__SILICON_REVISION__ < 2)
260/* DTEST_COMMAND initiated memory access may be incorrect if data cache or DMA is active */ 260/* DTEST_COMMAND Initiated Memory Access May Be Incorrect If Data Cache or DMA Is Active */
261#define ANOMALY_05000123 (__SILICON_REVISION__ < 3) 261#define ANOMALY_05000123 (__SILICON_REVISION__ < 3)
262/* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, or 1:1 */ 262/* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, or 1:1 */
263#define ANOMALY_05000124 (__SILICON_REVISION__ < 3) 263#define ANOMALY_05000124 (__SILICON_REVISION__ < 3)
264/* Erroneous exception when enabling cache */ 264/* Erroneous Exception when Enabling Cache */
265#define ANOMALY_05000125 (__SILICON_REVISION__ < 3) 265#define ANOMALY_05000125 (__SILICON_REVISION__ < 3)
266/* SPI clock polarity and phase bits incorrect during booting */ 266/* SPI clock polarity and phase bits incorrect during booting */
267#define ANOMALY_05000126 (__SILICON_REVISION__ < 3) 267#define ANOMALY_05000126 (__SILICON_REVISION__ < 3)
268/* DMEM_CONTROL is not set on Reset */ 268/* DMEM_CONTROL<12> Is Not Set on Reset */
269#define ANOMALY_05000137 (__SILICON_REVISION__ < 3) 269#define ANOMALY_05000137 (__SILICON_REVISION__ < 3)
270/* SPI boot will not complete if there is a zero fill block in the loader file */ 270/* SPI boot will not complete if there is a zero fill block in the loader file */
271#define ANOMALY_05000138 (__SILICON_REVISION__ == 2) 271#define ANOMALY_05000138 (__SILICON_REVISION__ == 2)
272/* Timerx_Config must be set for using the PPI in GP output mode with internal Frame Syncs */ 272/* TIMERx_CONFIG[5] must be set for PPI in GP output mode with internal Frame Syncs */
273#define ANOMALY_05000139 (__SILICON_REVISION__ < 2) 273#define ANOMALY_05000139 (__SILICON_REVISION__ < 2)
274/* Allowing the SPORT RX FIFO to fill will cause an overflow */ 274/* Allowing the SPORT RX FIFO to fill will cause an overflow */
275#define ANOMALY_05000140 (__SILICON_REVISION__ < 3) 275#define ANOMALY_05000140 (__SILICON_REVISION__ < 3)
276/* An Infinite Stall occurs with a particular sequence of consecutive dual dag events */ 276/* Infinite Stall may occur with a particular sequence of consecutive dual dag events */
277#define ANOMALY_05000141 (__SILICON_REVISION__ < 3) 277#define ANOMALY_05000141 (__SILICON_REVISION__ < 3)
278/* Interrupts may be lost when a programmable input flag is configured to be edge sensitive */ 278/* Interrupts may be lost when a programmable input flag is configured to be edge sensitive */
279#define ANOMALY_05000142 (__SILICON_REVISION__ < 3) 279#define ANOMALY_05000142 (__SILICON_REVISION__ < 3)
@@ -287,7 +287,7 @@
287#define ANOMALY_05000146 (__SILICON_REVISION__ < 3) 287#define ANOMALY_05000146 (__SILICON_REVISION__ < 3)
288/* Source MDMA descriptor may stop with a DMA Error near beginning of descriptor fetch */ 288/* Source MDMA descriptor may stop with a DMA Error near beginning of descriptor fetch */
289#define ANOMALY_05000147 (__SILICON_REVISION__ < 3) 289#define ANOMALY_05000147 (__SILICON_REVISION__ < 3)
290/* When booting from a 16-bit asynchronous memory device, the upper 8-bits of each word must be 0x00 */ 290/* When booting from 16-bit asynchronous memory, the upper 8 bits of each word must be 0x00 */
291#define ANOMALY_05000148 (__SILICON_REVISION__ < 3) 291#define ANOMALY_05000148 (__SILICON_REVISION__ < 3)
292/* Frame Delay in SPORT Multichannel Mode */ 292/* Frame Delay in SPORT Multichannel Mode */
293#define ANOMALY_05000153 (__SILICON_REVISION__ < 3) 293#define ANOMALY_05000153 (__SILICON_REVISION__ < 3)
@@ -295,13 +295,13 @@
295#define ANOMALY_05000154 (__SILICON_REVISION__ < 3) 295#define ANOMALY_05000154 (__SILICON_REVISION__ < 3)
296/* Timer1 can not be used for PWMOUT mode when a certain PPI mode is in use */ 296/* Timer1 can not be used for PWMOUT mode when a certain PPI mode is in use */
297#define ANOMALY_05000155 (__SILICON_REVISION__ < 3) 297#define ANOMALY_05000155 (__SILICON_REVISION__ < 3)
298/* Killed 32-bit MMR write leads to next system MMR access thinking it should be 32-bit */ 298/* Killed 32-Bit MMR Write Leads to Next System MMR Access Thinking It Should Be 32-Bit */
299#define ANOMALY_05000157 (__SILICON_REVISION__ < 3) 299#define ANOMALY_05000157 (__SILICON_REVISION__ < 3)
300/* SPORT transmit data is not gated by external frame sync in certain conditions */ 300/* SPORT Transmit Data Is Not Gated by External Frame Sync in Certain Conditions */
301#define ANOMALY_05000163 (__SILICON_REVISION__ < 3) 301#define ANOMALY_05000163 (__SILICON_REVISION__ < 3)
302/* SDRAM auto-refresh and subsequent Power Ups */ 302/* Undefined Behavior when Power-Up Sequence Is Issued to SDRAM during Auto-Refresh */
303#define ANOMALY_05000168 (__SILICON_REVISION__ < 3) 303#define ANOMALY_05000168 (__SILICON_REVISION__ < 3)
304/* DATA CPLB page miss can result in lost write-through cache data writes */ 304/* DATA CPLB Page Miss Can Result in Lost Write-Through Data Cache Writes */
305#define ANOMALY_05000169 (__SILICON_REVISION__ < 3) 305#define ANOMALY_05000169 (__SILICON_REVISION__ < 3)
306/* DMA vs Core accesses to external memory */ 306/* DMA vs Core accesses to external memory */
307#define ANOMALY_05000173 (__SILICON_REVISION__ < 3) 307#define ANOMALY_05000173 (__SILICON_REVISION__ < 3)
@@ -309,15 +309,15 @@
309#define ANOMALY_05000174 (__SILICON_REVISION__ < 3) 309#define ANOMALY_05000174 (__SILICON_REVISION__ < 3)
310/* Overlapping Sequencer and Memory Stalls */ 310/* Overlapping Sequencer and Memory Stalls */
311#define ANOMALY_05000175 (__SILICON_REVISION__ < 3) 311#define ANOMALY_05000175 (__SILICON_REVISION__ < 3)
312/* Multiplication of (-1) by (-1) followed by an accumulator saturation */ 312/* Overflow Bit Asserted when Multiplication of -1 by -1 Followed by Accumulator Saturation */
313#define ANOMALY_05000176 (__SILICON_REVISION__ < 3) 313#define ANOMALY_05000176 (__SILICON_REVISION__ < 3)
314/* Disabling the PPI resets the PPI configuration registers */ 314/* Disabling the PPI Resets the PPI Configuration Registers */
315#define ANOMALY_05000181 (__SILICON_REVISION__ < 3) 315#define ANOMALY_05000181 (__SILICON_REVISION__ < 3)
316/* PPI TX Mode with 2 External Frame Syncs */ 316/* Early PPI Transmit when FS1 Asserts before FS2 in TX Mode with 2 External Frame Syncs */
317#define ANOMALY_05000185 (__SILICON_REVISION__ < 3) 317#define ANOMALY_05000185 (__SILICON_REVISION__ < 3)
318/* PPI does not invert the Driving PPICLK edge in Transmit Modes */ 318/* PPI does not invert the Driving PPICLK edge in Transmit Modes */
319#define ANOMALY_05000191 (__SILICON_REVISION__ < 3) 319#define ANOMALY_05000191 (__SILICON_REVISION__ < 3)
320/* In PPI Transmit Modes with External Frame Syncs POLC */ 320/* In PPI Transmit Modes with External Frame Syncs POLC bit must be set to 1 */
321#define ANOMALY_05000192 (__SILICON_REVISION__ < 3) 321#define ANOMALY_05000192 (__SILICON_REVISION__ < 3)
322/* Internal Voltage Regulator may not start up */ 322/* Internal Voltage Regulator may not start up */
323#define ANOMALY_05000206 (__SILICON_REVISION__ < 3) 323#define ANOMALY_05000206 (__SILICON_REVISION__ < 3)
@@ -326,6 +326,7 @@
326#define ANOMALY_05000120 (0) 326#define ANOMALY_05000120 (0)
327#define ANOMALY_05000149 (0) 327#define ANOMALY_05000149 (0)
328#define ANOMALY_05000171 (0) 328#define ANOMALY_05000171 (0)
329#define ANOMALY_05000182 (0)
329#define ANOMALY_05000220 (0) 330#define ANOMALY_05000220 (0)
330#define ANOMALY_05000248 (0) 331#define ANOMALY_05000248 (0)
331#define ANOMALY_05000266 (0) 332#define ANOMALY_05000266 (0)
@@ -345,5 +346,7 @@
345#define ANOMALY_05000448 (0) 346#define ANOMALY_05000448 (0)
346#define ANOMALY_05000456 (0) 347#define ANOMALY_05000456 (0)
347#define ANOMALY_05000450 (0) 348#define ANOMALY_05000450 (0)
349#define ANOMALY_05000465 (0)
350#define ANOMALY_05000467 (0)
348 351
349#endif 352#endif
diff --git a/arch/blackfin/mach-bf533/include/mach/blackfin.h b/arch/blackfin/mach-bf533/include/mach/blackfin.h
index 045184f81a2..39aa175f19f 100644
--- a/arch/blackfin/mach-bf533/include/mach/blackfin.h
+++ b/arch/blackfin/mach-bf533/include/mach/blackfin.h
@@ -34,7 +34,6 @@
34#define BF533_FAMILY 34#define BF533_FAMILY
35 35
36#include "bf533.h" 36#include "bf533.h"
37#include "mem_map.h"
38#include "defBF532.h" 37#include "defBF532.h"
39#include "anomaly.h" 38#include "anomaly.h"
40 39
diff --git a/arch/blackfin/mach-bf533/include/mach/mem_map.h b/arch/blackfin/mach-bf533/include/mach/mem_map.h
index fc33b7cb993..197af1a398a 100644
--- a/arch/blackfin/mach-bf533/include/mach/mem_map.h
+++ b/arch/blackfin/mach-bf533/include/mach/mem_map.h
@@ -1,38 +1,16 @@
1/* 1/*
2 * File: include/asm-blackfin/mach-bf533/mem_map.h 2 * BF533 memory map
3 * Based on:
4 * Author:
5 * 3 *
6 * Created: 4 * Copyright 2004-2009 Analog Devices Inc.
7 * Description: 5 * Licensed under the GPL-2 or later.
8 *
9 * Rev:
10 *
11 * Modified:
12 *
13 * Bugs: Enter bugs at http://blackfin.uclinux.org/
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation; either version 2, or (at your option)
18 * any later version.
19 *
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with this program; see the file COPYING.
27 * If not, write to the Free Software Foundation,
28 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 */ 6 */
30 7
31#ifndef _MEM_MAP_533_H_ 8#ifndef __BFIN_MACH_MEM_MAP_H__
32#define _MEM_MAP_533_H_ 9#define __BFIN_MACH_MEM_MAP_H__
33 10
34#define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 11#ifndef __BFIN_MEM_MAP_H__
35#define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 12# error "do not include mach/mem_map.h directly -- use asm/mem_map.h"
13#endif
36 14
37/* Async Memory Banks */ 15/* Async Memory Banks */
38#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ 16#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */
@@ -158,20 +136,4 @@
158 136
159#endif 137#endif
160 138
161/* Level 2 Memory - none */ 139#endif
162
163#define L2_START 0
164#define L2_LENGTH 0
165
166/* Scratch Pad Memory */
167
168#define L1_SCRATCH_START 0xFFB00000
169#define L1_SCRATCH_LENGTH 0x1000
170
171#define GET_PDA_SAFE(preg) \
172 preg.l = _cpu_pda; \
173 preg.h = _cpu_pda;
174
175#define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
176
177#endif /* _MEM_MAP_533_H_ */
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index ff7228caa7d..c1f76dd2c4e 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -79,7 +79,6 @@ static struct resource bfin_isp1760_resources[] = {
79 79
80static struct isp1760_platform_data isp1760_priv = { 80static struct isp1760_platform_data isp1760_priv = {
81 .is_isp1761 = 0, 81 .is_isp1761 = 0,
82 .port1_disable = 0,
83 .bus_width_16 = 1, 82 .bus_width_16 = 1,
84 .port1_otg = 0, 83 .port1_otg = 0,
85 .analog_oc = 0, 84 .analog_oc = 0,
diff --git a/arch/blackfin/mach-bf537/include/mach/anomaly.h b/arch/blackfin/mach-bf537/include/mach/anomaly.h
index fc966342546..57c128cc3b6 100644
--- a/arch/blackfin/mach-bf537/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf537/include/mach/anomaly.h
@@ -34,13 +34,13 @@
34# define ANOMALY_BF537 0 34# define ANOMALY_BF537 0
35#endif 35#endif
36 36
37/* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 37/* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */
38#define ANOMALY_05000074 (1) 38#define ANOMALY_05000074 (1)
39/* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ 39/* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */
40#define ANOMALY_05000119 (1) 40#define ANOMALY_05000119 (1)
41/* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ 41/* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */
42#define ANOMALY_05000122 (1) 42#define ANOMALY_05000122 (1)
43/* Killed 32-bit MMR write leads to next system MMR access thinking it should be 32-bit */ 43/* Killed 32-Bit MMR Write Leads to Next System MMR Access Thinking It Should Be 32-Bit */
44#define ANOMALY_05000157 (__SILICON_REVISION__ < 2) 44#define ANOMALY_05000157 (__SILICON_REVISION__ < 2)
45/* PPI_DELAY Not Functional in PPI Modes with 0 Frame Syncs */ 45/* PPI_DELAY Not Functional in PPI Modes with 0 Frame Syncs */
46#define ANOMALY_05000180 (1) 46#define ANOMALY_05000180 (1)
@@ -50,11 +50,11 @@
50#define ANOMALY_05000244 (__SILICON_REVISION__ < 3) 50#define ANOMALY_05000244 (__SILICON_REVISION__ < 3)
51/* False Hardware Error from an Access in the Shadow of a Conditional Branch */ 51/* False Hardware Error from an Access in the Shadow of a Conditional Branch */
52#define ANOMALY_05000245 (1) 52#define ANOMALY_05000245 (1)
53/* CLKIN Buffer Output Enable Reset Behavior Is Changed */ 53/* Buffered CLKIN Output Is Disabled by Default */
54#define ANOMALY_05000247 (1) 54#define ANOMALY_05000247 (1)
55/* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */ 55/* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */
56#define ANOMALY_05000250 (__SILICON_REVISION__ < 3) 56#define ANOMALY_05000250 (__SILICON_REVISION__ < 3)
57/* EMAC Tx DMA error after an early frame abort */ 57/* EMAC TX DMA Error After an Early Frame Abort */
58#define ANOMALY_05000252 (__SILICON_REVISION__ < 3) 58#define ANOMALY_05000252 (__SILICON_REVISION__ < 3)
59/* Maximum External Clock Speed for Timers */ 59/* Maximum External Clock Speed for Timers */
60#define ANOMALY_05000253 (__SILICON_REVISION__ < 3) 60#define ANOMALY_05000253 (__SILICON_REVISION__ < 3)
@@ -62,7 +62,7 @@
62#define ANOMALY_05000254 (__SILICON_REVISION__ > 2) 62#define ANOMALY_05000254 (__SILICON_REVISION__ > 2)
63/* Entering Hibernate State with RTC Seconds Interrupt Not Functional */ 63/* Entering Hibernate State with RTC Seconds Interrupt Not Functional */
64#define ANOMALY_05000255 (__SILICON_REVISION__ < 3) 64#define ANOMALY_05000255 (__SILICON_REVISION__ < 3)
65/* EMAC MDIO input latched on wrong MDC edge */ 65/* EMAC MDIO Input Latched on Wrong MDC Edge */
66#define ANOMALY_05000256 (__SILICON_REVISION__ < 3) 66#define ANOMALY_05000256 (__SILICON_REVISION__ < 3)
67/* Interrupt/Exception During Short Hardware Loop May Cause Bad Instruction Fetches */ 67/* Interrupt/Exception During Short Hardware Loop May Cause Bad Instruction Fetches */
68#define ANOMALY_05000257 (__SILICON_REVISION__ < 3) 68#define ANOMALY_05000257 (__SILICON_REVISION__ < 3)
@@ -80,7 +80,7 @@
80#define ANOMALY_05000264 (__SILICON_REVISION__ < 3) 80#define ANOMALY_05000264 (__SILICON_REVISION__ < 3)
81/* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ 81/* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */
82#define ANOMALY_05000265 (1) 82#define ANOMALY_05000265 (1)
83/* Memory DMA error when peripheral DMA is running with non-zero DEB_TRAFFIC_PERIOD */ 83/* Memory DMA Error when Peripheral DMA Is Running with Non-Zero DEB_TRAFFIC_PERIOD */
84#define ANOMALY_05000268 (__SILICON_REVISION__ < 3) 84#define ANOMALY_05000268 (__SILICON_REVISION__ < 3)
85/* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Decrease */ 85/* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Decrease */
86#define ANOMALY_05000270 (__SILICON_REVISION__ < 3) 86#define ANOMALY_05000270 (__SILICON_REVISION__ < 3)
@@ -92,15 +92,15 @@
92#define ANOMALY_05000277 (__SILICON_REVISION__ < 3) 92#define ANOMALY_05000277 (__SILICON_REVISION__ < 3)
93/* Disabling Peripherals with DMA Running May Cause DMA System Instability */ 93/* Disabling Peripherals with DMA Running May Cause DMA System Instability */
94#define ANOMALY_05000278 (((ANOMALY_BF536 || ANOMALY_BF537) && __SILICON_REVISION__ < 3) || (ANOMALY_BF534 && __SILICON_REVISION__ < 2)) 94#define ANOMALY_05000278 (((ANOMALY_BF536 || ANOMALY_BF537) && __SILICON_REVISION__ < 3) || (ANOMALY_BF534 && __SILICON_REVISION__ < 2))
95/* SPI Master boot mode does not work well with Atmel Data flash devices */ 95/* SPI Master Boot Mode Does Not Work Well with Atmel Data Flash Devices */
96#define ANOMALY_05000280 (1) 96#define ANOMALY_05000280 (1)
97/* False Hardware Error Exception When ISR Context Is Not Restored */ 97/* False Hardware Error Exception when ISR Context Is Not Restored */
98#define ANOMALY_05000281 (__SILICON_REVISION__ < 3) 98#define ANOMALY_05000281 (__SILICON_REVISION__ < 3)
99/* Memory DMA Corruption with 32-Bit Data and Traffic Control */ 99/* Memory DMA Corruption with 32-Bit Data and Traffic Control */
100#define ANOMALY_05000282 (__SILICON_REVISION__ < 3) 100#define ANOMALY_05000282 (__SILICON_REVISION__ < 3)
101/* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ 101/* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */
102#define ANOMALY_05000283 (__SILICON_REVISION__ < 3) 102#define ANOMALY_05000283 (__SILICON_REVISION__ < 3)
103/* New Feature: EMAC TX DMA Word Alignment (Not Available On Older Silicon) */ 103/* TXDWA Bit in EMAC_SYSCTL Register Is Not Functional */
104#define ANOMALY_05000285 (__SILICON_REVISION__ < 3) 104#define ANOMALY_05000285 (__SILICON_REVISION__ < 3)
105/* SPORTs May Receive Bad Data If FIFOs Fill Up */ 105/* SPORTs May Receive Bad Data If FIFOs Fill Up */
106#define ANOMALY_05000288 (__SILICON_REVISION__ < 3) 106#define ANOMALY_05000288 (__SILICON_REVISION__ < 3)
@@ -112,25 +112,25 @@
112#define ANOMALY_05000305 (__SILICON_REVISION__ < 3) 112#define ANOMALY_05000305 (__SILICON_REVISION__ < 3)
113/* SCKELOW Bit Does Not Maintain State Through Hibernate */ 113/* SCKELOW Bit Does Not Maintain State Through Hibernate */
114#define ANOMALY_05000307 (__SILICON_REVISION__ < 3) 114#define ANOMALY_05000307 (__SILICON_REVISION__ < 3)
115/* Writing UART_THR while UART clock is disabled sends erroneous start bit */ 115/* Writing UART_THR While UART Clock Is Disabled Sends Erroneous Start Bit */
116#define ANOMALY_05000309 (__SILICON_REVISION__ < 3) 116#define ANOMALY_05000309 (__SILICON_REVISION__ < 3)
117/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ 117/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */
118#define ANOMALY_05000310 (1) 118#define ANOMALY_05000310 (1)
119/* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 119/* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */
120#define ANOMALY_05000312 (1) 120#define ANOMALY_05000312 (1)
121/* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */ 121/* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */
122#define ANOMALY_05000313 (1) 122#define ANOMALY_05000313 (1)
123/* Killed System MMR Write Completes Erroneously On Next System MMR Access */ 123/* Killed System MMR Write Completes Erroneously on Next System MMR Access */
124#define ANOMALY_05000315 (__SILICON_REVISION__ < 3) 124#define ANOMALY_05000315 (__SILICON_REVISION__ < 3)
125/* EMAC RMII mode: collisions occur in Full Duplex mode */ 125/* EMAC RMII Mode: Collisions Occur in Full Duplex Mode */
126#define ANOMALY_05000316 (__SILICON_REVISION__ < 3) 126#define ANOMALY_05000316 (__SILICON_REVISION__ < 3)
127/* EMAC RMII mode: TX frames in half duplex fail with status No Carrier */ 127/* EMAC RMII Mode: TX Frames in Half Duplex Fail with Status "No Carrier" */
128#define ANOMALY_05000321 (__SILICON_REVISION__ < 3) 128#define ANOMALY_05000321 (__SILICON_REVISION__ < 3)
129/* EMAC RMII mode at 10-Base-T speed: RX frames not received properly */ 129/* EMAC RMII Mode at 10-Base-T Speed: RX Frames Not Received Properly */
130#define ANOMALY_05000322 (1) 130#define ANOMALY_05000322 (1)
131/* Ethernet MAC MDIO Reads Do Not Meet IEEE Specification */ 131/* Ethernet MAC MDIO Reads Do Not Meet IEEE Specification */
132#define ANOMALY_05000341 (__SILICON_REVISION__ >= 3) 132#define ANOMALY_05000341 (__SILICON_REVISION__ >= 3)
133/* New Feature: UART Remains Enabled after UART Boot */ 133/* UART Gets Disabled after UART Boot */
134#define ANOMALY_05000350 (__SILICON_REVISION__ >= 3) 134#define ANOMALY_05000350 (__SILICON_REVISION__ >= 3)
135/* Regulator Programming Blocked when Hibernate Wakeup Source Remains Active */ 135/* Regulator Programming Blocked when Hibernate Wakeup Source Remains Active */
136#define ANOMALY_05000355 (1) 136#define ANOMALY_05000355 (1)
@@ -154,7 +154,7 @@
154#define ANOMALY_05000426 (1) 154#define ANOMALY_05000426 (1)
155/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 155/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */
156#define ANOMALY_05000443 (1) 156#define ANOMALY_05000443 (1)
157/* False Hardware Error when RETI points to invalid memory */ 157/* False Hardware Error when RETI Points to Invalid Memory */
158#define ANOMALY_05000461 (1) 158#define ANOMALY_05000461 (1)
159 159
160/* Anomalies that don't exist on this proc */ 160/* Anomalies that don't exist on this proc */
@@ -165,14 +165,17 @@
165#define ANOMALY_05000158 (0) 165#define ANOMALY_05000158 (0)
166#define ANOMALY_05000171 (0) 166#define ANOMALY_05000171 (0)
167#define ANOMALY_05000179 (0) 167#define ANOMALY_05000179 (0)
168#define ANOMALY_05000182 (0)
168#define ANOMALY_05000183 (0) 169#define ANOMALY_05000183 (0)
169#define ANOMALY_05000198 (0) 170#define ANOMALY_05000198 (0)
171#define ANOMALY_05000202 (0)
170#define ANOMALY_05000215 (0) 172#define ANOMALY_05000215 (0)
171#define ANOMALY_05000220 (0) 173#define ANOMALY_05000220 (0)
172#define ANOMALY_05000227 (0) 174#define ANOMALY_05000227 (0)
173#define ANOMALY_05000230 (0) 175#define ANOMALY_05000230 (0)
174#define ANOMALY_05000231 (0) 176#define ANOMALY_05000231 (0)
175#define ANOMALY_05000233 (0) 177#define ANOMALY_05000233 (0)
178#define ANOMALY_05000234 (0)
176#define ANOMALY_05000242 (0) 179#define ANOMALY_05000242 (0)
177#define ANOMALY_05000248 (0) 180#define ANOMALY_05000248 (0)
178#define ANOMALY_05000266 (0) 181#define ANOMALY_05000266 (0)
@@ -195,5 +198,7 @@
195#define ANOMALY_05000448 (0) 198#define ANOMALY_05000448 (0)
196#define ANOMALY_05000456 (0) 199#define ANOMALY_05000456 (0)
197#define ANOMALY_05000450 (0) 200#define ANOMALY_05000450 (0)
201#define ANOMALY_05000465 (0)
202#define ANOMALY_05000467 (0)
198 203
199#endif 204#endif
diff --git a/arch/blackfin/mach-bf537/include/mach/blackfin.h b/arch/blackfin/mach-bf537/include/mach/blackfin.h
index 7d6069c886f..f5e5015ad83 100644
--- a/arch/blackfin/mach-bf537/include/mach/blackfin.h
+++ b/arch/blackfin/mach-bf537/include/mach/blackfin.h
@@ -35,7 +35,6 @@
35#define BF537_FAMILY 35#define BF537_FAMILY
36 36
37#include "bf537.h" 37#include "bf537.h"
38#include "mem_map.h"
39#include "defBF534.h" 38#include "defBF534.h"
40#include "anomaly.h" 39#include "anomaly.h"
41 40
diff --git a/arch/blackfin/mach-bf537/include/mach/mem_map.h b/arch/blackfin/mach-bf537/include/mach/mem_map.h
index f9010c4b4bf..942f08de306 100644
--- a/arch/blackfin/mach-bf537/include/mach/mem_map.h
+++ b/arch/blackfin/mach-bf537/include/mach/mem_map.h
@@ -1,38 +1,16 @@
1/* 1/*
2 * file: include/asm-blackfin/mach-bf537/mem_map.h 2 * BF537 memory map
3 * based on:
4 * author:
5 * 3 *
6 * created: 4 * Copyright 2004-2009 Analog Devices Inc.
7 * description: 5 * Licensed under the GPL-2 or later.
8 * Memory MAP Common header file for blackfin BF537/6/4 of processors.
9 * rev:
10 *
11 * modified:
12 *
13 * bugs: enter bugs at http://blackfin.uclinux.org/
14 *
15 * this program is free software; you can redistribute it and/or modify
16 * it under the terms of the gnu general public license as published by
17 * the free software foundation; either version 2, or (at your option)
18 * any later version.
19 *
20 * this program is distributed in the hope that it will be useful,
21 * but without any warranty; without even the implied warranty of
22 * merchantability or fitness for a particular purpose. see the
23 * gnu general public license for more details.
24 *
25 * you should have received a copy of the gnu general public license
26 * along with this program; see the file copying.
27 * if not, write to the free software foundation,
28 * 59 temple place - suite 330, boston, ma 02111-1307, usa.
29 */ 6 */
30 7
31#ifndef _MEM_MAP_537_H_ 8#ifndef __BFIN_MACH_MEM_MAP_H__
32#define _MEM_MAP_537_H_ 9#define __BFIN_MACH_MEM_MAP_H__
33 10
34#define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 11#ifndef __BFIN_MEM_MAP_H__
35#define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 12# error "do not include mach/mem_map.h directly -- use asm/mem_map.h"
13#endif
36 14
37/* Async Memory Banks */ 15/* Async Memory Banks */
38#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ 16#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */
@@ -166,20 +144,4 @@
166 144
167#endif 145#endif
168 146
169/* Level 2 Memory - none */ 147#endif
170
171#define L2_START 0
172#define L2_LENGTH 0
173
174/* Scratch Pad Memory */
175
176#define L1_SCRATCH_START 0xFFB00000
177#define L1_SCRATCH_LENGTH 0x1000
178
179#define GET_PDA_SAFE(preg) \
180 preg.l = _cpu_pda; \
181 preg.h = _cpu_pda;
182
183#define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
184
185#endif /* _MEM_MAP_537_H_ */
diff --git a/arch/blackfin/mach-bf538/include/mach/anomaly.h b/arch/blackfin/mach-bf538/include/mach/anomaly.h
index 175ca9ef723..c97acdf85cd 100644
--- a/arch/blackfin/mach-bf538/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf538/include/mach/anomaly.h
@@ -30,13 +30,13 @@
30# define ANOMALY_BF539 0 30# define ANOMALY_BF539 0
31#endif 31#endif
32 32
33/* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 33/* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */
34#define ANOMALY_05000074 (1) 34#define ANOMALY_05000074 (1)
35/* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ 35/* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */
36#define ANOMALY_05000119 (1) 36#define ANOMALY_05000119 (1)
37/* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ 37/* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */
38#define ANOMALY_05000122 (1) 38#define ANOMALY_05000122 (1)
39/* PPI Data Lengths Between 8 and 16 Do Not Zero Out Upper Bits */ 39/* PPI Data Lengths between 8 and 16 Do Not Zero Out Upper Bits */
40#define ANOMALY_05000166 (1) 40#define ANOMALY_05000166 (1)
41/* PPI_COUNT Cannot Be Programmed to 0 in General Purpose TX or RX Modes */ 41/* PPI_COUNT Cannot Be Programmed to 0 in General Purpose TX or RX Modes */
42#define ANOMALY_05000179 (1) 42#define ANOMALY_05000179 (1)
@@ -70,11 +70,11 @@
70#define ANOMALY_05000277 (__SILICON_REVISION__ < 4) 70#define ANOMALY_05000277 (__SILICON_REVISION__ < 4)
71/* Disabling Peripherals with DMA Running May Cause DMA System Instability */ 71/* Disabling Peripherals with DMA Running May Cause DMA System Instability */
72#define ANOMALY_05000278 (__SILICON_REVISION__ < 4) 72#define ANOMALY_05000278 (__SILICON_REVISION__ < 4)
73/* False Hardware Error Exception When ISR Context Is Not Restored */ 73/* False Hardware Error Exception when ISR Context Is Not Restored */
74#define ANOMALY_05000281 (__SILICON_REVISION__ < 4) 74#define ANOMALY_05000281 (__SILICON_REVISION__ < 4)
75/* Memory DMA Corruption with 32-Bit Data and Traffic Control */ 75/* Memory DMA Corruption with 32-Bit Data and Traffic Control */
76#define ANOMALY_05000282 (__SILICON_REVISION__ < 4) 76#define ANOMALY_05000282 (__SILICON_REVISION__ < 4)
77/* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ 77/* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */
78#define ANOMALY_05000283 (__SILICON_REVISION__ < 4) 78#define ANOMALY_05000283 (__SILICON_REVISION__ < 4)
79/* SPORTs May Receive Bad Data If FIFOs Fill Up */ 79/* SPORTs May Receive Bad Data If FIFOs Fill Up */
80#define ANOMALY_05000288 (__SILICON_REVISION__ < 4) 80#define ANOMALY_05000288 (__SILICON_REVISION__ < 4)
@@ -92,11 +92,11 @@
92#define ANOMALY_05000307 (__SILICON_REVISION__ < 4) 92#define ANOMALY_05000307 (__SILICON_REVISION__ < 4)
93/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ 93/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */
94#define ANOMALY_05000310 (1) 94#define ANOMALY_05000310 (1)
95/* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 95/* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */
96#define ANOMALY_05000312 (__SILICON_REVISION__ < 5) 96#define ANOMALY_05000312 (__SILICON_REVISION__ < 5)
97/* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */ 97/* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */
98#define ANOMALY_05000313 (__SILICON_REVISION__ < 4) 98#define ANOMALY_05000313 (__SILICON_REVISION__ < 4)
99/* Killed System MMR Write Completes Erroneously On Next System MMR Access */ 99/* Killed System MMR Write Completes Erroneously on Next System MMR Access */
100#define ANOMALY_05000315 (__SILICON_REVISION__ < 4) 100#define ANOMALY_05000315 (__SILICON_REVISION__ < 4)
101/* PFx Glitch on Write to FIO_FLAG_D or FIO_FLAG_T */ 101/* PFx Glitch on Write to FIO_FLAG_D or FIO_FLAG_T */
102#define ANOMALY_05000318 (ANOMALY_BF539 && __SILICON_REVISION__ < 4) 102#define ANOMALY_05000318 (ANOMALY_BF539 && __SILICON_REVISION__ < 4)
@@ -110,7 +110,7 @@
110#define ANOMALY_05000371 (__SILICON_REVISION__ < 5) 110#define ANOMALY_05000371 (__SILICON_REVISION__ < 5)
111/* Entering Hibernate State with Peripheral Wakeups Enabled Draws Excess Current */ 111/* Entering Hibernate State with Peripheral Wakeups Enabled Draws Excess Current */
112#define ANOMALY_05000374 (__SILICON_REVISION__ == 4) 112#define ANOMALY_05000374 (__SILICON_REVISION__ == 4)
113/* New Feature: Open-Drain GPIO Outputs on PC1 and PC4 (Not Available on Older Silicon) */ 113/* GPIO Pins PC1 and PC4 Can Function as Normal Outputs */
114#define ANOMALY_05000375 (__SILICON_REVISION__ < 4) 114#define ANOMALY_05000375 (__SILICON_REVISION__ < 4)
115/* SSYNC Stalls Processor when Executed from Non-Cacheable Memory */ 115/* SSYNC Stalls Processor when Executed from Non-Cacheable Memory */
116#define ANOMALY_05000402 (__SILICON_REVISION__ < 4) 116#define ANOMALY_05000402 (__SILICON_REVISION__ < 4)
@@ -126,26 +126,32 @@
126#define ANOMALY_05000436 (__SILICON_REVISION__ > 3) 126#define ANOMALY_05000436 (__SILICON_REVISION__ > 3)
127/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 127/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */
128#define ANOMALY_05000443 (1) 128#define ANOMALY_05000443 (1)
129/* False Hardware Error when RETI points to invalid memory */ 129/* False Hardware Error when RETI Points to Invalid Memory */
130#define ANOMALY_05000461 (1) 130#define ANOMALY_05000461 (1)
131 131
132/* Anomalies that don't exist on this proc */ 132/* Anomalies that don't exist on this proc */
133#define ANOMALY_05000099 (0) 133#define ANOMALY_05000099 (0)
134#define ANOMALY_05000120 (0) 134#define ANOMALY_05000120 (0)
135#define ANOMALY_05000125 (0)
135#define ANOMALY_05000149 (0) 136#define ANOMALY_05000149 (0)
136#define ANOMALY_05000158 (0) 137#define ANOMALY_05000158 (0)
137#define ANOMALY_05000171 (0) 138#define ANOMALY_05000171 (0)
139#define ANOMALY_05000182 (0)
138#define ANOMALY_05000198 (0) 140#define ANOMALY_05000198 (0)
141#define ANOMALY_05000202 (0)
139#define ANOMALY_05000215 (0) 142#define ANOMALY_05000215 (0)
140#define ANOMALY_05000220 (0) 143#define ANOMALY_05000220 (0)
141#define ANOMALY_05000227 (0) 144#define ANOMALY_05000227 (0)
142#define ANOMALY_05000230 (0) 145#define ANOMALY_05000230 (0)
143#define ANOMALY_05000231 (0) 146#define ANOMALY_05000231 (0)
147#define ANOMALY_05000234 (0)
144#define ANOMALY_05000242 (0) 148#define ANOMALY_05000242 (0)
145#define ANOMALY_05000248 (0) 149#define ANOMALY_05000248 (0)
146#define ANOMALY_05000250 (0) 150#define ANOMALY_05000250 (0)
147#define ANOMALY_05000254 (0) 151#define ANOMALY_05000254 (0)
152#define ANOMALY_05000257 (0)
148#define ANOMALY_05000263 (0) 153#define ANOMALY_05000263 (0)
154#define ANOMALY_05000266 (0)
149#define ANOMALY_05000274 (0) 155#define ANOMALY_05000274 (0)
150#define ANOMALY_05000287 (0) 156#define ANOMALY_05000287 (0)
151#define ANOMALY_05000305 (0) 157#define ANOMALY_05000305 (0)
@@ -166,5 +172,7 @@
166#define ANOMALY_05000448 (0) 172#define ANOMALY_05000448 (0)
167#define ANOMALY_05000456 (0) 173#define ANOMALY_05000456 (0)
168#define ANOMALY_05000450 (0) 174#define ANOMALY_05000450 (0)
175#define ANOMALY_05000465 (0)
176#define ANOMALY_05000467 (0)
169 177
170#endif 178#endif
diff --git a/arch/blackfin/mach-bf538/include/mach/blackfin.h b/arch/blackfin/mach-bf538/include/mach/blackfin.h
index 6f628353dde..9496196ac16 100644
--- a/arch/blackfin/mach-bf538/include/mach/blackfin.h
+++ b/arch/blackfin/mach-bf538/include/mach/blackfin.h
@@ -35,7 +35,6 @@
35#define BF538_FAMILY 35#define BF538_FAMILY
36 36
37#include "bf538.h" 37#include "bf538.h"
38#include "mem_map.h"
39#include "defBF539.h" 38#include "defBF539.h"
40#include "anomaly.h" 39#include "anomaly.h"
41 40
diff --git a/arch/blackfin/mach-bf538/include/mach/mem_map.h b/arch/blackfin/mach-bf538/include/mach/mem_map.h
index 76811966690..aff00f453e9 100644
--- a/arch/blackfin/mach-bf538/include/mach/mem_map.h
+++ b/arch/blackfin/mach-bf538/include/mach/mem_map.h
@@ -1,38 +1,16 @@
1/* 1/*
2 * File: include/asm-blackfin/mach-bf538/mem_map.h 2 * BF538 memory map
3 * Based on:
4 * Author:
5 * 3 *
6 * Created: 4 * Copyright 2004-2009 Analog Devices Inc.
7 * Description: 5 * Licensed under the GPL-2 or later.
8 *
9 * Rev:
10 *
11 * Modified:
12 *
13 * Bugs: Enter bugs at http://blackfin.uclinux.org/
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation; either version 2, or (at your option)
18 * any later version.
19 *
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with this program; see the file COPYING.
27 * If not, write to the Free Software Foundation,
28 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 */ 6 */
30 7
31#ifndef _MEM_MAP_538_H_ 8#ifndef __BFIN_MACH_MEM_MAP_H__
32#define _MEM_MAP_538_H_ 9#define __BFIN_MACH_MEM_MAP_H__
33 10
34#define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 11#ifndef __BFIN_MEM_MAP_H__
35#define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 12# error "do not include mach/mem_map.h directly -- use asm/mem_map.h"
13#endif
36 14
37/* Async Memory Banks */ 15/* Async Memory Banks */
38#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ 16#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */
@@ -93,21 +71,4 @@
93#define BFIN_DSUPBANKS 0 71#define BFIN_DSUPBANKS 0
94#endif /*CONFIG_BFIN_DCACHE*/ 72#endif /*CONFIG_BFIN_DCACHE*/
95 73
96 74#endif
97/* Level 2 Memory - none */
98
99#define L2_START 0
100#define L2_LENGTH 0
101
102/* Scratch Pad Memory */
103
104#define L1_SCRATCH_START 0xFFB00000
105#define L1_SCRATCH_LENGTH 0x1000
106
107#define GET_PDA_SAFE(preg) \
108 preg.l = _cpu_pda; \
109 preg.h = _cpu_pda;
110
111#define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
112
113#endif /* _MEM_MAP_538_H_ */
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index 805a57b5e65..81f5b95cc36 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -76,7 +76,6 @@ static struct resource bfin_isp1760_resources[] = {
76 76
77static struct isp1760_platform_data isp1760_priv = { 77static struct isp1760_platform_data isp1760_priv = {
78 .is_isp1761 = 0, 78 .is_isp1761 = 0,
79 .port1_disable = 0,
80 .bus_width_16 = 1, 79 .bus_width_16 = 1,
81 .port1_otg = 0, 80 .port1_otg = 0,
82 .analog_oc = 0, 81 .analog_oc = 0,
diff --git a/arch/blackfin/mach-bf548/include/mach/anomaly.h b/arch/blackfin/mach-bf548/include/mach/anomaly.h
index c510ae688e2..18a4cd24f67 100644
--- a/arch/blackfin/mach-bf548/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf548/include/mach/anomaly.h
@@ -18,7 +18,7 @@
18# error will not work on BF548 silicon version 0.0, or 0.1 18# error will not work on BF548 silicon version 0.0, or 0.1
19#endif 19#endif
20 20
21/* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 21/* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */
22#define ANOMALY_05000074 (1) 22#define ANOMALY_05000074 (1)
23/* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ 23/* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */
24#define ANOMALY_05000119 (1) 24#define ANOMALY_05000119 (1)
@@ -30,17 +30,17 @@
30#define ANOMALY_05000265 (1) 30#define ANOMALY_05000265 (1)
31/* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */ 31/* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */
32#define ANOMALY_05000272 (1) 32#define ANOMALY_05000272 (1)
33/* False Hardware Error Exception When ISR Context Is Not Restored */ 33/* False Hardware Error Exception when ISR Context Is Not Restored */
34#define ANOMALY_05000281 (__SILICON_REVISION__ < 1) 34#define ANOMALY_05000281 (__SILICON_REVISION__ < 1)
35/* SSYNCs After Writes To CAN/DMA MMR Registers Are Not Always Handled Correctly */ 35/* SSYNCs After Writes To CAN/DMA MMR Registers Are Not Always Handled Correctly */
36#define ANOMALY_05000304 (__SILICON_REVISION__ < 1) 36#define ANOMALY_05000304 (__SILICON_REVISION__ < 1)
37/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ 37/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */
38#define ANOMALY_05000310 (1) 38#define ANOMALY_05000310 (1)
39/* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 39/* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */
40#define ANOMALY_05000312 (__SILICON_REVISION__ < 1) 40#define ANOMALY_05000312 (__SILICON_REVISION__ < 1)
41/* TWI Slave Boot Mode Is Not Functional */ 41/* TWI Slave Boot Mode Is Not Functional */
42#define ANOMALY_05000324 (__SILICON_REVISION__ < 1) 42#define ANOMALY_05000324 (__SILICON_REVISION__ < 1)
43/* External FIFO Boot Mode Is Not Functional */ 43/* FIFO Boot Mode Not Functional */
44#define ANOMALY_05000325 (__SILICON_REVISION__ < 2) 44#define ANOMALY_05000325 (__SILICON_REVISION__ < 2)
45/* Data Lost When Core and DMA Accesses Are Made to the USB FIFO Simultaneously */ 45/* Data Lost When Core and DMA Accesses Are Made to the USB FIFO Simultaneously */
46#define ANOMALY_05000327 (__SILICON_REVISION__ < 1) 46#define ANOMALY_05000327 (__SILICON_REVISION__ < 1)
@@ -178,8 +178,12 @@
178#define ANOMALY_05000450 (1) 178#define ANOMALY_05000450 (1)
179/* USB Receive Interrupt Is Not Generated in DMA Mode 1 */ 179/* USB Receive Interrupt Is Not Generated in DMA Mode 1 */
180#define ANOMALY_05000456 (__SILICON_REVISION__ < 3) 180#define ANOMALY_05000456 (__SILICON_REVISION__ < 3)
181/* False Hardware Error when RETI points to invalid memory */ 181/* False Hardware Error when RETI Points to Invalid Memory */
182#define ANOMALY_05000461 (1) 182#define ANOMALY_05000461 (1)
183/* USB Rx DMA hang */
184#define ANOMALY_05000465 (1)
185/* Possible RX data corruption when control & data EP FIFOs are accessed via the core */
186#define ANOMALY_05000467 (1)
183 187
184/* Anomalies that don't exist on this proc */ 188/* Anomalies that don't exist on this proc */
185#define ANOMALY_05000099 (0) 189#define ANOMALY_05000099 (0)
@@ -189,30 +193,36 @@
189#define ANOMALY_05000158 (0) 193#define ANOMALY_05000158 (0)
190#define ANOMALY_05000171 (0) 194#define ANOMALY_05000171 (0)
191#define ANOMALY_05000179 (0) 195#define ANOMALY_05000179 (0)
196#define ANOMALY_05000182 (0)
192#define ANOMALY_05000183 (0) 197#define ANOMALY_05000183 (0)
193#define ANOMALY_05000198 (0) 198#define ANOMALY_05000198 (0)
199#define ANOMALY_05000202 (0)
194#define ANOMALY_05000215 (0) 200#define ANOMALY_05000215 (0)
195#define ANOMALY_05000220 (0) 201#define ANOMALY_05000220 (0)
196#define ANOMALY_05000227 (0) 202#define ANOMALY_05000227 (0)
197#define ANOMALY_05000230 (0) 203#define ANOMALY_05000230 (0)
198#define ANOMALY_05000231 (0) 204#define ANOMALY_05000231 (0)
199#define ANOMALY_05000233 (0) 205#define ANOMALY_05000233 (0)
206#define ANOMALY_05000234 (0)
200#define ANOMALY_05000242 (0) 207#define ANOMALY_05000242 (0)
201#define ANOMALY_05000244 (0) 208#define ANOMALY_05000244 (0)
202#define ANOMALY_05000248 (0) 209#define ANOMALY_05000248 (0)
203#define ANOMALY_05000250 (0) 210#define ANOMALY_05000250 (0)
204#define ANOMALY_05000254 (0) 211#define ANOMALY_05000254 (0)
212#define ANOMALY_05000257 (0)
205#define ANOMALY_05000261 (0) 213#define ANOMALY_05000261 (0)
206#define ANOMALY_05000263 (0) 214#define ANOMALY_05000263 (0)
207#define ANOMALY_05000266 (0) 215#define ANOMALY_05000266 (0)
208#define ANOMALY_05000273 (0) 216#define ANOMALY_05000273 (0)
209#define ANOMALY_05000274 (0) 217#define ANOMALY_05000274 (0)
210#define ANOMALY_05000278 (0) 218#define ANOMALY_05000278 (0)
219#define ANOMALY_05000283 (0)
211#define ANOMALY_05000287 (0) 220#define ANOMALY_05000287 (0)
212#define ANOMALY_05000301 (0) 221#define ANOMALY_05000301 (0)
213#define ANOMALY_05000305 (0) 222#define ANOMALY_05000305 (0)
214#define ANOMALY_05000307 (0) 223#define ANOMALY_05000307 (0)
215#define ANOMALY_05000311 (0) 224#define ANOMALY_05000311 (0)
225#define ANOMALY_05000315 (0)
216#define ANOMALY_05000323 (0) 226#define ANOMALY_05000323 (0)
217#define ANOMALY_05000362 (1) 227#define ANOMALY_05000362 (1)
218#define ANOMALY_05000363 (0) 228#define ANOMALY_05000363 (0)
diff --git a/arch/blackfin/mach-bf548/include/mach/blackfin.h b/arch/blackfin/mach-bf548/include/mach/blackfin.h
index cf6c1500222..6b97396d817 100644
--- a/arch/blackfin/mach-bf548/include/mach/blackfin.h
+++ b/arch/blackfin/mach-bf548/include/mach/blackfin.h
@@ -33,7 +33,6 @@
33#define _MACH_BLACKFIN_H_ 33#define _MACH_BLACKFIN_H_
34 34
35#include "bf548.h" 35#include "bf548.h"
36#include "mem_map.h"
37#include "anomaly.h" 36#include "anomaly.h"
38 37
39#ifdef CONFIG_BF542 38#ifdef CONFIG_BF542
diff --git a/arch/blackfin/mach-bf548/include/mach/mem_map.h b/arch/blackfin/mach-bf548/include/mach/mem_map.h
index 70b9c119402..caac2dfb41e 100644
--- a/arch/blackfin/mach-bf548/include/mach/mem_map.h
+++ b/arch/blackfin/mach-bf548/include/mach/mem_map.h
@@ -1,38 +1,16 @@
1/* 1/*
2 * file: include/asm-blackfin/mach-bf548/mem_map.h 2 * BF548 memory map
3 * based on:
4 * author:
5 * 3 *
6 * created: 4 * Copyright 2004-2009 Analog Devices Inc.
7 * description: 5 * Licensed under the GPL-2 or later.
8 * Memory MAP Common header file for blackfin BF537/6/4 of processors.
9 * rev:
10 *
11 * modified:
12 *
13 * bugs: enter bugs at http://blackfin.uclinux.org/
14 *
15 * this program is free software; you can redistribute it and/or modify
16 * it under the terms of the gnu general public license as published by
17 * the free software foundation; either version 2, or (at your option)
18 * any later version.
19 *
20 * this program is distributed in the hope that it will be useful,
21 * but without any warranty; without even the implied warranty of
22 * merchantability or fitness for a particular purpose. see the
23 * gnu general public license for more details.
24 *
25 * you should have received a copy of the gnu general public license
26 * along with this program; see the file copying.
27 * if not, write to the free software foundation,
28 * 59 temple place - suite 330, boston, ma 02111-1307, usa.
29 */ 6 */
30 7
31#ifndef _MEM_MAP_548_H_ 8#ifndef __BFIN_MACH_MEM_MAP_H__
32#define _MEM_MAP_548_H_ 9#define __BFIN_MACH_MEM_MAP_H__
33 10
34#define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 11#ifndef __BFIN_MEM_MAP_H__
35#define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 12# error "do not include mach/mem_map.h directly -- use asm/mem_map.h"
13#endif
36 14
37/* Async Memory Banks */ 15/* Async Memory Banks */
38#define ASYNC_BANK3_BASE 0x2C000000 /* Async Bank 3 */ 16#define ASYNC_BANK3_BASE 0x2C000000 /* Async Bank 3 */
@@ -103,15 +81,4 @@
103# define L2_LENGTH 0x20000 81# define L2_LENGTH 0x20000
104#endif 82#endif
105 83
106/* Scratch Pad Memory */ 84#endif
107
108#define L1_SCRATCH_START 0xFFB00000
109#define L1_SCRATCH_LENGTH 0x1000
110
111#define GET_PDA_SAFE(preg) \
112 preg.l = _cpu_pda; \
113 preg.h = _cpu_pda;
114
115#define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
116
117#endif/* _MEM_MAP_548_H_ */
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c
index b5ef7ff7b7b..4df904f9e90 100644
--- a/arch/blackfin/mach-bf561/boards/ezkit.c
+++ b/arch/blackfin/mach-bf561/boards/ezkit.c
@@ -62,7 +62,6 @@ static struct resource bfin_isp1760_resources[] = {
62 62
63static struct isp1760_platform_data isp1760_priv = { 63static struct isp1760_platform_data isp1760_priv = {
64 .is_isp1761 = 0, 64 .is_isp1761 = 0,
65 .port1_disable = 0,
66 .bus_width_16 = 1, 65 .bus_width_16 = 1,
67 .port1_otg = 0, 66 .port1_otg = 0,
68 .analog_oc = 0, 67 .analog_oc = 0,
diff --git a/arch/blackfin/mach-bf561/include/mach/anomaly.h b/arch/blackfin/mach-bf561/include/mach/anomaly.h
index dccd396cd93..94b8e277f09 100644
--- a/arch/blackfin/mach-bf561/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf561/include/mach/anomaly.h
@@ -18,19 +18,19 @@
18# error will not work on BF561 silicon version 0.0, 0.1, 0.2, or 0.4 18# error will not work on BF561 silicon version 0.0, 0.1, 0.2, or 0.4
19#endif 19#endif
20 20
21/* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 21/* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */
22#define ANOMALY_05000074 (1) 22#define ANOMALY_05000074 (1)
23/* UART Line Status Register (UART_LSR) Bits Are Not Updated at the Same Time */ 23/* UART Line Status Register (UART_LSR) Bits Are Not Updated at the Same Time */
24#define ANOMALY_05000099 (__SILICON_REVISION__ < 5) 24#define ANOMALY_05000099 (__SILICON_REVISION__ < 5)
25/* Trace Buffers may record discontinuities into emulation mode and/or exception, NMI, reset handlers */ 25/* Trace Buffers May Contain Errors in Emulation Mode and/or Exception, NMI, Reset Handlers */
26#define ANOMALY_05000116 (__SILICON_REVISION__ < 3) 26#define ANOMALY_05000116 (__SILICON_REVISION__ < 3)
27/* Testset instructions restricted to 32-bit aligned memory locations */ 27/* TESTSET Instructions Restricted to 32-Bit Aligned Memory Locations */
28#define ANOMALY_05000120 (1) 28#define ANOMALY_05000120 (1)
29/* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ 29/* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */
30#define ANOMALY_05000122 (1) 30#define ANOMALY_05000122 (1)
31/* Erroneous exception when enabling cache */ 31/* Erroneous Exception when Enabling Cache */
32#define ANOMALY_05000125 (__SILICON_REVISION__ < 3) 32#define ANOMALY_05000125 (__SILICON_REVISION__ < 3)
33/* Signbits instruction not functional under certain conditions */ 33/* SIGNBITS Instruction Not Functional under Certain Conditions */
34#define ANOMALY_05000127 (1) 34#define ANOMALY_05000127 (1)
35/* Two bits in the Watchpoint Status Register (WPSTAT) are swapped */ 35/* Two bits in the Watchpoint Status Register (WPSTAT) are swapped */
36#define ANOMALY_05000134 (__SILICON_REVISION__ < 3) 36#define ANOMALY_05000134 (__SILICON_REVISION__ < 3)
@@ -40,7 +40,7 @@
40#define ANOMALY_05000136 (__SILICON_REVISION__ < 3) 40#define ANOMALY_05000136 (__SILICON_REVISION__ < 3)
41/* Allowing the SPORT RX FIFO to fill will cause an overflow */ 41/* Allowing the SPORT RX FIFO to fill will cause an overflow */
42#define ANOMALY_05000140 (__SILICON_REVISION__ < 3) 42#define ANOMALY_05000140 (__SILICON_REVISION__ < 3)
43/* An Infinite Stall occurs with a particular sequence of consecutive dual dag events */ 43/* Infinite Stall may occur with a particular sequence of consecutive dual dag events */
44#define ANOMALY_05000141 (__SILICON_REVISION__ < 3) 44#define ANOMALY_05000141 (__SILICON_REVISION__ < 3)
45/* Interrupts may be lost when a programmable input flag is configured to be edge sensitive */ 45/* Interrupts may be lost when a programmable input flag is configured to be edge sensitive */
46#define ANOMALY_05000142 (__SILICON_REVISION__ < 3) 46#define ANOMALY_05000142 (__SILICON_REVISION__ < 3)
@@ -52,7 +52,7 @@
52#define ANOMALY_05000146 (__SILICON_REVISION__ < 3) 52#define ANOMALY_05000146 (__SILICON_REVISION__ < 3)
53/* Source MDMA descriptor may stop with a DMA Error near beginning of descriptor fetch */ 53/* Source MDMA descriptor may stop with a DMA Error near beginning of descriptor fetch */
54#define ANOMALY_05000147 (__SILICON_REVISION__ < 3) 54#define ANOMALY_05000147 (__SILICON_REVISION__ < 3)
55/* IMDMA S1/D1 channel may stall */ 55/* IMDMA S1/D1 Channel May Stall */
56#define ANOMALY_05000149 (1) 56#define ANOMALY_05000149 (1)
57/* DMA engine may lose data due to incorrect handshaking */ 57/* DMA engine may lose data due to incorrect handshaking */
58#define ANOMALY_05000150 (__SILICON_REVISION__ < 3) 58#define ANOMALY_05000150 (__SILICON_REVISION__ < 3)
@@ -66,7 +66,7 @@
66#define ANOMALY_05000154 (__SILICON_REVISION__ < 3) 66#define ANOMALY_05000154 (__SILICON_REVISION__ < 3)
67/* Timers in PWM-Out Mode with PPI GP Receive (Input) Mode with 0 Frame Syncs */ 67/* Timers in PWM-Out Mode with PPI GP Receive (Input) Mode with 0 Frame Syncs */
68#define ANOMALY_05000156 (__SILICON_REVISION__ < 4) 68#define ANOMALY_05000156 (__SILICON_REVISION__ < 4)
69/* Killed 32-bit MMR write leads to next system MMR access thinking it should be 32-bit */ 69/* Killed 32-Bit MMR Write Leads to Next System MMR Access Thinking It Should Be 32-Bit */
70#define ANOMALY_05000157 (__SILICON_REVISION__ < 3) 70#define ANOMALY_05000157 (__SILICON_REVISION__ < 3)
71/* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, or 1:1 */ 71/* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, or 1:1 */
72#define ANOMALY_05000159 (__SILICON_REVISION__ < 3) 72#define ANOMALY_05000159 (__SILICON_REVISION__ < 3)
@@ -76,17 +76,17 @@
76#define ANOMALY_05000161 (__SILICON_REVISION__ < 3) 76#define ANOMALY_05000161 (__SILICON_REVISION__ < 3)
77/* DMEM_CONTROL<12> is not set on Reset */ 77/* DMEM_CONTROL<12> is not set on Reset */
78#define ANOMALY_05000162 (__SILICON_REVISION__ < 3) 78#define ANOMALY_05000162 (__SILICON_REVISION__ < 3)
79/* SPORT transmit data is not gated by external frame sync in certain conditions */ 79/* SPORT Transmit Data Is Not Gated by External Frame Sync in Certain Conditions */
80#define ANOMALY_05000163 (__SILICON_REVISION__ < 3) 80#define ANOMALY_05000163 (__SILICON_REVISION__ < 3)
81/* PPI Data Lengths Between 8 and 16 Do Not Zero Out Upper Bits */ 81/* PPI Data Lengths between 8 and 16 Do Not Zero Out Upper Bits */
82#define ANOMALY_05000166 (1) 82#define ANOMALY_05000166 (1)
83/* Turning SPORTs on while External Frame Sync Is Active May Corrupt Data */ 83/* Turning SPORTs on while External Frame Sync Is Active May Corrupt Data */
84#define ANOMALY_05000167 (1) 84#define ANOMALY_05000167 (1)
85/* SDRAM auto-refresh and subsequent Power Ups */ 85/* Undefined Behavior when Power-Up Sequence Is Issued to SDRAM during Auto-Refresh */
86#define ANOMALY_05000168 (__SILICON_REVISION__ < 5) 86#define ANOMALY_05000168 (__SILICON_REVISION__ < 5)
87/* DATA CPLB page miss can result in lost write-through cache data writes */ 87/* DATA CPLB Page Miss Can Result in Lost Write-Through Data Cache Writes */
88#define ANOMALY_05000169 (__SILICON_REVISION__ < 5) 88#define ANOMALY_05000169 (__SILICON_REVISION__ < 5)
89/* Boot-ROM code modifies SICA_IWRx wakeup registers */ 89/* Boot-ROM Modifies SICA_IWRx Wakeup Registers */
90#define ANOMALY_05000171 (__SILICON_REVISION__ < 5) 90#define ANOMALY_05000171 (__SILICON_REVISION__ < 5)
91/* DSPID register values incorrect */ 91/* DSPID register values incorrect */
92#define ANOMALY_05000172 (__SILICON_REVISION__ < 3) 92#define ANOMALY_05000172 (__SILICON_REVISION__ < 3)
@@ -96,29 +96,29 @@
96#define ANOMALY_05000174 (__SILICON_REVISION__ < 5) 96#define ANOMALY_05000174 (__SILICON_REVISION__ < 5)
97/* Overlapping Sequencer and Memory Stalls */ 97/* Overlapping Sequencer and Memory Stalls */
98#define ANOMALY_05000175 (__SILICON_REVISION__ < 5) 98#define ANOMALY_05000175 (__SILICON_REVISION__ < 5)
99/* Multiplication of (-1) by (-1) followed by an accumulator saturation */ 99/* Overflow Bit Asserted when Multiplication of -1 by -1 Followed by Accumulator Saturation */
100#define ANOMALY_05000176 (__SILICON_REVISION__ < 5) 100#define ANOMALY_05000176 (__SILICON_REVISION__ < 5)
101/* PPI_COUNT Cannot Be Programmed to 0 in General Purpose TX or RX Modes */ 101/* PPI_COUNT Cannot Be Programmed to 0 in General Purpose TX or RX Modes */
102#define ANOMALY_05000179 (__SILICON_REVISION__ < 5) 102#define ANOMALY_05000179 (__SILICON_REVISION__ < 5)
103/* PPI_DELAY Not Functional in PPI Modes with 0 Frame Syncs */ 103/* PPI_DELAY Not Functional in PPI Modes with 0 Frame Syncs */
104#define ANOMALY_05000180 (1) 104#define ANOMALY_05000180 (1)
105/* Disabling the PPI resets the PPI configuration registers */ 105/* Disabling the PPI Resets the PPI Configuration Registers */
106#define ANOMALY_05000181 (__SILICON_REVISION__ < 5) 106#define ANOMALY_05000181 (__SILICON_REVISION__ < 5)
107/* IMDMA does not operate to full speed for 600MHz and higher devices */ 107/* Internal Memory DMA Does Not Operate at Full Speed */
108#define ANOMALY_05000182 (1) 108#define ANOMALY_05000182 (1)
109/* Timer Pin limitations for PPI TX Modes with External Frame Syncs */ 109/* Timer Pin Limitations for PPI TX Modes with External Frame Syncs */
110#define ANOMALY_05000184 (__SILICON_REVISION__ < 5) 110#define ANOMALY_05000184 (__SILICON_REVISION__ < 5)
111/* PPI TX Mode with 2 External Frame Syncs */ 111/* Early PPI Transmit when FS1 Asserts before FS2 in TX Mode with 2 External Frame Syncs */
112#define ANOMALY_05000185 (__SILICON_REVISION__ < 5) 112#define ANOMALY_05000185 (__SILICON_REVISION__ < 5)
113/* PPI packing with Data Length greater than 8 bits (not a meaningful mode) */ 113/* Upper PPI Pins Driven when PPI Packing Enabled and Data Length >8 Bits */
114#define ANOMALY_05000186 (__SILICON_REVISION__ < 5) 114#define ANOMALY_05000186 (__SILICON_REVISION__ < 5)
115/* IMDMA Corrupted Data after a Halt */ 115/* IMDMA Corrupted Data after a Halt */
116#define ANOMALY_05000187 (1) 116#define ANOMALY_05000187 (1)
117/* IMDMA Restrictions on Descriptor and Buffer Placement in Memory */ 117/* IMDMA Restrictions on Descriptor and Buffer Placement in Memory */
118#define ANOMALY_05000188 (__SILICON_REVISION__ < 5) 118#define ANOMALY_05000188 (__SILICON_REVISION__ < 5)
119/* False Protection Exceptions */ 119/* False Protection Exceptions when Speculative Fetch Is Cancelled */
120#define ANOMALY_05000189 (__SILICON_REVISION__ < 5) 120#define ANOMALY_05000189 (__SILICON_REVISION__ < 5)
121/* PPI not functional at core voltage < 1Volt */ 121/* PPI Not Functional at Core Voltage < 1Volt */
122#define ANOMALY_05000190 (1) 122#define ANOMALY_05000190 (1)
123/* PPI does not invert the Driving PPICLK edge in Transmit Modes */ 123/* PPI does not invert the Driving PPICLK edge in Transmit Modes */
124#define ANOMALY_05000191 (__SILICON_REVISION__ < 3) 124#define ANOMALY_05000191 (__SILICON_REVISION__ < 3)
@@ -126,7 +126,7 @@
126#define ANOMALY_05000193 (__SILICON_REVISION__ < 5) 126#define ANOMALY_05000193 (__SILICON_REVISION__ < 5)
127/* Restarting SPORT in Specific Modes May Cause Data Corruption */ 127/* Restarting SPORT in Specific Modes May Cause Data Corruption */
128#define ANOMALY_05000194 (__SILICON_REVISION__ < 5) 128#define ANOMALY_05000194 (__SILICON_REVISION__ < 5)
129/* Failing MMR Accesses When Stalled by Preceding Memory Read */ 129/* Failing MMR Accesses when Preceding Memory Read Stalls */
130#define ANOMALY_05000198 (__SILICON_REVISION__ < 5) 130#define ANOMALY_05000198 (__SILICON_REVISION__ < 5)
131/* Current DMA Address Shows Wrong Value During Carry Fix */ 131/* Current DMA Address Shows Wrong Value During Carry Fix */
132#define ANOMALY_05000199 (__SILICON_REVISION__ < 5) 132#define ANOMALY_05000199 (__SILICON_REVISION__ < 5)
@@ -134,9 +134,9 @@
134#define ANOMALY_05000200 (__SILICON_REVISION__ < 5) 134#define ANOMALY_05000200 (__SILICON_REVISION__ < 5)
135/* Possible Infinite Stall with Specific Dual-DAG Situation */ 135/* Possible Infinite Stall with Specific Dual-DAG Situation */
136#define ANOMALY_05000202 (__SILICON_REVISION__ < 5) 136#define ANOMALY_05000202 (__SILICON_REVISION__ < 5)
137/* Incorrect data read with write-through cache and allocate cache lines on reads only mode */ 137/* Incorrect Data Read with Writethrough "Allocate Cache Lines on Reads Only" Cache Mode */
138#define ANOMALY_05000204 (__SILICON_REVISION__ < 5) 138#define ANOMALY_05000204 (__SILICON_REVISION__ < 5)
139/* Specific sequence that can cause DMA error or DMA stopping */ 139/* Specific Sequence that Can Cause DMA Error or DMA Stopping */
140#define ANOMALY_05000205 (__SILICON_REVISION__ < 5) 140#define ANOMALY_05000205 (__SILICON_REVISION__ < 5)
141/* Recovery from "Brown-Out" Condition */ 141/* Recovery from "Brown-Out" Condition */
142#define ANOMALY_05000207 (__SILICON_REVISION__ < 5) 142#define ANOMALY_05000207 (__SILICON_REVISION__ < 5)
@@ -158,7 +158,7 @@
158#define ANOMALY_05000230 (__SILICON_REVISION__ < 5) 158#define ANOMALY_05000230 (__SILICON_REVISION__ < 5)
159/* UART STB Bit Incorrectly Affects Receiver Setting */ 159/* UART STB Bit Incorrectly Affects Receiver Setting */
160#define ANOMALY_05000231 (__SILICON_REVISION__ < 5) 160#define ANOMALY_05000231 (__SILICON_REVISION__ < 5)
161/* SPORT data transmit lines are incorrectly driven in multichannel mode */ 161/* SPORT Data Transmit Lines Are Incorrectly Driven in Multichannel Mode */
162#define ANOMALY_05000232 (__SILICON_REVISION__ < 5) 162#define ANOMALY_05000232 (__SILICON_REVISION__ < 5)
163/* DF Bit in PLL_CTL Register Does Not Respond to Hardware Reset */ 163/* DF Bit in PLL_CTL Register Does Not Respond to Hardware Reset */
164#define ANOMALY_05000242 (__SILICON_REVISION__ < 5) 164#define ANOMALY_05000242 (__SILICON_REVISION__ < 5)
@@ -166,7 +166,7 @@
166#define ANOMALY_05000244 (__SILICON_REVISION__ < 5) 166#define ANOMALY_05000244 (__SILICON_REVISION__ < 5)
167/* False Hardware Error from an Access in the Shadow of a Conditional Branch */ 167/* False Hardware Error from an Access in the Shadow of a Conditional Branch */
168#define ANOMALY_05000245 (__SILICON_REVISION__ < 5) 168#define ANOMALY_05000245 (__SILICON_REVISION__ < 5)
169/* TESTSET operation forces stall on the other core */ 169/* TESTSET Operation Forces Stall on the Other Core */
170#define ANOMALY_05000248 (__SILICON_REVISION__ < 5) 170#define ANOMALY_05000248 (__SILICON_REVISION__ < 5)
171/* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */ 171/* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */
172#define ANOMALY_05000250 (__SILICON_REVISION__ > 2 && __SILICON_REVISION__ < 5) 172#define ANOMALY_05000250 (__SILICON_REVISION__ > 2 && __SILICON_REVISION__ < 5)
@@ -192,9 +192,9 @@
192#define ANOMALY_05000264 (__SILICON_REVISION__ < 5) 192#define ANOMALY_05000264 (__SILICON_REVISION__ < 5)
193/* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ 193/* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */
194#define ANOMALY_05000265 (__SILICON_REVISION__ < 5) 194#define ANOMALY_05000265 (__SILICON_REVISION__ < 5)
195/* IMDMA destination IRQ status must be read prior to using IMDMA */ 195/* IMDMA Destination IRQ Status Must Be Read Prior to Using IMDMA */
196#define ANOMALY_05000266 (__SILICON_REVISION__ > 3) 196#define ANOMALY_05000266 (__SILICON_REVISION__ > 3)
197/* IMDMA may corrupt data under certain conditions */ 197/* IMDMA May Corrupt Data under Certain Conditions */
198#define ANOMALY_05000267 (1) 198#define ANOMALY_05000267 (1)
199/* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Increase */ 199/* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Increase */
200#define ANOMALY_05000269 (1) 200#define ANOMALY_05000269 (1)
@@ -202,7 +202,7 @@
202#define ANOMALY_05000270 (1) 202#define ANOMALY_05000270 (1)
203/* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */ 203/* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */
204#define ANOMALY_05000272 (1) 204#define ANOMALY_05000272 (1)
205/* Data cache write back to external synchronous memory may be lost */ 205/* Data Cache Write Back to External Synchronous Memory May Be Lost */
206#define ANOMALY_05000274 (1) 206#define ANOMALY_05000274 (1)
207/* PPI Timing and Sampling Information Updates */ 207/* PPI Timing and Sampling Information Updates */
208#define ANOMALY_05000275 (__SILICON_REVISION__ > 2) 208#define ANOMALY_05000275 (__SILICON_REVISION__ > 2)
@@ -212,17 +212,17 @@
212#define ANOMALY_05000277 (__SILICON_REVISION__ < 3) 212#define ANOMALY_05000277 (__SILICON_REVISION__ < 3)
213/* Disabling Peripherals with DMA Running May Cause DMA System Instability */ 213/* Disabling Peripherals with DMA Running May Cause DMA System Instability */
214#define ANOMALY_05000278 (__SILICON_REVISION__ < 5) 214#define ANOMALY_05000278 (__SILICON_REVISION__ < 5)
215/* False Hardware Error Exception When ISR Context Is Not Restored */ 215/* False Hardware Error Exception when ISR Context Is Not Restored */
216#define ANOMALY_05000281 (__SILICON_REVISION__ < 5) 216#define ANOMALY_05000281 (__SILICON_REVISION__ < 5)
217/* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ 217/* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */
218#define ANOMALY_05000283 (1) 218#define ANOMALY_05000283 (1)
219/* A read will receive incorrect data under certain conditions */ 219/* Reads Will Receive Incorrect Data under Certain Conditions */
220#define ANOMALY_05000287 (__SILICON_REVISION__ < 5) 220#define ANOMALY_05000287 (__SILICON_REVISION__ < 5)
221/* SPORTs May Receive Bad Data If FIFOs Fill Up */ 221/* SPORTs May Receive Bad Data If FIFOs Fill Up */
222#define ANOMALY_05000288 (__SILICON_REVISION__ < 5) 222#define ANOMALY_05000288 (__SILICON_REVISION__ < 5)
223/* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */ 223/* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */
224#define ANOMALY_05000301 (1) 224#define ANOMALY_05000301 (1)
225/* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ 225/* SSYNCs after Writes to DMA MMR Registers May Not Be Handled Correctly */
226#define ANOMALY_05000302 (1) 226#define ANOMALY_05000302 (1)
227/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */ 227/* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */
228#define ANOMALY_05000305 (__SILICON_REVISION__ < 5) 228#define ANOMALY_05000305 (__SILICON_REVISION__ < 5)
@@ -230,25 +230,25 @@
230#define ANOMALY_05000307 (__SILICON_REVISION__ < 5) 230#define ANOMALY_05000307 (__SILICON_REVISION__ < 5)
231/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ 231/* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */
232#define ANOMALY_05000310 (1) 232#define ANOMALY_05000310 (1)
233/* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 233/* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */
234#define ANOMALY_05000312 (1) 234#define ANOMALY_05000312 (1)
235/* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */ 235/* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */
236#define ANOMALY_05000313 (1) 236#define ANOMALY_05000313 (1)
237/* Killed System MMR Write Completes Erroneously On Next System MMR Access */ 237/* Killed System MMR Write Completes Erroneously on Next System MMR Access */
238#define ANOMALY_05000315 (1) 238#define ANOMALY_05000315 (1)
239/* PF2 Output Remains Asserted After SPI Master Boot */ 239/* PF2 Output Remains Asserted after SPI Master Boot */
240#define ANOMALY_05000320 (__SILICON_REVISION__ > 3) 240#define ANOMALY_05000320 (__SILICON_REVISION__ > 3)
241/* Erroneous GPIO Flag Pin Operations Under Specific Sequences */ 241/* Erroneous GPIO Flag Pin Operations under Specific Sequences */
242#define ANOMALY_05000323 (1) 242#define ANOMALY_05000323 (1)
243/* SPORT Secondary Receive Channel Not Functional When Word Length Exceeds 16 Bits */ 243/* SPORT Secondary Receive Channel Not Functional when Word Length >16 Bits */
244#define ANOMALY_05000326 (__SILICON_REVISION__ > 3) 244#define ANOMALY_05000326 (__SILICON_REVISION__ > 3)
245/* New Feature: 24-Bit SPI Boot Mode Support (Not Available On Older Silicon) */ 245/* 24-Bit SPI Boot Mode Is Not Functional */
246#define ANOMALY_05000331 (__SILICON_REVISION__ < 5) 246#define ANOMALY_05000331 (__SILICON_REVISION__ < 5)
247/* New Feature: Slave SPI Boot Mode Supported (Not Available On Older Silicon) */ 247/* Slave SPI Boot Mode Is Not Functional */
248#define ANOMALY_05000332 (__SILICON_REVISION__ < 5) 248#define ANOMALY_05000332 (__SILICON_REVISION__ < 5)
249/* Flag Data Register Writes One SCLK Cycle After Edge Is Detected May Clear Interrupt Status */ 249/* Flag Data Register Writes One SCLK Cycle after Edge Is Detected May Clear Interrupt Status */
250#define ANOMALY_05000333 (__SILICON_REVISION__ < 5) 250#define ANOMALY_05000333 (__SILICON_REVISION__ < 5)
251/* New Feature: Additional PPI Frame Sync Sampling Options (Not Available on Older Silicon) */ 251/* ALT_TIMING Bit in PLL_CTL Register Is Not Functional */
252#define ANOMALY_05000339 (__SILICON_REVISION__ < 5) 252#define ANOMALY_05000339 (__SILICON_REVISION__ < 5)
253/* Memory DMA FIFO Causes Throughput Degradation on Writes to External Memory */ 253/* Memory DMA FIFO Causes Throughput Degradation on Writes to External Memory */
254#define ANOMALY_05000343 (__SILICON_REVISION__ < 5) 254#define ANOMALY_05000343 (__SILICON_REVISION__ < 5)
@@ -276,7 +276,7 @@
276#define ANOMALY_05000428 (__SILICON_REVISION__ > 3) 276#define ANOMALY_05000428 (__SILICON_REVISION__ > 3)
277/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 277/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */
278#define ANOMALY_05000443 (1) 278#define ANOMALY_05000443 (1)
279/* False Hardware Error when RETI points to invalid memory */ 279/* False Hardware Error when RETI Points to Invalid Memory */
280#define ANOMALY_05000461 (1) 280#define ANOMALY_05000461 (1)
281 281
282/* Anomalies that don't exist on this proc */ 282/* Anomalies that don't exist on this proc */
@@ -284,6 +284,7 @@
284#define ANOMALY_05000158 (0) 284#define ANOMALY_05000158 (0)
285#define ANOMALY_05000183 (0) 285#define ANOMALY_05000183 (0)
286#define ANOMALY_05000233 (0) 286#define ANOMALY_05000233 (0)
287#define ANOMALY_05000234 (0)
287#define ANOMALY_05000273 (0) 288#define ANOMALY_05000273 (0)
288#define ANOMALY_05000311 (0) 289#define ANOMALY_05000311 (0)
289#define ANOMALY_05000353 (1) 290#define ANOMALY_05000353 (1)
@@ -298,5 +299,7 @@
298#define ANOMALY_05000448 (0) 299#define ANOMALY_05000448 (0)
299#define ANOMALY_05000456 (0) 300#define ANOMALY_05000456 (0)
300#define ANOMALY_05000450 (0) 301#define ANOMALY_05000450 (0)
302#define ANOMALY_05000465 (0)
303#define ANOMALY_05000467 (0)
301 304
302#endif 305#endif
diff --git a/arch/blackfin/mach-bf561/include/mach/blackfin.h b/arch/blackfin/mach-bf561/include/mach/blackfin.h
index f79f6626b7e..8be31358ef8 100644
--- a/arch/blackfin/mach-bf561/include/mach/blackfin.h
+++ b/arch/blackfin/mach-bf561/include/mach/blackfin.h
@@ -34,7 +34,6 @@
34#define BF561_FAMILY 34#define BF561_FAMILY
35 35
36#include "bf561.h" 36#include "bf561.h"
37#include "mem_map.h"
38#include "defBF561.h" 37#include "defBF561.h"
39#include "anomaly.h" 38#include "anomaly.h"
40 39
diff --git a/arch/blackfin/mach-bf561/include/mach/mem_map.h b/arch/blackfin/mach-bf561/include/mach/mem_map.h
index 419dffdc96e..a63e15c86d9 100644
--- a/arch/blackfin/mach-bf561/include/mach/mem_map.h
+++ b/arch/blackfin/mach-bf561/include/mach/mem_map.h
@@ -1,13 +1,16 @@
1/* 1/*
2 * Memory MAP 2 * BF561 memory map
3 * Common header file for blackfin BF561 of processors. 3 *
4 * Copyright 2004-2009 Analog Devices Inc.
5 * Licensed under the GPL-2 or later.
4 */ 6 */
5 7
6#ifndef _MEM_MAP_561_H_ 8#ifndef __BFIN_MACH_MEM_MAP_H__
7#define _MEM_MAP_561_H_ 9#define __BFIN_MACH_MEM_MAP_H__
8 10
9#define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 11#ifndef __BFIN_MEM_MAP_H__
10#define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 12# error "do not include mach/mem_map.h directly -- use asm/mem_map.h"
13#endif
11 14
12/* Async Memory Banks */ 15/* Async Memory Banks */
13#define ASYNC_BANK3_BASE 0x2C000000 /* Async Bank 3 */ 16#define ASYNC_BANK3_BASE 0x2C000000 /* Async Bank 3 */
@@ -82,9 +85,6 @@
82#define COREA_L1_SCRATCH_START 0xFFB00000 85#define COREA_L1_SCRATCH_START 0xFFB00000
83#define COREB_L1_SCRATCH_START 0xFF700000 86#define COREB_L1_SCRATCH_START 0xFF700000
84 87
85#define L1_SCRATCH_START COREA_L1_SCRATCH_START
86#define L1_SCRATCH_LENGTH 0x1000
87
88#ifdef __ASSEMBLY__ 88#ifdef __ASSEMBLY__
89 89
90/* 90/*
@@ -155,14 +155,42 @@
155 dreg = ROT dreg BY -1; \ 155 dreg = ROT dreg BY -1; \
156 dreg = CC; 156 dreg = CC;
157 157
158#else 158static inline unsigned long get_l1_scratch_start_cpu(int cpu)
159#define GET_PDA_SAFE(preg) \ 159{
160 preg.l = _cpu_pda; \ 160 return cpu ? COREB_L1_SCRATCH_START : COREA_L1_SCRATCH_START;
161 preg.h = _cpu_pda; 161}
162static inline unsigned long get_l1_code_start_cpu(int cpu)
163{
164 return cpu ? COREB_L1_CODE_START : COREA_L1_CODE_START;
165}
166static inline unsigned long get_l1_data_a_start_cpu(int cpu)
167{
168 return cpu ? COREB_L1_DATA_A_START : COREA_L1_DATA_A_START;
169}
170static inline unsigned long get_l1_data_b_start_cpu(int cpu)
171{
172 return cpu ? COREB_L1_DATA_B_START : COREA_L1_DATA_B_START;
173}
174
175static inline unsigned long get_l1_scratch_start(void)
176{
177 return get_l1_scratch_start_cpu(blackfin_core_id());
178}
179static inline unsigned long get_l1_code_start(void)
180{
181 return get_l1_code_start_cpu(blackfin_core_id());
182}
183static inline unsigned long get_l1_data_a_start(void)
184{
185 return get_l1_data_a_start_cpu(blackfin_core_id());
186}
187static inline unsigned long get_l1_data_b_start(void)
188{
189 return get_l1_data_b_start_cpu(blackfin_core_id());
190}
162 191
163#define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
164#endif /* CONFIG_SMP */ 192#endif /* CONFIG_SMP */
165 193
166#endif /* __ASSEMBLY__ */ 194#endif /* __ASSEMBLY__ */
167 195
168#endif /* _MEM_MAP_533_H_ */ 196#endif
diff --git a/arch/blackfin/mach-common/Makefile b/arch/blackfin/mach-common/Makefile
index 1f3228ed713..dd8b2dc97f5 100644
--- a/arch/blackfin/mach-common/Makefile
+++ b/arch/blackfin/mach-common/Makefile
@@ -4,7 +4,7 @@
4 4
5obj-y := \ 5obj-y := \
6 cache.o cache-c.o entry.o head.o \ 6 cache.o cache-c.o entry.o head.o \
7 interrupt.o irqpanic.o arch_checks.o ints-priority.o 7 interrupt.o arch_checks.o ints-priority.o
8 8
9obj-$(CONFIG_BFIN_ICACHE_LOCK) += lock.o 9obj-$(CONFIG_BFIN_ICACHE_LOCK) += lock.o
10obj-$(CONFIG_PM) += pm.o dpmc_modes.o 10obj-$(CONFIG_PM) += pm.o dpmc_modes.o
@@ -12,3 +12,4 @@ obj-$(CONFIG_CPU_FREQ) += cpufreq.o
12obj-$(CONFIG_CPU_VOLTAGE) += dpmc.o 12obj-$(CONFIG_CPU_VOLTAGE) += dpmc.o
13obj-$(CONFIG_SMP) += smp.o 13obj-$(CONFIG_SMP) += smp.o
14obj-$(CONFIG_BFIN_KERNEL_CLOCK) += clocks-init.o 14obj-$(CONFIG_BFIN_KERNEL_CLOCK) += clocks-init.o
15obj-$(CONFIG_DEBUG_ICACHE_CHECK) += irqpanic.o
diff --git a/arch/blackfin/mach-common/arch_checks.c b/arch/blackfin/mach-common/arch_checks.c
index da93d920716..5998d8632a7 100644
--- a/arch/blackfin/mach-common/arch_checks.c
+++ b/arch/blackfin/mach-common/arch_checks.c
@@ -74,7 +74,7 @@
74 74
75/* if 220 exists, can not set External Memory WB and L2 not_cached, either External Memory not_cached and L2 WB */ 75/* if 220 exists, can not set External Memory WB and L2 not_cached, either External Memory not_cached and L2 WB */
76#if ANOMALY_05000220 && \ 76#if ANOMALY_05000220 && \
77 ((defined(CONFIG_BFIN_WB) && defined(CONFIG_BFIN_L2_NOT_CACHED)) || \ 77 ((defined(CONFIG_BFIN_EXTMEM_WRITEBACK) && !defined(CONFIG_BFIN_L2_DCACHEABLE)) || \
78 (!defined(CONFIG_BFIN_DCACHE) && defined(CONFIG_BFIN_L2_WB))) 78 (!defined(CONFIG_BFIN_EXTMEM_DCACHEABLE) && defined(CONFIG_BFIN_L2_WRITEBACK)))
79# error You are exposing Anomaly 220 in this config, either config L2 as Write Through, or make External Memory WB. 79# error You are exposing Anomaly 220 in this config, either config L2 as Write Through, or make External Memory WB.
80#endif 80#endif
diff --git a/arch/blackfin/mach-common/cpufreq.c b/arch/blackfin/mach-common/cpufreq.c
index 70e3411f558..85c65808327 100644
--- a/arch/blackfin/mach-common/cpufreq.c
+++ b/arch/blackfin/mach-common/cpufreq.c
@@ -141,7 +141,7 @@ static int __init __bfin_cpu_init(struct cpufreq_policy *policy)
141 sclk = get_sclk() / 1000; 141 sclk = get_sclk() / 1000;
142 142
143#if ANOMALY_05000273 || ANOMALY_05000274 || \ 143#if ANOMALY_05000273 || ANOMALY_05000274 || \
144 (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_DCACHE)) 144 (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_EXTMEM_DCACHEABLE))
145 min_cclk = sclk * 2; 145 min_cclk = sclk * 2;
146#else 146#else
147 min_cclk = sclk; 147 min_cclk = sclk;
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index 31fa313e81c..5a4e7c7fd92 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -1609,6 +1609,7 @@ ENTRY(_sys_call_table)
1609 .long _sys_preadv 1609 .long _sys_preadv
1610 .long _sys_pwritev 1610 .long _sys_pwritev
1611 .long _sys_rt_tgsigqueueinfo 1611 .long _sys_rt_tgsigqueueinfo
1612 .long _sys_perf_counter_open
1612 1613
1613 .rept NR_syscalls-(.-_sys_call_table)/4 1614 .rept NR_syscalls-(.-_sys_call_table)/4
1614 .long _sys_ni_syscall 1615 .long _sys_ni_syscall
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index 351afd0e36d..b42150190d0 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -472,7 +472,7 @@ static int bfin_gpio_irq_type(unsigned int irq, unsigned int type)
472 472
473 if (type == IRQ_TYPE_PROBE) { 473 if (type == IRQ_TYPE_PROBE) {
474 /* only probe unenabled GPIO interrupt lines */ 474 /* only probe unenabled GPIO interrupt lines */
475 if (__test_bit(gpionr, gpio_enabled)) 475 if (test_bit(gpionr, gpio_enabled))
476 return 0; 476 return 0;
477 type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING; 477 type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING;
478 } 478 }
@@ -782,7 +782,7 @@ static int bfin_gpio_irq_type(unsigned int irq, unsigned int type)
782 782
783 if (type == IRQ_TYPE_PROBE) { 783 if (type == IRQ_TYPE_PROBE) {
784 /* only probe unenabled GPIO interrupt lines */ 784 /* only probe unenabled GPIO interrupt lines */
785 if (__test_bit(gpionr, gpio_enabled)) 785 if (test_bit(gpionr, gpio_enabled))
786 return 0; 786 return 0;
787 type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING; 787 type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING;
788 } 788 }
@@ -1052,35 +1052,34 @@ int __init init_arch_irq(void)
1052 set_irq_chained_handler(irq, bfin_demux_error_irq); 1052 set_irq_chained_handler(irq, bfin_demux_error_irq);
1053 break; 1053 break;
1054#endif 1054#endif
1055#if defined(CONFIG_TICKSOURCE_GPTMR0)
1056 case IRQ_TIMER0:
1057 set_irq_handler(irq, handle_percpu_irq);
1058 break;
1059#endif
1060#ifdef CONFIG_SMP 1055#ifdef CONFIG_SMP
1061 case IRQ_SUPPLE_0: 1056 case IRQ_SUPPLE_0:
1062 case IRQ_SUPPLE_1: 1057 case IRQ_SUPPLE_1:
1063 set_irq_handler(irq, handle_percpu_irq); 1058 set_irq_handler(irq, handle_percpu_irq);
1064 break; 1059 break;
1065#endif 1060#endif
1066 default:
1067#ifdef CONFIG_IPIPE 1061#ifdef CONFIG_IPIPE
1068 /* 1062#ifndef CONFIG_TICKSOURCE_CORETMR
1069 * We want internal interrupt sources to be 1063 case IRQ_TIMER0:
1070 * masked, because ISRs may trigger interrupts 1064 set_irq_handler(irq, handle_simple_irq);
1071 * recursively (e.g. DMA), but interrupts are 1065 break;
1072 * _not_ masked at CPU level. So let's handle 1066#endif /* !CONFIG_TICKSOURCE_CORETMR */
1073 * most of them as level interrupts, except 1067 case IRQ_CORETMR:
1074 * the timer interrupt which is special. 1068 set_irq_handler(irq, handle_simple_irq);
1075 */ 1069 break;
1076 if (irq == IRQ_SYSTMR || irq == IRQ_CORETMR) 1070 default:
1077 set_irq_handler(irq, handle_simple_irq); 1071 set_irq_handler(irq, handle_level_irq);
1078 else 1072 break;
1079 set_irq_handler(irq, handle_level_irq);
1080#else /* !CONFIG_IPIPE */ 1073#else /* !CONFIG_IPIPE */
1074#ifdef CONFIG_TICKSOURCE_GPTMR0
1075 case IRQ_TIMER0:
1076 set_irq_handler(irq, handle_percpu_irq);
1077 break;
1078#endif /* CONFIG_TICKSOURCE_GPTMR0 */
1079 default:
1081 set_irq_handler(irq, handle_simple_irq); 1080 set_irq_handler(irq, handle_simple_irq);
1082#endif /* !CONFIG_IPIPE */
1083 break; 1081 break;
1082#endif /* !CONFIG_IPIPE */
1084 } 1083 }
1085 } 1084 }
1086 1085
@@ -1224,15 +1223,14 @@ __attribute__((l1_text))
1224asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs) 1223asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs)
1225{ 1224{
1226 struct ipipe_percpu_domain_data *p = ipipe_root_cpudom_ptr(); 1225 struct ipipe_percpu_domain_data *p = ipipe_root_cpudom_ptr();
1227 struct ipipe_domain *this_domain = ipipe_current_domain; 1226 struct ipipe_domain *this_domain = __ipipe_current_domain;
1228 struct ivgx *ivg_stop = ivg7_13[vec-IVG7].istop; 1227 struct ivgx *ivg_stop = ivg7_13[vec-IVG7].istop;
1229 struct ivgx *ivg = ivg7_13[vec-IVG7].ifirst; 1228 struct ivgx *ivg = ivg7_13[vec-IVG7].ifirst;
1230 int irq, s; 1229 int irq, s;
1231 1230
1232 if (likely(vec == EVT_IVTMR_P)) { 1231 if (likely(vec == EVT_IVTMR_P))
1233 irq = IRQ_CORETMR; 1232 irq = IRQ_CORETMR;
1234 1233 else {
1235 } else {
1236#if defined(SIC_ISR0) || defined(SICA_ISR0) 1234#if defined(SIC_ISR0) || defined(SICA_ISR0)
1237 unsigned long sic_status[3]; 1235 unsigned long sic_status[3];
1238 1236
@@ -1262,12 +1260,11 @@ asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs)
1262 break; 1260 break;
1263 } 1261 }
1264#endif 1262#endif
1265
1266 irq = ivg->irqno; 1263 irq = ivg->irqno;
1267 } 1264 }
1268 1265
1269 if (irq == IRQ_SYSTMR) { 1266 if (irq == IRQ_SYSTMR) {
1270#ifndef CONFIG_GENERIC_CLOCKEVENTS 1267#if !defined(CONFIG_GENERIC_CLOCKEVENTS) || defined(CONFIG_TICKSOURCE_GPTMR0)
1271 bfin_write_TIMER_STATUS(1); /* Latch TIMIL0 */ 1268 bfin_write_TIMER_STATUS(1); /* Latch TIMIL0 */
1272#endif 1269#endif
1273 /* This is basically what we need from the register frame. */ 1270 /* This is basically what we need from the register frame. */
diff --git a/arch/blackfin/mach-common/irqpanic.c b/arch/blackfin/mach-common/irqpanic.c
index 05004df0f78..883e3241b17 100644
--- a/arch/blackfin/mach-common/irqpanic.c
+++ b/arch/blackfin/mach-common/irqpanic.c
@@ -30,21 +30,17 @@
30#include <linux/module.h> 30#include <linux/module.h>
31#include <linux/kernel_stat.h> 31#include <linux/kernel_stat.h>
32#include <linux/sched.h> 32#include <linux/sched.h>
33#include <asm/traps.h>
34#include <asm/blackfin.h> 33#include <asm/blackfin.h>
35 34
36#ifdef CONFIG_DEBUG_ICACHE_CHECK
37#define L1_ICACHE_START 0xffa10000 35#define L1_ICACHE_START 0xffa10000
38#define L1_ICACHE_END 0xffa13fff 36#define L1_ICACHE_END 0xffa13fff
39void irq_panic(int reason, struct pt_regs *regs) __attribute__ ((l1_text));
40#endif
41 37
42/* 38/*
43 * irq_panic - calls panic with string setup 39 * irq_panic - calls panic with string setup
44 */ 40 */
41__attribute__ ((l1_text))
45asmlinkage void irq_panic(int reason, struct pt_regs *regs) 42asmlinkage void irq_panic(int reason, struct pt_regs *regs)
46{ 43{
47#ifdef CONFIG_DEBUG_ICACHE_CHECK
48 unsigned int cmd, tag, ca, cache_hi, cache_lo, *pa; 44 unsigned int cmd, tag, ca, cache_hi, cache_lo, *pa;
49 unsigned short i, j, die; 45 unsigned short i, j, die;
50 unsigned int bad[10][6]; 46 unsigned int bad[10][6];
@@ -126,9 +122,6 @@ asmlinkage void irq_panic(int reason, struct pt_regs *regs)
126 bad[j][3], bad[j][4], bad[j][5]); 122 bad[j][3], bad[j][4], bad[j][5]);
127 } 123 }
128 panic("icache coherency error"); 124 panic("icache coherency error");
129 } else { 125 } else
130 printk(KERN_EMERG "icache checked, and OK\n"); 126 printk(KERN_EMERG "icache checked, and OK\n");
131 }
132#endif
133
134} 127}
diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c
index bce5a84be49..9e7e27b7fc8 100644
--- a/arch/blackfin/mach-common/pm.c
+++ b/arch/blackfin/mach-common/pm.c
@@ -132,7 +132,7 @@ int bf53x_resume_l1_mem(unsigned char *memptr)
132 return 0; 132 return 0;
133} 133}
134 134
135#ifdef CONFIG_BFIN_WB 135#if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK)
136static void flushinv_all_dcache(void) 136static void flushinv_all_dcache(void)
137{ 137{
138 u32 way, bank, subbank, set; 138 u32 way, bank, subbank, set;
@@ -175,7 +175,7 @@ static inline void dcache_disable(void)
175#ifdef CONFIG_BFIN_DCACHE 175#ifdef CONFIG_BFIN_DCACHE
176 unsigned long ctrl; 176 unsigned long ctrl;
177 177
178#ifdef CONFIG_BFIN_WB 178#if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK)
179 flushinv_all_dcache(); 179 flushinv_all_dcache();
180#endif 180#endif
181 SSYNC(); 181 SSYNC();
diff --git a/arch/blackfin/mm/init.c b/arch/blackfin/mm/init.c
index 014a55abd09..68bd0bd680c 100644
--- a/arch/blackfin/mm/init.c
+++ b/arch/blackfin/mm/init.c
@@ -160,7 +160,7 @@ void __init mem_init(void)
160 160
161 /* do not count in kernel image between _rambase and _ramstart */ 161 /* do not count in kernel image between _rambase and _ramstart */
162 reservedpages -= (_ramstart - _rambase) >> PAGE_SHIFT; 162 reservedpages -= (_ramstart - _rambase) >> PAGE_SHIFT;
163#if (defined(CONFIG_BFIN_ICACHE) && ANOMALY_05000263) 163#if (defined(CONFIG_BFIN_EXTMEM_ICACHEABLE) && ANOMALY_05000263)
164 reservedpages += (_ramend - memory_end - DMA_UNCACHED_REGION) >> PAGE_SHIFT; 164 reservedpages += (_ramend - memory_end - DMA_UNCACHED_REGION) >> PAGE_SHIFT;
165#endif 165#endif
166 166
diff --git a/arch/cris/arch-v10/kernel/dma.c b/arch/cris/arch-v10/kernel/dma.c
index 929e6866629..d31504b4a19 100644
--- a/arch/cris/arch-v10/kernel/dma.c
+++ b/arch/cris/arch-v10/kernel/dma.c
@@ -24,7 +24,7 @@ int cris_request_dma(unsigned int dmanr, const char * device_id,
24 unsigned long int gens; 24 unsigned long int gens;
25 int fail = -EINVAL; 25 int fail = -EINVAL;
26 26
27 if ((dmanr < 0) || (dmanr >= MAX_DMA_CHANNELS)) { 27 if (dmanr >= MAX_DMA_CHANNELS) {
28 printk(KERN_CRIT "cris_request_dma: invalid DMA channel %u\n", dmanr); 28 printk(KERN_CRIT "cris_request_dma: invalid DMA channel %u\n", dmanr);
29 return -EINVAL; 29 return -EINVAL;
30 } 30 }
@@ -213,7 +213,7 @@ int cris_request_dma(unsigned int dmanr, const char * device_id,
213void cris_free_dma(unsigned int dmanr, const char * device_id) 213void cris_free_dma(unsigned int dmanr, const char * device_id)
214{ 214{
215 unsigned long flags; 215 unsigned long flags;
216 if ((dmanr < 0) || (dmanr >= MAX_DMA_CHANNELS)) { 216 if (dmanr >= MAX_DMA_CHANNELS) {
217 printk(KERN_CRIT "cris_free_dma: invalid DMA channel %u\n", dmanr); 217 printk(KERN_CRIT "cris_free_dma: invalid DMA channel %u\n", dmanr);
218 return; 218 return;
219 } 219 }
diff --git a/arch/cris/arch-v32/drivers/cryptocop.c b/arch/cris/arch-v32/drivers/cryptocop.c
index 67c61ea8681..fd529a0ec75 100644
--- a/arch/cris/arch-v32/drivers/cryptocop.c
+++ b/arch/cris/arch-v32/drivers/cryptocop.c
@@ -1395,7 +1395,7 @@ static int create_md5_pad(int alloc_flag, unsigned long long hashed_length, char
1395 if (padlen < MD5_MIN_PAD_LENGTH) padlen += MD5_BLOCK_LENGTH; 1395 if (padlen < MD5_MIN_PAD_LENGTH) padlen += MD5_BLOCK_LENGTH;
1396 1396
1397 p = kmalloc(padlen, alloc_flag); 1397 p = kmalloc(padlen, alloc_flag);
1398 if (!pad) return -ENOMEM; 1398 if (!p) return -ENOMEM;
1399 1399
1400 *p = 0x80; 1400 *p = 0x80;
1401 memset(p+1, 0, padlen - 1); 1401 memset(p+1, 0, padlen - 1);
@@ -1427,7 +1427,7 @@ static int create_sha1_pad(int alloc_flag, unsigned long long hashed_length, cha
1427 if (padlen < SHA1_MIN_PAD_LENGTH) padlen += SHA1_BLOCK_LENGTH; 1427 if (padlen < SHA1_MIN_PAD_LENGTH) padlen += SHA1_BLOCK_LENGTH;
1428 1428
1429 p = kmalloc(padlen, alloc_flag); 1429 p = kmalloc(padlen, alloc_flag);
1430 if (!pad) return -ENOMEM; 1430 if (!p) return -ENOMEM;
1431 1431
1432 *p = 0x80; 1432 *p = 0x80;
1433 memset(p+1, 0, padlen - 1); 1433 memset(p+1, 0, padlen - 1);
diff --git a/arch/cris/arch-v32/kernel/irq.c b/arch/cris/arch-v32/kernel/irq.c
index d70b445f4a8..57668db2503 100644
--- a/arch/cris/arch-v32/kernel/irq.c
+++ b/arch/cris/arch-v32/kernel/irq.c
@@ -430,8 +430,8 @@ crisv32_do_multiple(struct pt_regs* regs)
430 masked[i] &= ~TIMER_MASK; 430 masked[i] &= ~TIMER_MASK;
431 do_IRQ(TIMER0_INTR_VECT, regs); 431 do_IRQ(TIMER0_INTR_VECT, regs);
432 } 432 }
433 }
434#endif 433#endif
434 }
435 435
436#ifdef IGNORE_MASK 436#ifdef IGNORE_MASK
437 /* Remove IRQs that can't be handled as multiple. */ 437 /* Remove IRQs that can't be handled as multiple. */
diff --git a/arch/cris/arch-v32/lib/Makefile b/arch/cris/arch-v32/lib/Makefile
index eb4aad1f115..dd296b9db03 100644
--- a/arch/cris/arch-v32/lib/Makefile
+++ b/arch/cris/arch-v32/lib/Makefile
@@ -3,5 +3,5 @@
3# 3#
4 4
5lib-y = checksum.o checksumcopy.o string.o usercopy.o memset.o \ 5lib-y = checksum.o checksumcopy.o string.o usercopy.o memset.o \
6 csumcpfruser.o spinlock.o delay.o 6 csumcpfruser.o spinlock.o delay.o strcmp.o
7 7
diff --git a/arch/cris/arch-v32/lib/strcmp.S b/arch/cris/arch-v32/lib/strcmp.S
new file mode 100644
index 00000000000..8f7a1ee6259
--- /dev/null
+++ b/arch/cris/arch-v32/lib/strcmp.S
@@ -0,0 +1,21 @@
1; strcmp.S -- CRISv32 version.
2; Copyright (C) 2008 AXIS Communications AB
3; Written by Edgar E. Iglesias
4;
5; This source code is licensed under the GNU General Public License,
6; Version 2. See the file COPYING for more details.
7
8 .global strcmp
9 .type strcmp,@function
10strcmp:
111:
12 move.b [$r10+], $r12
13 seq $r13
14 sub.b [$r11+], $r12
15 or.b $r12, $r13
16 beq 1b
17 nop
18
19 ret
20 movs.b $r12, $r10
21 .size strcmp, . - strcmp
diff --git a/arch/cris/include/arch-v32/arch/spinlock.h b/arch/cris/include/arch-v32/arch/spinlock.h
index 129756b9666..367a53ea10c 100644
--- a/arch/cris/include/arch-v32/arch/spinlock.h
+++ b/arch/cris/include/arch-v32/arch/spinlock.h
@@ -78,7 +78,7 @@ static inline void __raw_write_lock(raw_rwlock_t *rw)
78{ 78{
79 __raw_spin_lock(&rw->slock); 79 __raw_spin_lock(&rw->slock);
80 while (rw->lock != RW_LOCK_BIAS); 80 while (rw->lock != RW_LOCK_BIAS);
81 rw->lock == 0; 81 rw->lock = 0;
82 __raw_spin_unlock(&rw->slock); 82 __raw_spin_unlock(&rw->slock);
83} 83}
84 84
@@ -93,7 +93,7 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
93{ 93{
94 __raw_spin_lock(&rw->slock); 94 __raw_spin_lock(&rw->slock);
95 while (rw->lock != RW_LOCK_BIAS); 95 while (rw->lock != RW_LOCK_BIAS);
96 rw->lock == RW_LOCK_BIAS; 96 rw->lock = RW_LOCK_BIAS;
97 __raw_spin_unlock(&rw->slock); 97 __raw_spin_unlock(&rw->slock);
98} 98}
99 99
@@ -114,7 +114,7 @@ static inline int __raw_write_trylock(raw_rwlock_t *rw)
114 int ret = 0; 114 int ret = 0;
115 __raw_spin_lock(&rw->slock); 115 __raw_spin_lock(&rw->slock);
116 if (rw->lock == RW_LOCK_BIAS) { 116 if (rw->lock == RW_LOCK_BIAS) {
117 rw->lock == 0; 117 rw->lock = 0;
118 ret = 1; 118 ret = 1;
119 } 119 }
120 __raw_spin_unlock(&rw->slock); 120 __raw_spin_unlock(&rw->slock);
diff --git a/arch/cris/include/asm/string.h b/arch/cris/include/asm/string.h
index 691190e99a2..d5db39f9eea 100644
--- a/arch/cris/include/asm/string.h
+++ b/arch/cris/include/asm/string.h
@@ -11,4 +11,10 @@ extern void *memcpy(void *, const void *, size_t);
11#define __HAVE_ARCH_MEMSET 11#define __HAVE_ARCH_MEMSET
12extern void *memset(void *, int, size_t); 12extern void *memset(void *, int, size_t);
13 13
14#ifdef CONFIG_ETRAX_ARCH_V32
15/* For v32 we provide strcmp. */
16#define __HAVE_ARCH_STRCMP
17extern int strcmp(const char *s1, const char *s2);
18#endif
19
14#endif 20#endif
diff --git a/arch/cris/mm/fault.c b/arch/cris/mm/fault.c
index c4c76db90f9..f925115e325 100644
--- a/arch/cris/mm/fault.c
+++ b/arch/cris/mm/fault.c
@@ -163,7 +163,7 @@ do_page_fault(unsigned long address, struct pt_regs *regs,
163 * the fault. 163 * the fault.
164 */ 164 */
165 165
166 fault = handle_mm_fault(mm, vma, address, writeaccess & 1); 166 fault = handle_mm_fault(mm, vma, address, (writeaccess & 1) ? FAULT_FLAG_WRITE : 0);
167 if (unlikely(fault & VM_FAULT_ERROR)) { 167 if (unlikely(fault & VM_FAULT_ERROR)) {
168 if (fault & VM_FAULT_OOM) 168 if (fault & VM_FAULT_OOM)
169 goto out_of_memory; 169 goto out_of_memory;
diff --git a/arch/frv/mm/fault.c b/arch/frv/mm/fault.c
index 05093d41d98..30f5d100a81 100644
--- a/arch/frv/mm/fault.c
+++ b/arch/frv/mm/fault.c
@@ -163,7 +163,7 @@ asmlinkage void do_page_fault(int datammu, unsigned long esr0, unsigned long ear
163 * make sure we exit gracefully rather than endlessly redo 163 * make sure we exit gracefully rather than endlessly redo
164 * the fault. 164 * the fault.
165 */ 165 */
166 fault = handle_mm_fault(mm, vma, ear0, write); 166 fault = handle_mm_fault(mm, vma, ear0, write ? FAULT_FLAG_WRITE : 0);
167 if (unlikely(fault & VM_FAULT_ERROR)) { 167 if (unlikely(fault & VM_FAULT_ERROR)) {
168 if (fault & VM_FAULT_OOM) 168 if (fault & VM_FAULT_OOM)
169 goto out_of_memory; 169 goto out_of_memory;
diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu
index b65dcfe51d9..6e2ecff199c 100644
--- a/arch/h8300/Kconfig.cpu
+++ b/arch/h8300/Kconfig.cpu
@@ -13,7 +13,7 @@ config H8300H_GENERIC
13 13
14config H8300H_AKI3068NET 14config H8300H_AKI3068NET
15 bool "AE-3068/69" 15 bool "AE-3068/69"
16 select CONFIG_H83068 16 select H83068
17 help 17 help
18 AKI-H8/3068F / AKI-H8/3069F Flashmicom LAN Board Support 18 AKI-H8/3068F / AKI-H8/3069F Flashmicom LAN Board Support
19 More Information. (Japanese Only) 19 More Information. (Japanese Only)
@@ -24,7 +24,7 @@ config H8300H_AKI3068NET
24 24
25config H8300H_H8MAX 25config H8300H_H8MAX
26 bool "H8MAX" 26 bool "H8MAX"
27 select CONFIG_H83068 27 select H83068
28 help 28 help
29 H8MAX Evaluation Board Support 29 H8MAX Evaluation Board Support
30 More Information. (Japanese Only) 30 More Information. (Japanese Only)
@@ -32,7 +32,7 @@ config H8300H_H8MAX
32 32
33config H8300H_SIM 33config H8300H_SIM
34 bool "H8/300H Simulator" 34 bool "H8/300H Simulator"
35 select CONFIG_H83007 35 select H83007
36 help 36 help
37 GDB Simulator Support 37 GDB Simulator Support
38 More Information. 38 More Information.
@@ -45,7 +45,7 @@ config H8S_GENERIC
45 45
46config H8S_EDOSK2674 46config H8S_EDOSK2674
47 bool "EDOSK-2674" 47 bool "EDOSK-2674"
48 select CONFIG_H8S2768 48 select H8S2678
49 help 49 help
50 Renesas EDOSK-2674 Evaluation Board Support 50 Renesas EDOSK-2674 Evaluation Board Support
51 More Information. 51 More Information.
diff --git a/arch/h8300/kernel/asm-offsets.c b/arch/h8300/kernel/asm-offsets.c
index 2042552e087..fd961e0bd74 100644
--- a/arch/h8300/kernel/asm-offsets.c
+++ b/arch/h8300/kernel/asm-offsets.c
@@ -55,7 +55,6 @@ int main(void)
55 DEFINE(LRET, offsetof(struct pt_regs, pc) - sizeof(long)); 55 DEFINE(LRET, offsetof(struct pt_regs, pc) - sizeof(long));
56 56
57 DEFINE(PT_PTRACED, PT_PTRACED); 57 DEFINE(PT_PTRACED, PT_PTRACED);
58 DEFINE(PT_DTRACE, PT_DTRACE);
59 58
60 return 0; 59 return 0;
61} 60}
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 294a3b13eca..170042b420d 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -28,6 +28,7 @@ config IA64
28 select HAVE_DMA_ATTRS 28 select HAVE_DMA_ATTRS
29 select HAVE_KVM 29 select HAVE_KVM
30 select HAVE_ARCH_TRACEHOOK 30 select HAVE_ARCH_TRACEHOOK
31 select HAVE_DMA_API_DEBUG
31 default y 32 default y
32 help 33 help
33 The Itanium Processor Family is Intel's 64-bit successor to 34 The Itanium Processor Family is Intel's 64-bit successor to
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c
index fe63b2dc9d0..8cfb001092a 100644
--- a/arch/ia64/hp/common/sba_iommu.c
+++ b/arch/ia64/hp/common/sba_iommu.c
@@ -1787,7 +1787,7 @@ static struct ioc_iommu ioc_iommu_info[] __initdata = {
1787}; 1787};
1788 1788
1789static struct ioc * __init 1789static struct ioc * __init
1790ioc_init(u64 hpa, void *handle) 1790ioc_init(unsigned long hpa, void *handle)
1791{ 1791{
1792 struct ioc *ioc; 1792 struct ioc *ioc;
1793 struct ioc_iommu *info; 1793 struct ioc_iommu *info;
diff --git a/arch/ia64/hp/sim/hpsim_irq.c b/arch/ia64/hp/sim/hpsim_irq.c
index acb5047ab57..b272261d77c 100644
--- a/arch/ia64/hp/sim/hpsim_irq.c
+++ b/arch/ia64/hp/sim/hpsim_irq.c
@@ -27,7 +27,7 @@ hpsim_set_affinity_noop(unsigned int a, const struct cpumask *b)
27 return 0; 27 return 0;
28} 28}
29 29
30static struct hw_interrupt_type irq_type_hp_sim = { 30static struct irq_chip irq_type_hp_sim = {
31 .name = "hpsim", 31 .name = "hpsim",
32 .startup = hpsim_irq_startup, 32 .startup = hpsim_irq_startup,
33 .shutdown = hpsim_irq_noop, 33 .shutdown = hpsim_irq_noop,
@@ -41,12 +41,12 @@ static struct hw_interrupt_type irq_type_hp_sim = {
41void __init 41void __init
42hpsim_irq_init (void) 42hpsim_irq_init (void)
43{ 43{
44 irq_desc_t *idesc; 44 struct irq_desc *idesc;
45 int i; 45 int i;
46 46
47 for (i = 0; i < NR_IRQS; ++i) { 47 for (i = 0; i < NR_IRQS; ++i) {
48 idesc = irq_desc + i; 48 idesc = irq_desc + i;
49 if (idesc->chip == &no_irq_type) 49 if (idesc->chip == &no_irq_chip)
50 idesc->chip = &irq_type_hp_sim; 50 idesc->chip = &irq_type_hp_sim;
51 } 51 }
52} 52}
diff --git a/arch/ia64/include/asm/Kbuild b/arch/ia64/include/asm/Kbuild
index ccbe8ae47a6..c7d0a71b924 100644
--- a/arch/ia64/include/asm/Kbuild
+++ b/arch/ia64/include/asm/Kbuild
@@ -2,7 +2,6 @@ include include/asm-generic/Kbuild.asm
2 2
3header-y += break.h 3header-y += break.h
4header-y += fpu.h 4header-y += fpu.h
5header-y += fpswa.h
6header-y += ia64regs.h 5header-y += ia64regs.h
7header-y += intel_intrin.h 6header-y += intel_intrin.h
8header-y += perfmon_default_smpl.h 7header-y += perfmon_default_smpl.h
diff --git a/arch/ia64/include/asm/dma-mapping.h b/arch/ia64/include/asm/dma-mapping.h
index 36c0009dbec..5a61b5c2e18 100644
--- a/arch/ia64/include/asm/dma-mapping.h
+++ b/arch/ia64/include/asm/dma-mapping.h
@@ -8,6 +8,7 @@
8#include <asm/machvec.h> 8#include <asm/machvec.h>
9#include <linux/scatterlist.h> 9#include <linux/scatterlist.h>
10#include <asm/swiotlb.h> 10#include <asm/swiotlb.h>
11#include <linux/dma-debug.h>
11 12
12#define ARCH_HAS_DMA_GET_REQUIRED_MASK 13#define ARCH_HAS_DMA_GET_REQUIRED_MASK
13 14
@@ -24,95 +25,28 @@ static inline void *dma_alloc_coherent(struct device *dev, size_t size,
24 dma_addr_t *daddr, gfp_t gfp) 25 dma_addr_t *daddr, gfp_t gfp)
25{ 26{
26 struct dma_map_ops *ops = platform_dma_get_ops(dev); 27 struct dma_map_ops *ops = platform_dma_get_ops(dev);
27 return ops->alloc_coherent(dev, size, daddr, gfp); 28 void *caddr;
29
30 caddr = ops->alloc_coherent(dev, size, daddr, gfp);
31 debug_dma_alloc_coherent(dev, size, *daddr, caddr);
32 return caddr;
28} 33}
29 34
30static inline void dma_free_coherent(struct device *dev, size_t size, 35static inline void dma_free_coherent(struct device *dev, size_t size,
31 void *caddr, dma_addr_t daddr) 36 void *caddr, dma_addr_t daddr)
32{ 37{
33 struct dma_map_ops *ops = platform_dma_get_ops(dev); 38 struct dma_map_ops *ops = platform_dma_get_ops(dev);
39 debug_dma_free_coherent(dev, size, caddr, daddr);
34 ops->free_coherent(dev, size, caddr, daddr); 40 ops->free_coherent(dev, size, caddr, daddr);
35} 41}
36 42
37#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) 43#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
38#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) 44#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
39 45
40static inline dma_addr_t dma_map_single_attrs(struct device *dev, 46#define get_dma_ops(dev) platform_dma_get_ops(dev)
41 void *caddr, size_t size, 47#define flush_write_buffers()
42 enum dma_data_direction dir,
43 struct dma_attrs *attrs)
44{
45 struct dma_map_ops *ops = platform_dma_get_ops(dev);
46 return ops->map_page(dev, virt_to_page(caddr),
47 (unsigned long)caddr & ~PAGE_MASK, size,
48 dir, attrs);
49}
50
51static inline void dma_unmap_single_attrs(struct device *dev, dma_addr_t daddr,
52 size_t size,
53 enum dma_data_direction dir,
54 struct dma_attrs *attrs)
55{
56 struct dma_map_ops *ops = platform_dma_get_ops(dev);
57 ops->unmap_page(dev, daddr, size, dir, attrs);
58}
59
60#define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, NULL)
61#define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, NULL)
62
63static inline int dma_map_sg_attrs(struct device *dev, struct scatterlist *sgl,
64 int nents, enum dma_data_direction dir,
65 struct dma_attrs *attrs)
66{
67 struct dma_map_ops *ops = platform_dma_get_ops(dev);
68 return ops->map_sg(dev, sgl, nents, dir, attrs);
69}
70
71static inline void dma_unmap_sg_attrs(struct device *dev,
72 struct scatterlist *sgl, int nents,
73 enum dma_data_direction dir,
74 struct dma_attrs *attrs)
75{
76 struct dma_map_ops *ops = platform_dma_get_ops(dev);
77 ops->unmap_sg(dev, sgl, nents, dir, attrs);
78}
79
80#define dma_map_sg(d, s, n, r) dma_map_sg_attrs(d, s, n, r, NULL)
81#define dma_unmap_sg(d, s, n, r) dma_unmap_sg_attrs(d, s, n, r, NULL)
82
83static inline void dma_sync_single_for_cpu(struct device *dev, dma_addr_t daddr,
84 size_t size,
85 enum dma_data_direction dir)
86{
87 struct dma_map_ops *ops = platform_dma_get_ops(dev);
88 ops->sync_single_for_cpu(dev, daddr, size, dir);
89}
90
91static inline void dma_sync_sg_for_cpu(struct device *dev,
92 struct scatterlist *sgl,
93 int nents, enum dma_data_direction dir)
94{
95 struct dma_map_ops *ops = platform_dma_get_ops(dev);
96 ops->sync_sg_for_cpu(dev, sgl, nents, dir);
97}
98 48
99static inline void dma_sync_single_for_device(struct device *dev, 49#include <asm-generic/dma-mapping-common.h>
100 dma_addr_t daddr,
101 size_t size,
102 enum dma_data_direction dir)
103{
104 struct dma_map_ops *ops = platform_dma_get_ops(dev);
105 ops->sync_single_for_device(dev, daddr, size, dir);
106}
107
108static inline void dma_sync_sg_for_device(struct device *dev,
109 struct scatterlist *sgl,
110 int nents,
111 enum dma_data_direction dir)
112{
113 struct dma_map_ops *ops = platform_dma_get_ops(dev);
114 ops->sync_sg_for_device(dev, sgl, nents, dir);
115}
116 50
117static inline int dma_mapping_error(struct device *dev, dma_addr_t daddr) 51static inline int dma_mapping_error(struct device *dev, dma_addr_t daddr)
118{ 52{
@@ -120,30 +54,6 @@ static inline int dma_mapping_error(struct device *dev, dma_addr_t daddr)
120 return ops->mapping_error(dev, daddr); 54 return ops->mapping_error(dev, daddr);
121} 55}
122 56
123static inline dma_addr_t dma_map_page(struct device *dev, struct page *page,
124 size_t offset, size_t size,
125 enum dma_data_direction dir)
126{
127 struct dma_map_ops *ops = platform_dma_get_ops(dev);
128 return ops->map_page(dev, page, offset, size, dir, NULL);
129}
130
131static inline void dma_unmap_page(struct device *dev, dma_addr_t addr,
132 size_t size, enum dma_data_direction dir)
133{
134 dma_unmap_single(dev, addr, size, dir);
135}
136
137/*
138 * Rest of this file is part of the "Advanced DMA API". Use at your own risk.
139 * See Documentation/DMA-API.txt for details.
140 */
141
142#define dma_sync_single_range_for_cpu(dev, dma_handle, offset, size, dir) \
143 dma_sync_single_for_cpu(dev, dma_handle, size, dir)
144#define dma_sync_single_range_for_device(dev, dma_handle, offset, size, dir) \
145 dma_sync_single_for_device(dev, dma_handle, size, dir)
146
147static inline int dma_supported(struct device *dev, u64 mask) 57static inline int dma_supported(struct device *dev, u64 mask)
148{ 58{
149 struct dma_map_ops *ops = platform_dma_get_ops(dev); 59 struct dma_map_ops *ops = platform_dma_get_ops(dev);
diff --git a/arch/ia64/include/asm/gcc_intrin.h b/arch/ia64/include/asm/gcc_intrin.h
index c2c5fd8fcac..21ddee54ada 100644
--- a/arch/ia64/include/asm/gcc_intrin.h
+++ b/arch/ia64/include/asm/gcc_intrin.h
@@ -388,7 +388,7 @@ register unsigned long ia64_r13 asm ("r13") __used;
388 388
389#define ia64_native_thash(addr) \ 389#define ia64_native_thash(addr) \
390({ \ 390({ \
391 __u64 ia64_intri_res; \ 391 unsigned long ia64_intri_res; \
392 asm volatile ("thash %0=%1" : "=r"(ia64_intri_res) : "r" (addr)); \ 392 asm volatile ("thash %0=%1" : "=r"(ia64_intri_res) : "r" (addr)); \
393 ia64_intri_res; \ 393 ia64_intri_res; \
394}) 394})
@@ -419,7 +419,7 @@ register unsigned long ia64_r13 asm ("r13") __used;
419 419
420#define ia64_tpa(addr) \ 420#define ia64_tpa(addr) \
421({ \ 421({ \
422 __u64 ia64_pa; \ 422 unsigned long ia64_pa; \
423 asm volatile ("tpa %0 = %1" : "=r"(ia64_pa) : "r"(addr) : "memory"); \ 423 asm volatile ("tpa %0 = %1" : "=r"(ia64_pa) : "r"(addr) : "memory"); \
424 ia64_pa; \ 424 ia64_pa; \
425}) 425})
@@ -444,35 +444,35 @@ register unsigned long ia64_r13 asm ("r13") __used;
444 444
445#define ia64_native_get_cpuid(index) \ 445#define ia64_native_get_cpuid(index) \
446({ \ 446({ \
447 __u64 ia64_intri_res; \ 447 unsigned long ia64_intri_res; \
448 asm volatile ("mov %0=cpuid[%r1]" : "=r"(ia64_intri_res) : "rO"(index)); \ 448 asm volatile ("mov %0=cpuid[%r1]" : "=r"(ia64_intri_res) : "rO"(index)); \
449 ia64_intri_res; \ 449 ia64_intri_res; \
450}) 450})
451 451
452#define __ia64_get_dbr(index) \ 452#define __ia64_get_dbr(index) \
453({ \ 453({ \
454 __u64 ia64_intri_res; \ 454 unsigned long ia64_intri_res; \
455 asm volatile ("mov %0=dbr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \ 455 asm volatile ("mov %0=dbr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
456 ia64_intri_res; \ 456 ia64_intri_res; \
457}) 457})
458 458
459#define ia64_get_ibr(index) \ 459#define ia64_get_ibr(index) \
460({ \ 460({ \
461 __u64 ia64_intri_res; \ 461 unsigned long ia64_intri_res; \
462 asm volatile ("mov %0=ibr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \ 462 asm volatile ("mov %0=ibr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
463 ia64_intri_res; \ 463 ia64_intri_res; \
464}) 464})
465 465
466#define ia64_get_pkr(index) \ 466#define ia64_get_pkr(index) \
467({ \ 467({ \
468 __u64 ia64_intri_res; \ 468 unsigned long ia64_intri_res; \
469 asm volatile ("mov %0=pkr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \ 469 asm volatile ("mov %0=pkr[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
470 ia64_intri_res; \ 470 ia64_intri_res; \
471}) 471})
472 472
473#define ia64_get_pmc(index) \ 473#define ia64_get_pmc(index) \
474({ \ 474({ \
475 __u64 ia64_intri_res; \ 475 unsigned long ia64_intri_res; \
476 asm volatile ("mov %0=pmc[%1]" : "=r"(ia64_intri_res) : "r"(index)); \ 476 asm volatile ("mov %0=pmc[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
477 ia64_intri_res; \ 477 ia64_intri_res; \
478}) 478})
@@ -480,14 +480,14 @@ register unsigned long ia64_r13 asm ("r13") __used;
480 480
481#define ia64_native_get_pmd(index) \ 481#define ia64_native_get_pmd(index) \
482({ \ 482({ \
483 __u64 ia64_intri_res; \ 483 unsigned long ia64_intri_res; \
484 asm volatile ("mov %0=pmd[%1]" : "=r"(ia64_intri_res) : "r"(index)); \ 484 asm volatile ("mov %0=pmd[%1]" : "=r"(ia64_intri_res) : "r"(index)); \
485 ia64_intri_res; \ 485 ia64_intri_res; \
486}) 486})
487 487
488#define ia64_native_get_rr(index) \ 488#define ia64_native_get_rr(index) \
489({ \ 489({ \
490 __u64 ia64_intri_res; \ 490 unsigned long ia64_intri_res; \
491 asm volatile ("mov %0=rr[%1]" : "=r"(ia64_intri_res) : "r" (index)); \ 491 asm volatile ("mov %0=rr[%1]" : "=r"(ia64_intri_res) : "r" (index)); \
492 ia64_intri_res; \ 492 ia64_intri_res; \
493}) 493})
diff --git a/arch/ia64/include/asm/hw_irq.h b/arch/ia64/include/asm/hw_irq.h
index 5c99cbcb8a0..91619b31dbf 100644
--- a/arch/ia64/include/asm/hw_irq.h
+++ b/arch/ia64/include/asm/hw_irq.h
@@ -106,7 +106,7 @@ extern struct irq_cfg irq_cfg[NR_IRQS];
106#define irq_to_domain(x) irq_cfg[(x)].domain 106#define irq_to_domain(x) irq_cfg[(x)].domain
107DECLARE_PER_CPU(int[IA64_NUM_VECTORS], vector_irq); 107DECLARE_PER_CPU(int[IA64_NUM_VECTORS], vector_irq);
108 108
109extern struct hw_interrupt_type irq_type_ia64_lsapic; /* CPU-internal interrupt controller */ 109extern struct irq_chip irq_type_ia64_lsapic; /* CPU-internal interrupt controller */
110 110
111#ifdef CONFIG_PARAVIRT_GUEST 111#ifdef CONFIG_PARAVIRT_GUEST
112#include <asm/paravirt.h> 112#include <asm/paravirt.h>
@@ -146,7 +146,7 @@ static inline void ia64_native_resend_irq(unsigned int vector)
146 * Default implementations for the irq-descriptor API: 146 * Default implementations for the irq-descriptor API:
147 */ 147 */
148 148
149extern irq_desc_t irq_desc[NR_IRQS]; 149extern struct irq_desc irq_desc[NR_IRQS];
150 150
151#ifndef CONFIG_IA64_GENERIC 151#ifndef CONFIG_IA64_GENERIC
152static inline ia64_vector __ia64_irq_to_vector(int irq) 152static inline ia64_vector __ia64_irq_to_vector(int irq)
diff --git a/arch/ia64/include/asm/iommu.h b/arch/ia64/include/asm/iommu.h
index 0490794fe4a..745e095fe82 100644
--- a/arch/ia64/include/asm/iommu.h
+++ b/arch/ia64/include/asm/iommu.h
@@ -9,6 +9,11 @@ extern void pci_iommu_shutdown(void);
9extern void no_iommu_init(void); 9extern void no_iommu_init(void);
10extern int force_iommu, no_iommu; 10extern int force_iommu, no_iommu;
11extern int iommu_detected; 11extern int iommu_detected;
12#ifdef CONFIG_DMAR
13extern int iommu_pass_through;
14#else
15#define iommu_pass_through (0)
16#endif
12extern void iommu_dma_init(void); 17extern void iommu_dma_init(void);
13extern void machvec_init(const char *name); 18extern void machvec_init(const char *name);
14 19
diff --git a/arch/ia64/include/asm/mca.h b/arch/ia64/include/asm/mca.h
index 18a4321349a..44a0b53df90 100644
--- a/arch/ia64/include/asm/mca.h
+++ b/arch/ia64/include/asm/mca.h
@@ -72,39 +72,39 @@ typedef struct ia64_mc_info_s {
72struct ia64_sal_os_state { 72struct ia64_sal_os_state {
73 73
74 /* SAL to OS */ 74 /* SAL to OS */
75 u64 os_gp; /* GP of the os registered with the SAL, physical */ 75 unsigned long os_gp; /* GP of the os registered with the SAL, physical */
76 u64 pal_proc; /* PAL_PROC entry point, physical */ 76 unsigned long pal_proc; /* PAL_PROC entry point, physical */
77 u64 sal_proc; /* SAL_PROC entry point, physical */ 77 unsigned long sal_proc; /* SAL_PROC entry point, physical */
78 u64 rv_rc; /* MCA - Rendezvous state, INIT - reason code */ 78 unsigned long rv_rc; /* MCA - Rendezvous state, INIT - reason code */
79 u64 proc_state_param; /* from R18 */ 79 unsigned long proc_state_param; /* from R18 */
80 u64 monarch; /* 1 for a monarch event, 0 for a slave */ 80 unsigned long monarch; /* 1 for a monarch event, 0 for a slave */
81 81
82 /* common */ 82 /* common */
83 u64 sal_ra; /* Return address in SAL, physical */ 83 unsigned long sal_ra; /* Return address in SAL, physical */
84 u64 sal_gp; /* GP of the SAL - physical */ 84 unsigned long sal_gp; /* GP of the SAL - physical */
85 pal_min_state_area_t *pal_min_state; /* from R17. physical in asm, virtual in C */ 85 pal_min_state_area_t *pal_min_state; /* from R17. physical in asm, virtual in C */
86 /* Previous values of IA64_KR(CURRENT) and IA64_KR(CURRENT_STACK). 86 /* Previous values of IA64_KR(CURRENT) and IA64_KR(CURRENT_STACK).
87 * Note: if the MCA/INIT recovery code wants to resume to a new context 87 * Note: if the MCA/INIT recovery code wants to resume to a new context
88 * then it must change these values to reflect the new kernel stack. 88 * then it must change these values to reflect the new kernel stack.
89 */ 89 */
90 u64 prev_IA64_KR_CURRENT; /* previous value of IA64_KR(CURRENT) */ 90 unsigned long prev_IA64_KR_CURRENT; /* previous value of IA64_KR(CURRENT) */
91 u64 prev_IA64_KR_CURRENT_STACK; 91 unsigned long prev_IA64_KR_CURRENT_STACK;
92 struct task_struct *prev_task; /* previous task, NULL if it is not useful */ 92 struct task_struct *prev_task; /* previous task, NULL if it is not useful */
93 /* Some interrupt registers are not saved in minstate, pt_regs or 93 /* Some interrupt registers are not saved in minstate, pt_regs or
94 * switch_stack. Because MCA/INIT can occur when interrupts are 94 * switch_stack. Because MCA/INIT can occur when interrupts are
95 * disabled, we need to save the additional interrupt registers over 95 * disabled, we need to save the additional interrupt registers over
96 * MCA/INIT and resume. 96 * MCA/INIT and resume.
97 */ 97 */
98 u64 isr; 98 unsigned long isr;
99 u64 ifa; 99 unsigned long ifa;
100 u64 itir; 100 unsigned long itir;
101 u64 iipa; 101 unsigned long iipa;
102 u64 iim; 102 unsigned long iim;
103 u64 iha; 103 unsigned long iha;
104 104
105 /* OS to SAL */ 105 /* OS to SAL */
106 u64 os_status; /* OS status to SAL, enum below */ 106 unsigned long os_status; /* OS status to SAL, enum below */
107 u64 context; /* 0 if return to same context 107 unsigned long context; /* 0 if return to same context
108 1 if return to new context */ 108 1 if return to new context */
109}; 109};
110 110
@@ -150,7 +150,7 @@ extern void ia64_slave_init_handler(void);
150extern void ia64_mca_cmc_vector_setup(void); 150extern void ia64_mca_cmc_vector_setup(void);
151extern int ia64_reg_MCA_extension(int (*fn)(void *, struct ia64_sal_os_state *)); 151extern int ia64_reg_MCA_extension(int (*fn)(void *, struct ia64_sal_os_state *));
152extern void ia64_unreg_MCA_extension(void); 152extern void ia64_unreg_MCA_extension(void);
153extern u64 ia64_get_rnat(u64 *); 153extern unsigned long ia64_get_rnat(unsigned long *);
154extern void ia64_mca_printk(const char * fmt, ...) 154extern void ia64_mca_printk(const char * fmt, ...)
155 __attribute__ ((format (printf, 1, 2))); 155 __attribute__ ((format (printf, 1, 2)));
156 156
diff --git a/arch/ia64/include/asm/meminit.h b/arch/ia64/include/asm/meminit.h
index c0cea375620..688a812c017 100644
--- a/arch/ia64/include/asm/meminit.h
+++ b/arch/ia64/include/asm/meminit.h
@@ -25,8 +25,8 @@
25#define IA64_MAX_RSVD_REGIONS 9 25#define IA64_MAX_RSVD_REGIONS 9
26 26
27struct rsvd_region { 27struct rsvd_region {
28 unsigned long start; /* virtual address of beginning of element */ 28 u64 start; /* virtual address of beginning of element */
29 unsigned long end; /* virtual address of end of element + 1 */ 29 u64 end; /* virtual address of end of element + 1 */
30}; 30};
31 31
32extern struct rsvd_region rsvd_region[IA64_MAX_RSVD_REGIONS + 1]; 32extern struct rsvd_region rsvd_region[IA64_MAX_RSVD_REGIONS + 1];
@@ -35,13 +35,13 @@ extern int num_rsvd_regions;
35extern void find_memory (void); 35extern void find_memory (void);
36extern void reserve_memory (void); 36extern void reserve_memory (void);
37extern void find_initrd (void); 37extern void find_initrd (void);
38extern int filter_rsvd_memory (unsigned long start, unsigned long end, void *arg); 38extern int filter_rsvd_memory (u64 start, u64 end, void *arg);
39extern int filter_memory (unsigned long start, unsigned long end, void *arg); 39extern int filter_memory (u64 start, u64 end, void *arg);
40extern unsigned long efi_memmap_init(unsigned long *s, unsigned long *e); 40extern unsigned long efi_memmap_init(u64 *s, u64 *e);
41extern int find_max_min_low_pfn (unsigned long , unsigned long, void *); 41extern int find_max_min_low_pfn (u64, u64, void *);
42 42
43extern unsigned long vmcore_find_descriptor_size(unsigned long address); 43extern unsigned long vmcore_find_descriptor_size(unsigned long address);
44extern int reserve_elfcorehdr(unsigned long *start, unsigned long *end); 44extern int reserve_elfcorehdr(u64 *start, u64 *end);
45 45
46/* 46/*
47 * For rounding an address to the next IA64_GRANULE_SIZE or order 47 * For rounding an address to the next IA64_GRANULE_SIZE or order
@@ -63,8 +63,8 @@ extern int register_active_ranges(u64 start, u64 len, int nid);
63# define LARGE_GAP 0x40000000 /* Use virtual mem map if hole is > than this */ 63# define LARGE_GAP 0x40000000 /* Use virtual mem map if hole is > than this */
64 extern unsigned long vmalloc_end; 64 extern unsigned long vmalloc_end;
65 extern struct page *vmem_map; 65 extern struct page *vmem_map;
66 extern int find_largest_hole (u64 start, u64 end, void *arg); 66 extern int find_largest_hole(u64 start, u64 end, void *arg);
67 extern int create_mem_map_page_table (u64 start, u64 end, void *arg); 67 extern int create_mem_map_page_table(u64 start, u64 end, void *arg);
68 extern int vmemmap_find_next_valid_pfn(int, int); 68 extern int vmemmap_find_next_valid_pfn(int, int);
69#else 69#else
70static inline int vmemmap_find_next_valid_pfn(int node, int i) 70static inline int vmemmap_find_next_valid_pfn(int node, int i)
diff --git a/arch/ia64/include/asm/pal.h b/arch/ia64/include/asm/pal.h
index 67b02901ead..6a292505b39 100644
--- a/arch/ia64/include/asm/pal.h
+++ b/arch/ia64/include/asm/pal.h
@@ -989,8 +989,8 @@ ia64_pal_cache_read (pal_cache_line_id_u_t line_id, u64 physical_addr)
989} 989}
990 990
991/* Return summary information about the hierarchy of caches controlled by the processor */ 991/* Return summary information about the hierarchy of caches controlled by the processor */
992static inline s64 992static inline long ia64_pal_cache_summary(unsigned long *cache_levels,
993ia64_pal_cache_summary (u64 *cache_levels, u64 *unique_caches) 993 unsigned long *unique_caches)
994{ 994{
995 struct ia64_pal_retval iprv; 995 struct ia64_pal_retval iprv;
996 PAL_CALL(iprv, PAL_CACHE_SUMMARY, 0, 0, 0); 996 PAL_CALL(iprv, PAL_CACHE_SUMMARY, 0, 0, 0);
@@ -1038,8 +1038,8 @@ ia64_pal_copy_pal (u64 target_addr, u64 alloc_size, u64 processor, u64 *pal_proc
1038} 1038}
1039 1039
1040/* Return the number of instruction and data debug register pairs */ 1040/* Return the number of instruction and data debug register pairs */
1041static inline s64 1041static inline long ia64_pal_debug_info(unsigned long *inst_regs,
1042ia64_pal_debug_info (u64 *inst_regs, u64 *data_regs) 1042 unsigned long *data_regs)
1043{ 1043{
1044 struct ia64_pal_retval iprv; 1044 struct ia64_pal_retval iprv;
1045 PAL_CALL(iprv, PAL_DEBUG_INFO, 0, 0, 0); 1045 PAL_CALL(iprv, PAL_DEBUG_INFO, 0, 0, 0);
@@ -1074,8 +1074,7 @@ ia64_pal_fixed_addr (u64 *global_unique_addr)
1074} 1074}
1075 1075
1076/* Get base frequency of the platform if generated by the processor */ 1076/* Get base frequency of the platform if generated by the processor */
1077static inline s64 1077static inline long ia64_pal_freq_base(unsigned long *platform_base_freq)
1078ia64_pal_freq_base (u64 *platform_base_freq)
1079{ 1078{
1080 struct ia64_pal_retval iprv; 1079 struct ia64_pal_retval iprv;
1081 PAL_CALL(iprv, PAL_FREQ_BASE, 0, 0, 0); 1080 PAL_CALL(iprv, PAL_FREQ_BASE, 0, 0, 0);
@@ -1437,7 +1436,7 @@ ia64_pal_proc_set_features (u64 feature_select)
1437 * possible. 1436 * possible.
1438 */ 1437 */
1439typedef struct ia64_ptce_info_s { 1438typedef struct ia64_ptce_info_s {
1440 u64 base; 1439 unsigned long base;
1441 u32 count[2]; 1440 u32 count[2];
1442 u32 stride[2]; 1441 u32 stride[2];
1443} ia64_ptce_info_t; 1442} ia64_ptce_info_t;
@@ -1478,9 +1477,9 @@ ia64_pal_register_info (u64 info_request, u64 *reg_info_1, u64 *reg_info_2)
1478} 1477}
1479 1478
1480typedef union pal_hints_u { 1479typedef union pal_hints_u {
1481 u64 ph_data; 1480 unsigned long ph_data;
1482 struct { 1481 struct {
1483 u64 si : 1, 1482 unsigned long si : 1,
1484 li : 1, 1483 li : 1,
1485 reserved : 62; 1484 reserved : 62;
1486 } pal_hints_s; 1485 } pal_hints_s;
@@ -1489,8 +1488,8 @@ typedef union pal_hints_u {
1489/* Return information about the register stack and RSE for this processor 1488/* Return information about the register stack and RSE for this processor
1490 * implementation. 1489 * implementation.
1491 */ 1490 */
1492static inline s64 1491static inline long ia64_pal_rse_info(unsigned long *num_phys_stacked,
1493ia64_pal_rse_info (u64 *num_phys_stacked, pal_hints_u_t *hints) 1492 pal_hints_u_t *hints)
1494{ 1493{
1495 struct ia64_pal_retval iprv; 1494 struct ia64_pal_retval iprv;
1496 PAL_CALL(iprv, PAL_RSE_INFO, 0, 0, 0); 1495 PAL_CALL(iprv, PAL_RSE_INFO, 0, 0, 0);
@@ -1608,8 +1607,7 @@ ia64_pal_vm_info (u64 tc_level, u64 tc_type, pal_tc_info_u_t *tc_info, u64 *tc_
1608/* Get page size information about the virtual memory characteristics of the processor 1607/* Get page size information about the virtual memory characteristics of the processor
1609 * implementation. 1608 * implementation.
1610 */ 1609 */
1611static inline s64 1610static inline s64 ia64_pal_vm_page_size(u64 *tr_pages, u64 *vw_pages)
1612ia64_pal_vm_page_size (u64 *tr_pages, u64 *vw_pages)
1613{ 1611{
1614 struct ia64_pal_retval iprv; 1612 struct ia64_pal_retval iprv;
1615 PAL_CALL(iprv, PAL_VM_PAGE_SIZE, 0, 0, 0); 1613 PAL_CALL(iprv, PAL_VM_PAGE_SIZE, 0, 0, 0);
diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h
index 1d660d89db0..fcfca56bb85 100644
--- a/arch/ia64/include/asm/pci.h
+++ b/arch/ia64/include/asm/pci.h
@@ -135,19 +135,6 @@ extern void pcibios_resource_to_bus(struct pci_dev *dev,
135extern void pcibios_bus_to_resource(struct pci_dev *dev, 135extern void pcibios_bus_to_resource(struct pci_dev *dev,
136 struct resource *res, struct pci_bus_region *region); 136 struct resource *res, struct pci_bus_region *region);
137 137
138static inline struct resource *
139pcibios_select_root(struct pci_dev *pdev, struct resource *res)
140{
141 struct resource *root = NULL;
142
143 if (res->flags & IORESOURCE_IO)
144 root = &ioport_resource;
145 if (res->flags & IORESOURCE_MEM)
146 root = &iomem_resource;
147
148 return root;
149}
150
151#define pcibios_scan_all_fns(a, b) 0 138#define pcibios_scan_all_fns(a, b) 0
152 139
153#define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ 140#define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ
diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h
index f88fa054d01..3eaeedf1aef 100644
--- a/arch/ia64/include/asm/processor.h
+++ b/arch/ia64/include/asm/processor.h
@@ -187,40 +187,40 @@ union ia64_rr {
187 * state comes earlier: 187 * state comes earlier:
188 */ 188 */
189struct cpuinfo_ia64 { 189struct cpuinfo_ia64 {
190 __u32 softirq_pending; 190 unsigned int softirq_pending;
191 __u64 itm_delta; /* # of clock cycles between clock ticks */ 191 unsigned long itm_delta; /* # of clock cycles between clock ticks */
192 __u64 itm_next; /* interval timer mask value to use for next clock tick */ 192 unsigned long itm_next; /* interval timer mask value to use for next clock tick */
193 __u64 nsec_per_cyc; /* (1000000000<<IA64_NSEC_PER_CYC_SHIFT)/itc_freq */ 193 unsigned long nsec_per_cyc; /* (1000000000<<IA64_NSEC_PER_CYC_SHIFT)/itc_freq */
194 __u64 unimpl_va_mask; /* mask of unimplemented virtual address bits (from PAL) */ 194 unsigned long unimpl_va_mask; /* mask of unimplemented virtual address bits (from PAL) */
195 __u64 unimpl_pa_mask; /* mask of unimplemented physical address bits (from PAL) */ 195 unsigned long unimpl_pa_mask; /* mask of unimplemented physical address bits (from PAL) */
196 __u64 itc_freq; /* frequency of ITC counter */ 196 unsigned long itc_freq; /* frequency of ITC counter */
197 __u64 proc_freq; /* frequency of processor */ 197 unsigned long proc_freq; /* frequency of processor */
198 __u64 cyc_per_usec; /* itc_freq/1000000 */ 198 unsigned long cyc_per_usec; /* itc_freq/1000000 */
199 __u64 ptce_base; 199 unsigned long ptce_base;
200 __u32 ptce_count[2]; 200 unsigned int ptce_count[2];
201 __u32 ptce_stride[2]; 201 unsigned int ptce_stride[2];
202 struct task_struct *ksoftirqd; /* kernel softirq daemon for this CPU */ 202 struct task_struct *ksoftirqd; /* kernel softirq daemon for this CPU */
203 203
204#ifdef CONFIG_SMP 204#ifdef CONFIG_SMP
205 __u64 loops_per_jiffy; 205 unsigned long loops_per_jiffy;
206 int cpu; 206 int cpu;
207 __u32 socket_id; /* physical processor socket id */ 207 unsigned int socket_id; /* physical processor socket id */
208 __u16 core_id; /* core id */ 208 unsigned short core_id; /* core id */
209 __u16 thread_id; /* thread id */ 209 unsigned short thread_id; /* thread id */
210 __u16 num_log; /* Total number of logical processors on 210 unsigned short num_log; /* Total number of logical processors on
211 * this socket that were successfully booted */ 211 * this socket that were successfully booted */
212 __u8 cores_per_socket; /* Cores per processor socket */ 212 unsigned char cores_per_socket; /* Cores per processor socket */
213 __u8 threads_per_core; /* Threads per core */ 213 unsigned char threads_per_core; /* Threads per core */
214#endif 214#endif
215 215
216 /* CPUID-derived information: */ 216 /* CPUID-derived information: */
217 __u64 ppn; 217 unsigned long ppn;
218 __u64 features; 218 unsigned long features;
219 __u8 number; 219 unsigned char number;
220 __u8 revision; 220 unsigned char revision;
221 __u8 model; 221 unsigned char model;
222 __u8 family; 222 unsigned char family;
223 __u8 archrev; 223 unsigned char archrev;
224 char vendor[16]; 224 char vendor[16];
225 char *model_name; 225 char *model_name;
226 226
@@ -329,8 +329,8 @@ struct thread_struct {
329#else 329#else
330# define INIT_THREAD_PM 330# define INIT_THREAD_PM
331#endif 331#endif
332 __u64 dbr[IA64_NUM_DBG_REGS]; 332 unsigned long dbr[IA64_NUM_DBG_REGS];
333 __u64 ibr[IA64_NUM_DBG_REGS]; 333 unsigned long ibr[IA64_NUM_DBG_REGS];
334 struct ia64_fpreg fph[96]; /* saved/loaded on demand */ 334 struct ia64_fpreg fph[96]; /* saved/loaded on demand */
335}; 335};
336 336
diff --git a/arch/ia64/include/asm/sal.h b/arch/ia64/include/asm/sal.h
index 966797a97c9..d19ddba4e32 100644
--- a/arch/ia64/include/asm/sal.h
+++ b/arch/ia64/include/asm/sal.h
@@ -106,10 +106,10 @@ struct ia64_sal_retval {
106 * informational value should be printed (e.g., "reboot for 106 * informational value should be printed (e.g., "reboot for
107 * change to take effect"). 107 * change to take effect").
108 */ 108 */
109 s64 status; 109 long status;
110 u64 v0; 110 unsigned long v0;
111 u64 v1; 111 unsigned long v1;
112 u64 v2; 112 unsigned long v2;
113}; 113};
114 114
115typedef struct ia64_sal_retval (*ia64_sal_handler) (u64, ...); 115typedef struct ia64_sal_retval (*ia64_sal_handler) (u64, ...);
diff --git a/arch/ia64/include/asm/sn/sn_sal.h b/arch/ia64/include/asm/sn/sn_sal.h
index e310fc0135d..1f5ff470a5a 100644
--- a/arch/ia64/include/asm/sn/sn_sal.h
+++ b/arch/ia64/include/asm/sn/sn_sal.h
@@ -929,7 +929,7 @@ ia64_sn_sysctl_tio_clock_reset(nasid_t nasid)
929/* 929/*
930 * Get the associated ioboard type for a given nasid. 930 * Get the associated ioboard type for a given nasid.
931 */ 931 */
932static inline s64 932static inline long
933ia64_sn_sysctl_ioboard_get(nasid_t nasid, u16 *ioboard) 933ia64_sn_sysctl_ioboard_get(nasid_t nasid, u16 *ioboard)
934{ 934{
935 struct ia64_sal_retval isrv; 935 struct ia64_sal_retval isrv;
diff --git a/arch/ia64/include/asm/types.h b/arch/ia64/include/asm/types.h
index fbf1ed3b44c..bcd260e597d 100644
--- a/arch/ia64/include/asm/types.h
+++ b/arch/ia64/include/asm/types.h
@@ -2,10 +2,11 @@
2#define _ASM_IA64_TYPES_H 2#define _ASM_IA64_TYPES_H
3 3
4/* 4/*
5 * This file is never included by application software unless explicitly requested (e.g., 5 * This file is never included by application software unless explicitly
6 * via linux/types.h) in which case the application is Linux specific so (user-) name 6 * requested (e.g., via linux/types.h) in which case the application is
7 * space pollution is not a major issue. However, for interoperability, libraries still 7 * Linux specific so (user-) name space pollution is not a major issue.
8 * need to be careful to avoid a name clashes. 8 * However, for interoperability, libraries still need to be careful to
9 * avoid naming clashes.
9 * 10 *
10 * Based on <asm-alpha/types.h>. 11 * Based on <asm-alpha/types.h>.
11 * 12 *
@@ -13,7 +14,11 @@
13 * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co 14 * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
14 */ 15 */
15 16
17#ifdef __KERNEL__
18#include <asm-generic/int-ll64.h>
19#else
16#include <asm-generic/int-l64.h> 20#include <asm-generic/int-l64.h>
21#endif
17 22
18#ifdef __ASSEMBLY__ 23#ifdef __ASSEMBLY__
19# define __IA64_UL(x) (x) 24# define __IA64_UL(x) (x)
diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h
index 10a9eb05f74..5a5347f5c4e 100644
--- a/arch/ia64/include/asm/unistd.h
+++ b/arch/ia64/include/asm/unistd.h
@@ -310,11 +310,12 @@
310#define __NR_inotify_init1 1318 310#define __NR_inotify_init1 1318
311#define __NR_preadv 1319 311#define __NR_preadv 1319
312#define __NR_pwritev 1320 312#define __NR_pwritev 1320
313#define __NR_rt_tgsigqueueinfo 1321
313 314
314#ifdef __KERNEL__ 315#ifdef __KERNEL__
315 316
316 317
317#define NR_syscalls 297 /* length of syscall table */ 318#define NR_syscalls 298 /* length of syscall table */
318 319
319/* 320/*
320 * The following defines stop scripts/checksyscalls.sh from complaining about 321 * The following defines stop scripts/checksyscalls.sh from complaining about
@@ -328,6 +329,7 @@
328#define __IGNORE_utime /* utimes() */ 329#define __IGNORE_utime /* utimes() */
329#define __IGNORE_getpgrp /* getpgid() */ 330#define __IGNORE_getpgrp /* getpgid() */
330#define __IGNORE_vfork /* clone() */ 331#define __IGNORE_vfork /* clone() */
332#define __IGNORE_umount2 /* umount() */
331 333
332#define __ARCH_WANT_SYS_RT_SIGACTION 334#define __ARCH_WANT_SYS_RT_SIGACTION
333#define __ARCH_WANT_SYS_RT_SIGSUSPEND 335#define __ARCH_WANT_SYS_RT_SIGSUSPEND
diff --git a/arch/ia64/kernel/acpi-processor.c b/arch/ia64/kernel/acpi-processor.c
index cbe6cee5a55..dbda7bde611 100644
--- a/arch/ia64/kernel/acpi-processor.c
+++ b/arch/ia64/kernel/acpi-processor.c
@@ -71,3 +71,15 @@ void arch_acpi_processor_init_pdc(struct acpi_processor *pr)
71} 71}
72 72
73EXPORT_SYMBOL(arch_acpi_processor_init_pdc); 73EXPORT_SYMBOL(arch_acpi_processor_init_pdc);
74
75void arch_acpi_processor_cleanup_pdc(struct acpi_processor *pr)
76{
77 if (pr->pdc) {
78 kfree(pr->pdc->pointer->buffer.pointer);
79 kfree(pr->pdc->pointer);
80 kfree(pr->pdc);
81 pr->pdc = NULL;
82 }
83}
84
85EXPORT_SYMBOL(arch_acpi_processor_cleanup_pdc);
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c
index 7ef80e8161c..c745d0aeb6e 100644
--- a/arch/ia64/kernel/efi.c
+++ b/arch/ia64/kernel/efi.c
@@ -46,7 +46,7 @@ extern efi_status_t efi_call_phys (void *, ...);
46struct efi efi; 46struct efi efi;
47EXPORT_SYMBOL(efi); 47EXPORT_SYMBOL(efi);
48static efi_runtime_services_t *runtime; 48static efi_runtime_services_t *runtime;
49static unsigned long mem_limit = ~0UL, max_addr = ~0UL, min_addr = 0UL; 49static u64 mem_limit = ~0UL, max_addr = ~0UL, min_addr = 0UL;
50 50
51#define efi_call_virt(f, args...) (*(f))(args) 51#define efi_call_virt(f, args...) (*(f))(args)
52 52
@@ -356,7 +356,7 @@ efi_get_pal_addr (void)
356 356
357 if (++pal_code_count > 1) { 357 if (++pal_code_count > 1) {
358 printk(KERN_ERR "Too many EFI Pal Code memory ranges, " 358 printk(KERN_ERR "Too many EFI Pal Code memory ranges, "
359 "dropped @ %lx\n", md->phys_addr); 359 "dropped @ %llx\n", md->phys_addr);
360 continue; 360 continue;
361 } 361 }
362 /* 362 /*
@@ -490,10 +490,10 @@ efi_init (void)
490 } 490 }
491 } 491 }
492 if (min_addr != 0UL) 492 if (min_addr != 0UL)
493 printk(KERN_INFO "Ignoring memory below %luMB\n", 493 printk(KERN_INFO "Ignoring memory below %lluMB\n",
494 min_addr >> 20); 494 min_addr >> 20);
495 if (max_addr != ~0UL) 495 if (max_addr != ~0UL)
496 printk(KERN_INFO "Ignoring memory above %luMB\n", 496 printk(KERN_INFO "Ignoring memory above %lluMB\n",
497 max_addr >> 20); 497 max_addr >> 20);
498 498
499 efi.systab = __va(ia64_boot_param->efi_systab); 499 efi.systab = __va(ia64_boot_param->efi_systab);
@@ -1066,7 +1066,7 @@ find_memmap_space (void)
1066 * parts exist, and are WB. 1066 * parts exist, and are WB.
1067 */ 1067 */
1068unsigned long 1068unsigned long
1069efi_memmap_init(unsigned long *s, unsigned long *e) 1069efi_memmap_init(u64 *s, u64 *e)
1070{ 1070{
1071 struct kern_memdesc *k, *prev = NULL; 1071 struct kern_memdesc *k, *prev = NULL;
1072 u64 contig_low=0, contig_high=0; 1072 u64 contig_low=0, contig_high=0;
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index 7bebac0e1d4..d0e7d37017b 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -1805,6 +1805,7 @@ sys_call_table:
1805 data8 sys_inotify_init1 1805 data8 sys_inotify_init1
1806 data8 sys_preadv 1806 data8 sys_preadv
1807 data8 sys_pwritev // 1320 1807 data8 sys_pwritev // 1320
1808 data8 sys_rt_tgsigqueueinfo
1808 1809
1809 .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls 1810 .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls
1810#endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */ 1811#endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c
index f92cef47bf8..c48b03f2b61 100644
--- a/arch/ia64/kernel/iosapic.c
+++ b/arch/ia64/kernel/iosapic.c
@@ -451,7 +451,7 @@ iosapic_startup_edge_irq (unsigned int irq)
451static void 451static void
452iosapic_ack_edge_irq (unsigned int irq) 452iosapic_ack_edge_irq (unsigned int irq)
453{ 453{
454 irq_desc_t *idesc = irq_desc + irq; 454 struct irq_desc *idesc = irq_desc + irq;
455 455
456 irq_complete_move(irq); 456 irq_complete_move(irq);
457 move_native_irq(irq); 457 move_native_irq(irq);
@@ -600,8 +600,8 @@ static int
600register_intr (unsigned int gsi, int irq, unsigned char delivery, 600register_intr (unsigned int gsi, int irq, unsigned char delivery,
601 unsigned long polarity, unsigned long trigger) 601 unsigned long polarity, unsigned long trigger)
602{ 602{
603 irq_desc_t *idesc; 603 struct irq_desc *idesc;
604 struct hw_interrupt_type *irq_type; 604 struct irq_chip *irq_type;
605 int index; 605 int index;
606 struct iosapic_rte_info *rte; 606 struct iosapic_rte_info *rte;
607 607
@@ -650,7 +650,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery,
650 650
651 idesc = irq_desc + irq; 651 idesc = irq_desc + irq;
652 if (irq_type != NULL && idesc->chip != irq_type) { 652 if (irq_type != NULL && idesc->chip != irq_type) {
653 if (idesc->chip != &no_irq_type) 653 if (idesc->chip != &no_irq_chip)
654 printk(KERN_WARNING 654 printk(KERN_WARNING
655 "%s: changing vector %d from %s to %s\n", 655 "%s: changing vector %d from %s to %s\n",
656 __func__, irq_to_vector(irq), 656 __func__, irq_to_vector(irq),
@@ -828,7 +828,7 @@ iosapic_unregister_intr (unsigned int gsi)
828{ 828{
829 unsigned long flags; 829 unsigned long flags;
830 int irq, index; 830 int irq, index;
831 irq_desc_t *idesc; 831 struct irq_desc *idesc;
832 u32 low32; 832 u32 low32;
833 unsigned long trigger, polarity; 833 unsigned long trigger, polarity;
834 unsigned int dest; 834 unsigned int dest;
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
index 7429752ef5a..7d8951229e7 100644
--- a/arch/ia64/kernel/irq.c
+++ b/arch/ia64/kernel/irq.c
@@ -130,7 +130,7 @@ unsigned int vectors_in_migration[NR_IRQS];
130 */ 130 */
131static void migrate_irqs(void) 131static void migrate_irqs(void)
132{ 132{
133 irq_desc_t *desc; 133 struct irq_desc *desc;
134 int irq, new_cpu; 134 int irq, new_cpu;
135 135
136 for (irq=0; irq < NR_IRQS; irq++) { 136 for (irq=0; irq < NR_IRQS; irq++) {
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
index b448197728b..dd9d7b54f1a 100644
--- a/arch/ia64/kernel/irq_ia64.c
+++ b/arch/ia64/kernel/irq_ia64.c
@@ -630,7 +630,7 @@ static struct irqaction tlb_irqaction = {
630void 630void
631ia64_native_register_percpu_irq (ia64_vector vec, struct irqaction *action) 631ia64_native_register_percpu_irq (ia64_vector vec, struct irqaction *action)
632{ 632{
633 irq_desc_t *desc; 633 struct irq_desc *desc;
634 unsigned int irq; 634 unsigned int irq;
635 635
636 irq = vec; 636 irq = vec;
diff --git a/arch/ia64/kernel/irq_lsapic.c b/arch/ia64/kernel/irq_lsapic.c
index e56a7a36aca..fc1549d4564 100644
--- a/arch/ia64/kernel/irq_lsapic.c
+++ b/arch/ia64/kernel/irq_lsapic.c
@@ -33,7 +33,7 @@ static int lsapic_retrigger(unsigned int irq)
33 return 1; 33 return 1;
34} 34}
35 35
36struct hw_interrupt_type irq_type_ia64_lsapic = { 36struct irq_chip irq_type_ia64_lsapic = {
37 .name = "LSAPIC", 37 .name = "LSAPIC",
38 .startup = lsapic_noop_startup, 38 .startup = lsapic_noop_startup,
39 .shutdown = lsapic_noop, 39 .shutdown = lsapic_noop,
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 5b17bd40227..7b30d21c519 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -850,7 +850,7 @@ EXPORT_SYMBOL(ia64_unreg_MCA_extension);
850 850
851 851
852static inline void 852static inline void
853copy_reg(const u64 *fr, u64 fnat, u64 *tr, u64 *tnat) 853copy_reg(const u64 *fr, u64 fnat, unsigned long *tr, unsigned long *tnat)
854{ 854{
855 u64 fslot, tslot, nat; 855 u64 fslot, tslot, nat;
856 *tr = *fr; 856 *tr = *fr;
@@ -914,9 +914,9 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
914 struct switch_stack *old_sw; 914 struct switch_stack *old_sw;
915 unsigned size = sizeof(struct pt_regs) + 915 unsigned size = sizeof(struct pt_regs) +
916 sizeof(struct switch_stack) + 16; 916 sizeof(struct switch_stack) + 16;
917 u64 *old_bspstore, *old_bsp; 917 unsigned long *old_bspstore, *old_bsp;
918 u64 *new_bspstore, *new_bsp; 918 unsigned long *new_bspstore, *new_bsp;
919 u64 old_unat, old_rnat, new_rnat, nat; 919 unsigned long old_unat, old_rnat, new_rnat, nat;
920 u64 slots, loadrs = regs->loadrs; 920 u64 slots, loadrs = regs->loadrs;
921 u64 r12 = ms->pmsa_gr[12-1], r13 = ms->pmsa_gr[13-1]; 921 u64 r12 = ms->pmsa_gr[12-1], r13 = ms->pmsa_gr[13-1];
922 u64 ar_bspstore = regs->ar_bspstore; 922 u64 ar_bspstore = regs->ar_bspstore;
@@ -968,10 +968,10 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
968 * loadrs for the new stack and save it in the new pt_regs, where 968 * loadrs for the new stack and save it in the new pt_regs, where
969 * ia64_old_stack() can get it. 969 * ia64_old_stack() can get it.
970 */ 970 */
971 old_bspstore = (u64 *)ar_bspstore; 971 old_bspstore = (unsigned long *)ar_bspstore;
972 old_bsp = (u64 *)ar_bsp; 972 old_bsp = (unsigned long *)ar_bsp;
973 slots = ia64_rse_num_regs(old_bspstore, old_bsp); 973 slots = ia64_rse_num_regs(old_bspstore, old_bsp);
974 new_bspstore = (u64 *)((u64)current + IA64_RBS_OFFSET); 974 new_bspstore = (unsigned long *)((u64)current + IA64_RBS_OFFSET);
975 new_bsp = ia64_rse_skip_regs(new_bspstore, slots); 975 new_bsp = ia64_rse_skip_regs(new_bspstore, slots);
976 regs->loadrs = (new_bsp - new_bspstore) * 8 << 16; 976 regs->loadrs = (new_bsp - new_bspstore) * 8 << 16;
977 977
@@ -1917,9 +1917,9 @@ ia64_mca_init(void)
1917 ia64_fptr_t *init_hldlr_ptr_slave = (ia64_fptr_t *)ia64_os_init_dispatch_slave; 1917 ia64_fptr_t *init_hldlr_ptr_slave = (ia64_fptr_t *)ia64_os_init_dispatch_slave;
1918 ia64_fptr_t *mca_hldlr_ptr = (ia64_fptr_t *)ia64_os_mca_dispatch; 1918 ia64_fptr_t *mca_hldlr_ptr = (ia64_fptr_t *)ia64_os_mca_dispatch;
1919 int i; 1919 int i;
1920 s64 rc; 1920 long rc;
1921 struct ia64_sal_retval isrv; 1921 struct ia64_sal_retval isrv;
1922 u64 timeout = IA64_MCA_RENDEZ_TIMEOUT; /* platform specific */ 1922 unsigned long timeout = IA64_MCA_RENDEZ_TIMEOUT; /* platform specific */
1923 static struct notifier_block default_init_monarch_nb = { 1923 static struct notifier_block default_init_monarch_nb = {
1924 .notifier_call = default_monarch_init_process, 1924 .notifier_call = default_monarch_init_process,
1925 .priority = 0/* we need to notified last */ 1925 .priority = 0/* we need to notified last */
@@ -2092,7 +2092,7 @@ ia64_mca_late_init(void)
2092 cpe_poll_timer.function = ia64_mca_cpe_poll; 2092 cpe_poll_timer.function = ia64_mca_cpe_poll;
2093 2093
2094 { 2094 {
2095 irq_desc_t *desc; 2095 struct irq_desc *desc;
2096 unsigned int irq; 2096 unsigned int irq;
2097 2097
2098 if (cpe_vector >= 0) { 2098 if (cpe_vector >= 0) {
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
index da3b0cf495a..1481b0a28ca 100644
--- a/arch/ia64/kernel/module.c
+++ b/arch/ia64/kernel/module.c
@@ -171,7 +171,8 @@ apply_imm60 (struct module *mod, struct insn *insn, uint64_t val)
171 return 0; 171 return 0;
172 } 172 }
173 if (val + ((uint64_t) 1 << 59) >= (1UL << 60)) { 173 if (val + ((uint64_t) 1 << 59) >= (1UL << 60)) {
174 printk(KERN_ERR "%s: value %ld out of IMM60 range\n", mod->name, (int64_t) val); 174 printk(KERN_ERR "%s: value %ld out of IMM60 range\n",
175 mod->name, (long) val);
175 return 0; 176 return 0;
176 } 177 }
177 ia64_patch_imm60((u64) insn, val); 178 ia64_patch_imm60((u64) insn, val);
@@ -182,7 +183,8 @@ static int
182apply_imm22 (struct module *mod, struct insn *insn, uint64_t val) 183apply_imm22 (struct module *mod, struct insn *insn, uint64_t val)
183{ 184{
184 if (val + (1 << 21) >= (1 << 22)) { 185 if (val + (1 << 21) >= (1 << 22)) {
185 printk(KERN_ERR "%s: value %li out of IMM22 range\n", mod->name, (int64_t)val); 186 printk(KERN_ERR "%s: value %li out of IMM22 range\n",
187 mod->name, (long)val);
186 return 0; 188 return 0;
187 } 189 }
188 ia64_patch((u64) insn, 0x01fffcfe000UL, ( ((val & 0x200000UL) << 15) /* bit 21 -> 36 */ 190 ia64_patch((u64) insn, 0x01fffcfe000UL, ( ((val & 0x200000UL) << 15) /* bit 21 -> 36 */
@@ -196,7 +198,8 @@ static int
196apply_imm21b (struct module *mod, struct insn *insn, uint64_t val) 198apply_imm21b (struct module *mod, struct insn *insn, uint64_t val)
197{ 199{
198 if (val + (1 << 20) >= (1 << 21)) { 200 if (val + (1 << 20) >= (1 << 21)) {
199 printk(KERN_ERR "%s: value %li out of IMM21b range\n", mod->name, (int64_t)val); 201 printk(KERN_ERR "%s: value %li out of IMM21b range\n",
202 mod->name, (long)val);
200 return 0; 203 return 0;
201 } 204 }
202 ia64_patch((u64) insn, 0x11ffffe000UL, ( ((val & 0x100000UL) << 16) /* bit 20 -> 36 */ 205 ia64_patch((u64) insn, 0x11ffffe000UL, ( ((val & 0x100000UL) << 16) /* bit 20 -> 36 */
@@ -701,8 +704,9 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend,
701 case RV_PCREL2: 704 case RV_PCREL2:
702 if (r_type == R_IA64_PCREL21BI) { 705 if (r_type == R_IA64_PCREL21BI) {
703 if (!is_internal(mod, val)) { 706 if (!is_internal(mod, val)) {
704 printk(KERN_ERR "%s: %s reloc against non-local symbol (%lx)\n", 707 printk(KERN_ERR "%s: %s reloc against "
705 __func__, reloc_name[r_type], val); 708 "non-local symbol (%lx)\n", __func__,
709 reloc_name[r_type], (unsigned long)val);
706 return -ENOEXEC; 710 return -ENOEXEC;
707 } 711 }
708 format = RF_INSN21B; 712 format = RF_INSN21B;
diff --git a/arch/ia64/kernel/msi_ia64.c b/arch/ia64/kernel/msi_ia64.c
index 0f8ade9331b..6c892285604 100644
--- a/arch/ia64/kernel/msi_ia64.c
+++ b/arch/ia64/kernel/msi_ia64.c
@@ -158,7 +158,7 @@ static int dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask)
158} 158}
159#endif /* CONFIG_SMP */ 159#endif /* CONFIG_SMP */
160 160
161struct irq_chip dmar_msi_type = { 161static struct irq_chip dmar_msi_type = {
162 .name = "DMAR_MSI", 162 .name = "DMAR_MSI",
163 .unmask = dmar_msi_unmask, 163 .unmask = dmar_msi_unmask,
164 .mask = dmar_msi_mask, 164 .mask = dmar_msi_mask,
diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
index a4f19c70aad..fdf6f9d013e 100644
--- a/arch/ia64/kernel/palinfo.c
+++ b/arch/ia64/kernel/palinfo.c
@@ -218,10 +218,10 @@ static int
218cache_info(char *page) 218cache_info(char *page)
219{ 219{
220 char *p = page; 220 char *p = page;
221 u64 i, levels, unique_caches; 221 unsigned long i, levels, unique_caches;
222 pal_cache_config_info_t cci; 222 pal_cache_config_info_t cci;
223 int j, k; 223 int j, k;
224 s64 status; 224 long status;
225 225
226 if ((status = ia64_pal_cache_summary(&levels, &unique_caches)) != 0) { 226 if ((status = ia64_pal_cache_summary(&levels, &unique_caches)) != 0) {
227 printk(KERN_ERR "ia64_pal_cache_summary=%ld\n", status); 227 printk(KERN_ERR "ia64_pal_cache_summary=%ld\n", status);
@@ -303,7 +303,7 @@ vm_info(char *page)
303 ia64_ptce_info_t ptce; 303 ia64_ptce_info_t ptce;
304 const char *sep; 304 const char *sep;
305 int i, j; 305 int i, j;
306 s64 status; 306 long status;
307 307
308 if ((status = ia64_pal_vm_summary(&vm_info_1, &vm_info_2)) !=0) { 308 if ((status = ia64_pal_vm_summary(&vm_info_1, &vm_info_2)) !=0) {
309 printk(KERN_ERR "ia64_pal_vm_summary=%ld\n", status); 309 printk(KERN_ERR "ia64_pal_vm_summary=%ld\n", status);
@@ -431,9 +431,9 @@ register_info(char *page)
431 char *p = page; 431 char *p = page;
432 u64 reg_info[2]; 432 u64 reg_info[2];
433 u64 info; 433 u64 info;
434 u64 phys_stacked; 434 unsigned long phys_stacked;
435 pal_hints_u_t hints; 435 pal_hints_u_t hints;
436 u64 iregs, dregs; 436 unsigned long iregs, dregs;
437 char *info_type[]={ 437 char *info_type[]={
438 "Implemented AR(s)", 438 "Implemented AR(s)",
439 "AR(s) with read side-effects", 439 "AR(s) with read side-effects",
@@ -530,8 +530,8 @@ static char **proc_features[]={
530 NULL, NULL, NULL, NULL, 530 NULL, NULL, NULL, NULL,
531}; 531};
532 532
533static char * 533static char * feature_set_info(char *page, u64 avail, u64 status, u64 control,
534feature_set_info(char *page, u64 avail, u64 status, u64 control, u64 set) 534 unsigned long set)
535{ 535{
536 char *p = page; 536 char *p = page;
537 char **vf, **v; 537 char **vf, **v;
@@ -714,7 +714,7 @@ frequency_info(char *page)
714{ 714{
715 char *p = page; 715 char *p = page;
716 struct pal_freq_ratio proc, itc, bus; 716 struct pal_freq_ratio proc, itc, bus;
717 u64 base; 717 unsigned long base;
718 718
719 if (ia64_pal_freq_base(&base) == -1) 719 if (ia64_pal_freq_base(&base) == -1)
720 p += sprintf(p, "Output clock : not implemented\n"); 720 p += sprintf(p, "Output clock : not implemented\n");
@@ -736,43 +736,43 @@ static int
736tr_info(char *page) 736tr_info(char *page)
737{ 737{
738 char *p = page; 738 char *p = page;
739 s64 status; 739 long status;
740 pal_tr_valid_u_t tr_valid; 740 pal_tr_valid_u_t tr_valid;
741 u64 tr_buffer[4]; 741 u64 tr_buffer[4];
742 pal_vm_info_1_u_t vm_info_1; 742 pal_vm_info_1_u_t vm_info_1;
743 pal_vm_info_2_u_t vm_info_2; 743 pal_vm_info_2_u_t vm_info_2;
744 u64 i, j; 744 unsigned long i, j;
745 u64 max[3], pgm; 745 unsigned long max[3], pgm;
746 struct ifa_reg { 746 struct ifa_reg {
747 u64 valid:1; 747 unsigned long valid:1;
748 u64 ig:11; 748 unsigned long ig:11;
749 u64 vpn:52; 749 unsigned long vpn:52;
750 } *ifa_reg; 750 } *ifa_reg;
751 struct itir_reg { 751 struct itir_reg {
752 u64 rv1:2; 752 unsigned long rv1:2;
753 u64 ps:6; 753 unsigned long ps:6;
754 u64 key:24; 754 unsigned long key:24;
755 u64 rv2:32; 755 unsigned long rv2:32;
756 } *itir_reg; 756 } *itir_reg;
757 struct gr_reg { 757 struct gr_reg {
758 u64 p:1; 758 unsigned long p:1;
759 u64 rv1:1; 759 unsigned long rv1:1;
760 u64 ma:3; 760 unsigned long ma:3;
761 u64 a:1; 761 unsigned long a:1;
762 u64 d:1; 762 unsigned long d:1;
763 u64 pl:2; 763 unsigned long pl:2;
764 u64 ar:3; 764 unsigned long ar:3;
765 u64 ppn:38; 765 unsigned long ppn:38;
766 u64 rv2:2; 766 unsigned long rv2:2;
767 u64 ed:1; 767 unsigned long ed:1;
768 u64 ig:11; 768 unsigned long ig:11;
769 } *gr_reg; 769 } *gr_reg;
770 struct rid_reg { 770 struct rid_reg {
771 u64 ig1:1; 771 unsigned long ig1:1;
772 u64 rv1:1; 772 unsigned long rv1:1;
773 u64 ig2:6; 773 unsigned long ig2:6;
774 u64 rid:24; 774 unsigned long rid:24;
775 u64 rv2:32; 775 unsigned long rv2:32;
776 } *rid_reg; 776 } *rid_reg;
777 777
778 if ((status = ia64_pal_vm_summary(&vm_info_1, &vm_info_2)) !=0) { 778 if ((status = ia64_pal_vm_summary(&vm_info_1, &vm_info_2)) !=0) {
diff --git a/arch/ia64/kernel/paravirt_patchlist.c b/arch/ia64/kernel/paravirt_patchlist.c
index b28082a95d4..0a70720662e 100644
--- a/arch/ia64/kernel/paravirt_patchlist.c
+++ b/arch/ia64/kernel/paravirt_patchlist.c
@@ -19,6 +19,8 @@
19 */ 19 */
20 20
21#include <linux/bug.h> 21#include <linux/bug.h>
22#include <linux/init.h>
23#include <linux/kernel.h>
22#include <asm/paravirt.h> 24#include <asm/paravirt.h>
23 25
24#define DECLARE(name) \ 26#define DECLARE(name) \
diff --git a/arch/ia64/kernel/pci-dma.c b/arch/ia64/kernel/pci-dma.c
index eb987386f69..05695962fe4 100644
--- a/arch/ia64/kernel/pci-dma.c
+++ b/arch/ia64/kernel/pci-dma.c
@@ -32,6 +32,8 @@ int force_iommu __read_mostly = 1;
32int force_iommu __read_mostly; 32int force_iommu __read_mostly;
33#endif 33#endif
34 34
35int iommu_pass_through;
36
35/* Dummy device used for NULL arguments (normally ISA). Better would 37/* Dummy device used for NULL arguments (normally ISA). Better would
36 be probably a smaller DMA mask, but this is bug-to-bug compatible 38 be probably a smaller DMA mask, but this is bug-to-bug compatible
37 to i386. */ 39 to i386. */
@@ -91,7 +93,7 @@ int iommu_dma_supported(struct device *dev, u64 mask)
91 type. Normally this doesn't make any difference, but gives 93 type. Normally this doesn't make any difference, but gives
92 more gentle handling of IOMMU overflow. */ 94 more gentle handling of IOMMU overflow. */
93 if (iommu_sac_force && (mask >= DMA_BIT_MASK(40))) { 95 if (iommu_sac_force && (mask >= DMA_BIT_MASK(40))) {
94 dev_info(dev, "Force SAC with mask %lx\n", mask); 96 dev_info(dev, "Force SAC with mask %llx\n", mask);
95 return 0; 97 return 0;
96 } 98 }
97 99
diff --git a/arch/ia64/kernel/pci-swiotlb.c b/arch/ia64/kernel/pci-swiotlb.c
index 285aae8431c..223abb13410 100644
--- a/arch/ia64/kernel/pci-swiotlb.c
+++ b/arch/ia64/kernel/pci-swiotlb.c
@@ -46,7 +46,7 @@ void __init swiotlb_dma_init(void)
46 46
47void __init pci_swiotlb_init(void) 47void __init pci_swiotlb_init(void)
48{ 48{
49 if (!iommu_detected) { 49 if (!iommu_detected || iommu_pass_through) {
50#ifdef CONFIG_IA64_GENERIC 50#ifdef CONFIG_IA64_GENERIC
51 swiotlb = 1; 51 swiotlb = 1;
52 printk(KERN_INFO "PCI-DMA: Re-initialize machine vector.\n"); 52 printk(KERN_INFO "PCI-DMA: Re-initialize machine vector.\n");
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index bdc176cb5e8..abce2468a40 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -312,7 +312,7 @@ typedef struct pfm_context {
312 unsigned long th_pmcs[PFM_NUM_PMC_REGS]; /* PMC thread save state */ 312 unsigned long th_pmcs[PFM_NUM_PMC_REGS]; /* PMC thread save state */
313 unsigned long th_pmds[PFM_NUM_PMD_REGS]; /* PMD thread save state */ 313 unsigned long th_pmds[PFM_NUM_PMD_REGS]; /* PMD thread save state */
314 314
315 u64 ctx_saved_psr_up; /* only contains psr.up value */ 315 unsigned long ctx_saved_psr_up; /* only contains psr.up value */
316 316
317 unsigned long ctx_last_activation; /* context last activation number for last_cpu */ 317 unsigned long ctx_last_activation; /* context last activation number for last_cpu */
318 unsigned int ctx_last_cpu; /* CPU id of current or last CPU used (SMP only) */ 318 unsigned int ctx_last_cpu; /* CPU id of current or last CPU used (SMP only) */
@@ -5213,8 +5213,8 @@ pfm_end_notify_user(pfm_context_t *ctx)
5213 * main overflow processing routine. 5213 * main overflow processing routine.
5214 * it can be called from the interrupt path or explicitly during the context switch code 5214 * it can be called from the interrupt path or explicitly during the context switch code
5215 */ 5215 */
5216static void 5216static void pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx,
5217pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, struct pt_regs *regs) 5217 unsigned long pmc0, struct pt_regs *regs)
5218{ 5218{
5219 pfm_ovfl_arg_t *ovfl_arg; 5219 pfm_ovfl_arg_t *ovfl_arg;
5220 unsigned long mask; 5220 unsigned long mask;
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
index 714066aeda7..1b23ec126b6 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -151,9 +151,9 @@ int num_rsvd_regions __initdata;
151 * This routine does not assume the incoming segments are sorted. 151 * This routine does not assume the incoming segments are sorted.
152 */ 152 */
153int __init 153int __init
154filter_rsvd_memory (unsigned long start, unsigned long end, void *arg) 154filter_rsvd_memory (u64 start, u64 end, void *arg)
155{ 155{
156 unsigned long range_start, range_end, prev_start; 156 u64 range_start, range_end, prev_start;
157 void (*func)(unsigned long, unsigned long, int); 157 void (*func)(unsigned long, unsigned long, int);
158 int i; 158 int i;
159 159
@@ -191,7 +191,7 @@ filter_rsvd_memory (unsigned long start, unsigned long end, void *arg)
191 * are not filtered out. 191 * are not filtered out.
192 */ 192 */
193int __init 193int __init
194filter_memory(unsigned long start, unsigned long end, void *arg) 194filter_memory(u64 start, u64 end, void *arg)
195{ 195{
196 void (*func)(unsigned long, unsigned long, int); 196 void (*func)(unsigned long, unsigned long, int);
197 197
@@ -397,7 +397,7 @@ find_initrd (void)
397 initrd_start = (unsigned long)__va(ia64_boot_param->initrd_start); 397 initrd_start = (unsigned long)__va(ia64_boot_param->initrd_start);
398 initrd_end = initrd_start+ia64_boot_param->initrd_size; 398 initrd_end = initrd_start+ia64_boot_param->initrd_size;
399 399
400 printk(KERN_INFO "Initial ramdisk at: 0x%lx (%lu bytes)\n", 400 printk(KERN_INFO "Initial ramdisk at: 0x%lx (%llu bytes)\n",
401 initrd_start, ia64_boot_param->initrd_size); 401 initrd_start, ia64_boot_param->initrd_size);
402 } 402 }
403#endif 403#endif
@@ -505,9 +505,9 @@ static int __init parse_elfcorehdr(char *arg)
505} 505}
506early_param("elfcorehdr", parse_elfcorehdr); 506early_param("elfcorehdr", parse_elfcorehdr);
507 507
508int __init reserve_elfcorehdr(unsigned long *start, unsigned long *end) 508int __init reserve_elfcorehdr(u64 *start, u64 *end)
509{ 509{
510 unsigned long length; 510 u64 length;
511 511
512 /* We get the address using the kernel command line, 512 /* We get the address using the kernel command line,
513 * but the size is extracted from the EFI tables. 513 * but the size is extracted from the EFI tables.
@@ -588,7 +588,7 @@ setup_arch (char **cmdline_p)
588 ia64_patch_rse((u64) __start___rse_patchlist, (u64) __end___rse_patchlist); 588 ia64_patch_rse((u64) __start___rse_patchlist, (u64) __end___rse_patchlist);
589#else 589#else
590 { 590 {
591 u64 num_phys_stacked; 591 unsigned long num_phys_stacked;
592 592
593 if (ia64_pal_rse_info(&num_phys_stacked, 0) == 0 && num_phys_stacked > 96) 593 if (ia64_pal_rse_info(&num_phys_stacked, 0) == 0 && num_phys_stacked > 96)
594 ia64_patch_rse((u64) __start___rse_patchlist, (u64) __end___rse_patchlist); 594 ia64_patch_rse((u64) __start___rse_patchlist, (u64) __end___rse_patchlist);
@@ -872,9 +872,9 @@ static void __cpuinit
872get_cache_info(void) 872get_cache_info(void)
873{ 873{
874 unsigned long line_size, max = 1; 874 unsigned long line_size, max = 1;
875 u64 l, levels, unique_caches; 875 unsigned long l, levels, unique_caches;
876 pal_cache_config_info_t cci; 876 pal_cache_config_info_t cci;
877 s64 status; 877 long status;
878 878
879 status = ia64_pal_cache_summary(&levels, &unique_caches); 879 status = ia64_pal_cache_summary(&levels, &unique_caches);
880 if (status != 0) { 880 if (status != 0) {
@@ -892,9 +892,9 @@ get_cache_info(void)
892 /* cache_type (data_or_unified)=2 */ 892 /* cache_type (data_or_unified)=2 */
893 status = ia64_pal_cache_config_info(l, 2, &cci); 893 status = ia64_pal_cache_config_info(l, 2, &cci);
894 if (status != 0) { 894 if (status != 0) {
895 printk(KERN_ERR 895 printk(KERN_ERR "%s: ia64_pal_cache_config_info"
896 "%s: ia64_pal_cache_config_info(l=%lu, 2) failed (status=%ld)\n", 896 "(l=%lu, 2) failed (status=%ld)\n",
897 __func__, l, status); 897 __func__, l, status);
898 max = SMP_CACHE_BYTES; 898 max = SMP_CACHE_BYTES;
899 /* The safest setup for "flush_icache_range()" */ 899 /* The safest setup for "flush_icache_range()" */
900 cci.pcci_stride = I_CACHE_STRIDE_SHIFT; 900 cci.pcci_stride = I_CACHE_STRIDE_SHIFT;
@@ -914,10 +914,10 @@ get_cache_info(void)
914 /* cache_type (instruction)=1*/ 914 /* cache_type (instruction)=1*/
915 status = ia64_pal_cache_config_info(l, 1, &cci); 915 status = ia64_pal_cache_config_info(l, 1, &cci);
916 if (status != 0) { 916 if (status != 0) {
917 printk(KERN_ERR 917 printk(KERN_ERR "%s: ia64_pal_cache_config_info"
918 "%s: ia64_pal_cache_config_info(l=%lu, 1) failed (status=%ld)\n", 918 "(l=%lu, 1) failed (status=%ld)\n",
919 __func__, l, status); 919 __func__, l, status);
920 /* The safest setup for "flush_icache_range()" */ 920 /* The safest setup for flush_icache_range() */
921 cci.pcci_stride = I_CACHE_STRIDE_SHIFT; 921 cci.pcci_stride = I_CACHE_STRIDE_SHIFT;
922 } 922 }
923 } 923 }
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c
index 5230eaafd83..f0c521b0ba4 100644
--- a/arch/ia64/kernel/smp.c
+++ b/arch/ia64/kernel/smp.c
@@ -66,7 +66,7 @@ static DEFINE_PER_CPU(unsigned short, shadow_flush_counts[NR_CPUS]) ____cachelin
66#define IPI_KDUMP_CPU_STOP 3 66#define IPI_KDUMP_CPU_STOP 3
67 67
68/* This needs to be cacheline aligned because it is written to by *other* CPUs. */ 68/* This needs to be cacheline aligned because it is written to by *other* CPUs. */
69static DEFINE_PER_CPU_SHARED_ALIGNED(u64, ipi_operation); 69static DEFINE_PER_CPU_SHARED_ALIGNED(unsigned long, ipi_operation);
70 70
71extern void cpu_halt (void); 71extern void cpu_halt (void);
72 72
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index 7700e23034b..de100aa7ff0 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -678,7 +678,7 @@ extern void fixup_irqs(void);
678int migrate_platform_irqs(unsigned int cpu) 678int migrate_platform_irqs(unsigned int cpu)
679{ 679{
680 int new_cpei_cpu; 680 int new_cpei_cpu;
681 irq_desc_t *desc = NULL; 681 struct irq_desc *desc = NULL;
682 const struct cpumask *mask; 682 const struct cpumask *mask;
683 int retval = 0; 683 int retval = 0;
684 684
@@ -865,7 +865,7 @@ init_smp_config(void)
865void __devinit 865void __devinit
866identify_siblings(struct cpuinfo_ia64 *c) 866identify_siblings(struct cpuinfo_ia64 *c)
867{ 867{
868 s64 status; 868 long status;
869 u16 pltid; 869 u16 pltid;
870 pal_logical_to_physical_t info; 870 pal_logical_to_physical_t info;
871 871
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 604c1a35db3..4990495d753 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -385,7 +385,7 @@ ia64_init_itm (void)
385 385
386static cycle_t itc_get_cycles(struct clocksource *cs) 386static cycle_t itc_get_cycles(struct clocksource *cs)
387{ 387{
388 u64 lcycle, now, ret; 388 unsigned long lcycle, now, ret;
389 389
390 if (!itc_jitter_data.itc_jitter) 390 if (!itc_jitter_data.itc_jitter)
391 return get_cycles(); 391 return get_cycles();
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c
index a8d61a3e9a9..bc80dff1df7 100644
--- a/arch/ia64/kernel/topology.c
+++ b/arch/ia64/kernel/topology.c
@@ -306,10 +306,10 @@ static void __cpuinit cpu_cache_sysfs_exit(unsigned int cpu)
306 306
307static int __cpuinit cpu_cache_sysfs_init(unsigned int cpu) 307static int __cpuinit cpu_cache_sysfs_init(unsigned int cpu)
308{ 308{
309 u64 i, levels, unique_caches; 309 unsigned long i, levels, unique_caches;
310 pal_cache_config_info_t cci; 310 pal_cache_config_info_t cci;
311 int j; 311 int j;
312 s64 status; 312 long status;
313 struct cache_info *this_cache; 313 struct cache_info *this_cache;
314 int num_cache_leaves = 0; 314 int num_cache_leaves = 0;
315 315
diff --git a/arch/ia64/kernel/uncached.c b/arch/ia64/kernel/uncached.c
index 6ba72ab42fc..a595823582d 100644
--- a/arch/ia64/kernel/uncached.c
+++ b/arch/ia64/kernel/uncached.c
@@ -250,8 +250,7 @@ EXPORT_SYMBOL(uncached_free_page);
250 * Called at boot time to build a map of pages that can be used for 250 * Called at boot time to build a map of pages that can be used for
251 * memory special operations. 251 * memory special operations.
252 */ 252 */
253static int __init uncached_build_memmap(unsigned long uc_start, 253static int __init uncached_build_memmap(u64 uc_start, u64 uc_end, void *arg)
254 unsigned long uc_end, void *arg)
255{ 254{
256 int nid = paddr_to_nid(uc_start - __IA64_UNCACHED_OFFSET); 255 int nid = paddr_to_nid(uc_start - __IA64_UNCACHED_OFFSET);
257 struct gen_pool *pool = uncached_pools[nid].pool; 256 struct gen_pool *pool = uncached_pools[nid].pool;
diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c
index 0ee085efbe2..2f724d2bf29 100644
--- a/arch/ia64/mm/contig.c
+++ b/arch/ia64/mm/contig.c
@@ -107,10 +107,10 @@ unsigned long bootmap_start;
107 * bootmap_start. This address must be page-aligned. 107 * bootmap_start. This address must be page-aligned.
108 */ 108 */
109static int __init 109static int __init
110find_bootmap_location (unsigned long start, unsigned long end, void *arg) 110find_bootmap_location (u64 start, u64 end, void *arg)
111{ 111{
112 unsigned long needed = *(unsigned long *)arg; 112 u64 needed = *(unsigned long *)arg;
113 unsigned long range_start, range_end, free_start; 113 u64 range_start, range_end, free_start;
114 int i; 114 int i;
115 115
116#if IGNORE_PFN0 116#if IGNORE_PFN0
@@ -229,8 +229,7 @@ find_memory (void)
229 alloc_per_cpu_data(); 229 alloc_per_cpu_data();
230} 230}
231 231
232static int 232static int count_pages(u64 start, u64 end, void *arg)
233count_pages (u64 start, u64 end, void *arg)
234{ 233{
235 unsigned long *count = arg; 234 unsigned long *count = arg;
236 235
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index 23088bed111..19261a99e62 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -154,7 +154,7 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
154 * sure we exit gracefully rather than endlessly redo the 154 * sure we exit gracefully rather than endlessly redo the
155 * fault. 155 * fault.
156 */ 156 */
157 fault = handle_mm_fault(mm, vma, address, (mask & VM_WRITE) != 0); 157 fault = handle_mm_fault(mm, vma, address, (mask & VM_WRITE) ? FAULT_FLAG_WRITE : 0);
158 if (unlikely(fault & VM_FAULT_ERROR)) { 158 if (unlikely(fault & VM_FAULT_ERROR)) {
159 /* 159 /*
160 * We ran out of memory, or some other thing happened 160 * We ran out of memory, or some other thing happened
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
index c0f3bee6904..b115b3bbf04 100644
--- a/arch/ia64/mm/init.c
+++ b/arch/ia64/mm/init.c
@@ -422,8 +422,7 @@ retry_pte:
422 return hole_next_pfn - pgdat->node_start_pfn; 422 return hole_next_pfn - pgdat->node_start_pfn;
423} 423}
424 424
425int __init 425int __init create_mem_map_page_table(u64 start, u64 end, void *arg)
426create_mem_map_page_table (u64 start, u64 end, void *arg)
427{ 426{
428 unsigned long address, start_page, end_page; 427 unsigned long address, start_page, end_page;
429 struct page *map_start, *map_end; 428 struct page *map_start, *map_end;
@@ -469,7 +468,7 @@ struct memmap_init_callback_data {
469}; 468};
470 469
471static int __meminit 470static int __meminit
472virtual_memmap_init (u64 start, u64 end, void *arg) 471virtual_memmap_init(u64 start, u64 end, void *arg)
473{ 472{
474 struct memmap_init_callback_data *args; 473 struct memmap_init_callback_data *args;
475 struct page *map_start, *map_end; 474 struct page *map_start, *map_end;
@@ -531,8 +530,7 @@ ia64_pfn_valid (unsigned long pfn)
531} 530}
532EXPORT_SYMBOL(ia64_pfn_valid); 531EXPORT_SYMBOL(ia64_pfn_valid);
533 532
534int __init 533int __init find_largest_hole(u64 start, u64 end, void *arg)
535find_largest_hole (u64 start, u64 end, void *arg)
536{ 534{
537 u64 *max_gap = arg; 535 u64 *max_gap = arg;
538 536
@@ -548,8 +546,7 @@ find_largest_hole (u64 start, u64 end, void *arg)
548 546
549#endif /* CONFIG_VIRTUAL_MEM_MAP */ 547#endif /* CONFIG_VIRTUAL_MEM_MAP */
550 548
551int __init 549int __init register_active_ranges(u64 start, u64 len, int nid)
552register_active_ranges(u64 start, u64 len, int nid)
553{ 550{
554 u64 end = start + len; 551 u64 end = start + len;
555 552
@@ -567,7 +564,7 @@ register_active_ranges(u64 start, u64 len, int nid)
567} 564}
568 565
569static int __init 566static int __init
570count_reserved_pages (u64 start, u64 end, void *arg) 567count_reserved_pages(u64 start, u64 end, void *arg)
571{ 568{
572 unsigned long num_reserved = 0; 569 unsigned long num_reserved = 0;
573 unsigned long *count = arg; 570 unsigned long *count = arg;
@@ -580,7 +577,7 @@ count_reserved_pages (u64 start, u64 end, void *arg)
580} 577}
581 578
582int 579int
583find_max_min_low_pfn (unsigned long start, unsigned long end, void *arg) 580find_max_min_low_pfn (u64 start, u64 end, void *arg)
584{ 581{
585 unsigned long pfn_start, pfn_end; 582 unsigned long pfn_start, pfn_end;
586#ifdef CONFIG_FLATMEM 583#ifdef CONFIG_FLATMEM
diff --git a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c
index b9f3d7bbb33..f426dc78d95 100644
--- a/arch/ia64/mm/tlb.c
+++ b/arch/ia64/mm/tlb.c
@@ -34,7 +34,7 @@
34#include <asm/tlb.h> 34#include <asm/tlb.h>
35 35
36static struct { 36static struct {
37 unsigned long mask; /* mask of supported purge page-sizes */ 37 u64 mask; /* mask of supported purge page-sizes */
38 unsigned long max_bits; /* log2 of largest supported purge page-size */ 38 unsigned long max_bits; /* log2 of largest supported purge page-size */
39} purge; 39} purge;
40 40
@@ -328,7 +328,7 @@ void __devinit
328ia64_tlb_init (void) 328ia64_tlb_init (void)
329{ 329{
330 ia64_ptce_info_t uninitialized_var(ptce_info); /* GCC be quiet */ 330 ia64_ptce_info_t uninitialized_var(ptce_info); /* GCC be quiet */
331 unsigned long tr_pgbits; 331 u64 tr_pgbits;
332 long status; 332 long status;
333 pal_vm_info_1_u_t vm_info_1; 333 pal_vm_info_1_u_t vm_info_1;
334 pal_vm_info_2_u_t vm_info_2; 334 pal_vm_info_2_u_t vm_info_2;
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 61f1af5c23c..729298f4b23 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -163,7 +163,7 @@ add_io_space (struct pci_root_info *info, struct acpi_resource_address64 *addr)
163{ 163{
164 struct resource *resource; 164 struct resource *resource;
165 char *name; 165 char *name;
166 u64 base, min, max, base_port; 166 unsigned long base, min, max, base_port;
167 unsigned int sparse = 0, space_nr, len; 167 unsigned int sparse = 0, space_nr, len;
168 168
169 resource = kzalloc(sizeof(*resource), GFP_KERNEL); 169 resource = kzalloc(sizeof(*resource), GFP_KERNEL);
@@ -292,7 +292,7 @@ static __devinit acpi_status add_window(struct acpi_resource *res, void *data)
292 window->offset = offset; 292 window->offset = offset;
293 293
294 if (insert_resource(root, &window->resource)) { 294 if (insert_resource(root, &window->resource)) {
295 printk(KERN_ERR "alloc 0x%lx-0x%lx from %s for %s failed\n", 295 printk(KERN_ERR "alloc 0x%llx-0x%llx from %s for %s failed\n",
296 window->resource.start, window->resource.end, 296 window->resource.start, window->resource.end,
297 root->name, info->name); 297 root->name, info->name);
298 } 298 }
@@ -314,8 +314,8 @@ pcibios_setup_root_windows(struct pci_bus *bus, struct pci_controller *ctrl)
314 (res->end - res->start < 16)) 314 (res->end - res->start < 16))
315 continue; 315 continue;
316 if (j >= PCI_BUS_NUM_RESOURCES) { 316 if (j >= PCI_BUS_NUM_RESOURCES) {
317 printk("Ignoring range [%lx-%lx] (%lx)\n", res->start, 317 printk("Ignoring range [%#llx-%#llx] (%lx)\n",
318 res->end, res->flags); 318 res->start, res->end, res->flags);
319 continue; 319 continue;
320 } 320 }
321 bus->resource[j++] = res; 321 bus->resource[j++] = res;
@@ -371,8 +371,6 @@ pci_acpi_scan_root(struct acpi_device *device, int domain, int bus)
371 * such quirk. So we just ignore the case now. 371 * such quirk. So we just ignore the case now.
372 */ 372 */
373 pbus = pci_scan_bus_parented(NULL, bus, &pci_root_ops, controller); 373 pbus = pci_scan_bus_parented(NULL, bus, &pci_root_ops, controller);
374 if (pbus)
375 pcibios_setup_root_windows(pbus, controller);
376 374
377 return pbus; 375 return pbus;
378 376
@@ -490,6 +488,8 @@ pcibios_fixup_bus (struct pci_bus *b)
490 if (b->self) { 488 if (b->self) {
491 pci_read_bridge_bases(b); 489 pci_read_bridge_bases(b);
492 pcibios_fixup_bridge_resources(b->self); 490 pcibios_fixup_bridge_resources(b->self);
491 } else {
492 pcibios_setup_root_windows(b, b->sysdata);
493 } 493 }
494 list_for_each_entry(dev, &b->devices, bus_list) 494 list_for_each_entry(dev, &b->devices, bus_list)
495 pcibios_fixup_device_resources(dev); 495 pcibios_fixup_device_resources(dev);
@@ -728,8 +728,8 @@ extern u8 pci_cache_line_size;
728 */ 728 */
729static void __init set_pci_cacheline_size(void) 729static void __init set_pci_cacheline_size(void)
730{ 730{
731 u64 levels, unique_caches; 731 unsigned long levels, unique_caches;
732 s64 status; 732 long status;
733 pal_cache_config_info_t cci; 733 pal_cache_config_info_t cci;
734 734
735 status = ia64_pal_cache_summary(&levels, &unique_caches); 735 status = ia64_pal_cache_summary(&levels, &unique_caches);
diff --git a/arch/ia64/sn/kernel/io_acpi_init.c b/arch/ia64/sn/kernel/io_acpi_init.c
index d0223abbbbd..fd50ff94302 100644
--- a/arch/ia64/sn/kernel/io_acpi_init.c
+++ b/arch/ia64/sn/kernel/io_acpi_init.c
@@ -40,7 +40,7 @@ struct sn_pcidev_match {
40/* 40/*
41 * Perform the early IO init in PROM. 41 * Perform the early IO init in PROM.
42 */ 42 */
43static s64 43static long
44sal_ioif_init(u64 *result) 44sal_ioif_init(u64 *result)
45{ 45{
46 struct ia64_sal_retval isrv = {0,0,0,0}; 46 struct ia64_sal_retval isrv = {0,0,0,0};
@@ -492,7 +492,7 @@ void __init
492sn_io_acpi_init(void) 492sn_io_acpi_init(void)
493{ 493{
494 u64 result; 494 u64 result;
495 s64 status; 495 long status;
496 496
497 /* SN Altix does not follow the IOSAPIC IRQ routing model */ 497 /* SN Altix does not follow the IOSAPIC IRQ routing model */
498 acpi_irq_model = ACPI_IRQ_MODEL_PLATFORM; 498 acpi_irq_model = ACPI_IRQ_MODEL_PLATFORM;
diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c
index 57f280dd9de..76645cf6ac5 100644
--- a/arch/ia64/sn/kernel/io_common.c
+++ b/arch/ia64/sn/kernel/io_common.c
@@ -342,7 +342,7 @@ sn_common_bus_fixup(struct pci_bus *bus,
342 struct pcibus_bussoft *b = SN_PCIBUS_BUSSOFT(bus); 342 struct pcibus_bussoft *b = SN_PCIBUS_BUSSOFT(bus);
343 343
344 printk(KERN_WARNING "Device ASIC=%u XID=%u PBUSNUM=%u " 344 printk(KERN_WARNING "Device ASIC=%u XID=%u PBUSNUM=%u "
345 "L_IO=%lx L_MEM=%lx BASE=%lx\n", 345 "L_IO=%llx L_MEM=%llx BASE=%llx\n",
346 b->bs_asic_type, b->bs_xid, b->bs_persist_busnum, 346 b->bs_asic_type, b->bs_xid, b->bs_persist_busnum,
347 b->bs_legacy_io, b->bs_legacy_mem, b->bs_base); 347 b->bs_legacy_io, b->bs_legacy_mem, b->bs_base);
348 printk(KERN_WARNING "on node %d but only %d nodes online." 348 printk(KERN_WARNING "on node %d but only %d nodes online."
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c
index 764f26abac0..40d6eeda1c4 100644
--- a/arch/ia64/sn/kernel/irq.c
+++ b/arch/ia64/sn/kernel/irq.c
@@ -295,13 +295,13 @@ unsigned int sn_local_vector_to_irq(u8 vector)
295void sn_irq_init(void) 295void sn_irq_init(void)
296{ 296{
297 int i; 297 int i;
298 irq_desc_t *base_desc = irq_desc; 298 struct irq_desc *base_desc = irq_desc;
299 299
300 ia64_first_device_vector = IA64_SN2_FIRST_DEVICE_VECTOR; 300 ia64_first_device_vector = IA64_SN2_FIRST_DEVICE_VECTOR;
301 ia64_last_device_vector = IA64_SN2_LAST_DEVICE_VECTOR; 301 ia64_last_device_vector = IA64_SN2_LAST_DEVICE_VECTOR;
302 302
303 for (i = 0; i < NR_IRQS; i++) { 303 for (i = 0; i < NR_IRQS; i++) {
304 if (base_desc[i].chip == &no_irq_type) { 304 if (base_desc[i].chip == &no_irq_chip) {
305 base_desc[i].chip = &irq_type_sn; 305 base_desc[i].chip = &irq_type_sn;
306 } 306 }
307 } 307 }
@@ -377,7 +377,7 @@ void sn_irq_fixup(struct pci_dev *pci_dev, struct sn_irq_info *sn_irq_info)
377 int cpu = nasid_slice_to_cpuid(nasid, slice); 377 int cpu = nasid_slice_to_cpuid(nasid, slice);
378#ifdef CONFIG_SMP 378#ifdef CONFIG_SMP
379 int cpuphys; 379 int cpuphys;
380 irq_desc_t *desc; 380 struct irq_desc *desc;
381#endif 381#endif
382 382
383 pci_dev_get(pci_dev); 383 pci_dev_get(pci_dev);
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c
index 9e6491cf72b..4c7e7479095 100644
--- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c
+++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c
@@ -414,7 +414,7 @@ static int sn_topology_show(struct seq_file *s, void *d)
414 } 414 }
415 seq_printf(s, "partition %u %s local " 415 seq_printf(s, "partition %u %s local "
416 "shubtype %s, " 416 "shubtype %s, "
417 "nasid_mask 0x%016lx, " 417 "nasid_mask 0x%016llx, "
418 "nasid_bits %d:%d, " 418 "nasid_bits %d:%d, "
419 "system_size %d, " 419 "system_size %d, "
420 "sharing_size %d, " 420 "sharing_size %d, "
@@ -683,7 +683,7 @@ static int sn_hwperf_map_err(int hwperf_err)
683 * ioctl for "sn_hwperf" misc device 683 * ioctl for "sn_hwperf" misc device
684 */ 684 */
685static int 685static int
686sn_hwperf_ioctl(struct inode *in, struct file *fp, u32 op, u64 arg) 686sn_hwperf_ioctl(struct inode *in, struct file *fp, u32 op, unsigned long arg)
687{ 687{
688 struct sn_hwperf_ioctl_args a; 688 struct sn_hwperf_ioctl_args a;
689 struct cpuinfo_ia64 *cdata; 689 struct cpuinfo_ia64 *cdata;
diff --git a/arch/ia64/sn/kernel/sn2/sn_proc_fs.c b/arch/ia64/sn/kernel/sn2/sn_proc_fs.c
index 2526e5c783a..c76d8dc3aea 100644
--- a/arch/ia64/sn/kernel/sn2/sn_proc_fs.c
+++ b/arch/ia64/sn/kernel/sn2/sn_proc_fs.c
@@ -36,7 +36,7 @@ static int system_serial_number_open(struct inode *inode, struct file *file)
36 36
37static int licenseID_show(struct seq_file *s, void *p) 37static int licenseID_show(struct seq_file *s, void *p)
38{ 38{
39 seq_printf(s, "0x%lx\n", sn_partition_serial_number_val()); 39 seq_printf(s, "0x%llx\n", sn_partition_serial_number_val());
40 return 0; 40 return 0;
41} 41}
42 42
diff --git a/arch/ia64/sn/kernel/tiocx.c b/arch/ia64/sn/kernel/tiocx.c
index 3f864238566..c1bd1cfda32 100644
--- a/arch/ia64/sn/kernel/tiocx.c
+++ b/arch/ia64/sn/kernel/tiocx.c
@@ -368,7 +368,7 @@ static void tio_corelet_reset(nasid_t nasid, int corelet)
368static int is_fpga_tio(int nasid, int *bt) 368static int is_fpga_tio(int nasid, int *bt)
369{ 369{
370 u16 uninitialized_var(ioboard_type); /* GCC be quiet */ 370 u16 uninitialized_var(ioboard_type); /* GCC be quiet */
371 s64 rc; 371 long rc;
372 372
373 rc = ia64_sn_sysctl_ioboard_get(nasid, &ioboard_type); 373 rc = ia64_sn_sysctl_ioboard_get(nasid, &ioboard_type);
374 if (rc) { 374 if (rc) {
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_provider.c b/arch/ia64/sn/pci/pcibr/pcibr_provider.c
index 2c676cc0541..d13e5a22a55 100644
--- a/arch/ia64/sn/pci/pcibr/pcibr_provider.c
+++ b/arch/ia64/sn/pci/pcibr/pcibr_provider.c
@@ -79,7 +79,7 @@ static int sal_pcibr_error_interrupt(struct pcibus_info *soft)
79 79
80u16 sn_ioboard_to_pci_bus(struct pci_bus *pci_bus) 80u16 sn_ioboard_to_pci_bus(struct pci_bus *pci_bus)
81{ 81{
82 s64 rc; 82 long rc;
83 u16 uninitialized_var(ioboard); /* GCC be quiet */ 83 u16 uninitialized_var(ioboard); /* GCC be quiet */
84 nasid_t nasid = NASID_GET(SN_PCIBUS_BUSSOFT(pci_bus)->bs_base); 84 nasid_t nasid = NASID_GET(SN_PCIBUS_BUSSOFT(pci_bus)->bs_base);
85 85
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c
index 79165122501..35b2a27d2e7 100644
--- a/arch/ia64/sn/pci/tioca_provider.c
+++ b/arch/ia64/sn/pci/tioca_provider.c
@@ -123,7 +123,7 @@ tioca_gart_init(struct tioca_kernel *tioca_kern)
123 123
124 if (!tmp) { 124 if (!tmp) {
125 printk(KERN_ERR "%s: Could not allocate " 125 printk(KERN_ERR "%s: Could not allocate "
126 "%lu bytes (order %d) for GART\n", 126 "%llu bytes (order %d) for GART\n",
127 __func__, 127 __func__,
128 tioca_kern->ca_gart_size, 128 tioca_kern->ca_gart_size,
129 get_order(tioca_kern->ca_gart_size)); 129 get_order(tioca_kern->ca_gart_size));
@@ -348,7 +348,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr)
348 agp_dma_extn = __sn_readq_relaxed(&ca_base->ca_agp_dma_addr_extn); 348 agp_dma_extn = __sn_readq_relaxed(&ca_base->ca_agp_dma_addr_extn);
349 if (node_upper != (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)) { 349 if (node_upper != (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)) {
350 printk(KERN_ERR "%s: coretalk upper node (%u) " 350 printk(KERN_ERR "%s: coretalk upper node (%u) "
351 "mismatch with ca_agp_dma_addr_extn (%lu)\n", 351 "mismatch with ca_agp_dma_addr_extn (%llu)\n",
352 __func__, 352 __func__,
353 node_upper, (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)); 353 node_upper, (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT));
354 return 0; 354 return 0;
@@ -367,7 +367,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr)
367 * dma_addr_t is guaranteed to be contiguous in CA bus space. 367 * dma_addr_t is guaranteed to be contiguous in CA bus space.
368 */ 368 */
369static dma_addr_t 369static dma_addr_t
370tioca_dma_mapped(struct pci_dev *pdev, u64 paddr, size_t req_size) 370tioca_dma_mapped(struct pci_dev *pdev, unsigned long paddr, size_t req_size)
371{ 371{
372 int i, ps, ps_shift, entry, entries, mapsize, last_entry; 372 int i, ps, ps_shift, entry, entries, mapsize, last_entry;
373 u64 xio_addr, end_xio_addr; 373 u64 xio_addr, end_xio_addr;
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c
index 94e584527f4..012f3b82ee5 100644
--- a/arch/ia64/sn/pci/tioce_provider.c
+++ b/arch/ia64/sn/pci/tioce_provider.c
@@ -493,7 +493,7 @@ tioce_dma_unmap(struct pci_dev *pdev, dma_addr_t bus_addr, int dir)
493 493
494 if (&map->ce_dmamap_list == &ce_kern->ce_dmamap_list) { 494 if (&map->ce_dmamap_list == &ce_kern->ce_dmamap_list) {
495 printk(KERN_WARNING 495 printk(KERN_WARNING
496 "%s: %s - no map found for bus_addr 0x%lx\n", 496 "%s: %s - no map found for bus_addr 0x%llx\n",
497 __func__, pci_name(pdev), bus_addr); 497 __func__, pci_name(pdev), bus_addr);
498 } else if (--map->refcnt == 0) { 498 } else if (--map->refcnt == 0) {
499 for (i = 0; i < map->ate_count; i++) { 499 for (i = 0; i < map->ate_count; i++) {
@@ -642,7 +642,7 @@ dma_map_done:
642 * in the address. 642 * in the address.
643 */ 643 */
644static u64 644static u64
645tioce_dma(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags) 645tioce_dma(struct pci_dev *pdev, unsigned long paddr, size_t byte_count, int dma_flags)
646{ 646{
647 return tioce_do_dma_map(pdev, paddr, byte_count, 0, dma_flags); 647 return tioce_do_dma_map(pdev, paddr, byte_count, 0, dma_flags);
648} 648}
@@ -657,7 +657,7 @@ tioce_dma(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags)
657 * in the address. 657 * in the address.
658 */ 658 */
659static u64 659static u64
660tioce_dma_consistent(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags) 660tioce_dma_consistent(struct pci_dev *pdev, unsigned long paddr, size_t byte_count, int dma_flags)
661{ 661{
662 return tioce_do_dma_map(pdev, paddr, byte_count, 1, dma_flags); 662 return tioce_do_dma_map(pdev, paddr, byte_count, 1, dma_flags);
663} 663}
diff --git a/arch/ia64/xen/irq_xen.c b/arch/ia64/xen/irq_xen.c
index af93aadb68b..f042e192d2f 100644
--- a/arch/ia64/xen/irq_xen.c
+++ b/arch/ia64/xen/irq_xen.c
@@ -138,7 +138,7 @@ static void
138__xen_register_percpu_irq(unsigned int cpu, unsigned int vec, 138__xen_register_percpu_irq(unsigned int cpu, unsigned int vec,
139 struct irqaction *action, int save) 139 struct irqaction *action, int save)
140{ 140{
141 irq_desc_t *desc; 141 struct irq_desc *desc;
142 int irq = 0; 142 int irq = 0;
143 143
144 if (xen_slab_ready) { 144 if (xen_slab_ready) {
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c
index 3e876f0baeb..67a01e1e428 100644
--- a/arch/m32r/kernel/process.c
+++ b/arch/m32r/kernel/process.c
@@ -302,11 +302,6 @@ asmlinkage int sys_execve(char __user *ufilename, char __user * __user *uargv,
302 goto out; 302 goto out;
303 303
304 error = do_execve(filename, uargv, uenvp, &regs); 304 error = do_execve(filename, uargv, uenvp, &regs);
305 if (error == 0) {
306 task_lock(current);
307 current->ptrace &= ~PT_DTRACE;
308 task_unlock(current);
309 }
310 putname(filename); 305 putname(filename);
311out: 306out:
312 return error; 307 return error;
diff --git a/arch/m32r/kernel/ptrace.c b/arch/m32r/kernel/ptrace.c
index 9aa615d3a5b..bf0abe9e1f7 100644
--- a/arch/m32r/kernel/ptrace.c
+++ b/arch/m32r/kernel/ptrace.c
@@ -676,10 +676,6 @@ arch_ptrace(struct task_struct *child, long request, long addr, long data)
676 if (!valid_signal(data)) 676 if (!valid_signal(data))
677 break; 677 break;
678 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); 678 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
679 if ((child->ptrace & PT_DTRACE) == 0) {
680 /* Spurious delayed TF traps may occur */
681 child->ptrace |= PT_DTRACE;
682 }
683 679
684 /* Compute next pc. */ 680 /* Compute next pc. */
685 pc = get_stack_long(child, PT_BPC); 681 pc = get_stack_long(child, PT_BPC);
diff --git a/arch/m32r/mm/fault.c b/arch/m32r/mm/fault.c
index 4a71df4c1b3..7274b47f4c2 100644
--- a/arch/m32r/mm/fault.c
+++ b/arch/m32r/mm/fault.c
@@ -196,7 +196,7 @@ survive:
196 */ 196 */
197 addr = (address & PAGE_MASK); 197 addr = (address & PAGE_MASK);
198 set_thread_fault_code(error_code); 198 set_thread_fault_code(error_code);
199 fault = handle_mm_fault(mm, vma, addr, write); 199 fault = handle_mm_fault(mm, vma, addr, write ? FAULT_FLAG_WRITE : 0);
200 if (unlikely(fault & VM_FAULT_ERROR)) { 200 if (unlikely(fault & VM_FAULT_ERROR)) {
201 if (fault & VM_FAULT_OOM) 201 if (fault & VM_FAULT_OOM)
202 goto out_of_memory; 202 goto out_of_memory;
diff --git a/arch/m68k/kernel/traps.c b/arch/m68k/kernel/traps.c
index 184acc90808..aacd6d17b83 100644
--- a/arch/m68k/kernel/traps.c
+++ b/arch/m68k/kernel/traps.c
@@ -1057,7 +1057,6 @@ asmlinkage void trap_c(struct frame *fp)
1057 if (fp->ptregs.sr & PS_S) { 1057 if (fp->ptregs.sr & PS_S) {
1058 if ((fp->ptregs.vector >> 2) == VEC_TRACE) { 1058 if ((fp->ptregs.vector >> 2) == VEC_TRACE) {
1059 /* traced a trapping instruction */ 1059 /* traced a trapping instruction */
1060 current->ptrace |= PT_DTRACE;
1061 } else 1060 } else
1062 bad_super_trap(fp); 1061 bad_super_trap(fp);
1063 return; 1062 return;
diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index f493f03231d..d0e35cf99fc 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -155,7 +155,7 @@ good_area:
155 */ 155 */
156 156
157 survive: 157 survive:
158 fault = handle_mm_fault(mm, vma, address, write); 158 fault = handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0);
159#ifdef DEBUG 159#ifdef DEBUG
160 printk("handle_mm_fault returns %d\n",fault); 160 printk("handle_mm_fault returns %d\n",fault);
161#endif 161#endif
diff --git a/arch/m68knommu/kernel/asm-offsets.c b/arch/m68knommu/kernel/asm-offsets.c
index f500dd6935d..594ee0e657f 100644
--- a/arch/m68knommu/kernel/asm-offsets.c
+++ b/arch/m68knommu/kernel/asm-offsets.c
@@ -73,7 +73,6 @@ int main(void)
73 DEFINE(TRAP_TRACE, TRAP_TRACE); 73 DEFINE(TRAP_TRACE, TRAP_TRACE);
74 74
75 DEFINE(PT_PTRACED, PT_PTRACED); 75 DEFINE(PT_PTRACED, PT_PTRACED);
76 DEFINE(PT_DTRACE, PT_DTRACE);
77 76
78 DEFINE(THREAD_SIZE, THREAD_SIZE); 77 DEFINE(THREAD_SIZE, THREAD_SIZE);
79 78
diff --git a/arch/m68knommu/kernel/traps.c b/arch/m68knommu/kernel/traps.c
index 5d5d56bcd0e..51d325343ab 100644
--- a/arch/m68knommu/kernel/traps.c
+++ b/arch/m68knommu/kernel/traps.c
@@ -200,7 +200,6 @@ asmlinkage void trap_c(struct frame *fp)
200 if (fp->ptregs.sr & PS_S) { 200 if (fp->ptregs.sr & PS_S) {
201 if ((fp->ptregs.vector >> 2) == VEC_TRACE) { 201 if ((fp->ptregs.vector >> 2) == VEC_TRACE) {
202 /* traced a trapping instruction */ 202 /* traced a trapping instruction */
203 current->ptrace |= PT_DTRACE;
204 } else 203 } else
205 bad_super_trap(fp); 204 bad_super_trap(fp);
206 return; 205 return;
diff --git a/arch/microblaze/kernel/init_task.c b/arch/microblaze/kernel/init_task.c
index 48eb9fb255f..67da22579b6 100644
--- a/arch/microblaze/kernel/init_task.c
+++ b/arch/microblaze/kernel/init_task.c
@@ -18,8 +18,6 @@
18 18
19static struct signal_struct init_signals = INIT_SIGNALS(init_signals); 19static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
20static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); 20static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
21struct mm_struct init_mm = INIT_MM(init_mm);
22EXPORT_SYMBOL(init_mm);
23 21
24union thread_union init_thread_union 22union thread_union init_thread_union
25 __attribute__((__section__(".data.init_task"))) = 23 __attribute__((__section__(".data.init_task"))) =
diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S
index 8ae807ab7a5..d34d38dcd12 100644
--- a/arch/microblaze/kernel/vmlinux.lds.S
+++ b/arch/microblaze/kernel/vmlinux.lds.S
@@ -62,7 +62,8 @@ SECTIONS {
62 62
63 _sdata = . ; 63 _sdata = . ;
64 .data ALIGN (4096) : { /* page aligned when MMU used - origin 0x4 */ 64 .data ALIGN (4096) : { /* page aligned when MMU used - origin 0x4 */
65 *(.data) 65 DATA_DATA
66 CONSTRUCTORS
66 } 67 }
67 . = ALIGN(32); 68 . = ALIGN(32);
68 .data.cacheline_aligned : { *(.data.cacheline_aligned) } 69 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
@@ -98,13 +99,13 @@ SECTIONS {
98 . = ALIGN(4096); 99 . = ALIGN(4096);
99 .init.text : { 100 .init.text : {
100 _sinittext = . ; 101 _sinittext = . ;
101 *(.init.text) 102 INIT_TEXT
102 *(.exit.text)
103 *(.exit.data)
104 _einittext = .; 103 _einittext = .;
105 } 104 }
106 105
107 .init.data : { *(.init.data) } 106 .init.data : {
107 INIT_DATA
108 }
108 109
109 . = ALIGN(4); 110 . = ALIGN(4);
110 .init.ivt : { 111 .init.ivt : {
diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c
index 5e67cd1fab4..956607a63f4 100644
--- a/arch/microblaze/mm/fault.c
+++ b/arch/microblaze/mm/fault.c
@@ -232,7 +232,7 @@ good_area:
232 * the fault. 232 * the fault.
233 */ 233 */
234survive: 234survive:
235 fault = handle_mm_fault(mm, vma, address, is_write); 235 fault = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0);
236 if (unlikely(fault & VM_FAULT_ERROR)) { 236 if (unlikely(fault & VM_FAULT_ERROR)) {
237 if (fault & VM_FAULT_OOM) 237 if (fault & VM_FAULT_OOM)
238 goto out_of_memory; 238 goto out_of_memory;
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index b29f0280d71..8c4be1f301c 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -601,6 +601,7 @@ config CAVIUM_OCTEON_SIMULATOR
601 select SYS_SUPPORTS_64BIT_KERNEL 601 select SYS_SUPPORTS_64BIT_KERNEL
602 select SYS_SUPPORTS_BIG_ENDIAN 602 select SYS_SUPPORTS_BIG_ENDIAN
603 select SYS_SUPPORTS_HIGHMEM 603 select SYS_SUPPORTS_HIGHMEM
604 select SYS_SUPPORTS_HOTPLUG_CPU
604 select SYS_HAS_CPU_CAVIUM_OCTEON 605 select SYS_HAS_CPU_CAVIUM_OCTEON
605 help 606 help
606 The Octeon simulator is software performance model of the Cavium 607 The Octeon simulator is software performance model of the Cavium
@@ -615,6 +616,7 @@ config CAVIUM_OCTEON_REFERENCE_BOARD
615 select SYS_SUPPORTS_64BIT_KERNEL 616 select SYS_SUPPORTS_64BIT_KERNEL
616 select SYS_SUPPORTS_BIG_ENDIAN 617 select SYS_SUPPORTS_BIG_ENDIAN
617 select SYS_SUPPORTS_HIGHMEM 618 select SYS_SUPPORTS_HIGHMEM
619 select SYS_SUPPORTS_HOTPLUG_CPU
618 select SYS_HAS_EARLY_PRINTK 620 select SYS_HAS_EARLY_PRINTK
619 select SYS_HAS_CPU_CAVIUM_OCTEON 621 select SYS_HAS_CPU_CAVIUM_OCTEON
620 select SWAP_IO_SPACE 622 select SWAP_IO_SPACE
@@ -784,8 +786,17 @@ config SYS_HAS_EARLY_PRINTK
784 bool 786 bool
785 787
786config HOTPLUG_CPU 788config HOTPLUG_CPU
789 bool "Support for hot-pluggable CPUs"
790 depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
791 help
792 Say Y here to allow turning CPUs off and on. CPUs can be
793 controlled through /sys/devices/system/cpu.
794 (Note: power management support will enable this option
795 automatically on SMP systems. )
796 Say N if you want to disable CPU hotplug.
797
798config SYS_SUPPORTS_HOTPLUG_CPU
787 bool 799 bool
788 default n
789 800
790config I8259 801config I8259
791 bool 802 bool
@@ -2136,11 +2147,11 @@ menu "Power management options"
2136 2147
2137config ARCH_HIBERNATION_POSSIBLE 2148config ARCH_HIBERNATION_POSSIBLE
2138 def_bool y 2149 def_bool y
2139 depends on !SMP 2150 depends on SYS_SUPPORTS_HOTPLUG_CPU
2140 2151
2141config ARCH_SUSPEND_POSSIBLE 2152config ARCH_SUSPEND_POSSIBLE
2142 def_bool y 2153 def_bool y
2143 depends on !SMP 2154 depends on SYS_SUPPORTS_HOTPLUG_CPU
2144 2155
2145source "kernel/power/Kconfig" 2156source "kernel/power/Kconfig"
2146 2157
diff --git a/arch/mips/cavium-octeon/octeon-irq.c b/arch/mips/cavium-octeon/octeon-irq.c
index 8dfa009e007..384f1842bfb 100644
--- a/arch/mips/cavium-octeon/octeon-irq.c
+++ b/arch/mips/cavium-octeon/octeon-irq.c
@@ -7,7 +7,7 @@
7 */ 7 */
8#include <linux/irq.h> 8#include <linux/irq.h>
9#include <linux/interrupt.h> 9#include <linux/interrupt.h>
10#include <linux/hardirq.h> 10#include <linux/smp.h>
11 11
12#include <asm/octeon/octeon.h> 12#include <asm/octeon/octeon.h>
13#include <asm/octeon/cvmx-pexp-defs.h> 13#include <asm/octeon/cvmx-pexp-defs.h>
@@ -501,3 +501,62 @@ asmlinkage void plat_irq_dispatch(void)
501 } 501 }
502 } 502 }
503} 503}
504
505#ifdef CONFIG_HOTPLUG_CPU
506static int is_irq_enabled_on_cpu(unsigned int irq, unsigned int cpu)
507{
508 unsigned int isset;
509#ifdef CONFIG_SMP
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) ?
515 irq - OCTEON_IRQ_WORKQ0 : irq - OCTEON_IRQ_WDOG0;
516 if (irq < 64) {
517 isset = (cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)) &
518 (1ull << bit)) >> bit;
519 } else {
520 isset = (cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)) &
521 (1ull << bit)) >> bit;
522 }
523 return isset;
524}
525
526void fixup_irqs(void)
527{
528 int irq;
529
530 for (irq = OCTEON_IRQ_SW0; irq <= OCTEON_IRQ_TIMER; irq++)
531 octeon_irq_core_disable_local(irq);
532
533 for (irq = OCTEON_IRQ_WORKQ0; irq <= OCTEON_IRQ_GPIO15; irq++) {
534 if (is_irq_enabled_on_cpu(irq, smp_processor_id())) {
535 /* ciu irq migrates to next cpu */
536 octeon_irq_chip_ciu0.disable(irq);
537 octeon_irq_ciu0_set_affinity(irq, &cpu_online_map);
538 }
539 }
540
541#if 0
542 for (irq = OCTEON_IRQ_MBOX0; irq <= OCTEON_IRQ_MBOX1; irq++)
543 octeon_irq_mailbox_mask(irq);
544#endif
545 for (irq = OCTEON_IRQ_UART0; irq <= OCTEON_IRQ_BOOTDMA; irq++) {
546 if (is_irq_enabled_on_cpu(irq, smp_processor_id())) {
547 /* ciu irq migrates to next cpu */
548 octeon_irq_chip_ciu0.disable(irq);
549 octeon_irq_ciu0_set_affinity(irq, &cpu_online_map);
550 }
551 }
552
553 for (irq = OCTEON_IRQ_UART2; irq <= OCTEON_IRQ_RESERVED135; irq++) {
554 if (is_irq_enabled_on_cpu(irq, smp_processor_id())) {
555 /* ciu irq migrates to next cpu */
556 octeon_irq_chip_ciu1.disable(irq);
557 octeon_irq_ciu1_set_affinity(irq, &cpu_online_map);
558 }
559 }
560}
561
562#endif /* CONFIG_HOTPLUG_CPU */
diff --git a/arch/mips/cavium-octeon/octeon_boot.h b/arch/mips/cavium-octeon/octeon_boot.h
new file mode 100644
index 00000000000..0f7f84accf9
--- /dev/null
+++ b/arch/mips/cavium-octeon/octeon_boot.h
@@ -0,0 +1,70 @@
1/*
2 * (C) Copyright 2004, 2005 Cavium Networks
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 as
6 * published by the Free Software Foundation; either version 2 of
7 * the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
17 * MA 02111-1307 USA
18 */
19
20#ifndef __OCTEON_BOOT_H__
21#define __OCTEON_BOOT_H__
22
23#include <linux/types.h>
24
25struct boot_init_vector {
26 uint32_t stack_addr;
27 uint32_t code_addr;
28 uint32_t app_start_func_addr;
29 uint32_t k0_val;
30 uint32_t flags;
31 uint32_t boot_info_addr;
32 uint32_t pad;
33 uint32_t pad2;
34};
35
36/* similar to bootloader's linux_app_boot_info but without global data */
37struct linux_app_boot_info {
38 uint32_t labi_signature;
39 uint32_t start_core0_addr;
40 uint32_t avail_coremask;
41 uint32_t pci_console_active;
42 uint32_t icache_prefetch_disable;
43 uint32_t InitTLBStart_addr;
44 uint32_t start_app_addr;
45 uint32_t cur_exception_base;
46 uint32_t no_mark_private_data;
47 uint32_t compact_flash_common_base_addr;
48 uint32_t compact_flash_attribute_base_addr;
49 uint32_t led_display_base_addr;
50};
51
52/* If not to copy a lot of bootloader's structures
53 here is only offset of requested member */
54#define AVAIL_COREMASK_OFFSET_IN_LINUX_APP_BOOT_BLOCK 0x765c
55
56/* hardcoded in bootloader */
57#define LABI_ADDR_IN_BOOTLOADER 0x700
58
59#define LINUX_APP_BOOT_BLOCK_NAME "linux-app-boot"
60
61#define LABI_SIGNATURE 0xAABBCCDD
62
63/* from uboot-headers/octeon_mem_map.h */
64#define EXCEPTION_BASE_INCR (4 * 1024)
65 /* Increment size for exception base addresses (4k minimum) */
66#define EXCEPTION_BASE_BASE 0
67#define BOOTLOADER_PRIV_DATA_BASE (EXCEPTION_BASE_BASE + 0x800)
68#define BOOTLOADER_BOOT_VECTOR (BOOTLOADER_PRIV_DATA_BASE)
69
70#endif /* __OCTEON_BOOT_H__ */
diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c
index 5f4e49ba471..da559249cc2 100644
--- a/arch/mips/cavium-octeon/setup.c
+++ b/arch/mips/cavium-octeon/setup.c
@@ -13,6 +13,7 @@
13#include <linux/io.h> 13#include <linux/io.h>
14#include <linux/irq.h> 14#include <linux/irq.h>
15#include <linux/serial.h> 15#include <linux/serial.h>
16#include <linux/smp.h>
16#include <linux/types.h> 17#include <linux/types.h>
17#include <linux/string.h> /* for memset */ 18#include <linux/string.h> /* for memset */
18#include <linux/tty.h> 19#include <linux/tty.h>
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
index 24e0ad63980..0b891a9c625 100644
--- a/arch/mips/cavium-octeon/smp.c
+++ b/arch/mips/cavium-octeon/smp.c
@@ -5,6 +5,7 @@
5 * 5 *
6 * Copyright (C) 2004-2008 Cavium Networks 6 * Copyright (C) 2004-2008 Cavium Networks
7 */ 7 */
8#include <linux/cpu.h>
8#include <linux/init.h> 9#include <linux/init.h>
9#include <linux/delay.h> 10#include <linux/delay.h>
10#include <linux/smp.h> 11#include <linux/smp.h>
@@ -19,10 +20,16 @@
19 20
20#include <asm/octeon/octeon.h> 21#include <asm/octeon/octeon.h>
21 22
23#include "octeon_boot.h"
24
22volatile unsigned long octeon_processor_boot = 0xff; 25volatile unsigned long octeon_processor_boot = 0xff;
23volatile unsigned long octeon_processor_sp; 26volatile unsigned long octeon_processor_sp;
24volatile unsigned long octeon_processor_gp; 27volatile unsigned long octeon_processor_gp;
25 28
29#ifdef CONFIG_HOTPLUG_CPU
30static unsigned int InitTLBStart_addr;
31#endif
32
26static irqreturn_t mailbox_interrupt(int irq, void *dev_id) 33static irqreturn_t mailbox_interrupt(int irq, void *dev_id)
27{ 34{
28 const int coreid = cvmx_get_core_num(); 35 const int coreid = cvmx_get_core_num();
@@ -67,8 +74,28 @@ static inline void octeon_send_ipi_mask(cpumask_t mask, unsigned int action)
67} 74}
68 75
69/** 76/**
70 * Detect available CPUs, populate phys_cpu_present_map 77 * Detect available CPUs, populate cpu_possible_map
71 */ 78 */
79static void octeon_smp_hotplug_setup(void)
80{
81#ifdef CONFIG_HOTPLUG_CPU
82 uint32_t labi_signature;
83
84 labi_signature =
85 cvmx_read64_uint32(CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
86 LABI_ADDR_IN_BOOTLOADER +
87 offsetof(struct linux_app_boot_info,
88 labi_signature)));
89 if (labi_signature != LABI_SIGNATURE)
90 pr_err("The bootloader version on this board is incorrect\n");
91 InitTLBStart_addr =
92 cvmx_read64_uint32(CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
93 LABI_ADDR_IN_BOOTLOADER +
94 offsetof(struct linux_app_boot_info,
95 InitTLBStart_addr)));
96#endif
97}
98
72static void octeon_smp_setup(void) 99static void octeon_smp_setup(void)
73{ 100{
74 const int coreid = cvmx_get_core_num(); 101 const int coreid = cvmx_get_core_num();
@@ -91,6 +118,9 @@ static void octeon_smp_setup(void)
91 cpus++; 118 cpus++;
92 } 119 }
93 } 120 }
121 cpu_present_map = cpu_possible_map;
122
123 octeon_smp_hotplug_setup();
94} 124}
95 125
96/** 126/**
@@ -128,6 +158,17 @@ static void octeon_init_secondary(void)
128 const int coreid = cvmx_get_core_num(); 158 const int coreid = cvmx_get_core_num();
129 union cvmx_ciu_intx_sum0 interrupt_enable; 159 union cvmx_ciu_intx_sum0 interrupt_enable;
130 160
161#ifdef CONFIG_HOTPLUG_CPU
162 unsigned int cur_exception_base;
163
164 cur_exception_base = cvmx_read64_uint32(
165 CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
166 LABI_ADDR_IN_BOOTLOADER +
167 offsetof(struct linux_app_boot_info,
168 cur_exception_base)));
169 /* cur_exception_base is incremented in bootloader after setting */
170 write_c0_ebase((unsigned int)(cur_exception_base - EXCEPTION_BASE_INCR));
171#endif
131 octeon_check_cpu_bist(); 172 octeon_check_cpu_bist();
132 octeon_init_cvmcount(); 173 octeon_init_cvmcount();
133 /* 174 /*
@@ -199,6 +240,193 @@ static void octeon_cpus_done(void)
199#endif 240#endif
200} 241}
201 242
243#ifdef CONFIG_HOTPLUG_CPU
244
245/* State of each CPU. */
246DEFINE_PER_CPU(int, cpu_state);
247
248extern void fixup_irqs(void);
249
250static DEFINE_SPINLOCK(smp_reserve_lock);
251
252static int octeon_cpu_disable(void)
253{
254 unsigned int cpu = smp_processor_id();
255
256 if (cpu == 0)
257 return -EBUSY;
258
259 spin_lock(&smp_reserve_lock);
260
261 cpu_clear(cpu, cpu_online_map);
262 cpu_clear(cpu, cpu_callin_map);
263 local_irq_disable();
264 fixup_irqs();
265 local_irq_enable();
266
267 flush_cache_all();
268 local_flush_tlb_all();
269
270 spin_unlock(&smp_reserve_lock);
271
272 return 0;
273}
274
275static void octeon_cpu_die(unsigned int cpu)
276{
277 int coreid = cpu_logical_map(cpu);
278 uint32_t avail_coremask;
279 struct cvmx_bootmem_named_block_desc *block_desc;
280
281#ifdef CONFIG_CAVIUM_OCTEON_WATCHDOG
282 /* Disable the watchdog */
283 cvmx_ciu_wdogx_t ciu_wdog;
284 ciu_wdog.u64 = cvmx_read_csr(CVMX_CIU_WDOGX(cpu));
285 ciu_wdog.s.mode = 0;
286 cvmx_write_csr(CVMX_CIU_WDOGX(cpu), ciu_wdog.u64);
287#endif
288
289 while (per_cpu(cpu_state, cpu) != CPU_DEAD)
290 cpu_relax();
291
292 /*
293 * This is a bit complicated strategics of getting/settig available
294 * cores mask, copied from bootloader
295 */
296 /* LINUX_APP_BOOT_BLOCK is initialized in bootoct binary */
297 block_desc = cvmx_bootmem_find_named_block(LINUX_APP_BOOT_BLOCK_NAME);
298
299 if (!block_desc) {
300 avail_coremask =
301 cvmx_read64_uint32(CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
302 LABI_ADDR_IN_BOOTLOADER +
303 offsetof
304 (struct linux_app_boot_info,
305 avail_coremask)));
306 } else { /* alternative, already initialized */
307 avail_coremask =
308 cvmx_read64_uint32(CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
309 block_desc->base_addr +
310 AVAIL_COREMASK_OFFSET_IN_LINUX_APP_BOOT_BLOCK));
311 }
312
313 avail_coremask |= 1 << coreid;
314
315 /* Setting avail_coremask for bootoct binary */
316 if (!block_desc) {
317 cvmx_write64_uint32(CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
318 LABI_ADDR_IN_BOOTLOADER +
319 offsetof(struct linux_app_boot_info,
320 avail_coremask)),
321 avail_coremask);
322 } else {
323 cvmx_write64_uint32(CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
324 block_desc->base_addr +
325 AVAIL_COREMASK_OFFSET_IN_LINUX_APP_BOOT_BLOCK),
326 avail_coremask);
327 }
328
329 pr_info("Reset core %d. Available Coremask = %x \n", coreid,
330 avail_coremask);
331 cvmx_write_csr(CVMX_CIU_PP_RST, 1 << coreid);
332 cvmx_write_csr(CVMX_CIU_PP_RST, 0);
333}
334
335void play_dead(void)
336{
337 int coreid = cvmx_get_core_num();
338
339 idle_task_exit();
340 octeon_processor_boot = 0xff;
341 per_cpu(cpu_state, coreid) = CPU_DEAD;
342
343 while (1) /* core will be reset here */
344 ;
345}
346
347extern void kernel_entry(unsigned long arg1, ...);
348
349static void start_after_reset(void)
350{
351 kernel_entry(0, 0, 0); /* set a2 = 0 for secondary core */
352}
353
354int octeon_update_boot_vector(unsigned int cpu)
355{
356
357 int coreid = cpu_logical_map(cpu);
358 unsigned int avail_coremask;
359 struct cvmx_bootmem_named_block_desc *block_desc;
360 struct boot_init_vector *boot_vect =
361 (struct boot_init_vector *) cvmx_phys_to_ptr(0x0 +
362 BOOTLOADER_BOOT_VECTOR);
363
364 block_desc = cvmx_bootmem_find_named_block(LINUX_APP_BOOT_BLOCK_NAME);
365
366 if (!block_desc) {
367 avail_coremask =
368 cvmx_read64_uint32(CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
369 LABI_ADDR_IN_BOOTLOADER +
370 offsetof(struct linux_app_boot_info,
371 avail_coremask)));
372 } else { /* alternative, already initialized */
373 avail_coremask =
374 cvmx_read64_uint32(CVMX_ADD_SEG(CVMX_MIPS_SPACE_XKPHYS,
375 block_desc->base_addr +
376 AVAIL_COREMASK_OFFSET_IN_LINUX_APP_BOOT_BLOCK));
377 }
378
379 if (!(avail_coremask & (1 << coreid))) {
380 /* core not available, assume, that catched by simple-executive */
381 cvmx_write_csr(CVMX_CIU_PP_RST, 1 << coreid);
382 cvmx_write_csr(CVMX_CIU_PP_RST, 0);
383 }
384
385 boot_vect[coreid].app_start_func_addr =
386 (uint32_t) (unsigned long) start_after_reset;
387 boot_vect[coreid].code_addr = InitTLBStart_addr;
388
389 CVMX_SYNC;
390
391 cvmx_write_csr(CVMX_CIU_NMI, (1 << coreid) & avail_coremask);
392
393 return 0;
394}
395
396static int __cpuinit octeon_cpu_callback(struct notifier_block *nfb,
397 unsigned long action, void *hcpu)
398{
399 unsigned int cpu = (unsigned long)hcpu;
400
401 switch (action) {
402 case CPU_UP_PREPARE:
403 octeon_update_boot_vector(cpu);
404 break;
405 case CPU_ONLINE:
406 pr_info("Cpu %d online\n", cpu);
407 break;
408 case CPU_DEAD:
409 break;
410 }
411
412 return NOTIFY_OK;
413}
414
415static struct notifier_block __cpuinitdata octeon_cpu_notifier = {
416 .notifier_call = octeon_cpu_callback,
417};
418
419static int __cpuinit register_cavium_notifier(void)
420{
421 register_hotcpu_notifier(&octeon_cpu_notifier);
422
423 return 0;
424}
425
426late_initcall(register_cavium_notifier);
427
428#endif /* CONFIG_HOTPLUG_CPU */
429
202struct plat_smp_ops octeon_smp_ops = { 430struct plat_smp_ops octeon_smp_ops = {
203 .send_ipi_single = octeon_send_ipi_single, 431 .send_ipi_single = octeon_send_ipi_single,
204 .send_ipi_mask = octeon_send_ipi_mask, 432 .send_ipi_mask = octeon_send_ipi_mask,
@@ -208,4 +436,8 @@ struct plat_smp_ops octeon_smp_ops = {
208 .boot_secondary = octeon_boot_secondary, 436 .boot_secondary = octeon_boot_secondary,
209 .smp_setup = octeon_smp_setup, 437 .smp_setup = octeon_smp_setup,
210 .prepare_cpus = octeon_prepare_cpus, 438 .prepare_cpus = octeon_prepare_cpus,
439#ifdef CONFIG_HOTPLUG_CPU
440 .cpu_disable = octeon_cpu_disable,
441 .cpu_die = octeon_cpu_die,
442#endif
211}; 443};
diff --git a/arch/mips/include/asm/bug.h b/arch/mips/include/asm/bug.h
index 08ea46863fe..6cf29c26e87 100644
--- a/arch/mips/include/asm/bug.h
+++ b/arch/mips/include/asm/bug.h
@@ -1,6 +1,7 @@
1#ifndef __ASM_BUG_H 1#ifndef __ASM_BUG_H
2#define __ASM_BUG_H 2#define __ASM_BUG_H
3 3
4#include <linux/compiler.h>
4#include <asm/sgidefs.h> 5#include <asm/sgidefs.h>
5 6
6#ifdef CONFIG_BUG 7#ifdef CONFIG_BUG
diff --git a/arch/mips/include/asm/bugs.h b/arch/mips/include/asm/bugs.h
index 9dc10df3207..b160a706795 100644
--- a/arch/mips/include/asm/bugs.h
+++ b/arch/mips/include/asm/bugs.h
@@ -11,6 +11,7 @@
11 11
12#include <linux/bug.h> 12#include <linux/bug.h>
13#include <linux/delay.h> 13#include <linux/delay.h>
14#include <linux/smp.h>
14 15
15#include <asm/cpu.h> 16#include <asm/cpu.h>
16#include <asm/cpu-info.h> 17#include <asm/cpu-info.h>
diff --git a/arch/mips/include/asm/irq.h b/arch/mips/include/asm/irq.h
index 4f1eed107b0..09b08d05ff7 100644
--- a/arch/mips/include/asm/irq.h
+++ b/arch/mips/include/asm/irq.h
@@ -10,6 +10,7 @@
10#define _ASM_IRQ_H 10#define _ASM_IRQ_H
11 11
12#include <linux/linkage.h> 12#include <linux/linkage.h>
13#include <linux/smp.h>
13 14
14#include <asm/mipsmtregs.h> 15#include <asm/mipsmtregs.h>
15 16
diff --git a/arch/mips/include/asm/mmu_context.h b/arch/mips/include/asm/mmu_context.h
index d7f3eb03ad1..d3bea88d874 100644
--- a/arch/mips/include/asm/mmu_context.h
+++ b/arch/mips/include/asm/mmu_context.h
@@ -13,6 +13,7 @@
13 13
14#include <linux/errno.h> 14#include <linux/errno.h>
15#include <linux/sched.h> 15#include <linux/sched.h>
16#include <linux/smp.h>
16#include <linux/slab.h> 17#include <linux/slab.h>
17#include <asm/cacheflush.h> 18#include <asm/cacheflush.h>
18#include <asm/tlbflush.h> 19#include <asm/tlbflush.h>
diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h
index 053e4634ace..a68d111e55e 100644
--- a/arch/mips/include/asm/pci.h
+++ b/arch/mips/include/asm/pci.h
@@ -142,19 +142,6 @@ extern void pcibios_resource_to_bus(struct pci_dev *dev,
142extern void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, 142extern void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
143 struct pci_bus_region *region); 143 struct pci_bus_region *region);
144 144
145static inline struct resource *
146pcibios_select_root(struct pci_dev *pdev, struct resource *res)
147{
148 struct resource *root = NULL;
149
150 if (res->flags & IORESOURCE_IO)
151 root = &ioport_resource;
152 if (res->flags & IORESOURCE_MEM)
153 root = &iomem_resource;
154
155 return root;
156}
157
158#define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index 145#define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index
159 146
160static inline int pci_proc_domain(struct pci_bus *bus) 147static inline int pci_proc_domain(struct pci_bus *bus)
diff --git a/arch/mips/include/asm/smp-ops.h b/arch/mips/include/asm/smp-ops.h
index 64ffc0290b8..fd545547b8a 100644
--- a/arch/mips/include/asm/smp-ops.h
+++ b/arch/mips/include/asm/smp-ops.h
@@ -26,6 +26,10 @@ struct plat_smp_ops {
26 void (*boot_secondary)(int cpu, struct task_struct *idle); 26 void (*boot_secondary)(int cpu, struct task_struct *idle);
27 void (*smp_setup)(void); 27 void (*smp_setup)(void);
28 void (*prepare_cpus)(unsigned int max_cpus); 28 void (*prepare_cpus)(unsigned int max_cpus);
29#ifdef CONFIG_HOTPLUG_CPU
30 int (*cpu_disable)(void);
31 void (*cpu_die)(unsigned int cpu);
32#endif
29}; 33};
30 34
31extern void register_smp_ops(struct plat_smp_ops *ops); 35extern void register_smp_ops(struct plat_smp_ops *ops);
diff --git a/arch/mips/include/asm/smp.h b/arch/mips/include/asm/smp.h
index 40e5ef1d4d2..aaa2d4ab26d 100644
--- a/arch/mips/include/asm/smp.h
+++ b/arch/mips/include/asm/smp.h
@@ -13,6 +13,7 @@
13 13
14#include <linux/bitops.h> 14#include <linux/bitops.h>
15#include <linux/linkage.h> 15#include <linux/linkage.h>
16#include <linux/smp.h>
16#include <linux/threads.h> 17#include <linux/threads.h>
17#include <linux/cpumask.h> 18#include <linux/cpumask.h>
18 19
@@ -40,6 +41,7 @@ extern int __cpu_logical_map[NR_CPUS];
40/* Octeon - Tell another core to flush its icache */ 41/* Octeon - Tell another core to flush its icache */
41#define SMP_ICACHE_FLUSH 0x4 42#define SMP_ICACHE_FLUSH 0x4
42 43
44extern volatile cpumask_t cpu_callin_map;
43 45
44extern void asmlinkage smp_bootstrap(void); 46extern void asmlinkage smp_bootstrap(void);
45 47
@@ -55,6 +57,24 @@ static inline void smp_send_reschedule(int cpu)
55 mp_ops->send_ipi_single(cpu, SMP_RESCHEDULE_YOURSELF); 57 mp_ops->send_ipi_single(cpu, SMP_RESCHEDULE_YOURSELF);
56} 58}
57 59
60#ifdef CONFIG_HOTPLUG_CPU
61static inline int __cpu_disable(void)
62{
63 extern struct plat_smp_ops *mp_ops; /* private */
64
65 return mp_ops->cpu_disable();
66}
67
68static inline void __cpu_die(unsigned int cpu)
69{
70 extern struct plat_smp_ops *mp_ops; /* private */
71
72 mp_ops->cpu_die(cpu);
73}
74
75extern void play_dead(void);
76#endif
77
58extern asmlinkage void smp_call_function_interrupt(void); 78extern asmlinkage void smp_call_function_interrupt(void);
59 79
60extern void arch_send_call_function_single_ipi(int cpu); 80extern void arch_send_call_function_single_ipi(int cpu);
diff --git a/arch/mips/include/asm/sn/addrs.h b/arch/mips/include/asm/sn/addrs.h
index 3a56d90abfa..2367b56dcde 100644
--- a/arch/mips/include/asm/sn/addrs.h
+++ b/arch/mips/include/asm/sn/addrs.h
@@ -11,6 +11,7 @@
11 11
12 12
13#ifndef __ASSEMBLY__ 13#ifndef __ASSEMBLY__
14#include <linux/smp.h>
14#include <linux/types.h> 15#include <linux/types.h>
15#endif /* !__ASSEMBLY__ */ 16#endif /* !__ASSEMBLY__ */
16 17
diff --git a/arch/mips/jazz/irq.c b/arch/mips/jazz/irq.c
index d9b6a5b5399..7fd170d007e 100644
--- a/arch/mips/jazz/irq.c
+++ b/arch/mips/jazz/irq.c
@@ -10,6 +10,7 @@
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/interrupt.h> 11#include <linux/interrupt.h>
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/smp.h>
13#include <linux/spinlock.h> 14#include <linux/spinlock.h>
14 15
15#include <asm/irq_cpu.h> 16#include <asm/irq_cpu.h>
diff --git a/arch/mips/kernel/cevt-bcm1480.c b/arch/mips/kernel/cevt-bcm1480.c
index a5182a20769..e02f79b1eb5 100644
--- a/arch/mips/kernel/cevt-bcm1480.c
+++ b/arch/mips/kernel/cevt-bcm1480.c
@@ -18,6 +18,7 @@
18#include <linux/clockchips.h> 18#include <linux/clockchips.h>
19#include <linux/interrupt.h> 19#include <linux/interrupt.h>
20#include <linux/percpu.h> 20#include <linux/percpu.h>
21#include <linux/smp.h>
21 22
22#include <asm/addrspace.h> 23#include <asm/addrspace.h>
23#include <asm/io.h> 24#include <asm/io.h>
diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c
index 0015e442572..2652362ce04 100644
--- a/arch/mips/kernel/cevt-r4k.c
+++ b/arch/mips/kernel/cevt-r4k.c
@@ -9,6 +9,7 @@
9#include <linux/clockchips.h> 9#include <linux/clockchips.h>
10#include <linux/interrupt.h> 10#include <linux/interrupt.h>
11#include <linux/percpu.h> 11#include <linux/percpu.h>
12#include <linux/smp.h>
12 13
13#include <asm/smtc_ipi.h> 14#include <asm/smtc_ipi.h>
14#include <asm/time.h> 15#include <asm/time.h>
diff --git a/arch/mips/kernel/cevt-sb1250.c b/arch/mips/kernel/cevt-sb1250.c
index 340f53e5c6b..ac5903d1b20 100644
--- a/arch/mips/kernel/cevt-sb1250.c
+++ b/arch/mips/kernel/cevt-sb1250.c
@@ -18,6 +18,7 @@
18#include <linux/clockchips.h> 18#include <linux/clockchips.h>
19#include <linux/interrupt.h> 19#include <linux/interrupt.h>
20#include <linux/percpu.h> 20#include <linux/percpu.h>
21#include <linux/smp.h>
21 22
22#include <asm/addrspace.h> 23#include <asm/addrspace.h>
23#include <asm/io.h> 24#include <asm/io.h>
diff --git a/arch/mips/kernel/cevt-smtc.c b/arch/mips/kernel/cevt-smtc.c
index df6f5bc6057..98bd7de7577 100644
--- a/arch/mips/kernel/cevt-smtc.c
+++ b/arch/mips/kernel/cevt-smtc.c
@@ -10,6 +10,7 @@
10#include <linux/clockchips.h> 10#include <linux/clockchips.h>
11#include <linux/interrupt.h> 11#include <linux/interrupt.h>
12#include <linux/percpu.h> 12#include <linux/percpu.h>
13#include <linux/smp.h>
13 14
14#include <asm/smtc_ipi.h> 15#include <asm/smtc_ipi.h>
15#include <asm/time.h> 16#include <asm/time.h>
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index b13b8eb3059..1abe9905c9c 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -14,6 +14,7 @@
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/ptrace.h> 16#include <linux/ptrace.h>
17#include <linux/smp.h>
17#include <linux/stddef.h> 18#include <linux/stddef.h>
18 19
19#include <asm/bugs.h> 20#include <asm/bugs.h>
diff --git a/arch/mips/kernel/i8253.c b/arch/mips/kernel/i8253.c
index ed20e7fe65e..f7d8d5d0ddb 100644
--- a/arch/mips/kernel/i8253.c
+++ b/arch/mips/kernel/i8253.c
@@ -7,6 +7,7 @@
7#include <linux/interrupt.h> 7#include <linux/interrupt.h>
8#include <linux/jiffies.h> 8#include <linux/jiffies.h>
9#include <linux/module.h> 9#include <linux/module.h>
10#include <linux/smp.h>
10#include <linux/spinlock.h> 11#include <linux/spinlock.h>
11 12
12#include <asm/delay.h> 13#include <asm/delay.h>
diff --git a/arch/mips/kernel/irq-gic.c b/arch/mips/kernel/irq-gic.c
index 3f43c2e3aa5..39000f103f2 100644
--- a/arch/mips/kernel/irq-gic.c
+++ b/arch/mips/kernel/irq-gic.c
@@ -2,6 +2,7 @@
2 2
3#include <linux/bitmap.h> 3#include <linux/bitmap.h>
4#include <linux/init.h> 4#include <linux/init.h>
5#include <linux/smp.h>
5 6
6#include <asm/io.h> 7#include <asm/io.h>
7#include <asm/gic.h> 8#include <asm/gic.h>
diff --git a/arch/mips/kernel/kgdb.c b/arch/mips/kernel/kgdb.c
index 6e152c80cd4..50c9bb88066 100644
--- a/arch/mips/kernel/kgdb.c
+++ b/arch/mips/kernel/kgdb.c
@@ -26,6 +26,7 @@
26#include <linux/kgdb.h> 26#include <linux/kgdb.h>
27#include <linux/kdebug.h> 27#include <linux/kdebug.h>
28#include <linux/sched.h> 28#include <linux/sched.h>
29#include <linux/smp.h>
29#include <asm/inst.h> 30#include <asm/inst.h>
30#include <asm/fpu.h> 31#include <asm/fpu.h>
31#include <asm/cacheflush.h> 32#include <asm/cacheflush.h>
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index 1eaaa450e20..c09d681b718 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -50,10 +50,15 @@
50 */ 50 */
51void __noreturn cpu_idle(void) 51void __noreturn cpu_idle(void)
52{ 52{
53 int cpu;
54
55 /* CPU is going idle. */
56 cpu = smp_processor_id();
57
53 /* endless idle loop with no priority at all */ 58 /* endless idle loop with no priority at all */
54 while (1) { 59 while (1) {
55 tick_nohz_stop_sched_tick(1); 60 tick_nohz_stop_sched_tick(1);
56 while (!need_resched()) { 61 while (!need_resched() && cpu_online(cpu)) {
57#ifdef CONFIG_MIPS_MT_SMTC 62#ifdef CONFIG_MIPS_MT_SMTC
58 extern void smtc_idle_loop_hook(void); 63 extern void smtc_idle_loop_hook(void);
59 64
@@ -62,6 +67,12 @@ void __noreturn cpu_idle(void)
62 if (cpu_wait) 67 if (cpu_wait)
63 (*cpu_wait)(); 68 (*cpu_wait)();
64 } 69 }
70#ifdef CONFIG_HOTPLUG_CPU
71 if (!cpu_online(cpu) && !cpu_isset(cpu, cpu_callin_map) &&
72 (system_state == SYSTEM_RUNNING ||
73 system_state == SYSTEM_BOOTING))
74 play_dead();
75#endif
65 tick_nohz_restart_sched_tick(); 76 tick_nohz_restart_sched_tick();
66 preempt_enable_no_resched(); 77 preempt_enable_no_resched();
67 schedule(); 78 schedule();
diff --git a/arch/mips/kernel/smp-cmp.c b/arch/mips/kernel/smp-cmp.c
index f27beca4b26..653be061b9e 100644
--- a/arch/mips/kernel/smp-cmp.c
+++ b/arch/mips/kernel/smp-cmp.c
@@ -20,6 +20,7 @@
20 20
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/sched.h> 22#include <linux/sched.h>
23#include <linux/smp.h>
23#include <linux/cpumask.h> 24#include <linux/cpumask.h>
24#include <linux/interrupt.h> 25#include <linux/interrupt.h>
25#include <linux/compiler.h> 26#include <linux/compiler.h>
diff --git a/arch/mips/kernel/smp-up.c b/arch/mips/kernel/smp-up.c
index 878e3733bbb..2508d55d68f 100644
--- a/arch/mips/kernel/smp-up.c
+++ b/arch/mips/kernel/smp-up.c
@@ -55,6 +55,18 @@ static void __init up_prepare_cpus(unsigned int max_cpus)
55{ 55{
56} 56}
57 57
58#ifdef CONFIG_HOTPLUG_CPU
59static int up_cpu_disable(void)
60{
61 return -ENOSYS;
62}
63
64static void up_cpu_die(unsigned int cpu)
65{
66 BUG();
67}
68#endif
69
58struct plat_smp_ops up_smp_ops = { 70struct plat_smp_ops up_smp_ops = {
59 .send_ipi_single = up_send_ipi_single, 71 .send_ipi_single = up_send_ipi_single,
60 .send_ipi_mask = up_send_ipi_mask, 72 .send_ipi_mask = up_send_ipi_mask,
@@ -64,4 +76,8 @@ struct plat_smp_ops up_smp_ops = {
64 .boot_secondary = up_boot_secondary, 76 .boot_secondary = up_boot_secondary,
65 .smp_setup = up_smp_setup, 77 .smp_setup = up_smp_setup,
66 .prepare_cpus = up_prepare_cpus, 78 .prepare_cpus = up_prepare_cpus,
79#ifdef CONFIG_HOTPLUG_CPU
80 .cpu_disable = up_cpu_disable,
81 .cpu_die = up_cpu_die,
82#endif
67}; 83};
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index c937506a03a..bc7d9b05e2f 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -22,6 +22,7 @@
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/interrupt.h> 24#include <linux/interrupt.h>
25#include <linux/smp.h>
25#include <linux/spinlock.h> 26#include <linux/spinlock.h>
26#include <linux/threads.h> 27#include <linux/threads.h>
27#include <linux/module.h> 28#include <linux/module.h>
@@ -44,7 +45,7 @@
44#include <asm/mipsmtregs.h> 45#include <asm/mipsmtregs.h>
45#endif /* CONFIG_MIPS_MT_SMTC */ 46#endif /* CONFIG_MIPS_MT_SMTC */
46 47
47static volatile cpumask_t cpu_callin_map; /* Bitmask of started secondaries */ 48volatile cpumask_t cpu_callin_map; /* Bitmask of started secondaries */
48int __cpu_number_map[NR_CPUS]; /* Map physical to logical */ 49int __cpu_number_map[NR_CPUS]; /* Map physical to logical */
49int __cpu_logical_map[NR_CPUS]; /* Map logical to physical */ 50int __cpu_logical_map[NR_CPUS]; /* Map logical to physical */
50 51
@@ -200,6 +201,8 @@ void __devinit smp_prepare_boot_cpu(void)
200 * and keep control until "cpu_online(cpu)" is set. Note: cpu is 201 * and keep control until "cpu_online(cpu)" is set. Note: cpu is
201 * physical, not logical. 202 * physical, not logical.
202 */ 203 */
204static struct task_struct *cpu_idle_thread[NR_CPUS];
205
203int __cpuinit __cpu_up(unsigned int cpu) 206int __cpuinit __cpu_up(unsigned int cpu)
204{ 207{
205 struct task_struct *idle; 208 struct task_struct *idle;
@@ -209,9 +212,16 @@ int __cpuinit __cpu_up(unsigned int cpu)
209 * The following code is purely to make sure 212 * The following code is purely to make sure
210 * Linux can schedule processes on this slave. 213 * Linux can schedule processes on this slave.
211 */ 214 */
212 idle = fork_idle(cpu); 215 if (!cpu_idle_thread[cpu]) {
213 if (IS_ERR(idle)) 216 idle = fork_idle(cpu);
214 panic(KERN_ERR "Fork failed for CPU %d", cpu); 217 cpu_idle_thread[cpu] = idle;
218
219 if (IS_ERR(idle))
220 panic(KERN_ERR "Fork failed for CPU %d", cpu);
221 } else {
222 idle = cpu_idle_thread[cpu];
223 init_idle(idle, cpu);
224 }
215 225
216 mp_ops->boot_secondary(cpu, idle); 226 mp_ops->boot_secondary(cpu, idle);
217 227
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
index 37d51cd124e..8a0626cbb10 100644
--- a/arch/mips/kernel/smtc.c
+++ b/arch/mips/kernel/smtc.c
@@ -20,6 +20,7 @@
20#include <linux/clockchips.h> 20#include <linux/clockchips.h>
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/sched.h> 22#include <linux/sched.h>
23#include <linux/smp.h>
23#include <linux/cpumask.h> 24#include <linux/cpumask.h>
24#include <linux/interrupt.h> 25#include <linux/interrupt.h>
25#include <linux/kernel_stat.h> 26#include <linux/kernel_stat.h>
diff --git a/arch/mips/kernel/topology.c b/arch/mips/kernel/topology.c
index 660e44ed44d..cf3eb61fad1 100644
--- a/arch/mips/kernel/topology.c
+++ b/arch/mips/kernel/topology.c
@@ -17,7 +17,10 @@ static int __init topology_init(void)
17#endif /* CONFIG_NUMA */ 17#endif /* CONFIG_NUMA */
18 18
19 for_each_present_cpu(i) { 19 for_each_present_cpu(i) {
20 ret = register_cpu(&per_cpu(cpu_devices, i), i); 20 struct cpu *c = &per_cpu(cpu_devices, i);
21
22 c->hotpluggable = 1;
23 ret = register_cpu(c, i);
21 if (ret) 24 if (ret)
22 printk(KERN_WARNING "topology_init: register_cpu %d " 25 printk(KERN_WARNING "topology_init: register_cpu %d "
23 "failed (%d)\n", i, ret); 26 "failed (%d)\n", i, ret);
diff --git a/arch/mips/mipssim/sim_time.c b/arch/mips/mipssim/sim_time.c
index 881ecbc1fa2..0cea932f124 100644
--- a/arch/mips/mipssim/sim_time.c
+++ b/arch/mips/mipssim/sim_time.c
@@ -91,6 +91,7 @@ unsigned __cpuinit get_c0_compare_int(void)
91 mips_cpu_timer_irq = MSC01E_INT_BASE + MSC01E_INT_CPUCTR; 91 mips_cpu_timer_irq = MSC01E_INT_BASE + MSC01E_INT_CPUCTR;
92 } else { 92 } else {
93#endif 93#endif
94 {
94 if (cpu_has_vint) 95 if (cpu_has_vint)
95 set_vi_handler(cp0_compare_irq, mips_timer_dispatch); 96 set_vi_handler(cp0_compare_irq, mips_timer_dispatch);
96 mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq; 97 mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq;
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c
index 44d01a0a849..b165cdcb281 100644
--- a/arch/mips/mm/c-octeon.c
+++ b/arch/mips/mm/c-octeon.c
@@ -8,6 +8,7 @@
8#include <linux/init.h> 8#include <linux/init.h>
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/sched.h> 10#include <linux/sched.h>
11#include <linux/smp.h>
11#include <linux/mm.h> 12#include <linux/mm.h>
12#include <linux/bitops.h> 13#include <linux/bitops.h>
13#include <linux/cpu.h> 14#include <linux/cpu.h>
diff --git a/arch/mips/mm/c-r3k.c b/arch/mips/mm/c-r3k.c
index 5500c20c79a..54e5f7b9f44 100644
--- a/arch/mips/mm/c-r3k.c
+++ b/arch/mips/mm/c-r3k.c
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/sched.h> 14#include <linux/sched.h>
15#include <linux/smp.h>
15#include <linux/mm.h> 16#include <linux/mm.h>
16 17
17#include <asm/page.h> 18#include <asm/page.h>
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 71fe4cb778c..6721ee2b1e8 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -13,6 +13,7 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/linkage.h> 14#include <linux/linkage.h>
15#include <linux/sched.h> 15#include <linux/sched.h>
16#include <linux/smp.h>
16#include <linux/mm.h> 17#include <linux/mm.h>
17#include <linux/module.h> 18#include <linux/module.h>
18#include <linux/bitops.h> 19#include <linux/bitops.h>
diff --git a/arch/mips/mm/c-tx39.c b/arch/mips/mm/c-tx39.c
index f7c8f9ce39c..6515b441871 100644
--- a/arch/mips/mm/c-tx39.c
+++ b/arch/mips/mm/c-tx39.c
@@ -11,6 +11,7 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/sched.h> 13#include <linux/sched.h>
14#include <linux/smp.h>
14#include <linux/mm.h> 15#include <linux/mm.h>
15 16
16#include <asm/cacheops.h> 17#include <asm/cacheops.h>
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index 55767ad9f00..6751ce9ede9 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -102,7 +102,7 @@ good_area:
102 * make sure we exit gracefully rather than endlessly redo 102 * make sure we exit gracefully rather than endlessly redo
103 * the fault. 103 * the fault.
104 */ 104 */
105 fault = handle_mm_fault(mm, vma, address, write); 105 fault = handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0);
106 if (unlikely(fault & VM_FAULT_ERROR)) { 106 if (unlikely(fault & VM_FAULT_ERROR)) {
107 if (fault & VM_FAULT_OOM) 107 if (fault & VM_FAULT_OOM)
108 goto out_of_memory; 108 goto out_of_memory;
diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c
index 2b1309b2580..e274fda329f 100644
--- a/arch/mips/mm/highmem.c
+++ b/arch/mips/mm/highmem.c
@@ -1,5 +1,6 @@
1#include <linux/module.h> 1#include <linux/module.h>
2#include <linux/highmem.h> 2#include <linux/highmem.h>
3#include <linux/smp.h>
3#include <asm/fixmap.h> 4#include <asm/fixmap.h>
4#include <asm/tlbflush.h> 5#include <asm/tlbflush.h>
5 6
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index c5511294a9e..0e820508ff2 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -13,6 +13,7 @@
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/signal.h> 14#include <linux/signal.h>
15#include <linux/sched.h> 15#include <linux/sched.h>
16#include <linux/smp.h>
16#include <linux/kernel.h> 17#include <linux/kernel.h>
17#include <linux/errno.h> 18#include <linux/errno.h>
18#include <linux/string.h> 19#include <linux/string.h>
diff --git a/arch/mips/mm/page.c b/arch/mips/mm/page.c
index 48060c635ac..f5c73754d66 100644
--- a/arch/mips/mm/page.c
+++ b/arch/mips/mm/page.c
@@ -10,6 +10,7 @@
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/sched.h> 12#include <linux/sched.h>
13#include <linux/smp.h>
13#include <linux/mm.h> 14#include <linux/mm.h>
14#include <linux/module.h> 15#include <linux/module.h>
15#include <linux/proc_fs.h> 16#include <linux/proc_fs.h>
diff --git a/arch/mips/mm/tlb-r3k.c b/arch/mips/mm/tlb-r3k.c
index 1c0048a6f5c..0f5ab236ab6 100644
--- a/arch/mips/mm/tlb-r3k.c
+++ b/arch/mips/mm/tlb-r3k.c
@@ -13,6 +13,7 @@
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/sched.h> 15#include <linux/sched.h>
16#include <linux/smp.h>
16#include <linux/mm.h> 17#include <linux/mm.h>
17 18
18#include <asm/page.h> 19#include <asm/page.h>
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index f60fe513eb6..cee502caf39 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -10,6 +10,7 @@
10 */ 10 */
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/sched.h> 12#include <linux/sched.h>
13#include <linux/smp.h>
13#include <linux/mm.h> 14#include <linux/mm.h>
14#include <linux/hugetlb.h> 15#include <linux/hugetlb.h>
15 16
diff --git a/arch/mips/mm/tlb-r8k.c b/arch/mips/mm/tlb-r8k.c
index 4ec95cc2df2..2b82f23df1a 100644
--- a/arch/mips/mm/tlb-r8k.c
+++ b/arch/mips/mm/tlb-r8k.c
@@ -10,6 +10,7 @@
10 */ 10 */
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/sched.h> 12#include <linux/sched.h>
13#include <linux/smp.h>
13#include <linux/mm.h> 14#include <linux/mm.h>
14 15
15#include <asm/cpu.h> 16#include <asm/cpu.h>
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 8f606ead826..9a17bf8395d 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -23,6 +23,7 @@
23#include <linux/bug.h> 23#include <linux/bug.h>
24#include <linux/kernel.h> 24#include <linux/kernel.h>
25#include <linux/types.h> 25#include <linux/types.h>
26#include <linux/smp.h>
26#include <linux/string.h> 27#include <linux/string.h>
27#include <linux/init.h> 28#include <linux/init.h>
28 29
diff --git a/arch/mips/mti-malta/malta-int.c b/arch/mips/mti-malta/malta-int.c
index ea176113fea..b4eaf137e4a 100644
--- a/arch/mips/mti-malta/malta-int.c
+++ b/arch/mips/mti-malta/malta-int.c
@@ -24,6 +24,7 @@
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/irq.h> 25#include <linux/irq.h>
26#include <linux/sched.h> 26#include <linux/sched.h>
27#include <linux/smp.h>
27#include <linux/slab.h> 28#include <linux/slab.h>
28#include <linux/interrupt.h> 29#include <linux/interrupt.h>
29#include <linux/io.h> 30#include <linux/io.h>
diff --git a/arch/mips/pci/pci-ip27.c b/arch/mips/pci/pci-ip27.c
index dda6f205866..a0e726eb039 100644
--- a/arch/mips/pci/pci-ip27.c
+++ b/arch/mips/pci/pci-ip27.c
@@ -10,6 +10,7 @@
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/pci.h> 12#include <linux/pci.h>
13#include <linux/smp.h>
13#include <asm/sn/arch.h> 14#include <asm/sn/arch.h>
14#include <asm/pci/bridge.h> 15#include <asm/pci/bridge.h>
15#include <asm/paccess.h> 16#include <asm/paccess.h>
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c
index f78c29b68d7..8ace2771623 100644
--- a/arch/mips/pmc-sierra/yosemite/smp.c
+++ b/arch/mips/pmc-sierra/yosemite/smp.c
@@ -1,5 +1,6 @@
1#include <linux/linkage.h> 1#include <linux/linkage.h>
2#include <linux/sched.h> 2#include <linux/sched.h>
3#include <linux/smp.h>
3 4
4#include <asm/pmon.h> 5#include <asm/pmon.h>
5#include <asm/titan_dep.h> 6#include <asm/titan_dep.h>
diff --git a/arch/mips/power/hibernate.S b/arch/mips/power/hibernate.S
index 486bd3fd01a..4b8174b382d 100644
--- a/arch/mips/power/hibernate.S
+++ b/arch/mips/power/hibernate.S
@@ -43,15 +43,6 @@ LEAF(swsusp_arch_resume)
43 bne t1, t3, 1b 43 bne t1, t3, 1b
44 PTR_L t0, PBE_NEXT(t0) 44 PTR_L t0, PBE_NEXT(t0)
45 bnez t0, 0b 45 bnez t0, 0b
46 /* flush caches to make sure context is in memory */
47 PTR_L t0, __flush_cache_all
48 jalr t0
49 /* flush tlb entries */
50#ifdef CONFIG_SMP
51 jal flush_tlb_all
52#else
53 jal local_flush_tlb_all
54#endif
55 PTR_LA t0, saved_regs 46 PTR_LA t0, saved_regs
56 PTR_L ra, PT_R31(t0) 47 PTR_L ra, PT_R31(t0)
57 PTR_L sp, PT_R29(t0) 48 PTR_L sp, PT_R29(t0)
diff --git a/arch/mips/sgi-ip27/ip27-init.c b/arch/mips/sgi-ip27/ip27-init.c
index 4a500e8cd3c..51d3a4f2d7e 100644
--- a/arch/mips/sgi-ip27/ip27-init.c
+++ b/arch/mips/sgi-ip27/ip27-init.c
@@ -9,6 +9,7 @@
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/sched.h> 11#include <linux/sched.h>
12#include <linux/smp.h>
12#include <linux/mm.h> 13#include <linux/mm.h>
13#include <linux/module.h> 14#include <linux/module.h>
14#include <linux/cpumask.h> 15#include <linux/cpumask.h>
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c
index 1bb692a3b31..c1c8e40d65d 100644
--- a/arch/mips/sgi-ip27/ip27-irq.c
+++ b/arch/mips/sgi-ip27/ip27-irq.c
@@ -18,6 +18,7 @@
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/timex.h> 19#include <linux/timex.h>
20#include <linux/slab.h> 20#include <linux/slab.h>
21#include <linux/smp.h>
21#include <linux/random.h> 22#include <linux/random.h>
22#include <linux/kernel.h> 23#include <linux/kernel.h>
23#include <linux/kernel_stat.h> 24#include <linux/kernel_stat.h>
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c
index f10a7cd64f7..6d0e59ffba2 100644
--- a/arch/mips/sgi-ip27/ip27-timer.c
+++ b/arch/mips/sgi-ip27/ip27-timer.c
@@ -10,6 +10,7 @@
10#include <linux/interrupt.h> 10#include <linux/interrupt.h>
11#include <linux/kernel_stat.h> 11#include <linux/kernel_stat.h>
12#include <linux/param.h> 12#include <linux/param.h>
13#include <linux/smp.h>
13#include <linux/time.h> 14#include <linux/time.h>
14#include <linux/timex.h> 15#include <linux/timex.h>
15#include <linux/mm.h> 16#include <linux/mm.h>
diff --git a/arch/mips/sgi-ip27/ip27-xtalk.c b/arch/mips/sgi-ip27/ip27-xtalk.c
index 6ae64e8dfc4..5e871e75a8d 100644
--- a/arch/mips/sgi-ip27/ip27-xtalk.c
+++ b/arch/mips/sgi-ip27/ip27-xtalk.c
@@ -9,6 +9,7 @@
9 9
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/smp.h>
12#include <asm/sn/types.h> 13#include <asm/sn/types.h>
13#include <asm/sn/klconfig.h> 14#include <asm/sn/klconfig.h>
14#include <asm/sn/hub.h> 15#include <asm/sn/hub.h>
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 690de06bde9..ba59839a021 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -19,6 +19,7 @@
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/linkage.h> 20#include <linux/linkage.h>
21#include <linux/interrupt.h> 21#include <linux/interrupt.h>
22#include <linux/smp.h>
22#include <linux/spinlock.h> 23#include <linux/spinlock.h>
23#include <linux/mm.h> 24#include <linux/mm.h>
24#include <linux/slab.h> 25#include <linux/slab.h>
diff --git a/arch/mips/sibyte/common/cfe_console.c b/arch/mips/sibyte/common/cfe_console.c
index 81e3d54376e..1ad2da103fe 100644
--- a/arch/mips/sibyte/common/cfe_console.c
+++ b/arch/mips/sibyte/common/cfe_console.c
@@ -51,12 +51,13 @@ static int cfe_console_setup(struct console *cons, char *str)
51 setleds("u0cn"); 51 setleds("u0cn");
52 } else if (!strcmp(consdev, "uart1")) { 52 } else if (!strcmp(consdev, "uart1")) {
53 setleds("u1cn"); 53 setleds("u1cn");
54 } else
54#endif 55#endif
55#ifdef CONFIG_VGA_CONSOLE 56#ifdef CONFIG_VGA_CONSOLE
56 } else if (!strcmp(consdev, "pcconsole0")) { 57 if (!strcmp(consdev, "pcconsole0")) {
57 setleds("pccn"); 58 setleds("pccn");
58#endif
59 } else 59 } else
60#endif
60 return -ENODEV; 61 return -ENODEV;
61 } 62 }
62 return 0; 63 return 0;
diff --git a/arch/mips/sni/time.c b/arch/mips/sni/time.c
index 69f5f88711c..0d9ec1a5c24 100644
--- a/arch/mips/sni/time.c
+++ b/arch/mips/sni/time.c
@@ -1,5 +1,6 @@
1#include <linux/types.h> 1#include <linux/types.h>
2#include <linux/interrupt.h> 2#include <linux/interrupt.h>
3#include <linux/smp.h>
3#include <linux/time.h> 4#include <linux/time.h>
4#include <linux/clockchips.h> 5#include <linux/clockchips.h>
5 6
diff --git a/arch/mn10300/include/asm/elf.h b/arch/mn10300/include/asm/elf.h
index 49105462e6f..75a70aa9fd6 100644
--- a/arch/mn10300/include/asm/elf.h
+++ b/arch/mn10300/include/asm/elf.h
@@ -28,6 +28,8 @@
28#define R_MN10300_PCREL8 6 /* PC-relative 8-bit signed. */ 28#define R_MN10300_PCREL8 6 /* PC-relative 8-bit signed. */
29#define R_MN10300_24 9 /* Direct 24 bit. */ 29#define R_MN10300_24 9 /* Direct 24 bit. */
30#define R_MN10300_RELATIVE 23 /* Adjust by program base. */ 30#define R_MN10300_RELATIVE 23 /* Adjust by program base. */
31#define R_MN10300_SYM_DIFF 33 /* Adjustment when relaxing. */
32#define R_MN10300_ALIGN 34 /* Alignment requirement. */
31 33
32/* 34/*
33 * ELF register definitions.. 35 * ELF register definitions..
diff --git a/arch/mn10300/include/asm/pci.h b/arch/mn10300/include/asm/pci.h
index 0517b45313d..e58b9a46e1b 100644
--- a/arch/mn10300/include/asm/pci.h
+++ b/arch/mn10300/include/asm/pci.h
@@ -106,19 +106,6 @@ extern void pcibios_bus_to_resource(struct pci_dev *dev,
106 struct resource *res, 106 struct resource *res,
107 struct pci_bus_region *region); 107 struct pci_bus_region *region);
108 108
109static inline struct resource *
110pcibios_select_root(struct pci_dev *pdev, struct resource *res)
111{
112 struct resource *root = NULL;
113
114 if (res->flags & IORESOURCE_IO)
115 root = &ioport_resource;
116 if (res->flags & IORESOURCE_MEM)
117 root = &iomem_resource;
118
119 return root;
120}
121
122#define pcibios_scan_all_fns(a, b) 0 109#define pcibios_scan_all_fns(a, b) 0
123 110
124static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) 111static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
diff --git a/arch/mn10300/kernel/module.c b/arch/mn10300/kernel/module.c
index 4fa0e3648d8..6aea7fd7699 100644
--- a/arch/mn10300/kernel/module.c
+++ b/arch/mn10300/kernel/module.c
@@ -1,6 +1,6 @@
1/* MN10300 Kernel module helper routines 1/* MN10300 Kernel module helper routines
2 * 2 *
3 * Copyright (C) 2007, 2008 Red Hat, Inc. All Rights Reserved. 3 * Copyright (C) 2007, 2008, 2009 Red Hat, Inc. All Rights Reserved.
4 * Written by Mark Salter (msalter@redhat.com) 4 * Written by Mark Salter (msalter@redhat.com)
5 * - Derived from arch/i386/kernel/module.c 5 * - Derived from arch/i386/kernel/module.c
6 * 6 *
@@ -103,10 +103,10 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
103 unsigned int relsec, 103 unsigned int relsec,
104 struct module *me) 104 struct module *me)
105{ 105{
106 unsigned int i; 106 unsigned int i, sym_diff_seen = 0;
107 Elf32_Rela *rel = (void *)sechdrs[relsec].sh_addr; 107 Elf32_Rela *rel = (void *)sechdrs[relsec].sh_addr;
108 Elf32_Sym *sym; 108 Elf32_Sym *sym;
109 Elf32_Addr relocation; 109 Elf32_Addr relocation, sym_diff_val = 0;
110 uint8_t *location; 110 uint8_t *location;
111 uint32_t value; 111 uint32_t value;
112 112
@@ -126,6 +126,22 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
126 /* this is the adjustment to be made */ 126 /* this is the adjustment to be made */
127 relocation = sym->st_value + rel[i].r_addend; 127 relocation = sym->st_value + rel[i].r_addend;
128 128
129 if (sym_diff_seen) {
130 switch (ELF32_R_TYPE(rel[i].r_info)) {
131 case R_MN10300_32:
132 case R_MN10300_24:
133 case R_MN10300_16:
134 case R_MN10300_8:
135 relocation -= sym_diff_val;
136 sym_diff_seen = 0;
137 break;
138 default:
139 printk(KERN_ERR "module %s: Unexpected SYM_DIFF relocation: %u\n",
140 me->name, ELF32_R_TYPE(rel[i].r_info));
141 return -ENOEXEC;
142 }
143 }
144
129 switch (ELF32_R_TYPE(rel[i].r_info)) { 145 switch (ELF32_R_TYPE(rel[i].r_info)) {
130 /* for the first four relocation types, we simply 146 /* for the first four relocation types, we simply
131 * store the adjustment at the location given */ 147 * store the adjustment at the location given */
@@ -157,12 +173,29 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
157 *location = relocation - (uint32_t) location; 173 *location = relocation - (uint32_t) location;
158 break; 174 break;
159 175
176 case R_MN10300_SYM_DIFF:
177 /* This is used to adjust the next reloc as required
178 * by relaxation. */
179 sym_diff_seen = 1;
180 sym_diff_val = sym->st_value;
181 break;
182
183 case R_MN10300_ALIGN:
184 /* Just ignore the ALIGN relocs.
185 * Only interesting if kernel performed relaxation. */
186 continue;
187
160 default: 188 default:
161 printk(KERN_ERR "module %s: Unknown relocation: %u\n", 189 printk(KERN_ERR "module %s: Unknown relocation: %u\n",
162 me->name, ELF32_R_TYPE(rel[i].r_info)); 190 me->name, ELF32_R_TYPE(rel[i].r_info));
163 return -ENOEXEC; 191 return -ENOEXEC;
164 } 192 }
165 } 193 }
194 if (sym_diff_seen) {
195 printk(KERN_ERR "module %s: Nothing follows SYM_DIFF relocation: %u\n",
196 me->name, ELF32_R_TYPE(rel[i].r_info));
197 return -ENOEXEC;
198 }
166 return 0; 199 return 0;
167} 200}
168 201
diff --git a/arch/mn10300/kernel/process.c b/arch/mn10300/kernel/process.c
index 234cf344cdc..892cce82867 100644
--- a/arch/mn10300/kernel/process.c
+++ b/arch/mn10300/kernel/process.c
@@ -281,9 +281,6 @@ asmlinkage long sys_execve(char __user *name,
281 error = PTR_ERR(filename); 281 error = PTR_ERR(filename);
282 if (!IS_ERR(filename)) { 282 if (!IS_ERR(filename)) {
283 error = do_execve(filename, argv, envp, __frame); 283 error = do_execve(filename, argv, envp, __frame);
284 if (error == 0)
285 current->ptrace &= ~PT_DTRACE;
286
287 putname(filename); 284 putname(filename);
288 } 285 }
289 286
diff --git a/arch/mn10300/kernel/vmlinux.lds.S b/arch/mn10300/kernel/vmlinux.lds.S
index 24de6b90f40..bcebcefb4ad 100644
--- a/arch/mn10300/kernel/vmlinux.lds.S
+++ b/arch/mn10300/kernel/vmlinux.lds.S
@@ -38,14 +38,10 @@ SECTIONS
38 38
39 _etext = .; /* End of text section */ 39 _etext = .; /* End of text section */
40 40
41 . = ALIGN(16); /* Exception table */ 41 EXCEPTION_TABLE(16)
42 __start___ex_table = .;
43 __ex_table : { *(__ex_table) }
44 __stop___ex_table = .;
45
46 BUG_TABLE 42 BUG_TABLE
47 43
48 RODATA 44 RO_DATA(PAGE_SIZE)
49 45
50 /* writeable */ 46 /* writeable */
51 .data : { /* Data */ 47 .data : { /* Data */
@@ -53,27 +49,19 @@ SECTIONS
53 CONSTRUCTORS 49 CONSTRUCTORS
54 } 50 }
55 51
56 . = ALIGN(PAGE_SIZE); 52 .data_nosave : { NOSAVE_DATA; }
57 __nosave_begin = .;
58 .data_nosave : { *(.data.nosave) }
59 . = ALIGN(PAGE_SIZE);
60 __nosave_end = .;
61
62 . = ALIGN(PAGE_SIZE);
63 .data.page_aligned : { *(.data.idt) }
64 53
65 . = ALIGN(32); 54 .data.page_aligned : { PAGE_ALIGNED_DATA(PAGE_SIZE); }
66 .data.cacheline_aligned : { *(.data.cacheline_aligned) } 55 .data.cacheline_aligned : { CACHELINE_ALIGNED_DATA(32); }
67 56
68 /* rarely changed data like cpu maps */ 57 /* rarely changed data like cpu maps */
69 . = ALIGN(32); 58 . = ALIGN(32);
70 .data.read_mostly : AT(ADDR(.data.read_mostly)) { 59 .data.read_mostly : AT(ADDR(.data.read_mostly)) {
71 *(.data.read_mostly) 60 READ_MOSTLY_DATA(32);
72 _edata = .; /* End of data section */ 61 _edata = .; /* End of data section */
73 } 62 }
74 63
75 . = ALIGN(THREAD_SIZE); /* init_task */ 64 .data.init_task : { INIT_TASK(THREAD_SIZE); }
76 .data.init_task : { *(.data.init_task) }
77 65
78 /* might get freed after init */ 66 /* might get freed after init */
79 . = ALIGN(PAGE_SIZE); 67 . = ALIGN(PAGE_SIZE);
@@ -88,23 +76,18 @@ SECTIONS
88 __init_begin = .; 76 __init_begin = .;
89 .init.text : { 77 .init.text : {
90 _sinittext = .; 78 _sinittext = .;
91 *(.init.text) 79 INIT_TEXT;
92 _einittext = .; 80 _einittext = .;
93 } 81 }
94 .init.data : { *(.init.data) } 82 .init.data : { INIT_DATA; }
95 . = ALIGN(16); 83 .setup.init : { INIT_SETUP(16); }
96 __setup_start = .;
97 .setup.init : { KEEP(*(.init.setup)) }
98 __setup_end = .;
99 84
100 __initcall_start = .; 85 __initcall_start = .;
101 .initcall.init : { 86 .initcall.init : {
102 INITCALLS 87 INITCALLS
103 } 88 }
104 __initcall_end = .; 89 __initcall_end = .;
105 __con_initcall_start = .; 90 .con_initcall.init : { CON_INITCALL; }
106 .con_initcall.init : { *(.con_initcall.init) }
107 __con_initcall_end = .;
108 91
109 SECURITY_INIT 92 SECURITY_INIT
110 . = ALIGN(4); 93 . = ALIGN(4);
@@ -114,28 +97,17 @@ SECTIONS
114 .altinstr_replacement : { *(.altinstr_replacement) } 97 .altinstr_replacement : { *(.altinstr_replacement) }
115 /* .exit.text is discard at runtime, not link time, to deal with references 98 /* .exit.text is discard at runtime, not link time, to deal with references
116 from .altinstructions and .eh_frame */ 99 from .altinstructions and .eh_frame */
117 .exit.text : { *(.exit.text) } 100 .exit.text : { EXIT_TEXT; }
118 .exit.data : { *(.exit.data) } 101 .exit.data : { EXIT_DATA; }
119 102
120#ifdef CONFIG_BLK_DEV_INITRD 103 .init.ramfs : { INIT_RAM_FS; }
121 . = ALIGN(PAGE_SIZE);
122 __initramfs_start = .;
123 .init.ramfs : { *(.init.ramfs) }
124 __initramfs_end = .;
125#endif
126 104
127 PERCPU(32) 105 PERCPU(32)
128 . = ALIGN(PAGE_SIZE); 106 . = ALIGN(PAGE_SIZE);
129 __init_end = .; 107 __init_end = .;
130 /* freed after init ends here */ 108 /* freed after init ends here */
131 109
132 __bss_start = .; /* BSS */ 110 BSS(4)
133 .bss : {
134 *(.bss.page_aligned)
135 *(.bss)
136 }
137 . = ALIGN(4);
138 __bss_stop = .;
139 111
140 _end = . ; 112 _end = . ;
141 113
@@ -145,7 +117,7 @@ SECTIONS
145 117
146 /* Sections to be discarded */ 118 /* Sections to be discarded */
147 /DISCARD/ : { 119 /DISCARD/ : {
148 *(.exitcall.exit) 120 EXIT_CALL
149 } 121 }
150 122
151 STABS_DEBUG 123 STABS_DEBUG
diff --git a/arch/mn10300/mm/fault.c b/arch/mn10300/mm/fault.c
index 33cf25025da..a62e1e138bc 100644
--- a/arch/mn10300/mm/fault.c
+++ b/arch/mn10300/mm/fault.c
@@ -258,7 +258,7 @@ good_area:
258 * make sure we exit gracefully rather than endlessly redo 258 * make sure we exit gracefully rather than endlessly redo
259 * the fault. 259 * the fault.
260 */ 260 */
261 fault = handle_mm_fault(mm, vma, address, write); 261 fault = handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0);
262 if (unlikely(fault & VM_FAULT_ERROR)) { 262 if (unlikely(fault & VM_FAULT_ERROR)) {
263 if (fault & VM_FAULT_OOM) 263 if (fault & VM_FAULT_OOM)
264 goto out_of_memory; 264 goto out_of_memory;
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c
index 5cbe9f9e5d9..54075360a8f 100644
--- a/arch/parisc/hpux/fs.c
+++ b/arch/parisc/hpux/fs.c
@@ -44,11 +44,6 @@ int hpux_execve(struct pt_regs *regs)
44 error = do_execve(filename, (char __user * __user *) regs->gr[25], 44 error = do_execve(filename, (char __user * __user *) regs->gr[25],
45 (char __user * __user *) regs->gr[24], regs); 45 (char __user * __user *) regs->gr[24], regs);
46 46
47 if (error == 0) {
48 task_lock(current);
49 current->ptrace &= ~PT_DTRACE;
50 task_unlock(current);
51 }
52 putname(filename); 47 putname(filename);
53 48
54out: 49out:
diff --git a/arch/parisc/include/asm/pci.h b/arch/parisc/include/asm/pci.h
index 4ba868f44a5..7d842d699df 100644
--- a/arch/parisc/include/asm/pci.h
+++ b/arch/parisc/include/asm/pci.h
@@ -268,19 +268,6 @@ extern void
268pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, 268pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
269 struct pci_bus_region *region); 269 struct pci_bus_region *region);
270 270
271static inline struct resource *
272pcibios_select_root(struct pci_dev *pdev, struct resource *res)
273{
274 struct resource *root = NULL;
275
276 if (res->flags & IORESOURCE_IO)
277 root = &ioport_resource;
278 if (res->flags & IORESOURCE_MEM)
279 root = &iomem_resource;
280
281 return root;
282}
283
284static inline void pcibios_penalize_isa_irq(int irq, int active) 271static inline void pcibios_penalize_isa_irq(int irq, int active)
285{ 272{
286 /* We don't need to penalize isa irq's */ 273 /* We don't need to penalize isa irq's */
diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c
index 6f69101f90b..61c07078c07 100644
--- a/arch/parisc/kernel/process.c
+++ b/arch/parisc/kernel/process.c
@@ -349,11 +349,6 @@ asmlinkage int sys_execve(struct pt_regs *regs)
349 goto out; 349 goto out;
350 error = do_execve(filename, (char __user * __user *) regs->gr[25], 350 error = do_execve(filename, (char __user * __user *) regs->gr[25],
351 (char __user * __user *) regs->gr[24], regs); 351 (char __user * __user *) regs->gr[24], regs);
352 if (error == 0) {
353 task_lock(current);
354 current->ptrace &= ~PT_DTRACE;
355 task_unlock(current);
356 }
357 putname(filename); 352 putname(filename);
358out: 353out:
359 354
diff --git a/arch/parisc/kernel/sys_parisc32.c b/arch/parisc/kernel/sys_parisc32.c
index 0838155b7a8..1adb40c8166 100644
--- a/arch/parisc/kernel/sys_parisc32.c
+++ b/arch/parisc/kernel/sys_parisc32.c
@@ -77,11 +77,6 @@ asmlinkage int sys32_execve(struct pt_regs *regs)
77 goto out; 77 goto out;
78 error = compat_do_execve(filename, compat_ptr(regs->gr[25]), 78 error = compat_do_execve(filename, compat_ptr(regs->gr[25]),
79 compat_ptr(regs->gr[24]), regs); 79 compat_ptr(regs->gr[24]), regs);
80 if (error == 0) {
81 task_lock(current);
82 current->ptrace &= ~PT_DTRACE;
83 task_unlock(current);
84 }
85 putname(filename); 80 putname(filename);
86out: 81out:
87 82
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index 92c7fa4ecc3..bfb6dd6ab38 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -202,7 +202,7 @@ good_area:
202 * fault. 202 * fault.
203 */ 203 */
204 204
205 fault = handle_mm_fault(mm, vma, address, (acc_type & VM_WRITE) != 0); 205 fault = handle_mm_fault(mm, vma, address, (acc_type & VM_WRITE) ? FAULT_FLAG_WRITE : 0);
206 if (unlikely(fault & VM_FAULT_ERROR)) { 206 if (unlikely(fault & VM_FAULT_ERROR)) {
207 /* 207 /*
208 * We hit a shared mapping outside of the file, or some 208 * We hit a shared mapping outside of the file, or some
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 9fb344d5a86..d00131ca083 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -62,7 +62,6 @@ config HAVE_LATENCYTOP_SUPPORT
62 62
63config TRACE_IRQFLAGS_SUPPORT 63config TRACE_IRQFLAGS_SUPPORT
64 bool 64 bool
65 depends on PPC64
66 default y 65 default y
67 66
68config LOCKDEP_SUPPORT 67config LOCKDEP_SUPPORT
@@ -126,6 +125,7 @@ config PPC
126 select HAVE_OPROFILE 125 select HAVE_OPROFILE
127 select HAVE_SYSCALL_WRAPPERS if PPC64 126 select HAVE_SYSCALL_WRAPPERS if PPC64
128 select GENERIC_ATOMIC64 if PPC32 127 select GENERIC_ATOMIC64 if PPC32
128 select HAVE_PERF_COUNTERS
129 129
130config EARLY_PRINTK 130config EARLY_PRINTK
131 bool 131 bool
diff --git a/arch/powerpc/boot/.gitignore b/arch/powerpc/boot/.gitignore
index 2f50acd11a6..3d80c3e9cf6 100644
--- a/arch/powerpc/boot/.gitignore
+++ b/arch/powerpc/boot/.gitignore
@@ -36,3 +36,13 @@ zImage.pseries
36zconf.h 36zconf.h
37zlib.h 37zlib.h
38zutil.h 38zutil.h
39fdt.c
40fdt.h
41fdt_ro.c
42fdt_rw.c
43fdt_strerror.c
44fdt_sw.c
45fdt_wip.c
46libfdt.h
47libfdt_internal.h
48
diff --git a/arch/powerpc/boot/dts/amigaone.dts b/arch/powerpc/boot/dts/amigaone.dts
index 26549fca2ed..49ac36b16dd 100644
--- a/arch/powerpc/boot/dts/amigaone.dts
+++ b/arch/powerpc/boot/dts/amigaone.dts
@@ -70,8 +70,8 @@
70 devsel-speed = <0x00000001>; 70 devsel-speed = <0x00000001>;
71 min-grant = <0>; 71 min-grant = <0>;
72 max-latency = <0>; 72 max-latency = <0>;
73 /* First 64k for I/O at 0x0 on PCI mapped to 0x0 on ISA. */ 73 /* First 4k for I/O at 0x0 on PCI mapped to 0x0 on ISA. */
74 ranges = <0x00000001 0 0x01000000 0 0x00000000 0x00010000>; 74 ranges = <0x00000001 0 0x01000000 0 0x00000000 0x00001000>;
75 interrupt-parent = <&i8259>; 75 interrupt-parent = <&i8259>;
76 #interrupt-cells = <2>; 76 #interrupt-cells = <2>;
77 #address-cells = <2>; 77 #address-cells = <2>;
diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
index cfc2c60d1f5..f468d215f71 100644
--- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts
+++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
@@ -100,8 +100,18 @@
100 }; 100 };
101 101
102 board-control@3,0 { 102 board-control@3,0 {
103 #address-cells = <1>;
104 #size-cells = <1>;
103 compatible = "fsl,fpga-pixis"; 105 compatible = "fsl,fpga-pixis";
104 reg = <3 0 0x20>; 106 reg = <3 0 0x20>;
107 ranges = <0 3 0 0x20>;
108
109 sdcsr_pio: gpio-controller@a {
110 #gpio-cells = <2>;
111 compatible = "fsl,fpga-pixis-gpio-bank";
112 reg = <0xa 1>;
113 gpio-controller;
114 };
105 }; 115 };
106 }; 116 };
107 117
@@ -176,6 +186,28 @@
176 interrupt-parent = <&mpic>; 186 interrupt-parent = <&mpic>;
177 }; 187 };
178 188
189 spi@7000 {
190 #address-cells = <1>;
191 #size-cells = <0>;
192 compatible = "fsl,mpc8610-spi", "fsl,spi";
193 reg = <0x7000 0x40>;
194 cell-index = <0>;
195 interrupts = <59 2>;
196 interrupt-parent = <&mpic>;
197 mode = "cpu";
198 gpios = <&sdcsr_pio 7 0>;
199
200 mmc-slot@0 {
201 compatible = "fsl,mpc8610hpcd-mmc-slot",
202 "mmc-spi-slot";
203 reg = <0>;
204 gpios = <&sdcsr_pio 0 1 /* nCD */
205 &sdcsr_pio 1 0>; /* WP */
206 voltage-ranges = <3300 3300>;
207 spi-max-frequency = <50000000>;
208 };
209 };
210
179 display@2c000 { 211 display@2c000 {
180 compatible = "fsl,diu"; 212 compatible = "fsl,diu";
181 reg = <0x2c000 100>; 213 reg = <0x2c000 100>;
diff --git a/arch/powerpc/include/asm/dma-mapping.h b/arch/powerpc/include/asm/dma-mapping.h
index 3d9e887c3c0..b44aaabdd1a 100644
--- a/arch/powerpc/include/asm/dma-mapping.h
+++ b/arch/powerpc/include/asm/dma-mapping.h
@@ -309,7 +309,9 @@ static inline void dma_sync_single_for_cpu(struct device *dev,
309 struct dma_mapping_ops *dma_ops = get_dma_ops(dev); 309 struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
310 310
311 BUG_ON(!dma_ops); 311 BUG_ON(!dma_ops);
312 dma_ops->sync_single_range_for_cpu(dev, dma_handle, 0, 312
313 if (dma_ops->sync_single_range_for_cpu)
314 dma_ops->sync_single_range_for_cpu(dev, dma_handle, 0,
313 size, direction); 315 size, direction);
314} 316}
315 317
@@ -320,7 +322,9 @@ static inline void dma_sync_single_for_device(struct device *dev,
320 struct dma_mapping_ops *dma_ops = get_dma_ops(dev); 322 struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
321 323
322 BUG_ON(!dma_ops); 324 BUG_ON(!dma_ops);
323 dma_ops->sync_single_range_for_device(dev, dma_handle, 325
326 if (dma_ops->sync_single_range_for_device)
327 dma_ops->sync_single_range_for_device(dev, dma_handle,
324 0, size, direction); 328 0, size, direction);
325} 329}
326 330
@@ -331,7 +335,9 @@ static inline void dma_sync_sg_for_cpu(struct device *dev,
331 struct dma_mapping_ops *dma_ops = get_dma_ops(dev); 335 struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
332 336
333 BUG_ON(!dma_ops); 337 BUG_ON(!dma_ops);
334 dma_ops->sync_sg_for_cpu(dev, sgl, nents, direction); 338
339 if (dma_ops->sync_sg_for_cpu)
340 dma_ops->sync_sg_for_cpu(dev, sgl, nents, direction);
335} 341}
336 342
337static inline void dma_sync_sg_for_device(struct device *dev, 343static inline void dma_sync_sg_for_device(struct device *dev,
@@ -341,7 +347,9 @@ static inline void dma_sync_sg_for_device(struct device *dev,
341 struct dma_mapping_ops *dma_ops = get_dma_ops(dev); 347 struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
342 348
343 BUG_ON(!dma_ops); 349 BUG_ON(!dma_ops);
344 dma_ops->sync_sg_for_device(dev, sgl, nents, direction); 350
351 if (dma_ops->sync_sg_for_device)
352 dma_ops->sync_sg_for_device(dev, sgl, nents, direction);
345} 353}
346 354
347static inline void dma_sync_single_range_for_cpu(struct device *dev, 355static inline void dma_sync_single_range_for_cpu(struct device *dev,
@@ -351,7 +359,9 @@ static inline void dma_sync_single_range_for_cpu(struct device *dev,
351 struct dma_mapping_ops *dma_ops = get_dma_ops(dev); 359 struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
352 360
353 BUG_ON(!dma_ops); 361 BUG_ON(!dma_ops);
354 dma_ops->sync_single_range_for_cpu(dev, dma_handle, 362
363 if (dma_ops->sync_single_range_for_cpu)
364 dma_ops->sync_single_range_for_cpu(dev, dma_handle,
355 offset, size, direction); 365 offset, size, direction);
356} 366}
357 367
@@ -362,7 +372,9 @@ static inline void dma_sync_single_range_for_device(struct device *dev,
362 struct dma_mapping_ops *dma_ops = get_dma_ops(dev); 372 struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
363 373
364 BUG_ON(!dma_ops); 374 BUG_ON(!dma_ops);
365 dma_ops->sync_single_range_for_device(dev, dma_handle, offset, 375
376 if (dma_ops->sync_single_range_for_device)
377 dma_ops->sync_single_range_for_device(dev, dma_handle, offset,
366 size, direction); 378 size, direction);
367} 379}
368#else /* CONFIG_PPC_NEED_DMA_SYNC_OPS */ 380#else /* CONFIG_PPC_NEED_DMA_SYNC_OPS */
diff --git a/arch/powerpc/include/asm/highmem.h b/arch/powerpc/include/asm/highmem.h
index 684a73f4324..a74c4ee6c02 100644
--- a/arch/powerpc/include/asm/highmem.h
+++ b/arch/powerpc/include/asm/highmem.h
@@ -22,9 +22,7 @@
22 22
23#ifdef __KERNEL__ 23#ifdef __KERNEL__
24 24
25#include <linux/init.h>
26#include <linux/interrupt.h> 25#include <linux/interrupt.h>
27#include <linux/highmem.h>
28#include <asm/kmap_types.h> 26#include <asm/kmap_types.h>
29#include <asm/tlbflush.h> 27#include <asm/tlbflush.h>
30#include <asm/page.h> 28#include <asm/page.h>
@@ -62,6 +60,9 @@ extern pte_t *pkmap_page_table;
62 60
63extern void *kmap_high(struct page *page); 61extern void *kmap_high(struct page *page);
64extern void kunmap_high(struct page *page); 62extern void kunmap_high(struct page *page);
63extern void *kmap_atomic_prot(struct page *page, enum km_type type,
64 pgprot_t prot);
65extern void kunmap_atomic(void *kvaddr, enum km_type type);
65 66
66static inline void *kmap(struct page *page) 67static inline void *kmap(struct page *page)
67{ 68{
@@ -79,62 +80,11 @@ static inline void kunmap(struct page *page)
79 kunmap_high(page); 80 kunmap_high(page);
80} 81}
81 82
82/*
83 * The use of kmap_atomic/kunmap_atomic is discouraged - kmap/kunmap
84 * gives a more generic (and caching) interface. But kmap_atomic can
85 * be used in IRQ contexts, so in some (very limited) cases we need
86 * it.
87 */
88static inline void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot)
89{
90 unsigned int idx;
91 unsigned long vaddr;
92
93 /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
94 pagefault_disable();
95 if (!PageHighMem(page))
96 return page_address(page);
97
98 debug_kmap_atomic(type);
99 idx = type + KM_TYPE_NR*smp_processor_id();
100 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
101#ifdef CONFIG_DEBUG_HIGHMEM
102 BUG_ON(!pte_none(*(kmap_pte-idx)));
103#endif
104 __set_pte_at(&init_mm, vaddr, kmap_pte-idx, mk_pte(page, prot), 1);
105 local_flush_tlb_page(NULL, vaddr);
106
107 return (void*) vaddr;
108}
109
110static inline void *kmap_atomic(struct page *page, enum km_type type) 83static inline void *kmap_atomic(struct page *page, enum km_type type)
111{ 84{
112 return kmap_atomic_prot(page, type, kmap_prot); 85 return kmap_atomic_prot(page, type, kmap_prot);
113} 86}
114 87
115static inline void kunmap_atomic(void *kvaddr, enum km_type type)
116{
117#ifdef CONFIG_DEBUG_HIGHMEM
118 unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK;
119 enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id();
120
121 if (vaddr < __fix_to_virt(FIX_KMAP_END)) {
122 pagefault_enable();
123 return;
124 }
125
126 BUG_ON(vaddr != __fix_to_virt(FIX_KMAP_BEGIN + idx));
127
128 /*
129 * force other mappings to Oops if they'll try to access
130 * this pte without first remap it
131 */
132 pte_clear(&init_mm, vaddr, kmap_pte-idx);
133 local_flush_tlb_page(NULL, vaddr);
134#endif
135 pagefault_enable();
136}
137
138static inline struct page *kmap_atomic_to_page(void *ptr) 88static inline struct page *kmap_atomic_to_page(void *ptr)
139{ 89{
140 unsigned long idx, vaddr = (unsigned long) ptr; 90 unsigned long idx, vaddr = (unsigned long) ptr;
@@ -148,6 +98,7 @@ static inline struct page *kmap_atomic_to_page(void *ptr)
148 return pte_page(*pte); 98 return pte_page(*pte);
149} 99}
150 100
101
151#define flush_cache_kmaps() flush_cache_all() 102#define flush_cache_kmaps() flush_cache_all()
152 103
153#endif /* __KERNEL__ */ 104#endif /* __KERNEL__ */
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index b7f8f4a87cc..8b505eaaa38 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -68,13 +68,13 @@ static inline int irqs_disabled_flags(unsigned long flags)
68 68
69#if defined(CONFIG_BOOKE) 69#if defined(CONFIG_BOOKE)
70#define SET_MSR_EE(x) mtmsr(x) 70#define SET_MSR_EE(x) mtmsr(x)
71#define local_irq_restore(flags) __asm__ __volatile__("wrtee %0" : : "r" (flags) : "memory") 71#define raw_local_irq_restore(flags) __asm__ __volatile__("wrtee %0" : : "r" (flags) : "memory")
72#else 72#else
73#define SET_MSR_EE(x) mtmsr(x) 73#define SET_MSR_EE(x) mtmsr(x)
74#define local_irq_restore(flags) mtmsr(flags) 74#define raw_local_irq_restore(flags) mtmsr(flags)
75#endif 75#endif
76 76
77static inline void local_irq_disable(void) 77static inline void raw_local_irq_disable(void)
78{ 78{
79#ifdef CONFIG_BOOKE 79#ifdef CONFIG_BOOKE
80 __asm__ __volatile__("wrteei 0": : :"memory"); 80 __asm__ __volatile__("wrteei 0": : :"memory");
@@ -86,7 +86,7 @@ static inline void local_irq_disable(void)
86#endif 86#endif
87} 87}
88 88
89static inline void local_irq_enable(void) 89static inline void raw_local_irq_enable(void)
90{ 90{
91#ifdef CONFIG_BOOKE 91#ifdef CONFIG_BOOKE
92 __asm__ __volatile__("wrteei 1": : :"memory"); 92 __asm__ __volatile__("wrteei 1": : :"memory");
@@ -98,7 +98,7 @@ static inline void local_irq_enable(void)
98#endif 98#endif
99} 99}
100 100
101static inline void local_irq_save_ptr(unsigned long *flags) 101static inline void raw_local_irq_save_ptr(unsigned long *flags)
102{ 102{
103 unsigned long msr; 103 unsigned long msr;
104 msr = mfmsr(); 104 msr = mfmsr();
@@ -110,12 +110,12 @@ static inline void local_irq_save_ptr(unsigned long *flags)
110#endif 110#endif
111} 111}
112 112
113#define local_save_flags(flags) ((flags) = mfmsr()) 113#define raw_local_save_flags(flags) ((flags) = mfmsr())
114#define local_irq_save(flags) local_irq_save_ptr(&flags) 114#define raw_local_irq_save(flags) raw_local_irq_save_ptr(&flags)
115#define irqs_disabled() ((mfmsr() & MSR_EE) == 0) 115#define raw_irqs_disabled() ((mfmsr() & MSR_EE) == 0)
116#define raw_irqs_disabled_flags(flags) (((flags) & MSR_EE) == 0)
116 117
117#define hard_irq_enable() local_irq_enable() 118#define hard_irq_disable() raw_local_irq_disable()
118#define hard_irq_disable() local_irq_disable()
119 119
120static inline int irqs_disabled_flags(unsigned long flags) 120static inline int irqs_disabled_flags(unsigned long flags)
121{ 121{
@@ -131,6 +131,8 @@ static inline int irqs_disabled_flags(unsigned long flags)
131struct irq_chip; 131struct irq_chip;
132 132
133#ifdef CONFIG_PERF_COUNTERS 133#ifdef CONFIG_PERF_COUNTERS
134
135#ifdef CONFIG_PPC64
134static inline unsigned long test_perf_counter_pending(void) 136static inline unsigned long test_perf_counter_pending(void)
135{ 137{
136 unsigned long x; 138 unsigned long x;
@@ -154,15 +156,15 @@ static inline void clear_perf_counter_pending(void)
154 "r" (0), 156 "r" (0),
155 "i" (offsetof(struct paca_struct, perf_counter_pending))); 157 "i" (offsetof(struct paca_struct, perf_counter_pending)));
156} 158}
159#endif /* CONFIG_PPC64 */
157 160
158#else 161#else /* CONFIG_PERF_COUNTERS */
159 162
160static inline unsigned long test_perf_counter_pending(void) 163static inline unsigned long test_perf_counter_pending(void)
161{ 164{
162 return 0; 165 return 0;
163} 166}
164 167
165static inline void set_perf_counter_pending(void) {}
166static inline void clear_perf_counter_pending(void) {} 168static inline void clear_perf_counter_pending(void) {}
167#endif /* CONFIG_PERF_COUNTERS */ 169#endif /* CONFIG_PERF_COUNTERS */
168 170
diff --git a/arch/powerpc/include/asm/pci.h b/arch/powerpc/include/asm/pci.h
index ba17d5d90a4..d9483c504d2 100644
--- a/arch/powerpc/include/asm/pci.h
+++ b/arch/powerpc/include/asm/pci.h
@@ -195,19 +195,6 @@ extern void pcibios_bus_to_resource(struct pci_dev *dev,
195 struct resource *res, 195 struct resource *res,
196 struct pci_bus_region *region); 196 struct pci_bus_region *region);
197 197
198static inline struct resource *pcibios_select_root(struct pci_dev *pdev,
199 struct resource *res)
200{
201 struct resource *root = NULL;
202
203 if (res->flags & IORESOURCE_IO)
204 root = &ioport_resource;
205 if (res->flags & IORESOURCE_MEM)
206 root = &iomem_resource;
207
208 return root;
209}
210
211extern void pcibios_claim_one_bus(struct pci_bus *b); 198extern void pcibios_claim_one_bus(struct pci_bus *b);
212 199
213extern void pcibios_finish_adding_to_bus(struct pci_bus *bus); 200extern void pcibios_finish_adding_to_bus(struct pci_bus *bus);
diff --git a/arch/powerpc/include/asm/perf_counter.h b/arch/powerpc/include/asm/perf_counter.h
index cc7c887705b..8ccd4e15576 100644
--- a/arch/powerpc/include/asm/perf_counter.h
+++ b/arch/powerpc/include/asm/perf_counter.h
@@ -10,6 +10,8 @@
10 */ 10 */
11#include <linux/types.h> 11#include <linux/types.h>
12 12
13#include <asm/hw_irq.h>
14
13#define MAX_HWCOUNTERS 8 15#define MAX_HWCOUNTERS 8
14#define MAX_EVENT_ALTERNATIVES 8 16#define MAX_EVENT_ALTERNATIVES 8
15#define MAX_LIMITED_HWCOUNTERS 2 17#define MAX_LIMITED_HWCOUNTERS 2
@@ -19,27 +21,27 @@
19 * describe the PMU on a particular POWER-family CPU. 21 * describe the PMU on a particular POWER-family CPU.
20 */ 22 */
21struct power_pmu { 23struct power_pmu {
22 int n_counter; 24 const char *name;
23 int max_alternatives; 25 int n_counter;
24 u64 add_fields; 26 int max_alternatives;
25 u64 test_adder; 27 unsigned long add_fields;
26 int (*compute_mmcr)(u64 events[], int n_ev, 28 unsigned long test_adder;
27 unsigned int hwc[], u64 mmcr[]); 29 int (*compute_mmcr)(u64 events[], int n_ev,
28 int (*get_constraint)(u64 event, u64 *mskp, u64 *valp); 30 unsigned int hwc[], unsigned long mmcr[]);
29 int (*get_alternatives)(u64 event, unsigned int flags, 31 int (*get_constraint)(u64 event, unsigned long *mskp,
30 u64 alt[]); 32 unsigned long *valp);
31 void (*disable_pmc)(unsigned int pmc, u64 mmcr[]); 33 int (*get_alternatives)(u64 event, unsigned int flags,
32 int (*limited_pmc_event)(u64 event); 34 u64 alt[]);
33 u32 flags; 35 void (*disable_pmc)(unsigned int pmc, unsigned long mmcr[]);
34 int n_generic; 36 int (*limited_pmc_event)(u64 event);
35 int *generic_events; 37 u32 flags;
36 int (*cache_events)[PERF_COUNT_HW_CACHE_MAX] 38 int n_generic;
39 int *generic_events;
40 int (*cache_events)[PERF_COUNT_HW_CACHE_MAX]
37 [PERF_COUNT_HW_CACHE_OP_MAX] 41 [PERF_COUNT_HW_CACHE_OP_MAX]
38 [PERF_COUNT_HW_CACHE_RESULT_MAX]; 42 [PERF_COUNT_HW_CACHE_RESULT_MAX];
39}; 43};
40 44
41extern struct power_pmu *ppmu;
42
43/* 45/*
44 * Values for power_pmu.flags 46 * Values for power_pmu.flags
45 */ 47 */
@@ -53,15 +55,23 @@ extern struct power_pmu *ppmu;
53#define PPMU_LIMITED_PMC_REQD 2 /* have to put this on a limited PMC */ 55#define PPMU_LIMITED_PMC_REQD 2 /* have to put this on a limited PMC */
54#define PPMU_ONLY_COUNT_RUN 4 /* only counting in run state */ 56#define PPMU_ONLY_COUNT_RUN 4 /* only counting in run state */
55 57
58extern int register_power_pmu(struct power_pmu *);
59
56struct pt_regs; 60struct pt_regs;
57extern unsigned long perf_misc_flags(struct pt_regs *regs); 61extern unsigned long perf_misc_flags(struct pt_regs *regs);
58#define perf_misc_flags(regs) perf_misc_flags(regs)
59
60extern unsigned long perf_instruction_pointer(struct pt_regs *regs); 62extern unsigned long perf_instruction_pointer(struct pt_regs *regs);
61 63
62/* 64/*
63 * The power_pmu.get_constraint function returns a 64-bit value and 65 * Only override the default definitions in include/linux/perf_counter.h
64 * a 64-bit mask that express the constraints between this event and 66 * if we have hardware PMU support.
67 */
68#ifdef CONFIG_PPC_PERF_CTRS
69#define perf_misc_flags(regs) perf_misc_flags(regs)
70#endif
71
72/*
73 * The power_pmu.get_constraint function returns a 32/64-bit value and
74 * a 32/64-bit mask that express the constraints between this event and
65 * other events. 75 * other events.
66 * 76 *
67 * The value and mask are divided up into (non-overlapping) bitfields 77 * The value and mask are divided up into (non-overlapping) bitfields
diff --git a/arch/powerpc/include/asm/pte-hash64-64k.h b/arch/powerpc/include/asm/pte-hash64-64k.h
index e05d26fa372..82b72207c51 100644
--- a/arch/powerpc/include/asm/pte-hash64-64k.h
+++ b/arch/powerpc/include/asm/pte-hash64-64k.h
@@ -47,7 +47,8 @@
47 * generic accessors and iterators here 47 * generic accessors and iterators here
48 */ 48 */
49#define __real_pte(e,p) ((real_pte_t) { \ 49#define __real_pte(e,p) ((real_pte_t) { \
50 (e), pte_val(*((p) + PTRS_PER_PTE)) }) 50 (e), ((e) & _PAGE_COMBO) ? \
51 (pte_val(*((p) + PTRS_PER_PTE))) : 0 })
51#define __rpte_to_hidx(r,index) ((pte_val((r).pte) & _PAGE_COMBO) ? \ 52#define __rpte_to_hidx(r,index) ((pte_val((r).pte) & _PAGE_COMBO) ? \
52 (((r).hidx >> ((index)<<2)) & 0xf) : ((pte_val((r).pte) >> 12) & 0xf)) 53 (((r).hidx >> ((index)<<2)) & 0xf) : ((pte_val((r).pte) >> 12) & 0xf))
53#define __rpte_to_pte(r) ((r).pte) 54#define __rpte_to_pte(r) ((r).pte)
diff --git a/arch/powerpc/include/asm/rtas.h b/arch/powerpc/include/asm/rtas.h
index 01c12339b30..168fce72620 100644
--- a/arch/powerpc/include/asm/rtas.h
+++ b/arch/powerpc/include/asm/rtas.h
@@ -58,7 +58,7 @@ struct rtas_t {
58 unsigned long entry; /* physical address pointer */ 58 unsigned long entry; /* physical address pointer */
59 unsigned long base; /* physical address pointer */ 59 unsigned long base; /* physical address pointer */
60 unsigned long size; 60 unsigned long size;
61 spinlock_t lock; 61 raw_spinlock_t lock;
62 struct rtas_args args; 62 struct rtas_args args;
63 struct device_node *dev; /* virtual address pointer */ 63 struct device_node *dev; /* virtual address pointer */
64}; 64};
@@ -245,5 +245,8 @@ static inline u32 rtas_config_addr(int busno, int devfn, int reg)
245 (devfn << 8) | (reg & 0xff); 245 (devfn << 8) | (reg & 0xff);
246} 246}
247 247
248extern void __cpuinit rtas_give_timebase(void);
249extern void __cpuinit rtas_take_timebase(void);
250
248#endif /* __KERNEL__ */ 251#endif /* __KERNEL__ */
249#endif /* _POWERPC_RTAS_H */ 252#endif /* _POWERPC_RTAS_H */
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 6a4fb29a061..b73396b9390 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -97,9 +97,10 @@ obj64-$(CONFIG_AUDIT) += compat_audit.o
97 97
98obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o 98obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
99obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o 99obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
100obj-$(CONFIG_PERF_COUNTERS) += perf_counter.o power4-pmu.o ppc970-pmu.o \ 100obj-$(CONFIG_PPC_PERF_CTRS) += perf_counter.o
101 power5-pmu.o power5+-pmu.o power6-pmu.o \ 101obj64-$(CONFIG_PPC_PERF_CTRS) += power4-pmu.o ppc970-pmu.o power5-pmu.o \
102 power7-pmu.o 102 power5+-pmu.o power6-pmu.o power7-pmu.o
103obj32-$(CONFIG_PPC_PERF_CTRS) += mpc7450-pmu.o
103 104
104obj-$(CONFIG_8XX_MINIMAL_FPEMU) += softemu8xx.o 105obj-$(CONFIG_8XX_MINIMAL_FPEMU) += softemu8xx.o
105 106
@@ -108,6 +109,7 @@ obj-y += iomap.o
108endif 109endif
109 110
110obj-$(CONFIG_PPC64) += $(obj64-y) 111obj-$(CONFIG_PPC64) += $(obj64-y)
112obj-$(CONFIG_PPC32) += $(obj32-y)
111 113
112ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC),) 114ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC),)
113obj-y += ppc_save_regs.o 115obj-y += ppc_save_regs.o
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index 4dd38f12915..3cadba60a4b 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -191,11 +191,49 @@ transfer_to_handler_cont:
191 mflr r9 191 mflr r9
192 lwz r11,0(r9) /* virtual address of handler */ 192 lwz r11,0(r9) /* virtual address of handler */
193 lwz r9,4(r9) /* where to go when done */ 193 lwz r9,4(r9) /* where to go when done */
194#ifdef CONFIG_TRACE_IRQFLAGS
195 lis r12,reenable_mmu@h
196 ori r12,r12,reenable_mmu@l
197 mtspr SPRN_SRR0,r12
198 mtspr SPRN_SRR1,r10
199 SYNC
200 RFI
201reenable_mmu: /* re-enable mmu so we can */
202 mfmsr r10
203 lwz r12,_MSR(r1)
204 xor r10,r10,r12
205 andi. r10,r10,MSR_EE /* Did EE change? */
206 beq 1f
207
208 /* Save handler and return address into the 2 unused words
209 * of the STACK_FRAME_OVERHEAD (sneak sneak sneak). Everything
210 * else can be recovered from the pt_regs except r3 which for
211 * normal interrupts has been set to pt_regs and for syscalls
212 * is an argument, so we temporarily use ORIG_GPR3 to save it
213 */
214 stw r9,8(r1)
215 stw r11,12(r1)
216 stw r3,ORIG_GPR3(r1)
217 bl trace_hardirqs_off
218 lwz r0,GPR0(r1)
219 lwz r3,ORIG_GPR3(r1)
220 lwz r4,GPR4(r1)
221 lwz r5,GPR5(r1)
222 lwz r6,GPR6(r1)
223 lwz r7,GPR7(r1)
224 lwz r8,GPR8(r1)
225 lwz r9,8(r1)
226 lwz r11,12(r1)
2271: mtctr r11
228 mtlr r9
229 bctr /* jump to handler */
230#else /* CONFIG_TRACE_IRQFLAGS */
194 mtspr SPRN_SRR0,r11 231 mtspr SPRN_SRR0,r11
195 mtspr SPRN_SRR1,r10 232 mtspr SPRN_SRR1,r10
196 mtlr r9 233 mtlr r9
197 SYNC 234 SYNC
198 RFI /* jump to handler, enable MMU */ 235 RFI /* jump to handler, enable MMU */
236#endif /* CONFIG_TRACE_IRQFLAGS */
199 237
200#if defined (CONFIG_6xx) || defined(CONFIG_E500) 238#if defined (CONFIG_6xx) || defined(CONFIG_E500)
2014: rlwinm r12,r12,0,~_TLF_NAPPING 2394: rlwinm r12,r12,0,~_TLF_NAPPING
@@ -251,6 +289,31 @@ _GLOBAL(DoSyscall)
251#ifdef SHOW_SYSCALLS 289#ifdef SHOW_SYSCALLS
252 bl do_show_syscall 290 bl do_show_syscall
253#endif /* SHOW_SYSCALLS */ 291#endif /* SHOW_SYSCALLS */
292#ifdef CONFIG_TRACE_IRQFLAGS
293 /* Return from syscalls can (and generally will) hard enable
294 * interrupts. You aren't supposed to call a syscall with
295 * interrupts disabled in the first place. However, to ensure
296 * that we get it right vs. lockdep if it happens, we force
297 * that hard enable here with appropriate tracing if we see
298 * that we have been called with interrupts off
299 */
300 mfmsr r11
301 andi. r12,r11,MSR_EE
302 bne+ 1f
303 /* We came in with interrupts disabled, we enable them now */
304 bl trace_hardirqs_on
305 mfmsr r11
306 lwz r0,GPR0(r1)
307 lwz r3,GPR3(r1)
308 lwz r4,GPR4(r1)
309 ori r11,r11,MSR_EE
310 lwz r5,GPR5(r1)
311 lwz r6,GPR6(r1)
312 lwz r7,GPR7(r1)
313 lwz r8,GPR8(r1)
314 mtmsr r11
3151:
316#endif /* CONFIG_TRACE_IRQFLAGS */
254 rlwinm r10,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */ 317 rlwinm r10,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
255 lwz r11,TI_FLAGS(r10) 318 lwz r11,TI_FLAGS(r10)
256 andi. r11,r11,_TIF_SYSCALL_T_OR_A 319 andi. r11,r11,_TIF_SYSCALL_T_OR_A
@@ -275,6 +338,7 @@ ret_from_syscall:
275 rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */ 338 rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
276 /* disable interrupts so current_thread_info()->flags can't change */ 339 /* disable interrupts so current_thread_info()->flags can't change */
277 LOAD_MSR_KERNEL(r10,MSR_KERNEL) /* doesn't include MSR_EE */ 340 LOAD_MSR_KERNEL(r10,MSR_KERNEL) /* doesn't include MSR_EE */
341 /* Note: We don't bother telling lockdep about it */
278 SYNC 342 SYNC
279 MTMSRD(r10) 343 MTMSRD(r10)
280 lwz r9,TI_FLAGS(r12) 344 lwz r9,TI_FLAGS(r12)
@@ -288,6 +352,19 @@ ret_from_syscall:
288 oris r11,r11,0x1000 /* Set SO bit in CR */ 352 oris r11,r11,0x1000 /* Set SO bit in CR */
289 stw r11,_CCR(r1) 353 stw r11,_CCR(r1)
290syscall_exit_cont: 354syscall_exit_cont:
355 lwz r8,_MSR(r1)
356#ifdef CONFIG_TRACE_IRQFLAGS
357 /* If we are going to return from the syscall with interrupts
358 * off, we trace that here. It shouldn't happen though but we
359 * want to catch the bugger if it does right ?
360 */
361 andi. r10,r8,MSR_EE
362 bne+ 1f
363 stw r3,GPR3(r1)
364 bl trace_hardirqs_off
365 lwz r3,GPR3(r1)
3661:
367#endif /* CONFIG_TRACE_IRQFLAGS */
291#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE) 368#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
292 /* If the process has its own DBCR0 value, load it up. The internal 369 /* If the process has its own DBCR0 value, load it up. The internal
293 debug mode bit tells us that dbcr0 should be loaded. */ 370 debug mode bit tells us that dbcr0 should be loaded. */
@@ -311,7 +388,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
311 mtlr r4 388 mtlr r4
312 mtcr r5 389 mtcr r5
313 lwz r7,_NIP(r1) 390 lwz r7,_NIP(r1)
314 lwz r8,_MSR(r1)
315 FIX_SRR1(r8, r0) 391 FIX_SRR1(r8, r0)
316 lwz r2,GPR2(r1) 392 lwz r2,GPR2(r1)
317 lwz r1,GPR1(r1) 393 lwz r1,GPR1(r1)
@@ -394,7 +470,9 @@ syscall_exit_work:
394 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP) 470 andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP)
395 beq ret_from_except 471 beq ret_from_except
396 472
397 /* Re-enable interrupts */ 473 /* Re-enable interrupts. There is no need to trace that with
474 * lockdep as we are supposed to have IRQs on at this point
475 */
398 ori r10,r10,MSR_EE 476 ori r10,r10,MSR_EE
399 SYNC 477 SYNC
400 MTMSRD(r10) 478 MTMSRD(r10)
@@ -705,6 +783,7 @@ ret_from_except:
705 /* Hard-disable interrupts so that current_thread_info()->flags 783 /* Hard-disable interrupts so that current_thread_info()->flags
706 * can't change between when we test it and when we return 784 * can't change between when we test it and when we return
707 * from the interrupt. */ 785 * from the interrupt. */
786 /* Note: We don't bother telling lockdep about it */
708 LOAD_MSR_KERNEL(r10,MSR_KERNEL) 787 LOAD_MSR_KERNEL(r10,MSR_KERNEL)
709 SYNC /* Some chip revs have problems here... */ 788 SYNC /* Some chip revs have problems here... */
710 MTMSRD(r10) /* disable interrupts */ 789 MTMSRD(r10) /* disable interrupts */
@@ -744,11 +823,24 @@ resume_kernel:
744 beq+ restore 823 beq+ restore
745 andi. r0,r3,MSR_EE /* interrupts off? */ 824 andi. r0,r3,MSR_EE /* interrupts off? */
746 beq restore /* don't schedule if so */ 825 beq restore /* don't schedule if so */
826#ifdef CONFIG_TRACE_IRQFLAGS
827 /* Lockdep thinks irqs are enabled, we need to call
828 * preempt_schedule_irq with IRQs off, so we inform lockdep
829 * now that we -did- turn them off already
830 */
831 bl trace_hardirqs_off
832#endif
7471: bl preempt_schedule_irq 8331: bl preempt_schedule_irq
748 rlwinm r9,r1,0,0,(31-THREAD_SHIFT) 834 rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
749 lwz r3,TI_FLAGS(r9) 835 lwz r3,TI_FLAGS(r9)
750 andi. r0,r3,_TIF_NEED_RESCHED 836 andi. r0,r3,_TIF_NEED_RESCHED
751 bne- 1b 837 bne- 1b
838#ifdef CONFIG_TRACE_IRQFLAGS
839 /* And now, to properly rebalance the above, we tell lockdep they
840 * are being turned back on, which will happen when we return
841 */
842 bl trace_hardirqs_on
843#endif
752#else 844#else
753resume_kernel: 845resume_kernel:
754#endif /* CONFIG_PREEMPT */ 846#endif /* CONFIG_PREEMPT */
@@ -765,6 +857,28 @@ restore:
765 stw r6,icache_44x_need_flush@l(r4) 857 stw r6,icache_44x_need_flush@l(r4)
7661: 8581:
767#endif /* CONFIG_44x */ 859#endif /* CONFIG_44x */
860
861 lwz r9,_MSR(r1)
862#ifdef CONFIG_TRACE_IRQFLAGS
863 /* Lockdep doesn't know about the fact that IRQs are temporarily turned
864 * off in this assembly code while peeking at TI_FLAGS() and such. However
865 * we need to inform it if the exception turned interrupts off, and we
866 * are about to trun them back on.
867 *
868 * The problem here sadly is that we don't know whether the exceptions was
869 * one that turned interrupts off or not. So we always tell lockdep about
870 * turning them on here when we go back to wherever we came from with EE
871 * on, even if that may meen some redudant calls being tracked. Maybe later
872 * we could encode what the exception did somewhere or test the exception
873 * type in the pt_regs but that sounds overkill
874 */
875 andi. r10,r9,MSR_EE
876 beq 1f
877 bl trace_hardirqs_on
878 lwz r9,_MSR(r1)
8791:
880#endif /* CONFIG_TRACE_IRQFLAGS */
881
768 lwz r0,GPR0(r1) 882 lwz r0,GPR0(r1)
769 lwz r2,GPR2(r1) 883 lwz r2,GPR2(r1)
770 REST_4GPRS(3, r1) 884 REST_4GPRS(3, r1)
@@ -782,7 +896,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
782 stwcx. r0,0,r1 /* to clear the reservation */ 896 stwcx. r0,0,r1 /* to clear the reservation */
783 897
784#if !(defined(CONFIG_4xx) || defined(CONFIG_BOOKE)) 898#if !(defined(CONFIG_4xx) || defined(CONFIG_BOOKE))
785 lwz r9,_MSR(r1)
786 andi. r10,r9,MSR_RI /* check if this exception occurred */ 899 andi. r10,r9,MSR_RI /* check if this exception occurred */
787 beql nonrecoverable /* at a bad place (MSR:RI = 0) */ 900 beql nonrecoverable /* at a bad place (MSR:RI = 0) */
788 901
@@ -805,7 +918,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
805 MTMSRD(r10) /* clear the RI bit */ 918 MTMSRD(r10) /* clear the RI bit */
806 .globl exc_exit_restart 919 .globl exc_exit_restart
807exc_exit_restart: 920exc_exit_restart:
808 lwz r9,_MSR(r1)
809 lwz r12,_NIP(r1) 921 lwz r12,_NIP(r1)
810 FIX_SRR1(r9,r10) 922 FIX_SRR1(r9,r10)
811 mtspr SPRN_SRR0,r12 923 mtspr SPRN_SRR0,r12
@@ -1035,11 +1147,18 @@ do_work: /* r10 contains MSR_KERNEL here */
1035 beq do_user_signal 1147 beq do_user_signal
1036 1148
1037do_resched: /* r10 contains MSR_KERNEL here */ 1149do_resched: /* r10 contains MSR_KERNEL here */
1150 /* Note: We don't need to inform lockdep that we are enabling
1151 * interrupts here. As far as it knows, they are already enabled
1152 */
1038 ori r10,r10,MSR_EE 1153 ori r10,r10,MSR_EE
1039 SYNC 1154 SYNC
1040 MTMSRD(r10) /* hard-enable interrupts */ 1155 MTMSRD(r10) /* hard-enable interrupts */
1041 bl schedule 1156 bl schedule
1042recheck: 1157recheck:
1158 /* Note: And we don't tell it we are disabling them again
1159 * neither. Those disable/enable cycles used to peek at
1160 * TI_FLAGS aren't advertised.
1161 */
1043 LOAD_MSR_KERNEL(r10,MSR_KERNEL) 1162 LOAD_MSR_KERNEL(r10,MSR_KERNEL)
1044 SYNC 1163 SYNC
1045 MTMSRD(r10) /* disable interrupts */ 1164 MTMSRD(r10) /* disable interrupts */
diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c
index 1b12696cca0..ce1f3e44c24 100644
--- a/arch/powerpc/kernel/ftrace.c
+++ b/arch/powerpc/kernel/ftrace.c
@@ -586,7 +586,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
586 return; 586 return;
587 } 587 }
588 588
589 if (ftrace_push_return_trace(old, self_addr, &trace.depth) == -EBUSY) { 589 if (ftrace_push_return_trace(old, self_addr, &trace.depth, 0) == -EBUSY) {
590 *parent = old; 590 *parent = old;
591 return; 591 return;
592 } 592 }
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index 48469463f89..fc213294275 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -1124,9 +1124,8 @@ mmu_off:
1124 RFI 1124 RFI
1125 1125
1126/* 1126/*
1127 * Use the first pair of BAT registers to map the 1st 16MB 1127 * On 601, we use 3 BATs to map up to 24M of RAM at _PAGE_OFFSET
1128 * of RAM to PAGE_OFFSET. From this point on we can't safely 1128 * (we keep one for debugging) and on others, we use one 256M BAT.
1129 * call OF any more.
1130 */ 1129 */
1131initial_bats: 1130initial_bats:
1132 lis r11,PAGE_OFFSET@h 1131 lis r11,PAGE_OFFSET@h
@@ -1136,12 +1135,16 @@ initial_bats:
1136 bne 4f 1135 bne 4f
1137 ori r11,r11,4 /* set up BAT registers for 601 */ 1136 ori r11,r11,4 /* set up BAT registers for 601 */
1138 li r8,0x7f /* valid, block length = 8MB */ 1137 li r8,0x7f /* valid, block length = 8MB */
1139 oris r9,r11,0x800000@h /* set up BAT reg for 2nd 8M */
1140 oris r10,r8,0x800000@h /* set up BAT reg for 2nd 8M */
1141 mtspr SPRN_IBAT0U,r11 /* N.B. 601 has valid bit in */ 1138 mtspr SPRN_IBAT0U,r11 /* N.B. 601 has valid bit in */
1142 mtspr SPRN_IBAT0L,r8 /* lower BAT register */ 1139 mtspr SPRN_IBAT0L,r8 /* lower BAT register */
1143 mtspr SPRN_IBAT1U,r9 1140 addis r11,r11,0x800000@h
1144 mtspr SPRN_IBAT1L,r10 1141 addis r8,r8,0x800000@h
1142 mtspr SPRN_IBAT1U,r11
1143 mtspr SPRN_IBAT1L,r8
1144 addis r11,r11,0x800000@h
1145 addis r8,r8,0x800000@h
1146 mtspr SPRN_IBAT2U,r11
1147 mtspr SPRN_IBAT2L,r8
1145 isync 1148 isync
1146 blr 1149 blr
1147 1150
diff --git a/arch/powerpc/kernel/mpc7450-pmu.c b/arch/powerpc/kernel/mpc7450-pmu.c
new file mode 100644
index 00000000000..75ff47fed7b
--- /dev/null
+++ b/arch/powerpc/kernel/mpc7450-pmu.c
@@ -0,0 +1,417 @@
1/*
2 * Performance counter support for MPC7450-family processors.
3 *
4 * Copyright 2008-2009 Paul Mackerras, IBM Corporation.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11#include <linux/string.h>
12#include <linux/perf_counter.h>
13#include <linux/string.h>
14#include <asm/reg.h>
15#include <asm/cputable.h>
16
17#define N_COUNTER 6 /* Number of hardware counters */
18#define MAX_ALT 3 /* Maximum number of event alternative codes */
19
20/*
21 * Bits in event code for MPC7450 family
22 */
23#define PM_THRMULT_MSKS 0x40000
24#define PM_THRESH_SH 12
25#define PM_THRESH_MSK 0x3f
26#define PM_PMC_SH 8
27#define PM_PMC_MSK 7
28#define PM_PMCSEL_MSK 0x7f
29
30/*
31 * Classify events according to how specific their PMC requirements are.
32 * Result is:
33 * 0: can go on any PMC
34 * 1: can go on PMCs 1-4
35 * 2: can go on PMCs 1,2,4
36 * 3: can go on PMCs 1 or 2
37 * 4: can only go on one PMC
38 * -1: event code is invalid
39 */
40#define N_CLASSES 5
41
42static int mpc7450_classify_event(u32 event)
43{
44 int pmc;
45
46 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
47 if (pmc) {
48 if (pmc > N_COUNTER)
49 return -1;
50 return 4;
51 }
52 event &= PM_PMCSEL_MSK;
53 if (event <= 1)
54 return 0;
55 if (event <= 7)
56 return 1;
57 if (event <= 13)
58 return 2;
59 if (event <= 22)
60 return 3;
61 return -1;
62}
63
64/*
65 * Events using threshold and possible threshold scale:
66 * code scale? name
67 * 11e N PM_INSTQ_EXCEED_CYC
68 * 11f N PM_ALTV_IQ_EXCEED_CYC
69 * 128 Y PM_DTLB_SEARCH_EXCEED_CYC
70 * 12b Y PM_LD_MISS_EXCEED_L1_CYC
71 * 220 N PM_CQ_EXCEED_CYC
72 * 30c N PM_GPR_RB_EXCEED_CYC
73 * 30d ? PM_FPR_IQ_EXCEED_CYC ?
74 * 311 Y PM_ITLB_SEARCH_EXCEED
75 * 410 N PM_GPR_IQ_EXCEED_CYC
76 */
77
78/*
79 * Return use of threshold and threshold scale bits:
80 * 0 = uses neither, 1 = uses threshold, 2 = uses both
81 */
82static int mpc7450_threshold_use(u32 event)
83{
84 int pmc, sel;
85
86 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
87 sel = event & PM_PMCSEL_MSK;
88 switch (pmc) {
89 case 1:
90 if (sel == 0x1e || sel == 0x1f)
91 return 1;
92 if (sel == 0x28 || sel == 0x2b)
93 return 2;
94 break;
95 case 2:
96 if (sel == 0x20)
97 return 1;
98 break;
99 case 3:
100 if (sel == 0xc || sel == 0xd)
101 return 1;
102 if (sel == 0x11)
103 return 2;
104 break;
105 case 4:
106 if (sel == 0x10)
107 return 1;
108 break;
109 }
110 return 0;
111}
112
113/*
114 * Layout of constraint bits:
115 * 33222222222211111111110000000000
116 * 10987654321098765432109876543210
117 * |< >< > < > < ><><><><><><>
118 * TS TV G4 G3 G2P6P5P4P3P2P1
119 *
120 * P1 - P6
121 * 0 - 11: Count of events needing PMC1 .. PMC6
122 *
123 * G2
124 * 12 - 14: Count of events needing PMC1 or PMC2
125 *
126 * G3
127 * 16 - 18: Count of events needing PMC1, PMC2 or PMC4
128 *
129 * G4
130 * 20 - 23: Count of events needing PMC1, PMC2, PMC3 or PMC4
131 *
132 * TV
133 * 24 - 29: Threshold value requested
134 *
135 * TS
136 * 30: Threshold scale value requested
137 */
138
139static u32 pmcbits[N_COUNTER][2] = {
140 { 0x00844002, 0x00111001 }, /* PMC1 mask, value: P1,G2,G3,G4 */
141 { 0x00844008, 0x00111004 }, /* PMC2: P2,G2,G3,G4 */
142 { 0x00800020, 0x00100010 }, /* PMC3: P3,G4 */
143 { 0x00840080, 0x00110040 }, /* PMC4: P4,G3,G4 */
144 { 0x00000200, 0x00000100 }, /* PMC5: P5 */
145 { 0x00000800, 0x00000400 } /* PMC6: P6 */
146};
147
148static u32 classbits[N_CLASSES - 1][2] = {
149 { 0x00000000, 0x00000000 }, /* class 0: no constraint */
150 { 0x00800000, 0x00100000 }, /* class 1: G4 */
151 { 0x00040000, 0x00010000 }, /* class 2: G3 */
152 { 0x00004000, 0x00001000 }, /* class 3: G2 */
153};
154
155static int mpc7450_get_constraint(u64 event, unsigned long *maskp,
156 unsigned long *valp)
157{
158 int pmc, class;
159 u32 mask, value;
160 int thresh, tuse;
161
162 class = mpc7450_classify_event(event);
163 if (class < 0)
164 return -1;
165 if (class == 4) {
166 pmc = ((unsigned int)event >> PM_PMC_SH) & PM_PMC_MSK;
167 mask = pmcbits[pmc - 1][0];
168 value = pmcbits[pmc - 1][1];
169 } else {
170 mask = classbits[class][0];
171 value = classbits[class][1];
172 }
173
174 tuse = mpc7450_threshold_use(event);
175 if (tuse) {
176 thresh = ((unsigned int)event >> PM_THRESH_SH) & PM_THRESH_MSK;
177 mask |= 0x3f << 24;
178 value |= thresh << 24;
179 if (tuse == 2) {
180 mask |= 0x40000000;
181 if ((unsigned int)event & PM_THRMULT_MSKS)
182 value |= 0x40000000;
183 }
184 }
185
186 *maskp = mask;
187 *valp = value;
188 return 0;
189}
190
191static const unsigned int event_alternatives[][MAX_ALT] = {
192 { 0x217, 0x317 }, /* PM_L1_DCACHE_MISS */
193 { 0x418, 0x50f, 0x60f }, /* PM_SNOOP_RETRY */
194 { 0x502, 0x602 }, /* PM_L2_HIT */
195 { 0x503, 0x603 }, /* PM_L3_HIT */
196 { 0x504, 0x604 }, /* PM_L2_ICACHE_MISS */
197 { 0x505, 0x605 }, /* PM_L3_ICACHE_MISS */
198 { 0x506, 0x606 }, /* PM_L2_DCACHE_MISS */
199 { 0x507, 0x607 }, /* PM_L3_DCACHE_MISS */
200 { 0x50a, 0x623 }, /* PM_LD_HIT_L3 */
201 { 0x50b, 0x624 }, /* PM_ST_HIT_L3 */
202 { 0x50d, 0x60d }, /* PM_L2_TOUCH_HIT */
203 { 0x50e, 0x60e }, /* PM_L3_TOUCH_HIT */
204 { 0x512, 0x612 }, /* PM_INT_LOCAL */
205 { 0x513, 0x61d }, /* PM_L2_MISS */
206 { 0x514, 0x61e }, /* PM_L3_MISS */
207};
208
209/*
210 * Scan the alternatives table for a match and return the
211 * index into the alternatives table if found, else -1.
212 */
213static int find_alternative(u32 event)
214{
215 int i, j;
216
217 for (i = 0; i < ARRAY_SIZE(event_alternatives); ++i) {
218 if (event < event_alternatives[i][0])
219 break;
220 for (j = 0; j < MAX_ALT && event_alternatives[i][j]; ++j)
221 if (event == event_alternatives[i][j])
222 return i;
223 }
224 return -1;
225}
226
227static int mpc7450_get_alternatives(u64 event, unsigned int flags, u64 alt[])
228{
229 int i, j, nalt = 1;
230 u32 ae;
231
232 alt[0] = event;
233 nalt = 1;
234 i = find_alternative((u32)event);
235 if (i >= 0) {
236 for (j = 0; j < MAX_ALT; ++j) {
237 ae = event_alternatives[i][j];
238 if (ae && ae != (u32)event)
239 alt[nalt++] = ae;
240 }
241 }
242 return nalt;
243}
244
245/*
246 * Bitmaps of which PMCs each class can use for classes 0 - 3.
247 * Bit i is set if PMC i+1 is usable.
248 */
249static const u8 classmap[N_CLASSES] = {
250 0x3f, 0x0f, 0x0b, 0x03, 0
251};
252
253/* Bit position and width of each PMCSEL field */
254static const int pmcsel_shift[N_COUNTER] = {
255 6, 0, 27, 22, 17, 11
256};
257static const u32 pmcsel_mask[N_COUNTER] = {
258 0x7f, 0x3f, 0x1f, 0x1f, 0x1f, 0x3f
259};
260
261/*
262 * Compute MMCR0/1/2 values for a set of events.
263 */
264static int mpc7450_compute_mmcr(u64 event[], int n_ev,
265 unsigned int hwc[], unsigned long mmcr[])
266{
267 u8 event_index[N_CLASSES][N_COUNTER];
268 int n_classevent[N_CLASSES];
269 int i, j, class, tuse;
270 u32 pmc_inuse = 0, pmc_avail;
271 u32 mmcr0 = 0, mmcr1 = 0, mmcr2 = 0;
272 u32 ev, pmc, thresh;
273
274 if (n_ev > N_COUNTER)
275 return -1;
276
277 /* First pass: count usage in each class */
278 for (i = 0; i < N_CLASSES; ++i)
279 n_classevent[i] = 0;
280 for (i = 0; i < n_ev; ++i) {
281 class = mpc7450_classify_event(event[i]);
282 if (class < 0)
283 return -1;
284 j = n_classevent[class]++;
285 event_index[class][j] = i;
286 }
287
288 /* Second pass: allocate PMCs from most specific event to least */
289 for (class = N_CLASSES - 1; class >= 0; --class) {
290 for (i = 0; i < n_classevent[class]; ++i) {
291 ev = event[event_index[class][i]];
292 if (class == 4) {
293 pmc = (ev >> PM_PMC_SH) & PM_PMC_MSK;
294 if (pmc_inuse & (1 << (pmc - 1)))
295 return -1;
296 } else {
297 /* Find a suitable PMC */
298 pmc_avail = classmap[class] & ~pmc_inuse;
299 if (!pmc_avail)
300 return -1;
301 pmc = ffs(pmc_avail);
302 }
303 pmc_inuse |= 1 << (pmc - 1);
304
305 tuse = mpc7450_threshold_use(ev);
306 if (tuse) {
307 thresh = (ev >> PM_THRESH_SH) & PM_THRESH_MSK;
308 mmcr0 |= thresh << 16;
309 if (tuse == 2 && (ev & PM_THRMULT_MSKS))
310 mmcr2 = 0x80000000;
311 }
312 ev &= pmcsel_mask[pmc - 1];
313 ev <<= pmcsel_shift[pmc - 1];
314 if (pmc <= 2)
315 mmcr0 |= ev;
316 else
317 mmcr1 |= ev;
318 hwc[event_index[class][i]] = pmc - 1;
319 }
320 }
321
322 if (pmc_inuse & 1)
323 mmcr0 |= MMCR0_PMC1CE;
324 if (pmc_inuse & 0x3e)
325 mmcr0 |= MMCR0_PMCnCE;
326
327 /* Return MMCRx values */
328 mmcr[0] = mmcr0;
329 mmcr[1] = mmcr1;
330 mmcr[2] = mmcr2;
331 return 0;
332}
333
334/*
335 * Disable counting by a PMC.
336 * Note that the pmc argument is 0-based here, not 1-based.
337 */
338static void mpc7450_disable_pmc(unsigned int pmc, unsigned long mmcr[])
339{
340 if (pmc <= 1)
341 mmcr[0] &= ~(pmcsel_mask[pmc] << pmcsel_shift[pmc]);
342 else
343 mmcr[1] &= ~(pmcsel_mask[pmc] << pmcsel_shift[pmc]);
344}
345
346static int mpc7450_generic_events[] = {
347 [PERF_COUNT_HW_CPU_CYCLES] = 1,
348 [PERF_COUNT_HW_INSTRUCTIONS] = 2,
349 [PERF_COUNT_HW_CACHE_MISSES] = 0x217, /* PM_L1_DCACHE_MISS */
350 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x122, /* PM_BR_CMPL */
351 [PERF_COUNT_HW_BRANCH_MISSES] = 0x41c, /* PM_BR_MPRED */
352};
353
354#define C(x) PERF_COUNT_HW_CACHE_##x
355
356/*
357 * Table of generalized cache-related events.
358 * 0 means not supported, -1 means nonsensical, other values
359 * are event codes.
360 */
361static int mpc7450_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
362 [C(L1D)] = { /* RESULT_ACCESS RESULT_MISS */
363 [C(OP_READ)] = { 0, 0x225 },
364 [C(OP_WRITE)] = { 0, 0x227 },
365 [C(OP_PREFETCH)] = { 0, 0 },
366 },
367 [C(L1I)] = { /* RESULT_ACCESS RESULT_MISS */
368 [C(OP_READ)] = { 0x129, 0x115 },
369 [C(OP_WRITE)] = { -1, -1 },
370 [C(OP_PREFETCH)] = { 0x634, 0 },
371 },
372 [C(LL)] = { /* RESULT_ACCESS RESULT_MISS */
373 [C(OP_READ)] = { 0, 0 },
374 [C(OP_WRITE)] = { 0, 0 },
375 [C(OP_PREFETCH)] = { 0, 0 },
376 },
377 [C(DTLB)] = { /* RESULT_ACCESS RESULT_MISS */
378 [C(OP_READ)] = { 0, 0x312 },
379 [C(OP_WRITE)] = { -1, -1 },
380 [C(OP_PREFETCH)] = { -1, -1 },
381 },
382 [C(ITLB)] = { /* RESULT_ACCESS RESULT_MISS */
383 [C(OP_READ)] = { 0, 0x223 },
384 [C(OP_WRITE)] = { -1, -1 },
385 [C(OP_PREFETCH)] = { -1, -1 },
386 },
387 [C(BPU)] = { /* RESULT_ACCESS RESULT_MISS */
388 [C(OP_READ)] = { 0x122, 0x41c },
389 [C(OP_WRITE)] = { -1, -1 },
390 [C(OP_PREFETCH)] = { -1, -1 },
391 },
392};
393
394struct power_pmu mpc7450_pmu = {
395 .name = "MPC7450 family",
396 .n_counter = N_COUNTER,
397 .max_alternatives = MAX_ALT,
398 .add_fields = 0x00111555ul,
399 .test_adder = 0x00301000ul,
400 .compute_mmcr = mpc7450_compute_mmcr,
401 .get_constraint = mpc7450_get_constraint,
402 .get_alternatives = mpc7450_get_alternatives,
403 .disable_pmc = mpc7450_disable_pmc,
404 .n_generic = ARRAY_SIZE(mpc7450_generic_events),
405 .generic_events = mpc7450_generic_events,
406 .cache_events = &mpc7450_cache_events,
407};
408
409static int init_mpc7450_pmu(void)
410{
411 if (strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc/7450"))
412 return -ENODEV;
413
414 return register_power_pmu(&mpc7450_pmu);
415}
416
417arch_initcall(init_mpc7450_pmu);
diff --git a/arch/powerpc/kernel/of_device.c b/arch/powerpc/kernel/of_device.c
index fa983a59c4c..a359cb08e90 100644
--- a/arch/powerpc/kernel/of_device.c
+++ b/arch/powerpc/kernel/of_device.c
@@ -76,7 +76,7 @@ struct of_device *of_device_alloc(struct device_node *np,
76 dev->dev.archdata.of_node = np; 76 dev->dev.archdata.of_node = np;
77 77
78 if (bus_id) 78 if (bus_id)
79 dev_set_name(&dev->dev, bus_id); 79 dev_set_name(&dev->dev, "%s", bus_id);
80 else 80 else
81 of_device_make_bus_id(dev); 81 of_device_make_bus_id(dev);
82 82
diff --git a/arch/powerpc/kernel/perf_counter.c b/arch/powerpc/kernel/perf_counter.c
index bb202388170..809fdf94b95 100644
--- a/arch/powerpc/kernel/perf_counter.c
+++ b/arch/powerpc/kernel/perf_counter.c
@@ -29,7 +29,7 @@ struct cpu_hw_counters {
29 struct perf_counter *counter[MAX_HWCOUNTERS]; 29 struct perf_counter *counter[MAX_HWCOUNTERS];
30 u64 events[MAX_HWCOUNTERS]; 30 u64 events[MAX_HWCOUNTERS];
31 unsigned int flags[MAX_HWCOUNTERS]; 31 unsigned int flags[MAX_HWCOUNTERS];
32 u64 mmcr[3]; 32 unsigned long mmcr[3];
33 struct perf_counter *limited_counter[MAX_LIMITED_HWCOUNTERS]; 33 struct perf_counter *limited_counter[MAX_LIMITED_HWCOUNTERS];
34 u8 limited_hwidx[MAX_LIMITED_HWCOUNTERS]; 34 u8 limited_hwidx[MAX_LIMITED_HWCOUNTERS];
35}; 35};
@@ -46,6 +46,115 @@ struct power_pmu *ppmu;
46 */ 46 */
47static unsigned int freeze_counters_kernel = MMCR0_FCS; 47static unsigned int freeze_counters_kernel = MMCR0_FCS;
48 48
49/*
50 * 32-bit doesn't have MMCRA but does have an MMCR2,
51 * and a few other names are different.
52 */
53#ifdef CONFIG_PPC32
54
55#define MMCR0_FCHV 0
56#define MMCR0_PMCjCE MMCR0_PMCnCE
57
58#define SPRN_MMCRA SPRN_MMCR2
59#define MMCRA_SAMPLE_ENABLE 0
60
61static inline unsigned long perf_ip_adjust(struct pt_regs *regs)
62{
63 return 0;
64}
65static inline void perf_set_pmu_inuse(int inuse) { }
66static inline void perf_get_data_addr(struct pt_regs *regs, u64 *addrp) { }
67static inline u32 perf_get_misc_flags(struct pt_regs *regs)
68{
69 return 0;
70}
71static inline void perf_read_regs(struct pt_regs *regs) { }
72static inline int perf_intr_is_nmi(struct pt_regs *regs)
73{
74 return 0;
75}
76
77#endif /* CONFIG_PPC32 */
78
79/*
80 * Things that are specific to 64-bit implementations.
81 */
82#ifdef CONFIG_PPC64
83
84static inline unsigned long perf_ip_adjust(struct pt_regs *regs)
85{
86 unsigned long mmcra = regs->dsisr;
87
88 if ((mmcra & MMCRA_SAMPLE_ENABLE) && !(ppmu->flags & PPMU_ALT_SIPR)) {
89 unsigned long slot = (mmcra & MMCRA_SLOT) >> MMCRA_SLOT_SHIFT;
90 if (slot > 1)
91 return 4 * (slot - 1);
92 }
93 return 0;
94}
95
96static inline void perf_set_pmu_inuse(int inuse)
97{
98 get_lppaca()->pmcregs_in_use = inuse;
99}
100
101/*
102 * The user wants a data address recorded.
103 * If we're not doing instruction sampling, give them the SDAR
104 * (sampled data address). If we are doing instruction sampling, then
105 * only give them the SDAR if it corresponds to the instruction
106 * pointed to by SIAR; this is indicated by the [POWER6_]MMCRA_SDSYNC
107 * bit in MMCRA.
108 */
109static inline void perf_get_data_addr(struct pt_regs *regs, u64 *addrp)
110{
111 unsigned long mmcra = regs->dsisr;
112 unsigned long sdsync = (ppmu->flags & PPMU_ALT_SIPR) ?
113 POWER6_MMCRA_SDSYNC : MMCRA_SDSYNC;
114
115 if (!(mmcra & MMCRA_SAMPLE_ENABLE) || (mmcra & sdsync))
116 *addrp = mfspr(SPRN_SDAR);
117}
118
119static inline u32 perf_get_misc_flags(struct pt_regs *regs)
120{
121 unsigned long mmcra = regs->dsisr;
122
123 if (TRAP(regs) != 0xf00)
124 return 0; /* not a PMU interrupt */
125
126 if (ppmu->flags & PPMU_ALT_SIPR) {
127 if (mmcra & POWER6_MMCRA_SIHV)
128 return PERF_EVENT_MISC_HYPERVISOR;
129 return (mmcra & POWER6_MMCRA_SIPR) ?
130 PERF_EVENT_MISC_USER : PERF_EVENT_MISC_KERNEL;
131 }
132 if (mmcra & MMCRA_SIHV)
133 return PERF_EVENT_MISC_HYPERVISOR;
134 return (mmcra & MMCRA_SIPR) ? PERF_EVENT_MISC_USER :
135 PERF_EVENT_MISC_KERNEL;
136}
137
138/*
139 * Overload regs->dsisr to store MMCRA so we only need to read it once
140 * on each interrupt.
141 */
142static inline void perf_read_regs(struct pt_regs *regs)
143{
144 regs->dsisr = mfspr(SPRN_MMCRA);
145}
146
147/*
148 * If interrupts were soft-disabled when a PMU interrupt occurs, treat
149 * it as an NMI.
150 */
151static inline int perf_intr_is_nmi(struct pt_regs *regs)
152{
153 return !regs->softe;
154}
155
156#endif /* CONFIG_PPC64 */
157
49static void perf_counter_interrupt(struct pt_regs *regs); 158static void perf_counter_interrupt(struct pt_regs *regs);
50 159
51void perf_counter_print_debug(void) 160void perf_counter_print_debug(void)
@@ -78,12 +187,14 @@ static unsigned long read_pmc(int idx)
78 case 6: 187 case 6:
79 val = mfspr(SPRN_PMC6); 188 val = mfspr(SPRN_PMC6);
80 break; 189 break;
190#ifdef CONFIG_PPC64
81 case 7: 191 case 7:
82 val = mfspr(SPRN_PMC7); 192 val = mfspr(SPRN_PMC7);
83 break; 193 break;
84 case 8: 194 case 8:
85 val = mfspr(SPRN_PMC8); 195 val = mfspr(SPRN_PMC8);
86 break; 196 break;
197#endif /* CONFIG_PPC64 */
87 default: 198 default:
88 printk(KERN_ERR "oops trying to read PMC%d\n", idx); 199 printk(KERN_ERR "oops trying to read PMC%d\n", idx);
89 val = 0; 200 val = 0;
@@ -115,12 +226,14 @@ static void write_pmc(int idx, unsigned long val)
115 case 6: 226 case 6:
116 mtspr(SPRN_PMC6, val); 227 mtspr(SPRN_PMC6, val);
117 break; 228 break;
229#ifdef CONFIG_PPC64
118 case 7: 230 case 7:
119 mtspr(SPRN_PMC7, val); 231 mtspr(SPRN_PMC7, val);
120 break; 232 break;
121 case 8: 233 case 8:
122 mtspr(SPRN_PMC8, val); 234 mtspr(SPRN_PMC8, val);
123 break; 235 break;
236#endif /* CONFIG_PPC64 */
124 default: 237 default:
125 printk(KERN_ERR "oops trying to write PMC%d\n", idx); 238 printk(KERN_ERR "oops trying to write PMC%d\n", idx);
126 } 239 }
@@ -135,15 +248,15 @@ static void write_pmc(int idx, unsigned long val)
135static int power_check_constraints(u64 event[], unsigned int cflags[], 248static int power_check_constraints(u64 event[], unsigned int cflags[],
136 int n_ev) 249 int n_ev)
137{ 250{
138 u64 mask, value, nv; 251 unsigned long mask, value, nv;
139 u64 alternatives[MAX_HWCOUNTERS][MAX_EVENT_ALTERNATIVES]; 252 u64 alternatives[MAX_HWCOUNTERS][MAX_EVENT_ALTERNATIVES];
140 u64 amasks[MAX_HWCOUNTERS][MAX_EVENT_ALTERNATIVES]; 253 unsigned long amasks[MAX_HWCOUNTERS][MAX_EVENT_ALTERNATIVES];
141 u64 avalues[MAX_HWCOUNTERS][MAX_EVENT_ALTERNATIVES]; 254 unsigned long avalues[MAX_HWCOUNTERS][MAX_EVENT_ALTERNATIVES];
142 u64 smasks[MAX_HWCOUNTERS], svalues[MAX_HWCOUNTERS]; 255 unsigned long smasks[MAX_HWCOUNTERS], svalues[MAX_HWCOUNTERS];
143 int n_alt[MAX_HWCOUNTERS], choice[MAX_HWCOUNTERS]; 256 int n_alt[MAX_HWCOUNTERS], choice[MAX_HWCOUNTERS];
144 int i, j; 257 int i, j;
145 u64 addf = ppmu->add_fields; 258 unsigned long addf = ppmu->add_fields;
146 u64 tadd = ppmu->test_adder; 259 unsigned long tadd = ppmu->test_adder;
147 260
148 if (n_ev > ppmu->n_counter) 261 if (n_ev > ppmu->n_counter)
149 return -1; 262 return -1;
@@ -283,7 +396,7 @@ static int check_excludes(struct perf_counter **ctrs, unsigned int cflags[],
283 396
284static void power_pmu_read(struct perf_counter *counter) 397static void power_pmu_read(struct perf_counter *counter)
285{ 398{
286 long val, delta, prev; 399 s64 val, delta, prev;
287 400
288 if (!counter->hw.idx) 401 if (!counter->hw.idx)
289 return; 402 return;
@@ -403,14 +516,12 @@ static void write_mmcr0(struct cpu_hw_counters *cpuhw, unsigned long mmcr0)
403void hw_perf_disable(void) 516void hw_perf_disable(void)
404{ 517{
405 struct cpu_hw_counters *cpuhw; 518 struct cpu_hw_counters *cpuhw;
406 unsigned long ret;
407 unsigned long flags; 519 unsigned long flags;
408 520
409 local_irq_save(flags); 521 local_irq_save(flags);
410 cpuhw = &__get_cpu_var(cpu_hw_counters); 522 cpuhw = &__get_cpu_var(cpu_hw_counters);
411 523
412 ret = cpuhw->disabled; 524 if (!cpuhw->disabled) {
413 if (!ret) {
414 cpuhw->disabled = 1; 525 cpuhw->disabled = 1;
415 cpuhw->n_added = 0; 526 cpuhw->n_added = 0;
416 527
@@ -479,7 +590,7 @@ void hw_perf_enable(void)
479 mtspr(SPRN_MMCRA, cpuhw->mmcr[2] & ~MMCRA_SAMPLE_ENABLE); 590 mtspr(SPRN_MMCRA, cpuhw->mmcr[2] & ~MMCRA_SAMPLE_ENABLE);
480 mtspr(SPRN_MMCR1, cpuhw->mmcr[1]); 591 mtspr(SPRN_MMCR1, cpuhw->mmcr[1]);
481 if (cpuhw->n_counters == 0) 592 if (cpuhw->n_counters == 0)
482 get_lppaca()->pmcregs_in_use = 0; 593 perf_set_pmu_inuse(0);
483 goto out_enable; 594 goto out_enable;
484 } 595 }
485 596
@@ -512,7 +623,7 @@ void hw_perf_enable(void)
512 * bit set and set the hardware counters to their initial values. 623 * bit set and set the hardware counters to their initial values.
513 * Then unfreeze the counters. 624 * Then unfreeze the counters.
514 */ 625 */
515 get_lppaca()->pmcregs_in_use = 1; 626 perf_set_pmu_inuse(1);
516 mtspr(SPRN_MMCRA, cpuhw->mmcr[2] & ~MMCRA_SAMPLE_ENABLE); 627 mtspr(SPRN_MMCRA, cpuhw->mmcr[2] & ~MMCRA_SAMPLE_ENABLE);
517 mtspr(SPRN_MMCR1, cpuhw->mmcr[1]); 628 mtspr(SPRN_MMCR1, cpuhw->mmcr[1]);
518 mtspr(SPRN_MMCR0, (cpuhw->mmcr[0] & ~(MMCR0_PMC1CE | MMCR0_PMCjCE)) 629 mtspr(SPRN_MMCR0, (cpuhw->mmcr[0] & ~(MMCR0_PMC1CE | MMCR0_PMCjCE))
@@ -913,6 +1024,8 @@ const struct pmu *hw_perf_counter_init(struct perf_counter *counter)
913 case PERF_TYPE_RAW: 1024 case PERF_TYPE_RAW:
914 ev = counter->attr.config; 1025 ev = counter->attr.config;
915 break; 1026 break;
1027 default:
1028 return ERR_PTR(-EINVAL);
916 } 1029 }
917 counter->hw.config_base = ev; 1030 counter->hw.config_base = ev;
918 counter->hw.idx = 0; 1031 counter->hw.idx = 0;
@@ -1007,13 +1120,12 @@ const struct pmu *hw_perf_counter_init(struct perf_counter *counter)
1007 * things if requested. Note that interrupts are hard-disabled 1120 * things if requested. Note that interrupts are hard-disabled
1008 * here so there is no possibility of being interrupted. 1121 * here so there is no possibility of being interrupted.
1009 */ 1122 */
1010static void record_and_restart(struct perf_counter *counter, long val, 1123static void record_and_restart(struct perf_counter *counter, unsigned long val,
1011 struct pt_regs *regs, int nmi) 1124 struct pt_regs *regs, int nmi)
1012{ 1125{
1013 u64 period = counter->hw.sample_period; 1126 u64 period = counter->hw.sample_period;
1014 s64 prev, delta, left; 1127 s64 prev, delta, left;
1015 int record = 0; 1128 int record = 0;
1016 u64 addr, mmcra, sdsync;
1017 1129
1018 /* we don't have to worry about interrupts here */ 1130 /* we don't have to worry about interrupts here */
1019 prev = atomic64_read(&counter->hw.prev_count); 1131 prev = atomic64_read(&counter->hw.prev_count);
@@ -1033,8 +1145,8 @@ static void record_and_restart(struct perf_counter *counter, long val,
1033 left = period; 1145 left = period;
1034 record = 1; 1146 record = 1;
1035 } 1147 }
1036 if (left < 0x80000000L) 1148 if (left < 0x80000000LL)
1037 val = 0x80000000L - left; 1149 val = 0x80000000LL - left;
1038 } 1150 }
1039 1151
1040 /* 1152 /*
@@ -1047,22 +1159,9 @@ static void record_and_restart(struct perf_counter *counter, long val,
1047 .period = counter->hw.last_period, 1159 .period = counter->hw.last_period,
1048 }; 1160 };
1049 1161
1050 if (counter->attr.sample_type & PERF_SAMPLE_ADDR) { 1162 if (counter->attr.sample_type & PERF_SAMPLE_ADDR)
1051 /* 1163 perf_get_data_addr(regs, &data.addr);
1052 * The user wants a data address recorded. 1164
1053 * If we're not doing instruction sampling,
1054 * give them the SDAR (sampled data address).
1055 * If we are doing instruction sampling, then only
1056 * give them the SDAR if it corresponds to the
1057 * instruction pointed to by SIAR; this is indicated
1058 * by the [POWER6_]MMCRA_SDSYNC bit in MMCRA.
1059 */
1060 mmcra = regs->dsisr;
1061 sdsync = (ppmu->flags & PPMU_ALT_SIPR) ?
1062 POWER6_MMCRA_SDSYNC : MMCRA_SDSYNC;
1063 if (!(mmcra & MMCRA_SAMPLE_ENABLE) || (mmcra & sdsync))
1064 data.addr = mfspr(SPRN_SDAR);
1065 }
1066 if (perf_counter_overflow(counter, nmi, &data)) { 1165 if (perf_counter_overflow(counter, nmi, &data)) {
1067 /* 1166 /*
1068 * Interrupts are coming too fast - throttle them 1167 * Interrupts are coming too fast - throttle them
@@ -1088,25 +1187,12 @@ static void record_and_restart(struct perf_counter *counter, long val,
1088 */ 1187 */
1089unsigned long perf_misc_flags(struct pt_regs *regs) 1188unsigned long perf_misc_flags(struct pt_regs *regs)
1090{ 1189{
1091 unsigned long mmcra; 1190 u32 flags = perf_get_misc_flags(regs);
1092
1093 if (TRAP(regs) != 0xf00) {
1094 /* not a PMU interrupt */
1095 return user_mode(regs) ? PERF_EVENT_MISC_USER :
1096 PERF_EVENT_MISC_KERNEL;
1097 }
1098 1191
1099 mmcra = regs->dsisr; 1192 if (flags)
1100 if (ppmu->flags & PPMU_ALT_SIPR) { 1193 return flags;
1101 if (mmcra & POWER6_MMCRA_SIHV) 1194 return user_mode(regs) ? PERF_EVENT_MISC_USER :
1102 return PERF_EVENT_MISC_HYPERVISOR; 1195 PERF_EVENT_MISC_KERNEL;
1103 return (mmcra & POWER6_MMCRA_SIPR) ? PERF_EVENT_MISC_USER :
1104 PERF_EVENT_MISC_KERNEL;
1105 }
1106 if (mmcra & MMCRA_SIHV)
1107 return PERF_EVENT_MISC_HYPERVISOR;
1108 return (mmcra & MMCRA_SIPR) ? PERF_EVENT_MISC_USER :
1109 PERF_EVENT_MISC_KERNEL;
1110} 1196}
1111 1197
1112/* 1198/*
@@ -1115,20 +1201,12 @@ unsigned long perf_misc_flags(struct pt_regs *regs)
1115 */ 1201 */
1116unsigned long perf_instruction_pointer(struct pt_regs *regs) 1202unsigned long perf_instruction_pointer(struct pt_regs *regs)
1117{ 1203{
1118 unsigned long mmcra;
1119 unsigned long ip; 1204 unsigned long ip;
1120 unsigned long slot;
1121 1205
1122 if (TRAP(regs) != 0xf00) 1206 if (TRAP(regs) != 0xf00)
1123 return regs->nip; /* not a PMU interrupt */ 1207 return regs->nip; /* not a PMU interrupt */
1124 1208
1125 ip = mfspr(SPRN_SIAR); 1209 ip = mfspr(SPRN_SIAR) + perf_ip_adjust(regs);
1126 mmcra = regs->dsisr;
1127 if ((mmcra & MMCRA_SAMPLE_ENABLE) && !(ppmu->flags & PPMU_ALT_SIPR)) {
1128 slot = (mmcra & MMCRA_SLOT) >> MMCRA_SLOT_SHIFT;
1129 if (slot > 1)
1130 ip += 4 * (slot - 1);
1131 }
1132 return ip; 1210 return ip;
1133} 1211}
1134 1212
@@ -1140,7 +1218,7 @@ static void perf_counter_interrupt(struct pt_regs *regs)
1140 int i; 1218 int i;
1141 struct cpu_hw_counters *cpuhw = &__get_cpu_var(cpu_hw_counters); 1219 struct cpu_hw_counters *cpuhw = &__get_cpu_var(cpu_hw_counters);
1142 struct perf_counter *counter; 1220 struct perf_counter *counter;
1143 long val; 1221 unsigned long val;
1144 int found = 0; 1222 int found = 0;
1145 int nmi; 1223 int nmi;
1146 1224
@@ -1148,16 +1226,9 @@ static void perf_counter_interrupt(struct pt_regs *regs)
1148 freeze_limited_counters(cpuhw, mfspr(SPRN_PMC5), 1226 freeze_limited_counters(cpuhw, mfspr(SPRN_PMC5),
1149 mfspr(SPRN_PMC6)); 1227 mfspr(SPRN_PMC6));
1150 1228
1151 /* 1229 perf_read_regs(regs);
1152 * Overload regs->dsisr to store MMCRA so we only need to read it once.
1153 */
1154 regs->dsisr = mfspr(SPRN_MMCRA);
1155 1230
1156 /* 1231 nmi = perf_intr_is_nmi(regs);
1157 * If interrupts were soft-disabled when this PMU interrupt
1158 * occurred, treat it as an NMI.
1159 */
1160 nmi = !regs->softe;
1161 if (nmi) 1232 if (nmi)
1162 nmi_enter(); 1233 nmi_enter();
1163 else 1234 else
@@ -1214,50 +1285,22 @@ void hw_perf_counter_setup(int cpu)
1214 cpuhw->mmcr[0] = MMCR0_FC; 1285 cpuhw->mmcr[0] = MMCR0_FC;
1215} 1286}
1216 1287
1217extern struct power_pmu power4_pmu; 1288int register_power_pmu(struct power_pmu *pmu)
1218extern struct power_pmu ppc970_pmu;
1219extern struct power_pmu power5_pmu;
1220extern struct power_pmu power5p_pmu;
1221extern struct power_pmu power6_pmu;
1222extern struct power_pmu power7_pmu;
1223
1224static int init_perf_counters(void)
1225{ 1289{
1226 unsigned long pvr; 1290 if (ppmu)
1227 1291 return -EBUSY; /* something's already registered */
1228 /* XXX should get this from cputable */ 1292
1229 pvr = mfspr(SPRN_PVR); 1293 ppmu = pmu;
1230 switch (PVR_VER(pvr)) { 1294 pr_info("%s performance monitor hardware support registered\n",
1231 case PV_POWER4: 1295 pmu->name);
1232 case PV_POWER4p:
1233 ppmu = &power4_pmu;
1234 break;
1235 case PV_970:
1236 case PV_970FX:
1237 case PV_970MP:
1238 ppmu = &ppc970_pmu;
1239 break;
1240 case PV_POWER5:
1241 ppmu = &power5_pmu;
1242 break;
1243 case PV_POWER5p:
1244 ppmu = &power5p_pmu;
1245 break;
1246 case 0x3e:
1247 ppmu = &power6_pmu;
1248 break;
1249 case 0x3f:
1250 ppmu = &power7_pmu;
1251 break;
1252 }
1253 1296
1297#ifdef MSR_HV
1254 /* 1298 /*
1255 * Use FCHV to ignore kernel events if MSR.HV is set. 1299 * Use FCHV to ignore kernel events if MSR.HV is set.
1256 */ 1300 */
1257 if (mfmsr() & MSR_HV) 1301 if (mfmsr() & MSR_HV)
1258 freeze_counters_kernel = MMCR0_FCHV; 1302 freeze_counters_kernel = MMCR0_FCHV;
1303#endif /* CONFIG_PPC64 */
1259 1304
1260 return 0; 1305 return 0;
1261} 1306}
1262
1263arch_initcall(init_perf_counters);
diff --git a/arch/powerpc/kernel/power4-pmu.c b/arch/powerpc/kernel/power4-pmu.c
index 07bd308a5fa..db90b0c5c27 100644
--- a/arch/powerpc/kernel/power4-pmu.c
+++ b/arch/powerpc/kernel/power4-pmu.c
@@ -10,7 +10,9 @@
10 */ 10 */
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/perf_counter.h> 12#include <linux/perf_counter.h>
13#include <linux/string.h>
13#include <asm/reg.h> 14#include <asm/reg.h>
15#include <asm/cputable.h>
14 16
15/* 17/*
16 * Bits in event code for POWER4 18 * Bits in event code for POWER4
@@ -179,22 +181,22 @@ static short mmcr1_adder_bits[8] = {
179 */ 181 */
180 182
181static struct unitinfo { 183static struct unitinfo {
182 u64 value, mask; 184 unsigned long value, mask;
183 int unit; 185 int unit;
184 int lowerbit; 186 int lowerbit;
185} p4_unitinfo[16] = { 187} p4_unitinfo[16] = {
186 [PM_FPU] = { 0x44000000000000ull, 0x88000000000000ull, PM_FPU, 0 }, 188 [PM_FPU] = { 0x44000000000000ul, 0x88000000000000ul, PM_FPU, 0 },
187 [PM_ISU1] = { 0x20080000000000ull, 0x88000000000000ull, PM_ISU1, 0 }, 189 [PM_ISU1] = { 0x20080000000000ul, 0x88000000000000ul, PM_ISU1, 0 },
188 [PM_ISU1_ALT] = 190 [PM_ISU1_ALT] =
189 { 0x20080000000000ull, 0x88000000000000ull, PM_ISU1, 0 }, 191 { 0x20080000000000ul, 0x88000000000000ul, PM_ISU1, 0 },
190 [PM_IFU] = { 0x02200000000000ull, 0x08820000000000ull, PM_IFU, 41 }, 192 [PM_IFU] = { 0x02200000000000ul, 0x08820000000000ul, PM_IFU, 41 },
191 [PM_IFU_ALT] = 193 [PM_IFU_ALT] =
192 { 0x02200000000000ull, 0x08820000000000ull, PM_IFU, 41 }, 194 { 0x02200000000000ul, 0x08820000000000ul, PM_IFU, 41 },
193 [PM_IDU0] = { 0x10100000000000ull, 0x80840000000000ull, PM_IDU0, 1 }, 195 [PM_IDU0] = { 0x10100000000000ul, 0x80840000000000ul, PM_IDU0, 1 },
194 [PM_ISU2] = { 0x10140000000000ull, 0x80840000000000ull, PM_ISU2, 0 }, 196 [PM_ISU2] = { 0x10140000000000ul, 0x80840000000000ul, PM_ISU2, 0 },
195 [PM_LSU0] = { 0x01400000000000ull, 0x08800000000000ull, PM_LSU0, 0 }, 197 [PM_LSU0] = { 0x01400000000000ul, 0x08800000000000ul, PM_LSU0, 0 },
196 [PM_LSU1] = { 0x00000000000000ull, 0x00010000000000ull, PM_LSU1, 40 }, 198 [PM_LSU1] = { 0x00000000000000ul, 0x00010000000000ul, PM_LSU1, 40 },
197 [PM_GPS] = { 0x00000000000000ull, 0x00000000000000ull, PM_GPS, 0 } 199 [PM_GPS] = { 0x00000000000000ul, 0x00000000000000ul, PM_GPS, 0 }
198}; 200};
199 201
200static unsigned char direct_marked_event[8] = { 202static unsigned char direct_marked_event[8] = {
@@ -249,10 +251,11 @@ static int p4_marked_instr_event(u64 event)
249 return (mask >> (byte * 8 + bit)) & 1; 251 return (mask >> (byte * 8 + bit)) & 1;
250} 252}
251 253
252static int p4_get_constraint(u64 event, u64 *maskp, u64 *valp) 254static int p4_get_constraint(u64 event, unsigned long *maskp,
255 unsigned long *valp)
253{ 256{
254 int pmc, byte, unit, lower, sh; 257 int pmc, byte, unit, lower, sh;
255 u64 mask = 0, value = 0; 258 unsigned long mask = 0, value = 0;
256 int grp = -1; 259 int grp = -1;
257 260
258 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; 261 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
@@ -282,14 +285,14 @@ static int p4_get_constraint(u64 event, u64 *maskp, u64 *valp)
282 value |= p4_unitinfo[unit].value; 285 value |= p4_unitinfo[unit].value;
283 sh = p4_unitinfo[unit].lowerbit; 286 sh = p4_unitinfo[unit].lowerbit;
284 if (sh > 1) 287 if (sh > 1)
285 value |= (u64)lower << sh; 288 value |= (unsigned long)lower << sh;
286 else if (lower != sh) 289 else if (lower != sh)
287 return -1; 290 return -1;
288 unit = p4_unitinfo[unit].unit; 291 unit = p4_unitinfo[unit].unit;
289 292
290 /* Set byte lane select field */ 293 /* Set byte lane select field */
291 mask |= 0xfULL << (28 - 4 * byte); 294 mask |= 0xfULL << (28 - 4 * byte);
292 value |= (u64)unit << (28 - 4 * byte); 295 value |= (unsigned long)unit << (28 - 4 * byte);
293 } 296 }
294 if (grp == 0) { 297 if (grp == 0) {
295 /* increment PMC1/2/5/6 field */ 298 /* increment PMC1/2/5/6 field */
@@ -353,9 +356,9 @@ static int p4_get_alternatives(u64 event, unsigned int flags, u64 alt[])
353} 356}
354 357
355static int p4_compute_mmcr(u64 event[], int n_ev, 358static int p4_compute_mmcr(u64 event[], int n_ev,
356 unsigned int hwc[], u64 mmcr[]) 359 unsigned int hwc[], unsigned long mmcr[])
357{ 360{
358 u64 mmcr0 = 0, mmcr1 = 0, mmcra = 0; 361 unsigned long mmcr0 = 0, mmcr1 = 0, mmcra = 0;
359 unsigned int pmc, unit, byte, psel, lower; 362 unsigned int pmc, unit, byte, psel, lower;
360 unsigned int ttm, grp; 363 unsigned int ttm, grp;
361 unsigned int pmc_inuse = 0; 364 unsigned int pmc_inuse = 0;
@@ -429,9 +432,11 @@ static int p4_compute_mmcr(u64 event[], int n_ev,
429 return -1; 432 return -1;
430 433
431 /* Set TTMxSEL fields. Note, units 1-3 => TTM0SEL codes 0-2 */ 434 /* Set TTMxSEL fields. Note, units 1-3 => TTM0SEL codes 0-2 */
432 mmcr1 |= (u64)(unituse[3] * 2 + unituse[2]) << MMCR1_TTM0SEL_SH; 435 mmcr1 |= (unsigned long)(unituse[3] * 2 + unituse[2])
433 mmcr1 |= (u64)(unituse[7] * 3 + unituse[6] * 2) << MMCR1_TTM1SEL_SH; 436 << MMCR1_TTM0SEL_SH;
434 mmcr1 |= (u64)unituse[9] << MMCR1_TTM2SEL_SH; 437 mmcr1 |= (unsigned long)(unituse[7] * 3 + unituse[6] * 2)
438 << MMCR1_TTM1SEL_SH;
439 mmcr1 |= (unsigned long)unituse[9] << MMCR1_TTM2SEL_SH;
435 440
436 /* Set TTCxSEL fields. */ 441 /* Set TTCxSEL fields. */
437 if (unitlower & 0xe) 442 if (unitlower & 0xe)
@@ -456,7 +461,8 @@ static int p4_compute_mmcr(u64 event[], int n_ev,
456 ttm = unit - 1; /* 2->1, 3->2 */ 461 ttm = unit - 1; /* 2->1, 3->2 */
457 else 462 else
458 ttm = unit >> 2; 463 ttm = unit >> 2;
459 mmcr1 |= (u64)ttm << (MMCR1_TD_CP_DBG0SEL_SH - 2*byte); 464 mmcr1 |= (unsigned long)ttm
465 << (MMCR1_TD_CP_DBG0SEL_SH - 2 * byte);
460 } 466 }
461 } 467 }
462 468
@@ -519,7 +525,7 @@ static int p4_compute_mmcr(u64 event[], int n_ev,
519 return 0; 525 return 0;
520} 526}
521 527
522static void p4_disable_pmc(unsigned int pmc, u64 mmcr[]) 528static void p4_disable_pmc(unsigned int pmc, unsigned long mmcr[])
523{ 529{
524 /* 530 /*
525 * Setting the PMCxSEL field to 0 disables PMC x. 531 * Setting the PMCxSEL field to 0 disables PMC x.
@@ -583,16 +589,27 @@ static int power4_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
583 }, 589 },
584}; 590};
585 591
586struct power_pmu power4_pmu = { 592static struct power_pmu power4_pmu = {
587 .n_counter = 8, 593 .name = "POWER4/4+",
588 .max_alternatives = 5, 594 .n_counter = 8,
589 .add_fields = 0x0000001100005555ull, 595 .max_alternatives = 5,
590 .test_adder = 0x0011083300000000ull, 596 .add_fields = 0x0000001100005555ul,
591 .compute_mmcr = p4_compute_mmcr, 597 .test_adder = 0x0011083300000000ul,
592 .get_constraint = p4_get_constraint, 598 .compute_mmcr = p4_compute_mmcr,
593 .get_alternatives = p4_get_alternatives, 599 .get_constraint = p4_get_constraint,
594 .disable_pmc = p4_disable_pmc, 600 .get_alternatives = p4_get_alternatives,
595 .n_generic = ARRAY_SIZE(p4_generic_events), 601 .disable_pmc = p4_disable_pmc,
596 .generic_events = p4_generic_events, 602 .n_generic = ARRAY_SIZE(p4_generic_events),
597 .cache_events = &power4_cache_events, 603 .generic_events = p4_generic_events,
604 .cache_events = &power4_cache_events,
598}; 605};
606
607static int init_power4_pmu(void)
608{
609 if (strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power4"))
610 return -ENODEV;
611
612 return register_power_pmu(&power4_pmu);
613}
614
615arch_initcall(init_power4_pmu);
diff --git a/arch/powerpc/kernel/power5+-pmu.c b/arch/powerpc/kernel/power5+-pmu.c
index 41e5d2d958d..f4adca8e98a 100644
--- a/arch/powerpc/kernel/power5+-pmu.c
+++ b/arch/powerpc/kernel/power5+-pmu.c
@@ -10,7 +10,9 @@
10 */ 10 */
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/perf_counter.h> 12#include <linux/perf_counter.h>
13#include <linux/string.h>
13#include <asm/reg.h> 14#include <asm/reg.h>
15#include <asm/cputable.h>
14 16
15/* 17/*
16 * Bits in event code for POWER5+ (POWER5 GS) and POWER5++ (POWER5 GS DD3) 18 * Bits in event code for POWER5+ (POWER5 GS) and POWER5++ (POWER5 GS DD3)
@@ -126,20 +128,21 @@ static const int grsel_shift[8] = {
126}; 128};
127 129
128/* Masks and values for using events from the various units */ 130/* Masks and values for using events from the various units */
129static u64 unit_cons[PM_LASTUNIT+1][2] = { 131static unsigned long unit_cons[PM_LASTUNIT+1][2] = {
130 [PM_FPU] = { 0x3200000000ull, 0x0100000000ull }, 132 [PM_FPU] = { 0x3200000000ul, 0x0100000000ul },
131 [PM_ISU0] = { 0x0200000000ull, 0x0080000000ull }, 133 [PM_ISU0] = { 0x0200000000ul, 0x0080000000ul },
132 [PM_ISU1] = { 0x3200000000ull, 0x3100000000ull }, 134 [PM_ISU1] = { 0x3200000000ul, 0x3100000000ul },
133 [PM_IFU] = { 0x3200000000ull, 0x2100000000ull }, 135 [PM_IFU] = { 0x3200000000ul, 0x2100000000ul },
134 [PM_IDU] = { 0x0e00000000ull, 0x0040000000ull }, 136 [PM_IDU] = { 0x0e00000000ul, 0x0040000000ul },
135 [PM_GRS] = { 0x0e00000000ull, 0x0c40000000ull }, 137 [PM_GRS] = { 0x0e00000000ul, 0x0c40000000ul },
136}; 138};
137 139
138static int power5p_get_constraint(u64 event, u64 *maskp, u64 *valp) 140static int power5p_get_constraint(u64 event, unsigned long *maskp,
141 unsigned long *valp)
139{ 142{
140 int pmc, byte, unit, sh; 143 int pmc, byte, unit, sh;
141 int bit, fmask; 144 int bit, fmask;
142 u64 mask = 0, value = 0; 145 unsigned long mask = 0, value = 0;
143 146
144 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; 147 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
145 if (pmc) { 148 if (pmc) {
@@ -171,17 +174,18 @@ static int power5p_get_constraint(u64 event, u64 *maskp, u64 *valp)
171 bit = event & 7; 174 bit = event & 7;
172 fmask = (bit == 6)? 7: 3; 175 fmask = (bit == 6)? 7: 3;
173 sh = grsel_shift[bit]; 176 sh = grsel_shift[bit];
174 mask |= (u64)fmask << sh; 177 mask |= (unsigned long)fmask << sh;
175 value |= (u64)((event >> PM_GRS_SH) & fmask) << sh; 178 value |= (unsigned long)((event >> PM_GRS_SH) & fmask)
179 << sh;
176 } 180 }
177 /* Set byte lane select field */ 181 /* Set byte lane select field */
178 mask |= 0xfULL << (24 - 4 * byte); 182 mask |= 0xfUL << (24 - 4 * byte);
179 value |= (u64)unit << (24 - 4 * byte); 183 value |= (unsigned long)unit << (24 - 4 * byte);
180 } 184 }
181 if (pmc < 5) { 185 if (pmc < 5) {
182 /* need a counter from PMC1-4 set */ 186 /* need a counter from PMC1-4 set */
183 mask |= 0x8000000000000ull; 187 mask |= 0x8000000000000ul;
184 value |= 0x1000000000000ull; 188 value |= 0x1000000000000ul;
185 } 189 }
186 *maskp = mask; 190 *maskp = mask;
187 *valp = value; 191 *valp = value;
@@ -452,10 +456,10 @@ static int power5p_marked_instr_event(u64 event)
452} 456}
453 457
454static int power5p_compute_mmcr(u64 event[], int n_ev, 458static int power5p_compute_mmcr(u64 event[], int n_ev,
455 unsigned int hwc[], u64 mmcr[]) 459 unsigned int hwc[], unsigned long mmcr[])
456{ 460{
457 u64 mmcr1 = 0; 461 unsigned long mmcr1 = 0;
458 u64 mmcra = 0; 462 unsigned long mmcra = 0;
459 unsigned int pmc, unit, byte, psel; 463 unsigned int pmc, unit, byte, psel;
460 unsigned int ttm; 464 unsigned int ttm;
461 int i, isbus, bit, grsel; 465 int i, isbus, bit, grsel;
@@ -517,7 +521,7 @@ static int power5p_compute_mmcr(u64 event[], int n_ev,
517 continue; 521 continue;
518 if (ttmuse++) 522 if (ttmuse++)
519 return -1; 523 return -1;
520 mmcr1 |= (u64)i << MMCR1_TTM0SEL_SH; 524 mmcr1 |= (unsigned long)i << MMCR1_TTM0SEL_SH;
521 } 525 }
522 ttmuse = 0; 526 ttmuse = 0;
523 for (; i <= PM_GRS; ++i) { 527 for (; i <= PM_GRS; ++i) {
@@ -525,7 +529,7 @@ static int power5p_compute_mmcr(u64 event[], int n_ev,
525 continue; 529 continue;
526 if (ttmuse++) 530 if (ttmuse++)
527 return -1; 531 return -1;
528 mmcr1 |= (u64)(i & 3) << MMCR1_TTM1SEL_SH; 532 mmcr1 |= (unsigned long)(i & 3) << MMCR1_TTM1SEL_SH;
529 } 533 }
530 if (ttmuse > 1) 534 if (ttmuse > 1)
531 return -1; 535 return -1;
@@ -540,10 +544,11 @@ static int power5p_compute_mmcr(u64 event[], int n_ev,
540 unit = PM_ISU0_ALT; 544 unit = PM_ISU0_ALT;
541 } else if (unit == PM_LSU1 + 1) { 545 } else if (unit == PM_LSU1 + 1) {
542 /* select lower word of LSU1 for this byte */ 546 /* select lower word of LSU1 for this byte */
543 mmcr1 |= 1ull << (MMCR1_TTM3SEL_SH + 3 - byte); 547 mmcr1 |= 1ul << (MMCR1_TTM3SEL_SH + 3 - byte);
544 } 548 }
545 ttm = unit >> 2; 549 ttm = unit >> 2;
546 mmcr1 |= (u64)ttm << (MMCR1_TD_CP_DBG0SEL_SH - 2 * byte); 550 mmcr1 |= (unsigned long)ttm
551 << (MMCR1_TD_CP_DBG0SEL_SH - 2 * byte);
547 } 552 }
548 553
549 /* Second pass: assign PMCs, set PMCxSEL and PMCx_ADDER_SEL fields */ 554 /* Second pass: assign PMCs, set PMCxSEL and PMCx_ADDER_SEL fields */
@@ -568,7 +573,7 @@ static int power5p_compute_mmcr(u64 event[], int n_ev,
568 if (isbus && (byte & 2) && 573 if (isbus && (byte & 2) &&
569 (psel == 8 || psel == 0x10 || psel == 0x28)) 574 (psel == 8 || psel == 0x10 || psel == 0x28))
570 /* add events on higher-numbered bus */ 575 /* add events on higher-numbered bus */
571 mmcr1 |= 1ull << (MMCR1_PMC1_ADDER_SEL_SH - pmc); 576 mmcr1 |= 1ul << (MMCR1_PMC1_ADDER_SEL_SH - pmc);
572 } else { 577 } else {
573 /* Instructions or run cycles on PMC5/6 */ 578 /* Instructions or run cycles on PMC5/6 */
574 --pmc; 579 --pmc;
@@ -576,7 +581,7 @@ static int power5p_compute_mmcr(u64 event[], int n_ev,
576 if (isbus && unit == PM_GRS) { 581 if (isbus && unit == PM_GRS) {
577 bit = psel & 7; 582 bit = psel & 7;
578 grsel = (event[i] >> PM_GRS_SH) & PM_GRS_MSK; 583 grsel = (event[i] >> PM_GRS_SH) & PM_GRS_MSK;
579 mmcr1 |= (u64)grsel << grsel_shift[bit]; 584 mmcr1 |= (unsigned long)grsel << grsel_shift[bit];
580 } 585 }
581 if (power5p_marked_instr_event(event[i])) 586 if (power5p_marked_instr_event(event[i]))
582 mmcra |= MMCRA_SAMPLE_ENABLE; 587 mmcra |= MMCRA_SAMPLE_ENABLE;
@@ -599,7 +604,7 @@ static int power5p_compute_mmcr(u64 event[], int n_ev,
599 return 0; 604 return 0;
600} 605}
601 606
602static void power5p_disable_pmc(unsigned int pmc, u64 mmcr[]) 607static void power5p_disable_pmc(unsigned int pmc, unsigned long mmcr[])
603{ 608{
604 if (pmc <= 3) 609 if (pmc <= 3)
605 mmcr[1] &= ~(0x7fUL << MMCR1_PMCSEL_SH(pmc)); 610 mmcr[1] &= ~(0x7fUL << MMCR1_PMCSEL_SH(pmc));
@@ -654,18 +659,30 @@ static int power5p_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
654 }, 659 },
655}; 660};
656 661
657struct power_pmu power5p_pmu = { 662static struct power_pmu power5p_pmu = {
658 .n_counter = 6, 663 .name = "POWER5+/++",
659 .max_alternatives = MAX_ALT, 664 .n_counter = 6,
660 .add_fields = 0x7000000000055ull, 665 .max_alternatives = MAX_ALT,
661 .test_adder = 0x3000040000000ull, 666 .add_fields = 0x7000000000055ul,
662 .compute_mmcr = power5p_compute_mmcr, 667 .test_adder = 0x3000040000000ul,
663 .get_constraint = power5p_get_constraint, 668 .compute_mmcr = power5p_compute_mmcr,
664 .get_alternatives = power5p_get_alternatives, 669 .get_constraint = power5p_get_constraint,
665 .disable_pmc = power5p_disable_pmc, 670 .get_alternatives = power5p_get_alternatives,
666 .limited_pmc_event = power5p_limited_pmc_event, 671 .disable_pmc = power5p_disable_pmc,
667 .flags = PPMU_LIMITED_PMC5_6, 672 .limited_pmc_event = power5p_limited_pmc_event,
668 .n_generic = ARRAY_SIZE(power5p_generic_events), 673 .flags = PPMU_LIMITED_PMC5_6,
669 .generic_events = power5p_generic_events, 674 .n_generic = ARRAY_SIZE(power5p_generic_events),
670 .cache_events = &power5p_cache_events, 675 .generic_events = power5p_generic_events,
676 .cache_events = &power5p_cache_events,
671}; 677};
678
679static int init_power5p_pmu(void)
680{
681 if (strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power5+")
682 && strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power5++"))
683 return -ENODEV;
684
685 return register_power_pmu(&power5p_pmu);
686}
687
688arch_initcall(init_power5p_pmu);
diff --git a/arch/powerpc/kernel/power5-pmu.c b/arch/powerpc/kernel/power5-pmu.c
index 05600b66221..29b2c6c0e83 100644
--- a/arch/powerpc/kernel/power5-pmu.c
+++ b/arch/powerpc/kernel/power5-pmu.c
@@ -10,7 +10,9 @@
10 */ 10 */
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/perf_counter.h> 12#include <linux/perf_counter.h>
13#include <linux/string.h>
13#include <asm/reg.h> 14#include <asm/reg.h>
15#include <asm/cputable.h>
14 16
15/* 17/*
16 * Bits in event code for POWER5 (not POWER5++) 18 * Bits in event code for POWER5 (not POWER5++)
@@ -130,20 +132,21 @@ static const int grsel_shift[8] = {
130}; 132};
131 133
132/* Masks and values for using events from the various units */ 134/* Masks and values for using events from the various units */
133static u64 unit_cons[PM_LASTUNIT+1][2] = { 135static unsigned long unit_cons[PM_LASTUNIT+1][2] = {
134 [PM_FPU] = { 0xc0002000000000ull, 0x00001000000000ull }, 136 [PM_FPU] = { 0xc0002000000000ul, 0x00001000000000ul },
135 [PM_ISU0] = { 0x00002000000000ull, 0x00000800000000ull }, 137 [PM_ISU0] = { 0x00002000000000ul, 0x00000800000000ul },
136 [PM_ISU1] = { 0xc0002000000000ull, 0xc0001000000000ull }, 138 [PM_ISU1] = { 0xc0002000000000ul, 0xc0001000000000ul },
137 [PM_IFU] = { 0xc0002000000000ull, 0x80001000000000ull }, 139 [PM_IFU] = { 0xc0002000000000ul, 0x80001000000000ul },
138 [PM_IDU] = { 0x30002000000000ull, 0x00000400000000ull }, 140 [PM_IDU] = { 0x30002000000000ul, 0x00000400000000ul },
139 [PM_GRS] = { 0x30002000000000ull, 0x30000400000000ull }, 141 [PM_GRS] = { 0x30002000000000ul, 0x30000400000000ul },
140}; 142};
141 143
142static int power5_get_constraint(u64 event, u64 *maskp, u64 *valp) 144static int power5_get_constraint(u64 event, unsigned long *maskp,
145 unsigned long *valp)
143{ 146{
144 int pmc, byte, unit, sh; 147 int pmc, byte, unit, sh;
145 int bit, fmask; 148 int bit, fmask;
146 u64 mask = 0, value = 0; 149 unsigned long mask = 0, value = 0;
147 int grp = -1; 150 int grp = -1;
148 151
149 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; 152 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
@@ -178,8 +181,9 @@ static int power5_get_constraint(u64 event, u64 *maskp, u64 *valp)
178 bit = event & 7; 181 bit = event & 7;
179 fmask = (bit == 6)? 7: 3; 182 fmask = (bit == 6)? 7: 3;
180 sh = grsel_shift[bit]; 183 sh = grsel_shift[bit];
181 mask |= (u64)fmask << sh; 184 mask |= (unsigned long)fmask << sh;
182 value |= (u64)((event >> PM_GRS_SH) & fmask) << sh; 185 value |= (unsigned long)((event >> PM_GRS_SH) & fmask)
186 << sh;
183 } 187 }
184 /* 188 /*
185 * Bus events on bytes 0 and 2 can be counted 189 * Bus events on bytes 0 and 2 can be counted
@@ -188,22 +192,22 @@ static int power5_get_constraint(u64 event, u64 *maskp, u64 *valp)
188 if (!pmc) 192 if (!pmc)
189 grp = byte & 1; 193 grp = byte & 1;
190 /* Set byte lane select field */ 194 /* Set byte lane select field */
191 mask |= 0xfULL << (24 - 4 * byte); 195 mask |= 0xfUL << (24 - 4 * byte);
192 value |= (u64)unit << (24 - 4 * byte); 196 value |= (unsigned long)unit << (24 - 4 * byte);
193 } 197 }
194 if (grp == 0) { 198 if (grp == 0) {
195 /* increment PMC1/2 field */ 199 /* increment PMC1/2 field */
196 mask |= 0x200000000ull; 200 mask |= 0x200000000ul;
197 value |= 0x080000000ull; 201 value |= 0x080000000ul;
198 } else if (grp == 1) { 202 } else if (grp == 1) {
199 /* increment PMC3/4 field */ 203 /* increment PMC3/4 field */
200 mask |= 0x40000000ull; 204 mask |= 0x40000000ul;
201 value |= 0x10000000ull; 205 value |= 0x10000000ul;
202 } 206 }
203 if (pmc < 5) { 207 if (pmc < 5) {
204 /* need a counter from PMC1-4 set */ 208 /* need a counter from PMC1-4 set */
205 mask |= 0x8000000000000ull; 209 mask |= 0x8000000000000ul;
206 value |= 0x1000000000000ull; 210 value |= 0x1000000000000ul;
207 } 211 }
208 *maskp = mask; 212 *maskp = mask;
209 *valp = value; 213 *valp = value;
@@ -383,10 +387,10 @@ static int power5_marked_instr_event(u64 event)
383} 387}
384 388
385static int power5_compute_mmcr(u64 event[], int n_ev, 389static int power5_compute_mmcr(u64 event[], int n_ev,
386 unsigned int hwc[], u64 mmcr[]) 390 unsigned int hwc[], unsigned long mmcr[])
387{ 391{
388 u64 mmcr1 = 0; 392 unsigned long mmcr1 = 0;
389 u64 mmcra = 0; 393 unsigned long mmcra = 0;
390 unsigned int pmc, unit, byte, psel; 394 unsigned int pmc, unit, byte, psel;
391 unsigned int ttm, grp; 395 unsigned int ttm, grp;
392 int i, isbus, bit, grsel; 396 int i, isbus, bit, grsel;
@@ -457,7 +461,7 @@ static int power5_compute_mmcr(u64 event[], int n_ev,
457 continue; 461 continue;
458 if (ttmuse++) 462 if (ttmuse++)
459 return -1; 463 return -1;
460 mmcr1 |= (u64)i << MMCR1_TTM0SEL_SH; 464 mmcr1 |= (unsigned long)i << MMCR1_TTM0SEL_SH;
461 } 465 }
462 ttmuse = 0; 466 ttmuse = 0;
463 for (; i <= PM_GRS; ++i) { 467 for (; i <= PM_GRS; ++i) {
@@ -465,7 +469,7 @@ static int power5_compute_mmcr(u64 event[], int n_ev,
465 continue; 469 continue;
466 if (ttmuse++) 470 if (ttmuse++)
467 return -1; 471 return -1;
468 mmcr1 |= (u64)(i & 3) << MMCR1_TTM1SEL_SH; 472 mmcr1 |= (unsigned long)(i & 3) << MMCR1_TTM1SEL_SH;
469 } 473 }
470 if (ttmuse > 1) 474 if (ttmuse > 1)
471 return -1; 475 return -1;
@@ -480,10 +484,11 @@ static int power5_compute_mmcr(u64 event[], int n_ev,
480 unit = PM_ISU0_ALT; 484 unit = PM_ISU0_ALT;
481 } else if (unit == PM_LSU1 + 1) { 485 } else if (unit == PM_LSU1 + 1) {
482 /* select lower word of LSU1 for this byte */ 486 /* select lower word of LSU1 for this byte */
483 mmcr1 |= 1ull << (MMCR1_TTM3SEL_SH + 3 - byte); 487 mmcr1 |= 1ul << (MMCR1_TTM3SEL_SH + 3 - byte);
484 } 488 }
485 ttm = unit >> 2; 489 ttm = unit >> 2;
486 mmcr1 |= (u64)ttm << (MMCR1_TD_CP_DBG0SEL_SH - 2 * byte); 490 mmcr1 |= (unsigned long)ttm
491 << (MMCR1_TD_CP_DBG0SEL_SH - 2 * byte);
487 } 492 }
488 493
489 /* Second pass: assign PMCs, set PMCxSEL and PMCx_ADDER_SEL fields */ 494 /* Second pass: assign PMCs, set PMCxSEL and PMCx_ADDER_SEL fields */
@@ -513,7 +518,7 @@ static int power5_compute_mmcr(u64 event[], int n_ev,
513 --pmc; 518 --pmc;
514 if ((psel == 8 || psel == 0x10) && isbus && (byte & 2)) 519 if ((psel == 8 || psel == 0x10) && isbus && (byte & 2))
515 /* add events on higher-numbered bus */ 520 /* add events on higher-numbered bus */
516 mmcr1 |= 1ull << (MMCR1_PMC1_ADDER_SEL_SH - pmc); 521 mmcr1 |= 1ul << (MMCR1_PMC1_ADDER_SEL_SH - pmc);
517 } else { 522 } else {
518 /* Instructions or run cycles on PMC5/6 */ 523 /* Instructions or run cycles on PMC5/6 */
519 --pmc; 524 --pmc;
@@ -521,7 +526,7 @@ static int power5_compute_mmcr(u64 event[], int n_ev,
521 if (isbus && unit == PM_GRS) { 526 if (isbus && unit == PM_GRS) {
522 bit = psel & 7; 527 bit = psel & 7;
523 grsel = (event[i] >> PM_GRS_SH) & PM_GRS_MSK; 528 grsel = (event[i] >> PM_GRS_SH) & PM_GRS_MSK;
524 mmcr1 |= (u64)grsel << grsel_shift[bit]; 529 mmcr1 |= (unsigned long)grsel << grsel_shift[bit];
525 } 530 }
526 if (power5_marked_instr_event(event[i])) 531 if (power5_marked_instr_event(event[i]))
527 mmcra |= MMCRA_SAMPLE_ENABLE; 532 mmcra |= MMCRA_SAMPLE_ENABLE;
@@ -541,7 +546,7 @@ static int power5_compute_mmcr(u64 event[], int n_ev,
541 return 0; 546 return 0;
542} 547}
543 548
544static void power5_disable_pmc(unsigned int pmc, u64 mmcr[]) 549static void power5_disable_pmc(unsigned int pmc, unsigned long mmcr[])
545{ 550{
546 if (pmc <= 3) 551 if (pmc <= 3)
547 mmcr[1] &= ~(0x7fUL << MMCR1_PMCSEL_SH(pmc)); 552 mmcr[1] &= ~(0x7fUL << MMCR1_PMCSEL_SH(pmc));
@@ -596,16 +601,27 @@ static int power5_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
596 }, 601 },
597}; 602};
598 603
599struct power_pmu power5_pmu = { 604static struct power_pmu power5_pmu = {
600 .n_counter = 6, 605 .name = "POWER5",
601 .max_alternatives = MAX_ALT, 606 .n_counter = 6,
602 .add_fields = 0x7000090000555ull, 607 .max_alternatives = MAX_ALT,
603 .test_adder = 0x3000490000000ull, 608 .add_fields = 0x7000090000555ul,
604 .compute_mmcr = power5_compute_mmcr, 609 .test_adder = 0x3000490000000ul,
605 .get_constraint = power5_get_constraint, 610 .compute_mmcr = power5_compute_mmcr,
606 .get_alternatives = power5_get_alternatives, 611 .get_constraint = power5_get_constraint,
607 .disable_pmc = power5_disable_pmc, 612 .get_alternatives = power5_get_alternatives,
608 .n_generic = ARRAY_SIZE(power5_generic_events), 613 .disable_pmc = power5_disable_pmc,
609 .generic_events = power5_generic_events, 614 .n_generic = ARRAY_SIZE(power5_generic_events),
610 .cache_events = &power5_cache_events, 615 .generic_events = power5_generic_events,
616 .cache_events = &power5_cache_events,
611}; 617};
618
619static int init_power5_pmu(void)
620{
621 if (strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power5"))
622 return -ENODEV;
623
624 return register_power_pmu(&power5_pmu);
625}
626
627arch_initcall(init_power5_pmu);
diff --git a/arch/powerpc/kernel/power6-pmu.c b/arch/powerpc/kernel/power6-pmu.c
index 46f74bebcfd..09ae5bf5bda 100644
--- a/arch/powerpc/kernel/power6-pmu.c
+++ b/arch/powerpc/kernel/power6-pmu.c
@@ -10,7 +10,9 @@
10 */ 10 */
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/perf_counter.h> 12#include <linux/perf_counter.h>
13#include <linux/string.h>
13#include <asm/reg.h> 14#include <asm/reg.h>
15#include <asm/cputable.h>
14 16
15/* 17/*
16 * Bits in event code for POWER6 18 * Bits in event code for POWER6
@@ -41,9 +43,9 @@
41#define MMCR1_NESTSEL_SH 45 43#define MMCR1_NESTSEL_SH 45
42#define MMCR1_NESTSEL_MSK 0x7 44#define MMCR1_NESTSEL_MSK 0x7
43#define MMCR1_NESTSEL(m) (((m) >> MMCR1_NESTSEL_SH) & MMCR1_NESTSEL_MSK) 45#define MMCR1_NESTSEL(m) (((m) >> MMCR1_NESTSEL_SH) & MMCR1_NESTSEL_MSK)
44#define MMCR1_PMC1_LLA ((u64)1 << 44) 46#define MMCR1_PMC1_LLA (1ul << 44)
45#define MMCR1_PMC1_LLA_VALUE ((u64)1 << 39) 47#define MMCR1_PMC1_LLA_VALUE (1ul << 39)
46#define MMCR1_PMC1_ADDR_SEL ((u64)1 << 35) 48#define MMCR1_PMC1_ADDR_SEL (1ul << 35)
47#define MMCR1_PMC1SEL_SH 24 49#define MMCR1_PMC1SEL_SH 24
48#define MMCR1_PMCSEL_SH(n) (MMCR1_PMC1SEL_SH - (n) * 8) 50#define MMCR1_PMCSEL_SH(n) (MMCR1_PMC1SEL_SH - (n) * 8)
49#define MMCR1_PMCSEL_MSK 0xff 51#define MMCR1_PMCSEL_MSK 0xff
@@ -173,10 +175,10 @@ static int power6_marked_instr_event(u64 event)
173 * Assign PMC numbers and compute MMCR1 value for a set of events 175 * Assign PMC numbers and compute MMCR1 value for a set of events
174 */ 176 */
175static int p6_compute_mmcr(u64 event[], int n_ev, 177static int p6_compute_mmcr(u64 event[], int n_ev,
176 unsigned int hwc[], u64 mmcr[]) 178 unsigned int hwc[], unsigned long mmcr[])
177{ 179{
178 u64 mmcr1 = 0; 180 unsigned long mmcr1 = 0;
179 u64 mmcra = 0; 181 unsigned long mmcra = 0;
180 int i; 182 int i;
181 unsigned int pmc, ev, b, u, s, psel; 183 unsigned int pmc, ev, b, u, s, psel;
182 unsigned int ttmset = 0; 184 unsigned int ttmset = 0;
@@ -215,7 +217,7 @@ static int p6_compute_mmcr(u64 event[], int n_ev,
215 /* check for conflict on this byte of event bus */ 217 /* check for conflict on this byte of event bus */
216 if ((ttmset & (1 << b)) && MMCR1_TTMSEL(mmcr1, b) != u) 218 if ((ttmset & (1 << b)) && MMCR1_TTMSEL(mmcr1, b) != u)
217 return -1; 219 return -1;
218 mmcr1 |= (u64)u << MMCR1_TTMSEL_SH(b); 220 mmcr1 |= (unsigned long)u << MMCR1_TTMSEL_SH(b);
219 ttmset |= 1 << b; 221 ttmset |= 1 << b;
220 if (u == 5) { 222 if (u == 5) {
221 /* Nest events have a further mux */ 223 /* Nest events have a further mux */
@@ -224,7 +226,7 @@ static int p6_compute_mmcr(u64 event[], int n_ev,
224 MMCR1_NESTSEL(mmcr1) != s) 226 MMCR1_NESTSEL(mmcr1) != s)
225 return -1; 227 return -1;
226 ttmset |= 0x10; 228 ttmset |= 0x10;
227 mmcr1 |= (u64)s << MMCR1_NESTSEL_SH; 229 mmcr1 |= (unsigned long)s << MMCR1_NESTSEL_SH;
228 } 230 }
229 if (0x30 <= psel && psel <= 0x3d) { 231 if (0x30 <= psel && psel <= 0x3d) {
230 /* these need the PMCx_ADDR_SEL bits */ 232 /* these need the PMCx_ADDR_SEL bits */
@@ -243,7 +245,7 @@ static int p6_compute_mmcr(u64 event[], int n_ev,
243 if (power6_marked_instr_event(event[i])) 245 if (power6_marked_instr_event(event[i]))
244 mmcra |= MMCRA_SAMPLE_ENABLE; 246 mmcra |= MMCRA_SAMPLE_ENABLE;
245 if (pmc < 4) 247 if (pmc < 4)
246 mmcr1 |= (u64)psel << MMCR1_PMCSEL_SH(pmc); 248 mmcr1 |= (unsigned long)psel << MMCR1_PMCSEL_SH(pmc);
247 } 249 }
248 mmcr[0] = 0; 250 mmcr[0] = 0;
249 if (pmc_inuse & 1) 251 if (pmc_inuse & 1)
@@ -265,10 +267,11 @@ static int p6_compute_mmcr(u64 event[], int n_ev,
265 * 20-23, 24-27, 28-31 ditto for bytes 1, 2, 3 267 * 20-23, 24-27, 28-31 ditto for bytes 1, 2, 3
266 * 32-34 select field: nest (subunit) event selector 268 * 32-34 select field: nest (subunit) event selector
267 */ 269 */
268static int p6_get_constraint(u64 event, u64 *maskp, u64 *valp) 270static int p6_get_constraint(u64 event, unsigned long *maskp,
271 unsigned long *valp)
269{ 272{
270 int pmc, byte, sh, subunit; 273 int pmc, byte, sh, subunit;
271 u64 mask = 0, value = 0; 274 unsigned long mask = 0, value = 0;
272 275
273 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; 276 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
274 if (pmc) { 277 if (pmc) {
@@ -282,11 +285,11 @@ static int p6_get_constraint(u64 event, u64 *maskp, u64 *valp)
282 byte = (event >> PM_BYTE_SH) & PM_BYTE_MSK; 285 byte = (event >> PM_BYTE_SH) & PM_BYTE_MSK;
283 sh = byte * 4 + (16 - PM_UNIT_SH); 286 sh = byte * 4 + (16 - PM_UNIT_SH);
284 mask |= PM_UNIT_MSKS << sh; 287 mask |= PM_UNIT_MSKS << sh;
285 value |= (u64)(event & PM_UNIT_MSKS) << sh; 288 value |= (unsigned long)(event & PM_UNIT_MSKS) << sh;
286 if ((event & PM_UNIT_MSKS) == (5 << PM_UNIT_SH)) { 289 if ((event & PM_UNIT_MSKS) == (5 << PM_UNIT_SH)) {
287 subunit = (event >> PM_SUBUNIT_SH) & PM_SUBUNIT_MSK; 290 subunit = (event >> PM_SUBUNIT_SH) & PM_SUBUNIT_MSK;
288 mask |= (u64)PM_SUBUNIT_MSK << 32; 291 mask |= (unsigned long)PM_SUBUNIT_MSK << 32;
289 value |= (u64)subunit << 32; 292 value |= (unsigned long)subunit << 32;
290 } 293 }
291 } 294 }
292 if (pmc <= 4) { 295 if (pmc <= 4) {
@@ -458,7 +461,7 @@ static int p6_get_alternatives(u64 event, unsigned int flags, u64 alt[])
458 return nalt; 461 return nalt;
459} 462}
460 463
461static void p6_disable_pmc(unsigned int pmc, u64 mmcr[]) 464static void p6_disable_pmc(unsigned int pmc, unsigned long mmcr[])
462{ 465{
463 /* Set PMCxSEL to 0 to disable PMCx */ 466 /* Set PMCxSEL to 0 to disable PMCx */
464 if (pmc <= 3) 467 if (pmc <= 3)
@@ -515,18 +518,29 @@ static int power6_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
515 }, 518 },
516}; 519};
517 520
518struct power_pmu power6_pmu = { 521static struct power_pmu power6_pmu = {
519 .n_counter = 6, 522 .name = "POWER6",
520 .max_alternatives = MAX_ALT, 523 .n_counter = 6,
521 .add_fields = 0x1555, 524 .max_alternatives = MAX_ALT,
522 .test_adder = 0x3000, 525 .add_fields = 0x1555,
523 .compute_mmcr = p6_compute_mmcr, 526 .test_adder = 0x3000,
524 .get_constraint = p6_get_constraint, 527 .compute_mmcr = p6_compute_mmcr,
525 .get_alternatives = p6_get_alternatives, 528 .get_constraint = p6_get_constraint,
526 .disable_pmc = p6_disable_pmc, 529 .get_alternatives = p6_get_alternatives,
527 .limited_pmc_event = p6_limited_pmc_event, 530 .disable_pmc = p6_disable_pmc,
528 .flags = PPMU_LIMITED_PMC5_6 | PPMU_ALT_SIPR, 531 .limited_pmc_event = p6_limited_pmc_event,
529 .n_generic = ARRAY_SIZE(power6_generic_events), 532 .flags = PPMU_LIMITED_PMC5_6 | PPMU_ALT_SIPR,
530 .generic_events = power6_generic_events, 533 .n_generic = ARRAY_SIZE(power6_generic_events),
531 .cache_events = &power6_cache_events, 534 .generic_events = power6_generic_events,
535 .cache_events = &power6_cache_events,
532}; 536};
537
538static int init_power6_pmu(void)
539{
540 if (strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power6"))
541 return -ENODEV;
542
543 return register_power_pmu(&power6_pmu);
544}
545
546arch_initcall(init_power6_pmu);
diff --git a/arch/powerpc/kernel/power7-pmu.c b/arch/powerpc/kernel/power7-pmu.c
index b72e7a19d05..5d755ef7ac8 100644
--- a/arch/powerpc/kernel/power7-pmu.c
+++ b/arch/powerpc/kernel/power7-pmu.c
@@ -10,7 +10,9 @@
10 */ 10 */
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/perf_counter.h> 12#include <linux/perf_counter.h>
13#include <linux/string.h>
13#include <asm/reg.h> 14#include <asm/reg.h>
15#include <asm/cputable.h>
14 16
15/* 17/*
16 * Bits in event code for POWER7 18 * Bits in event code for POWER7
@@ -71,10 +73,11 @@
71 * 0-9: Count of events needing PMC1..PMC5 73 * 0-9: Count of events needing PMC1..PMC5
72 */ 74 */
73 75
74static int power7_get_constraint(u64 event, u64 *maskp, u64 *valp) 76static int power7_get_constraint(u64 event, unsigned long *maskp,
77 unsigned long *valp)
75{ 78{
76 int pmc, sh; 79 int pmc, sh;
77 u64 mask = 0, value = 0; 80 unsigned long mask = 0, value = 0;
78 81
79 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; 82 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
80 if (pmc) { 83 if (pmc) {
@@ -224,10 +227,10 @@ static int power7_marked_instr_event(u64 event)
224} 227}
225 228
226static int power7_compute_mmcr(u64 event[], int n_ev, 229static int power7_compute_mmcr(u64 event[], int n_ev,
227 unsigned int hwc[], u64 mmcr[]) 230 unsigned int hwc[], unsigned long mmcr[])
228{ 231{
229 u64 mmcr1 = 0; 232 unsigned long mmcr1 = 0;
230 u64 mmcra = 0; 233 unsigned long mmcra = 0;
231 unsigned int pmc, unit, combine, l2sel, psel; 234 unsigned int pmc, unit, combine, l2sel, psel;
232 unsigned int pmc_inuse = 0; 235 unsigned int pmc_inuse = 0;
233 int i; 236 int i;
@@ -265,11 +268,14 @@ static int power7_compute_mmcr(u64 event[], int n_ev,
265 --pmc; 268 --pmc;
266 } 269 }
267 if (pmc <= 3) { 270 if (pmc <= 3) {
268 mmcr1 |= (u64) unit << (MMCR1_TTM0SEL_SH - 4 * pmc); 271 mmcr1 |= (unsigned long) unit
269 mmcr1 |= (u64) combine << (MMCR1_PMC1_COMBINE_SH - pmc); 272 << (MMCR1_TTM0SEL_SH - 4 * pmc);
273 mmcr1 |= (unsigned long) combine
274 << (MMCR1_PMC1_COMBINE_SH - pmc);
270 mmcr1 |= psel << MMCR1_PMCSEL_SH(pmc); 275 mmcr1 |= psel << MMCR1_PMCSEL_SH(pmc);
271 if (unit == 6) /* L2 events */ 276 if (unit == 6) /* L2 events */
272 mmcr1 |= (u64) l2sel << MMCR1_L2SEL_SH; 277 mmcr1 |= (unsigned long) l2sel
278 << MMCR1_L2SEL_SH;
273 } 279 }
274 if (power7_marked_instr_event(event[i])) 280 if (power7_marked_instr_event(event[i]))
275 mmcra |= MMCRA_SAMPLE_ENABLE; 281 mmcra |= MMCRA_SAMPLE_ENABLE;
@@ -287,10 +293,10 @@ static int power7_compute_mmcr(u64 event[], int n_ev,
287 return 0; 293 return 0;
288} 294}
289 295
290static void power7_disable_pmc(unsigned int pmc, u64 mmcr[]) 296static void power7_disable_pmc(unsigned int pmc, unsigned long mmcr[])
291{ 297{
292 if (pmc <= 3) 298 if (pmc <= 3)
293 mmcr[1] &= ~(0xffULL << MMCR1_PMCSEL_SH(pmc)); 299 mmcr[1] &= ~(0xffUL << MMCR1_PMCSEL_SH(pmc));
294} 300}
295 301
296static int power7_generic_events[] = { 302static int power7_generic_events[] = {
@@ -342,16 +348,27 @@ static int power7_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
342 }, 348 },
343}; 349};
344 350
345struct power_pmu power7_pmu = { 351static struct power_pmu power7_pmu = {
346 .n_counter = 6, 352 .name = "POWER7",
347 .max_alternatives = MAX_ALT + 1, 353 .n_counter = 6,
348 .add_fields = 0x1555ull, 354 .max_alternatives = MAX_ALT + 1,
349 .test_adder = 0x3000ull, 355 .add_fields = 0x1555ul,
350 .compute_mmcr = power7_compute_mmcr, 356 .test_adder = 0x3000ul,
351 .get_constraint = power7_get_constraint, 357 .compute_mmcr = power7_compute_mmcr,
352 .get_alternatives = power7_get_alternatives, 358 .get_constraint = power7_get_constraint,
353 .disable_pmc = power7_disable_pmc, 359 .get_alternatives = power7_get_alternatives,
354 .n_generic = ARRAY_SIZE(power7_generic_events), 360 .disable_pmc = power7_disable_pmc,
355 .generic_events = power7_generic_events, 361 .n_generic = ARRAY_SIZE(power7_generic_events),
356 .cache_events = &power7_cache_events, 362 .generic_events = power7_generic_events,
363 .cache_events = &power7_cache_events,
357}; 364};
365
366static int init_power7_pmu(void)
367{
368 if (strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power7"))
369 return -ENODEV;
370
371 return register_power_pmu(&power7_pmu);
372}
373
374arch_initcall(init_power7_pmu);
diff --git a/arch/powerpc/kernel/ppc970-pmu.c b/arch/powerpc/kernel/ppc970-pmu.c
index ba0a357a89f..6637c87fe70 100644
--- a/arch/powerpc/kernel/ppc970-pmu.c
+++ b/arch/powerpc/kernel/ppc970-pmu.c
@@ -10,7 +10,9 @@
10 */ 10 */
11#include <linux/string.h> 11#include <linux/string.h>
12#include <linux/perf_counter.h> 12#include <linux/perf_counter.h>
13#include <linux/string.h>
13#include <asm/reg.h> 14#include <asm/reg.h>
15#include <asm/cputable.h>
14 16
15/* 17/*
16 * Bits in event code for PPC970 18 * Bits in event code for PPC970
@@ -183,7 +185,7 @@ static int p970_marked_instr_event(u64 event)
183} 185}
184 186
185/* Masks and values for using events from the various units */ 187/* Masks and values for using events from the various units */
186static u64 unit_cons[PM_LASTUNIT+1][2] = { 188static unsigned long unit_cons[PM_LASTUNIT+1][2] = {
187 [PM_FPU] = { 0xc80000000000ull, 0x040000000000ull }, 189 [PM_FPU] = { 0xc80000000000ull, 0x040000000000ull },
188 [PM_VPU] = { 0xc80000000000ull, 0xc40000000000ull }, 190 [PM_VPU] = { 0xc80000000000ull, 0xc40000000000ull },
189 [PM_ISU] = { 0x080000000000ull, 0x020000000000ull }, 191 [PM_ISU] = { 0x080000000000ull, 0x020000000000ull },
@@ -192,10 +194,11 @@ static u64 unit_cons[PM_LASTUNIT+1][2] = {
192 [PM_STS] = { 0x380000000000ull, 0x310000000000ull }, 194 [PM_STS] = { 0x380000000000ull, 0x310000000000ull },
193}; 195};
194 196
195static int p970_get_constraint(u64 event, u64 *maskp, u64 *valp) 197static int p970_get_constraint(u64 event, unsigned long *maskp,
198 unsigned long *valp)
196{ 199{
197 int pmc, byte, unit, sh, spcsel; 200 int pmc, byte, unit, sh, spcsel;
198 u64 mask = 0, value = 0; 201 unsigned long mask = 0, value = 0;
199 int grp = -1; 202 int grp = -1;
200 203
201 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; 204 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
@@ -222,7 +225,7 @@ static int p970_get_constraint(u64 event, u64 *maskp, u64 *valp)
222 grp = byte & 1; 225 grp = byte & 1;
223 /* Set byte lane select field */ 226 /* Set byte lane select field */
224 mask |= 0xfULL << (28 - 4 * byte); 227 mask |= 0xfULL << (28 - 4 * byte);
225 value |= (u64)unit << (28 - 4 * byte); 228 value |= (unsigned long)unit << (28 - 4 * byte);
226 } 229 }
227 if (grp == 0) { 230 if (grp == 0) {
228 /* increment PMC1/2/5/6 field */ 231 /* increment PMC1/2/5/6 field */
@@ -236,7 +239,7 @@ static int p970_get_constraint(u64 event, u64 *maskp, u64 *valp)
236 spcsel = (event >> PM_SPCSEL_SH) & PM_SPCSEL_MSK; 239 spcsel = (event >> PM_SPCSEL_SH) & PM_SPCSEL_MSK;
237 if (spcsel) { 240 if (spcsel) {
238 mask |= 3ull << 48; 241 mask |= 3ull << 48;
239 value |= (u64)spcsel << 48; 242 value |= (unsigned long)spcsel << 48;
240 } 243 }
241 *maskp = mask; 244 *maskp = mask;
242 *valp = value; 245 *valp = value;
@@ -257,9 +260,9 @@ static int p970_get_alternatives(u64 event, unsigned int flags, u64 alt[])
257} 260}
258 261
259static int p970_compute_mmcr(u64 event[], int n_ev, 262static int p970_compute_mmcr(u64 event[], int n_ev,
260 unsigned int hwc[], u64 mmcr[]) 263 unsigned int hwc[], unsigned long mmcr[])
261{ 264{
262 u64 mmcr0 = 0, mmcr1 = 0, mmcra = 0; 265 unsigned long mmcr0 = 0, mmcr1 = 0, mmcra = 0;
263 unsigned int pmc, unit, byte, psel; 266 unsigned int pmc, unit, byte, psel;
264 unsigned int ttm, grp; 267 unsigned int ttm, grp;
265 unsigned int pmc_inuse = 0; 268 unsigned int pmc_inuse = 0;
@@ -320,7 +323,7 @@ static int p970_compute_mmcr(u64 event[], int n_ev,
320 continue; 323 continue;
321 ttm = unitmap[i]; 324 ttm = unitmap[i];
322 ++ttmuse[(ttm >> 2) & 1]; 325 ++ttmuse[(ttm >> 2) & 1];
323 mmcr1 |= (u64)(ttm & ~4) << MMCR1_TTM1SEL_SH; 326 mmcr1 |= (unsigned long)(ttm & ~4) << MMCR1_TTM1SEL_SH;
324 } 327 }
325 /* Check only one unit per TTMx */ 328 /* Check only one unit per TTMx */
326 if (ttmuse[0] > 1 || ttmuse[1] > 1) 329 if (ttmuse[0] > 1 || ttmuse[1] > 1)
@@ -340,7 +343,8 @@ static int p970_compute_mmcr(u64 event[], int n_ev,
340 if (unit == PM_LSU1L && byte >= 2) 343 if (unit == PM_LSU1L && byte >= 2)
341 mmcr1 |= 1ull << (MMCR1_TTM3SEL_SH + 3 - byte); 344 mmcr1 |= 1ull << (MMCR1_TTM3SEL_SH + 3 - byte);
342 } 345 }
343 mmcr1 |= (u64)ttm << (MMCR1_TD_CP_DBG0SEL_SH - 2 * byte); 346 mmcr1 |= (unsigned long)ttm
347 << (MMCR1_TD_CP_DBG0SEL_SH - 2 * byte);
344 } 348 }
345 349
346 /* Second pass: assign PMCs, set PMCxSEL and PMCx_ADDER_SEL fields */ 350 /* Second pass: assign PMCs, set PMCxSEL and PMCx_ADDER_SEL fields */
@@ -386,7 +390,8 @@ static int p970_compute_mmcr(u64 event[], int n_ev,
386 for (pmc = 0; pmc < 2; ++pmc) 390 for (pmc = 0; pmc < 2; ++pmc)
387 mmcr0 |= pmcsel[pmc] << (MMCR0_PMC1SEL_SH - 7 * pmc); 391 mmcr0 |= pmcsel[pmc] << (MMCR0_PMC1SEL_SH - 7 * pmc);
388 for (; pmc < 8; ++pmc) 392 for (; pmc < 8; ++pmc)
389 mmcr1 |= (u64)pmcsel[pmc] << (MMCR1_PMC3SEL_SH - 5 * (pmc - 2)); 393 mmcr1 |= (unsigned long)pmcsel[pmc]
394 << (MMCR1_PMC3SEL_SH - 5 * (pmc - 2));
390 if (pmc_inuse & 1) 395 if (pmc_inuse & 1)
391 mmcr0 |= MMCR0_PMC1CE; 396 mmcr0 |= MMCR0_PMC1CE;
392 if (pmc_inuse & 0xfe) 397 if (pmc_inuse & 0xfe)
@@ -401,7 +406,7 @@ static int p970_compute_mmcr(u64 event[], int n_ev,
401 return 0; 406 return 0;
402} 407}
403 408
404static void p970_disable_pmc(unsigned int pmc, u64 mmcr[]) 409static void p970_disable_pmc(unsigned int pmc, unsigned long mmcr[])
405{ 410{
406 int shift, i; 411 int shift, i;
407 412
@@ -467,16 +472,28 @@ static int ppc970_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
467 }, 472 },
468}; 473};
469 474
470struct power_pmu ppc970_pmu = { 475static struct power_pmu ppc970_pmu = {
471 .n_counter = 8, 476 .name = "PPC970/FX/MP",
472 .max_alternatives = 2, 477 .n_counter = 8,
473 .add_fields = 0x001100005555ull, 478 .max_alternatives = 2,
474 .test_adder = 0x013300000000ull, 479 .add_fields = 0x001100005555ull,
475 .compute_mmcr = p970_compute_mmcr, 480 .test_adder = 0x013300000000ull,
476 .get_constraint = p970_get_constraint, 481 .compute_mmcr = p970_compute_mmcr,
477 .get_alternatives = p970_get_alternatives, 482 .get_constraint = p970_get_constraint,
478 .disable_pmc = p970_disable_pmc, 483 .get_alternatives = p970_get_alternatives,
479 .n_generic = ARRAY_SIZE(ppc970_generic_events), 484 .disable_pmc = p970_disable_pmc,
480 .generic_events = ppc970_generic_events, 485 .n_generic = ARRAY_SIZE(ppc970_generic_events),
481 .cache_events = &ppc970_cache_events, 486 .generic_events = ppc970_generic_events,
487 .cache_events = &ppc970_cache_events,
482}; 488};
489
490static int init_ppc970_pmu(void)
491{
492 if (strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/970")
493 && strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/970MP"))
494 return -ENODEV;
495
496 return register_power_pmu(&ppc970_pmu);
497}
498
499arch_initcall(init_ppc970_pmu);
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 3e7135bbe40..892a9f2e6d7 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -528,7 +528,7 @@ void show_regs(struct pt_regs * regs)
528 528
529 for (i = 0; i < 32; i++) { 529 for (i = 0; i < 32; i++) {
530 if ((i % REGS_PER_LINE) == 0) 530 if ((i % REGS_PER_LINE) == 0)
531 printk("\n" KERN_INFO "GPR%02d: ", i); 531 printk("\nGPR%02d: ", i);
532 printk(REG " ", regs->gpr[i]); 532 printk(REG " ", regs->gpr[i]);
533 if (i == LAST_VOLATILE && !FULL_REGS(regs)) 533 if (i == LAST_VOLATILE && !FULL_REGS(regs))
534 break; 534 break;
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index ef6f64950e9..a538824616f 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -1947,8 +1947,47 @@ static void __init fixup_device_tree_maple(void)
1947 prom_setprop(isa, name, "ranges", 1947 prom_setprop(isa, name, "ranges",
1948 isa_ranges, sizeof(isa_ranges)); 1948 isa_ranges, sizeof(isa_ranges));
1949} 1949}
1950
1951#define CPC925_MC_START 0xf8000000
1952#define CPC925_MC_LENGTH 0x1000000
1953/* The values for memory-controller don't have right number of cells */
1954static void __init fixup_device_tree_maple_memory_controller(void)
1955{
1956 phandle mc;
1957 u32 mc_reg[4];
1958 char *name = "/hostbridge@f8000000";
1959 struct prom_t *_prom = &RELOC(prom);
1960 u32 ac, sc;
1961
1962 mc = call_prom("finddevice", 1, 1, ADDR(name));
1963 if (!PHANDLE_VALID(mc))
1964 return;
1965
1966 if (prom_getproplen(mc, "reg") != 8)
1967 return;
1968
1969 prom_getprop(_prom->root, "#address-cells", &ac, sizeof(ac));
1970 prom_getprop(_prom->root, "#size-cells", &sc, sizeof(sc));
1971 if ((ac != 2) || (sc != 2))
1972 return;
1973
1974 if (prom_getprop(mc, "reg", mc_reg, sizeof(mc_reg)) == PROM_ERROR)
1975 return;
1976
1977 if (mc_reg[0] != CPC925_MC_START || mc_reg[1] != CPC925_MC_LENGTH)
1978 return;
1979
1980 prom_printf("Fixing up bogus hostbridge on Maple...\n");
1981
1982 mc_reg[0] = 0x0;
1983 mc_reg[1] = CPC925_MC_START;
1984 mc_reg[2] = 0x0;
1985 mc_reg[3] = CPC925_MC_LENGTH;
1986 prom_setprop(mc, name, "reg", mc_reg, sizeof(mc_reg));
1987}
1950#else 1988#else
1951#define fixup_device_tree_maple() 1989#define fixup_device_tree_maple()
1990#define fixup_device_tree_maple_memory_controller()
1952#endif 1991#endif
1953 1992
1954#ifdef CONFIG_PPC_CHRP 1993#ifdef CONFIG_PPC_CHRP
@@ -2189,6 +2228,7 @@ static void __init fixup_device_tree_efika(void)
2189static void __init fixup_device_tree(void) 2228static void __init fixup_device_tree(void)
2190{ 2229{
2191 fixup_device_tree_maple(); 2230 fixup_device_tree_maple();
2231 fixup_device_tree_maple_memory_controller();
2192 fixup_device_tree_chrp(); 2232 fixup_device_tree_chrp();
2193 fixup_device_tree_pmac(); 2233 fixup_device_tree_pmac();
2194 fixup_device_tree_efika(); 2234 fixup_device_tree_efika();
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index ee4c7609b64..c434823b8c8 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -38,9 +38,10 @@
38#include <asm/syscalls.h> 38#include <asm/syscalls.h>
39#include <asm/smp.h> 39#include <asm/smp.h>
40#include <asm/atomic.h> 40#include <asm/atomic.h>
41#include <asm/time.h>
41 42
42struct rtas_t rtas = { 43struct rtas_t rtas = {
43 .lock = SPIN_LOCK_UNLOCKED 44 .lock = __RAW_SPIN_LOCK_UNLOCKED
44}; 45};
45EXPORT_SYMBOL(rtas); 46EXPORT_SYMBOL(rtas);
46 47
@@ -67,6 +68,28 @@ unsigned long rtas_rmo_buf;
67void (*rtas_flash_term_hook)(int); 68void (*rtas_flash_term_hook)(int);
68EXPORT_SYMBOL(rtas_flash_term_hook); 69EXPORT_SYMBOL(rtas_flash_term_hook);
69 70
71/* RTAS use home made raw locking instead of spin_lock_irqsave
72 * because those can be called from within really nasty contexts
73 * such as having the timebase stopped which would lockup with
74 * normal locks and spinlock debugging enabled
75 */
76static unsigned long lock_rtas(void)
77{
78 unsigned long flags;
79
80 local_irq_save(flags);
81 preempt_disable();
82 __raw_spin_lock_flags(&rtas.lock, flags);
83 return flags;
84}
85
86static void unlock_rtas(unsigned long flags)
87{
88 __raw_spin_unlock(&rtas.lock);
89 local_irq_restore(flags);
90 preempt_enable();
91}
92
70/* 93/*
71 * call_rtas_display_status and call_rtas_display_status_delay 94 * call_rtas_display_status and call_rtas_display_status_delay
72 * are designed only for very early low-level debugging, which 95 * are designed only for very early low-level debugging, which
@@ -79,7 +102,7 @@ static void call_rtas_display_status(char c)
79 102
80 if (!rtas.base) 103 if (!rtas.base)
81 return; 104 return;
82 spin_lock_irqsave(&rtas.lock, s); 105 s = lock_rtas();
83 106
84 args->token = 10; 107 args->token = 10;
85 args->nargs = 1; 108 args->nargs = 1;
@@ -89,7 +112,7 @@ static void call_rtas_display_status(char c)
89 112
90 enter_rtas(__pa(args)); 113 enter_rtas(__pa(args));
91 114
92 spin_unlock_irqrestore(&rtas.lock, s); 115 unlock_rtas(s);
93} 116}
94 117
95static void call_rtas_display_status_delay(char c) 118static void call_rtas_display_status_delay(char c)
@@ -411,8 +434,7 @@ int rtas_call(int token, int nargs, int nret, int *outputs, ...)
411 if (!rtas.entry || token == RTAS_UNKNOWN_SERVICE) 434 if (!rtas.entry || token == RTAS_UNKNOWN_SERVICE)
412 return -1; 435 return -1;
413 436
414 /* Gotta do something different here, use global lock for now... */ 437 s = lock_rtas();
415 spin_lock_irqsave(&rtas.lock, s);
416 rtas_args = &rtas.args; 438 rtas_args = &rtas.args;
417 439
418 rtas_args->token = token; 440 rtas_args->token = token;
@@ -439,8 +461,7 @@ int rtas_call(int token, int nargs, int nret, int *outputs, ...)
439 outputs[i] = rtas_args->rets[i+1]; 461 outputs[i] = rtas_args->rets[i+1];
440 ret = (nret > 0)? rtas_args->rets[0]: 0; 462 ret = (nret > 0)? rtas_args->rets[0]: 0;
441 463
442 /* Gotta do something different here, use global lock for now... */ 464 unlock_rtas(s);
443 spin_unlock_irqrestore(&rtas.lock, s);
444 465
445 if (buff_copy) { 466 if (buff_copy) {
446 log_error(buff_copy, ERR_TYPE_RTAS_LOG, 0); 467 log_error(buff_copy, ERR_TYPE_RTAS_LOG, 0);
@@ -837,7 +858,7 @@ asmlinkage int ppc_rtas(struct rtas_args __user *uargs)
837 858
838 buff_copy = get_errorlog_buffer(); 859 buff_copy = get_errorlog_buffer();
839 860
840 spin_lock_irqsave(&rtas.lock, flags); 861 flags = lock_rtas();
841 862
842 rtas.args = args; 863 rtas.args = args;
843 enter_rtas(__pa(&rtas.args)); 864 enter_rtas(__pa(&rtas.args));
@@ -848,7 +869,7 @@ asmlinkage int ppc_rtas(struct rtas_args __user *uargs)
848 if (args.rets[0] == -1) 869 if (args.rets[0] == -1)
849 errbuf = __fetch_rtas_last_error(buff_copy); 870 errbuf = __fetch_rtas_last_error(buff_copy);
850 871
851 spin_unlock_irqrestore(&rtas.lock, flags); 872 unlock_rtas(flags);
852 873
853 if (buff_copy) { 874 if (buff_copy) {
854 if (errbuf) 875 if (errbuf)
@@ -951,3 +972,33 @@ int __init early_init_dt_scan_rtas(unsigned long node,
951 /* break now */ 972 /* break now */
952 return 1; 973 return 1;
953} 974}
975
976static raw_spinlock_t timebase_lock;
977static u64 timebase = 0;
978
979void __cpuinit rtas_give_timebase(void)
980{
981 unsigned long flags;
982
983 local_irq_save(flags);
984 hard_irq_disable();
985 __raw_spin_lock(&timebase_lock);
986 rtas_call(rtas_token("freeze-time-base"), 0, 1, NULL);
987 timebase = get_tb();
988 __raw_spin_unlock(&timebase_lock);
989
990 while (timebase)
991 barrier();
992 rtas_call(rtas_token("thaw-time-base"), 0, 1, NULL);
993 local_irq_restore(flags);
994}
995
996void __cpuinit rtas_take_timebase(void)
997{
998 while (!timebase)
999 barrier();
1000 __raw_spin_lock(&timebase_lock);
1001 set_tb(timebase >> 32, timebase & 0xffffffff);
1002 timebase = 0;
1003 __raw_spin_unlock(&timebase_lock);
1004}
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index 1d154248cf4..e1e3059cf34 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -119,6 +119,8 @@ notrace unsigned long __init early_init(unsigned long dt_ptr)
119 */ 119 */
120notrace void __init machine_init(unsigned long dt_ptr) 120notrace void __init machine_init(unsigned long dt_ptr)
121{ 121{
122 lockdep_init();
123
122 /* Enable early debugging if any specified (see udbg.h) */ 124 /* Enable early debugging if any specified (see udbg.h) */
123 udbg_early_init(); 125 udbg_early_init();
124 126
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 65484b2200b..0b47de07302 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -68,7 +68,8 @@ EXPORT_PER_CPU_SYMBOL(cpu_core_map);
68/* SMP operations for this machine */ 68/* SMP operations for this machine */
69struct smp_ops_t *smp_ops; 69struct smp_ops_t *smp_ops;
70 70
71static volatile unsigned int cpu_callin_map[NR_CPUS]; 71/* Can't be static due to PowerMac hackery */
72volatile unsigned int cpu_callin_map[NR_CPUS];
72 73
73int smt_enabled_at_boot = 1; 74int smt_enabled_at_boot = 1;
74 75
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 15391c2ab01..eae4511ceea 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -53,6 +53,7 @@
53#include <linux/posix-timers.h> 53#include <linux/posix-timers.h>
54#include <linux/irq.h> 54#include <linux/irq.h>
55#include <linux/delay.h> 55#include <linux/delay.h>
56#include <linux/perf_counter.h>
56 57
57#include <asm/io.h> 58#include <asm/io.h>
58#include <asm/processor.h> 59#include <asm/processor.h>
@@ -525,6 +526,26 @@ void __init iSeries_time_init_early(void)
525} 526}
526#endif /* CONFIG_PPC_ISERIES */ 527#endif /* CONFIG_PPC_ISERIES */
527 528
529#if defined(CONFIG_PERF_COUNTERS) && defined(CONFIG_PPC32)
530DEFINE_PER_CPU(u8, perf_counter_pending);
531
532void set_perf_counter_pending(void)
533{
534 get_cpu_var(perf_counter_pending) = 1;
535 set_dec(1);
536 put_cpu_var(perf_counter_pending);
537}
538
539#define test_perf_counter_pending() __get_cpu_var(perf_counter_pending)
540#define clear_perf_counter_pending() __get_cpu_var(perf_counter_pending) = 0
541
542#else /* CONFIG_PERF_COUNTERS && CONFIG_PPC32 */
543
544#define test_perf_counter_pending() 0
545#define clear_perf_counter_pending()
546
547#endif /* CONFIG_PERF_COUNTERS && CONFIG_PPC32 */
548
528/* 549/*
529 * For iSeries shared processors, we have to let the hypervisor 550 * For iSeries shared processors, we have to let the hypervisor
530 * set the hardware decrementer. We set a virtual decrementer 551 * set the hardware decrementer. We set a virtual decrementer
@@ -551,6 +572,10 @@ void timer_interrupt(struct pt_regs * regs)
551 set_dec(DECREMENTER_MAX); 572 set_dec(DECREMENTER_MAX);
552 573
553#ifdef CONFIG_PPC32 574#ifdef CONFIG_PPC32
575 if (test_perf_counter_pending()) {
576 clear_perf_counter_pending();
577 perf_counter_do_pending();
578 }
554 if (atomic_read(&ppc_n_lost_interrupts) != 0) 579 if (atomic_read(&ppc_n_lost_interrupts) != 0)
555 do_IRQ(regs); 580 do_IRQ(regs);
556#endif 581#endif
diff --git a/arch/powerpc/kernel/udbg_16550.c b/arch/powerpc/kernel/udbg_16550.c
index 0362a891e54..acb74a17bbb 100644
--- a/arch/powerpc/kernel/udbg_16550.c
+++ b/arch/powerpc/kernel/udbg_16550.c
@@ -219,7 +219,7 @@ void udbg_init_pas_realmode(void)
219#ifdef CONFIG_PPC_EARLY_DEBUG_44x 219#ifdef CONFIG_PPC_EARLY_DEBUG_44x
220#include <platforms/44x/44x.h> 220#include <platforms/44x/44x.h>
221 221
222static int udbg_44x_as1_flush(void) 222static void udbg_44x_as1_flush(void)
223{ 223{
224 if (udbg_comport) { 224 if (udbg_comport) {
225 while ((as1_readb(&udbg_comport->lsr) & LSR_THRE) == 0) 225 while ((as1_readb(&udbg_comport->lsr) & LSR_THRE) == 0)
diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile
index 2d2192e48de..3e68363405b 100644
--- a/arch/powerpc/mm/Makefile
+++ b/arch/powerpc/mm/Makefile
@@ -30,3 +30,4 @@ obj-$(CONFIG_PPC_MM_SLICES) += slice.o
30obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o 30obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
31obj-$(CONFIG_PPC_SUBPAGE_PROT) += subpage-prot.o 31obj-$(CONFIG_PPC_SUBPAGE_PROT) += subpage-prot.o
32obj-$(CONFIG_NOT_COHERENT_CACHE) += dma-noncoherent.o 32obj-$(CONFIG_NOT_COHERENT_CACHE) += dma-noncoherent.o
33obj-$(CONFIG_HIGHMEM) += highmem.o
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 5beffc8f481..830bef0a113 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -302,7 +302,7 @@ good_area:
302 * the fault. 302 * the fault.
303 */ 303 */
304 survive: 304 survive:
305 ret = handle_mm_fault(mm, vma, address, is_write); 305 ret = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0);
306 if (unlikely(ret & VM_FAULT_ERROR)) { 306 if (unlikely(ret & VM_FAULT_ERROR)) {
307 if (ret & VM_FAULT_OOM) 307 if (ret & VM_FAULT_OOM)
308 goto out_of_memory; 308 goto out_of_memory;
diff --git a/arch/powerpc/mm/highmem.c b/arch/powerpc/mm/highmem.c
new file mode 100644
index 00000000000..c2186c74c85
--- /dev/null
+++ b/arch/powerpc/mm/highmem.c
@@ -0,0 +1,77 @@
1/*
2 * highmem.c: virtual kernel memory mappings for high memory
3 *
4 * PowerPC version, stolen from the i386 version.
5 *
6 * Used in CONFIG_HIGHMEM systems for memory pages which
7 * are not addressable by direct kernel virtual addresses.
8 *
9 * Copyright (C) 1999 Gerhard Wichert, Siemens AG
10 * Gerhard.Wichert@pdb.siemens.de
11 *
12 *
13 * Redesigned the x86 32-bit VM architecture to deal with
14 * up to 16 Terrabyte physical memory. With current x86 CPUs
15 * we now support up to 64 Gigabytes physical RAM.
16 *
17 * Copyright (C) 1999 Ingo Molnar <mingo@redhat.com>
18 *
19 * Reworked for PowerPC by various contributors. Moved from
20 * highmem.h by Benjamin Herrenschmidt (c) 2009 IBM Corp.
21 */
22
23#include <linux/highmem.h>
24#include <linux/module.h>
25
26/*
27 * The use of kmap_atomic/kunmap_atomic is discouraged - kmap/kunmap
28 * gives a more generic (and caching) interface. But kmap_atomic can
29 * be used in IRQ contexts, so in some (very limited) cases we need
30 * it.
31 */
32void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot)
33{
34 unsigned int idx;
35 unsigned long vaddr;
36
37 /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
38 pagefault_disable();
39 if (!PageHighMem(page))
40 return page_address(page);
41
42 debug_kmap_atomic(type);
43 idx = type + KM_TYPE_NR*smp_processor_id();
44 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
45#ifdef CONFIG_DEBUG_HIGHMEM
46 BUG_ON(!pte_none(*(kmap_pte-idx)));
47#endif
48 __set_pte_at(&init_mm, vaddr, kmap_pte-idx, mk_pte(page, prot), 1);
49 local_flush_tlb_page(NULL, vaddr);
50
51 return (void*) vaddr;
52}
53EXPORT_SYMBOL(kmap_atomic_prot);
54
55void kunmap_atomic(void *kvaddr, enum km_type type)
56{
57#ifdef CONFIG_DEBUG_HIGHMEM
58 unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK;
59 enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id();
60
61 if (vaddr < __fix_to_virt(FIX_KMAP_END)) {
62 pagefault_enable();
63 return;
64 }
65
66 BUG_ON(vaddr != __fix_to_virt(FIX_KMAP_BEGIN + idx));
67
68 /*
69 * force other mappings to Oops if they'll try to access
70 * this pte without first remap it
71 */
72 pte_clear(&init_mm, vaddr, kmap_pte-idx);
73 local_flush_tlb_page(NULL, vaddr);
74#endif
75 pagefault_enable();
76}
77EXPORT_SYMBOL(kunmap_atomic);
diff --git a/arch/powerpc/platforms/44x/warp.c b/arch/powerpc/platforms/44x/warp.c
index 42e09a9f77e..0362c88f47d 100644
--- a/arch/powerpc/platforms/44x/warp.c
+++ b/arch/powerpc/platforms/44x/warp.c
@@ -16,6 +16,7 @@
16#include <linux/interrupt.h> 16#include <linux/interrupt.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/of_gpio.h> 18#include <linux/of_gpio.h>
19#include <linux/of_i2c.h>
19 20
20#include <asm/machdep.h> 21#include <asm/machdep.h>
21#include <asm/prom.h> 22#include <asm/prom.h>
@@ -65,7 +66,6 @@ define_machine(warp) {
65 66
66static u32 post_info; 67static u32 post_info;
67 68
68/* I am not sure this is the best place for this... */
69static int __init warp_post_info(void) 69static int __init warp_post_info(void)
70{ 70{
71 struct device_node *np; 71 struct device_node *np;
@@ -194,9 +194,9 @@ static int pika_setup_leds(void)
194 return 0; 194 return 0;
195} 195}
196 196
197static void pika_setup_critical_temp(struct i2c_client *client) 197static void pika_setup_critical_temp(struct device_node *np,
198 struct i2c_client *client)
198{ 199{
199 struct device_node *np;
200 int irq, rc; 200 int irq, rc;
201 201
202 /* Do this before enabling critical temp interrupt since we 202 /* Do this before enabling critical temp interrupt since we
@@ -208,14 +208,7 @@ static void pika_setup_critical_temp(struct i2c_client *client)
208 i2c_smbus_write_byte_data(client, 2, 65); /* Thigh */ 208 i2c_smbus_write_byte_data(client, 2, 65); /* Thigh */
209 i2c_smbus_write_byte_data(client, 3, 0); /* Tlow */ 209 i2c_smbus_write_byte_data(client, 3, 0); /* Tlow */
210 210
211 np = of_find_compatible_node(NULL, NULL, "adi,ad7414");
212 if (np == NULL) {
213 printk(KERN_ERR __FILE__ ": Unable to find ad7414\n");
214 return;
215 }
216
217 irq = irq_of_parse_and_map(np, 0); 211 irq = irq_of_parse_and_map(np, 0);
218 of_node_put(np);
219 if (irq == NO_IRQ) { 212 if (irq == NO_IRQ) {
220 printk(KERN_ERR __FILE__ ": Unable to get ad7414 irq\n"); 213 printk(KERN_ERR __FILE__ ": Unable to get ad7414 irq\n");
221 return; 214 return;
@@ -244,32 +237,24 @@ static inline void pika_dtm_check_fan(void __iomem *fpga)
244 237
245static int pika_dtm_thread(void __iomem *fpga) 238static int pika_dtm_thread(void __iomem *fpga)
246{ 239{
247 struct i2c_adapter *adap; 240 struct device_node *np;
248 struct i2c_client *client; 241 struct i2c_client *client;
249 242
250 /* We loop in case either driver was compiled as a module and 243 np = of_find_compatible_node(NULL, NULL, "adi,ad7414");
251 * has not been insmoded yet. 244 if (np == NULL)
252 */ 245 return -ENOENT;
253 while (!(adap = i2c_get_adapter(0))) {
254 set_current_state(TASK_INTERRUPTIBLE);
255 schedule_timeout(HZ);
256 }
257
258 while (1) {
259 list_for_each_entry(client, &adap->clients, list)
260 if (client->addr == 0x4a)
261 goto found_it;
262 246
263 set_current_state(TASK_INTERRUPTIBLE); 247 client = of_find_i2c_device_by_node(np);
264 schedule_timeout(HZ); 248 if (client == NULL) {
249 of_node_put(np);
250 return -ENOENT;
265 } 251 }
266 252
267found_it: 253 pika_setup_critical_temp(np, client);
268 pika_setup_critical_temp(client);
269 254
270 i2c_put_adapter(adap); 255 of_node_put(np);
271 256
272 printk(KERN_INFO "PIKA DTM thread running.\n"); 257 printk(KERN_INFO "Warp DTM thread running.\n");
273 258
274 while (!kthread_should_stop()) { 259 while (!kthread_should_stop()) {
275 int val; 260 int val;
@@ -291,7 +276,6 @@ found_it:
291 return 0; 276 return 0;
292} 277}
293 278
294
295static int __init pika_dtm_start(void) 279static int __init pika_dtm_start(void)
296{ 280{
297 struct task_struct *dtm_thread; 281 struct task_struct *dtm_thread;
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
index 51eec0cd551..627908a4cd7 100644
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -37,6 +37,7 @@
37#include <linux/of_platform.h> 37#include <linux/of_platform.h>
38#include <sysdev/fsl_pci.h> 38#include <sysdev/fsl_pci.h>
39#include <sysdev/fsl_soc.h> 39#include <sysdev/fsl_soc.h>
40#include <sysdev/simple_gpio.h>
40 41
41#include "mpc86xx.h" 42#include "mpc86xx.h"
42 43
@@ -51,6 +52,9 @@ static struct of_device_id __initdata mpc8610_ids[] = {
51 52
52static int __init mpc8610_declare_of_platform_devices(void) 53static int __init mpc8610_declare_of_platform_devices(void)
53{ 54{
55 /* Firstly, register PIXIS GPIOs. */
56 simple_gpiochip_init("fsl,fpga-pixis-gpio-bank");
57
54 /* Without this call, the SSI device driver won't get probed. */ 58 /* Without this call, the SSI device driver won't get probed. */
55 of_platform_bus_probe(NULL, mpc8610_ids, NULL); 59 of_platform_bus_probe(NULL, mpc8610_ids, NULL);
56 60
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index c4192542b80..61187bec750 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -1,7 +1,7 @@
1config PPC64 1config PPC64
2 bool "64-bit kernel" 2 bool "64-bit kernel"
3 default n 3 default n
4 select HAVE_PERF_COUNTERS 4 select PPC_HAVE_PMU_SUPPORT
5 help 5 help
6 This option selects whether a 32-bit or a 64-bit kernel 6 This option selects whether a 32-bit or a 64-bit kernel
7 will be built. 7 will be built.
@@ -78,6 +78,7 @@ config POWER4_ONLY
78config 6xx 78config 6xx
79 def_bool y 79 def_bool y
80 depends on PPC32 && PPC_BOOK3S 80 depends on PPC32 && PPC_BOOK3S
81 select PPC_HAVE_PMU_SUPPORT
81 82
82config POWER3 83config POWER3
83 bool 84 bool
@@ -246,6 +247,15 @@ config VIRT_CPU_ACCOUNTING
246 247
247 If in doubt, say Y here. 248 If in doubt, say Y here.
248 249
250config PPC_HAVE_PMU_SUPPORT
251 bool
252
253config PPC_PERF_CTRS
254 def_bool y
255 depends on PERF_COUNTERS && PPC_HAVE_PMU_SUPPORT
256 help
257 This enables the powerpc-specific perf_counter back-end.
258
249config SMP 259config SMP
250 depends on PPC_STD_MMU || FSL_BOOKE 260 depends on PPC_STD_MMU || FSL_BOOKE
251 bool "Symmetric multi-processing support" 261 bool "Symmetric multi-processing support"
diff --git a/arch/powerpc/platforms/cell/smp.c b/arch/powerpc/platforms/cell/smp.c
index 9046803c827..bc97fada48c 100644
--- a/arch/powerpc/platforms/cell/smp.c
+++ b/arch/powerpc/platforms/cell/smp.c
@@ -36,7 +36,6 @@
36#include <asm/prom.h> 36#include <asm/prom.h>
37#include <asm/smp.h> 37#include <asm/smp.h>
38#include <asm/paca.h> 38#include <asm/paca.h>
39#include <asm/time.h>
40#include <asm/machdep.h> 39#include <asm/machdep.h>
41#include <asm/cputable.h> 40#include <asm/cputable.h>
42#include <asm/firmware.h> 41#include <asm/firmware.h>
@@ -140,31 +139,6 @@ static void __devinit smp_cell_setup_cpu(int cpu)
140 mtspr(SPRN_DABRX, DABRX_KERNEL | DABRX_USER); 139 mtspr(SPRN_DABRX, DABRX_KERNEL | DABRX_USER);
141} 140}
142 141
143static DEFINE_SPINLOCK(timebase_lock);
144static unsigned long timebase = 0;
145
146static void __devinit cell_give_timebase(void)
147{
148 spin_lock(&timebase_lock);
149 rtas_call(rtas_token("freeze-time-base"), 0, 1, NULL);
150 timebase = get_tb();
151 spin_unlock(&timebase_lock);
152
153 while (timebase)
154 barrier();
155 rtas_call(rtas_token("thaw-time-base"), 0, 1, NULL);
156}
157
158static void __devinit cell_take_timebase(void)
159{
160 while (!timebase)
161 barrier();
162 spin_lock(&timebase_lock);
163 set_tb(timebase >> 32, timebase & 0xffffffff);
164 timebase = 0;
165 spin_unlock(&timebase_lock);
166}
167
168static void __devinit smp_cell_kick_cpu(int nr) 142static void __devinit smp_cell_kick_cpu(int nr)
169{ 143{
170 BUG_ON(nr < 0 || nr >= NR_CPUS); 144 BUG_ON(nr < 0 || nr >= NR_CPUS);
@@ -224,8 +198,8 @@ void __init smp_init_cell(void)
224 198
225 /* Non-lpar has additional take/give timebase */ 199 /* Non-lpar has additional take/give timebase */
226 if (rtas_token("freeze-time-base") != RTAS_UNKNOWN_SERVICE) { 200 if (rtas_token("freeze-time-base") != RTAS_UNKNOWN_SERVICE) {
227 smp_ops->give_timebase = cell_give_timebase; 201 smp_ops->give_timebase = rtas_give_timebase;
228 smp_ops->take_timebase = cell_take_timebase; 202 smp_ops->take_timebase = rtas_take_timebase;
229 } 203 }
230 204
231 DBG(" <- smp_init_cell()\n"); 205 DBG(" <- smp_init_cell()\n");
diff --git a/arch/powerpc/platforms/cell/spu_fault.c b/arch/powerpc/platforms/cell/spu_fault.c
index 95d8dadf2d8..d06ba87f1a1 100644
--- a/arch/powerpc/platforms/cell/spu_fault.c
+++ b/arch/powerpc/platforms/cell/spu_fault.c
@@ -70,7 +70,7 @@ int spu_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
70 } 70 }
71 71
72 ret = 0; 72 ret = 0;
73 *flt = handle_mm_fault(mm, vma, ea, is_write); 73 *flt = handle_mm_fault(mm, vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
74 if (unlikely(*flt & VM_FAULT_ERROR)) { 74 if (unlikely(*flt & VM_FAULT_ERROR)) {
75 if (*flt & VM_FAULT_OOM) { 75 if (*flt & VM_FAULT_OOM) {
76 ret = -ENOMEM; 76 ret = -ENOMEM;
diff --git a/arch/powerpc/platforms/chrp/smp.c b/arch/powerpc/platforms/chrp/smp.c
index 10a4a4d063b..02cafecc90e 100644
--- a/arch/powerpc/platforms/chrp/smp.c
+++ b/arch/powerpc/platforms/chrp/smp.c
@@ -26,7 +26,6 @@
26#include <asm/io.h> 26#include <asm/io.h>
27#include <asm/prom.h> 27#include <asm/prom.h>
28#include <asm/smp.h> 28#include <asm/smp.h>
29#include <asm/time.h>
30#include <asm/machdep.h> 29#include <asm/machdep.h>
31#include <asm/mpic.h> 30#include <asm/mpic.h>
32#include <asm/rtas.h> 31#include <asm/rtas.h>
@@ -42,40 +41,12 @@ static void __devinit smp_chrp_setup_cpu(int cpu_nr)
42 mpic_setup_this_cpu(); 41 mpic_setup_this_cpu();
43} 42}
44 43
45static DEFINE_SPINLOCK(timebase_lock);
46static unsigned int timebase_upper = 0, timebase_lower = 0;
47
48void __devinit smp_chrp_give_timebase(void)
49{
50 spin_lock(&timebase_lock);
51 rtas_call(rtas_token("freeze-time-base"), 0, 1, NULL);
52 timebase_upper = get_tbu();
53 timebase_lower = get_tbl();
54 spin_unlock(&timebase_lock);
55
56 while (timebase_upper || timebase_lower)
57 barrier();
58 rtas_call(rtas_token("thaw-time-base"), 0, 1, NULL);
59}
60
61void __devinit smp_chrp_take_timebase(void)
62{
63 while (!(timebase_upper || timebase_lower))
64 barrier();
65 spin_lock(&timebase_lock);
66 set_tb(timebase_upper, timebase_lower);
67 timebase_upper = 0;
68 timebase_lower = 0;
69 spin_unlock(&timebase_lock);
70 printk("CPU %i taken timebase\n", smp_processor_id());
71}
72
73/* CHRP with openpic */ 44/* CHRP with openpic */
74struct smp_ops_t chrp_smp_ops = { 45struct smp_ops_t chrp_smp_ops = {
75 .message_pass = smp_mpic_message_pass, 46 .message_pass = smp_mpic_message_pass,
76 .probe = smp_mpic_probe, 47 .probe = smp_mpic_probe,
77 .kick_cpu = smp_chrp_kick_cpu, 48 .kick_cpu = smp_chrp_kick_cpu,
78 .setup_cpu = smp_chrp_setup_cpu, 49 .setup_cpu = smp_chrp_setup_cpu,
79 .give_timebase = smp_chrp_give_timebase, 50 .give_timebase = rtas_give_timebase,
80 .take_timebase = smp_chrp_take_timebase, 51 .take_timebase = rtas_take_timebase,
81}; 52};
diff --git a/arch/powerpc/platforms/maple/setup.c b/arch/powerpc/platforms/maple/setup.c
index bfd60e4acce..0636a3df697 100644
--- a/arch/powerpc/platforms/maple/setup.c
+++ b/arch/powerpc/platforms/maple/setup.c
@@ -335,3 +335,62 @@ define_machine(maple) {
335 .progress = maple_progress, 335 .progress = maple_progress,
336 .power_save = power4_idle, 336 .power_save = power4_idle,
337}; 337};
338
339#ifdef CONFIG_EDAC
340/*
341 * Register a platform device for CPC925 memory controller on
342 * Motorola ATCA-6101 blade.
343 */
344#define MAPLE_CPC925_MODEL "Motorola,ATCA-6101"
345static int __init maple_cpc925_edac_setup(void)
346{
347 struct platform_device *pdev;
348 struct device_node *np = NULL;
349 struct resource r;
350 const unsigned char *model;
351 int ret;
352
353 np = of_find_node_by_path("/");
354 if (!np) {
355 printk(KERN_ERR "%s: Unable to get root node\n", __func__);
356 return -ENODEV;
357 }
358
359 model = (const unsigned char *)of_get_property(np, "model", NULL);
360 if (!model) {
361 printk(KERN_ERR "%s: Unabel to get model info\n", __func__);
362 return -ENODEV;
363 }
364
365 ret = strcmp(model, MAPLE_CPC925_MODEL);
366 of_node_put(np);
367
368 if (ret != 0)
369 return 0;
370
371 np = of_find_node_by_type(NULL, "memory-controller");
372 if (!np) {
373 printk(KERN_ERR "%s: Unable to find memory-controller node\n",
374 __func__);
375 return -ENODEV;
376 }
377
378 ret = of_address_to_resource(np, 0, &r);
379 of_node_put(np);
380
381 if (ret < 0) {
382 printk(KERN_ERR "%s: Unable to get memory-controller reg\n",
383 __func__);
384 return -ENODEV;
385 }
386
387 pdev = platform_device_register_simple("cpc925_edac", 0, &r, 1);
388 if (IS_ERR(pdev))
389 return PTR_ERR(pdev);
390
391 printk(KERN_INFO "%s: CPC925 platform device created\n", __func__);
392
393 return 0;
394}
395machine_device_initcall(maple, maple_cpc925_edac_setup);
396#endif
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c
index 153051eb6d9..a4619347aa7 100644
--- a/arch/powerpc/platforms/pasemi/setup.c
+++ b/arch/powerpc/platforms/pasemi/setup.c
@@ -71,20 +71,25 @@ static void pas_restart(char *cmd)
71} 71}
72 72
73#ifdef CONFIG_SMP 73#ifdef CONFIG_SMP
74static DEFINE_SPINLOCK(timebase_lock); 74static raw_spinlock_t timebase_lock;
75static unsigned long timebase; 75static unsigned long timebase;
76 76
77static void __devinit pas_give_timebase(void) 77static void __devinit pas_give_timebase(void)
78{ 78{
79 spin_lock(&timebase_lock); 79 unsigned long flags;
80
81 local_irq_save(flags);
82 hard_irq_disable();
83 __raw_spin_lock(&timebase_lock);
80 mtspr(SPRN_TBCTL, TBCTL_FREEZE); 84 mtspr(SPRN_TBCTL, TBCTL_FREEZE);
81 isync(); 85 isync();
82 timebase = get_tb(); 86 timebase = get_tb();
83 spin_unlock(&timebase_lock); 87 __raw_spin_unlock(&timebase_lock);
84 88
85 while (timebase) 89 while (timebase)
86 barrier(); 90 barrier();
87 mtspr(SPRN_TBCTL, TBCTL_RESTART); 91 mtspr(SPRN_TBCTL, TBCTL_RESTART);
92 local_irq_restore(flags);
88} 93}
89 94
90static void __devinit pas_take_timebase(void) 95static void __devinit pas_take_timebase(void)
@@ -92,10 +97,10 @@ static void __devinit pas_take_timebase(void)
92 while (!timebase) 97 while (!timebase)
93 smp_rmb(); 98 smp_rmb();
94 99
95 spin_lock(&timebase_lock); 100 __raw_spin_lock(&timebase_lock);
96 set_tb(timebase >> 32, timebase & 0xffffffff); 101 set_tb(timebase >> 32, timebase & 0xffffffff);
97 timebase = 0; 102 timebase = 0;
98 spin_unlock(&timebase_lock); 103 __raw_spin_unlock(&timebase_lock);
99} 104}
100 105
101struct smp_ops_t pas_smp_ops = { 106struct smp_ops_t pas_smp_ops = {
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index 86f69a4eb49..c2052265636 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -103,11 +103,6 @@ unsigned long smu_cmdbuf_abs;
103EXPORT_SYMBOL(smu_cmdbuf_abs); 103EXPORT_SYMBOL(smu_cmdbuf_abs);
104#endif 104#endif
105 105
106#ifdef CONFIG_SMP
107extern struct smp_ops_t psurge_smp_ops;
108extern struct smp_ops_t core99_smp_ops;
109#endif /* CONFIG_SMP */
110
111static void pmac_show_cpuinfo(struct seq_file *m) 106static void pmac_show_cpuinfo(struct seq_file *m)
112{ 107{
113 struct device_node *np; 108 struct device_node *np;
@@ -341,34 +336,6 @@ static void __init pmac_setup_arch(void)
341 ROOT_DEV = DEFAULT_ROOT_DEVICE; 336 ROOT_DEV = DEFAULT_ROOT_DEVICE;
342#endif 337#endif
343 338
344#ifdef CONFIG_SMP
345 /* Check for Core99 */
346 ic = of_find_node_by_name(NULL, "uni-n");
347 if (!ic)
348 ic = of_find_node_by_name(NULL, "u3");
349 if (!ic)
350 ic = of_find_node_by_name(NULL, "u4");
351 if (ic) {
352 of_node_put(ic);
353 smp_ops = &core99_smp_ops;
354 }
355#ifdef CONFIG_PPC32
356 else {
357 /*
358 * We have to set bits in cpu_possible_map here since the
359 * secondary CPU(s) aren't in the device tree, and
360 * setup_per_cpu_areas only allocates per-cpu data for
361 * CPUs in the cpu_possible_map.
362 */
363 int cpu;
364
365 for (cpu = 1; cpu < 4 && cpu < NR_CPUS; ++cpu)
366 cpu_set(cpu, cpu_possible_map);
367 smp_ops = &psurge_smp_ops;
368 }
369#endif
370#endif /* CONFIG_SMP */
371
372#ifdef CONFIG_ADB 339#ifdef CONFIG_ADB
373 if (strstr(cmd_line, "adb_sync")) { 340 if (strstr(cmd_line, "adb_sync")) {
374 extern int __adb_probe_sync; 341 extern int __adb_probe_sync;
@@ -512,6 +479,14 @@ static void __init pmac_init_early(void)
512#ifdef CONFIG_PPC64 479#ifdef CONFIG_PPC64
513 iommu_init_early_dart(); 480 iommu_init_early_dart();
514#endif 481#endif
482
483 /* SMP Init has to be done early as we need to patch up
484 * cpu_possible_map before interrupt stacks are allocated
485 * or kaboom...
486 */
487#ifdef CONFIG_SMP
488 pmac_setup_smp();
489#endif
515} 490}
516 491
517static int __init pmac_declare_of_platform_devices(void) 492static int __init pmac_declare_of_platform_devices(void)
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
index cf1dbe75889..6d4da7b46b4 100644
--- a/arch/powerpc/platforms/powermac/smp.c
+++ b/arch/powerpc/platforms/powermac/smp.c
@@ -64,10 +64,11 @@
64extern void __secondary_start_pmac_0(void); 64extern void __secondary_start_pmac_0(void);
65extern int pmac_pfunc_base_install(void); 65extern int pmac_pfunc_base_install(void);
66 66
67#ifdef CONFIG_PPC32 67static void (*pmac_tb_freeze)(int freeze);
68static u64 timebase;
69static int tb_req;
68 70
69/* Sync flag for HW tb sync */ 71#ifdef CONFIG_PPC32
70static volatile int sec_tb_reset = 0;
71 72
72/* 73/*
73 * Powersurge (old powermac SMP) support. 74 * Powersurge (old powermac SMP) support.
@@ -294,6 +295,9 @@ static int __init smp_psurge_probe(void)
294 psurge_quad_init(); 295 psurge_quad_init();
295 /* All released cards using this HW design have 4 CPUs */ 296 /* All released cards using this HW design have 4 CPUs */
296 ncpus = 4; 297 ncpus = 4;
298 /* No sure how timebase sync works on those, let's use SW */
299 smp_ops->give_timebase = smp_generic_give_timebase;
300 smp_ops->take_timebase = smp_generic_take_timebase;
297 } else { 301 } else {
298 iounmap(quad_base); 302 iounmap(quad_base);
299 if ((in_8(hhead_base + HHEAD_CONFIG) & 0x02) == 0) { 303 if ((in_8(hhead_base + HHEAD_CONFIG) & 0x02) == 0) {
@@ -308,18 +312,15 @@ static int __init smp_psurge_probe(void)
308 psurge_start = ioremap(PSURGE_START, 4); 312 psurge_start = ioremap(PSURGE_START, 4);
309 psurge_pri_intr = ioremap(PSURGE_PRI_INTR, 4); 313 psurge_pri_intr = ioremap(PSURGE_PRI_INTR, 4);
310 314
311 /* 315 /* This is necessary because OF doesn't know about the
312 * This is necessary because OF doesn't know about the
313 * secondary cpu(s), and thus there aren't nodes in the 316 * secondary cpu(s), and thus there aren't nodes in the
314 * device tree for them, and smp_setup_cpu_maps hasn't 317 * device tree for them, and smp_setup_cpu_maps hasn't
315 * set their bits in cpu_possible_map and cpu_present_map. 318 * set their bits in cpu_present_map.
316 */ 319 */
317 if (ncpus > NR_CPUS) 320 if (ncpus > NR_CPUS)
318 ncpus = NR_CPUS; 321 ncpus = NR_CPUS;
319 for (i = 1; i < ncpus ; ++i) { 322 for (i = 1; i < ncpus ; ++i)
320 cpu_set(i, cpu_present_map); 323 cpu_set(i, cpu_present_map);
321 set_hard_smp_processor_id(i, i);
322 }
323 324
324 if (ppc_md.progress) ppc_md.progress("smp_psurge_probe - done", 0x352); 325 if (ppc_md.progress) ppc_md.progress("smp_psurge_probe - done", 0x352);
325 326
@@ -329,8 +330,14 @@ static int __init smp_psurge_probe(void)
329static void __init smp_psurge_kick_cpu(int nr) 330static void __init smp_psurge_kick_cpu(int nr)
330{ 331{
331 unsigned long start = __pa(__secondary_start_pmac_0) + nr * 8; 332 unsigned long start = __pa(__secondary_start_pmac_0) + nr * 8;
332 unsigned long a; 333 unsigned long a, flags;
333 int i; 334 int i, j;
335
336 /* Defining this here is evil ... but I prefer hiding that
337 * crap to avoid giving people ideas that they can do the
338 * same.
339 */
340 extern volatile unsigned int cpu_callin_map[NR_CPUS];
334 341
335 /* may need to flush here if secondary bats aren't setup */ 342 /* may need to flush here if secondary bats aren't setup */
336 for (a = KERNELBASE; a < KERNELBASE + 0x800000; a += 32) 343 for (a = KERNELBASE; a < KERNELBASE + 0x800000; a += 32)
@@ -339,47 +346,52 @@ static void __init smp_psurge_kick_cpu(int nr)
339 346
340 if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu", 0x353); 347 if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu", 0x353);
341 348
349 /* This is going to freeze the timeebase, we disable interrupts */
350 local_irq_save(flags);
351
342 out_be32(psurge_start, start); 352 out_be32(psurge_start, start);
343 mb(); 353 mb();
344 354
345 psurge_set_ipi(nr); 355 psurge_set_ipi(nr);
356
346 /* 357 /*
347 * We can't use udelay here because the timebase is now frozen. 358 * We can't use udelay here because the timebase is now frozen.
348 */ 359 */
349 for (i = 0; i < 2000; ++i) 360 for (i = 0; i < 2000; ++i)
350 barrier(); 361 asm volatile("nop" : : : "memory");
351 psurge_clr_ipi(nr); 362 psurge_clr_ipi(nr);
352 363
353 if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu - done", 0x354); 364 /*
354} 365 * Also, because the timebase is frozen, we must not return to the
355 366 * caller which will try to do udelay's etc... Instead, we wait -here-
356/* 367 * for the CPU to callin.
357 * With the dual-cpu powersurge board, the decrementers and timebases 368 */
358 * of both cpus are frozen after the secondary cpu is started up, 369 for (i = 0; i < 100000 && !cpu_callin_map[nr]; ++i) {
359 * until we give the secondary cpu another interrupt. This routine 370 for (j = 1; j < 10000; j++)
360 * uses this to get the timebases synchronized. 371 asm volatile("nop" : : : "memory");
361 * -- paulus. 372 asm volatile("sync" : : : "memory");
362 */ 373 }
363static void __init psurge_dual_sync_tb(int cpu_nr) 374 if (!cpu_callin_map[nr])
364{ 375 goto stuck;
365 int t; 376
366 377 /* And we do the TB sync here too for standard dual CPU cards */
367 set_dec(tb_ticks_per_jiffy); 378 if (psurge_type == PSURGE_DUAL) {
368 /* XXX fixme */ 379 while(!tb_req)
369 set_tb(0, 0); 380 barrier();
370 381 tb_req = 0;
371 if (cpu_nr > 0) { 382 mb();
383 timebase = get_tb();
384 mb();
385 while (timebase)
386 barrier();
372 mb(); 387 mb();
373 sec_tb_reset = 1;
374 return;
375 } 388 }
389 stuck:
390 /* now interrupt the secondary, restarting both TBs */
391 if (psurge_type == PSURGE_DUAL)
392 psurge_set_ipi(1);
376 393
377 /* wait for the secondary to have reset its TB before proceeding */ 394 if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu - done", 0x354);
378 for (t = 10000000; t > 0 && !sec_tb_reset; --t)
379 ;
380
381 /* now interrupt the secondary, starting both TBs */
382 psurge_set_ipi(1);
383} 395}
384 396
385static struct irqaction psurge_irqaction = { 397static struct irqaction psurge_irqaction = {
@@ -390,36 +402,35 @@ static struct irqaction psurge_irqaction = {
390 402
391static void __init smp_psurge_setup_cpu(int cpu_nr) 403static void __init smp_psurge_setup_cpu(int cpu_nr)
392{ 404{
405 if (cpu_nr != 0)
406 return;
393 407
394 if (cpu_nr == 0) { 408 /* reset the entry point so if we get another intr we won't
395 /* If we failed to start the second CPU, we should still 409 * try to startup again */
396 * send it an IPI to start the timebase & DEC or we might 410 out_be32(psurge_start, 0x100);
397 * have them stuck. 411 if (setup_irq(30, &psurge_irqaction))
398 */ 412 printk(KERN_ERR "Couldn't get primary IPI interrupt");
399 if (num_online_cpus() < 2) {
400 if (psurge_type == PSURGE_DUAL)
401 psurge_set_ipi(1);
402 return;
403 }
404 /* reset the entry point so if we get another intr we won't
405 * try to startup again */
406 out_be32(psurge_start, 0x100);
407 if (setup_irq(30, &psurge_irqaction))
408 printk(KERN_ERR "Couldn't get primary IPI interrupt");
409 }
410
411 if (psurge_type == PSURGE_DUAL)
412 psurge_dual_sync_tb(cpu_nr);
413} 413}
414 414
415void __init smp_psurge_take_timebase(void) 415void __init smp_psurge_take_timebase(void)
416{ 416{
417 /* Dummy implementation */ 417 if (psurge_type != PSURGE_DUAL)
418 return;
419
420 tb_req = 1;
421 mb();
422 while (!timebase)
423 barrier();
424 mb();
425 set_tb(timebase >> 32, timebase & 0xffffffff);
426 timebase = 0;
427 mb();
428 set_dec(tb_ticks_per_jiffy/2);
418} 429}
419 430
420void __init smp_psurge_give_timebase(void) 431void __init smp_psurge_give_timebase(void)
421{ 432{
422 /* Dummy implementation */ 433 /* Nothing to do here */
423} 434}
424 435
425/* PowerSurge-style Macs */ 436/* PowerSurge-style Macs */
@@ -437,9 +448,6 @@ struct smp_ops_t psurge_smp_ops = {
437 * Core 99 and later support 448 * Core 99 and later support
438 */ 449 */
439 450
440static void (*pmac_tb_freeze)(int freeze);
441static u64 timebase;
442static int tb_req;
443 451
444static void smp_core99_give_timebase(void) 452static void smp_core99_give_timebase(void)
445{ 453{
@@ -478,7 +486,6 @@ static void __devinit smp_core99_take_timebase(void)
478 set_tb(timebase >> 32, timebase & 0xffffffff); 486 set_tb(timebase >> 32, timebase & 0xffffffff);
479 timebase = 0; 487 timebase = 0;
480 mb(); 488 mb();
481 set_dec(tb_ticks_per_jiffy/2);
482 489
483 local_irq_restore(flags); 490 local_irq_restore(flags);
484} 491}
@@ -920,3 +927,34 @@ struct smp_ops_t core99_smp_ops = {
920# endif 927# endif
921#endif 928#endif
922}; 929};
930
931void __init pmac_setup_smp(void)
932{
933 struct device_node *np;
934
935 /* Check for Core99 */
936 np = of_find_node_by_name(NULL, "uni-n");
937 if (!np)
938 np = of_find_node_by_name(NULL, "u3");
939 if (!np)
940 np = of_find_node_by_name(NULL, "u4");
941 if (np) {
942 of_node_put(np);
943 smp_ops = &core99_smp_ops;
944 }
945#ifdef CONFIG_PPC32
946 else {
947 /* We have to set bits in cpu_possible_map here since the
948 * secondary CPU(s) aren't in the device tree. Various
949 * things won't be initialized for CPUs not in the possible
950 * map, so we really need to fix it up here.
951 */
952 int cpu;
953
954 for (cpu = 1; cpu < 4 && cpu < NR_CPUS; ++cpu)
955 cpu_set(cpu, cpu_possible_map);
956 smp_ops = &psurge_smp_ops;
957 }
958#endif /* CONFIG_PPC32 */
959}
960
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c
index 9a2a6e32f00..0e8db677125 100644
--- a/arch/powerpc/platforms/pseries/eeh_driver.c
+++ b/arch/powerpc/platforms/pseries/eeh_driver.c
@@ -122,7 +122,7 @@ static void eeh_enable_irq(struct pci_dev *dev)
122 * passed back in "userdata". 122 * passed back in "userdata".
123 */ 123 */
124 124
125static void eeh_report_error(struct pci_dev *dev, void *userdata) 125static int eeh_report_error(struct pci_dev *dev, void *userdata)
126{ 126{
127 enum pci_ers_result rc, *res = userdata; 127 enum pci_ers_result rc, *res = userdata;
128 struct pci_driver *driver = dev->driver; 128 struct pci_driver *driver = dev->driver;
@@ -130,19 +130,21 @@ static void eeh_report_error(struct pci_dev *dev, void *userdata)
130 dev->error_state = pci_channel_io_frozen; 130 dev->error_state = pci_channel_io_frozen;
131 131
132 if (!driver) 132 if (!driver)
133 return; 133 return 0;
134 134
135 eeh_disable_irq(dev); 135 eeh_disable_irq(dev);
136 136
137 if (!driver->err_handler || 137 if (!driver->err_handler ||
138 !driver->err_handler->error_detected) 138 !driver->err_handler->error_detected)
139 return; 139 return 0;
140 140
141 rc = driver->err_handler->error_detected (dev, pci_channel_io_frozen); 141 rc = driver->err_handler->error_detected (dev, pci_channel_io_frozen);
142 142
143 /* A driver that needs a reset trumps all others */ 143 /* A driver that needs a reset trumps all others */
144 if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc; 144 if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
145 if (*res == PCI_ERS_RESULT_NONE) *res = rc; 145 if (*res == PCI_ERS_RESULT_NONE) *res = rc;
146
147 return 0;
146} 148}
147 149
148/** 150/**
@@ -153,7 +155,7 @@ static void eeh_report_error(struct pci_dev *dev, void *userdata)
153 * Cumulative response passed back in "userdata". 155 * Cumulative response passed back in "userdata".
154 */ 156 */
155 157
156static void eeh_report_mmio_enabled(struct pci_dev *dev, void *userdata) 158static int eeh_report_mmio_enabled(struct pci_dev *dev, void *userdata)
157{ 159{
158 enum pci_ers_result rc, *res = userdata; 160 enum pci_ers_result rc, *res = userdata;
159 struct pci_driver *driver = dev->driver; 161 struct pci_driver *driver = dev->driver;
@@ -161,26 +163,28 @@ static void eeh_report_mmio_enabled(struct pci_dev *dev, void *userdata)
161 if (!driver || 163 if (!driver ||
162 !driver->err_handler || 164 !driver->err_handler ||
163 !driver->err_handler->mmio_enabled) 165 !driver->err_handler->mmio_enabled)
164 return; 166 return 0;
165 167
166 rc = driver->err_handler->mmio_enabled (dev); 168 rc = driver->err_handler->mmio_enabled (dev);
167 169
168 /* A driver that needs a reset trumps all others */ 170 /* A driver that needs a reset trumps all others */
169 if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc; 171 if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
170 if (*res == PCI_ERS_RESULT_NONE) *res = rc; 172 if (*res == PCI_ERS_RESULT_NONE) *res = rc;
173
174 return 0;
171} 175}
172 176
173/** 177/**
174 * eeh_report_reset - tell device that slot has been reset 178 * eeh_report_reset - tell device that slot has been reset
175 */ 179 */
176 180
177static void eeh_report_reset(struct pci_dev *dev, void *userdata) 181static int eeh_report_reset(struct pci_dev *dev, void *userdata)
178{ 182{
179 enum pci_ers_result rc, *res = userdata; 183 enum pci_ers_result rc, *res = userdata;
180 struct pci_driver *driver = dev->driver; 184 struct pci_driver *driver = dev->driver;
181 185
182 if (!driver) 186 if (!driver)
183 return; 187 return 0;
184 188
185 dev->error_state = pci_channel_io_normal; 189 dev->error_state = pci_channel_io_normal;
186 190
@@ -188,35 +192,39 @@ static void eeh_report_reset(struct pci_dev *dev, void *userdata)
188 192
189 if (!driver->err_handler || 193 if (!driver->err_handler ||
190 !driver->err_handler->slot_reset) 194 !driver->err_handler->slot_reset)
191 return; 195 return 0;
192 196
193 rc = driver->err_handler->slot_reset(dev); 197 rc = driver->err_handler->slot_reset(dev);
194 if ((*res == PCI_ERS_RESULT_NONE) || 198 if ((*res == PCI_ERS_RESULT_NONE) ||
195 (*res == PCI_ERS_RESULT_RECOVERED)) *res = rc; 199 (*res == PCI_ERS_RESULT_RECOVERED)) *res = rc;
196 if (*res == PCI_ERS_RESULT_DISCONNECT && 200 if (*res == PCI_ERS_RESULT_DISCONNECT &&
197 rc == PCI_ERS_RESULT_NEED_RESET) *res = rc; 201 rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
202
203 return 0;
198} 204}
199 205
200/** 206/**
201 * eeh_report_resume - tell device to resume normal operations 207 * eeh_report_resume - tell device to resume normal operations
202 */ 208 */
203 209
204static void eeh_report_resume(struct pci_dev *dev, void *userdata) 210static int eeh_report_resume(struct pci_dev *dev, void *userdata)
205{ 211{
206 struct pci_driver *driver = dev->driver; 212 struct pci_driver *driver = dev->driver;
207 213
208 dev->error_state = pci_channel_io_normal; 214 dev->error_state = pci_channel_io_normal;
209 215
210 if (!driver) 216 if (!driver)
211 return; 217 return 0;
212 218
213 eeh_enable_irq(dev); 219 eeh_enable_irq(dev);
214 220
215 if (!driver->err_handler || 221 if (!driver->err_handler ||
216 !driver->err_handler->resume) 222 !driver->err_handler->resume)
217 return; 223 return 0;
218 224
219 driver->err_handler->resume(dev); 225 driver->err_handler->resume(dev);
226
227 return 0;
220} 228}
221 229
222/** 230/**
@@ -226,22 +234,24 @@ static void eeh_report_resume(struct pci_dev *dev, void *userdata)
226 * dead, and that no further recovery attempts will be made on it. 234 * dead, and that no further recovery attempts will be made on it.
227 */ 235 */
228 236
229static void eeh_report_failure(struct pci_dev *dev, void *userdata) 237static int eeh_report_failure(struct pci_dev *dev, void *userdata)
230{ 238{
231 struct pci_driver *driver = dev->driver; 239 struct pci_driver *driver = dev->driver;
232 240
233 dev->error_state = pci_channel_io_perm_failure; 241 dev->error_state = pci_channel_io_perm_failure;
234 242
235 if (!driver) 243 if (!driver)
236 return; 244 return 0;
237 245
238 eeh_disable_irq(dev); 246 eeh_disable_irq(dev);
239 247
240 if (!driver->err_handler || 248 if (!driver->err_handler ||
241 !driver->err_handler->error_detected) 249 !driver->err_handler->error_detected)
242 return; 250 return 0;
243 251
244 driver->err_handler->error_detected(dev, pci_channel_io_perm_failure); 252 driver->err_handler->error_detected(dev, pci_channel_io_perm_failure);
253
254 return 0;
245} 255}
246 256
247/* ------------------------------------------------------- */ 257/* ------------------------------------------------------- */
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c
index 1a231c389ba..1f8f6cfb94f 100644
--- a/arch/powerpc/platforms/pseries/smp.c
+++ b/arch/powerpc/platforms/pseries/smp.c
@@ -35,7 +35,6 @@
35#include <asm/prom.h> 35#include <asm/prom.h>
36#include <asm/smp.h> 36#include <asm/smp.h>
37#include <asm/paca.h> 37#include <asm/paca.h>
38#include <asm/time.h>
39#include <asm/machdep.h> 38#include <asm/machdep.h>
40#include <asm/cputable.h> 39#include <asm/cputable.h>
41#include <asm/firmware.h> 40#include <asm/firmware.h>
@@ -118,31 +117,6 @@ static void __devinit smp_xics_setup_cpu(int cpu)
118} 117}
119#endif /* CONFIG_XICS */ 118#endif /* CONFIG_XICS */
120 119
121static DEFINE_SPINLOCK(timebase_lock);
122static unsigned long timebase = 0;
123
124static void __devinit pSeries_give_timebase(void)
125{
126 spin_lock(&timebase_lock);
127 rtas_call(rtas_token("freeze-time-base"), 0, 1, NULL);
128 timebase = get_tb();
129 spin_unlock(&timebase_lock);
130
131 while (timebase)
132 barrier();
133 rtas_call(rtas_token("thaw-time-base"), 0, 1, NULL);
134}
135
136static void __devinit pSeries_take_timebase(void)
137{
138 while (!timebase)
139 barrier();
140 spin_lock(&timebase_lock);
141 set_tb(timebase >> 32, timebase & 0xffffffff);
142 timebase = 0;
143 spin_unlock(&timebase_lock);
144}
145
146static void __devinit smp_pSeries_kick_cpu(int nr) 120static void __devinit smp_pSeries_kick_cpu(int nr)
147{ 121{
148 BUG_ON(nr < 0 || nr >= NR_CPUS); 122 BUG_ON(nr < 0 || nr >= NR_CPUS);
@@ -209,8 +183,8 @@ static void __init smp_init_pseries(void)
209 183
210 /* Non-lpar has additional take/give timebase */ 184 /* Non-lpar has additional take/give timebase */
211 if (rtas_token("freeze-time-base") != RTAS_UNKNOWN_SERVICE) { 185 if (rtas_token("freeze-time-base") != RTAS_UNKNOWN_SERVICE) {
212 smp_ops->give_timebase = pSeries_give_timebase; 186 smp_ops->give_timebase = rtas_give_timebase;
213 smp_ops->take_timebase = pSeries_take_timebase; 187 smp_ops->take_timebase = rtas_take_timebase;
214 } 188 }
215 189
216 pr_debug(" <- smp_init_pSeries()\n"); 190 pr_debug(" <- smp_init_pSeries()\n");
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 9c3af504549..d46de1f0f3e 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -279,28 +279,29 @@ static void _mpic_map_mmio(struct mpic *mpic, phys_addr_t phys_addr,
279} 279}
280 280
281#ifdef CONFIG_PPC_DCR 281#ifdef CONFIG_PPC_DCR
282static void _mpic_map_dcr(struct mpic *mpic, struct mpic_reg_bank *rb, 282static void _mpic_map_dcr(struct mpic *mpic, struct device_node *node,
283 struct mpic_reg_bank *rb,
283 unsigned int offset, unsigned int size) 284 unsigned int offset, unsigned int size)
284{ 285{
285 const u32 *dbasep; 286 const u32 *dbasep;
286 287
287 dbasep = of_get_property(mpic->irqhost->of_node, "dcr-reg", NULL); 288 dbasep = of_get_property(node, "dcr-reg", NULL);
288 289
289 rb->dhost = dcr_map(mpic->irqhost->of_node, *dbasep + offset, size); 290 rb->dhost = dcr_map(node, *dbasep + offset, size);
290 BUG_ON(!DCR_MAP_OK(rb->dhost)); 291 BUG_ON(!DCR_MAP_OK(rb->dhost));
291} 292}
292 293
293static inline void mpic_map(struct mpic *mpic, phys_addr_t phys_addr, 294static inline void mpic_map(struct mpic *mpic, struct device_node *node,
294 struct mpic_reg_bank *rb, unsigned int offset, 295 phys_addr_t phys_addr, struct mpic_reg_bank *rb,
295 unsigned int size) 296 unsigned int offset, unsigned int size)
296{ 297{
297 if (mpic->flags & MPIC_USES_DCR) 298 if (mpic->flags & MPIC_USES_DCR)
298 _mpic_map_dcr(mpic, rb, offset, size); 299 _mpic_map_dcr(mpic, node, rb, offset, size);
299 else 300 else
300 _mpic_map_mmio(mpic, phys_addr, rb, offset, size); 301 _mpic_map_mmio(mpic, phys_addr, rb, offset, size);
301} 302}
302#else /* CONFIG_PPC_DCR */ 303#else /* CONFIG_PPC_DCR */
303#define mpic_map(m,p,b,o,s) _mpic_map_mmio(m,p,b,o,s) 304#define mpic_map(m,n,p,b,o,s) _mpic_map_mmio(m,p,b,o,s)
304#endif /* !CONFIG_PPC_DCR */ 305#endif /* !CONFIG_PPC_DCR */
305 306
306 307
@@ -1052,11 +1053,10 @@ struct mpic * __init mpic_alloc(struct device_node *node,
1052 int intvec_top; 1053 int intvec_top;
1053 u64 paddr = phys_addr; 1054 u64 paddr = phys_addr;
1054 1055
1055 mpic = alloc_bootmem(sizeof(struct mpic)); 1056 mpic = kzalloc(sizeof(struct mpic), GFP_KERNEL);
1056 if (mpic == NULL) 1057 if (mpic == NULL)
1057 return NULL; 1058 return NULL;
1058 1059
1059 memset(mpic, 0, sizeof(struct mpic));
1060 mpic->name = name; 1060 mpic->name = name;
1061 1061
1062 mpic->hc_irq = mpic_irq_chip; 1062 mpic->hc_irq = mpic_irq_chip;
@@ -1152,8 +1152,8 @@ struct mpic * __init mpic_alloc(struct device_node *node,
1152 } 1152 }
1153 1153
1154 /* Map the global registers */ 1154 /* Map the global registers */
1155 mpic_map(mpic, paddr, &mpic->gregs, MPIC_INFO(GREG_BASE), 0x1000); 1155 mpic_map(mpic, node, paddr, &mpic->gregs, MPIC_INFO(GREG_BASE), 0x1000);
1156 mpic_map(mpic, paddr, &mpic->tmregs, MPIC_INFO(TIMER_BASE), 0x1000); 1156 mpic_map(mpic, node, paddr, &mpic->tmregs, MPIC_INFO(TIMER_BASE), 0x1000);
1157 1157
1158 /* Reset */ 1158 /* Reset */
1159 if (flags & MPIC_WANTS_RESET) { 1159 if (flags & MPIC_WANTS_RESET) {
@@ -1194,7 +1194,7 @@ struct mpic * __init mpic_alloc(struct device_node *node,
1194 1194
1195 /* Map the per-CPU registers */ 1195 /* Map the per-CPU registers */
1196 for (i = 0; i < mpic->num_cpus; i++) { 1196 for (i = 0; i < mpic->num_cpus; i++) {
1197 mpic_map(mpic, paddr, &mpic->cpuregs[i], 1197 mpic_map(mpic, node, paddr, &mpic->cpuregs[i],
1198 MPIC_INFO(CPU_BASE) + i * MPIC_INFO(CPU_STRIDE), 1198 MPIC_INFO(CPU_BASE) + i * MPIC_INFO(CPU_STRIDE),
1199 0x1000); 1199 0x1000);
1200 } 1200 }
@@ -1202,7 +1202,7 @@ struct mpic * __init mpic_alloc(struct device_node *node,
1202 /* Initialize main ISU if none provided */ 1202 /* Initialize main ISU if none provided */
1203 if (mpic->isu_size == 0) { 1203 if (mpic->isu_size == 0) {
1204 mpic->isu_size = mpic->num_sources; 1204 mpic->isu_size = mpic->num_sources;
1205 mpic_map(mpic, paddr, &mpic->isus[0], 1205 mpic_map(mpic, node, paddr, &mpic->isus[0],
1206 MPIC_INFO(IRQ_BASE), MPIC_INFO(IRQ_STRIDE) * mpic->isu_size); 1206 MPIC_INFO(IRQ_BASE), MPIC_INFO(IRQ_STRIDE) * mpic->isu_size);
1207 } 1207 }
1208 mpic->isu_shift = 1 + __ilog2(mpic->isu_size - 1); 1208 mpic->isu_shift = 1 + __ilog2(mpic->isu_size - 1);
@@ -1256,8 +1256,10 @@ void __init mpic_assign_isu(struct mpic *mpic, unsigned int isu_num,
1256 1256
1257 BUG_ON(isu_num >= MPIC_MAX_ISU); 1257 BUG_ON(isu_num >= MPIC_MAX_ISU);
1258 1258
1259 mpic_map(mpic, paddr, &mpic->isus[isu_num], 0, 1259 mpic_map(mpic, mpic->irqhost->of_node,
1260 paddr, &mpic->isus[isu_num], 0,
1260 MPIC_INFO(IRQ_STRIDE) * mpic->isu_size); 1261 MPIC_INFO(IRQ_STRIDE) * mpic->isu_size);
1262
1261 if ((isu_first + mpic->isu_size) > mpic->num_sources) 1263 if ((isu_first + mpic->isu_size) > mpic->num_sources)
1262 mpic->num_sources = isu_first + mpic->isu_size; 1264 mpic->num_sources = isu_first + mpic->isu_size;
1263} 1265}
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index a14dba0e4d6..e577839f307 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -94,6 +94,7 @@ config S390
94 select HAVE_KVM if 64BIT 94 select HAVE_KVM if 64BIT
95 select HAVE_ARCH_TRACEHOOK 95 select HAVE_ARCH_TRACEHOOK
96 select INIT_ALL_POSSIBLE 96 select INIT_ALL_POSSIBLE
97 select HAVE_PERF_COUNTERS
97 98
98source "init/Kconfig" 99source "init/Kconfig"
99 100
diff --git a/arch/s390/defconfig b/arch/s390/defconfig
index d401d56c255..fcba206529f 100644
--- a/arch/s390/defconfig
+++ b/arch/s390/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Thu Apr 23 09:29:52 2009 4# Mon Jun 22 11:08:16 2009
5# 5#
6CONFIG_SCHED_MC=y 6CONFIG_SCHED_MC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -25,6 +25,7 @@ CONFIG_VIRT_CPU_ACCOUNTING=y
25CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 25CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
26CONFIG_S390=y 26CONFIG_S390=y
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
28CONFIG_CONSTRUCTORS=y
28 29
29# 30#
30# General setup 31# General setup
@@ -90,7 +91,6 @@ CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
91# CONFIG_KALLSYMS_ALL is not set 92# CONFIG_KALLSYMS_ALL is not set
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
93# CONFIG_STRIP_ASM_SYMS is not set
94CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 95CONFIG_PRINTK=y
96CONFIG_BUG=y 96CONFIG_BUG=y
@@ -103,7 +103,14 @@ CONFIG_TIMERFD=y
103CONFIG_EVENTFD=y 103CONFIG_EVENTFD=y
104CONFIG_SHMEM=y 104CONFIG_SHMEM=y
105CONFIG_AIO=y 105CONFIG_AIO=y
106CONFIG_HAVE_PERF_COUNTERS=y
107
108#
109# Performance Counters
110#
111# CONFIG_PERF_COUNTERS is not set
106CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
113# CONFIG_STRIP_ASM_SYMS is not set
107# CONFIG_COMPAT_BRK is not set 114# CONFIG_COMPAT_BRK is not set
108CONFIG_SLAB=y 115CONFIG_SLAB=y
109# CONFIG_SLUB is not set 116# CONFIG_SLUB is not set
@@ -119,6 +126,11 @@ CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y 126CONFIG_HAVE_ARCH_TRACEHOOK=y
120CONFIG_USE_GENERIC_SMP_HELPERS=y 127CONFIG_USE_GENERIC_SMP_HELPERS=y
121CONFIG_HAVE_DEFAULT_NO_SPIN_MUTEXES=y 128CONFIG_HAVE_DEFAULT_NO_SPIN_MUTEXES=y
129
130#
131# GCOV-based kernel profiling
132#
133# CONFIG_GCOV_KERNEL is not set
122# CONFIG_SLOW_WORK is not set 134# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 135# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 136CONFIG_SLABINFO=y
@@ -150,7 +162,7 @@ CONFIG_DEFAULT_DEADLINE=y
150# CONFIG_DEFAULT_NOOP is not set 162# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="deadline" 163CONFIG_DEFAULT_IOSCHED="deadline"
152CONFIG_PREEMPT_NOTIFIERS=y 164CONFIG_PREEMPT_NOTIFIERS=y
153# CONFIG_FREEZER is not set 165CONFIG_FREEZER=y
154 166
155# 167#
156# Base setup 168# Base setup
@@ -199,6 +211,7 @@ CONFIG_ARCH_SPARSEMEM_DEFAULT=y
199CONFIG_ARCH_SELECT_MEMORY_MODEL=y 211CONFIG_ARCH_SELECT_MEMORY_MODEL=y
200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 213CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
214CONFIG_ARCH_HIBERNATION_POSSIBLE=y
202CONFIG_SELECT_MEMORY_MODEL=y 215CONFIG_SELECT_MEMORY_MODEL=y
203# CONFIG_FLATMEM_MANUAL is not set 216# CONFIG_FLATMEM_MANUAL is not set
204# CONFIG_DISCONTIGMEM_MANUAL is not set 217# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -218,9 +231,9 @@ CONFIG_PHYS_ADDR_T_64BIT=y
218CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
219CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
220CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
221CONFIG_UNEVICTABLE_LRU=y
222CONFIG_HAVE_MLOCK=y 234CONFIG_HAVE_MLOCK=y
223CONFIG_HAVE_MLOCKED_PAGE_BIT=y 235CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
224 237
225# 238#
226# I/O subsystem configuration 239# I/O subsystem configuration
@@ -257,6 +270,16 @@ CONFIG_KEXEC=y
257# CONFIG_ZFCPDUMP is not set 270# CONFIG_ZFCPDUMP is not set
258CONFIG_S390_GUEST=y 271CONFIG_S390_GUEST=y
259CONFIG_SECCOMP=y 272CONFIG_SECCOMP=y
273
274#
275# Power Management
276#
277CONFIG_PM=y
278# CONFIG_PM_DEBUG is not set
279CONFIG_PM_SLEEP_SMP=y
280CONFIG_PM_SLEEP=y
281CONFIG_HIBERNATION=y
282CONFIG_PM_STD_PARTITION=""
260CONFIG_NET=y 283CONFIG_NET=y
261 284
262# 285#
@@ -384,6 +407,7 @@ CONFIG_SCTP_HMAC_MD5=y
384# CONFIG_ECONET is not set 407# CONFIG_ECONET is not set
385# CONFIG_WAN_ROUTER is not set 408# CONFIG_WAN_ROUTER is not set
386# CONFIG_PHONET is not set 409# CONFIG_PHONET is not set
410# CONFIG_IEEE802154 is not set
387CONFIG_NET_SCHED=y 411CONFIG_NET_SCHED=y
388 412
389# 413#
@@ -446,6 +470,7 @@ CONFIG_CAN_BCM=m
446# CAN Device Drivers 470# CAN Device Drivers
447# 471#
448CONFIG_CAN_VCAN=m 472CONFIG_CAN_VCAN=m
473# CONFIG_CAN_DEV is not set
449# CONFIG_CAN_DEBUG_DEVICES is not set 474# CONFIG_CAN_DEBUG_DEVICES is not set
450# CONFIG_AF_RXRPC is not set 475# CONFIG_AF_RXRPC is not set
451# CONFIG_WIMAX is not set 476# CONFIG_WIMAX is not set
@@ -524,10 +549,6 @@ CONFIG_BLK_DEV_SR=y
524CONFIG_BLK_DEV_SR_VENDOR=y 549CONFIG_BLK_DEV_SR_VENDOR=y
525CONFIG_CHR_DEV_SG=y 550CONFIG_CHR_DEV_SG=y
526# CONFIG_CHR_DEV_SCH is not set 551# CONFIG_CHR_DEV_SCH is not set
527
528#
529# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
530#
531CONFIG_SCSI_MULTI_LUN=y 552CONFIG_SCSI_MULTI_LUN=y
532CONFIG_SCSI_CONSTANTS=y 553CONFIG_SCSI_CONSTANTS=y
533CONFIG_SCSI_LOGGING=y 554CONFIG_SCSI_LOGGING=y
@@ -578,7 +599,6 @@ CONFIG_DM_MULTIPATH=m
578# CONFIG_DM_DELAY is not set 599# CONFIG_DM_DELAY is not set
579# CONFIG_DM_UEVENT is not set 600# CONFIG_DM_UEVENT is not set
580CONFIG_NETDEVICES=y 601CONFIG_NETDEVICES=y
581CONFIG_COMPAT_NET_DEV_OPS=y
582# CONFIG_IFB is not set 602# CONFIG_IFB is not set
583CONFIG_DUMMY=m 603CONFIG_DUMMY=m
584CONFIG_BONDING=m 604CONFIG_BONDING=m
@@ -595,6 +615,7 @@ CONFIG_NET_ETHERNET=y
595# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set 615# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
596# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 616# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
597# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 617# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
618# CONFIG_KS8842 is not set
598CONFIG_NETDEV_1000=y 619CONFIG_NETDEV_1000=y
599CONFIG_NETDEV_10000=y 620CONFIG_NETDEV_10000=y
600# CONFIG_TR is not set 621# CONFIG_TR is not set
@@ -674,6 +695,11 @@ CONFIG_S390_TAPE_34XX=m
674# CONFIG_MONREADER is not set 695# CONFIG_MONREADER is not set
675CONFIG_MONWRITER=m 696CONFIG_MONWRITER=m
676CONFIG_S390_VMUR=m 697CONFIG_S390_VMUR=m
698
699#
700# PPS support
701#
702# CONFIG_PPS is not set
677# CONFIG_POWER_SUPPLY is not set 703# CONFIG_POWER_SUPPLY is not set
678# CONFIG_THERMAL is not set 704# CONFIG_THERMAL is not set
679# CONFIG_THERMAL_HWMON is not set 705# CONFIG_THERMAL_HWMON is not set
@@ -683,6 +709,10 @@ CONFIG_S390_VMUR=m
683# CONFIG_NEW_LEDS is not set 709# CONFIG_NEW_LEDS is not set
684CONFIG_ACCESSIBILITY=y 710CONFIG_ACCESSIBILITY=y
685# CONFIG_AUXDISPLAY is not set 711# CONFIG_AUXDISPLAY is not set
712
713#
714# TI VLYNQ
715#
686# CONFIG_STAGING is not set 716# CONFIG_STAGING is not set
687 717
688# 718#
@@ -703,11 +733,12 @@ CONFIG_FS_MBCACHE=y
703# CONFIG_REISERFS_FS is not set 733# CONFIG_REISERFS_FS is not set
704# CONFIG_JFS_FS is not set 734# CONFIG_JFS_FS is not set
705CONFIG_FS_POSIX_ACL=y 735CONFIG_FS_POSIX_ACL=y
706CONFIG_FILE_LOCKING=y
707# CONFIG_XFS_FS is not set 736# CONFIG_XFS_FS is not set
708# CONFIG_GFS2_FS is not set 737# CONFIG_GFS2_FS is not set
709# CONFIG_OCFS2_FS is not set 738# CONFIG_OCFS2_FS is not set
710# CONFIG_BTRFS_FS is not set 739# CONFIG_BTRFS_FS is not set
740CONFIG_FILE_LOCKING=y
741CONFIG_FSNOTIFY=y
711CONFIG_DNOTIFY=y 742CONFIG_DNOTIFY=y
712CONFIG_INOTIFY=y 743CONFIG_INOTIFY=y
713CONFIG_INOTIFY_USER=y 744CONFIG_INOTIFY_USER=y
@@ -865,19 +896,23 @@ CONFIG_DEBUG_MEMORY_INIT=y
865CONFIG_SYSCTL_SYSCALL_CHECK=y 896CONFIG_SYSCTL_SYSCALL_CHECK=y
866# CONFIG_DEBUG_PAGEALLOC is not set 897# CONFIG_DEBUG_PAGEALLOC is not set
867CONFIG_HAVE_FUNCTION_TRACER=y 898CONFIG_HAVE_FUNCTION_TRACER=y
899CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
900CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
901CONFIG_HAVE_DYNAMIC_FTRACE=y
902CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
903CONFIG_HAVE_FTRACE_SYSCALLS=y
868CONFIG_TRACING_SUPPORT=y 904CONFIG_TRACING_SUPPORT=y
869 905CONFIG_FTRACE=y
870#
871# Tracers
872#
873# CONFIG_FUNCTION_TRACER is not set 906# CONFIG_FUNCTION_TRACER is not set
874# CONFIG_IRQSOFF_TRACER is not set 907# CONFIG_IRQSOFF_TRACER is not set
875# CONFIG_PREEMPT_TRACER is not set 908# CONFIG_PREEMPT_TRACER is not set
876# CONFIG_SCHED_TRACER is not set 909# CONFIG_SCHED_TRACER is not set
877# CONFIG_CONTEXT_SWITCH_TRACER is not set 910# CONFIG_ENABLE_DEFAULT_TRACERS is not set
878# CONFIG_EVENT_TRACER is not set 911# CONFIG_FTRACE_SYSCALLS is not set
879# CONFIG_BOOT_TRACER is not set 912# CONFIG_BOOT_TRACER is not set
880# CONFIG_TRACE_BRANCH_PROFILING is not set 913CONFIG_BRANCH_PROFILE_NONE=y
914# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
915# CONFIG_PROFILE_ALL_BRANCHES is not set
881# CONFIG_STACK_TRACER is not set 916# CONFIG_STACK_TRACER is not set
882# CONFIG_KMEMTRACE is not set 917# CONFIG_KMEMTRACE is not set
883# CONFIG_WORKQUEUE_TRACER is not set 918# CONFIG_WORKQUEUE_TRACER is not set
@@ -886,6 +921,7 @@ CONFIG_TRACING_SUPPORT=y
886CONFIG_SAMPLES=y 921CONFIG_SAMPLES=y
887# CONFIG_SAMPLE_KOBJECT is not set 922# CONFIG_SAMPLE_KOBJECT is not set
888# CONFIG_SAMPLE_KPROBES is not set 923# CONFIG_SAMPLE_KPROBES is not set
924# CONFIG_KMEMCHECK is not set
889 925
890# 926#
891# Security options 927# Security options
diff --git a/arch/s390/include/asm/cputime.h b/arch/s390/include/asm/cputime.h
index ec917d42ee6..7a3817a656d 100644
--- a/arch/s390/include/asm/cputime.h
+++ b/arch/s390/include/asm/cputime.h
@@ -178,7 +178,7 @@ cputime64_to_clock_t(cputime64_t cputime)
178} 178}
179 179
180struct s390_idle_data { 180struct s390_idle_data {
181 spinlock_t lock; 181 unsigned int sequence;
182 unsigned long long idle_count; 182 unsigned long long idle_count;
183 unsigned long long idle_enter; 183 unsigned long long idle_enter;
184 unsigned long long idle_time; 184 unsigned long long idle_time;
diff --git a/arch/s390/include/asm/debug.h b/arch/s390/include/asm/debug.h
index 9450ce6e32d..31ed5686a96 100644
--- a/arch/s390/include/asm/debug.h
+++ b/arch/s390/include/asm/debug.h
@@ -248,14 +248,5 @@ int debug_unregister_view(debug_info_t* id, struct debug_view* view);
248#define PRINT_FATAL(x...) printk ( KERN_DEBUG PRINTK_HEADER x ) 248#define PRINT_FATAL(x...) printk ( KERN_DEBUG PRINTK_HEADER x )
249#endif /* DASD_DEBUG */ 249#endif /* DASD_DEBUG */
250 250
251#undef DEBUG_MALLOC
252#ifdef DEBUG_MALLOC
253void *b;
254#define kmalloc(x...) (PRINT_INFO(" kmalloc %p\n",b=kmalloc(x)),b)
255#define kfree(x) PRINT_INFO(" kfree %p\n",x);kfree(x)
256#define get_zeroed_page(x...) (PRINT_INFO(" gfp %p\n",b=get_zeroed_page(x)),b)
257#define __get_free_pages(x...) (PRINT_INFO(" gfps %p\n",b=__get_free_pages(x)),b)
258#endif /* DEBUG_MALLOC */
259
260#endif /* __KERNEL__ */ 251#endif /* __KERNEL__ */
261#endif /* DEBUG_H */ 252#endif /* DEBUG_H */
diff --git a/arch/s390/include/asm/perf_counter.h b/arch/s390/include/asm/perf_counter.h
new file mode 100644
index 00000000000..a7205a3828c
--- /dev/null
+++ b/arch/s390/include/asm/perf_counter.h
@@ -0,0 +1,8 @@
1/*
2 * Performance counter support - s390 specific definitions.
3 *
4 * Copyright 2009 Martin Schwidefsky, IBM Corporation.
5 */
6
7static inline void set_perf_counter_pending(void) {}
8static inline void clear_perf_counter_pending(void) {}
diff --git a/arch/s390/include/asm/qdio.h b/arch/s390/include/asm/qdio.h
index 402d6dcf0d2..79d849f014f 100644
--- a/arch/s390/include/asm/qdio.h
+++ b/arch/s390/include/asm/qdio.h
@@ -380,7 +380,7 @@ extern int qdio_establish(struct qdio_initialize *);
380extern int qdio_activate(struct ccw_device *); 380extern int qdio_activate(struct ccw_device *);
381 381
382extern int do_QDIO(struct ccw_device *cdev, unsigned int callflags, 382extern int do_QDIO(struct ccw_device *cdev, unsigned int callflags,
383 int q_nr, int bufnr, int count); 383 int q_nr, unsigned int bufnr, unsigned int count);
384extern int qdio_cleanup(struct ccw_device*, int); 384extern int qdio_cleanup(struct ccw_device*, int);
385extern int qdio_shutdown(struct ccw_device*, int); 385extern int qdio_shutdown(struct ccw_device*, int);
386extern int qdio_free(struct ccw_device *); 386extern int qdio_free(struct ccw_device *);
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
index 002c70d3cb7..9ab188d67a3 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -461,9 +461,6 @@ asmlinkage long sys32_execve(void)
461 result = rc; 461 result = rc;
462 goto out_putname; 462 goto out_putname;
463 } 463 }
464 task_lock(current);
465 current->ptrace &= ~PT_DTRACE;
466 task_unlock(current);
467 current->thread.fp_regs.fpc=0; 464 current->thread.fp_regs.fpc=0;
468 asm volatile("sfpc %0,0" : : "d" (0)); 465 asm volatile("sfpc %0,0" : : "d" (0));
469 result = regs->gprs[2]; 466 result = regs->gprs[2];
diff --git a/arch/s390/kernel/ftrace.c b/arch/s390/kernel/ftrace.c
index 82ddfd3a75a..3e298e64f0d 100644
--- a/arch/s390/kernel/ftrace.c
+++ b/arch/s390/kernel/ftrace.c
@@ -190,7 +190,7 @@ unsigned long prepare_ftrace_return(unsigned long ip, unsigned long parent)
190 goto out; 190 goto out;
191 if (unlikely(atomic_read(&current->tracing_graph_pause))) 191 if (unlikely(atomic_read(&current->tracing_graph_pause)))
192 goto out; 192 goto out;
193 if (ftrace_push_return_trace(parent, ip, &trace.depth) == -EBUSY) 193 if (ftrace_push_return_trace(parent, ip, &trace.depth, 0) == -EBUSY)
194 goto out; 194 goto out;
195 trace.func = ftrace_mcount_call_adjust(ip) & PSW_ADDR_INSN; 195 trace.func = ftrace_mcount_call_adjust(ip) & PSW_ADDR_INSN;
196 /* Only trace if the calling function expects to. */ 196 /* Only trace if the calling function expects to. */
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c
index 9bb2f6241d9..86783efa24e 100644
--- a/arch/s390/kernel/kprobes.c
+++ b/arch/s390/kernel/kprobes.c
@@ -154,39 +154,35 @@ void __kprobes get_instruction_type(struct arch_specific_insn *ainsn)
154 154
155static int __kprobes swap_instruction(void *aref) 155static int __kprobes swap_instruction(void *aref)
156{ 156{
157 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
158 unsigned long status = kcb->kprobe_status;
157 struct ins_replace_args *args = aref; 159 struct ins_replace_args *args = aref;
160 int rc;
158 161
159 return probe_kernel_write(args->ptr, &args->new, sizeof(args->new)); 162 kcb->kprobe_status = KPROBE_SWAP_INST;
163 rc = probe_kernel_write(args->ptr, &args->new, sizeof(args->new));
164 kcb->kprobe_status = status;
165 return rc;
160} 166}
161 167
162void __kprobes arch_arm_kprobe(struct kprobe *p) 168void __kprobes arch_arm_kprobe(struct kprobe *p)
163{ 169{
164 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
165 unsigned long status = kcb->kprobe_status;
166 struct ins_replace_args args; 170 struct ins_replace_args args;
167 171
168 args.ptr = p->addr; 172 args.ptr = p->addr;
169 args.old = p->opcode; 173 args.old = p->opcode;
170 args.new = BREAKPOINT_INSTRUCTION; 174 args.new = BREAKPOINT_INSTRUCTION;
171
172 kcb->kprobe_status = KPROBE_SWAP_INST;
173 stop_machine(swap_instruction, &args, NULL); 175 stop_machine(swap_instruction, &args, NULL);
174 kcb->kprobe_status = status;
175} 176}
176 177
177void __kprobes arch_disarm_kprobe(struct kprobe *p) 178void __kprobes arch_disarm_kprobe(struct kprobe *p)
178{ 179{
179 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
180 unsigned long status = kcb->kprobe_status;
181 struct ins_replace_args args; 180 struct ins_replace_args args;
182 181
183 args.ptr = p->addr; 182 args.ptr = p->addr;
184 args.old = BREAKPOINT_INSTRUCTION; 183 args.old = BREAKPOINT_INSTRUCTION;
185 args.new = p->opcode; 184 args.new = p->opcode;
186
187 kcb->kprobe_status = KPROBE_SWAP_INST;
188 stop_machine(swap_instruction, &args, NULL); 185 stop_machine(swap_instruction, &args, NULL);
189 kcb->kprobe_status = status;
190} 186}
191 187
192void __kprobes arch_remove_kprobe(struct kprobe *p) 188void __kprobes arch_remove_kprobe(struct kprobe *p)
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index 355f7a30c3f..5a43f27eec1 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -266,9 +266,6 @@ SYSCALL_DEFINE0(vfork)
266 266
267asmlinkage void execve_tail(void) 267asmlinkage void execve_tail(void)
268{ 268{
269 task_lock(current);
270 current->ptrace &= ~PT_DTRACE;
271 task_unlock(current);
272 current->thread.fp_regs.fpc = 0; 269 current->thread.fp_regs.fpc = 0;
273 if (MACHINE_HAS_IEEE) 270 if (MACHINE_HAS_IEEE)
274 asm volatile("sfpc %0,%0" : : "d" (0)); 271 asm volatile("sfpc %0,%0" : : "d" (0));
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index fd8e3111a4e..2270730f535 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -856,13 +856,20 @@ static ssize_t show_idle_count(struct sys_device *dev,
856{ 856{
857 struct s390_idle_data *idle; 857 struct s390_idle_data *idle;
858 unsigned long long idle_count; 858 unsigned long long idle_count;
859 unsigned int sequence;
859 860
860 idle = &per_cpu(s390_idle, dev->id); 861 idle = &per_cpu(s390_idle, dev->id);
861 spin_lock(&idle->lock); 862repeat:
863 sequence = idle->sequence;
864 smp_rmb();
865 if (sequence & 1)
866 goto repeat;
862 idle_count = idle->idle_count; 867 idle_count = idle->idle_count;
863 if (idle->idle_enter) 868 if (idle->idle_enter)
864 idle_count++; 869 idle_count++;
865 spin_unlock(&idle->lock); 870 smp_rmb();
871 if (idle->sequence != sequence)
872 goto repeat;
866 return sprintf(buf, "%llu\n", idle_count); 873 return sprintf(buf, "%llu\n", idle_count);
867} 874}
868static SYSDEV_ATTR(idle_count, 0444, show_idle_count, NULL); 875static SYSDEV_ATTR(idle_count, 0444, show_idle_count, NULL);
@@ -872,15 +879,22 @@ static ssize_t show_idle_time(struct sys_device *dev,
872{ 879{
873 struct s390_idle_data *idle; 880 struct s390_idle_data *idle;
874 unsigned long long now, idle_time, idle_enter; 881 unsigned long long now, idle_time, idle_enter;
882 unsigned int sequence;
875 883
876 idle = &per_cpu(s390_idle, dev->id); 884 idle = &per_cpu(s390_idle, dev->id);
877 spin_lock(&idle->lock);
878 now = get_clock(); 885 now = get_clock();
886repeat:
887 sequence = idle->sequence;
888 smp_rmb();
889 if (sequence & 1)
890 goto repeat;
879 idle_time = idle->idle_time; 891 idle_time = idle->idle_time;
880 idle_enter = idle->idle_enter; 892 idle_enter = idle->idle_enter;
881 if (idle_enter != 0ULL && idle_enter < now) 893 if (idle_enter != 0ULL && idle_enter < now)
882 idle_time += now - idle_enter; 894 idle_time += now - idle_enter;
883 spin_unlock(&idle->lock); 895 smp_rmb();
896 if (idle->sequence != sequence)
897 goto repeat;
884 return sprintf(buf, "%llu\n", idle_time >> 12); 898 return sprintf(buf, "%llu\n", idle_time >> 12);
885} 899}
886static SYSDEV_ATTR(idle_time_us, 0444, show_idle_time, NULL); 900static SYSDEV_ATTR(idle_time_us, 0444, show_idle_time, NULL);
@@ -908,11 +922,7 @@ static int __cpuinit smp_cpu_notify(struct notifier_block *self,
908 case CPU_ONLINE: 922 case CPU_ONLINE:
909 case CPU_ONLINE_FROZEN: 923 case CPU_ONLINE_FROZEN:
910 idle = &per_cpu(s390_idle, cpu); 924 idle = &per_cpu(s390_idle, cpu);
911 spin_lock_irq(&idle->lock); 925 memset(idle, 0, sizeof(struct s390_idle_data));
912 idle->idle_enter = 0;
913 idle->idle_time = 0;
914 idle->idle_count = 0;
915 spin_unlock_irq(&idle->lock);
916 if (sysfs_create_group(&s->kobj, &cpu_online_attr_group)) 926 if (sysfs_create_group(&s->kobj, &cpu_online_attr_group))
917 return NOTIFY_BAD; 927 return NOTIFY_BAD;
918 break; 928 break;
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index 215330a2c12..d4c8e9c47c8 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -36,7 +36,6 @@
36#include <linux/notifier.h> 36#include <linux/notifier.h>
37#include <linux/clocksource.h> 37#include <linux/clocksource.h>
38#include <linux/clockchips.h> 38#include <linux/clockchips.h>
39#include <linux/bootmem.h>
40#include <asm/uaccess.h> 39#include <asm/uaccess.h>
41#include <asm/delay.h> 40#include <asm/delay.h>
42#include <asm/s390_ext.h> 41#include <asm/s390_ext.h>
@@ -62,9 +61,6 @@
62 61
63u64 sched_clock_base_cc = -1; /* Force to data section. */ 62u64 sched_clock_base_cc = -1; /* Force to data section. */
64 63
65static ext_int_info_t ext_int_info_cc;
66static ext_int_info_t ext_int_etr_cc;
67
68static DEFINE_PER_CPU(struct clock_event_device, comparators); 64static DEFINE_PER_CPU(struct clock_event_device, comparators);
69 65
70/* 66/*
@@ -255,15 +251,11 @@ void __init time_init(void)
255 stp_reset(); 251 stp_reset();
256 252
257 /* request the clock comparator external interrupt */ 253 /* request the clock comparator external interrupt */
258 if (register_early_external_interrupt(0x1004, 254 if (register_external_interrupt(0x1004, clock_comparator_interrupt))
259 clock_comparator_interrupt,
260 &ext_int_info_cc) != 0)
261 panic("Couldn't request external interrupt 0x1004"); 255 panic("Couldn't request external interrupt 0x1004");
262 256
263 /* request the timing alert external interrupt */ 257 /* request the timing alert external interrupt */
264 if (register_early_external_interrupt(0x1406, 258 if (register_external_interrupt(0x1406, timing_alert_interrupt))
265 timing_alert_interrupt,
266 &ext_int_etr_cc) != 0)
267 panic("Couldn't request external interrupt 0x1406"); 259 panic("Couldn't request external interrupt 0x1406");
268 260
269 if (clocksource_register(&clocksource_tod) != 0) 261 if (clocksource_register(&clocksource_tod) != 0)
@@ -1445,14 +1437,14 @@ static void __init stp_reset(void)
1445{ 1437{
1446 int rc; 1438 int rc;
1447 1439
1448 stp_page = alloc_bootmem_pages(PAGE_SIZE); 1440 stp_page = (void *) get_zeroed_page(GFP_ATOMIC);
1449 rc = chsc_sstpc(stp_page, STP_OP_CTRL, 0x0000); 1441 rc = chsc_sstpc(stp_page, STP_OP_CTRL, 0x0000);
1450 if (rc == 0) 1442 if (rc == 0)
1451 set_bit(CLOCK_SYNC_HAS_STP, &clock_sync_flags); 1443 set_bit(CLOCK_SYNC_HAS_STP, &clock_sync_flags);
1452 else if (stp_online) { 1444 else if (stp_online) {
1453 pr_warning("The real or virtual hardware system does " 1445 pr_warning("The real or virtual hardware system does "
1454 "not provide an STP interface\n"); 1446 "not provide an STP interface\n");
1455 free_bootmem((unsigned long) stp_page, PAGE_SIZE); 1447 free_page((unsigned long) stp_page);
1456 stp_page = NULL; 1448 stp_page = NULL;
1457 stp_online = 0; 1449 stp_online = 0;
1458 } 1450 }
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index c8eb7255332..c41bb0d416e 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -25,13 +25,9 @@
25#include <asm/irq_regs.h> 25#include <asm/irq_regs.h>
26#include <asm/cputime.h> 26#include <asm/cputime.h>
27 27
28static ext_int_info_t ext_int_info_timer;
29
30static DEFINE_PER_CPU(struct vtimer_queue, virt_cpu_timer); 28static DEFINE_PER_CPU(struct vtimer_queue, virt_cpu_timer);
31 29
32DEFINE_PER_CPU(struct s390_idle_data, s390_idle) = { 30DEFINE_PER_CPU(struct s390_idle_data, s390_idle);
33 .lock = __SPIN_LOCK_UNLOCKED(s390_idle.lock)
34};
35 31
36static inline __u64 get_vtimer(void) 32static inline __u64 get_vtimer(void)
37{ 33{
@@ -153,11 +149,13 @@ void vtime_start_cpu(void)
153 vq->elapsed -= vq->idle - S390_lowcore.async_enter_timer; 149 vq->elapsed -= vq->idle - S390_lowcore.async_enter_timer;
154 } 150 }
155 151
156 spin_lock(&idle->lock); 152 idle->sequence++;
153 smp_wmb();
157 idle->idle_time += idle_time; 154 idle->idle_time += idle_time;
158 idle->idle_enter = 0ULL; 155 idle->idle_enter = 0ULL;
159 idle->idle_count++; 156 idle->idle_count++;
160 spin_unlock(&idle->lock); 157 smp_wmb();
158 idle->sequence++;
161} 159}
162 160
163void vtime_stop_cpu(void) 161void vtime_stop_cpu(void)
@@ -244,15 +242,23 @@ cputime64_t s390_get_idle_time(int cpu)
244{ 242{
245 struct s390_idle_data *idle; 243 struct s390_idle_data *idle;
246 unsigned long long now, idle_time, idle_enter; 244 unsigned long long now, idle_time, idle_enter;
245 unsigned int sequence;
247 246
248 idle = &per_cpu(s390_idle, cpu); 247 idle = &per_cpu(s390_idle, cpu);
249 spin_lock(&idle->lock); 248
250 now = get_clock(); 249 now = get_clock();
250repeat:
251 sequence = idle->sequence;
252 smp_rmb();
253 if (sequence & 1)
254 goto repeat;
251 idle_time = 0; 255 idle_time = 0;
252 idle_enter = idle->idle_enter; 256 idle_enter = idle->idle_enter;
253 if (idle_enter != 0ULL && idle_enter < now) 257 if (idle_enter != 0ULL && idle_enter < now)
254 idle_time = now - idle_enter; 258 idle_time = now - idle_enter;
255 spin_unlock(&idle->lock); 259 smp_rmb();
260 if (idle->sequence != sequence)
261 goto repeat;
256 return idle_time; 262 return idle_time;
257} 263}
258 264
@@ -557,8 +563,7 @@ void init_cpu_vtimer(void)
557void __init vtime_init(void) 563void __init vtime_init(void)
558{ 564{
559 /* request the cpu timer external interrupt */ 565 /* request the cpu timer external interrupt */
560 if (register_early_external_interrupt(0x1005, do_cpu_timer_interrupt, 566 if (register_external_interrupt(0x1005, do_cpu_timer_interrupt))
561 &ext_int_info_timer) != 0)
562 panic("Couldn't request external interrupt 0x1005"); 567 panic("Couldn't request external interrupt 0x1005");
563 568
564 /* Enable cpu timer interrupts on the boot cpu. */ 569 /* Enable cpu timer interrupts on the boot cpu. */
diff --git a/arch/s390/lib/uaccess_pt.c b/arch/s390/lib/uaccess_pt.c
index b0b84c35b0a..cb5d59eab0e 100644
--- a/arch/s390/lib/uaccess_pt.c
+++ b/arch/s390/lib/uaccess_pt.c
@@ -66,7 +66,7 @@ static int __handle_fault(struct mm_struct *mm, unsigned long address,
66 } 66 }
67 67
68survive: 68survive:
69 fault = handle_mm_fault(mm, vma, address, write_access); 69 fault = handle_mm_fault(mm, vma, address, write_access ? FAULT_FLAG_WRITE : 0);
70 if (unlikely(fault & VM_FAULT_ERROR)) { 70 if (unlikely(fault & VM_FAULT_ERROR)) {
71 if (fault & VM_FAULT_OOM) 71 if (fault & VM_FAULT_OOM)
72 goto out_of_memory; 72 goto out_of_memory;
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 220a152c836..74eb26bf197 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -352,7 +352,7 @@ good_area:
352 * make sure we exit gracefully rather than endlessly redo 352 * make sure we exit gracefully rather than endlessly redo
353 * the fault. 353 * the fault.
354 */ 354 */
355 fault = handle_mm_fault(mm, vma, address, write); 355 fault = handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0);
356 if (unlikely(fault & VM_FAULT_ERROR)) { 356 if (unlikely(fault & VM_FAULT_ERROR)) {
357 if (fault & VM_FAULT_OOM) { 357 if (fault & VM_FAULT_OOM) {
358 up_read(&mm->mmap_sem); 358 up_read(&mm->mmap_sem);
diff --git a/arch/s390/power/swsusp_asm64.S b/arch/s390/power/swsusp_asm64.S
index 3c74e7d827c..76d688da32f 100644
--- a/arch/s390/power/swsusp_asm64.S
+++ b/arch/s390/power/swsusp_asm64.S
@@ -109,10 +109,11 @@ swsusp_arch_resume:
109 aghi %r15,-STACK_FRAME_OVERHEAD 109 aghi %r15,-STACK_FRAME_OVERHEAD
110 stg %r1,__SF_BACKCHAIN(%r15) 110 stg %r1,__SF_BACKCHAIN(%r15)
111 111
112#ifdef CONFIG_SMP
112 /* Save boot cpu number */ 113 /* Save boot cpu number */
113 brasl %r14,smp_get_phys_cpu_id 114 brasl %r14,smp_get_phys_cpu_id
114 lgr %r10,%r2 115 lgr %r10,%r2
115 116#endif
116 /* Deactivate DAT */ 117 /* Deactivate DAT */
117 stnsm __SF_EMPTY(%r15),0xfb 118 stnsm __SF_EMPTY(%r15),0xfb
118 119
@@ -177,11 +178,12 @@ swsusp_arch_resume:
177 /* Pointer to save arae */ 178 /* Pointer to save arae */
178 lghi %r13,0x1000 179 lghi %r13,0x1000
179 180
181#ifdef CONFIG_SMP
180 /* Switch CPUs */ 182 /* Switch CPUs */
181 lgr %r2,%r10 /* get cpu id */ 183 lgr %r2,%r10 /* get cpu id */
182 llgf %r3,0x318(%r13) 184 llgf %r3,0x318(%r13)
183 brasl %r14,smp_switch_boot_cpu_in_resume 185 brasl %r14,smp_switch_boot_cpu_in_resume
184 186#endif
185 /* Restore prefix register */ 187 /* Restore prefix register */
186 spx 0x318(%r13) 188 spx 0x318(%r13)
187 189
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 586cd045e2d..e2bdd7b94fd 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -15,7 +15,9 @@ config SUPERH
15 select HAVE_IOREMAP_PROT if MMU 15 select HAVE_IOREMAP_PROT if MMU
16 select HAVE_ARCH_TRACEHOOK 16 select HAVE_ARCH_TRACEHOOK
17 select HAVE_DMA_API_DEBUG 17 select HAVE_DMA_API_DEBUG
18 select HAVE_PERF_COUNTERS
18 select RTC_LIB 19 select RTC_LIB
20 select GENERIC_ATOMIC64
19 help 21 help
20 The SuperH is a RISC processor targeted for use in embedded systems 22 The SuperH is a RISC processor targeted for use in embedded systems
21 and consumer electronics; it was also used in the Sega Dreamcast 23 and consumer electronics; it was also used in the Sega Dreamcast
@@ -50,6 +52,10 @@ config GENERIC_BUG
50 def_bool y 52 def_bool y
51 depends on BUG && SUPERH32 53 depends on BUG && SUPERH32
52 54
55config GENERIC_CSUM
56 def_bool y
57 depends on SUPERH64
58
53config GENERIC_FIND_NEXT_BIT 59config GENERIC_FIND_NEXT_BIT
54 def_bool y 60 def_bool y
55 61
@@ -65,6 +71,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
65config GENERIC_IRQ_PROBE 71config GENERIC_IRQ_PROBE
66 def_bool y 72 def_bool y
67 73
74config IRQ_PER_CPU
75 def_bool y
76
68config GENERIC_GPIO 77config GENERIC_GPIO
69 def_bool n 78 def_bool n
70 79
@@ -145,6 +154,9 @@ config ARCH_NO_VIRT_TO_BUS
145config ARCH_HAS_DEFAULT_IDLE 154config ARCH_HAS_DEFAULT_IDLE
146 def_bool y 155 def_bool y
147 156
157config ARCH_HAS_CPU_IDLE_WAIT
158 def_bool y
159
148config IO_TRAPPED 160config IO_TRAPPED
149 bool 161 bool
150 162
@@ -405,6 +417,8 @@ config CPU_SUBTYPE_SH7786
405 select CPU_HAS_PTEAEX 417 select CPU_HAS_PTEAEX
406 select ARCH_SPARSEMEM_ENABLE 418 select ARCH_SPARSEMEM_ENABLE
407 select SYS_SUPPORTS_NUMA 419 select SYS_SUPPORTS_NUMA
420 select SYS_SUPPORTS_SMP
421 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
408 422
409config CPU_SUBTYPE_SHX3 423config CPU_SUBTYPE_SHX3
410 bool "Support SH-X3 processor" 424 bool "Support SH-X3 processor"
@@ -642,7 +656,7 @@ config NR_CPUS
642 int "Maximum number of CPUs (2-32)" 656 int "Maximum number of CPUs (2-32)"
643 range 2 32 657 range 2 32
644 depends on SMP 658 depends on SMP
645 default "4" if CPU_SHX3 659 default "4" if CPU_SUBTYPE_SHX3
646 default "2" 660 default "2"
647 help 661 help
648 This allows you to specify the maximum number of CPUs which this 662 This allows you to specify the maximum number of CPUs which this
diff --git a/arch/sh/Kconfig.debug b/arch/sh/Kconfig.debug
index 8179cc9be9a..8ece0b5bd02 100644
--- a/arch/sh/Kconfig.debug
+++ b/arch/sh/Kconfig.debug
@@ -39,6 +39,7 @@ config EARLY_SCIF_CONSOLE_PORT
39 CPU_SUBTYPE_SH7722 || CPU_SUBTYPE_SH7366 || \ 39 CPU_SUBTYPE_SH7722 || CPU_SUBTYPE_SH7366 || \
40 CPU_SUBTYPE_SH7343 40 CPU_SUBTYPE_SH7343
41 default "0xffea0000" if CPU_SUBTYPE_SH7785 41 default "0xffea0000" if CPU_SUBTYPE_SH7785
42 default "0xffeb0000" if CPU_SUBTYPE_SH7786
42 default "0xfffe8000" if CPU_SUBTYPE_SH7203 43 default "0xfffe8000" if CPU_SUBTYPE_SH7203
43 default "0xfffe9800" if CPU_SUBTYPE_SH7206 || CPU_SUBTYPE_SH7263 44 default "0xfffe9800" if CPU_SUBTYPE_SH7206 || CPU_SUBTYPE_SH7263
44 default "0xffe80000" if CPU_SH4 45 default "0xffe80000" if CPU_SH4
diff --git a/arch/sh/boards/Kconfig b/arch/sh/boards/Kconfig
index 1c91b1f565d..2b1af0eefa6 100644
--- a/arch/sh/boards/Kconfig
+++ b/arch/sh/boards/Kconfig
@@ -175,6 +175,7 @@ config SH_URQUELL
175 bool "Urquell" 175 bool "Urquell"
176 depends on CPU_SUBTYPE_SH7786 176 depends on CPU_SUBTYPE_SH7786
177 select ARCH_REQUIRE_GPIOLIB 177 select ARCH_REQUIRE_GPIOLIB
178 select SYS_SUPPORTS_PCI
178 179
179config SH_MIGOR 180config SH_MIGOR
180 bool "Migo-R" 181 bool "Migo-R"
diff --git a/arch/sh/boards/board-ap325rxa.c b/arch/sh/boards/board-ap325rxa.c
index 1c4d83ef2a4..7ffd1b4315b 100644
--- a/arch/sh/boards/board-ap325rxa.c
+++ b/arch/sh/boards/board-ap325rxa.c
@@ -349,15 +349,6 @@ static int ov7725_power(struct device *dev, int mode)
349 return 0; 349 return 0;
350} 350}
351 351
352static struct ov772x_camera_info ov7725_info = {
353 .buswidth = SOCAM_DATAWIDTH_8,
354 .flags = OV772X_FLAG_VFLIP | OV772X_FLAG_HFLIP,
355 .edgectrl = OV772X_AUTO_EDGECTRL(0xf, 0),
356 .link = {
357 .power = ov7725_power,
358 },
359};
360
361static struct sh_mobile_ceu_info sh_mobile_ceu_info = { 352static struct sh_mobile_ceu_info sh_mobile_ceu_info = {
362 .flags = SH_CEU_FLAG_USE_8BIT_BUS, 353 .flags = SH_CEU_FLAG_USE_8BIT_BUS,
363}; 354};
@@ -402,25 +393,48 @@ static struct platform_device sdcard_cn3_device = {
402 }, 393 },
403}; 394};
404 395
405static struct platform_device *ap325rxa_devices[] __initdata = {
406 &smsc9118_device,
407 &ap325rxa_nor_flash_device,
408 &lcdc_device,
409 &ceu_device,
410 &nand_flash_device,
411 &sdcard_cn3_device,
412};
413
414static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = { 396static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
415 { 397 {
416 I2C_BOARD_INFO("pcf8563", 0x51), 398 I2C_BOARD_INFO("pcf8563", 0x51),
417 }, 399 },
400};
401
402static struct i2c_board_info ap325rxa_i2c_camera[] = {
418 { 403 {
419 I2C_BOARD_INFO("ov772x", 0x21), 404 I2C_BOARD_INFO("ov772x", 0x21),
420 .platform_data = &ov7725_info,
421 }, 405 },
422}; 406};
423 407
408static struct ov772x_camera_info ov7725_info = {
409 .buswidth = SOCAM_DATAWIDTH_8,
410 .flags = OV772X_FLAG_VFLIP | OV772X_FLAG_HFLIP,
411 .edgectrl = OV772X_AUTO_EDGECTRL(0xf, 0),
412 .link = {
413 .power = ov7725_power,
414 .board_info = &ap325rxa_i2c_camera[0],
415 .i2c_adapter_id = 0,
416 .module_name = "ov772x",
417 },
418};
419
420static struct platform_device ap325rxa_camera = {
421 .name = "soc-camera-pdrv",
422 .id = 0,
423 .dev = {
424 .platform_data = &ov7725_info.link,
425 },
426};
427
428static struct platform_device *ap325rxa_devices[] __initdata = {
429 &smsc9118_device,
430 &ap325rxa_nor_flash_device,
431 &lcdc_device,
432 &ceu_device,
433 &nand_flash_device,
434 &sdcard_cn3_device,
435 &ap325rxa_camera,
436};
437
424static struct spi_board_info ap325rxa_spi_devices[] = { 438static struct spi_board_info ap325rxa_spi_devices[] = {
425 { 439 {
426 .modalias = "mmc_spi", 440 .modalias = "mmc_spi",
diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c
index 7be56fb06c1..42410a15d25 100644
--- a/arch/sh/boards/board-sh7785lcr.c
+++ b/arch/sh/boards/board-sh7785lcr.c
@@ -15,16 +15,18 @@
15#include <linux/fb.h> 15#include <linux/fb.h>
16#include <linux/mtd/physmap.h> 16#include <linux/mtd/physmap.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/interrupt.h>
18#include <linux/i2c.h> 19#include <linux/i2c.h>
19#include <linux/i2c-pca-platform.h> 20#include <linux/i2c-pca-platform.h>
20#include <linux/i2c-algo-pca.h> 21#include <linux/i2c-algo-pca.h>
22#include <linux/usb/r8a66597.h>
21#include <linux/irq.h> 23#include <linux/irq.h>
22#include <linux/clk.h> 24#include <linux/clk.h>
23#include <linux/errno.h> 25#include <linux/errno.h>
24#include <mach/sh7785lcr.h> 26#include <mach/sh7785lcr.h>
27#include <cpu/sh7785.h>
25#include <asm/heartbeat.h> 28#include <asm/heartbeat.h>
26#include <asm/clock.h> 29#include <asm/clock.h>
27#include <cpu/sh7785.h>
28 30
29/* 31/*
30 * NOTE: This board has 2 physical memory maps. 32 * NOTE: This board has 2 physical memory maps.
@@ -98,18 +100,21 @@ static struct platform_device nor_flash_device = {
98 .resource = nor_flash_resources, 100 .resource = nor_flash_resources,
99}; 101};
100 102
103static struct r8a66597_platdata r8a66597_data = {
104 .xtal = R8A66597_PLATDATA_XTAL_12MHZ,
105 .vif = 1,
106};
107
101static struct resource r8a66597_usb_host_resources[] = { 108static struct resource r8a66597_usb_host_resources[] = {
102 [0] = { 109 [0] = {
103 .name = "r8a66597_hcd",
104 .start = R8A66597_ADDR, 110 .start = R8A66597_ADDR,
105 .end = R8A66597_ADDR + R8A66597_SIZE - 1, 111 .end = R8A66597_ADDR + R8A66597_SIZE - 1,
106 .flags = IORESOURCE_MEM, 112 .flags = IORESOURCE_MEM,
107 }, 113 },
108 [1] = { 114 [1] = {
109 .name = "r8a66597_hcd",
110 .start = 2, 115 .start = 2,
111 .end = 2, 116 .end = 2,
112 .flags = IORESOURCE_IRQ, 117 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW,
113 }, 118 },
114}; 119};
115 120
@@ -119,6 +124,7 @@ static struct platform_device r8a66597_usb_host_device = {
119 .dev = { 124 .dev = {
120 .dma_mask = NULL, 125 .dma_mask = NULL,
121 .coherent_dma_mask = 0xffffffff, 126 .coherent_dma_mask = 0xffffffff,
127 .platform_data = &r8a66597_data,
122 }, 128 },
123 .num_resources = ARRAY_SIZE(r8a66597_usb_host_resources), 129 .num_resources = ARRAY_SIZE(r8a66597_usb_host_resources),
124 .resource = r8a66597_usb_host_resources, 130 .resource = r8a66597_usb_host_resources,
diff --git a/arch/sh/boards/board-urquell.c b/arch/sh/boards/board-urquell.c
index beb88c4da2c..36b8bac9b12 100644
--- a/arch/sh/boards/board-urquell.c
+++ b/arch/sh/boards/board-urquell.c
@@ -2,6 +2,7 @@
2 * Renesas Technology Corp. SH7786 Urquell Support. 2 * Renesas Technology Corp. SH7786 Urquell Support.
3 * 3 *
4 * Copyright (C) 2008 Kuninori Morimoto <morimoto.kuninori@renesas.com> 4 * Copyright (C) 2008 Kuninori Morimoto <morimoto.kuninori@renesas.com>
5 * Copyright (C) 2009 Paul Mundt
5 * 6 *
6 * Based on board-sh7785lcr.c 7 * Based on board-sh7785lcr.c
7 * Copyright (C) 2008 Yoshihiro Shimoda 8 * Copyright (C) 2008 Yoshihiro Shimoda
@@ -178,6 +179,11 @@ static void __init urquell_init_irq(void)
178 plat_irq_setup_pins(IRQ_MODE_IRL3210_MASK); 179 plat_irq_setup_pins(IRQ_MODE_IRL3210_MASK);
179} 180}
180 181
182static int urquell_mode_pins(void)
183{
184 return __raw_readw(UBOARDREG(MDSWMR));
185}
186
181/* Initialize the board */ 187/* Initialize the board */
182static void __init urquell_setup(char **cmdline_p) 188static void __init urquell_setup(char **cmdline_p)
183{ 189{
@@ -193,4 +199,5 @@ static struct sh_machine_vector mv_urquell __initmv = {
193 .mv_name = "Urquell", 199 .mv_name = "Urquell",
194 .mv_setup = urquell_setup, 200 .mv_setup = urquell_setup,
195 .mv_init_irq = urquell_init_irq, 201 .mv_init_irq = urquell_init_irq,
202 .mv_mode_pins = urquell_mode_pins,
196}; 203};
diff --git a/arch/sh/boards/mach-highlander/setup.c b/arch/sh/boards/mach-highlander/setup.c
index 20fe72c515d..1639f891500 100644
--- a/arch/sh/boards/mach-highlander/setup.c
+++ b/arch/sh/boards/mach-highlander/setup.c
@@ -17,8 +17,11 @@
17#include <linux/platform_device.h> 17#include <linux/platform_device.h>
18#include <linux/ata_platform.h> 18#include <linux/ata_platform.h>
19#include <linux/types.h> 19#include <linux/types.h>
20#include <linux/mtd/physmap.h>
20#include <linux/i2c.h> 21#include <linux/i2c.h>
21#include <linux/irq.h> 22#include <linux/irq.h>
23#include <linux/interrupt.h>
24#include <linux/usb/r8a66597.h>
22#include <net/ax88796.h> 25#include <net/ax88796.h>
23#include <asm/machvec.h> 26#include <asm/machvec.h>
24#include <mach/highlander.h> 27#include <mach/highlander.h>
@@ -27,18 +30,21 @@
27#include <asm/io.h> 30#include <asm/io.h>
28#include <asm/io_trapped.h> 31#include <asm/io_trapped.h>
29 32
33static struct r8a66597_platdata r8a66597_data = {
34 .xtal = R8A66597_PLATDATA_XTAL_12MHZ,
35 .vif = 1,
36};
37
30static struct resource r8a66597_usb_host_resources[] = { 38static struct resource r8a66597_usb_host_resources[] = {
31 [0] = { 39 [0] = {
32 .name = "r8a66597_hcd",
33 .start = 0xA4200000, 40 .start = 0xA4200000,
34 .end = 0xA42000FF, 41 .end = 0xA42000FF,
35 .flags = IORESOURCE_MEM, 42 .flags = IORESOURCE_MEM,
36 }, 43 },
37 [1] = { 44 [1] = {
38 .name = "r8a66597_hcd",
39 .start = IRQ_EXT1, /* irq number */ 45 .start = IRQ_EXT1, /* irq number */
40 .end = IRQ_EXT1, 46 .end = IRQ_EXT1,
41 .flags = IORESOURCE_IRQ, 47 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW,
42 }, 48 },
43}; 49};
44 50
@@ -48,6 +54,7 @@ static struct platform_device r8a66597_usb_host_device = {
48 .dev = { 54 .dev = {
49 .dma_mask = NULL, /* don't use dma */ 55 .dma_mask = NULL, /* don't use dma */
50 .coherent_dma_mask = 0xffffffff, 56 .coherent_dma_mask = 0xffffffff,
57 .platform_data = &r8a66597_data,
51 }, 58 },
52 .num_resources = ARRAY_SIZE(r8a66597_usb_host_resources), 59 .num_resources = ARRAY_SIZE(r8a66597_usb_host_resources),
53 .resource = r8a66597_usb_host_resources, 60 .resource = r8a66597_usb_host_resources,
@@ -178,6 +185,53 @@ static struct platform_device ax88796_device = {
178 .resource = ax88796_resources, 185 .resource = ax88796_resources,
179}; 186};
180 187
188static struct mtd_partition nor_flash_partitions[] = {
189 {
190 .name = "loader",
191 .offset = 0x00000000,
192 .size = 512 * 1024,
193 },
194 {
195 .name = "bootenv",
196 .offset = MTDPART_OFS_APPEND,
197 .size = 512 * 1024,
198 },
199 {
200 .name = "kernel",
201 .offset = MTDPART_OFS_APPEND,
202 .size = 4 * 1024 * 1024,
203 },
204 {
205 .name = "data",
206 .offset = MTDPART_OFS_APPEND,
207 .size = MTDPART_SIZ_FULL,
208 },
209};
210
211static struct physmap_flash_data nor_flash_data = {
212 .width = 4,
213 .parts = nor_flash_partitions,
214 .nr_parts = ARRAY_SIZE(nor_flash_partitions),
215};
216
217/* This config is flash board for mass production. */
218static struct resource nor_flash_resources[] = {
219 [0] = {
220 .start = PA_NORFLASH_ADDR,
221 .end = PA_NORFLASH_ADDR + PA_NORFLASH_SIZE - 1,
222 .flags = IORESOURCE_MEM,
223 }
224};
225
226static struct platform_device nor_flash_device = {
227 .name = "physmap-flash",
228 .dev = {
229 .platform_data = &nor_flash_data,
230 },
231 .num_resources = ARRAY_SIZE(nor_flash_resources),
232 .resource = nor_flash_resources,
233};
234
181static struct resource smbus_resources[] = { 235static struct resource smbus_resources[] = {
182 [0] = { 236 [0] = {
183 .start = PA_SMCR, 237 .start = PA_SMCR,
@@ -209,6 +263,7 @@ static struct platform_device *r7780rp_devices[] __initdata = {
209 &m66592_usb_peripheral_device, 263 &m66592_usb_peripheral_device,
210 &heartbeat_device, 264 &heartbeat_device,
211 &smbus_device, 265 &smbus_device,
266 &nor_flash_device,
212#ifndef CONFIG_SH_R7780RP 267#ifndef CONFIG_SH_R7780RP
213 &ax88796_device, 268 &ax88796_device,
214#endif 269#endif
@@ -247,9 +302,10 @@ device_initcall(r7780rp_devices_setup);
247/* 302/*
248 * Platform specific clocks 303 * Platform specific clocks
249 */ 304 */
250static void ivdr_clk_enable(struct clk *clk) 305static int ivdr_clk_enable(struct clk *clk)
251{ 306{
252 ctrl_outw(ctrl_inw(PA_IVDRCTL) | (1 << IVDR_CK_ON), PA_IVDRCTL); 307 ctrl_outw(ctrl_inw(PA_IVDRCTL) | (1 << IVDR_CK_ON), PA_IVDRCTL);
308 return 0;
253} 309}
254 310
255static void ivdr_clk_disable(struct clk *clk) 311static void ivdr_clk_disable(struct clk *clk)
diff --git a/arch/sh/boards/mach-migor/setup.c b/arch/sh/boards/mach-migor/setup.c
index 6ed401cd315..f70f4644deb 100644
--- a/arch/sh/boards/mach-migor/setup.c
+++ b/arch/sh/boards/mach-migor/setup.c
@@ -381,21 +381,6 @@ static struct platform_device migor_ceu_device = {
381 }, 381 },
382}; 382};
383 383
384static struct ov772x_camera_info ov7725_info = {
385 .buswidth = SOCAM_DATAWIDTH_8,
386 .link = {
387 .power = ov7725_power,
388 },
389};
390
391static struct tw9910_video_info tw9910_info = {
392 .buswidth = SOCAM_DATAWIDTH_8,
393 .mpout = TW9910_MPO_FIELD,
394 .link = {
395 .power = tw9910_power,
396 }
397};
398
399struct spi_gpio_platform_data sdcard_cn9_platform_data = { 384struct spi_gpio_platform_data sdcard_cn9_platform_data = {
400 .sck = GPIO_PTD0, 385 .sck = GPIO_PTD0,
401 .mosi = GPIO_PTD1, 386 .mosi = GPIO_PTD1,
@@ -410,16 +395,6 @@ static struct platform_device sdcard_cn9_device = {
410 }, 395 },
411}; 396};
412 397
413static struct platform_device *migor_devices[] __initdata = {
414 &smc91x_eth_device,
415 &sh_keysc_device,
416 &migor_lcdc_device,
417 &migor_ceu_device,
418 &migor_nor_flash_device,
419 &migor_nand_flash_device,
420 &sdcard_cn9_device,
421};
422
423static struct i2c_board_info migor_i2c_devices[] = { 398static struct i2c_board_info migor_i2c_devices[] = {
424 { 399 {
425 I2C_BOARD_INFO("rs5c372b", 0x32), 400 I2C_BOARD_INFO("rs5c372b", 0x32),
@@ -428,16 +403,66 @@ static struct i2c_board_info migor_i2c_devices[] = {
428 I2C_BOARD_INFO("migor_ts", 0x51), 403 I2C_BOARD_INFO("migor_ts", 0x51),
429 .irq = 38, /* IRQ6 */ 404 .irq = 38, /* IRQ6 */
430 }, 405 },
406};
407
408static struct i2c_board_info migor_i2c_camera[] = {
431 { 409 {
432 I2C_BOARD_INFO("ov772x", 0x21), 410 I2C_BOARD_INFO("ov772x", 0x21),
433 .platform_data = &ov7725_info,
434 }, 411 },
435 { 412 {
436 I2C_BOARD_INFO("tw9910", 0x45), 413 I2C_BOARD_INFO("tw9910", 0x45),
437 .platform_data = &tw9910_info,
438 }, 414 },
439}; 415};
440 416
417static struct ov772x_camera_info ov7725_info = {
418 .buswidth = SOCAM_DATAWIDTH_8,
419 .link = {
420 .power = ov7725_power,
421 .board_info = &migor_i2c_camera[0],
422 .i2c_adapter_id = 0,
423 .module_name = "ov772x",
424 },
425};
426
427static struct tw9910_video_info tw9910_info = {
428 .buswidth = SOCAM_DATAWIDTH_8,
429 .mpout = TW9910_MPO_FIELD,
430 .link = {
431 .power = tw9910_power,
432 .board_info = &migor_i2c_camera[1],
433 .i2c_adapter_id = 0,
434 .module_name = "tw9910",
435 }
436};
437
438static struct platform_device migor_camera[] = {
439 {
440 .name = "soc-camera-pdrv",
441 .id = 0,
442 .dev = {
443 .platform_data = &ov7725_info.link,
444 },
445 }, {
446 .name = "soc-camera-pdrv",
447 .id = 1,
448 .dev = {
449 .platform_data = &tw9910_info.link,
450 },
451 },
452};
453
454static struct platform_device *migor_devices[] __initdata = {
455 &smc91x_eth_device,
456 &sh_keysc_device,
457 &migor_lcdc_device,
458 &migor_ceu_device,
459 &migor_nor_flash_device,
460 &migor_nand_flash_device,
461 &sdcard_cn9_device,
462 &migor_camera[0],
463 &migor_camera[1],
464};
465
441static struct spi_board_info migor_spi_devices[] = { 466static struct spi_board_info migor_spi_devices[] = {
442 { 467 {
443 .modalias = "mmc_spi", 468 .modalias = "mmc_spi",
diff --git a/arch/sh/boards/mach-rsk/devices-rsk7203.c b/arch/sh/boards/mach-rsk/devices-rsk7203.c
index d8a65ea9166..4af3a771c05 100644
--- a/arch/sh/boards/mach-rsk/devices-rsk7203.c
+++ b/arch/sh/boards/mach-rsk/devices-rsk7203.c
@@ -26,13 +26,13 @@ static struct smsc911x_platform_config smsc911x_config = {
26 .phy_interface = PHY_INTERFACE_MODE_MII, 26 .phy_interface = PHY_INTERFACE_MODE_MII,
27 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, 27 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
28 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, 28 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
29 .flags = SMSC911X_USE_16BIT, 29 .flags = SMSC911X_USE_32BIT | SMSC911X_SWAP_FIFO,
30}; 30};
31 31
32static struct resource smsc911x_resources[] = { 32static struct resource smsc911x_resources[] = {
33 [0] = { 33 [0] = {
34 .start = 0x24000000, 34 .start = 0x24000000,
35 .end = 0x24000000 + 0x100, 35 .end = 0x240000ff,
36 .flags = IORESOURCE_MEM, 36 .flags = IORESOURCE_MEM,
37 }, 37 },
38 [1] = { 38 [1] = {
@@ -99,6 +99,10 @@ static int __init rsk7203_devices_setup(void)
99 gpio_request(GPIO_FN_TXD0, NULL); 99 gpio_request(GPIO_FN_TXD0, NULL);
100 gpio_request(GPIO_FN_RXD0, NULL); 100 gpio_request(GPIO_FN_RXD0, NULL);
101 101
102 /* Setup LAN9118: CS1 in 16-bit Big Endian Mode, IRQ0 at Port B */
103 ctrl_outl(0x36db0400, 0xfffc0008); /* CS1BCR */
104 gpio_request(GPIO_FN_IRQ0_PB, NULL);
105
102 return platform_add_devices(rsk7203_devices, 106 return platform_add_devices(rsk7203_devices,
103 ARRAY_SIZE(rsk7203_devices)); 107 ARRAY_SIZE(rsk7203_devices));
104} 108}
diff --git a/arch/sh/boards/mach-se/7780/irq.c b/arch/sh/boards/mach-se/7780/irq.c
index b8d43b638fc..121744c0871 100644
--- a/arch/sh/boards/mach-se/7780/irq.c
+++ b/arch/sh/boards/mach-se/7780/irq.c
@@ -12,7 +12,6 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/irq.h> 13#include <linux/irq.h>
14#include <linux/interrupt.h> 14#include <linux/interrupt.h>
15#include <linux/irq.h>
16#include <linux/io.h> 15#include <linux/io.h>
17#include <mach-se/mach/se7780.h> 16#include <mach-se/mach/se7780.h>
18 17
diff --git a/arch/sh/boards/mach-x3proto/setup.c b/arch/sh/boards/mach-x3proto/setup.c
index a340492087f..8913ae39a80 100644
--- a/arch/sh/boards/mach-x3proto/setup.c
+++ b/arch/sh/boards/mach-x3proto/setup.c
@@ -15,6 +15,8 @@
15#include <linux/io.h> 15#include <linux/io.h>
16#include <linux/smc91x.h> 16#include <linux/smc91x.h>
17#include <linux/irq.h> 17#include <linux/irq.h>
18#include <linux/interrupt.h>
19#include <linux/usb/r8a66597.h>
18#include <asm/ilsel.h> 20#include <asm/ilsel.h>
19 21
20static struct resource heartbeat_resources[] = { 22static struct resource heartbeat_resources[] = {
@@ -58,17 +60,20 @@ static struct platform_device smc91x_device = {
58 }, 60 },
59}; 61};
60 62
63static struct r8a66597_platdata r8a66597_data = {
64 .xtal = R8A66597_PLATDATA_XTAL_12MHZ,
65 .vif = 1,
66};
67
61static struct resource r8a66597_usb_host_resources[] = { 68static struct resource r8a66597_usb_host_resources[] = {
62 [0] = { 69 [0] = {
63 .name = "r8a66597_hcd",
64 .start = 0x18040000, 70 .start = 0x18040000,
65 .end = 0x18080000 - 1, 71 .end = 0x18080000 - 1,
66 .flags = IORESOURCE_MEM, 72 .flags = IORESOURCE_MEM,
67 }, 73 },
68 [1] = { 74 [1] = {
69 .name = "r8a66597_hcd",
70 /* Filled in by ilsel */ 75 /* Filled in by ilsel */
71 .flags = IORESOURCE_IRQ, 76 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW,
72 }, 77 },
73}; 78};
74 79
@@ -78,6 +83,7 @@ static struct platform_device r8a66597_usb_host_device = {
78 .dev = { 83 .dev = {
79 .dma_mask = NULL, /* don't use dma */ 84 .dma_mask = NULL, /* don't use dma */
80 .coherent_dma_mask = 0xffffffff, 85 .coherent_dma_mask = 0xffffffff,
86 .platform_data = &r8a66597_data,
81 }, 87 },
82 .num_resources = ARRAY_SIZE(r8a66597_usb_host_resources), 88 .num_resources = ARRAY_SIZE(r8a66597_usb_host_resources),
83 .resource = r8a66597_usb_host_resources, 89 .resource = r8a66597_usb_host_resources,
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig
index 022f70e0ea0..6c38a43594f 100644
--- a/arch/sh/configs/ap325rxa_defconfig
+++ b/arch/sh/configs/ap325rxa_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:42:06 2009 4# Thu Jun 18 16:04:11 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20CONFIG_ARCH_SUSPEND_POSSIBLE=y 20CONFIG_ARCH_SUSPEND_POSSIBLE=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_CMT=y 22CONFIG_SYS_SUPPORTS_CMT=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -75,7 +76,6 @@ CONFIG_EMBEDDED=y
75CONFIG_UID16=y 76CONFIG_UID16=y
76CONFIG_SYSCTL_SYSCALL=y 77CONFIG_SYSCTL_SYSCALL=y
77# CONFIG_KALLSYMS is not set 78# CONFIG_KALLSYMS is not set
78# CONFIG_STRIP_ASM_SYMS is not set
79CONFIG_HOTPLUG=y 79CONFIG_HOTPLUG=y
80CONFIG_PRINTK=y 80CONFIG_PRINTK=y
81CONFIG_BUG=y 81CONFIG_BUG=y
@@ -88,7 +88,12 @@ CONFIG_TIMERFD=y
88CONFIG_EVENTFD=y 88CONFIG_EVENTFD=y
89CONFIG_SHMEM=y 89CONFIG_SHMEM=y
90CONFIG_AIO=y 90CONFIG_AIO=y
91
92#
93# Performance Counters
94#
91CONFIG_VM_EVENT_COUNTERS=y 95CONFIG_VM_EVENT_COUNTERS=y
96# CONFIG_STRIP_ASM_SYMS is not set
92CONFIG_COMPAT_BRK=y 97CONFIG_COMPAT_BRK=y
93CONFIG_SLAB=y 98CONFIG_SLAB=y
94# CONFIG_SLUB is not set 99# CONFIG_SLUB is not set
@@ -180,6 +185,7 @@ CONFIG_CPU_SUBTYPE_SH7723=y
180CONFIG_QUICKLIST=y 185CONFIG_QUICKLIST=y
181CONFIG_MMU=y 186CONFIG_MMU=y
182CONFIG_PAGE_OFFSET=0x80000000 187CONFIG_PAGE_OFFSET=0x80000000
188CONFIG_FORCE_MAX_ZONEORDER=11
183CONFIG_MEMORY_START=0x08000000 189CONFIG_MEMORY_START=0x08000000
184CONFIG_MEMORY_SIZE=0x08000000 190CONFIG_MEMORY_SIZE=0x08000000
185CONFIG_29BIT=y 191CONFIG_29BIT=y
@@ -195,7 +201,6 @@ CONFIG_PAGE_SIZE_4KB=y
195# CONFIG_PAGE_SIZE_8KB is not set 201# CONFIG_PAGE_SIZE_8KB is not set
196# CONFIG_PAGE_SIZE_16KB is not set 202# CONFIG_PAGE_SIZE_16KB is not set
197# CONFIG_PAGE_SIZE_64KB is not set 203# CONFIG_PAGE_SIZE_64KB is not set
198CONFIG_ENTRY_OFFSET=0x00001000
199CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
200CONFIG_FLATMEM_MANUAL=y 205CONFIG_FLATMEM_MANUAL=y
201# CONFIG_DISCONTIGMEM_MANUAL is not set 206# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -208,9 +213,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
208# CONFIG_PHYS_ADDR_T_64BIT is not set 213# CONFIG_PHYS_ADDR_T_64BIT is not set
209CONFIG_ZONE_DMA_FLAG=0 214CONFIG_ZONE_DMA_FLAG=0
210CONFIG_NR_QUICK=2 215CONFIG_NR_QUICK=2
211CONFIG_UNEVICTABLE_LRU=y
212CONFIG_HAVE_MLOCK=y 216CONFIG_HAVE_MLOCK=y
213CONFIG_HAVE_MLOCKED_PAGE_BIT=y 217CONFIG_HAVE_MLOCKED_PAGE_BIT=y
218CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
214 219
215# 220#
216# Cache configuration 221# Cache configuration
@@ -228,7 +233,6 @@ CONFIG_SH_FPU=y
228# CONFIG_SH_STORE_QUEUES is not set 233# CONFIG_SH_STORE_QUEUES is not set
229CONFIG_CPU_HAS_INTEVT=y 234CONFIG_CPU_HAS_INTEVT=y
230CONFIG_CPU_HAS_SR_RB=y 235CONFIG_CPU_HAS_SR_RB=y
231CONFIG_CPU_HAS_PTEA=y
232CONFIG_CPU_HAS_FPU=y 236CONFIG_CPU_HAS_FPU=y
233 237
234# 238#
@@ -239,10 +243,10 @@ CONFIG_SH_AP325RXA=y
239# 243#
240# Timer and clock configuration 244# Timer and clock configuration
241# 245#
242CONFIG_SH_TMU=y 246CONFIG_SH_TIMER_TMU=y
243# CONFIG_SH_TIMER_CMT is not set 247# CONFIG_SH_TIMER_CMT is not set
244CONFIG_SH_TIMER_IRQ=16
245CONFIG_SH_PCLK_FREQ=33333333 248CONFIG_SH_PCLK_FREQ=33333333
249CONFIG_SH_CLK_CPG=y
246CONFIG_TICK_ONESHOT=y 250CONFIG_TICK_ONESHOT=y
247# CONFIG_NO_HZ is not set 251# CONFIG_NO_HZ is not set
248CONFIG_HIGH_RES_TIMERS=y 252CONFIG_HIGH_RES_TIMERS=y
@@ -284,12 +288,14 @@ CONFIG_SECCOMP=y
284# CONFIG_PREEMPT_VOLUNTARY is not set 288# CONFIG_PREEMPT_VOLUNTARY is not set
285CONFIG_PREEMPT=y 289CONFIG_PREEMPT=y
286CONFIG_GUSA=y 290CONFIG_GUSA=y
291# CONFIG_SPARSE_IRQ is not set
287 292
288# 293#
289# Boot options 294# Boot options
290# 295#
291CONFIG_ZERO_PAGE_OFFSET=0x00001000 296CONFIG_ZERO_PAGE_OFFSET=0x00001000
292CONFIG_BOOT_LINK_OFFSET=0x00800000 297CONFIG_BOOT_LINK_OFFSET=0x00800000
298CONFIG_ENTRY_OFFSET=0x00001000
293CONFIG_CMDLINE_BOOL=y 299CONFIG_CMDLINE_BOOL=y
294CONFIG_CMDLINE="console=tty1 console=ttySC5,38400 root=/dev/nfs ip=dhcp" 300CONFIG_CMDLINE="console=tty1 console=ttySC5,38400 root=/dev/nfs ip=dhcp"
295 301
@@ -372,6 +378,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
372# CONFIG_ECONET is not set 378# CONFIG_ECONET is not set
373# CONFIG_WAN_ROUTER is not set 379# CONFIG_WAN_ROUTER is not set
374# CONFIG_PHONET is not set 380# CONFIG_PHONET is not set
381# CONFIG_IEEE802154 is not set
375# CONFIG_NET_SCHED is not set 382# CONFIG_NET_SCHED is not set
376# CONFIG_DCB is not set 383# CONFIG_DCB is not set
377 384
@@ -389,7 +396,11 @@ CONFIG_WIRELESS=y
389# CONFIG_WIRELESS_OLD_REGULATORY is not set 396# CONFIG_WIRELESS_OLD_REGULATORY is not set
390# CONFIG_WIRELESS_EXT is not set 397# CONFIG_WIRELESS_EXT is not set
391# CONFIG_LIB80211 is not set 398# CONFIG_LIB80211 is not set
392# CONFIG_MAC80211 is not set 399
400#
401# CFG80211 needs to be enabled for MAC80211
402#
403CONFIG_MAC80211_DEFAULT_PS_VALUE=0
393# CONFIG_WIMAX is not set 404# CONFIG_WIMAX is not set
394# CONFIG_RFKILL is not set 405# CONFIG_RFKILL is not set
395# CONFIG_NET_9P is not set 406# CONFIG_NET_9P is not set
@@ -532,6 +543,7 @@ CONFIG_MISC_DEVICES=y
532# CONFIG_EEPROM_AT24 is not set 543# CONFIG_EEPROM_AT24 is not set
533# CONFIG_EEPROM_AT25 is not set 544# CONFIG_EEPROM_AT25 is not set
534# CONFIG_EEPROM_LEGACY is not set 545# CONFIG_EEPROM_LEGACY is not set
546# CONFIG_EEPROM_MAX6875 is not set
535# CONFIG_EEPROM_93CX6 is not set 547# CONFIG_EEPROM_93CX6 is not set
536CONFIG_HAVE_IDE=y 548CONFIG_HAVE_IDE=y
537# CONFIG_IDE is not set 549# CONFIG_IDE is not set
@@ -555,10 +567,6 @@ CONFIG_BLK_DEV_SD=y
555# CONFIG_BLK_DEV_SR is not set 567# CONFIG_BLK_DEV_SR is not set
556# CONFIG_CHR_DEV_SG is not set 568# CONFIG_CHR_DEV_SG is not set
557# CONFIG_CHR_DEV_SCH is not set 569# CONFIG_CHR_DEV_SCH is not set
558
559#
560# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
561#
562# CONFIG_SCSI_MULTI_LUN is not set 570# CONFIG_SCSI_MULTI_LUN is not set
563# CONFIG_SCSI_CONSTANTS is not set 571# CONFIG_SCSI_CONSTANTS is not set
564# CONFIG_SCSI_LOGGING is not set 572# CONFIG_SCSI_LOGGING is not set
@@ -575,6 +583,7 @@ CONFIG_SCSI_WAIT_SCAN=m
575# CONFIG_SCSI_SRP_ATTRS is not set 583# CONFIG_SCSI_SRP_ATTRS is not set
576CONFIG_SCSI_LOWLEVEL=y 584CONFIG_SCSI_LOWLEVEL=y
577# CONFIG_ISCSI_TCP is not set 585# CONFIG_ISCSI_TCP is not set
586# CONFIG_SCSI_BNX2_ISCSI is not set
578# CONFIG_LIBFC is not set 587# CONFIG_LIBFC is not set
579# CONFIG_LIBFCOE is not set 588# CONFIG_LIBFCOE is not set
580# CONFIG_SCSI_DEBUG is not set 589# CONFIG_SCSI_DEBUG is not set
@@ -583,7 +592,6 @@ CONFIG_SCSI_LOWLEVEL=y
583# CONFIG_ATA is not set 592# CONFIG_ATA is not set
584# CONFIG_MD is not set 593# CONFIG_MD is not set
585CONFIG_NETDEVICES=y 594CONFIG_NETDEVICES=y
586CONFIG_COMPAT_NET_DEV_OPS=y
587# CONFIG_DUMMY is not set 595# CONFIG_DUMMY is not set
588# CONFIG_BONDING is not set 596# CONFIG_BONDING is not set
589# CONFIG_MACVLAN is not set 597# CONFIG_MACVLAN is not set
@@ -628,6 +636,7 @@ CONFIG_SMSC911X=y
628# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 636# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
629# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 637# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
630# CONFIG_B44 is not set 638# CONFIG_B44 is not set
639# CONFIG_KS8842 is not set
631# CONFIG_NETDEV_1000 is not set 640# CONFIG_NETDEV_1000 is not set
632# CONFIG_NETDEV_10000 is not set 641# CONFIG_NETDEV_10000 is not set
633 642
@@ -751,7 +760,6 @@ CONFIG_I2C_SH_MOBILE=y
751# CONFIG_SENSORS_PCF8574 is not set 760# CONFIG_SENSORS_PCF8574 is not set
752# CONFIG_PCF8575 is not set 761# CONFIG_PCF8575 is not set
753# CONFIG_SENSORS_PCA9539 is not set 762# CONFIG_SENSORS_PCA9539 is not set
754# CONFIG_SENSORS_MAX6875 is not set
755# CONFIG_SENSORS_TSL2550 is not set 763# CONFIG_SENSORS_TSL2550 is not set
756# CONFIG_I2C_DEBUG_CORE is not set 764# CONFIG_I2C_DEBUG_CORE is not set
757# CONFIG_I2C_DEBUG_ALGO is not set 765# CONFIG_I2C_DEBUG_ALGO is not set
@@ -823,10 +831,7 @@ CONFIG_SSB_POSSIBLE=y
823# CONFIG_MFD_WM8350_I2C is not set 831# CONFIG_MFD_WM8350_I2C is not set
824# CONFIG_MFD_PCF50633 is not set 832# CONFIG_MFD_PCF50633 is not set
825# CONFIG_REGULATOR is not set 833# CONFIG_REGULATOR is not set
826 834CONFIG_MEDIA_SUPPORT=y
827#
828# Multimedia devices
829#
830 835
831# 836#
832# Multimedia core support 837# Multimedia core support
@@ -1017,6 +1022,7 @@ CONFIG_RTC_DRV_PCF8563=y
1017# on-CPU RTC drivers 1022# on-CPU RTC drivers
1018# 1023#
1019# CONFIG_RTC_DRV_SH is not set 1024# CONFIG_RTC_DRV_SH is not set
1025# CONFIG_RTC_DRV_GENERIC is not set
1020# CONFIG_DMADEVICES is not set 1026# CONFIG_DMADEVICES is not set
1021# CONFIG_AUXDISPLAY is not set 1027# CONFIG_AUXDISPLAY is not set
1022CONFIG_UIO=y 1028CONFIG_UIO=y
@@ -1024,6 +1030,10 @@ CONFIG_UIO=y
1024CONFIG_UIO_PDRV_GENIRQ=y 1030CONFIG_UIO_PDRV_GENIRQ=y
1025# CONFIG_UIO_SMX is not set 1031# CONFIG_UIO_SMX is not set
1026# CONFIG_UIO_SERCOS3 is not set 1032# CONFIG_UIO_SERCOS3 is not set
1033
1034#
1035# TI VLYNQ
1036#
1027# CONFIG_STAGING is not set 1037# CONFIG_STAGING is not set
1028 1038
1029# 1039#
@@ -1045,10 +1055,11 @@ CONFIG_FS_MBCACHE=y
1045# CONFIG_REISERFS_FS is not set 1055# CONFIG_REISERFS_FS is not set
1046# CONFIG_JFS_FS is not set 1056# CONFIG_JFS_FS is not set
1047CONFIG_FS_POSIX_ACL=y 1057CONFIG_FS_POSIX_ACL=y
1048CONFIG_FILE_LOCKING=y
1049# CONFIG_XFS_FS is not set 1058# CONFIG_XFS_FS is not set
1050# CONFIG_OCFS2_FS is not set 1059# CONFIG_OCFS2_FS is not set
1051# CONFIG_BTRFS_FS is not set 1060# CONFIG_BTRFS_FS is not set
1061CONFIG_FILE_LOCKING=y
1062CONFIG_FSNOTIFY=y
1052CONFIG_DNOTIFY=y 1063CONFIG_DNOTIFY=y
1053CONFIG_INOTIFY=y 1064CONFIG_INOTIFY=y
1054CONFIG_INOTIFY_USER=y 1065CONFIG_INOTIFY_USER=y
@@ -1204,28 +1215,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1204CONFIG_HAVE_DYNAMIC_FTRACE=y 1215CONFIG_HAVE_DYNAMIC_FTRACE=y
1205CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1216CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1206CONFIG_TRACING_SUPPORT=y 1217CONFIG_TRACING_SUPPORT=y
1207 1218# CONFIG_FTRACE is not set
1208#
1209# Tracers
1210#
1211# CONFIG_FUNCTION_TRACER is not set
1212# CONFIG_IRQSOFF_TRACER is not set
1213# CONFIG_PREEMPT_TRACER is not set
1214# CONFIG_SCHED_TRACER is not set
1215# CONFIG_CONTEXT_SWITCH_TRACER is not set
1216# CONFIG_EVENT_TRACER is not set
1217# CONFIG_BOOT_TRACER is not set
1218# CONFIG_TRACE_BRANCH_PROFILING is not set
1219# CONFIG_STACK_TRACER is not set
1220# CONFIG_KMEMTRACE is not set
1221# CONFIG_WORKQUEUE_TRACER is not set
1222# CONFIG_BLK_DEV_IO_TRACE is not set
1223# CONFIG_DMA_API_DEBUG is not set 1219# CONFIG_DMA_API_DEBUG is not set
1224# CONFIG_SAMPLES is not set 1220# CONFIG_SAMPLES is not set
1225CONFIG_HAVE_ARCH_KGDB=y 1221CONFIG_HAVE_ARCH_KGDB=y
1226# CONFIG_SH_STANDARD_BIOS is not set 1222# CONFIG_SH_STANDARD_BIOS is not set
1227# CONFIG_EARLY_SCIF_CONSOLE is not set 1223# CONFIG_EARLY_SCIF_CONSOLE is not set
1228# CONFIG_MORE_COMPILE_OPTIONS is not set
1229 1224
1230# 1225#
1231# Security options 1226# Security options
@@ -1347,3 +1342,4 @@ CONFIG_HAS_IOMEM=y
1347CONFIG_HAS_IOPORT=y 1342CONFIG_HAS_IOPORT=y
1348CONFIG_HAS_DMA=y 1343CONFIG_HAS_DMA=y
1349CONFIG_NLATTR=y 1344CONFIG_NLATTR=y
1345CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/cayman_defconfig b/arch/sh/configs/cayman_defconfig
index 40301f86a45..6b863cb1e24 100644
--- a/arch/sh/configs/cayman_defconfig
+++ b/arch/sh/configs/cayman_defconfig
@@ -1,24 +1,26 @@
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-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:42:53 2009 4# Thu Jun 18 12:21:54 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7# CONFIG_SUPERH32 is not set 7# CONFIG_SUPERH32 is not set
8CONFIG_SUPERH64=y 8CONFIG_SUPERH64=y
9CONFIG_ARCH_DEFCONFIG="arch/sh/configs/cayman_defconfig" 9CONFIG_ARCH_DEFCONFIG="arch/sh/configs/cayman_defconfig"
10CONFIG_RWSEM_GENERIC_SPINLOCK=y 10CONFIG_RWSEM_GENERIC_SPINLOCK=y
11CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_FIND_NEXT_BIT=y 12CONFIG_GENERIC_FIND_NEXT_BIT=y
12CONFIG_GENERIC_HWEIGHT=y 13CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
15CONFIG_GENERIC_IRQ_PROBE=y 16CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 17# CONFIG_GENERIC_GPIO is not set
17# CONFIG_GENERIC_TIME is not set 18CONFIG_GENERIC_TIME=y
18# CONFIG_GENERIC_CLOCKEVENTS is not set 19CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set 21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
21CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -71,7 +73,6 @@ CONFIG_SYSCTL_SYSCALL=y
71CONFIG_KALLSYMS=y 73CONFIG_KALLSYMS=y
72# CONFIG_KALLSYMS_ALL is not set 74# CONFIG_KALLSYMS_ALL is not set
73# CONFIG_KALLSYMS_EXTRA_PASS is not set 75# CONFIG_KALLSYMS_EXTRA_PASS is not set
74# CONFIG_STRIP_ASM_SYMS is not set
75CONFIG_HOTPLUG=y 76CONFIG_HOTPLUG=y
76CONFIG_PRINTK=y 77CONFIG_PRINTK=y
77CONFIG_BUG=y 78CONFIG_BUG=y
@@ -84,8 +85,13 @@ CONFIG_TIMERFD=y
84CONFIG_EVENTFD=y 85CONFIG_EVENTFD=y
85CONFIG_SHMEM=y 86CONFIG_SHMEM=y
86CONFIG_AIO=y 87CONFIG_AIO=y
88
89#
90# Performance Counters
91#
87CONFIG_VM_EVENT_COUNTERS=y 92CONFIG_VM_EVENT_COUNTERS=y
88CONFIG_PCI_QUIRKS=y 93CONFIG_PCI_QUIRKS=y
94# CONFIG_STRIP_ASM_SYMS is not set
89CONFIG_COMPAT_BRK=y 95CONFIG_COMPAT_BRK=y
90CONFIG_SLAB=y 96CONFIG_SLAB=y
91# CONFIG_SLUB is not set 97# CONFIG_SLUB is not set
@@ -140,6 +146,7 @@ CONFIG_CPU_SUBTYPE_SH5_101=y
140CONFIG_QUICKLIST=y 146CONFIG_QUICKLIST=y
141CONFIG_MMU=y 147CONFIG_MMU=y
142CONFIG_PAGE_OFFSET=0x20000000 148CONFIG_PAGE_OFFSET=0x20000000
149CONFIG_FORCE_MAX_ZONEORDER=11
143CONFIG_MEMORY_START=0x80000000 150CONFIG_MEMORY_START=0x80000000
144CONFIG_MEMORY_SIZE=0x00400000 151CONFIG_MEMORY_SIZE=0x00400000
145CONFIG_32BIT=y 152CONFIG_32BIT=y
@@ -153,7 +160,6 @@ CONFIG_PAGE_SIZE_4KB=y
153# CONFIG_PAGE_SIZE_8KB is not set 160# CONFIG_PAGE_SIZE_8KB is not set
154# CONFIG_PAGE_SIZE_16KB is not set 161# CONFIG_PAGE_SIZE_16KB is not set
155# CONFIG_PAGE_SIZE_64KB is not set 162# CONFIG_PAGE_SIZE_64KB is not set
156CONFIG_ENTRY_OFFSET=0x00001000
157CONFIG_HUGETLB_PAGE_SIZE_64K=y 163CONFIG_HUGETLB_PAGE_SIZE_64K=y
158# CONFIG_HUGETLB_PAGE_SIZE_256K is not set 164# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
159# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set 165# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
@@ -172,9 +178,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
172# CONFIG_PHYS_ADDR_T_64BIT is not set 178# CONFIG_PHYS_ADDR_T_64BIT is not set
173CONFIG_ZONE_DMA_FLAG=0 179CONFIG_ZONE_DMA_FLAG=0
174CONFIG_NR_QUICK=2 180CONFIG_NR_QUICK=2
175CONFIG_UNEVICTABLE_LRU=y
176CONFIG_HAVE_MLOCK=y 181CONFIG_HAVE_MLOCK=y
177CONFIG_HAVE_MLOCKED_PAGE_BIT=y 182CONFIG_HAVE_MLOCKED_PAGE_BIT=y
183CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
178 184
179# 185#
180# Cache configuration 186# Cache configuration
@@ -190,7 +196,6 @@ CONFIG_CPU_LITTLE_ENDIAN=y
190# CONFIG_CPU_BIG_ENDIAN is not set 196# CONFIG_CPU_BIG_ENDIAN is not set
191CONFIG_SH_FPU=y 197CONFIG_SH_FPU=y
192# CONFIG_SH64_FPU_DENORM_FLUSH is not set 198# CONFIG_SH64_FPU_DENORM_FLUSH is not set
193CONFIG_SH64_USER_MISALIGNED_FIXUP=y
194CONFIG_SH64_ID2815_WORKAROUND=y 199CONFIG_SH64_ID2815_WORKAROUND=y
195CONFIG_CPU_HAS_FPU=y 200CONFIG_CPU_HAS_FPU=y
196 201
@@ -202,8 +207,13 @@ CONFIG_SH_CAYMAN=y
202# 207#
203# Timer and clock configuration 208# Timer and clock configuration
204# 209#
205CONFIG_SH_TIMER_IRQ=16 210CONFIG_SH_TIMER_TMU=y
206CONFIG_SH_PCLK_FREQ=50000000 211CONFIG_SH_PCLK_FREQ=50000000
212CONFIG_SH_CLK_CPG=y
213CONFIG_SH_CLK_CPG_LEGACY=y
214# CONFIG_NO_HZ is not set
215# CONFIG_HIGH_RES_TIMERS is not set
216CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
207 217
208# 218#
209# CPU Frequency scaling 219# CPU Frequency scaling
@@ -237,12 +247,14 @@ CONFIG_HZ=250
237# CONFIG_PREEMPT_NONE is not set 247# CONFIG_PREEMPT_NONE is not set
238# CONFIG_PREEMPT_VOLUNTARY is not set 248# CONFIG_PREEMPT_VOLUNTARY is not set
239CONFIG_PREEMPT=y 249CONFIG_PREEMPT=y
250# CONFIG_SPARSE_IRQ is not set
240 251
241# 252#
242# Boot options 253# Boot options
243# 254#
244CONFIG_ZERO_PAGE_OFFSET=0x00001000 255CONFIG_ZERO_PAGE_OFFSET=0x00001000
245CONFIG_BOOT_LINK_OFFSET=0x00800000 256CONFIG_BOOT_LINK_OFFSET=0x00400000
257CONFIG_ENTRY_OFFSET=0x00001000
246# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
247 259
248# 260#
@@ -332,6 +344,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_ECONET is not set 344# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 345# CONFIG_WAN_ROUTER is not set
334# CONFIG_PHONET is not set 346# CONFIG_PHONET is not set
347# CONFIG_IEEE802154 is not set
335# CONFIG_NET_SCHED is not set 348# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set 349# CONFIG_DCB is not set
337 350
@@ -349,7 +362,11 @@ CONFIG_WIRELESS=y
349# CONFIG_WIRELESS_OLD_REGULATORY is not set 362# CONFIG_WIRELESS_OLD_REGULATORY is not set
350# CONFIG_WIRELESS_EXT is not set 363# CONFIG_WIRELESS_EXT is not set
351# CONFIG_LIB80211 is not set 364# CONFIG_LIB80211 is not set
352# CONFIG_MAC80211 is not set 365
366#
367# CFG80211 needs to be enabled for MAC80211
368#
369CONFIG_MAC80211_DEFAULT_PS_VALUE=0
353# CONFIG_WIMAX is not set 370# CONFIG_WIMAX is not set
354# CONFIG_RFKILL is not set 371# CONFIG_RFKILL is not set
355# CONFIG_NET_9P is not set 372# CONFIG_NET_9P is not set
@@ -402,7 +419,9 @@ CONFIG_MISC_DEVICES=y
402# 419#
403# CONFIG_EEPROM_AT24 is not set 420# CONFIG_EEPROM_AT24 is not set
404# CONFIG_EEPROM_LEGACY is not set 421# CONFIG_EEPROM_LEGACY is not set
422# CONFIG_EEPROM_MAX6875 is not set
405# CONFIG_EEPROM_93CX6 is not set 423# CONFIG_EEPROM_93CX6 is not set
424# CONFIG_CB710_CORE is not set
406CONFIG_HAVE_IDE=y 425CONFIG_HAVE_IDE=y
407# CONFIG_IDE is not set 426# CONFIG_IDE is not set
408 427
@@ -425,10 +444,6 @@ CONFIG_BLK_DEV_SD=y
425# CONFIG_BLK_DEV_SR is not set 444# CONFIG_BLK_DEV_SR is not set
426# CONFIG_CHR_DEV_SG is not set 445# CONFIG_CHR_DEV_SG is not set
427# CONFIG_CHR_DEV_SCH is not set 446# CONFIG_CHR_DEV_SCH is not set
428
429#
430# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
431#
432CONFIG_SCSI_MULTI_LUN=y 447CONFIG_SCSI_MULTI_LUN=y
433# CONFIG_SCSI_CONSTANTS is not set 448# CONFIG_SCSI_CONSTANTS is not set
434# CONFIG_SCSI_LOGGING is not set 449# CONFIG_SCSI_LOGGING is not set
@@ -446,6 +461,7 @@ CONFIG_SCSI_SPI_ATTRS=y
446CONFIG_SCSI_LOWLEVEL=y 461CONFIG_SCSI_LOWLEVEL=y
447# CONFIG_ISCSI_TCP is not set 462# CONFIG_ISCSI_TCP is not set
448# CONFIG_SCSI_CXGB3_ISCSI is not set 463# CONFIG_SCSI_CXGB3_ISCSI is not set
464# CONFIG_SCSI_BNX2_ISCSI is not set
449# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 465# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
450# CONFIG_SCSI_3W_9XXX is not set 466# CONFIG_SCSI_3W_9XXX is not set
451# CONFIG_SCSI_ACARD is not set 467# CONFIG_SCSI_ACARD is not set
@@ -454,6 +470,7 @@ CONFIG_SCSI_LOWLEVEL=y
454# CONFIG_SCSI_AIC7XXX_OLD is not set 470# CONFIG_SCSI_AIC7XXX_OLD is not set
455# CONFIG_SCSI_AIC79XX is not set 471# CONFIG_SCSI_AIC79XX is not set
456# CONFIG_SCSI_AIC94XX is not set 472# CONFIG_SCSI_AIC94XX is not set
473# CONFIG_SCSI_MVSAS is not set
457# CONFIG_SCSI_ARCMSR is not set 474# CONFIG_SCSI_ARCMSR is not set
458# CONFIG_MEGARAID_NEWGEN is not set 475# CONFIG_MEGARAID_NEWGEN is not set
459# CONFIG_MEGARAID_LEGACY is not set 476# CONFIG_MEGARAID_LEGACY is not set
@@ -468,7 +485,6 @@ CONFIG_SCSI_LOWLEVEL=y
468# CONFIG_SCSI_IPS is not set 485# CONFIG_SCSI_IPS is not set
469# CONFIG_SCSI_INITIO is not set 486# CONFIG_SCSI_INITIO is not set
470# CONFIG_SCSI_INIA100 is not set 487# CONFIG_SCSI_INIA100 is not set
471# CONFIG_SCSI_MVSAS is not set
472# CONFIG_SCSI_STEX is not set 488# CONFIG_SCSI_STEX is not set
473# CONFIG_SCSI_SYM53C8XX_2 is not set 489# CONFIG_SCSI_SYM53C8XX_2 is not set
474# CONFIG_SCSI_QLOGIC_1280 is not set 490# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -497,7 +513,6 @@ CONFIG_SCSI_LOWLEVEL=y
497# CONFIG_IEEE1394 is not set 513# CONFIG_IEEE1394 is not set
498# CONFIG_I2O is not set 514# CONFIG_I2O is not set
499CONFIG_NETDEVICES=y 515CONFIG_NETDEVICES=y
500CONFIG_COMPAT_NET_DEV_OPS=y
501# CONFIG_DUMMY is not set 516# CONFIG_DUMMY is not set
502# CONFIG_BONDING is not set 517# CONFIG_BONDING is not set
503# CONFIG_MACVLAN is not set 518# CONFIG_MACVLAN is not set
@@ -530,6 +545,7 @@ CONFIG_NET_ETHERNET=y
530# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 545# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
531# CONFIG_NET_PCI is not set 546# CONFIG_NET_PCI is not set
532# CONFIG_B44 is not set 547# CONFIG_B44 is not set
548# CONFIG_KS8842 is not set
533# CONFIG_ATL2 is not set 549# CONFIG_ATL2 is not set
534CONFIG_NETDEV_1000=y 550CONFIG_NETDEV_1000=y
535# CONFIG_ACENIC is not set 551# CONFIG_ACENIC is not set
@@ -722,7 +738,6 @@ CONFIG_I2C_HELPER_AUTO=y
722# CONFIG_SENSORS_PCF8574 is not set 738# CONFIG_SENSORS_PCF8574 is not set
723# CONFIG_PCF8575 is not set 739# CONFIG_PCF8575 is not set
724# CONFIG_SENSORS_PCA9539 is not set 740# CONFIG_SENSORS_PCA9539 is not set
725# CONFIG_SENSORS_MAX6875 is not set
726# CONFIG_SENSORS_TSL2550 is not set 741# CONFIG_SENSORS_TSL2550 is not set
727# CONFIG_I2C_DEBUG_CORE is not set 742# CONFIG_I2C_DEBUG_CORE is not set
728# CONFIG_I2C_DEBUG_ALGO is not set 743# CONFIG_I2C_DEBUG_ALGO is not set
@@ -781,6 +796,7 @@ CONFIG_HWMON=y
781# CONFIG_SENSORS_SMSC47B397 is not set 796# CONFIG_SENSORS_SMSC47B397 is not set
782# CONFIG_SENSORS_ADS7828 is not set 797# CONFIG_SENSORS_ADS7828 is not set
783# CONFIG_SENSORS_THMC50 is not set 798# CONFIG_SENSORS_THMC50 is not set
799# CONFIG_SENSORS_TMP401 is not set
784# CONFIG_SENSORS_VIA686A is not set 800# CONFIG_SENSORS_VIA686A is not set
785# CONFIG_SENSORS_VT1211 is not set 801# CONFIG_SENSORS_VT1211 is not set
786# CONFIG_SENSORS_VT8231 is not set 802# CONFIG_SENSORS_VT8231 is not set
@@ -827,92 +843,7 @@ CONFIG_SSB_POSSIBLE=y
827# CONFIG_MFD_WM8350_I2C is not set 843# CONFIG_MFD_WM8350_I2C is not set
828# CONFIG_MFD_PCF50633 is not set 844# CONFIG_MFD_PCF50633 is not set
829# CONFIG_REGULATOR is not set 845# CONFIG_REGULATOR is not set
830 846# CONFIG_MEDIA_SUPPORT is not set
831#
832# Multimedia devices
833#
834
835#
836# Multimedia core support
837#
838CONFIG_VIDEO_DEV=m
839CONFIG_VIDEO_V4L2_COMMON=m
840CONFIG_VIDEO_ALLOW_V4L1=y
841CONFIG_VIDEO_V4L1_COMPAT=y
842CONFIG_DVB_CORE=y
843CONFIG_VIDEO_MEDIA=m
844
845#
846# Multimedia drivers
847#
848# CONFIG_MEDIA_ATTACH is not set
849CONFIG_MEDIA_TUNER=m
850# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
851CONFIG_MEDIA_TUNER_SIMPLE=m
852CONFIG_MEDIA_TUNER_TDA8290=m
853CONFIG_MEDIA_TUNER_TDA9887=m
854CONFIG_MEDIA_TUNER_TEA5761=m
855CONFIG_MEDIA_TUNER_TEA5767=m
856CONFIG_MEDIA_TUNER_MT20XX=m
857CONFIG_MEDIA_TUNER_XC2028=m
858CONFIG_MEDIA_TUNER_XC5000=m
859CONFIG_MEDIA_TUNER_MC44S803=m
860CONFIG_VIDEO_V4L2=m
861CONFIG_VIDEO_V4L1=m
862CONFIG_VIDEO_CAPTURE_DRIVERS=y
863# CONFIG_VIDEO_ADV_DEBUG is not set
864# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
865CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
866# CONFIG_VIDEO_VIVI is not set
867# CONFIG_VIDEO_BT848 is not set
868# CONFIG_VIDEO_CPIA is not set
869# CONFIG_VIDEO_SAA5246A is not set
870# CONFIG_VIDEO_SAA5249 is not set
871# CONFIG_VIDEO_SAA7134 is not set
872# CONFIG_VIDEO_MXB is not set
873# CONFIG_VIDEO_HEXIUM_ORION is not set
874# CONFIG_VIDEO_HEXIUM_GEMINI is not set
875# CONFIG_VIDEO_CX88 is not set
876# CONFIG_VIDEO_CX23885 is not set
877# CONFIG_VIDEO_IVTV is not set
878# CONFIG_VIDEO_CX18 is not set
879# CONFIG_VIDEO_CAFE_CCIC is not set
880# CONFIG_SOC_CAMERA is not set
881# CONFIG_RADIO_ADAPTERS is not set
882# CONFIG_DVB_DYNAMIC_MINORS is not set
883CONFIG_DVB_CAPTURE_DRIVERS=y
884
885#
886# Supported SAA7146 based PCI Adapters
887#
888# CONFIG_TTPCI_EEPROM is not set
889# CONFIG_DVB_AV7110 is not set
890# CONFIG_DVB_BUDGET_CORE is not set
891
892#
893# Supported FlexCopII (B2C2) Adapters
894#
895# CONFIG_DVB_B2C2_FLEXCOP is not set
896
897#
898# Supported BT878 Adapters
899#
900
901#
902# Supported Pluto2 Adapters
903#
904# CONFIG_DVB_PLUTO2 is not set
905
906#
907# Supported SDMC DM1105 Adapters
908#
909# CONFIG_DVB_DM1105 is not set
910
911#
912# Supported DVB Frontends
913#
914# CONFIG_DVB_FE_CUSTOMISE is not set
915CONFIG_DAB=y
916 847
917# 848#
918# Graphics support 849# Graphics support
@@ -1041,10 +972,15 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1041# CONFIG_NEW_LEDS is not set 972# CONFIG_NEW_LEDS is not set
1042# CONFIG_ACCESSIBILITY is not set 973# CONFIG_ACCESSIBILITY is not set
1043# CONFIG_INFINIBAND is not set 974# CONFIG_INFINIBAND is not set
975CONFIG_RTC_LIB=y
1044# CONFIG_RTC_CLASS is not set 976# CONFIG_RTC_CLASS is not set
1045# CONFIG_DMADEVICES is not set 977# CONFIG_DMADEVICES is not set
1046# CONFIG_AUXDISPLAY is not set 978# CONFIG_AUXDISPLAY is not set
1047# CONFIG_UIO is not set 979# CONFIG_UIO is not set
980
981#
982# TI VLYNQ
983#
1048# CONFIG_STAGING is not set 984# CONFIG_STAGING is not set
1049 985
1050# 986#
@@ -1065,10 +1001,11 @@ CONFIG_FS_MBCACHE=y
1065# CONFIG_REISERFS_FS is not set 1001# CONFIG_REISERFS_FS is not set
1066# CONFIG_JFS_FS is not set 1002# CONFIG_JFS_FS is not set
1067# CONFIG_FS_POSIX_ACL is not set 1003# CONFIG_FS_POSIX_ACL is not set
1068CONFIG_FILE_LOCKING=y
1069# CONFIG_XFS_FS is not set 1004# CONFIG_XFS_FS is not set
1070# CONFIG_OCFS2_FS is not set 1005# CONFIG_OCFS2_FS is not set
1071# CONFIG_BTRFS_FS is not set 1006# CONFIG_BTRFS_FS is not set
1007CONFIG_FILE_LOCKING=y
1008CONFIG_FSNOTIFY=y
1072CONFIG_DNOTIFY=y 1009CONFIG_DNOTIFY=y
1073CONFIG_INOTIFY=y 1010CONFIG_INOTIFY=y
1074CONFIG_INOTIFY_USER=y 1011CONFIG_INOTIFY_USER=y
@@ -1228,29 +1165,28 @@ CONFIG_FRAME_POINTER=y
1228# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1165# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1229# CONFIG_PAGE_POISONING is not set 1166# CONFIG_PAGE_POISONING is not set
1230CONFIG_TRACING_SUPPORT=y 1167CONFIG_TRACING_SUPPORT=y
1231 1168CONFIG_FTRACE=y
1232# 1169# CONFIG_IRQSOFF_TRACER is not set
1233# Tracers 1170# CONFIG_PREEMPT_TRACER is not set
1234#
1235# CONFIG_SCHED_TRACER is not set 1171# CONFIG_SCHED_TRACER is not set
1236# CONFIG_CONTEXT_SWITCH_TRACER is not set 1172# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1237# CONFIG_EVENT_TRACER is not set
1238# CONFIG_BOOT_TRACER is not set 1173# CONFIG_BOOT_TRACER is not set
1239# CONFIG_TRACE_BRANCH_PROFILING is not set 1174CONFIG_BRANCH_PROFILE_NONE=y
1175# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1176# CONFIG_PROFILE_ALL_BRANCHES is not set
1240# CONFIG_KMEMTRACE is not set 1177# CONFIG_KMEMTRACE is not set
1241# CONFIG_WORKQUEUE_TRACER is not set 1178# CONFIG_WORKQUEUE_TRACER is not set
1242# CONFIG_BLK_DEV_IO_TRACE is not set 1179# CONFIG_BLK_DEV_IO_TRACE is not set
1243# CONFIG_DYNAMIC_DEBUG is not set 1180# CONFIG_DYNAMIC_DEBUG is not set
1244# CONFIG_DMA_API_DEBUG is not set 1181# CONFIG_DMA_API_DEBUG is not set
1245# CONFIG_SAMPLES is not set 1182# CONFIG_SAMPLES is not set
1183# CONFIG_KMEMCHECK is not set
1246# CONFIG_EARLY_SCIF_CONSOLE is not set 1184# CONFIG_EARLY_SCIF_CONSOLE is not set
1247# CONFIG_DEBUG_BOOTMEM is not set 1185# CONFIG_DEBUG_BOOTMEM is not set
1248# CONFIG_DEBUG_STACK_USAGE is not set 1186# CONFIG_DEBUG_STACK_USAGE is not set
1249# CONFIG_4KSTACKS is not set 1187# CONFIG_4KSTACKS is not set
1250# CONFIG_SH_NO_BSS_INIT is not set 1188# CONFIG_SH_NO_BSS_INIT is not set
1251# CONFIG_MORE_COMPILE_OPTIONS is not set
1252CONFIG_SH64_SR_WATCH=y 1189CONFIG_SH64_SR_WATCH=y
1253# CONFIG_POOR_MANS_STRACE is not set
1254 1190
1255# 1191#
1256# Security options 1192# Security options
@@ -1364,3 +1300,4 @@ CONFIG_HAS_IOMEM=y
1364CONFIG_HAS_IOPORT=y 1300CONFIG_HAS_IOPORT=y
1365CONFIG_HAS_DMA=y 1301CONFIG_HAS_DMA=y
1366CONFIG_NLATTR=y 1302CONFIG_NLATTR=y
1303CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/dreamcast_defconfig b/arch/sh/configs/dreamcast_defconfig
index 1f3cc98330b..95717a041ed 100644
--- a/arch/sh/configs/dreamcast_defconfig
+++ b/arch/sh/configs/dreamcast_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:44:27 2009 4# Thu Jun 18 12:24:48 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -17,9 +17,11 @@ CONFIG_GENERIC_IRQ_PROBE=y
17# CONFIG_GENERIC_GPIO is not set 17# CONFIG_GENERIC_GPIO is not set
18CONFIG_GENERIC_TIME=y 18CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20CONFIG_GENERIC_CMOS_UPDATE=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 23CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 27CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,7 +74,6 @@ CONFIG_UID16=y
72# CONFIG_SYSCTL_SYSCALL is not set 74# CONFIG_SYSCTL_SYSCALL is not set
73CONFIG_KALLSYMS=y 75CONFIG_KALLSYMS=y
74# CONFIG_KALLSYMS_EXTRA_PASS is not set 76# CONFIG_KALLSYMS_EXTRA_PASS is not set
75# CONFIG_STRIP_ASM_SYMS is not set
76CONFIG_HOTPLUG=y 77CONFIG_HOTPLUG=y
77CONFIG_PRINTK=y 78CONFIG_PRINTK=y
78CONFIG_BUG=y 79CONFIG_BUG=y
@@ -85,8 +86,13 @@ CONFIG_TIMERFD=y
85CONFIG_EVENTFD=y 86CONFIG_EVENTFD=y
86CONFIG_SHMEM=y 87CONFIG_SHMEM=y
87CONFIG_AIO=y 88CONFIG_AIO=y
89
90#
91# Performance Counters
92#
88CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
89CONFIG_PCI_QUIRKS=y 94CONFIG_PCI_QUIRKS=y
95# CONFIG_STRIP_ASM_SYMS is not set
90CONFIG_COMPAT_BRK=y 96CONFIG_COMPAT_BRK=y
91CONFIG_SLAB=y 97CONFIG_SLAB=y
92# CONFIG_SLUB is not set 98# CONFIG_SLUB is not set
@@ -177,6 +183,7 @@ CONFIG_CPU_SUBTYPE_SH7091=y
177CONFIG_QUICKLIST=y 183CONFIG_QUICKLIST=y
178CONFIG_MMU=y 184CONFIG_MMU=y
179CONFIG_PAGE_OFFSET=0x80000000 185CONFIG_PAGE_OFFSET=0x80000000
186CONFIG_FORCE_MAX_ZONEORDER=11
180CONFIG_MEMORY_START=0x0c000000 187CONFIG_MEMORY_START=0x0c000000
181CONFIG_MEMORY_SIZE=0x01000000 188CONFIG_MEMORY_SIZE=0x01000000
182CONFIG_29BIT=y 189CONFIG_29BIT=y
@@ -191,7 +198,6 @@ CONFIG_PAGE_SIZE_4KB=y
191# CONFIG_PAGE_SIZE_8KB is not set 198# CONFIG_PAGE_SIZE_8KB is not set
192# CONFIG_PAGE_SIZE_16KB is not set 199# CONFIG_PAGE_SIZE_16KB is not set
193# CONFIG_PAGE_SIZE_64KB is not set 200# CONFIG_PAGE_SIZE_64KB is not set
194CONFIG_ENTRY_OFFSET=0x00001000
195CONFIG_HUGETLB_PAGE_SIZE_64K=y 201CONFIG_HUGETLB_PAGE_SIZE_64K=y
196# CONFIG_HUGETLB_PAGE_SIZE_256K is not set 202# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
197# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set 203# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
@@ -210,9 +216,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
210# CONFIG_PHYS_ADDR_T_64BIT is not set 216# CONFIG_PHYS_ADDR_T_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=0 217CONFIG_ZONE_DMA_FLAG=0
212CONFIG_NR_QUICK=2 218CONFIG_NR_QUICK=2
213CONFIG_UNEVICTABLE_LRU=y
214CONFIG_HAVE_MLOCK=y 219CONFIG_HAVE_MLOCK=y
215CONFIG_HAVE_MLOCKED_PAGE_BIT=y 220CONFIG_HAVE_MLOCKED_PAGE_BIT=y
221CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
216 222
217# 223#
218# Cache configuration 224# Cache configuration
@@ -230,7 +236,6 @@ CONFIG_SH_FPU=y
230CONFIG_SH_STORE_QUEUES=y 236CONFIG_SH_STORE_QUEUES=y
231CONFIG_CPU_HAS_INTEVT=y 237CONFIG_CPU_HAS_INTEVT=y
232CONFIG_CPU_HAS_SR_RB=y 238CONFIG_CPU_HAS_SR_RB=y
233CONFIG_CPU_HAS_PTEA=y
234CONFIG_CPU_HAS_FPU=y 239CONFIG_CPU_HAS_FPU=y
235 240
236# 241#
@@ -241,9 +246,10 @@ CONFIG_SH_DREAMCAST=y
241# 246#
242# Timer and clock configuration 247# Timer and clock configuration
243# 248#
244CONFIG_SH_TMU=y 249CONFIG_SH_TIMER_TMU=y
245CONFIG_SH_TIMER_IRQ=16
246CONFIG_SH_PCLK_FREQ=49876504 250CONFIG_SH_PCLK_FREQ=49876504
251CONFIG_SH_CLK_CPG=y
252CONFIG_SH_CLK_CPG_LEGACY=y
247# CONFIG_NO_HZ is not set 253# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set 254# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 255CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -307,12 +313,14 @@ CONFIG_SECCOMP=y
307CONFIG_PREEMPT=y 313CONFIG_PREEMPT=y
308CONFIG_GUSA=y 314CONFIG_GUSA=y
309# CONFIG_GUSA_RB is not set 315# CONFIG_GUSA_RB is not set
316# CONFIG_SPARSE_IRQ is not set
310 317
311# 318#
312# Boot options 319# Boot options
313# 320#
314CONFIG_ZERO_PAGE_OFFSET=0x00001000 321CONFIG_ZERO_PAGE_OFFSET=0x00001000
315CONFIG_BOOT_LINK_OFFSET=0x00800000 322CONFIG_BOOT_LINK_OFFSET=0x00800000
323CONFIG_ENTRY_OFFSET=0x00001000
316# CONFIG_UBC_WAKEUP is not set 324# CONFIG_UBC_WAKEUP is not set
317CONFIG_CMDLINE_BOOL=y 325CONFIG_CMDLINE_BOOL=y
318CONFIG_CMDLINE="console=ttySC1,115200 panic=3" 326CONFIG_CMDLINE="console=ttySC1,115200 panic=3"
@@ -401,6 +409,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
401# CONFIG_ECONET is not set 409# CONFIG_ECONET is not set
402# CONFIG_WAN_ROUTER is not set 410# CONFIG_WAN_ROUTER is not set
403# CONFIG_PHONET is not set 411# CONFIG_PHONET is not set
412# CONFIG_IEEE802154 is not set
404# CONFIG_NET_SCHED is not set 413# CONFIG_NET_SCHED is not set
405# CONFIG_DCB is not set 414# CONFIG_DCB is not set
406 415
@@ -418,7 +427,11 @@ CONFIG_WIRELESS=y
418# CONFIG_WIRELESS_OLD_REGULATORY is not set 427# CONFIG_WIRELESS_OLD_REGULATORY is not set
419# CONFIG_WIRELESS_EXT is not set 428# CONFIG_WIRELESS_EXT is not set
420# CONFIG_LIB80211 is not set 429# CONFIG_LIB80211 is not set
421# CONFIG_MAC80211 is not set 430
431#
432# CFG80211 needs to be enabled for MAC80211
433#
434CONFIG_MAC80211_DEFAULT_PS_VALUE=0
422# CONFIG_WIMAX is not set 435# CONFIG_WIMAX is not set
423# CONFIG_RFKILL is not set 436# CONFIG_RFKILL is not set
424# CONFIG_NET_9P is not set 437# CONFIG_NET_9P is not set
@@ -463,6 +476,7 @@ CONFIG_MISC_DEVICES=y
463# EEPROM support 476# EEPROM support
464# 477#
465# CONFIG_EEPROM_93CX6 is not set 478# CONFIG_EEPROM_93CX6 is not set
479# CONFIG_CB710_CORE is not set
466CONFIG_HAVE_IDE=y 480CONFIG_HAVE_IDE=y
467# CONFIG_IDE is not set 481# CONFIG_IDE is not set
468 482
@@ -488,7 +502,6 @@ CONFIG_HAVE_IDE=y
488# CONFIG_IEEE1394 is not set 502# CONFIG_IEEE1394 is not set
489# CONFIG_I2O is not set 503# CONFIG_I2O is not set
490CONFIG_NETDEVICES=y 504CONFIG_NETDEVICES=y
491CONFIG_COMPAT_NET_DEV_OPS=y
492# CONFIG_DUMMY is not set 505# CONFIG_DUMMY is not set
493# CONFIG_BONDING is not set 506# CONFIG_BONDING is not set
494# CONFIG_MACVLAN is not set 507# CONFIG_MACVLAN is not set
@@ -541,6 +554,7 @@ CONFIG_8139TOO=y
541# CONFIG_SMSC9420 is not set 554# CONFIG_SMSC9420 is not set
542# CONFIG_SUNDANCE is not set 555# CONFIG_SUNDANCE is not set
543# CONFIG_TLAN is not set 556# CONFIG_TLAN is not set
557# CONFIG_KS8842 is not set
544# CONFIG_VIA_RHINE is not set 558# CONFIG_VIA_RHINE is not set
545# CONFIG_SC92031 is not set 559# CONFIG_SC92031 is not set
546# CONFIG_ATL2 is not set 560# CONFIG_ATL2 is not set
@@ -697,22 +711,7 @@ CONFIG_SSB_POSSIBLE=y
697# CONFIG_HTC_PASIC3 is not set 711# CONFIG_HTC_PASIC3 is not set
698# CONFIG_MFD_TMIO is not set 712# CONFIG_MFD_TMIO is not set
699# CONFIG_REGULATOR is not set 713# CONFIG_REGULATOR is not set
700 714# CONFIG_MEDIA_SUPPORT is not set
701#
702# Multimedia devices
703#
704
705#
706# Multimedia core support
707#
708# CONFIG_VIDEO_DEV is not set
709# CONFIG_DVB_CORE is not set
710# CONFIG_VIDEO_MEDIA is not set
711
712#
713# Multimedia drivers
714#
715# CONFIG_DAB is not set
716 715
717# 716#
718# Graphics support 717# Graphics support
@@ -841,10 +840,15 @@ CONFIG_USB_ARCH_HAS_EHCI=y
841# CONFIG_NEW_LEDS is not set 840# CONFIG_NEW_LEDS is not set
842# CONFIG_ACCESSIBILITY is not set 841# CONFIG_ACCESSIBILITY is not set
843# CONFIG_INFINIBAND is not set 842# CONFIG_INFINIBAND is not set
843CONFIG_RTC_LIB=y
844# CONFIG_RTC_CLASS is not set 844# CONFIG_RTC_CLASS is not set
845# CONFIG_DMADEVICES is not set 845# CONFIG_DMADEVICES is not set
846# CONFIG_AUXDISPLAY is not set 846# CONFIG_AUXDISPLAY is not set
847# CONFIG_UIO is not set 847# CONFIG_UIO is not set
848
849#
850# TI VLYNQ
851#
848# CONFIG_STAGING is not set 852# CONFIG_STAGING is not set
849 853
850# 854#
@@ -856,10 +860,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
856# CONFIG_REISERFS_FS is not set 860# CONFIG_REISERFS_FS is not set
857# CONFIG_JFS_FS is not set 861# CONFIG_JFS_FS is not set
858# CONFIG_FS_POSIX_ACL is not set 862# CONFIG_FS_POSIX_ACL is not set
859CONFIG_FILE_LOCKING=y
860# CONFIG_XFS_FS is not set 863# CONFIG_XFS_FS is not set
861# CONFIG_OCFS2_FS is not set 864# CONFIG_OCFS2_FS is not set
862# CONFIG_BTRFS_FS is not set 865# CONFIG_BTRFS_FS is not set
866CONFIG_FILE_LOCKING=y
867CONFIG_FSNOTIFY=y
863# CONFIG_DNOTIFY is not set 868# CONFIG_DNOTIFY is not set
864CONFIG_INOTIFY=y 869CONFIG_INOTIFY=y
865CONFIG_INOTIFY_USER=y 870CONFIG_INOTIFY_USER=y
@@ -956,28 +961,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
956CONFIG_HAVE_DYNAMIC_FTRACE=y 961CONFIG_HAVE_DYNAMIC_FTRACE=y
957CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 962CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
958CONFIG_TRACING_SUPPORT=y 963CONFIG_TRACING_SUPPORT=y
959 964# CONFIG_FTRACE is not set
960#
961# Tracers
962#
963# CONFIG_FUNCTION_TRACER is not set
964# CONFIG_IRQSOFF_TRACER is not set
965# CONFIG_PREEMPT_TRACER is not set
966# CONFIG_SCHED_TRACER is not set
967# CONFIG_CONTEXT_SWITCH_TRACER is not set
968# CONFIG_EVENT_TRACER is not set
969# CONFIG_BOOT_TRACER is not set
970# CONFIG_TRACE_BRANCH_PROFILING is not set
971# CONFIG_STACK_TRACER is not set
972# CONFIG_KMEMTRACE is not set
973# CONFIG_WORKQUEUE_TRACER is not set
974# CONFIG_BLK_DEV_IO_TRACE is not set
975# CONFIG_DMA_API_DEBUG is not set 965# CONFIG_DMA_API_DEBUG is not set
976# CONFIG_SAMPLES is not set 966# CONFIG_SAMPLES is not set
977CONFIG_HAVE_ARCH_KGDB=y 967CONFIG_HAVE_ARCH_KGDB=y
978# CONFIG_SH_STANDARD_BIOS is not set 968# CONFIG_SH_STANDARD_BIOS is not set
979# CONFIG_EARLY_SCIF_CONSOLE is not set 969# CONFIG_EARLY_SCIF_CONSOLE is not set
980# CONFIG_MORE_COMPILE_OPTIONS is not set
981 970
982# 971#
983# Security options 972# Security options
@@ -1091,3 +1080,4 @@ CONFIG_HAS_IOMEM=y
1091CONFIG_HAS_IOPORT=y 1080CONFIG_HAS_IOPORT=y
1092CONFIG_HAS_DMA=y 1081CONFIG_HAS_DMA=y
1093CONFIG_NLATTR=y 1082CONFIG_NLATTR=y
1083CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/edosk7705_defconfig b/arch/sh/configs/edosk7705_defconfig
index d7092457ddc..497414c439f 100644
--- a/arch/sh/configs/edosk7705_defconfig
+++ b/arch/sh/configs/edosk7705_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:45:04 2009 4# Thu Jun 18 12:25:35 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -18,6 +18,7 @@ CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20CONFIG_ARCH_HIBERNATION_POSSIBLE=y 20CONFIG_ARCH_HIBERNATION_POSSIBLE=y
21CONFIG_SYS_SUPPORTS_TMU=y
21CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
23CONFIG_HAVE_LATENCYTOP_SUPPORT=y 24CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -57,7 +58,6 @@ CONFIG_EMBEDDED=y
57# CONFIG_UID16 is not set 58# CONFIG_UID16 is not set
58# CONFIG_SYSCTL_SYSCALL is not set 59# CONFIG_SYSCTL_SYSCALL is not set
59# CONFIG_KALLSYMS is not set 60# CONFIG_KALLSYMS is not set
60# CONFIG_STRIP_ASM_SYMS is not set
61# CONFIG_HOTPLUG is not set 61# CONFIG_HOTPLUG is not set
62# CONFIG_PRINTK is not set 62# CONFIG_PRINTK is not set
63# CONFIG_BUG is not set 63# CONFIG_BUG is not set
@@ -70,7 +70,12 @@ CONFIG_EMBEDDED=y
70# CONFIG_EVENTFD is not set 70# CONFIG_EVENTFD is not set
71CONFIG_SHMEM=y 71CONFIG_SHMEM=y
72# CONFIG_AIO is not set 72# CONFIG_AIO is not set
73
74#
75# Performance Counters
76#
73# CONFIG_VM_EVENT_COUNTERS is not set 77# CONFIG_VM_EVENT_COUNTERS is not set
78# CONFIG_STRIP_ASM_SYMS is not set
74# CONFIG_COMPAT_BRK is not set 79# CONFIG_COMPAT_BRK is not set
75# CONFIG_SLAB is not set 80# CONFIG_SLAB is not set
76CONFIG_SLUB=y 81CONFIG_SLUB=y
@@ -136,6 +141,7 @@ CONFIG_CPU_SUBTYPE_SH7705=y
136CONFIG_QUICKLIST=y 141CONFIG_QUICKLIST=y
137CONFIG_MMU=y 142CONFIG_MMU=y
138CONFIG_PAGE_OFFSET=0x80000000 143CONFIG_PAGE_OFFSET=0x80000000
144CONFIG_FORCE_MAX_ZONEORDER=11
139CONFIG_MEMORY_START=0x08000000 145CONFIG_MEMORY_START=0x08000000
140CONFIG_MEMORY_SIZE=0x04000000 146CONFIG_MEMORY_SIZE=0x04000000
141CONFIG_29BIT=y 147CONFIG_29BIT=y
@@ -152,7 +158,6 @@ CONFIG_PAGE_SIZE_4KB=y
152# CONFIG_PAGE_SIZE_8KB is not set 158# CONFIG_PAGE_SIZE_8KB is not set
153# CONFIG_PAGE_SIZE_16KB is not set 159# CONFIG_PAGE_SIZE_16KB is not set
154# CONFIG_PAGE_SIZE_64KB is not set 160# CONFIG_PAGE_SIZE_64KB is not set
155CONFIG_ENTRY_OFFSET=0x00001000
156CONFIG_SELECT_MEMORY_MODEL=y 161CONFIG_SELECT_MEMORY_MODEL=y
157# CONFIG_FLATMEM_MANUAL is not set 162# CONFIG_FLATMEM_MANUAL is not set
158# CONFIG_DISCONTIGMEM_MANUAL is not set 163# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -166,9 +171,9 @@ CONFIG_MIGRATION=y
166# CONFIG_PHYS_ADDR_T_64BIT is not set 171# CONFIG_PHYS_ADDR_T_64BIT is not set
167CONFIG_ZONE_DMA_FLAG=0 172CONFIG_ZONE_DMA_FLAG=0
168CONFIG_NR_QUICK=2 173CONFIG_NR_QUICK=2
169CONFIG_UNEVICTABLE_LRU=y
170CONFIG_HAVE_MLOCK=y 174CONFIG_HAVE_MLOCK=y
171CONFIG_HAVE_MLOCKED_PAGE_BIT=y 175CONFIG_HAVE_MLOCKED_PAGE_BIT=y
176CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
172 177
173# 178#
174# Cache configuration 179# Cache configuration
@@ -196,9 +201,10 @@ CONFIG_SH_EDOSK7705=y
196# 201#
197# Timer and clock configuration 202# Timer and clock configuration
198# 203#
199CONFIG_SH_TMU=y 204CONFIG_SH_TIMER_TMU=y
200CONFIG_SH_TIMER_IRQ=16
201CONFIG_SH_PCLK_FREQ=31250000 205CONFIG_SH_PCLK_FREQ=31250000
206CONFIG_SH_CLK_CPG=y
207CONFIG_SH_CLK_CPG_LEGACY=y
202# CONFIG_NO_HZ is not set 208# CONFIG_NO_HZ is not set
203# CONFIG_HIGH_RES_TIMERS is not set 209# CONFIG_HIGH_RES_TIMERS is not set
204CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 210CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -243,6 +249,7 @@ CONFIG_GUSA=y
243# 249#
244CONFIG_ZERO_PAGE_OFFSET=0x00001000 250CONFIG_ZERO_PAGE_OFFSET=0x00001000
245CONFIG_BOOT_LINK_OFFSET=0x00800000 251CONFIG_BOOT_LINK_OFFSET=0x00800000
252CONFIG_ENTRY_OFFSET=0x00001000
246# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
247 254
248# 255#
@@ -335,21 +342,7 @@ CONFIG_SSB_POSSIBLE=y
335# CONFIG_HTC_PASIC3 is not set 342# CONFIG_HTC_PASIC3 is not set
336# CONFIG_MFD_TMIO is not set 343# CONFIG_MFD_TMIO is not set
337# CONFIG_REGULATOR is not set 344# CONFIG_REGULATOR is not set
338 345# CONFIG_MEDIA_SUPPORT is not set
339#
340# Multimedia devices
341#
342
343#
344# Multimedia core support
345#
346# CONFIG_VIDEO_DEV is not set
347# CONFIG_VIDEO_MEDIA is not set
348
349#
350# Multimedia drivers
351#
352# CONFIG_DAB is not set
353 346
354# 347#
355# Graphics support 348# Graphics support
@@ -369,17 +362,25 @@ CONFIG_SSB_POSSIBLE=y
369# CONFIG_MEMSTICK is not set 362# CONFIG_MEMSTICK is not set
370# CONFIG_NEW_LEDS is not set 363# CONFIG_NEW_LEDS is not set
371# CONFIG_ACCESSIBILITY is not set 364# CONFIG_ACCESSIBILITY is not set
365CONFIG_RTC_LIB=y
372# CONFIG_RTC_CLASS is not set 366# CONFIG_RTC_CLASS is not set
373# CONFIG_DMADEVICES is not set 367# CONFIG_DMADEVICES is not set
374# CONFIG_AUXDISPLAY is not set 368# CONFIG_AUXDISPLAY is not set
375# CONFIG_UIO is not set 369# CONFIG_UIO is not set
370
371#
372# TI VLYNQ
373#
376# CONFIG_STAGING is not set 374# CONFIG_STAGING is not set
377 375
378# 376#
379# File systems 377# File systems
380# 378#
379CONFIG_FILE_LOCKING=y
380CONFIG_FSNOTIFY=y
381# CONFIG_DNOTIFY is not set 381# CONFIG_DNOTIFY is not set
382# CONFIG_INOTIFY is not set 382# CONFIG_INOTIFY is not set
383CONFIG_INOTIFY_USER=y
383# CONFIG_QUOTA is not set 384# CONFIG_QUOTA is not set
384# CONFIG_AUTOFS_FS is not set 385# CONFIG_AUTOFS_FS is not set
385# CONFIG_AUTOFS4_FS is not set 386# CONFIG_AUTOFS4_FS is not set
@@ -418,26 +419,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
418CONFIG_HAVE_DYNAMIC_FTRACE=y 419CONFIG_HAVE_DYNAMIC_FTRACE=y
419CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 420CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
420CONFIG_TRACING_SUPPORT=y 421CONFIG_TRACING_SUPPORT=y
421 422# CONFIG_FTRACE is not set
422#
423# Tracers
424#
425# CONFIG_FUNCTION_TRACER is not set
426# CONFIG_IRQSOFF_TRACER is not set
427# CONFIG_SCHED_TRACER is not set
428# CONFIG_CONTEXT_SWITCH_TRACER is not set
429# CONFIG_EVENT_TRACER is not set
430# CONFIG_BOOT_TRACER is not set
431# CONFIG_TRACE_BRANCH_PROFILING is not set
432# CONFIG_STACK_TRACER is not set
433# CONFIG_KMEMTRACE is not set
434# CONFIG_WORKQUEUE_TRACER is not set
435# CONFIG_DMA_API_DEBUG is not set 423# CONFIG_DMA_API_DEBUG is not set
436# CONFIG_SAMPLES is not set 424# CONFIG_SAMPLES is not set
437CONFIG_HAVE_ARCH_KGDB=y 425CONFIG_HAVE_ARCH_KGDB=y
438# CONFIG_SH_STANDARD_BIOS is not set 426# CONFIG_SH_STANDARD_BIOS is not set
439# CONFIG_EARLY_SCIF_CONSOLE is not set 427# CONFIG_EARLY_SCIF_CONSOLE is not set
440# CONFIG_MORE_COMPILE_OPTIONS is not set
441 428
442# 429#
443# Security options 430# Security options
@@ -462,3 +449,4 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
462CONFIG_HAS_IOMEM=y 449CONFIG_HAS_IOMEM=y
463CONFIG_HAS_IOPORT=y 450CONFIG_HAS_IOPORT=y
464CONFIG_HAS_DMA=y 451CONFIG_HAS_DMA=y
452CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/edosk7760_defconfig b/arch/sh/configs/edosk7760_defconfig
index a822b1d8c11..77684ed9127 100644
--- a/arch/sh/configs/edosk7760_defconfig
+++ b/arch/sh/configs/edosk7760_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:45:25 2009 4# Thu Jun 18 12:25:55 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -78,7 +79,6 @@ CONFIG_SYSCTL_SYSCALL=y
78CONFIG_KALLSYMS=y 79CONFIG_KALLSYMS=y
79CONFIG_KALLSYMS_ALL=y 80CONFIG_KALLSYMS_ALL=y
80# CONFIG_KALLSYMS_EXTRA_PASS is not set 81# CONFIG_KALLSYMS_EXTRA_PASS is not set
81# CONFIG_STRIP_ASM_SYMS is not set
82CONFIG_HOTPLUG=y 82CONFIG_HOTPLUG=y
83CONFIG_PRINTK=y 83CONFIG_PRINTK=y
84CONFIG_BUG=y 84CONFIG_BUG=y
@@ -91,8 +91,13 @@ CONFIG_TIMERFD=y
91CONFIG_EVENTFD=y 91CONFIG_EVENTFD=y
92CONFIG_SHMEM=y 92CONFIG_SHMEM=y
93CONFIG_AIO=y 93CONFIG_AIO=y
94
95#
96# Performance Counters
97#
94CONFIG_VM_EVENT_COUNTERS=y 98CONFIG_VM_EVENT_COUNTERS=y
95CONFIG_SLUB_DEBUG=y 99CONFIG_SLUB_DEBUG=y
100# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_COMPAT_BRK=y 101CONFIG_COMPAT_BRK=y
97# CONFIG_SLAB is not set 102# CONFIG_SLAB is not set
98CONFIG_SLUB=y 103CONFIG_SLUB=y
@@ -182,6 +187,7 @@ CONFIG_CPU_SUBTYPE_SH7760=y
182CONFIG_QUICKLIST=y 187CONFIG_QUICKLIST=y
183CONFIG_MMU=y 188CONFIG_MMU=y
184CONFIG_PAGE_OFFSET=0x80000000 189CONFIG_PAGE_OFFSET=0x80000000
190CONFIG_FORCE_MAX_ZONEORDER=11
185CONFIG_MEMORY_START=0x0c000000 191CONFIG_MEMORY_START=0x0c000000
186CONFIG_MEMORY_SIZE=0x04000000 192CONFIG_MEMORY_SIZE=0x04000000
187CONFIG_29BIT=y 193CONFIG_29BIT=y
@@ -196,7 +202,6 @@ CONFIG_PAGE_SIZE_4KB=y
196# CONFIG_PAGE_SIZE_8KB is not set 202# CONFIG_PAGE_SIZE_8KB is not set
197# CONFIG_PAGE_SIZE_16KB is not set 203# CONFIG_PAGE_SIZE_16KB is not set
198# CONFIG_PAGE_SIZE_64KB is not set 204# CONFIG_PAGE_SIZE_64KB is not set
199CONFIG_ENTRY_OFFSET=0x00001000
200CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
201CONFIG_FLATMEM_MANUAL=y 206CONFIG_FLATMEM_MANUAL=y
202# CONFIG_DISCONTIGMEM_MANUAL is not set 207# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -209,9 +214,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
209# CONFIG_PHYS_ADDR_T_64BIT is not set 214# CONFIG_PHYS_ADDR_T_64BIT is not set
210CONFIG_ZONE_DMA_FLAG=0 215CONFIG_ZONE_DMA_FLAG=0
211CONFIG_NR_QUICK=2 216CONFIG_NR_QUICK=2
212CONFIG_UNEVICTABLE_LRU=y
213CONFIG_HAVE_MLOCK=y 217CONFIG_HAVE_MLOCK=y
214CONFIG_HAVE_MLOCKED_PAGE_BIT=y 218CONFIG_HAVE_MLOCKED_PAGE_BIT=y
219CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
215 220
216# 221#
217# Cache configuration 222# Cache configuration
@@ -229,7 +234,6 @@ CONFIG_SH_FPU=y
229CONFIG_SH_STORE_QUEUES=y 234CONFIG_SH_STORE_QUEUES=y
230CONFIG_CPU_HAS_INTEVT=y 235CONFIG_CPU_HAS_INTEVT=y
231CONFIG_CPU_HAS_SR_RB=y 236CONFIG_CPU_HAS_SR_RB=y
232CONFIG_CPU_HAS_PTEA=y
233CONFIG_CPU_HAS_FPU=y 237CONFIG_CPU_HAS_FPU=y
234 238
235# 239#
@@ -240,9 +244,10 @@ CONFIG_SH_EDOSK7760=y
240# 244#
241# Timer and clock configuration 245# Timer and clock configuration
242# 246#
243CONFIG_SH_TMU=y 247CONFIG_SH_TIMER_TMU=y
244CONFIG_SH_TIMER_IRQ=16
245CONFIG_SH_PCLK_FREQ=33333333 248CONFIG_SH_PCLK_FREQ=33333333
249CONFIG_SH_CLK_CPG=y
250CONFIG_SH_CLK_CPG_LEGACY=y
246CONFIG_TICK_ONESHOT=y 251CONFIG_TICK_ONESHOT=y
247# CONFIG_NO_HZ is not set 252# CONFIG_NO_HZ is not set
248CONFIG_HIGH_RES_TIMERS=y 253CONFIG_HIGH_RES_TIMERS=y
@@ -258,6 +263,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
258# 263#
259CONFIG_SH_DMA_API=y 264CONFIG_SH_DMA_API=y
260CONFIG_SH_DMA=y 265CONFIG_SH_DMA=y
266CONFIG_SH_DMA_IRQ_MULTI=y
261CONFIG_NR_ONCHIP_DMA_CHANNELS=8 267CONFIG_NR_ONCHIP_DMA_CHANNELS=8
262# CONFIG_NR_DMA_CHANNELS_BOOL is not set 268# CONFIG_NR_DMA_CHANNELS_BOOL is not set
263# CONFIG_SH_DMABRG is not set 269# CONFIG_SH_DMABRG is not set
@@ -289,12 +295,14 @@ CONFIG_SCHED_HRTICK=y
289CONFIG_PREEMPT=y 295CONFIG_PREEMPT=y
290CONFIG_GUSA=y 296CONFIG_GUSA=y
291# CONFIG_GUSA_RB is not set 297# CONFIG_GUSA_RB is not set
298# CONFIG_SPARSE_IRQ is not set
292 299
293# 300#
294# Boot options 301# Boot options
295# 302#
296CONFIG_ZERO_PAGE_OFFSET=0x00001000 303CONFIG_ZERO_PAGE_OFFSET=0x00001000
297CONFIG_BOOT_LINK_OFFSET=0x02000000 304CONFIG_BOOT_LINK_OFFSET=0x02000000
305CONFIG_ENTRY_OFFSET=0x00001000
298# CONFIG_UBC_WAKEUP is not set 306# CONFIG_UBC_WAKEUP is not set
299CONFIG_CMDLINE_BOOL=y 307CONFIG_CMDLINE_BOOL=y
300CONFIG_CMDLINE="mem=64M console=ttySC2,115200 root=/dev/nfs rw nfsroot=192.168.0.3:/scripts/filesys ip=192.168.0.4" 308CONFIG_CMDLINE="mem=64M console=ttySC2,115200 root=/dev/nfs rw nfsroot=192.168.0.3:/scripts/filesys ip=192.168.0.4"
@@ -373,6 +381,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
373# CONFIG_ECONET is not set 381# CONFIG_ECONET is not set
374# CONFIG_WAN_ROUTER is not set 382# CONFIG_WAN_ROUTER is not set
375# CONFIG_PHONET is not set 383# CONFIG_PHONET is not set
384# CONFIG_IEEE802154 is not set
376# CONFIG_NET_SCHED is not set 385# CONFIG_NET_SCHED is not set
377# CONFIG_DCB is not set 386# CONFIG_DCB is not set
378 387
@@ -390,7 +399,11 @@ CONFIG_WIRELESS=y
390# CONFIG_WIRELESS_OLD_REGULATORY is not set 399# CONFIG_WIRELESS_OLD_REGULATORY is not set
391# CONFIG_WIRELESS_EXT is not set 400# CONFIG_WIRELESS_EXT is not set
392# CONFIG_LIB80211 is not set 401# CONFIG_LIB80211 is not set
393# CONFIG_MAC80211 is not set 402
403#
404# CFG80211 needs to be enabled for MAC80211
405#
406CONFIG_MAC80211_DEFAULT_PS_VALUE=0
394# CONFIG_WIMAX is not set 407# CONFIG_WIMAX is not set
395# CONFIG_RFKILL is not set 408# CONFIG_RFKILL is not set
396# CONFIG_NET_9P is not set 409# CONFIG_NET_9P is not set
@@ -523,7 +536,6 @@ CONFIG_HAVE_IDE=y
523# CONFIG_ATA is not set 536# CONFIG_ATA is not set
524# CONFIG_MD is not set 537# CONFIG_MD is not set
525CONFIG_NETDEVICES=y 538CONFIG_NETDEVICES=y
526CONFIG_COMPAT_NET_DEV_OPS=y
527# CONFIG_DUMMY is not set 539# CONFIG_DUMMY is not set
528# CONFIG_BONDING is not set 540# CONFIG_BONDING is not set
529# CONFIG_MACVLAN is not set 541# CONFIG_MACVLAN is not set
@@ -548,6 +560,7 @@ CONFIG_SMC91X=y
548# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 560# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
549# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 561# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
550# CONFIG_B44 is not set 562# CONFIG_B44 is not set
563# CONFIG_KS8842 is not set
551# CONFIG_NETDEV_1000 is not set 564# CONFIG_NETDEV_1000 is not set
552# CONFIG_NETDEV_10000 is not set 565# CONFIG_NETDEV_10000 is not set
553 566
@@ -670,7 +683,6 @@ CONFIG_I2C_SH7760=y
670# CONFIG_SENSORS_PCF8574 is not set 683# CONFIG_SENSORS_PCF8574 is not set
671# CONFIG_PCF8575 is not set 684# CONFIG_PCF8575 is not set
672# CONFIG_SENSORS_PCA9539 is not set 685# CONFIG_SENSORS_PCA9539 is not set
673# CONFIG_SENSORS_MAX6875 is not set
674# CONFIG_SENSORS_TSL2550 is not set 686# CONFIG_SENSORS_TSL2550 is not set
675CONFIG_I2C_DEBUG_CORE=y 687CONFIG_I2C_DEBUG_CORE=y
676CONFIG_I2C_DEBUG_ALGO=y 688CONFIG_I2C_DEBUG_ALGO=y
@@ -703,22 +715,7 @@ CONFIG_SSB_POSSIBLE=y
703# CONFIG_MFD_WM8350_I2C is not set 715# CONFIG_MFD_WM8350_I2C is not set
704# CONFIG_MFD_PCF50633 is not set 716# CONFIG_MFD_PCF50633 is not set
705# CONFIG_REGULATOR is not set 717# CONFIG_REGULATOR is not set
706 718# CONFIG_MEDIA_SUPPORT is not set
707#
708# Multimedia devices
709#
710
711#
712# Multimedia core support
713#
714# CONFIG_VIDEO_DEV is not set
715# CONFIG_DVB_CORE is not set
716# CONFIG_VIDEO_MEDIA is not set
717
718#
719# Multimedia drivers
720#
721# CONFIG_DAB is not set
722 719
723# 720#
724# Graphics support 721# Graphics support
@@ -783,6 +780,11 @@ CONFIG_SND_JACK=y
783# CONFIG_SND_VERBOSE_PROCFS is not set 780# CONFIG_SND_VERBOSE_PROCFS is not set
784CONFIG_SND_VERBOSE_PRINTK=y 781CONFIG_SND_VERBOSE_PRINTK=y
785# CONFIG_SND_DEBUG is not set 782# CONFIG_SND_DEBUG is not set
783# CONFIG_SND_RAWMIDI_SEQ is not set
784# CONFIG_SND_OPL3_LIB_SEQ is not set
785# CONFIG_SND_OPL4_LIB_SEQ is not set
786# CONFIG_SND_SBAWE_SEQ is not set
787# CONFIG_SND_EMU10K1_SEQ is not set
786CONFIG_SND_DRIVERS=y 788CONFIG_SND_DRIVERS=y
787# CONFIG_SND_DUMMY is not set 789# CONFIG_SND_DUMMY is not set
788# CONFIG_SND_MTPAV is not set 790# CONFIG_SND_MTPAV is not set
@@ -803,10 +805,15 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
803# CONFIG_MEMSTICK is not set 805# CONFIG_MEMSTICK is not set
804# CONFIG_NEW_LEDS is not set 806# CONFIG_NEW_LEDS is not set
805# CONFIG_ACCESSIBILITY is not set 807# CONFIG_ACCESSIBILITY is not set
808CONFIG_RTC_LIB=y
806# CONFIG_RTC_CLASS is not set 809# CONFIG_RTC_CLASS is not set
807# CONFIG_DMADEVICES is not set 810# CONFIG_DMADEVICES is not set
808# CONFIG_AUXDISPLAY is not set 811# CONFIG_AUXDISPLAY is not set
809# CONFIG_UIO is not set 812# CONFIG_UIO is not set
813
814#
815# TI VLYNQ
816#
810# CONFIG_STAGING is not set 817# CONFIG_STAGING is not set
811 818
812# 819#
@@ -829,10 +836,11 @@ CONFIG_FS_MBCACHE=y
829# CONFIG_REISERFS_FS is not set 836# CONFIG_REISERFS_FS is not set
830# CONFIG_JFS_FS is not set 837# CONFIG_JFS_FS is not set
831CONFIG_FS_POSIX_ACL=y 838CONFIG_FS_POSIX_ACL=y
832CONFIG_FILE_LOCKING=y
833# CONFIG_XFS_FS is not set 839# CONFIG_XFS_FS is not set
834# CONFIG_OCFS2_FS is not set 840# CONFIG_OCFS2_FS is not set
835# CONFIG_BTRFS_FS is not set 841# CONFIG_BTRFS_FS is not set
842CONFIG_FILE_LOCKING=y
843CONFIG_FSNOTIFY=y
836CONFIG_DNOTIFY=y 844CONFIG_DNOTIFY=y
837CONFIG_INOTIFY=y 845CONFIG_INOTIFY=y
838CONFIG_INOTIFY_USER=y 846CONFIG_INOTIFY_USER=y
@@ -1015,18 +1023,16 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1015CONFIG_HAVE_DYNAMIC_FTRACE=y 1023CONFIG_HAVE_DYNAMIC_FTRACE=y
1016CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1024CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1017CONFIG_TRACING_SUPPORT=y 1025CONFIG_TRACING_SUPPORT=y
1018 1026CONFIG_FTRACE=y
1019#
1020# Tracers
1021#
1022# CONFIG_FUNCTION_TRACER is not set 1027# CONFIG_FUNCTION_TRACER is not set
1023# CONFIG_IRQSOFF_TRACER is not set 1028# CONFIG_IRQSOFF_TRACER is not set
1024# CONFIG_PREEMPT_TRACER is not set 1029# CONFIG_PREEMPT_TRACER is not set
1025# CONFIG_SCHED_TRACER is not set 1030# CONFIG_SCHED_TRACER is not set
1026# CONFIG_CONTEXT_SWITCH_TRACER is not set 1031# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1027# CONFIG_EVENT_TRACER is not set
1028# CONFIG_BOOT_TRACER is not set 1032# CONFIG_BOOT_TRACER is not set
1029# CONFIG_TRACE_BRANCH_PROFILING is not set 1033CONFIG_BRANCH_PROFILE_NONE=y
1034# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1035# CONFIG_PROFILE_ALL_BRANCHES is not set
1030# CONFIG_STACK_TRACER is not set 1036# CONFIG_STACK_TRACER is not set
1031# CONFIG_KMEMTRACE is not set 1037# CONFIG_KMEMTRACE is not set
1032# CONFIG_WORKQUEUE_TRACER is not set 1038# CONFIG_WORKQUEUE_TRACER is not set
@@ -1043,10 +1049,8 @@ CONFIG_EARLY_PRINTK=y
1043CONFIG_DEBUG_STACKOVERFLOW=y 1049CONFIG_DEBUG_STACKOVERFLOW=y
1044# CONFIG_DEBUG_STACK_USAGE is not set 1050# CONFIG_DEBUG_STACK_USAGE is not set
1045# CONFIG_4KSTACKS is not set 1051# CONFIG_4KSTACKS is not set
1046# CONFIG_IRQSTACKS is not set
1047CONFIG_DUMP_CODE=y 1052CONFIG_DUMP_CODE=y
1048# CONFIG_SH_NO_BSS_INIT is not set 1053# CONFIG_SH_NO_BSS_INIT is not set
1049# CONFIG_MORE_COMPILE_OPTIONS is not set
1050 1054
1051# 1055#
1052# Security options 1056# Security options
@@ -1165,3 +1169,4 @@ CONFIG_HAS_IOMEM=y
1165CONFIG_HAS_IOPORT=y 1169CONFIG_HAS_IOPORT=y
1166CONFIG_HAS_DMA=y 1170CONFIG_HAS_DMA=y
1167CONFIG_NLATTR=y 1171CONFIG_NLATTR=y
1172CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/espt_defconfig b/arch/sh/configs/espt_defconfig
index c5b50077913..881128eeab3 100644
--- a/arch/sh/configs/espt_defconfig
+++ b/arch/sh/configs/espt_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:46:26 2009 4# Thu Jun 18 12:27:21 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -79,7 +80,6 @@ CONFIG_UID16=y
79# CONFIG_SYSCTL_SYSCALL is not set 80# CONFIG_SYSCTL_SYSCALL is not set
80CONFIG_KALLSYMS=y 81CONFIG_KALLSYMS=y
81# CONFIG_KALLSYMS_EXTRA_PASS is not set 82# CONFIG_KALLSYMS_EXTRA_PASS is not set
82# CONFIG_STRIP_ASM_SYMS is not set
83CONFIG_HOTPLUG=y 83CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 84CONFIG_PRINTK=y
85CONFIG_BUG=y 85CONFIG_BUG=y
@@ -92,14 +92,19 @@ CONFIG_TIMERFD=y
92CONFIG_EVENTFD=y 92CONFIG_EVENTFD=y
93CONFIG_SHMEM=y 93CONFIG_SHMEM=y
94CONFIG_AIO=y 94CONFIG_AIO=y
95
96#
97# Performance Counters
98#
95CONFIG_VM_EVENT_COUNTERS=y 99CONFIG_VM_EVENT_COUNTERS=y
100# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_COMPAT_BRK=y 101CONFIG_COMPAT_BRK=y
97CONFIG_SLAB=y 102CONFIG_SLAB=y
98# CONFIG_SLUB is not set 103# CONFIG_SLUB is not set
99# CONFIG_SLOB is not set 104# CONFIG_SLOB is not set
100CONFIG_PROFILING=y 105CONFIG_PROFILING=y
101CONFIG_TRACEPOINTS=y 106CONFIG_TRACEPOINTS=y
102# CONFIG_MARKERS is not set 107CONFIG_MARKERS=y
103CONFIG_OPROFILE=y 108CONFIG_OPROFILE=y
104CONFIG_HAVE_OPROFILE=y 109CONFIG_HAVE_OPROFILE=y
105# CONFIG_KPROBES is not set 110# CONFIG_KPROBES is not set
@@ -184,6 +189,7 @@ CONFIG_CPU_SUBTYPE_SH7763=y
184CONFIG_QUICKLIST=y 189CONFIG_QUICKLIST=y
185CONFIG_MMU=y 190CONFIG_MMU=y
186CONFIG_PAGE_OFFSET=0x80000000 191CONFIG_PAGE_OFFSET=0x80000000
192CONFIG_FORCE_MAX_ZONEORDER=11
187CONFIG_MEMORY_START=0x0c000000 193CONFIG_MEMORY_START=0x0c000000
188CONFIG_MEMORY_SIZE=0x04000000 194CONFIG_MEMORY_SIZE=0x04000000
189CONFIG_29BIT=y 195CONFIG_29BIT=y
@@ -200,7 +206,6 @@ CONFIG_PAGE_SIZE_4KB=y
200# CONFIG_PAGE_SIZE_8KB is not set 206# CONFIG_PAGE_SIZE_8KB is not set
201# CONFIG_PAGE_SIZE_16KB is not set 207# CONFIG_PAGE_SIZE_16KB is not set
202# CONFIG_PAGE_SIZE_64KB is not set 208# CONFIG_PAGE_SIZE_64KB is not set
203CONFIG_ENTRY_OFFSET=0x00001000
204CONFIG_SELECT_MEMORY_MODEL=y 209CONFIG_SELECT_MEMORY_MODEL=y
205# CONFIG_FLATMEM_MANUAL is not set 210# CONFIG_FLATMEM_MANUAL is not set
206# CONFIG_DISCONTIGMEM_MANUAL is not set 211# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -215,9 +220,9 @@ CONFIG_MIGRATION=y
215# CONFIG_PHYS_ADDR_T_64BIT is not set 220# CONFIG_PHYS_ADDR_T_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=0 221CONFIG_ZONE_DMA_FLAG=0
217CONFIG_NR_QUICK=2 222CONFIG_NR_QUICK=2
218CONFIG_UNEVICTABLE_LRU=y
219CONFIG_HAVE_MLOCK=y 223CONFIG_HAVE_MLOCK=y
220CONFIG_HAVE_MLOCKED_PAGE_BIT=y 224CONFIG_HAVE_MLOCKED_PAGE_BIT=y
225CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
221 226
222# 227#
223# Cache configuration 228# Cache configuration
@@ -246,9 +251,10 @@ CONFIG_SH_ESPT=y
246# 251#
247# Timer and clock configuration 252# Timer and clock configuration
248# 253#
249CONFIG_SH_TMU=y 254CONFIG_SH_TIMER_TMU=y
250CONFIG_SH_TIMER_IRQ=28
251CONFIG_SH_PCLK_FREQ=66666666 255CONFIG_SH_PCLK_FREQ=66666666
256CONFIG_SH_CLK_CPG=y
257CONFIG_SH_CLK_CPG_LEGACY=y
252# CONFIG_NO_HZ is not set 258# CONFIG_NO_HZ is not set
253# CONFIG_HIGH_RES_TIMERS is not set 259# CONFIG_HIGH_RES_TIMERS is not set
254CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 260CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -289,12 +295,14 @@ CONFIG_PREEMPT_NONE=y
289# CONFIG_PREEMPT_VOLUNTARY is not set 295# CONFIG_PREEMPT_VOLUNTARY is not set
290# CONFIG_PREEMPT is not set 296# CONFIG_PREEMPT is not set
291CONFIG_GUSA=y 297CONFIG_GUSA=y
298# CONFIG_SPARSE_IRQ is not set
292 299
293# 300#
294# Boot options 301# Boot options
295# 302#
296CONFIG_ZERO_PAGE_OFFSET=0x00001000 303CONFIG_ZERO_PAGE_OFFSET=0x00001000
297CONFIG_BOOT_LINK_OFFSET=0x00800000 304CONFIG_BOOT_LINK_OFFSET=0x00800000
305CONFIG_ENTRY_OFFSET=0x00001000
298CONFIG_CMDLINE_BOOL=y 306CONFIG_CMDLINE_BOOL=y
299CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/nfs ip=bootp" 307CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/nfs ip=bootp"
300 308
@@ -377,6 +385,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
377# CONFIG_ECONET is not set 385# CONFIG_ECONET is not set
378# CONFIG_WAN_ROUTER is not set 386# CONFIG_WAN_ROUTER is not set
379# CONFIG_PHONET is not set 387# CONFIG_PHONET is not set
388# CONFIG_IEEE802154 is not set
380# CONFIG_NET_SCHED is not set 389# CONFIG_NET_SCHED is not set
381# CONFIG_DCB is not set 390# CONFIG_DCB is not set
382 391
@@ -529,10 +538,6 @@ CONFIG_BLK_DEV_SD=y
529# CONFIG_BLK_DEV_SR is not set 538# CONFIG_BLK_DEV_SR is not set
530# CONFIG_CHR_DEV_SG is not set 539# CONFIG_CHR_DEV_SG is not set
531# CONFIG_CHR_DEV_SCH is not set 540# CONFIG_CHR_DEV_SCH is not set
532
533#
534# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
535#
536# CONFIG_SCSI_MULTI_LUN is not set 541# CONFIG_SCSI_MULTI_LUN is not set
537# CONFIG_SCSI_CONSTANTS is not set 542# CONFIG_SCSI_CONSTANTS is not set
538# CONFIG_SCSI_LOGGING is not set 543# CONFIG_SCSI_LOGGING is not set
@@ -549,6 +554,7 @@ CONFIG_SCSI_WAIT_SCAN=m
549# CONFIG_SCSI_SRP_ATTRS is not set 554# CONFIG_SCSI_SRP_ATTRS is not set
550CONFIG_SCSI_LOWLEVEL=y 555CONFIG_SCSI_LOWLEVEL=y
551# CONFIG_ISCSI_TCP is not set 556# CONFIG_ISCSI_TCP is not set
557# CONFIG_SCSI_BNX2_ISCSI is not set
552# CONFIG_LIBFC is not set 558# CONFIG_LIBFC is not set
553# CONFIG_LIBFCOE is not set 559# CONFIG_LIBFCOE is not set
554# CONFIG_SCSI_DEBUG is not set 560# CONFIG_SCSI_DEBUG is not set
@@ -557,7 +563,6 @@ CONFIG_SCSI_LOWLEVEL=y
557# CONFIG_ATA is not set 563# CONFIG_ATA is not set
558# CONFIG_MD is not set 564# CONFIG_MD is not set
559CONFIG_NETDEVICES=y 565CONFIG_NETDEVICES=y
560CONFIG_COMPAT_NET_DEV_OPS=y
561# CONFIG_DUMMY is not set 566# CONFIG_DUMMY is not set
562# CONFIG_BONDING is not set 567# CONFIG_BONDING is not set
563# CONFIG_MACVLAN is not set 568# CONFIG_MACVLAN is not set
@@ -602,6 +607,7 @@ CONFIG_SH_ETH=y
602# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 607# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
603# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 608# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
604# CONFIG_B44 is not set 609# CONFIG_B44 is not set
610# CONFIG_KS8842 is not set
605# CONFIG_NETDEV_1000 is not set 611# CONFIG_NETDEV_1000 is not set
606# CONFIG_NETDEV_10000 is not set 612# CONFIG_NETDEV_10000 is not set
607 613
@@ -720,22 +726,7 @@ CONFIG_SSB_POSSIBLE=y
720# CONFIG_HTC_PASIC3 is not set 726# CONFIG_HTC_PASIC3 is not set
721# CONFIG_MFD_TMIO is not set 727# CONFIG_MFD_TMIO is not set
722# CONFIG_REGULATOR is not set 728# CONFIG_REGULATOR is not set
723 729# CONFIG_MEDIA_SUPPORT is not set
724#
725# Multimedia devices
726#
727
728#
729# Multimedia core support
730#
731# CONFIG_VIDEO_DEV is not set
732# CONFIG_DVB_CORE is not set
733# CONFIG_VIDEO_MEDIA is not set
734
735#
736# Multimedia drivers
737#
738# CONFIG_DAB is not set
739 730
740# 731#
741# Graphics support 732# Graphics support
@@ -909,10 +900,15 @@ CONFIG_USB_STORAGE=y
909# CONFIG_MEMSTICK is not set 900# CONFIG_MEMSTICK is not set
910# CONFIG_NEW_LEDS is not set 901# CONFIG_NEW_LEDS is not set
911# CONFIG_ACCESSIBILITY is not set 902# CONFIG_ACCESSIBILITY is not set
903CONFIG_RTC_LIB=y
912# CONFIG_RTC_CLASS is not set 904# CONFIG_RTC_CLASS is not set
913# CONFIG_DMADEVICES is not set 905# CONFIG_DMADEVICES is not set
914# CONFIG_AUXDISPLAY is not set 906# CONFIG_AUXDISPLAY is not set
915# CONFIG_UIO is not set 907# CONFIG_UIO is not set
908
909#
910# TI VLYNQ
911#
916# CONFIG_STAGING is not set 912# CONFIG_STAGING is not set
917 913
918# 914#
@@ -933,10 +929,11 @@ CONFIG_FS_MBCACHE=y
933# CONFIG_REISERFS_FS is not set 929# CONFIG_REISERFS_FS is not set
934# CONFIG_JFS_FS is not set 930# CONFIG_JFS_FS is not set
935CONFIG_FS_POSIX_ACL=y 931CONFIG_FS_POSIX_ACL=y
936CONFIG_FILE_LOCKING=y
937# CONFIG_XFS_FS is not set 932# CONFIG_XFS_FS is not set
938# CONFIG_OCFS2_FS is not set 933# CONFIG_OCFS2_FS is not set
939# CONFIG_BTRFS_FS is not set 934# CONFIG_BTRFS_FS is not set
935CONFIG_FILE_LOCKING=y
936CONFIG_FSNOTIFY=y
940CONFIG_DNOTIFY=y 937CONFIG_DNOTIFY=y
941CONFIG_INOTIFY=y 938CONFIG_INOTIFY=y
942CONFIG_INOTIFY_USER=y 939CONFIG_INOTIFY_USER=y
@@ -1088,31 +1085,17 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1088CONFIG_HAVE_DYNAMIC_FTRACE=y 1085CONFIG_HAVE_DYNAMIC_FTRACE=y
1089CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1086CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1090CONFIG_RING_BUFFER=y 1087CONFIG_RING_BUFFER=y
1088CONFIG_EVENT_TRACING=y
1089CONFIG_CONTEXT_SWITCH_TRACER=y
1091CONFIG_TRACING=y 1090CONFIG_TRACING=y
1092CONFIG_TRACING_SUPPORT=y 1091CONFIG_TRACING_SUPPORT=y
1093 1092# CONFIG_FTRACE is not set
1094#
1095# Tracers
1096#
1097# CONFIG_FUNCTION_TRACER is not set
1098# CONFIG_IRQSOFF_TRACER is not set
1099# CONFIG_SCHED_TRACER is not set
1100# CONFIG_CONTEXT_SWITCH_TRACER is not set
1101# CONFIG_EVENT_TRACER is not set
1102# CONFIG_BOOT_TRACER is not set
1103# CONFIG_TRACE_BRANCH_PROFILING is not set
1104# CONFIG_STACK_TRACER is not set
1105# CONFIG_KMEMTRACE is not set
1106# CONFIG_WORKQUEUE_TRACER is not set
1107# CONFIG_BLK_DEV_IO_TRACE is not set
1108# CONFIG_FTRACE_STARTUP_TEST is not set
1109# CONFIG_DYNAMIC_DEBUG is not set 1093# CONFIG_DYNAMIC_DEBUG is not set
1110# CONFIG_DMA_API_DEBUG is not set 1094# CONFIG_DMA_API_DEBUG is not set
1111# CONFIG_SAMPLES is not set 1095# CONFIG_SAMPLES is not set
1112CONFIG_HAVE_ARCH_KGDB=y 1096CONFIG_HAVE_ARCH_KGDB=y
1113# CONFIG_SH_STANDARD_BIOS is not set 1097# CONFIG_SH_STANDARD_BIOS is not set
1114# CONFIG_EARLY_SCIF_CONSOLE is not set 1098# CONFIG_EARLY_SCIF_CONSOLE is not set
1115# CONFIG_MORE_COMPILE_OPTIONS is not set
1116 1099
1117# 1100#
1118# Security options 1101# Security options
@@ -1226,3 +1209,4 @@ CONFIG_HAS_IOMEM=y
1226CONFIG_HAS_IOPORT=y 1209CONFIG_HAS_IOPORT=y
1227CONFIG_HAS_DMA=y 1210CONFIG_HAS_DMA=y
1228CONFIG_NLATTR=y 1211CONFIG_NLATTR=y
1212CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/hp6xx_defconfig b/arch/sh/configs/hp6xx_defconfig
index 8e13027eecc..3249d46fdc1 100644
--- a/arch/sh/configs/hp6xx_defconfig
+++ b/arch/sh/configs/hp6xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:47:15 2009 4# Thu Jun 18 12:28:12 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20CONFIG_ARCH_SUSPEND_POSSIBLE=y 20CONFIG_ARCH_SUSPEND_POSSIBLE=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_APM_EMULATION=y 22CONFIG_SYS_SUPPORTS_APM_EMULATION=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -68,7 +69,6 @@ CONFIG_UID16=y
68# CONFIG_SYSCTL_SYSCALL is not set 69# CONFIG_SYSCTL_SYSCALL is not set
69CONFIG_KALLSYMS=y 70CONFIG_KALLSYMS=y
70# CONFIG_KALLSYMS_EXTRA_PASS is not set 71# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
72CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
73CONFIG_PRINTK=y 73CONFIG_PRINTK=y
74CONFIG_BUG=y 74CONFIG_BUG=y
@@ -81,7 +81,12 @@ CONFIG_TIMERFD=y
81CONFIG_EVENTFD=y 81CONFIG_EVENTFD=y
82CONFIG_SHMEM=y 82CONFIG_SHMEM=y
83CONFIG_AIO=y 83CONFIG_AIO=y
84
85#
86# Performance Counters
87#
84CONFIG_VM_EVENT_COUNTERS=y 88CONFIG_VM_EVENT_COUNTERS=y
89# CONFIG_STRIP_ASM_SYMS is not set
85CONFIG_COMPAT_BRK=y 90CONFIG_COMPAT_BRK=y
86CONFIG_SLAB=y 91CONFIG_SLAB=y
87# CONFIG_SLUB is not set 92# CONFIG_SLUB is not set
@@ -165,6 +170,7 @@ CONFIG_CPU_SUBTYPE_SH7709=y
165CONFIG_QUICKLIST=y 170CONFIG_QUICKLIST=y
166CONFIG_MMU=y 171CONFIG_MMU=y
167CONFIG_PAGE_OFFSET=0x80000000 172CONFIG_PAGE_OFFSET=0x80000000
173CONFIG_FORCE_MAX_ZONEORDER=11
168CONFIG_MEMORY_START=0x0d000000 174CONFIG_MEMORY_START=0x0d000000
169CONFIG_MEMORY_SIZE=0x00400000 175CONFIG_MEMORY_SIZE=0x00400000
170CONFIG_29BIT=y 176CONFIG_29BIT=y
@@ -179,7 +185,6 @@ CONFIG_PAGE_SIZE_4KB=y
179# CONFIG_PAGE_SIZE_8KB is not set 185# CONFIG_PAGE_SIZE_8KB is not set
180# CONFIG_PAGE_SIZE_16KB is not set 186# CONFIG_PAGE_SIZE_16KB is not set
181# CONFIG_PAGE_SIZE_64KB is not set 187# CONFIG_PAGE_SIZE_64KB is not set
182CONFIG_ENTRY_OFFSET=0x00001000
183CONFIG_SELECT_MEMORY_MODEL=y 188CONFIG_SELECT_MEMORY_MODEL=y
184CONFIG_FLATMEM_MANUAL=y 189CONFIG_FLATMEM_MANUAL=y
185# CONFIG_DISCONTIGMEM_MANUAL is not set 190# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -192,9 +197,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_PHYS_ADDR_T_64BIT is not set 197# CONFIG_PHYS_ADDR_T_64BIT is not set
193CONFIG_ZONE_DMA_FLAG=0 198CONFIG_ZONE_DMA_FLAG=0
194CONFIG_NR_QUICK=2 199CONFIG_NR_QUICK=2
195CONFIG_UNEVICTABLE_LRU=y
196CONFIG_HAVE_MLOCK=y 200CONFIG_HAVE_MLOCK=y
197CONFIG_HAVE_MLOCKED_PAGE_BIT=y 201CONFIG_HAVE_MLOCKED_PAGE_BIT=y
202CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
198 203
199# 204#
200# Cache configuration 205# Cache configuration
@@ -223,9 +228,10 @@ CONFIG_SH_HP6XX=y
223# 228#
224# Timer and clock configuration 229# Timer and clock configuration
225# 230#
226CONFIG_SH_TMU=y 231CONFIG_SH_TIMER_TMU=y
227CONFIG_SH_TIMER_IRQ=16
228CONFIG_SH_PCLK_FREQ=22110000 232CONFIG_SH_PCLK_FREQ=22110000
233CONFIG_SH_CLK_CPG=y
234CONFIG_SH_CLK_CPG_LEGACY=y
229# CONFIG_NO_HZ is not set 235# CONFIG_NO_HZ is not set
230# CONFIG_HIGH_RES_TIMERS is not set 236# CONFIG_HIGH_RES_TIMERS is not set
231CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 237CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -249,7 +255,6 @@ CONFIG_NR_ONCHIP_DMA_CHANNELS=6
249CONFIG_HD6446X_SERIES=y 255CONFIG_HD6446X_SERIES=y
250CONFIG_HD64461=y 256CONFIG_HD64461=y
251CONFIG_HD64461_IRQ=36 257CONFIG_HD64461_IRQ=36
252CONFIG_HD64461_IOBASE=0xb0000000
253CONFIG_HD64461_ENABLER=y 258CONFIG_HD64461_ENABLER=y
254 259
255# 260#
@@ -275,12 +280,14 @@ CONFIG_PREEMPT_NONE=y
275# CONFIG_PREEMPT is not set 280# CONFIG_PREEMPT is not set
276CONFIG_GUSA=y 281CONFIG_GUSA=y
277# CONFIG_GUSA_RB is not set 282# CONFIG_GUSA_RB is not set
283# CONFIG_SPARSE_IRQ is not set
278 284
279# 285#
280# Boot options 286# Boot options
281# 287#
282CONFIG_ZERO_PAGE_OFFSET=0x00001000 288CONFIG_ZERO_PAGE_OFFSET=0x00001000
283CONFIG_BOOT_LINK_OFFSET=0x00800000 289CONFIG_BOOT_LINK_OFFSET=0x00800000
290CONFIG_ENTRY_OFFSET=0x00001000
284# CONFIG_CMDLINE_BOOL is not set 291# CONFIG_CMDLINE_BOOL is not set
285 292
286# 293#
@@ -370,10 +377,6 @@ CONFIG_BLK_DEV_SD=y
370# CONFIG_BLK_DEV_SR is not set 377# CONFIG_BLK_DEV_SR is not set
371# CONFIG_CHR_DEV_SG is not set 378# CONFIG_CHR_DEV_SG is not set
372# CONFIG_CHR_DEV_SCH is not set 379# CONFIG_CHR_DEV_SCH is not set
373
374#
375# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
376#
377# CONFIG_SCSI_MULTI_LUN is not set 380# CONFIG_SCSI_MULTI_LUN is not set
378# CONFIG_SCSI_CONSTANTS is not set 381# CONFIG_SCSI_CONSTANTS is not set
379# CONFIG_SCSI_LOGGING is not set 382# CONFIG_SCSI_LOGGING is not set
@@ -387,6 +390,7 @@ CONFIG_BLK_DEV_SD=y
387# CONFIG_SCSI_SAS_LIBSAS is not set 390# CONFIG_SCSI_SAS_LIBSAS is not set
388# CONFIG_SCSI_SRP_ATTRS is not set 391# CONFIG_SCSI_SRP_ATTRS is not set
389CONFIG_SCSI_LOWLEVEL=y 392CONFIG_SCSI_LOWLEVEL=y
393# CONFIG_SCSI_BNX2_ISCSI is not set
390# CONFIG_LIBFC is not set 394# CONFIG_LIBFC is not set
391# CONFIG_LIBFCOE is not set 395# CONFIG_LIBFCOE is not set
392# CONFIG_SCSI_DEBUG is not set 396# CONFIG_SCSI_DEBUG is not set
@@ -524,21 +528,7 @@ CONFIG_SSB_POSSIBLE=y
524# CONFIG_HTC_PASIC3 is not set 528# CONFIG_HTC_PASIC3 is not set
525# CONFIG_MFD_TMIO is not set 529# CONFIG_MFD_TMIO is not set
526# CONFIG_REGULATOR is not set 530# CONFIG_REGULATOR is not set
527 531# CONFIG_MEDIA_SUPPORT is not set
528#
529# Multimedia devices
530#
531
532#
533# Multimedia core support
534#
535# CONFIG_VIDEO_DEV is not set
536# CONFIG_VIDEO_MEDIA is not set
537
538#
539# Multimedia drivers
540#
541# CONFIG_DAB is not set
542 532
543# 533#
544# Graphics support 534# Graphics support
@@ -651,9 +641,14 @@ CONFIG_RTC_INTF_DEV=y
651# on-CPU RTC drivers 641# on-CPU RTC drivers
652# 642#
653CONFIG_RTC_DRV_SH=y 643CONFIG_RTC_DRV_SH=y
644# CONFIG_RTC_DRV_GENERIC is not set
654# CONFIG_DMADEVICES is not set 645# CONFIG_DMADEVICES is not set
655# CONFIG_AUXDISPLAY is not set 646# CONFIG_AUXDISPLAY is not set
656# CONFIG_UIO is not set 647# CONFIG_UIO is not set
648
649#
650# TI VLYNQ
651#
657# CONFIG_STAGING is not set 652# CONFIG_STAGING is not set
658 653
659# 654#
@@ -667,9 +662,10 @@ CONFIG_EXT2_FS=y
667# CONFIG_REISERFS_FS is not set 662# CONFIG_REISERFS_FS is not set
668# CONFIG_JFS_FS is not set 663# CONFIG_JFS_FS is not set
669# CONFIG_FS_POSIX_ACL is not set 664# CONFIG_FS_POSIX_ACL is not set
670CONFIG_FILE_LOCKING=y
671# CONFIG_XFS_FS is not set 665# CONFIG_XFS_FS is not set
672# CONFIG_BTRFS_FS is not set 666# CONFIG_BTRFS_FS is not set
667CONFIG_FILE_LOCKING=y
668CONFIG_FSNOTIFY=y
673CONFIG_DNOTIFY=y 669CONFIG_DNOTIFY=y
674CONFIG_INOTIFY=y 670CONFIG_INOTIFY=y
675CONFIG_INOTIFY_USER=y 671CONFIG_INOTIFY_USER=y
@@ -798,27 +794,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
798CONFIG_HAVE_DYNAMIC_FTRACE=y 794CONFIG_HAVE_DYNAMIC_FTRACE=y
799CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 795CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
800CONFIG_TRACING_SUPPORT=y 796CONFIG_TRACING_SUPPORT=y
801 797# CONFIG_FTRACE is not set
802#
803# Tracers
804#
805# CONFIG_FUNCTION_TRACER is not set
806# CONFIG_IRQSOFF_TRACER is not set
807# CONFIG_SCHED_TRACER is not set
808# CONFIG_CONTEXT_SWITCH_TRACER is not set
809# CONFIG_EVENT_TRACER is not set
810# CONFIG_BOOT_TRACER is not set
811# CONFIG_TRACE_BRANCH_PROFILING is not set
812# CONFIG_STACK_TRACER is not set
813# CONFIG_KMEMTRACE is not set
814# CONFIG_WORKQUEUE_TRACER is not set
815# CONFIG_BLK_DEV_IO_TRACE is not set
816# CONFIG_DMA_API_DEBUG is not set 798# CONFIG_DMA_API_DEBUG is not set
817# CONFIG_SAMPLES is not set 799# CONFIG_SAMPLES is not set
818CONFIG_HAVE_ARCH_KGDB=y 800CONFIG_HAVE_ARCH_KGDB=y
819# CONFIG_SH_STANDARD_BIOS is not set 801# CONFIG_SH_STANDARD_BIOS is not set
820# CONFIG_EARLY_SCIF_CONSOLE is not set 802# CONFIG_EARLY_SCIF_CONSOLE is not set
821# CONFIG_MORE_COMPILE_OPTIONS is not set
822 803
823# 804#
824# Security options 805# Security options
@@ -939,3 +920,4 @@ CONFIG_CRC32=y
939CONFIG_HAS_IOMEM=y 920CONFIG_HAS_IOMEM=y
940CONFIG_HAS_IOPORT=y 921CONFIG_HAS_IOPORT=y
941CONFIG_HAS_DMA=y 922CONFIG_HAS_DMA=y
923CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/landisk_defconfig b/arch/sh/configs/landisk_defconfig
index 7f549aef0df..ba05739fda2 100644
--- a/arch/sh/configs/landisk_defconfig
+++ b/arch/sh/configs/landisk_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:47:48 2009 4# Thu Jun 18 12:28:45 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -70,7 +71,6 @@ CONFIG_UID16=y
70# CONFIG_SYSCTL_SYSCALL is not set 71# CONFIG_SYSCTL_SYSCALL is not set
71CONFIG_KALLSYMS=y 72CONFIG_KALLSYMS=y
72CONFIG_KALLSYMS_EXTRA_PASS=y 73CONFIG_KALLSYMS_EXTRA_PASS=y
73# CONFIG_STRIP_ASM_SYMS is not set
74CONFIG_HOTPLUG=y 74CONFIG_HOTPLUG=y
75CONFIG_PRINTK=y 75CONFIG_PRINTK=y
76CONFIG_BUG=y 76CONFIG_BUG=y
@@ -83,8 +83,13 @@ CONFIG_TIMERFD=y
83CONFIG_EVENTFD=y 83CONFIG_EVENTFD=y
84CONFIG_SHMEM=y 84CONFIG_SHMEM=y
85CONFIG_AIO=y 85CONFIG_AIO=y
86
87#
88# Performance Counters
89#
86CONFIG_VM_EVENT_COUNTERS=y 90CONFIG_VM_EVENT_COUNTERS=y
87CONFIG_PCI_QUIRKS=y 91CONFIG_PCI_QUIRKS=y
92# CONFIG_STRIP_ASM_SYMS is not set
88CONFIG_COMPAT_BRK=y 93CONFIG_COMPAT_BRK=y
89CONFIG_SLAB=y 94CONFIG_SLAB=y
90# CONFIG_SLUB is not set 95# CONFIG_SLUB is not set
@@ -174,6 +179,7 @@ CONFIG_CPU_SUBTYPE_SH7751R=y
174CONFIG_QUICKLIST=y 179CONFIG_QUICKLIST=y
175CONFIG_MMU=y 180CONFIG_MMU=y
176CONFIG_PAGE_OFFSET=0x80000000 181CONFIG_PAGE_OFFSET=0x80000000
182CONFIG_FORCE_MAX_ZONEORDER=11
177CONFIG_MEMORY_START=0x0c000000 183CONFIG_MEMORY_START=0x0c000000
178CONFIG_MEMORY_SIZE=0x04000000 184CONFIG_MEMORY_SIZE=0x04000000
179CONFIG_29BIT=y 185CONFIG_29BIT=y
@@ -188,7 +194,6 @@ CONFIG_PAGE_SIZE_4KB=y
188# CONFIG_PAGE_SIZE_8KB is not set 194# CONFIG_PAGE_SIZE_8KB is not set
189# CONFIG_PAGE_SIZE_16KB is not set 195# CONFIG_PAGE_SIZE_16KB is not set
190# CONFIG_PAGE_SIZE_64KB is not set 196# CONFIG_PAGE_SIZE_64KB is not set
191CONFIG_ENTRY_OFFSET=0x00001000
192CONFIG_SELECT_MEMORY_MODEL=y 197CONFIG_SELECT_MEMORY_MODEL=y
193CONFIG_FLATMEM_MANUAL=y 198CONFIG_FLATMEM_MANUAL=y
194# CONFIG_DISCONTIGMEM_MANUAL is not set 199# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -201,9 +206,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
201# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
202CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
203CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
204CONFIG_UNEVICTABLE_LRU=y
205CONFIG_HAVE_MLOCK=y 209CONFIG_HAVE_MLOCK=y
206CONFIG_HAVE_MLOCKED_PAGE_BIT=y 210CONFIG_HAVE_MLOCKED_PAGE_BIT=y
211CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
207 212
208# 213#
209# Cache configuration 214# Cache configuration
@@ -221,7 +226,6 @@ CONFIG_SH_FPU=y
221# CONFIG_SH_STORE_QUEUES is not set 226# CONFIG_SH_STORE_QUEUES is not set
222CONFIG_CPU_HAS_INTEVT=y 227CONFIG_CPU_HAS_INTEVT=y
223CONFIG_CPU_HAS_SR_RB=y 228CONFIG_CPU_HAS_SR_RB=y
224CONFIG_CPU_HAS_PTEA=y
225CONFIG_CPU_HAS_FPU=y 229CONFIG_CPU_HAS_FPU=y
226 230
227# 231#
@@ -237,9 +241,10 @@ CONFIG_SH_LANDISK=y
237# 241#
238# Timer and clock configuration 242# Timer and clock configuration
239# 243#
240CONFIG_SH_TMU=y 244CONFIG_SH_TIMER_TMU=y
241CONFIG_SH_TIMER_IRQ=16
242CONFIG_SH_PCLK_FREQ=33333333 245CONFIG_SH_PCLK_FREQ=33333333
246CONFIG_SH_CLK_CPG=y
247CONFIG_SH_CLK_CPG_LEGACY=y
243# CONFIG_NO_HZ is not set 248# CONFIG_NO_HZ is not set
244# CONFIG_HIGH_RES_TIMERS is not set 249# CONFIG_HIGH_RES_TIMERS is not set
245CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 250CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -281,12 +286,14 @@ CONFIG_PREEMPT_NONE=y
281# CONFIG_PREEMPT is not set 286# CONFIG_PREEMPT is not set
282CONFIG_GUSA=y 287CONFIG_GUSA=y
283# CONFIG_GUSA_RB is not set 288# CONFIG_GUSA_RB is not set
289# CONFIG_SPARSE_IRQ is not set
284 290
285# 291#
286# Boot options 292# Boot options
287# 293#
288CONFIG_ZERO_PAGE_OFFSET=0x00001000 294CONFIG_ZERO_PAGE_OFFSET=0x00001000
289CONFIG_BOOT_LINK_OFFSET=0x00800000 295CONFIG_BOOT_LINK_OFFSET=0x00800000
296CONFIG_ENTRY_OFFSET=0x00001000
290# CONFIG_UBC_WAKEUP is not set 297# CONFIG_UBC_WAKEUP is not set
291# CONFIG_CMDLINE_BOOL is not set 298# CONFIG_CMDLINE_BOOL is not set
292 299
@@ -420,6 +427,7 @@ CONFIG_ATALK=m
420# CONFIG_ECONET is not set 427# CONFIG_ECONET is not set
421# CONFIG_WAN_ROUTER is not set 428# CONFIG_WAN_ROUTER is not set
422# CONFIG_PHONET is not set 429# CONFIG_PHONET is not set
430# CONFIG_IEEE802154 is not set
423# CONFIG_NET_SCHED is not set 431# CONFIG_NET_SCHED is not set
424# CONFIG_DCB is not set 432# CONFIG_DCB is not set
425 433
@@ -437,7 +445,11 @@ CONFIG_WIRELESS=y
437# CONFIG_WIRELESS_OLD_REGULATORY is not set 445# CONFIG_WIRELESS_OLD_REGULATORY is not set
438# CONFIG_WIRELESS_EXT is not set 446# CONFIG_WIRELESS_EXT is not set
439# CONFIG_LIB80211 is not set 447# CONFIG_LIB80211 is not set
440# CONFIG_MAC80211 is not set 448
449#
450# CFG80211 needs to be enabled for MAC80211
451#
452CONFIG_MAC80211_DEFAULT_PS_VALUE=0
441# CONFIG_WIMAX is not set 453# CONFIG_WIMAX is not set
442# CONFIG_RFKILL is not set 454# CONFIG_RFKILL is not set
443# CONFIG_NET_9P is not set 455# CONFIG_NET_9P is not set
@@ -488,6 +500,7 @@ CONFIG_MISC_DEVICES=y
488# EEPROM support 500# EEPROM support
489# 501#
490# CONFIG_EEPROM_93CX6 is not set 502# CONFIG_EEPROM_93CX6 is not set
503# CONFIG_CB710_CORE is not set
491CONFIG_HAVE_IDE=y 504CONFIG_HAVE_IDE=y
492CONFIG_IDE=y 505CONFIG_IDE=y
493 506
@@ -567,10 +580,6 @@ CONFIG_BLK_DEV_SD=y
567# CONFIG_BLK_DEV_SR is not set 580# CONFIG_BLK_DEV_SR is not set
568# CONFIG_CHR_DEV_SG is not set 581# CONFIG_CHR_DEV_SG is not set
569# CONFIG_CHR_DEV_SCH is not set 582# CONFIG_CHR_DEV_SCH is not set
570
571#
572# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
573#
574CONFIG_SCSI_MULTI_LUN=y 583CONFIG_SCSI_MULTI_LUN=y
575# CONFIG_SCSI_CONSTANTS is not set 584# CONFIG_SCSI_CONSTANTS is not set
576# CONFIG_SCSI_LOGGING is not set 585# CONFIG_SCSI_LOGGING is not set
@@ -588,6 +597,7 @@ CONFIG_SCSI_WAIT_SCAN=m
588CONFIG_SCSI_LOWLEVEL=y 597CONFIG_SCSI_LOWLEVEL=y
589# CONFIG_ISCSI_TCP is not set 598# CONFIG_ISCSI_TCP is not set
590# CONFIG_SCSI_CXGB3_ISCSI is not set 599# CONFIG_SCSI_CXGB3_ISCSI is not set
600# CONFIG_SCSI_BNX2_ISCSI is not set
591# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 601# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
592# CONFIG_SCSI_3W_9XXX is not set 602# CONFIG_SCSI_3W_9XXX is not set
593# CONFIG_SCSI_ACARD is not set 603# CONFIG_SCSI_ACARD is not set
@@ -596,6 +606,7 @@ CONFIG_SCSI_LOWLEVEL=y
596# CONFIG_SCSI_AIC7XXX_OLD is not set 606# CONFIG_SCSI_AIC7XXX_OLD is not set
597# CONFIG_SCSI_AIC79XX is not set 607# CONFIG_SCSI_AIC79XX is not set
598# CONFIG_SCSI_AIC94XX is not set 608# CONFIG_SCSI_AIC94XX is not set
609# CONFIG_SCSI_MVSAS is not set
599# CONFIG_SCSI_ARCMSR is not set 610# CONFIG_SCSI_ARCMSR is not set
600# CONFIG_MEGARAID_NEWGEN is not set 611# CONFIG_MEGARAID_NEWGEN is not set
601# CONFIG_MEGARAID_LEGACY is not set 612# CONFIG_MEGARAID_LEGACY is not set
@@ -610,7 +621,6 @@ CONFIG_SCSI_LOWLEVEL=y
610# CONFIG_SCSI_IPS is not set 621# CONFIG_SCSI_IPS is not set
611# CONFIG_SCSI_INITIO is not set 622# CONFIG_SCSI_INITIO is not set
612# CONFIG_SCSI_INIA100 is not set 623# CONFIG_SCSI_INIA100 is not set
613# CONFIG_SCSI_MVSAS is not set
614# CONFIG_SCSI_STEX is not set 624# CONFIG_SCSI_STEX is not set
615# CONFIG_SCSI_SYM53C8XX_2 is not set 625# CONFIG_SCSI_SYM53C8XX_2 is not set
616# CONFIG_SCSI_QLOGIC_1280 is not set 626# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -649,7 +659,6 @@ CONFIG_MD_RAID1=m
649# CONFIG_IEEE1394 is not set 659# CONFIG_IEEE1394 is not set
650# CONFIG_I2O is not set 660# CONFIG_I2O is not set
651CONFIG_NETDEVICES=y 661CONFIG_NETDEVICES=y
652CONFIG_COMPAT_NET_DEV_OPS=y
653# CONFIG_DUMMY is not set 662# CONFIG_DUMMY is not set
654# CONFIG_BONDING is not set 663# CONFIG_BONDING is not set
655# CONFIG_MACVLAN is not set 664# CONFIG_MACVLAN is not set
@@ -698,6 +707,7 @@ CONFIG_8139CP=y
698# CONFIG_SMSC9420 is not set 707# CONFIG_SMSC9420 is not set
699# CONFIG_SUNDANCE is not set 708# CONFIG_SUNDANCE is not set
700# CONFIG_TLAN is not set 709# CONFIG_TLAN is not set
710# CONFIG_KS8842 is not set
701# CONFIG_VIA_RHINE is not set 711# CONFIG_VIA_RHINE is not set
702# CONFIG_SC92031 is not set 712# CONFIG_SC92031 is not set
703# CONFIG_ATL2 is not set 713# CONFIG_ATL2 is not set
@@ -895,65 +905,7 @@ CONFIG_SSB_POSSIBLE=y
895# CONFIG_HTC_PASIC3 is not set 905# CONFIG_HTC_PASIC3 is not set
896# CONFIG_MFD_TMIO is not set 906# CONFIG_MFD_TMIO is not set
897# CONFIG_REGULATOR is not set 907# CONFIG_REGULATOR is not set
898 908# CONFIG_MEDIA_SUPPORT is not set
899#
900# Multimedia devices
901#
902
903#
904# Multimedia core support
905#
906CONFIG_VIDEO_DEV=m
907CONFIG_VIDEO_V4L2_COMMON=m
908CONFIG_VIDEO_ALLOW_V4L1=y
909CONFIG_VIDEO_V4L1_COMPAT=y
910# CONFIG_DVB_CORE is not set
911CONFIG_VIDEO_MEDIA=m
912
913#
914# Multimedia drivers
915#
916# CONFIG_MEDIA_ATTACH is not set
917CONFIG_VIDEO_V4L2=m
918CONFIG_VIDEO_V4L1=m
919CONFIG_VIDEO_CAPTURE_DRIVERS=y
920# CONFIG_VIDEO_ADV_DEBUG is not set
921# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
922CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
923# CONFIG_VIDEO_VIVI is not set
924# CONFIG_VIDEO_CPIA is not set
925# CONFIG_VIDEO_CPIA2 is not set
926# CONFIG_SOC_CAMERA is not set
927CONFIG_V4L_USB_DRIVERS=y
928# CONFIG_USB_VIDEO_CLASS is not set
929CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
930# CONFIG_USB_GSPCA is not set
931# CONFIG_VIDEO_HDPVR is not set
932CONFIG_VIDEO_USBVIDEO=m
933CONFIG_USB_VICAM=m
934CONFIG_USB_IBMCAM=m
935CONFIG_USB_KONICAWC=m
936# CONFIG_USB_QUICKCAM_MESSENGER is not set
937# CONFIG_USB_ET61X251 is not set
938CONFIG_USB_OV511=m
939CONFIG_USB_SE401=m
940CONFIG_USB_SN9C102=m
941CONFIG_USB_STV680=m
942# CONFIG_USB_ZC0301 is not set
943CONFIG_USB_PWC=m
944# CONFIG_USB_PWC_DEBUG is not set
945CONFIG_USB_PWC_INPUT_EVDEV=y
946# CONFIG_USB_ZR364XX is not set
947# CONFIG_USB_STKWEBCAM is not set
948# CONFIG_USB_S2255 is not set
949CONFIG_RADIO_ADAPTERS=y
950# CONFIG_RADIO_GEMTEK_PCI is not set
951# CONFIG_RADIO_MAXIRADIO is not set
952# CONFIG_RADIO_MAESTRO is not set
953CONFIG_USB_DSBR=m
954# CONFIG_USB_SI470X is not set
955# CONFIG_USB_MR800 is not set
956# CONFIG_DAB is not set
957 909
958# 910#
959# Graphics support 911# Graphics support
@@ -1005,7 +957,7 @@ CONFIG_HID_BELKIN=m
1005CONFIG_HID_CHERRY=m 957CONFIG_HID_CHERRY=m
1006CONFIG_HID_CHICONY=m 958CONFIG_HID_CHICONY=m
1007CONFIG_HID_CYPRESS=m 959CONFIG_HID_CYPRESS=m
1008# CONFIG_DRAGONRISE_FF is not set 960# CONFIG_HID_DRAGONRISE is not set
1009CONFIG_HID_EZKEY=m 961CONFIG_HID_EZKEY=m
1010# CONFIG_HID_KYE is not set 962# CONFIG_HID_KYE is not set
1011CONFIG_HID_GYRATION=m 963CONFIG_HID_GYRATION=m
@@ -1022,10 +974,11 @@ CONFIG_HID_PETALYNX=m
1022CONFIG_HID_SAMSUNG=m 974CONFIG_HID_SAMSUNG=m
1023CONFIG_HID_SONY=m 975CONFIG_HID_SONY=m
1024CONFIG_HID_SUNPLUS=m 976CONFIG_HID_SUNPLUS=m
1025# CONFIG_GREENASIA_FF is not set 977# CONFIG_HID_GREENASIA is not set
978# CONFIG_HID_SMARTJOYPLUS is not set
1026# CONFIG_HID_TOPSEED is not set 979# CONFIG_HID_TOPSEED is not set
1027CONFIG_THRUSTMASTER_FF=m 980# CONFIG_HID_THRUSTMASTER is not set
1028CONFIG_ZEROPLUS_FF=m 981# CONFIG_HID_ZEROPLUS is not set
1029CONFIG_USB_SUPPORT=y 982CONFIG_USB_SUPPORT=y
1030CONFIG_USB_ARCH_HAS_HCD=y 983CONFIG_USB_ARCH_HAS_HCD=y
1031CONFIG_USB_ARCH_HAS_OHCI=y 984CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1051,6 +1004,7 @@ CONFIG_USB_MON=y
1051# USB Host Controller Drivers 1004# USB Host Controller Drivers
1052# 1005#
1053# CONFIG_USB_C67X00_HCD is not set 1006# CONFIG_USB_C67X00_HCD is not set
1007# CONFIG_USB_XHCI_HCD is not set
1054CONFIG_USB_EHCI_HCD=y 1008CONFIG_USB_EHCI_HCD=y
1055# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1009# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1056# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1010# CONFIG_USB_EHCI_TT_NEWSCHED is not set
@@ -1191,10 +1145,15 @@ CONFIG_USB_SISUSBVGA_CON=y
1191# CONFIG_NEW_LEDS is not set 1145# CONFIG_NEW_LEDS is not set
1192# CONFIG_ACCESSIBILITY is not set 1146# CONFIG_ACCESSIBILITY is not set
1193# CONFIG_INFINIBAND is not set 1147# CONFIG_INFINIBAND is not set
1148CONFIG_RTC_LIB=y
1194# CONFIG_RTC_CLASS is not set 1149# CONFIG_RTC_CLASS is not set
1195# CONFIG_DMADEVICES is not set 1150# CONFIG_DMADEVICES is not set
1196# CONFIG_AUXDISPLAY is not set 1151# CONFIG_AUXDISPLAY is not set
1197# CONFIG_UIO is not set 1152# CONFIG_UIO is not set
1153
1154#
1155# TI VLYNQ
1156#
1198# CONFIG_STAGING is not set 1157# CONFIG_STAGING is not set
1199 1158
1200# 1159#
@@ -1217,10 +1176,11 @@ CONFIG_REISERFS_FS=y
1217# CONFIG_REISERFS_FS_XATTR is not set 1176# CONFIG_REISERFS_FS_XATTR is not set
1218# CONFIG_JFS_FS is not set 1177# CONFIG_JFS_FS is not set
1219# CONFIG_FS_POSIX_ACL is not set 1178# CONFIG_FS_POSIX_ACL is not set
1220CONFIG_FILE_LOCKING=y
1221# CONFIG_XFS_FS is not set 1179# CONFIG_XFS_FS is not set
1222# CONFIG_OCFS2_FS is not set 1180# CONFIG_OCFS2_FS is not set
1223# CONFIG_BTRFS_FS is not set 1181# CONFIG_BTRFS_FS is not set
1182CONFIG_FILE_LOCKING=y
1183CONFIG_FSNOTIFY=y
1224CONFIG_DNOTIFY=y 1184CONFIG_DNOTIFY=y
1225CONFIG_INOTIFY=y 1185CONFIG_INOTIFY=y
1226CONFIG_INOTIFY_USER=y 1186CONFIG_INOTIFY_USER=y
@@ -1383,28 +1343,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1383CONFIG_HAVE_DYNAMIC_FTRACE=y 1343CONFIG_HAVE_DYNAMIC_FTRACE=y
1384CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1344CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1385CONFIG_TRACING_SUPPORT=y 1345CONFIG_TRACING_SUPPORT=y
1386 1346# CONFIG_FTRACE is not set
1387#
1388# Tracers
1389#
1390# CONFIG_FUNCTION_TRACER is not set
1391# CONFIG_IRQSOFF_TRACER is not set
1392# CONFIG_SCHED_TRACER is not set
1393# CONFIG_CONTEXT_SWITCH_TRACER is not set
1394# CONFIG_EVENT_TRACER is not set
1395# CONFIG_BOOT_TRACER is not set
1396# CONFIG_TRACE_BRANCH_PROFILING is not set
1397# CONFIG_STACK_TRACER is not set
1398# CONFIG_KMEMTRACE is not set
1399# CONFIG_WORKQUEUE_TRACER is not set
1400# CONFIG_BLK_DEV_IO_TRACE is not set
1401# CONFIG_DMA_API_DEBUG is not set 1347# CONFIG_DMA_API_DEBUG is not set
1402# CONFIG_SAMPLES is not set 1348# CONFIG_SAMPLES is not set
1403CONFIG_HAVE_ARCH_KGDB=y 1349CONFIG_HAVE_ARCH_KGDB=y
1404CONFIG_SH_STANDARD_BIOS=y 1350CONFIG_SH_STANDARD_BIOS=y
1405# CONFIG_EARLY_SCIF_CONSOLE is not set 1351# CONFIG_EARLY_SCIF_CONSOLE is not set
1406# CONFIG_EARLY_PRINTK is not set 1352# CONFIG_EARLY_PRINTK is not set
1407# CONFIG_MORE_COMPILE_OPTIONS is not set
1408 1353
1409# 1354#
1410# Security options 1355# Security options
@@ -1518,3 +1463,4 @@ CONFIG_HAS_IOMEM=y
1518CONFIG_HAS_IOPORT=y 1463CONFIG_HAS_IOPORT=y
1519CONFIG_HAS_DMA=y 1464CONFIG_HAS_DMA=y
1520CONFIG_NLATTR=y 1465CONFIG_NLATTR=y
1466CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/lboxre2_defconfig b/arch/sh/configs/lboxre2_defconfig
index a7db539f280..c0bc2fd033b 100644
--- a/arch/sh/configs/lboxre2_defconfig
+++ b/arch/sh/configs/lboxre2_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:48:54 2009 4# Thu Jun 18 12:29:50 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -70,7 +71,6 @@ CONFIG_UID16=y
70# CONFIG_SYSCTL_SYSCALL is not set 71# CONFIG_SYSCTL_SYSCALL is not set
71CONFIG_KALLSYMS=y 72CONFIG_KALLSYMS=y
72CONFIG_KALLSYMS_EXTRA_PASS=y 73CONFIG_KALLSYMS_EXTRA_PASS=y
73# CONFIG_STRIP_ASM_SYMS is not set
74CONFIG_HOTPLUG=y 74CONFIG_HOTPLUG=y
75CONFIG_PRINTK=y 75CONFIG_PRINTK=y
76CONFIG_BUG=y 76CONFIG_BUG=y
@@ -83,8 +83,13 @@ CONFIG_TIMERFD=y
83CONFIG_EVENTFD=y 83CONFIG_EVENTFD=y
84CONFIG_SHMEM=y 84CONFIG_SHMEM=y
85CONFIG_AIO=y 85CONFIG_AIO=y
86
87#
88# Performance Counters
89#
86CONFIG_VM_EVENT_COUNTERS=y 90CONFIG_VM_EVENT_COUNTERS=y
87CONFIG_PCI_QUIRKS=y 91CONFIG_PCI_QUIRKS=y
92# CONFIG_STRIP_ASM_SYMS is not set
88CONFIG_COMPAT_BRK=y 93CONFIG_COMPAT_BRK=y
89CONFIG_SLAB=y 94CONFIG_SLAB=y
90# CONFIG_SLUB is not set 95# CONFIG_SLUB is not set
@@ -174,6 +179,7 @@ CONFIG_CPU_SUBTYPE_SH7751R=y
174CONFIG_QUICKLIST=y 179CONFIG_QUICKLIST=y
175CONFIG_MMU=y 180CONFIG_MMU=y
176CONFIG_PAGE_OFFSET=0x80000000 181CONFIG_PAGE_OFFSET=0x80000000
182CONFIG_FORCE_MAX_ZONEORDER=11
177CONFIG_MEMORY_START=0x0c000000 183CONFIG_MEMORY_START=0x0c000000
178CONFIG_MEMORY_SIZE=0x04000000 184CONFIG_MEMORY_SIZE=0x04000000
179CONFIG_29BIT=y 185CONFIG_29BIT=y
@@ -188,7 +194,6 @@ CONFIG_PAGE_SIZE_4KB=y
188# CONFIG_PAGE_SIZE_8KB is not set 194# CONFIG_PAGE_SIZE_8KB is not set
189# CONFIG_PAGE_SIZE_16KB is not set 195# CONFIG_PAGE_SIZE_16KB is not set
190# CONFIG_PAGE_SIZE_64KB is not set 196# CONFIG_PAGE_SIZE_64KB is not set
191CONFIG_ENTRY_OFFSET=0x00001000
192CONFIG_SELECT_MEMORY_MODEL=y 197CONFIG_SELECT_MEMORY_MODEL=y
193CONFIG_FLATMEM_MANUAL=y 198CONFIG_FLATMEM_MANUAL=y
194# CONFIG_DISCONTIGMEM_MANUAL is not set 199# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -201,9 +206,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
201# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
202CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
203CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
204CONFIG_UNEVICTABLE_LRU=y
205CONFIG_HAVE_MLOCK=y 209CONFIG_HAVE_MLOCK=y
206CONFIG_HAVE_MLOCKED_PAGE_BIT=y 210CONFIG_HAVE_MLOCKED_PAGE_BIT=y
211CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
207 212
208# 213#
209# Cache configuration 214# Cache configuration
@@ -221,7 +226,6 @@ CONFIG_SH_FPU=y
221# CONFIG_SH_STORE_QUEUES is not set 226# CONFIG_SH_STORE_QUEUES is not set
222CONFIG_CPU_HAS_INTEVT=y 227CONFIG_CPU_HAS_INTEVT=y
223CONFIG_CPU_HAS_SR_RB=y 228CONFIG_CPU_HAS_SR_RB=y
224CONFIG_CPU_HAS_PTEA=y
225CONFIG_CPU_HAS_FPU=y 229CONFIG_CPU_HAS_FPU=y
226 230
227# 231#
@@ -237,9 +241,10 @@ CONFIG_SH_LBOX_RE2=y
237# 241#
238# Timer and clock configuration 242# Timer and clock configuration
239# 243#
240CONFIG_SH_TMU=y 244CONFIG_SH_TIMER_TMU=y
241CONFIG_SH_TIMER_IRQ=16
242CONFIG_SH_PCLK_FREQ=40000000 245CONFIG_SH_PCLK_FREQ=40000000
246CONFIG_SH_CLK_CPG=y
247CONFIG_SH_CLK_CPG_LEGACY=y
243# CONFIG_NO_HZ is not set 248# CONFIG_NO_HZ is not set
244# CONFIG_HIGH_RES_TIMERS is not set 249# CONFIG_HIGH_RES_TIMERS is not set
245CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 250CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -281,12 +286,14 @@ CONFIG_PREEMPT_NONE=y
281# CONFIG_PREEMPT is not set 286# CONFIG_PREEMPT is not set
282CONFIG_GUSA=y 287CONFIG_GUSA=y
283# CONFIG_GUSA_RB is not set 288# CONFIG_GUSA_RB is not set
289# CONFIG_SPARSE_IRQ is not set
284 290
285# 291#
286# Boot options 292# Boot options
287# 293#
288CONFIG_ZERO_PAGE_OFFSET=0x00001000 294CONFIG_ZERO_PAGE_OFFSET=0x00001000
289CONFIG_BOOT_LINK_OFFSET=0x00800000 295CONFIG_BOOT_LINK_OFFSET=0x00800000
296CONFIG_ENTRY_OFFSET=0x00001000
290# CONFIG_UBC_WAKEUP is not set 297# CONFIG_UBC_WAKEUP is not set
291CONFIG_CMDLINE_BOOL=y 298CONFIG_CMDLINE_BOOL=y
292CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/sda1" 299CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/sda1"
@@ -418,6 +425,7 @@ CONFIG_NETFILTER_ADVANCED=y
418# CONFIG_ECONET is not set 425# CONFIG_ECONET is not set
419# CONFIG_WAN_ROUTER is not set 426# CONFIG_WAN_ROUTER is not set
420# CONFIG_PHONET is not set 427# CONFIG_PHONET is not set
428# CONFIG_IEEE802154 is not set
421# CONFIG_NET_SCHED is not set 429# CONFIG_NET_SCHED is not set
422# CONFIG_DCB is not set 430# CONFIG_DCB is not set
423 431
@@ -435,7 +443,11 @@ CONFIG_WIRELESS=y
435# CONFIG_WIRELESS_OLD_REGULATORY is not set 443# CONFIG_WIRELESS_OLD_REGULATORY is not set
436# CONFIG_WIRELESS_EXT is not set 444# CONFIG_WIRELESS_EXT is not set
437# CONFIG_LIB80211 is not set 445# CONFIG_LIB80211 is not set
438# CONFIG_MAC80211 is not set 446
447#
448# CFG80211 needs to be enabled for MAC80211
449#
450CONFIG_MAC80211_DEFAULT_PS_VALUE=0
439# CONFIG_WIMAX is not set 451# CONFIG_WIMAX is not set
440# CONFIG_RFKILL is not set 452# CONFIG_RFKILL is not set
441# CONFIG_NET_9P is not set 453# CONFIG_NET_9P is not set
@@ -485,6 +497,7 @@ CONFIG_MISC_DEVICES=y
485# EEPROM support 497# EEPROM support
486# 498#
487# CONFIG_EEPROM_93CX6 is not set 499# CONFIG_EEPROM_93CX6 is not set
500# CONFIG_CB710_CORE is not set
488CONFIG_HAVE_IDE=y 501CONFIG_HAVE_IDE=y
489# CONFIG_IDE is not set 502# CONFIG_IDE is not set
490 503
@@ -507,10 +520,6 @@ CONFIG_BLK_DEV_SD=y
507# CONFIG_BLK_DEV_SR is not set 520# CONFIG_BLK_DEV_SR is not set
508# CONFIG_CHR_DEV_SG is not set 521# CONFIG_CHR_DEV_SG is not set
509# CONFIG_CHR_DEV_SCH is not set 522# CONFIG_CHR_DEV_SCH is not set
510
511#
512# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
513#
514# CONFIG_SCSI_MULTI_LUN is not set 523# CONFIG_SCSI_MULTI_LUN is not set
515# CONFIG_SCSI_CONSTANTS is not set 524# CONFIG_SCSI_CONSTANTS is not set
516# CONFIG_SCSI_LOGGING is not set 525# CONFIG_SCSI_LOGGING is not set
@@ -528,6 +537,7 @@ CONFIG_SCSI_WAIT_SCAN=m
528CONFIG_SCSI_LOWLEVEL=y 537CONFIG_SCSI_LOWLEVEL=y
529# CONFIG_ISCSI_TCP is not set 538# CONFIG_ISCSI_TCP is not set
530# CONFIG_SCSI_CXGB3_ISCSI is not set 539# CONFIG_SCSI_CXGB3_ISCSI is not set
540# CONFIG_SCSI_BNX2_ISCSI is not set
531# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 541# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
532# CONFIG_SCSI_3W_9XXX is not set 542# CONFIG_SCSI_3W_9XXX is not set
533# CONFIG_SCSI_ACARD is not set 543# CONFIG_SCSI_ACARD is not set
@@ -536,6 +546,7 @@ CONFIG_SCSI_LOWLEVEL=y
536# CONFIG_SCSI_AIC7XXX_OLD is not set 546# CONFIG_SCSI_AIC7XXX_OLD is not set
537# CONFIG_SCSI_AIC79XX is not set 547# CONFIG_SCSI_AIC79XX is not set
538# CONFIG_SCSI_AIC94XX is not set 548# CONFIG_SCSI_AIC94XX is not set
549# CONFIG_SCSI_MVSAS is not set
539# CONFIG_SCSI_ARCMSR is not set 550# CONFIG_SCSI_ARCMSR is not set
540# CONFIG_MEGARAID_NEWGEN is not set 551# CONFIG_MEGARAID_NEWGEN is not set
541# CONFIG_MEGARAID_LEGACY is not set 552# CONFIG_MEGARAID_LEGACY is not set
@@ -550,7 +561,6 @@ CONFIG_SCSI_LOWLEVEL=y
550# CONFIG_SCSI_IPS is not set 561# CONFIG_SCSI_IPS is not set
551# CONFIG_SCSI_INITIO is not set 562# CONFIG_SCSI_INITIO is not set
552# CONFIG_SCSI_INIA100 is not set 563# CONFIG_SCSI_INIA100 is not set
553# CONFIG_SCSI_MVSAS is not set
554# CONFIG_SCSI_STEX is not set 564# CONFIG_SCSI_STEX is not set
555# CONFIG_SCSI_SYM53C8XX_2 is not set 565# CONFIG_SCSI_SYM53C8XX_2 is not set
556# CONFIG_SCSI_IPR is not set 566# CONFIG_SCSI_IPR is not set
@@ -641,7 +651,6 @@ CONFIG_PATA_PLATFORM=y
641# CONFIG_IEEE1394 is not set 651# CONFIG_IEEE1394 is not set
642# CONFIG_I2O is not set 652# CONFIG_I2O is not set
643CONFIG_NETDEVICES=y 653CONFIG_NETDEVICES=y
644CONFIG_COMPAT_NET_DEV_OPS=y
645# CONFIG_DUMMY is not set 654# CONFIG_DUMMY is not set
646# CONFIG_BONDING is not set 655# CONFIG_BONDING is not set
647# CONFIG_MACVLAN is not set 656# CONFIG_MACVLAN is not set
@@ -694,6 +703,7 @@ CONFIG_8139TOO_TUNE_TWISTER=y
694# CONFIG_SMSC9420 is not set 703# CONFIG_SMSC9420 is not set
695# CONFIG_SUNDANCE is not set 704# CONFIG_SUNDANCE is not set
696# CONFIG_TLAN is not set 705# CONFIG_TLAN is not set
706# CONFIG_KS8842 is not set
697# CONFIG_VIA_RHINE is not set 707# CONFIG_VIA_RHINE is not set
698# CONFIG_SC92031 is not set 708# CONFIG_SC92031 is not set
699# CONFIG_ATL2 is not set 709# CONFIG_ATL2 is not set
@@ -890,22 +900,7 @@ CONFIG_SSB_POSSIBLE=y
890# CONFIG_HTC_PASIC3 is not set 900# CONFIG_HTC_PASIC3 is not set
891# CONFIG_MFD_TMIO is not set 901# CONFIG_MFD_TMIO is not set
892# CONFIG_REGULATOR is not set 902# CONFIG_REGULATOR is not set
893 903# CONFIG_MEDIA_SUPPORT is not set
894#
895# Multimedia devices
896#
897
898#
899# Multimedia core support
900#
901# CONFIG_VIDEO_DEV is not set
902# CONFIG_DVB_CORE is not set
903# CONFIG_VIDEO_MEDIA is not set
904
905#
906# Multimedia drivers
907#
908# CONFIG_DAB is not set
909 904
910# 905#
911# Graphics support 906# Graphics support
@@ -998,9 +993,14 @@ CONFIG_RTC_INTF_DEV=y
998# on-CPU RTC drivers 993# on-CPU RTC drivers
999# 994#
1000# CONFIG_RTC_DRV_SH is not set 995# CONFIG_RTC_DRV_SH is not set
996# CONFIG_RTC_DRV_GENERIC is not set
1001# CONFIG_DMADEVICES is not set 997# CONFIG_DMADEVICES is not set
1002# CONFIG_AUXDISPLAY is not set 998# CONFIG_AUXDISPLAY is not set
1003# CONFIG_UIO is not set 999# CONFIG_UIO is not set
1000
1001#
1002# TI VLYNQ
1003#
1004# CONFIG_STAGING is not set 1004# CONFIG_STAGING is not set
1005 1005
1006# 1006#
@@ -1020,10 +1020,11 @@ CONFIG_FS_MBCACHE=y
1020# CONFIG_REISERFS_FS is not set 1020# CONFIG_REISERFS_FS is not set
1021# CONFIG_JFS_FS is not set 1021# CONFIG_JFS_FS is not set
1022# CONFIG_FS_POSIX_ACL is not set 1022# CONFIG_FS_POSIX_ACL is not set
1023CONFIG_FILE_LOCKING=y
1024# CONFIG_XFS_FS is not set 1023# CONFIG_XFS_FS is not set
1025# CONFIG_OCFS2_FS is not set 1024# CONFIG_OCFS2_FS is not set
1026# CONFIG_BTRFS_FS is not set 1025# CONFIG_BTRFS_FS is not set
1026CONFIG_FILE_LOCKING=y
1027CONFIG_FSNOTIFY=y
1027CONFIG_DNOTIFY=y 1028CONFIG_DNOTIFY=y
1028CONFIG_INOTIFY=y 1029CONFIG_INOTIFY=y
1029CONFIG_INOTIFY_USER=y 1030CONFIG_INOTIFY_USER=y
@@ -1166,28 +1167,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1166CONFIG_HAVE_DYNAMIC_FTRACE=y 1167CONFIG_HAVE_DYNAMIC_FTRACE=y
1167CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1168CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1168CONFIG_TRACING_SUPPORT=y 1169CONFIG_TRACING_SUPPORT=y
1169 1170# CONFIG_FTRACE is not set
1170#
1171# Tracers
1172#
1173# CONFIG_FUNCTION_TRACER is not set
1174# CONFIG_IRQSOFF_TRACER is not set
1175# CONFIG_SCHED_TRACER is not set
1176# CONFIG_CONTEXT_SWITCH_TRACER is not set
1177# CONFIG_EVENT_TRACER is not set
1178# CONFIG_BOOT_TRACER is not set
1179# CONFIG_TRACE_BRANCH_PROFILING is not set
1180# CONFIG_STACK_TRACER is not set
1181# CONFIG_KMEMTRACE is not set
1182# CONFIG_WORKQUEUE_TRACER is not set
1183# CONFIG_BLK_DEV_IO_TRACE is not set
1184# CONFIG_DMA_API_DEBUG is not set 1171# CONFIG_DMA_API_DEBUG is not set
1185# CONFIG_SAMPLES is not set 1172# CONFIG_SAMPLES is not set
1186CONFIG_HAVE_ARCH_KGDB=y 1173CONFIG_HAVE_ARCH_KGDB=y
1187CONFIG_SH_STANDARD_BIOS=y 1174CONFIG_SH_STANDARD_BIOS=y
1188# CONFIG_EARLY_SCIF_CONSOLE is not set 1175# CONFIG_EARLY_SCIF_CONSOLE is not set
1189# CONFIG_EARLY_PRINTK is not set 1176# CONFIG_EARLY_PRINTK is not set
1190# CONFIG_MORE_COMPILE_OPTIONS is not set
1191 1177
1192# 1178#
1193# Security options 1179# Security options
@@ -1301,3 +1287,4 @@ CONFIG_HAS_IOMEM=y
1301CONFIG_HAS_IOPORT=y 1287CONFIG_HAS_IOPORT=y
1302CONFIG_HAS_DMA=y 1288CONFIG_HAS_DMA=y
1303CONFIG_NLATTR=y 1289CONFIG_NLATTR=y
1290CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/magicpanelr2_defconfig b/arch/sh/configs/magicpanelr2_defconfig
index 58bec61506f..c5859e82d91 100644
--- a/arch/sh/configs/magicpanelr2_defconfig
+++ b/arch/sh/configs/magicpanelr2_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:49:32 2009 4# Thu Jun 18 12:30:31 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,8 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_CMT=y
23CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -77,7 +79,6 @@ CONFIG_SYSCTL_SYSCALL=y
77CONFIG_KALLSYMS=y 79CONFIG_KALLSYMS=y
78CONFIG_KALLSYMS_ALL=y 80CONFIG_KALLSYMS_ALL=y
79# CONFIG_KALLSYMS_EXTRA_PASS is not set 81# CONFIG_KALLSYMS_EXTRA_PASS is not set
80# CONFIG_STRIP_ASM_SYMS is not set
81CONFIG_HOTPLUG=y 82CONFIG_HOTPLUG=y
82CONFIG_PRINTK=y 83CONFIG_PRINTK=y
83CONFIG_BUG=y 84CONFIG_BUG=y
@@ -90,7 +91,12 @@ CONFIG_TIMERFD=y
90CONFIG_EVENTFD=y 91CONFIG_EVENTFD=y
91CONFIG_SHMEM=y 92CONFIG_SHMEM=y
92CONFIG_AIO=y 93CONFIG_AIO=y
94
95#
96# Performance Counters
97#
93CONFIG_VM_EVENT_COUNTERS=y 98CONFIG_VM_EVENT_COUNTERS=y
99# CONFIG_STRIP_ASM_SYMS is not set
94CONFIG_COMPAT_BRK=y 100CONFIG_COMPAT_BRK=y
95CONFIG_SLAB=y 101CONFIG_SLAB=y
96# CONFIG_SLUB is not set 102# CONFIG_SLUB is not set
@@ -180,6 +186,7 @@ CONFIG_CPU_SUBTYPE_SH7720=y
180CONFIG_QUICKLIST=y 186CONFIG_QUICKLIST=y
181CONFIG_MMU=y 187CONFIG_MMU=y
182CONFIG_PAGE_OFFSET=0x80000000 188CONFIG_PAGE_OFFSET=0x80000000
189CONFIG_FORCE_MAX_ZONEORDER=11
183CONFIG_MEMORY_START=0x0C000000 190CONFIG_MEMORY_START=0x0C000000
184CONFIG_MEMORY_SIZE=0x03F00000 191CONFIG_MEMORY_SIZE=0x03F00000
185CONFIG_29BIT=y 192CONFIG_29BIT=y
@@ -194,7 +201,6 @@ CONFIG_PAGE_SIZE_4KB=y
194# CONFIG_PAGE_SIZE_8KB is not set 201# CONFIG_PAGE_SIZE_8KB is not set
195# CONFIG_PAGE_SIZE_16KB is not set 202# CONFIG_PAGE_SIZE_16KB is not set
196# CONFIG_PAGE_SIZE_64KB is not set 203# CONFIG_PAGE_SIZE_64KB is not set
197CONFIG_ENTRY_OFFSET=0x00001000
198CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
199CONFIG_FLATMEM_MANUAL=y 205CONFIG_FLATMEM_MANUAL=y
200# CONFIG_DISCONTIGMEM_MANUAL is not set 206# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -207,9 +213,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
207# CONFIG_PHYS_ADDR_T_64BIT is not set 213# CONFIG_PHYS_ADDR_T_64BIT is not set
208CONFIG_ZONE_DMA_FLAG=0 214CONFIG_ZONE_DMA_FLAG=0
209CONFIG_NR_QUICK=2 215CONFIG_NR_QUICK=2
210CONFIG_UNEVICTABLE_LRU=y
211CONFIG_HAVE_MLOCK=y 216CONFIG_HAVE_MLOCK=y
212CONFIG_HAVE_MLOCKED_PAGE_BIT=y 217CONFIG_HAVE_MLOCKED_PAGE_BIT=y
218CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
213 219
214# 220#
215# Cache configuration 221# Cache configuration
@@ -243,9 +249,11 @@ CONFIG_SH_MAGIC_PANEL_R2_VERSION=3
243# 249#
244# Timer and clock configuration 250# Timer and clock configuration
245# 251#
246CONFIG_SH_TMU=y 252CONFIG_SH_TIMER_TMU=y
247CONFIG_SH_TIMER_IRQ=16 253CONFIG_SH_TIMER_CMT=y
248CONFIG_SH_PCLK_FREQ=24000000 254CONFIG_SH_PCLK_FREQ=24000000
255CONFIG_SH_CLK_CPG=y
256CONFIG_SH_CLK_CPG_LEGACY=y
249# CONFIG_NO_HZ is not set 257# CONFIG_NO_HZ is not set
250# CONFIG_HIGH_RES_TIMERS is not set 258# CONFIG_HIGH_RES_TIMERS is not set
251CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 259CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -290,12 +298,14 @@ CONFIG_PREEMPT_NONE=y
290# CONFIG_PREEMPT is not set 298# CONFIG_PREEMPT is not set
291CONFIG_GUSA=y 299CONFIG_GUSA=y
292# CONFIG_GUSA_RB is not set 300# CONFIG_GUSA_RB is not set
301# CONFIG_SPARSE_IRQ is not set
293 302
294# 303#
295# Boot options 304# Boot options
296# 305#
297CONFIG_ZERO_PAGE_OFFSET=0x00001000 306CONFIG_ZERO_PAGE_OFFSET=0x00001000
298CONFIG_BOOT_LINK_OFFSET=0x00800000 307CONFIG_BOOT_LINK_OFFSET=0x00800000
308CONFIG_ENTRY_OFFSET=0x00001000
299# CONFIG_CMDLINE_BOOL is not set 309# CONFIG_CMDLINE_BOOL is not set
300 310
301# 311#
@@ -372,6 +382,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
372# CONFIG_ECONET is not set 382# CONFIG_ECONET is not set
373# CONFIG_WAN_ROUTER is not set 383# CONFIG_WAN_ROUTER is not set
374# CONFIG_PHONET is not set 384# CONFIG_PHONET is not set
385# CONFIG_IEEE802154 is not set
375# CONFIG_NET_SCHED is not set 386# CONFIG_NET_SCHED is not set
376# CONFIG_DCB is not set 387# CONFIG_DCB is not set
377 388
@@ -389,7 +400,11 @@ CONFIG_WIRELESS=y
389# CONFIG_WIRELESS_OLD_REGULATORY is not set 400# CONFIG_WIRELESS_OLD_REGULATORY is not set
390# CONFIG_WIRELESS_EXT is not set 401# CONFIG_WIRELESS_EXT is not set
391# CONFIG_LIB80211 is not set 402# CONFIG_LIB80211 is not set
392# CONFIG_MAC80211 is not set 403
404#
405# CFG80211 needs to be enabled for MAC80211
406#
407CONFIG_MAC80211_DEFAULT_PS_VALUE=0
393# CONFIG_WIMAX is not set 408# CONFIG_WIMAX is not set
394# CONFIG_RFKILL is not set 409# CONFIG_RFKILL is not set
395# CONFIG_NET_9P is not set 410# CONFIG_NET_9P is not set
@@ -528,7 +543,6 @@ CONFIG_HAVE_IDE=y
528# CONFIG_ATA is not set 543# CONFIG_ATA is not set
529# CONFIG_MD is not set 544# CONFIG_MD is not set
530CONFIG_NETDEVICES=y 545CONFIG_NETDEVICES=y
531CONFIG_COMPAT_NET_DEV_OPS=y
532# CONFIG_DUMMY is not set 546# CONFIG_DUMMY is not set
533# CONFIG_BONDING is not set 547# CONFIG_BONDING is not set
534# CONFIG_MACVLAN is not set 548# CONFIG_MACVLAN is not set
@@ -572,6 +586,7 @@ CONFIG_SMSC911X=y
572# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 586# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
573# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 587# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
574# CONFIG_B44 is not set 588# CONFIG_B44 is not set
589# CONFIG_KS8842 is not set
575# CONFIG_NETDEV_1000 is not set 590# CONFIG_NETDEV_1000 is not set
576# CONFIG_NETDEV_10000 is not set 591# CONFIG_NETDEV_10000 is not set
577 592
@@ -727,22 +742,7 @@ CONFIG_SSB_POSSIBLE=y
727# CONFIG_HTC_PASIC3 is not set 742# CONFIG_HTC_PASIC3 is not set
728# CONFIG_MFD_TMIO is not set 743# CONFIG_MFD_TMIO is not set
729# CONFIG_REGULATOR is not set 744# CONFIG_REGULATOR is not set
730 745# CONFIG_MEDIA_SUPPORT is not set
731#
732# Multimedia devices
733#
734
735#
736# Multimedia core support
737#
738# CONFIG_VIDEO_DEV is not set
739# CONFIG_DVB_CORE is not set
740# CONFIG_VIDEO_MEDIA is not set
741
742#
743# Multimedia drivers
744#
745CONFIG_DAB=y
746 746
747# 747#
748# Graphics support 748# Graphics support
@@ -804,9 +804,14 @@ CONFIG_RTC_INTF_DEV=y
804# on-CPU RTC drivers 804# on-CPU RTC drivers
805# 805#
806CONFIG_RTC_DRV_SH=y 806CONFIG_RTC_DRV_SH=y
807# CONFIG_RTC_DRV_GENERIC is not set
807# CONFIG_DMADEVICES is not set 808# CONFIG_DMADEVICES is not set
808# CONFIG_AUXDISPLAY is not set 809# CONFIG_AUXDISPLAY is not set
809# CONFIG_UIO is not set 810# CONFIG_UIO is not set
811
812#
813# TI VLYNQ
814#
810# CONFIG_STAGING is not set 815# CONFIG_STAGING is not set
811 816
812# 817#
@@ -823,12 +828,14 @@ CONFIG_JBD=y
823# CONFIG_REISERFS_FS is not set 828# CONFIG_REISERFS_FS is not set
824# CONFIG_JFS_FS is not set 829# CONFIG_JFS_FS is not set
825# CONFIG_FS_POSIX_ACL is not set 830# CONFIG_FS_POSIX_ACL is not set
826CONFIG_FILE_LOCKING=y
827# CONFIG_XFS_FS is not set 831# CONFIG_XFS_FS is not set
828# CONFIG_OCFS2_FS is not set 832# CONFIG_OCFS2_FS is not set
829# CONFIG_BTRFS_FS is not set 833# CONFIG_BTRFS_FS is not set
834CONFIG_FILE_LOCKING=y
835CONFIG_FSNOTIFY=y
830# CONFIG_DNOTIFY is not set 836# CONFIG_DNOTIFY is not set
831# CONFIG_INOTIFY is not set 837# CONFIG_INOTIFY is not set
838CONFIG_INOTIFY_USER=y
832# CONFIG_QUOTA is not set 839# CONFIG_QUOTA is not set
833# CONFIG_AUTOFS_FS is not set 840# CONFIG_AUTOFS_FS is not set
834# CONFIG_AUTOFS4_FS is not set 841# CONFIG_AUTOFS4_FS is not set
@@ -1012,17 +1019,15 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1012CONFIG_HAVE_DYNAMIC_FTRACE=y 1019CONFIG_HAVE_DYNAMIC_FTRACE=y
1013CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1020CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1014CONFIG_TRACING_SUPPORT=y 1021CONFIG_TRACING_SUPPORT=y
1015 1022CONFIG_FTRACE=y
1016#
1017# Tracers
1018#
1019# CONFIG_FUNCTION_TRACER is not set 1023# CONFIG_FUNCTION_TRACER is not set
1020# CONFIG_IRQSOFF_TRACER is not set 1024# CONFIG_IRQSOFF_TRACER is not set
1021# CONFIG_SCHED_TRACER is not set 1025# CONFIG_SCHED_TRACER is not set
1022# CONFIG_CONTEXT_SWITCH_TRACER is not set 1026# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1023# CONFIG_EVENT_TRACER is not set
1024# CONFIG_BOOT_TRACER is not set 1027# CONFIG_BOOT_TRACER is not set
1025# CONFIG_TRACE_BRANCH_PROFILING is not set 1028CONFIG_BRANCH_PROFILE_NONE=y
1029# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1030# CONFIG_PROFILE_ALL_BRANCHES is not set
1026# CONFIG_STACK_TRACER is not set 1031# CONFIG_STACK_TRACER is not set
1027# CONFIG_KMEMTRACE is not set 1032# CONFIG_KMEMTRACE is not set
1028# CONFIG_WORKQUEUE_TRACER is not set 1033# CONFIG_WORKQUEUE_TRACER is not set
@@ -1031,6 +1036,7 @@ CONFIG_TRACING_SUPPORT=y
1031# CONFIG_SAMPLES is not set 1036# CONFIG_SAMPLES is not set
1032CONFIG_HAVE_ARCH_KGDB=y 1037CONFIG_HAVE_ARCH_KGDB=y
1033# CONFIG_KGDB is not set 1038# CONFIG_KGDB is not set
1039# CONFIG_KMEMCHECK is not set
1034# CONFIG_SH_STANDARD_BIOS is not set 1040# CONFIG_SH_STANDARD_BIOS is not set
1035CONFIG_EARLY_SCIF_CONSOLE=y 1041CONFIG_EARLY_SCIF_CONSOLE=y
1036CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000 1042CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000
@@ -1039,10 +1045,8 @@ CONFIG_EARLY_PRINTK=y
1039# CONFIG_DEBUG_STACKOVERFLOW is not set 1045# CONFIG_DEBUG_STACKOVERFLOW is not set
1040# CONFIG_DEBUG_STACK_USAGE is not set 1046# CONFIG_DEBUG_STACK_USAGE is not set
1041# CONFIG_4KSTACKS is not set 1047# CONFIG_4KSTACKS is not set
1042# CONFIG_IRQSTACKS is not set
1043CONFIG_DUMP_CODE=y 1048CONFIG_DUMP_CODE=y
1044# CONFIG_SH_NO_BSS_INIT is not set 1049# CONFIG_SH_NO_BSS_INIT is not set
1045# CONFIG_MORE_COMPILE_OPTIONS is not set
1046 1050
1047# 1051#
1048# Security options 1052# Security options
@@ -1074,3 +1078,4 @@ CONFIG_HAS_IOMEM=y
1074CONFIG_HAS_IOPORT=y 1078CONFIG_HAS_IOPORT=y
1075CONFIG_HAS_DMA=y 1079CONFIG_HAS_DMA=y
1076CONFIG_NLATTR=y 1080CONFIG_NLATTR=y
1081CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/microdev_defconfig b/arch/sh/configs/microdev_defconfig
index 2886fc84bc1..e5a21e1d625 100644
--- a/arch/sh/configs/microdev_defconfig
+++ b/arch/sh/configs/microdev_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:50:51 2009 4# Thu Jun 18 12:31:56 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -74,7 +75,6 @@ CONFIG_UID16=y
74# CONFIG_SYSCTL_SYSCALL is not set 75# CONFIG_SYSCTL_SYSCALL is not set
75CONFIG_KALLSYMS=y 76CONFIG_KALLSYMS=y
76# CONFIG_KALLSYMS_EXTRA_PASS is not set 77# CONFIG_KALLSYMS_EXTRA_PASS is not set
77# CONFIG_STRIP_ASM_SYMS is not set
78CONFIG_HOTPLUG=y 78CONFIG_HOTPLUG=y
79CONFIG_PRINTK=y 79CONFIG_PRINTK=y
80CONFIG_BUG=y 80CONFIG_BUG=y
@@ -87,7 +87,12 @@ CONFIG_TIMERFD=y
87CONFIG_EVENTFD=y 87CONFIG_EVENTFD=y
88CONFIG_SHMEM=y 88CONFIG_SHMEM=y
89CONFIG_AIO=y 89CONFIG_AIO=y
90
91#
92# Performance Counters
93#
90CONFIG_VM_EVENT_COUNTERS=y 94CONFIG_VM_EVENT_COUNTERS=y
95# CONFIG_STRIP_ASM_SYMS is not set
91CONFIG_COMPAT_BRK=y 96CONFIG_COMPAT_BRK=y
92CONFIG_SLAB=y 97CONFIG_SLAB=y
93# CONFIG_SLUB is not set 98# CONFIG_SLUB is not set
@@ -171,6 +176,7 @@ CONFIG_CPU_SUBTYPE_SH4_202=y
171CONFIG_QUICKLIST=y 176CONFIG_QUICKLIST=y
172CONFIG_MMU=y 177CONFIG_MMU=y
173CONFIG_PAGE_OFFSET=0x80000000 178CONFIG_PAGE_OFFSET=0x80000000
179CONFIG_FORCE_MAX_ZONEORDER=11
174CONFIG_MEMORY_START=0x08000000 180CONFIG_MEMORY_START=0x08000000
175CONFIG_MEMORY_SIZE=0x04000000 181CONFIG_MEMORY_SIZE=0x04000000
176CONFIG_29BIT=y 182CONFIG_29BIT=y
@@ -185,7 +191,6 @@ CONFIG_PAGE_SIZE_4KB=y
185# CONFIG_PAGE_SIZE_8KB is not set 191# CONFIG_PAGE_SIZE_8KB is not set
186# CONFIG_PAGE_SIZE_16KB is not set 192# CONFIG_PAGE_SIZE_16KB is not set
187# CONFIG_PAGE_SIZE_64KB is not set 193# CONFIG_PAGE_SIZE_64KB is not set
188CONFIG_ENTRY_OFFSET=0x00001000
189CONFIG_HUGETLB_PAGE_SIZE_64K=y 194CONFIG_HUGETLB_PAGE_SIZE_64K=y
190# CONFIG_HUGETLB_PAGE_SIZE_256K is not set 195# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
191# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set 196# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
@@ -204,9 +209,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
204# CONFIG_PHYS_ADDR_T_64BIT is not set 209# CONFIG_PHYS_ADDR_T_64BIT is not set
205CONFIG_ZONE_DMA_FLAG=0 210CONFIG_ZONE_DMA_FLAG=0
206CONFIG_NR_QUICK=2 211CONFIG_NR_QUICK=2
207CONFIG_UNEVICTABLE_LRU=y
208CONFIG_HAVE_MLOCK=y 212CONFIG_HAVE_MLOCK=y
209CONFIG_HAVE_MLOCKED_PAGE_BIT=y 213CONFIG_HAVE_MLOCKED_PAGE_BIT=y
214CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
210 215
211# 216#
212# Cache configuration 217# Cache configuration
@@ -224,7 +229,6 @@ CONFIG_SH_FPU=y
224# CONFIG_SH_STORE_QUEUES is not set 229# CONFIG_SH_STORE_QUEUES is not set
225CONFIG_CPU_HAS_INTEVT=y 230CONFIG_CPU_HAS_INTEVT=y
226CONFIG_CPU_HAS_SR_RB=y 231CONFIG_CPU_HAS_SR_RB=y
227CONFIG_CPU_HAS_PTEA=y
228CONFIG_CPU_HAS_FPU=y 232CONFIG_CPU_HAS_FPU=y
229 233
230# 234#
@@ -235,9 +239,10 @@ CONFIG_SH_SH4202_MICRODEV=y
235# 239#
236# Timer and clock configuration 240# Timer and clock configuration
237# 241#
238CONFIG_SH_TMU=y 242CONFIG_SH_TIMER_TMU=y
239CONFIG_SH_TIMER_IRQ=16
240CONFIG_SH_PCLK_FREQ=66000000 243CONFIG_SH_PCLK_FREQ=66000000
244CONFIG_SH_CLK_CPG=y
245CONFIG_SH_CLK_CPG_LEGACY=y
241# CONFIG_NO_HZ is not set 246# CONFIG_NO_HZ is not set
242# CONFIG_HIGH_RES_TIMERS is not set 247# CONFIG_HIGH_RES_TIMERS is not set
243CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 248CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -282,12 +287,14 @@ CONFIG_HZ=250
282CONFIG_PREEMPT=y 287CONFIG_PREEMPT=y
283CONFIG_GUSA=y 288CONFIG_GUSA=y
284# CONFIG_GUSA_RB is not set 289# CONFIG_GUSA_RB is not set
290# CONFIG_SPARSE_IRQ is not set
285 291
286# 292#
287# Boot options 293# Boot options
288# 294#
289CONFIG_ZERO_PAGE_OFFSET=0x00001000 295CONFIG_ZERO_PAGE_OFFSET=0x00001000
290CONFIG_BOOT_LINK_OFFSET=0x00800000 296CONFIG_BOOT_LINK_OFFSET=0x00800000
297CONFIG_ENTRY_OFFSET=0x00001000
291# CONFIG_UBC_WAKEUP is not set 298# CONFIG_UBC_WAKEUP is not set
292CONFIG_CMDLINE_BOOL=y 299CONFIG_CMDLINE_BOOL=y
293CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/hda1" 300CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/hda1"
@@ -371,6 +378,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
371# CONFIG_ECONET is not set 378# CONFIG_ECONET is not set
372# CONFIG_WAN_ROUTER is not set 379# CONFIG_WAN_ROUTER is not set
373# CONFIG_PHONET is not set 380# CONFIG_PHONET is not set
381# CONFIG_IEEE802154 is not set
374# CONFIG_NET_SCHED is not set 382# CONFIG_NET_SCHED is not set
375# CONFIG_DCB is not set 383# CONFIG_DCB is not set
376 384
@@ -388,7 +396,11 @@ CONFIG_WIRELESS=y
388# CONFIG_WIRELESS_OLD_REGULATORY is not set 396# CONFIG_WIRELESS_OLD_REGULATORY is not set
389# CONFIG_WIRELESS_EXT is not set 397# CONFIG_WIRELESS_EXT is not set
390# CONFIG_LIB80211 is not set 398# CONFIG_LIB80211 is not set
391# CONFIG_MAC80211 is not set 399
400#
401# CFG80211 needs to be enabled for MAC80211
402#
403CONFIG_MAC80211_DEFAULT_PS_VALUE=0
392# CONFIG_WIMAX is not set 404# CONFIG_WIMAX is not set
393# CONFIG_RFKILL is not set 405# CONFIG_RFKILL is not set
394# CONFIG_NET_9P is not set 406# CONFIG_NET_9P is not set
@@ -460,7 +472,6 @@ CONFIG_IDE_PROC_FS=y
460# CONFIG_ATA is not set 472# CONFIG_ATA is not set
461# CONFIG_MD is not set 473# CONFIG_MD is not set
462CONFIG_NETDEVICES=y 474CONFIG_NETDEVICES=y
463CONFIG_COMPAT_NET_DEV_OPS=y
464# CONFIG_DUMMY is not set 475# CONFIG_DUMMY is not set
465# CONFIG_BONDING is not set 476# CONFIG_BONDING is not set
466# CONFIG_MACVLAN is not set 477# CONFIG_MACVLAN is not set
@@ -485,6 +496,7 @@ CONFIG_SMC91X=y
485# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 496# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
486# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 497# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
487# CONFIG_B44 is not set 498# CONFIG_B44 is not set
499# CONFIG_KS8842 is not set
488CONFIG_NETDEV_1000=y 500CONFIG_NETDEV_1000=y
489CONFIG_NETDEV_10000=y 501CONFIG_NETDEV_10000=y
490 502
@@ -582,22 +594,7 @@ CONFIG_SSB_POSSIBLE=y
582# CONFIG_HTC_PASIC3 is not set 594# CONFIG_HTC_PASIC3 is not set
583# CONFIG_MFD_TMIO is not set 595# CONFIG_MFD_TMIO is not set
584# CONFIG_REGULATOR is not set 596# CONFIG_REGULATOR is not set
585 597# CONFIG_MEDIA_SUPPORT is not set
586#
587# Multimedia devices
588#
589
590#
591# Multimedia core support
592#
593# CONFIG_VIDEO_DEV is not set
594# CONFIG_DVB_CORE is not set
595# CONFIG_VIDEO_MEDIA is not set
596
597#
598# Multimedia drivers
599#
600# CONFIG_DAB is not set
601 598
602# 599#
603# Graphics support 600# Graphics support
@@ -636,10 +633,15 @@ CONFIG_USB_ARCH_HAS_HCD=y
636# CONFIG_MEMSTICK is not set 633# CONFIG_MEMSTICK is not set
637# CONFIG_NEW_LEDS is not set 634# CONFIG_NEW_LEDS is not set
638# CONFIG_ACCESSIBILITY is not set 635# CONFIG_ACCESSIBILITY is not set
636CONFIG_RTC_LIB=y
639# CONFIG_RTC_CLASS is not set 637# CONFIG_RTC_CLASS is not set
640# CONFIG_DMADEVICES is not set 638# CONFIG_DMADEVICES is not set
641# CONFIG_AUXDISPLAY is not set 639# CONFIG_AUXDISPLAY is not set
642# CONFIG_UIO is not set 640# CONFIG_UIO is not set
641
642#
643# TI VLYNQ
644#
643# CONFIG_STAGING is not set 645# CONFIG_STAGING is not set
644 646
645# 647#
@@ -659,10 +661,11 @@ CONFIG_FS_MBCACHE=y
659# CONFIG_REISERFS_FS is not set 661# CONFIG_REISERFS_FS is not set
660# CONFIG_JFS_FS is not set 662# CONFIG_JFS_FS is not set
661# CONFIG_FS_POSIX_ACL is not set 663# CONFIG_FS_POSIX_ACL is not set
662CONFIG_FILE_LOCKING=y
663# CONFIG_XFS_FS is not set 664# CONFIG_XFS_FS is not set
664# CONFIG_OCFS2_FS is not set 665# CONFIG_OCFS2_FS is not set
665# CONFIG_BTRFS_FS is not set 666# CONFIG_BTRFS_FS is not set
667CONFIG_FILE_LOCKING=y
668CONFIG_FSNOTIFY=y
666CONFIG_DNOTIFY=y 669CONFIG_DNOTIFY=y
667CONFIG_INOTIFY=y 670CONFIG_INOTIFY=y
668CONFIG_INOTIFY_USER=y 671CONFIG_INOTIFY_USER=y
@@ -812,28 +815,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
812CONFIG_HAVE_DYNAMIC_FTRACE=y 815CONFIG_HAVE_DYNAMIC_FTRACE=y
813CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 816CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
814CONFIG_TRACING_SUPPORT=y 817CONFIG_TRACING_SUPPORT=y
815 818# CONFIG_FTRACE is not set
816#
817# Tracers
818#
819# CONFIG_FUNCTION_TRACER is not set
820# CONFIG_IRQSOFF_TRACER is not set
821# CONFIG_PREEMPT_TRACER is not set
822# CONFIG_SCHED_TRACER is not set
823# CONFIG_CONTEXT_SWITCH_TRACER is not set
824# CONFIG_EVENT_TRACER is not set
825# CONFIG_BOOT_TRACER is not set
826# CONFIG_TRACE_BRANCH_PROFILING is not set
827# CONFIG_STACK_TRACER is not set
828# CONFIG_KMEMTRACE is not set
829# CONFIG_WORKQUEUE_TRACER is not set
830# CONFIG_BLK_DEV_IO_TRACE is not set
831# CONFIG_DMA_API_DEBUG is not set 819# CONFIG_DMA_API_DEBUG is not set
832# CONFIG_SAMPLES is not set 820# CONFIG_SAMPLES is not set
833CONFIG_HAVE_ARCH_KGDB=y 821CONFIG_HAVE_ARCH_KGDB=y
834# CONFIG_SH_STANDARD_BIOS is not set 822# CONFIG_SH_STANDARD_BIOS is not set
835# CONFIG_EARLY_SCIF_CONSOLE is not set 823# CONFIG_EARLY_SCIF_CONSOLE is not set
836# CONFIG_MORE_COMPILE_OPTIONS is not set
837 824
838# 825#
839# Security options 826# Security options
@@ -957,3 +944,4 @@ CONFIG_HAS_IOMEM=y
957CONFIG_HAS_IOPORT=y 944CONFIG_HAS_IOPORT=y
958CONFIG_HAS_DMA=y 945CONFIG_HAS_DMA=y
959CONFIG_NLATTR=y 946CONFIG_NLATTR=y
947CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig
index 8ecceb4bf27..da627d22c00 100644
--- a/arch/sh/configs/migor_defconfig
+++ b/arch/sh/configs/migor_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:51:34 2009 4# Thu Jun 18 16:06:48 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -21,6 +21,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_NUMA=y 22CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_SYS_SUPPORTS_CMT=y 23CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
26CONFIG_HAVE_LATENCYTOP_SUPPORT=y 27CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -76,7 +77,6 @@ CONFIG_UID16=y
76# CONFIG_SYSCTL_SYSCALL is not set 77# CONFIG_SYSCTL_SYSCALL is not set
77CONFIG_KALLSYMS=y 78CONFIG_KALLSYMS=y
78# CONFIG_KALLSYMS_EXTRA_PASS is not set 79# CONFIG_KALLSYMS_EXTRA_PASS is not set
79# CONFIG_STRIP_ASM_SYMS is not set
80CONFIG_HOTPLUG=y 80CONFIG_HOTPLUG=y
81CONFIG_PRINTK=y 81CONFIG_PRINTK=y
82CONFIG_BUG=y 82CONFIG_BUG=y
@@ -89,14 +89,19 @@ CONFIG_TIMERFD=y
89CONFIG_EVENTFD=y 89CONFIG_EVENTFD=y
90CONFIG_SHMEM=y 90CONFIG_SHMEM=y
91CONFIG_AIO=y 91CONFIG_AIO=y
92
93#
94# Performance Counters
95#
92CONFIG_VM_EVENT_COUNTERS=y 96CONFIG_VM_EVENT_COUNTERS=y
97# CONFIG_STRIP_ASM_SYMS is not set
93CONFIG_COMPAT_BRK=y 98CONFIG_COMPAT_BRK=y
94CONFIG_SLAB=y 99CONFIG_SLAB=y
95# CONFIG_SLUB is not set 100# CONFIG_SLUB is not set
96# CONFIG_SLOB is not set 101# CONFIG_SLOB is not set
97CONFIG_PROFILING=y 102CONFIG_PROFILING=y
98CONFIG_TRACEPOINTS=y 103CONFIG_TRACEPOINTS=y
99# CONFIG_MARKERS is not set 104CONFIG_MARKERS=y
100CONFIG_OPROFILE=y 105CONFIG_OPROFILE=y
101CONFIG_HAVE_OPROFILE=y 106CONFIG_HAVE_OPROFILE=y
102# CONFIG_KPROBES is not set 107# CONFIG_KPROBES is not set
@@ -184,6 +189,7 @@ CONFIG_CPU_SUBTYPE_SH7722=y
184CONFIG_QUICKLIST=y 189CONFIG_QUICKLIST=y
185CONFIG_MMU=y 190CONFIG_MMU=y
186CONFIG_PAGE_OFFSET=0x80000000 191CONFIG_PAGE_OFFSET=0x80000000
192CONFIG_FORCE_MAX_ZONEORDER=11
187CONFIG_MEMORY_START=0x0c000000 193CONFIG_MEMORY_START=0x0c000000
188CONFIG_MEMORY_SIZE=0x04000000 194CONFIG_MEMORY_SIZE=0x04000000
189CONFIG_29BIT=y 195CONFIG_29BIT=y
@@ -202,7 +208,6 @@ CONFIG_PAGE_SIZE_4KB=y
202# CONFIG_PAGE_SIZE_8KB is not set 208# CONFIG_PAGE_SIZE_8KB is not set
203# CONFIG_PAGE_SIZE_16KB is not set 209# CONFIG_PAGE_SIZE_16KB is not set
204# CONFIG_PAGE_SIZE_64KB is not set 210# CONFIG_PAGE_SIZE_64KB is not set
205CONFIG_ENTRY_OFFSET=0x00001000
206CONFIG_SELECT_MEMORY_MODEL=y 211CONFIG_SELECT_MEMORY_MODEL=y
207# CONFIG_FLATMEM_MANUAL is not set 212# CONFIG_FLATMEM_MANUAL is not set
208# CONFIG_DISCONTIGMEM_MANUAL is not set 213# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -217,9 +222,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
217# CONFIG_PHYS_ADDR_T_64BIT is not set 222# CONFIG_PHYS_ADDR_T_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=0 223CONFIG_ZONE_DMA_FLAG=0
219CONFIG_NR_QUICK=2 224CONFIG_NR_QUICK=2
220CONFIG_UNEVICTABLE_LRU=y
221CONFIG_HAVE_MLOCK=y 225CONFIG_HAVE_MLOCK=y
222CONFIG_HAVE_MLOCKED_PAGE_BIT=y 226CONFIG_HAVE_MLOCKED_PAGE_BIT=y
227CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
223 228
224# 229#
225# Cache configuration 230# Cache configuration
@@ -238,7 +243,6 @@ CONFIG_SH_DSP=y
238# CONFIG_SH_STORE_QUEUES is not set 243# CONFIG_SH_STORE_QUEUES is not set
239CONFIG_CPU_HAS_INTEVT=y 244CONFIG_CPU_HAS_INTEVT=y
240CONFIG_CPU_HAS_SR_RB=y 245CONFIG_CPU_HAS_SR_RB=y
241CONFIG_CPU_HAS_PTEA=y
242CONFIG_CPU_HAS_DSP=y 246CONFIG_CPU_HAS_DSP=y
243 247
244# 248#
@@ -252,10 +256,10 @@ CONFIG_SH_MIGOR_QVGA=y
252# 256#
253# Timer and clock configuration 257# Timer and clock configuration
254# 258#
255CONFIG_SH_TMU=y 259CONFIG_SH_TIMER_TMU=y
256# CONFIG_SH_TIMER_CMT is not set 260# CONFIG_SH_TIMER_CMT is not set
257CONFIG_SH_TIMER_IRQ=16
258CONFIG_SH_PCLK_FREQ=33333333 261CONFIG_SH_PCLK_FREQ=33333333
262CONFIG_SH_CLK_CPG=y
259# CONFIG_NO_HZ is not set 263# CONFIG_NO_HZ is not set
260# CONFIG_HIGH_RES_TIMERS is not set 264# CONFIG_HIGH_RES_TIMERS is not set
261CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 265CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -296,12 +300,14 @@ CONFIG_PREEMPT_NONE=y
296# CONFIG_PREEMPT_VOLUNTARY is not set 300# CONFIG_PREEMPT_VOLUNTARY is not set
297# CONFIG_PREEMPT is not set 301# CONFIG_PREEMPT is not set
298CONFIG_GUSA=y 302CONFIG_GUSA=y
303# CONFIG_SPARSE_IRQ is not set
299 304
300# 305#
301# Boot options 306# Boot options
302# 307#
303CONFIG_ZERO_PAGE_OFFSET=0x00001000 308CONFIG_ZERO_PAGE_OFFSET=0x00001000
304CONFIG_BOOT_LINK_OFFSET=0x00800000 309CONFIG_BOOT_LINK_OFFSET=0x00800000
310CONFIG_ENTRY_OFFSET=0x00001000
305CONFIG_CMDLINE_BOOL=y 311CONFIG_CMDLINE_BOOL=y
306CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ip=on root=/dev/nfs ip=dhcp" 312CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ip=on root=/dev/nfs ip=dhcp"
307 313
@@ -384,6 +390,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
384# CONFIG_ECONET is not set 390# CONFIG_ECONET is not set
385# CONFIG_WAN_ROUTER is not set 391# CONFIG_WAN_ROUTER is not set
386# CONFIG_PHONET is not set 392# CONFIG_PHONET is not set
393# CONFIG_IEEE802154 is not set
387# CONFIG_NET_SCHED is not set 394# CONFIG_NET_SCHED is not set
388# CONFIG_DCB is not set 395# CONFIG_DCB is not set
389 396
@@ -403,7 +410,11 @@ CONFIG_WIRELESS=y
403CONFIG_WIRELESS_EXT=y 410CONFIG_WIRELESS_EXT=y
404CONFIG_WIRELESS_EXT_SYSFS=y 411CONFIG_WIRELESS_EXT_SYSFS=y
405# CONFIG_LIB80211 is not set 412# CONFIG_LIB80211 is not set
406# CONFIG_MAC80211 is not set 413
414#
415# CFG80211 needs to be enabled for MAC80211
416#
417CONFIG_MAC80211_DEFAULT_PS_VALUE=0
407# CONFIG_WIMAX is not set 418# CONFIG_WIMAX is not set
408# CONFIG_RFKILL is not set 419# CONFIG_RFKILL is not set
409# CONFIG_NET_9P is not set 420# CONFIG_NET_9P is not set
@@ -534,6 +545,7 @@ CONFIG_MISC_DEVICES=y
534# 545#
535# CONFIG_EEPROM_AT24 is not set 546# CONFIG_EEPROM_AT24 is not set
536# CONFIG_EEPROM_LEGACY is not set 547# CONFIG_EEPROM_LEGACY is not set
548# CONFIG_EEPROM_MAX6875 is not set
537# CONFIG_EEPROM_93CX6 is not set 549# CONFIG_EEPROM_93CX6 is not set
538CONFIG_HAVE_IDE=y 550CONFIG_HAVE_IDE=y
539# CONFIG_IDE is not set 551# CONFIG_IDE is not set
@@ -557,10 +569,6 @@ CONFIG_BLK_DEV_SD=y
557# CONFIG_BLK_DEV_SR is not set 569# CONFIG_BLK_DEV_SR is not set
558# CONFIG_CHR_DEV_SG is not set 570# CONFIG_CHR_DEV_SG is not set
559# CONFIG_CHR_DEV_SCH is not set 571# CONFIG_CHR_DEV_SCH is not set
560
561#
562# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
563#
564# CONFIG_SCSI_MULTI_LUN is not set 572# CONFIG_SCSI_MULTI_LUN is not set
565# CONFIG_SCSI_CONSTANTS is not set 573# CONFIG_SCSI_CONSTANTS is not set
566# CONFIG_SCSI_LOGGING is not set 574# CONFIG_SCSI_LOGGING is not set
@@ -577,6 +585,7 @@ CONFIG_SCSI_WAIT_SCAN=m
577# CONFIG_SCSI_SRP_ATTRS is not set 585# CONFIG_SCSI_SRP_ATTRS is not set
578CONFIG_SCSI_LOWLEVEL=y 586CONFIG_SCSI_LOWLEVEL=y
579# CONFIG_ISCSI_TCP is not set 587# CONFIG_ISCSI_TCP is not set
588# CONFIG_SCSI_BNX2_ISCSI is not set
580# CONFIG_LIBFC is not set 589# CONFIG_LIBFC is not set
581# CONFIG_LIBFCOE is not set 590# CONFIG_LIBFCOE is not set
582# CONFIG_SCSI_DEBUG is not set 591# CONFIG_SCSI_DEBUG is not set
@@ -585,7 +594,6 @@ CONFIG_SCSI_LOWLEVEL=y
585# CONFIG_ATA is not set 594# CONFIG_ATA is not set
586# CONFIG_MD is not set 595# CONFIG_MD is not set
587CONFIG_NETDEVICES=y 596CONFIG_NETDEVICES=y
588CONFIG_COMPAT_NET_DEV_OPS=y
589# CONFIG_DUMMY is not set 597# CONFIG_DUMMY is not set
590# CONFIG_BONDING is not set 598# CONFIG_BONDING is not set
591# CONFIG_MACVLAN is not set 599# CONFIG_MACVLAN is not set
@@ -610,6 +618,7 @@ CONFIG_SMC91X=y
610# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 618# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
611# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 619# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
612# CONFIG_B44 is not set 620# CONFIG_B44 is not set
621# CONFIG_KS8842 is not set
613# CONFIG_NETDEV_1000 is not set 622# CONFIG_NETDEV_1000 is not set
614# CONFIG_NETDEV_10000 is not set 623# CONFIG_NETDEV_10000 is not set
615 624
@@ -740,7 +749,6 @@ CONFIG_I2C_SH_MOBILE=y
740# CONFIG_SENSORS_PCF8574 is not set 749# CONFIG_SENSORS_PCF8574 is not set
741# CONFIG_PCF8575 is not set 750# CONFIG_PCF8575 is not set
742# CONFIG_SENSORS_PCA9539 is not set 751# CONFIG_SENSORS_PCA9539 is not set
743# CONFIG_SENSORS_MAX6875 is not set
744# CONFIG_SENSORS_TSL2550 is not set 752# CONFIG_SENSORS_TSL2550 is not set
745# CONFIG_I2C_DEBUG_CORE is not set 753# CONFIG_I2C_DEBUG_CORE is not set
746# CONFIG_I2C_DEBUG_ALGO is not set 754# CONFIG_I2C_DEBUG_ALGO is not set
@@ -796,10 +804,7 @@ CONFIG_SSB_POSSIBLE=y
796# CONFIG_MFD_WM8350_I2C is not set 804# CONFIG_MFD_WM8350_I2C is not set
797# CONFIG_MFD_PCF50633 is not set 805# CONFIG_MFD_PCF50633 is not set
798# CONFIG_REGULATOR is not set 806# CONFIG_REGULATOR is not set
799 807CONFIG_MEDIA_SUPPORT=y
800#
801# Multimedia devices
802#
803 808
804# 809#
805# Multimedia core support 810# Multimedia core support
@@ -899,6 +904,7 @@ CONFIG_USB_GADGET_SELECTED=y
899# CONFIG_USB_GADGET_OMAP is not set 904# CONFIG_USB_GADGET_OMAP is not set
900# CONFIG_USB_GADGET_PXA25X is not set 905# CONFIG_USB_GADGET_PXA25X is not set
901# CONFIG_USB_GADGET_PXA27X is not set 906# CONFIG_USB_GADGET_PXA27X is not set
907# CONFIG_USB_GADGET_S3C_HSOTG is not set
902# CONFIG_USB_GADGET_S3C2410 is not set 908# CONFIG_USB_GADGET_S3C2410 is not set
903# CONFIG_USB_GADGET_IMX is not set 909# CONFIG_USB_GADGET_IMX is not set
904CONFIG_USB_GADGET_M66592=y 910CONFIG_USB_GADGET_M66592=y
@@ -909,9 +915,11 @@ CONFIG_SUPERH_BUILT_IN_M66592=y
909# CONFIG_USB_GADGET_CI13XXX is not set 915# CONFIG_USB_GADGET_CI13XXX is not set
910# CONFIG_USB_GADGET_NET2280 is not set 916# CONFIG_USB_GADGET_NET2280 is not set
911# CONFIG_USB_GADGET_GOKU is not set 917# CONFIG_USB_GADGET_GOKU is not set
918# CONFIG_USB_GADGET_LANGWELL is not set
912# CONFIG_USB_GADGET_DUMMY_HCD is not set 919# CONFIG_USB_GADGET_DUMMY_HCD is not set
913CONFIG_USB_GADGET_DUALSPEED=y 920CONFIG_USB_GADGET_DUALSPEED=y
914# CONFIG_USB_ZERO is not set 921# CONFIG_USB_ZERO is not set
922# CONFIG_USB_AUDIO is not set
915# CONFIG_USB_ETH is not set 923# CONFIG_USB_ETH is not set
916# CONFIG_USB_GADGETFS is not set 924# CONFIG_USB_GADGETFS is not set
917# CONFIG_USB_FILE_STORAGE is not set 925# CONFIG_USB_FILE_STORAGE is not set
@@ -983,6 +991,7 @@ CONFIG_RTC_DRV_RS5C372=y
983# on-CPU RTC drivers 991# on-CPU RTC drivers
984# 992#
985CONFIG_RTC_DRV_SH=y 993CONFIG_RTC_DRV_SH=y
994# CONFIG_RTC_DRV_GENERIC is not set
986# CONFIG_DMADEVICES is not set 995# CONFIG_DMADEVICES is not set
987# CONFIG_AUXDISPLAY is not set 996# CONFIG_AUXDISPLAY is not set
988CONFIG_UIO=y 997CONFIG_UIO=y
@@ -990,6 +999,10 @@ CONFIG_UIO=y
990CONFIG_UIO_PDRV_GENIRQ=y 999CONFIG_UIO_PDRV_GENIRQ=y
991# CONFIG_UIO_SMX is not set 1000# CONFIG_UIO_SMX is not set
992# CONFIG_UIO_SERCOS3 is not set 1001# CONFIG_UIO_SERCOS3 is not set
1002
1003#
1004# TI VLYNQ
1005#
993# CONFIG_STAGING is not set 1006# CONFIG_STAGING is not set
994 1007
995# 1008#
@@ -1001,12 +1014,14 @@ CONFIG_UIO_PDRV_GENIRQ=y
1001# CONFIG_REISERFS_FS is not set 1014# CONFIG_REISERFS_FS is not set
1002# CONFIG_JFS_FS is not set 1015# CONFIG_JFS_FS is not set
1003# CONFIG_FS_POSIX_ACL is not set 1016# CONFIG_FS_POSIX_ACL is not set
1004CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1017# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1018# CONFIG_OCFS2_FS is not set
1007# CONFIG_BTRFS_FS is not set 1019# CONFIG_BTRFS_FS is not set
1020CONFIG_FILE_LOCKING=y
1021CONFIG_FSNOTIFY=y
1008# CONFIG_DNOTIFY is not set 1022# CONFIG_DNOTIFY is not set
1009# CONFIG_INOTIFY is not set 1023# CONFIG_INOTIFY is not set
1024CONFIG_INOTIFY_USER=y
1010# CONFIG_QUOTA is not set 1025# CONFIG_QUOTA is not set
1011# CONFIG_AUTOFS_FS is not set 1026# CONFIG_AUTOFS_FS is not set
1012# CONFIG_AUTOFS4_FS is not set 1027# CONFIG_AUTOFS4_FS is not set
@@ -1111,24 +1126,11 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1111CONFIG_HAVE_DYNAMIC_FTRACE=y 1126CONFIG_HAVE_DYNAMIC_FTRACE=y
1112CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1127CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1113CONFIG_RING_BUFFER=y 1128CONFIG_RING_BUFFER=y
1129CONFIG_EVENT_TRACING=y
1130CONFIG_CONTEXT_SWITCH_TRACER=y
1114CONFIG_TRACING=y 1131CONFIG_TRACING=y
1115CONFIG_TRACING_SUPPORT=y 1132CONFIG_TRACING_SUPPORT=y
1116 1133# CONFIG_FTRACE is not set
1117#
1118# Tracers
1119#
1120# CONFIG_FUNCTION_TRACER is not set
1121# CONFIG_IRQSOFF_TRACER is not set
1122# CONFIG_SCHED_TRACER is not set
1123# CONFIG_CONTEXT_SWITCH_TRACER is not set
1124# CONFIG_EVENT_TRACER is not set
1125# CONFIG_BOOT_TRACER is not set
1126# CONFIG_TRACE_BRANCH_PROFILING is not set
1127# CONFIG_STACK_TRACER is not set
1128# CONFIG_KMEMTRACE is not set
1129# CONFIG_WORKQUEUE_TRACER is not set
1130# CONFIG_BLK_DEV_IO_TRACE is not set
1131# CONFIG_FTRACE_STARTUP_TEST is not set
1132# CONFIG_DYNAMIC_DEBUG is not set 1134# CONFIG_DYNAMIC_DEBUG is not set
1133# CONFIG_DMA_API_DEBUG is not set 1135# CONFIG_DMA_API_DEBUG is not set
1134# CONFIG_SAMPLES is not set 1136# CONFIG_SAMPLES is not set
@@ -1137,7 +1139,6 @@ CONFIG_HAVE_ARCH_KGDB=y
1137CONFIG_EARLY_SCIF_CONSOLE=y 1139CONFIG_EARLY_SCIF_CONSOLE=y
1138CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 1140CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1139CONFIG_EARLY_PRINTK=y 1141CONFIG_EARLY_PRINTK=y
1140# CONFIG_MORE_COMPILE_OPTIONS is not set
1141 1142
1142# 1143#
1143# Security options 1144# Security options
@@ -1259,3 +1260,4 @@ CONFIG_HAS_IOMEM=y
1259CONFIG_HAS_IOPORT=y 1260CONFIG_HAS_IOPORT=y
1260CONFIG_HAS_DMA=y 1261CONFIG_HAS_DMA=y
1261CONFIG_NLATTR=y 1262CONFIG_NLATTR=y
1263CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/polaris_defconfig b/arch/sh/configs/polaris_defconfig
index 2b950728618..67edd3f3f9b 100644
--- a/arch/sh/configs/polaris_defconfig
+++ b/arch/sh/configs/polaris_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:52:19 2009 4# Thu Jun 18 12:33:28 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -78,7 +79,6 @@ CONFIG_SYSCTL_SYSCALL=y
78CONFIG_KALLSYMS=y 79CONFIG_KALLSYMS=y
79CONFIG_KALLSYMS_ALL=y 80CONFIG_KALLSYMS_ALL=y
80# CONFIG_KALLSYMS_EXTRA_PASS is not set 81# CONFIG_KALLSYMS_EXTRA_PASS is not set
81# CONFIG_STRIP_ASM_SYMS is not set
82CONFIG_HOTPLUG=y 82CONFIG_HOTPLUG=y
83CONFIG_PRINTK=y 83CONFIG_PRINTK=y
84CONFIG_BUG=y 84CONFIG_BUG=y
@@ -91,7 +91,12 @@ CONFIG_TIMERFD=y
91CONFIG_EVENTFD=y 91CONFIG_EVENTFD=y
92CONFIG_SHMEM=y 92CONFIG_SHMEM=y
93CONFIG_AIO=y 93CONFIG_AIO=y
94
95#
96# Performance Counters
97#
94CONFIG_VM_EVENT_COUNTERS=y 98CONFIG_VM_EVENT_COUNTERS=y
99# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_COMPAT_BRK=y 100CONFIG_COMPAT_BRK=y
96CONFIG_SLAB=y 101CONFIG_SLAB=y
97# CONFIG_SLUB is not set 102# CONFIG_SLUB is not set
@@ -181,6 +186,7 @@ CONFIG_CPU_SUBTYPE_SH7709=y
181CONFIG_QUICKLIST=y 186CONFIG_QUICKLIST=y
182CONFIG_MMU=y 187CONFIG_MMU=y
183CONFIG_PAGE_OFFSET=0x80000000 188CONFIG_PAGE_OFFSET=0x80000000
189CONFIG_FORCE_MAX_ZONEORDER=11
184CONFIG_MEMORY_START=0x0C000000 190CONFIG_MEMORY_START=0x0C000000
185CONFIG_MEMORY_SIZE=0x04000000 191CONFIG_MEMORY_SIZE=0x04000000
186CONFIG_29BIT=y 192CONFIG_29BIT=y
@@ -195,7 +201,6 @@ CONFIG_PAGE_SIZE_4KB=y
195# CONFIG_PAGE_SIZE_8KB is not set 201# CONFIG_PAGE_SIZE_8KB is not set
196# CONFIG_PAGE_SIZE_16KB is not set 202# CONFIG_PAGE_SIZE_16KB is not set
197# CONFIG_PAGE_SIZE_64KB is not set 203# CONFIG_PAGE_SIZE_64KB is not set
198CONFIG_ENTRY_OFFSET=0x00001000
199CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
200CONFIG_FLATMEM_MANUAL=y 205CONFIG_FLATMEM_MANUAL=y
201# CONFIG_DISCONTIGMEM_MANUAL is not set 206# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -208,9 +213,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
208# CONFIG_PHYS_ADDR_T_64BIT is not set 213# CONFIG_PHYS_ADDR_T_64BIT is not set
209CONFIG_ZONE_DMA_FLAG=0 214CONFIG_ZONE_DMA_FLAG=0
210CONFIG_NR_QUICK=2 215CONFIG_NR_QUICK=2
211CONFIG_UNEVICTABLE_LRU=y
212CONFIG_HAVE_MLOCK=y 216CONFIG_HAVE_MLOCK=y
213CONFIG_HAVE_MLOCKED_PAGE_BIT=y 217CONFIG_HAVE_MLOCKED_PAGE_BIT=y
218CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
214 219
215# 220#
216# Cache configuration 221# Cache configuration
@@ -240,9 +245,10 @@ CONFIG_SH_POLARIS=y
240# 245#
241# Timer and clock configuration 246# Timer and clock configuration
242# 247#
243CONFIG_SH_TMU=y 248CONFIG_SH_TIMER_TMU=y
244CONFIG_SH_TIMER_IRQ=16
245CONFIG_SH_PCLK_FREQ=33000000 249CONFIG_SH_PCLK_FREQ=33000000
250CONFIG_SH_CLK_CPG=y
251CONFIG_SH_CLK_CPG_LEGACY=y
246CONFIG_TICK_ONESHOT=y 252CONFIG_TICK_ONESHOT=y
247CONFIG_NO_HZ=y 253CONFIG_NO_HZ=y
248CONFIG_HIGH_RES_TIMERS=y 254CONFIG_HIGH_RES_TIMERS=y
@@ -288,12 +294,14 @@ CONFIG_SCHED_HRTICK=y
288CONFIG_PREEMPT=y 294CONFIG_PREEMPT=y
289CONFIG_GUSA=y 295CONFIG_GUSA=y
290# CONFIG_GUSA_RB is not set 296# CONFIG_GUSA_RB is not set
297# CONFIG_SPARSE_IRQ is not set
291 298
292# 299#
293# Boot options 300# Boot options
294# 301#
295CONFIG_ZERO_PAGE_OFFSET=0x00001000 302CONFIG_ZERO_PAGE_OFFSET=0x00001000
296CONFIG_BOOT_LINK_OFFSET=0x00800000 303CONFIG_BOOT_LINK_OFFSET=0x00800000
304CONFIG_ENTRY_OFFSET=0x00001000
297CONFIG_CMDLINE_BOOL=y 305CONFIG_CMDLINE_BOOL=y
298CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/mtdblock2 rootfstype=jffs2 mem=63M mtdparts=physmap-flash.0:0x00100000(bootloader)ro,0x00500000(Kernel)ro,0x00A00000(Filesystem)" 306CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/mtdblock2 rootfstype=jffs2 mem=63M mtdparts=physmap-flash.0:0x00100000(bootloader)ro,0x00500000(Kernel)ro,0x00A00000(Filesystem)"
299 307
@@ -369,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
369# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
370# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
371# CONFIG_PHONET is not set 379# CONFIG_PHONET is not set
380# CONFIG_IEEE802154 is not set
372# CONFIG_NET_SCHED is not set 381# CONFIG_NET_SCHED is not set
373# CONFIG_DCB is not set 382# CONFIG_DCB is not set
374 383
@@ -522,7 +531,6 @@ CONFIG_HAVE_IDE=y
522# CONFIG_ATA is not set 531# CONFIG_ATA is not set
523# CONFIG_MD is not set 532# CONFIG_MD is not set
524CONFIG_NETDEVICES=y 533CONFIG_NETDEVICES=y
525CONFIG_COMPAT_NET_DEV_OPS=y
526# CONFIG_DUMMY is not set 534# CONFIG_DUMMY is not set
527# CONFIG_BONDING is not set 535# CONFIG_BONDING is not set
528# CONFIG_MACVLAN is not set 536# CONFIG_MACVLAN is not set
@@ -566,6 +574,7 @@ CONFIG_SMSC911X=y
566# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 574# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
567# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 575# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
568# CONFIG_B44 is not set 576# CONFIG_B44 is not set
577# CONFIG_KS8842 is not set
569# CONFIG_NETDEV_1000 is not set 578# CONFIG_NETDEV_1000 is not set
570# CONFIG_NETDEV_10000 is not set 579# CONFIG_NETDEV_10000 is not set
571 580
@@ -678,22 +687,7 @@ CONFIG_SSB_POSSIBLE=y
678# CONFIG_HTC_PASIC3 is not set 687# CONFIG_HTC_PASIC3 is not set
679# CONFIG_MFD_TMIO is not set 688# CONFIG_MFD_TMIO is not set
680# CONFIG_REGULATOR is not set 689# CONFIG_REGULATOR is not set
681 690# CONFIG_MEDIA_SUPPORT is not set
682#
683# Multimedia devices
684#
685
686#
687# Multimedia core support
688#
689# CONFIG_VIDEO_DEV is not set
690# CONFIG_DVB_CORE is not set
691# CONFIG_VIDEO_MEDIA is not set
692
693#
694# Multimedia drivers
695#
696# CONFIG_DAB is not set
697 691
698# 692#
699# Graphics support 693# Graphics support
@@ -756,9 +750,14 @@ CONFIG_RTC_INTF_DEV=y
756# on-CPU RTC drivers 750# on-CPU RTC drivers
757# 751#
758CONFIG_RTC_DRV_SH=y 752CONFIG_RTC_DRV_SH=y
753# CONFIG_RTC_DRV_GENERIC is not set
759# CONFIG_DMADEVICES is not set 754# CONFIG_DMADEVICES is not set
760# CONFIG_AUXDISPLAY is not set 755# CONFIG_AUXDISPLAY is not set
761# CONFIG_UIO is not set 756# CONFIG_UIO is not set
757
758#
759# TI VLYNQ
760#
762# CONFIG_STAGING is not set 761# CONFIG_STAGING is not set
763 762
764# 763#
@@ -770,12 +769,14 @@ CONFIG_RTC_DRV_SH=y
770# CONFIG_REISERFS_FS is not set 769# CONFIG_REISERFS_FS is not set
771# CONFIG_JFS_FS is not set 770# CONFIG_JFS_FS is not set
772# CONFIG_FS_POSIX_ACL is not set 771# CONFIG_FS_POSIX_ACL is not set
773CONFIG_FILE_LOCKING=y
774# CONFIG_XFS_FS is not set 772# CONFIG_XFS_FS is not set
775# CONFIG_OCFS2_FS is not set 773# CONFIG_OCFS2_FS is not set
776# CONFIG_BTRFS_FS is not set 774# CONFIG_BTRFS_FS is not set
775CONFIG_FILE_LOCKING=y
776CONFIG_FSNOTIFY=y
777# CONFIG_DNOTIFY is not set 777# CONFIG_DNOTIFY is not set
778# CONFIG_INOTIFY is not set 778# CONFIG_INOTIFY is not set
779CONFIG_INOTIFY_USER=y
779# CONFIG_QUOTA is not set 780# CONFIG_QUOTA is not set
780# CONFIG_AUTOFS_FS is not set 781# CONFIG_AUTOFS_FS is not set
781# CONFIG_AUTOFS4_FS is not set 782# CONFIG_AUTOFS4_FS is not set
@@ -928,18 +929,16 @@ CONFIG_HAVE_FUNCTION_TRACER=y
928CONFIG_HAVE_DYNAMIC_FTRACE=y 929CONFIG_HAVE_DYNAMIC_FTRACE=y
929CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 930CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
930CONFIG_TRACING_SUPPORT=y 931CONFIG_TRACING_SUPPORT=y
931 932CONFIG_FTRACE=y
932#
933# Tracers
934#
935# CONFIG_FUNCTION_TRACER is not set 933# CONFIG_FUNCTION_TRACER is not set
936# CONFIG_IRQSOFF_TRACER is not set 934# CONFIG_IRQSOFF_TRACER is not set
937# CONFIG_PREEMPT_TRACER is not set 935# CONFIG_PREEMPT_TRACER is not set
938# CONFIG_SCHED_TRACER is not set 936# CONFIG_SCHED_TRACER is not set
939# CONFIG_CONTEXT_SWITCH_TRACER is not set 937# CONFIG_ENABLE_DEFAULT_TRACERS is not set
940# CONFIG_EVENT_TRACER is not set
941# CONFIG_BOOT_TRACER is not set 938# CONFIG_BOOT_TRACER is not set
942# CONFIG_TRACE_BRANCH_PROFILING is not set 939CONFIG_BRANCH_PROFILE_NONE=y
940# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
941# CONFIG_PROFILE_ALL_BRANCHES is not set
943# CONFIG_STACK_TRACER is not set 942# CONFIG_STACK_TRACER is not set
944# CONFIG_KMEMTRACE is not set 943# CONFIG_KMEMTRACE is not set
945# CONFIG_WORKQUEUE_TRACER is not set 944# CONFIG_WORKQUEUE_TRACER is not set
@@ -948,6 +947,7 @@ CONFIG_TRACING_SUPPORT=y
948# CONFIG_SAMPLES is not set 947# CONFIG_SAMPLES is not set
949CONFIG_HAVE_ARCH_KGDB=y 948CONFIG_HAVE_ARCH_KGDB=y
950# CONFIG_KGDB is not set 949# CONFIG_KGDB is not set
950# CONFIG_KMEMCHECK is not set
951# CONFIG_SH_STANDARD_BIOS is not set 951# CONFIG_SH_STANDARD_BIOS is not set
952CONFIG_EARLY_SCIF_CONSOLE=y 952CONFIG_EARLY_SCIF_CONSOLE=y
953CONFIG_EARLY_SCIF_CONSOLE_PORT=0x00000000 953CONFIG_EARLY_SCIF_CONSOLE_PORT=0x00000000
@@ -956,10 +956,8 @@ CONFIG_EARLY_PRINTK=y
956# CONFIG_DEBUG_STACKOVERFLOW is not set 956# CONFIG_DEBUG_STACKOVERFLOW is not set
957# CONFIG_DEBUG_STACK_USAGE is not set 957# CONFIG_DEBUG_STACK_USAGE is not set
958# CONFIG_4KSTACKS is not set 958# CONFIG_4KSTACKS is not set
959# CONFIG_IRQSTACKS is not set
960CONFIG_DUMP_CODE=y 959CONFIG_DUMP_CODE=y
961# CONFIG_SH_NO_BSS_INIT is not set 960# CONFIG_SH_NO_BSS_INIT is not set
962# CONFIG_MORE_COMPILE_OPTIONS is not set
963 961
964# 962#
965# Security options 963# Security options
@@ -990,3 +988,4 @@ CONFIG_HAS_IOMEM=y
990CONFIG_HAS_IOPORT=y 988CONFIG_HAS_IOPORT=y
991CONFIG_HAS_DMA=y 989CONFIG_HAS_DMA=y
992CONFIG_NLATTR=y 990CONFIG_NLATTR=y
991CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/r7780mp_defconfig b/arch/sh/configs/r7780mp_defconfig
index 943da63a385..107a8e337ec 100644
--- a/arch/sh/configs/r7780mp_defconfig
+++ b/arch/sh/configs/r7780mp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:53:28 2009 4# Thu Jun 18 12:34:44 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -79,7 +80,6 @@ CONFIG_UID16=y
79CONFIG_KALLSYMS=y 80CONFIG_KALLSYMS=y
80# CONFIG_KALLSYMS_ALL is not set 81# CONFIG_KALLSYMS_ALL is not set
81# CONFIG_KALLSYMS_EXTRA_PASS is not set 82# CONFIG_KALLSYMS_EXTRA_PASS is not set
82# CONFIG_STRIP_ASM_SYMS is not set
83CONFIG_HOTPLUG=y 83CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 84CONFIG_PRINTK=y
85CONFIG_BUG=y 85CONFIG_BUG=y
@@ -92,15 +92,20 @@ CONFIG_TIMERFD=y
92CONFIG_EVENTFD=y 92CONFIG_EVENTFD=y
93CONFIG_SHMEM=y 93CONFIG_SHMEM=y
94CONFIG_AIO=y 94CONFIG_AIO=y
95
96#
97# Performance Counters
98#
95CONFIG_VM_EVENT_COUNTERS=y 99CONFIG_VM_EVENT_COUNTERS=y
96CONFIG_PCI_QUIRKS=y 100CONFIG_PCI_QUIRKS=y
101# CONFIG_STRIP_ASM_SYMS is not set
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_SLAB=y 103CONFIG_SLAB=y
99# CONFIG_SLUB is not set 104# CONFIG_SLUB is not set
100# CONFIG_SLOB is not set 105# CONFIG_SLOB is not set
101CONFIG_PROFILING=y 106CONFIG_PROFILING=y
102CONFIG_TRACEPOINTS=y 107CONFIG_TRACEPOINTS=y
103# CONFIG_MARKERS is not set 108CONFIG_MARKERS=y
104CONFIG_OPROFILE=m 109CONFIG_OPROFILE=m
105CONFIG_HAVE_OPROFILE=y 110CONFIG_HAVE_OPROFILE=y
106# CONFIG_KPROBES is not set 111# CONFIG_KPROBES is not set
@@ -185,6 +190,7 @@ CONFIG_CPU_SUBTYPE_SH7780=y
185CONFIG_QUICKLIST=y 190CONFIG_QUICKLIST=y
186CONFIG_MMU=y 191CONFIG_MMU=y
187CONFIG_PAGE_OFFSET=0x80000000 192CONFIG_PAGE_OFFSET=0x80000000
193CONFIG_FORCE_MAX_ZONEORDER=11
188CONFIG_MEMORY_START=0x08000000 194CONFIG_MEMORY_START=0x08000000
189CONFIG_MEMORY_SIZE=0x08000000 195CONFIG_MEMORY_SIZE=0x08000000
190# CONFIG_29BIT is not set 196# CONFIG_29BIT is not set
@@ -203,7 +209,6 @@ CONFIG_PAGE_SIZE_4KB=y
203# CONFIG_PAGE_SIZE_8KB is not set 209# CONFIG_PAGE_SIZE_8KB is not set
204# CONFIG_PAGE_SIZE_16KB is not set 210# CONFIG_PAGE_SIZE_16KB is not set
205# CONFIG_PAGE_SIZE_64KB is not set 211# CONFIG_PAGE_SIZE_64KB is not set
206CONFIG_ENTRY_OFFSET=0x00001000
207CONFIG_HUGETLB_PAGE_SIZE_64K=y 212CONFIG_HUGETLB_PAGE_SIZE_64K=y
208# CONFIG_HUGETLB_PAGE_SIZE_256K is not set 213# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
209# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set 214# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
@@ -222,9 +227,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
222# CONFIG_PHYS_ADDR_T_64BIT is not set 227# CONFIG_PHYS_ADDR_T_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=0 228CONFIG_ZONE_DMA_FLAG=0
224CONFIG_NR_QUICK=2 229CONFIG_NR_QUICK=2
225CONFIG_UNEVICTABLE_LRU=y
226CONFIG_HAVE_MLOCK=y 230CONFIG_HAVE_MLOCK=y
227CONFIG_HAVE_MLOCKED_PAGE_BIT=y 231CONFIG_HAVE_MLOCKED_PAGE_BIT=y
232CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
228 233
229# 234#
230# Cache configuration 235# Cache configuration
@@ -258,9 +263,10 @@ CONFIG_SH_R7780MP=y
258# 263#
259# Timer and clock configuration 264# Timer and clock configuration
260# 265#
261CONFIG_SH_TMU=y 266CONFIG_SH_TIMER_TMU=y
262CONFIG_SH_TIMER_IRQ=28
263CONFIG_SH_PCLK_FREQ=33333333 267CONFIG_SH_PCLK_FREQ=33333333
268CONFIG_SH_CLK_CPG=y
269CONFIG_SH_CLK_CPG_LEGACY=y
264# CONFIG_NO_HZ is not set 270# CONFIG_NO_HZ is not set
265# CONFIG_HIGH_RES_TIMERS is not set 271# CONFIG_HIGH_RES_TIMERS is not set
266CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 272CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -301,12 +307,14 @@ CONFIG_KEXEC=y
301# CONFIG_PREEMPT_VOLUNTARY is not set 307# CONFIG_PREEMPT_VOLUNTARY is not set
302CONFIG_PREEMPT=y 308CONFIG_PREEMPT=y
303CONFIG_GUSA=y 309CONFIG_GUSA=y
310# CONFIG_SPARSE_IRQ is not set
304 311
305# 312#
306# Boot options 313# Boot options
307# 314#
308CONFIG_ZERO_PAGE_OFFSET=0x00001000 315CONFIG_ZERO_PAGE_OFFSET=0x00001000
309CONFIG_BOOT_LINK_OFFSET=0x00800000 316CONFIG_BOOT_LINK_OFFSET=0x00800000
317CONFIG_ENTRY_OFFSET=0x00001000
310CONFIG_CMDLINE_BOOL=y 318CONFIG_CMDLINE_BOOL=y
311CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1" 319CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
312 320
@@ -404,6 +412,7 @@ CONFIG_LLC=m
404# CONFIG_ECONET is not set 412# CONFIG_ECONET is not set
405# CONFIG_WAN_ROUTER is not set 413# CONFIG_WAN_ROUTER is not set
406# CONFIG_PHONET is not set 414# CONFIG_PHONET is not set
415# CONFIG_IEEE802154 is not set
407# CONFIG_NET_SCHED is not set 416# CONFIG_NET_SCHED is not set
408# CONFIG_DCB is not set 417# CONFIG_DCB is not set
409 418
@@ -423,7 +432,11 @@ CONFIG_WIRELESS=y
423CONFIG_WIRELESS_EXT=y 432CONFIG_WIRELESS_EXT=y
424CONFIG_WIRELESS_EXT_SYSFS=y 433CONFIG_WIRELESS_EXT_SYSFS=y
425# CONFIG_LIB80211 is not set 434# CONFIG_LIB80211 is not set
426# CONFIG_MAC80211 is not set 435
436#
437# CFG80211 needs to be enabled for MAC80211
438#
439CONFIG_MAC80211_DEFAULT_PS_VALUE=0
427# CONFIG_WIMAX is not set 440# CONFIG_WIMAX is not set
428# CONFIG_RFKILL is not set 441# CONFIG_RFKILL is not set
429# CONFIG_NET_9P is not set 442# CONFIG_NET_9P is not set
@@ -445,7 +458,91 @@ CONFIG_EXTRA_FIRMWARE=""
445# CONFIG_DEBUG_DEVRES is not set 458# CONFIG_DEBUG_DEVRES is not set
446# CONFIG_SYS_HYPERVISOR is not set 459# CONFIG_SYS_HYPERVISOR is not set
447# CONFIG_CONNECTOR is not set 460# CONFIG_CONNECTOR is not set
448# CONFIG_MTD is not set 461CONFIG_MTD=y
462# CONFIG_MTD_DEBUG is not set
463# CONFIG_MTD_CONCAT is not set
464CONFIG_MTD_PARTITIONS=y
465# CONFIG_MTD_TESTS is not set
466# CONFIG_MTD_REDBOOT_PARTS is not set
467# CONFIG_MTD_CMDLINE_PARTS is not set
468# CONFIG_MTD_AR7_PARTS is not set
469
470#
471# User Modules And Translation Layers
472#
473# CONFIG_MTD_CHAR is not set
474# CONFIG_MTD_BLKDEVS is not set
475# CONFIG_MTD_BLOCK is not set
476# CONFIG_MTD_BLOCK_RO is not set
477# CONFIG_FTL is not set
478# CONFIG_NFTL is not set
479# CONFIG_INFTL is not set
480# CONFIG_RFD_FTL is not set
481# CONFIG_SSFDC is not set
482# CONFIG_MTD_OOPS is not set
483
484#
485# RAM/ROM/Flash chip drivers
486#
487CONFIG_MTD_CFI=y
488# CONFIG_MTD_JEDECPROBE is not set
489CONFIG_MTD_GEN_PROBE=y
490# CONFIG_MTD_CFI_ADV_OPTIONS is not set
491CONFIG_MTD_MAP_BANK_WIDTH_1=y
492CONFIG_MTD_MAP_BANK_WIDTH_2=y
493CONFIG_MTD_MAP_BANK_WIDTH_4=y
494# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
495# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
496# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
497CONFIG_MTD_CFI_I1=y
498CONFIG_MTD_CFI_I2=y
499# CONFIG_MTD_CFI_I4 is not set
500# CONFIG_MTD_CFI_I8 is not set
501# CONFIG_MTD_CFI_INTELEXT is not set
502CONFIG_MTD_CFI_AMDSTD=y
503# CONFIG_MTD_CFI_STAA is not set
504CONFIG_MTD_CFI_UTIL=y
505# CONFIG_MTD_RAM is not set
506# CONFIG_MTD_ROM is not set
507# CONFIG_MTD_ABSENT is not set
508
509#
510# Mapping drivers for chip access
511#
512CONFIG_MTD_COMPLEX_MAPPINGS=y
513CONFIG_MTD_PHYSMAP=y
514# CONFIG_MTD_PHYSMAP_COMPAT is not set
515# CONFIG_MTD_PCI is not set
516# CONFIG_MTD_INTEL_VR_NOR is not set
517# CONFIG_MTD_PLATRAM is not set
518
519#
520# Self-contained MTD device drivers
521#
522# CONFIG_MTD_PMC551 is not set
523# CONFIG_MTD_SLRAM is not set
524# CONFIG_MTD_PHRAM is not set
525# CONFIG_MTD_MTDRAM is not set
526# CONFIG_MTD_BLOCK2MTD is not set
527
528#
529# Disk-On-Chip Device Drivers
530#
531# CONFIG_MTD_DOC2000 is not set
532# CONFIG_MTD_DOC2001 is not set
533# CONFIG_MTD_DOC2001PLUS is not set
534# CONFIG_MTD_NAND is not set
535# CONFIG_MTD_ONENAND is not set
536
537#
538# LPDDR flash memory drivers
539#
540# CONFIG_MTD_LPDDR is not set
541
542#
543# UBI - Unsorted block images
544#
545# CONFIG_MTD_UBI is not set
449# CONFIG_PARPORT is not set 546# CONFIG_PARPORT is not set
450CONFIG_BLK_DEV=y 547CONFIG_BLK_DEV=y
451# CONFIG_BLK_CPQ_CISS_DA is not set 548# CONFIG_BLK_CPQ_CISS_DA is not set
@@ -477,7 +574,9 @@ CONFIG_MISC_DEVICES=y
477# 574#
478# CONFIG_EEPROM_AT24 is not set 575# CONFIG_EEPROM_AT24 is not set
479# CONFIG_EEPROM_LEGACY is not set 576# CONFIG_EEPROM_LEGACY is not set
577# CONFIG_EEPROM_MAX6875 is not set
480CONFIG_EEPROM_93CX6=y 578CONFIG_EEPROM_93CX6=y
579# CONFIG_CB710_CORE is not set
481CONFIG_HAVE_IDE=y 580CONFIG_HAVE_IDE=y
482# CONFIG_IDE is not set 581# CONFIG_IDE is not set
483 582
@@ -500,10 +599,6 @@ CONFIG_BLK_DEV_SD=y
500# CONFIG_BLK_DEV_SR is not set 599# CONFIG_BLK_DEV_SR is not set
501CONFIG_CHR_DEV_SG=m 600CONFIG_CHR_DEV_SG=m
502# CONFIG_CHR_DEV_SCH is not set 601# CONFIG_CHR_DEV_SCH is not set
503
504#
505# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
506#
507# CONFIG_SCSI_MULTI_LUN is not set 602# CONFIG_SCSI_MULTI_LUN is not set
508# CONFIG_SCSI_CONSTANTS is not set 603# CONFIG_SCSI_CONSTANTS is not set
509# CONFIG_SCSI_LOGGING is not set 604# CONFIG_SCSI_LOGGING is not set
@@ -521,6 +616,7 @@ CONFIG_SCSI_WAIT_SCAN=m
521CONFIG_SCSI_LOWLEVEL=y 616CONFIG_SCSI_LOWLEVEL=y
522# CONFIG_ISCSI_TCP is not set 617# CONFIG_ISCSI_TCP is not set
523# CONFIG_SCSI_CXGB3_ISCSI is not set 618# CONFIG_SCSI_CXGB3_ISCSI is not set
619# CONFIG_SCSI_BNX2_ISCSI is not set
524# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 620# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
525# CONFIG_SCSI_3W_9XXX is not set 621# CONFIG_SCSI_3W_9XXX is not set
526# CONFIG_SCSI_ACARD is not set 622# CONFIG_SCSI_ACARD is not set
@@ -529,6 +625,7 @@ CONFIG_SCSI_LOWLEVEL=y
529# CONFIG_SCSI_AIC7XXX_OLD is not set 625# CONFIG_SCSI_AIC7XXX_OLD is not set
530# CONFIG_SCSI_AIC79XX is not set 626# CONFIG_SCSI_AIC79XX is not set
531# CONFIG_SCSI_AIC94XX is not set 627# CONFIG_SCSI_AIC94XX is not set
628# CONFIG_SCSI_MVSAS is not set
532# CONFIG_SCSI_ARCMSR is not set 629# CONFIG_SCSI_ARCMSR is not set
533# CONFIG_MEGARAID_NEWGEN is not set 630# CONFIG_MEGARAID_NEWGEN is not set
534# CONFIG_MEGARAID_LEGACY is not set 631# CONFIG_MEGARAID_LEGACY is not set
@@ -543,7 +640,6 @@ CONFIG_SCSI_LOWLEVEL=y
543# CONFIG_SCSI_IPS is not set 640# CONFIG_SCSI_IPS is not set
544# CONFIG_SCSI_INITIO is not set 641# CONFIG_SCSI_INITIO is not set
545# CONFIG_SCSI_INIA100 is not set 642# CONFIG_SCSI_INIA100 is not set
546# CONFIG_SCSI_MVSAS is not set
547# CONFIG_SCSI_STEX is not set 643# CONFIG_SCSI_STEX is not set
548# CONFIG_SCSI_SYM53C8XX_2 is not set 644# CONFIG_SCSI_SYM53C8XX_2 is not set
549# CONFIG_SCSI_IPR is not set 645# CONFIG_SCSI_IPR is not set
@@ -632,7 +728,6 @@ CONFIG_PATA_PLATFORM=y
632# CONFIG_IEEE1394 is not set 728# CONFIG_IEEE1394 is not set
633# CONFIG_I2O is not set 729# CONFIG_I2O is not set
634CONFIG_NETDEVICES=y 730CONFIG_NETDEVICES=y
635CONFIG_COMPAT_NET_DEV_OPS=y
636# CONFIG_DUMMY is not set 731# CONFIG_DUMMY is not set
637# CONFIG_BONDING is not set 732# CONFIG_BONDING is not set
638# CONFIG_MACVLAN is not set 733# CONFIG_MACVLAN is not set
@@ -686,6 +781,7 @@ CONFIG_8139TOO_8129=y
686# CONFIG_SMSC9420 is not set 781# CONFIG_SMSC9420 is not set
687# CONFIG_SUNDANCE is not set 782# CONFIG_SUNDANCE is not set
688# CONFIG_TLAN is not set 783# CONFIG_TLAN is not set
784# CONFIG_KS8842 is not set
689CONFIG_VIA_RHINE=m 785CONFIG_VIA_RHINE=m
690CONFIG_VIA_RHINE_MMIO=y 786CONFIG_VIA_RHINE_MMIO=y
691# CONFIG_SC92031 is not set 787# CONFIG_SC92031 is not set
@@ -894,7 +990,6 @@ CONFIG_I2C_HIGHLANDER=y
894# CONFIG_SENSORS_PCF8574 is not set 990# CONFIG_SENSORS_PCF8574 is not set
895# CONFIG_PCF8575 is not set 991# CONFIG_PCF8575 is not set
896# CONFIG_SENSORS_PCA9539 is not set 992# CONFIG_SENSORS_PCA9539 is not set
897# CONFIG_SENSORS_MAX6875 is not set
898# CONFIG_SENSORS_TSL2550 is not set 993# CONFIG_SENSORS_TSL2550 is not set
899# CONFIG_I2C_DEBUG_CORE is not set 994# CONFIG_I2C_DEBUG_CORE is not set
900# CONFIG_I2C_DEBUG_ALGO is not set 995# CONFIG_I2C_DEBUG_ALGO is not set
@@ -953,6 +1048,7 @@ CONFIG_HWMON=y
953# CONFIG_SENSORS_SMSC47B397 is not set 1048# CONFIG_SENSORS_SMSC47B397 is not set
954# CONFIG_SENSORS_ADS7828 is not set 1049# CONFIG_SENSORS_ADS7828 is not set
955# CONFIG_SENSORS_THMC50 is not set 1050# CONFIG_SENSORS_THMC50 is not set
1051# CONFIG_SENSORS_TMP401 is not set
956# CONFIG_SENSORS_VIA686A is not set 1052# CONFIG_SENSORS_VIA686A is not set
957# CONFIG_SENSORS_VT1211 is not set 1053# CONFIG_SENSORS_VT1211 is not set
958# CONFIG_SENSORS_VT8231 is not set 1054# CONFIG_SENSORS_VT8231 is not set
@@ -988,22 +1084,7 @@ CONFIG_SSB_POSSIBLE=y
988# CONFIG_MFD_WM8350_I2C is not set 1084# CONFIG_MFD_WM8350_I2C is not set
989# CONFIG_MFD_PCF50633 is not set 1085# CONFIG_MFD_PCF50633 is not set
990# CONFIG_REGULATOR is not set 1086# CONFIG_REGULATOR is not set
991 1087# CONFIG_MEDIA_SUPPORT is not set
992#
993# Multimedia devices
994#
995
996#
997# Multimedia core support
998#
999# CONFIG_VIDEO_DEV is not set
1000# CONFIG_DVB_CORE is not set
1001# CONFIG_VIDEO_MEDIA is not set
1002
1003#
1004# Multimedia drivers
1005#
1006CONFIG_DAB=y
1007 1088
1008# 1089#
1009# Graphics support 1090# Graphics support
@@ -1111,9 +1192,14 @@ CONFIG_RTC_DRV_RS5C372=y
1111# on-CPU RTC drivers 1192# on-CPU RTC drivers
1112# 1193#
1113CONFIG_RTC_DRV_SH=y 1194CONFIG_RTC_DRV_SH=y
1195# CONFIG_RTC_DRV_GENERIC is not set
1114# CONFIG_DMADEVICES is not set 1196# CONFIG_DMADEVICES is not set
1115# CONFIG_AUXDISPLAY is not set 1197# CONFIG_AUXDISPLAY is not set
1116# CONFIG_UIO is not set 1198# CONFIG_UIO is not set
1199
1200#
1201# TI VLYNQ
1202#
1117# CONFIG_STAGING is not set 1203# CONFIG_STAGING is not set
1118 1204
1119# 1205#
@@ -1134,10 +1220,11 @@ CONFIG_FS_MBCACHE=y
1134# CONFIG_REISERFS_FS is not set 1220# CONFIG_REISERFS_FS is not set
1135# CONFIG_JFS_FS is not set 1221# CONFIG_JFS_FS is not set
1136CONFIG_FS_POSIX_ACL=y 1222CONFIG_FS_POSIX_ACL=y
1137CONFIG_FILE_LOCKING=y
1138# CONFIG_XFS_FS is not set 1223# CONFIG_XFS_FS is not set
1139# CONFIG_OCFS2_FS is not set 1224# CONFIG_OCFS2_FS is not set
1140# CONFIG_BTRFS_FS is not set 1225# CONFIG_BTRFS_FS is not set
1226CONFIG_FILE_LOCKING=y
1227CONFIG_FSNOTIFY=y
1141CONFIG_DNOTIFY=y 1228CONFIG_DNOTIFY=y
1142CONFIG_INOTIFY=y 1229CONFIG_INOTIFY=y
1143CONFIG_INOTIFY_USER=y 1230CONFIG_INOTIFY_USER=y
@@ -1145,6 +1232,7 @@ CONFIG_INOTIFY_USER=y
1145# CONFIG_AUTOFS_FS is not set 1232# CONFIG_AUTOFS_FS is not set
1146# CONFIG_AUTOFS4_FS is not set 1233# CONFIG_AUTOFS4_FS is not set
1147CONFIG_FUSE_FS=m 1234CONFIG_FUSE_FS=m
1235# CONFIG_CUSE is not set
1148 1236
1149# 1237#
1150# Caches 1238# Caches
@@ -1190,6 +1278,7 @@ CONFIG_MISC_FILESYSTEMS=y
1190# CONFIG_BEFS_FS is not set 1278# CONFIG_BEFS_FS is not set
1191# CONFIG_BFS_FS is not set 1279# CONFIG_BFS_FS is not set
1192# CONFIG_EFS_FS is not set 1280# CONFIG_EFS_FS is not set
1281# CONFIG_JFFS2_FS is not set
1193# CONFIG_CRAMFS is not set 1282# CONFIG_CRAMFS is not set
1194# CONFIG_SQUASHFS is not set 1283# CONFIG_SQUASHFS is not set
1195# CONFIG_VXFS_FS is not set 1284# CONFIG_VXFS_FS is not set
@@ -1328,41 +1417,40 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1328CONFIG_HAVE_DYNAMIC_FTRACE=y 1417CONFIG_HAVE_DYNAMIC_FTRACE=y
1329CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1418CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1330CONFIG_RING_BUFFER=y 1419CONFIG_RING_BUFFER=y
1420CONFIG_EVENT_TRACING=y
1421CONFIG_CONTEXT_SWITCH_TRACER=y
1331CONFIG_TRACING=y 1422CONFIG_TRACING=y
1332CONFIG_TRACING_SUPPORT=y 1423CONFIG_TRACING_SUPPORT=y
1333 1424CONFIG_FTRACE=y
1334#
1335# Tracers
1336#
1337# CONFIG_FUNCTION_TRACER is not set 1425# CONFIG_FUNCTION_TRACER is not set
1338# CONFIG_IRQSOFF_TRACER is not set 1426# CONFIG_IRQSOFF_TRACER is not set
1339# CONFIG_PREEMPT_TRACER is not set 1427# CONFIG_PREEMPT_TRACER is not set
1340# CONFIG_SCHED_TRACER is not set 1428# CONFIG_SCHED_TRACER is not set
1341# CONFIG_CONTEXT_SWITCH_TRACER is not set 1429# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1342# CONFIG_EVENT_TRACER is not set
1343# CONFIG_BOOT_TRACER is not set 1430# CONFIG_BOOT_TRACER is not set
1344# CONFIG_TRACE_BRANCH_PROFILING is not set 1431CONFIG_BRANCH_PROFILE_NONE=y
1432# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1433# CONFIG_PROFILE_ALL_BRANCHES is not set
1345# CONFIG_STACK_TRACER is not set 1434# CONFIG_STACK_TRACER is not set
1346# CONFIG_KMEMTRACE is not set 1435# CONFIG_KMEMTRACE is not set
1347# CONFIG_WORKQUEUE_TRACER is not set 1436# CONFIG_WORKQUEUE_TRACER is not set
1348# CONFIG_BLK_DEV_IO_TRACE is not set 1437# CONFIG_BLK_DEV_IO_TRACE is not set
1349# CONFIG_FTRACE_STARTUP_TEST is not set 1438# CONFIG_RING_BUFFER_BENCHMARK is not set
1350# CONFIG_DYNAMIC_DEBUG is not set 1439# CONFIG_DYNAMIC_DEBUG is not set
1351# CONFIG_DMA_API_DEBUG is not set 1440# CONFIG_DMA_API_DEBUG is not set
1352# CONFIG_SAMPLES is not set 1441# CONFIG_SAMPLES is not set
1353CONFIG_HAVE_ARCH_KGDB=y 1442CONFIG_HAVE_ARCH_KGDB=y
1354# CONFIG_KGDB is not set 1443# CONFIG_KGDB is not set
1355CONFIG_SH_STANDARD_BIOS=y 1444# CONFIG_SH_STANDARD_BIOS is not set
1356# CONFIG_EARLY_SCIF_CONSOLE is not set 1445CONFIG_EARLY_SCIF_CONSOLE=y
1357CONFIG_EARLY_PRINTK=y 1446CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1447# CONFIG_EARLY_PRINTK is not set
1358# CONFIG_DEBUG_BOOTMEM is not set 1448# CONFIG_DEBUG_BOOTMEM is not set
1359CONFIG_DEBUG_STACKOVERFLOW=y 1449CONFIG_DEBUG_STACKOVERFLOW=y
1360# CONFIG_DEBUG_STACK_USAGE is not set 1450# CONFIG_DEBUG_STACK_USAGE is not set
1361# CONFIG_4KSTACKS is not set 1451# CONFIG_4KSTACKS is not set
1362# CONFIG_IRQSTACKS is not set
1363CONFIG_DUMP_CODE=y 1452CONFIG_DUMP_CODE=y
1364# CONFIG_SH_NO_BSS_INIT is not set 1453# CONFIG_SH_NO_BSS_INIT is not set
1365# CONFIG_MORE_COMPILE_OPTIONS is not set
1366 1454
1367# 1455#
1368# Security options 1456# Security options
@@ -1486,3 +1574,4 @@ CONFIG_HAS_IOMEM=y
1486CONFIG_HAS_IOPORT=y 1574CONFIG_HAS_IOPORT=y
1487CONFIG_HAS_DMA=y 1575CONFIG_HAS_DMA=y
1488CONFIG_NLATTR=y 1576CONFIG_NLATTR=y
1577CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/r7785rp_defconfig b/arch/sh/configs/r7785rp_defconfig
index 82658f67239..8a3dc300db4 100644
--- a/arch/sh/configs/r7785rp_defconfig
+++ b/arch/sh/configs/r7785rp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:55:10 2009 4# Thu Jun 18 12:37:20 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -21,6 +21,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_NUMA=y 22CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_SYS_SUPPORTS_PCI=y 23CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
26CONFIG_HAVE_LATENCYTOP_SUPPORT=y 27CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -80,7 +81,6 @@ CONFIG_UID16=y
80CONFIG_KALLSYMS=y 81CONFIG_KALLSYMS=y
81CONFIG_KALLSYMS_ALL=y 82CONFIG_KALLSYMS_ALL=y
82# CONFIG_KALLSYMS_EXTRA_PASS is not set 83# CONFIG_KALLSYMS_EXTRA_PASS is not set
83# CONFIG_STRIP_ASM_SYMS is not set
84CONFIG_HOTPLUG=y 84CONFIG_HOTPLUG=y
85CONFIG_PRINTK=y 85CONFIG_PRINTK=y
86CONFIG_BUG=y 86CONFIG_BUG=y
@@ -93,15 +93,20 @@ CONFIG_TIMERFD=y
93CONFIG_EVENTFD=y 93CONFIG_EVENTFD=y
94CONFIG_SHMEM=y 94CONFIG_SHMEM=y
95CONFIG_AIO=y 95CONFIG_AIO=y
96
97#
98# Performance Counters
99#
96CONFIG_VM_EVENT_COUNTERS=y 100CONFIG_VM_EVENT_COUNTERS=y
97CONFIG_PCI_QUIRKS=y 101CONFIG_PCI_QUIRKS=y
102# CONFIG_STRIP_ASM_SYMS is not set
98CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
99CONFIG_SLAB=y 104CONFIG_SLAB=y
100# CONFIG_SLUB is not set 105# CONFIG_SLUB is not set
101# CONFIG_SLOB is not set 106# CONFIG_SLOB is not set
102CONFIG_PROFILING=y 107CONFIG_PROFILING=y
103CONFIG_TRACEPOINTS=y 108CONFIG_TRACEPOINTS=y
104# CONFIG_MARKERS is not set 109CONFIG_MARKERS=y
105CONFIG_OPROFILE=y 110CONFIG_OPROFILE=y
106CONFIG_HAVE_OPROFILE=y 111CONFIG_HAVE_OPROFILE=y
107CONFIG_KPROBES=y 112CONFIG_KPROBES=y
@@ -189,6 +194,7 @@ CONFIG_CPU_SUBTYPE_SH7785=y
189CONFIG_QUICKLIST=y 194CONFIG_QUICKLIST=y
190CONFIG_MMU=y 195CONFIG_MMU=y
191CONFIG_PAGE_OFFSET=0x80000000 196CONFIG_PAGE_OFFSET=0x80000000
197CONFIG_FORCE_MAX_ZONEORDER=11
192CONFIG_MEMORY_START=0x08000000 198CONFIG_MEMORY_START=0x08000000
193CONFIG_MEMORY_SIZE=0x08000000 199CONFIG_MEMORY_SIZE=0x08000000
194# CONFIG_29BIT is not set 200# CONFIG_29BIT is not set
@@ -211,7 +217,6 @@ CONFIG_PAGE_SIZE_4KB=y
211# CONFIG_PAGE_SIZE_8KB is not set 217# CONFIG_PAGE_SIZE_8KB is not set
212# CONFIG_PAGE_SIZE_16KB is not set 218# CONFIG_PAGE_SIZE_16KB is not set
213# CONFIG_PAGE_SIZE_64KB is not set 219# CONFIG_PAGE_SIZE_64KB is not set
214CONFIG_ENTRY_OFFSET=0x00001000
215# CONFIG_HUGETLB_PAGE_SIZE_64K is not set 220# CONFIG_HUGETLB_PAGE_SIZE_64K is not set
216# CONFIG_HUGETLB_PAGE_SIZE_256K is not set 221# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
217CONFIG_HUGETLB_PAGE_SIZE_1MB=y 222CONFIG_HUGETLB_PAGE_SIZE_1MB=y
@@ -232,9 +237,9 @@ CONFIG_MIGRATION=y
232# CONFIG_PHYS_ADDR_T_64BIT is not set 237# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=0 238CONFIG_ZONE_DMA_FLAG=0
234CONFIG_NR_QUICK=2 239CONFIG_NR_QUICK=2
235CONFIG_UNEVICTABLE_LRU=y
236CONFIG_HAVE_MLOCK=y 240CONFIG_HAVE_MLOCK=y
237CONFIG_HAVE_MLOCKED_PAGE_BIT=y 241CONFIG_HAVE_MLOCKED_PAGE_BIT=y
242CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
238 243
239# 244#
240# Cache configuration 245# Cache configuration
@@ -252,7 +257,6 @@ CONFIG_SH_FPU=y
252CONFIG_SH_STORE_QUEUES=y 257CONFIG_SH_STORE_QUEUES=y
253CONFIG_CPU_HAS_INTEVT=y 258CONFIG_CPU_HAS_INTEVT=y
254CONFIG_CPU_HAS_SR_RB=y 259CONFIG_CPU_HAS_SR_RB=y
255CONFIG_CPU_HAS_PTEA=y
256CONFIG_CPU_HAS_FPU=y 260CONFIG_CPU_HAS_FPU=y
257 261
258# 262#
@@ -267,9 +271,9 @@ CONFIG_SH_R7785RP=y
267# 271#
268# Timer and clock configuration 272# Timer and clock configuration
269# 273#
270CONFIG_SH_TMU=y 274CONFIG_SH_TIMER_TMU=y
271CONFIG_SH_TIMER_IRQ=28
272CONFIG_SH_PCLK_FREQ=33333333 275CONFIG_SH_PCLK_FREQ=33333333
276CONFIG_SH_CLK_CPG=y
273CONFIG_TICK_ONESHOT=y 277CONFIG_TICK_ONESHOT=y
274CONFIG_NO_HZ=y 278CONFIG_NO_HZ=y
275CONFIG_HIGH_RES_TIMERS=y 279CONFIG_HIGH_RES_TIMERS=y
@@ -326,12 +330,14 @@ CONFIG_KEXEC=y
326# CONFIG_PREEMPT_VOLUNTARY is not set 330# CONFIG_PREEMPT_VOLUNTARY is not set
327CONFIG_PREEMPT=y 331CONFIG_PREEMPT=y
328CONFIG_GUSA=y 332CONFIG_GUSA=y
333# CONFIG_SPARSE_IRQ is not set
329 334
330# 335#
331# Boot options 336# Boot options
332# 337#
333CONFIG_ZERO_PAGE_OFFSET=0x00001000 338CONFIG_ZERO_PAGE_OFFSET=0x00001000
334CONFIG_BOOT_LINK_OFFSET=0x00800000 339CONFIG_BOOT_LINK_OFFSET=0x00800000
340CONFIG_ENTRY_OFFSET=0x00001000
335CONFIG_CMDLINE_BOOL=y 341CONFIG_CMDLINE_BOOL=y
336CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1" 342CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
337 343
@@ -429,6 +435,7 @@ CONFIG_LLC=m
429# CONFIG_ECONET is not set 435# CONFIG_ECONET is not set
430# CONFIG_WAN_ROUTER is not set 436# CONFIG_WAN_ROUTER is not set
431# CONFIG_PHONET is not set 437# CONFIG_PHONET is not set
438# CONFIG_IEEE802154 is not set
432# CONFIG_NET_SCHED is not set 439# CONFIG_NET_SCHED is not set
433# CONFIG_DCB is not set 440# CONFIG_DCB is not set
434 441
@@ -449,7 +456,11 @@ CONFIG_WIRELESS=y
449CONFIG_WIRELESS_EXT=y 456CONFIG_WIRELESS_EXT=y
450CONFIG_WIRELESS_EXT_SYSFS=y 457CONFIG_WIRELESS_EXT_SYSFS=y
451# CONFIG_LIB80211 is not set 458# CONFIG_LIB80211 is not set
452# CONFIG_MAC80211 is not set 459
460#
461# CFG80211 needs to be enabled for MAC80211
462#
463CONFIG_MAC80211_DEFAULT_PS_VALUE=0
453# CONFIG_WIMAX is not set 464# CONFIG_WIMAX is not set
454# CONFIG_RFKILL is not set 465# CONFIG_RFKILL is not set
455# CONFIG_NET_9P is not set 466# CONFIG_NET_9P is not set
@@ -503,7 +514,9 @@ CONFIG_MISC_DEVICES=y
503# 514#
504# CONFIG_EEPROM_AT24 is not set 515# CONFIG_EEPROM_AT24 is not set
505# CONFIG_EEPROM_LEGACY is not set 516# CONFIG_EEPROM_LEGACY is not set
517# CONFIG_EEPROM_MAX6875 is not set
506CONFIG_EEPROM_93CX6=y 518CONFIG_EEPROM_93CX6=y
519# CONFIG_CB710_CORE is not set
507CONFIG_HAVE_IDE=y 520CONFIG_HAVE_IDE=y
508# CONFIG_IDE is not set 521# CONFIG_IDE is not set
509 522
@@ -526,10 +539,6 @@ CONFIG_BLK_DEV_SD=y
526# CONFIG_BLK_DEV_SR is not set 539# CONFIG_BLK_DEV_SR is not set
527CONFIG_CHR_DEV_SG=m 540CONFIG_CHR_DEV_SG=m
528# CONFIG_CHR_DEV_SCH is not set 541# CONFIG_CHR_DEV_SCH is not set
529
530#
531# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
532#
533# CONFIG_SCSI_MULTI_LUN is not set 542# CONFIG_SCSI_MULTI_LUN is not set
534# CONFIG_SCSI_CONSTANTS is not set 543# CONFIG_SCSI_CONSTANTS is not set
535# CONFIG_SCSI_LOGGING is not set 544# CONFIG_SCSI_LOGGING is not set
@@ -547,6 +556,7 @@ CONFIG_SCSI_WAIT_SCAN=m
547CONFIG_SCSI_LOWLEVEL=y 556CONFIG_SCSI_LOWLEVEL=y
548# CONFIG_ISCSI_TCP is not set 557# CONFIG_ISCSI_TCP is not set
549# CONFIG_SCSI_CXGB3_ISCSI is not set 558# CONFIG_SCSI_CXGB3_ISCSI is not set
559# CONFIG_SCSI_BNX2_ISCSI is not set
550# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 560# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
551# CONFIG_SCSI_3W_9XXX is not set 561# CONFIG_SCSI_3W_9XXX is not set
552# CONFIG_SCSI_ACARD is not set 562# CONFIG_SCSI_ACARD is not set
@@ -555,6 +565,7 @@ CONFIG_SCSI_LOWLEVEL=y
555# CONFIG_SCSI_AIC7XXX_OLD is not set 565# CONFIG_SCSI_AIC7XXX_OLD is not set
556# CONFIG_SCSI_AIC79XX is not set 566# CONFIG_SCSI_AIC79XX is not set
557# CONFIG_SCSI_AIC94XX is not set 567# CONFIG_SCSI_AIC94XX is not set
568# CONFIG_SCSI_MVSAS is not set
558# CONFIG_SCSI_ARCMSR is not set 569# CONFIG_SCSI_ARCMSR is not set
559# CONFIG_MEGARAID_NEWGEN is not set 570# CONFIG_MEGARAID_NEWGEN is not set
560# CONFIG_MEGARAID_LEGACY is not set 571# CONFIG_MEGARAID_LEGACY is not set
@@ -569,7 +580,6 @@ CONFIG_SCSI_LOWLEVEL=y
569# CONFIG_SCSI_IPS is not set 580# CONFIG_SCSI_IPS is not set
570# CONFIG_SCSI_INITIO is not set 581# CONFIG_SCSI_INITIO is not set
571# CONFIG_SCSI_INIA100 is not set 582# CONFIG_SCSI_INIA100 is not set
572# CONFIG_SCSI_MVSAS is not set
573# CONFIG_SCSI_STEX is not set 583# CONFIG_SCSI_STEX is not set
574# CONFIG_SCSI_SYM53C8XX_2 is not set 584# CONFIG_SCSI_SYM53C8XX_2 is not set
575# CONFIG_SCSI_IPR is not set 585# CONFIG_SCSI_IPR is not set
@@ -658,7 +668,6 @@ CONFIG_PATA_PLATFORM=y
658# CONFIG_IEEE1394 is not set 668# CONFIG_IEEE1394 is not set
659# CONFIG_I2O is not set 669# CONFIG_I2O is not set
660CONFIG_NETDEVICES=y 670CONFIG_NETDEVICES=y
661CONFIG_COMPAT_NET_DEV_OPS=y
662# CONFIG_DUMMY is not set 671# CONFIG_DUMMY is not set
663# CONFIG_BONDING is not set 672# CONFIG_BONDING is not set
664# CONFIG_MACVLAN is not set 673# CONFIG_MACVLAN is not set
@@ -692,6 +701,7 @@ CONFIG_AX88796_93CX6=y
692# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 701# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
693# CONFIG_NET_PCI is not set 702# CONFIG_NET_PCI is not set
694# CONFIG_B44 is not set 703# CONFIG_B44 is not set
704# CONFIG_KS8842 is not set
695# CONFIG_ATL2 is not set 705# CONFIG_ATL2 is not set
696CONFIG_NETDEV_1000=y 706CONFIG_NETDEV_1000=y
697# CONFIG_ACENIC is not set 707# CONFIG_ACENIC is not set
@@ -899,7 +909,6 @@ CONFIG_I2C_HIGHLANDER=y
899# CONFIG_SENSORS_PCF8574 is not set 909# CONFIG_SENSORS_PCF8574 is not set
900# CONFIG_PCF8575 is not set 910# CONFIG_PCF8575 is not set
901# CONFIG_SENSORS_PCA9539 is not set 911# CONFIG_SENSORS_PCA9539 is not set
902# CONFIG_SENSORS_MAX6875 is not set
903# CONFIG_SENSORS_TSL2550 is not set 912# CONFIG_SENSORS_TSL2550 is not set
904# CONFIG_I2C_DEBUG_CORE is not set 913# CONFIG_I2C_DEBUG_CORE is not set
905# CONFIG_I2C_DEBUG_ALGO is not set 914# CONFIG_I2C_DEBUG_ALGO is not set
@@ -983,6 +992,7 @@ CONFIG_HWMON=y
983# CONFIG_SENSORS_SMSC47B397 is not set 992# CONFIG_SENSORS_SMSC47B397 is not set
984# CONFIG_SENSORS_ADS7828 is not set 993# CONFIG_SENSORS_ADS7828 is not set
985# CONFIG_SENSORS_THMC50 is not set 994# CONFIG_SENSORS_THMC50 is not set
995# CONFIG_SENSORS_TMP401 is not set
986# CONFIG_SENSORS_VIA686A is not set 996# CONFIG_SENSORS_VIA686A is not set
987# CONFIG_SENSORS_VT1211 is not set 997# CONFIG_SENSORS_VT1211 is not set
988# CONFIG_SENSORS_VT8231 is not set 998# CONFIG_SENSORS_VT8231 is not set
@@ -1019,22 +1029,7 @@ CONFIG_SSB_POSSIBLE=y
1019# CONFIG_MFD_WM8350_I2C is not set 1029# CONFIG_MFD_WM8350_I2C is not set
1020# CONFIG_MFD_PCF50633 is not set 1030# CONFIG_MFD_PCF50633 is not set
1021# CONFIG_REGULATOR is not set 1031# CONFIG_REGULATOR is not set
1022 1032# CONFIG_MEDIA_SUPPORT is not set
1023#
1024# Multimedia devices
1025#
1026
1027#
1028# Multimedia core support
1029#
1030# CONFIG_VIDEO_DEV is not set
1031# CONFIG_DVB_CORE is not set
1032# CONFIG_VIDEO_MEDIA is not set
1033
1034#
1035# Multimedia drivers
1036#
1037# CONFIG_DAB is not set
1038 1033
1039# 1034#
1040# Graphics support 1035# Graphics support
@@ -1195,9 +1190,14 @@ CONFIG_RTC_DRV_RS5C372=y
1195# on-CPU RTC drivers 1190# on-CPU RTC drivers
1196# 1191#
1197CONFIG_RTC_DRV_SH=y 1192CONFIG_RTC_DRV_SH=y
1193# CONFIG_RTC_DRV_GENERIC is not set
1198# CONFIG_DMADEVICES is not set 1194# CONFIG_DMADEVICES is not set
1199# CONFIG_AUXDISPLAY is not set 1195# CONFIG_AUXDISPLAY is not set
1200# CONFIG_UIO is not set 1196# CONFIG_UIO is not set
1197
1198#
1199# TI VLYNQ
1200#
1201# CONFIG_STAGING is not set 1201# CONFIG_STAGING is not set
1202 1202
1203# 1203#
@@ -1218,10 +1218,11 @@ CONFIG_FS_MBCACHE=y
1218# CONFIG_REISERFS_FS is not set 1218# CONFIG_REISERFS_FS is not set
1219# CONFIG_JFS_FS is not set 1219# CONFIG_JFS_FS is not set
1220CONFIG_FS_POSIX_ACL=y 1220CONFIG_FS_POSIX_ACL=y
1221CONFIG_FILE_LOCKING=y
1222# CONFIG_XFS_FS is not set 1221# CONFIG_XFS_FS is not set
1223# CONFIG_OCFS2_FS is not set 1222# CONFIG_OCFS2_FS is not set
1224# CONFIG_BTRFS_FS is not set 1223# CONFIG_BTRFS_FS is not set
1224CONFIG_FILE_LOCKING=y
1225CONFIG_FSNOTIFY=y
1225CONFIG_DNOTIFY=y 1226CONFIG_DNOTIFY=y
1226CONFIG_INOTIFY=y 1227CONFIG_INOTIFY=y
1227CONFIG_INOTIFY_USER=y 1228CONFIG_INOTIFY_USER=y
@@ -1229,6 +1230,7 @@ CONFIG_INOTIFY_USER=y
1229# CONFIG_AUTOFS_FS is not set 1230# CONFIG_AUTOFS_FS is not set
1230# CONFIG_AUTOFS4_FS is not set 1231# CONFIG_AUTOFS4_FS is not set
1231CONFIG_FUSE_FS=m 1232CONFIG_FUSE_FS=m
1233# CONFIG_CUSE is not set
1232 1234
1233# 1235#
1234# Caches 1236# Caches
@@ -1413,25 +1415,25 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1413CONFIG_HAVE_DYNAMIC_FTRACE=y 1415CONFIG_HAVE_DYNAMIC_FTRACE=y
1414CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1416CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1415CONFIG_RING_BUFFER=y 1417CONFIG_RING_BUFFER=y
1418CONFIG_EVENT_TRACING=y
1419CONFIG_CONTEXT_SWITCH_TRACER=y
1416CONFIG_TRACING=y 1420CONFIG_TRACING=y
1417CONFIG_TRACING_SUPPORT=y 1421CONFIG_TRACING_SUPPORT=y
1418 1422CONFIG_FTRACE=y
1419#
1420# Tracers
1421#
1422# CONFIG_FUNCTION_TRACER is not set 1423# CONFIG_FUNCTION_TRACER is not set
1423# CONFIG_IRQSOFF_TRACER is not set 1424# CONFIG_IRQSOFF_TRACER is not set
1424# CONFIG_PREEMPT_TRACER is not set 1425# CONFIG_PREEMPT_TRACER is not set
1425# CONFIG_SCHED_TRACER is not set 1426# CONFIG_SCHED_TRACER is not set
1426# CONFIG_CONTEXT_SWITCH_TRACER is not set 1427# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1427# CONFIG_EVENT_TRACER is not set
1428# CONFIG_BOOT_TRACER is not set 1428# CONFIG_BOOT_TRACER is not set
1429# CONFIG_TRACE_BRANCH_PROFILING is not set 1429CONFIG_BRANCH_PROFILE_NONE=y
1430# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1431# CONFIG_PROFILE_ALL_BRANCHES is not set
1430# CONFIG_STACK_TRACER is not set 1432# CONFIG_STACK_TRACER is not set
1431# CONFIG_KMEMTRACE is not set 1433# CONFIG_KMEMTRACE is not set
1432# CONFIG_WORKQUEUE_TRACER is not set 1434# CONFIG_WORKQUEUE_TRACER is not set
1433# CONFIG_BLK_DEV_IO_TRACE is not set 1435# CONFIG_BLK_DEV_IO_TRACE is not set
1434# CONFIG_FTRACE_STARTUP_TEST is not set 1436# CONFIG_RING_BUFFER_BENCHMARK is not set
1435# CONFIG_DYNAMIC_DEBUG is not set 1437# CONFIG_DYNAMIC_DEBUG is not set
1436# CONFIG_DMA_API_DEBUG is not set 1438# CONFIG_DMA_API_DEBUG is not set
1437# CONFIG_SAMPLES is not set 1439# CONFIG_SAMPLES is not set
@@ -1444,10 +1446,8 @@ CONFIG_EARLY_PRINTK=y
1444CONFIG_DEBUG_STACKOVERFLOW=y 1446CONFIG_DEBUG_STACKOVERFLOW=y
1445CONFIG_DEBUG_STACK_USAGE=y 1447CONFIG_DEBUG_STACK_USAGE=y
1446CONFIG_4KSTACKS=y 1448CONFIG_4KSTACKS=y
1447# CONFIG_IRQSTACKS is not set
1448CONFIG_DUMP_CODE=y 1449CONFIG_DUMP_CODE=y
1449# CONFIG_SH_NO_BSS_INIT is not set 1450# CONFIG_SH_NO_BSS_INIT is not set
1450# CONFIG_MORE_COMPILE_OPTIONS is not set
1451 1451
1452# 1452#
1453# Security options 1453# Security options
@@ -1572,3 +1572,4 @@ CONFIG_HAS_IOMEM=y
1572CONFIG_HAS_IOPORT=y 1572CONFIG_HAS_IOPORT=y
1573CONFIG_HAS_DMA=y 1573CONFIG_HAS_DMA=y
1574CONFIG_NLATTR=y 1574CONFIG_NLATTR=y
1575CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/rsk7201_defconfig b/arch/sh/configs/rsk7201_defconfig
index fa4395768d1..55c3656a75c 100644
--- a/arch/sh/configs/rsk7201_defconfig
+++ b/arch/sh/configs/rsk7201_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:56:29 2009 4# Thu Jun 18 12:39:54 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,10 +15,11 @@ CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_IRQ_PROBE=y 16CONFIG_GENERIC_IRQ_PROBE=y
17# CONFIG_GENERIC_GPIO is not set 17# CONFIG_GENERIC_GPIO is not set
18# CONFIG_GENERIC_TIME is not set 18CONFIG_GENERIC_TIME=y
19# CONFIG_GENERIC_CLOCKEVENTS is not set 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set 21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
22CONFIG_SYS_SUPPORTS_MTU2=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -74,7 +75,6 @@ CONFIG_UID16=y
74CONFIG_SYSCTL_SYSCALL=y 75CONFIG_SYSCTL_SYSCALL=y
75CONFIG_KALLSYMS=y 76CONFIG_KALLSYMS=y
76# CONFIG_KALLSYMS_EXTRA_PASS is not set 77# CONFIG_KALLSYMS_EXTRA_PASS is not set
77# CONFIG_STRIP_ASM_SYMS is not set
78CONFIG_HOTPLUG=y 78CONFIG_HOTPLUG=y
79CONFIG_PRINTK=y 79CONFIG_PRINTK=y
80CONFIG_BUG=y 80CONFIG_BUG=y
@@ -86,14 +86,19 @@ CONFIG_SIGNALFD=y
86CONFIG_TIMERFD=y 86CONFIG_TIMERFD=y
87CONFIG_EVENTFD=y 87CONFIG_EVENTFD=y
88# CONFIG_AIO is not set 88# CONFIG_AIO is not set
89
90#
91# Performance Counters
92#
89CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
94# CONFIG_STRIP_ASM_SYMS is not set
90CONFIG_COMPAT_BRK=y 95CONFIG_COMPAT_BRK=y
91# CONFIG_SLAB is not set 96# CONFIG_SLAB is not set
92# CONFIG_SLUB is not set 97# CONFIG_SLUB is not set
93CONFIG_SLOB=y 98CONFIG_SLOB=y
94CONFIG_PROFILING=y 99CONFIG_PROFILING=y
95CONFIG_TRACEPOINTS=y 100CONFIG_TRACEPOINTS=y
96# CONFIG_MARKERS is not set 101CONFIG_MARKERS=y
97CONFIG_OPROFILE=y 102CONFIG_OPROFILE=y
98CONFIG_HAVE_OPROFILE=y 103CONFIG_HAVE_OPROFILE=y
99# CONFIG_KPROBES is not set 104# CONFIG_KPROBES is not set
@@ -175,6 +180,7 @@ CONFIG_CPU_SUBTYPE_SH7201=y
175# 180#
176CONFIG_QUICKLIST=y 181CONFIG_QUICKLIST=y
177CONFIG_PAGE_OFFSET=0x00000000 182CONFIG_PAGE_OFFSET=0x00000000
183CONFIG_FORCE_MAX_ZONEORDER=14
178CONFIG_MEMORY_START=0x08000000 184CONFIG_MEMORY_START=0x08000000
179CONFIG_MEMORY_SIZE=0x01000000 185CONFIG_MEMORY_SIZE=0x01000000
180CONFIG_29BIT=y 186CONFIG_29BIT=y
@@ -188,7 +194,6 @@ CONFIG_PAGE_SIZE_4KB=y
188# CONFIG_PAGE_SIZE_8KB is not set 194# CONFIG_PAGE_SIZE_8KB is not set
189# CONFIG_PAGE_SIZE_16KB is not set 195# CONFIG_PAGE_SIZE_16KB is not set
190# CONFIG_PAGE_SIZE_64KB is not set 196# CONFIG_PAGE_SIZE_64KB is not set
191CONFIG_ENTRY_OFFSET=0x00001000
192CONFIG_SELECT_MEMORY_MODEL=y 197CONFIG_SELECT_MEMORY_MODEL=y
193CONFIG_FLATMEM_MANUAL=y 198CONFIG_FLATMEM_MANUAL=y
194# CONFIG_DISCONTIGMEM_MANUAL is not set 199# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -201,7 +206,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
201# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
202CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
203CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
204CONFIG_UNEVICTABLE_LRU=y 209CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
210CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
205 211
206# 212#
207# Cache configuration 213# Cache configuration
@@ -228,10 +234,14 @@ CONFIG_SH_RSK7201=y
228# 234#
229# Timer and clock configuration 235# Timer and clock configuration
230# 236#
231CONFIG_SH_MTU2=y 237CONFIG_SH_TIMER_MTU2=y
232CONFIG_SH_TIMER_IRQ=16
233CONFIG_SH_PCLK_FREQ=40000000 238CONFIG_SH_PCLK_FREQ=40000000
239CONFIG_SH_CLK_CPG=y
240CONFIG_SH_CLK_CPG_LEGACY=y
234CONFIG_SH_CLK_MD=0 241CONFIG_SH_CLK_MD=0
242# CONFIG_NO_HZ is not set
243# CONFIG_HIGH_RES_TIMERS is not set
244CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
235 245
236# 246#
237# CPU Frequency scaling 247# CPU Frequency scaling
@@ -267,12 +277,14 @@ CONFIG_PREEMPT_NONE=y
267# CONFIG_PREEMPT_VOLUNTARY is not set 277# CONFIG_PREEMPT_VOLUNTARY is not set
268# CONFIG_PREEMPT is not set 278# CONFIG_PREEMPT is not set
269CONFIG_GUSA=y 279CONFIG_GUSA=y
280# CONFIG_SPARSE_IRQ is not set
270 281
271# 282#
272# Boot options 283# Boot options
273# 284#
274CONFIG_ZERO_PAGE_OFFSET=0x00001000 285CONFIG_ZERO_PAGE_OFFSET=0x00001000
275CONFIG_BOOT_LINK_OFFSET=0x00800000 286CONFIG_BOOT_LINK_OFFSET=0x00800000
287CONFIG_ENTRY_OFFSET=0x00001000
276CONFIG_CMDLINE_BOOL=y 288CONFIG_CMDLINE_BOOL=y
277CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ignore_loglevel" 289CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ignore_loglevel"
278 290
@@ -506,21 +518,7 @@ CONFIG_SSB_POSSIBLE=y
506# CONFIG_HTC_PASIC3 is not set 518# CONFIG_HTC_PASIC3 is not set
507# CONFIG_MFD_TMIO is not set 519# CONFIG_MFD_TMIO is not set
508# CONFIG_REGULATOR is not set 520# CONFIG_REGULATOR is not set
509 521# CONFIG_MEDIA_SUPPORT is not set
510#
511# Multimedia devices
512#
513
514#
515# Multimedia core support
516#
517# CONFIG_VIDEO_DEV is not set
518# CONFIG_VIDEO_MEDIA is not set
519
520#
521# Multimedia drivers
522#
523CONFIG_DAB=y
524 522
525# 523#
526# Graphics support 524# Graphics support
@@ -578,9 +576,14 @@ CONFIG_RTC_INTF_DEV=y
578# on-CPU RTC drivers 576# on-CPU RTC drivers
579# 577#
580CONFIG_RTC_DRV_SH=y 578CONFIG_RTC_DRV_SH=y
579# CONFIG_RTC_DRV_GENERIC is not set
581# CONFIG_DMADEVICES is not set 580# CONFIG_DMADEVICES is not set
582# CONFIG_AUXDISPLAY is not set 581# CONFIG_AUXDISPLAY is not set
583# CONFIG_UIO is not set 582# CONFIG_UIO is not set
583
584#
585# TI VLYNQ
586#
584# CONFIG_STAGING is not set 587# CONFIG_STAGING is not set
585 588
586# 589#
@@ -593,11 +596,13 @@ CONFIG_EXT2_FS=y
593# CONFIG_REISERFS_FS is not set 596# CONFIG_REISERFS_FS is not set
594# CONFIG_JFS_FS is not set 597# CONFIG_JFS_FS is not set
595# CONFIG_FS_POSIX_ACL is not set 598# CONFIG_FS_POSIX_ACL is not set
596# CONFIG_FILE_LOCKING is not set
597# CONFIG_XFS_FS is not set 599# CONFIG_XFS_FS is not set
598# CONFIG_BTRFS_FS is not set 600# CONFIG_BTRFS_FS is not set
601# CONFIG_FILE_LOCKING is not set
602CONFIG_FSNOTIFY=y
599# CONFIG_DNOTIFY is not set 603# CONFIG_DNOTIFY is not set
600# CONFIG_INOTIFY is not set 604# CONFIG_INOTIFY is not set
605CONFIG_INOTIFY_USER=y
601# CONFIG_QUOTA is not set 606# CONFIG_QUOTA is not set
602# CONFIG_AUTOFS_FS is not set 607# CONFIG_AUTOFS_FS is not set
603# CONFIG_AUTOFS4_FS is not set 608# CONFIG_AUTOFS4_FS is not set
@@ -696,30 +701,17 @@ CONFIG_HAVE_FUNCTION_TRACER=y
696CONFIG_HAVE_DYNAMIC_FTRACE=y 701CONFIG_HAVE_DYNAMIC_FTRACE=y
697CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 702CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
698CONFIG_RING_BUFFER=y 703CONFIG_RING_BUFFER=y
704CONFIG_EVENT_TRACING=y
705CONFIG_CONTEXT_SWITCH_TRACER=y
699CONFIG_TRACING=y 706CONFIG_TRACING=y
700CONFIG_TRACING_SUPPORT=y 707CONFIG_TRACING_SUPPORT=y
701 708# CONFIG_FTRACE is not set
702#
703# Tracers
704#
705# CONFIG_FUNCTION_TRACER is not set
706# CONFIG_SCHED_TRACER is not set
707# CONFIG_CONTEXT_SWITCH_TRACER is not set
708# CONFIG_EVENT_TRACER is not set
709# CONFIG_BOOT_TRACER is not set
710# CONFIG_TRACE_BRANCH_PROFILING is not set
711# CONFIG_STACK_TRACER is not set
712# CONFIG_KMEMTRACE is not set
713# CONFIG_WORKQUEUE_TRACER is not set
714# CONFIG_BLK_DEV_IO_TRACE is not set
715# CONFIG_FTRACE_STARTUP_TEST is not set
716# CONFIG_DYNAMIC_DEBUG is not set 709# CONFIG_DYNAMIC_DEBUG is not set
717# CONFIG_DMA_API_DEBUG is not set 710# CONFIG_DMA_API_DEBUG is not set
718# CONFIG_SAMPLES is not set 711# CONFIG_SAMPLES is not set
719CONFIG_HAVE_ARCH_KGDB=y 712CONFIG_HAVE_ARCH_KGDB=y
720# CONFIG_SH_STANDARD_BIOS is not set 713# CONFIG_SH_STANDARD_BIOS is not set
721# CONFIG_EARLY_SCIF_CONSOLE is not set 714# CONFIG_EARLY_SCIF_CONSOLE is not set
722# CONFIG_MORE_COMPILE_OPTIONS is not set
723 715
724# 716#
725# Security options 717# Security options
@@ -749,3 +741,4 @@ CONFIG_DECOMPRESS_GZIP=y
749CONFIG_HAS_IOMEM=y 741CONFIG_HAS_IOMEM=y
750CONFIG_HAS_IOPORT=y 742CONFIG_HAS_IOPORT=y
751CONFIG_HAS_DMA=y 743CONFIG_HAS_DMA=y
744CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/rsk7203_defconfig b/arch/sh/configs/rsk7203_defconfig
index e3a65f819f0..69e619967b7 100644
--- a/arch/sh/configs/rsk7203_defconfig
+++ b/arch/sh/configs/rsk7203_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:57:06 2009 4# Thu Jun 18 12:40:44 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,11 +15,12 @@ CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_IRQ_PROBE=y 16CONFIG_GENERIC_IRQ_PROBE=y
17CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
18# CONFIG_GENERIC_TIME is not set 18CONFIG_GENERIC_TIME=y
19# CONFIG_GENERIC_CLOCKEVENTS is not set 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set 21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
22CONFIG_SYS_SUPPORTS_CMT=y 22CONFIG_SYS_SUPPORTS_CMT=y
23CONFIG_SYS_SUPPORTS_MTU2=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -81,7 +82,6 @@ CONFIG_SYSCTL_SYSCALL=y
81CONFIG_KALLSYMS=y 82CONFIG_KALLSYMS=y
82CONFIG_KALLSYMS_ALL=y 83CONFIG_KALLSYMS_ALL=y
83# CONFIG_KALLSYMS_EXTRA_PASS is not set 84# CONFIG_KALLSYMS_EXTRA_PASS is not set
84# CONFIG_STRIP_ASM_SYMS is not set
85CONFIG_HOTPLUG=y 85CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 86CONFIG_PRINTK=y
87CONFIG_BUG=y 87CONFIG_BUG=y
@@ -93,14 +93,19 @@ CONFIG_SIGNALFD=y
93CONFIG_TIMERFD=y 93CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 94CONFIG_EVENTFD=y
95CONFIG_AIO=y 95CONFIG_AIO=y
96
97#
98# Performance Counters
99#
96CONFIG_VM_EVENT_COUNTERS=y 100CONFIG_VM_EVENT_COUNTERS=y
101# CONFIG_STRIP_ASM_SYMS is not set
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98# CONFIG_SLAB is not set 103# CONFIG_SLAB is not set
99# CONFIG_SLUB is not set 104# CONFIG_SLUB is not set
100CONFIG_SLOB=y 105CONFIG_SLOB=y
101CONFIG_PROFILING=y 106CONFIG_PROFILING=y
102CONFIG_TRACEPOINTS=y 107CONFIG_TRACEPOINTS=y
103# CONFIG_MARKERS is not set 108CONFIG_MARKERS=y
104CONFIG_OPROFILE=y 109CONFIG_OPROFILE=y
105CONFIG_HAVE_OPROFILE=y 110CONFIG_HAVE_OPROFILE=y
106# CONFIG_KPROBES is not set 111# CONFIG_KPROBES is not set
@@ -182,6 +187,7 @@ CONFIG_CPU_SUBTYPE_SH7203=y
182# 187#
183CONFIG_QUICKLIST=y 188CONFIG_QUICKLIST=y
184CONFIG_PAGE_OFFSET=0x00000000 189CONFIG_PAGE_OFFSET=0x00000000
190CONFIG_FORCE_MAX_ZONEORDER=14
185CONFIG_MEMORY_START=0x0c000000 191CONFIG_MEMORY_START=0x0c000000
186CONFIG_MEMORY_SIZE=0x01000000 192CONFIG_MEMORY_SIZE=0x01000000
187CONFIG_29BIT=y 193CONFIG_29BIT=y
@@ -195,7 +201,6 @@ CONFIG_PAGE_SIZE_4KB=y
195# CONFIG_PAGE_SIZE_8KB is not set 201# CONFIG_PAGE_SIZE_8KB is not set
196# CONFIG_PAGE_SIZE_16KB is not set 202# CONFIG_PAGE_SIZE_16KB is not set
197# CONFIG_PAGE_SIZE_64KB is not set 203# CONFIG_PAGE_SIZE_64KB is not set
198CONFIG_ENTRY_OFFSET=0x00001000
199CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
200CONFIG_FLATMEM_MANUAL=y 205CONFIG_FLATMEM_MANUAL=y
201# CONFIG_DISCONTIGMEM_MANUAL is not set 206# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -208,7 +213,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
208# CONFIG_PHYS_ADDR_T_64BIT is not set 213# CONFIG_PHYS_ADDR_T_64BIT is not set
209CONFIG_ZONE_DMA_FLAG=0 214CONFIG_ZONE_DMA_FLAG=0
210CONFIG_NR_QUICK=2 215CONFIG_NR_QUICK=2
211CONFIG_UNEVICTABLE_LRU=y 216CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
217CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
212 218
213# 219#
214# Cache configuration 220# Cache configuration
@@ -235,11 +241,15 @@ CONFIG_SH_RSK7203=y
235# 241#
236# Timer and clock configuration 242# Timer and clock configuration
237# 243#
238CONFIG_SH_CMT=y 244CONFIG_SH_TIMER_CMT=y
239# CONFIG_SH_MTU2 is not set 245CONFIG_SH_TIMER_MTU2=y
240CONFIG_SH_TIMER_IRQ=142
241CONFIG_SH_PCLK_FREQ=16670800 246CONFIG_SH_PCLK_FREQ=16670800
247CONFIG_SH_CLK_CPG=y
248CONFIG_SH_CLK_CPG_LEGACY=y
242CONFIG_SH_CLK_MD=0 249CONFIG_SH_CLK_MD=0
250# CONFIG_NO_HZ is not set
251# CONFIG_HIGH_RES_TIMERS is not set
252CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
243 253
244# 254#
245# CPU Frequency scaling 255# CPU Frequency scaling
@@ -290,12 +300,14 @@ CONFIG_PREEMPT_NONE=y
290# CONFIG_PREEMPT_VOLUNTARY is not set 300# CONFIG_PREEMPT_VOLUNTARY is not set
291# CONFIG_PREEMPT is not set 301# CONFIG_PREEMPT is not set
292CONFIG_GUSA=y 302CONFIG_GUSA=y
303# CONFIG_SPARSE_IRQ is not set
293 304
294# 305#
295# Boot options 306# Boot options
296# 307#
297CONFIG_ZERO_PAGE_OFFSET=0x00001000 308CONFIG_ZERO_PAGE_OFFSET=0x00001000
298CONFIG_BOOT_LINK_OFFSET=0x00800000 309CONFIG_BOOT_LINK_OFFSET=0x00800000
310CONFIG_ENTRY_OFFSET=0x00001000
299CONFIG_CMDLINE_BOOL=y 311CONFIG_CMDLINE_BOOL=y
300CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ignore_loglevel" 312CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ignore_loglevel"
301 313
@@ -375,6 +387,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
375# CONFIG_ECONET is not set 387# CONFIG_ECONET is not set
376# CONFIG_WAN_ROUTER is not set 388# CONFIG_WAN_ROUTER is not set
377# CONFIG_PHONET is not set 389# CONFIG_PHONET is not set
390# CONFIG_IEEE802154 is not set
378# CONFIG_NET_SCHED is not set 391# CONFIG_NET_SCHED is not set
379# CONFIG_DCB is not set 392# CONFIG_DCB is not set
380 393
@@ -393,7 +406,11 @@ CONFIG_WIRELESS=y
393# CONFIG_WIRELESS_OLD_REGULATORY is not set 406# CONFIG_WIRELESS_OLD_REGULATORY is not set
394# CONFIG_WIRELESS_EXT is not set 407# CONFIG_WIRELESS_EXT is not set
395# CONFIG_LIB80211 is not set 408# CONFIG_LIB80211 is not set
396# CONFIG_MAC80211 is not set 409
410#
411# CFG80211 needs to be enabled for MAC80211
412#
413CONFIG_MAC80211_DEFAULT_PS_VALUE=0
397# CONFIG_WIMAX is not set 414# CONFIG_WIMAX is not set
398# CONFIG_RFKILL is not set 415# CONFIG_RFKILL is not set
399# CONFIG_NET_9P is not set 416# CONFIG_NET_9P is not set
@@ -528,7 +545,6 @@ CONFIG_HAVE_IDE=y
528# CONFIG_ATA is not set 545# CONFIG_ATA is not set
529# CONFIG_MD is not set 546# CONFIG_MD is not set
530CONFIG_NETDEVICES=y 547CONFIG_NETDEVICES=y
531CONFIG_COMPAT_NET_DEV_OPS=y
532# CONFIG_DUMMY is not set 548# CONFIG_DUMMY is not set
533# CONFIG_BONDING is not set 549# CONFIG_BONDING is not set
534# CONFIG_MACVLAN is not set 550# CONFIG_MACVLAN is not set
@@ -572,6 +588,7 @@ CONFIG_SMSC911X=y
572# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 588# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
573# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 589# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
574# CONFIG_B44 is not set 590# CONFIG_B44 is not set
591# CONFIG_KS8842 is not set
575# CONFIG_NETDEV_1000 is not set 592# CONFIG_NETDEV_1000 is not set
576# CONFIG_NETDEV_10000 is not set 593# CONFIG_NETDEV_10000 is not set
577 594
@@ -705,24 +722,9 @@ CONFIG_REGULATOR=y
705# CONFIG_REGULATOR_DEBUG is not set 722# CONFIG_REGULATOR_DEBUG is not set
706# CONFIG_REGULATOR_FIXED_VOLTAGE is not set 723# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
707# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set 724# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
725# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
708# CONFIG_REGULATOR_BQ24022 is not set 726# CONFIG_REGULATOR_BQ24022 is not set
709 727# CONFIG_MEDIA_SUPPORT is not set
710#
711# Multimedia devices
712#
713
714#
715# Multimedia core support
716#
717# CONFIG_VIDEO_DEV is not set
718# CONFIG_DVB_CORE is not set
719# CONFIG_VIDEO_MEDIA is not set
720
721#
722# Multimedia drivers
723#
724CONFIG_DAB=y
725# CONFIG_USB_DABUSB is not set
726 728
727# 729#
728# Graphics support 730# Graphics support
@@ -758,7 +760,7 @@ CONFIG_HID_BELKIN=y
758CONFIG_HID_CHERRY=y 760CONFIG_HID_CHERRY=y
759CONFIG_HID_CHICONY=y 761CONFIG_HID_CHICONY=y
760CONFIG_HID_CYPRESS=y 762CONFIG_HID_CYPRESS=y
761# CONFIG_DRAGONRISE_FF is not set 763# CONFIG_HID_DRAGONRISE is not set
762CONFIG_HID_EZKEY=y 764CONFIG_HID_EZKEY=y
763# CONFIG_HID_KYE is not set 765# CONFIG_HID_KYE is not set
764CONFIG_HID_GYRATION=y 766CONFIG_HID_GYRATION=y
@@ -775,10 +777,11 @@ CONFIG_HID_PETALYNX=y
775CONFIG_HID_SAMSUNG=y 777CONFIG_HID_SAMSUNG=y
776CONFIG_HID_SONY=y 778CONFIG_HID_SONY=y
777CONFIG_HID_SUNPLUS=y 779CONFIG_HID_SUNPLUS=y
778# CONFIG_GREENASIA_FF is not set 780# CONFIG_HID_GREENASIA is not set
781# CONFIG_HID_SMARTJOYPLUS is not set
779# CONFIG_HID_TOPSEED is not set 782# CONFIG_HID_TOPSEED is not set
780CONFIG_THRUSTMASTER_FF=m 783# CONFIG_HID_THRUSTMASTER is not set
781CONFIG_ZEROPLUS_FF=m 784# CONFIG_HID_ZEROPLUS is not set
782CONFIG_USB_SUPPORT=y 785CONFIG_USB_SUPPORT=y
783CONFIG_USB_ARCH_HAS_HCD=y 786CONFIG_USB_ARCH_HAS_HCD=y
784# CONFIG_USB_ARCH_HAS_OHCI is not set 787# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -931,9 +934,14 @@ CONFIG_RTC_INTF_DEV=y
931# on-CPU RTC drivers 934# on-CPU RTC drivers
932# 935#
933CONFIG_RTC_DRV_SH=y 936CONFIG_RTC_DRV_SH=y
937# CONFIG_RTC_DRV_GENERIC is not set
934# CONFIG_DMADEVICES is not set 938# CONFIG_DMADEVICES is not set
935# CONFIG_AUXDISPLAY is not set 939# CONFIG_AUXDISPLAY is not set
936# CONFIG_UIO is not set 940# CONFIG_UIO is not set
941
942#
943# TI VLYNQ
944#
937# CONFIG_STAGING is not set 945# CONFIG_STAGING is not set
938 946
939# 947#
@@ -945,12 +953,14 @@ CONFIG_RTC_DRV_SH=y
945# CONFIG_REISERFS_FS is not set 953# CONFIG_REISERFS_FS is not set
946# CONFIG_JFS_FS is not set 954# CONFIG_JFS_FS is not set
947# CONFIG_FS_POSIX_ACL is not set 955# CONFIG_FS_POSIX_ACL is not set
948CONFIG_FILE_LOCKING=y
949# CONFIG_XFS_FS is not set 956# CONFIG_XFS_FS is not set
950# CONFIG_OCFS2_FS is not set 957# CONFIG_OCFS2_FS is not set
951# CONFIG_BTRFS_FS is not set 958# CONFIG_BTRFS_FS is not set
959CONFIG_FILE_LOCKING=y
960CONFIG_FSNOTIFY=y
952# CONFIG_DNOTIFY is not set 961# CONFIG_DNOTIFY is not set
953# CONFIG_INOTIFY is not set 962# CONFIG_INOTIFY is not set
963CONFIG_INOTIFY_USER=y
954# CONFIG_QUOTA is not set 964# CONFIG_QUOTA is not set
955# CONFIG_AUTOFS_FS is not set 965# CONFIG_AUTOFS_FS is not set
956# CONFIG_AUTOFS4_FS is not set 966# CONFIG_AUTOFS4_FS is not set
@@ -1029,7 +1039,46 @@ CONFIG_SUNRPC=y
1029# 1039#
1030# CONFIG_PARTITION_ADVANCED is not set 1040# CONFIG_PARTITION_ADVANCED is not set
1031CONFIG_MSDOS_PARTITION=y 1041CONFIG_MSDOS_PARTITION=y
1032# CONFIG_NLS is not set 1042CONFIG_NLS=y
1043CONFIG_NLS_DEFAULT="iso8859-1"
1044# CONFIG_NLS_CODEPAGE_437 is not set
1045# CONFIG_NLS_CODEPAGE_737 is not set
1046# CONFIG_NLS_CODEPAGE_775 is not set
1047# CONFIG_NLS_CODEPAGE_850 is not set
1048# CONFIG_NLS_CODEPAGE_852 is not set
1049# CONFIG_NLS_CODEPAGE_855 is not set
1050# CONFIG_NLS_CODEPAGE_857 is not set
1051# CONFIG_NLS_CODEPAGE_860 is not set
1052# CONFIG_NLS_CODEPAGE_861 is not set
1053# CONFIG_NLS_CODEPAGE_862 is not set
1054# CONFIG_NLS_CODEPAGE_863 is not set
1055# CONFIG_NLS_CODEPAGE_864 is not set
1056# CONFIG_NLS_CODEPAGE_865 is not set
1057# CONFIG_NLS_CODEPAGE_866 is not set
1058# CONFIG_NLS_CODEPAGE_869 is not set
1059# CONFIG_NLS_CODEPAGE_936 is not set
1060# CONFIG_NLS_CODEPAGE_950 is not set
1061# CONFIG_NLS_CODEPAGE_932 is not set
1062# CONFIG_NLS_CODEPAGE_949 is not set
1063# CONFIG_NLS_CODEPAGE_874 is not set
1064# CONFIG_NLS_ISO8859_8 is not set
1065# CONFIG_NLS_CODEPAGE_1250 is not set
1066# CONFIG_NLS_CODEPAGE_1251 is not set
1067# CONFIG_NLS_ASCII is not set
1068# CONFIG_NLS_ISO8859_1 is not set
1069# CONFIG_NLS_ISO8859_2 is not set
1070# CONFIG_NLS_ISO8859_3 is not set
1071# CONFIG_NLS_ISO8859_4 is not set
1072# CONFIG_NLS_ISO8859_5 is not set
1073# CONFIG_NLS_ISO8859_6 is not set
1074# CONFIG_NLS_ISO8859_7 is not set
1075# CONFIG_NLS_ISO8859_9 is not set
1076# CONFIG_NLS_ISO8859_13 is not set
1077# CONFIG_NLS_ISO8859_14 is not set
1078# CONFIG_NLS_ISO8859_15 is not set
1079# CONFIG_NLS_KOI8_R is not set
1080# CONFIG_NLS_KOI8_U is not set
1081# CONFIG_NLS_UTF8 is not set
1033# CONFIG_DLM is not set 1082# CONFIG_DLM is not set
1034 1083
1035# 1084#
@@ -1094,23 +1143,24 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1094CONFIG_HAVE_DYNAMIC_FTRACE=y 1143CONFIG_HAVE_DYNAMIC_FTRACE=y
1095CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1144CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1096CONFIG_RING_BUFFER=y 1145CONFIG_RING_BUFFER=y
1146CONFIG_EVENT_TRACING=y
1147CONFIG_CONTEXT_SWITCH_TRACER=y
1097CONFIG_TRACING=y 1148CONFIG_TRACING=y
1098CONFIG_TRACING_SUPPORT=y 1149CONFIG_TRACING_SUPPORT=y
1099 1150CONFIG_FTRACE=y
1100#
1101# Tracers
1102#
1103# CONFIG_FUNCTION_TRACER is not set 1151# CONFIG_FUNCTION_TRACER is not set
1152# CONFIG_IRQSOFF_TRACER is not set
1104# CONFIG_SCHED_TRACER is not set 1153# CONFIG_SCHED_TRACER is not set
1105# CONFIG_CONTEXT_SWITCH_TRACER is not set 1154# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1106# CONFIG_EVENT_TRACER is not set
1107# CONFIG_BOOT_TRACER is not set 1155# CONFIG_BOOT_TRACER is not set
1108# CONFIG_TRACE_BRANCH_PROFILING is not set 1156CONFIG_BRANCH_PROFILE_NONE=y
1157# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1158# CONFIG_PROFILE_ALL_BRANCHES is not set
1109# CONFIG_STACK_TRACER is not set 1159# CONFIG_STACK_TRACER is not set
1110# CONFIG_KMEMTRACE is not set 1160# CONFIG_KMEMTRACE is not set
1111# CONFIG_WORKQUEUE_TRACER is not set 1161# CONFIG_WORKQUEUE_TRACER is not set
1112# CONFIG_BLK_DEV_IO_TRACE is not set 1162# CONFIG_BLK_DEV_IO_TRACE is not set
1113# CONFIG_FTRACE_STARTUP_TEST is not set 1163# CONFIG_RING_BUFFER_BENCHMARK is not set
1114# CONFIG_DYNAMIC_DEBUG is not set 1164# CONFIG_DYNAMIC_DEBUG is not set
1115# CONFIG_DMA_API_DEBUG is not set 1165# CONFIG_DMA_API_DEBUG is not set
1116# CONFIG_SAMPLES is not set 1166# CONFIG_SAMPLES is not set
@@ -1123,10 +1173,8 @@ CONFIG_EARLY_PRINTK=y
1123CONFIG_DEBUG_BOOTMEM=y 1173CONFIG_DEBUG_BOOTMEM=y
1124CONFIG_DEBUG_STACKOVERFLOW=y 1174CONFIG_DEBUG_STACKOVERFLOW=y
1125CONFIG_DEBUG_STACK_USAGE=y 1175CONFIG_DEBUG_STACK_USAGE=y
1126# CONFIG_IRQSTACKS is not set
1127CONFIG_DUMP_CODE=y 1176CONFIG_DUMP_CODE=y
1128# CONFIG_SH_NO_BSS_INIT is not set 1177# CONFIG_SH_NO_BSS_INIT is not set
1129# CONFIG_MORE_COMPILE_OPTIONS is not set
1130 1178
1131# 1179#
1132# Security options 1180# Security options
@@ -1156,3 +1204,4 @@ CONFIG_HAS_IOMEM=y
1156CONFIG_HAS_IOPORT=y 1204CONFIG_HAS_IOPORT=y
1157CONFIG_HAS_DMA=y 1205CONFIG_HAS_DMA=y
1158CONFIG_NLATTR=y 1206CONFIG_NLATTR=y
1207CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/rts7751r2d1_defconfig b/arch/sh/configs/rts7751r2d1_defconfig
index a4a59f6205a..c6e9b1c0fa3 100644
--- a/arch/sh/configs/rts7751r2d1_defconfig
+++ b/arch/sh/configs/rts7751r2d1_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:58:13 2009 4# Thu Jun 18 12:42:26 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -71,7 +72,6 @@ CONFIG_UID16=y
71# CONFIG_SYSCTL_SYSCALL is not set 72# CONFIG_SYSCTL_SYSCALL is not set
72CONFIG_KALLSYMS=y 73CONFIG_KALLSYMS=y
73# CONFIG_KALLSYMS_EXTRA_PASS is not set 74# CONFIG_KALLSYMS_EXTRA_PASS is not set
74# CONFIG_STRIP_ASM_SYMS is not set
75CONFIG_HOTPLUG=y 75CONFIG_HOTPLUG=y
76CONFIG_PRINTK=y 76CONFIG_PRINTK=y
77CONFIG_BUG=y 77CONFIG_BUG=y
@@ -84,15 +84,20 @@ CONFIG_TIMERFD=y
84CONFIG_EVENTFD=y 84CONFIG_EVENTFD=y
85CONFIG_SHMEM=y 85CONFIG_SHMEM=y
86CONFIG_AIO=y 86CONFIG_AIO=y
87
88#
89# Performance Counters
90#
87CONFIG_VM_EVENT_COUNTERS=y 91CONFIG_VM_EVENT_COUNTERS=y
88CONFIG_PCI_QUIRKS=y 92CONFIG_PCI_QUIRKS=y
93# CONFIG_STRIP_ASM_SYMS is not set
89CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
90CONFIG_SLAB=y 95CONFIG_SLAB=y
91# CONFIG_SLUB is not set 96# CONFIG_SLUB is not set
92# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
93CONFIG_PROFILING=y 98CONFIG_PROFILING=y
94CONFIG_TRACEPOINTS=y 99CONFIG_TRACEPOINTS=y
95# CONFIG_MARKERS is not set 100CONFIG_MARKERS=y
96CONFIG_OPROFILE=y 101CONFIG_OPROFILE=y
97CONFIG_HAVE_OPROFILE=y 102CONFIG_HAVE_OPROFILE=y
98# CONFIG_KPROBES is not set 103# CONFIG_KPROBES is not set
@@ -176,6 +181,7 @@ CONFIG_CPU_SUBTYPE_SH7751R=y
176CONFIG_QUICKLIST=y 181CONFIG_QUICKLIST=y
177CONFIG_MMU=y 182CONFIG_MMU=y
178CONFIG_PAGE_OFFSET=0x80000000 183CONFIG_PAGE_OFFSET=0x80000000
184CONFIG_FORCE_MAX_ZONEORDER=11
179CONFIG_MEMORY_START=0x0c000000 185CONFIG_MEMORY_START=0x0c000000
180CONFIG_MEMORY_SIZE=0x04000000 186CONFIG_MEMORY_SIZE=0x04000000
181CONFIG_29BIT=y 187CONFIG_29BIT=y
@@ -190,7 +196,6 @@ CONFIG_PAGE_SIZE_4KB=y
190# CONFIG_PAGE_SIZE_8KB is not set 196# CONFIG_PAGE_SIZE_8KB is not set
191# CONFIG_PAGE_SIZE_16KB is not set 197# CONFIG_PAGE_SIZE_16KB is not set
192# CONFIG_PAGE_SIZE_64KB is not set 198# CONFIG_PAGE_SIZE_64KB is not set
193CONFIG_ENTRY_OFFSET=0x00001000
194CONFIG_SELECT_MEMORY_MODEL=y 199CONFIG_SELECT_MEMORY_MODEL=y
195CONFIG_FLATMEM_MANUAL=y 200CONFIG_FLATMEM_MANUAL=y
196# CONFIG_DISCONTIGMEM_MANUAL is not set 201# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -203,9 +208,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
203# CONFIG_PHYS_ADDR_T_64BIT is not set 208# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 209CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 210CONFIG_NR_QUICK=2
206CONFIG_UNEVICTABLE_LRU=y
207CONFIG_HAVE_MLOCK=y 211CONFIG_HAVE_MLOCK=y
208CONFIG_HAVE_MLOCKED_PAGE_BIT=y 212CONFIG_HAVE_MLOCKED_PAGE_BIT=y
213CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
209 214
210# 215#
211# Cache configuration 216# Cache configuration
@@ -223,7 +228,6 @@ CONFIG_SH_FPU=y
223# CONFIG_SH_STORE_QUEUES is not set 228# CONFIG_SH_STORE_QUEUES is not set
224CONFIG_CPU_HAS_INTEVT=y 229CONFIG_CPU_HAS_INTEVT=y
225CONFIG_CPU_HAS_SR_RB=y 230CONFIG_CPU_HAS_SR_RB=y
226CONFIG_CPU_HAS_PTEA=y
227CONFIG_CPU_HAS_FPU=y 231CONFIG_CPU_HAS_FPU=y
228 232
229# 233#
@@ -245,9 +249,10 @@ CONFIG_RTS7751R2D_1=y
245# 249#
246# Timer and clock configuration 250# Timer and clock configuration
247# 251#
248CONFIG_SH_TMU=y 252CONFIG_SH_TIMER_TMU=y
249CONFIG_SH_TIMER_IRQ=16
250CONFIG_SH_PCLK_FREQ=60000000 253CONFIG_SH_PCLK_FREQ=60000000
254CONFIG_SH_CLK_CPG=y
255CONFIG_SH_CLK_CPG_LEGACY=y
251# CONFIG_NO_HZ is not set 256# CONFIG_NO_HZ is not set
252# CONFIG_HIGH_RES_TIMERS is not set 257# CONFIG_HIGH_RES_TIMERS is not set
253CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 258CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -289,12 +294,14 @@ CONFIG_PREEMPT_NONE=y
289# CONFIG_PREEMPT is not set 294# CONFIG_PREEMPT is not set
290CONFIG_GUSA=y 295CONFIG_GUSA=y
291# CONFIG_GUSA_RB is not set 296# CONFIG_GUSA_RB is not set
297# CONFIG_SPARSE_IRQ is not set
292 298
293# 299#
294# Boot options 300# Boot options
295# 301#
296CONFIG_ZERO_PAGE_OFFSET=0x00010000 302CONFIG_ZERO_PAGE_OFFSET=0x00010000
297CONFIG_BOOT_LINK_OFFSET=0x00800000 303CONFIG_BOOT_LINK_OFFSET=0x00800000
304CONFIG_ENTRY_OFFSET=0x00001000
298# CONFIG_UBC_WAKEUP is not set 305# CONFIG_UBC_WAKEUP is not set
299CONFIG_CMDLINE_BOOL=y 306CONFIG_CMDLINE_BOOL=y
300CONFIG_CMDLINE="console=tty0 console=ttySC0,115200 root=/dev/sda1 earlyprintk=serial" 307CONFIG_CMDLINE="console=tty0 console=ttySC0,115200 root=/dev/sda1 earlyprintk=serial"
@@ -385,6 +392,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
385# CONFIG_ECONET is not set 392# CONFIG_ECONET is not set
386# CONFIG_WAN_ROUTER is not set 393# CONFIG_WAN_ROUTER is not set
387# CONFIG_PHONET is not set 394# CONFIG_PHONET is not set
395# CONFIG_IEEE802154 is not set
388# CONFIG_NET_SCHED is not set 396# CONFIG_NET_SCHED is not set
389# CONFIG_DCB is not set 397# CONFIG_DCB is not set
390 398
@@ -404,7 +412,11 @@ CONFIG_WIRELESS=y
404CONFIG_WIRELESS_EXT=y 412CONFIG_WIRELESS_EXT=y
405CONFIG_WIRELESS_EXT_SYSFS=y 413CONFIG_WIRELESS_EXT_SYSFS=y
406# CONFIG_LIB80211 is not set 414# CONFIG_LIB80211 is not set
407# CONFIG_MAC80211 is not set 415
416#
417# CFG80211 needs to be enabled for MAC80211
418#
419CONFIG_MAC80211_DEFAULT_PS_VALUE=0
408# CONFIG_WIMAX is not set 420# CONFIG_WIMAX is not set
409# CONFIG_RFKILL is not set 421# CONFIG_RFKILL is not set
410# CONFIG_NET_9P is not set 422# CONFIG_NET_9P is not set
@@ -455,6 +467,7 @@ CONFIG_MISC_DEVICES=y
455# 467#
456# CONFIG_EEPROM_AT25 is not set 468# CONFIG_EEPROM_AT25 is not set
457# CONFIG_EEPROM_93CX6 is not set 469# CONFIG_EEPROM_93CX6 is not set
470# CONFIG_CB710_CORE is not set
458CONFIG_HAVE_IDE=y 471CONFIG_HAVE_IDE=y
459# CONFIG_IDE is not set 472# CONFIG_IDE is not set
460 473
@@ -477,10 +490,6 @@ CONFIG_BLK_DEV_SD=y
477# CONFIG_BLK_DEV_SR is not set 490# CONFIG_BLK_DEV_SR is not set
478# CONFIG_CHR_DEV_SG is not set 491# CONFIG_CHR_DEV_SG is not set
479# CONFIG_CHR_DEV_SCH is not set 492# CONFIG_CHR_DEV_SCH is not set
480
481#
482# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
483#
484# CONFIG_SCSI_MULTI_LUN is not set 493# CONFIG_SCSI_MULTI_LUN is not set
485# CONFIG_SCSI_CONSTANTS is not set 494# CONFIG_SCSI_CONSTANTS is not set
486# CONFIG_SCSI_LOGGING is not set 495# CONFIG_SCSI_LOGGING is not set
@@ -498,6 +507,7 @@ CONFIG_SCSI_WAIT_SCAN=m
498CONFIG_SCSI_LOWLEVEL=y 507CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_ISCSI_TCP is not set 508# CONFIG_ISCSI_TCP is not set
500# CONFIG_SCSI_CXGB3_ISCSI is not set 509# CONFIG_SCSI_CXGB3_ISCSI is not set
510# CONFIG_SCSI_BNX2_ISCSI is not set
501# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 511# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
502# CONFIG_SCSI_3W_9XXX is not set 512# CONFIG_SCSI_3W_9XXX is not set
503# CONFIG_SCSI_ACARD is not set 513# CONFIG_SCSI_ACARD is not set
@@ -506,6 +516,7 @@ CONFIG_SCSI_LOWLEVEL=y
506# CONFIG_SCSI_AIC7XXX_OLD is not set 516# CONFIG_SCSI_AIC7XXX_OLD is not set
507# CONFIG_SCSI_AIC79XX is not set 517# CONFIG_SCSI_AIC79XX is not set
508# CONFIG_SCSI_AIC94XX is not set 518# CONFIG_SCSI_AIC94XX is not set
519# CONFIG_SCSI_MVSAS is not set
509# CONFIG_SCSI_ARCMSR is not set 520# CONFIG_SCSI_ARCMSR is not set
510# CONFIG_MEGARAID_NEWGEN is not set 521# CONFIG_MEGARAID_NEWGEN is not set
511# CONFIG_MEGARAID_LEGACY is not set 522# CONFIG_MEGARAID_LEGACY is not set
@@ -520,7 +531,6 @@ CONFIG_SCSI_LOWLEVEL=y
520# CONFIG_SCSI_IPS is not set 531# CONFIG_SCSI_IPS is not set
521# CONFIG_SCSI_INITIO is not set 532# CONFIG_SCSI_INITIO is not set
522# CONFIG_SCSI_INIA100 is not set 533# CONFIG_SCSI_INIA100 is not set
523# CONFIG_SCSI_MVSAS is not set
524# CONFIG_SCSI_STEX is not set 534# CONFIG_SCSI_STEX is not set
525# CONFIG_SCSI_SYM53C8XX_2 is not set 535# CONFIG_SCSI_SYM53C8XX_2 is not set
526# CONFIG_SCSI_IPR is not set 536# CONFIG_SCSI_IPR is not set
@@ -609,7 +619,6 @@ CONFIG_PATA_PLATFORM=y
609# CONFIG_IEEE1394 is not set 619# CONFIG_IEEE1394 is not set
610# CONFIG_I2O is not set 620# CONFIG_I2O is not set
611CONFIG_NETDEVICES=y 621CONFIG_NETDEVICES=y
612CONFIG_COMPAT_NET_DEV_OPS=y
613# CONFIG_DUMMY is not set 622# CONFIG_DUMMY is not set
614# CONFIG_BONDING is not set 623# CONFIG_BONDING is not set
615# CONFIG_MACVLAN is not set 624# CONFIG_MACVLAN is not set
@@ -663,6 +672,7 @@ CONFIG_8139TOO=y
663# CONFIG_SMSC9420 is not set 672# CONFIG_SMSC9420 is not set
664# CONFIG_SUNDANCE is not set 673# CONFIG_SUNDANCE is not set
665# CONFIG_TLAN is not set 674# CONFIG_TLAN is not set
675# CONFIG_KS8842 is not set
666# CONFIG_VIA_RHINE is not set 676# CONFIG_VIA_RHINE is not set
667# CONFIG_SC92031 is not set 677# CONFIG_SC92031 is not set
668# CONFIG_ATL2 is not set 678# CONFIG_ATL2 is not set
@@ -871,23 +881,7 @@ CONFIG_MFD_SM501=y
871# CONFIG_HTC_PASIC3 is not set 881# CONFIG_HTC_PASIC3 is not set
872# CONFIG_MFD_TMIO is not set 882# CONFIG_MFD_TMIO is not set
873# CONFIG_REGULATOR is not set 883# CONFIG_REGULATOR is not set
874 884# CONFIG_MEDIA_SUPPORT is not set
875#
876# Multimedia devices
877#
878
879#
880# Multimedia core support
881#
882# CONFIG_VIDEO_DEV is not set
883# CONFIG_DVB_CORE is not set
884# CONFIG_VIDEO_MEDIA is not set
885
886#
887# Multimedia drivers
888#
889CONFIG_DAB=y
890# CONFIG_USB_DABUSB is not set
891 885
892# 886#
893# Graphics support 887# Graphics support
@@ -989,6 +983,11 @@ CONFIG_SND_VERBOSE_PROCFS=y
989# CONFIG_SND_VERBOSE_PRINTK is not set 983# CONFIG_SND_VERBOSE_PRINTK is not set
990# CONFIG_SND_DEBUG is not set 984# CONFIG_SND_DEBUG is not set
991CONFIG_SND_VMASTER=y 985CONFIG_SND_VMASTER=y
986# CONFIG_SND_RAWMIDI_SEQ is not set
987# CONFIG_SND_OPL3_LIB_SEQ is not set
988# CONFIG_SND_OPL4_LIB_SEQ is not set
989# CONFIG_SND_SBAWE_SEQ is not set
990# CONFIG_SND_EMU10K1_SEQ is not set
992CONFIG_SND_MPU401_UART=m 991CONFIG_SND_MPU401_UART=m
993CONFIG_SND_OPL3_LIB=m 992CONFIG_SND_OPL3_LIB=m
994CONFIG_SND_AC97_CODEC=m 993CONFIG_SND_AC97_CODEC=m
@@ -1015,6 +1014,7 @@ CONFIG_SND_PCI=y
1015# CONFIG_SND_OXYGEN is not set 1014# CONFIG_SND_OXYGEN is not set
1016# CONFIG_SND_CS4281 is not set 1015# CONFIG_SND_CS4281 is not set
1017# CONFIG_SND_CS46XX is not set 1016# CONFIG_SND_CS46XX is not set
1017# CONFIG_SND_CTXFI is not set
1018# CONFIG_SND_DARLA20 is not set 1018# CONFIG_SND_DARLA20 is not set
1019# CONFIG_SND_GINA20 is not set 1019# CONFIG_SND_GINA20 is not set
1020# CONFIG_SND_LAYLA20 is not set 1020# CONFIG_SND_LAYLA20 is not set
@@ -1045,6 +1045,7 @@ CONFIG_SND_PCI=y
1045# CONFIG_SND_INTEL8X0 is not set 1045# CONFIG_SND_INTEL8X0 is not set
1046# CONFIG_SND_INTEL8X0M is not set 1046# CONFIG_SND_INTEL8X0M is not set
1047# CONFIG_SND_KORG1212 is not set 1047# CONFIG_SND_KORG1212 is not set
1048# CONFIG_SND_LX6464ES is not set
1048# CONFIG_SND_MAESTRO3 is not set 1049# CONFIG_SND_MAESTRO3 is not set
1049# CONFIG_SND_MIXART is not set 1050# CONFIG_SND_MIXART is not set
1050# CONFIG_SND_NM256 is not set 1051# CONFIG_SND_NM256 is not set
@@ -1089,7 +1090,7 @@ CONFIG_HID_BELKIN=y
1089CONFIG_HID_CHERRY=y 1090CONFIG_HID_CHERRY=y
1090CONFIG_HID_CHICONY=y 1091CONFIG_HID_CHICONY=y
1091CONFIG_HID_CYPRESS=y 1092CONFIG_HID_CYPRESS=y
1092# CONFIG_DRAGONRISE_FF is not set 1093# CONFIG_HID_DRAGONRISE is not set
1093CONFIG_HID_EZKEY=y 1094CONFIG_HID_EZKEY=y
1094# CONFIG_HID_KYE is not set 1095# CONFIG_HID_KYE is not set
1095CONFIG_HID_GYRATION=y 1096CONFIG_HID_GYRATION=y
@@ -1106,10 +1107,11 @@ CONFIG_HID_PETALYNX=y
1106CONFIG_HID_SAMSUNG=y 1107CONFIG_HID_SAMSUNG=y
1107CONFIG_HID_SONY=y 1108CONFIG_HID_SONY=y
1108CONFIG_HID_SUNPLUS=y 1109CONFIG_HID_SUNPLUS=y
1109# CONFIG_GREENASIA_FF is not set 1110# CONFIG_HID_GREENASIA is not set
1111# CONFIG_HID_SMARTJOYPLUS is not set
1110# CONFIG_HID_TOPSEED is not set 1112# CONFIG_HID_TOPSEED is not set
1111CONFIG_THRUSTMASTER_FF=m 1113# CONFIG_HID_THRUSTMASTER is not set
1112CONFIG_ZEROPLUS_FF=m 1114# CONFIG_HID_ZEROPLUS is not set
1113CONFIG_USB_SUPPORT=y 1115CONFIG_USB_SUPPORT=y
1114CONFIG_USB_ARCH_HAS_HCD=y 1116CONFIG_USB_ARCH_HAS_HCD=y
1115CONFIG_USB_ARCH_HAS_OHCI=y 1117CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1135,6 +1137,7 @@ CONFIG_USB_DEVICE_CLASS=y
1135# USB Host Controller Drivers 1137# USB Host Controller Drivers
1136# 1138#
1137# CONFIG_USB_C67X00_HCD is not set 1139# CONFIG_USB_C67X00_HCD is not set
1140# CONFIG_USB_XHCI_HCD is not set
1138# CONFIG_USB_EHCI_HCD is not set 1141# CONFIG_USB_EHCI_HCD is not set
1139# CONFIG_USB_OXU210HP_HCD is not set 1142# CONFIG_USB_OXU210HP_HCD is not set
1140# CONFIG_USB_ISP116X_HCD is not set 1143# CONFIG_USB_ISP116X_HCD is not set
@@ -1268,9 +1271,14 @@ CONFIG_RTC_DRV_R9701=y
1268# on-CPU RTC drivers 1271# on-CPU RTC drivers
1269# 1272#
1270# CONFIG_RTC_DRV_SH is not set 1273# CONFIG_RTC_DRV_SH is not set
1274# CONFIG_RTC_DRV_GENERIC is not set
1271# CONFIG_DMADEVICES is not set 1275# CONFIG_DMADEVICES is not set
1272# CONFIG_AUXDISPLAY is not set 1276# CONFIG_AUXDISPLAY is not set
1273# CONFIG_UIO is not set 1277# CONFIG_UIO is not set
1278
1279#
1280# TI VLYNQ
1281#
1274# CONFIG_STAGING is not set 1282# CONFIG_STAGING is not set
1275 1283
1276# 1284#
@@ -1284,10 +1292,11 @@ CONFIG_EXT2_FS=y
1284# CONFIG_REISERFS_FS is not set 1292# CONFIG_REISERFS_FS is not set
1285# CONFIG_JFS_FS is not set 1293# CONFIG_JFS_FS is not set
1286# CONFIG_FS_POSIX_ACL is not set 1294# CONFIG_FS_POSIX_ACL is not set
1287CONFIG_FILE_LOCKING=y
1288# CONFIG_XFS_FS is not set 1295# CONFIG_XFS_FS is not set
1289# CONFIG_OCFS2_FS is not set 1296# CONFIG_OCFS2_FS is not set
1290# CONFIG_BTRFS_FS is not set 1297# CONFIG_BTRFS_FS is not set
1298CONFIG_FILE_LOCKING=y
1299CONFIG_FSNOTIFY=y
1291CONFIG_DNOTIFY=y 1300CONFIG_DNOTIFY=y
1292CONFIG_INOTIFY=y 1301CONFIG_INOTIFY=y
1293CONFIG_INOTIFY_USER=y 1302CONFIG_INOTIFY_USER=y
@@ -1428,24 +1437,11 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1428CONFIG_HAVE_DYNAMIC_FTRACE=y 1437CONFIG_HAVE_DYNAMIC_FTRACE=y
1429CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1438CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1430CONFIG_RING_BUFFER=y 1439CONFIG_RING_BUFFER=y
1440CONFIG_EVENT_TRACING=y
1441CONFIG_CONTEXT_SWITCH_TRACER=y
1431CONFIG_TRACING=y 1442CONFIG_TRACING=y
1432CONFIG_TRACING_SUPPORT=y 1443CONFIG_TRACING_SUPPORT=y
1433 1444# CONFIG_FTRACE is not set
1434#
1435# Tracers
1436#
1437# CONFIG_FUNCTION_TRACER is not set
1438# CONFIG_IRQSOFF_TRACER is not set
1439# CONFIG_SCHED_TRACER is not set
1440# CONFIG_CONTEXT_SWITCH_TRACER is not set
1441# CONFIG_EVENT_TRACER is not set
1442# CONFIG_BOOT_TRACER is not set
1443# CONFIG_TRACE_BRANCH_PROFILING is not set
1444# CONFIG_STACK_TRACER is not set
1445# CONFIG_KMEMTRACE is not set
1446# CONFIG_WORKQUEUE_TRACER is not set
1447# CONFIG_BLK_DEV_IO_TRACE is not set
1448# CONFIG_FTRACE_STARTUP_TEST is not set
1449# CONFIG_DYNAMIC_DEBUG is not set 1445# CONFIG_DYNAMIC_DEBUG is not set
1450# CONFIG_DMA_API_DEBUG is not set 1446# CONFIG_DMA_API_DEBUG is not set
1451# CONFIG_SAMPLES is not set 1447# CONFIG_SAMPLES is not set
@@ -1454,7 +1450,6 @@ CONFIG_HAVE_ARCH_KGDB=y
1454CONFIG_EARLY_SCIF_CONSOLE=y 1450CONFIG_EARLY_SCIF_CONSOLE=y
1455CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 1451CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1456CONFIG_EARLY_PRINTK=y 1452CONFIG_EARLY_PRINTK=y
1457# CONFIG_MORE_COMPILE_OPTIONS is not set
1458 1453
1459# 1454#
1460# Security options 1455# Security options
@@ -1568,3 +1563,4 @@ CONFIG_HAS_IOMEM=y
1568CONFIG_HAS_IOPORT=y 1563CONFIG_HAS_IOPORT=y
1569CONFIG_HAS_DMA=y 1564CONFIG_HAS_DMA=y
1570CONFIG_NLATTR=y 1565CONFIG_NLATTR=y
1566CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/rts7751r2dplus_defconfig b/arch/sh/configs/rts7751r2dplus_defconfig
index a860435b884..bc10469d31f 100644
--- a/arch/sh/configs/rts7751r2dplus_defconfig
+++ b/arch/sh/configs/rts7751r2dplus_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:59:01 2009 4# Thu Jun 18 12:43:19 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -71,7 +72,6 @@ CONFIG_UID16=y
71# CONFIG_SYSCTL_SYSCALL is not set 72# CONFIG_SYSCTL_SYSCALL is not set
72CONFIG_KALLSYMS=y 73CONFIG_KALLSYMS=y
73# CONFIG_KALLSYMS_EXTRA_PASS is not set 74# CONFIG_KALLSYMS_EXTRA_PASS is not set
74# CONFIG_STRIP_ASM_SYMS is not set
75CONFIG_HOTPLUG=y 75CONFIG_HOTPLUG=y
76CONFIG_PRINTK=y 76CONFIG_PRINTK=y
77CONFIG_BUG=y 77CONFIG_BUG=y
@@ -84,15 +84,20 @@ CONFIG_TIMERFD=y
84CONFIG_EVENTFD=y 84CONFIG_EVENTFD=y
85CONFIG_SHMEM=y 85CONFIG_SHMEM=y
86CONFIG_AIO=y 86CONFIG_AIO=y
87
88#
89# Performance Counters
90#
87CONFIG_VM_EVENT_COUNTERS=y 91CONFIG_VM_EVENT_COUNTERS=y
88CONFIG_PCI_QUIRKS=y 92CONFIG_PCI_QUIRKS=y
93# CONFIG_STRIP_ASM_SYMS is not set
89CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
90CONFIG_SLAB=y 95CONFIG_SLAB=y
91# CONFIG_SLUB is not set 96# CONFIG_SLUB is not set
92# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
93CONFIG_PROFILING=y 98CONFIG_PROFILING=y
94CONFIG_TRACEPOINTS=y 99CONFIG_TRACEPOINTS=y
95# CONFIG_MARKERS is not set 100CONFIG_MARKERS=y
96CONFIG_OPROFILE=y 101CONFIG_OPROFILE=y
97CONFIG_HAVE_OPROFILE=y 102CONFIG_HAVE_OPROFILE=y
98# CONFIG_KPROBES is not set 103# CONFIG_KPROBES is not set
@@ -176,6 +181,7 @@ CONFIG_CPU_SUBTYPE_SH7751R=y
176CONFIG_QUICKLIST=y 181CONFIG_QUICKLIST=y
177CONFIG_MMU=y 182CONFIG_MMU=y
178CONFIG_PAGE_OFFSET=0x80000000 183CONFIG_PAGE_OFFSET=0x80000000
184CONFIG_FORCE_MAX_ZONEORDER=11
179CONFIG_MEMORY_START=0x0c000000 185CONFIG_MEMORY_START=0x0c000000
180CONFIG_MEMORY_SIZE=0x04000000 186CONFIG_MEMORY_SIZE=0x04000000
181CONFIG_29BIT=y 187CONFIG_29BIT=y
@@ -190,7 +196,6 @@ CONFIG_PAGE_SIZE_4KB=y
190# CONFIG_PAGE_SIZE_8KB is not set 196# CONFIG_PAGE_SIZE_8KB is not set
191# CONFIG_PAGE_SIZE_16KB is not set 197# CONFIG_PAGE_SIZE_16KB is not set
192# CONFIG_PAGE_SIZE_64KB is not set 198# CONFIG_PAGE_SIZE_64KB is not set
193CONFIG_ENTRY_OFFSET=0x00001000
194CONFIG_SELECT_MEMORY_MODEL=y 199CONFIG_SELECT_MEMORY_MODEL=y
195CONFIG_FLATMEM_MANUAL=y 200CONFIG_FLATMEM_MANUAL=y
196# CONFIG_DISCONTIGMEM_MANUAL is not set 201# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -203,9 +208,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
203# CONFIG_PHYS_ADDR_T_64BIT is not set 208# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 209CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 210CONFIG_NR_QUICK=2
206CONFIG_UNEVICTABLE_LRU=y
207CONFIG_HAVE_MLOCK=y 211CONFIG_HAVE_MLOCK=y
208CONFIG_HAVE_MLOCKED_PAGE_BIT=y 212CONFIG_HAVE_MLOCKED_PAGE_BIT=y
213CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
209 214
210# 215#
211# Cache configuration 216# Cache configuration
@@ -223,7 +228,6 @@ CONFIG_SH_FPU=y
223# CONFIG_SH_STORE_QUEUES is not set 228# CONFIG_SH_STORE_QUEUES is not set
224CONFIG_CPU_HAS_INTEVT=y 229CONFIG_CPU_HAS_INTEVT=y
225CONFIG_CPU_HAS_SR_RB=y 230CONFIG_CPU_HAS_SR_RB=y
226CONFIG_CPU_HAS_PTEA=y
227CONFIG_CPU_HAS_FPU=y 231CONFIG_CPU_HAS_FPU=y
228 232
229# 233#
@@ -245,9 +249,10 @@ CONFIG_RTS7751R2D_PLUS=y
245# 249#
246# Timer and clock configuration 250# Timer and clock configuration
247# 251#
248CONFIG_SH_TMU=y 252CONFIG_SH_TIMER_TMU=y
249CONFIG_SH_TIMER_IRQ=16
250CONFIG_SH_PCLK_FREQ=60000000 253CONFIG_SH_PCLK_FREQ=60000000
254CONFIG_SH_CLK_CPG=y
255CONFIG_SH_CLK_CPG_LEGACY=y
251# CONFIG_NO_HZ is not set 256# CONFIG_NO_HZ is not set
252# CONFIG_HIGH_RES_TIMERS is not set 257# CONFIG_HIGH_RES_TIMERS is not set
253CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 258CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -289,12 +294,14 @@ CONFIG_PREEMPT_NONE=y
289# CONFIG_PREEMPT is not set 294# CONFIG_PREEMPT is not set
290CONFIG_GUSA=y 295CONFIG_GUSA=y
291# CONFIG_GUSA_RB is not set 296# CONFIG_GUSA_RB is not set
297# CONFIG_SPARSE_IRQ is not set
292 298
293# 299#
294# Boot options 300# Boot options
295# 301#
296CONFIG_ZERO_PAGE_OFFSET=0x00010000 302CONFIG_ZERO_PAGE_OFFSET=0x00010000
297CONFIG_BOOT_LINK_OFFSET=0x00800000 303CONFIG_BOOT_LINK_OFFSET=0x00800000
304CONFIG_ENTRY_OFFSET=0x00001000
298# CONFIG_UBC_WAKEUP is not set 305# CONFIG_UBC_WAKEUP is not set
299CONFIG_CMDLINE_BOOL=y 306CONFIG_CMDLINE_BOOL=y
300CONFIG_CMDLINE="console=tty0 console=ttySC0,115200 root=/dev/sda1 earlyprintk=serial" 307CONFIG_CMDLINE="console=tty0 console=ttySC0,115200 root=/dev/sda1 earlyprintk=serial"
@@ -385,6 +392,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
385# CONFIG_ECONET is not set 392# CONFIG_ECONET is not set
386# CONFIG_WAN_ROUTER is not set 393# CONFIG_WAN_ROUTER is not set
387# CONFIG_PHONET is not set 394# CONFIG_PHONET is not set
395# CONFIG_IEEE802154 is not set
388# CONFIG_NET_SCHED is not set 396# CONFIG_NET_SCHED is not set
389# CONFIG_DCB is not set 397# CONFIG_DCB is not set
390 398
@@ -404,7 +412,11 @@ CONFIG_WIRELESS=y
404CONFIG_WIRELESS_EXT=y 412CONFIG_WIRELESS_EXT=y
405CONFIG_WIRELESS_EXT_SYSFS=y 413CONFIG_WIRELESS_EXT_SYSFS=y
406# CONFIG_LIB80211 is not set 414# CONFIG_LIB80211 is not set
407# CONFIG_MAC80211 is not set 415
416#
417# CFG80211 needs to be enabled for MAC80211
418#
419CONFIG_MAC80211_DEFAULT_PS_VALUE=0
408# CONFIG_WIMAX is not set 420# CONFIG_WIMAX is not set
409# CONFIG_RFKILL is not set 421# CONFIG_RFKILL is not set
410# CONFIG_NET_9P is not set 422# CONFIG_NET_9P is not set
@@ -540,6 +552,7 @@ CONFIG_MISC_DEVICES=y
540# 552#
541# CONFIG_EEPROM_AT25 is not set 553# CONFIG_EEPROM_AT25 is not set
542# CONFIG_EEPROM_93CX6 is not set 554# CONFIG_EEPROM_93CX6 is not set
555# CONFIG_CB710_CORE is not set
543CONFIG_HAVE_IDE=y 556CONFIG_HAVE_IDE=y
544# CONFIG_IDE is not set 557# CONFIG_IDE is not set
545 558
@@ -562,10 +575,6 @@ CONFIG_BLK_DEV_SD=y
562# CONFIG_BLK_DEV_SR is not set 575# CONFIG_BLK_DEV_SR is not set
563# CONFIG_CHR_DEV_SG is not set 576# CONFIG_CHR_DEV_SG is not set
564# CONFIG_CHR_DEV_SCH is not set 577# CONFIG_CHR_DEV_SCH is not set
565
566#
567# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
568#
569# CONFIG_SCSI_MULTI_LUN is not set 578# CONFIG_SCSI_MULTI_LUN is not set
570# CONFIG_SCSI_CONSTANTS is not set 579# CONFIG_SCSI_CONSTANTS is not set
571# CONFIG_SCSI_LOGGING is not set 580# CONFIG_SCSI_LOGGING is not set
@@ -583,6 +592,7 @@ CONFIG_SCSI_WAIT_SCAN=m
583CONFIG_SCSI_LOWLEVEL=y 592CONFIG_SCSI_LOWLEVEL=y
584# CONFIG_ISCSI_TCP is not set 593# CONFIG_ISCSI_TCP is not set
585# CONFIG_SCSI_CXGB3_ISCSI is not set 594# CONFIG_SCSI_CXGB3_ISCSI is not set
595# CONFIG_SCSI_BNX2_ISCSI is not set
586# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 596# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
587# CONFIG_SCSI_3W_9XXX is not set 597# CONFIG_SCSI_3W_9XXX is not set
588# CONFIG_SCSI_ACARD is not set 598# CONFIG_SCSI_ACARD is not set
@@ -591,6 +601,7 @@ CONFIG_SCSI_LOWLEVEL=y
591# CONFIG_SCSI_AIC7XXX_OLD is not set 601# CONFIG_SCSI_AIC7XXX_OLD is not set
592# CONFIG_SCSI_AIC79XX is not set 602# CONFIG_SCSI_AIC79XX is not set
593# CONFIG_SCSI_AIC94XX is not set 603# CONFIG_SCSI_AIC94XX is not set
604# CONFIG_SCSI_MVSAS is not set
594# CONFIG_SCSI_ARCMSR is not set 605# CONFIG_SCSI_ARCMSR is not set
595# CONFIG_MEGARAID_NEWGEN is not set 606# CONFIG_MEGARAID_NEWGEN is not set
596# CONFIG_MEGARAID_LEGACY is not set 607# CONFIG_MEGARAID_LEGACY is not set
@@ -605,7 +616,6 @@ CONFIG_SCSI_LOWLEVEL=y
605# CONFIG_SCSI_IPS is not set 616# CONFIG_SCSI_IPS is not set
606# CONFIG_SCSI_INITIO is not set 617# CONFIG_SCSI_INITIO is not set
607# CONFIG_SCSI_INIA100 is not set 618# CONFIG_SCSI_INIA100 is not set
608# CONFIG_SCSI_MVSAS is not set
609# CONFIG_SCSI_STEX is not set 619# CONFIG_SCSI_STEX is not set
610# CONFIG_SCSI_SYM53C8XX_2 is not set 620# CONFIG_SCSI_SYM53C8XX_2 is not set
611# CONFIG_SCSI_IPR is not set 621# CONFIG_SCSI_IPR is not set
@@ -694,7 +704,6 @@ CONFIG_PATA_PLATFORM=y
694# CONFIG_IEEE1394 is not set 704# CONFIG_IEEE1394 is not set
695# CONFIG_I2O is not set 705# CONFIG_I2O is not set
696CONFIG_NETDEVICES=y 706CONFIG_NETDEVICES=y
697CONFIG_COMPAT_NET_DEV_OPS=y
698# CONFIG_DUMMY is not set 707# CONFIG_DUMMY is not set
699# CONFIG_BONDING is not set 708# CONFIG_BONDING is not set
700# CONFIG_MACVLAN is not set 709# CONFIG_MACVLAN is not set
@@ -748,6 +757,7 @@ CONFIG_8139TOO=y
748# CONFIG_SMSC9420 is not set 757# CONFIG_SMSC9420 is not set
749# CONFIG_SUNDANCE is not set 758# CONFIG_SUNDANCE is not set
750# CONFIG_TLAN is not set 759# CONFIG_TLAN is not set
760# CONFIG_KS8842 is not set
751# CONFIG_VIA_RHINE is not set 761# CONFIG_VIA_RHINE is not set
752# CONFIG_SC92031 is not set 762# CONFIG_SC92031 is not set
753# CONFIG_ATL2 is not set 763# CONFIG_ATL2 is not set
@@ -956,23 +966,7 @@ CONFIG_MFD_SM501=y
956# CONFIG_HTC_PASIC3 is not set 966# CONFIG_HTC_PASIC3 is not set
957# CONFIG_MFD_TMIO is not set 967# CONFIG_MFD_TMIO is not set
958# CONFIG_REGULATOR is not set 968# CONFIG_REGULATOR is not set
959 969# CONFIG_MEDIA_SUPPORT is not set
960#
961# Multimedia devices
962#
963
964#
965# Multimedia core support
966#
967# CONFIG_VIDEO_DEV is not set
968# CONFIG_DVB_CORE is not set
969# CONFIG_VIDEO_MEDIA is not set
970
971#
972# Multimedia drivers
973#
974CONFIG_DAB=y
975# CONFIG_USB_DABUSB is not set
976 970
977# 971#
978# Graphics support 972# Graphics support
@@ -1074,6 +1068,11 @@ CONFIG_SND_VERBOSE_PROCFS=y
1074# CONFIG_SND_VERBOSE_PRINTK is not set 1068# CONFIG_SND_VERBOSE_PRINTK is not set
1075# CONFIG_SND_DEBUG is not set 1069# CONFIG_SND_DEBUG is not set
1076CONFIG_SND_VMASTER=y 1070CONFIG_SND_VMASTER=y
1071# CONFIG_SND_RAWMIDI_SEQ is not set
1072# CONFIG_SND_OPL3_LIB_SEQ is not set
1073# CONFIG_SND_OPL4_LIB_SEQ is not set
1074# CONFIG_SND_SBAWE_SEQ is not set
1075# CONFIG_SND_EMU10K1_SEQ is not set
1077CONFIG_SND_MPU401_UART=m 1076CONFIG_SND_MPU401_UART=m
1078CONFIG_SND_OPL3_LIB=m 1077CONFIG_SND_OPL3_LIB=m
1079CONFIG_SND_AC97_CODEC=m 1078CONFIG_SND_AC97_CODEC=m
@@ -1100,6 +1099,7 @@ CONFIG_SND_PCI=y
1100# CONFIG_SND_OXYGEN is not set 1099# CONFIG_SND_OXYGEN is not set
1101# CONFIG_SND_CS4281 is not set 1100# CONFIG_SND_CS4281 is not set
1102# CONFIG_SND_CS46XX is not set 1101# CONFIG_SND_CS46XX is not set
1102# CONFIG_SND_CTXFI is not set
1103# CONFIG_SND_DARLA20 is not set 1103# CONFIG_SND_DARLA20 is not set
1104# CONFIG_SND_GINA20 is not set 1104# CONFIG_SND_GINA20 is not set
1105# CONFIG_SND_LAYLA20 is not set 1105# CONFIG_SND_LAYLA20 is not set
@@ -1130,6 +1130,7 @@ CONFIG_SND_PCI=y
1130# CONFIG_SND_INTEL8X0 is not set 1130# CONFIG_SND_INTEL8X0 is not set
1131# CONFIG_SND_INTEL8X0M is not set 1131# CONFIG_SND_INTEL8X0M is not set
1132# CONFIG_SND_KORG1212 is not set 1132# CONFIG_SND_KORG1212 is not set
1133# CONFIG_SND_LX6464ES is not set
1133# CONFIG_SND_MAESTRO3 is not set 1134# CONFIG_SND_MAESTRO3 is not set
1134# CONFIG_SND_MIXART is not set 1135# CONFIG_SND_MIXART is not set
1135# CONFIG_SND_NM256 is not set 1136# CONFIG_SND_NM256 is not set
@@ -1174,7 +1175,7 @@ CONFIG_HID_BELKIN=y
1174CONFIG_HID_CHERRY=y 1175CONFIG_HID_CHERRY=y
1175CONFIG_HID_CHICONY=y 1176CONFIG_HID_CHICONY=y
1176CONFIG_HID_CYPRESS=y 1177CONFIG_HID_CYPRESS=y
1177# CONFIG_DRAGONRISE_FF is not set 1178# CONFIG_HID_DRAGONRISE is not set
1178CONFIG_HID_EZKEY=y 1179CONFIG_HID_EZKEY=y
1179# CONFIG_HID_KYE is not set 1180# CONFIG_HID_KYE is not set
1180CONFIG_HID_GYRATION=y 1181CONFIG_HID_GYRATION=y
@@ -1191,10 +1192,11 @@ CONFIG_HID_PETALYNX=y
1191CONFIG_HID_SAMSUNG=y 1192CONFIG_HID_SAMSUNG=y
1192CONFIG_HID_SONY=y 1193CONFIG_HID_SONY=y
1193CONFIG_HID_SUNPLUS=y 1194CONFIG_HID_SUNPLUS=y
1194# CONFIG_GREENASIA_FF is not set 1195# CONFIG_HID_GREENASIA is not set
1196# CONFIG_HID_SMARTJOYPLUS is not set
1195# CONFIG_HID_TOPSEED is not set 1197# CONFIG_HID_TOPSEED is not set
1196CONFIG_THRUSTMASTER_FF=m 1198# CONFIG_HID_THRUSTMASTER is not set
1197CONFIG_ZEROPLUS_FF=m 1199# CONFIG_HID_ZEROPLUS is not set
1198CONFIG_USB_SUPPORT=y 1200CONFIG_USB_SUPPORT=y
1199CONFIG_USB_ARCH_HAS_HCD=y 1201CONFIG_USB_ARCH_HAS_HCD=y
1200CONFIG_USB_ARCH_HAS_OHCI=y 1202CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1220,6 +1222,7 @@ CONFIG_USB_DEVICE_CLASS=y
1220# USB Host Controller Drivers 1222# USB Host Controller Drivers
1221# 1223#
1222# CONFIG_USB_C67X00_HCD is not set 1224# CONFIG_USB_C67X00_HCD is not set
1225# CONFIG_USB_XHCI_HCD is not set
1223# CONFIG_USB_EHCI_HCD is not set 1226# CONFIG_USB_EHCI_HCD is not set
1224# CONFIG_USB_OXU210HP_HCD is not set 1227# CONFIG_USB_OXU210HP_HCD is not set
1225# CONFIG_USB_ISP116X_HCD is not set 1228# CONFIG_USB_ISP116X_HCD is not set
@@ -1353,9 +1356,14 @@ CONFIG_RTC_DRV_R9701=y
1353# on-CPU RTC drivers 1356# on-CPU RTC drivers
1354# 1357#
1355# CONFIG_RTC_DRV_SH is not set 1358# CONFIG_RTC_DRV_SH is not set
1359# CONFIG_RTC_DRV_GENERIC is not set
1356# CONFIG_DMADEVICES is not set 1360# CONFIG_DMADEVICES is not set
1357# CONFIG_AUXDISPLAY is not set 1361# CONFIG_AUXDISPLAY is not set
1358# CONFIG_UIO is not set 1362# CONFIG_UIO is not set
1363
1364#
1365# TI VLYNQ
1366#
1359# CONFIG_STAGING is not set 1367# CONFIG_STAGING is not set
1360 1368
1361# 1369#
@@ -1369,10 +1377,11 @@ CONFIG_EXT2_FS=y
1369# CONFIG_REISERFS_FS is not set 1377# CONFIG_REISERFS_FS is not set
1370# CONFIG_JFS_FS is not set 1378# CONFIG_JFS_FS is not set
1371# CONFIG_FS_POSIX_ACL is not set 1379# CONFIG_FS_POSIX_ACL is not set
1372CONFIG_FILE_LOCKING=y
1373# CONFIG_XFS_FS is not set 1380# CONFIG_XFS_FS is not set
1374# CONFIG_OCFS2_FS is not set 1381# CONFIG_OCFS2_FS is not set
1375# CONFIG_BTRFS_FS is not set 1382# CONFIG_BTRFS_FS is not set
1383CONFIG_FILE_LOCKING=y
1384CONFIG_FSNOTIFY=y
1376CONFIG_DNOTIFY=y 1385CONFIG_DNOTIFY=y
1377CONFIG_INOTIFY=y 1386CONFIG_INOTIFY=y
1378CONFIG_INOTIFY_USER=y 1387CONFIG_INOTIFY_USER=y
@@ -1423,6 +1432,7 @@ CONFIG_MISC_FILESYSTEMS=y
1423# CONFIG_BEFS_FS is not set 1432# CONFIG_BEFS_FS is not set
1424# CONFIG_BFS_FS is not set 1433# CONFIG_BFS_FS is not set
1425# CONFIG_EFS_FS is not set 1434# CONFIG_EFS_FS is not set
1435# CONFIG_JFFS2_FS is not set
1426# CONFIG_CRAMFS is not set 1436# CONFIG_CRAMFS is not set
1427# CONFIG_SQUASHFS is not set 1437# CONFIG_SQUASHFS is not set
1428# CONFIG_VXFS_FS is not set 1438# CONFIG_VXFS_FS is not set
@@ -1513,24 +1523,11 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1513CONFIG_HAVE_DYNAMIC_FTRACE=y 1523CONFIG_HAVE_DYNAMIC_FTRACE=y
1514CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1524CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1515CONFIG_RING_BUFFER=y 1525CONFIG_RING_BUFFER=y
1526CONFIG_EVENT_TRACING=y
1527CONFIG_CONTEXT_SWITCH_TRACER=y
1516CONFIG_TRACING=y 1528CONFIG_TRACING=y
1517CONFIG_TRACING_SUPPORT=y 1529CONFIG_TRACING_SUPPORT=y
1518 1530# CONFIG_FTRACE is not set
1519#
1520# Tracers
1521#
1522# CONFIG_FUNCTION_TRACER is not set
1523# CONFIG_IRQSOFF_TRACER is not set
1524# CONFIG_SCHED_TRACER is not set
1525# CONFIG_CONTEXT_SWITCH_TRACER is not set
1526# CONFIG_EVENT_TRACER is not set
1527# CONFIG_BOOT_TRACER is not set
1528# CONFIG_TRACE_BRANCH_PROFILING is not set
1529# CONFIG_STACK_TRACER is not set
1530# CONFIG_KMEMTRACE is not set
1531# CONFIG_WORKQUEUE_TRACER is not set
1532# CONFIG_BLK_DEV_IO_TRACE is not set
1533# CONFIG_FTRACE_STARTUP_TEST is not set
1534# CONFIG_DYNAMIC_DEBUG is not set 1531# CONFIG_DYNAMIC_DEBUG is not set
1535# CONFIG_DMA_API_DEBUG is not set 1532# CONFIG_DMA_API_DEBUG is not set
1536# CONFIG_SAMPLES is not set 1533# CONFIG_SAMPLES is not set
@@ -1539,7 +1536,6 @@ CONFIG_HAVE_ARCH_KGDB=y
1539CONFIG_EARLY_SCIF_CONSOLE=y 1536CONFIG_EARLY_SCIF_CONSOLE=y
1540CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 1537CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1541CONFIG_EARLY_PRINTK=y 1538CONFIG_EARLY_PRINTK=y
1542# CONFIG_MORE_COMPILE_OPTIONS is not set
1543 1539
1544# 1540#
1545# Security options 1541# Security options
@@ -1653,3 +1649,4 @@ CONFIG_HAS_IOMEM=y
1653CONFIG_HAS_IOPORT=y 1649CONFIG_HAS_IOPORT=y
1654CONFIG_HAS_DMA=y 1650CONFIG_HAS_DMA=y
1655CONFIG_NLATTR=y 1651CONFIG_NLATTR=y
1652CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/sdk7780_defconfig b/arch/sh/configs/sdk7780_defconfig
index a629b79a184..753fb276e9f 100644
--- a/arch/sh/configs/sdk7780_defconfig
+++ b/arch/sh/configs/sdk7780_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 12:59:32 2009 4# Thu Jun 18 12:43:54 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -75,7 +76,6 @@ CONFIG_SYSCTL_SYSCALL=y
75CONFIG_KALLSYMS=y 76CONFIG_KALLSYMS=y
76CONFIG_KALLSYMS_ALL=y 77CONFIG_KALLSYMS_ALL=y
77# CONFIG_KALLSYMS_EXTRA_PASS is not set 78# CONFIG_KALLSYMS_EXTRA_PASS is not set
78# CONFIG_STRIP_ASM_SYMS is not set
79CONFIG_HOTPLUG=y 79CONFIG_HOTPLUG=y
80CONFIG_PRINTK=y 80CONFIG_PRINTK=y
81CONFIG_BUG=y 81CONFIG_BUG=y
@@ -88,9 +88,14 @@ CONFIG_TIMERFD=y
88CONFIG_EVENTFD=y 88CONFIG_EVENTFD=y
89CONFIG_SHMEM=y 89CONFIG_SHMEM=y
90CONFIG_AIO=y 90CONFIG_AIO=y
91
92#
93# Performance Counters
94#
91CONFIG_VM_EVENT_COUNTERS=y 95CONFIG_VM_EVENT_COUNTERS=y
92CONFIG_PCI_QUIRKS=y 96CONFIG_PCI_QUIRKS=y
93CONFIG_SLUB_DEBUG=y 97CONFIG_SLUB_DEBUG=y
98# CONFIG_STRIP_ASM_SYMS is not set
94CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
95# CONFIG_SLAB is not set 100# CONFIG_SLAB is not set
96CONFIG_SLUB=y 101CONFIG_SLUB=y
@@ -181,6 +186,7 @@ CONFIG_CPU_SUBTYPE_SH7780=y
181CONFIG_QUICKLIST=y 186CONFIG_QUICKLIST=y
182CONFIG_MMU=y 187CONFIG_MMU=y
183CONFIG_PAGE_OFFSET=0x80000000 188CONFIG_PAGE_OFFSET=0x80000000
189CONFIG_FORCE_MAX_ZONEORDER=11
184CONFIG_MEMORY_START=0x08000000 190CONFIG_MEMORY_START=0x08000000
185CONFIG_MEMORY_SIZE=0x08000000 191CONFIG_MEMORY_SIZE=0x08000000
186# CONFIG_29BIT is not set 192# CONFIG_29BIT is not set
@@ -199,7 +205,6 @@ CONFIG_PAGE_SIZE_4KB=y
199# CONFIG_PAGE_SIZE_8KB is not set 205# CONFIG_PAGE_SIZE_8KB is not set
200# CONFIG_PAGE_SIZE_16KB is not set 206# CONFIG_PAGE_SIZE_16KB is not set
201# CONFIG_PAGE_SIZE_64KB is not set 207# CONFIG_PAGE_SIZE_64KB is not set
202CONFIG_ENTRY_OFFSET=0x00001000
203CONFIG_HUGETLB_PAGE_SIZE_64K=y 208CONFIG_HUGETLB_PAGE_SIZE_64K=y
204# CONFIG_HUGETLB_PAGE_SIZE_256K is not set 209# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
205# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set 210# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
@@ -218,9 +223,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
218# CONFIG_PHYS_ADDR_T_64BIT is not set 223# CONFIG_PHYS_ADDR_T_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=0 224CONFIG_ZONE_DMA_FLAG=0
220CONFIG_NR_QUICK=2 225CONFIG_NR_QUICK=2
221CONFIG_UNEVICTABLE_LRU=y
222CONFIG_HAVE_MLOCK=y 226CONFIG_HAVE_MLOCK=y
223CONFIG_HAVE_MLOCKED_PAGE_BIT=y 227CONFIG_HAVE_MLOCKED_PAGE_BIT=y
228CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
224 229
225# 230#
226# Cache configuration 231# Cache configuration
@@ -252,9 +257,10 @@ CONFIG_SH_SDK7780_BASE=y
252# 257#
253# Timer and clock configuration 258# Timer and clock configuration
254# 259#
255CONFIG_SH_TMU=y 260CONFIG_SH_TIMER_TMU=y
256CONFIG_SH_TIMER_IRQ=28
257CONFIG_SH_PCLK_FREQ=33333333 261CONFIG_SH_PCLK_FREQ=33333333
262CONFIG_SH_CLK_CPG=y
263CONFIG_SH_CLK_CPG_LEGACY=y
258CONFIG_TICK_ONESHOT=y 264CONFIG_TICK_ONESHOT=y
259# CONFIG_NO_HZ is not set 265# CONFIG_NO_HZ is not set
260CONFIG_HIGH_RES_TIMERS=y 266CONFIG_HIGH_RES_TIMERS=y
@@ -300,12 +306,14 @@ CONFIG_SCHED_HRTICK=y
300# CONFIG_PREEMPT_VOLUNTARY is not set 306# CONFIG_PREEMPT_VOLUNTARY is not set
301CONFIG_PREEMPT=y 307CONFIG_PREEMPT=y
302CONFIG_GUSA=y 308CONFIG_GUSA=y
309# CONFIG_SPARSE_IRQ is not set
303 310
304# 311#
305# Boot options 312# Boot options
306# 313#
307CONFIG_ZERO_PAGE_OFFSET=0x00001000 314CONFIG_ZERO_PAGE_OFFSET=0x00001000
308CONFIG_BOOT_LINK_OFFSET=0x01800000 315CONFIG_BOOT_LINK_OFFSET=0x01800000
316CONFIG_ENTRY_OFFSET=0x00001000
309CONFIG_CMDLINE_BOOL=y 317CONFIG_CMDLINE_BOOL=y
310CONFIG_CMDLINE="mem=128M console=tty0 console=ttySC0,115200 ip=bootp root=/dev/nfs nfsroot=192.168.0.1:/home/rootfs" 318CONFIG_CMDLINE="mem=128M console=tty0 console=ttySC0,115200 ip=bootp root=/dev/nfs nfsroot=192.168.0.1:/home/rootfs"
311 319
@@ -441,6 +449,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
441# CONFIG_ECONET is not set 449# CONFIG_ECONET is not set
442# CONFIG_WAN_ROUTER is not set 450# CONFIG_WAN_ROUTER is not set
443# CONFIG_PHONET is not set 451# CONFIG_PHONET is not set
452# CONFIG_IEEE802154 is not set
444CONFIG_NET_SCHED=y 453CONFIG_NET_SCHED=y
445 454
446# 455#
@@ -490,7 +499,11 @@ CONFIG_WIRELESS=y
490# CONFIG_WIRELESS_OLD_REGULATORY is not set 499# CONFIG_WIRELESS_OLD_REGULATORY is not set
491# CONFIG_WIRELESS_EXT is not set 500# CONFIG_WIRELESS_EXT is not set
492# CONFIG_LIB80211 is not set 501# CONFIG_LIB80211 is not set
493# CONFIG_MAC80211 is not set 502
503#
504# CFG80211 needs to be enabled for MAC80211
505#
506CONFIG_MAC80211_DEFAULT_PS_VALUE=0
494# CONFIG_WIMAX is not set 507# CONFIG_WIMAX is not set
495# CONFIG_RFKILL is not set 508# CONFIG_RFKILL is not set
496# CONFIG_NET_9P is not set 509# CONFIG_NET_9P is not set
@@ -613,10 +626,6 @@ CONFIG_BLK_DEV_SR=y
613# CONFIG_BLK_DEV_SR_VENDOR is not set 626# CONFIG_BLK_DEV_SR_VENDOR is not set
614CONFIG_CHR_DEV_SG=y 627CONFIG_CHR_DEV_SG=y
615# CONFIG_CHR_DEV_SCH is not set 628# CONFIG_CHR_DEV_SCH is not set
616
617#
618# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
619#
620# CONFIG_SCSI_MULTI_LUN is not set 629# CONFIG_SCSI_MULTI_LUN is not set
621# CONFIG_SCSI_CONSTANTS is not set 630# CONFIG_SCSI_CONSTANTS is not set
622# CONFIG_SCSI_LOGGING is not set 631# CONFIG_SCSI_LOGGING is not set
@@ -633,6 +642,7 @@ CONFIG_SCSI_FC_ATTRS=y
633# CONFIG_SCSI_SRP_ATTRS is not set 642# CONFIG_SCSI_SRP_ATTRS is not set
634CONFIG_SCSI_LOWLEVEL=y 643CONFIG_SCSI_LOWLEVEL=y
635# CONFIG_ISCSI_TCP is not set 644# CONFIG_ISCSI_TCP is not set
645# CONFIG_SCSI_BNX2_ISCSI is not set
636# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 646# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
637# CONFIG_SCSI_3W_9XXX is not set 647# CONFIG_SCSI_3W_9XXX is not set
638# CONFIG_SCSI_ACARD is not set 648# CONFIG_SCSI_ACARD is not set
@@ -641,6 +651,7 @@ CONFIG_SCSI_LOWLEVEL=y
641# CONFIG_SCSI_AIC7XXX_OLD is not set 651# CONFIG_SCSI_AIC7XXX_OLD is not set
642# CONFIG_SCSI_AIC79XX is not set 652# CONFIG_SCSI_AIC79XX is not set
643# CONFIG_SCSI_AIC94XX is not set 653# CONFIG_SCSI_AIC94XX is not set
654# CONFIG_SCSI_MVSAS is not set
644# CONFIG_SCSI_ARCMSR is not set 655# CONFIG_SCSI_ARCMSR is not set
645# CONFIG_MEGARAID_NEWGEN is not set 656# CONFIG_MEGARAID_NEWGEN is not set
646# CONFIG_MEGARAID_LEGACY is not set 657# CONFIG_MEGARAID_LEGACY is not set
@@ -655,7 +666,6 @@ CONFIG_SCSI_LOWLEVEL=y
655# CONFIG_SCSI_IPS is not set 666# CONFIG_SCSI_IPS is not set
656# CONFIG_SCSI_INITIO is not set 667# CONFIG_SCSI_INITIO is not set
657# CONFIG_SCSI_INIA100 is not set 668# CONFIG_SCSI_INIA100 is not set
658# CONFIG_SCSI_MVSAS is not set
659# CONFIG_SCSI_STEX is not set 669# CONFIG_SCSI_STEX is not set
660# CONFIG_SCSI_SYM53C8XX_2 is not set 670# CONFIG_SCSI_SYM53C8XX_2 is not set
661# CONFIG_SCSI_IPR is not set 671# CONFIG_SCSI_IPR is not set
@@ -756,7 +766,6 @@ CONFIG_BLK_DEV_DM=y
756# CONFIG_IEEE1394 is not set 766# CONFIG_IEEE1394 is not set
757# CONFIG_I2O is not set 767# CONFIG_I2O is not set
758CONFIG_NETDEVICES=y 768CONFIG_NETDEVICES=y
759CONFIG_COMPAT_NET_DEV_OPS=y
760# CONFIG_DUMMY is not set 769# CONFIG_DUMMY is not set
761# CONFIG_BONDING is not set 770# CONFIG_BONDING is not set
762# CONFIG_MACVLAN is not set 771# CONFIG_MACVLAN is not set
@@ -789,6 +798,7 @@ CONFIG_SMC91X=y
789# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 798# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
790# CONFIG_NET_PCI is not set 799# CONFIG_NET_PCI is not set
791# CONFIG_B44 is not set 800# CONFIG_B44 is not set
801# CONFIG_KS8842 is not set
792# CONFIG_NET_POCKET is not set 802# CONFIG_NET_POCKET is not set
793# CONFIG_ATL2 is not set 803# CONFIG_ATL2 is not set
794# CONFIG_NETDEV_1000 is not set 804# CONFIG_NETDEV_1000 is not set
@@ -971,22 +981,7 @@ CONFIG_SSB_DRIVER_PCICORE=y
971# CONFIG_HTC_PASIC3 is not set 981# CONFIG_HTC_PASIC3 is not set
972# CONFIG_MFD_TMIO is not set 982# CONFIG_MFD_TMIO is not set
973# CONFIG_REGULATOR is not set 983# CONFIG_REGULATOR is not set
974 984# CONFIG_MEDIA_SUPPORT is not set
975#
976# Multimedia devices
977#
978
979#
980# Multimedia core support
981#
982# CONFIG_VIDEO_DEV is not set
983# CONFIG_DVB_CORE is not set
984# CONFIG_VIDEO_MEDIA is not set
985
986#
987# Multimedia drivers
988#
989# CONFIG_DAB is not set
990 985
991# 986#
992# Graphics support 987# Graphics support
@@ -1100,7 +1095,7 @@ CONFIG_HID_BELKIN=y
1100CONFIG_HID_CHERRY=y 1095CONFIG_HID_CHERRY=y
1101CONFIG_HID_CHICONY=y 1096CONFIG_HID_CHICONY=y
1102CONFIG_HID_CYPRESS=y 1097CONFIG_HID_CYPRESS=y
1103# CONFIG_DRAGONRISE_FF is not set 1098# CONFIG_HID_DRAGONRISE is not set
1104CONFIG_HID_EZKEY=y 1099CONFIG_HID_EZKEY=y
1105# CONFIG_HID_KYE is not set 1100# CONFIG_HID_KYE is not set
1106CONFIG_HID_GYRATION=y 1101CONFIG_HID_GYRATION=y
@@ -1117,10 +1112,11 @@ CONFIG_HID_PETALYNX=y
1117CONFIG_HID_SAMSUNG=y 1112CONFIG_HID_SAMSUNG=y
1118CONFIG_HID_SONY=y 1113CONFIG_HID_SONY=y
1119CONFIG_HID_SUNPLUS=y 1114CONFIG_HID_SUNPLUS=y
1120# CONFIG_GREENASIA_FF is not set 1115# CONFIG_HID_GREENASIA is not set
1116# CONFIG_HID_SMARTJOYPLUS is not set
1121# CONFIG_HID_TOPSEED is not set 1117# CONFIG_HID_TOPSEED is not set
1122CONFIG_THRUSTMASTER_FF=m 1118# CONFIG_HID_THRUSTMASTER is not set
1123CONFIG_ZEROPLUS_FF=m 1119# CONFIG_HID_ZEROPLUS is not set
1124CONFIG_USB_SUPPORT=y 1120CONFIG_USB_SUPPORT=y
1125CONFIG_USB_ARCH_HAS_HCD=y 1121CONFIG_USB_ARCH_HAS_HCD=y
1126CONFIG_USB_ARCH_HAS_OHCI=y 1122CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1146,6 +1142,7 @@ CONFIG_USB_MON=y
1146# USB Host Controller Drivers 1142# USB Host Controller Drivers
1147# 1143#
1148# CONFIG_USB_C67X00_HCD is not set 1144# CONFIG_USB_C67X00_HCD is not set
1145# CONFIG_USB_XHCI_HCD is not set
1149CONFIG_USB_EHCI_HCD=y 1146CONFIG_USB_EHCI_HCD=y
1150# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1147# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1151# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1148# CONFIG_USB_EHCI_TT_NEWSCHED is not set
@@ -1247,10 +1244,15 @@ CONFIG_LEDS_CLASS=y
1247# CONFIG_LEDS_TRIGGERS is not set 1244# CONFIG_LEDS_TRIGGERS is not set
1248# CONFIG_ACCESSIBILITY is not set 1245# CONFIG_ACCESSIBILITY is not set
1249# CONFIG_INFINIBAND is not set 1246# CONFIG_INFINIBAND is not set
1247CONFIG_RTC_LIB=y
1250# CONFIG_RTC_CLASS is not set 1248# CONFIG_RTC_CLASS is not set
1251# CONFIG_DMADEVICES is not set 1249# CONFIG_DMADEVICES is not set
1252# CONFIG_AUXDISPLAY is not set 1250# CONFIG_AUXDISPLAY is not set
1253# CONFIG_UIO is not set 1251# CONFIG_UIO is not set
1252
1253#
1254# TI VLYNQ
1255#
1254# CONFIG_STAGING is not set 1256# CONFIG_STAGING is not set
1255 1257
1256# 1258#
@@ -1272,11 +1274,12 @@ CONFIG_FS_MBCACHE=y
1272# CONFIG_REISERFS_FS is not set 1274# CONFIG_REISERFS_FS is not set
1273# CONFIG_JFS_FS is not set 1275# CONFIG_JFS_FS is not set
1274CONFIG_FS_POSIX_ACL=y 1276CONFIG_FS_POSIX_ACL=y
1275CONFIG_FILE_LOCKING=y
1276# CONFIG_XFS_FS is not set 1277# CONFIG_XFS_FS is not set
1277# CONFIG_GFS2_FS is not set 1278# CONFIG_GFS2_FS is not set
1278# CONFIG_OCFS2_FS is not set 1279# CONFIG_OCFS2_FS is not set
1279# CONFIG_BTRFS_FS is not set 1280# CONFIG_BTRFS_FS is not set
1281CONFIG_FILE_LOCKING=y
1282CONFIG_FSNOTIFY=y
1280CONFIG_DNOTIFY=y 1283CONFIG_DNOTIFY=y
1281CONFIG_INOTIFY=y 1284CONFIG_INOTIFY=y
1282CONFIG_INOTIFY_USER=y 1285CONFIG_INOTIFY_USER=y
@@ -1471,18 +1474,16 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1471CONFIG_HAVE_DYNAMIC_FTRACE=y 1474CONFIG_HAVE_DYNAMIC_FTRACE=y
1472CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1475CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1473CONFIG_TRACING_SUPPORT=y 1476CONFIG_TRACING_SUPPORT=y
1474 1477CONFIG_FTRACE=y
1475#
1476# Tracers
1477#
1478# CONFIG_FUNCTION_TRACER is not set 1478# CONFIG_FUNCTION_TRACER is not set
1479# CONFIG_IRQSOFF_TRACER is not set 1479# CONFIG_IRQSOFF_TRACER is not set
1480# CONFIG_PREEMPT_TRACER is not set 1480# CONFIG_PREEMPT_TRACER is not set
1481# CONFIG_SCHED_TRACER is not set 1481# CONFIG_SCHED_TRACER is not set
1482# CONFIG_CONTEXT_SWITCH_TRACER is not set 1482# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1483# CONFIG_EVENT_TRACER is not set
1484# CONFIG_BOOT_TRACER is not set 1483# CONFIG_BOOT_TRACER is not set
1485# CONFIG_TRACE_BRANCH_PROFILING is not set 1484CONFIG_BRANCH_PROFILE_NONE=y
1485# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1486# CONFIG_PROFILE_ALL_BRANCHES is not set
1486# CONFIG_STACK_TRACER is not set 1487# CONFIG_STACK_TRACER is not set
1487# CONFIG_KMEMTRACE is not set 1488# CONFIG_KMEMTRACE is not set
1488# CONFIG_WORKQUEUE_TRACER is not set 1489# CONFIG_WORKQUEUE_TRACER is not set
@@ -1498,10 +1499,8 @@ CONFIG_SH_STANDARD_BIOS=y
1498CONFIG_DEBUG_STACKOVERFLOW=y 1499CONFIG_DEBUG_STACKOVERFLOW=y
1499# CONFIG_DEBUG_STACK_USAGE is not set 1500# CONFIG_DEBUG_STACK_USAGE is not set
1500# CONFIG_4KSTACKS is not set 1501# CONFIG_4KSTACKS is not set
1501# CONFIG_IRQSTACKS is not set
1502CONFIG_DUMP_CODE=y 1502CONFIG_DUMP_CODE=y
1503# CONFIG_SH_NO_BSS_INIT is not set 1503# CONFIG_SH_NO_BSS_INIT is not set
1504# CONFIG_MORE_COMPILE_OPTIONS is not set
1505 1504
1506# 1505#
1507# Security options 1506# Security options
@@ -1619,3 +1618,4 @@ CONFIG_HAS_IOMEM=y
1619CONFIG_HAS_IOPORT=y 1618CONFIG_HAS_IOPORT=y
1620CONFIG_HAS_DMA=y 1619CONFIG_HAS_DMA=y
1621CONFIG_NLATTR=y 1620CONFIG_NLATTR=y
1621CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7206_defconfig b/arch/sh/configs/se7206_defconfig
index 5caf85a3312..8dd2f130e49 100644
--- a/arch/sh/configs/se7206_defconfig
+++ b/arch/sh/configs/se7206_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:01:02 2009 4# Thu Jun 18 12:46:15 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,11 +15,12 @@ CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_IRQ_PROBE=y 16CONFIG_GENERIC_IRQ_PROBE=y
17# CONFIG_GENERIC_GPIO is not set 17# CONFIG_GENERIC_GPIO is not set
18# CONFIG_GENERIC_TIME is not set 18CONFIG_GENERIC_TIME=y
19# CONFIG_GENERIC_CLOCKEVENTS is not set 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set 21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
22CONFIG_SYS_SUPPORTS_CMT=y 22CONFIG_SYS_SUPPORTS_CMT=y
23CONFIG_SYS_SUPPORTS_MTU2=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -47,6 +48,7 @@ CONFIG_BSD_PROCESS_ACCT=y
47# CONFIG_TASKSTATS is not set 48# CONFIG_TASKSTATS is not set
48CONFIG_AUDIT=y 49CONFIG_AUDIT=y
49CONFIG_AUDITSYSCALL=y 50CONFIG_AUDITSYSCALL=y
51CONFIG_AUDIT_TREE=y
50 52
51# 53#
52# RCU Subsystem 54# RCU Subsystem
@@ -92,7 +94,6 @@ CONFIG_EMBEDDED=y
92CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
93CONFIG_KALLSYMS_ALL=y 95CONFIG_KALLSYMS_ALL=y
94# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
95# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 98CONFIG_PRINTK=y
98CONFIG_BUG=y 99CONFIG_BUG=y
@@ -104,14 +105,19 @@ CONFIG_SIGNALFD=y
104CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
105CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
106CONFIG_AIO=y 107CONFIG_AIO=y
108
109#
110# Performance Counters
111#
107CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
113# CONFIG_STRIP_ASM_SYMS is not set
108# CONFIG_COMPAT_BRK is not set 114# CONFIG_COMPAT_BRK is not set
109# CONFIG_SLAB is not set 115# CONFIG_SLAB is not set
110# CONFIG_SLUB is not set 116# CONFIG_SLUB is not set
111CONFIG_SLOB=y 117CONFIG_SLOB=y
112CONFIG_PROFILING=y 118CONFIG_PROFILING=y
113CONFIG_TRACEPOINTS=y 119CONFIG_TRACEPOINTS=y
114# CONFIG_MARKERS is not set 120CONFIG_MARKERS=y
115CONFIG_OPROFILE=y 121CONFIG_OPROFILE=y
116CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 123# CONFIG_KPROBES is not set
@@ -194,6 +200,7 @@ CONFIG_CPU_SUBTYPE_SH7206=y
194# 200#
195CONFIG_QUICKLIST=y 201CONFIG_QUICKLIST=y
196CONFIG_PAGE_OFFSET=0x00000000 202CONFIG_PAGE_OFFSET=0x00000000
203CONFIG_FORCE_MAX_ZONEORDER=14
197CONFIG_MEMORY_START=0x0c000000 204CONFIG_MEMORY_START=0x0c000000
198CONFIG_MEMORY_SIZE=0x04000000 205CONFIG_MEMORY_SIZE=0x04000000
199CONFIG_29BIT=y 206CONFIG_29BIT=y
@@ -207,7 +214,6 @@ CONFIG_PAGE_SIZE_4KB=y
207# CONFIG_PAGE_SIZE_8KB is not set 214# CONFIG_PAGE_SIZE_8KB is not set
208# CONFIG_PAGE_SIZE_16KB is not set 215# CONFIG_PAGE_SIZE_16KB is not set
209# CONFIG_PAGE_SIZE_64KB is not set 216# CONFIG_PAGE_SIZE_64KB is not set
210CONFIG_ENTRY_OFFSET=0x00001000
211CONFIG_SELECT_MEMORY_MODEL=y 217CONFIG_SELECT_MEMORY_MODEL=y
212CONFIG_FLATMEM_MANUAL=y 218CONFIG_FLATMEM_MANUAL=y
213# CONFIG_DISCONTIGMEM_MANUAL is not set 219# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -220,7 +226,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
220# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=0 227CONFIG_ZONE_DMA_FLAG=0
222CONFIG_NR_QUICK=2 228CONFIG_NR_QUICK=2
223CONFIG_UNEVICTABLE_LRU=y 229CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
230CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
224 231
225# 232#
226# Cache configuration 233# Cache configuration
@@ -245,11 +252,15 @@ CONFIG_SH_7206_SOLUTION_ENGINE=y
245# 252#
246# Timer and clock configuration 253# Timer and clock configuration
247# 254#
248CONFIG_SH_CMT=y 255CONFIG_SH_TIMER_CMT=y
249# CONFIG_SH_MTU2 is not set 256CONFIG_SH_TIMER_MTU2=y
250CONFIG_SH_TIMER_IRQ=140
251CONFIG_SH_PCLK_FREQ=33333333 257CONFIG_SH_PCLK_FREQ=33333333
258CONFIG_SH_CLK_CPG=y
259CONFIG_SH_CLK_CPG_LEGACY=y
252CONFIG_SH_CLK_MD=6 260CONFIG_SH_CLK_MD=6
261# CONFIG_NO_HZ is not set
262# CONFIG_HIGH_RES_TIMERS is not set
263CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
253 264
254# 265#
255# CPU Frequency scaling 266# CPU Frequency scaling
@@ -300,12 +311,14 @@ CONFIG_HZ=1000
300# CONFIG_PREEMPT_VOLUNTARY is not set 311# CONFIG_PREEMPT_VOLUNTARY is not set
301CONFIG_PREEMPT=y 312CONFIG_PREEMPT=y
302CONFIG_GUSA=y 313CONFIG_GUSA=y
314# CONFIG_SPARSE_IRQ is not set
303 315
304# 316#
305# Boot options 317# Boot options
306# 318#
307CONFIG_ZERO_PAGE_OFFSET=0x00001000 319CONFIG_ZERO_PAGE_OFFSET=0x00001000
308CONFIG_BOOT_LINK_OFFSET=0x00800000 320CONFIG_BOOT_LINK_OFFSET=0x00800000
321CONFIG_ENTRY_OFFSET=0x00001000
309CONFIG_CMDLINE_BOOL=y 322CONFIG_CMDLINE_BOOL=y
310CONFIG_CMDLINE="console=ttySC3,115200 ignore_loglevel earlyprintk=serial" 323CONFIG_CMDLINE="console=ttySC3,115200 ignore_loglevel earlyprintk=serial"
311 324
@@ -390,6 +403,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
390# CONFIG_ECONET is not set 403# CONFIG_ECONET is not set
391# CONFIG_WAN_ROUTER is not set 404# CONFIG_WAN_ROUTER is not set
392# CONFIG_PHONET is not set 405# CONFIG_PHONET is not set
406# CONFIG_IEEE802154 is not set
393# CONFIG_NET_SCHED is not set 407# CONFIG_NET_SCHED is not set
394# CONFIG_DCB is not set 408# CONFIG_DCB is not set
395 409
@@ -408,7 +422,11 @@ CONFIG_WIRELESS=y
408# CONFIG_WIRELESS_OLD_REGULATORY is not set 422# CONFIG_WIRELESS_OLD_REGULATORY is not set
409# CONFIG_WIRELESS_EXT is not set 423# CONFIG_WIRELESS_EXT is not set
410# CONFIG_LIB80211 is not set 424# CONFIG_LIB80211 is not set
411# CONFIG_MAC80211 is not set 425
426#
427# CFG80211 needs to be enabled for MAC80211
428#
429CONFIG_MAC80211_DEFAULT_PS_VALUE=0
412# CONFIG_WIMAX is not set 430# CONFIG_WIMAX is not set
413# CONFIG_RFKILL is not set 431# CONFIG_RFKILL is not set
414# CONFIG_NET_9P is not set 432# CONFIG_NET_9P is not set
@@ -543,7 +561,6 @@ CONFIG_HAVE_IDE=y
543# CONFIG_ATA is not set 561# CONFIG_ATA is not set
544# CONFIG_MD is not set 562# CONFIG_MD is not set
545CONFIG_NETDEVICES=y 563CONFIG_NETDEVICES=y
546CONFIG_COMPAT_NET_DEV_OPS=y
547# CONFIG_DUMMY is not set 564# CONFIG_DUMMY is not set
548# CONFIG_BONDING is not set 565# CONFIG_BONDING is not set
549# CONFIG_MACVLAN is not set 566# CONFIG_MACVLAN is not set
@@ -568,6 +585,7 @@ CONFIG_SMC91X=y
568# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 585# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
569# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 586# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
570# CONFIG_B44 is not set 587# CONFIG_B44 is not set
588# CONFIG_KS8842 is not set
571# CONFIG_NETDEV_1000 is not set 589# CONFIG_NETDEV_1000 is not set
572# CONFIG_NETDEV_10000 is not set 590# CONFIG_NETDEV_10000 is not set
573 591
@@ -650,22 +668,7 @@ CONFIG_SSB_POSSIBLE=y
650# CONFIG_HTC_PASIC3 is not set 668# CONFIG_HTC_PASIC3 is not set
651# CONFIG_MFD_TMIO is not set 669# CONFIG_MFD_TMIO is not set
652# CONFIG_REGULATOR is not set 670# CONFIG_REGULATOR is not set
653 671# CONFIG_MEDIA_SUPPORT is not set
654#
655# Multimedia devices
656#
657
658#
659# Multimedia core support
660#
661# CONFIG_VIDEO_DEV is not set
662# CONFIG_DVB_CORE is not set
663# CONFIG_VIDEO_MEDIA is not set
664
665#
666# Multimedia drivers
667#
668# CONFIG_DAB is not set
669 672
670# 673#
671# Graphics support 674# Graphics support
@@ -722,9 +725,14 @@ CONFIG_RTC_INTF_DEV=y
722# on-CPU RTC drivers 725# on-CPU RTC drivers
723# 726#
724CONFIG_RTC_DRV_SH=y 727CONFIG_RTC_DRV_SH=y
728# CONFIG_RTC_DRV_GENERIC is not set
725# CONFIG_DMADEVICES is not set 729# CONFIG_DMADEVICES is not set
726# CONFIG_AUXDISPLAY is not set 730# CONFIG_AUXDISPLAY is not set
727# CONFIG_UIO is not set 731# CONFIG_UIO is not set
732
733#
734# TI VLYNQ
735#
728# CONFIG_STAGING is not set 736# CONFIG_STAGING is not set
729 737
730# 738#
@@ -737,12 +745,14 @@ CONFIG_EXT2_FS=y
737# CONFIG_REISERFS_FS is not set 745# CONFIG_REISERFS_FS is not set
738# CONFIG_JFS_FS is not set 746# CONFIG_JFS_FS is not set
739# CONFIG_FS_POSIX_ACL is not set 747# CONFIG_FS_POSIX_ACL is not set
740CONFIG_FILE_LOCKING=y
741# CONFIG_XFS_FS is not set 748# CONFIG_XFS_FS is not set
742# CONFIG_OCFS2_FS is not set 749# CONFIG_OCFS2_FS is not set
743# CONFIG_BTRFS_FS is not set 750# CONFIG_BTRFS_FS is not set
751CONFIG_FILE_LOCKING=y
752CONFIG_FSNOTIFY=y
744# CONFIG_DNOTIFY is not set 753# CONFIG_DNOTIFY is not set
745# CONFIG_INOTIFY is not set 754CONFIG_INOTIFY=y
755CONFIG_INOTIFY_USER=y
746# CONFIG_QUOTA is not set 756# CONFIG_QUOTA is not set
747# CONFIG_AUTOFS_FS is not set 757# CONFIG_AUTOFS_FS is not set
748# CONFIG_AUTOFS4_FS is not set 758# CONFIG_AUTOFS4_FS is not set
@@ -884,23 +894,25 @@ CONFIG_HAVE_FUNCTION_TRACER=y
884CONFIG_HAVE_DYNAMIC_FTRACE=y 894CONFIG_HAVE_DYNAMIC_FTRACE=y
885CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 895CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
886CONFIG_RING_BUFFER=y 896CONFIG_RING_BUFFER=y
897CONFIG_EVENT_TRACING=y
898CONFIG_CONTEXT_SWITCH_TRACER=y
887CONFIG_TRACING=y 899CONFIG_TRACING=y
888CONFIG_TRACING_SUPPORT=y 900CONFIG_TRACING_SUPPORT=y
889 901CONFIG_FTRACE=y
890#
891# Tracers
892#
893# CONFIG_FUNCTION_TRACER is not set 902# CONFIG_FUNCTION_TRACER is not set
903# CONFIG_IRQSOFF_TRACER is not set
904# CONFIG_PREEMPT_TRACER is not set
894# CONFIG_SCHED_TRACER is not set 905# CONFIG_SCHED_TRACER is not set
895# CONFIG_CONTEXT_SWITCH_TRACER is not set 906# CONFIG_ENABLE_DEFAULT_TRACERS is not set
896# CONFIG_EVENT_TRACER is not set
897# CONFIG_BOOT_TRACER is not set 907# CONFIG_BOOT_TRACER is not set
898# CONFIG_TRACE_BRANCH_PROFILING is not set 908CONFIG_BRANCH_PROFILE_NONE=y
909# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
910# CONFIG_PROFILE_ALL_BRANCHES is not set
899# CONFIG_STACK_TRACER is not set 911# CONFIG_STACK_TRACER is not set
900# CONFIG_KMEMTRACE is not set 912# CONFIG_KMEMTRACE is not set
901# CONFIG_WORKQUEUE_TRACER is not set 913# CONFIG_WORKQUEUE_TRACER is not set
902# CONFIG_BLK_DEV_IO_TRACE is not set 914# CONFIG_BLK_DEV_IO_TRACE is not set
903# CONFIG_FTRACE_STARTUP_TEST is not set 915# CONFIG_RING_BUFFER_BENCHMARK is not set
904# CONFIG_DYNAMIC_DEBUG is not set 916# CONFIG_DYNAMIC_DEBUG is not set
905# CONFIG_DMA_API_DEBUG is not set 917# CONFIG_DMA_API_DEBUG is not set
906# CONFIG_SAMPLES is not set 918# CONFIG_SAMPLES is not set
@@ -911,10 +923,8 @@ CONFIG_HAVE_ARCH_KGDB=y
911# CONFIG_DEBUG_BOOTMEM is not set 923# CONFIG_DEBUG_BOOTMEM is not set
912CONFIG_DEBUG_STACKOVERFLOW=y 924CONFIG_DEBUG_STACKOVERFLOW=y
913CONFIG_DEBUG_STACK_USAGE=y 925CONFIG_DEBUG_STACK_USAGE=y
914# CONFIG_IRQSTACKS is not set
915CONFIG_DUMP_CODE=y 926CONFIG_DUMP_CODE=y
916# CONFIG_SH_NO_BSS_INIT is not set 927# CONFIG_SH_NO_BSS_INIT is not set
917# CONFIG_MORE_COMPILE_OPTIONS is not set
918 928
919# 929#
920# Security options 930# Security options
@@ -1037,3 +1047,4 @@ CONFIG_HAS_IOMEM=y
1037CONFIG_HAS_IOPORT=y 1047CONFIG_HAS_IOPORT=y
1038CONFIG_HAS_DMA=y 1048CONFIG_HAS_DMA=y
1039CONFIG_NLATTR=y 1049CONFIG_NLATTR=y
1050CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7343_defconfig b/arch/sh/configs/se7343_defconfig
index 004d531716d..18f46debf92 100644
--- a/arch/sh/configs/se7343_defconfig
+++ b/arch/sh/configs/se7343_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:01:44 2009 4# Thu Jun 18 12:47:07 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20CONFIG_ARCH_SUSPEND_POSSIBLE=y 20CONFIG_ARCH_SUSPEND_POSSIBLE=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_CMT=y 22CONFIG_SYS_SUPPORTS_CMT=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -75,7 +76,6 @@ CONFIG_UID16=y
75# CONFIG_SYSCTL_SYSCALL is not set 76# CONFIG_SYSCTL_SYSCALL is not set
76CONFIG_KALLSYMS=y 77CONFIG_KALLSYMS=y
77# CONFIG_KALLSYMS_EXTRA_PASS is not set 78# CONFIG_KALLSYMS_EXTRA_PASS is not set
78# CONFIG_STRIP_ASM_SYMS is not set
79CONFIG_HOTPLUG=y 79CONFIG_HOTPLUG=y
80CONFIG_PRINTK=y 80CONFIG_PRINTK=y
81CONFIG_BUG=y 81CONFIG_BUG=y
@@ -88,7 +88,12 @@ CONFIG_TIMERFD=y
88CONFIG_EVENTFD=y 88CONFIG_EVENTFD=y
89# CONFIG_SHMEM is not set 89# CONFIG_SHMEM is not set
90CONFIG_AIO=y 90CONFIG_AIO=y
91
92#
93# Performance Counters
94#
91CONFIG_VM_EVENT_COUNTERS=y 95CONFIG_VM_EVENT_COUNTERS=y
96# CONFIG_STRIP_ASM_SYMS is not set
92CONFIG_COMPAT_BRK=y 97CONFIG_COMPAT_BRK=y
93CONFIG_SLAB=y 98CONFIG_SLAB=y
94# CONFIG_SLUB is not set 99# CONFIG_SLUB is not set
@@ -180,6 +185,7 @@ CONFIG_CPU_SUBTYPE_SH7343=y
180CONFIG_QUICKLIST=y 185CONFIG_QUICKLIST=y
181CONFIG_MMU=y 186CONFIG_MMU=y
182CONFIG_PAGE_OFFSET=0x80000000 187CONFIG_PAGE_OFFSET=0x80000000
188CONFIG_FORCE_MAX_ZONEORDER=11
183CONFIG_MEMORY_START=0x0c000000 189CONFIG_MEMORY_START=0x0c000000
184CONFIG_MEMORY_SIZE=0x01000000 190CONFIG_MEMORY_SIZE=0x01000000
185CONFIG_29BIT=y 191CONFIG_29BIT=y
@@ -194,7 +200,6 @@ CONFIG_PAGE_SIZE_4KB=y
194# CONFIG_PAGE_SIZE_8KB is not set 200# CONFIG_PAGE_SIZE_8KB is not set
195# CONFIG_PAGE_SIZE_16KB is not set 201# CONFIG_PAGE_SIZE_16KB is not set
196# CONFIG_PAGE_SIZE_64KB is not set 202# CONFIG_PAGE_SIZE_64KB is not set
197CONFIG_ENTRY_OFFSET=0x00001000
198CONFIG_SELECT_MEMORY_MODEL=y 203CONFIG_SELECT_MEMORY_MODEL=y
199CONFIG_FLATMEM_MANUAL=y 204CONFIG_FLATMEM_MANUAL=y
200# CONFIG_DISCONTIGMEM_MANUAL is not set 205# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -207,9 +212,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
207# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
208CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
209CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
210CONFIG_UNEVICTABLE_LRU=y
211CONFIG_HAVE_MLOCK=y 215CONFIG_HAVE_MLOCK=y
212CONFIG_HAVE_MLOCKED_PAGE_BIT=y 216CONFIG_HAVE_MLOCKED_PAGE_BIT=y
217CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
213 218
214# 219#
215# Cache configuration 220# Cache configuration
@@ -239,10 +244,10 @@ CONFIG_SH_7343_SOLUTION_ENGINE=y
239# 244#
240# Timer and clock configuration 245# Timer and clock configuration
241# 246#
242CONFIG_SH_TMU=y 247CONFIG_SH_TIMER_TMU=y
243# CONFIG_SH_TIMER_CMT is not set 248# CONFIG_SH_TIMER_CMT is not set
244CONFIG_SH_TIMER_IRQ=16
245CONFIG_SH_PCLK_FREQ=33333333 249CONFIG_SH_PCLK_FREQ=33333333
250CONFIG_SH_CLK_CPG=y
246# CONFIG_NO_HZ is not set 251# CONFIG_NO_HZ is not set
247# CONFIG_HIGH_RES_TIMERS is not set 252# CONFIG_HIGH_RES_TIMERS is not set
248CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 253CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -283,12 +288,14 @@ CONFIG_PREEMPT_NONE=y
283# CONFIG_PREEMPT_VOLUNTARY is not set 288# CONFIG_PREEMPT_VOLUNTARY is not set
284# CONFIG_PREEMPT is not set 289# CONFIG_PREEMPT is not set
285CONFIG_GUSA=y 290CONFIG_GUSA=y
291# CONFIG_SPARSE_IRQ is not set
286 292
287# 293#
288# Boot options 294# Boot options
289# 295#
290CONFIG_ZERO_PAGE_OFFSET=0x00001000 296CONFIG_ZERO_PAGE_OFFSET=0x00001000
291CONFIG_BOOT_LINK_OFFSET=0x00800000 297CONFIG_BOOT_LINK_OFFSET=0x00800000
298CONFIG_ENTRY_OFFSET=0x00001000
292CONFIG_CMDLINE_BOOL=y 299CONFIG_CMDLINE_BOOL=y
293CONFIG_CMDLINE="console=ttySC0,115200" 300CONFIG_CMDLINE="console=ttySC0,115200"
294 301
@@ -367,6 +374,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
367# CONFIG_ECONET is not set 374# CONFIG_ECONET is not set
368# CONFIG_WAN_ROUTER is not set 375# CONFIG_WAN_ROUTER is not set
369# CONFIG_PHONET is not set 376# CONFIG_PHONET is not set
377# CONFIG_IEEE802154 is not set
370# CONFIG_NET_SCHED is not set 378# CONFIG_NET_SCHED is not set
371# CONFIG_DCB is not set 379# CONFIG_DCB is not set
372 380
@@ -384,7 +392,11 @@ CONFIG_WIRELESS=y
384# CONFIG_WIRELESS_OLD_REGULATORY is not set 392# CONFIG_WIRELESS_OLD_REGULATORY is not set
385# CONFIG_WIRELESS_EXT is not set 393# CONFIG_WIRELESS_EXT is not set
386# CONFIG_LIB80211 is not set 394# CONFIG_LIB80211 is not set
387# CONFIG_MAC80211 is not set 395
396#
397# CFG80211 needs to be enabled for MAC80211
398#
399CONFIG_MAC80211_DEFAULT_PS_VALUE=0
388# CONFIG_WIMAX is not set 400# CONFIG_WIMAX is not set
389# CONFIG_RFKILL is not set 401# CONFIG_RFKILL is not set
390# CONFIG_NET_9P is not set 402# CONFIG_NET_9P is not set
@@ -518,10 +530,6 @@ CONFIG_SCSI_PROC_FS=y
518# CONFIG_BLK_DEV_SR is not set 530# CONFIG_BLK_DEV_SR is not set
519# CONFIG_CHR_DEV_SG is not set 531# CONFIG_CHR_DEV_SG is not set
520# CONFIG_CHR_DEV_SCH is not set 532# CONFIG_CHR_DEV_SCH is not set
521
522#
523# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
524#
525CONFIG_SCSI_MULTI_LUN=y 533CONFIG_SCSI_MULTI_LUN=y
526# CONFIG_SCSI_CONSTANTS is not set 534# CONFIG_SCSI_CONSTANTS is not set
527# CONFIG_SCSI_LOGGING is not set 535# CONFIG_SCSI_LOGGING is not set
@@ -542,7 +550,6 @@ CONFIG_SCSI_WAIT_SCAN=m
542# CONFIG_ATA is not set 550# CONFIG_ATA is not set
543# CONFIG_MD is not set 551# CONFIG_MD is not set
544CONFIG_NETDEVICES=y 552CONFIG_NETDEVICES=y
545CONFIG_COMPAT_NET_DEV_OPS=y
546# CONFIG_DUMMY is not set 553# CONFIG_DUMMY is not set
547# CONFIG_BONDING is not set 554# CONFIG_BONDING is not set
548# CONFIG_MACVLAN is not set 555# CONFIG_MACVLAN is not set
@@ -574,6 +581,7 @@ CONFIG_MII=y
574CONFIG_USB_USBNET=y 581CONFIG_USB_USBNET=y
575# CONFIG_USB_NET_AX8817X is not set 582# CONFIG_USB_NET_AX8817X is not set
576CONFIG_USB_NET_CDCETHER=y 583CONFIG_USB_NET_CDCETHER=y
584# CONFIG_USB_NET_CDC_EEM is not set
577CONFIG_USB_NET_DM9601=y 585CONFIG_USB_NET_DM9601=y
578# CONFIG_USB_NET_SMSC95XX is not set 586# CONFIG_USB_NET_SMSC95XX is not set
579# CONFIG_USB_NET_GL620A is not set 587# CONFIG_USB_NET_GL620A is not set
@@ -583,6 +591,7 @@ CONFIG_USB_NET_DM9601=y
583# CONFIG_USB_NET_RNDIS_HOST is not set 591# CONFIG_USB_NET_RNDIS_HOST is not set
584# CONFIG_USB_NET_CDC_SUBSET is not set 592# CONFIG_USB_NET_CDC_SUBSET is not set
585# CONFIG_USB_NET_ZAURUS is not set 593# CONFIG_USB_NET_ZAURUS is not set
594# CONFIG_USB_NET_INT51X1 is not set
586# CONFIG_WAN is not set 595# CONFIG_WAN is not set
587# CONFIG_PPP is not set 596# CONFIG_PPP is not set
588# CONFIG_SLIP is not set 597# CONFIG_SLIP is not set
@@ -696,7 +705,6 @@ CONFIG_I2C_SH_MOBILE=y
696# CONFIG_SENSORS_PCF8574 is not set 705# CONFIG_SENSORS_PCF8574 is not set
697# CONFIG_PCF8575 is not set 706# CONFIG_PCF8575 is not set
698# CONFIG_SENSORS_PCA9539 is not set 707# CONFIG_SENSORS_PCA9539 is not set
699# CONFIG_SENSORS_MAX6875 is not set
700# CONFIG_SENSORS_TSL2550 is not set 708# CONFIG_SENSORS_TSL2550 is not set
701# CONFIG_I2C_DEBUG_CORE is not set 709# CONFIG_I2C_DEBUG_CORE is not set
702# CONFIG_I2C_DEBUG_ALGO is not set 710# CONFIG_I2C_DEBUG_ALGO is not set
@@ -729,106 +737,7 @@ CONFIG_SSB_POSSIBLE=y
729# CONFIG_MFD_WM8350_I2C is not set 737# CONFIG_MFD_WM8350_I2C is not set
730# CONFIG_MFD_PCF50633 is not set 738# CONFIG_MFD_PCF50633 is not set
731# CONFIG_REGULATOR is not set 739# CONFIG_REGULATOR is not set
732 740# CONFIG_MEDIA_SUPPORT is not set
733#
734# Multimedia devices
735#
736
737#
738# Multimedia core support
739#
740CONFIG_VIDEO_DEV=y
741CONFIG_VIDEO_V4L2_COMMON=y
742CONFIG_VIDEO_ALLOW_V4L1=y
743CONFIG_VIDEO_V4L1_COMPAT=y
744# CONFIG_DVB_CORE is not set
745CONFIG_VIDEO_MEDIA=y
746
747#
748# Multimedia drivers
749#
750# CONFIG_MEDIA_ATTACH is not set
751CONFIG_MEDIA_TUNER=y
752# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
753CONFIG_MEDIA_TUNER_SIMPLE=y
754CONFIG_MEDIA_TUNER_TDA8290=y
755CONFIG_MEDIA_TUNER_TDA9887=y
756CONFIG_MEDIA_TUNER_TEA5761=y
757CONFIG_MEDIA_TUNER_TEA5767=y
758CONFIG_MEDIA_TUNER_MT20XX=y
759CONFIG_MEDIA_TUNER_XC2028=y
760CONFIG_MEDIA_TUNER_XC5000=y
761CONFIG_MEDIA_TUNER_MC44S803=y
762CONFIG_VIDEO_V4L2=y
763CONFIG_VIDEO_V4L1=y
764CONFIG_VIDEO_CAPTURE_DRIVERS=y
765# CONFIG_VIDEO_ADV_DEBUG is not set
766# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
767CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
768# CONFIG_VIDEO_VIVI is not set
769# CONFIG_VIDEO_CPIA is not set
770# CONFIG_VIDEO_CPIA2 is not set
771# CONFIG_VIDEO_SAA5246A is not set
772# CONFIG_VIDEO_SAA5249 is not set
773# CONFIG_SOC_CAMERA is not set
774CONFIG_V4L_USB_DRIVERS=y
775# CONFIG_USB_VIDEO_CLASS is not set
776CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
777CONFIG_USB_GSPCA=m
778# CONFIG_USB_M5602 is not set
779# CONFIG_USB_STV06XX is not set
780# CONFIG_USB_GSPCA_CONEX is not set
781# CONFIG_USB_GSPCA_ETOMS is not set
782# CONFIG_USB_GSPCA_FINEPIX is not set
783# CONFIG_USB_GSPCA_MARS is not set
784# CONFIG_USB_GSPCA_MR97310A is not set
785# CONFIG_USB_GSPCA_OV519 is not set
786# CONFIG_USB_GSPCA_OV534 is not set
787# CONFIG_USB_GSPCA_PAC207 is not set
788# CONFIG_USB_GSPCA_PAC7311 is not set
789# CONFIG_USB_GSPCA_SONIXB is not set
790# CONFIG_USB_GSPCA_SONIXJ is not set
791# CONFIG_USB_GSPCA_SPCA500 is not set
792# CONFIG_USB_GSPCA_SPCA501 is not set
793# CONFIG_USB_GSPCA_SPCA505 is not set
794# CONFIG_USB_GSPCA_SPCA506 is not set
795# CONFIG_USB_GSPCA_SPCA508 is not set
796# CONFIG_USB_GSPCA_SPCA561 is not set
797# CONFIG_USB_GSPCA_SQ905 is not set
798# CONFIG_USB_GSPCA_SQ905C is not set
799# CONFIG_USB_GSPCA_STK014 is not set
800# CONFIG_USB_GSPCA_SUNPLUS is not set
801# CONFIG_USB_GSPCA_T613 is not set
802# CONFIG_USB_GSPCA_TV8532 is not set
803# CONFIG_USB_GSPCA_VC032X is not set
804# CONFIG_USB_GSPCA_ZC3XX is not set
805# CONFIG_VIDEO_PVRUSB2 is not set
806# CONFIG_VIDEO_HDPVR is not set
807# CONFIG_VIDEO_EM28XX is not set
808# CONFIG_VIDEO_CX231XX is not set
809# CONFIG_VIDEO_USBVISION is not set
810# CONFIG_USB_VICAM is not set
811# CONFIG_USB_IBMCAM is not set
812# CONFIG_USB_KONICAWC is not set
813# CONFIG_USB_QUICKCAM_MESSENGER is not set
814# CONFIG_USB_ET61X251 is not set
815# CONFIG_VIDEO_OVCAMCHIP is not set
816# CONFIG_USB_OV511 is not set
817# CONFIG_USB_SE401 is not set
818# CONFIG_USB_SN9C102 is not set
819# CONFIG_USB_STV680 is not set
820# CONFIG_USB_ZC0301 is not set
821# CONFIG_USB_PWC is not set
822CONFIG_USB_PWC_INPUT_EVDEV=y
823# CONFIG_USB_ZR364XX is not set
824# CONFIG_USB_STKWEBCAM is not set
825# CONFIG_USB_S2255 is not set
826CONFIG_RADIO_ADAPTERS=y
827# CONFIG_USB_DSBR is not set
828# CONFIG_USB_SI470X is not set
829# CONFIG_USB_MR800 is not set
830# CONFIG_RADIO_TEA5764 is not set
831# CONFIG_DAB is not set
832 741
833# 742#
834# Graphics support 743# Graphics support
@@ -894,6 +803,11 @@ CONFIG_SND_SUPPORT_OLD_API=y
894CONFIG_SND_VERBOSE_PROCFS=y 803CONFIG_SND_VERBOSE_PROCFS=y
895# CONFIG_SND_VERBOSE_PRINTK is not set 804# CONFIG_SND_VERBOSE_PRINTK is not set
896# CONFIG_SND_DEBUG is not set 805# CONFIG_SND_DEBUG is not set
806# CONFIG_SND_RAWMIDI_SEQ is not set
807# CONFIG_SND_OPL3_LIB_SEQ is not set
808# CONFIG_SND_OPL4_LIB_SEQ is not set
809# CONFIG_SND_SBAWE_SEQ is not set
810# CONFIG_SND_EMU10K1_SEQ is not set
897CONFIG_SND_DRIVERS=y 811CONFIG_SND_DRIVERS=y
898# CONFIG_SND_DUMMY is not set 812# CONFIG_SND_DUMMY is not set
899# CONFIG_SND_VIRMIDI is not set 813# CONFIG_SND_VIRMIDI is not set
@@ -927,7 +841,7 @@ CONFIG_HID_BELKIN=y
927CONFIG_HID_CHERRY=y 841CONFIG_HID_CHERRY=y
928CONFIG_HID_CHICONY=y 842CONFIG_HID_CHICONY=y
929CONFIG_HID_CYPRESS=y 843CONFIG_HID_CYPRESS=y
930# CONFIG_DRAGONRISE_FF is not set 844# CONFIG_HID_DRAGONRISE is not set
931CONFIG_HID_EZKEY=y 845CONFIG_HID_EZKEY=y
932# CONFIG_HID_KYE is not set 846# CONFIG_HID_KYE is not set
933CONFIG_HID_GYRATION=y 847CONFIG_HID_GYRATION=y
@@ -944,10 +858,11 @@ CONFIG_HID_PETALYNX=y
944CONFIG_HID_SAMSUNG=y 858CONFIG_HID_SAMSUNG=y
945CONFIG_HID_SONY=y 859CONFIG_HID_SONY=y
946CONFIG_HID_SUNPLUS=y 860CONFIG_HID_SUNPLUS=y
947# CONFIG_GREENASIA_FF is not set 861# CONFIG_HID_GREENASIA is not set
862# CONFIG_HID_SMARTJOYPLUS is not set
948# CONFIG_HID_TOPSEED is not set 863# CONFIG_HID_TOPSEED is not set
949# CONFIG_THRUSTMASTER_FF is not set 864# CONFIG_HID_THRUSTMASTER is not set
950# CONFIG_ZEROPLUS_FF is not set 865# CONFIG_HID_ZEROPLUS is not set
951CONFIG_USB_SUPPORT=y 866CONFIG_USB_SUPPORT=y
952CONFIG_USB_ARCH_HAS_HCD=y 867CONFIG_USB_ARCH_HAS_HCD=y
953# CONFIG_USB_ARCH_HAS_OHCI is not set 868# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -1042,6 +957,7 @@ CONFIG_USB_ISP116X_HCD=y
1042# CONFIG_MEMSTICK is not set 957# CONFIG_MEMSTICK is not set
1043# CONFIG_NEW_LEDS is not set 958# CONFIG_NEW_LEDS is not set
1044# CONFIG_ACCESSIBILITY is not set 959# CONFIG_ACCESSIBILITY is not set
960CONFIG_RTC_LIB=y
1045# CONFIG_RTC_CLASS is not set 961# CONFIG_RTC_CLASS is not set
1046# CONFIG_DMADEVICES is not set 962# CONFIG_DMADEVICES is not set
1047# CONFIG_AUXDISPLAY is not set 963# CONFIG_AUXDISPLAY is not set
@@ -1050,6 +966,10 @@ CONFIG_UIO=y
1050# CONFIG_UIO_PDRV_GENIRQ is not set 966# CONFIG_UIO_PDRV_GENIRQ is not set
1051# CONFIG_UIO_SMX is not set 967# CONFIG_UIO_SMX is not set
1052# CONFIG_UIO_SERCOS3 is not set 968# CONFIG_UIO_SERCOS3 is not set
969
970#
971# TI VLYNQ
972#
1053# CONFIG_STAGING is not set 973# CONFIG_STAGING is not set
1054 974
1055# 975#
@@ -1069,12 +989,14 @@ CONFIG_FS_MBCACHE=y
1069# CONFIG_REISERFS_FS is not set 989# CONFIG_REISERFS_FS is not set
1070# CONFIG_JFS_FS is not set 990# CONFIG_JFS_FS is not set
1071# CONFIG_FS_POSIX_ACL is not set 991# CONFIG_FS_POSIX_ACL is not set
1072CONFIG_FILE_LOCKING=y
1073# CONFIG_XFS_FS is not set 992# CONFIG_XFS_FS is not set
1074# CONFIG_OCFS2_FS is not set 993# CONFIG_OCFS2_FS is not set
1075# CONFIG_BTRFS_FS is not set 994# CONFIG_BTRFS_FS is not set
995CONFIG_FILE_LOCKING=y
996CONFIG_FSNOTIFY=y
1076# CONFIG_DNOTIFY is not set 997# CONFIG_DNOTIFY is not set
1077# CONFIG_INOTIFY is not set 998# CONFIG_INOTIFY is not set
999CONFIG_INOTIFY_USER=y
1078# CONFIG_QUOTA is not set 1000# CONFIG_QUOTA is not set
1079# CONFIG_AUTOFS_FS is not set 1001# CONFIG_AUTOFS_FS is not set
1080# CONFIG_AUTOFS4_FS is not set 1002# CONFIG_AUTOFS4_FS is not set
@@ -1167,7 +1089,46 @@ CONFIG_SUNRPC=y
1167# 1089#
1168# CONFIG_PARTITION_ADVANCED is not set 1090# CONFIG_PARTITION_ADVANCED is not set
1169CONFIG_MSDOS_PARTITION=y 1091CONFIG_MSDOS_PARTITION=y
1170# CONFIG_NLS is not set 1092CONFIG_NLS=y
1093CONFIG_NLS_DEFAULT="iso8859-1"
1094# CONFIG_NLS_CODEPAGE_437 is not set
1095# CONFIG_NLS_CODEPAGE_737 is not set
1096# CONFIG_NLS_CODEPAGE_775 is not set
1097# CONFIG_NLS_CODEPAGE_850 is not set
1098# CONFIG_NLS_CODEPAGE_852 is not set
1099# CONFIG_NLS_CODEPAGE_855 is not set
1100# CONFIG_NLS_CODEPAGE_857 is not set
1101# CONFIG_NLS_CODEPAGE_860 is not set
1102# CONFIG_NLS_CODEPAGE_861 is not set
1103# CONFIG_NLS_CODEPAGE_862 is not set
1104# CONFIG_NLS_CODEPAGE_863 is not set
1105# CONFIG_NLS_CODEPAGE_864 is not set
1106# CONFIG_NLS_CODEPAGE_865 is not set
1107# CONFIG_NLS_CODEPAGE_866 is not set
1108# CONFIG_NLS_CODEPAGE_869 is not set
1109# CONFIG_NLS_CODEPAGE_936 is not set
1110# CONFIG_NLS_CODEPAGE_950 is not set
1111# CONFIG_NLS_CODEPAGE_932 is not set
1112# CONFIG_NLS_CODEPAGE_949 is not set
1113# CONFIG_NLS_CODEPAGE_874 is not set
1114# CONFIG_NLS_ISO8859_8 is not set
1115# CONFIG_NLS_CODEPAGE_1250 is not set
1116# CONFIG_NLS_CODEPAGE_1251 is not set
1117# CONFIG_NLS_ASCII is not set
1118# CONFIG_NLS_ISO8859_1 is not set
1119# CONFIG_NLS_ISO8859_2 is not set
1120# CONFIG_NLS_ISO8859_3 is not set
1121# CONFIG_NLS_ISO8859_4 is not set
1122# CONFIG_NLS_ISO8859_5 is not set
1123# CONFIG_NLS_ISO8859_6 is not set
1124# CONFIG_NLS_ISO8859_7 is not set
1125# CONFIG_NLS_ISO8859_9 is not set
1126# CONFIG_NLS_ISO8859_13 is not set
1127# CONFIG_NLS_ISO8859_14 is not set
1128# CONFIG_NLS_ISO8859_15 is not set
1129# CONFIG_NLS_KOI8_R is not set
1130# CONFIG_NLS_KOI8_U is not set
1131# CONFIG_NLS_UTF8 is not set
1171# CONFIG_DLM is not set 1132# CONFIG_DLM is not set
1172 1133
1173# 1134#
@@ -1191,21 +1152,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1191CONFIG_HAVE_DYNAMIC_FTRACE=y 1152CONFIG_HAVE_DYNAMIC_FTRACE=y
1192CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1153CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1193CONFIG_TRACING_SUPPORT=y 1154CONFIG_TRACING_SUPPORT=y
1194 1155# CONFIG_FTRACE is not set
1195#
1196# Tracers
1197#
1198# CONFIG_FUNCTION_TRACER is not set
1199# CONFIG_IRQSOFF_TRACER is not set
1200# CONFIG_SCHED_TRACER is not set
1201# CONFIG_CONTEXT_SWITCH_TRACER is not set
1202# CONFIG_EVENT_TRACER is not set
1203# CONFIG_BOOT_TRACER is not set
1204# CONFIG_TRACE_BRANCH_PROFILING is not set
1205# CONFIG_STACK_TRACER is not set
1206# CONFIG_KMEMTRACE is not set
1207# CONFIG_WORKQUEUE_TRACER is not set
1208# CONFIG_BLK_DEV_IO_TRACE is not set
1209# CONFIG_DMA_API_DEBUG is not set 1156# CONFIG_DMA_API_DEBUG is not set
1210# CONFIG_SAMPLES is not set 1157# CONFIG_SAMPLES is not set
1211CONFIG_HAVE_ARCH_KGDB=y 1158CONFIG_HAVE_ARCH_KGDB=y
@@ -1213,7 +1160,6 @@ CONFIG_HAVE_ARCH_KGDB=y
1213CONFIG_EARLY_SCIF_CONSOLE=y 1160CONFIG_EARLY_SCIF_CONSOLE=y
1214CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 1161CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1215CONFIG_EARLY_PRINTK=y 1162CONFIG_EARLY_PRINTK=y
1216# CONFIG_MORE_COMPILE_OPTIONS is not set
1217 1163
1218# 1164#
1219# Security options 1165# Security options
@@ -1328,3 +1274,4 @@ CONFIG_HAS_IOMEM=y
1328CONFIG_HAS_IOPORT=y 1274CONFIG_HAS_IOPORT=y
1329CONFIG_HAS_DMA=y 1275CONFIG_HAS_DMA=y
1330CONFIG_NLATTR=y 1276CONFIG_NLATTR=y
1277CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7619_defconfig b/arch/sh/configs/se7619_defconfig
index edbece52afc..724bb77c9dc 100644
--- a/arch/sh/configs/se7619_defconfig
+++ b/arch/sh/configs/se7619_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:02:32 2009 4# Thu Jun 18 12:47:56 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,8 +15,8 @@ CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_IRQ_PROBE=y 16CONFIG_GENERIC_IRQ_PROBE=y
17# CONFIG_GENERIC_GPIO is not set 17# CONFIG_GENERIC_GPIO is not set
18# CONFIG_GENERIC_TIME is not set 18CONFIG_GENERIC_TIME=y
19# CONFIG_GENERIC_CLOCKEVENTS is not set 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set 21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
22CONFIG_SYS_SUPPORTS_CMT=y 22CONFIG_SYS_SUPPORTS_CMT=y
@@ -62,7 +62,6 @@ CONFIG_EMBEDDED=y
62# CONFIG_UID16 is not set 62# CONFIG_UID16 is not set
63# CONFIG_SYSCTL_SYSCALL is not set 63# CONFIG_SYSCTL_SYSCALL is not set
64# CONFIG_KALLSYMS is not set 64# CONFIG_KALLSYMS is not set
65# CONFIG_STRIP_ASM_SYMS is not set
66# CONFIG_HOTPLUG is not set 65# CONFIG_HOTPLUG is not set
67CONFIG_PRINTK=y 66CONFIG_PRINTK=y
68CONFIG_BUG=y 67CONFIG_BUG=y
@@ -74,7 +73,12 @@ CONFIG_SIGNALFD=y
74CONFIG_TIMERFD=y 73CONFIG_TIMERFD=y
75CONFIG_EVENTFD=y 74CONFIG_EVENTFD=y
76CONFIG_AIO=y 75CONFIG_AIO=y
76
77#
78# Performance Counters
79#
77# CONFIG_VM_EVENT_COUNTERS is not set 80# CONFIG_VM_EVENT_COUNTERS is not set
81# CONFIG_STRIP_ASM_SYMS is not set
78CONFIG_COMPAT_BRK=y 82CONFIG_COMPAT_BRK=y
79CONFIG_SLAB=y 83CONFIG_SLAB=y
80# CONFIG_SLUB is not set 84# CONFIG_SLUB is not set
@@ -155,6 +159,7 @@ CONFIG_CPU_SUBTYPE_SH7619=y
155# 159#
156CONFIG_QUICKLIST=y 160CONFIG_QUICKLIST=y
157CONFIG_PAGE_OFFSET=0x00000000 161CONFIG_PAGE_OFFSET=0x00000000
162CONFIG_FORCE_MAX_ZONEORDER=14
158CONFIG_MEMORY_START=0x0c000000 163CONFIG_MEMORY_START=0x0c000000
159CONFIG_MEMORY_SIZE=0x04000000 164CONFIG_MEMORY_SIZE=0x04000000
160CONFIG_29BIT=y 165CONFIG_29BIT=y
@@ -168,7 +173,6 @@ CONFIG_PAGE_SIZE_4KB=y
168# CONFIG_PAGE_SIZE_8KB is not set 173# CONFIG_PAGE_SIZE_8KB is not set
169# CONFIG_PAGE_SIZE_16KB is not set 174# CONFIG_PAGE_SIZE_16KB is not set
170# CONFIG_PAGE_SIZE_64KB is not set 175# CONFIG_PAGE_SIZE_64KB is not set
171CONFIG_ENTRY_OFFSET=0x00001000
172CONFIG_SELECT_MEMORY_MODEL=y 176CONFIG_SELECT_MEMORY_MODEL=y
173CONFIG_FLATMEM_MANUAL=y 177CONFIG_FLATMEM_MANUAL=y
174# CONFIG_DISCONTIGMEM_MANUAL is not set 178# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -181,7 +185,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
181# CONFIG_PHYS_ADDR_T_64BIT is not set 185# CONFIG_PHYS_ADDR_T_64BIT is not set
182CONFIG_ZONE_DMA_FLAG=0 186CONFIG_ZONE_DMA_FLAG=0
183CONFIG_NR_QUICK=2 187CONFIG_NR_QUICK=2
184CONFIG_UNEVICTABLE_LRU=y 188CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
189CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
185 190
186# 191#
187# Cache configuration 192# Cache configuration
@@ -206,10 +211,14 @@ CONFIG_SH_7619_SOLUTION_ENGINE=y
206# 211#
207# Timer and clock configuration 212# Timer and clock configuration
208# 213#
209CONFIG_SH_CMT=y 214CONFIG_SH_TIMER_CMT=y
210CONFIG_SH_TIMER_IRQ=86
211CONFIG_SH_PCLK_FREQ=31250000 215CONFIG_SH_PCLK_FREQ=31250000
216CONFIG_SH_CLK_CPG=y
217CONFIG_SH_CLK_CPG_LEGACY=y
212CONFIG_SH_CLK_MD=5 218CONFIG_SH_CLK_MD=5
219# CONFIG_NO_HZ is not set
220# CONFIG_HIGH_RES_TIMERS is not set
221CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
213 222
214# 223#
215# CPU Frequency scaling 224# CPU Frequency scaling
@@ -245,12 +254,14 @@ CONFIG_PREEMPT_NONE=y
245# CONFIG_PREEMPT_VOLUNTARY is not set 254# CONFIG_PREEMPT_VOLUNTARY is not set
246# CONFIG_PREEMPT is not set 255# CONFIG_PREEMPT is not set
247CONFIG_GUSA=y 256CONFIG_GUSA=y
257# CONFIG_SPARSE_IRQ is not set
248 258
249# 259#
250# Boot options 260# Boot options
251# 261#
252CONFIG_ZERO_PAGE_OFFSET=0x00001000 262CONFIG_ZERO_PAGE_OFFSET=0x00001000
253CONFIG_BOOT_LINK_OFFSET=0x00800000 263CONFIG_BOOT_LINK_OFFSET=0x00800000
264CONFIG_ENTRY_OFFSET=0x00001000
254# CONFIG_CMDLINE_BOOL is not set 265# CONFIG_CMDLINE_BOOL is not set
255 266
256# 267#
@@ -479,21 +490,7 @@ CONFIG_SSB_POSSIBLE=y
479# CONFIG_HTC_PASIC3 is not set 490# CONFIG_HTC_PASIC3 is not set
480# CONFIG_MFD_TMIO is not set 491# CONFIG_MFD_TMIO is not set
481# CONFIG_REGULATOR is not set 492# CONFIG_REGULATOR is not set
482 493# CONFIG_MEDIA_SUPPORT is not set
483#
484# Multimedia devices
485#
486
487#
488# Multimedia core support
489#
490# CONFIG_VIDEO_DEV is not set
491# CONFIG_VIDEO_MEDIA is not set
492
493#
494# Multimedia drivers
495#
496CONFIG_DAB=y
497 494
498# 495#
499# Graphics support 496# Graphics support
@@ -541,10 +538,15 @@ CONFIG_USB_ARCH_HAS_HCD=y
541# CONFIG_MEMSTICK is not set 538# CONFIG_MEMSTICK is not set
542# CONFIG_NEW_LEDS is not set 539# CONFIG_NEW_LEDS is not set
543# CONFIG_ACCESSIBILITY is not set 540# CONFIG_ACCESSIBILITY is not set
541CONFIG_RTC_LIB=y
544# CONFIG_RTC_CLASS is not set 542# CONFIG_RTC_CLASS is not set
545# CONFIG_DMADEVICES is not set 543# CONFIG_DMADEVICES is not set
546# CONFIG_AUXDISPLAY is not set 544# CONFIG_AUXDISPLAY is not set
547# CONFIG_UIO is not set 545# CONFIG_UIO is not set
546
547#
548# TI VLYNQ
549#
548# CONFIG_STAGING is not set 550# CONFIG_STAGING is not set
549 551
550# 552#
@@ -556,11 +558,13 @@ CONFIG_USB_ARCH_HAS_HCD=y
556# CONFIG_REISERFS_FS is not set 558# CONFIG_REISERFS_FS is not set
557# CONFIG_JFS_FS is not set 559# CONFIG_JFS_FS is not set
558# CONFIG_FS_POSIX_ACL is not set 560# CONFIG_FS_POSIX_ACL is not set
559CONFIG_FILE_LOCKING=y
560# CONFIG_XFS_FS is not set 561# CONFIG_XFS_FS is not set
561# CONFIG_BTRFS_FS is not set 562# CONFIG_BTRFS_FS is not set
563CONFIG_FILE_LOCKING=y
564CONFIG_FSNOTIFY=y
562# CONFIG_DNOTIFY is not set 565# CONFIG_DNOTIFY is not set
563# CONFIG_INOTIFY is not set 566# CONFIG_INOTIFY is not set
567CONFIG_INOTIFY_USER=y
564# CONFIG_QUOTA is not set 568# CONFIG_QUOTA is not set
565# CONFIG_AUTOFS_FS is not set 569# CONFIG_AUTOFS_FS is not set
566# CONFIG_AUTOFS4_FS is not set 570# CONFIG_AUTOFS4_FS is not set
@@ -644,25 +648,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
644CONFIG_HAVE_DYNAMIC_FTRACE=y 648CONFIG_HAVE_DYNAMIC_FTRACE=y
645CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 649CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
646CONFIG_TRACING_SUPPORT=y 650CONFIG_TRACING_SUPPORT=y
647 651# CONFIG_FTRACE is not set
648#
649# Tracers
650#
651# CONFIG_FUNCTION_TRACER is not set
652# CONFIG_SCHED_TRACER is not set
653# CONFIG_CONTEXT_SWITCH_TRACER is not set
654# CONFIG_EVENT_TRACER is not set
655# CONFIG_BOOT_TRACER is not set
656# CONFIG_TRACE_BRANCH_PROFILING is not set
657# CONFIG_STACK_TRACER is not set
658# CONFIG_KMEMTRACE is not set
659# CONFIG_WORKQUEUE_TRACER is not set
660# CONFIG_DMA_API_DEBUG is not set 652# CONFIG_DMA_API_DEBUG is not set
661# CONFIG_SAMPLES is not set 653# CONFIG_SAMPLES is not set
662CONFIG_HAVE_ARCH_KGDB=y 654CONFIG_HAVE_ARCH_KGDB=y
663# CONFIG_SH_STANDARD_BIOS is not set 655# CONFIG_SH_STANDARD_BIOS is not set
664# CONFIG_EARLY_SCIF_CONSOLE is not set 656# CONFIG_EARLY_SCIF_CONSOLE is not set
665# CONFIG_MORE_COMPILE_OPTIONS is not set
666 657
667# 658#
668# Security options 659# Security options
@@ -689,3 +680,4 @@ CONFIG_ZLIB_INFLATE=y
689CONFIG_HAS_IOMEM=y 680CONFIG_HAS_IOMEM=y
690CONFIG_HAS_IOPORT=y 681CONFIG_HAS_IOPORT=y
691CONFIG_HAS_DMA=y 682CONFIG_HAS_DMA=y
683CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7705_defconfig b/arch/sh/configs/se7705_defconfig
index bae161c6683..6ca6a2fc06e 100644
--- a/arch/sh/configs/se7705_defconfig
+++ b/arch/sh/configs/se7705_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:02:52 2009 4# Thu Jun 18 12:48:18 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -70,7 +71,6 @@ CONFIG_EMBEDDED=y
70CONFIG_UID16=y 71CONFIG_UID16=y
71# CONFIG_SYSCTL_SYSCALL is not set 72# CONFIG_SYSCTL_SYSCALL is not set
72# CONFIG_KALLSYMS is not set 73# CONFIG_KALLSYMS is not set
73# CONFIG_STRIP_ASM_SYMS is not set
74# CONFIG_HOTPLUG is not set 74# CONFIG_HOTPLUG is not set
75CONFIG_PRINTK=y 75CONFIG_PRINTK=y
76CONFIG_BUG=y 76CONFIG_BUG=y
@@ -83,7 +83,12 @@ CONFIG_TIMERFD=y
83CONFIG_EVENTFD=y 83CONFIG_EVENTFD=y
84CONFIG_SHMEM=y 84CONFIG_SHMEM=y
85CONFIG_AIO=y 85CONFIG_AIO=y
86
87#
88# Performance Counters
89#
86CONFIG_VM_EVENT_COUNTERS=y 90CONFIG_VM_EVENT_COUNTERS=y
91# CONFIG_STRIP_ASM_SYMS is not set
87CONFIG_COMPAT_BRK=y 92CONFIG_COMPAT_BRK=y
88CONFIG_SLAB=y 93CONFIG_SLAB=y
89# CONFIG_SLUB is not set 94# CONFIG_SLUB is not set
@@ -171,6 +176,7 @@ CONFIG_CPU_SUBTYPE_SH7705=y
171CONFIG_QUICKLIST=y 176CONFIG_QUICKLIST=y
172CONFIG_MMU=y 177CONFIG_MMU=y
173CONFIG_PAGE_OFFSET=0x80000000 178CONFIG_PAGE_OFFSET=0x80000000
179CONFIG_FORCE_MAX_ZONEORDER=11
174CONFIG_MEMORY_START=0x0c000000 180CONFIG_MEMORY_START=0x0c000000
175CONFIG_MEMORY_SIZE=0x02000000 181CONFIG_MEMORY_SIZE=0x02000000
176CONFIG_29BIT=y 182CONFIG_29BIT=y
@@ -185,7 +191,6 @@ CONFIG_PAGE_SIZE_4KB=y
185# CONFIG_PAGE_SIZE_8KB is not set 191# CONFIG_PAGE_SIZE_8KB is not set
186# CONFIG_PAGE_SIZE_16KB is not set 192# CONFIG_PAGE_SIZE_16KB is not set
187# CONFIG_PAGE_SIZE_64KB is not set 193# CONFIG_PAGE_SIZE_64KB is not set
188CONFIG_ENTRY_OFFSET=0x00001000
189CONFIG_SELECT_MEMORY_MODEL=y 194CONFIG_SELECT_MEMORY_MODEL=y
190CONFIG_FLATMEM_MANUAL=y 195CONFIG_FLATMEM_MANUAL=y
191# CONFIG_DISCONTIGMEM_MANUAL is not set 196# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -198,9 +203,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
198# CONFIG_PHYS_ADDR_T_64BIT is not set 203# CONFIG_PHYS_ADDR_T_64BIT is not set
199CONFIG_ZONE_DMA_FLAG=0 204CONFIG_ZONE_DMA_FLAG=0
200CONFIG_NR_QUICK=2 205CONFIG_NR_QUICK=2
201CONFIG_UNEVICTABLE_LRU=y
202CONFIG_HAVE_MLOCK=y 206CONFIG_HAVE_MLOCK=y
203CONFIG_HAVE_MLOCKED_PAGE_BIT=y 207CONFIG_HAVE_MLOCKED_PAGE_BIT=y
208CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
204 209
205# 210#
206# Cache configuration 211# Cache configuration
@@ -231,9 +236,10 @@ CONFIG_SH_SOLUTION_ENGINE=y
231# 236#
232# Timer and clock configuration 237# Timer and clock configuration
233# 238#
234CONFIG_SH_TMU=y 239CONFIG_SH_TIMER_TMU=y
235CONFIG_SH_TIMER_IRQ=16
236CONFIG_SH_PCLK_FREQ=33333333 240CONFIG_SH_PCLK_FREQ=33333333
241CONFIG_SH_CLK_CPG=y
242CONFIG_SH_CLK_CPG_LEGACY=y
237# CONFIG_NO_HZ is not set 243# CONFIG_NO_HZ is not set
238# CONFIG_HIGH_RES_TIMERS is not set 244# CONFIG_HIGH_RES_TIMERS is not set
239CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 245CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -275,12 +281,14 @@ CONFIG_HZ=250
275CONFIG_PREEMPT=y 281CONFIG_PREEMPT=y
276CONFIG_GUSA=y 282CONFIG_GUSA=y
277# CONFIG_GUSA_RB is not set 283# CONFIG_GUSA_RB is not set
284# CONFIG_SPARSE_IRQ is not set
278 285
279# 286#
280# Boot options 287# Boot options
281# 288#
282CONFIG_ZERO_PAGE_OFFSET=0x00001000 289CONFIG_ZERO_PAGE_OFFSET=0x00001000
283CONFIG_BOOT_LINK_OFFSET=0x00800000 290CONFIG_BOOT_LINK_OFFSET=0x00800000
291CONFIG_ENTRY_OFFSET=0x00001000
284# CONFIG_CMDLINE_BOOL is not set 292# CONFIG_CMDLINE_BOOL is not set
285 293
286# 294#
@@ -361,6 +369,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
361# CONFIG_ECONET is not set 369# CONFIG_ECONET is not set
362# CONFIG_WAN_ROUTER is not set 370# CONFIG_WAN_ROUTER is not set
363# CONFIG_PHONET is not set 371# CONFIG_PHONET is not set
372# CONFIG_IEEE802154 is not set
364# CONFIG_NET_SCHED is not set 373# CONFIG_NET_SCHED is not set
365# CONFIG_DCB is not set 374# CONFIG_DCB is not set
366 375
@@ -378,7 +387,11 @@ CONFIG_WIRELESS=y
378# CONFIG_WIRELESS_OLD_REGULATORY is not set 387# CONFIG_WIRELESS_OLD_REGULATORY is not set
379# CONFIG_WIRELESS_EXT is not set 388# CONFIG_WIRELESS_EXT is not set
380# CONFIG_LIB80211 is not set 389# CONFIG_LIB80211 is not set
381# CONFIG_MAC80211 is not set 390
391#
392# CFG80211 needs to be enabled for MAC80211
393#
394CONFIG_MAC80211_DEFAULT_PS_VALUE=0
382# CONFIG_WIMAX is not set 395# CONFIG_WIMAX is not set
383# CONFIG_RFKILL is not set 396# CONFIG_RFKILL is not set
384# CONFIG_NET_9P is not set 397# CONFIG_NET_9P is not set
@@ -507,7 +520,6 @@ CONFIG_HAVE_IDE=y
507# CONFIG_ATA is not set 520# CONFIG_ATA is not set
508# CONFIG_MD is not set 521# CONFIG_MD is not set
509CONFIG_NETDEVICES=y 522CONFIG_NETDEVICES=y
510CONFIG_COMPAT_NET_DEV_OPS=y
511# CONFIG_DUMMY is not set 523# CONFIG_DUMMY is not set
512# CONFIG_BONDING is not set 524# CONFIG_BONDING is not set
513# CONFIG_MACVLAN is not set 525# CONFIG_MACVLAN is not set
@@ -532,6 +544,7 @@ CONFIG_STNIC=y
532# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 544# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
533# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 545# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
534# CONFIG_B44 is not set 546# CONFIG_B44 is not set
547# CONFIG_KS8842 is not set
535CONFIG_NETDEV_1000=y 548CONFIG_NETDEV_1000=y
536CONFIG_NETDEV_10000=y 549CONFIG_NETDEV_10000=y
537 550
@@ -662,22 +675,7 @@ CONFIG_SSB_POSSIBLE=y
662# CONFIG_HTC_PASIC3 is not set 675# CONFIG_HTC_PASIC3 is not set
663# CONFIG_MFD_TMIO is not set 676# CONFIG_MFD_TMIO is not set
664# CONFIG_REGULATOR is not set 677# CONFIG_REGULATOR is not set
665 678# CONFIG_MEDIA_SUPPORT is not set
666#
667# Multimedia devices
668#
669
670#
671# Multimedia core support
672#
673# CONFIG_VIDEO_DEV is not set
674# CONFIG_DVB_CORE is not set
675# CONFIG_VIDEO_MEDIA is not set
676
677#
678# Multimedia drivers
679#
680# CONFIG_DAB is not set
681 679
682# 680#
683# Graphics support 681# Graphics support
@@ -725,10 +723,15 @@ CONFIG_USB_ARCH_HAS_HCD=y
725# CONFIG_MEMSTICK is not set 723# CONFIG_MEMSTICK is not set
726# CONFIG_NEW_LEDS is not set 724# CONFIG_NEW_LEDS is not set
727# CONFIG_ACCESSIBILITY is not set 725# CONFIG_ACCESSIBILITY is not set
726CONFIG_RTC_LIB=y
728# CONFIG_RTC_CLASS is not set 727# CONFIG_RTC_CLASS is not set
729# CONFIG_DMADEVICES is not set 728# CONFIG_DMADEVICES is not set
730# CONFIG_AUXDISPLAY is not set 729# CONFIG_AUXDISPLAY is not set
731# CONFIG_UIO is not set 730# CONFIG_UIO is not set
731
732#
733# TI VLYNQ
734#
732# CONFIG_STAGING is not set 735# CONFIG_STAGING is not set
733 736
734# 737#
@@ -742,9 +745,10 @@ CONFIG_EXT2_FS=y
742# CONFIG_REISERFS_FS is not set 745# CONFIG_REISERFS_FS is not set
743# CONFIG_JFS_FS is not set 746# CONFIG_JFS_FS is not set
744# CONFIG_FS_POSIX_ACL is not set 747# CONFIG_FS_POSIX_ACL is not set
745CONFIG_FILE_LOCKING=y
746# CONFIG_XFS_FS is not set 748# CONFIG_XFS_FS is not set
747# CONFIG_BTRFS_FS is not set 749# CONFIG_BTRFS_FS is not set
750CONFIG_FILE_LOCKING=y
751CONFIG_FSNOTIFY=y
748CONFIG_DNOTIFY=y 752CONFIG_DNOTIFY=y
749CONFIG_INOTIFY=y 753CONFIG_INOTIFY=y
750CONFIG_INOTIFY_USER=y 754CONFIG_INOTIFY_USER=y
@@ -856,27 +860,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
856CONFIG_HAVE_DYNAMIC_FTRACE=y 860CONFIG_HAVE_DYNAMIC_FTRACE=y
857CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 861CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
858CONFIG_TRACING_SUPPORT=y 862CONFIG_TRACING_SUPPORT=y
859 863# CONFIG_FTRACE is not set
860#
861# Tracers
862#
863# CONFIG_FUNCTION_TRACER is not set
864# CONFIG_IRQSOFF_TRACER is not set
865# CONFIG_PREEMPT_TRACER is not set
866# CONFIG_SCHED_TRACER is not set
867# CONFIG_CONTEXT_SWITCH_TRACER is not set
868# CONFIG_EVENT_TRACER is not set
869# CONFIG_BOOT_TRACER is not set
870# CONFIG_TRACE_BRANCH_PROFILING is not set
871# CONFIG_STACK_TRACER is not set
872# CONFIG_KMEMTRACE is not set
873# CONFIG_WORKQUEUE_TRACER is not set
874# CONFIG_DMA_API_DEBUG is not set 864# CONFIG_DMA_API_DEBUG is not set
875# CONFIG_SAMPLES is not set 865# CONFIG_SAMPLES is not set
876CONFIG_HAVE_ARCH_KGDB=y 866CONFIG_HAVE_ARCH_KGDB=y
877# CONFIG_SH_STANDARD_BIOS is not set 867# CONFIG_SH_STANDARD_BIOS is not set
878# CONFIG_EARLY_SCIF_CONSOLE is not set 868# CONFIG_EARLY_SCIF_CONSOLE is not set
879# CONFIG_MORE_COMPILE_OPTIONS is not set
880 869
881# 870#
882# Security options 871# Security options
@@ -991,3 +980,4 @@ CONFIG_HAS_IOMEM=y
991CONFIG_HAS_IOPORT=y 980CONFIG_HAS_IOPORT=y
992CONFIG_HAS_DMA=y 981CONFIG_HAS_DMA=y
993CONFIG_NLATTR=y 982CONFIG_NLATTR=y
983CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7712_defconfig b/arch/sh/configs/se7712_defconfig
index 330043f3c31..b8aae11bc8f 100644
--- a/arch/sh/configs/se7712_defconfig
+++ b/arch/sh/configs/se7712_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:03:27 2009 4# Thu Jun 18 12:49:00 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -18,6 +18,7 @@ CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20CONFIG_ARCH_HIBERNATION_POSSIBLE=y 20CONFIG_ARCH_HIBERNATION_POSSIBLE=y
21CONFIG_SYS_SUPPORTS_TMU=y
21CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
23CONFIG_HAVE_LATENCYTOP_SUPPORT=y 24CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -71,7 +72,6 @@ CONFIG_SYSCTL_SYSCALL=y
71CONFIG_KALLSYMS=y 72CONFIG_KALLSYMS=y
72CONFIG_KALLSYMS_ALL=y 73CONFIG_KALLSYMS_ALL=y
73# CONFIG_KALLSYMS_EXTRA_PASS is not set 74# CONFIG_KALLSYMS_EXTRA_PASS is not set
74# CONFIG_STRIP_ASM_SYMS is not set
75CONFIG_HOTPLUG=y 75CONFIG_HOTPLUG=y
76CONFIG_PRINTK=y 76CONFIG_PRINTK=y
77# CONFIG_BUG is not set 77# CONFIG_BUG is not set
@@ -84,7 +84,12 @@ CONFIG_TIMERFD=y
84CONFIG_EVENTFD=y 84CONFIG_EVENTFD=y
85# CONFIG_SHMEM is not set 85# CONFIG_SHMEM is not set
86CONFIG_AIO=y 86CONFIG_AIO=y
87
88#
89# Performance Counters
90#
87CONFIG_VM_EVENT_COUNTERS=y 91CONFIG_VM_EVENT_COUNTERS=y
92# CONFIG_STRIP_ASM_SYMS is not set
88CONFIG_COMPAT_BRK=y 93CONFIG_COMPAT_BRK=y
89CONFIG_SLAB=y 94CONFIG_SLAB=y
90# CONFIG_SLUB is not set 95# CONFIG_SLUB is not set
@@ -173,6 +178,7 @@ CONFIG_CPU_SUBTYPE_SH7712=y
173CONFIG_QUICKLIST=y 178CONFIG_QUICKLIST=y
174CONFIG_MMU=y 179CONFIG_MMU=y
175CONFIG_PAGE_OFFSET=0x80000000 180CONFIG_PAGE_OFFSET=0x80000000
181CONFIG_FORCE_MAX_ZONEORDER=11
176CONFIG_MEMORY_START=0x0c000000 182CONFIG_MEMORY_START=0x0c000000
177CONFIG_MEMORY_SIZE=0x02000000 183CONFIG_MEMORY_SIZE=0x02000000
178CONFIG_29BIT=y 184CONFIG_29BIT=y
@@ -187,7 +193,6 @@ CONFIG_PAGE_SIZE_4KB=y
187# CONFIG_PAGE_SIZE_8KB is not set 193# CONFIG_PAGE_SIZE_8KB is not set
188# CONFIG_PAGE_SIZE_16KB is not set 194# CONFIG_PAGE_SIZE_16KB is not set
189# CONFIG_PAGE_SIZE_64KB is not set 195# CONFIG_PAGE_SIZE_64KB is not set
190CONFIG_ENTRY_OFFSET=0x00001000
191CONFIG_SELECT_MEMORY_MODEL=y 196CONFIG_SELECT_MEMORY_MODEL=y
192CONFIG_FLATMEM_MANUAL=y 197CONFIG_FLATMEM_MANUAL=y
193# CONFIG_DISCONTIGMEM_MANUAL is not set 198# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -200,9 +205,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
200# CONFIG_PHYS_ADDR_T_64BIT is not set 205# CONFIG_PHYS_ADDR_T_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=0 206CONFIG_ZONE_DMA_FLAG=0
202CONFIG_NR_QUICK=2 207CONFIG_NR_QUICK=2
203CONFIG_UNEVICTABLE_LRU=y
204CONFIG_HAVE_MLOCK=y 208CONFIG_HAVE_MLOCK=y
205CONFIG_HAVE_MLOCKED_PAGE_BIT=y 209CONFIG_HAVE_MLOCKED_PAGE_BIT=y
210CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
206 211
207# 212#
208# Cache configuration 213# Cache configuration
@@ -233,9 +238,10 @@ CONFIG_SH_SOLUTION_ENGINE=y
233# 238#
234# Timer and clock configuration 239# Timer and clock configuration
235# 240#
236CONFIG_SH_TMU=y 241CONFIG_SH_TIMER_TMU=y
237CONFIG_SH_TIMER_IRQ=16
238CONFIG_SH_PCLK_FREQ=66666666 242CONFIG_SH_PCLK_FREQ=66666666
243CONFIG_SH_CLK_CPG=y
244CONFIG_SH_CLK_CPG_LEGACY=y
239# CONFIG_NO_HZ is not set 245# CONFIG_NO_HZ is not set
240# CONFIG_HIGH_RES_TIMERS is not set 246# CONFIG_HIGH_RES_TIMERS is not set
241CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 247CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -277,12 +283,14 @@ CONFIG_PREEMPT_VOLUNTARY=y
277# CONFIG_PREEMPT is not set 283# CONFIG_PREEMPT is not set
278CONFIG_GUSA=y 284CONFIG_GUSA=y
279# CONFIG_GUSA_RB is not set 285# CONFIG_GUSA_RB is not set
286# CONFIG_SPARSE_IRQ is not set
280 287
281# 288#
282# Boot options 289# Boot options
283# 290#
284CONFIG_ZERO_PAGE_OFFSET=0x00001000 291CONFIG_ZERO_PAGE_OFFSET=0x00001000
285CONFIG_BOOT_LINK_OFFSET=0x00800000 292CONFIG_BOOT_LINK_OFFSET=0x00800000
293CONFIG_ENTRY_OFFSET=0x00001000
286CONFIG_CMDLINE_BOOL=y 294CONFIG_CMDLINE_BOOL=y
287CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1" 295CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
288 296
@@ -374,6 +382,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
374# CONFIG_ECONET is not set 382# CONFIG_ECONET is not set
375# CONFIG_WAN_ROUTER is not set 383# CONFIG_WAN_ROUTER is not set
376# CONFIG_PHONET is not set 384# CONFIG_PHONET is not set
385# CONFIG_IEEE802154 is not set
377CONFIG_NET_SCHED=y 386CONFIG_NET_SCHED=y
378 387
379# 388#
@@ -427,7 +436,11 @@ CONFIG_WIRELESS=y
427# CONFIG_WIRELESS_OLD_REGULATORY is not set 436# CONFIG_WIRELESS_OLD_REGULATORY is not set
428# CONFIG_WIRELESS_EXT is not set 437# CONFIG_WIRELESS_EXT is not set
429# CONFIG_LIB80211 is not set 438# CONFIG_LIB80211 is not set
430# CONFIG_MAC80211 is not set 439
440#
441# CFG80211 needs to be enabled for MAC80211
442#
443CONFIG_MAC80211_DEFAULT_PS_VALUE=0
431# CONFIG_WIMAX is not set 444# CONFIG_WIMAX is not set
432# CONFIG_RFKILL is not set 445# CONFIG_RFKILL is not set
433# CONFIG_NET_9P is not set 446# CONFIG_NET_9P is not set
@@ -568,10 +581,6 @@ CONFIG_BLK_DEV_SD=y
568# CONFIG_BLK_DEV_SR is not set 581# CONFIG_BLK_DEV_SR is not set
569# CONFIG_CHR_DEV_SG is not set 582# CONFIG_CHR_DEV_SG is not set
570# CONFIG_CHR_DEV_SCH is not set 583# CONFIG_CHR_DEV_SCH is not set
571
572#
573# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
574#
575# CONFIG_SCSI_MULTI_LUN is not set 584# CONFIG_SCSI_MULTI_LUN is not set
576# CONFIG_SCSI_CONSTANTS is not set 585# CONFIG_SCSI_CONSTANTS is not set
577# CONFIG_SCSI_LOGGING is not set 586# CONFIG_SCSI_LOGGING is not set
@@ -588,6 +597,7 @@ CONFIG_SCSI_WAIT_SCAN=m
588# CONFIG_SCSI_SRP_ATTRS is not set 597# CONFIG_SCSI_SRP_ATTRS is not set
589CONFIG_SCSI_LOWLEVEL=y 598CONFIG_SCSI_LOWLEVEL=y
590# CONFIG_ISCSI_TCP is not set 599# CONFIG_ISCSI_TCP is not set
600# CONFIG_SCSI_BNX2_ISCSI is not set
591# CONFIG_LIBFC is not set 601# CONFIG_LIBFC is not set
592# CONFIG_LIBFCOE is not set 602# CONFIG_LIBFCOE is not set
593# CONFIG_SCSI_DEBUG is not set 603# CONFIG_SCSI_DEBUG is not set
@@ -601,7 +611,6 @@ CONFIG_ATA_SFF=y
601CONFIG_PATA_PLATFORM=y 611CONFIG_PATA_PLATFORM=y
602# CONFIG_MD is not set 612# CONFIG_MD is not set
603CONFIG_NETDEVICES=y 613CONFIG_NETDEVICES=y
604CONFIG_COMPAT_NET_DEV_OPS=y
605# CONFIG_DUMMY is not set 614# CONFIG_DUMMY is not set
606# CONFIG_BONDING is not set 615# CONFIG_BONDING is not set
607# CONFIG_MACVLAN is not set 616# CONFIG_MACVLAN is not set
@@ -646,6 +655,7 @@ CONFIG_SH_ETH=y
646# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 655# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
647# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 656# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
648# CONFIG_B44 is not set 657# CONFIG_B44 is not set
658# CONFIG_KS8842 is not set
649CONFIG_NETDEV_1000=y 659CONFIG_NETDEV_1000=y
650CONFIG_NETDEV_10000=y 660CONFIG_NETDEV_10000=y
651 661
@@ -730,22 +740,7 @@ CONFIG_SSB_POSSIBLE=y
730# CONFIG_HTC_PASIC3 is not set 740# CONFIG_HTC_PASIC3 is not set
731# CONFIG_MFD_TMIO is not set 741# CONFIG_MFD_TMIO is not set
732# CONFIG_REGULATOR is not set 742# CONFIG_REGULATOR is not set
733 743# CONFIG_MEDIA_SUPPORT is not set
734#
735# Multimedia devices
736#
737
738#
739# Multimedia core support
740#
741# CONFIG_VIDEO_DEV is not set
742# CONFIG_DVB_CORE is not set
743# CONFIG_VIDEO_MEDIA is not set
744
745#
746# Multimedia drivers
747#
748# CONFIG_DAB is not set
749 744
750# 745#
751# Graphics support 746# Graphics support
@@ -802,10 +797,15 @@ CONFIG_LEDS_TRIGGERS=y
802# iptables trigger is under Netfilter config (LED target) 797# iptables trigger is under Netfilter config (LED target)
803# 798#
804# CONFIG_ACCESSIBILITY is not set 799# CONFIG_ACCESSIBILITY is not set
800CONFIG_RTC_LIB=y
805# CONFIG_RTC_CLASS is not set 801# CONFIG_RTC_CLASS is not set
806# CONFIG_DMADEVICES is not set 802# CONFIG_DMADEVICES is not set
807# CONFIG_AUXDISPLAY is not set 803# CONFIG_AUXDISPLAY is not set
808# CONFIG_UIO is not set 804# CONFIG_UIO is not set
805
806#
807# TI VLYNQ
808#
809# CONFIG_STAGING is not set 809# CONFIG_STAGING is not set
810 810
811# 811#
@@ -827,12 +827,14 @@ CONFIG_FS_MBCACHE=y
827# CONFIG_REISERFS_FS is not set 827# CONFIG_REISERFS_FS is not set
828# CONFIG_JFS_FS is not set 828# CONFIG_JFS_FS is not set
829CONFIG_FS_POSIX_ACL=y 829CONFIG_FS_POSIX_ACL=y
830CONFIG_FILE_LOCKING=y
831# CONFIG_XFS_FS is not set 830# CONFIG_XFS_FS is not set
832# CONFIG_OCFS2_FS is not set 831# CONFIG_OCFS2_FS is not set
833# CONFIG_BTRFS_FS is not set 832# CONFIG_BTRFS_FS is not set
833CONFIG_FILE_LOCKING=y
834CONFIG_FSNOTIFY=y
834# CONFIG_DNOTIFY is not set 835# CONFIG_DNOTIFY is not set
835# CONFIG_INOTIFY is not set 836# CONFIG_INOTIFY is not set
837CONFIG_INOTIFY_USER=y
836# CONFIG_QUOTA is not set 838# CONFIG_QUOTA is not set
837# CONFIG_AUTOFS_FS is not set 839# CONFIG_AUTOFS_FS is not set
838# CONFIG_AUTOFS4_FS is not set 840# CONFIG_AUTOFS4_FS is not set
@@ -975,17 +977,15 @@ CONFIG_HAVE_FUNCTION_TRACER=y
975CONFIG_HAVE_DYNAMIC_FTRACE=y 977CONFIG_HAVE_DYNAMIC_FTRACE=y
976CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 978CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
977CONFIG_TRACING_SUPPORT=y 979CONFIG_TRACING_SUPPORT=y
978 980CONFIG_FTRACE=y
979#
980# Tracers
981#
982# CONFIG_FUNCTION_TRACER is not set 981# CONFIG_FUNCTION_TRACER is not set
983# CONFIG_IRQSOFF_TRACER is not set 982# CONFIG_IRQSOFF_TRACER is not set
984# CONFIG_SCHED_TRACER is not set 983# CONFIG_SCHED_TRACER is not set
985# CONFIG_CONTEXT_SWITCH_TRACER is not set 984# CONFIG_ENABLE_DEFAULT_TRACERS is not set
986# CONFIG_EVENT_TRACER is not set
987# CONFIG_BOOT_TRACER is not set 985# CONFIG_BOOT_TRACER is not set
988# CONFIG_TRACE_BRANCH_PROFILING is not set 986CONFIG_BRANCH_PROFILE_NONE=y
987# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
988# CONFIG_PROFILE_ALL_BRANCHES is not set
989# CONFIG_STACK_TRACER is not set 989# CONFIG_STACK_TRACER is not set
990# CONFIG_KMEMTRACE is not set 990# CONFIG_KMEMTRACE is not set
991# CONFIG_WORKQUEUE_TRACER is not set 991# CONFIG_WORKQUEUE_TRACER is not set
@@ -994,16 +994,15 @@ CONFIG_TRACING_SUPPORT=y
994# CONFIG_SAMPLES is not set 994# CONFIG_SAMPLES is not set
995CONFIG_HAVE_ARCH_KGDB=y 995CONFIG_HAVE_ARCH_KGDB=y
996# CONFIG_KGDB is not set 996# CONFIG_KGDB is not set
997# CONFIG_KMEMCHECK is not set
997# CONFIG_SH_STANDARD_BIOS is not set 998# CONFIG_SH_STANDARD_BIOS is not set
998# CONFIG_EARLY_SCIF_CONSOLE is not set 999# CONFIG_EARLY_SCIF_CONSOLE is not set
999# CONFIG_DEBUG_BOOTMEM is not set 1000# CONFIG_DEBUG_BOOTMEM is not set
1000# CONFIG_DEBUG_STACKOVERFLOW is not set 1001# CONFIG_DEBUG_STACKOVERFLOW is not set
1001# CONFIG_DEBUG_STACK_USAGE is not set 1002# CONFIG_DEBUG_STACK_USAGE is not set
1002# CONFIG_4KSTACKS is not set 1003# CONFIG_4KSTACKS is not set
1003# CONFIG_IRQSTACKS is not set
1004# CONFIG_DUMP_CODE is not set 1004# CONFIG_DUMP_CODE is not set
1005# CONFIG_SH_NO_BSS_INIT is not set 1005# CONFIG_SH_NO_BSS_INIT is not set
1006# CONFIG_MORE_COMPILE_OPTIONS is not set
1007 1006
1008# 1007#
1009# Security options 1008# Security options
@@ -1129,3 +1128,4 @@ CONFIG_HAS_IOMEM=y
1129CONFIG_HAS_IOPORT=y 1128CONFIG_HAS_IOPORT=y
1130CONFIG_HAS_DMA=y 1129CONFIG_HAS_DMA=y
1131CONFIG_NLATTR=y 1130CONFIG_NLATTR=y
1131CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7721_defconfig b/arch/sh/configs/se7721_defconfig
index 56478918440..306e21c4253 100644
--- a/arch/sh/configs/se7721_defconfig
+++ b/arch/sh/configs/se7721_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:04:19 2009 4# Thu Jun 18 12:50:49 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -18,6 +18,8 @@ CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20CONFIG_ARCH_HIBERNATION_POSSIBLE=y 20CONFIG_ARCH_HIBERNATION_POSSIBLE=y
21CONFIG_SYS_SUPPORTS_CMT=y
22CONFIG_SYS_SUPPORTS_TMU=y
21CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
23CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -75,7 +77,6 @@ CONFIG_SYSCTL_SYSCALL=y
75CONFIG_KALLSYMS=y 77CONFIG_KALLSYMS=y
76CONFIG_KALLSYMS_ALL=y 78CONFIG_KALLSYMS_ALL=y
77# CONFIG_KALLSYMS_EXTRA_PASS is not set 79# CONFIG_KALLSYMS_EXTRA_PASS is not set
78# CONFIG_STRIP_ASM_SYMS is not set
79CONFIG_HOTPLUG=y 80CONFIG_HOTPLUG=y
80CONFIG_PRINTK=y 81CONFIG_PRINTK=y
81# CONFIG_BUG is not set 82# CONFIG_BUG is not set
@@ -88,7 +89,12 @@ CONFIG_TIMERFD=y
88CONFIG_EVENTFD=y 89CONFIG_EVENTFD=y
89# CONFIG_SHMEM is not set 90# CONFIG_SHMEM is not set
90CONFIG_AIO=y 91CONFIG_AIO=y
92
93#
94# Performance Counters
95#
91CONFIG_VM_EVENT_COUNTERS=y 96CONFIG_VM_EVENT_COUNTERS=y
97# CONFIG_STRIP_ASM_SYMS is not set
92CONFIG_COMPAT_BRK=y 98CONFIG_COMPAT_BRK=y
93CONFIG_SLAB=y 99CONFIG_SLAB=y
94# CONFIG_SLUB is not set 100# CONFIG_SLUB is not set
@@ -177,6 +183,7 @@ CONFIG_CPU_SUBTYPE_SH7721=y
177CONFIG_QUICKLIST=y 183CONFIG_QUICKLIST=y
178CONFIG_MMU=y 184CONFIG_MMU=y
179CONFIG_PAGE_OFFSET=0x80000000 185CONFIG_PAGE_OFFSET=0x80000000
186CONFIG_FORCE_MAX_ZONEORDER=11
180CONFIG_MEMORY_START=0x0c000000 187CONFIG_MEMORY_START=0x0c000000
181CONFIG_MEMORY_SIZE=0x02000000 188CONFIG_MEMORY_SIZE=0x02000000
182CONFIG_29BIT=y 189CONFIG_29BIT=y
@@ -191,7 +198,6 @@ CONFIG_PAGE_SIZE_4KB=y
191# CONFIG_PAGE_SIZE_8KB is not set 198# CONFIG_PAGE_SIZE_8KB is not set
192# CONFIG_PAGE_SIZE_16KB is not set 199# CONFIG_PAGE_SIZE_16KB is not set
193# CONFIG_PAGE_SIZE_64KB is not set 200# CONFIG_PAGE_SIZE_64KB is not set
194CONFIG_ENTRY_OFFSET=0x00001000
195CONFIG_SELECT_MEMORY_MODEL=y 201CONFIG_SELECT_MEMORY_MODEL=y
196CONFIG_FLATMEM_MANUAL=y 202CONFIG_FLATMEM_MANUAL=y
197# CONFIG_DISCONTIGMEM_MANUAL is not set 203# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -204,9 +210,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
204# CONFIG_PHYS_ADDR_T_64BIT is not set 210# CONFIG_PHYS_ADDR_T_64BIT is not set
205CONFIG_ZONE_DMA_FLAG=0 211CONFIG_ZONE_DMA_FLAG=0
206CONFIG_NR_QUICK=2 212CONFIG_NR_QUICK=2
207CONFIG_UNEVICTABLE_LRU=y
208CONFIG_HAVE_MLOCK=y 213CONFIG_HAVE_MLOCK=y
209CONFIG_HAVE_MLOCKED_PAGE_BIT=y 214CONFIG_HAVE_MLOCKED_PAGE_BIT=y
215CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
210 216
211# 217#
212# Cache configuration 218# Cache configuration
@@ -236,9 +242,11 @@ CONFIG_SH_7721_SOLUTION_ENGINE=y
236# 242#
237# Timer and clock configuration 243# Timer and clock configuration
238# 244#
239CONFIG_SH_TMU=y 245CONFIG_SH_TIMER_TMU=y
240CONFIG_SH_TIMER_IRQ=16 246CONFIG_SH_TIMER_CMT=y
241CONFIG_SH_PCLK_FREQ=33333333 247CONFIG_SH_PCLK_FREQ=33333333
248CONFIG_SH_CLK_CPG=y
249CONFIG_SH_CLK_CPG_LEGACY=y
242# CONFIG_NO_HZ is not set 250# CONFIG_NO_HZ is not set
243# CONFIG_HIGH_RES_TIMERS is not set 251# CONFIG_HIGH_RES_TIMERS is not set
244CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 252CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -280,12 +288,14 @@ CONFIG_PREEMPT_VOLUNTARY=y
280# CONFIG_PREEMPT is not set 288# CONFIG_PREEMPT is not set
281CONFIG_GUSA=y 289CONFIG_GUSA=y
282# CONFIG_GUSA_RB is not set 290# CONFIG_GUSA_RB is not set
291# CONFIG_SPARSE_IRQ is not set
283 292
284# 293#
285# Boot options 294# Boot options
286# 295#
287CONFIG_ZERO_PAGE_OFFSET=0x00001000 296CONFIG_ZERO_PAGE_OFFSET=0x00001000
288CONFIG_BOOT_LINK_OFFSET=0x00800000 297CONFIG_BOOT_LINK_OFFSET=0x00800000
298CONFIG_ENTRY_OFFSET=0x00001000
289CONFIG_CMDLINE_BOOL=y 299CONFIG_CMDLINE_BOOL=y
290CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda2" 300CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda2"
291 301
@@ -377,6 +387,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
377# CONFIG_ECONET is not set 387# CONFIG_ECONET is not set
378# CONFIG_WAN_ROUTER is not set 388# CONFIG_WAN_ROUTER is not set
379# CONFIG_PHONET is not set 389# CONFIG_PHONET is not set
390# CONFIG_IEEE802154 is not set
380CONFIG_NET_SCHED=y 391CONFIG_NET_SCHED=y
381 392
382# 393#
@@ -430,7 +441,11 @@ CONFIG_WIRELESS=y
430# CONFIG_WIRELESS_OLD_REGULATORY is not set 441# CONFIG_WIRELESS_OLD_REGULATORY is not set
431# CONFIG_WIRELESS_EXT is not set 442# CONFIG_WIRELESS_EXT is not set
432# CONFIG_LIB80211 is not set 443# CONFIG_LIB80211 is not set
433# CONFIG_MAC80211 is not set 444
445#
446# CFG80211 needs to be enabled for MAC80211
447#
448CONFIG_MAC80211_DEFAULT_PS_VALUE=0
434# CONFIG_WIMAX is not set 449# CONFIG_WIMAX is not set
435# CONFIG_RFKILL is not set 450# CONFIG_RFKILL is not set
436# CONFIG_NET_9P is not set 451# CONFIG_NET_9P is not set
@@ -572,10 +587,6 @@ CONFIG_BLK_DEV_SD=y
572# CONFIG_BLK_DEV_SR is not set 587# CONFIG_BLK_DEV_SR is not set
573# CONFIG_CHR_DEV_SG is not set 588# CONFIG_CHR_DEV_SG is not set
574# CONFIG_CHR_DEV_SCH is not set 589# CONFIG_CHR_DEV_SCH is not set
575
576#
577# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
578#
579CONFIG_SCSI_MULTI_LUN=y 590CONFIG_SCSI_MULTI_LUN=y
580# CONFIG_SCSI_CONSTANTS is not set 591# CONFIG_SCSI_CONSTANTS is not set
581# CONFIG_SCSI_LOGGING is not set 592# CONFIG_SCSI_LOGGING is not set
@@ -601,7 +612,6 @@ CONFIG_ATA_SFF=y
601CONFIG_PATA_PLATFORM=y 612CONFIG_PATA_PLATFORM=y
602# CONFIG_MD is not set 613# CONFIG_MD is not set
603CONFIG_NETDEVICES=y 614CONFIG_NETDEVICES=y
604CONFIG_COMPAT_NET_DEV_OPS=y
605# CONFIG_DUMMY is not set 615# CONFIG_DUMMY is not set
606# CONFIG_BONDING is not set 616# CONFIG_BONDING is not set
607# CONFIG_MACVLAN is not set 617# CONFIG_MACVLAN is not set
@@ -735,22 +745,7 @@ CONFIG_SSB_POSSIBLE=y
735# CONFIG_HTC_PASIC3 is not set 745# CONFIG_HTC_PASIC3 is not set
736# CONFIG_MFD_TMIO is not set 746# CONFIG_MFD_TMIO is not set
737# CONFIG_REGULATOR is not set 747# CONFIG_REGULATOR is not set
738 748# CONFIG_MEDIA_SUPPORT is not set
739#
740# Multimedia devices
741#
742
743#
744# Multimedia core support
745#
746# CONFIG_VIDEO_DEV is not set
747# CONFIG_DVB_CORE is not set
748# CONFIG_VIDEO_MEDIA is not set
749
750#
751# Multimedia drivers
752#
753# CONFIG_DAB is not set
754 749
755# 750#
756# Graphics support 751# Graphics support
@@ -786,7 +781,7 @@ CONFIG_HID_BELKIN=y
786CONFIG_HID_CHERRY=y 781CONFIG_HID_CHERRY=y
787CONFIG_HID_CHICONY=y 782CONFIG_HID_CHICONY=y
788CONFIG_HID_CYPRESS=y 783CONFIG_HID_CYPRESS=y
789# CONFIG_DRAGONRISE_FF is not set 784# CONFIG_HID_DRAGONRISE is not set
790CONFIG_HID_EZKEY=y 785CONFIG_HID_EZKEY=y
791# CONFIG_HID_KYE is not set 786# CONFIG_HID_KYE is not set
792CONFIG_HID_GYRATION=y 787CONFIG_HID_GYRATION=y
@@ -803,10 +798,11 @@ CONFIG_HID_PETALYNX=y
803CONFIG_HID_SAMSUNG=y 798CONFIG_HID_SAMSUNG=y
804CONFIG_HID_SONY=y 799CONFIG_HID_SONY=y
805CONFIG_HID_SUNPLUS=y 800CONFIG_HID_SUNPLUS=y
806# CONFIG_GREENASIA_FF is not set 801# CONFIG_HID_GREENASIA is not set
802# CONFIG_HID_SMARTJOYPLUS is not set
807# CONFIG_HID_TOPSEED is not set 803# CONFIG_HID_TOPSEED is not set
808CONFIG_THRUSTMASTER_FF=m 804# CONFIG_HID_THRUSTMASTER is not set
809CONFIG_ZEROPLUS_FF=m 805# CONFIG_HID_ZEROPLUS is not set
810CONFIG_USB_SUPPORT=y 806CONFIG_USB_SUPPORT=y
811CONFIG_USB_ARCH_HAS_HCD=y 807CONFIG_USB_ARCH_HAS_HCD=y
812CONFIG_USB_ARCH_HAS_OHCI=y 808CONFIG_USB_ARCH_HAS_OHCI=y
@@ -934,10 +930,15 @@ CONFIG_LEDS_TRIGGERS=y
934# iptables trigger is under Netfilter config (LED target) 930# iptables trigger is under Netfilter config (LED target)
935# 931#
936# CONFIG_ACCESSIBILITY is not set 932# CONFIG_ACCESSIBILITY is not set
933CONFIG_RTC_LIB=y
937# CONFIG_RTC_CLASS is not set 934# CONFIG_RTC_CLASS is not set
938# CONFIG_DMADEVICES is not set 935# CONFIG_DMADEVICES is not set
939# CONFIG_AUXDISPLAY is not set 936# CONFIG_AUXDISPLAY is not set
940# CONFIG_UIO is not set 937# CONFIG_UIO is not set
938
939#
940# TI VLYNQ
941#
941# CONFIG_STAGING is not set 942# CONFIG_STAGING is not set
942 943
943# 944#
@@ -959,12 +960,14 @@ CONFIG_FS_MBCACHE=y
959# CONFIG_REISERFS_FS is not set 960# CONFIG_REISERFS_FS is not set
960# CONFIG_JFS_FS is not set 961# CONFIG_JFS_FS is not set
961CONFIG_FS_POSIX_ACL=y 962CONFIG_FS_POSIX_ACL=y
962CONFIG_FILE_LOCKING=y
963# CONFIG_XFS_FS is not set 963# CONFIG_XFS_FS is not set
964# CONFIG_OCFS2_FS is not set 964# CONFIG_OCFS2_FS is not set
965# CONFIG_BTRFS_FS is not set 965# CONFIG_BTRFS_FS is not set
966CONFIG_FILE_LOCKING=y
967CONFIG_FSNOTIFY=y
966# CONFIG_DNOTIFY is not set 968# CONFIG_DNOTIFY is not set
967# CONFIG_INOTIFY is not set 969# CONFIG_INOTIFY is not set
970CONFIG_INOTIFY_USER=y
968# CONFIG_QUOTA is not set 971# CONFIG_QUOTA is not set
969# CONFIG_AUTOFS_FS is not set 972# CONFIG_AUTOFS_FS is not set
970# CONFIG_AUTOFS4_FS is not set 973# CONFIG_AUTOFS4_FS is not set
@@ -1134,17 +1137,15 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1134CONFIG_HAVE_DYNAMIC_FTRACE=y 1137CONFIG_HAVE_DYNAMIC_FTRACE=y
1135CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1138CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1136CONFIG_TRACING_SUPPORT=y 1139CONFIG_TRACING_SUPPORT=y
1137 1140CONFIG_FTRACE=y
1138#
1139# Tracers
1140#
1141# CONFIG_FUNCTION_TRACER is not set 1141# CONFIG_FUNCTION_TRACER is not set
1142# CONFIG_IRQSOFF_TRACER is not set 1142# CONFIG_IRQSOFF_TRACER is not set
1143# CONFIG_SCHED_TRACER is not set 1143# CONFIG_SCHED_TRACER is not set
1144# CONFIG_CONTEXT_SWITCH_TRACER is not set 1144# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1145# CONFIG_EVENT_TRACER is not set
1146# CONFIG_BOOT_TRACER is not set 1145# CONFIG_BOOT_TRACER is not set
1147# CONFIG_TRACE_BRANCH_PROFILING is not set 1146CONFIG_BRANCH_PROFILE_NONE=y
1147# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1148# CONFIG_PROFILE_ALL_BRANCHES is not set
1148# CONFIG_STACK_TRACER is not set 1149# CONFIG_STACK_TRACER is not set
1149# CONFIG_KMEMTRACE is not set 1150# CONFIG_KMEMTRACE is not set
1150# CONFIG_WORKQUEUE_TRACER is not set 1151# CONFIG_WORKQUEUE_TRACER is not set
@@ -1153,16 +1154,15 @@ CONFIG_TRACING_SUPPORT=y
1153# CONFIG_SAMPLES is not set 1154# CONFIG_SAMPLES is not set
1154CONFIG_HAVE_ARCH_KGDB=y 1155CONFIG_HAVE_ARCH_KGDB=y
1155# CONFIG_KGDB is not set 1156# CONFIG_KGDB is not set
1157# CONFIG_KMEMCHECK is not set
1156# CONFIG_SH_STANDARD_BIOS is not set 1158# CONFIG_SH_STANDARD_BIOS is not set
1157# CONFIG_EARLY_SCIF_CONSOLE is not set 1159# CONFIG_EARLY_SCIF_CONSOLE is not set
1158# CONFIG_DEBUG_BOOTMEM is not set 1160# CONFIG_DEBUG_BOOTMEM is not set
1159# CONFIG_DEBUG_STACKOVERFLOW is not set 1161# CONFIG_DEBUG_STACKOVERFLOW is not set
1160# CONFIG_DEBUG_STACK_USAGE is not set 1162# CONFIG_DEBUG_STACK_USAGE is not set
1161# CONFIG_4KSTACKS is not set 1163# CONFIG_4KSTACKS is not set
1162# CONFIG_IRQSTACKS is not set
1163# CONFIG_DUMP_CODE is not set 1164# CONFIG_DUMP_CODE is not set
1164# CONFIG_SH_NO_BSS_INIT is not set 1165# CONFIG_SH_NO_BSS_INIT is not set
1165# CONFIG_MORE_COMPILE_OPTIONS is not set
1166 1166
1167# 1167#
1168# Security options 1168# Security options
@@ -1288,3 +1288,4 @@ CONFIG_HAS_IOMEM=y
1288CONFIG_HAS_IOPORT=y 1288CONFIG_HAS_IOPORT=y
1289CONFIG_HAS_DMA=y 1289CONFIG_HAS_DMA=y
1290CONFIG_NLATTR=y 1290CONFIG_NLATTR=y
1291CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7722_defconfig b/arch/sh/configs/se7722_defconfig
index 726fdbdb280..61943829984 100644
--- a/arch/sh/configs/se7722_defconfig
+++ b/arch/sh/configs/se7722_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:05:29 2009 4# Thu Jun 18 12:54:24 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -21,6 +21,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_NUMA=y 22CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_SYS_SUPPORTS_CMT=y 23CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
26CONFIG_HAVE_LATENCYTOP_SUPPORT=y 27CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -78,7 +79,6 @@ CONFIG_UID16=y
78CONFIG_SYSCTL_SYSCALL=y 79CONFIG_SYSCTL_SYSCALL=y
79CONFIG_KALLSYMS=y 80CONFIG_KALLSYMS=y
80# CONFIG_KALLSYMS_EXTRA_PASS is not set 81# CONFIG_KALLSYMS_EXTRA_PASS is not set
81# CONFIG_STRIP_ASM_SYMS is not set
82CONFIG_HOTPLUG=y 82CONFIG_HOTPLUG=y
83CONFIG_PRINTK=y 83CONFIG_PRINTK=y
84CONFIG_BUG=y 84CONFIG_BUG=y
@@ -91,8 +91,13 @@ CONFIG_TIMERFD=y
91CONFIG_EVENTFD=y 91CONFIG_EVENTFD=y
92CONFIG_SHMEM=y 92CONFIG_SHMEM=y
93CONFIG_AIO=y 93CONFIG_AIO=y
94
95#
96# Performance Counters
97#
94CONFIG_VM_EVENT_COUNTERS=y 98CONFIG_VM_EVENT_COUNTERS=y
95CONFIG_SLUB_DEBUG=y 99CONFIG_SLUB_DEBUG=y
100# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_COMPAT_BRK=y 101CONFIG_COMPAT_BRK=y
97# CONFIG_SLAB is not set 102# CONFIG_SLAB is not set
98CONFIG_SLUB=y 103CONFIG_SLUB=y
@@ -187,6 +192,7 @@ CONFIG_CPU_SUBTYPE_SH7722=y
187CONFIG_QUICKLIST=y 192CONFIG_QUICKLIST=y
188CONFIG_MMU=y 193CONFIG_MMU=y
189CONFIG_PAGE_OFFSET=0x80000000 194CONFIG_PAGE_OFFSET=0x80000000
195CONFIG_FORCE_MAX_ZONEORDER=11
190CONFIG_MEMORY_START=0x0c000000 196CONFIG_MEMORY_START=0x0c000000
191CONFIG_MEMORY_SIZE=0x04000000 197CONFIG_MEMORY_SIZE=0x04000000
192CONFIG_29BIT=y 198CONFIG_29BIT=y
@@ -205,7 +211,6 @@ CONFIG_PAGE_SIZE_4KB=y
205# CONFIG_PAGE_SIZE_8KB is not set 211# CONFIG_PAGE_SIZE_8KB is not set
206# CONFIG_PAGE_SIZE_16KB is not set 212# CONFIG_PAGE_SIZE_16KB is not set
207# CONFIG_PAGE_SIZE_64KB is not set 213# CONFIG_PAGE_SIZE_64KB is not set
208CONFIG_ENTRY_OFFSET=0x00001000
209CONFIG_HUGETLB_PAGE_SIZE_64K=y 214CONFIG_HUGETLB_PAGE_SIZE_64K=y
210# CONFIG_HUGETLB_PAGE_SIZE_256K is not set 215# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
211# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set 216# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
@@ -226,9 +231,9 @@ CONFIG_MIGRATION=y
226# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=0 232CONFIG_ZONE_DMA_FLAG=0
228CONFIG_NR_QUICK=2 233CONFIG_NR_QUICK=2
229CONFIG_UNEVICTABLE_LRU=y
230CONFIG_HAVE_MLOCK=y 234CONFIG_HAVE_MLOCK=y
231CONFIG_HAVE_MLOCKED_PAGE_BIT=y 235CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
232 237
233# 238#
234# Cache configuration 239# Cache configuration
@@ -247,7 +252,6 @@ CONFIG_SH_DSP=y
247CONFIG_SH_STORE_QUEUES=y 252CONFIG_SH_STORE_QUEUES=y
248CONFIG_CPU_HAS_INTEVT=y 253CONFIG_CPU_HAS_INTEVT=y
249CONFIG_CPU_HAS_SR_RB=y 254CONFIG_CPU_HAS_SR_RB=y
250CONFIG_CPU_HAS_PTEA=y
251CONFIG_CPU_HAS_DSP=y 255CONFIG_CPU_HAS_DSP=y
252 256
253# 257#
@@ -260,10 +264,10 @@ CONFIG_SH_7722_SOLUTION_ENGINE=y
260# 264#
261# Timer and clock configuration 265# Timer and clock configuration
262# 266#
263CONFIG_SH_TMU=y 267CONFIG_SH_TIMER_TMU=y
264# CONFIG_SH_TIMER_CMT is not set 268# CONFIG_SH_TIMER_CMT is not set
265CONFIG_SH_TIMER_IRQ=16
266CONFIG_SH_PCLK_FREQ=33333333 269CONFIG_SH_PCLK_FREQ=33333333
270CONFIG_SH_CLK_CPG=y
267CONFIG_TICK_ONESHOT=y 271CONFIG_TICK_ONESHOT=y
268CONFIG_NO_HZ=y 272CONFIG_NO_HZ=y
269CONFIG_HIGH_RES_TIMERS=y 273CONFIG_HIGH_RES_TIMERS=y
@@ -305,12 +309,14 @@ CONFIG_KEXEC=y
305# CONFIG_PREEMPT_VOLUNTARY is not set 309# CONFIG_PREEMPT_VOLUNTARY is not set
306CONFIG_PREEMPT=y 310CONFIG_PREEMPT=y
307CONFIG_GUSA=y 311CONFIG_GUSA=y
312# CONFIG_SPARSE_IRQ is not set
308 313
309# 314#
310# Boot options 315# Boot options
311# 316#
312CONFIG_ZERO_PAGE_OFFSET=0x00001000 317CONFIG_ZERO_PAGE_OFFSET=0x00001000
313CONFIG_BOOT_LINK_OFFSET=0x00800000 318CONFIG_BOOT_LINK_OFFSET=0x00800000
319CONFIG_ENTRY_OFFSET=0x00001000
314# CONFIG_CMDLINE_BOOL is not set 320# CONFIG_CMDLINE_BOOL is not set
315 321
316# 322#
@@ -389,6 +395,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
389# CONFIG_ECONET is not set 395# CONFIG_ECONET is not set
390# CONFIG_WAN_ROUTER is not set 396# CONFIG_WAN_ROUTER is not set
391# CONFIG_PHONET is not set 397# CONFIG_PHONET is not set
398# CONFIG_IEEE802154 is not set
392# CONFIG_NET_SCHED is not set 399# CONFIG_NET_SCHED is not set
393# CONFIG_DCB is not set 400# CONFIG_DCB is not set
394 401
@@ -406,7 +413,11 @@ CONFIG_WIRELESS=y
406# CONFIG_WIRELESS_OLD_REGULATORY is not set 413# CONFIG_WIRELESS_OLD_REGULATORY is not set
407# CONFIG_WIRELESS_EXT is not set 414# CONFIG_WIRELESS_EXT is not set
408# CONFIG_LIB80211 is not set 415# CONFIG_LIB80211 is not set
409# CONFIG_MAC80211 is not set 416
417#
418# CFG80211 needs to be enabled for MAC80211
419#
420CONFIG_MAC80211_DEFAULT_PS_VALUE=0
410# CONFIG_WIMAX is not set 421# CONFIG_WIMAX is not set
411# CONFIG_RFKILL is not set 422# CONFIG_RFKILL is not set
412# CONFIG_NET_9P is not set 423# CONFIG_NET_9P is not set
@@ -467,10 +478,6 @@ CONFIG_BLK_DEV_SD=y
467# CONFIG_BLK_DEV_SR is not set 478# CONFIG_BLK_DEV_SR is not set
468# CONFIG_CHR_DEV_SG is not set 479# CONFIG_CHR_DEV_SG is not set
469# CONFIG_CHR_DEV_SCH is not set 480# CONFIG_CHR_DEV_SCH is not set
470
471#
472# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
473#
474# CONFIG_SCSI_MULTI_LUN is not set 481# CONFIG_SCSI_MULTI_LUN is not set
475# CONFIG_SCSI_CONSTANTS is not set 482# CONFIG_SCSI_CONSTANTS is not set
476# CONFIG_SCSI_LOGGING is not set 483# CONFIG_SCSI_LOGGING is not set
@@ -487,6 +494,7 @@ CONFIG_SCSI_WAIT_SCAN=m
487# CONFIG_SCSI_SRP_ATTRS is not set 494# CONFIG_SCSI_SRP_ATTRS is not set
488CONFIG_SCSI_LOWLEVEL=y 495CONFIG_SCSI_LOWLEVEL=y
489# CONFIG_ISCSI_TCP is not set 496# CONFIG_ISCSI_TCP is not set
497# CONFIG_SCSI_BNX2_ISCSI is not set
490# CONFIG_LIBFC is not set 498# CONFIG_LIBFC is not set
491# CONFIG_LIBFCOE is not set 499# CONFIG_LIBFCOE is not set
492# CONFIG_SCSI_DEBUG is not set 500# CONFIG_SCSI_DEBUG is not set
@@ -500,7 +508,6 @@ CONFIG_ATA_SFF=y
500CONFIG_PATA_PLATFORM=y 508CONFIG_PATA_PLATFORM=y
501# CONFIG_MD is not set 509# CONFIG_MD is not set
502CONFIG_NETDEVICES=y 510CONFIG_NETDEVICES=y
503CONFIG_COMPAT_NET_DEV_OPS=y
504# CONFIG_DUMMY is not set 511# CONFIG_DUMMY is not set
505# CONFIG_BONDING is not set 512# CONFIG_BONDING is not set
506# CONFIG_MACVLAN is not set 513# CONFIG_MACVLAN is not set
@@ -525,6 +532,7 @@ CONFIG_SMC91X=y
525# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 532# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
526# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 533# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
527# CONFIG_B44 is not set 534# CONFIG_B44 is not set
535# CONFIG_KS8842 is not set
528CONFIG_NETDEV_1000=y 536CONFIG_NETDEV_1000=y
529CONFIG_NETDEV_10000=y 537CONFIG_NETDEV_10000=y
530 538
@@ -656,22 +664,7 @@ CONFIG_SSB_POSSIBLE=y
656# CONFIG_HTC_PASIC3 is not set 664# CONFIG_HTC_PASIC3 is not set
657# CONFIG_MFD_TMIO is not set 665# CONFIG_MFD_TMIO is not set
658# CONFIG_REGULATOR is not set 666# CONFIG_REGULATOR is not set
659 667# CONFIG_MEDIA_SUPPORT is not set
660#
661# Multimedia devices
662#
663
664#
665# Multimedia core support
666#
667# CONFIG_VIDEO_DEV is not set
668# CONFIG_DVB_CORE is not set
669# CONFIG_VIDEO_MEDIA is not set
670
671#
672# Multimedia drivers
673#
674CONFIG_DAB=y
675 668
676# 669#
677# Graphics support 670# Graphics support
@@ -756,9 +749,14 @@ CONFIG_RTC_INTF_DEV=y
756# on-CPU RTC drivers 749# on-CPU RTC drivers
757# 750#
758CONFIG_RTC_DRV_SH=y 751CONFIG_RTC_DRV_SH=y
752# CONFIG_RTC_DRV_GENERIC is not set
759# CONFIG_DMADEVICES is not set 753# CONFIG_DMADEVICES is not set
760# CONFIG_AUXDISPLAY is not set 754# CONFIG_AUXDISPLAY is not set
761# CONFIG_UIO is not set 755# CONFIG_UIO is not set
756
757#
758# TI VLYNQ
759#
762# CONFIG_STAGING is not set 760# CONFIG_STAGING is not set
763 761
764# 762#
@@ -779,10 +777,11 @@ CONFIG_FS_MBCACHE=y
779# CONFIG_REISERFS_FS is not set 777# CONFIG_REISERFS_FS is not set
780# CONFIG_JFS_FS is not set 778# CONFIG_JFS_FS is not set
781# CONFIG_FS_POSIX_ACL is not set 779# CONFIG_FS_POSIX_ACL is not set
782CONFIG_FILE_LOCKING=y
783# CONFIG_XFS_FS is not set 780# CONFIG_XFS_FS is not set
784# CONFIG_OCFS2_FS is not set 781# CONFIG_OCFS2_FS is not set
785# CONFIG_BTRFS_FS is not set 782# CONFIG_BTRFS_FS is not set
783CONFIG_FILE_LOCKING=y
784CONFIG_FSNOTIFY=y
786CONFIG_DNOTIFY=y 785CONFIG_DNOTIFY=y
787CONFIG_INOTIFY=y 786CONFIG_INOTIFY=y
788CONFIG_INOTIFY_USER=y 787CONFIG_INOTIFY_USER=y
@@ -882,22 +881,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
882CONFIG_HAVE_DYNAMIC_FTRACE=y 881CONFIG_HAVE_DYNAMIC_FTRACE=y
883CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 882CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
884CONFIG_TRACING_SUPPORT=y 883CONFIG_TRACING_SUPPORT=y
885 884# CONFIG_FTRACE is not set
886#
887# Tracers
888#
889# CONFIG_FUNCTION_TRACER is not set
890# CONFIG_IRQSOFF_TRACER is not set
891# CONFIG_PREEMPT_TRACER is not set
892# CONFIG_SCHED_TRACER is not set
893# CONFIG_CONTEXT_SWITCH_TRACER is not set
894# CONFIG_EVENT_TRACER is not set
895# CONFIG_BOOT_TRACER is not set
896# CONFIG_TRACE_BRANCH_PROFILING is not set
897# CONFIG_STACK_TRACER is not set
898# CONFIG_KMEMTRACE is not set
899# CONFIG_WORKQUEUE_TRACER is not set
900# CONFIG_BLK_DEV_IO_TRACE is not set
901# CONFIG_DYNAMIC_DEBUG is not set 885# CONFIG_DYNAMIC_DEBUG is not set
902# CONFIG_DMA_API_DEBUG is not set 886# CONFIG_DMA_API_DEBUG is not set
903# CONFIG_SAMPLES is not set 887# CONFIG_SAMPLES is not set
@@ -905,7 +889,6 @@ CONFIG_HAVE_ARCH_KGDB=y
905CONFIG_SH_STANDARD_BIOS=y 889CONFIG_SH_STANDARD_BIOS=y
906# CONFIG_EARLY_SCIF_CONSOLE is not set 890# CONFIG_EARLY_SCIF_CONSOLE is not set
907# CONFIG_EARLY_PRINTK is not set 891# CONFIG_EARLY_PRINTK is not set
908# CONFIG_MORE_COMPILE_OPTIONS is not set
909 892
910# 893#
911# Security options 894# Security options
@@ -1020,3 +1003,4 @@ CONFIG_HAS_IOMEM=y
1020CONFIG_HAS_IOPORT=y 1003CONFIG_HAS_IOPORT=y
1021CONFIG_HAS_DMA=y 1004CONFIG_HAS_DMA=y
1022CONFIG_NLATTR=y 1005CONFIG_NLATTR=y
1006CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7724_defconfig b/arch/sh/configs/se7724_defconfig
index 96d2587467e..3840270283e 100644
--- a/arch/sh/configs/se7724_defconfig
+++ b/arch/sh/configs/se7724_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc6 3# Linux kernel version: 2.6.30
4# Tue May 26 13:18:09 2009 4# Thu Jun 18 16:09:05 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -76,7 +76,6 @@ CONFIG_EMBEDDED=y
76CONFIG_UID16=y 76CONFIG_UID16=y
77CONFIG_SYSCTL_SYSCALL=y 77CONFIG_SYSCTL_SYSCALL=y
78# CONFIG_KALLSYMS is not set 78# CONFIG_KALLSYMS is not set
79# CONFIG_STRIP_ASM_SYMS is not set
80CONFIG_HOTPLUG=y 79CONFIG_HOTPLUG=y
81CONFIG_PRINTK=y 80CONFIG_PRINTK=y
82CONFIG_BUG=y 81CONFIG_BUG=y
@@ -89,7 +88,12 @@ CONFIG_TIMERFD=y
89CONFIG_EVENTFD=y 88CONFIG_EVENTFD=y
90CONFIG_SHMEM=y 89CONFIG_SHMEM=y
91CONFIG_AIO=y 90CONFIG_AIO=y
91
92#
93# Performance Counters
94#
92CONFIG_VM_EVENT_COUNTERS=y 95CONFIG_VM_EVENT_COUNTERS=y
96# CONFIG_STRIP_ASM_SYMS is not set
93CONFIG_COMPAT_BRK=y 97CONFIG_COMPAT_BRK=y
94CONFIG_SLAB=y 98CONFIG_SLAB=y
95# CONFIG_SLUB is not set 99# CONFIG_SLUB is not set
@@ -209,9 +213,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
209# CONFIG_PHYS_ADDR_T_64BIT is not set 213# CONFIG_PHYS_ADDR_T_64BIT is not set
210CONFIG_ZONE_DMA_FLAG=0 214CONFIG_ZONE_DMA_FLAG=0
211CONFIG_NR_QUICK=2 215CONFIG_NR_QUICK=2
212CONFIG_UNEVICTABLE_LRU=y
213CONFIG_HAVE_MLOCK=y 216CONFIG_HAVE_MLOCK=y
214CONFIG_HAVE_MLOCKED_PAGE_BIT=y 217CONFIG_HAVE_MLOCKED_PAGE_BIT=y
218CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
215 219
216# 220#
217# Cache configuration 221# Cache configuration
@@ -229,7 +233,6 @@ CONFIG_SH_FPU=y
229# CONFIG_SH_STORE_QUEUES is not set 233# CONFIG_SH_STORE_QUEUES is not set
230CONFIG_CPU_HAS_INTEVT=y 234CONFIG_CPU_HAS_INTEVT=y
231CONFIG_CPU_HAS_SR_RB=y 235CONFIG_CPU_HAS_SR_RB=y
232CONFIG_CPU_HAS_PTEA=y
233CONFIG_CPU_HAS_FPU=y 236CONFIG_CPU_HAS_FPU=y
234 237
235# 238#
@@ -244,6 +247,7 @@ CONFIG_SH_7724_SOLUTION_ENGINE=y
244CONFIG_SH_TIMER_TMU=y 247CONFIG_SH_TIMER_TMU=y
245# CONFIG_SH_TIMER_CMT is not set 248# CONFIG_SH_TIMER_CMT is not set
246CONFIG_SH_PCLK_FREQ=33333333 249CONFIG_SH_PCLK_FREQ=33333333
250CONFIG_SH_CLK_CPG=y
247# CONFIG_NO_HZ is not set 251# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set 252# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 253CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -284,6 +288,7 @@ CONFIG_SECCOMP=y
284# CONFIG_PREEMPT_VOLUNTARY is not set 288# CONFIG_PREEMPT_VOLUNTARY is not set
285CONFIG_PREEMPT=y 289CONFIG_PREEMPT=y
286CONFIG_GUSA=y 290CONFIG_GUSA=y
291# CONFIG_SPARSE_IRQ is not set
287 292
288# 293#
289# Boot options 294# Boot options
@@ -373,6 +378,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
373# CONFIG_ECONET is not set 378# CONFIG_ECONET is not set
374# CONFIG_WAN_ROUTER is not set 379# CONFIG_WAN_ROUTER is not set
375# CONFIG_PHONET is not set 380# CONFIG_PHONET is not set
381# CONFIG_IEEE802154 is not set
376# CONFIG_NET_SCHED is not set 382# CONFIG_NET_SCHED is not set
377# CONFIG_DCB is not set 383# CONFIG_DCB is not set
378 384
@@ -390,7 +396,11 @@ CONFIG_WIRELESS=y
390# CONFIG_WIRELESS_OLD_REGULATORY is not set 396# CONFIG_WIRELESS_OLD_REGULATORY is not set
391# CONFIG_WIRELESS_EXT is not set 397# CONFIG_WIRELESS_EXT is not set
392# CONFIG_LIB80211 is not set 398# CONFIG_LIB80211 is not set
393# CONFIG_MAC80211 is not set 399
400#
401# CFG80211 needs to be enabled for MAC80211
402#
403CONFIG_MAC80211_DEFAULT_PS_VALUE=0
394# CONFIG_WIMAX is not set 404# CONFIG_WIMAX is not set
395# CONFIG_RFKILL is not set 405# CONFIG_RFKILL is not set
396# CONFIG_NET_9P is not set 406# CONFIG_NET_9P is not set
@@ -534,6 +544,7 @@ CONFIG_MISC_DEVICES=y
534# CONFIG_EEPROM_AT24 is not set 544# CONFIG_EEPROM_AT24 is not set
535# CONFIG_EEPROM_AT25 is not set 545# CONFIG_EEPROM_AT25 is not set
536# CONFIG_EEPROM_LEGACY is not set 546# CONFIG_EEPROM_LEGACY is not set
547# CONFIG_EEPROM_MAX6875 is not set
537# CONFIG_EEPROM_93CX6 is not set 548# CONFIG_EEPROM_93CX6 is not set
538CONFIG_HAVE_IDE=y 549CONFIG_HAVE_IDE=y
539# CONFIG_IDE is not set 550# CONFIG_IDE is not set
@@ -557,10 +568,6 @@ CONFIG_BLK_DEV_SD=y
557# CONFIG_BLK_DEV_SR is not set 568# CONFIG_BLK_DEV_SR is not set
558# CONFIG_CHR_DEV_SG is not set 569# CONFIG_CHR_DEV_SG is not set
559# CONFIG_CHR_DEV_SCH is not set 570# CONFIG_CHR_DEV_SCH is not set
560
561#
562# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
563#
564# CONFIG_SCSI_MULTI_LUN is not set 571# CONFIG_SCSI_MULTI_LUN is not set
565# CONFIG_SCSI_CONSTANTS is not set 572# CONFIG_SCSI_CONSTANTS is not set
566# CONFIG_SCSI_LOGGING is not set 573# CONFIG_SCSI_LOGGING is not set
@@ -577,6 +584,7 @@ CONFIG_SCSI_WAIT_SCAN=m
577# CONFIG_SCSI_SRP_ATTRS is not set 584# CONFIG_SCSI_SRP_ATTRS is not set
578CONFIG_SCSI_LOWLEVEL=y 585CONFIG_SCSI_LOWLEVEL=y
579# CONFIG_ISCSI_TCP is not set 586# CONFIG_ISCSI_TCP is not set
587# CONFIG_SCSI_BNX2_ISCSI is not set
580# CONFIG_LIBFC is not set 588# CONFIG_LIBFC is not set
581# CONFIG_LIBFCOE is not set 589# CONFIG_LIBFCOE is not set
582# CONFIG_SCSI_DEBUG is not set 590# CONFIG_SCSI_DEBUG is not set
@@ -585,7 +593,6 @@ CONFIG_SCSI_LOWLEVEL=y
585# CONFIG_ATA is not set 593# CONFIG_ATA is not set
586# CONFIG_MD is not set 594# CONFIG_MD is not set
587CONFIG_NETDEVICES=y 595CONFIG_NETDEVICES=y
588CONFIG_COMPAT_NET_DEV_OPS=y
589# CONFIG_DUMMY is not set 596# CONFIG_DUMMY is not set
590# CONFIG_BONDING is not set 597# CONFIG_BONDING is not set
591# CONFIG_MACVLAN is not set 598# CONFIG_MACVLAN is not set
@@ -617,6 +624,7 @@ CONFIG_NET_ETHERNET=y
617CONFIG_MII=y 624CONFIG_MII=y
618# CONFIG_AX88796 is not set 625# CONFIG_AX88796 is not set
619# CONFIG_STNIC is not set 626# CONFIG_STNIC is not set
627# CONFIG_SH_ETH is not set
620CONFIG_SMC91X=y 628CONFIG_SMC91X=y
621# CONFIG_ENC28J60 is not set 629# CONFIG_ENC28J60 is not set
622# CONFIG_ETHOC is not set 630# CONFIG_ETHOC is not set
@@ -631,6 +639,7 @@ CONFIG_SMC91X=y
631# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 639# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
632# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 640# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
633# CONFIG_B44 is not set 641# CONFIG_B44 is not set
642# CONFIG_KS8842 is not set
634# CONFIG_NETDEV_1000 is not set 643# CONFIG_NETDEV_1000 is not set
635# CONFIG_NETDEV_10000 is not set 644# CONFIG_NETDEV_10000 is not set
636 645
@@ -772,7 +781,6 @@ CONFIG_I2C_SH_MOBILE=y
772# CONFIG_SENSORS_PCF8574 is not set 781# CONFIG_SENSORS_PCF8574 is not set
773# CONFIG_PCF8575 is not set 782# CONFIG_PCF8575 is not set
774# CONFIG_SENSORS_PCA9539 is not set 783# CONFIG_SENSORS_PCA9539 is not set
775# CONFIG_SENSORS_MAX6875 is not set
776# CONFIG_SENSORS_TSL2550 is not set 784# CONFIG_SENSORS_TSL2550 is not set
777# CONFIG_I2C_DEBUG_CORE is not set 785# CONFIG_I2C_DEBUG_CORE is not set
778# CONFIG_I2C_DEBUG_ALGO is not set 786# CONFIG_I2C_DEBUG_ALGO is not set
@@ -844,10 +852,7 @@ CONFIG_SSB_POSSIBLE=y
844# CONFIG_MFD_WM8350_I2C is not set 852# CONFIG_MFD_WM8350_I2C is not set
845# CONFIG_MFD_PCF50633 is not set 853# CONFIG_MFD_PCF50633 is not set
846# CONFIG_REGULATOR is not set 854# CONFIG_REGULATOR is not set
847 855CONFIG_MEDIA_SUPPORT=y
848#
849# Multimedia devices
850#
851 856
852# 857#
853# Multimedia core support 858# Multimedia core support
@@ -1019,7 +1024,7 @@ CONFIG_USB_HID=y
1019# CONFIG_HID_CHERRY is not set 1024# CONFIG_HID_CHERRY is not set
1020# CONFIG_HID_CHICONY is not set 1025# CONFIG_HID_CHICONY is not set
1021# CONFIG_HID_CYPRESS is not set 1026# CONFIG_HID_CYPRESS is not set
1022# CONFIG_DRAGONRISE_FF is not set 1027# CONFIG_HID_DRAGONRISE is not set
1023# CONFIG_HID_EZKEY is not set 1028# CONFIG_HID_EZKEY is not set
1024# CONFIG_HID_KYE is not set 1029# CONFIG_HID_KYE is not set
1025# CONFIG_HID_GYRATION is not set 1030# CONFIG_HID_GYRATION is not set
@@ -1033,10 +1038,11 @@ CONFIG_USB_HID=y
1033# CONFIG_HID_SAMSUNG is not set 1038# CONFIG_HID_SAMSUNG is not set
1034# CONFIG_HID_SONY is not set 1039# CONFIG_HID_SONY is not set
1035# CONFIG_HID_SUNPLUS is not set 1040# CONFIG_HID_SUNPLUS is not set
1036# CONFIG_GREENASIA_FF is not set 1041# CONFIG_HID_GREENASIA is not set
1042# CONFIG_HID_SMARTJOYPLUS is not set
1037# CONFIG_HID_TOPSEED is not set 1043# CONFIG_HID_TOPSEED is not set
1038# CONFIG_THRUSTMASTER_FF is not set 1044# CONFIG_HID_THRUSTMASTER is not set
1039# CONFIG_ZEROPLUS_FF is not set 1045# CONFIG_HID_ZEROPLUS is not set
1040CONFIG_USB_SUPPORT=y 1046CONFIG_USB_SUPPORT=y
1041CONFIG_USB_ARCH_HAS_HCD=y 1047CONFIG_USB_ARCH_HAS_HCD=y
1042# CONFIG_USB_ARCH_HAS_OHCI is not set 1048# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -1228,6 +1234,10 @@ CONFIG_UIO=y
1228CONFIG_UIO_PDRV_GENIRQ=y 1234CONFIG_UIO_PDRV_GENIRQ=y
1229# CONFIG_UIO_SMX is not set 1235# CONFIG_UIO_SMX is not set
1230# CONFIG_UIO_SERCOS3 is not set 1236# CONFIG_UIO_SERCOS3 is not set
1237
1238#
1239# TI VLYNQ
1240#
1231# CONFIG_STAGING is not set 1241# CONFIG_STAGING is not set
1232 1242
1233# 1243#
@@ -1249,10 +1259,11 @@ CONFIG_FS_MBCACHE=y
1249# CONFIG_REISERFS_FS is not set 1259# CONFIG_REISERFS_FS is not set
1250# CONFIG_JFS_FS is not set 1260# CONFIG_JFS_FS is not set
1251CONFIG_FS_POSIX_ACL=y 1261CONFIG_FS_POSIX_ACL=y
1252CONFIG_FILE_LOCKING=y
1253# CONFIG_XFS_FS is not set 1262# CONFIG_XFS_FS is not set
1254# CONFIG_OCFS2_FS is not set 1263# CONFIG_OCFS2_FS is not set
1255# CONFIG_BTRFS_FS is not set 1264# CONFIG_BTRFS_FS is not set
1265CONFIG_FILE_LOCKING=y
1266CONFIG_FSNOTIFY=y
1256CONFIG_DNOTIFY=y 1267CONFIG_DNOTIFY=y
1257CONFIG_INOTIFY=y 1268CONFIG_INOTIFY=y
1258CONFIG_INOTIFY_USER=y 1269CONFIG_INOTIFY_USER=y
@@ -1408,22 +1419,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1408CONFIG_HAVE_DYNAMIC_FTRACE=y 1419CONFIG_HAVE_DYNAMIC_FTRACE=y
1409CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1420CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1410CONFIG_TRACING_SUPPORT=y 1421CONFIG_TRACING_SUPPORT=y
1411 1422# CONFIG_FTRACE is not set
1412#
1413# Tracers
1414#
1415# CONFIG_FUNCTION_TRACER is not set
1416# CONFIG_IRQSOFF_TRACER is not set
1417# CONFIG_PREEMPT_TRACER is not set
1418# CONFIG_SCHED_TRACER is not set
1419# CONFIG_CONTEXT_SWITCH_TRACER is not set
1420# CONFIG_EVENT_TRACER is not set
1421# CONFIG_BOOT_TRACER is not set
1422# CONFIG_TRACE_BRANCH_PROFILING is not set
1423# CONFIG_STACK_TRACER is not set
1424# CONFIG_KMEMTRACE is not set
1425# CONFIG_WORKQUEUE_TRACER is not set
1426# CONFIG_BLK_DEV_IO_TRACE is not set
1427# CONFIG_DMA_API_DEBUG is not set 1423# CONFIG_DMA_API_DEBUG is not set
1428# CONFIG_SAMPLES is not set 1424# CONFIG_SAMPLES is not set
1429CONFIG_HAVE_ARCH_KGDB=y 1425CONFIG_HAVE_ARCH_KGDB=y
@@ -1550,3 +1546,4 @@ CONFIG_HAS_IOMEM=y
1550CONFIG_HAS_IOPORT=y 1546CONFIG_HAS_IOPORT=y
1551CONFIG_HAS_DMA=y 1547CONFIG_HAS_DMA=y
1552CONFIG_NLATTR=y 1548CONFIG_NLATTR=y
1549CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7750_defconfig b/arch/sh/configs/se7750_defconfig
index ed1a1230f63..564bf7bdce6 100644
--- a/arch/sh/configs/se7750_defconfig
+++ b/arch/sh/configs/se7750_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:06:02 2009 4# Thu Jun 18 13:00:01 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -71,7 +72,6 @@ CONFIG_UID16=y
71# CONFIG_SYSCTL_SYSCALL is not set 72# CONFIG_SYSCTL_SYSCALL is not set
72CONFIG_KALLSYMS=y 73CONFIG_KALLSYMS=y
73# CONFIG_KALLSYMS_EXTRA_PASS is not set 74# CONFIG_KALLSYMS_EXTRA_PASS is not set
74# CONFIG_STRIP_ASM_SYMS is not set
75# CONFIG_HOTPLUG is not set 75# CONFIG_HOTPLUG is not set
76CONFIG_PRINTK=y 76CONFIG_PRINTK=y
77CONFIG_BUG=y 77CONFIG_BUG=y
@@ -84,7 +84,12 @@ CONFIG_TIMERFD=y
84CONFIG_EVENTFD=y 84CONFIG_EVENTFD=y
85CONFIG_SHMEM=y 85CONFIG_SHMEM=y
86CONFIG_AIO=y 86CONFIG_AIO=y
87
88#
89# Performance Counters
90#
87CONFIG_VM_EVENT_COUNTERS=y 91CONFIG_VM_EVENT_COUNTERS=y
92# CONFIG_STRIP_ASM_SYMS is not set
88CONFIG_COMPAT_BRK=y 93CONFIG_COMPAT_BRK=y
89CONFIG_SLAB=y 94CONFIG_SLAB=y
90# CONFIG_SLUB is not set 95# CONFIG_SLUB is not set
@@ -173,6 +178,7 @@ CONFIG_CPU_SUBTYPE_SH7750=y
173CONFIG_QUICKLIST=y 178CONFIG_QUICKLIST=y
174CONFIG_MMU=y 179CONFIG_MMU=y
175CONFIG_PAGE_OFFSET=0x80000000 180CONFIG_PAGE_OFFSET=0x80000000
181CONFIG_FORCE_MAX_ZONEORDER=11
176CONFIG_MEMORY_START=0x0c000000 182CONFIG_MEMORY_START=0x0c000000
177CONFIG_MEMORY_SIZE=0x02000000 183CONFIG_MEMORY_SIZE=0x02000000
178CONFIG_29BIT=y 184CONFIG_29BIT=y
@@ -187,7 +193,6 @@ CONFIG_PAGE_SIZE_4KB=y
187# CONFIG_PAGE_SIZE_8KB is not set 193# CONFIG_PAGE_SIZE_8KB is not set
188# CONFIG_PAGE_SIZE_16KB is not set 194# CONFIG_PAGE_SIZE_16KB is not set
189# CONFIG_PAGE_SIZE_64KB is not set 195# CONFIG_PAGE_SIZE_64KB is not set
190CONFIG_ENTRY_OFFSET=0x00001000
191CONFIG_SELECT_MEMORY_MODEL=y 196CONFIG_SELECT_MEMORY_MODEL=y
192CONFIG_FLATMEM_MANUAL=y 197CONFIG_FLATMEM_MANUAL=y
193# CONFIG_DISCONTIGMEM_MANUAL is not set 198# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -200,9 +205,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
200# CONFIG_PHYS_ADDR_T_64BIT is not set 205# CONFIG_PHYS_ADDR_T_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=0 206CONFIG_ZONE_DMA_FLAG=0
202CONFIG_NR_QUICK=2 207CONFIG_NR_QUICK=2
203CONFIG_UNEVICTABLE_LRU=y
204CONFIG_HAVE_MLOCK=y 208CONFIG_HAVE_MLOCK=y
205CONFIG_HAVE_MLOCKED_PAGE_BIT=y 209CONFIG_HAVE_MLOCKED_PAGE_BIT=y
210CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
206 211
207# 212#
208# Cache configuration 213# Cache configuration
@@ -221,7 +226,6 @@ CONFIG_SH_FPU=y
221CONFIG_CPU_HAS_INTEVT=y 226CONFIG_CPU_HAS_INTEVT=y
222CONFIG_CPU_HAS_IPR_IRQ=y 227CONFIG_CPU_HAS_IPR_IRQ=y
223CONFIG_CPU_HAS_SR_RB=y 228CONFIG_CPU_HAS_SR_RB=y
224CONFIG_CPU_HAS_PTEA=y
225CONFIG_CPU_HAS_FPU=y 229CONFIG_CPU_HAS_FPU=y
226 230
227# 231#
@@ -233,9 +237,10 @@ CONFIG_SH_SOLUTION_ENGINE=y
233# 237#
234# Timer and clock configuration 238# Timer and clock configuration
235# 239#
236CONFIG_SH_TMU=y 240CONFIG_SH_TIMER_TMU=y
237CONFIG_SH_TIMER_IRQ=16
238CONFIG_SH_PCLK_FREQ=33333333 241CONFIG_SH_PCLK_FREQ=33333333
242CONFIG_SH_CLK_CPG=y
243CONFIG_SH_CLK_CPG_LEGACY=y
239# CONFIG_NO_HZ is not set 244# CONFIG_NO_HZ is not set
240# CONFIG_HIGH_RES_TIMERS is not set 245# CONFIG_HIGH_RES_TIMERS is not set
241CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 246CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -277,12 +282,14 @@ CONFIG_PREEMPT_NONE=y
277# CONFIG_PREEMPT is not set 282# CONFIG_PREEMPT is not set
278CONFIG_GUSA=y 283CONFIG_GUSA=y
279# CONFIG_GUSA_RB is not set 284# CONFIG_GUSA_RB is not set
285# CONFIG_SPARSE_IRQ is not set
280 286
281# 287#
282# Boot options 288# Boot options
283# 289#
284CONFIG_ZERO_PAGE_OFFSET=0x00001000 290CONFIG_ZERO_PAGE_OFFSET=0x00001000
285CONFIG_BOOT_LINK_OFFSET=0x00800000 291CONFIG_BOOT_LINK_OFFSET=0x00800000
292CONFIG_ENTRY_OFFSET=0x00001000
286# CONFIG_UBC_WAKEUP is not set 293# CONFIG_UBC_WAKEUP is not set
287# CONFIG_CMDLINE_BOOL is not set 294# CONFIG_CMDLINE_BOOL is not set
288 295
@@ -365,6 +372,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
365# CONFIG_ECONET is not set 372# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set 373# CONFIG_WAN_ROUTER is not set
367# CONFIG_PHONET is not set 374# CONFIG_PHONET is not set
375# CONFIG_IEEE802154 is not set
368# CONFIG_NET_SCHED is not set 376# CONFIG_NET_SCHED is not set
369# CONFIG_DCB is not set 377# CONFIG_DCB is not set
370 378
@@ -382,7 +390,11 @@ CONFIG_WIRELESS=y
382# CONFIG_WIRELESS_OLD_REGULATORY is not set 390# CONFIG_WIRELESS_OLD_REGULATORY is not set
383# CONFIG_WIRELESS_EXT is not set 391# CONFIG_WIRELESS_EXT is not set
384# CONFIG_LIB80211 is not set 392# CONFIG_LIB80211 is not set
385# CONFIG_MAC80211 is not set 393
394#
395# CFG80211 needs to be enabled for MAC80211
396#
397CONFIG_MAC80211_DEFAULT_PS_VALUE=0
386# CONFIG_WIMAX is not set 398# CONFIG_WIMAX is not set
387# CONFIG_RFKILL is not set 399# CONFIG_RFKILL is not set
388# CONFIG_NET_9P is not set 400# CONFIG_NET_9P is not set
@@ -535,10 +547,6 @@ CONFIG_SCSI_PROC_FS=y
535# CONFIG_BLK_DEV_SR is not set 547# CONFIG_BLK_DEV_SR is not set
536# CONFIG_CHR_DEV_SG is not set 548# CONFIG_CHR_DEV_SG is not set
537# CONFIG_CHR_DEV_SCH is not set 549# CONFIG_CHR_DEV_SCH is not set
538
539#
540# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
541#
542# CONFIG_SCSI_MULTI_LUN is not set 550# CONFIG_SCSI_MULTI_LUN is not set
543# CONFIG_SCSI_CONSTANTS is not set 551# CONFIG_SCSI_CONSTANTS is not set
544# CONFIG_SCSI_LOGGING is not set 552# CONFIG_SCSI_LOGGING is not set
@@ -555,6 +563,7 @@ CONFIG_SCSI_WAIT_SCAN=m
555# CONFIG_SCSI_SRP_ATTRS is not set 563# CONFIG_SCSI_SRP_ATTRS is not set
556CONFIG_SCSI_LOWLEVEL=y 564CONFIG_SCSI_LOWLEVEL=y
557# CONFIG_ISCSI_TCP is not set 565# CONFIG_ISCSI_TCP is not set
566# CONFIG_SCSI_BNX2_ISCSI is not set
558# CONFIG_LIBFC is not set 567# CONFIG_LIBFC is not set
559# CONFIG_LIBFCOE is not set 568# CONFIG_LIBFCOE is not set
560# CONFIG_SCSI_DEBUG is not set 569# CONFIG_SCSI_DEBUG is not set
@@ -563,7 +572,6 @@ CONFIG_SCSI_LOWLEVEL=y
563# CONFIG_ATA is not set 572# CONFIG_ATA is not set
564# CONFIG_MD is not set 573# CONFIG_MD is not set
565CONFIG_NETDEVICES=y 574CONFIG_NETDEVICES=y
566CONFIG_COMPAT_NET_DEV_OPS=y
567# CONFIG_DUMMY is not set 575# CONFIG_DUMMY is not set
568# CONFIG_BONDING is not set 576# CONFIG_BONDING is not set
569# CONFIG_MACVLAN is not set 577# CONFIG_MACVLAN is not set
@@ -588,6 +596,7 @@ CONFIG_STNIC=y
588# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 596# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
589# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 597# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
590# CONFIG_B44 is not set 598# CONFIG_B44 is not set
599# CONFIG_KS8842 is not set
591CONFIG_NETDEV_1000=y 600CONFIG_NETDEV_1000=y
592CONFIG_NETDEV_10000=y 601CONFIG_NETDEV_10000=y
593 602
@@ -697,22 +706,7 @@ CONFIG_SSB_POSSIBLE=y
697# CONFIG_HTC_PASIC3 is not set 706# CONFIG_HTC_PASIC3 is not set
698# CONFIG_MFD_TMIO is not set 707# CONFIG_MFD_TMIO is not set
699# CONFIG_REGULATOR is not set 708# CONFIG_REGULATOR is not set
700 709# CONFIG_MEDIA_SUPPORT is not set
701#
702# Multimedia devices
703#
704
705#
706# Multimedia core support
707#
708# CONFIG_VIDEO_DEV is not set
709# CONFIG_DVB_CORE is not set
710# CONFIG_VIDEO_MEDIA is not set
711
712#
713# Multimedia drivers
714#
715# CONFIG_DAB is not set
716 710
717# 711#
718# Graphics support 712# Graphics support
@@ -751,10 +745,15 @@ CONFIG_USB_ARCH_HAS_HCD=y
751# CONFIG_MEMSTICK is not set 745# CONFIG_MEMSTICK is not set
752# CONFIG_NEW_LEDS is not set 746# CONFIG_NEW_LEDS is not set
753# CONFIG_ACCESSIBILITY is not set 747# CONFIG_ACCESSIBILITY is not set
748CONFIG_RTC_LIB=y
754# CONFIG_RTC_CLASS is not set 749# CONFIG_RTC_CLASS is not set
755# CONFIG_DMADEVICES is not set 750# CONFIG_DMADEVICES is not set
756# CONFIG_AUXDISPLAY is not set 751# CONFIG_AUXDISPLAY is not set
757# CONFIG_UIO is not set 752# CONFIG_UIO is not set
753
754#
755# TI VLYNQ
756#
758# CONFIG_STAGING is not set 757# CONFIG_STAGING is not set
759 758
760# 759#
@@ -766,10 +765,11 @@ CONFIG_USB_ARCH_HAS_HCD=y
766# CONFIG_REISERFS_FS is not set 765# CONFIG_REISERFS_FS is not set
767# CONFIG_JFS_FS is not set 766# CONFIG_JFS_FS is not set
768# CONFIG_FS_POSIX_ACL is not set 767# CONFIG_FS_POSIX_ACL is not set
769CONFIG_FILE_LOCKING=y
770# CONFIG_XFS_FS is not set 768# CONFIG_XFS_FS is not set
771# CONFIG_OCFS2_FS is not set 769# CONFIG_OCFS2_FS is not set
772# CONFIG_BTRFS_FS is not set 770# CONFIG_BTRFS_FS is not set
771CONFIG_FILE_LOCKING=y
772CONFIG_FSNOTIFY=y
773CONFIG_DNOTIFY=y 773CONFIG_DNOTIFY=y
774CONFIG_INOTIFY=y 774CONFIG_INOTIFY=y
775CONFIG_INOTIFY_USER=y 775CONFIG_INOTIFY_USER=y
@@ -897,27 +897,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
897CONFIG_HAVE_DYNAMIC_FTRACE=y 897CONFIG_HAVE_DYNAMIC_FTRACE=y
898CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 898CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
899CONFIG_TRACING_SUPPORT=y 899CONFIG_TRACING_SUPPORT=y
900 900# CONFIG_FTRACE is not set
901#
902# Tracers
903#
904# CONFIG_FUNCTION_TRACER is not set
905# CONFIG_IRQSOFF_TRACER is not set
906# CONFIG_SCHED_TRACER is not set
907# CONFIG_CONTEXT_SWITCH_TRACER is not set
908# CONFIG_EVENT_TRACER is not set
909# CONFIG_BOOT_TRACER is not set
910# CONFIG_TRACE_BRANCH_PROFILING is not set
911# CONFIG_STACK_TRACER is not set
912# CONFIG_KMEMTRACE is not set
913# CONFIG_WORKQUEUE_TRACER is not set
914# CONFIG_BLK_DEV_IO_TRACE is not set
915# CONFIG_DMA_API_DEBUG is not set 901# CONFIG_DMA_API_DEBUG is not set
916# CONFIG_SAMPLES is not set 902# CONFIG_SAMPLES is not set
917CONFIG_HAVE_ARCH_KGDB=y 903CONFIG_HAVE_ARCH_KGDB=y
918# CONFIG_SH_STANDARD_BIOS is not set 904# CONFIG_SH_STANDARD_BIOS is not set
919# CONFIG_EARLY_SCIF_CONSOLE is not set 905# CONFIG_EARLY_SCIF_CONSOLE is not set
920# CONFIG_MORE_COMPILE_OPTIONS is not set
921 906
922# 907#
923# Security options 908# Security options
@@ -1032,3 +1017,4 @@ CONFIG_HAS_IOMEM=y
1032CONFIG_HAS_IOPORT=y 1017CONFIG_HAS_IOPORT=y
1033CONFIG_HAS_DMA=y 1018CONFIG_HAS_DMA=y
1034CONFIG_NLATTR=y 1019CONFIG_NLATTR=y
1020CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7751_defconfig b/arch/sh/configs/se7751_defconfig
index 55f3b788e0c..eb431c43e99 100644
--- a/arch/sh/configs/se7751_defconfig
+++ b/arch/sh/configs/se7751_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:06:44 2009 4# Thu Jun 18 13:02:26 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -74,7 +75,6 @@ CONFIG_UID16=y
74# CONFIG_SYSCTL_SYSCALL is not set 75# CONFIG_SYSCTL_SYSCALL is not set
75CONFIG_KALLSYMS=y 76CONFIG_KALLSYMS=y
76# CONFIG_KALLSYMS_EXTRA_PASS is not set 77# CONFIG_KALLSYMS_EXTRA_PASS is not set
77# CONFIG_STRIP_ASM_SYMS is not set
78# CONFIG_HOTPLUG is not set 78# CONFIG_HOTPLUG is not set
79CONFIG_PRINTK=y 79CONFIG_PRINTK=y
80CONFIG_BUG=y 80CONFIG_BUG=y
@@ -87,7 +87,12 @@ CONFIG_TIMERFD=y
87CONFIG_EVENTFD=y 87CONFIG_EVENTFD=y
88CONFIG_SHMEM=y 88CONFIG_SHMEM=y
89CONFIG_AIO=y 89CONFIG_AIO=y
90
91#
92# Performance Counters
93#
90CONFIG_VM_EVENT_COUNTERS=y 94CONFIG_VM_EVENT_COUNTERS=y
95# CONFIG_STRIP_ASM_SYMS is not set
91CONFIG_COMPAT_BRK=y 96CONFIG_COMPAT_BRK=y
92CONFIG_SLAB=y 97CONFIG_SLAB=y
93# CONFIG_SLUB is not set 98# CONFIG_SLUB is not set
@@ -176,6 +181,7 @@ CONFIG_CPU_SUBTYPE_SH7751=y
176CONFIG_QUICKLIST=y 181CONFIG_QUICKLIST=y
177CONFIG_MMU=y 182CONFIG_MMU=y
178CONFIG_PAGE_OFFSET=0x80000000 183CONFIG_PAGE_OFFSET=0x80000000
184CONFIG_FORCE_MAX_ZONEORDER=11
179CONFIG_MEMORY_START=0x0c000000 185CONFIG_MEMORY_START=0x0c000000
180CONFIG_MEMORY_SIZE=0x04000000 186CONFIG_MEMORY_SIZE=0x04000000
181CONFIG_29BIT=y 187CONFIG_29BIT=y
@@ -190,7 +196,6 @@ CONFIG_PAGE_SIZE_4KB=y
190# CONFIG_PAGE_SIZE_8KB is not set 196# CONFIG_PAGE_SIZE_8KB is not set
191# CONFIG_PAGE_SIZE_16KB is not set 197# CONFIG_PAGE_SIZE_16KB is not set
192# CONFIG_PAGE_SIZE_64KB is not set 198# CONFIG_PAGE_SIZE_64KB is not set
193CONFIG_ENTRY_OFFSET=0x00001000
194CONFIG_SELECT_MEMORY_MODEL=y 199CONFIG_SELECT_MEMORY_MODEL=y
195CONFIG_FLATMEM_MANUAL=y 200CONFIG_FLATMEM_MANUAL=y
196# CONFIG_DISCONTIGMEM_MANUAL is not set 201# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -203,9 +208,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
203# CONFIG_PHYS_ADDR_T_64BIT is not set 208# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 209CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 210CONFIG_NR_QUICK=2
206CONFIG_UNEVICTABLE_LRU=y
207CONFIG_HAVE_MLOCK=y 211CONFIG_HAVE_MLOCK=y
208CONFIG_HAVE_MLOCKED_PAGE_BIT=y 212CONFIG_HAVE_MLOCKED_PAGE_BIT=y
213CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
209 214
210# 215#
211# Cache configuration 216# Cache configuration
@@ -224,7 +229,6 @@ CONFIG_SH_FPU=y
224CONFIG_CPU_HAS_INTEVT=y 229CONFIG_CPU_HAS_INTEVT=y
225CONFIG_CPU_HAS_IPR_IRQ=y 230CONFIG_CPU_HAS_IPR_IRQ=y
226CONFIG_CPU_HAS_SR_RB=y 231CONFIG_CPU_HAS_SR_RB=y
227CONFIG_CPU_HAS_PTEA=y
228CONFIG_CPU_HAS_FPU=y 232CONFIG_CPU_HAS_FPU=y
229 233
230# 234#
@@ -237,9 +241,10 @@ CONFIG_SH_7751_SOLUTION_ENGINE=y
237# 241#
238# Timer and clock configuration 242# Timer and clock configuration
239# 243#
240CONFIG_SH_TMU=y 244CONFIG_SH_TIMER_TMU=y
241CONFIG_SH_TIMER_IRQ=16
242CONFIG_SH_PCLK_FREQ=60000000 245CONFIG_SH_PCLK_FREQ=60000000
246CONFIG_SH_CLK_CPG=y
247CONFIG_SH_CLK_CPG_LEGACY=y
243# CONFIG_NO_HZ is not set 248# CONFIG_NO_HZ is not set
244# CONFIG_HIGH_RES_TIMERS is not set 249# CONFIG_HIGH_RES_TIMERS is not set
245CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 250CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -281,12 +286,14 @@ CONFIG_PREEMPT_NONE=y
281# CONFIG_PREEMPT is not set 286# CONFIG_PREEMPT is not set
282CONFIG_GUSA=y 287CONFIG_GUSA=y
283# CONFIG_GUSA_RB is not set 288# CONFIG_GUSA_RB is not set
289# CONFIG_SPARSE_IRQ is not set
284 290
285# 291#
286# Boot options 292# Boot options
287# 293#
288CONFIG_ZERO_PAGE_OFFSET=0x00010000 294CONFIG_ZERO_PAGE_OFFSET=0x00010000
289CONFIG_BOOT_LINK_OFFSET=0x00800000 295CONFIG_BOOT_LINK_OFFSET=0x00800000
296CONFIG_ENTRY_OFFSET=0x00001000
290# CONFIG_UBC_WAKEUP is not set 297# CONFIG_UBC_WAKEUP is not set
291CONFIG_CMDLINE_BOOL=y 298CONFIG_CMDLINE_BOOL=y
292CONFIG_CMDLINE="console=ttySC1,38400" 299CONFIG_CMDLINE="console=ttySC1,38400"
@@ -389,6 +396,7 @@ CONFIG_IP_NF_QUEUE=y
389# CONFIG_ECONET is not set 396# CONFIG_ECONET is not set
390# CONFIG_WAN_ROUTER is not set 397# CONFIG_WAN_ROUTER is not set
391# CONFIG_PHONET is not set 398# CONFIG_PHONET is not set
399# CONFIG_IEEE802154 is not set
392# CONFIG_NET_SCHED is not set 400# CONFIG_NET_SCHED is not set
393# CONFIG_DCB is not set 401# CONFIG_DCB is not set
394 402
@@ -406,7 +414,11 @@ CONFIG_WIRELESS=y
406# CONFIG_WIRELESS_OLD_REGULATORY is not set 414# CONFIG_WIRELESS_OLD_REGULATORY is not set
407# CONFIG_WIRELESS_EXT is not set 415# CONFIG_WIRELESS_EXT is not set
408# CONFIG_LIB80211 is not set 416# CONFIG_LIB80211 is not set
409# CONFIG_MAC80211 is not set 417
418#
419# CFG80211 needs to be enabled for MAC80211
420#
421CONFIG_MAC80211_DEFAULT_PS_VALUE=0
410# CONFIG_WIMAX is not set 422# CONFIG_WIMAX is not set
411# CONFIG_RFKILL is not set 423# CONFIG_RFKILL is not set
412# CONFIG_NET_9P is not set 424# CONFIG_NET_9P is not set
@@ -535,7 +547,6 @@ CONFIG_HAVE_IDE=y
535# CONFIG_ATA is not set 547# CONFIG_ATA is not set
536# CONFIG_MD is not set 548# CONFIG_MD is not set
537CONFIG_NETDEVICES=y 549CONFIG_NETDEVICES=y
538CONFIG_COMPAT_NET_DEV_OPS=y
539# CONFIG_DUMMY is not set 550# CONFIG_DUMMY is not set
540# CONFIG_BONDING is not set 551# CONFIG_BONDING is not set
541# CONFIG_MACVLAN is not set 552# CONFIG_MACVLAN is not set
@@ -560,6 +571,7 @@ CONFIG_MII=y
560# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 571# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
561# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 572# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
562# CONFIG_B44 is not set 573# CONFIG_B44 is not set
574# CONFIG_KS8842 is not set
563CONFIG_NETDEV_1000=y 575CONFIG_NETDEV_1000=y
564CONFIG_NETDEV_10000=y 576CONFIG_NETDEV_10000=y
565 577
@@ -660,22 +672,7 @@ CONFIG_SSB_POSSIBLE=y
660# CONFIG_HTC_PASIC3 is not set 672# CONFIG_HTC_PASIC3 is not set
661# CONFIG_MFD_TMIO is not set 673# CONFIG_MFD_TMIO is not set
662# CONFIG_REGULATOR is not set 674# CONFIG_REGULATOR is not set
663 675# CONFIG_MEDIA_SUPPORT is not set
664#
665# Multimedia devices
666#
667
668#
669# Multimedia core support
670#
671# CONFIG_VIDEO_DEV is not set
672# CONFIG_DVB_CORE is not set
673# CONFIG_VIDEO_MEDIA is not set
674
675#
676# Multimedia drivers
677#
678# CONFIG_DAB is not set
679 676
680# 677#
681# Graphics support 678# Graphics support
@@ -714,10 +711,15 @@ CONFIG_USB_ARCH_HAS_HCD=y
714# CONFIG_MEMSTICK is not set 711# CONFIG_MEMSTICK is not set
715# CONFIG_NEW_LEDS is not set 712# CONFIG_NEW_LEDS is not set
716# CONFIG_ACCESSIBILITY is not set 713# CONFIG_ACCESSIBILITY is not set
714CONFIG_RTC_LIB=y
717# CONFIG_RTC_CLASS is not set 715# CONFIG_RTC_CLASS is not set
718# CONFIG_DMADEVICES is not set 716# CONFIG_DMADEVICES is not set
719# CONFIG_AUXDISPLAY is not set 717# CONFIG_AUXDISPLAY is not set
720# CONFIG_UIO is not set 718# CONFIG_UIO is not set
719
720#
721# TI VLYNQ
722#
721# CONFIG_STAGING is not set 723# CONFIG_STAGING is not set
722 724
723# 725#
@@ -731,10 +733,11 @@ CONFIG_EXT2_FS=y
731# CONFIG_REISERFS_FS is not set 733# CONFIG_REISERFS_FS is not set
732# CONFIG_JFS_FS is not set 734# CONFIG_JFS_FS is not set
733# CONFIG_FS_POSIX_ACL is not set 735# CONFIG_FS_POSIX_ACL is not set
734CONFIG_FILE_LOCKING=y
735# CONFIG_XFS_FS is not set 736# CONFIG_XFS_FS is not set
736# CONFIG_OCFS2_FS is not set 737# CONFIG_OCFS2_FS is not set
737# CONFIG_BTRFS_FS is not set 738# CONFIG_BTRFS_FS is not set
739CONFIG_FILE_LOCKING=y
740CONFIG_FSNOTIFY=y
738CONFIG_DNOTIFY=y 741CONFIG_DNOTIFY=y
739CONFIG_INOTIFY=y 742CONFIG_INOTIFY=y
740CONFIG_INOTIFY_USER=y 743CONFIG_INOTIFY_USER=y
@@ -842,27 +845,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
842CONFIG_HAVE_DYNAMIC_FTRACE=y 845CONFIG_HAVE_DYNAMIC_FTRACE=y
843CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 846CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
844CONFIG_TRACING_SUPPORT=y 847CONFIG_TRACING_SUPPORT=y
845 848# CONFIG_FTRACE is not set
846#
847# Tracers
848#
849# CONFIG_FUNCTION_TRACER is not set
850# CONFIG_IRQSOFF_TRACER is not set
851# CONFIG_SCHED_TRACER is not set
852# CONFIG_CONTEXT_SWITCH_TRACER is not set
853# CONFIG_EVENT_TRACER is not set
854# CONFIG_BOOT_TRACER is not set
855# CONFIG_TRACE_BRANCH_PROFILING is not set
856# CONFIG_STACK_TRACER is not set
857# CONFIG_KMEMTRACE is not set
858# CONFIG_WORKQUEUE_TRACER is not set
859# CONFIG_BLK_DEV_IO_TRACE is not set
860# CONFIG_DMA_API_DEBUG is not set 849# CONFIG_DMA_API_DEBUG is not set
861# CONFIG_SAMPLES is not set 850# CONFIG_SAMPLES is not set
862CONFIG_HAVE_ARCH_KGDB=y 851CONFIG_HAVE_ARCH_KGDB=y
863# CONFIG_SH_STANDARD_BIOS is not set 852# CONFIG_SH_STANDARD_BIOS is not set
864# CONFIG_EARLY_SCIF_CONSOLE is not set 853# CONFIG_EARLY_SCIF_CONSOLE is not set
865# CONFIG_MORE_COMPILE_OPTIONS is not set
866 854
867# 855#
868# Security options 856# Security options
@@ -978,3 +966,4 @@ CONFIG_HAS_IOMEM=y
978CONFIG_HAS_IOPORT=y 966CONFIG_HAS_IOPORT=y
979CONFIG_HAS_DMA=y 967CONFIG_HAS_DMA=y
980CONFIG_NLATTR=y 968CONFIG_NLATTR=y
969CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig
index c4f0af32efa..756beec5fb2 100644
--- a/arch/sh/configs/se7780_defconfig
+++ b/arch/sh/configs/se7780_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:07:14 2009 4# Thu Jun 18 13:03:56 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -68,7 +69,6 @@ CONFIG_EMBEDDED=y
68CONFIG_UID16=y 69CONFIG_UID16=y
69CONFIG_SYSCTL_SYSCALL=y 70CONFIG_SYSCTL_SYSCALL=y
70# CONFIG_KALLSYMS is not set 71# CONFIG_KALLSYMS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
72# CONFIG_HOTPLUG is not set 72# CONFIG_HOTPLUG is not set
73CONFIG_PRINTK=y 73CONFIG_PRINTK=y
74CONFIG_BUG=y 74CONFIG_BUG=y
@@ -81,8 +81,13 @@ CONFIG_TIMERFD=y
81CONFIG_EVENTFD=y 81CONFIG_EVENTFD=y
82CONFIG_SHMEM=y 82CONFIG_SHMEM=y
83CONFIG_AIO=y 83CONFIG_AIO=y
84
85#
86# Performance Counters
87#
84CONFIG_VM_EVENT_COUNTERS=y 88CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_PCI_QUIRKS=y 89CONFIG_PCI_QUIRKS=y
90# CONFIG_STRIP_ASM_SYMS is not set
86CONFIG_COMPAT_BRK=y 91CONFIG_COMPAT_BRK=y
87CONFIG_SLAB=y 92CONFIG_SLAB=y
88# CONFIG_SLUB is not set 93# CONFIG_SLUB is not set
@@ -170,6 +175,7 @@ CONFIG_CPU_SUBTYPE_SH7780=y
170CONFIG_QUICKLIST=y 175CONFIG_QUICKLIST=y
171CONFIG_MMU=y 176CONFIG_MMU=y
172CONFIG_PAGE_OFFSET=0x80000000 177CONFIG_PAGE_OFFSET=0x80000000
178CONFIG_FORCE_MAX_ZONEORDER=11
173CONFIG_MEMORY_START=0x08000000 179CONFIG_MEMORY_START=0x08000000
174CONFIG_MEMORY_SIZE=0x08000000 180CONFIG_MEMORY_SIZE=0x08000000
175CONFIG_29BIT=y 181CONFIG_29BIT=y
@@ -186,7 +192,6 @@ CONFIG_PAGE_SIZE_4KB=y
186# CONFIG_PAGE_SIZE_8KB is not set 192# CONFIG_PAGE_SIZE_8KB is not set
187# CONFIG_PAGE_SIZE_16KB is not set 193# CONFIG_PAGE_SIZE_16KB is not set
188# CONFIG_PAGE_SIZE_64KB is not set 194# CONFIG_PAGE_SIZE_64KB is not set
189CONFIG_ENTRY_OFFSET=0x00001000
190CONFIG_SELECT_MEMORY_MODEL=y 195CONFIG_SELECT_MEMORY_MODEL=y
191# CONFIG_FLATMEM_MANUAL is not set 196# CONFIG_FLATMEM_MANUAL is not set
192# CONFIG_DISCONTIGMEM_MANUAL is not set 197# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -200,9 +205,9 @@ CONFIG_MIGRATION=y
200# CONFIG_PHYS_ADDR_T_64BIT is not set 205# CONFIG_PHYS_ADDR_T_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=0 206CONFIG_ZONE_DMA_FLAG=0
202CONFIG_NR_QUICK=2 207CONFIG_NR_QUICK=2
203CONFIG_UNEVICTABLE_LRU=y
204CONFIG_HAVE_MLOCK=y 208CONFIG_HAVE_MLOCK=y
205CONFIG_HAVE_MLOCKED_PAGE_BIT=y 209CONFIG_HAVE_MLOCKED_PAGE_BIT=y
210CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
206 211
207# 212#
208# Cache configuration 213# Cache configuration
@@ -233,9 +238,10 @@ CONFIG_SH_7780_SOLUTION_ENGINE=y
233# 238#
234# Timer and clock configuration 239# Timer and clock configuration
235# 240#
236CONFIG_SH_TMU=y 241CONFIG_SH_TIMER_TMU=y
237CONFIG_SH_TIMER_IRQ=28
238CONFIG_SH_PCLK_FREQ=33333333 242CONFIG_SH_PCLK_FREQ=33333333
243CONFIG_SH_CLK_CPG=y
244CONFIG_SH_CLK_CPG_LEGACY=y
239# CONFIG_NO_HZ is not set 245# CONFIG_NO_HZ is not set
240# CONFIG_HIGH_RES_TIMERS is not set 246# CONFIG_HIGH_RES_TIMERS is not set
241CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 247CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -280,6 +286,7 @@ CONFIG_GUSA=y
280# 286#
281CONFIG_ZERO_PAGE_OFFSET=0x00001000 287CONFIG_ZERO_PAGE_OFFSET=0x00001000
282CONFIG_BOOT_LINK_OFFSET=0x00810000 288CONFIG_BOOT_LINK_OFFSET=0x00810000
289CONFIG_ENTRY_OFFSET=0x00001000
283CONFIG_CMDLINE_BOOL=y 290CONFIG_CMDLINE_BOOL=y
284CONFIG_CMDLINE="console=ttySC0.115200 root=/dev/sda1" 291CONFIG_CMDLINE="console=ttySC0.115200 root=/dev/sda1"
285 292
@@ -323,6 +330,7 @@ CONFIG_IP_PNP=y
323# CONFIG_NET_IPIP is not set 330# CONFIG_NET_IPIP is not set
324# CONFIG_NET_IPGRE is not set 331# CONFIG_NET_IPGRE is not set
325# CONFIG_IP_MROUTE is not set 332# CONFIG_IP_MROUTE is not set
333# CONFIG_ARPD is not set
326# CONFIG_SYN_COOKIES is not set 334# CONFIG_SYN_COOKIES is not set
327# CONFIG_INET_AH is not set 335# CONFIG_INET_AH is not set
328# CONFIG_INET_ESP is not set 336# CONFIG_INET_ESP is not set
@@ -377,7 +385,11 @@ CONFIG_WIRELESS=y
377# CONFIG_WIRELESS_OLD_REGULATORY is not set 385# CONFIG_WIRELESS_OLD_REGULATORY is not set
378# CONFIG_WIRELESS_EXT is not set 386# CONFIG_WIRELESS_EXT is not set
379# CONFIG_LIB80211 is not set 387# CONFIG_LIB80211 is not set
380# CONFIG_MAC80211 is not set 388
389#
390# CFG80211 needs to be enabled for MAC80211
391#
392CONFIG_MAC80211_DEFAULT_PS_VALUE=0
381# CONFIG_WIMAX is not set 393# CONFIG_WIMAX is not set
382# CONFIG_RFKILL is not set 394# CONFIG_RFKILL is not set
383 395
@@ -503,6 +515,7 @@ CONFIG_MISC_DEVICES=y
503# EEPROM support 515# EEPROM support
504# 516#
505# CONFIG_EEPROM_93CX6 is not set 517# CONFIG_EEPROM_93CX6 is not set
518# CONFIG_CB710_CORE is not set
506CONFIG_HAVE_IDE=y 519CONFIG_HAVE_IDE=y
507# CONFIG_IDE is not set 520# CONFIG_IDE is not set
508 521
@@ -524,10 +537,6 @@ CONFIG_BLK_DEV_SD=y
524# CONFIG_BLK_DEV_SR is not set 537# CONFIG_BLK_DEV_SR is not set
525CONFIG_CHR_DEV_SG=y 538CONFIG_CHR_DEV_SG=y
526# CONFIG_CHR_DEV_SCH is not set 539# CONFIG_CHR_DEV_SCH is not set
527
528#
529# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
530#
531# CONFIG_SCSI_MULTI_LUN is not set 540# CONFIG_SCSI_MULTI_LUN is not set
532# CONFIG_SCSI_CONSTANTS is not set 541# CONFIG_SCSI_CONSTANTS is not set
533# CONFIG_SCSI_LOGGING is not set 542# CONFIG_SCSI_LOGGING is not set
@@ -544,6 +553,7 @@ CONFIG_SCSI_WAIT_SCAN=m
544# CONFIG_SCSI_SRP_ATTRS is not set 553# CONFIG_SCSI_SRP_ATTRS is not set
545CONFIG_SCSI_LOWLEVEL=y 554CONFIG_SCSI_LOWLEVEL=y
546# CONFIG_ISCSI_TCP is not set 555# CONFIG_ISCSI_TCP is not set
556# CONFIG_SCSI_BNX2_ISCSI is not set
547# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 557# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
548# CONFIG_SCSI_3W_9XXX is not set 558# CONFIG_SCSI_3W_9XXX is not set
549# CONFIG_SCSI_ACARD is not set 559# CONFIG_SCSI_ACARD is not set
@@ -552,6 +562,7 @@ CONFIG_SCSI_LOWLEVEL=y
552# CONFIG_SCSI_AIC7XXX_OLD is not set 562# CONFIG_SCSI_AIC7XXX_OLD is not set
553# CONFIG_SCSI_AIC79XX is not set 563# CONFIG_SCSI_AIC79XX is not set
554# CONFIG_SCSI_AIC94XX is not set 564# CONFIG_SCSI_AIC94XX is not set
565# CONFIG_SCSI_MVSAS is not set
555# CONFIG_SCSI_ARCMSR is not set 566# CONFIG_SCSI_ARCMSR is not set
556# CONFIG_MEGARAID_NEWGEN is not set 567# CONFIG_MEGARAID_NEWGEN is not set
557# CONFIG_MEGARAID_LEGACY is not set 568# CONFIG_MEGARAID_LEGACY is not set
@@ -566,7 +577,6 @@ CONFIG_SCSI_LOWLEVEL=y
566# CONFIG_SCSI_IPS is not set 577# CONFIG_SCSI_IPS is not set
567# CONFIG_SCSI_INITIO is not set 578# CONFIG_SCSI_INITIO is not set
568# CONFIG_SCSI_INIA100 is not set 579# CONFIG_SCSI_INIA100 is not set
569# CONFIG_SCSI_MVSAS is not set
570# CONFIG_SCSI_STEX is not set 580# CONFIG_SCSI_STEX is not set
571# CONFIG_SCSI_SYM53C8XX_2 is not set 581# CONFIG_SCSI_SYM53C8XX_2 is not set
572# CONFIG_SCSI_IPR is not set 582# CONFIG_SCSI_IPR is not set
@@ -643,7 +653,6 @@ CONFIG_SATA_SIL=y
643# CONFIG_IEEE1394 is not set 653# CONFIG_IEEE1394 is not set
644# CONFIG_I2O is not set 654# CONFIG_I2O is not set
645CONFIG_NETDEVICES=y 655CONFIG_NETDEVICES=y
646CONFIG_COMPAT_NET_DEV_OPS=y
647# CONFIG_DUMMY is not set 656# CONFIG_DUMMY is not set
648# CONFIG_BONDING is not set 657# CONFIG_BONDING is not set
649# CONFIG_EQUALIZER is not set 658# CONFIG_EQUALIZER is not set
@@ -709,6 +718,7 @@ CONFIG_NET_PCI=y
709# CONFIG_SMSC9420 is not set 718# CONFIG_SMSC9420 is not set
710# CONFIG_SUNDANCE is not set 719# CONFIG_SUNDANCE is not set
711# CONFIG_TLAN is not set 720# CONFIG_TLAN is not set
721# CONFIG_KS8842 is not set
712# CONFIG_VIA_RHINE is not set 722# CONFIG_VIA_RHINE is not set
713# CONFIG_ATL2 is not set 723# CONFIG_ATL2 is not set
714# CONFIG_NETDEV_1000 is not set 724# CONFIG_NETDEV_1000 is not set
@@ -842,22 +852,7 @@ CONFIG_SSB_POSSIBLE=y
842# CONFIG_HTC_PASIC3 is not set 852# CONFIG_HTC_PASIC3 is not set
843# CONFIG_MFD_TMIO is not set 853# CONFIG_MFD_TMIO is not set
844# CONFIG_REGULATOR is not set 854# CONFIG_REGULATOR is not set
845 855# CONFIG_MEDIA_SUPPORT is not set
846#
847# Multimedia devices
848#
849
850#
851# Multimedia core support
852#
853# CONFIG_VIDEO_DEV is not set
854# CONFIG_DVB_CORE is not set
855# CONFIG_VIDEO_MEDIA is not set
856
857#
858# Multimedia drivers
859#
860# CONFIG_DAB is not set
861 856
862# 857#
863# Graphics support 858# Graphics support
@@ -965,7 +960,7 @@ CONFIG_HID_BELKIN=y
965CONFIG_HID_CHERRY=y 960CONFIG_HID_CHERRY=y
966CONFIG_HID_CHICONY=y 961CONFIG_HID_CHICONY=y
967CONFIG_HID_CYPRESS=y 962CONFIG_HID_CYPRESS=y
968# CONFIG_DRAGONRISE_FF is not set 963# CONFIG_HID_DRAGONRISE is not set
969CONFIG_HID_EZKEY=y 964CONFIG_HID_EZKEY=y
970# CONFIG_HID_KYE is not set 965# CONFIG_HID_KYE is not set
971CONFIG_HID_GYRATION=y 966CONFIG_HID_GYRATION=y
@@ -982,10 +977,11 @@ CONFIG_HID_PETALYNX=y
982CONFIG_HID_SAMSUNG=y 977CONFIG_HID_SAMSUNG=y
983CONFIG_HID_SONY=y 978CONFIG_HID_SONY=y
984CONFIG_HID_SUNPLUS=y 979CONFIG_HID_SUNPLUS=y
985# CONFIG_GREENASIA_FF is not set 980# CONFIG_HID_GREENASIA is not set
981# CONFIG_HID_SMARTJOYPLUS is not set
986# CONFIG_HID_TOPSEED is not set 982# CONFIG_HID_TOPSEED is not set
987CONFIG_THRUSTMASTER_FF=m 983# CONFIG_HID_THRUSTMASTER is not set
988CONFIG_ZEROPLUS_FF=m 984# CONFIG_HID_ZEROPLUS is not set
989CONFIG_USB_SUPPORT=y 985CONFIG_USB_SUPPORT=y
990CONFIG_USB_ARCH_HAS_HCD=y 986CONFIG_USB_ARCH_HAS_HCD=y
991CONFIG_USB_ARCH_HAS_OHCI=y 987CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1097,10 +1093,15 @@ CONFIG_USB_STORAGE=y
1097# CONFIG_NEW_LEDS is not set 1093# CONFIG_NEW_LEDS is not set
1098# CONFIG_ACCESSIBILITY is not set 1094# CONFIG_ACCESSIBILITY is not set
1099# CONFIG_INFINIBAND is not set 1095# CONFIG_INFINIBAND is not set
1096CONFIG_RTC_LIB=y
1100# CONFIG_RTC_CLASS is not set 1097# CONFIG_RTC_CLASS is not set
1101# CONFIG_DMADEVICES is not set 1098# CONFIG_DMADEVICES is not set
1102# CONFIG_AUXDISPLAY is not set 1099# CONFIG_AUXDISPLAY is not set
1103# CONFIG_UIO is not set 1100# CONFIG_UIO is not set
1101
1102#
1103# TI VLYNQ
1104#
1104# CONFIG_STAGING is not set 1105# CONFIG_STAGING is not set
1105 1106
1106# 1107#
@@ -1114,9 +1115,10 @@ CONFIG_EXT2_FS=y
1114# CONFIG_REISERFS_FS is not set 1115# CONFIG_REISERFS_FS is not set
1115# CONFIG_JFS_FS is not set 1116# CONFIG_JFS_FS is not set
1116# CONFIG_FS_POSIX_ACL is not set 1117# CONFIG_FS_POSIX_ACL is not set
1117CONFIG_FILE_LOCKING=y
1118# CONFIG_XFS_FS is not set 1118# CONFIG_XFS_FS is not set
1119# CONFIG_OCFS2_FS is not set 1119# CONFIG_OCFS2_FS is not set
1120CONFIG_FILE_LOCKING=y
1121CONFIG_FSNOTIFY=y
1120# CONFIG_DNOTIFY is not set 1122# CONFIG_DNOTIFY is not set
1121CONFIG_INOTIFY=y 1123CONFIG_INOTIFY=y
1122CONFIG_INOTIFY_USER=y 1124CONFIG_INOTIFY_USER=y
@@ -1254,28 +1256,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1254CONFIG_HAVE_DYNAMIC_FTRACE=y 1256CONFIG_HAVE_DYNAMIC_FTRACE=y
1255CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1257CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1256CONFIG_TRACING_SUPPORT=y 1258CONFIG_TRACING_SUPPORT=y
1257 1259# CONFIG_FTRACE is not set
1258#
1259# Tracers
1260#
1261# CONFIG_FUNCTION_TRACER is not set
1262# CONFIG_IRQSOFF_TRACER is not set
1263# CONFIG_SCHED_TRACER is not set
1264# CONFIG_CONTEXT_SWITCH_TRACER is not set
1265# CONFIG_EVENT_TRACER is not set
1266# CONFIG_BOOT_TRACER is not set
1267# CONFIG_TRACE_BRANCH_PROFILING is not set
1268# CONFIG_STACK_TRACER is not set
1269# CONFIG_KMEMTRACE is not set
1270# CONFIG_WORKQUEUE_TRACER is not set
1271# CONFIG_BLK_DEV_IO_TRACE is not set
1272# CONFIG_DYNAMIC_DEBUG is not set 1260# CONFIG_DYNAMIC_DEBUG is not set
1273# CONFIG_DMA_API_DEBUG is not set 1261# CONFIG_DMA_API_DEBUG is not set
1274# CONFIG_SAMPLES is not set 1262# CONFIG_SAMPLES is not set
1275CONFIG_HAVE_ARCH_KGDB=y 1263CONFIG_HAVE_ARCH_KGDB=y
1276# CONFIG_SH_STANDARD_BIOS is not set 1264# CONFIG_SH_STANDARD_BIOS is not set
1277# CONFIG_EARLY_SCIF_CONSOLE is not set 1265# CONFIG_EARLY_SCIF_CONSOLE is not set
1278# CONFIG_MORE_COMPILE_OPTIONS is not set
1279 1266
1280# 1267#
1281# Security options 1268# Security options
@@ -1385,3 +1372,4 @@ CONFIG_HAS_IOMEM=y
1385CONFIG_HAS_IOPORT=y 1372CONFIG_HAS_IOPORT=y
1386CONFIG_HAS_DMA=y 1373CONFIG_HAS_DMA=y
1387CONFIG_NLATTR=y 1374CONFIG_NLATTR=y
1375CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/sh03_defconfig b/arch/sh/configs/sh03_defconfig
index f9c6e51dc0b..7fedaaee861 100644
--- a/arch/sh/configs/sh03_defconfig
+++ b/arch/sh/configs/sh03_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:07:56 2009 4# Thu Jun 18 13:04:41 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -17,9 +17,11 @@ CONFIG_GENERIC_IRQ_PROBE=y
17# CONFIG_GENERIC_GPIO is not set 17# CONFIG_GENERIC_GPIO is not set
18CONFIG_GENERIC_TIME=y 18CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20CONFIG_GENERIC_CMOS_UPDATE=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 23CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 27CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -77,7 +79,6 @@ CONFIG_UID16=y
77# CONFIG_SYSCTL_SYSCALL is not set 79# CONFIG_SYSCTL_SYSCALL is not set
78CONFIG_KALLSYMS=y 80CONFIG_KALLSYMS=y
79# CONFIG_KALLSYMS_EXTRA_PASS is not set 81# CONFIG_KALLSYMS_EXTRA_PASS is not set
80# CONFIG_STRIP_ASM_SYMS is not set
81CONFIG_HOTPLUG=y 82CONFIG_HOTPLUG=y
82CONFIG_PRINTK=y 83CONFIG_PRINTK=y
83CONFIG_BUG=y 84CONFIG_BUG=y
@@ -90,15 +91,20 @@ CONFIG_TIMERFD=y
90CONFIG_EVENTFD=y 91CONFIG_EVENTFD=y
91CONFIG_SHMEM=y 92CONFIG_SHMEM=y
92CONFIG_AIO=y 93CONFIG_AIO=y
94
95#
96# Performance Counters
97#
93CONFIG_VM_EVENT_COUNTERS=y 98CONFIG_VM_EVENT_COUNTERS=y
94CONFIG_PCI_QUIRKS=y 99CONFIG_PCI_QUIRKS=y
100# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_COMPAT_BRK=y 101CONFIG_COMPAT_BRK=y
96CONFIG_SLAB=y 102CONFIG_SLAB=y
97# CONFIG_SLUB is not set 103# CONFIG_SLUB is not set
98# CONFIG_SLOB is not set 104# CONFIG_SLOB is not set
99CONFIG_PROFILING=y 105CONFIG_PROFILING=y
100CONFIG_TRACEPOINTS=y 106CONFIG_TRACEPOINTS=y
101# CONFIG_MARKERS is not set 107CONFIG_MARKERS=y
102CONFIG_OPROFILE=m 108CONFIG_OPROFILE=m
103CONFIG_HAVE_OPROFILE=y 109CONFIG_HAVE_OPROFILE=y
104# CONFIG_KPROBES is not set 110# CONFIG_KPROBES is not set
@@ -183,6 +189,7 @@ CONFIG_CPU_SUBTYPE_SH7751=y
183CONFIG_QUICKLIST=y 189CONFIG_QUICKLIST=y
184CONFIG_MMU=y 190CONFIG_MMU=y
185CONFIG_PAGE_OFFSET=0x80000000 191CONFIG_PAGE_OFFSET=0x80000000
192CONFIG_FORCE_MAX_ZONEORDER=11
186CONFIG_MEMORY_START=0x08000000 193CONFIG_MEMORY_START=0x08000000
187CONFIG_MEMORY_SIZE=0x08000000 194CONFIG_MEMORY_SIZE=0x08000000
188CONFIG_29BIT=y 195CONFIG_29BIT=y
@@ -197,7 +204,6 @@ CONFIG_PAGE_SIZE_4KB=y
197# CONFIG_PAGE_SIZE_8KB is not set 204# CONFIG_PAGE_SIZE_8KB is not set
198# CONFIG_PAGE_SIZE_16KB is not set 205# CONFIG_PAGE_SIZE_16KB is not set
199# CONFIG_PAGE_SIZE_64KB is not set 206# CONFIG_PAGE_SIZE_64KB is not set
200CONFIG_ENTRY_OFFSET=0x00001000
201CONFIG_SELECT_MEMORY_MODEL=y 207CONFIG_SELECT_MEMORY_MODEL=y
202CONFIG_FLATMEM_MANUAL=y 208CONFIG_FLATMEM_MANUAL=y
203# CONFIG_DISCONTIGMEM_MANUAL is not set 209# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -210,9 +216,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
210# CONFIG_PHYS_ADDR_T_64BIT is not set 216# CONFIG_PHYS_ADDR_T_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=0 217CONFIG_ZONE_DMA_FLAG=0
212CONFIG_NR_QUICK=2 218CONFIG_NR_QUICK=2
213CONFIG_UNEVICTABLE_LRU=y
214CONFIG_HAVE_MLOCK=y 219CONFIG_HAVE_MLOCK=y
215CONFIG_HAVE_MLOCKED_PAGE_BIT=y 220CONFIG_HAVE_MLOCKED_PAGE_BIT=y
221CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
216 222
217# 223#
218# Cache configuration 224# Cache configuration
@@ -231,7 +237,6 @@ CONFIG_SH_FPU=y
231CONFIG_CPU_HAS_INTEVT=y 237CONFIG_CPU_HAS_INTEVT=y
232CONFIG_CPU_HAS_IPR_IRQ=y 238CONFIG_CPU_HAS_IPR_IRQ=y
233CONFIG_CPU_HAS_SR_RB=y 239CONFIG_CPU_HAS_SR_RB=y
234CONFIG_CPU_HAS_PTEA=y
235CONFIG_CPU_HAS_FPU=y 240CONFIG_CPU_HAS_FPU=y
236 241
237# 242#
@@ -243,9 +248,10 @@ CONFIG_SH_SH03=y
243# 248#
244# Timer and clock configuration 249# Timer and clock configuration
245# 250#
246CONFIG_SH_TMU=y 251CONFIG_SH_TIMER_TMU=y
247CONFIG_SH_TIMER_IRQ=16
248CONFIG_SH_PCLK_FREQ=60000000 252CONFIG_SH_PCLK_FREQ=60000000
253CONFIG_SH_CLK_CPG=y
254CONFIG_SH_CLK_CPG_LEGACY=y
249# CONFIG_NO_HZ is not set 255# CONFIG_NO_HZ is not set
250# CONFIG_HIGH_RES_TIMERS is not set 256# CONFIG_HIGH_RES_TIMERS is not set
251CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 257CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -287,12 +293,14 @@ CONFIG_HZ=250
287CONFIG_PREEMPT=y 293CONFIG_PREEMPT=y
288CONFIG_GUSA=y 294CONFIG_GUSA=y
289# CONFIG_GUSA_RB is not set 295# CONFIG_GUSA_RB is not set
296# CONFIG_SPARSE_IRQ is not set
290 297
291# 298#
292# Boot options 299# Boot options
293# 300#
294CONFIG_ZERO_PAGE_OFFSET=0x00004000 301CONFIG_ZERO_PAGE_OFFSET=0x00004000
295CONFIG_BOOT_LINK_OFFSET=0x00800000 302CONFIG_BOOT_LINK_OFFSET=0x00800000
303CONFIG_ENTRY_OFFSET=0x00001000
296# CONFIG_UBC_WAKEUP is not set 304# CONFIG_UBC_WAKEUP is not set
297CONFIG_CMDLINE_BOOL=y 305CONFIG_CMDLINE_BOOL=y
298CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs" 306CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs"
@@ -388,6 +396,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
388# CONFIG_ECONET is not set 396# CONFIG_ECONET is not set
389# CONFIG_WAN_ROUTER is not set 397# CONFIG_WAN_ROUTER is not set
390# CONFIG_PHONET is not set 398# CONFIG_PHONET is not set
399# CONFIG_IEEE802154 is not set
391# CONFIG_NET_SCHED is not set 400# CONFIG_NET_SCHED is not set
392# CONFIG_DCB is not set 401# CONFIG_DCB is not set
393 402
@@ -406,7 +415,11 @@ CONFIG_WIRELESS=y
406# CONFIG_WIRELESS_OLD_REGULATORY is not set 415# CONFIG_WIRELESS_OLD_REGULATORY is not set
407# CONFIG_WIRELESS_EXT is not set 416# CONFIG_WIRELESS_EXT is not set
408# CONFIG_LIB80211 is not set 417# CONFIG_LIB80211 is not set
409# CONFIG_MAC80211 is not set 418
419#
420# CFG80211 needs to be enabled for MAC80211
421#
422CONFIG_MAC80211_DEFAULT_PS_VALUE=0
410# CONFIG_WIMAX is not set 423# CONFIG_WIMAX is not set
411# CONFIG_RFKILL is not set 424# CONFIG_RFKILL is not set
412# CONFIG_NET_9P is not set 425# CONFIG_NET_9P is not set
@@ -454,6 +467,7 @@ CONFIG_MISC_DEVICES=y
454# EEPROM support 467# EEPROM support
455# 468#
456# CONFIG_EEPROM_93CX6 is not set 469# CONFIG_EEPROM_93CX6 is not set
470# CONFIG_CB710_CORE is not set
457CONFIG_HAVE_IDE=y 471CONFIG_HAVE_IDE=y
458CONFIG_IDE=y 472CONFIG_IDE=y
459 473
@@ -526,10 +540,6 @@ CONFIG_BLK_DEV_SR=m
526CONFIG_BLK_DEV_SR_VENDOR=y 540CONFIG_BLK_DEV_SR_VENDOR=y
527CONFIG_CHR_DEV_SG=m 541CONFIG_CHR_DEV_SG=m
528# CONFIG_CHR_DEV_SCH is not set 542# CONFIG_CHR_DEV_SCH is not set
529
530#
531# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
532#
533# CONFIG_SCSI_MULTI_LUN is not set 543# CONFIG_SCSI_MULTI_LUN is not set
534# CONFIG_SCSI_CONSTANTS is not set 544# CONFIG_SCSI_CONSTANTS is not set
535# CONFIG_SCSI_LOGGING is not set 545# CONFIG_SCSI_LOGGING is not set
@@ -547,6 +557,7 @@ CONFIG_SCSI_WAIT_SCAN=m
547CONFIG_SCSI_LOWLEVEL=y 557CONFIG_SCSI_LOWLEVEL=y
548# CONFIG_ISCSI_TCP is not set 558# CONFIG_ISCSI_TCP is not set
549# CONFIG_SCSI_CXGB3_ISCSI is not set 559# CONFIG_SCSI_CXGB3_ISCSI is not set
560# CONFIG_SCSI_BNX2_ISCSI is not set
550# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 561# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
551# CONFIG_SCSI_3W_9XXX is not set 562# CONFIG_SCSI_3W_9XXX is not set
552# CONFIG_SCSI_ACARD is not set 563# CONFIG_SCSI_ACARD is not set
@@ -555,6 +566,7 @@ CONFIG_SCSI_LOWLEVEL=y
555# CONFIG_SCSI_AIC7XXX_OLD is not set 566# CONFIG_SCSI_AIC7XXX_OLD is not set
556# CONFIG_SCSI_AIC79XX is not set 567# CONFIG_SCSI_AIC79XX is not set
557# CONFIG_SCSI_AIC94XX is not set 568# CONFIG_SCSI_AIC94XX is not set
569# CONFIG_SCSI_MVSAS is not set
558# CONFIG_SCSI_ARCMSR is not set 570# CONFIG_SCSI_ARCMSR is not set
559# CONFIG_MEGARAID_NEWGEN is not set 571# CONFIG_MEGARAID_NEWGEN is not set
560# CONFIG_MEGARAID_LEGACY is not set 572# CONFIG_MEGARAID_LEGACY is not set
@@ -569,7 +581,6 @@ CONFIG_SCSI_LOWLEVEL=y
569# CONFIG_SCSI_IPS is not set 581# CONFIG_SCSI_IPS is not set
570# CONFIG_SCSI_INITIO is not set 582# CONFIG_SCSI_INITIO is not set
571# CONFIG_SCSI_INIA100 is not set 583# CONFIG_SCSI_INIA100 is not set
572# CONFIG_SCSI_MVSAS is not set
573# CONFIG_SCSI_STEX is not set 584# CONFIG_SCSI_STEX is not set
574# CONFIG_SCSI_SYM53C8XX_2 is not set 585# CONFIG_SCSI_SYM53C8XX_2 is not set
575# CONFIG_SCSI_QLOGIC_1280 is not set 586# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -598,7 +609,6 @@ CONFIG_SCSI_LOWLEVEL=y
598# CONFIG_IEEE1394 is not set 609# CONFIG_IEEE1394 is not set
599# CONFIG_I2O is not set 610# CONFIG_I2O is not set
600CONFIG_NETDEVICES=y 611CONFIG_NETDEVICES=y
601CONFIG_COMPAT_NET_DEV_OPS=y
602# CONFIG_DUMMY is not set 612# CONFIG_DUMMY is not set
603# CONFIG_BONDING is not set 613# CONFIG_BONDING is not set
604# CONFIG_MACVLAN is not set 614# CONFIG_MACVLAN is not set
@@ -647,6 +657,7 @@ CONFIG_8139CP=y
647# CONFIG_SMSC9420 is not set 657# CONFIG_SMSC9420 is not set
648# CONFIG_SUNDANCE is not set 658# CONFIG_SUNDANCE is not set
649# CONFIG_TLAN is not set 659# CONFIG_TLAN is not set
660# CONFIG_KS8842 is not set
650# CONFIG_VIA_RHINE is not set 661# CONFIG_VIA_RHINE is not set
651# CONFIG_SC92031 is not set 662# CONFIG_SC92031 is not set
652# CONFIG_ATL2 is not set 663# CONFIG_ATL2 is not set
@@ -845,22 +856,7 @@ CONFIG_SSB_POSSIBLE=y
845# CONFIG_HTC_PASIC3 is not set 856# CONFIG_HTC_PASIC3 is not set
846# CONFIG_MFD_TMIO is not set 857# CONFIG_MFD_TMIO is not set
847# CONFIG_REGULATOR is not set 858# CONFIG_REGULATOR is not set
848 859# CONFIG_MEDIA_SUPPORT is not set
849#
850# Multimedia devices
851#
852
853#
854# Multimedia core support
855#
856# CONFIG_VIDEO_DEV is not set
857# CONFIG_DVB_CORE is not set
858# CONFIG_VIDEO_MEDIA is not set
859
860#
861# Multimedia drivers
862#
863# CONFIG_DAB is not set
864 860
865# 861#
866# Graphics support 862# Graphics support
@@ -916,10 +912,15 @@ CONFIG_USB_ARCH_HAS_EHCI=y
916# CONFIG_NEW_LEDS is not set 912# CONFIG_NEW_LEDS is not set
917# CONFIG_ACCESSIBILITY is not set 913# CONFIG_ACCESSIBILITY is not set
918# CONFIG_INFINIBAND is not set 914# CONFIG_INFINIBAND is not set
915CONFIG_RTC_LIB=y
919# CONFIG_RTC_CLASS is not set 916# CONFIG_RTC_CLASS is not set
920# CONFIG_DMADEVICES is not set 917# CONFIG_DMADEVICES is not set
921# CONFIG_AUXDISPLAY is not set 918# CONFIG_AUXDISPLAY is not set
922# CONFIG_UIO is not set 919# CONFIG_UIO is not set
920
921#
922# TI VLYNQ
923#
923# CONFIG_STAGING is not set 924# CONFIG_STAGING is not set
924 925
925# 926#
@@ -942,10 +943,11 @@ CONFIG_FS_MBCACHE=y
942# CONFIG_REISERFS_FS is not set 943# CONFIG_REISERFS_FS is not set
943# CONFIG_JFS_FS is not set 944# CONFIG_JFS_FS is not set
944CONFIG_FS_POSIX_ACL=y 945CONFIG_FS_POSIX_ACL=y
945CONFIG_FILE_LOCKING=y
946# CONFIG_XFS_FS is not set 946# CONFIG_XFS_FS is not set
947# CONFIG_OCFS2_FS is not set 947# CONFIG_OCFS2_FS is not set
948# CONFIG_BTRFS_FS is not set 948# CONFIG_BTRFS_FS is not set
949CONFIG_FILE_LOCKING=y
950CONFIG_FSNOTIFY=y
949CONFIG_DNOTIFY=y 951CONFIG_DNOTIFY=y
950CONFIG_INOTIFY=y 952CONFIG_INOTIFY=y
951CONFIG_INOTIFY_USER=y 953CONFIG_INOTIFY_USER=y
@@ -1120,25 +1122,11 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1120CONFIG_HAVE_DYNAMIC_FTRACE=y 1122CONFIG_HAVE_DYNAMIC_FTRACE=y
1121CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1123CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1122CONFIG_RING_BUFFER=y 1124CONFIG_RING_BUFFER=y
1125CONFIG_EVENT_TRACING=y
1126CONFIG_CONTEXT_SWITCH_TRACER=y
1123CONFIG_TRACING=y 1127CONFIG_TRACING=y
1124CONFIG_TRACING_SUPPORT=y 1128CONFIG_TRACING_SUPPORT=y
1125 1129# CONFIG_FTRACE is not set
1126#
1127# Tracers
1128#
1129# CONFIG_FUNCTION_TRACER is not set
1130# CONFIG_IRQSOFF_TRACER is not set
1131# CONFIG_PREEMPT_TRACER is not set
1132# CONFIG_SCHED_TRACER is not set
1133# CONFIG_CONTEXT_SWITCH_TRACER is not set
1134# CONFIG_EVENT_TRACER is not set
1135# CONFIG_BOOT_TRACER is not set
1136# CONFIG_TRACE_BRANCH_PROFILING is not set
1137# CONFIG_STACK_TRACER is not set
1138# CONFIG_KMEMTRACE is not set
1139# CONFIG_WORKQUEUE_TRACER is not set
1140# CONFIG_BLK_DEV_IO_TRACE is not set
1141# CONFIG_FTRACE_STARTUP_TEST is not set
1142# CONFIG_DYNAMIC_DEBUG is not set 1130# CONFIG_DYNAMIC_DEBUG is not set
1143# CONFIG_DMA_API_DEBUG is not set 1131# CONFIG_DMA_API_DEBUG is not set
1144# CONFIG_SAMPLES is not set 1132# CONFIG_SAMPLES is not set
@@ -1146,7 +1134,6 @@ CONFIG_HAVE_ARCH_KGDB=y
1146CONFIG_SH_STANDARD_BIOS=y 1134CONFIG_SH_STANDARD_BIOS=y
1147# CONFIG_EARLY_SCIF_CONSOLE is not set 1135# CONFIG_EARLY_SCIF_CONSOLE is not set
1148# CONFIG_EARLY_PRINTK is not set 1136# CONFIG_EARLY_PRINTK is not set
1149# CONFIG_MORE_COMPILE_OPTIONS is not set
1150 1137
1151# 1138#
1152# Security options 1139# Security options
@@ -1273,3 +1260,4 @@ CONFIG_HAS_IOMEM=y
1273CONFIG_HAS_IOPORT=y 1260CONFIG_HAS_IOPORT=y
1274CONFIG_HAS_DMA=y 1261CONFIG_HAS_DMA=y
1275CONFIG_NLATTR=y 1262CONFIG_NLATTR=y
1263CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/sh7710voipgw_defconfig b/arch/sh/configs/sh7710voipgw_defconfig
index 48b58098cf8..c296ca5d95c 100644
--- a/arch/sh/configs/sh7710voipgw_defconfig
+++ b/arch/sh/configs/sh7710voipgw_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:09:16 2009 4# Thu Jun 18 13:06:13 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -74,7 +75,6 @@ CONFIG_UID16=y
74# CONFIG_SYSCTL_SYSCALL is not set 75# CONFIG_SYSCTL_SYSCALL is not set
75CONFIG_KALLSYMS=y 76CONFIG_KALLSYMS=y
76# CONFIG_KALLSYMS_EXTRA_PASS is not set 77# CONFIG_KALLSYMS_EXTRA_PASS is not set
77# CONFIG_STRIP_ASM_SYMS is not set
78CONFIG_HOTPLUG=y 78CONFIG_HOTPLUG=y
79CONFIG_PRINTK=y 79CONFIG_PRINTK=y
80CONFIG_BUG=y 80CONFIG_BUG=y
@@ -87,7 +87,12 @@ CONFIG_TIMERFD=y
87CONFIG_EVENTFD=y 87CONFIG_EVENTFD=y
88# CONFIG_SHMEM is not set 88# CONFIG_SHMEM is not set
89CONFIG_AIO=y 89CONFIG_AIO=y
90
91#
92# Performance Counters
93#
90CONFIG_VM_EVENT_COUNTERS=y 94CONFIG_VM_EVENT_COUNTERS=y
95# CONFIG_STRIP_ASM_SYMS is not set
91CONFIG_COMPAT_BRK=y 96CONFIG_COMPAT_BRK=y
92CONFIG_SLAB=y 97CONFIG_SLAB=y
93# CONFIG_SLUB is not set 98# CONFIG_SLUB is not set
@@ -176,6 +181,7 @@ CONFIG_CPU_SUBTYPE_SH7710=y
176CONFIG_QUICKLIST=y 181CONFIG_QUICKLIST=y
177CONFIG_MMU=y 182CONFIG_MMU=y
178CONFIG_PAGE_OFFSET=0x80000000 183CONFIG_PAGE_OFFSET=0x80000000
184CONFIG_FORCE_MAX_ZONEORDER=11
179CONFIG_MEMORY_START=0x0c000000 185CONFIG_MEMORY_START=0x0c000000
180CONFIG_MEMORY_SIZE=0x00800000 186CONFIG_MEMORY_SIZE=0x00800000
181CONFIG_29BIT=y 187CONFIG_29BIT=y
@@ -190,7 +196,6 @@ CONFIG_PAGE_SIZE_4KB=y
190# CONFIG_PAGE_SIZE_8KB is not set 196# CONFIG_PAGE_SIZE_8KB is not set
191# CONFIG_PAGE_SIZE_16KB is not set 197# CONFIG_PAGE_SIZE_16KB is not set
192# CONFIG_PAGE_SIZE_64KB is not set 198# CONFIG_PAGE_SIZE_64KB is not set
193CONFIG_ENTRY_OFFSET=0x00001000
194CONFIG_SELECT_MEMORY_MODEL=y 199CONFIG_SELECT_MEMORY_MODEL=y
195CONFIG_FLATMEM_MANUAL=y 200CONFIG_FLATMEM_MANUAL=y
196# CONFIG_DISCONTIGMEM_MANUAL is not set 201# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -203,9 +208,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
203# CONFIG_PHYS_ADDR_T_64BIT is not set 208# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 209CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 210CONFIG_NR_QUICK=2
206CONFIG_UNEVICTABLE_LRU=y
207CONFIG_HAVE_MLOCK=y 211CONFIG_HAVE_MLOCK=y
208CONFIG_HAVE_MLOCKED_PAGE_BIT=y 212CONFIG_HAVE_MLOCKED_PAGE_BIT=y
213CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
209 214
210# 215#
211# Cache configuration 216# Cache configuration
@@ -234,9 +239,10 @@ CONFIG_CPU_HAS_DSP=y
234# 239#
235# Timer and clock configuration 240# Timer and clock configuration
236# 241#
237CONFIG_SH_TMU=y 242CONFIG_SH_TIMER_TMU=y
238CONFIG_SH_TIMER_IRQ=16
239CONFIG_SH_PCLK_FREQ=32768000 243CONFIG_SH_PCLK_FREQ=32768000
244CONFIG_SH_CLK_CPG=y
245CONFIG_SH_CLK_CPG_LEGACY=y
240# CONFIG_NO_HZ is not set 246# CONFIG_NO_HZ is not set
241# CONFIG_HIGH_RES_TIMERS is not set 247# CONFIG_HIGH_RES_TIMERS is not set
242CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 248CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -278,12 +284,14 @@ CONFIG_PREEMPT_NONE=y
278# CONFIG_PREEMPT is not set 284# CONFIG_PREEMPT is not set
279CONFIG_GUSA=y 285CONFIG_GUSA=y
280# CONFIG_GUSA_RB is not set 286# CONFIG_GUSA_RB is not set
287# CONFIG_SPARSE_IRQ is not set
281 288
282# 289#
283# Boot options 290# Boot options
284# 291#
285CONFIG_ZERO_PAGE_OFFSET=0x00001000 292CONFIG_ZERO_PAGE_OFFSET=0x00001000
286CONFIG_BOOT_LINK_OFFSET=0x00800000 293CONFIG_BOOT_LINK_OFFSET=0x00800000
294CONFIG_ENTRY_OFFSET=0x00001000
287# CONFIG_CMDLINE_BOOL is not set 295# CONFIG_CMDLINE_BOOL is not set
288 296
289# 297#
@@ -380,6 +388,7 @@ CONFIG_NETFILTER_ADVANCED=y
380# CONFIG_ECONET is not set 388# CONFIG_ECONET is not set
381# CONFIG_WAN_ROUTER is not set 389# CONFIG_WAN_ROUTER is not set
382# CONFIG_PHONET is not set 390# CONFIG_PHONET is not set
391# CONFIG_IEEE802154 is not set
383CONFIG_NET_SCHED=y 392CONFIG_NET_SCHED=y
384 393
385# 394#
@@ -434,7 +443,11 @@ CONFIG_WIRELESS=y
434# CONFIG_WIRELESS_OLD_REGULATORY is not set 443# CONFIG_WIRELESS_OLD_REGULATORY is not set
435# CONFIG_WIRELESS_EXT is not set 444# CONFIG_WIRELESS_EXT is not set
436# CONFIG_LIB80211 is not set 445# CONFIG_LIB80211 is not set
437# CONFIG_MAC80211 is not set 446
447#
448# CFG80211 needs to be enabled for MAC80211
449#
450CONFIG_MAC80211_DEFAULT_PS_VALUE=0
438# CONFIG_WIMAX is not set 451# CONFIG_WIMAX is not set
439# CONFIG_RFKILL is not set 452# CONFIG_RFKILL is not set
440# CONFIG_NET_9P is not set 453# CONFIG_NET_9P is not set
@@ -564,7 +577,6 @@ CONFIG_HAVE_IDE=y
564# CONFIG_ATA is not set 577# CONFIG_ATA is not set
565# CONFIG_MD is not set 578# CONFIG_MD is not set
566CONFIG_NETDEVICES=y 579CONFIG_NETDEVICES=y
567CONFIG_COMPAT_NET_DEV_OPS=y
568# CONFIG_DUMMY is not set 580# CONFIG_DUMMY is not set
569# CONFIG_BONDING is not set 581# CONFIG_BONDING is not set
570# CONFIG_MACVLAN is not set 582# CONFIG_MACVLAN is not set
@@ -590,6 +602,7 @@ CONFIG_NET_ETHERNET=y
590# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 602# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
591# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 603# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
592# CONFIG_B44 is not set 604# CONFIG_B44 is not set
605# CONFIG_KS8842 is not set
593CONFIG_NETDEV_1000=y 606CONFIG_NETDEV_1000=y
594CONFIG_NETDEV_10000=y 607CONFIG_NETDEV_10000=y
595 608
@@ -693,22 +706,7 @@ CONFIG_SSB_POSSIBLE=y
693# CONFIG_HTC_PASIC3 is not set 706# CONFIG_HTC_PASIC3 is not set
694# CONFIG_MFD_TMIO is not set 707# CONFIG_MFD_TMIO is not set
695# CONFIG_REGULATOR is not set 708# CONFIG_REGULATOR is not set
696 709# CONFIG_MEDIA_SUPPORT is not set
697#
698# Multimedia devices
699#
700
701#
702# Multimedia core support
703#
704# CONFIG_VIDEO_DEV is not set
705# CONFIG_DVB_CORE is not set
706# CONFIG_VIDEO_MEDIA is not set
707
708#
709# Multimedia drivers
710#
711# CONFIG_DAB is not set
712 710
713# 711#
714# Graphics support 712# Graphics support
@@ -756,10 +754,15 @@ CONFIG_USB_ARCH_HAS_HCD=y
756# CONFIG_MEMSTICK is not set 754# CONFIG_MEMSTICK is not set
757# CONFIG_NEW_LEDS is not set 755# CONFIG_NEW_LEDS is not set
758# CONFIG_ACCESSIBILITY is not set 756# CONFIG_ACCESSIBILITY is not set
757CONFIG_RTC_LIB=y
759# CONFIG_RTC_CLASS is not set 758# CONFIG_RTC_CLASS is not set
760# CONFIG_DMADEVICES is not set 759# CONFIG_DMADEVICES is not set
761# CONFIG_AUXDISPLAY is not set 760# CONFIG_AUXDISPLAY is not set
762# CONFIG_UIO is not set 761# CONFIG_UIO is not set
762
763#
764# TI VLYNQ
765#
763# CONFIG_STAGING is not set 766# CONFIG_STAGING is not set
764 767
765# 768#
@@ -771,12 +774,14 @@ CONFIG_USB_ARCH_HAS_HCD=y
771# CONFIG_REISERFS_FS is not set 774# CONFIG_REISERFS_FS is not set
772# CONFIG_JFS_FS is not set 775# CONFIG_JFS_FS is not set
773# CONFIG_FS_POSIX_ACL is not set 776# CONFIG_FS_POSIX_ACL is not set
774CONFIG_FILE_LOCKING=y
775# CONFIG_XFS_FS is not set 777# CONFIG_XFS_FS is not set
776# CONFIG_OCFS2_FS is not set 778# CONFIG_OCFS2_FS is not set
777# CONFIG_BTRFS_FS is not set 779# CONFIG_BTRFS_FS is not set
780CONFIG_FILE_LOCKING=y
781CONFIG_FSNOTIFY=y
778# CONFIG_DNOTIFY is not set 782# CONFIG_DNOTIFY is not set
779# CONFIG_INOTIFY is not set 783# CONFIG_INOTIFY is not set
784CONFIG_INOTIFY_USER=y
780# CONFIG_QUOTA is not set 785# CONFIG_QUOTA is not set
781# CONFIG_AUTOFS_FS is not set 786# CONFIG_AUTOFS_FS is not set
782# CONFIG_AUTOFS4_FS is not set 787# CONFIG_AUTOFS4_FS is not set
@@ -881,28 +886,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
881CONFIG_HAVE_DYNAMIC_FTRACE=y 886CONFIG_HAVE_DYNAMIC_FTRACE=y
882CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 887CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
883CONFIG_TRACING_SUPPORT=y 888CONFIG_TRACING_SUPPORT=y
884 889# CONFIG_FTRACE is not set
885#
886# Tracers
887#
888# CONFIG_FUNCTION_TRACER is not set
889# CONFIG_IRQSOFF_TRACER is not set
890# CONFIG_SCHED_TRACER is not set
891# CONFIG_CONTEXT_SWITCH_TRACER is not set
892# CONFIG_EVENT_TRACER is not set
893# CONFIG_BOOT_TRACER is not set
894# CONFIG_TRACE_BRANCH_PROFILING is not set
895# CONFIG_STACK_TRACER is not set
896# CONFIG_KMEMTRACE is not set
897# CONFIG_WORKQUEUE_TRACER is not set
898# CONFIG_BLK_DEV_IO_TRACE is not set
899# CONFIG_DYNAMIC_DEBUG is not set 890# CONFIG_DYNAMIC_DEBUG is not set
900# CONFIG_DMA_API_DEBUG is not set 891# CONFIG_DMA_API_DEBUG is not set
901# CONFIG_SAMPLES is not set 892# CONFIG_SAMPLES is not set
902CONFIG_HAVE_ARCH_KGDB=y 893CONFIG_HAVE_ARCH_KGDB=y
903# CONFIG_SH_STANDARD_BIOS is not set 894# CONFIG_SH_STANDARD_BIOS is not set
904# CONFIG_EARLY_SCIF_CONSOLE is not set 895# CONFIG_EARLY_SCIF_CONSOLE is not set
905# CONFIG_MORE_COMPILE_OPTIONS is not set
906 896
907# 897#
908# Security options 898# Security options
@@ -1017,3 +1007,4 @@ CONFIG_HAS_IOMEM=y
1017CONFIG_HAS_IOPORT=y 1007CONFIG_HAS_IOPORT=y
1018CONFIG_HAS_DMA=y 1008CONFIG_HAS_DMA=y
1019CONFIG_NLATTR=y 1009CONFIG_NLATTR=y
1010CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/sh7724_generic_defconfig b/arch/sh/configs/sh7724_generic_defconfig
index ec8f18c7684..ba26be1b413 100644
--- a/arch/sh/configs/sh7724_generic_defconfig
+++ b/arch/sh/configs/sh7724_generic_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:09:47 2009 4# Thu Jun 18 13:06:48 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20CONFIG_ARCH_SUSPEND_POSSIBLE=y 20CONFIG_ARCH_SUSPEND_POSSIBLE=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_CMT=y 22CONFIG_SYS_SUPPORTS_CMT=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -79,7 +80,6 @@ CONFIG_EMBEDDED=y
79CONFIG_SYSCTL_SYSCALL=y 80CONFIG_SYSCTL_SYSCALL=y
80CONFIG_KALLSYMS=y 81CONFIG_KALLSYMS=y
81# CONFIG_KALLSYMS_EXTRA_PASS is not set 82# CONFIG_KALLSYMS_EXTRA_PASS is not set
82# CONFIG_STRIP_ASM_SYMS is not set
83CONFIG_HOTPLUG=y 83CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 84CONFIG_PRINTK=y
85CONFIG_BUG=y 85CONFIG_BUG=y
@@ -92,14 +92,19 @@ CONFIG_TIMERFD=y
92CONFIG_EVENTFD=y 92CONFIG_EVENTFD=y
93CONFIG_SHMEM=y 93CONFIG_SHMEM=y
94CONFIG_AIO=y 94CONFIG_AIO=y
95
96#
97# Performance Counters
98#
95CONFIG_VM_EVENT_COUNTERS=y 99CONFIG_VM_EVENT_COUNTERS=y
100# CONFIG_STRIP_ASM_SYMS is not set
96# CONFIG_COMPAT_BRK is not set 101# CONFIG_COMPAT_BRK is not set
97# CONFIG_SLAB is not set 102# CONFIG_SLAB is not set
98CONFIG_SLUB=y 103CONFIG_SLUB=y
99# CONFIG_SLOB is not set 104# CONFIG_SLOB is not set
100CONFIG_PROFILING=y 105CONFIG_PROFILING=y
101CONFIG_TRACEPOINTS=y 106CONFIG_TRACEPOINTS=y
102# CONFIG_MARKERS is not set 107CONFIG_MARKERS=y
103CONFIG_OPROFILE=y 108CONFIG_OPROFILE=y
104CONFIG_HAVE_OPROFILE=y 109CONFIG_HAVE_OPROFILE=y
105CONFIG_HAVE_IOREMAP_PROT=y 110CONFIG_HAVE_IOREMAP_PROT=y
@@ -180,6 +185,7 @@ CONFIG_CPU_SUBTYPE_SH7724=y
180CONFIG_QUICKLIST=y 185CONFIG_QUICKLIST=y
181CONFIG_MMU=y 186CONFIG_MMU=y
182CONFIG_PAGE_OFFSET=0x80000000 187CONFIG_PAGE_OFFSET=0x80000000
188CONFIG_FORCE_MAX_ZONEORDER=11
183CONFIG_MEMORY_START=0x08000000 189CONFIG_MEMORY_START=0x08000000
184CONFIG_MEMORY_SIZE=0x04000000 190CONFIG_MEMORY_SIZE=0x04000000
185CONFIG_29BIT=y 191CONFIG_29BIT=y
@@ -197,7 +203,6 @@ CONFIG_PAGE_SIZE_4KB=y
197# CONFIG_PAGE_SIZE_8KB is not set 203# CONFIG_PAGE_SIZE_8KB is not set
198# CONFIG_PAGE_SIZE_16KB is not set 204# CONFIG_PAGE_SIZE_16KB is not set
199# CONFIG_PAGE_SIZE_64KB is not set 205# CONFIG_PAGE_SIZE_64KB is not set
200CONFIG_ENTRY_OFFSET=0x00001000
201CONFIG_SELECT_MEMORY_MODEL=y 206CONFIG_SELECT_MEMORY_MODEL=y
202# CONFIG_FLATMEM_MANUAL is not set 207# CONFIG_FLATMEM_MANUAL is not set
203# CONFIG_DISCONTIGMEM_MANUAL is not set 208# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -215,9 +220,9 @@ CONFIG_MIGRATION=y
215# CONFIG_PHYS_ADDR_T_64BIT is not set 220# CONFIG_PHYS_ADDR_T_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=0 221CONFIG_ZONE_DMA_FLAG=0
217CONFIG_NR_QUICK=2 222CONFIG_NR_QUICK=2
218CONFIG_UNEVICTABLE_LRU=y
219CONFIG_HAVE_MLOCK=y 223CONFIG_HAVE_MLOCK=y
220CONFIG_HAVE_MLOCKED_PAGE_BIT=y 224CONFIG_HAVE_MLOCKED_PAGE_BIT=y
225CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
221 226
222# 227#
223# Cache configuration 228# Cache configuration
@@ -235,20 +240,20 @@ CONFIG_SH_FPU=y
235# CONFIG_SH_STORE_QUEUES is not set 240# CONFIG_SH_STORE_QUEUES is not set
236CONFIG_CPU_HAS_INTEVT=y 241CONFIG_CPU_HAS_INTEVT=y
237CONFIG_CPU_HAS_SR_RB=y 242CONFIG_CPU_HAS_SR_RB=y
238CONFIG_CPU_HAS_PTEA=y
239CONFIG_CPU_HAS_FPU=y 243CONFIG_CPU_HAS_FPU=y
240 244
241# 245#
242# Board support 246# Board support
243# 247#
248# CONFIG_SH_7724_SOLUTION_ENGINE is not set
244 249
245# 250#
246# Timer and clock configuration 251# Timer and clock configuration
247# 252#
248CONFIG_SH_TMU=y 253CONFIG_SH_TIMER_TMU=y
249CONFIG_SH_TIMER_CMT=y 254CONFIG_SH_TIMER_CMT=y
250CONFIG_SH_TIMER_IRQ=16
251CONFIG_SH_PCLK_FREQ=41666666 255CONFIG_SH_PCLK_FREQ=41666666
256CONFIG_SH_CLK_CPG=y
252CONFIG_TICK_ONESHOT=y 257CONFIG_TICK_ONESHOT=y
253CONFIG_NO_HZ=y 258CONFIG_NO_HZ=y
254CONFIG_HIGH_RES_TIMERS=y 259CONFIG_HIGH_RES_TIMERS=y
@@ -305,12 +310,14 @@ CONFIG_PREEMPT_NONE=y
305# CONFIG_PREEMPT_VOLUNTARY is not set 310# CONFIG_PREEMPT_VOLUNTARY is not set
306# CONFIG_PREEMPT is not set 311# CONFIG_PREEMPT is not set
307CONFIG_GUSA=y 312CONFIG_GUSA=y
313# CONFIG_SPARSE_IRQ is not set
308 314
309# 315#
310# Boot options 316# Boot options
311# 317#
312CONFIG_ZERO_PAGE_OFFSET=0x00001000 318CONFIG_ZERO_PAGE_OFFSET=0x00001000
313CONFIG_BOOT_LINK_OFFSET=0x00800000 319CONFIG_BOOT_LINK_OFFSET=0x00800000
320CONFIG_ENTRY_OFFSET=0x00001000
314# CONFIG_CMDLINE_BOOL is not set 321# CONFIG_CMDLINE_BOOL is not set
315 322
316# 323#
@@ -335,6 +342,7 @@ CONFIG_PM=y
335CONFIG_PM_SLEEP=y 342CONFIG_PM_SLEEP=y
336CONFIG_SUSPEND=y 343CONFIG_SUSPEND=y
337CONFIG_SUSPEND_FREEZER=y 344CONFIG_SUSPEND_FREEZER=y
345CONFIG_HIBERNATION_NVS=y
338CONFIG_HIBERNATION=y 346CONFIG_HIBERNATION=y
339CONFIG_PM_STD_PARTITION="" 347CONFIG_PM_STD_PARTITION=""
340CONFIG_CPU_IDLE=y 348CONFIG_CPU_IDLE=y
@@ -451,7 +459,6 @@ CONFIG_I2C_SH_MOBILE=y
451# CONFIG_SENSORS_PCF8574 is not set 459# CONFIG_SENSORS_PCF8574 is not set
452# CONFIG_PCF8575 is not set 460# CONFIG_PCF8575 is not set
453# CONFIG_SENSORS_PCA9539 is not set 461# CONFIG_SENSORS_PCA9539 is not set
454# CONFIG_SENSORS_MAX6875 is not set
455# CONFIG_SENSORS_TSL2550 is not set 462# CONFIG_SENSORS_TSL2550 is not set
456# CONFIG_I2C_DEBUG_CORE is not set 463# CONFIG_I2C_DEBUG_CORE is not set
457# CONFIG_I2C_DEBUG_ALGO is not set 464# CONFIG_I2C_DEBUG_ALGO is not set
@@ -484,21 +491,7 @@ CONFIG_SSB_POSSIBLE=y
484# CONFIG_MFD_WM8350_I2C is not set 491# CONFIG_MFD_WM8350_I2C is not set
485# CONFIG_MFD_PCF50633 is not set 492# CONFIG_MFD_PCF50633 is not set
486# CONFIG_REGULATOR is not set 493# CONFIG_REGULATOR is not set
487 494# CONFIG_MEDIA_SUPPORT is not set
488#
489# Multimedia devices
490#
491
492#
493# Multimedia core support
494#
495# CONFIG_VIDEO_DEV is not set
496# CONFIG_VIDEO_MEDIA is not set
497
498#
499# Multimedia drivers
500#
501# CONFIG_DAB is not set
502 495
503# 496#
504# Graphics support 497# Graphics support
@@ -570,6 +563,7 @@ CONFIG_RTC_INTF_DEV=y
570# on-CPU RTC drivers 563# on-CPU RTC drivers
571# 564#
572CONFIG_RTC_DRV_SH=y 565CONFIG_RTC_DRV_SH=y
566# CONFIG_RTC_DRV_GENERIC is not set
573# CONFIG_DMADEVICES is not set 567# CONFIG_DMADEVICES is not set
574# CONFIG_AUXDISPLAY is not set 568# CONFIG_AUXDISPLAY is not set
575CONFIG_UIO=y 569CONFIG_UIO=y
@@ -577,6 +571,10 @@ CONFIG_UIO=y
577CONFIG_UIO_PDRV_GENIRQ=y 571CONFIG_UIO_PDRV_GENIRQ=y
578# CONFIG_UIO_SMX is not set 572# CONFIG_UIO_SMX is not set
579# CONFIG_UIO_SERCOS3 is not set 573# CONFIG_UIO_SERCOS3 is not set
574
575#
576# TI VLYNQ
577#
580# CONFIG_STAGING is not set 578# CONFIG_STAGING is not set
581 579
582# 580#
@@ -588,11 +586,13 @@ CONFIG_UIO_PDRV_GENIRQ=y
588# CONFIG_REISERFS_FS is not set 586# CONFIG_REISERFS_FS is not set
589# CONFIG_JFS_FS is not set 587# CONFIG_JFS_FS is not set
590# CONFIG_FS_POSIX_ACL is not set 588# CONFIG_FS_POSIX_ACL is not set
591CONFIG_FILE_LOCKING=y
592# CONFIG_XFS_FS is not set 589# CONFIG_XFS_FS is not set
593# CONFIG_BTRFS_FS is not set 590# CONFIG_BTRFS_FS is not set
591CONFIG_FILE_LOCKING=y
592CONFIG_FSNOTIFY=y
594# CONFIG_DNOTIFY is not set 593# CONFIG_DNOTIFY is not set
595# CONFIG_INOTIFY is not set 594# CONFIG_INOTIFY is not set
595CONFIG_INOTIFY_USER=y
596# CONFIG_QUOTA is not set 596# CONFIG_QUOTA is not set
597# CONFIG_AUTOFS_FS is not set 597# CONFIG_AUTOFS_FS is not set
598# CONFIG_AUTOFS4_FS is not set 598# CONFIG_AUTOFS4_FS is not set
@@ -657,30 +657,17 @@ CONFIG_HAVE_FUNCTION_TRACER=y
657CONFIG_HAVE_DYNAMIC_FTRACE=y 657CONFIG_HAVE_DYNAMIC_FTRACE=y
658CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 658CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
659CONFIG_RING_BUFFER=y 659CONFIG_RING_BUFFER=y
660CONFIG_EVENT_TRACING=y
661CONFIG_CONTEXT_SWITCH_TRACER=y
660CONFIG_TRACING=y 662CONFIG_TRACING=y
661CONFIG_TRACING_SUPPORT=y 663CONFIG_TRACING_SUPPORT=y
662 664# CONFIG_FTRACE is not set
663#
664# Tracers
665#
666# CONFIG_FUNCTION_TRACER is not set
667# CONFIG_IRQSOFF_TRACER is not set
668# CONFIG_SCHED_TRACER is not set
669# CONFIG_CONTEXT_SWITCH_TRACER is not set
670# CONFIG_EVENT_TRACER is not set
671# CONFIG_BOOT_TRACER is not set
672# CONFIG_TRACE_BRANCH_PROFILING is not set
673# CONFIG_STACK_TRACER is not set
674# CONFIG_KMEMTRACE is not set
675# CONFIG_WORKQUEUE_TRACER is not set
676# CONFIG_FTRACE_STARTUP_TEST is not set
677# CONFIG_DYNAMIC_DEBUG is not set 665# CONFIG_DYNAMIC_DEBUG is not set
678# CONFIG_DMA_API_DEBUG is not set 666# CONFIG_DMA_API_DEBUG is not set
679# CONFIG_SAMPLES is not set 667# CONFIG_SAMPLES is not set
680CONFIG_HAVE_ARCH_KGDB=y 668CONFIG_HAVE_ARCH_KGDB=y
681# CONFIG_SH_STANDARD_BIOS is not set 669# CONFIG_SH_STANDARD_BIOS is not set
682# CONFIG_EARLY_SCIF_CONSOLE is not set 670# CONFIG_EARLY_SCIF_CONSOLE is not set
683# CONFIG_MORE_COMPILE_OPTIONS is not set
684 671
685# 672#
686# Security options 673# Security options
@@ -705,3 +692,4 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
705CONFIG_HAS_IOMEM=y 692CONFIG_HAS_IOMEM=y
706CONFIG_HAS_IOPORT=y 693CONFIG_HAS_IOPORT=y
707CONFIG_HAS_DMA=y 694CONFIG_HAS_DMA=y
695CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/sh7763rdp_defconfig b/arch/sh/configs/sh7763rdp_defconfig
index f77bc7998d2..b1d9b2311e3 100644
--- a/arch/sh/configs/sh7763rdp_defconfig
+++ b/arch/sh/configs/sh7763rdp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:10:12 2009 4# Thu Jun 18 13:07:15 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -79,7 +80,6 @@ CONFIG_UID16=y
79# CONFIG_SYSCTL_SYSCALL is not set 80# CONFIG_SYSCTL_SYSCALL is not set
80CONFIG_KALLSYMS=y 81CONFIG_KALLSYMS=y
81# CONFIG_KALLSYMS_EXTRA_PASS is not set 82# CONFIG_KALLSYMS_EXTRA_PASS is not set
82# CONFIG_STRIP_ASM_SYMS is not set
83CONFIG_HOTPLUG=y 83CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 84CONFIG_PRINTK=y
85CONFIG_BUG=y 85CONFIG_BUG=y
@@ -92,14 +92,19 @@ CONFIG_TIMERFD=y
92CONFIG_EVENTFD=y 92CONFIG_EVENTFD=y
93CONFIG_SHMEM=y 93CONFIG_SHMEM=y
94CONFIG_AIO=y 94CONFIG_AIO=y
95
96#
97# Performance Counters
98#
95CONFIG_VM_EVENT_COUNTERS=y 99CONFIG_VM_EVENT_COUNTERS=y
100# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_COMPAT_BRK=y 101CONFIG_COMPAT_BRK=y
97CONFIG_SLAB=y 102CONFIG_SLAB=y
98# CONFIG_SLUB is not set 103# CONFIG_SLUB is not set
99# CONFIG_SLOB is not set 104# CONFIG_SLOB is not set
100CONFIG_PROFILING=y 105CONFIG_PROFILING=y
101CONFIG_TRACEPOINTS=y 106CONFIG_TRACEPOINTS=y
102# CONFIG_MARKERS is not set 107CONFIG_MARKERS=y
103CONFIG_OPROFILE=y 108CONFIG_OPROFILE=y
104CONFIG_HAVE_OPROFILE=y 109CONFIG_HAVE_OPROFILE=y
105# CONFIG_KPROBES is not set 110# CONFIG_KPROBES is not set
@@ -184,6 +189,7 @@ CONFIG_CPU_SUBTYPE_SH7763=y
184CONFIG_QUICKLIST=y 189CONFIG_QUICKLIST=y
185CONFIG_MMU=y 190CONFIG_MMU=y
186CONFIG_PAGE_OFFSET=0x80000000 191CONFIG_PAGE_OFFSET=0x80000000
192CONFIG_FORCE_MAX_ZONEORDER=11
187CONFIG_MEMORY_START=0x0c000000 193CONFIG_MEMORY_START=0x0c000000
188CONFIG_MEMORY_SIZE=0x04000000 194CONFIG_MEMORY_SIZE=0x04000000
189CONFIG_29BIT=y 195CONFIG_29BIT=y
@@ -200,7 +206,6 @@ CONFIG_PAGE_SIZE_4KB=y
200# CONFIG_PAGE_SIZE_8KB is not set 206# CONFIG_PAGE_SIZE_8KB is not set
201# CONFIG_PAGE_SIZE_16KB is not set 207# CONFIG_PAGE_SIZE_16KB is not set
202# CONFIG_PAGE_SIZE_64KB is not set 208# CONFIG_PAGE_SIZE_64KB is not set
203CONFIG_ENTRY_OFFSET=0x00001000
204CONFIG_SELECT_MEMORY_MODEL=y 209CONFIG_SELECT_MEMORY_MODEL=y
205# CONFIG_FLATMEM_MANUAL is not set 210# CONFIG_FLATMEM_MANUAL is not set
206# CONFIG_DISCONTIGMEM_MANUAL is not set 211# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -215,9 +220,9 @@ CONFIG_MIGRATION=y
215# CONFIG_PHYS_ADDR_T_64BIT is not set 220# CONFIG_PHYS_ADDR_T_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=0 221CONFIG_ZONE_DMA_FLAG=0
217CONFIG_NR_QUICK=2 222CONFIG_NR_QUICK=2
218CONFIG_UNEVICTABLE_LRU=y
219CONFIG_HAVE_MLOCK=y 223CONFIG_HAVE_MLOCK=y
220CONFIG_HAVE_MLOCKED_PAGE_BIT=y 224CONFIG_HAVE_MLOCKED_PAGE_BIT=y
225CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
221 226
222# 227#
223# Cache configuration 228# Cache configuration
@@ -246,9 +251,10 @@ CONFIG_SH_SH7763RDP=y
246# 251#
247# Timer and clock configuration 252# Timer and clock configuration
248# 253#
249CONFIG_SH_TMU=y 254CONFIG_SH_TIMER_TMU=y
250CONFIG_SH_TIMER_IRQ=28
251CONFIG_SH_PCLK_FREQ=66666666 255CONFIG_SH_PCLK_FREQ=66666666
256CONFIG_SH_CLK_CPG=y
257CONFIG_SH_CLK_CPG_LEGACY=y
252# CONFIG_NO_HZ is not set 258# CONFIG_NO_HZ is not set
253# CONFIG_HIGH_RES_TIMERS is not set 259# CONFIG_HIGH_RES_TIMERS is not set
254CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 260CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -289,12 +295,14 @@ CONFIG_PREEMPT_NONE=y
289# CONFIG_PREEMPT_VOLUNTARY is not set 295# CONFIG_PREEMPT_VOLUNTARY is not set
290# CONFIG_PREEMPT is not set 296# CONFIG_PREEMPT is not set
291CONFIG_GUSA=y 297CONFIG_GUSA=y
298# CONFIG_SPARSE_IRQ is not set
292 299
293# 300#
294# Boot options 301# Boot options
295# 302#
296CONFIG_ZERO_PAGE_OFFSET=0x00001000 303CONFIG_ZERO_PAGE_OFFSET=0x00001000
297CONFIG_BOOT_LINK_OFFSET=0x00800000 304CONFIG_BOOT_LINK_OFFSET=0x00800000
305CONFIG_ENTRY_OFFSET=0x00001000
298CONFIG_CMDLINE_BOOL=y 306CONFIG_CMDLINE_BOOL=y
299CONFIG_CMDLINE="console=ttySC2,115200 root=/dev/sda1 rootdelay=10" 307CONFIG_CMDLINE="console=ttySC2,115200 root=/dev/sda1 rootdelay=10"
300 308
@@ -377,6 +385,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
377# CONFIG_ECONET is not set 385# CONFIG_ECONET is not set
378# CONFIG_WAN_ROUTER is not set 386# CONFIG_WAN_ROUTER is not set
379# CONFIG_PHONET is not set 387# CONFIG_PHONET is not set
388# CONFIG_IEEE802154 is not set
380# CONFIG_NET_SCHED is not set 389# CONFIG_NET_SCHED is not set
381# CONFIG_DCB is not set 390# CONFIG_DCB is not set
382 391
@@ -396,7 +405,11 @@ CONFIG_WIRELESS=y
396CONFIG_WIRELESS_EXT=y 405CONFIG_WIRELESS_EXT=y
397CONFIG_WIRELESS_EXT_SYSFS=y 406CONFIG_WIRELESS_EXT_SYSFS=y
398# CONFIG_LIB80211 is not set 407# CONFIG_LIB80211 is not set
399# CONFIG_MAC80211 is not set 408
409#
410# CFG80211 needs to be enabled for MAC80211
411#
412CONFIG_MAC80211_DEFAULT_PS_VALUE=0
400# CONFIG_WIMAX is not set 413# CONFIG_WIMAX is not set
401# CONFIG_RFKILL is not set 414# CONFIG_RFKILL is not set
402# CONFIG_NET_9P is not set 415# CONFIG_NET_9P is not set
@@ -536,10 +549,6 @@ CONFIG_BLK_DEV_SD=y
536# CONFIG_BLK_DEV_SR is not set 549# CONFIG_BLK_DEV_SR is not set
537# CONFIG_CHR_DEV_SG is not set 550# CONFIG_CHR_DEV_SG is not set
538# CONFIG_CHR_DEV_SCH is not set 551# CONFIG_CHR_DEV_SCH is not set
539
540#
541# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
542#
543# CONFIG_SCSI_MULTI_LUN is not set 552# CONFIG_SCSI_MULTI_LUN is not set
544# CONFIG_SCSI_CONSTANTS is not set 553# CONFIG_SCSI_CONSTANTS is not set
545# CONFIG_SCSI_LOGGING is not set 554# CONFIG_SCSI_LOGGING is not set
@@ -556,6 +565,7 @@ CONFIG_SCSI_WAIT_SCAN=m
556# CONFIG_SCSI_SRP_ATTRS is not set 565# CONFIG_SCSI_SRP_ATTRS is not set
557CONFIG_SCSI_LOWLEVEL=y 566CONFIG_SCSI_LOWLEVEL=y
558# CONFIG_ISCSI_TCP is not set 567# CONFIG_ISCSI_TCP is not set
568# CONFIG_SCSI_BNX2_ISCSI is not set
559# CONFIG_LIBFC is not set 569# CONFIG_LIBFC is not set
560# CONFIG_LIBFCOE is not set 570# CONFIG_LIBFCOE is not set
561# CONFIG_SCSI_DEBUG is not set 571# CONFIG_SCSI_DEBUG is not set
@@ -564,7 +574,6 @@ CONFIG_SCSI_LOWLEVEL=y
564# CONFIG_ATA is not set 574# CONFIG_ATA is not set
565# CONFIG_MD is not set 575# CONFIG_MD is not set
566CONFIG_NETDEVICES=y 576CONFIG_NETDEVICES=y
567CONFIG_COMPAT_NET_DEV_OPS=y
568# CONFIG_DUMMY is not set 577# CONFIG_DUMMY is not set
569# CONFIG_BONDING is not set 578# CONFIG_BONDING is not set
570# CONFIG_MACVLAN is not set 579# CONFIG_MACVLAN is not set
@@ -609,6 +618,7 @@ CONFIG_SH_ETH=y
609# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 618# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
610# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 619# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
611# CONFIG_B44 is not set 620# CONFIG_B44 is not set
621# CONFIG_KS8842 is not set
612# CONFIG_NETDEV_1000 is not set 622# CONFIG_NETDEV_1000 is not set
613# CONFIG_NETDEV_10000 is not set 623# CONFIG_NETDEV_10000 is not set
614 624
@@ -727,22 +737,7 @@ CONFIG_SSB_POSSIBLE=y
727# CONFIG_HTC_PASIC3 is not set 737# CONFIG_HTC_PASIC3 is not set
728# CONFIG_MFD_TMIO is not set 738# CONFIG_MFD_TMIO is not set
729# CONFIG_REGULATOR is not set 739# CONFIG_REGULATOR is not set
730 740# CONFIG_MEDIA_SUPPORT is not set
731#
732# Multimedia devices
733#
734
735#
736# Multimedia core support
737#
738# CONFIG_VIDEO_DEV is not set
739# CONFIG_DVB_CORE is not set
740# CONFIG_VIDEO_MEDIA is not set
741
742#
743# Multimedia drivers
744#
745# CONFIG_DAB is not set
746 741
747# 742#
748# Graphics support 743# Graphics support
@@ -931,10 +926,15 @@ CONFIG_MMC_BLOCK_BOUNCE=y
931# CONFIG_MEMSTICK is not set 926# CONFIG_MEMSTICK is not set
932# CONFIG_NEW_LEDS is not set 927# CONFIG_NEW_LEDS is not set
933# CONFIG_ACCESSIBILITY is not set 928# CONFIG_ACCESSIBILITY is not set
929CONFIG_RTC_LIB=y
934# CONFIG_RTC_CLASS is not set 930# CONFIG_RTC_CLASS is not set
935# CONFIG_DMADEVICES is not set 931# CONFIG_DMADEVICES is not set
936# CONFIG_AUXDISPLAY is not set 932# CONFIG_AUXDISPLAY is not set
937# CONFIG_UIO is not set 933# CONFIG_UIO is not set
934
935#
936# TI VLYNQ
937#
938# CONFIG_STAGING is not set 938# CONFIG_STAGING is not set
939 939
940# 940#
@@ -955,10 +955,11 @@ CONFIG_FS_MBCACHE=y
955# CONFIG_REISERFS_FS is not set 955# CONFIG_REISERFS_FS is not set
956# CONFIG_JFS_FS is not set 956# CONFIG_JFS_FS is not set
957CONFIG_FS_POSIX_ACL=y 957CONFIG_FS_POSIX_ACL=y
958CONFIG_FILE_LOCKING=y
959# CONFIG_XFS_FS is not set 958# CONFIG_XFS_FS is not set
960# CONFIG_OCFS2_FS is not set 959# CONFIG_OCFS2_FS is not set
961# CONFIG_BTRFS_FS is not set 960# CONFIG_BTRFS_FS is not set
961CONFIG_FILE_LOCKING=y
962CONFIG_FSNOTIFY=y
962CONFIG_DNOTIFY=y 963CONFIG_DNOTIFY=y
963CONFIG_INOTIFY=y 964CONFIG_INOTIFY=y
964CONFIG_INOTIFY_USER=y 965CONFIG_INOTIFY_USER=y
@@ -1109,31 +1110,17 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1109CONFIG_HAVE_DYNAMIC_FTRACE=y 1110CONFIG_HAVE_DYNAMIC_FTRACE=y
1110CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1111CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1111CONFIG_RING_BUFFER=y 1112CONFIG_RING_BUFFER=y
1113CONFIG_EVENT_TRACING=y
1114CONFIG_CONTEXT_SWITCH_TRACER=y
1112CONFIG_TRACING=y 1115CONFIG_TRACING=y
1113CONFIG_TRACING_SUPPORT=y 1116CONFIG_TRACING_SUPPORT=y
1114 1117# CONFIG_FTRACE is not set
1115#
1116# Tracers
1117#
1118# CONFIG_FUNCTION_TRACER is not set
1119# CONFIG_IRQSOFF_TRACER is not set
1120# CONFIG_SCHED_TRACER is not set
1121# CONFIG_CONTEXT_SWITCH_TRACER is not set
1122# CONFIG_EVENT_TRACER is not set
1123# CONFIG_BOOT_TRACER is not set
1124# CONFIG_TRACE_BRANCH_PROFILING is not set
1125# CONFIG_STACK_TRACER is not set
1126# CONFIG_KMEMTRACE is not set
1127# CONFIG_WORKQUEUE_TRACER is not set
1128# CONFIG_BLK_DEV_IO_TRACE is not set
1129# CONFIG_FTRACE_STARTUP_TEST is not set
1130# CONFIG_DYNAMIC_DEBUG is not set 1118# CONFIG_DYNAMIC_DEBUG is not set
1131# CONFIG_DMA_API_DEBUG is not set 1119# CONFIG_DMA_API_DEBUG is not set
1132# CONFIG_SAMPLES is not set 1120# CONFIG_SAMPLES is not set
1133CONFIG_HAVE_ARCH_KGDB=y 1121CONFIG_HAVE_ARCH_KGDB=y
1134# CONFIG_SH_STANDARD_BIOS is not set 1122# CONFIG_SH_STANDARD_BIOS is not set
1135# CONFIG_EARLY_SCIF_CONSOLE is not set 1123# CONFIG_EARLY_SCIF_CONSOLE is not set
1136# CONFIG_MORE_COMPILE_OPTIONS is not set
1137 1124
1138# 1125#
1139# Security options 1126# Security options
@@ -1246,3 +1233,4 @@ CONFIG_HAS_IOMEM=y
1246CONFIG_HAS_IOPORT=y 1233CONFIG_HAS_IOPORT=y
1247CONFIG_HAS_DMA=y 1234CONFIG_HAS_DMA=y
1248CONFIG_NLATTR=y 1235CONFIG_NLATTR=y
1236CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/sh7770_generic_defconfig b/arch/sh/configs/sh7770_generic_defconfig
index d6489b46ca5..426a88f7a23 100644
--- a/arch/sh/configs/sh7770_generic_defconfig
+++ b/arch/sh/configs/sh7770_generic_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc4 3# Linux kernel version: 2.6.30
4# Tue May 12 14:48:21 2009 4# Thu Jun 18 13:08:05 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -79,7 +79,6 @@ CONFIG_EMBEDDED=y
79CONFIG_SYSCTL_SYSCALL=y 79CONFIG_SYSCTL_SYSCALL=y
80CONFIG_KALLSYMS=y 80CONFIG_KALLSYMS=y
81# CONFIG_KALLSYMS_EXTRA_PASS is not set 81# CONFIG_KALLSYMS_EXTRA_PASS is not set
82# CONFIG_STRIP_ASM_SYMS is not set
83CONFIG_HOTPLUG=y 82CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 83CONFIG_PRINTK=y
85CONFIG_BUG=y 84CONFIG_BUG=y
@@ -92,14 +91,19 @@ CONFIG_TIMERFD=y
92CONFIG_EVENTFD=y 91CONFIG_EVENTFD=y
93CONFIG_SHMEM=y 92CONFIG_SHMEM=y
94CONFIG_AIO=y 93CONFIG_AIO=y
94
95#
96# Performance Counters
97#
95CONFIG_VM_EVENT_COUNTERS=y 98CONFIG_VM_EVENT_COUNTERS=y
99# CONFIG_STRIP_ASM_SYMS is not set
96# CONFIG_COMPAT_BRK is not set 100# CONFIG_COMPAT_BRK is not set
97# CONFIG_SLAB is not set 101# CONFIG_SLAB is not set
98CONFIG_SLUB=y 102CONFIG_SLUB=y
99# CONFIG_SLOB is not set 103# CONFIG_SLOB is not set
100CONFIG_PROFILING=y 104CONFIG_PROFILING=y
101CONFIG_TRACEPOINTS=y 105CONFIG_TRACEPOINTS=y
102# CONFIG_MARKERS is not set 106CONFIG_MARKERS=y
103CONFIG_OPROFILE=y 107CONFIG_OPROFILE=y
104CONFIG_HAVE_OPROFILE=y 108CONFIG_HAVE_OPROFILE=y
105CONFIG_HAVE_IOREMAP_PROT=y 109CONFIG_HAVE_IOREMAP_PROT=y
@@ -178,6 +182,7 @@ CONFIG_CPU_SUBTYPE_SH7770=y
178CONFIG_QUICKLIST=y 182CONFIG_QUICKLIST=y
179CONFIG_MMU=y 183CONFIG_MMU=y
180CONFIG_PAGE_OFFSET=0x80000000 184CONFIG_PAGE_OFFSET=0x80000000
185CONFIG_FORCE_MAX_ZONEORDER=11
181CONFIG_MEMORY_START=0x08000000 186CONFIG_MEMORY_START=0x08000000
182CONFIG_MEMORY_SIZE=0x04000000 187CONFIG_MEMORY_SIZE=0x04000000
183CONFIG_29BIT=y 188CONFIG_29BIT=y
@@ -211,9 +216,9 @@ CONFIG_MIGRATION=y
211# CONFIG_PHYS_ADDR_T_64BIT is not set 216# CONFIG_PHYS_ADDR_T_64BIT is not set
212CONFIG_ZONE_DMA_FLAG=0 217CONFIG_ZONE_DMA_FLAG=0
213CONFIG_NR_QUICK=2 218CONFIG_NR_QUICK=2
214CONFIG_UNEVICTABLE_LRU=y
215CONFIG_HAVE_MLOCK=y 219CONFIG_HAVE_MLOCK=y
216CONFIG_HAVE_MLOCKED_PAGE_BIT=y 220CONFIG_HAVE_MLOCKED_PAGE_BIT=y
221CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
217 222
218# 223#
219# Cache configuration 224# Cache configuration
@@ -240,9 +245,10 @@ CONFIG_CPU_HAS_FPU=y
240# 245#
241# Timer and clock configuration 246# Timer and clock configuration
242# 247#
243CONFIG_SH_TMU=y 248CONFIG_SH_TIMER_TMU=y
244CONFIG_SH_TIMER_IRQ=16
245CONFIG_SH_PCLK_FREQ=41666666 249CONFIG_SH_PCLK_FREQ=41666666
250CONFIG_SH_CLK_CPG=y
251CONFIG_SH_CLK_CPG_LEGACY=y
246CONFIG_TICK_ONESHOT=y 252CONFIG_TICK_ONESHOT=y
247CONFIG_NO_HZ=y 253CONFIG_NO_HZ=y
248CONFIG_HIGH_RES_TIMERS=y 254CONFIG_HIGH_RES_TIMERS=y
@@ -299,6 +305,7 @@ CONFIG_PREEMPT_NONE=y
299# CONFIG_PREEMPT_VOLUNTARY is not set 305# CONFIG_PREEMPT_VOLUNTARY is not set
300# CONFIG_PREEMPT is not set 306# CONFIG_PREEMPT is not set
301CONFIG_GUSA=y 307CONFIG_GUSA=y
308# CONFIG_SPARSE_IRQ is not set
302 309
303# 310#
304# Boot options 311# Boot options
@@ -328,6 +335,7 @@ CONFIG_BINFMT_ELF=y
328CONFIG_PM=y 335CONFIG_PM=y
329# CONFIG_PM_DEBUG is not set 336# CONFIG_PM_DEBUG is not set
330CONFIG_PM_SLEEP=y 337CONFIG_PM_SLEEP=y
338CONFIG_HIBERNATION_NVS=y
331CONFIG_HIBERNATION=y 339CONFIG_HIBERNATION=y
332CONFIG_PM_STD_PARTITION="" 340CONFIG_PM_STD_PARTITION=""
333CONFIG_CPU_IDLE=y 341CONFIG_CPU_IDLE=y
@@ -444,7 +452,6 @@ CONFIG_I2C_SH_MOBILE=y
444# CONFIG_SENSORS_PCF8574 is not set 452# CONFIG_SENSORS_PCF8574 is not set
445# CONFIG_PCF8575 is not set 453# CONFIG_PCF8575 is not set
446# CONFIG_SENSORS_PCA9539 is not set 454# CONFIG_SENSORS_PCA9539 is not set
447# CONFIG_SENSORS_MAX6875 is not set
448# CONFIG_SENSORS_TSL2550 is not set 455# CONFIG_SENSORS_TSL2550 is not set
449# CONFIG_I2C_DEBUG_CORE is not set 456# CONFIG_I2C_DEBUG_CORE is not set
450# CONFIG_I2C_DEBUG_ALGO is not set 457# CONFIG_I2C_DEBUG_ALGO is not set
@@ -477,21 +484,7 @@ CONFIG_SSB_POSSIBLE=y
477# CONFIG_MFD_WM8350_I2C is not set 484# CONFIG_MFD_WM8350_I2C is not set
478# CONFIG_MFD_PCF50633 is not set 485# CONFIG_MFD_PCF50633 is not set
479# CONFIG_REGULATOR is not set 486# CONFIG_REGULATOR is not set
480 487# CONFIG_MEDIA_SUPPORT is not set
481#
482# Multimedia devices
483#
484
485#
486# Multimedia core support
487#
488# CONFIG_VIDEO_DEV is not set
489# CONFIG_VIDEO_MEDIA is not set
490
491#
492# Multimedia drivers
493#
494# CONFIG_DAB is not set
495 488
496# 489#
497# Graphics support 490# Graphics support
@@ -571,6 +564,10 @@ CONFIG_UIO=y
571CONFIG_UIO_PDRV_GENIRQ=y 564CONFIG_UIO_PDRV_GENIRQ=y
572# CONFIG_UIO_SMX is not set 565# CONFIG_UIO_SMX is not set
573# CONFIG_UIO_SERCOS3 is not set 566# CONFIG_UIO_SERCOS3 is not set
567
568#
569# TI VLYNQ
570#
574# CONFIG_STAGING is not set 571# CONFIG_STAGING is not set
575 572
576# 573#
@@ -582,11 +579,13 @@ CONFIG_UIO_PDRV_GENIRQ=y
582# CONFIG_REISERFS_FS is not set 579# CONFIG_REISERFS_FS is not set
583# CONFIG_JFS_FS is not set 580# CONFIG_JFS_FS is not set
584# CONFIG_FS_POSIX_ACL is not set 581# CONFIG_FS_POSIX_ACL is not set
585CONFIG_FILE_LOCKING=y
586# CONFIG_XFS_FS is not set 582# CONFIG_XFS_FS is not set
587# CONFIG_BTRFS_FS is not set 583# CONFIG_BTRFS_FS is not set
584CONFIG_FILE_LOCKING=y
585CONFIG_FSNOTIFY=y
588# CONFIG_DNOTIFY is not set 586# CONFIG_DNOTIFY is not set
589# CONFIG_INOTIFY is not set 587# CONFIG_INOTIFY is not set
588CONFIG_INOTIFY_USER=y
590# CONFIG_QUOTA is not set 589# CONFIG_QUOTA is not set
591# CONFIG_AUTOFS_FS is not set 590# CONFIG_AUTOFS_FS is not set
592# CONFIG_AUTOFS4_FS is not set 591# CONFIG_AUTOFS4_FS is not set
@@ -651,23 +650,11 @@ CONFIG_HAVE_FUNCTION_TRACER=y
651CONFIG_HAVE_DYNAMIC_FTRACE=y 650CONFIG_HAVE_DYNAMIC_FTRACE=y
652CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 651CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
653CONFIG_RING_BUFFER=y 652CONFIG_RING_BUFFER=y
653CONFIG_EVENT_TRACING=y
654CONFIG_CONTEXT_SWITCH_TRACER=y
654CONFIG_TRACING=y 655CONFIG_TRACING=y
655CONFIG_TRACING_SUPPORT=y 656CONFIG_TRACING_SUPPORT=y
656 657# CONFIG_FTRACE is not set
657#
658# Tracers
659#
660# CONFIG_FUNCTION_TRACER is not set
661# CONFIG_IRQSOFF_TRACER is not set
662# CONFIG_SCHED_TRACER is not set
663# CONFIG_CONTEXT_SWITCH_TRACER is not set
664# CONFIG_EVENT_TRACER is not set
665# CONFIG_BOOT_TRACER is not set
666# CONFIG_TRACE_BRANCH_PROFILING is not set
667# CONFIG_STACK_TRACER is not set
668# CONFIG_KMEMTRACE is not set
669# CONFIG_WORKQUEUE_TRACER is not set
670# CONFIG_FTRACE_STARTUP_TEST is not set
671# CONFIG_DYNAMIC_DEBUG is not set 658# CONFIG_DYNAMIC_DEBUG is not set
672# CONFIG_DMA_API_DEBUG is not set 659# CONFIG_DMA_API_DEBUG is not set
673# CONFIG_SAMPLES is not set 660# CONFIG_SAMPLES is not set
@@ -698,3 +685,4 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
698CONFIG_HAS_IOMEM=y 685CONFIG_HAS_IOMEM=y
699CONFIG_HAS_IOPORT=y 686CONFIG_HAS_IOPORT=y
700CONFIG_HAS_DMA=y 687CONFIG_HAS_DMA=y
688CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/sh7785lcr_32bit_defconfig b/arch/sh/configs/sh7785lcr_32bit_defconfig
index 1c55b800d12..ed316f602db 100644
--- a/arch/sh/configs/sh7785lcr_32bit_defconfig
+++ b/arch/sh/configs/sh7785lcr_32bit_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:10:53 2009 4# Thu Jun 18 13:08:29 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -21,6 +21,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_NUMA=y 22CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_SYS_SUPPORTS_PCI=y 23CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
26CONFIG_HAVE_LATENCYTOP_SUPPORT=y 27CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -80,7 +81,6 @@ CONFIG_SYSCTL_SYSCALL=y
80CONFIG_KALLSYMS=y 81CONFIG_KALLSYMS=y
81# CONFIG_KALLSYMS_ALL is not set 82# CONFIG_KALLSYMS_ALL is not set
82# CONFIG_KALLSYMS_EXTRA_PASS is not set 83# CONFIG_KALLSYMS_EXTRA_PASS is not set
83# CONFIG_STRIP_ASM_SYMS is not set
84CONFIG_HOTPLUG=y 84CONFIG_HOTPLUG=y
85CONFIG_PRINTK=y 85CONFIG_PRINTK=y
86CONFIG_BUG=y 86CONFIG_BUG=y
@@ -93,8 +93,13 @@ CONFIG_TIMERFD=y
93CONFIG_EVENTFD=y 93CONFIG_EVENTFD=y
94CONFIG_SHMEM=y 94CONFIG_SHMEM=y
95CONFIG_AIO=y 95CONFIG_AIO=y
96
97#
98# Performance Counters
99#
96CONFIG_VM_EVENT_COUNTERS=y 100CONFIG_VM_EVENT_COUNTERS=y
97CONFIG_PCI_QUIRKS=y 101CONFIG_PCI_QUIRKS=y
102# CONFIG_STRIP_ASM_SYMS is not set
98CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
99CONFIG_SLAB=y 104CONFIG_SLAB=y
100# CONFIG_SLUB is not set 105# CONFIG_SLUB is not set
@@ -187,6 +192,7 @@ CONFIG_CPU_SUBTYPE_SH7785=y
187CONFIG_QUICKLIST=y 192CONFIG_QUICKLIST=y
188CONFIG_MMU=y 193CONFIG_MMU=y
189CONFIG_PAGE_OFFSET=0x80000000 194CONFIG_PAGE_OFFSET=0x80000000
195CONFIG_FORCE_MAX_ZONEORDER=11
190CONFIG_MEMORY_START=0x40000000 196CONFIG_MEMORY_START=0x40000000
191CONFIG_MEMORY_SIZE=0x20000000 197CONFIG_MEMORY_SIZE=0x20000000
192# CONFIG_29BIT is not set 198# CONFIG_29BIT is not set
@@ -209,7 +215,6 @@ CONFIG_PAGE_SIZE_4KB=y
209# CONFIG_PAGE_SIZE_8KB is not set 215# CONFIG_PAGE_SIZE_8KB is not set
210# CONFIG_PAGE_SIZE_16KB is not set 216# CONFIG_PAGE_SIZE_16KB is not set
211# CONFIG_PAGE_SIZE_64KB is not set 217# CONFIG_PAGE_SIZE_64KB is not set
212CONFIG_ENTRY_OFFSET=0x00001000
213CONFIG_SELECT_MEMORY_MODEL=y 218CONFIG_SELECT_MEMORY_MODEL=y
214# CONFIG_FLATMEM_MANUAL is not set 219# CONFIG_FLATMEM_MANUAL is not set
215# CONFIG_DISCONTIGMEM_MANUAL is not set 220# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -224,9 +229,9 @@ CONFIG_MIGRATION=y
224# CONFIG_PHYS_ADDR_T_64BIT is not set 229# CONFIG_PHYS_ADDR_T_64BIT is not set
225CONFIG_ZONE_DMA_FLAG=0 230CONFIG_ZONE_DMA_FLAG=0
226CONFIG_NR_QUICK=2 231CONFIG_NR_QUICK=2
227CONFIG_UNEVICTABLE_LRU=y
228CONFIG_HAVE_MLOCK=y 232CONFIG_HAVE_MLOCK=y
229CONFIG_HAVE_MLOCKED_PAGE_BIT=y 233CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
230 235
231# 236#
232# Cache configuration 237# Cache configuration
@@ -244,7 +249,6 @@ CONFIG_SH_FPU=y
244CONFIG_SH_STORE_QUEUES=y 249CONFIG_SH_STORE_QUEUES=y
245CONFIG_CPU_HAS_INTEVT=y 250CONFIG_CPU_HAS_INTEVT=y
246CONFIG_CPU_HAS_SR_RB=y 251CONFIG_CPU_HAS_SR_RB=y
247CONFIG_CPU_HAS_PTEA=y
248CONFIG_CPU_HAS_FPU=y 252CONFIG_CPU_HAS_FPU=y
249 253
250# 254#
@@ -256,9 +260,9 @@ CONFIG_SH_SH7785LCR=y
256# 260#
257# Timer and clock configuration 261# Timer and clock configuration
258# 262#
259CONFIG_SH_TMU=y 263CONFIG_SH_TIMER_TMU=y
260CONFIG_SH_TIMER_IRQ=28
261CONFIG_SH_PCLK_FREQ=50000000 264CONFIG_SH_PCLK_FREQ=50000000
265CONFIG_SH_CLK_CPG=y
262CONFIG_TICK_ONESHOT=y 266CONFIG_TICK_ONESHOT=y
263# CONFIG_NO_HZ is not set 267# CONFIG_NO_HZ is not set
264CONFIG_HIGH_RES_TIMERS=y 268CONFIG_HIGH_RES_TIMERS=y
@@ -300,12 +304,14 @@ CONFIG_KEXEC=y
300# CONFIG_PREEMPT_VOLUNTARY is not set 304# CONFIG_PREEMPT_VOLUNTARY is not set
301CONFIG_PREEMPT=y 305CONFIG_PREEMPT=y
302CONFIG_GUSA=y 306CONFIG_GUSA=y
307# CONFIG_SPARSE_IRQ is not set
303 308
304# 309#
305# Boot options 310# Boot options
306# 311#
307CONFIG_ZERO_PAGE_OFFSET=0x00001000 312CONFIG_ZERO_PAGE_OFFSET=0x00001000
308CONFIG_BOOT_LINK_OFFSET=0x00800000 313CONFIG_BOOT_LINK_OFFSET=0x00800000
314CONFIG_ENTRY_OFFSET=0x00001000
309# CONFIG_CMDLINE_BOOL is not set 315# CONFIG_CMDLINE_BOOL is not set
310 316
311# 317#
@@ -400,6 +406,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
400# CONFIG_ECONET is not set 406# CONFIG_ECONET is not set
401# CONFIG_WAN_ROUTER is not set 407# CONFIG_WAN_ROUTER is not set
402# CONFIG_PHONET is not set 408# CONFIG_PHONET is not set
409# CONFIG_IEEE802154 is not set
403# CONFIG_NET_SCHED is not set 410# CONFIG_NET_SCHED is not set
404# CONFIG_DCB is not set 411# CONFIG_DCB is not set
405 412
@@ -418,7 +425,11 @@ CONFIG_WIRELESS=y
418CONFIG_WIRELESS_EXT=y 425CONFIG_WIRELESS_EXT=y
419CONFIG_WIRELESS_EXT_SYSFS=y 426CONFIG_WIRELESS_EXT_SYSFS=y
420# CONFIG_LIB80211 is not set 427# CONFIG_LIB80211 is not set
421# CONFIG_MAC80211 is not set 428
429#
430# CFG80211 needs to be enabled for MAC80211
431#
432CONFIG_MAC80211_DEFAULT_PS_VALUE=0
422# CONFIG_WIMAX is not set 433# CONFIG_WIMAX is not set
423# CONFIG_RFKILL is not set 434# CONFIG_RFKILL is not set
424# CONFIG_NET_9P is not set 435# CONFIG_NET_9P is not set
@@ -561,10 +572,6 @@ CONFIG_BLK_DEV_SD=y
561# CONFIG_BLK_DEV_SR is not set 572# CONFIG_BLK_DEV_SR is not set
562# CONFIG_CHR_DEV_SG is not set 573# CONFIG_CHR_DEV_SG is not set
563# CONFIG_CHR_DEV_SCH is not set 574# CONFIG_CHR_DEV_SCH is not set
564
565#
566# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
567#
568# CONFIG_SCSI_MULTI_LUN is not set 575# CONFIG_SCSI_MULTI_LUN is not set
569# CONFIG_SCSI_CONSTANTS is not set 576# CONFIG_SCSI_CONSTANTS is not set
570# CONFIG_SCSI_LOGGING is not set 577# CONFIG_SCSI_LOGGING is not set
@@ -656,7 +663,6 @@ CONFIG_SATA_SIL=y
656# CONFIG_IEEE1394 is not set 663# CONFIG_IEEE1394 is not set
657# CONFIG_I2O is not set 664# CONFIG_I2O is not set
658CONFIG_NETDEVICES=y 665CONFIG_NETDEVICES=y
659CONFIG_COMPAT_NET_DEV_OPS=y
660# CONFIG_DUMMY is not set 666# CONFIG_DUMMY is not set
661# CONFIG_BONDING is not set 667# CONFIG_BONDING is not set
662# CONFIG_MACVLAN is not set 668# CONFIG_MACVLAN is not set
@@ -861,7 +867,6 @@ CONFIG_I2C_PCA_PLATFORM=y
861# CONFIG_SENSORS_PCF8574 is not set 867# CONFIG_SENSORS_PCF8574 is not set
862# CONFIG_PCF8575 is not set 868# CONFIG_PCF8575 is not set
863# CONFIG_SENSORS_PCA9539 is not set 869# CONFIG_SENSORS_PCA9539 is not set
864# CONFIG_SENSORS_MAX6875 is not set
865# CONFIG_SENSORS_TSL2550 is not set 870# CONFIG_SENSORS_TSL2550 is not set
866# CONFIG_I2C_DEBUG_CORE is not set 871# CONFIG_I2C_DEBUG_CORE is not set
867# CONFIG_I2C_DEBUG_ALGO is not set 872# CONFIG_I2C_DEBUG_ALGO is not set
@@ -894,22 +899,7 @@ CONFIG_MFD_SM501=y
894# CONFIG_MFD_WM8350_I2C is not set 899# CONFIG_MFD_WM8350_I2C is not set
895# CONFIG_MFD_PCF50633 is not set 900# CONFIG_MFD_PCF50633 is not set
896# CONFIG_REGULATOR is not set 901# CONFIG_REGULATOR is not set
897 902# CONFIG_MEDIA_SUPPORT is not set
898#
899# Multimedia devices
900#
901
902#
903# Multimedia core support
904#
905# CONFIG_VIDEO_DEV is not set
906# CONFIG_DVB_CORE is not set
907# CONFIG_VIDEO_MEDIA is not set
908
909#
910# Multimedia drivers
911#
912# CONFIG_DAB is not set
913 903
914# 904#
915# Graphics support 905# Graphics support
@@ -1017,7 +1007,7 @@ CONFIG_HID_BELKIN=y
1017CONFIG_HID_CHERRY=y 1007CONFIG_HID_CHERRY=y
1018CONFIG_HID_CHICONY=y 1008CONFIG_HID_CHICONY=y
1019CONFIG_HID_CYPRESS=y 1009CONFIG_HID_CYPRESS=y
1020# CONFIG_DRAGONRISE_FF is not set 1010# CONFIG_HID_DRAGONRISE is not set
1021CONFIG_HID_EZKEY=y 1011CONFIG_HID_EZKEY=y
1022# CONFIG_HID_KYE is not set 1012# CONFIG_HID_KYE is not set
1023CONFIG_HID_GYRATION=y 1013CONFIG_HID_GYRATION=y
@@ -1034,10 +1024,11 @@ CONFIG_HID_PETALYNX=y
1034CONFIG_HID_SAMSUNG=y 1024CONFIG_HID_SAMSUNG=y
1035CONFIG_HID_SONY=y 1025CONFIG_HID_SONY=y
1036CONFIG_HID_SUNPLUS=y 1026CONFIG_HID_SUNPLUS=y
1037# CONFIG_GREENASIA_FF is not set 1027# CONFIG_HID_GREENASIA is not set
1028# CONFIG_HID_SMARTJOYPLUS is not set
1038# CONFIG_HID_TOPSEED is not set 1029# CONFIG_HID_TOPSEED is not set
1039CONFIG_THRUSTMASTER_FF=m 1030# CONFIG_HID_THRUSTMASTER is not set
1040CONFIG_ZEROPLUS_FF=m 1031# CONFIG_HID_ZEROPLUS is not set
1041CONFIG_USB_SUPPORT=y 1032CONFIG_USB_SUPPORT=y
1042CONFIG_USB_ARCH_HAS_HCD=y 1033CONFIG_USB_ARCH_HAS_HCD=y
1043CONFIG_USB_ARCH_HAS_OHCI=y 1034CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1063,6 +1054,7 @@ CONFIG_USB_MON=y
1063# USB Host Controller Drivers 1054# USB Host Controller Drivers
1064# 1055#
1065# CONFIG_USB_C67X00_HCD is not set 1056# CONFIG_USB_C67X00_HCD is not set
1057# CONFIG_USB_XHCI_HCD is not set
1066CONFIG_USB_EHCI_HCD=m 1058CONFIG_USB_EHCI_HCD=m
1067# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1059# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1068# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1060# CONFIG_USB_EHCI_TT_NEWSCHED is not set
@@ -1210,9 +1202,14 @@ CONFIG_RTC_DRV_RS5C372=y
1210# on-CPU RTC drivers 1202# on-CPU RTC drivers
1211# 1203#
1212# CONFIG_RTC_DRV_SH is not set 1204# CONFIG_RTC_DRV_SH is not set
1205# CONFIG_RTC_DRV_GENERIC is not set
1213# CONFIG_DMADEVICES is not set 1206# CONFIG_DMADEVICES is not set
1214# CONFIG_AUXDISPLAY is not set 1207# CONFIG_AUXDISPLAY is not set
1215# CONFIG_UIO is not set 1208# CONFIG_UIO is not set
1209
1210#
1211# TI VLYNQ
1212#
1216# CONFIG_STAGING is not set 1213# CONFIG_STAGING is not set
1217 1214
1218# 1215#
@@ -1232,10 +1229,11 @@ CONFIG_FS_MBCACHE=y
1232# CONFIG_REISERFS_FS is not set 1229# CONFIG_REISERFS_FS is not set
1233# CONFIG_JFS_FS is not set 1230# CONFIG_JFS_FS is not set
1234CONFIG_FS_POSIX_ACL=y 1231CONFIG_FS_POSIX_ACL=y
1235CONFIG_FILE_LOCKING=y
1236# CONFIG_XFS_FS is not set 1232# CONFIG_XFS_FS is not set
1237# CONFIG_OCFS2_FS is not set 1233# CONFIG_OCFS2_FS is not set
1238# CONFIG_BTRFS_FS is not set 1234# CONFIG_BTRFS_FS is not set
1235CONFIG_FILE_LOCKING=y
1236CONFIG_FSNOTIFY=y
1239CONFIG_DNOTIFY=y 1237CONFIG_DNOTIFY=y
1240CONFIG_INOTIFY=y 1238CONFIG_INOTIFY=y
1241CONFIG_INOTIFY_USER=y 1239CONFIG_INOTIFY_USER=y
@@ -1428,18 +1426,16 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1428CONFIG_HAVE_DYNAMIC_FTRACE=y 1426CONFIG_HAVE_DYNAMIC_FTRACE=y
1429CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1427CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1430CONFIG_TRACING_SUPPORT=y 1428CONFIG_TRACING_SUPPORT=y
1431 1429CONFIG_FTRACE=y
1432#
1433# Tracers
1434#
1435# CONFIG_FUNCTION_TRACER is not set 1430# CONFIG_FUNCTION_TRACER is not set
1436# CONFIG_IRQSOFF_TRACER is not set 1431# CONFIG_IRQSOFF_TRACER is not set
1437# CONFIG_PREEMPT_TRACER is not set 1432# CONFIG_PREEMPT_TRACER is not set
1438# CONFIG_SCHED_TRACER is not set 1433# CONFIG_SCHED_TRACER is not set
1439# CONFIG_CONTEXT_SWITCH_TRACER is not set 1434# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1440# CONFIG_EVENT_TRACER is not set
1441# CONFIG_BOOT_TRACER is not set 1435# CONFIG_BOOT_TRACER is not set
1442# CONFIG_TRACE_BRANCH_PROFILING is not set 1436CONFIG_BRANCH_PROFILE_NONE=y
1437# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1438# CONFIG_PROFILE_ALL_BRANCHES is not set
1443# CONFIG_STACK_TRACER is not set 1439# CONFIG_STACK_TRACER is not set
1444# CONFIG_KMEMTRACE is not set 1440# CONFIG_KMEMTRACE is not set
1445# CONFIG_WORKQUEUE_TRACER is not set 1441# CONFIG_WORKQUEUE_TRACER is not set
@@ -1454,10 +1450,8 @@ CONFIG_HAVE_ARCH_KGDB=y
1454# CONFIG_DEBUG_STACKOVERFLOW is not set 1450# CONFIG_DEBUG_STACKOVERFLOW is not set
1455# CONFIG_DEBUG_STACK_USAGE is not set 1451# CONFIG_DEBUG_STACK_USAGE is not set
1456# CONFIG_4KSTACKS is not set 1452# CONFIG_4KSTACKS is not set
1457# CONFIG_IRQSTACKS is not set
1458# CONFIG_DUMP_CODE is not set 1453# CONFIG_DUMP_CODE is not set
1459# CONFIG_SH_NO_BSS_INIT is not set 1454# CONFIG_SH_NO_BSS_INIT is not set
1460# CONFIG_MORE_COMPILE_OPTIONS is not set
1461 1455
1462# 1456#
1463# Security options 1457# Security options
@@ -1580,3 +1574,4 @@ CONFIG_HAS_IOMEM=y
1580CONFIG_HAS_IOPORT=y 1574CONFIG_HAS_IOPORT=y
1581CONFIG_HAS_DMA=y 1575CONFIG_HAS_DMA=y
1582CONFIG_NLATTR=y 1576CONFIG_NLATTR=y
1577CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig
index 4385fe97a78..004e6f5e8a6 100644
--- a/arch/sh/configs/sh7785lcr_defconfig
+++ b/arch/sh/configs/sh7785lcr_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:11:48 2009 4# Thu Jun 18 13:09:34 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -21,6 +21,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_NUMA=y 22CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_SYS_SUPPORTS_PCI=y 23CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
26CONFIG_HAVE_LATENCYTOP_SUPPORT=y 27CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -80,7 +81,6 @@ CONFIG_SYSCTL_SYSCALL=y
80CONFIG_KALLSYMS=y 81CONFIG_KALLSYMS=y
81# CONFIG_KALLSYMS_ALL is not set 82# CONFIG_KALLSYMS_ALL is not set
82# CONFIG_KALLSYMS_EXTRA_PASS is not set 83# CONFIG_KALLSYMS_EXTRA_PASS is not set
83# CONFIG_STRIP_ASM_SYMS is not set
84CONFIG_HOTPLUG=y 84CONFIG_HOTPLUG=y
85CONFIG_PRINTK=y 85CONFIG_PRINTK=y
86CONFIG_BUG=y 86CONFIG_BUG=y
@@ -93,8 +93,13 @@ CONFIG_TIMERFD=y
93CONFIG_EVENTFD=y 93CONFIG_EVENTFD=y
94CONFIG_SHMEM=y 94CONFIG_SHMEM=y
95CONFIG_AIO=y 95CONFIG_AIO=y
96
97#
98# Performance Counters
99#
96CONFIG_VM_EVENT_COUNTERS=y 100CONFIG_VM_EVENT_COUNTERS=y
97CONFIG_PCI_QUIRKS=y 101CONFIG_PCI_QUIRKS=y
102# CONFIG_STRIP_ASM_SYMS is not set
98CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
99CONFIG_SLAB=y 104CONFIG_SLAB=y
100# CONFIG_SLUB is not set 105# CONFIG_SLUB is not set
@@ -187,6 +192,7 @@ CONFIG_CPU_SUBTYPE_SH7785=y
187CONFIG_QUICKLIST=y 192CONFIG_QUICKLIST=y
188CONFIG_MMU=y 193CONFIG_MMU=y
189CONFIG_PAGE_OFFSET=0x80000000 194CONFIG_PAGE_OFFSET=0x80000000
195CONFIG_FORCE_MAX_ZONEORDER=11
190CONFIG_MEMORY_START=0x08000000 196CONFIG_MEMORY_START=0x08000000
191CONFIG_MEMORY_SIZE=0x08000000 197CONFIG_MEMORY_SIZE=0x08000000
192CONFIG_29BIT=y 198CONFIG_29BIT=y
@@ -204,7 +210,6 @@ CONFIG_PAGE_SIZE_4KB=y
204# CONFIG_PAGE_SIZE_8KB is not set 210# CONFIG_PAGE_SIZE_8KB is not set
205# CONFIG_PAGE_SIZE_16KB is not set 211# CONFIG_PAGE_SIZE_16KB is not set
206# CONFIG_PAGE_SIZE_64KB is not set 212# CONFIG_PAGE_SIZE_64KB is not set
207CONFIG_ENTRY_OFFSET=0x00001000
208CONFIG_SELECT_MEMORY_MODEL=y 213CONFIG_SELECT_MEMORY_MODEL=y
209CONFIG_FLATMEM_MANUAL=y 214CONFIG_FLATMEM_MANUAL=y
210# CONFIG_DISCONTIGMEM_MANUAL is not set 215# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -217,9 +222,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
217# CONFIG_PHYS_ADDR_T_64BIT is not set 222# CONFIG_PHYS_ADDR_T_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=0 223CONFIG_ZONE_DMA_FLAG=0
219CONFIG_NR_QUICK=2 224CONFIG_NR_QUICK=2
220CONFIG_UNEVICTABLE_LRU=y
221CONFIG_HAVE_MLOCK=y 225CONFIG_HAVE_MLOCK=y
222CONFIG_HAVE_MLOCKED_PAGE_BIT=y 226CONFIG_HAVE_MLOCKED_PAGE_BIT=y
227CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
223 228
224# 229#
225# Cache configuration 230# Cache configuration
@@ -237,7 +242,6 @@ CONFIG_SH_FPU=y
237CONFIG_SH_STORE_QUEUES=y 242CONFIG_SH_STORE_QUEUES=y
238CONFIG_CPU_HAS_INTEVT=y 243CONFIG_CPU_HAS_INTEVT=y
239CONFIG_CPU_HAS_SR_RB=y 244CONFIG_CPU_HAS_SR_RB=y
240CONFIG_CPU_HAS_PTEA=y
241CONFIG_CPU_HAS_FPU=y 245CONFIG_CPU_HAS_FPU=y
242 246
243# 247#
@@ -250,9 +254,9 @@ CONFIG_SH_SH7785LCR_29BIT_PHYSMAPS=y
250# 254#
251# Timer and clock configuration 255# Timer and clock configuration
252# 256#
253CONFIG_SH_TMU=y 257CONFIG_SH_TIMER_TMU=y
254CONFIG_SH_TIMER_IRQ=28
255CONFIG_SH_PCLK_FREQ=50000000 258CONFIG_SH_PCLK_FREQ=50000000
259CONFIG_SH_CLK_CPG=y
256CONFIG_TICK_ONESHOT=y 260CONFIG_TICK_ONESHOT=y
257# CONFIG_NO_HZ is not set 261# CONFIG_NO_HZ is not set
258CONFIG_HIGH_RES_TIMERS=y 262CONFIG_HIGH_RES_TIMERS=y
@@ -294,12 +298,14 @@ CONFIG_KEXEC=y
294# CONFIG_PREEMPT_VOLUNTARY is not set 298# CONFIG_PREEMPT_VOLUNTARY is not set
295CONFIG_PREEMPT=y 299CONFIG_PREEMPT=y
296CONFIG_GUSA=y 300CONFIG_GUSA=y
301# CONFIG_SPARSE_IRQ is not set
297 302
298# 303#
299# Boot options 304# Boot options
300# 305#
301CONFIG_ZERO_PAGE_OFFSET=0x00001000 306CONFIG_ZERO_PAGE_OFFSET=0x00001000
302CONFIG_BOOT_LINK_OFFSET=0x00800000 307CONFIG_BOOT_LINK_OFFSET=0x00800000
308CONFIG_ENTRY_OFFSET=0x00001000
303# CONFIG_CMDLINE_BOOL is not set 309# CONFIG_CMDLINE_BOOL is not set
304 310
305# 311#
@@ -394,6 +400,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
394# CONFIG_ECONET is not set 400# CONFIG_ECONET is not set
395# CONFIG_WAN_ROUTER is not set 401# CONFIG_WAN_ROUTER is not set
396# CONFIG_PHONET is not set 402# CONFIG_PHONET is not set
403# CONFIG_IEEE802154 is not set
397# CONFIG_NET_SCHED is not set 404# CONFIG_NET_SCHED is not set
398# CONFIG_DCB is not set 405# CONFIG_DCB is not set
399 406
@@ -412,7 +419,11 @@ CONFIG_WIRELESS=y
412CONFIG_WIRELESS_EXT=y 419CONFIG_WIRELESS_EXT=y
413CONFIG_WIRELESS_EXT_SYSFS=y 420CONFIG_WIRELESS_EXT_SYSFS=y
414# CONFIG_LIB80211 is not set 421# CONFIG_LIB80211 is not set
415# CONFIG_MAC80211 is not set 422
423#
424# CFG80211 needs to be enabled for MAC80211
425#
426CONFIG_MAC80211_DEFAULT_PS_VALUE=0
416# CONFIG_WIMAX is not set 427# CONFIG_WIMAX is not set
417# CONFIG_RFKILL is not set 428# CONFIG_RFKILL is not set
418# CONFIG_NET_9P is not set 429# CONFIG_NET_9P is not set
@@ -555,10 +566,6 @@ CONFIG_BLK_DEV_SD=y
555# CONFIG_BLK_DEV_SR is not set 566# CONFIG_BLK_DEV_SR is not set
556# CONFIG_CHR_DEV_SG is not set 567# CONFIG_CHR_DEV_SG is not set
557# CONFIG_CHR_DEV_SCH is not set 568# CONFIG_CHR_DEV_SCH is not set
558
559#
560# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
561#
562# CONFIG_SCSI_MULTI_LUN is not set 569# CONFIG_SCSI_MULTI_LUN is not set
563# CONFIG_SCSI_CONSTANTS is not set 570# CONFIG_SCSI_CONSTANTS is not set
564# CONFIG_SCSI_LOGGING is not set 571# CONFIG_SCSI_LOGGING is not set
@@ -650,7 +657,6 @@ CONFIG_SATA_SIL=y
650# CONFIG_IEEE1394 is not set 657# CONFIG_IEEE1394 is not set
651# CONFIG_I2O is not set 658# CONFIG_I2O is not set
652CONFIG_NETDEVICES=y 659CONFIG_NETDEVICES=y
653CONFIG_COMPAT_NET_DEV_OPS=y
654# CONFIG_DUMMY is not set 660# CONFIG_DUMMY is not set
655# CONFIG_BONDING is not set 661# CONFIG_BONDING is not set
656# CONFIG_MACVLAN is not set 662# CONFIG_MACVLAN is not set
@@ -855,7 +861,6 @@ CONFIG_I2C_PCA_PLATFORM=y
855# CONFIG_SENSORS_PCF8574 is not set 861# CONFIG_SENSORS_PCF8574 is not set
856# CONFIG_PCF8575 is not set 862# CONFIG_PCF8575 is not set
857# CONFIG_SENSORS_PCA9539 is not set 863# CONFIG_SENSORS_PCA9539 is not set
858# CONFIG_SENSORS_MAX6875 is not set
859# CONFIG_SENSORS_TSL2550 is not set 864# CONFIG_SENSORS_TSL2550 is not set
860# CONFIG_I2C_DEBUG_CORE is not set 865# CONFIG_I2C_DEBUG_CORE is not set
861# CONFIG_I2C_DEBUG_ALGO is not set 866# CONFIG_I2C_DEBUG_ALGO is not set
@@ -888,22 +893,7 @@ CONFIG_MFD_SM501=y
888# CONFIG_MFD_WM8350_I2C is not set 893# CONFIG_MFD_WM8350_I2C is not set
889# CONFIG_MFD_PCF50633 is not set 894# CONFIG_MFD_PCF50633 is not set
890# CONFIG_REGULATOR is not set 895# CONFIG_REGULATOR is not set
891 896# CONFIG_MEDIA_SUPPORT is not set
892#
893# Multimedia devices
894#
895
896#
897# Multimedia core support
898#
899# CONFIG_VIDEO_DEV is not set
900# CONFIG_DVB_CORE is not set
901# CONFIG_VIDEO_MEDIA is not set
902
903#
904# Multimedia drivers
905#
906# CONFIG_DAB is not set
907 897
908# 898#
909# Graphics support 899# Graphics support
@@ -1011,7 +1001,7 @@ CONFIG_HID_BELKIN=y
1011CONFIG_HID_CHERRY=y 1001CONFIG_HID_CHERRY=y
1012CONFIG_HID_CHICONY=y 1002CONFIG_HID_CHICONY=y
1013CONFIG_HID_CYPRESS=y 1003CONFIG_HID_CYPRESS=y
1014# CONFIG_DRAGONRISE_FF is not set 1004# CONFIG_HID_DRAGONRISE is not set
1015CONFIG_HID_EZKEY=y 1005CONFIG_HID_EZKEY=y
1016# CONFIG_HID_KYE is not set 1006# CONFIG_HID_KYE is not set
1017CONFIG_HID_GYRATION=y 1007CONFIG_HID_GYRATION=y
@@ -1028,10 +1018,11 @@ CONFIG_HID_PETALYNX=y
1028CONFIG_HID_SAMSUNG=y 1018CONFIG_HID_SAMSUNG=y
1029CONFIG_HID_SONY=y 1019CONFIG_HID_SONY=y
1030CONFIG_HID_SUNPLUS=y 1020CONFIG_HID_SUNPLUS=y
1031# CONFIG_GREENASIA_FF is not set 1021# CONFIG_HID_GREENASIA is not set
1022# CONFIG_HID_SMARTJOYPLUS is not set
1032# CONFIG_HID_TOPSEED is not set 1023# CONFIG_HID_TOPSEED is not set
1033CONFIG_THRUSTMASTER_FF=m 1024# CONFIG_HID_THRUSTMASTER is not set
1034CONFIG_ZEROPLUS_FF=m 1025# CONFIG_HID_ZEROPLUS is not set
1035CONFIG_USB_SUPPORT=y 1026CONFIG_USB_SUPPORT=y
1036CONFIG_USB_ARCH_HAS_HCD=y 1027CONFIG_USB_ARCH_HAS_HCD=y
1037CONFIG_USB_ARCH_HAS_OHCI=y 1028CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1057,6 +1048,7 @@ CONFIG_USB_MON=y
1057# USB Host Controller Drivers 1048# USB Host Controller Drivers
1058# 1049#
1059# CONFIG_USB_C67X00_HCD is not set 1050# CONFIG_USB_C67X00_HCD is not set
1051# CONFIG_USB_XHCI_HCD is not set
1060CONFIG_USB_EHCI_HCD=m 1052CONFIG_USB_EHCI_HCD=m
1061# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1053# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1062# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1054# CONFIG_USB_EHCI_TT_NEWSCHED is not set
@@ -1204,9 +1196,14 @@ CONFIG_RTC_DRV_RS5C372=y
1204# on-CPU RTC drivers 1196# on-CPU RTC drivers
1205# 1197#
1206# CONFIG_RTC_DRV_SH is not set 1198# CONFIG_RTC_DRV_SH is not set
1199# CONFIG_RTC_DRV_GENERIC is not set
1207# CONFIG_DMADEVICES is not set 1200# CONFIG_DMADEVICES is not set
1208# CONFIG_AUXDISPLAY is not set 1201# CONFIG_AUXDISPLAY is not set
1209# CONFIG_UIO is not set 1202# CONFIG_UIO is not set
1203
1204#
1205# TI VLYNQ
1206#
1210# CONFIG_STAGING is not set 1207# CONFIG_STAGING is not set
1211 1208
1212# 1209#
@@ -1226,10 +1223,11 @@ CONFIG_FS_MBCACHE=y
1226# CONFIG_REISERFS_FS is not set 1223# CONFIG_REISERFS_FS is not set
1227# CONFIG_JFS_FS is not set 1224# CONFIG_JFS_FS is not set
1228CONFIG_FS_POSIX_ACL=y 1225CONFIG_FS_POSIX_ACL=y
1229CONFIG_FILE_LOCKING=y
1230# CONFIG_XFS_FS is not set 1226# CONFIG_XFS_FS is not set
1231# CONFIG_OCFS2_FS is not set 1227# CONFIG_OCFS2_FS is not set
1232# CONFIG_BTRFS_FS is not set 1228# CONFIG_BTRFS_FS is not set
1229CONFIG_FILE_LOCKING=y
1230CONFIG_FSNOTIFY=y
1233CONFIG_DNOTIFY=y 1231CONFIG_DNOTIFY=y
1234CONFIG_INOTIFY=y 1232CONFIG_INOTIFY=y
1235CONFIG_INOTIFY_USER=y 1233CONFIG_INOTIFY_USER=y
@@ -1422,18 +1420,16 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1422CONFIG_HAVE_DYNAMIC_FTRACE=y 1420CONFIG_HAVE_DYNAMIC_FTRACE=y
1423CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1421CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1424CONFIG_TRACING_SUPPORT=y 1422CONFIG_TRACING_SUPPORT=y
1425 1423CONFIG_FTRACE=y
1426#
1427# Tracers
1428#
1429# CONFIG_FUNCTION_TRACER is not set 1424# CONFIG_FUNCTION_TRACER is not set
1430# CONFIG_IRQSOFF_TRACER is not set 1425# CONFIG_IRQSOFF_TRACER is not set
1431# CONFIG_PREEMPT_TRACER is not set 1426# CONFIG_PREEMPT_TRACER is not set
1432# CONFIG_SCHED_TRACER is not set 1427# CONFIG_SCHED_TRACER is not set
1433# CONFIG_CONTEXT_SWITCH_TRACER is not set 1428# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1434# CONFIG_EVENT_TRACER is not set
1435# CONFIG_BOOT_TRACER is not set 1429# CONFIG_BOOT_TRACER is not set
1436# CONFIG_TRACE_BRANCH_PROFILING is not set 1430CONFIG_BRANCH_PROFILE_NONE=y
1431# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1432# CONFIG_PROFILE_ALL_BRANCHES is not set
1437# CONFIG_STACK_TRACER is not set 1433# CONFIG_STACK_TRACER is not set
1438# CONFIG_KMEMTRACE is not set 1434# CONFIG_KMEMTRACE is not set
1439# CONFIG_WORKQUEUE_TRACER is not set 1435# CONFIG_WORKQUEUE_TRACER is not set
@@ -1448,10 +1444,8 @@ CONFIG_HAVE_ARCH_KGDB=y
1448# CONFIG_DEBUG_STACKOVERFLOW is not set 1444# CONFIG_DEBUG_STACKOVERFLOW is not set
1449# CONFIG_DEBUG_STACK_USAGE is not set 1445# CONFIG_DEBUG_STACK_USAGE is not set
1450# CONFIG_4KSTACKS is not set 1446# CONFIG_4KSTACKS is not set
1451# CONFIG_IRQSTACKS is not set
1452# CONFIG_DUMP_CODE is not set 1447# CONFIG_DUMP_CODE is not set
1453# CONFIG_SH_NO_BSS_INIT is not set 1448# CONFIG_SH_NO_BSS_INIT is not set
1454# CONFIG_MORE_COMPILE_OPTIONS is not set
1455 1449
1456# 1450#
1457# Security options 1451# Security options
@@ -1574,3 +1568,4 @@ CONFIG_HAS_IOMEM=y
1574CONFIG_HAS_IOPORT=y 1568CONFIG_HAS_IOPORT=y
1575CONFIG_HAS_DMA=y 1569CONFIG_HAS_DMA=y
1576CONFIG_NLATTR=y 1570CONFIG_NLATTR=y
1571CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/shmin_defconfig b/arch/sh/configs/shmin_defconfig
index 4e120256ec6..ad7d60972fc 100644
--- a/arch/sh/configs/shmin_defconfig
+++ b/arch/sh/configs/shmin_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:12:41 2009 4# Thu Jun 18 13:10:33 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -18,6 +18,7 @@ CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20CONFIG_ARCH_HIBERNATION_POSSIBLE=y 20CONFIG_ARCH_HIBERNATION_POSSIBLE=y
21CONFIG_SYS_SUPPORTS_TMU=y
21CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
23CONFIG_HAVE_LATENCYTOP_SUPPORT=y 24CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -64,7 +65,6 @@ CONFIG_EMBEDDED=y
64# CONFIG_UID16 is not set 65# CONFIG_UID16 is not set
65# CONFIG_SYSCTL_SYSCALL is not set 66# CONFIG_SYSCTL_SYSCALL is not set
66# CONFIG_KALLSYMS is not set 67# CONFIG_KALLSYMS is not set
67# CONFIG_STRIP_ASM_SYMS is not set
68# CONFIG_HOTPLUG is not set 68# CONFIG_HOTPLUG is not set
69CONFIG_PRINTK=y 69CONFIG_PRINTK=y
70# CONFIG_BUG is not set 70# CONFIG_BUG is not set
@@ -77,7 +77,12 @@ CONFIG_TIMERFD=y
77CONFIG_EVENTFD=y 77CONFIG_EVENTFD=y
78# CONFIG_SHMEM is not set 78# CONFIG_SHMEM is not set
79CONFIG_AIO=y 79CONFIG_AIO=y
80
81#
82# Performance Counters
83#
80CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85# CONFIG_STRIP_ASM_SYMS is not set
81CONFIG_COMPAT_BRK=y 86CONFIG_COMPAT_BRK=y
82# CONFIG_SLAB is not set 87# CONFIG_SLAB is not set
83# CONFIG_SLUB is not set 88# CONFIG_SLUB is not set
@@ -159,6 +164,7 @@ CONFIG_CPU_SUBTYPE_SH7706=y
159CONFIG_QUICKLIST=y 164CONFIG_QUICKLIST=y
160CONFIG_MMU=y 165CONFIG_MMU=y
161CONFIG_PAGE_OFFSET=0x80000000 166CONFIG_PAGE_OFFSET=0x80000000
167CONFIG_FORCE_MAX_ZONEORDER=11
162CONFIG_MEMORY_START=0x0c000000 168CONFIG_MEMORY_START=0x0c000000
163CONFIG_MEMORY_SIZE=0x00800000 169CONFIG_MEMORY_SIZE=0x00800000
164CONFIG_29BIT=y 170CONFIG_29BIT=y
@@ -173,7 +179,6 @@ CONFIG_PAGE_SIZE_4KB=y
173# CONFIG_PAGE_SIZE_8KB is not set 179# CONFIG_PAGE_SIZE_8KB is not set
174# CONFIG_PAGE_SIZE_16KB is not set 180# CONFIG_PAGE_SIZE_16KB is not set
175# CONFIG_PAGE_SIZE_64KB is not set 181# CONFIG_PAGE_SIZE_64KB is not set
176CONFIG_ENTRY_OFFSET=0x00001000
177CONFIG_SELECT_MEMORY_MODEL=y 182CONFIG_SELECT_MEMORY_MODEL=y
178CONFIG_FLATMEM_MANUAL=y 183CONFIG_FLATMEM_MANUAL=y
179# CONFIG_DISCONTIGMEM_MANUAL is not set 184# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -186,9 +191,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
186# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
187CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
188CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
189CONFIG_UNEVICTABLE_LRU=y
190CONFIG_HAVE_MLOCK=y 194CONFIG_HAVE_MLOCK=y
191CONFIG_HAVE_MLOCKED_PAGE_BIT=y 195CONFIG_HAVE_MLOCKED_PAGE_BIT=y
196CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
192 197
193# 198#
194# Cache configuration 199# Cache configuration
@@ -216,9 +221,10 @@ CONFIG_SH_SHMIN=y
216# 221#
217# Timer and clock configuration 222# Timer and clock configuration
218# 223#
219CONFIG_SH_TMU=y 224CONFIG_SH_TIMER_TMU=y
220CONFIG_SH_TIMER_IRQ=16
221CONFIG_SH_PCLK_FREQ=32000000 225CONFIG_SH_PCLK_FREQ=32000000
226CONFIG_SH_CLK_CPG=y
227CONFIG_SH_CLK_CPG_LEGACY=y
222# CONFIG_NO_HZ is not set 228# CONFIG_NO_HZ is not set
223# CONFIG_HIGH_RES_TIMERS is not set 229# CONFIG_HIGH_RES_TIMERS is not set
224CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 230CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -260,12 +266,14 @@ CONFIG_PREEMPT_NONE=y
260# CONFIG_PREEMPT is not set 266# CONFIG_PREEMPT is not set
261CONFIG_GUSA=y 267CONFIG_GUSA=y
262# CONFIG_GUSA_RB is not set 268# CONFIG_GUSA_RB is not set
269# CONFIG_SPARSE_IRQ is not set
263 270
264# 271#
265# Boot options 272# Boot options
266# 273#
267CONFIG_ZERO_PAGE_OFFSET=0x00001000 274CONFIG_ZERO_PAGE_OFFSET=0x00001000
268CONFIG_BOOT_LINK_OFFSET=0x00210000 275CONFIG_BOOT_LINK_OFFSET=0x00210000
276CONFIG_ENTRY_OFFSET=0x00001000
269CONFIG_CMDLINE_BOOL=y 277CONFIG_CMDLINE_BOOL=y
270CONFIG_CMDLINE="console=ttySC1,115200 root=1f01 mtdparts=phys_mapped_flash:64k(firm)ro,-(sys) netdev=34,0x300,eth0 " 278CONFIG_CMDLINE="console=ttySC1,115200 root=1f01 mtdparts=phys_mapped_flash:64k(firm)ro,-(sys) netdev=34,0x300,eth0 "
271 279
@@ -345,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 353# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 354# CONFIG_WAN_ROUTER is not set
347# CONFIG_PHONET is not set 355# CONFIG_PHONET is not set
356# CONFIG_IEEE802154 is not set
348# CONFIG_NET_SCHED is not set 357# CONFIG_NET_SCHED is not set
349# CONFIG_DCB is not set 358# CONFIG_DCB is not set
350 359
@@ -362,7 +371,11 @@ CONFIG_WIRELESS=y
362# CONFIG_WIRELESS_OLD_REGULATORY is not set 371# CONFIG_WIRELESS_OLD_REGULATORY is not set
363# CONFIG_WIRELESS_EXT is not set 372# CONFIG_WIRELESS_EXT is not set
364# CONFIG_LIB80211 is not set 373# CONFIG_LIB80211 is not set
365# CONFIG_MAC80211 is not set 374
375#
376# CFG80211 needs to be enabled for MAC80211
377#
378CONFIG_MAC80211_DEFAULT_PS_VALUE=0
366# CONFIG_WIMAX is not set 379# CONFIG_WIMAX is not set
367# CONFIG_RFKILL is not set 380# CONFIG_RFKILL is not set
368# CONFIG_NET_9P is not set 381# CONFIG_NET_9P is not set
@@ -489,7 +502,6 @@ CONFIG_HAVE_IDE=y
489# CONFIG_ATA is not set 502# CONFIG_ATA is not set
490# CONFIG_MD is not set 503# CONFIG_MD is not set
491CONFIG_NETDEVICES=y 504CONFIG_NETDEVICES=y
492CONFIG_COMPAT_NET_DEV_OPS=y
493# CONFIG_DUMMY is not set 505# CONFIG_DUMMY is not set
494# CONFIG_BONDING is not set 506# CONFIG_BONDING is not set
495# CONFIG_MACVLAN is not set 507# CONFIG_MACVLAN is not set
@@ -514,6 +526,7 @@ CONFIG_NET_ETHERNET=y
514# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 526# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
515# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 527# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
516# CONFIG_B44 is not set 528# CONFIG_B44 is not set
529# CONFIG_KS8842 is not set
517CONFIG_NETDEV_1000=y 530CONFIG_NETDEV_1000=y
518CONFIG_NETDEV_10000=y 531CONFIG_NETDEV_10000=y
519 532
@@ -599,22 +612,7 @@ CONFIG_SSB_POSSIBLE=y
599# CONFIG_HTC_PASIC3 is not set 612# CONFIG_HTC_PASIC3 is not set
600# CONFIG_MFD_TMIO is not set 613# CONFIG_MFD_TMIO is not set
601# CONFIG_REGULATOR is not set 614# CONFIG_REGULATOR is not set
602 615# CONFIG_MEDIA_SUPPORT is not set
603#
604# Multimedia devices
605#
606
607#
608# Multimedia core support
609#
610# CONFIG_VIDEO_DEV is not set
611# CONFIG_DVB_CORE is not set
612# CONFIG_VIDEO_MEDIA is not set
613
614#
615# Multimedia drivers
616#
617# CONFIG_DAB is not set
618 616
619# 617#
620# Graphics support 618# Graphics support
@@ -653,10 +651,15 @@ CONFIG_USB_ARCH_HAS_HCD=y
653# CONFIG_MEMSTICK is not set 651# CONFIG_MEMSTICK is not set
654# CONFIG_NEW_LEDS is not set 652# CONFIG_NEW_LEDS is not set
655# CONFIG_ACCESSIBILITY is not set 653# CONFIG_ACCESSIBILITY is not set
654CONFIG_RTC_LIB=y
656# CONFIG_RTC_CLASS is not set 655# CONFIG_RTC_CLASS is not set
657# CONFIG_DMADEVICES is not set 656# CONFIG_DMADEVICES is not set
658# CONFIG_AUXDISPLAY is not set 657# CONFIG_AUXDISPLAY is not set
659# CONFIG_UIO is not set 658# CONFIG_UIO is not set
659
660#
661# TI VLYNQ
662#
660# CONFIG_STAGING is not set 663# CONFIG_STAGING is not set
661 664
662# 665#
@@ -668,11 +671,13 @@ CONFIG_USB_ARCH_HAS_HCD=y
668# CONFIG_REISERFS_FS is not set 671# CONFIG_REISERFS_FS is not set
669# CONFIG_JFS_FS is not set 672# CONFIG_JFS_FS is not set
670# CONFIG_FS_POSIX_ACL is not set 673# CONFIG_FS_POSIX_ACL is not set
671CONFIG_FILE_LOCKING=y
672# CONFIG_XFS_FS is not set 674# CONFIG_XFS_FS is not set
673# CONFIG_BTRFS_FS is not set 675# CONFIG_BTRFS_FS is not set
676CONFIG_FILE_LOCKING=y
677CONFIG_FSNOTIFY=y
674# CONFIG_DNOTIFY is not set 678# CONFIG_DNOTIFY is not set
675# CONFIG_INOTIFY is not set 679# CONFIG_INOTIFY is not set
680CONFIG_INOTIFY_USER=y
676# CONFIG_QUOTA is not set 681# CONFIG_QUOTA is not set
677# CONFIG_AUTOFS_FS is not set 682# CONFIG_AUTOFS_FS is not set
678# CONFIG_AUTOFS4_FS is not set 683# CONFIG_AUTOFS4_FS is not set
@@ -773,27 +778,13 @@ CONFIG_HAVE_FUNCTION_TRACER=y
773CONFIG_HAVE_DYNAMIC_FTRACE=y 778CONFIG_HAVE_DYNAMIC_FTRACE=y
774CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 779CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
775CONFIG_TRACING_SUPPORT=y 780CONFIG_TRACING_SUPPORT=y
776 781# CONFIG_FTRACE is not set
777#
778# Tracers
779#
780# CONFIG_FUNCTION_TRACER is not set
781# CONFIG_IRQSOFF_TRACER is not set
782# CONFIG_SCHED_TRACER is not set
783# CONFIG_CONTEXT_SWITCH_TRACER is not set
784# CONFIG_EVENT_TRACER is not set
785# CONFIG_BOOT_TRACER is not set
786# CONFIG_TRACE_BRANCH_PROFILING is not set
787# CONFIG_STACK_TRACER is not set
788# CONFIG_KMEMTRACE is not set
789# CONFIG_WORKQUEUE_TRACER is not set
790# CONFIG_DMA_API_DEBUG is not set 782# CONFIG_DMA_API_DEBUG is not set
791# CONFIG_SAMPLES is not set 783# CONFIG_SAMPLES is not set
792CONFIG_HAVE_ARCH_KGDB=y 784CONFIG_HAVE_ARCH_KGDB=y
793CONFIG_SH_STANDARD_BIOS=y 785CONFIG_SH_STANDARD_BIOS=y
794# CONFIG_EARLY_SCIF_CONSOLE is not set 786# CONFIG_EARLY_SCIF_CONSOLE is not set
795CONFIG_EARLY_PRINTK=y 787CONFIG_EARLY_PRINTK=y
796# CONFIG_MORE_COMPILE_OPTIONS is not set
797 788
798# 789#
799# Security options 790# Security options
@@ -905,3 +896,4 @@ CONFIG_HAS_IOMEM=y
905CONFIG_HAS_IOPORT=y 896CONFIG_HAS_IOPORT=y
906CONFIG_HAS_DMA=y 897CONFIG_HAS_DMA=y
907CONFIG_NLATTR=y 898CONFIG_NLATTR=y
899CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/shx3_defconfig b/arch/sh/configs/shx3_defconfig
index c088144925f..207b0c9a8cd 100644
--- a/arch/sh/configs/shx3_defconfig
+++ b/arch/sh/configs/shx3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:13:12 2009 4# Thu Jun 18 13:11:03 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -23,6 +23,7 @@ CONFIG_GENERIC_LOCKBREAK=y
23CONFIG_ARCH_HIBERNATION_POSSIBLE=y 23CONFIG_ARCH_HIBERNATION_POSSIBLE=y
24CONFIG_SYS_SUPPORTS_SMP=y 24CONFIG_SYS_SUPPORTS_SMP=y
25CONFIG_SYS_SUPPORTS_NUMA=y 25CONFIG_SYS_SUPPORTS_NUMA=y
26CONFIG_SYS_SUPPORTS_TMU=y
26CONFIG_STACKTRACE_SUPPORT=y 27CONFIG_STACKTRACE_SUPPORT=y
27CONFIG_LOCKDEP_SUPPORT=y 28CONFIG_LOCKDEP_SUPPORT=y
28# CONFIG_ARCH_HAS_ILOG2_U32 is not set 29# CONFIG_ARCH_HAS_ILOG2_U32 is not set
@@ -98,7 +99,6 @@ CONFIG_SYSCTL_SYSCALL=y
98CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
99CONFIG_KALLSYMS_ALL=y 100CONFIG_KALLSYMS_ALL=y
100# CONFIG_KALLSYMS_EXTRA_PASS is not set 101# CONFIG_KALLSYMS_EXTRA_PASS is not set
101# CONFIG_STRIP_ASM_SYMS is not set
102CONFIG_HOTPLUG=y 102CONFIG_HOTPLUG=y
103CONFIG_PRINTK=y 103CONFIG_PRINTK=y
104CONFIG_BUG=y 104CONFIG_BUG=y
@@ -111,14 +111,19 @@ CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y 113CONFIG_AIO=y
114
115#
116# Performance Counters
117#
114CONFIG_VM_EVENT_COUNTERS=y 118CONFIG_VM_EVENT_COUNTERS=y
119# CONFIG_STRIP_ASM_SYMS is not set
115CONFIG_COMPAT_BRK=y 120CONFIG_COMPAT_BRK=y
116# CONFIG_SLAB is not set 121# CONFIG_SLAB is not set
117# CONFIG_SLUB is not set 122# CONFIG_SLUB is not set
118CONFIG_SLOB=y 123CONFIG_SLOB=y
119CONFIG_PROFILING=y 124CONFIG_PROFILING=y
120CONFIG_TRACEPOINTS=y 125CONFIG_TRACEPOINTS=y
121# CONFIG_MARKERS is not set 126CONFIG_MARKERS=y
122CONFIG_OPROFILE=y 127CONFIG_OPROFILE=y
123CONFIG_HAVE_OPROFILE=y 128CONFIG_HAVE_OPROFILE=y
124CONFIG_KPROBES=y 129CONFIG_KPROBES=y
@@ -207,6 +212,7 @@ CONFIG_CPU_SUBTYPE_SHX3=y
207CONFIG_QUICKLIST=y 212CONFIG_QUICKLIST=y
208CONFIG_MMU=y 213CONFIG_MMU=y
209CONFIG_PAGE_OFFSET=0x80000000 214CONFIG_PAGE_OFFSET=0x80000000
215CONFIG_FORCE_MAX_ZONEORDER=7
210CONFIG_MEMORY_START=0x0c000000 216CONFIG_MEMORY_START=0x0c000000
211CONFIG_MEMORY_SIZE=0x04000000 217CONFIG_MEMORY_SIZE=0x04000000
212CONFIG_29BIT=y 218CONFIG_29BIT=y
@@ -226,7 +232,6 @@ CONFIG_ARCH_MEMORY_PROBE=y
226# CONFIG_PAGE_SIZE_8KB is not set 232# CONFIG_PAGE_SIZE_8KB is not set
227# CONFIG_PAGE_SIZE_16KB is not set 233# CONFIG_PAGE_SIZE_16KB is not set
228CONFIG_PAGE_SIZE_64KB=y 234CONFIG_PAGE_SIZE_64KB=y
229CONFIG_ENTRY_OFFSET=0x00010000
230# CONFIG_HUGETLB_PAGE_SIZE_64K is not set 235# CONFIG_HUGETLB_PAGE_SIZE_64K is not set
231# CONFIG_HUGETLB_PAGE_SIZE_256K is not set 236# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
232CONFIG_HUGETLB_PAGE_SIZE_1MB=y 237CONFIG_HUGETLB_PAGE_SIZE_1MB=y
@@ -249,9 +254,9 @@ CONFIG_MIGRATION=y
249# CONFIG_PHYS_ADDR_T_64BIT is not set 254# CONFIG_PHYS_ADDR_T_64BIT is not set
250CONFIG_ZONE_DMA_FLAG=0 255CONFIG_ZONE_DMA_FLAG=0
251CONFIG_NR_QUICK=2 256CONFIG_NR_QUICK=2
252CONFIG_UNEVICTABLE_LRU=y
253CONFIG_HAVE_MLOCK=y 257CONFIG_HAVE_MLOCK=y
254CONFIG_HAVE_MLOCKED_PAGE_BIT=y 258CONFIG_HAVE_MLOCKED_PAGE_BIT=y
259CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
255 260
256# 261#
257# Cache configuration 262# Cache configuration
@@ -279,9 +284,10 @@ CONFIG_SH_X3PROTO=y
279# 284#
280# Timer and clock configuration 285# Timer and clock configuration
281# 286#
282CONFIG_SH_TMU=y 287CONFIG_SH_TIMER_TMU=y
283CONFIG_SH_TIMER_IRQ=16
284CONFIG_SH_PCLK_FREQ=50000000 288CONFIG_SH_PCLK_FREQ=50000000
289CONFIG_SH_CLK_CPG=y
290CONFIG_SH_CLK_CPG_LEGACY=y
285CONFIG_TICK_ONESHOT=y 291CONFIG_TICK_ONESHOT=y
286CONFIG_NO_HZ=y 292CONFIG_NO_HZ=y
287CONFIG_HIGH_RES_TIMERS=y 293CONFIG_HIGH_RES_TIMERS=y
@@ -339,12 +345,14 @@ CONFIG_NR_CPUS=4
339# CONFIG_PREEMPT_NONE is not set 345# CONFIG_PREEMPT_NONE is not set
340# CONFIG_PREEMPT_VOLUNTARY is not set 346# CONFIG_PREEMPT_VOLUNTARY is not set
341CONFIG_PREEMPT=y 347CONFIG_PREEMPT=y
348# CONFIG_SPARSE_IRQ is not set
342 349
343# 350#
344# Boot options 351# Boot options
345# 352#
346CONFIG_ZERO_PAGE_OFFSET=0x00001000 353CONFIG_ZERO_PAGE_OFFSET=0x00010000
347CONFIG_BOOT_LINK_OFFSET=0x00800000 354CONFIG_BOOT_LINK_OFFSET=0x00800000
355CONFIG_ENTRY_OFFSET=0x00010000
348CONFIG_CMDLINE_BOOL=y 356CONFIG_CMDLINE_BOOL=y
349CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=bios ignore_loglevel" 357CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=bios ignore_loglevel"
350 358
@@ -444,6 +452,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
444# CONFIG_ECONET is not set 452# CONFIG_ECONET is not set
445# CONFIG_WAN_ROUTER is not set 453# CONFIG_WAN_ROUTER is not set
446# CONFIG_PHONET is not set 454# CONFIG_PHONET is not set
455# CONFIG_IEEE802154 is not set
447# CONFIG_NET_SCHED is not set 456# CONFIG_NET_SCHED is not set
448# CONFIG_DCB is not set 457# CONFIG_DCB is not set
449 458
@@ -462,6 +471,7 @@ CONFIG_CAN_BCM=m
462# CAN Device Drivers 471# CAN Device Drivers
463# 472#
464CONFIG_CAN_VCAN=m 473CONFIG_CAN_VCAN=m
474# CONFIG_CAN_DEV is not set
465# CONFIG_CAN_DEBUG_DEVICES is not set 475# CONFIG_CAN_DEBUG_DEVICES is not set
466# CONFIG_IRDA is not set 476# CONFIG_IRDA is not set
467# CONFIG_BT is not set 477# CONFIG_BT is not set
@@ -512,6 +522,7 @@ CONFIG_MISC_DEVICES=y
512# CONFIG_EEPROM_AT24 is not set 522# CONFIG_EEPROM_AT24 is not set
513# CONFIG_EEPROM_AT25 is not set 523# CONFIG_EEPROM_AT25 is not set
514# CONFIG_EEPROM_LEGACY is not set 524# CONFIG_EEPROM_LEGACY is not set
525# CONFIG_EEPROM_MAX6875 is not set
515# CONFIG_EEPROM_93CX6 is not set 526# CONFIG_EEPROM_93CX6 is not set
516CONFIG_HAVE_IDE=y 527CONFIG_HAVE_IDE=y
517# CONFIG_IDE is not set 528# CONFIG_IDE is not set
@@ -535,10 +546,6 @@ CONFIG_BLK_DEV_SD=y
535# CONFIG_BLK_DEV_SR is not set 546# CONFIG_BLK_DEV_SR is not set
536# CONFIG_CHR_DEV_SG is not set 547# CONFIG_CHR_DEV_SG is not set
537# CONFIG_CHR_DEV_SCH is not set 548# CONFIG_CHR_DEV_SCH is not set
538
539#
540# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
541#
542# CONFIG_SCSI_MULTI_LUN is not set 549# CONFIG_SCSI_MULTI_LUN is not set
543# CONFIG_SCSI_CONSTANTS is not set 550# CONFIG_SCSI_CONSTANTS is not set
544# CONFIG_SCSI_LOGGING is not set 551# CONFIG_SCSI_LOGGING is not set
@@ -555,6 +562,7 @@ CONFIG_SCSI_WAIT_SCAN=m
555# CONFIG_SCSI_SRP_ATTRS is not set 562# CONFIG_SCSI_SRP_ATTRS is not set
556CONFIG_SCSI_LOWLEVEL=y 563CONFIG_SCSI_LOWLEVEL=y
557# CONFIG_ISCSI_TCP is not set 564# CONFIG_ISCSI_TCP is not set
565# CONFIG_SCSI_BNX2_ISCSI is not set
558# CONFIG_LIBFC is not set 566# CONFIG_LIBFC is not set
559# CONFIG_LIBFCOE is not set 567# CONFIG_LIBFCOE is not set
560# CONFIG_SCSI_DEBUG is not set 568# CONFIG_SCSI_DEBUG is not set
@@ -568,7 +576,6 @@ CONFIG_ATA_SFF=y
568CONFIG_PATA_PLATFORM=y 576CONFIG_PATA_PLATFORM=y
569# CONFIG_MD is not set 577# CONFIG_MD is not set
570CONFIG_NETDEVICES=y 578CONFIG_NETDEVICES=y
571CONFIG_COMPAT_NET_DEV_OPS=y
572# CONFIG_DUMMY is not set 579# CONFIG_DUMMY is not set
573# CONFIG_BONDING is not set 580# CONFIG_BONDING is not set
574# CONFIG_MACVLAN is not set 581# CONFIG_MACVLAN is not set
@@ -594,6 +601,7 @@ CONFIG_SMC91X=y
594# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 601# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
595# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 602# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
596# CONFIG_B44 is not set 603# CONFIG_B44 is not set
604# CONFIG_KS8842 is not set
597# CONFIG_NETDEV_1000 is not set 605# CONFIG_NETDEV_1000 is not set
598# CONFIG_NETDEV_10000 is not set 606# CONFIG_NETDEV_10000 is not set
599 607
@@ -701,7 +709,6 @@ CONFIG_I2C_HELPER_AUTO=y
701# CONFIG_SENSORS_PCF8574 is not set 709# CONFIG_SENSORS_PCF8574 is not set
702# CONFIG_PCF8575 is not set 710# CONFIG_PCF8575 is not set
703# CONFIG_SENSORS_PCA9539 is not set 711# CONFIG_SENSORS_PCA9539 is not set
704# CONFIG_SENSORS_MAX6875 is not set
705# CONFIG_SENSORS_TSL2550 is not set 712# CONFIG_SENSORS_TSL2550 is not set
706# CONFIG_I2C_DEBUG_CORE is not set 713# CONFIG_I2C_DEBUG_CORE is not set
707# CONFIG_I2C_DEBUG_ALGO is not set 714# CONFIG_I2C_DEBUG_ALGO is not set
@@ -758,22 +765,7 @@ CONFIG_SSB_POSSIBLE=y
758# CONFIG_MFD_WM8350_I2C is not set 765# CONFIG_MFD_WM8350_I2C is not set
759# CONFIG_MFD_PCF50633 is not set 766# CONFIG_MFD_PCF50633 is not set
760# CONFIG_REGULATOR is not set 767# CONFIG_REGULATOR is not set
761 768# CONFIG_MEDIA_SUPPORT is not set
762#
763# Multimedia devices
764#
765
766#
767# Multimedia core support
768#
769# CONFIG_VIDEO_DEV is not set
770# CONFIG_DVB_CORE is not set
771# CONFIG_VIDEO_MEDIA is not set
772
773#
774# Multimedia drivers
775#
776# CONFIG_DAB is not set
777 769
778# 770#
779# Graphics support 771# Graphics support
@@ -885,6 +877,7 @@ CONFIG_USB_GADGET_SELECTED=y
885# CONFIG_USB_GADGET_OMAP is not set 877# CONFIG_USB_GADGET_OMAP is not set
886# CONFIG_USB_GADGET_PXA25X is not set 878# CONFIG_USB_GADGET_PXA25X is not set
887# CONFIG_USB_GADGET_PXA27X is not set 879# CONFIG_USB_GADGET_PXA27X is not set
880# CONFIG_USB_GADGET_S3C_HSOTG is not set
888# CONFIG_USB_GADGET_S3C2410 is not set 881# CONFIG_USB_GADGET_S3C2410 is not set
889# CONFIG_USB_GADGET_IMX is not set 882# CONFIG_USB_GADGET_IMX is not set
890CONFIG_USB_GADGET_M66592=y 883CONFIG_USB_GADGET_M66592=y
@@ -894,9 +887,11 @@ CONFIG_USB_M66592=y
894# CONFIG_USB_GADGET_CI13XXX is not set 887# CONFIG_USB_GADGET_CI13XXX is not set
895# CONFIG_USB_GADGET_NET2280 is not set 888# CONFIG_USB_GADGET_NET2280 is not set
896# CONFIG_USB_GADGET_GOKU is not set 889# CONFIG_USB_GADGET_GOKU is not set
890# CONFIG_USB_GADGET_LANGWELL is not set
897# CONFIG_USB_GADGET_DUMMY_HCD is not set 891# CONFIG_USB_GADGET_DUMMY_HCD is not set
898CONFIG_USB_GADGET_DUALSPEED=y 892CONFIG_USB_GADGET_DUALSPEED=y
899# CONFIG_USB_ZERO is not set 893# CONFIG_USB_ZERO is not set
894# CONFIG_USB_AUDIO is not set
900# CONFIG_USB_ETH is not set 895# CONFIG_USB_ETH is not set
901# CONFIG_USB_GADGETFS is not set 896# CONFIG_USB_GADGETFS is not set
902# CONFIG_USB_FILE_STORAGE is not set 897# CONFIG_USB_FILE_STORAGE is not set
@@ -974,6 +969,7 @@ CONFIG_RTC_INTF_DEV=y
974# on-CPU RTC drivers 969# on-CPU RTC drivers
975# 970#
976CONFIG_RTC_DRV_SH=y 971CONFIG_RTC_DRV_SH=y
972# CONFIG_RTC_DRV_GENERIC is not set
977# CONFIG_DMADEVICES is not set 973# CONFIG_DMADEVICES is not set
978# CONFIG_AUXDISPLAY is not set 974# CONFIG_AUXDISPLAY is not set
979CONFIG_UIO=m 975CONFIG_UIO=m
@@ -981,6 +977,10 @@ CONFIG_UIO=m
981# CONFIG_UIO_PDRV_GENIRQ is not set 977# CONFIG_UIO_PDRV_GENIRQ is not set
982# CONFIG_UIO_SMX is not set 978# CONFIG_UIO_SMX is not set
983# CONFIG_UIO_SERCOS3 is not set 979# CONFIG_UIO_SERCOS3 is not set
980
981#
982# TI VLYNQ
983#
984# CONFIG_STAGING is not set 984# CONFIG_STAGING is not set
985 985
986# 986#
@@ -1001,10 +1001,11 @@ CONFIG_FS_MBCACHE=y
1001# CONFIG_REISERFS_FS is not set 1001# CONFIG_REISERFS_FS is not set
1002# CONFIG_JFS_FS is not set 1002# CONFIG_JFS_FS is not set
1003# CONFIG_FS_POSIX_ACL is not set 1003# CONFIG_FS_POSIX_ACL is not set
1004CONFIG_FILE_LOCKING=y
1005# CONFIG_XFS_FS is not set 1004# CONFIG_XFS_FS is not set
1006# CONFIG_OCFS2_FS is not set 1005# CONFIG_OCFS2_FS is not set
1007# CONFIG_BTRFS_FS is not set 1006# CONFIG_BTRFS_FS is not set
1007CONFIG_FILE_LOCKING=y
1008CONFIG_FSNOTIFY=y
1008CONFIG_DNOTIFY=y 1009CONFIG_DNOTIFY=y
1009CONFIG_INOTIFY=y 1010CONFIG_INOTIFY=y
1010CONFIG_INOTIFY_USER=y 1011CONFIG_INOTIFY_USER=y
@@ -1077,7 +1078,46 @@ CONFIG_NETWORK_FILESYSTEMS=y
1077# 1078#
1078# CONFIG_PARTITION_ADVANCED is not set 1079# CONFIG_PARTITION_ADVANCED is not set
1079CONFIG_MSDOS_PARTITION=y 1080CONFIG_MSDOS_PARTITION=y
1080# CONFIG_NLS is not set 1081CONFIG_NLS=y
1082CONFIG_NLS_DEFAULT="iso8859-1"
1083# CONFIG_NLS_CODEPAGE_437 is not set
1084# CONFIG_NLS_CODEPAGE_737 is not set
1085# CONFIG_NLS_CODEPAGE_775 is not set
1086# CONFIG_NLS_CODEPAGE_850 is not set
1087# CONFIG_NLS_CODEPAGE_852 is not set
1088# CONFIG_NLS_CODEPAGE_855 is not set
1089# CONFIG_NLS_CODEPAGE_857 is not set
1090# CONFIG_NLS_CODEPAGE_860 is not set
1091# CONFIG_NLS_CODEPAGE_861 is not set
1092# CONFIG_NLS_CODEPAGE_862 is not set
1093# CONFIG_NLS_CODEPAGE_863 is not set
1094# CONFIG_NLS_CODEPAGE_864 is not set
1095# CONFIG_NLS_CODEPAGE_865 is not set
1096# CONFIG_NLS_CODEPAGE_866 is not set
1097# CONFIG_NLS_CODEPAGE_869 is not set
1098# CONFIG_NLS_CODEPAGE_936 is not set
1099# CONFIG_NLS_CODEPAGE_950 is not set
1100# CONFIG_NLS_CODEPAGE_932 is not set
1101# CONFIG_NLS_CODEPAGE_949 is not set
1102# CONFIG_NLS_CODEPAGE_874 is not set
1103# CONFIG_NLS_ISO8859_8 is not set
1104# CONFIG_NLS_CODEPAGE_1250 is not set
1105# CONFIG_NLS_CODEPAGE_1251 is not set
1106# CONFIG_NLS_ASCII is not set
1107# CONFIG_NLS_ISO8859_1 is not set
1108# CONFIG_NLS_ISO8859_2 is not set
1109# CONFIG_NLS_ISO8859_3 is not set
1110# CONFIG_NLS_ISO8859_4 is not set
1111# CONFIG_NLS_ISO8859_5 is not set
1112# CONFIG_NLS_ISO8859_6 is not set
1113# CONFIG_NLS_ISO8859_7 is not set
1114# CONFIG_NLS_ISO8859_9 is not set
1115# CONFIG_NLS_ISO8859_13 is not set
1116# CONFIG_NLS_ISO8859_14 is not set
1117# CONFIG_NLS_ISO8859_15 is not set
1118# CONFIG_NLS_KOI8_R is not set
1119# CONFIG_NLS_KOI8_U is not set
1120# CONFIG_NLS_UTF8 is not set
1081# CONFIG_DLM is not set 1121# CONFIG_DLM is not set
1082 1122
1083# 1123#
@@ -1138,25 +1178,25 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1138CONFIG_HAVE_DYNAMIC_FTRACE=y 1178CONFIG_HAVE_DYNAMIC_FTRACE=y
1139CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1179CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1140CONFIG_RING_BUFFER=y 1180CONFIG_RING_BUFFER=y
1181CONFIG_EVENT_TRACING=y
1182CONFIG_CONTEXT_SWITCH_TRACER=y
1141CONFIG_TRACING=y 1183CONFIG_TRACING=y
1142CONFIG_TRACING_SUPPORT=y 1184CONFIG_TRACING_SUPPORT=y
1143 1185CONFIG_FTRACE=y
1144#
1145# Tracers
1146#
1147# CONFIG_FUNCTION_TRACER is not set 1186# CONFIG_FUNCTION_TRACER is not set
1148# CONFIG_IRQSOFF_TRACER is not set 1187# CONFIG_IRQSOFF_TRACER is not set
1149# CONFIG_PREEMPT_TRACER is not set 1188# CONFIG_PREEMPT_TRACER is not set
1150# CONFIG_SCHED_TRACER is not set 1189# CONFIG_SCHED_TRACER is not set
1151# CONFIG_CONTEXT_SWITCH_TRACER is not set 1190# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1152# CONFIG_EVENT_TRACER is not set
1153# CONFIG_BOOT_TRACER is not set 1191# CONFIG_BOOT_TRACER is not set
1154# CONFIG_TRACE_BRANCH_PROFILING is not set 1192CONFIG_BRANCH_PROFILE_NONE=y
1193# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1194# CONFIG_PROFILE_ALL_BRANCHES is not set
1155# CONFIG_STACK_TRACER is not set 1195# CONFIG_STACK_TRACER is not set
1156# CONFIG_KMEMTRACE is not set 1196# CONFIG_KMEMTRACE is not set
1157# CONFIG_WORKQUEUE_TRACER is not set 1197# CONFIG_WORKQUEUE_TRACER is not set
1158# CONFIG_BLK_DEV_IO_TRACE is not set 1198# CONFIG_BLK_DEV_IO_TRACE is not set
1159# CONFIG_FTRACE_STARTUP_TEST is not set 1199# CONFIG_RING_BUFFER_BENCHMARK is not set
1160# CONFIG_DYNAMIC_DEBUG is not set 1200# CONFIG_DYNAMIC_DEBUG is not set
1161# CONFIG_DMA_API_DEBUG is not set 1201# CONFIG_DMA_API_DEBUG is not set
1162# CONFIG_SAMPLES is not set 1202# CONFIG_SAMPLES is not set
@@ -1168,10 +1208,8 @@ CONFIG_EARLY_PRINTK=y
1168# CONFIG_DEBUG_BOOTMEM is not set 1208# CONFIG_DEBUG_BOOTMEM is not set
1169CONFIG_DEBUG_STACKOVERFLOW=y 1209CONFIG_DEBUG_STACKOVERFLOW=y
1170CONFIG_DEBUG_STACK_USAGE=y 1210CONFIG_DEBUG_STACK_USAGE=y
1171# CONFIG_IRQSTACKS is not set
1172CONFIG_DUMP_CODE=y 1211CONFIG_DUMP_CODE=y
1173# CONFIG_SH_NO_BSS_INIT is not set 1212# CONFIG_SH_NO_BSS_INIT is not set
1174# CONFIG_MORE_COMPILE_OPTIONS is not set
1175 1213
1176# 1214#
1177# Security options 1215# Security options
@@ -1285,3 +1323,4 @@ CONFIG_HAS_IOMEM=y
1285CONFIG_HAS_IOPORT=y 1323CONFIG_HAS_IOPORT=y
1286CONFIG_HAS_DMA=y 1324CONFIG_HAS_DMA=y
1287CONFIG_NLATTR=y 1325CONFIG_NLATTR=y
1326CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/snapgear_defconfig b/arch/sh/configs/snapgear_defconfig
index 54a7a3c41f3..ca3c88a8802 100644
--- a/arch/sh/configs/snapgear_defconfig
+++ b/arch/sh/configs/snapgear_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:14:00 2009 4# Thu Jun 18 13:11:58 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -73,7 +74,6 @@ CONFIG_UID16=y
73# CONFIG_SYSCTL_SYSCALL is not set 74# CONFIG_SYSCTL_SYSCALL is not set
74CONFIG_KALLSYMS=y 75CONFIG_KALLSYMS=y
75# CONFIG_KALLSYMS_EXTRA_PASS is not set 76# CONFIG_KALLSYMS_EXTRA_PASS is not set
76# CONFIG_STRIP_ASM_SYMS is not set
77# CONFIG_HOTPLUG is not set 77# CONFIG_HOTPLUG is not set
78CONFIG_PRINTK=y 78CONFIG_PRINTK=y
79CONFIG_BUG=y 79CONFIG_BUG=y
@@ -86,8 +86,13 @@ CONFIG_TIMERFD=y
86CONFIG_EVENTFD=y 86CONFIG_EVENTFD=y
87CONFIG_SHMEM=y 87CONFIG_SHMEM=y
88CONFIG_AIO=y 88CONFIG_AIO=y
89
90#
91# Performance Counters
92#
89CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
90CONFIG_PCI_QUIRKS=y 94CONFIG_PCI_QUIRKS=y
95# CONFIG_STRIP_ASM_SYMS is not set
91CONFIG_COMPAT_BRK=y 96CONFIG_COMPAT_BRK=y
92CONFIG_SLAB=y 97CONFIG_SLAB=y
93# CONFIG_SLUB is not set 98# CONFIG_SLUB is not set
@@ -171,6 +176,7 @@ CONFIG_CPU_SUBTYPE_SH7751R=y
171CONFIG_QUICKLIST=y 176CONFIG_QUICKLIST=y
172CONFIG_MMU=y 177CONFIG_MMU=y
173CONFIG_PAGE_OFFSET=0x80000000 178CONFIG_PAGE_OFFSET=0x80000000
179CONFIG_FORCE_MAX_ZONEORDER=11
174CONFIG_MEMORY_START=0x08000000 180CONFIG_MEMORY_START=0x08000000
175CONFIG_MEMORY_SIZE=0x01000000 181CONFIG_MEMORY_SIZE=0x01000000
176CONFIG_29BIT=y 182CONFIG_29BIT=y
@@ -185,7 +191,6 @@ CONFIG_PAGE_SIZE_4KB=y
185# CONFIG_PAGE_SIZE_8KB is not set 191# CONFIG_PAGE_SIZE_8KB is not set
186# CONFIG_PAGE_SIZE_16KB is not set 192# CONFIG_PAGE_SIZE_16KB is not set
187# CONFIG_PAGE_SIZE_64KB is not set 193# CONFIG_PAGE_SIZE_64KB is not set
188CONFIG_ENTRY_OFFSET=0x00001000
189CONFIG_SELECT_MEMORY_MODEL=y 194CONFIG_SELECT_MEMORY_MODEL=y
190CONFIG_FLATMEM_MANUAL=y 195CONFIG_FLATMEM_MANUAL=y
191# CONFIG_DISCONTIGMEM_MANUAL is not set 196# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -198,9 +203,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
198# CONFIG_PHYS_ADDR_T_64BIT is not set 203# CONFIG_PHYS_ADDR_T_64BIT is not set
199CONFIG_ZONE_DMA_FLAG=0 204CONFIG_ZONE_DMA_FLAG=0
200CONFIG_NR_QUICK=2 205CONFIG_NR_QUICK=2
201CONFIG_UNEVICTABLE_LRU=y
202CONFIG_HAVE_MLOCK=y 206CONFIG_HAVE_MLOCK=y
203CONFIG_HAVE_MLOCKED_PAGE_BIT=y 207CONFIG_HAVE_MLOCKED_PAGE_BIT=y
208CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
204 209
205# 210#
206# Cache configuration 211# Cache configuration
@@ -219,7 +224,6 @@ CONFIG_SH_FPU=y
219CONFIG_CPU_HAS_INTEVT=y 224CONFIG_CPU_HAS_INTEVT=y
220CONFIG_CPU_HAS_IPR_IRQ=y 225CONFIG_CPU_HAS_IPR_IRQ=y
221CONFIG_CPU_HAS_SR_RB=y 226CONFIG_CPU_HAS_SR_RB=y
222CONFIG_CPU_HAS_PTEA=y
223CONFIG_CPU_HAS_FPU=y 227CONFIG_CPU_HAS_FPU=y
224 228
225# 229#
@@ -235,9 +239,10 @@ CONFIG_SH_SECUREEDGE5410=y
235# 239#
236# Timer and clock configuration 240# Timer and clock configuration
237# 241#
238CONFIG_SH_TMU=y 242CONFIG_SH_TIMER_TMU=y
239CONFIG_SH_TIMER_IRQ=16
240CONFIG_SH_PCLK_FREQ=60000000 243CONFIG_SH_PCLK_FREQ=60000000
244CONFIG_SH_CLK_CPG=y
245CONFIG_SH_CLK_CPG_LEGACY=y
241# CONFIG_NO_HZ is not set 246# CONFIG_NO_HZ is not set
242# CONFIG_HIGH_RES_TIMERS is not set 247# CONFIG_HIGH_RES_TIMERS is not set
243CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 248CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -283,12 +288,14 @@ CONFIG_PREEMPT_NONE=y
283# CONFIG_PREEMPT is not set 288# CONFIG_PREEMPT is not set
284CONFIG_GUSA=y 289CONFIG_GUSA=y
285# CONFIG_GUSA_RB is not set 290# CONFIG_GUSA_RB is not set
291# CONFIG_SPARSE_IRQ is not set
286 292
287# 293#
288# Boot options 294# Boot options
289# 295#
290CONFIG_ZERO_PAGE_OFFSET=0x00001000 296CONFIG_ZERO_PAGE_OFFSET=0x00001000
291CONFIG_BOOT_LINK_OFFSET=0x00800000 297CONFIG_BOOT_LINK_OFFSET=0x00800000
298CONFIG_ENTRY_OFFSET=0x00001000
292# CONFIG_UBC_WAKEUP is not set 299# CONFIG_UBC_WAKEUP is not set
293# CONFIG_CMDLINE_BOOL is not set 300# CONFIG_CMDLINE_BOOL is not set
294 301
@@ -366,6 +373,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
366# CONFIG_ECONET is not set 373# CONFIG_ECONET is not set
367# CONFIG_WAN_ROUTER is not set 374# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set 375# CONFIG_PHONET is not set
376# CONFIG_IEEE802154 is not set
369# CONFIG_NET_SCHED is not set 377# CONFIG_NET_SCHED is not set
370# CONFIG_DCB is not set 378# CONFIG_DCB is not set
371 379
@@ -383,7 +391,11 @@ CONFIG_WIRELESS=y
383# CONFIG_WIRELESS_OLD_REGULATORY is not set 391# CONFIG_WIRELESS_OLD_REGULATORY is not set
384# CONFIG_WIRELESS_EXT is not set 392# CONFIG_WIRELESS_EXT is not set
385# CONFIG_LIB80211 is not set 393# CONFIG_LIB80211 is not set
386# CONFIG_MAC80211 is not set 394
395#
396# CFG80211 needs to be enabled for MAC80211
397#
398CONFIG_MAC80211_DEFAULT_PS_VALUE=0
387# CONFIG_WIMAX is not set 399# CONFIG_WIMAX is not set
388# CONFIG_RFKILL is not set 400# CONFIG_RFKILL is not set
389# CONFIG_NET_9P is not set 401# CONFIG_NET_9P is not set
@@ -528,7 +540,6 @@ CONFIG_HAVE_IDE=y
528# CONFIG_IEEE1394 is not set 540# CONFIG_IEEE1394 is not set
529# CONFIG_I2O is not set 541# CONFIG_I2O is not set
530CONFIG_NETDEVICES=y 542CONFIG_NETDEVICES=y
531CONFIG_COMPAT_NET_DEV_OPS=y
532# CONFIG_DUMMY is not set 543# CONFIG_DUMMY is not set
533# CONFIG_BONDING is not set 544# CONFIG_BONDING is not set
534# CONFIG_MACVLAN is not set 545# CONFIG_MACVLAN is not set
@@ -581,6 +592,7 @@ CONFIG_8139TOO_PIO=y
581# CONFIG_SMSC9420 is not set 592# CONFIG_SMSC9420 is not set
582# CONFIG_SUNDANCE is not set 593# CONFIG_SUNDANCE is not set
583# CONFIG_TLAN is not set 594# CONFIG_TLAN is not set
595# CONFIG_KS8842 is not set
584# CONFIG_VIA_RHINE is not set 596# CONFIG_VIA_RHINE is not set
585# CONFIG_SC92031 is not set 597# CONFIG_SC92031 is not set
586# CONFIG_ATL2 is not set 598# CONFIG_ATL2 is not set
@@ -695,22 +707,7 @@ CONFIG_SSB_POSSIBLE=y
695# CONFIG_HTC_PASIC3 is not set 707# CONFIG_HTC_PASIC3 is not set
696# CONFIG_MFD_TMIO is not set 708# CONFIG_MFD_TMIO is not set
697# CONFIG_REGULATOR is not set 709# CONFIG_REGULATOR is not set
698 710# CONFIG_MEDIA_SUPPORT is not set
699#
700# Multimedia devices
701#
702
703#
704# Multimedia core support
705#
706# CONFIG_VIDEO_DEV is not set
707# CONFIG_DVB_CORE is not set
708# CONFIG_VIDEO_MEDIA is not set
709
710#
711# Multimedia drivers
712#
713# CONFIG_DAB is not set
714 711
715# 712#
716# Graphics support 713# Graphics support
@@ -734,10 +731,15 @@ CONFIG_SSB_POSSIBLE=y
734# CONFIG_NEW_LEDS is not set 731# CONFIG_NEW_LEDS is not set
735# CONFIG_ACCESSIBILITY is not set 732# CONFIG_ACCESSIBILITY is not set
736# CONFIG_INFINIBAND is not set 733# CONFIG_INFINIBAND is not set
734CONFIG_RTC_LIB=y
737# CONFIG_RTC_CLASS is not set 735# CONFIG_RTC_CLASS is not set
738# CONFIG_DMADEVICES is not set 736# CONFIG_DMADEVICES is not set
739# CONFIG_AUXDISPLAY is not set 737# CONFIG_AUXDISPLAY is not set
740# CONFIG_UIO is not set 738# CONFIG_UIO is not set
739
740#
741# TI VLYNQ
742#
741# CONFIG_STAGING is not set 743# CONFIG_STAGING is not set
742 744
743# 745#
@@ -751,12 +753,14 @@ CONFIG_EXT2_FS=y
751# CONFIG_REISERFS_FS is not set 753# CONFIG_REISERFS_FS is not set
752# CONFIG_JFS_FS is not set 754# CONFIG_JFS_FS is not set
753# CONFIG_FS_POSIX_ACL is not set 755# CONFIG_FS_POSIX_ACL is not set
754CONFIG_FILE_LOCKING=y
755# CONFIG_XFS_FS is not set 756# CONFIG_XFS_FS is not set
756# CONFIG_OCFS2_FS is not set 757# CONFIG_OCFS2_FS is not set
757# CONFIG_BTRFS_FS is not set 758# CONFIG_BTRFS_FS is not set
759CONFIG_FILE_LOCKING=y
760CONFIG_FSNOTIFY=y
758# CONFIG_DNOTIFY is not set 761# CONFIG_DNOTIFY is not set
759# CONFIG_INOTIFY is not set 762# CONFIG_INOTIFY is not set
763CONFIG_INOTIFY_USER=y
760# CONFIG_QUOTA is not set 764# CONFIG_QUOTA is not set
761# CONFIG_AUTOFS_FS is not set 765# CONFIG_AUTOFS_FS is not set
762# CONFIG_AUTOFS4_FS is not set 766# CONFIG_AUTOFS4_FS is not set
@@ -855,27 +859,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
855CONFIG_HAVE_DYNAMIC_FTRACE=y 859CONFIG_HAVE_DYNAMIC_FTRACE=y
856CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 860CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
857CONFIG_TRACING_SUPPORT=y 861CONFIG_TRACING_SUPPORT=y
858 862# CONFIG_FTRACE is not set
859#
860# Tracers
861#
862# CONFIG_FUNCTION_TRACER is not set
863# CONFIG_IRQSOFF_TRACER is not set
864# CONFIG_SCHED_TRACER is not set
865# CONFIG_CONTEXT_SWITCH_TRACER is not set
866# CONFIG_EVENT_TRACER is not set
867# CONFIG_BOOT_TRACER is not set
868# CONFIG_TRACE_BRANCH_PROFILING is not set
869# CONFIG_STACK_TRACER is not set
870# CONFIG_KMEMTRACE is not set
871# CONFIG_WORKQUEUE_TRACER is not set
872# CONFIG_BLK_DEV_IO_TRACE is not set
873# CONFIG_DMA_API_DEBUG is not set 863# CONFIG_DMA_API_DEBUG is not set
874# CONFIG_SAMPLES is not set 864# CONFIG_SAMPLES is not set
875CONFIG_HAVE_ARCH_KGDB=y 865CONFIG_HAVE_ARCH_KGDB=y
876# CONFIG_SH_STANDARD_BIOS is not set 866# CONFIG_SH_STANDARD_BIOS is not set
877# CONFIG_EARLY_SCIF_CONSOLE is not set 867# CONFIG_EARLY_SCIF_CONSOLE is not set
878# CONFIG_MORE_COMPILE_OPTIONS is not set
879 868
880# 869#
881# Security options 870# Security options
@@ -905,3 +894,4 @@ CONFIG_HAS_IOMEM=y
905CONFIG_HAS_IOPORT=y 894CONFIG_HAS_IOPORT=y
906CONFIG_HAS_DMA=y 895CONFIG_HAS_DMA=y
907CONFIG_NLATTR=y 896CONFIG_NLATTR=y
897CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/systemh_defconfig b/arch/sh/configs/systemh_defconfig
index dbe7e546f0b..5d970263c09 100644
--- a/arch/sh/configs/systemh_defconfig
+++ b/arch/sh/configs/systemh_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:14:33 2009 4# Thu Jun 18 13:12:28 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -19,6 +19,7 @@ CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 19CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_TMU=y
22CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 24CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 25CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -70,7 +71,6 @@ CONFIG_UID16=y
70# CONFIG_SYSCTL_SYSCALL is not set 71# CONFIG_SYSCTL_SYSCALL is not set
71CONFIG_KALLSYMS=y 72CONFIG_KALLSYMS=y
72# CONFIG_KALLSYMS_EXTRA_PASS is not set 73# CONFIG_KALLSYMS_EXTRA_PASS is not set
73# CONFIG_STRIP_ASM_SYMS is not set
74# CONFIG_HOTPLUG is not set 74# CONFIG_HOTPLUG is not set
75CONFIG_PRINTK=y 75CONFIG_PRINTK=y
76CONFIG_BUG=y 76CONFIG_BUG=y
@@ -83,7 +83,12 @@ CONFIG_TIMERFD=y
83CONFIG_EVENTFD=y 83CONFIG_EVENTFD=y
84CONFIG_SHMEM=y 84CONFIG_SHMEM=y
85CONFIG_AIO=y 85CONFIG_AIO=y
86
87#
88# Performance Counters
89#
86CONFIG_VM_EVENT_COUNTERS=y 90CONFIG_VM_EVENT_COUNTERS=y
91# CONFIG_STRIP_ASM_SYMS is not set
87CONFIG_COMPAT_BRK=y 92CONFIG_COMPAT_BRK=y
88CONFIG_SLAB=y 93CONFIG_SLAB=y
89# CONFIG_SLUB is not set 94# CONFIG_SLUB is not set
@@ -173,6 +178,7 @@ CONFIG_CPU_SUBTYPE_SH7751R=y
173CONFIG_QUICKLIST=y 178CONFIG_QUICKLIST=y
174CONFIG_MMU=y 179CONFIG_MMU=y
175CONFIG_PAGE_OFFSET=0x80000000 180CONFIG_PAGE_OFFSET=0x80000000
181CONFIG_FORCE_MAX_ZONEORDER=11
176CONFIG_MEMORY_START=0x0c000000 182CONFIG_MEMORY_START=0x0c000000
177CONFIG_MEMORY_SIZE=0x00400000 183CONFIG_MEMORY_SIZE=0x00400000
178CONFIG_29BIT=y 184CONFIG_29BIT=y
@@ -187,7 +193,6 @@ CONFIG_PAGE_SIZE_4KB=y
187# CONFIG_PAGE_SIZE_8KB is not set 193# CONFIG_PAGE_SIZE_8KB is not set
188# CONFIG_PAGE_SIZE_16KB is not set 194# CONFIG_PAGE_SIZE_16KB is not set
189# CONFIG_PAGE_SIZE_64KB is not set 195# CONFIG_PAGE_SIZE_64KB is not set
190CONFIG_ENTRY_OFFSET=0x00001000
191CONFIG_SELECT_MEMORY_MODEL=y 196CONFIG_SELECT_MEMORY_MODEL=y
192CONFIG_FLATMEM_MANUAL=y 197CONFIG_FLATMEM_MANUAL=y
193# CONFIG_DISCONTIGMEM_MANUAL is not set 198# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -200,9 +205,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
200# CONFIG_PHYS_ADDR_T_64BIT is not set 205# CONFIG_PHYS_ADDR_T_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=0 206CONFIG_ZONE_DMA_FLAG=0
202CONFIG_NR_QUICK=2 207CONFIG_NR_QUICK=2
203CONFIG_UNEVICTABLE_LRU=y
204CONFIG_HAVE_MLOCK=y 208CONFIG_HAVE_MLOCK=y
205CONFIG_HAVE_MLOCKED_PAGE_BIT=y 209CONFIG_HAVE_MLOCKED_PAGE_BIT=y
210CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
206 211
207# 212#
208# Cache configuration 213# Cache configuration
@@ -220,7 +225,6 @@ CONFIG_SH_FPU=y
220# CONFIG_SH_STORE_QUEUES is not set 225# CONFIG_SH_STORE_QUEUES is not set
221CONFIG_CPU_HAS_INTEVT=y 226CONFIG_CPU_HAS_INTEVT=y
222CONFIG_CPU_HAS_SR_RB=y 227CONFIG_CPU_HAS_SR_RB=y
223CONFIG_CPU_HAS_PTEA=y
224CONFIG_CPU_HAS_FPU=y 228CONFIG_CPU_HAS_FPU=y
225 229
226# 230#
@@ -236,9 +240,10 @@ CONFIG_SH_7751_SYSTEMH=y
236# 240#
237# Timer and clock configuration 241# Timer and clock configuration
238# 242#
239CONFIG_SH_TMU=y 243CONFIG_SH_TIMER_TMU=y
240CONFIG_SH_TIMER_IRQ=16
241CONFIG_SH_PCLK_FREQ=60000000 244CONFIG_SH_PCLK_FREQ=60000000
245CONFIG_SH_CLK_CPG=y
246CONFIG_SH_CLK_CPG_LEGACY=y
242# CONFIG_NO_HZ is not set 247# CONFIG_NO_HZ is not set
243# CONFIG_HIGH_RES_TIMERS is not set 248# CONFIG_HIGH_RES_TIMERS is not set
244CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 249CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -280,12 +285,14 @@ CONFIG_HZ=250
280CONFIG_PREEMPT=y 285CONFIG_PREEMPT=y
281CONFIG_GUSA=y 286CONFIG_GUSA=y
282# CONFIG_GUSA_RB is not set 287# CONFIG_GUSA_RB is not set
288# CONFIG_SPARSE_IRQ is not set
283 289
284# 290#
285# Boot options 291# Boot options
286# 292#
287CONFIG_ZERO_PAGE_OFFSET=0x00001000 293CONFIG_ZERO_PAGE_OFFSET=0x00001000
288CONFIG_BOOT_LINK_OFFSET=0x00800000 294CONFIG_BOOT_LINK_OFFSET=0x00800000
295CONFIG_ENTRY_OFFSET=0x00001000
289# CONFIG_UBC_WAKEUP is not set 296# CONFIG_UBC_WAKEUP is not set
290# CONFIG_CMDLINE_BOOL is not set 297# CONFIG_CMDLINE_BOOL is not set
291 298
@@ -428,21 +435,7 @@ CONFIG_SSB_POSSIBLE=y
428# CONFIG_HTC_PASIC3 is not set 435# CONFIG_HTC_PASIC3 is not set
429# CONFIG_MFD_TMIO is not set 436# CONFIG_MFD_TMIO is not set
430# CONFIG_REGULATOR is not set 437# CONFIG_REGULATOR is not set
431 438# CONFIG_MEDIA_SUPPORT is not set
432#
433# Multimedia devices
434#
435
436#
437# Multimedia core support
438#
439# CONFIG_VIDEO_DEV is not set
440# CONFIG_VIDEO_MEDIA is not set
441
442#
443# Multimedia drivers
444#
445# CONFIG_DAB is not set
446 439
447# 440#
448# Graphics support 441# Graphics support
@@ -481,10 +474,15 @@ CONFIG_USB_ARCH_HAS_HCD=y
481# CONFIG_MEMSTICK is not set 474# CONFIG_MEMSTICK is not set
482# CONFIG_NEW_LEDS is not set 475# CONFIG_NEW_LEDS is not set
483# CONFIG_ACCESSIBILITY is not set 476# CONFIG_ACCESSIBILITY is not set
477CONFIG_RTC_LIB=y
484# CONFIG_RTC_CLASS is not set 478# CONFIG_RTC_CLASS is not set
485# CONFIG_DMADEVICES is not set 479# CONFIG_DMADEVICES is not set
486# CONFIG_AUXDISPLAY is not set 480# CONFIG_AUXDISPLAY is not set
487# CONFIG_UIO is not set 481# CONFIG_UIO is not set
482
483#
484# TI VLYNQ
485#
488# CONFIG_STAGING is not set 486# CONFIG_STAGING is not set
489 487
490# 488#
@@ -496,9 +494,10 @@ CONFIG_USB_ARCH_HAS_HCD=y
496# CONFIG_REISERFS_FS is not set 494# CONFIG_REISERFS_FS is not set
497# CONFIG_JFS_FS is not set 495# CONFIG_JFS_FS is not set
498# CONFIG_FS_POSIX_ACL is not set 496# CONFIG_FS_POSIX_ACL is not set
499CONFIG_FILE_LOCKING=y
500# CONFIG_XFS_FS is not set 497# CONFIG_XFS_FS is not set
501# CONFIG_BTRFS_FS is not set 498# CONFIG_BTRFS_FS is not set
499CONFIG_FILE_LOCKING=y
500CONFIG_FSNOTIFY=y
502CONFIG_DNOTIFY=y 501CONFIG_DNOTIFY=y
503CONFIG_INOTIFY=y 502CONFIG_INOTIFY=y
504CONFIG_INOTIFY_USER=y 503CONFIG_INOTIFY_USER=y
@@ -590,28 +589,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
590CONFIG_HAVE_DYNAMIC_FTRACE=y 589CONFIG_HAVE_DYNAMIC_FTRACE=y
591CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 590CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
592CONFIG_TRACING_SUPPORT=y 591CONFIG_TRACING_SUPPORT=y
593 592# CONFIG_FTRACE is not set
594#
595# Tracers
596#
597# CONFIG_FUNCTION_TRACER is not set
598# CONFIG_IRQSOFF_TRACER is not set
599# CONFIG_PREEMPT_TRACER is not set
600# CONFIG_SCHED_TRACER is not set
601# CONFIG_CONTEXT_SWITCH_TRACER is not set
602# CONFIG_EVENT_TRACER is not set
603# CONFIG_BOOT_TRACER is not set
604# CONFIG_TRACE_BRANCH_PROFILING is not set
605# CONFIG_STACK_TRACER is not set
606# CONFIG_KMEMTRACE is not set
607# CONFIG_WORKQUEUE_TRACER is not set
608# CONFIG_BLK_DEV_IO_TRACE is not set
609# CONFIG_DMA_API_DEBUG is not set 593# CONFIG_DMA_API_DEBUG is not set
610# CONFIG_SAMPLES is not set 594# CONFIG_SAMPLES is not set
611CONFIG_HAVE_ARCH_KGDB=y 595CONFIG_HAVE_ARCH_KGDB=y
612# CONFIG_SH_STANDARD_BIOS is not set 596# CONFIG_SH_STANDARD_BIOS is not set
613# CONFIG_EARLY_SCIF_CONSOLE is not set 597# CONFIG_EARLY_SCIF_CONSOLE is not set
614# CONFIG_MORE_COMPILE_OPTIONS is not set
615 598
616# 599#
617# Security options 600# Security options
@@ -640,3 +623,4 @@ CONFIG_DECOMPRESS_GZIP=y
640CONFIG_HAS_IOMEM=y 623CONFIG_HAS_IOMEM=y
641CONFIG_HAS_IOPORT=y 624CONFIG_HAS_IOPORT=y
642CONFIG_HAS_DMA=y 625CONFIG_HAS_DMA=y
626CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig
index 8ca94ef7427..7ad080e820c 100644
--- a/arch/sh/configs/titan_defconfig
+++ b/arch/sh/configs/titan_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:14:55 2009 4# Thu Jun 18 13:12:54 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 24CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 25CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 26CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -77,7 +78,6 @@ CONFIG_UID16=y
77CONFIG_KALLSYMS=y 78CONFIG_KALLSYMS=y
78# CONFIG_KALLSYMS_ALL is not set 79# CONFIG_KALLSYMS_ALL is not set
79# CONFIG_KALLSYMS_EXTRA_PASS is not set 80# CONFIG_KALLSYMS_EXTRA_PASS is not set
80# CONFIG_STRIP_ASM_SYMS is not set
81CONFIG_HOTPLUG=y 81CONFIG_HOTPLUG=y
82CONFIG_PRINTK=y 82CONFIG_PRINTK=y
83CONFIG_BUG=y 83CONFIG_BUG=y
@@ -90,8 +90,13 @@ CONFIG_TIMERFD=y
90CONFIG_EVENTFD=y 90CONFIG_EVENTFD=y
91CONFIG_SHMEM=y 91CONFIG_SHMEM=y
92CONFIG_AIO=y 92CONFIG_AIO=y
93
94#
95# Performance Counters
96#
93CONFIG_VM_EVENT_COUNTERS=y 97CONFIG_VM_EVENT_COUNTERS=y
94CONFIG_PCI_QUIRKS=y 98CONFIG_PCI_QUIRKS=y
99# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_COMPAT_BRK=y 100CONFIG_COMPAT_BRK=y
96CONFIG_SLAB=y 101CONFIG_SLAB=y
97# CONFIG_SLUB is not set 102# CONFIG_SLUB is not set
@@ -181,6 +186,7 @@ CONFIG_CPU_SUBTYPE_SH7751R=y
181CONFIG_QUICKLIST=y 186CONFIG_QUICKLIST=y
182CONFIG_MMU=y 187CONFIG_MMU=y
183CONFIG_PAGE_OFFSET=0x80000000 188CONFIG_PAGE_OFFSET=0x80000000
189CONFIG_FORCE_MAX_ZONEORDER=11
184CONFIG_MEMORY_START=0x08030000 190CONFIG_MEMORY_START=0x08030000
185CONFIG_MEMORY_SIZE=0x7fd0000 191CONFIG_MEMORY_SIZE=0x7fd0000
186CONFIG_29BIT=y 192CONFIG_29BIT=y
@@ -195,7 +201,6 @@ CONFIG_PAGE_SIZE_4KB=y
195# CONFIG_PAGE_SIZE_8KB is not set 201# CONFIG_PAGE_SIZE_8KB is not set
196# CONFIG_PAGE_SIZE_16KB is not set 202# CONFIG_PAGE_SIZE_16KB is not set
197# CONFIG_PAGE_SIZE_64KB is not set 203# CONFIG_PAGE_SIZE_64KB is not set
198CONFIG_ENTRY_OFFSET=0x00001000
199CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
200CONFIG_FLATMEM_MANUAL=y 205CONFIG_FLATMEM_MANUAL=y
201# CONFIG_DISCONTIGMEM_MANUAL is not set 206# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -208,9 +213,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
208# CONFIG_PHYS_ADDR_T_64BIT is not set 213# CONFIG_PHYS_ADDR_T_64BIT is not set
209CONFIG_ZONE_DMA_FLAG=0 214CONFIG_ZONE_DMA_FLAG=0
210CONFIG_NR_QUICK=2 215CONFIG_NR_QUICK=2
211CONFIG_UNEVICTABLE_LRU=y
212CONFIG_HAVE_MLOCK=y 216CONFIG_HAVE_MLOCK=y
213CONFIG_HAVE_MLOCKED_PAGE_BIT=y 217CONFIG_HAVE_MLOCKED_PAGE_BIT=y
218CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
214 219
215# 220#
216# Cache configuration 221# Cache configuration
@@ -229,7 +234,6 @@ CONFIG_SH_FPU=y
229CONFIG_CPU_HAS_INTEVT=y 234CONFIG_CPU_HAS_INTEVT=y
230CONFIG_CPU_HAS_IPR_IRQ=y 235CONFIG_CPU_HAS_IPR_IRQ=y
231CONFIG_CPU_HAS_SR_RB=y 236CONFIG_CPU_HAS_SR_RB=y
232CONFIG_CPU_HAS_PTEA=y
233CONFIG_CPU_HAS_FPU=y 237CONFIG_CPU_HAS_FPU=y
234 238
235# 239#
@@ -245,9 +249,10 @@ CONFIG_SH_TITAN=y
245# 249#
246# Timer and clock configuration 250# Timer and clock configuration
247# 251#
248CONFIG_SH_TMU=y 252CONFIG_SH_TIMER_TMU=y
249CONFIG_SH_TIMER_IRQ=16
250CONFIG_SH_PCLK_FREQ=30000000 253CONFIG_SH_PCLK_FREQ=30000000
254CONFIG_SH_CLK_CPG=y
255CONFIG_SH_CLK_CPG_LEGACY=y
251# CONFIG_NO_HZ is not set 256# CONFIG_NO_HZ is not set
252# CONFIG_HIGH_RES_TIMERS is not set 257# CONFIG_HIGH_RES_TIMERS is not set
253CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 258CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -293,12 +298,14 @@ CONFIG_PREEMPT_VOLUNTARY=y
293# CONFIG_PREEMPT is not set 298# CONFIG_PREEMPT is not set
294CONFIG_GUSA=y 299CONFIG_GUSA=y
295# CONFIG_GUSA_RB is not set 300# CONFIG_GUSA_RB is not set
301# CONFIG_SPARSE_IRQ is not set
296 302
297# 303#
298# Boot options 304# Boot options
299# 305#
300CONFIG_ZERO_PAGE_OFFSET=0x00001000 306CONFIG_ZERO_PAGE_OFFSET=0x00001000
301CONFIG_BOOT_LINK_OFFSET=0x009e0000 307CONFIG_BOOT_LINK_OFFSET=0x009e0000
308CONFIG_ENTRY_OFFSET=0x00001000
302# CONFIG_UBC_WAKEUP is not set 309# CONFIG_UBC_WAKEUP is not set
303CONFIG_CMDLINE_BOOL=y 310CONFIG_CMDLINE_BOOL=y
304CONFIG_CMDLINE="console=ttySC1,38400N81 root=/dev/nfs ip=:::::eth1:autoconf rw" 311CONFIG_CMDLINE="console=ttySC1,38400N81 root=/dev/nfs ip=:::::eth1:autoconf rw"
@@ -417,6 +424,7 @@ CONFIG_NETFILTER_NETLINK=m
417CONFIG_NETFILTER_NETLINK_QUEUE=m 424CONFIG_NETFILTER_NETLINK_QUEUE=m
418CONFIG_NETFILTER_NETLINK_LOG=m 425CONFIG_NETFILTER_NETLINK_LOG=m
419# CONFIG_NF_CONNTRACK is not set 426# CONFIG_NF_CONNTRACK is not set
427# CONFIG_NETFILTER_TPROXY is not set
420CONFIG_NETFILTER_XTABLES=m 428CONFIG_NETFILTER_XTABLES=m
421CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 429CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
422# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 430# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
@@ -454,6 +462,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
454CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 462CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
455# CONFIG_NETFILTER_XT_MATCH_TIME is not set 463# CONFIG_NETFILTER_XT_MATCH_TIME is not set
456# CONFIG_NETFILTER_XT_MATCH_U32 is not set 464# CONFIG_NETFILTER_XT_MATCH_U32 is not set
465# CONFIG_NETFILTER_XT_MATCH_OSF is not set
457# CONFIG_IP_VS is not set 466# CONFIG_IP_VS is not set
458 467
459# 468#
@@ -517,6 +526,7 @@ CONFIG_LLC=y
517# CONFIG_ECONET is not set 526# CONFIG_ECONET is not set
518# CONFIG_WAN_ROUTER is not set 527# CONFIG_WAN_ROUTER is not set
519# CONFIG_PHONET is not set 528# CONFIG_PHONET is not set
529# CONFIG_IEEE802154 is not set
520CONFIG_NET_SCHED=y 530CONFIG_NET_SCHED=y
521 531
522# 532#
@@ -589,7 +599,11 @@ CONFIG_WIRELESS=y
589CONFIG_WIRELESS_EXT=y 599CONFIG_WIRELESS_EXT=y
590CONFIG_WIRELESS_EXT_SYSFS=y 600CONFIG_WIRELESS_EXT_SYSFS=y
591# CONFIG_LIB80211 is not set 601# CONFIG_LIB80211 is not set
592# CONFIG_MAC80211 is not set 602
603#
604# CFG80211 needs to be enabled for MAC80211
605#
606CONFIG_MAC80211_DEFAULT_PS_VALUE=0
593# CONFIG_WIMAX is not set 607# CONFIG_WIMAX is not set
594# CONFIG_RFKILL is not set 608# CONFIG_RFKILL is not set
595# CONFIG_NET_9P is not set 609# CONFIG_NET_9P is not set
@@ -731,6 +745,7 @@ CONFIG_MISC_DEVICES=y
731# EEPROM support 745# EEPROM support
732# 746#
733# CONFIG_EEPROM_93CX6 is not set 747# CONFIG_EEPROM_93CX6 is not set
748# CONFIG_CB710_CORE is not set
734CONFIG_HAVE_IDE=y 749CONFIG_HAVE_IDE=y
735# CONFIG_IDE is not set 750# CONFIG_IDE is not set
736 751
@@ -754,10 +769,6 @@ CONFIG_BLK_DEV_SR=m
754# CONFIG_BLK_DEV_SR_VENDOR is not set 769# CONFIG_BLK_DEV_SR_VENDOR is not set
755CONFIG_CHR_DEV_SG=m 770CONFIG_CHR_DEV_SG=m
756# CONFIG_CHR_DEV_SCH is not set 771# CONFIG_CHR_DEV_SCH is not set
757
758#
759# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
760#
761# CONFIG_SCSI_MULTI_LUN is not set 772# CONFIG_SCSI_MULTI_LUN is not set
762# CONFIG_SCSI_CONSTANTS is not set 773# CONFIG_SCSI_CONSTANTS is not set
763# CONFIG_SCSI_LOGGING is not set 774# CONFIG_SCSI_LOGGING is not set
@@ -775,6 +786,7 @@ CONFIG_SCSI_WAIT_SCAN=m
775CONFIG_SCSI_LOWLEVEL=y 786CONFIG_SCSI_LOWLEVEL=y
776# CONFIG_ISCSI_TCP is not set 787# CONFIG_ISCSI_TCP is not set
777# CONFIG_SCSI_CXGB3_ISCSI is not set 788# CONFIG_SCSI_CXGB3_ISCSI is not set
789# CONFIG_SCSI_BNX2_ISCSI is not set
778# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 790# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
779# CONFIG_SCSI_3W_9XXX is not set 791# CONFIG_SCSI_3W_9XXX is not set
780# CONFIG_SCSI_ACARD is not set 792# CONFIG_SCSI_ACARD is not set
@@ -783,6 +795,7 @@ CONFIG_SCSI_LOWLEVEL=y
783# CONFIG_SCSI_AIC7XXX_OLD is not set 795# CONFIG_SCSI_AIC7XXX_OLD is not set
784# CONFIG_SCSI_AIC79XX is not set 796# CONFIG_SCSI_AIC79XX is not set
785# CONFIG_SCSI_AIC94XX is not set 797# CONFIG_SCSI_AIC94XX is not set
798# CONFIG_SCSI_MVSAS is not set
786# CONFIG_SCSI_ARCMSR is not set 799# CONFIG_SCSI_ARCMSR is not set
787# CONFIG_MEGARAID_NEWGEN is not set 800# CONFIG_MEGARAID_NEWGEN is not set
788# CONFIG_MEGARAID_LEGACY is not set 801# CONFIG_MEGARAID_LEGACY is not set
@@ -797,7 +810,6 @@ CONFIG_SCSI_LOWLEVEL=y
797# CONFIG_SCSI_IPS is not set 810# CONFIG_SCSI_IPS is not set
798# CONFIG_SCSI_INITIO is not set 811# CONFIG_SCSI_INITIO is not set
799# CONFIG_SCSI_INIA100 is not set 812# CONFIG_SCSI_INIA100 is not set
800# CONFIG_SCSI_MVSAS is not set
801# CONFIG_SCSI_STEX is not set 813# CONFIG_SCSI_STEX is not set
802# CONFIG_SCSI_SYM53C8XX_2 is not set 814# CONFIG_SCSI_SYM53C8XX_2 is not set
803# CONFIG_SCSI_QLOGIC_1280 is not set 815# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -826,7 +838,6 @@ CONFIG_SCSI_LOWLEVEL=y
826# CONFIG_IEEE1394 is not set 838# CONFIG_IEEE1394 is not set
827# CONFIG_I2O is not set 839# CONFIG_I2O is not set
828CONFIG_NETDEVICES=y 840CONFIG_NETDEVICES=y
829CONFIG_COMPAT_NET_DEV_OPS=y
830# CONFIG_IFB is not set 841# CONFIG_IFB is not set
831# CONFIG_DUMMY is not set 842# CONFIG_DUMMY is not set
832# CONFIG_BONDING is not set 843# CONFIG_BONDING is not set
@@ -898,6 +909,7 @@ CONFIG_8139_OLD_RX_RESET=y
898# CONFIG_SMSC9420 is not set 909# CONFIG_SMSC9420 is not set
899# CONFIG_SUNDANCE is not set 910# CONFIG_SUNDANCE is not set
900# CONFIG_TLAN is not set 911# CONFIG_TLAN is not set
912# CONFIG_KS8842 is not set
901# CONFIG_VIA_RHINE is not set 913# CONFIG_VIA_RHINE is not set
902# CONFIG_SC92031 is not set 914# CONFIG_SC92031 is not set
903# CONFIG_ATL2 is not set 915# CONFIG_ATL2 is not set
@@ -965,6 +977,7 @@ CONFIG_USB_RTL8150=m
965CONFIG_USB_USBNET=m 977CONFIG_USB_USBNET=m
966CONFIG_USB_NET_AX8817X=m 978CONFIG_USB_NET_AX8817X=m
967CONFIG_USB_NET_CDCETHER=m 979CONFIG_USB_NET_CDCETHER=m
980# CONFIG_USB_NET_CDC_EEM is not set
968# CONFIG_USB_NET_DM9601 is not set 981# CONFIG_USB_NET_DM9601 is not set
969# CONFIG_USB_NET_SMSC95XX is not set 982# CONFIG_USB_NET_SMSC95XX is not set
970# CONFIG_USB_NET_GL620A is not set 983# CONFIG_USB_NET_GL620A is not set
@@ -974,6 +987,7 @@ CONFIG_USB_NET_PLUSB=m
974# CONFIG_USB_NET_RNDIS_HOST is not set 987# CONFIG_USB_NET_RNDIS_HOST is not set
975# CONFIG_USB_NET_CDC_SUBSET is not set 988# CONFIG_USB_NET_CDC_SUBSET is not set
976CONFIG_USB_NET_ZAURUS=m 989CONFIG_USB_NET_ZAURUS=m
990# CONFIG_USB_NET_INT51X1 is not set
977# CONFIG_WAN is not set 991# CONFIG_WAN is not set
978# CONFIG_FDDI is not set 992# CONFIG_FDDI is not set
979# CONFIG_HIPPI is not set 993# CONFIG_HIPPI is not set
@@ -1130,22 +1144,7 @@ CONFIG_SSB_POSSIBLE=y
1130# CONFIG_HTC_PASIC3 is not set 1144# CONFIG_HTC_PASIC3 is not set
1131# CONFIG_MFD_TMIO is not set 1145# CONFIG_MFD_TMIO is not set
1132# CONFIG_REGULATOR is not set 1146# CONFIG_REGULATOR is not set
1133 1147# CONFIG_MEDIA_SUPPORT is not set
1134#
1135# Multimedia devices
1136#
1137
1138#
1139# Multimedia core support
1140#
1141# CONFIG_VIDEO_DEV is not set
1142# CONFIG_DVB_CORE is not set
1143# CONFIG_VIDEO_MEDIA is not set
1144
1145#
1146# Multimedia drivers
1147#
1148# CONFIG_DAB is not set
1149 1148
1150# 1149#
1151# Graphics support 1150# Graphics support
@@ -1211,6 +1210,7 @@ CONFIG_USB_MON=y
1211# USB Host Controller Drivers 1210# USB Host Controller Drivers
1212# 1211#
1213# CONFIG_USB_C67X00_HCD is not set 1212# CONFIG_USB_C67X00_HCD is not set
1213# CONFIG_USB_XHCI_HCD is not set
1214CONFIG_USB_EHCI_HCD=y 1214CONFIG_USB_EHCI_HCD=y
1215CONFIG_USB_EHCI_ROOT_HUB_TT=y 1215CONFIG_USB_EHCI_ROOT_HUB_TT=y
1216CONFIG_USB_EHCI_TT_NEWSCHED=y 1216CONFIG_USB_EHCI_TT_NEWSCHED=y
@@ -1350,7 +1350,7 @@ CONFIG_USB_SERIAL_PL2303=m
1350# CONFIG_NEW_LEDS is not set 1350# CONFIG_NEW_LEDS is not set
1351# CONFIG_ACCESSIBILITY is not set 1351# CONFIG_ACCESSIBILITY is not set
1352# CONFIG_INFINIBAND is not set 1352# CONFIG_INFINIBAND is not set
1353CONFIG_RTC_LIB=m 1353CONFIG_RTC_LIB=y
1354CONFIG_RTC_CLASS=m 1354CONFIG_RTC_CLASS=m
1355 1355
1356# 1356#
@@ -1384,9 +1384,14 @@ CONFIG_RTC_INTF_DEV=y
1384# on-CPU RTC drivers 1384# on-CPU RTC drivers
1385# 1385#
1386CONFIG_RTC_DRV_SH=m 1386CONFIG_RTC_DRV_SH=m
1387# CONFIG_RTC_DRV_GENERIC is not set
1387# CONFIG_DMADEVICES is not set 1388# CONFIG_DMADEVICES is not set
1388# CONFIG_AUXDISPLAY is not set 1389# CONFIG_AUXDISPLAY is not set
1389# CONFIG_UIO is not set 1390# CONFIG_UIO is not set
1391
1392#
1393# TI VLYNQ
1394#
1390# CONFIG_STAGING is not set 1395# CONFIG_STAGING is not set
1391 1396
1392# 1397#
@@ -1406,7 +1411,6 @@ CONFIG_REISERFS_FS=m
1406# CONFIG_REISERFS_FS_XATTR is not set 1411# CONFIG_REISERFS_FS_XATTR is not set
1407# CONFIG_JFS_FS is not set 1412# CONFIG_JFS_FS is not set
1408# CONFIG_FS_POSIX_ACL is not set 1413# CONFIG_FS_POSIX_ACL is not set
1409CONFIG_FILE_LOCKING=y
1410CONFIG_XFS_FS=m 1414CONFIG_XFS_FS=m
1411# CONFIG_XFS_QUOTA is not set 1415# CONFIG_XFS_QUOTA is not set
1412# CONFIG_XFS_POSIX_ACL is not set 1416# CONFIG_XFS_POSIX_ACL is not set
@@ -1414,6 +1418,8 @@ CONFIG_XFS_FS=m
1414# CONFIG_XFS_DEBUG is not set 1418# CONFIG_XFS_DEBUG is not set
1415# CONFIG_OCFS2_FS is not set 1419# CONFIG_OCFS2_FS is not set
1416# CONFIG_BTRFS_FS is not set 1420# CONFIG_BTRFS_FS is not set
1421CONFIG_FILE_LOCKING=y
1422CONFIG_FSNOTIFY=y
1417CONFIG_DNOTIFY=y 1423CONFIG_DNOTIFY=y
1418CONFIG_INOTIFY=y 1424CONFIG_INOTIFY=y
1419CONFIG_INOTIFY_USER=y 1425CONFIG_INOTIFY_USER=y
@@ -1421,6 +1427,7 @@ CONFIG_INOTIFY_USER=y
1421# CONFIG_AUTOFS_FS is not set 1427# CONFIG_AUTOFS_FS is not set
1422# CONFIG_AUTOFS4_FS is not set 1428# CONFIG_AUTOFS4_FS is not set
1423CONFIG_FUSE_FS=m 1429CONFIG_FUSE_FS=m
1430# CONFIG_CUSE is not set
1424 1431
1425# 1432#
1426# Caches 1433# Caches
@@ -1533,7 +1540,7 @@ CONFIG_MSDOS_PARTITION=y
1533# CONFIG_KARMA_PARTITION is not set 1540# CONFIG_KARMA_PARTITION is not set
1534# CONFIG_EFI_PARTITION is not set 1541# CONFIG_EFI_PARTITION is not set
1535# CONFIG_SYSV68_PARTITION is not set 1542# CONFIG_SYSV68_PARTITION is not set
1536CONFIG_NLS=m 1543CONFIG_NLS=y
1537CONFIG_NLS_DEFAULT="iso8859-1" 1544CONFIG_NLS_DEFAULT="iso8859-1"
1538CONFIG_NLS_CODEPAGE_437=m 1545CONFIG_NLS_CODEPAGE_437=m
1539# CONFIG_NLS_CODEPAGE_737 is not set 1546# CONFIG_NLS_CODEPAGE_737 is not set
@@ -1626,17 +1633,15 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1626CONFIG_HAVE_DYNAMIC_FTRACE=y 1633CONFIG_HAVE_DYNAMIC_FTRACE=y
1627CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1634CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1628CONFIG_TRACING_SUPPORT=y 1635CONFIG_TRACING_SUPPORT=y
1629 1636CONFIG_FTRACE=y
1630#
1631# Tracers
1632#
1633# CONFIG_FUNCTION_TRACER is not set 1637# CONFIG_FUNCTION_TRACER is not set
1634# CONFIG_IRQSOFF_TRACER is not set 1638# CONFIG_IRQSOFF_TRACER is not set
1635# CONFIG_SCHED_TRACER is not set 1639# CONFIG_SCHED_TRACER is not set
1636# CONFIG_CONTEXT_SWITCH_TRACER is not set 1640# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1637# CONFIG_EVENT_TRACER is not set
1638# CONFIG_BOOT_TRACER is not set 1641# CONFIG_BOOT_TRACER is not set
1639# CONFIG_TRACE_BRANCH_PROFILING is not set 1642CONFIG_BRANCH_PROFILE_NONE=y
1643# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1644# CONFIG_PROFILE_ALL_BRANCHES is not set
1640# CONFIG_STACK_TRACER is not set 1645# CONFIG_STACK_TRACER is not set
1641# CONFIG_KMEMTRACE is not set 1646# CONFIG_KMEMTRACE is not set
1642# CONFIG_WORKQUEUE_TRACER is not set 1647# CONFIG_WORKQUEUE_TRACER is not set
@@ -1645,16 +1650,15 @@ CONFIG_TRACING_SUPPORT=y
1645# CONFIG_SAMPLES is not set 1650# CONFIG_SAMPLES is not set
1646CONFIG_HAVE_ARCH_KGDB=y 1651CONFIG_HAVE_ARCH_KGDB=y
1647# CONFIG_KGDB is not set 1652# CONFIG_KGDB is not set
1653# CONFIG_KMEMCHECK is not set
1648# CONFIG_SH_STANDARD_BIOS is not set 1654# CONFIG_SH_STANDARD_BIOS is not set
1649# CONFIG_EARLY_SCIF_CONSOLE is not set 1655# CONFIG_EARLY_SCIF_CONSOLE is not set
1650# CONFIG_DEBUG_BOOTMEM is not set 1656# CONFIG_DEBUG_BOOTMEM is not set
1651# CONFIG_DEBUG_STACKOVERFLOW is not set 1657# CONFIG_DEBUG_STACKOVERFLOW is not set
1652# CONFIG_DEBUG_STACK_USAGE is not set 1658# CONFIG_DEBUG_STACK_USAGE is not set
1653# CONFIG_4KSTACKS is not set 1659# CONFIG_4KSTACKS is not set
1654# CONFIG_IRQSTACKS is not set
1655# CONFIG_DUMP_CODE is not set 1660# CONFIG_DUMP_CODE is not set
1656# CONFIG_SH_NO_BSS_INIT is not set 1661# CONFIG_SH_NO_BSS_INIT is not set
1657# CONFIG_MORE_COMPILE_OPTIONS is not set
1658 1662
1659# 1663#
1660# Security options 1664# Security options
@@ -1787,3 +1791,4 @@ CONFIG_HAS_IOMEM=y
1787CONFIG_HAS_IOPORT=y 1791CONFIG_HAS_IOPORT=y
1788CONFIG_HAS_DMA=y 1792CONFIG_HAS_DMA=y
1789CONFIG_NLATTR=y 1793CONFIG_NLATTR=y
1794CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/ul2_defconfig b/arch/sh/configs/ul2_defconfig
index bfb4d980689..608fe563614 100644
--- a/arch/sh/configs/ul2_defconfig
+++ b/arch/sh/configs/ul2_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 13:17:05 2009 4# Thu Jun 18 13:14:36 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -21,6 +21,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_NUMA=y 22CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_SYS_SUPPORTS_CMT=y 23CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
26CONFIG_HAVE_LATENCYTOP_SUPPORT=y 27CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -78,7 +79,6 @@ CONFIG_UID16=y
78CONFIG_SYSCTL_SYSCALL=y 79CONFIG_SYSCTL_SYSCALL=y
79CONFIG_KALLSYMS=y 80CONFIG_KALLSYMS=y
80# CONFIG_KALLSYMS_EXTRA_PASS is not set 81# CONFIG_KALLSYMS_EXTRA_PASS is not set
81# CONFIG_STRIP_ASM_SYMS is not set
82CONFIG_HOTPLUG=y 82CONFIG_HOTPLUG=y
83CONFIG_PRINTK=y 83CONFIG_PRINTK=y
84CONFIG_BUG=y 84CONFIG_BUG=y
@@ -91,8 +91,13 @@ CONFIG_TIMERFD=y
91CONFIG_EVENTFD=y 91CONFIG_EVENTFD=y
92CONFIG_SHMEM=y 92CONFIG_SHMEM=y
93CONFIG_AIO=y 93CONFIG_AIO=y
94
95#
96# Performance Counters
97#
94CONFIG_VM_EVENT_COUNTERS=y 98CONFIG_VM_EVENT_COUNTERS=y
95CONFIG_SLUB_DEBUG=y 99CONFIG_SLUB_DEBUG=y
100# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_COMPAT_BRK=y 101CONFIG_COMPAT_BRK=y
97# CONFIG_SLAB is not set 102# CONFIG_SLAB is not set
98CONFIG_SLUB=y 103CONFIG_SLUB=y
@@ -187,6 +192,7 @@ CONFIG_CPU_SUBTYPE_SH7366=y
187CONFIG_QUICKLIST=y 192CONFIG_QUICKLIST=y
188CONFIG_MMU=y 193CONFIG_MMU=y
189CONFIG_PAGE_OFFSET=0x80000000 194CONFIG_PAGE_OFFSET=0x80000000
195CONFIG_FORCE_MAX_ZONEORDER=11
190CONFIG_MEMORY_START=0x08000000 196CONFIG_MEMORY_START=0x08000000
191CONFIG_MEMORY_SIZE=0x01f00000 197CONFIG_MEMORY_SIZE=0x01f00000
192CONFIG_29BIT=y 198CONFIG_29BIT=y
@@ -205,7 +211,6 @@ CONFIG_PAGE_SIZE_4KB=y
205# CONFIG_PAGE_SIZE_8KB is not set 211# CONFIG_PAGE_SIZE_8KB is not set
206# CONFIG_PAGE_SIZE_16KB is not set 212# CONFIG_PAGE_SIZE_16KB is not set
207# CONFIG_PAGE_SIZE_64KB is not set 213# CONFIG_PAGE_SIZE_64KB is not set
208CONFIG_ENTRY_OFFSET=0x00001000
209CONFIG_HUGETLB_PAGE_SIZE_64K=y 214CONFIG_HUGETLB_PAGE_SIZE_64K=y
210# CONFIG_HUGETLB_PAGE_SIZE_256K is not set 215# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
211# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set 216# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
@@ -226,9 +231,9 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
226# CONFIG_PHYS_ADDR_T_64BIT is not set 231# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=0 232CONFIG_ZONE_DMA_FLAG=0
228CONFIG_NR_QUICK=2 233CONFIG_NR_QUICK=2
229CONFIG_UNEVICTABLE_LRU=y
230CONFIG_HAVE_MLOCK=y 234CONFIG_HAVE_MLOCK=y
231CONFIG_HAVE_MLOCKED_PAGE_BIT=y 235CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
232 237
233# 238#
234# Cache configuration 239# Cache configuration
@@ -247,7 +252,6 @@ CONFIG_CPU_LITTLE_ENDIAN=y
247# CONFIG_SH_STORE_QUEUES is not set 252# CONFIG_SH_STORE_QUEUES is not set
248CONFIG_CPU_HAS_INTEVT=y 253CONFIG_CPU_HAS_INTEVT=y
249CONFIG_CPU_HAS_SR_RB=y 254CONFIG_CPU_HAS_SR_RB=y
250CONFIG_CPU_HAS_PTEA=y
251CONFIG_CPU_HAS_DSP=y 255CONFIG_CPU_HAS_DSP=y
252 256
253# 257#
@@ -257,10 +261,10 @@ CONFIG_CPU_HAS_DSP=y
257# 261#
258# Timer and clock configuration 262# Timer and clock configuration
259# 263#
260CONFIG_SH_TMU=y 264CONFIG_SH_TIMER_TMU=y
261# CONFIG_SH_TIMER_CMT is not set 265# CONFIG_SH_TIMER_CMT is not set
262CONFIG_SH_TIMER_IRQ=16
263CONFIG_SH_PCLK_FREQ=33333333 266CONFIG_SH_PCLK_FREQ=33333333
267CONFIG_SH_CLK_CPG=y
264CONFIG_TICK_ONESHOT=y 268CONFIG_TICK_ONESHOT=y
265# CONFIG_NO_HZ is not set 269# CONFIG_NO_HZ is not set
266CONFIG_HIGH_RES_TIMERS=y 270CONFIG_HIGH_RES_TIMERS=y
@@ -302,12 +306,14 @@ CONFIG_KEXEC=y
302# CONFIG_PREEMPT_VOLUNTARY is not set 306# CONFIG_PREEMPT_VOLUNTARY is not set
303CONFIG_PREEMPT=y 307CONFIG_PREEMPT=y
304CONFIG_GUSA=y 308CONFIG_GUSA=y
309# CONFIG_SPARSE_IRQ is not set
305 310
306# 311#
307# Boot options 312# Boot options
308# 313#
309CONFIG_ZERO_PAGE_OFFSET=0x00001000 314CONFIG_ZERO_PAGE_OFFSET=0x00001000
310CONFIG_BOOT_LINK_OFFSET=0x00800000 315CONFIG_BOOT_LINK_OFFSET=0x00800000
316CONFIG_ENTRY_OFFSET=0x00001000
311CONFIG_CMDLINE_BOOL=y 317CONFIG_CMDLINE_BOOL=y
312CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/nfs ip=dhcp" 318CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/nfs ip=dhcp"
313 319
@@ -390,6 +396,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
390# CONFIG_ECONET is not set 396# CONFIG_ECONET is not set
391# CONFIG_WAN_ROUTER is not set 397# CONFIG_WAN_ROUTER is not set
392# CONFIG_PHONET is not set 398# CONFIG_PHONET is not set
399# CONFIG_IEEE802154 is not set
393# CONFIG_NET_SCHED is not set 400# CONFIG_NET_SCHED is not set
394# CONFIG_DCB is not set 401# CONFIG_DCB is not set
395 402
@@ -411,6 +418,8 @@ CONFIG_WIRELESS_EXT_SYSFS=y
411CONFIG_LIB80211=m 418CONFIG_LIB80211=m
412# CONFIG_LIB80211_DEBUG is not set 419# CONFIG_LIB80211_DEBUG is not set
413CONFIG_MAC80211=y 420CONFIG_MAC80211=y
421CONFIG_MAC80211_DEFAULT_PS=y
422CONFIG_MAC80211_DEFAULT_PS_VALUE=1
414 423
415# 424#
416# Rate control algorithm selection 425# Rate control algorithm selection
@@ -565,10 +574,6 @@ CONFIG_BLK_DEV_SD=y
565# CONFIG_BLK_DEV_SR is not set 574# CONFIG_BLK_DEV_SR is not set
566# CONFIG_CHR_DEV_SG is not set 575# CONFIG_CHR_DEV_SG is not set
567# CONFIG_CHR_DEV_SCH is not set 576# CONFIG_CHR_DEV_SCH is not set
568
569#
570# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
571#
572# CONFIG_SCSI_MULTI_LUN is not set 577# CONFIG_SCSI_MULTI_LUN is not set
573# CONFIG_SCSI_CONSTANTS is not set 578# CONFIG_SCSI_CONSTANTS is not set
574# CONFIG_SCSI_LOGGING is not set 579# CONFIG_SCSI_LOGGING is not set
@@ -585,6 +590,7 @@ CONFIG_SCSI_WAIT_SCAN=m
585# CONFIG_SCSI_SRP_ATTRS is not set 590# CONFIG_SCSI_SRP_ATTRS is not set
586CONFIG_SCSI_LOWLEVEL=y 591CONFIG_SCSI_LOWLEVEL=y
587# CONFIG_ISCSI_TCP is not set 592# CONFIG_ISCSI_TCP is not set
593# CONFIG_SCSI_BNX2_ISCSI is not set
588# CONFIG_LIBFC is not set 594# CONFIG_LIBFC is not set
589# CONFIG_LIBFCOE is not set 595# CONFIG_LIBFCOE is not set
590# CONFIG_SCSI_DEBUG is not set 596# CONFIG_SCSI_DEBUG is not set
@@ -598,7 +604,6 @@ CONFIG_ATA_SFF=y
598CONFIG_PATA_PLATFORM=y 604CONFIG_PATA_PLATFORM=y
599# CONFIG_MD is not set 605# CONFIG_MD is not set
600CONFIG_NETDEVICES=y 606CONFIG_NETDEVICES=y
601CONFIG_COMPAT_NET_DEV_OPS=y
602# CONFIG_DUMMY is not set 607# CONFIG_DUMMY is not set
603# CONFIG_BONDING is not set 608# CONFIG_BONDING is not set
604# CONFIG_MACVLAN is not set 609# CONFIG_MACVLAN is not set
@@ -623,6 +628,7 @@ CONFIG_MII=y
623# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 628# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
624# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 629# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
625# CONFIG_B44 is not set 630# CONFIG_B44 is not set
631# CONFIG_KS8842 is not set
626# CONFIG_NETDEV_1000 is not set 632# CONFIG_NETDEV_1000 is not set
627# CONFIG_NETDEV_10000 is not set 633# CONFIG_NETDEV_10000 is not set
628 634
@@ -648,6 +654,7 @@ CONFIG_LIBERTAS_DEBUG=y
648# CONFIG_B43LEGACY is not set 654# CONFIG_B43LEGACY is not set
649# CONFIG_ZD1211RW is not set 655# CONFIG_ZD1211RW is not set
650# CONFIG_RT2X00 is not set 656# CONFIG_RT2X00 is not set
657# CONFIG_IWM is not set
651 658
652# 659#
653# Enable WiMAX (Networking options) to see the WiMAX drivers 660# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -663,6 +670,7 @@ CONFIG_LIBERTAS_DEBUG=y
663CONFIG_USB_USBNET=y 670CONFIG_USB_USBNET=y
664CONFIG_USB_NET_AX8817X=y 671CONFIG_USB_NET_AX8817X=y
665CONFIG_USB_NET_CDCETHER=y 672CONFIG_USB_NET_CDCETHER=y
673# CONFIG_USB_NET_CDC_EEM is not set
666# CONFIG_USB_NET_DM9601 is not set 674# CONFIG_USB_NET_DM9601 is not set
667# CONFIG_USB_NET_SMSC95XX is not set 675# CONFIG_USB_NET_SMSC95XX is not set
668# CONFIG_USB_NET_GL620A is not set 676# CONFIG_USB_NET_GL620A is not set
@@ -672,6 +680,7 @@ CONFIG_USB_NET_CDCETHER=y
672# CONFIG_USB_NET_RNDIS_HOST is not set 680# CONFIG_USB_NET_RNDIS_HOST is not set
673# CONFIG_USB_NET_CDC_SUBSET is not set 681# CONFIG_USB_NET_CDC_SUBSET is not set
674# CONFIG_USB_NET_ZAURUS is not set 682# CONFIG_USB_NET_ZAURUS is not set
683# CONFIG_USB_NET_INT51X1 is not set
675# CONFIG_WAN is not set 684# CONFIG_WAN is not set
676# CONFIG_PPP is not set 685# CONFIG_PPP is not set
677# CONFIG_SLIP is not set 686# CONFIG_SLIP is not set
@@ -774,22 +783,7 @@ CONFIG_SSB_POSSIBLE=y
774# CONFIG_HTC_PASIC3 is not set 783# CONFIG_HTC_PASIC3 is not set
775# CONFIG_MFD_TMIO is not set 784# CONFIG_MFD_TMIO is not set
776# CONFIG_REGULATOR is not set 785# CONFIG_REGULATOR is not set
777 786# CONFIG_MEDIA_SUPPORT is not set
778#
779# Multimedia devices
780#
781
782#
783# Multimedia core support
784#
785# CONFIG_VIDEO_DEV is not set
786# CONFIG_DVB_CORE is not set
787# CONFIG_VIDEO_MEDIA is not set
788
789#
790# Multimedia drivers
791#
792# CONFIG_DAB is not set
793 787
794# 788#
795# Graphics support 789# Graphics support
@@ -926,10 +920,15 @@ CONFIG_MMC_BLOCK_BOUNCE=y
926# CONFIG_MEMSTICK is not set 920# CONFIG_MEMSTICK is not set
927# CONFIG_NEW_LEDS is not set 921# CONFIG_NEW_LEDS is not set
928# CONFIG_ACCESSIBILITY is not set 922# CONFIG_ACCESSIBILITY is not set
923CONFIG_RTC_LIB=y
929# CONFIG_RTC_CLASS is not set 924# CONFIG_RTC_CLASS is not set
930# CONFIG_DMADEVICES is not set 925# CONFIG_DMADEVICES is not set
931# CONFIG_AUXDISPLAY is not set 926# CONFIG_AUXDISPLAY is not set
932# CONFIG_UIO is not set 927# CONFIG_UIO is not set
928
929#
930# TI VLYNQ
931#
933# CONFIG_STAGING is not set 932# CONFIG_STAGING is not set
934 933
935# 934#
@@ -949,10 +948,11 @@ CONFIG_FS_MBCACHE=y
949# CONFIG_REISERFS_FS is not set 948# CONFIG_REISERFS_FS is not set
950# CONFIG_JFS_FS is not set 949# CONFIG_JFS_FS is not set
951# CONFIG_FS_POSIX_ACL is not set 950# CONFIG_FS_POSIX_ACL is not set
952CONFIG_FILE_LOCKING=y
953# CONFIG_XFS_FS is not set 951# CONFIG_XFS_FS is not set
954# CONFIG_OCFS2_FS is not set 952# CONFIG_OCFS2_FS is not set
955# CONFIG_BTRFS_FS is not set 953# CONFIG_BTRFS_FS is not set
954CONFIG_FILE_LOCKING=y
955CONFIG_FSNOTIFY=y
956CONFIG_DNOTIFY=y 956CONFIG_DNOTIFY=y
957CONFIG_INOTIFY=y 957CONFIG_INOTIFY=y
958CONFIG_INOTIFY_USER=y 958CONFIG_INOTIFY_USER=y
@@ -1106,28 +1106,12 @@ CONFIG_HAVE_FUNCTION_TRACER=y
1106CONFIG_HAVE_DYNAMIC_FTRACE=y 1106CONFIG_HAVE_DYNAMIC_FTRACE=y
1107CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1107CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1108CONFIG_TRACING_SUPPORT=y 1108CONFIG_TRACING_SUPPORT=y
1109 1109# CONFIG_FTRACE is not set
1110#
1111# Tracers
1112#
1113# CONFIG_FUNCTION_TRACER is not set
1114# CONFIG_IRQSOFF_TRACER is not set
1115# CONFIG_PREEMPT_TRACER is not set
1116# CONFIG_SCHED_TRACER is not set
1117# CONFIG_CONTEXT_SWITCH_TRACER is not set
1118# CONFIG_EVENT_TRACER is not set
1119# CONFIG_BOOT_TRACER is not set
1120# CONFIG_TRACE_BRANCH_PROFILING is not set
1121# CONFIG_STACK_TRACER is not set
1122# CONFIG_KMEMTRACE is not set
1123# CONFIG_WORKQUEUE_TRACER is not set
1124# CONFIG_BLK_DEV_IO_TRACE is not set
1125# CONFIG_DMA_API_DEBUG is not set 1110# CONFIG_DMA_API_DEBUG is not set
1126# CONFIG_SAMPLES is not set 1111# CONFIG_SAMPLES is not set
1127CONFIG_HAVE_ARCH_KGDB=y 1112CONFIG_HAVE_ARCH_KGDB=y
1128# CONFIG_SH_STANDARD_BIOS is not set 1113# CONFIG_SH_STANDARD_BIOS is not set
1129# CONFIG_EARLY_SCIF_CONSOLE is not set 1114# CONFIG_EARLY_SCIF_CONSOLE is not set
1130# CONFIG_MORE_COMPILE_OPTIONS is not set
1131 1115
1132# 1116#
1133# Security options 1117# Security options
@@ -1252,3 +1236,4 @@ CONFIG_HAS_IOMEM=y
1252CONFIG_HAS_IOPORT=y 1236CONFIG_HAS_IOPORT=y
1253CONFIG_HAS_DMA=y 1237CONFIG_HAS_DMA=y
1254CONFIG_NLATTR=y 1238CONFIG_NLATTR=y
1239CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/urquell_defconfig b/arch/sh/configs/urquell_defconfig
index 512664fed66..ee1987e6cc5 100644
--- a/arch/sh/configs/urquell_defconfig
+++ b/arch/sh/configs/urquell_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc3 3# Linux kernel version: 2.6.30
4# Mon Apr 27 14:02:55 2009 4# Thu Jun 18 13:15:28 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21CONFIG_ARCH_HIBERNATION_POSSIBLE=y 21CONFIG_ARCH_HIBERNATION_POSSIBLE=y
22CONFIG_SYS_SUPPORTS_NUMA=y 22CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y
23CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
24CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
25CONFIG_HAVE_LATENCYTOP_SUPPORT=y 27CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -34,25 +36,30 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34# 36#
35CONFIG_EXPERIMENTAL=y 37CONFIG_EXPERIMENTAL=y
36CONFIG_BROKEN_ON_SMP=y 38CONFIG_BROKEN_ON_SMP=y
37CONFIG_LOCK_KERNEL=y
38CONFIG_INIT_ENV_ARG_LIMIT=32 39CONFIG_INIT_ENV_ARG_LIMIT=32
39CONFIG_LOCALVERSION="" 40CONFIG_LOCALVERSION=""
40CONFIG_LOCALVERSION_AUTO=y 41CONFIG_LOCALVERSION_AUTO=y
41CONFIG_SWAP=y 42CONFIG_SWAP=y
42CONFIG_SYSVIPC=y 43CONFIG_SYSVIPC=y
43CONFIG_SYSVIPC_SYSCTL=y 44CONFIG_SYSVIPC_SYSCTL=y
44# CONFIG_POSIX_MQUEUE is not set 45CONFIG_POSIX_MQUEUE=y
46CONFIG_POSIX_MQUEUE_SYSCTL=y
45CONFIG_BSD_PROCESS_ACCT=y 47CONFIG_BSD_PROCESS_ACCT=y
46# CONFIG_BSD_PROCESS_ACCT_V3 is not set 48# CONFIG_BSD_PROCESS_ACCT_V3 is not set
47# CONFIG_TASKSTATS is not set 49# CONFIG_TASKSTATS is not set
48# CONFIG_AUDIT is not set 50CONFIG_AUDIT=y
51CONFIG_AUDITSYSCALL=y
52CONFIG_AUDIT_TREE=y
49 53
50# 54#
51# RCU Subsystem 55# RCU Subsystem
52# 56#
53CONFIG_CLASSIC_RCU=y 57# CONFIG_CLASSIC_RCU is not set
54# CONFIG_TREE_RCU is not set 58CONFIG_TREE_RCU=y
55# CONFIG_PREEMPT_RCU is not set 59# CONFIG_PREEMPT_RCU is not set
60# CONFIG_RCU_TRACE is not set
61CONFIG_RCU_FANOUT=32
62# CONFIG_RCU_FANOUT_EXACT is not set
56# CONFIG_TREE_RCU_TRACE is not set 63# CONFIG_TREE_RCU_TRACE is not set
57# CONFIG_PREEMPT_RCU_TRACE is not set 64# CONFIG_PREEMPT_RCU_TRACE is not set
58CONFIG_IKCONFIG=y 65CONFIG_IKCONFIG=y
@@ -60,15 +67,29 @@ CONFIG_IKCONFIG_PROC=y
60CONFIG_LOG_BUF_SHIFT=14 67CONFIG_LOG_BUF_SHIFT=14
61CONFIG_GROUP_SCHED=y 68CONFIG_GROUP_SCHED=y
62CONFIG_FAIR_GROUP_SCHED=y 69CONFIG_FAIR_GROUP_SCHED=y
63# CONFIG_RT_GROUP_SCHED is not set 70CONFIG_RT_GROUP_SCHED=y
64CONFIG_USER_SCHED=y 71# CONFIG_USER_SCHED is not set
65# CONFIG_CGROUP_SCHED is not set 72CONFIG_CGROUP_SCHED=y
66# CONFIG_CGROUPS is not set 73CONFIG_CGROUPS=y
67CONFIG_SYSFS_DEPRECATED=y 74CONFIG_CGROUP_DEBUG=y
68CONFIG_SYSFS_DEPRECATED_V2=y 75CONFIG_CGROUP_NS=y
76CONFIG_CGROUP_FREEZER=y
77CONFIG_CGROUP_DEVICE=y
78CONFIG_CPUSETS=y
79# CONFIG_PROC_PID_CPUSET is not set
80CONFIG_CGROUP_CPUACCT=y
81CONFIG_RESOURCE_COUNTERS=y
82CONFIG_CGROUP_MEM_RES_CTLR=y
83CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
84CONFIG_MM_OWNER=y
85# CONFIG_SYSFS_DEPRECATED_V2 is not set
69# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
70# CONFIG_NAMESPACES is not set 87# CONFIG_NAMESPACES is not set
71# CONFIG_BLK_DEV_INITRD is not set 88CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE=""
90CONFIG_RD_GZIP=y
91# CONFIG_RD_BZIP2 is not set
92# CONFIG_RD_LZMA is not set
72CONFIG_CC_OPTIMIZE_FOR_SIZE=y 93CONFIG_CC_OPTIMIZE_FOR_SIZE=y
73CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
74CONFIG_ANON_INODES=y 95CONFIG_ANON_INODES=y
@@ -76,8 +97,8 @@ CONFIG_EMBEDDED=y
76CONFIG_UID16=y 97CONFIG_UID16=y
77CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
78CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
100# CONFIG_KALLSYMS_ALL is not set
79# CONFIG_KALLSYMS_EXTRA_PASS is not set 101# CONFIG_KALLSYMS_EXTRA_PASS is not set
80# CONFIG_STRIP_ASM_SYMS is not set
81CONFIG_HOTPLUG=y 102CONFIG_HOTPLUG=y
82CONFIG_PRINTK=y 103CONFIG_PRINTK=y
83CONFIG_BUG=y 104CONFIG_BUG=y
@@ -90,13 +111,20 @@ CONFIG_TIMERFD=y
90CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
91CONFIG_SHMEM=y 112CONFIG_SHMEM=y
92CONFIG_AIO=y 113CONFIG_AIO=y
114
115#
116# Performance Counters
117#
93CONFIG_VM_EVENT_COUNTERS=y 118CONFIG_VM_EVENT_COUNTERS=y
119CONFIG_PCI_QUIRKS=y
120# CONFIG_STRIP_ASM_SYMS is not set
94CONFIG_COMPAT_BRK=y 121CONFIG_COMPAT_BRK=y
95CONFIG_SLAB=y 122CONFIG_SLAB=y
96# CONFIG_SLUB is not set 123# CONFIG_SLUB is not set
97# CONFIG_SLOB is not set 124# CONFIG_SLOB is not set
98CONFIG_PROFILING=y 125CONFIG_PROFILING=y
99# CONFIG_MARKERS is not set 126CONFIG_TRACEPOINTS=y
127CONFIG_MARKERS=y
100# CONFIG_OPROFILE is not set 128# CONFIG_OPROFILE is not set
101CONFIG_HAVE_OPROFILE=y 129CONFIG_HAVE_OPROFILE=y
102# CONFIG_KPROBES is not set 130# CONFIG_KPROBES is not set
@@ -129,12 +157,12 @@ CONFIG_IOSCHED_NOOP=y
129CONFIG_IOSCHED_AS=y 157CONFIG_IOSCHED_AS=y
130CONFIG_IOSCHED_DEADLINE=y 158CONFIG_IOSCHED_DEADLINE=y
131CONFIG_IOSCHED_CFQ=y 159CONFIG_IOSCHED_CFQ=y
132# CONFIG_DEFAULT_AS is not set 160CONFIG_DEFAULT_AS=y
133# CONFIG_DEFAULT_DEADLINE is not set 161# CONFIG_DEFAULT_DEADLINE is not set
134CONFIG_DEFAULT_CFQ=y 162# CONFIG_DEFAULT_CFQ is not set
135# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
136CONFIG_DEFAULT_IOSCHED="cfq" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
137# CONFIG_FREEZER is not set 165CONFIG_FREEZER=y
138 166
139# 167#
140# System type 168# System type
@@ -183,6 +211,7 @@ CONFIG_CPU_SUBTYPE_SH7786=y
183CONFIG_QUICKLIST=y 211CONFIG_QUICKLIST=y
184CONFIG_MMU=y 212CONFIG_MMU=y
185CONFIG_PAGE_OFFSET=0x80000000 213CONFIG_PAGE_OFFSET=0x80000000
214CONFIG_FORCE_MAX_ZONEORDER=11
186CONFIG_MEMORY_START=0x08000000 215CONFIG_MEMORY_START=0x08000000
187CONFIG_MEMORY_SIZE=0x08000000 216CONFIG_MEMORY_SIZE=0x08000000
188CONFIG_29BIT=y 217CONFIG_29BIT=y
@@ -201,7 +230,12 @@ CONFIG_PAGE_SIZE_4KB=y
201# CONFIG_PAGE_SIZE_8KB is not set 230# CONFIG_PAGE_SIZE_8KB is not set
202# CONFIG_PAGE_SIZE_16KB is not set 231# CONFIG_PAGE_SIZE_16KB is not set
203# CONFIG_PAGE_SIZE_64KB is not set 232# CONFIG_PAGE_SIZE_64KB is not set
204CONFIG_ENTRY_OFFSET=0x00001000 233CONFIG_HUGETLB_PAGE_SIZE_64K=y
234# CONFIG_HUGETLB_PAGE_SIZE_256K is not set
235# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
236# CONFIG_HUGETLB_PAGE_SIZE_4MB is not set
237# CONFIG_HUGETLB_PAGE_SIZE_64MB is not set
238# CONFIG_HUGETLB_PAGE_SIZE_512MB is not set
205CONFIG_SELECT_MEMORY_MODEL=y 239CONFIG_SELECT_MEMORY_MODEL=y
206# CONFIG_FLATMEM_MANUAL is not set 240# CONFIG_FLATMEM_MANUAL is not set
207# CONFIG_DISCONTIGMEM_MANUAL is not set 241# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -216,9 +250,9 @@ CONFIG_MIGRATION=y
216# CONFIG_PHYS_ADDR_T_64BIT is not set 250# CONFIG_PHYS_ADDR_T_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=0 251CONFIG_ZONE_DMA_FLAG=0
218CONFIG_NR_QUICK=2 252CONFIG_NR_QUICK=2
219CONFIG_UNEVICTABLE_LRU=y
220CONFIG_HAVE_MLOCK=y 253CONFIG_HAVE_MLOCK=y
221CONFIG_HAVE_MLOCKED_PAGE_BIT=y 254CONFIG_HAVE_MLOCKED_PAGE_BIT=y
255CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
222 256
223# 257#
224# Cache configuration 258# Cache configuration
@@ -247,9 +281,10 @@ CONFIG_SH_URQUELL=y
247# 281#
248# Timer and clock configuration 282# Timer and clock configuration
249# 283#
250CONFIG_SH_TMU=y 284CONFIG_SH_TIMER_TMU=y
251CONFIG_SH_TIMER_IRQ=16
252CONFIG_SH_PCLK_FREQ=33333333 285CONFIG_SH_PCLK_FREQ=33333333
286CONFIG_SH_CLK_CPG=y
287CONFIG_SH_CLK_CPG_LEGACY=y
253CONFIG_TICK_ONESHOT=y 288CONFIG_TICK_ONESHOT=y
254# CONFIG_NO_HZ is not set 289# CONFIG_NO_HZ is not set
255CONFIG_HIGH_RES_TIMERS=y 290CONFIG_HIGH_RES_TIMERS=y
@@ -286,25 +321,37 @@ CONFIG_HZ=250
286CONFIG_SCHED_HRTICK=y 321CONFIG_SCHED_HRTICK=y
287CONFIG_KEXEC=y 322CONFIG_KEXEC=y
288# CONFIG_CRASH_DUMP is not set 323# CONFIG_CRASH_DUMP is not set
289# CONFIG_SECCOMP is not set 324CONFIG_SECCOMP=y
290# CONFIG_PREEMPT_NONE is not set 325CONFIG_PREEMPT_NONE=y
291# CONFIG_PREEMPT_VOLUNTARY is not set 326# CONFIG_PREEMPT_VOLUNTARY is not set
292CONFIG_PREEMPT=y 327# CONFIG_PREEMPT is not set
293CONFIG_GUSA=y 328CONFIG_GUSA=y
329CONFIG_SPARSE_IRQ=y
294 330
295# 331#
296# Boot options 332# Boot options
297# 333#
298CONFIG_ZERO_PAGE_OFFSET=0x00001000 334CONFIG_ZERO_PAGE_OFFSET=0x00001000
299CONFIG_BOOT_LINK_OFFSET=0x00800000 335CONFIG_BOOT_LINK_OFFSET=0x00800000
300CONFIG_CMDLINE_BOOL=y 336CONFIG_ENTRY_OFFSET=0x00001000
301CONFIG_CMDLINE="console=ttySC1, 38400 earlyprintk=serial ip=on ignore_loglevel root=/dev/nfs ip=dhcp memchunk.vpu=4m" 337# CONFIG_CMDLINE_BOOL is not set
302 338
303# 339#
304# Bus options 340# Bus options
305# 341#
342CONFIG_PCI=y
343# CONFIG_SH_PCIDMA_NONCOHERENT is not set
344CONFIG_PCIEPORTBUS=y
345CONFIG_PCIEAER=y
346CONFIG_PCIEASPM=y
347CONFIG_PCIEASPM_DEBUG=y
306# CONFIG_ARCH_SUPPORTS_MSI is not set 348# CONFIG_ARCH_SUPPORTS_MSI is not set
349# CONFIG_PCI_LEGACY is not set
350CONFIG_PCI_DEBUG=y
351# CONFIG_PCI_STUB is not set
352# CONFIG_PCI_IOV is not set
307# CONFIG_PCCARD is not set 353# CONFIG_PCCARD is not set
354# CONFIG_HOTPLUG_PCI is not set
308 355
309# 356#
310# Executable file formats 357# Executable file formats
@@ -312,13 +359,16 @@ CONFIG_CMDLINE="console=ttySC1, 38400 earlyprintk=serial ip=on ignore_loglevel r
312CONFIG_BINFMT_ELF=y 359CONFIG_BINFMT_ELF=y
313# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 360# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
314# CONFIG_HAVE_AOUT is not set 361# CONFIG_HAVE_AOUT is not set
315# CONFIG_BINFMT_MISC is not set 362CONFIG_BINFMT_MISC=y
316 363
317# 364#
318# Power management options (EXPERIMENTAL) 365# Power management options (EXPERIMENTAL)
319# 366#
320# CONFIG_PM is not set 367CONFIG_PM=y
321# CONFIG_CPU_IDLE is not set 368# CONFIG_PM_DEBUG is not set
369# CONFIG_HIBERNATION is not set
370CONFIG_CPU_IDLE=y
371CONFIG_CPU_IDLE_GOV_LADDER=y
322CONFIG_NET=y 372CONFIG_NET=y
323 373
324# 374#
@@ -384,6 +434,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
384# CONFIG_ECONET is not set 434# CONFIG_ECONET is not set
385# CONFIG_WAN_ROUTER is not set 435# CONFIG_WAN_ROUTER is not set
386# CONFIG_PHONET is not set 436# CONFIG_PHONET is not set
437# CONFIG_IEEE802154 is not set
387# CONFIG_NET_SCHED is not set 438# CONFIG_NET_SCHED is not set
388# CONFIG_DCB is not set 439# CONFIG_DCB is not set
389 440
@@ -391,6 +442,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
391# Network testing 442# Network testing
392# 443#
393# CONFIG_NET_PKTGEN is not set 444# CONFIG_NET_PKTGEN is not set
445# CONFIG_NET_DROP_MONITOR is not set
394# CONFIG_HAMRADIO is not set 446# CONFIG_HAMRADIO is not set
395# CONFIG_CAN is not set 447# CONFIG_CAN is not set
396# CONFIG_IRDA is not set 448# CONFIG_IRDA is not set
@@ -402,7 +454,11 @@ CONFIG_WIRELESS=y
402CONFIG_WIRELESS_EXT=y 454CONFIG_WIRELESS_EXT=y
403CONFIG_WIRELESS_EXT_SYSFS=y 455CONFIG_WIRELESS_EXT_SYSFS=y
404# CONFIG_LIB80211 is not set 456# CONFIG_LIB80211 is not set
405# CONFIG_MAC80211 is not set 457
458#
459# CFG80211 needs to be enabled for MAC80211
460#
461CONFIG_MAC80211_DEFAULT_PS_VALUE=0
406# CONFIG_WIMAX is not set 462# CONFIG_WIMAX is not set
407# CONFIG_RFKILL is not set 463# CONFIG_RFKILL is not set
408# CONFIG_NET_9P is not set 464# CONFIG_NET_9P is not set
@@ -418,6 +474,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
418CONFIG_STANDALONE=y 474CONFIG_STANDALONE=y
419CONFIG_PREVENT_FIRMWARE_BUILD=y 475CONFIG_PREVENT_FIRMWARE_BUILD=y
420# CONFIG_FW_LOADER is not set 476# CONFIG_FW_LOADER is not set
477# CONFIG_DEBUG_DRIVER is not set
478# CONFIG_DEBUG_DEVRES is not set
421# CONFIG_SYS_HYPERVISOR is not set 479# CONFIG_SYS_HYPERVISOR is not set
422# CONFIG_CONNECTOR is not set 480# CONFIG_CONNECTOR is not set
423CONFIG_MTD=y 481CONFIG_MTD=y
@@ -473,11 +531,13 @@ CONFIG_MTD_CFI_UTIL=y
473# CONFIG_MTD_COMPLEX_MAPPINGS is not set 531# CONFIG_MTD_COMPLEX_MAPPINGS is not set
474CONFIG_MTD_PHYSMAP=y 532CONFIG_MTD_PHYSMAP=y
475# CONFIG_MTD_PHYSMAP_COMPAT is not set 533# CONFIG_MTD_PHYSMAP_COMPAT is not set
534# CONFIG_MTD_INTEL_VR_NOR is not set
476# CONFIG_MTD_PLATRAM is not set 535# CONFIG_MTD_PLATRAM is not set
477 536
478# 537#
479# Self-contained MTD device drivers 538# Self-contained MTD device drivers
480# 539#
540# CONFIG_MTD_PMC551 is not set
481# CONFIG_MTD_SLRAM is not set 541# CONFIG_MTD_SLRAM is not set
482# CONFIG_MTD_PHRAM is not set 542# CONFIG_MTD_PHRAM is not set
483# CONFIG_MTD_MTDRAM is not set 543# CONFIG_MTD_MTDRAM is not set
@@ -503,9 +563,13 @@ CONFIG_MTD_PHYSMAP=y
503# CONFIG_MTD_UBI is not set 563# CONFIG_MTD_UBI is not set
504# CONFIG_PARPORT is not set 564# CONFIG_PARPORT is not set
505CONFIG_BLK_DEV=y 565CONFIG_BLK_DEV=y
566# CONFIG_BLK_CPQ_CISS_DA is not set
567# CONFIG_BLK_DEV_DAC960 is not set
568# CONFIG_BLK_DEV_UMEM is not set
506# CONFIG_BLK_DEV_COW_COMMON is not set 569# CONFIG_BLK_DEV_COW_COMMON is not set
507# CONFIG_BLK_DEV_LOOP is not set 570# CONFIG_BLK_DEV_LOOP is not set
508# CONFIG_BLK_DEV_NBD is not set 571# CONFIG_BLK_DEV_NBD is not set
572# CONFIG_BLK_DEV_SX8 is not set
509# CONFIG_BLK_DEV_UB is not set 573# CONFIG_BLK_DEV_UB is not set
510CONFIG_BLK_DEV_RAM=y 574CONFIG_BLK_DEV_RAM=y
511CONFIG_BLK_DEV_RAM_COUNT=16 575CONFIG_BLK_DEV_RAM_COUNT=16
@@ -537,10 +601,6 @@ CONFIG_BLK_DEV_SD=y
537# CONFIG_BLK_DEV_SR is not set 601# CONFIG_BLK_DEV_SR is not set
538# CONFIG_CHR_DEV_SG is not set 602# CONFIG_CHR_DEV_SG is not set
539# CONFIG_CHR_DEV_SCH is not set 603# CONFIG_CHR_DEV_SCH is not set
540
541#
542# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
543#
544# CONFIG_SCSI_MULTI_LUN is not set 604# CONFIG_SCSI_MULTI_LUN is not set
545# CONFIG_SCSI_CONSTANTS is not set 605# CONFIG_SCSI_CONSTANTS is not set
546# CONFIG_SCSI_LOGGING is not set 606# CONFIG_SCSI_LOGGING is not set
@@ -561,24 +621,90 @@ CONFIG_SCSI_WAIT_SCAN=m
561CONFIG_ATA=y 621CONFIG_ATA=y
562# CONFIG_ATA_NONSTANDARD is not set 622# CONFIG_ATA_NONSTANDARD is not set
563CONFIG_SATA_PMP=y 623CONFIG_SATA_PMP=y
624# CONFIG_SATA_AHCI is not set
625CONFIG_SATA_SIL24=y
564CONFIG_ATA_SFF=y 626CONFIG_ATA_SFF=y
627# CONFIG_SATA_SVW is not set
628# CONFIG_ATA_PIIX is not set
565# CONFIG_SATA_MV is not set 629# CONFIG_SATA_MV is not set
630# CONFIG_SATA_NV is not set
631# CONFIG_PDC_ADMA is not set
632# CONFIG_SATA_QSTOR is not set
633# CONFIG_SATA_PROMISE is not set
634# CONFIG_SATA_SX4 is not set
635# CONFIG_SATA_SIL is not set
636# CONFIG_SATA_SIS is not set
637# CONFIG_SATA_ULI is not set
638# CONFIG_SATA_VIA is not set
639# CONFIG_SATA_VITESSE is not set
640# CONFIG_SATA_INIC162X is not set
641# CONFIG_PATA_ALI is not set
642# CONFIG_PATA_AMD is not set
643# CONFIG_PATA_ARTOP is not set
644# CONFIG_PATA_ATIIXP is not set
645# CONFIG_PATA_CMD640_PCI is not set
646# CONFIG_PATA_CMD64X is not set
647# CONFIG_PATA_CS5520 is not set
648# CONFIG_PATA_CS5530 is not set
649# CONFIG_PATA_CYPRESS is not set
650# CONFIG_PATA_EFAR is not set
651# CONFIG_ATA_GENERIC is not set
652# CONFIG_PATA_HPT366 is not set
653# CONFIG_PATA_HPT37X is not set
654# CONFIG_PATA_HPT3X2N is not set
655# CONFIG_PATA_HPT3X3 is not set
656# CONFIG_PATA_IT821X is not set
657# CONFIG_PATA_IT8213 is not set
658# CONFIG_PATA_JMICRON is not set
659# CONFIG_PATA_TRIFLEX is not set
660# CONFIG_PATA_MARVELL is not set
661# CONFIG_PATA_MPIIX is not set
662# CONFIG_PATA_OLDPIIX is not set
663# CONFIG_PATA_NETCELL is not set
664# CONFIG_PATA_NINJA32 is not set
665# CONFIG_PATA_NS87410 is not set
666# CONFIG_PATA_NS87415 is not set
667# CONFIG_PATA_OPTI is not set
668# CONFIG_PATA_OPTIDMA is not set
669# CONFIG_PATA_PDC_OLD is not set
670# CONFIG_PATA_RADISYS is not set
671# CONFIG_PATA_RZ1000 is not set
672# CONFIG_PATA_SC1200 is not set
673# CONFIG_PATA_SERVERWORKS is not set
674# CONFIG_PATA_PDC2027X is not set
675# CONFIG_PATA_SIL680 is not set
676# CONFIG_PATA_SIS is not set
677# CONFIG_PATA_VIA is not set
678# CONFIG_PATA_WINBOND is not set
566# CONFIG_PATA_PLATFORM is not set 679# CONFIG_PATA_PLATFORM is not set
680# CONFIG_PATA_SCH is not set
567# CONFIG_MD is not set 681# CONFIG_MD is not set
682# CONFIG_FUSION is not set
683
684#
685# IEEE 1394 (FireWire) support
686#
687
688#
689# Enable only one of the two stacks, unless you know what you are doing
690#
691# CONFIG_FIREWIRE is not set
692# CONFIG_IEEE1394 is not set
693# CONFIG_I2O is not set
568CONFIG_NETDEVICES=y 694CONFIG_NETDEVICES=y
569CONFIG_COMPAT_NET_DEV_OPS=y
570# CONFIG_DUMMY is not set 695# CONFIG_DUMMY is not set
571# CONFIG_BONDING is not set 696# CONFIG_BONDING is not set
572# CONFIG_MACVLAN is not set 697# CONFIG_MACVLAN is not set
573# CONFIG_EQUALIZER is not set 698# CONFIG_EQUALIZER is not set
574# CONFIG_TUN is not set 699# CONFIG_TUN is not set
575# CONFIG_VETH is not set 700# CONFIG_VETH is not set
701# CONFIG_ARCNET is not set
576CONFIG_PHYLIB=y 702CONFIG_PHYLIB=y
577 703
578# 704#
579# MII PHY device drivers 705# MII PHY device drivers
580# 706#
581# CONFIG_MARVELL_PHY is not set 707CONFIG_MARVELL_PHY=y
582# CONFIG_DAVICOM_PHY is not set 708# CONFIG_DAVICOM_PHY is not set
583# CONFIG_QSEMI_PHY is not set 709# CONFIG_QSEMI_PHY is not set
584# CONFIG_LXT_PHY is not set 710# CONFIG_LXT_PHY is not set
@@ -597,11 +723,17 @@ CONFIG_NET_ETHERNET=y
597CONFIG_MII=y 723CONFIG_MII=y
598# CONFIG_AX88796 is not set 724# CONFIG_AX88796 is not set
599# CONFIG_STNIC is not set 725# CONFIG_STNIC is not set
726# CONFIG_HAPPYMEAL is not set
727# CONFIG_SUNGEM is not set
728# CONFIG_CASSINI is not set
729# CONFIG_NET_VENDOR_3COM is not set
600CONFIG_SMC91X=y 730CONFIG_SMC91X=y
601# CONFIG_ETHOC is not set 731# CONFIG_ETHOC is not set
602# CONFIG_SMC911X is not set 732# CONFIG_SMC911X is not set
603# CONFIG_SMSC911X is not set 733# CONFIG_SMSC911X is not set
604# CONFIG_DNET is not set 734# CONFIG_DNET is not set
735# CONFIG_NET_TULIP is not set
736# CONFIG_HP100 is not set
605# CONFIG_IBM_NEW_EMAC_ZMII is not set 737# CONFIG_IBM_NEW_EMAC_ZMII is not set
606# CONFIG_IBM_NEW_EMAC_RGMII is not set 738# CONFIG_IBM_NEW_EMAC_RGMII is not set
607# CONFIG_IBM_NEW_EMAC_TAH is not set 739# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -609,9 +741,54 @@ CONFIG_SMC91X=y
609# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set 741# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
610# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 742# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
611# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 743# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
744CONFIG_NET_PCI=y
745# CONFIG_PCNET32 is not set
746# CONFIG_AMD8111_ETH is not set
747# CONFIG_ADAPTEC_STARFIRE is not set
612# CONFIG_B44 is not set 748# CONFIG_B44 is not set
613# CONFIG_NETDEV_1000 is not set 749# CONFIG_FORCEDETH is not set
750# CONFIG_E100 is not set
751# CONFIG_FEALNX is not set
752# CONFIG_NATSEMI is not set
753# CONFIG_NE2K_PCI is not set
754CONFIG_8139CP=y
755# CONFIG_8139TOO is not set
756# CONFIG_R6040 is not set
757# CONFIG_SIS900 is not set
758# CONFIG_EPIC100 is not set
759# CONFIG_SMSC9420 is not set
760# CONFIG_SUNDANCE is not set
761# CONFIG_TLAN is not set
762# CONFIG_KS8842 is not set
763# CONFIG_VIA_RHINE is not set
764# CONFIG_SC92031 is not set
765# CONFIG_ATL2 is not set
766CONFIG_NETDEV_1000=y
767# CONFIG_ACENIC is not set
768# CONFIG_DL2K is not set
769# CONFIG_E1000 is not set
770# CONFIG_E1000E is not set
771# CONFIG_IP1000 is not set
772# CONFIG_IGB is not set
773# CONFIG_IGBVF is not set
774# CONFIG_NS83820 is not set
775# CONFIG_HAMACHI is not set
776# CONFIG_YELLOWFIN is not set
777# CONFIG_R8169 is not set
778# CONFIG_SIS190 is not set
779# CONFIG_SKGE is not set
780CONFIG_SKY2=y
781CONFIG_SKY2_DEBUG=y
782# CONFIG_VIA_VELOCITY is not set
783# CONFIG_TIGON3 is not set
784# CONFIG_BNX2 is not set
785# CONFIG_QLA3XXX is not set
786# CONFIG_ATL1 is not set
787# CONFIG_ATL1E is not set
788# CONFIG_ATL1C is not set
789# CONFIG_JME is not set
614# CONFIG_NETDEV_10000 is not set 790# CONFIG_NETDEV_10000 is not set
791# CONFIG_TR is not set
615 792
616# 793#
617# Wireless LAN 794# Wireless LAN
@@ -632,8 +809,11 @@ CONFIG_SMC91X=y
632# CONFIG_USB_RTL8150 is not set 809# CONFIG_USB_RTL8150 is not set
633# CONFIG_USB_USBNET is not set 810# CONFIG_USB_USBNET is not set
634# CONFIG_WAN is not set 811# CONFIG_WAN is not set
812# CONFIG_FDDI is not set
813# CONFIG_HIPPI is not set
635# CONFIG_PPP is not set 814# CONFIG_PPP is not set
636# CONFIG_SLIP is not set 815# CONFIG_SLIP is not set
816# CONFIG_NET_FC is not set
637# CONFIG_NETCONSOLE is not set 817# CONFIG_NETCONSOLE is not set
638# CONFIG_NETPOLL is not set 818# CONFIG_NETPOLL is not set
639# CONFIG_NET_POLL_CONTROLLER is not set 819# CONFIG_NET_POLL_CONTROLLER is not set
@@ -692,6 +872,7 @@ CONFIG_HW_CONSOLE=y
692CONFIG_VT_HW_CONSOLE_BINDING=y 872CONFIG_VT_HW_CONSOLE_BINDING=y
693CONFIG_DEVKMEM=y 873CONFIG_DEVKMEM=y
694# CONFIG_SERIAL_NONSTANDARD is not set 874# CONFIG_SERIAL_NONSTANDARD is not set
875# CONFIG_NOZOMI is not set
695 876
696# 877#
697# Serial drivers 878# Serial drivers
@@ -706,6 +887,7 @@ CONFIG_SERIAL_SH_SCI_NR_UARTS=6
706CONFIG_SERIAL_SH_SCI_CONSOLE=y 887CONFIG_SERIAL_SH_SCI_CONSOLE=y
707CONFIG_SERIAL_CORE=y 888CONFIG_SERIAL_CORE=y
708CONFIG_SERIAL_CORE_CONSOLE=y 889CONFIG_SERIAL_CORE_CONSOLE=y
890# CONFIG_SERIAL_JSM is not set
709CONFIG_UNIX98_PTYS=y 891CONFIG_UNIX98_PTYS=y
710# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 892# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
711CONFIG_LEGACY_PTYS=y 893CONFIG_LEGACY_PTYS=y
@@ -714,8 +896,10 @@ CONFIG_LEGACY_PTY_COUNT=256
714CONFIG_HW_RANDOM=y 896CONFIG_HW_RANDOM=y
715# CONFIG_HW_RANDOM_TIMERIOMEM is not set 897# CONFIG_HW_RANDOM_TIMERIOMEM is not set
716# CONFIG_R3964 is not set 898# CONFIG_R3964 is not set
899# CONFIG_APPLICOM is not set
717# CONFIG_RAW_DRIVER is not set 900# CONFIG_RAW_DRIVER is not set
718# CONFIG_TCG_TPM is not set 901# CONFIG_TCG_TPM is not set
902CONFIG_DEVPORT=y
719CONFIG_I2C=y 903CONFIG_I2C=y
720CONFIG_I2C_BOARDINFO=y 904CONFIG_I2C_BOARDINFO=y
721# CONFIG_I2C_CHARDEV is not set 905# CONFIG_I2C_CHARDEV is not set
@@ -727,6 +911,24 @@ CONFIG_I2C_ALGOPCA=y
727# 911#
728 912
729# 913#
914# PC SMBus host controller drivers
915#
916# CONFIG_I2C_ALI1535 is not set
917# CONFIG_I2C_ALI1563 is not set
918# CONFIG_I2C_ALI15X3 is not set
919# CONFIG_I2C_AMD756 is not set
920# CONFIG_I2C_AMD8111 is not set
921# CONFIG_I2C_I801 is not set
922# CONFIG_I2C_ISCH is not set
923# CONFIG_I2C_PIIX4 is not set
924# CONFIG_I2C_NFORCE2 is not set
925# CONFIG_I2C_SIS5595 is not set
926# CONFIG_I2C_SIS630 is not set
927# CONFIG_I2C_SIS96X is not set
928# CONFIG_I2C_VIA is not set
929# CONFIG_I2C_VIAPRO is not set
930
931#
730# I2C system bus drivers (mostly embedded / system-on-chip) 932# I2C system bus drivers (mostly embedded / system-on-chip)
731# 933#
732# CONFIG_I2C_GPIO is not set 934# CONFIG_I2C_GPIO is not set
@@ -742,6 +944,11 @@ CONFIG_I2C_ALGOPCA=y
742# CONFIG_I2C_TINY_USB is not set 944# CONFIG_I2C_TINY_USB is not set
743 945
744# 946#
947# Graphics adapter I2C/DDC channel drivers
948#
949# CONFIG_I2C_VOODOO3 is not set
950
951#
745# Other I2C/SMBus bus drivers 952# Other I2C/SMBus bus drivers
746# 953#
747CONFIG_I2C_PCA_PLATFORM=y 954CONFIG_I2C_PCA_PLATFORM=y
@@ -754,7 +961,6 @@ CONFIG_I2C_PCA_PLATFORM=y
754# CONFIG_SENSORS_PCF8574 is not set 961# CONFIG_SENSORS_PCF8574 is not set
755# CONFIG_PCF8575 is not set 962# CONFIG_PCF8575 is not set
756# CONFIG_SENSORS_PCA9539 is not set 963# CONFIG_SENSORS_PCA9539 is not set
757# CONFIG_SENSORS_MAX6875 is not set
758# CONFIG_SENSORS_TSL2550 is not set 964# CONFIG_SENSORS_TSL2550 is not set
759# CONFIG_I2C_DEBUG_CORE is not set 965# CONFIG_I2C_DEBUG_CORE is not set
760# CONFIG_I2C_DEBUG_ALGO is not set 966# CONFIG_I2C_DEBUG_ALGO is not set
@@ -763,6 +969,7 @@ CONFIG_I2C_PCA_PLATFORM=y
763# CONFIG_SPI is not set 969# CONFIG_SPI is not set
764CONFIG_ARCH_REQUIRE_GPIOLIB=y 970CONFIG_ARCH_REQUIRE_GPIOLIB=y
765CONFIG_GPIOLIB=y 971CONFIG_GPIOLIB=y
972# CONFIG_DEBUG_GPIO is not set
766# CONFIG_GPIO_SYSFS is not set 973# CONFIG_GPIO_SYSFS is not set
767 974
768# 975#
@@ -779,15 +986,79 @@ CONFIG_GPIOLIB=y
779# 986#
780# PCI GPIO expanders: 987# PCI GPIO expanders:
781# 988#
989# CONFIG_GPIO_BT8XX is not set
782 990
783# 991#
784# SPI GPIO expanders: 992# SPI GPIO expanders:
785# 993#
786# CONFIG_W1 is not set 994# CONFIG_W1 is not set
787# CONFIG_POWER_SUPPLY is not set 995# CONFIG_POWER_SUPPLY is not set
788# CONFIG_HWMON is not set 996CONFIG_HWMON=y
997# CONFIG_HWMON_VID is not set
998# CONFIG_SENSORS_AD7414 is not set
999# CONFIG_SENSORS_AD7418 is not set
1000# CONFIG_SENSORS_ADM1021 is not set
1001# CONFIG_SENSORS_ADM1025 is not set
1002# CONFIG_SENSORS_ADM1026 is not set
1003# CONFIG_SENSORS_ADM1029 is not set
1004# CONFIG_SENSORS_ADM1031 is not set
1005# CONFIG_SENSORS_ADM9240 is not set
1006# CONFIG_SENSORS_ADT7462 is not set
1007# CONFIG_SENSORS_ADT7470 is not set
1008# CONFIG_SENSORS_ADT7473 is not set
1009# CONFIG_SENSORS_ADT7475 is not set
1010# CONFIG_SENSORS_ATXP1 is not set
1011# CONFIG_SENSORS_DS1621 is not set
1012# CONFIG_SENSORS_I5K_AMB is not set
1013# CONFIG_SENSORS_F71805F is not set
1014# CONFIG_SENSORS_F71882FG is not set
1015# CONFIG_SENSORS_F75375S is not set
1016# CONFIG_SENSORS_G760A is not set
1017# CONFIG_SENSORS_GL518SM is not set
1018# CONFIG_SENSORS_GL520SM is not set
1019# CONFIG_SENSORS_IT87 is not set
1020# CONFIG_SENSORS_LM63 is not set
1021# CONFIG_SENSORS_LM75 is not set
1022# CONFIG_SENSORS_LM77 is not set
1023# CONFIG_SENSORS_LM78 is not set
1024# CONFIG_SENSORS_LM80 is not set
1025# CONFIG_SENSORS_LM83 is not set
1026# CONFIG_SENSORS_LM85 is not set
1027# CONFIG_SENSORS_LM87 is not set
1028# CONFIG_SENSORS_LM90 is not set
1029# CONFIG_SENSORS_LM92 is not set
1030# CONFIG_SENSORS_LM93 is not set
1031# CONFIG_SENSORS_LTC4215 is not set
1032# CONFIG_SENSORS_LTC4245 is not set
1033# CONFIG_SENSORS_LM95241 is not set
1034# CONFIG_SENSORS_MAX1619 is not set
1035# CONFIG_SENSORS_MAX6650 is not set
1036# CONFIG_SENSORS_PC87360 is not set
1037# CONFIG_SENSORS_PC87427 is not set
1038# CONFIG_SENSORS_PCF8591 is not set
1039# CONFIG_SENSORS_SHT15 is not set
1040# CONFIG_SENSORS_SIS5595 is not set
1041# CONFIG_SENSORS_DME1737 is not set
1042# CONFIG_SENSORS_SMSC47M1 is not set
1043# CONFIG_SENSORS_SMSC47M192 is not set
1044# CONFIG_SENSORS_SMSC47B397 is not set
1045# CONFIG_SENSORS_ADS7828 is not set
1046# CONFIG_SENSORS_THMC50 is not set
1047# CONFIG_SENSORS_TMP401 is not set
1048# CONFIG_SENSORS_VIA686A is not set
1049# CONFIG_SENSORS_VT1211 is not set
1050# CONFIG_SENSORS_VT8231 is not set
1051# CONFIG_SENSORS_W83781D is not set
1052# CONFIG_SENSORS_W83791D is not set
1053# CONFIG_SENSORS_W83792D is not set
1054# CONFIG_SENSORS_W83793 is not set
1055# CONFIG_SENSORS_W83L785TS is not set
1056# CONFIG_SENSORS_W83L786NG is not set
1057# CONFIG_SENSORS_W83627HF is not set
1058# CONFIG_SENSORS_W83627EHF is not set
1059# CONFIG_HWMON_DEBUG_CHIP is not set
789# CONFIG_THERMAL is not set 1060# CONFIG_THERMAL is not set
790# CONFIG_THERMAL_HWMON is not set 1061CONFIG_THERMAL_HWMON=y
791# CONFIG_WATCHDOG is not set 1062# CONFIG_WATCHDOG is not set
792CONFIG_SSB_POSSIBLE=y 1063CONFIG_SSB_POSSIBLE=y
793 1064
@@ -811,10 +1082,7 @@ CONFIG_MFD_SM501=y
811# CONFIG_MFD_WM8350_I2C is not set 1082# CONFIG_MFD_WM8350_I2C is not set
812# CONFIG_MFD_PCF50633 is not set 1083# CONFIG_MFD_PCF50633 is not set
813# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
814 1085CONFIG_MEDIA_SUPPORT=y
815#
816# Multimedia devices
817#
818 1086
819# 1087#
820# Multimedia core support 1088# Multimedia core support
@@ -831,6 +1099,7 @@ CONFIG_MFD_SM501=y
831# 1099#
832# Graphics support 1100# Graphics support
833# 1101#
1102# CONFIG_DRM is not set
834# CONFIG_VGASTATE is not set 1103# CONFIG_VGASTATE is not set
835# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1104# CONFIG_VIDEO_OUTPUT_CONTROL is not set
836CONFIG_FB=y 1105CONFIG_FB=y
@@ -856,7 +1125,31 @@ CONFIG_FB_DEFERRED_IO=y
856# 1125#
857# Frame buffer hardware drivers 1126# Frame buffer hardware drivers
858# 1127#
1128# CONFIG_FB_CIRRUS is not set
1129# CONFIG_FB_PM2 is not set
1130# CONFIG_FB_CYBER2000 is not set
1131# CONFIG_FB_ASILIANT is not set
1132# CONFIG_FB_IMSTT is not set
859# CONFIG_FB_S1D13XXX is not set 1133# CONFIG_FB_S1D13XXX is not set
1134# CONFIG_FB_NVIDIA is not set
1135# CONFIG_FB_RIVA is not set
1136# CONFIG_FB_MATROX is not set
1137# CONFIG_FB_RADEON is not set
1138# CONFIG_FB_ATY128 is not set
1139# CONFIG_FB_ATY is not set
1140# CONFIG_FB_S3 is not set
1141# CONFIG_FB_SAVAGE is not set
1142# CONFIG_FB_SIS is not set
1143# CONFIG_FB_VIA is not set
1144# CONFIG_FB_NEOMAGIC is not set
1145# CONFIG_FB_KYRO is not set
1146# CONFIG_FB_3DFX is not set
1147# CONFIG_FB_VOODOO1 is not set
1148# CONFIG_FB_VT8623 is not set
1149# CONFIG_FB_TRIDENT is not set
1150# CONFIG_FB_ARK is not set
1151# CONFIG_FB_PM3 is not set
1152# CONFIG_FB_CARMINE is not set
860CONFIG_FB_SH_MOBILE_LCDC=m 1153CONFIG_FB_SH_MOBILE_LCDC=m
861CONFIG_FB_SM501=y 1154CONFIG_FB_SM501=y
862# CONFIG_FB_VIRTUAL is not set 1155# CONFIG_FB_VIRTUAL is not set
@@ -909,7 +1202,7 @@ CONFIG_HID_BELKIN=y
909CONFIG_HID_CHERRY=y 1202CONFIG_HID_CHERRY=y
910CONFIG_HID_CHICONY=y 1203CONFIG_HID_CHICONY=y
911CONFIG_HID_CYPRESS=y 1204CONFIG_HID_CYPRESS=y
912# CONFIG_DRAGONRISE_FF is not set 1205# CONFIG_HID_DRAGONRISE is not set
913CONFIG_HID_EZKEY=y 1206CONFIG_HID_EZKEY=y
914# CONFIG_HID_KYE is not set 1207# CONFIG_HID_KYE is not set
915CONFIG_HID_GYRATION=y 1208CONFIG_HID_GYRATION=y
@@ -926,14 +1219,15 @@ CONFIG_HID_PETALYNX=y
926CONFIG_HID_SAMSUNG=y 1219CONFIG_HID_SAMSUNG=y
927CONFIG_HID_SONY=y 1220CONFIG_HID_SONY=y
928CONFIG_HID_SUNPLUS=y 1221CONFIG_HID_SUNPLUS=y
929# CONFIG_GREENASIA_FF is not set 1222# CONFIG_HID_GREENASIA is not set
1223# CONFIG_HID_SMARTJOYPLUS is not set
930# CONFIG_HID_TOPSEED is not set 1224# CONFIG_HID_TOPSEED is not set
931CONFIG_THRUSTMASTER_FF=m 1225# CONFIG_HID_THRUSTMASTER is not set
932CONFIG_ZEROPLUS_FF=m 1226# CONFIG_HID_ZEROPLUS is not set
933CONFIG_USB_SUPPORT=y 1227CONFIG_USB_SUPPORT=y
934CONFIG_USB_ARCH_HAS_HCD=y 1228CONFIG_USB_ARCH_HAS_HCD=y
935CONFIG_USB_ARCH_HAS_OHCI=y 1229CONFIG_USB_ARCH_HAS_OHCI=y
936# CONFIG_USB_ARCH_HAS_EHCI is not set 1230CONFIG_USB_ARCH_HAS_EHCI=y
937CONFIG_USB=y 1231CONFIG_USB=y
938# CONFIG_USB_DEBUG is not set 1232# CONFIG_USB_DEBUG is not set
939CONFIG_USB_ANNOUNCE_NEW_DEVICES=y 1233CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -944,6 +1238,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
944CONFIG_USB_DEVICEFS=y 1238CONFIG_USB_DEVICEFS=y
945CONFIG_USB_DEVICE_CLASS=y 1239CONFIG_USB_DEVICE_CLASS=y
946# CONFIG_USB_DYNAMIC_MINORS is not set 1240# CONFIG_USB_DYNAMIC_MINORS is not set
1241# CONFIG_USB_SUSPEND is not set
947# CONFIG_USB_OTG is not set 1242# CONFIG_USB_OTG is not set
948# CONFIG_USB_OTG_WHITELIST is not set 1243# CONFIG_USB_OTG_WHITELIST is not set
949# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1244# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -955,12 +1250,19 @@ CONFIG_USB_MON=y
955# USB Host Controller Drivers 1250# USB Host Controller Drivers
956# 1251#
957# CONFIG_USB_C67X00_HCD is not set 1252# CONFIG_USB_C67X00_HCD is not set
1253# CONFIG_USB_XHCI_HCD is not set
1254# CONFIG_USB_EHCI_HCD is not set
958# CONFIG_USB_OXU210HP_HCD is not set 1255# CONFIG_USB_OXU210HP_HCD is not set
959# CONFIG_USB_ISP116X_HCD is not set 1256# CONFIG_USB_ISP116X_HCD is not set
960# CONFIG_USB_ISP1760_HCD is not set 1257# CONFIG_USB_ISP1760_HCD is not set
961# CONFIG_USB_OHCI_HCD is not set 1258CONFIG_USB_OHCI_HCD=y
1259# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1260# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1261CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1262# CONFIG_USB_UHCI_HCD is not set
962# CONFIG_USB_SL811_HCD is not set 1263# CONFIG_USB_SL811_HCD is not set
963# CONFIG_USB_R8A66597_HCD is not set 1264# CONFIG_USB_R8A66597_HCD is not set
1265# CONFIG_USB_WHCI_HCD is not set
964# CONFIG_USB_HWA_HCD is not set 1266# CONFIG_USB_HWA_HCD is not set
965 1267
966# 1268#
@@ -1034,14 +1336,74 @@ CONFIG_USB_STORAGE=y
1034# 1336#
1035# CONFIG_USB_GPIO_VBUS is not set 1337# CONFIG_USB_GPIO_VBUS is not set
1036# CONFIG_NOP_USB_XCEIV is not set 1338# CONFIG_NOP_USB_XCEIV is not set
1339# CONFIG_UWB is not set
1037# CONFIG_MMC is not set 1340# CONFIG_MMC is not set
1038# CONFIG_MEMSTICK is not set 1341# CONFIG_MEMSTICK is not set
1039# CONFIG_NEW_LEDS is not set 1342# CONFIG_NEW_LEDS is not set
1040# CONFIG_ACCESSIBILITY is not set 1343# CONFIG_ACCESSIBILITY is not set
1041# CONFIG_RTC_CLASS is not set 1344# CONFIG_INFINIBAND is not set
1345CONFIG_RTC_LIB=y
1346CONFIG_RTC_CLASS=y
1347CONFIG_RTC_HCTOSYS=y
1348CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1349# CONFIG_RTC_DEBUG is not set
1350
1351#
1352# RTC interfaces
1353#
1354CONFIG_RTC_INTF_SYSFS=y
1355CONFIG_RTC_INTF_PROC=y
1356CONFIG_RTC_INTF_DEV=y
1357# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1358# CONFIG_RTC_DRV_TEST is not set
1359
1360#
1361# I2C RTC drivers
1362#
1363# CONFIG_RTC_DRV_DS1307 is not set
1364# CONFIG_RTC_DRV_DS1374 is not set
1365# CONFIG_RTC_DRV_DS1672 is not set
1366# CONFIG_RTC_DRV_MAX6900 is not set
1367# CONFIG_RTC_DRV_RS5C372 is not set
1368# CONFIG_RTC_DRV_ISL1208 is not set
1369# CONFIG_RTC_DRV_X1205 is not set
1370# CONFIG_RTC_DRV_PCF8563 is not set
1371# CONFIG_RTC_DRV_PCF8583 is not set
1372# CONFIG_RTC_DRV_M41T80 is not set
1373# CONFIG_RTC_DRV_S35390A is not set
1374# CONFIG_RTC_DRV_FM3130 is not set
1375# CONFIG_RTC_DRV_RX8581 is not set
1376
1377#
1378# SPI RTC drivers
1379#
1380
1381#
1382# Platform RTC drivers
1383#
1384# CONFIG_RTC_DRV_DS1286 is not set
1385# CONFIG_RTC_DRV_DS1511 is not set
1386# CONFIG_RTC_DRV_DS1553 is not set
1387# CONFIG_RTC_DRV_DS1742 is not set
1388# CONFIG_RTC_DRV_STK17TA8 is not set
1389# CONFIG_RTC_DRV_M48T86 is not set
1390# CONFIG_RTC_DRV_M48T35 is not set
1391# CONFIG_RTC_DRV_M48T59 is not set
1392# CONFIG_RTC_DRV_BQ4802 is not set
1393# CONFIG_RTC_DRV_V3020 is not set
1394
1395#
1396# on-CPU RTC drivers
1397#
1398CONFIG_RTC_DRV_SH=y
1399CONFIG_RTC_DRV_GENERIC=y
1042# CONFIG_DMADEVICES is not set 1400# CONFIG_DMADEVICES is not set
1043# CONFIG_AUXDISPLAY is not set 1401# CONFIG_AUXDISPLAY is not set
1044# CONFIG_UIO is not set 1402# CONFIG_UIO is not set
1403
1404#
1405# TI VLYNQ
1406#
1045# CONFIG_STAGING is not set 1407# CONFIG_STAGING is not set
1046 1408
1047# 1409#
@@ -1055,16 +1417,25 @@ CONFIG_EXT3_FS=y
1055CONFIG_EXT3_FS_XATTR=y 1417CONFIG_EXT3_FS_XATTR=y
1056# CONFIG_EXT3_FS_POSIX_ACL is not set 1418# CONFIG_EXT3_FS_POSIX_ACL is not set
1057# CONFIG_EXT3_FS_SECURITY is not set 1419# CONFIG_EXT3_FS_SECURITY is not set
1058# CONFIG_EXT4_FS is not set 1420CONFIG_EXT4_FS=y
1421# CONFIG_EXT4DEV_COMPAT is not set
1422CONFIG_EXT4_FS_XATTR=y
1423# CONFIG_EXT4_FS_POSIX_ACL is not set
1424# CONFIG_EXT4_FS_SECURITY is not set
1059CONFIG_JBD=y 1425CONFIG_JBD=y
1426# CONFIG_JBD_DEBUG is not set
1427CONFIG_JBD2=y
1428# CONFIG_JBD2_DEBUG is not set
1060CONFIG_FS_MBCACHE=y 1429CONFIG_FS_MBCACHE=y
1061# CONFIG_REISERFS_FS is not set 1430# CONFIG_REISERFS_FS is not set
1062# CONFIG_JFS_FS is not set 1431# CONFIG_JFS_FS is not set
1063CONFIG_FS_POSIX_ACL=y 1432# CONFIG_FS_POSIX_ACL is not set
1064CONFIG_FILE_LOCKING=y
1065# CONFIG_XFS_FS is not set 1433# CONFIG_XFS_FS is not set
1066# CONFIG_OCFS2_FS is not set 1434# CONFIG_OCFS2_FS is not set
1067# CONFIG_BTRFS_FS is not set 1435CONFIG_BTRFS_FS=y
1436# CONFIG_BTRFS_FS_POSIX_ACL is not set
1437CONFIG_FILE_LOCKING=y
1438CONFIG_FSNOTIFY=y
1068CONFIG_DNOTIFY=y 1439CONFIG_DNOTIFY=y
1069CONFIG_INOTIFY=y 1440CONFIG_INOTIFY=y
1070CONFIG_INOTIFY_USER=y 1441CONFIG_INOTIFY_USER=y
@@ -1106,9 +1477,9 @@ CONFIG_PROC_PAGE_MONITOR=y
1106CONFIG_SYSFS=y 1477CONFIG_SYSFS=y
1107CONFIG_TMPFS=y 1478CONFIG_TMPFS=y
1108# CONFIG_TMPFS_POSIX_ACL is not set 1479# CONFIG_TMPFS_POSIX_ACL is not set
1109# CONFIG_HUGETLBFS is not set 1480CONFIG_HUGETLBFS=y
1110# CONFIG_HUGETLB_PAGE is not set 1481CONFIG_HUGETLB_PAGE=y
1111# CONFIG_CONFIGFS_FS is not set 1482CONFIG_CONFIGFS_FS=y
1112CONFIG_MISC_FILESYSTEMS=y 1483CONFIG_MISC_FILESYSTEMS=y
1113# CONFIG_ADFS_FS is not set 1484# CONFIG_ADFS_FS is not set
1114# CONFIG_AFFS_FS is not set 1485# CONFIG_AFFS_FS is not set
@@ -1121,7 +1492,7 @@ CONFIG_MISC_FILESYSTEMS=y
1121# CONFIG_CRAMFS is not set 1492# CONFIG_CRAMFS is not set
1122# CONFIG_SQUASHFS is not set 1493# CONFIG_SQUASHFS is not set
1123# CONFIG_VXFS_FS is not set 1494# CONFIG_VXFS_FS is not set
1124CONFIG_MINIX_FS=y 1495# CONFIG_MINIX_FS is not set
1125# CONFIG_OMFS_FS is not set 1496# CONFIG_OMFS_FS is not set
1126# CONFIG_HPFS_FS is not set 1497# CONFIG_HPFS_FS is not set
1127# CONFIG_QNX4FS_FS is not set 1498# CONFIG_QNX4FS_FS is not set
@@ -1135,13 +1506,9 @@ CONFIG_NFS_V3=y
1135# CONFIG_NFS_V3_ACL is not set 1506# CONFIG_NFS_V3_ACL is not set
1136CONFIG_NFS_V4=y 1507CONFIG_NFS_V4=y
1137CONFIG_ROOT_NFS=y 1508CONFIG_ROOT_NFS=y
1138CONFIG_NFSD=y 1509# CONFIG_NFSD is not set
1139CONFIG_NFSD_V3=y
1140# CONFIG_NFSD_V3_ACL is not set
1141CONFIG_NFSD_V4=y
1142CONFIG_LOCKD=y 1510CONFIG_LOCKD=y
1143CONFIG_LOCKD_V4=y 1511CONFIG_LOCKD_V4=y
1144CONFIG_EXPORTFS=y
1145CONFIG_NFS_COMMON=y 1512CONFIG_NFS_COMMON=y
1146CONFIG_SUNRPC=y 1513CONFIG_SUNRPC=y
1147CONFIG_SUNRPC_GSS=y 1514CONFIG_SUNRPC_GSS=y
@@ -1204,46 +1571,74 @@ CONFIG_NLS_ISO8859_1=y
1204# Kernel hacking 1571# Kernel hacking
1205# 1572#
1206CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1573CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1207# CONFIG_PRINTK_TIME is not set 1574CONFIG_PRINTK_TIME=y
1208# CONFIG_ENABLE_WARN_DEPRECATED is not set 1575# CONFIG_ENABLE_WARN_DEPRECATED is not set
1209# CONFIG_ENABLE_MUST_CHECK is not set 1576# CONFIG_ENABLE_MUST_CHECK is not set
1210CONFIG_FRAME_WARN=1024 1577CONFIG_FRAME_WARN=1024
1211# CONFIG_MAGIC_SYSRQ is not set 1578# CONFIG_MAGIC_SYSRQ is not set
1212# CONFIG_UNUSED_SYMBOLS is not set 1579# CONFIG_UNUSED_SYMBOLS is not set
1213# CONFIG_DEBUG_FS is not set 1580CONFIG_DEBUG_FS=y
1214# CONFIG_HEADERS_CHECK is not set 1581# CONFIG_HEADERS_CHECK is not set
1215# CONFIG_DEBUG_KERNEL is not set 1582CONFIG_DEBUG_KERNEL=y
1216# CONFIG_DEBUG_BUGVERBOSE is not set 1583# CONFIG_DEBUG_SHIRQ is not set
1584CONFIG_DETECT_SOFTLOCKUP=y
1585# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1586CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1587CONFIG_DETECT_HUNG_TASK=y
1588# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1589CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1590CONFIG_SCHED_DEBUG=y
1591# CONFIG_SCHEDSTATS is not set
1592# CONFIG_TIMER_STATS is not set
1593# CONFIG_DEBUG_OBJECTS is not set
1594# CONFIG_DEBUG_SLAB is not set
1595# CONFIG_DEBUG_RT_MUTEXES is not set
1596# CONFIG_RT_MUTEX_TESTER is not set
1597# CONFIG_DEBUG_SPINLOCK is not set
1598# CONFIG_DEBUG_MUTEXES is not set
1599# CONFIG_DEBUG_LOCK_ALLOC is not set
1600# CONFIG_PROVE_LOCKING is not set
1601# CONFIG_LOCK_STAT is not set
1602# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1603# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1604# CONFIG_DEBUG_KOBJECT is not set
1605CONFIG_DEBUG_BUGVERBOSE=y
1606CONFIG_DEBUG_INFO=y
1607# CONFIG_DEBUG_VM is not set
1608# CONFIG_DEBUG_WRITECOUNT is not set
1217# CONFIG_DEBUG_MEMORY_INIT is not set 1609# CONFIG_DEBUG_MEMORY_INIT is not set
1610# CONFIG_DEBUG_LIST is not set
1611# CONFIG_DEBUG_SG is not set
1612# CONFIG_DEBUG_NOTIFIERS is not set
1613CONFIG_FRAME_POINTER=y
1614# CONFIG_RCU_TORTURE_TEST is not set
1218# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1615# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1616# CONFIG_BACKTRACE_SELF_TEST is not set
1617# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1618# CONFIG_FAULT_INJECTION is not set
1219# CONFIG_LATENCYTOP is not set 1619# CONFIG_LATENCYTOP is not set
1220CONFIG_SYSCTL_SYSCALL_CHECK=y 1620CONFIG_SYSCTL_SYSCALL_CHECK=y
1621# CONFIG_PAGE_POISONING is not set
1221CONFIG_HAVE_FUNCTION_TRACER=y 1622CONFIG_HAVE_FUNCTION_TRACER=y
1222CONFIG_HAVE_DYNAMIC_FTRACE=y 1623CONFIG_HAVE_DYNAMIC_FTRACE=y
1223CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1624CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1224CONFIG_TRACING_SUPPORT=y 1625CONFIG_TRACING_SUPPORT=y
1225 1626# CONFIG_FTRACE is not set
1226# 1627# CONFIG_DYNAMIC_DEBUG is not set
1227# Tracers
1228#
1229# CONFIG_FUNCTION_TRACER is not set
1230# CONFIG_IRQSOFF_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_DMA_API_DEBUG is not set 1628# CONFIG_DMA_API_DEBUG is not set
1242# CONFIG_SAMPLES is not set 1629# CONFIG_SAMPLES is not set
1243CONFIG_HAVE_ARCH_KGDB=y 1630CONFIG_HAVE_ARCH_KGDB=y
1631# CONFIG_KGDB is not set
1244# CONFIG_SH_STANDARD_BIOS is not set 1632# CONFIG_SH_STANDARD_BIOS is not set
1245# CONFIG_EARLY_SCIF_CONSOLE is not set 1633CONFIG_EARLY_SCIF_CONSOLE=y
1246# CONFIG_MORE_COMPILE_OPTIONS is not set 1634CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffeb0000
1635CONFIG_EARLY_PRINTK=y
1636# CONFIG_DEBUG_BOOTMEM is not set
1637# CONFIG_DEBUG_STACKOVERFLOW is not set
1638# CONFIG_DEBUG_STACK_USAGE is not set
1639# CONFIG_4KSTACKS is not set
1640# CONFIG_DUMP_CODE is not set
1641# CONFIG_SH_NO_BSS_INIT is not set
1247 1642
1248# 1643#
1249# Security options 1644# Security options
@@ -1303,7 +1698,7 @@ CONFIG_CRYPTO_HMAC=y
1303# 1698#
1304# Digest 1699# Digest
1305# 1700#
1306# CONFIG_CRYPTO_CRC32C is not set 1701CONFIG_CRYPTO_CRC32C=y
1307# CONFIG_CRYPTO_MD4 is not set 1702# CONFIG_CRYPTO_MD4 is not set
1308CONFIG_CRYPTO_MD5=y 1703CONFIG_CRYPTO_MD5=y
1309# CONFIG_CRYPTO_MICHAEL_MIC is not set 1704# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1356,13 +1751,18 @@ CONFIG_CRYPTO_DES=y
1356CONFIG_BITREVERSE=y 1751CONFIG_BITREVERSE=y
1357CONFIG_GENERIC_FIND_LAST_BIT=y 1752CONFIG_GENERIC_FIND_LAST_BIT=y
1358# CONFIG_CRC_CCITT is not set 1753# CONFIG_CRC_CCITT is not set
1359# CONFIG_CRC16 is not set 1754CONFIG_CRC16=y
1360# CONFIG_CRC_T10DIF is not set 1755# CONFIG_CRC_T10DIF is not set
1361# CONFIG_CRC_ITU_T is not set 1756# CONFIG_CRC_ITU_T is not set
1362CONFIG_CRC32=y 1757CONFIG_CRC32=y
1363# CONFIG_CRC7 is not set 1758# CONFIG_CRC7 is not set
1364# CONFIG_LIBCRC32C is not set 1759CONFIG_LIBCRC32C=y
1760CONFIG_AUDIT_GENERIC=y
1761CONFIG_ZLIB_INFLATE=y
1762CONFIG_ZLIB_DEFLATE=y
1763CONFIG_DECOMPRESS_GZIP=y
1365CONFIG_HAS_IOMEM=y 1764CONFIG_HAS_IOMEM=y
1366CONFIG_HAS_IOPORT=y 1765CONFIG_HAS_IOPORT=y
1367CONFIG_HAS_DMA=y 1766CONFIG_HAS_DMA=y
1368CONFIG_NLATTR=y 1767CONFIG_NLATTR=y
1768CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/drivers/pci/Makefile b/arch/sh/drivers/pci/Makefile
index d2ffc477549..08af1f45975 100644
--- a/arch/sh/drivers/pci/Makefile
+++ b/arch/sh/drivers/pci/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_CPU_SUBTYPE_SH7751R) += pci-sh7751.o ops-sh4.o
8obj-$(CONFIG_CPU_SUBTYPE_SH7763) += pci-sh7780.o ops-sh4.o 8obj-$(CONFIG_CPU_SUBTYPE_SH7763) += pci-sh7780.o ops-sh4.o
9obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o 9obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o
10obj-$(CONFIG_CPU_SUBTYPE_SH7785) += pci-sh7780.o ops-sh4.o 10obj-$(CONFIG_CPU_SUBTYPE_SH7785) += pci-sh7780.o ops-sh4.o
11obj-$(CONFIG_CPU_SUBTYPE_SH7786) += ops-sh7786.o
11obj-$(CONFIG_CPU_SH5) += pci-sh5.o ops-sh5.o 12obj-$(CONFIG_CPU_SH5) += pci-sh5.o ops-sh5.o
12 13
13obj-$(CONFIG_SH_DREAMCAST) += ops-dreamcast.o fixups-dreamcast.o \ 14obj-$(CONFIG_SH_DREAMCAST) += ops-dreamcast.o fixups-dreamcast.o \
@@ -24,3 +25,4 @@ obj-$(CONFIG_SH_TITAN) += fixups-titan.o
24obj-$(CONFIG_SH_LANDISK) += fixups-landisk.o 25obj-$(CONFIG_SH_LANDISK) += fixups-landisk.o
25obj-$(CONFIG_SH_LBOX_RE2) += fixups-rts7751r2d.o 26obj-$(CONFIG_SH_LBOX_RE2) += fixups-rts7751r2d.o
26obj-$(CONFIG_SH_CAYMAN) += fixups-cayman.o 27obj-$(CONFIG_SH_CAYMAN) += fixups-cayman.o
28obj-$(CONFIG_SH_URQUELL) += pcie-sh7786.o
diff --git a/arch/sh/drivers/pci/ops-dreamcast.c b/arch/sh/drivers/pci/ops-dreamcast.c
index e83d0d3aabe..16e0a1baad8 100644
--- a/arch/sh/drivers/pci/ops-dreamcast.c
+++ b/arch/sh/drivers/pci/ops-dreamcast.c
@@ -18,7 +18,6 @@
18#include <linux/pci.h> 18#include <linux/pci.h>
19#include <linux/module.h> 19#include <linux/module.h>
20#include <linux/io.h> 20#include <linux/io.h>
21#include <linux/irq.h>
22#include <mach/pci.h> 21#include <mach/pci.h>
23 22
24/* 23/*
diff --git a/arch/sh/drivers/pci/ops-sh7786.c b/arch/sh/drivers/pci/ops-sh7786.c
new file mode 100644
index 00000000000..48f594b9582
--- /dev/null
+++ b/arch/sh/drivers/pci/ops-sh7786.c
@@ -0,0 +1,134 @@
1/*
2 * Generic SH7786 PCI-Express operations.
3 *
4 * Copyright (C) 2009 Paul Mundt
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License v2. See the file "COPYING" in the main directory of this archive
8 * for more details.
9 */
10#include <linux/kernel.h>
11#include <linux/init.h>
12#include <linux/pci.h>
13#include <linux/io.h>
14#include <linux/spinlock.h>
15#include "pcie-sh7786.h"
16
17enum {
18 PCI_ACCESS_READ,
19 PCI_ACCESS_WRITE,
20};
21
22static DEFINE_SPINLOCK(sh7786_pcie_lock);
23
24static int sh7786_pcie_config_access(unsigned char access_type,
25 struct pci_bus *bus, unsigned int devfn, int where, u32 *data)
26{
27 struct pci_channel *chan = bus->sysdata;
28 int dev, func;
29
30 dev = PCI_SLOT(devfn);
31 func = PCI_FUNC(devfn);
32
33 if (bus->number > 255 || dev > 31 || func > 7)
34 return PCIBIOS_FUNC_NOT_SUPPORTED;
35 if (devfn)
36 return PCIBIOS_DEVICE_NOT_FOUND;
37
38 /* Set the PIO address */
39 pci_write_reg(chan, (bus->number << 24) | (dev << 19) |
40 (func << 16) | (where & ~3), SH4A_PCIEPAR);
41
42 /* Enable the configuration access */
43 pci_write_reg(chan, (1 << 31), SH4A_PCIEPCTLR);
44
45 if (access_type == PCI_ACCESS_READ)
46 *data = pci_read_reg(chan, SH4A_PCIEPDR);
47 else
48 pci_write_reg(chan, *data, SH4A_PCIEPDR);
49
50 /* Check for master and target aborts */
51 if (pci_read_reg(chan, SH4A_PCIEPCICONF1) & ((1 << 29) | (1 << 28)))
52 return PCIBIOS_DEVICE_NOT_FOUND;
53
54 return PCIBIOS_SUCCESSFUL;
55}
56
57static int sh7786_pcie_read(struct pci_bus *bus, unsigned int devfn,
58 int where, int size, u32 *val)
59{
60 unsigned long flags;
61 int ret;
62 u32 data;
63
64 if ((size == 2) && (where & 1))
65 return PCIBIOS_BAD_REGISTER_NUMBER;
66 else if ((size == 4) && (where & 3))
67 return PCIBIOS_BAD_REGISTER_NUMBER;
68
69 spin_lock_irqsave(&sh7786_pcie_lock, flags);
70 ret = sh7786_pcie_config_access(PCI_ACCESS_READ, bus,
71 devfn, where, &data);
72 if (ret != PCIBIOS_SUCCESSFUL)
73 goto out;
74
75 if (size == 1)
76 *val = (data >> ((where & 3) << 3)) & 0xff;
77 else if (size == 2)
78 *val = (data >> ((where & 2) << 3)) & 0xffff;
79 else
80 *val = data;
81
82 dev_dbg(&bus->dev, "pcie-config-read: bus=%3d devfn=0x%04x "
83 "where=0x%04x size=%d val=0x%08lx\n", bus->number,
84 devfn, where, size, (unsigned long)*val);
85
86out:
87 spin_unlock_irqrestore(&sh7786_pcie_lock, flags);
88 return ret;
89}
90
91static int sh7786_pcie_write(struct pci_bus *bus, unsigned int devfn,
92 int where, int size, u32 val)
93{
94 unsigned long flags;
95 int shift, ret;
96 u32 data;
97
98 if ((size == 2) && (where & 1))
99 return PCIBIOS_BAD_REGISTER_NUMBER;
100 else if ((size == 4) && (where & 3))
101 return PCIBIOS_BAD_REGISTER_NUMBER;
102
103 spin_lock_irqsave(&sh7786_pcie_lock, flags);
104 ret = sh7786_pcie_config_access(PCI_ACCESS_READ, bus,
105 devfn, where, &data);
106 if (ret != PCIBIOS_SUCCESSFUL)
107 goto out;
108
109 dev_dbg(&bus->dev, "pcie-config-write: bus=%3d devfn=0x%04x "
110 "where=0x%04x size=%d val=%08lx\n", bus->number,
111 devfn, where, size, (unsigned long)val);
112
113 if (size == 1) {
114 shift = (where & 3) << 3;
115 data &= ~(0xff << shift);
116 data |= ((val & 0xff) << shift);
117 } else if (size == 2) {
118 shift = (where & 2) << 3;
119 data &= ~(0xffff << shift);
120 data |= ((val & 0xffff) << shift);
121 } else
122 data = val;
123
124 ret = sh7786_pcie_config_access(PCI_ACCESS_WRITE, bus,
125 devfn, where, &data);
126out:
127 spin_unlock_irqrestore(&sh7786_pcie_lock, flags);
128 return ret;
129}
130
131struct pci_ops sh7786_pci_ops = {
132 .read = sh7786_pcie_read,
133 .write = sh7786_pcie_write,
134};
diff --git a/arch/sh/drivers/pci/pci.c b/arch/sh/drivers/pci/pci.c
index 54d77cbb8b3..9a1c423ad16 100644
--- a/arch/sh/drivers/pci/pci.c
+++ b/arch/sh/drivers/pci/pci.c
@@ -53,12 +53,8 @@ static DEFINE_MUTEX(pci_scan_mutex);
53 53
54void __devinit register_pci_controller(struct pci_channel *hose) 54void __devinit register_pci_controller(struct pci_channel *hose)
55{ 55{
56 if (request_resource(&iomem_resource, hose->mem_resource) < 0) 56 request_resource(&iomem_resource, hose->mem_resource);
57 goto out; 57 request_resource(&ioport_resource, hose->io_resource);
58 if (request_resource(&ioport_resource, hose->io_resource) < 0) {
59 release_resource(hose->mem_resource);
60 goto out;
61 }
62 58
63 *hose_tail = hose; 59 *hose_tail = hose;
64 hose_tail = &hose->next; 60 hose_tail = &hose->next;
@@ -80,12 +76,6 @@ void __devinit register_pci_controller(struct pci_channel *hose)
80 pcibios_scanbus(hose); 76 pcibios_scanbus(hose);
81 mutex_unlock(&pci_scan_mutex); 77 mutex_unlock(&pci_scan_mutex);
82 } 78 }
83
84 return;
85
86out:
87 printk(KERN_WARNING
88 "Skipping PCI bus scan due to resource conflict\n");
89} 79}
90 80
91static int __init pcibios_init(void) 81static int __init pcibios_init(void)
diff --git a/arch/sh/drivers/pci/pcie-sh7786.c b/arch/sh/drivers/pci/pcie-sh7786.c
new file mode 100644
index 00000000000..ac37ee879ba
--- /dev/null
+++ b/arch/sh/drivers/pci/pcie-sh7786.c
@@ -0,0 +1,355 @@
1/*
2 * Low-Level PCI Express Support for the SH7786
3 *
4 * Copyright (C) 2009 Paul Mundt
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.
9 */
10#include <linux/pci.h>
11#include <linux/init.h>
12#include <linux/kernel.h>
13#include <linux/io.h>
14#include <linux/delay.h>
15#include "pcie-sh7786.h"
16#include <asm/sizes.h>
17
18struct sh7786_pcie_port {
19 struct pci_channel *hose;
20 unsigned int index;
21 int endpoint;
22 int link;
23};
24
25static struct sh7786_pcie_port *sh7786_pcie_ports;
26static unsigned int nr_ports;
27
28static struct sh7786_pcie_hwops {
29 int (*core_init)(void);
30 int (*port_init_hw)(struct sh7786_pcie_port *port);
31} *sh7786_pcie_hwops;
32
33static struct resource sh7786_pci_32bit_mem_resources[] = {
34 {
35 .name = "pci0_mem",
36 .start = SH4A_PCIMEM_BASEA,
37 .end = SH4A_PCIMEM_BASEA + SZ_64M - 1,
38 .flags = IORESOURCE_MEM,
39 }, {
40 .name = "pci1_mem",
41 .start = SH4A_PCIMEM_BASEA1,
42 .end = SH4A_PCIMEM_BASEA1 + SZ_64M - 1,
43 .flags = IORESOURCE_MEM,
44 }, {
45 .name = "pci2_mem",
46 .start = SH4A_PCIMEM_BASEA2,
47 .end = SH4A_PCIMEM_BASEA2 + SZ_64M - 1,
48 .flags = IORESOURCE_MEM,
49 },
50};
51
52static struct resource sh7786_pci_29bit_mem_resource = {
53 .start = SH4A_PCIMEM_BASE,
54 .end = SH4A_PCIMEM_BASE + SZ_64M - 1,
55 .flags = IORESOURCE_MEM,
56};
57
58static struct resource sh7786_pci_io_resources[] = {
59 {
60 .name = "pci0_io",
61 .start = SH4A_PCIIO_BASE,
62 .end = SH4A_PCIIO_BASE + SZ_8M - 1,
63 .flags = IORESOURCE_IO,
64 }, {
65 .name = "pci1_io",
66 .start = SH4A_PCIIO_BASE1,
67 .end = SH4A_PCIIO_BASE1 + SZ_8M - 1,
68 .flags = IORESOURCE_IO,
69 }, {
70 .name = "pci2_io",
71 .start = SH4A_PCIIO_BASE2,
72 .end = SH4A_PCIIO_BASE2 + SZ_4M - 1,
73 .flags = IORESOURCE_IO,
74 },
75};
76
77extern struct pci_ops sh7786_pci_ops;
78
79#define DEFINE_CONTROLLER(start, idx) \
80{ \
81 .pci_ops = &sh7786_pci_ops, \
82 .reg_base = start, \
83 /* mem_resource filled in at probe time */ \
84 .mem_offset = 0, \
85 .io_resource = &sh7786_pci_io_resources[idx], \
86 .io_offset = 0, \
87}
88
89static struct pci_channel sh7786_pci_channels[] = {
90 DEFINE_CONTROLLER(0xfe000000, 0),
91 DEFINE_CONTROLLER(0xfe200000, 1),
92 DEFINE_CONTROLLER(0xfcc00000, 2),
93};
94
95static int phy_wait_for_ack(struct pci_channel *chan)
96{
97 unsigned int timeout = 100;
98
99 while (timeout--) {
100 if (pci_read_reg(chan, SH4A_PCIEPHYADRR) & (1 << BITS_ACK))
101 return 0;
102
103 udelay(100);
104 }
105
106 return -ETIMEDOUT;
107}
108
109static int pci_wait_for_irq(struct pci_channel *chan, unsigned int mask)
110{
111 unsigned int timeout = 100;
112
113 while (timeout--) {
114 if ((pci_read_reg(chan, SH4A_PCIEINTR) & mask) == mask)
115 return 0;
116
117 udelay(100);
118 }
119
120 return -ETIMEDOUT;
121}
122
123static void phy_write_reg(struct pci_channel *chan, unsigned int addr,
124 unsigned int lane, unsigned int data)
125{
126 unsigned long phyaddr, ctrl;
127
128 phyaddr = (1 << BITS_CMD) + ((lane & 0xf) << BITS_LANE) +
129 ((addr & 0xff) << BITS_ADR);
130
131 /* Enable clock */
132 ctrl = pci_read_reg(chan, SH4A_PCIEPHYCTLR);
133 ctrl |= (1 << BITS_CKE);
134 pci_write_reg(chan, ctrl, SH4A_PCIEPHYCTLR);
135
136 /* Set write data */
137 pci_write_reg(chan, data, SH4A_PCIEPHYDOUTR);
138 pci_write_reg(chan, phyaddr, SH4A_PCIEPHYADRR);
139
140 phy_wait_for_ack(chan);
141
142 /* Clear command */
143 pci_write_reg(chan, 0, SH4A_PCIEPHYADRR);
144
145 phy_wait_for_ack(chan);
146
147 /* Disable clock */
148 ctrl = pci_read_reg(chan, SH4A_PCIEPHYCTLR);
149 ctrl &= ~(1 << BITS_CKE);
150 pci_write_reg(chan, ctrl, SH4A_PCIEPHYCTLR);
151}
152
153static int phy_init(struct pci_channel *chan)
154{
155 unsigned int timeout = 100;
156
157 /* Initialize the phy */
158 phy_write_reg(chan, 0x60, 0xf, 0x004b008b);
159 phy_write_reg(chan, 0x61, 0xf, 0x00007b41);
160 phy_write_reg(chan, 0x64, 0xf, 0x00ff4f00);
161 phy_write_reg(chan, 0x65, 0xf, 0x09070907);
162 phy_write_reg(chan, 0x66, 0xf, 0x00000010);
163 phy_write_reg(chan, 0x74, 0xf, 0x0007001c);
164 phy_write_reg(chan, 0x79, 0xf, 0x01fc000d);
165
166 /* Deassert Standby */
167 phy_write_reg(chan, 0x67, 0xf, 0x00000400);
168
169 while (timeout--) {
170 if (pci_read_reg(chan, SH4A_PCIEPHYSR))
171 return 0;
172
173 udelay(100);
174 }
175
176 return -ETIMEDOUT;
177}
178
179static int pcie_init(struct sh7786_pcie_port *port)
180{
181 struct pci_channel *chan = port->hose;
182 unsigned int data;
183 int ret;
184
185 /* Begin initialization */
186 pci_write_reg(chan, 0, SH4A_PCIETCTLR);
187
188 /* Initialize as type1. */
189 data = pci_read_reg(chan, SH4A_PCIEPCICONF3);
190 data &= ~(0x7f << 16);
191 data |= PCI_HEADER_TYPE_BRIDGE << 16;
192 pci_write_reg(chan, data, SH4A_PCIEPCICONF3);
193
194 /* Initialize default capabilities. */
195 data = pci_read_reg(chan, SH4A_PCIEEXPCAP0);
196 data &= ~(PCI_EXP_FLAGS_TYPE << 16);
197
198 if (port->endpoint)
199 data |= PCI_EXP_TYPE_ENDPOINT << 20;
200 else
201 data |= PCI_EXP_TYPE_ROOT_PORT << 20;
202
203 data |= PCI_CAP_ID_EXP;
204 pci_write_reg(chan, data, SH4A_PCIEEXPCAP0);
205
206 /* Enable x4 link width and extended sync. */
207 data = pci_read_reg(chan, SH4A_PCIEEXPCAP4);
208 data &= ~(PCI_EXP_LNKSTA_NLW << 16);
209 data |= (1 << 22) | PCI_EXP_LNKCTL_ES;
210 pci_write_reg(chan, data, SH4A_PCIEEXPCAP4);
211
212 /* Set the completion timer timeout to the maximum 32ms. */
213 data = pci_read_reg(chan, SH4A_PCIETLCTLR);
214 data &= ~0xffff;
215 data |= 0x32 << 8;
216 pci_write_reg(chan, data, SH4A_PCIETLCTLR);
217
218 /*
219 * Set fast training sequences to the maximum 255,
220 * and enable MAC data scrambling.
221 */
222 data = pci_read_reg(chan, SH4A_PCIEMACCTLR);
223 data &= ~PCIEMACCTLR_SCR_DIS;
224 data |= (0xff << 16);
225 pci_write_reg(chan, data, SH4A_PCIEMACCTLR);
226
227 /* Finish initialization */
228 data = pci_read_reg(chan, SH4A_PCIETCTLR);
229 data |= 0x1;
230 pci_write_reg(chan, data, SH4A_PCIETCTLR);
231
232 /* Enable DL_Active Interrupt generation */
233 data = pci_read_reg(chan, SH4A_PCIEDLINTENR);
234 data |= PCIEDLINTENR_DLL_ACT_ENABLE;
235 pci_write_reg(chan, data, SH4A_PCIEDLINTENR);
236
237 /* Disable MAC data scrambling. */
238 data = pci_read_reg(chan, SH4A_PCIEMACCTLR);
239 data |= PCIEMACCTLR_SCR_DIS | (0xff << 16);
240 pci_write_reg(chan, data, SH4A_PCIEMACCTLR);
241
242 ret = pci_wait_for_irq(chan, MASK_INT_TX_CTRL);
243 if (unlikely(ret != 0))
244 return -ENODEV;
245
246 pci_write_reg(chan, 0x00100007, SH4A_PCIEPCICONF1);
247 pci_write_reg(chan, 0x80888000, SH4A_PCIETXVC0DCTLR);
248 pci_write_reg(chan, 0x00222000, SH4A_PCIERXVC0DCTLR);
249 pci_write_reg(chan, 0x000050A0, SH4A_PCIEEXPCAP2);
250
251 wmb();
252
253 data = pci_read_reg(chan, SH4A_PCIEMACSR);
254 printk(KERN_NOTICE "PCI: PCIe#%d link width %d\n",
255 port->index, (data >> 20) & 0x3f);
256
257 pci_write_reg(chan, 0x007c0000, SH4A_PCIEPAMR0);
258 pci_write_reg(chan, 0x00000000, SH4A_PCIEPARH0);
259 pci_write_reg(chan, 0x00000000, SH4A_PCIEPARL0);
260 pci_write_reg(chan, 0x80000100, SH4A_PCIEPTCTLR0);
261
262 pci_write_reg(chan, 0x03fc0000, SH4A_PCIEPAMR2);
263 pci_write_reg(chan, 0x00000000, SH4A_PCIEPARH2);
264 pci_write_reg(chan, 0x00000000, SH4A_PCIEPARL2);
265 pci_write_reg(chan, 0x80000000, SH4A_PCIEPTCTLR2);
266
267 return 0;
268}
269
270int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
271{
272 return 71;
273}
274
275static int sh7786_pcie_core_init(void)
276{
277 /* Return the number of ports */
278 return test_mode_pin(MODE_PIN12) ? 3 : 2;
279}
280
281static int __devinit sh7786_pcie_init_hw(struct sh7786_pcie_port *port)
282{
283 int ret;
284
285 ret = phy_init(port->hose);
286 if (unlikely(ret < 0))
287 return ret;
288
289 /*
290 * Check if we are configured in endpoint or root complex mode,
291 * this is a fixed pin setting that applies to all PCIe ports.
292 */
293 port->endpoint = test_mode_pin(MODE_PIN11);
294
295 ret = pcie_init(port);
296 if (unlikely(ret < 0))
297 return ret;
298
299 register_pci_controller(port->hose);
300
301 return 0;
302}
303
304static struct sh7786_pcie_hwops sh7786_65nm_pcie_hwops __initdata = {
305 .core_init = sh7786_pcie_core_init,
306 .port_init_hw = sh7786_pcie_init_hw,
307};
308
309static int __init sh7786_pcie_init(void)
310{
311 int ret = 0, i;
312
313 printk(KERN_NOTICE "PCI: Starting intialization.\n");
314
315 sh7786_pcie_hwops = &sh7786_65nm_pcie_hwops;
316
317 nr_ports = sh7786_pcie_hwops->core_init();
318 BUG_ON(nr_ports > ARRAY_SIZE(sh7786_pci_channels));
319
320 if (unlikely(nr_ports == 0))
321 return -ENODEV;
322
323 sh7786_pcie_ports = kzalloc(nr_ports * sizeof(struct sh7786_pcie_port),
324 GFP_KERNEL);
325 if (unlikely(!sh7786_pcie_ports))
326 return -ENOMEM;
327
328 printk(KERN_NOTICE "PCI: probing %d ports.\n", nr_ports);
329
330 for (i = 0; i < nr_ports; i++) {
331 struct sh7786_pcie_port *port = sh7786_pcie_ports + i;
332
333 port->index = i;
334 port->hose = sh7786_pci_channels + i;
335 port->hose->io_map_base = port->hose->io_resource->start;
336
337 /*
338 * Check if we are booting in 29 or 32-bit mode
339 *
340 * 32-bit mode provides each controller with its own
341 * memory window, while 29-bit mode uses a shared one.
342 */
343 port->hose->mem_resource = test_mode_pin(MODE_PIN10) ?
344 &sh7786_pci_32bit_mem_resources[i] :
345 &sh7786_pci_29bit_mem_resource;
346
347 ret |= sh7786_pcie_hwops->port_init_hw(port);
348 }
349
350 if (unlikely(ret))
351 return ret;
352
353 return 0;
354}
355arch_initcall(sh7786_pcie_init);
diff --git a/arch/sh/drivers/pci/pcie-sh7786.h b/arch/sh/drivers/pci/pcie-sh7786.h
new file mode 100644
index 00000000000..c655290a775
--- /dev/null
+++ b/arch/sh/drivers/pci/pcie-sh7786.h
@@ -0,0 +1,589 @@
1/*
2 * SH7786 PCI-Express controller definitions.
3 *
4 * Copyright (C) 2008, 2009 Renesas Technology Corp.
5 * All rights reserved.
6 *
7 * This file is subject to the terms and conditions of the GNU General Public
8 * License. See the file "COPYING" in the main directory of this archive
9 * for more details.
10 */
11#ifndef __PCI_SH7786_H
12#define __PCI_SH7786_H
13
14/* PCIe bus-0(x4) on SH7786 */ // Rev1.171
15#define SH4A_PCIE_SPW_BASE 0xFE000000 /* spw config address for controller 0 */
16#define SH4A_PCIE_SPW_BASE1 0xFE200000 /* spw config address for controller 1 (Rev1.14)*/
17#define SH4A_PCIE_SPW_BASE2 0xFCC00000 /* spw config address for controller 2 (Rev1.171)*/
18#define SH4A_PCIE_SPW_BASE_LEN 0x00080000
19
20#define SH4A_PCI_CNFG_BASE 0xFE040000 /* pci config address for controller 0 */
21#define SH4A_PCI_CNFG_BASE1 0xFE240000 /* pci config address for controller 1 (Rev1.14)*/
22#define SH4A_PCI_CNFG_BASE2 0xFCC40000 /* pci config address for controller 2 (Rev1.171)*/
23#define SH4A_PCI_CNFG_BASE_LEN 0x00040000
24
25#define SH4A_PCIPIO_ADDR_OFFSET 0x000001c0 /* offset to pci config_address */
26#define SH4A_PCIPIO_DATA_OFFSET 0x00000220 /* offset to pci config_data */
27
28/*
29 * for PEX8111(Max Payload Size=128B,PCIIO_SIZE=64K),
30 * for other(Max Payload Size=4096B,PCIIO_SIZE=8M)
31 */
32
33/* PCI0-0: PCI I/O space */
34#define SH4A_PCIIO_BASE 0xFD000000 /* PCI I/O for controller 0 */
35#define SH4A_PCIIO_BASE1 0xFD800000 /* PCI I/O for controller 1 (Rev1.14)*/
36#define SH4A_PCIIO_BASE2 0xFC800000 /* PCI I/O for controller 2 (Rev1.171)*/
37
38#define SH4A_PCIIO_SIZE64 0x00010000 /* PLX allows only 64K */
39#define SH4A_PCIIO_SIZE 0x00800000 /* 8M */
40#define SH4A_PCIIO_SIZE2 0x00400000 /* 4M (Rev1.171)*/
41
42/* PCI0-1: PCI memory space 29-bit address */
43#define SH4A_PCIMEM_BASE 0x10000000
44#define SH4A_PCIMEM_SIZE 0x04000000 /* 64M */
45
46/* PCI0-2: PCI memory space 32-bit address */
47#define SH4A_PCIMEM_BASEA 0xC0000000 /* for controller 0 */
48#define SH4A_PCIMEM_BASEA1 0xA0000000 /* for controller 1 (Rev1.14)*/
49#define SH4A_PCIMEM_BASEA2 0x80000000 /* for controller 2 (Rev1.171)*/
50#define SH4A_PCIMEM_SIZEA 0x20000000 /* 512M */
51
52/* PCI0: PCI memory target transfer 32-bit address translation value(Rev1.11T)*/
53#define SH4A_PCIBMSTR_TRANSLATION 0x20000000
54
55#define SH4A_PCI_DEVICE_ID 0x0002
56#define SH4A_PCI_VENDOR_ID 0x1912
57
58// PCI compatible 000-03f
59#define PCI_CMD 0x004
60#define PCI_RID 0x008
61#define PCI_IBAR 0x010
62#define PCI_MBAR0 0x014
63#define PCI_MBAR1 0x018
64
65/* PCI power management/MSI/capablity 040-0ff */
66/* PCIE extended 100-fff */
67
68/* SH7786 device identification */ // Rev1.171
69#define SH4A_PVR (0xFF000030)
70#define SH4A_PVR_SHX3 (0x10400000)
71#define SH4A_PRR (0xFF000044)
72#define SH4A_PRR_SH7786 (0x00000400) // Rev1.171
73
74/* SPVCR0 */
75#define SH4A_PCIEVCR0 (0x000000) /* R - 0x0000 0000 32 */
76#define BITS_TOP_MB (24)
77#define MASK_TOP_MB (0xff<<BITS_TOP_MB)
78#define BITS_BOT_MB (16)
79#define MASK_BOT_MB (0xff<<BITS_BOT_MB)
80#define BITS_VC_ID (0)
81#define MASK_VC_ID (0xffff<<BITS_VC_ID)
82
83/* SPVCR1 */
84#define SH4A_PCIEVCR1 (0x000004) /* R - 0x0000 0000 32*/
85#define BITS_BADOPC (5) /* 5 BADOPC 0 R/W */
86#define MASK_BADOPC (1<<BITS_BADOPC)
87#define BITS_BADDEST (4) /*4 BADDEST 0 R/W */
88#define MASK_BADDEST (1<<BITS_BADDEST)
89#define BITS_UNSOLRESP (3) /* 3 UNSOLRESP 0 R/W */
90#define MASK_UNSOLRESP (1<<BITS_UNSOLRESP)
91#define BITS_ERRSNT (1) /* 1 ERRSNT 0 */
92#define MASK_ERRSNT (1<<BITS_ERRSNT)
93#define BITS_ERRRCV (0) /* 0 ERRRCV 0 */
94#define MASK_ERRRCV (1<<BITS_ERRRCV)
95
96/* PCIEECR */
97#define SH4A_PCIEECR (0x000008) /* R/W - 0x0000 0000 32 */
98#define BITS_ENBL (0) /* 0 ENBL 0 R/W */
99#define MASK_ENBL (1<<BITS_ENBL)
100
101/* PCIEPAR */
102#define SH4A_PCIEPAR (0x000010) /* R/W - 0x0000 0000 32 */
103#define BITS_BN (24)
104#define MASK_BN (0xff<<BITS_BN)
105#define BITS_DN (19)
106#define MASK_DN (0x1f<<BITS_DN)
107#define BITS_FN (16)
108#define MASK_FN (0x7<<BITS_FN)
109#define BITS_EREGNO (8)
110#define MASK_EREGNO (0xff<<BITS_EREGNO)
111#define BITS_REGNO (2)
112#define MASK_REGNO (0x3f<<BITS_REGNO)
113
114/* PCIEPCTLR */
115#define SH4A_PCIEPCTLR (0x000018) /* R/W - 0x0000 0000 32 */
116#define BITS_CCIE (31) /* 31 CCIE */
117#define MASK_CCIE (1<<BITS_CCIE)
118#define BITS_TYPE (8)
119#define MASK_TYPE (1<<BITS_TYPE)
120#define BITS_C_VC (0)
121#define MASK_C_VC (1<<BITS_C_VC)
122
123/* PCIEPDR */
124#define SH4A_PCIEPDR (0x000020) /* R/W - 0x0000 0000 32 */
125#define BITS_PDR (0)
126#define MASK_PDR (0xffffffff<<BITS_PDR)
127
128/* PCIEMSGALR */
129#define SH4A_PCIEMSGALR (0x000030) /* R/W - 0x0000 0000 32 */
130#define BITS_MSGADRL (0)
131#define MASK_MSGADRL (0xffffffff<<BITS_MSGADRL)
132
133/* PCIEMSGAHR */
134#define SH4A_PCIEMSGAHR (0x000034) /* R/W - 0x0000 0000 32 */
135#define BITS_MSGADRH (0)
136#define MASK_MSGADRH (0xffffffff<<BITS_MSGADRH)
137
138/* PCIEMSGCTLR */
139#define SH4A_PCIEMSGCTLR (0x000038) /* R/W - 0x0000 0000 32 */
140#define BITS_MSGIE (31)
141#define MASK_MSGIE (1<<BITS_MSGIE)
142#define BITS_MROUTE (16)
143#define MASK_MROUTE (0x7<<BITS_MROUTE)
144#define BITS_MCODE (8)
145#define MASK_MCODE (0xff<<BITS_MCODE)
146#define BITS_M_VC (0)
147#define MASK_M_VC (1<<BITS_M_VC)
148
149/* PCIEMSG */
150#define SH4A_PCIEMSG (0x000040) /* W - - 32 */
151#define BITS_MDATA (0)
152#define MASK_MDATA (0xffffffff<<BITS_MDATA)
153
154/* PCIEPHYCTLR */
155#define SH4A_PCIEPHYCTLR (0x010000) /* R/W - 0x0000 0000 32 */
156#define BITS_CKE (0)
157#define MASK_CKE (1<<BITS_CKE)
158
159/* PCIERMSGIER */
160#define SH4A_PCIERMSGIER (0x004040) /* R/W - 0x0000 0000 32 */
161
162/* PCIEPHYADRR */
163#define SH4A_PCIEPHYADRR (0x010004) /* R/W - 0x0000 0000 32 */
164#define BITS_ACK (24) // Rev1.171
165#define MASK_ACK (1<<BITS_ACK) // Rev1.171
166#define BITS_CMD (16) // Rev1.171
167#define MASK_CMD (0x03<<BITS_CMD) // Rev1.171
168#define BITS_LANE (8)
169#define MASK_LANE (0x0f<<BITS_LANE)
170#define BITS_ADR (0)
171#define MASK_ADR (0xff<<BITS_ADR)
172
173/* PCIEPHYDINR */ // Rev1.171 start.
174#define SH4A_PCIEPHYDINR (0x010008) /* R/W - 0x0000 0000 32 */
175
176/* PCIEPHYDOUTR */
177#define SH4A_PCIEPHYDOUTR (0x01000C) /* R/W - 0x0000 0000 32 */
178
179/* PCIEPHYSR */
180#define SH4A_PCIEPHYSR (0x010010) /* R/W - 0x0000 0000 32 */ // Rev1.171 end.
181
182/* PCIEPHYDATAR */
183#define SH4A_PCIEPHYDATAR (0x00008) /* R/W - 0xxxxx xxxx 32 */
184#define BITS_DATA (0)
185#define MASK_DATA (0xffffffff<<BITS_DATA)
186
187/* PCIETCTLR */
188#define SH4A_PCIETCTLR (0x020000) /* R/W R/W 0x0000 0000 32 */
189#define BITS_CFINT (0)
190#define MASK_CFINT (1<<BITS_CFINT)
191
192/* PCIETSTR */
193#define SH4A_PCIETSTR (0x020004) /* R/W R/W 0x0000 0000 32 */
194
195/* PCIEINTR */
196#define SH4A_PCIEINTR (0x020008) /* R/W R/W 0x0000 0000 32 */
197#define BITS_INT_RX_ERP (31)
198#define MASK_INT_RX_ERP (1<<BITS_INT_RX_ERP)
199#define BITS_INT_RX_VCX_Posted (30)
200#define MASK_INT_RX_VCX_Posted (1<<BITS_INT_RX_VCX_Posted)
201#define BITS_INT_RX_VCX_NonPosted (29)
202#define MASK_INT_RX_VCX_NonPosted (1<<BITS_INT_RX_VCX_NonPosted)
203#define BITS_INT_RX_VCX_CPL (28)
204#define MASK_INT_RX_VCX_CPL (1<<BITS_INT_RX_VCX_CPL)
205#define BITS_INT_TX_VCX_Posted (26)
206#define MASK_INT_TX_VCX_Posted (1<<BITS_INT_TX_VCX_Posted)
207#define BITS_INT_TX_VCX_NonPosted (25)
208#define MASK_INT_TX_VCX_NonPosted (1<<BITS_INT_TX_VCX_NonPosted)
209#define BITS_INT_TX_VCX_CPL (24)
210#define MASK_INT_TX_VCX_CPL (1<<BITS_INT_TX_VCX_CPL)
211#define BITS_INT_RX_VC0_Posted (22)
212#define MASK_INT_RX_VC0_Posted (1<<BITS_INT_RX_VC0_Posted)
213#define BITS_INT_RX_VC0_NonPosted (21)
214#define MASK_INT_RX_VC0_NonPosted (1<<BITS_INT_RX_VC0_NonPosted)
215#define BITS_INT_RX_VC0_CPL (20)
216#define MASK_INT_RX_VC0_CPL (1<<BITS_INT_RX_VC0_CPL)
217#define BITS_INT_TX_VC0_Posted (18)
218#define MASK_INT_TX_VC0_Posted (1<<BITS_INT_TX_VC0_Posted)
219#define BITS_INT_TX_VC0_NonPosted (17)
220#define MASK_INT_TX_VC0_NonPosted (1<<BITS_INT_TX_VC0_NonPosted)
221#define BITS_INT_TX_VC0_CPL (16)
222#define MASK_INT_TX_VC0_CPL (1<<BITS_INT_TX_VC0_CPL)
223#define BITS_INT_RX_CTRL (15)
224#define MASK_INT_RX_CTRL (1<<BITS_INT_RX_CTRL)
225#define BITS_INT_TX_CTRL (14)
226#define MASK_INT_TX_CTRL (1<<BITS_INT_TX_CTRL)
227#define BITS_INTTL (11)
228#define MASK_INTTL (1<<BITS_INTTL)
229#define BITS_INTDL (10)
230#define MASK_INTDL (1<<BITS_INTDL)
231#define BITS_INTMAC (9)
232#define MASK_INTMAC (1<<BITS_INTMAC)
233#define BITS_INTPM (8)
234#define MASK_INTPM (1<<BITS_INTPM)
235
236/* PCIEINTER */
237#define SH4A_PCIEINTER (0x02000C) /* R/W R/W 0x0000 0000 32 */
238#define BITS_INT_RX_ERP (31)
239#define MASK_INT_RX_ERP (1<<BITS_INT_RX_ERP)
240#define BITS_INT_RX_VCX_Posted (30)
241#define MASK_INT_RX_VCX_Posted (1<<BITS_INT_RX_VCX_Posted)
242#define BITS_INT_RX_VCX_NonPosted (29)
243#define MASK_INT_RX_VCX_NonPosted (1<<BITS_INT_RX_VCX_NonPosted)
244#define BITS_INT_RX_VCX_CPL (28)
245#define MASK_INT_RX_VCX_CPL (1<<BITS_INT_RX_VCX_CPL)
246#define BITS_INT_TX_VCX_Posted (26)
247#define MASK_INT_TX_VCX_Posted (1<<BITS_INT_TX_VCX_Posted)
248#define BITS_INT_TX_VCX_NonPosted (25)
249#define MASK_INT_TX_VCX_NonPosted (1<<BITS_INT_TX_VCX_NonPosted)
250#define BITS_INT_TX_VCX_CPL (24)
251#define MASK_INT_TX_VCX_CPL (1<<BITS_INT_TX_VCX_CPL)
252#define BITS_INT_RX_VC0_Posted (22)
253#define MASK_INT_RX_VC0_Posted (1<<BITS_INT_RX_VC0_Posted)
254#define BITS_INT_RX_VC0_NonPosted (21)
255#define MASK_INT_RX_VC0_NonPosted (1<<BITS_INT_RX_VC0_NonPosted)
256#define BITS_INT_RX_VC0_CPL (20)
257#define MASK_INT_RX_VC0_CPL (1<<BITS_INT_RX_VC0_CPL)
258#define BITS_INT_TX_VC0_Posted (18)
259#define MASK_INT_TX_VC0_Posted (1<<BITS_INT_TX_VC0_Posted)
260#define BITS_INT_TX_VC0_NonPosted (17)
261#define MASK_INT_TX_VC0_NonPosted (1<<BITS_INT_TX_VC0_NonPosted)
262#define BITS_INT_TX_VC0_CPL (16)
263#define MASK_INT_TX_VC0_CPL (1<<BITS_INT_TX_VC0_CPL)
264#define BITS_INT_RX_CTRL (15)
265#define MASK_INT_RX_CTRL (1<<BITS_INT_RX_CTRL)
266#define BITS_INT_TX_CTRL (14)
267#define MASK_INT_TX_CTRL (1<<BITS_INT_TX_CTRL)
268#define BITS_INTTL (11)
269#define MASK_INTTL (1<<BITS_INTTL)
270#define BITS_INTDL (10)
271#define MASK_INTDL (1<<BITS_INTDL)
272#define BITS_INTMAC (9)
273#define MASK_INTMAC (1<<BITS_INTMAC)
274#define BITS_INTPM (8)
275#define MASK_INTPM (1<<BITS_INTPM)
276
277/* PCIEAIR */
278#define SH4A_PCIEAIR (SH4A_PCIE_BASE + 0x020010) /* R/W R/W 0xxxxx xxxx 32 */
279
280/* PCIECIR */
281#define SH4A_PCIECIR (SH4A_PCIE_BASE) /* R/W R/W 0xxxxx xxxx 32 */
282
283/* PCIEERRFR */ // Rev1.18
284#define SH4A_PCIEERRFR (0x020020) /* R/W R/W 0xxxxx xxxx 32 */ // Rev1.18
285 // Rev1.18
286/* PCIELAR0 */
287#define SH4A_PCIELAR0 (0x020200) /* R/W R/W 0x0000 0000 32 */
288#define BITS_LARn (20)
289#define MASK_LARn (0xfff<<BITS_LARn)
290
291#define SH4A_PCIE_020204 (0x020204) /* R/W R/W 0x0000 0000 32 */
292
293/* PCIELAMR0 */
294#define SH4A_PCIELAMR0 (0x020208) /* R/W R/W 0x0000 0000 32 */
295#define BITS_LAMRn (20)
296#define MASK_LAMRn (0x1ff<<BITS_LAMRn)
297#define BITS_LAREn (0)
298#define MASK_LAREn (0x1<<BITS_LAREn)
299
300/* PCIECSCR0 */
301#define SH4A_PCIECSCR0 (0x020210) /* R/W R/W 0x0000 0000 32 */
302#define BITS_RANGE (2)
303#define MASK_RANGE (0x7<<BITS_RANGE)
304#define BITS_SNPMD (0)
305#define MASK_SNPMD (0x3<<BITS_SNPMD)
306
307/* PCIECSAR0 */
308#define SH4A_PCIECSAR0 (0x020214) /* R/W R/W 0x0000 0000 32 */
309#define BITS_CSADR (0)
310#define MASK_CSADR (0xffffffff<<BITS_CSADR)
311
312/* PCIESTCTLR0 */
313#define SH4A_PCIESTCTLR0 (0x020218) /* R/W R/W 0x0000 0000 32 */
314#define BITS_SHPRI (8)
315#define MASK_SHPRI (0x0f<<BITS_SHPRI)
316
317#define SH4A_PCIE_020224 (0x020224) /* R/W R/W 0x0000 0000 32 */
318
319#define SH4A_PCIELAR1 (0x020220) /* R/W R/W 0x0000 0000 32 */
320#define SH4A_PCIELAMR1 (0x020228) /* R/W R/W 0x0000 0000 32 */
321#define SH4A_PCIECSCR1 (0x020230) /* R/W R/W 0x0000 0000 32 */
322#define SH4A_PCIECSAR1 (0x020234) /* R/W R/W 0x0000 0000 32 */
323#define SH4A_PCIESTCTLR1 (0x020238) /* R/W R/W 0x0000 0000 32 */
324
325#define SH4A_PCIELAR2 (0x020240) /* R/W R/W 0x0000 0000 32 */
326#define SH4A_PCIE_020244 (0x020244) /* R/W R/W 0x0000 0000 32 */
327#define SH4A_PCIELAMR2 (0x020248) /* R/W R/W 0x0000 0000 32 */
328#define SH4A_PCIECSCR2 (0x020250) /* R/W R/W 0x0000 0000 32 */
329#define SH4A_PCIECSAR2 (0x020254) /* R/W R/W 0x0000 0000 32 */
330#define SH4A_PCIESTCTLR2 (0x020258) /* R/W R/W 0x0000 0000 32 */
331
332#define SH4A_PCIELAR3 (0x020260) /* R/W R/W 0x0000 0000 32 */
333#define SH4A_PCIE_020264 (0x020264) /* R/W R/W 0x0000 0000 32 */
334#define SH4A_PCIELAMR3 (0x020268) /* R/W R/W 0x0000 0000 32 */
335#define SH4A_PCIECSCR3 (0x020270) /* R/W R/W 0x0000 0000 32 */
336#define SH4A_PCIECSAR3 (0x020274) /* R/W R/W 0x0000 0000 32 */
337#define SH4A_PCIESTCTLR3 (0x020278) /* R/W R/W 0x0000 0000 32 */
338
339#define SH4A_PCIELAR4 (0x020280) /* R/W R/W 0x0000 0000 32 */
340#define SH4A_PCIE_020284 (0x020284) /* R/W R/W 0x0000 0000 32 */
341#define SH4A_PCIELAMR4 (0x020288) /* R/W R/W 0x0000 0000 32 */
342#define SH4A_PCIECSCR4 (0x020290) /* R/W R/W 0x0000 0000 32 */
343#define SH4A_PCIECSAR4 (0x020294) /* R/W R/W 0x0000 0000 32 */
344#define SH4A_PCIESTCTLR4 (0x020298) /* R/W R/W 0x0000 0000 32 */
345
346#define SH4A_PCIELAR5 (0x0202A0) /* R/W R/W 0x0000 0000 32 */
347#define SH4A_PCIE_0202A4 (0x0202A4) /* R/W R/W 0x0000 0000 32 */
348#define SH4A_PCIELAMR5 (0x0202A8) /* R/W R/W 0x0000 0000 32 */
349#define SH4A_PCIECSCR5 (0x0202B0) /* R/W R/W 0x0000 0000 32 */
350#define SH4A_PCIECSAR5 (0x0202B4) /* R/W R/W 0x0000 0000 32 */
351#define SH4A_PCIESTCTLR5 (0x0202B8) /* R/W R/W 0x0000 0000 32 */
352
353/* PCIEPARL0 */
354#define SH4A_PCIEPARL0 (0x020400) /* R/W R/W 0x0000 0000 32 */
355#define BITS_PAL (18)
356#define MASK_PAL (0x3fff<<BITS_PAL)
357
358/* PCIEPARH0 */
359#define SH4A_PCIEPARH0 (0x020404) /* R/W R/W 0x0000 0000 32 */
360#define BITS_PAH (0)
361#define MASK_PAH (0xffffffff<<BITS_PAH)
362
363/* PCIEPAMR0 */
364#define SH4A_PCIEPAMR0 (0x020408) /* R/W R/W 0x0000 0000 32 */
365#define BITS_PAM (18)
366#define MASK_PAM (0x3fff<<BITS_PAM)
367
368/* PCIEPTCTLR0 */
369#define SH4A_PCIEPTCTLR0 (0x02040C) /* R/W R/W 0x0000 0000 32 */
370#define BITS_PARE (31)
371#define MASK_PARE (0x1<<BITS_PARE)
372#define BITS_TC (20)
373#define MASK_TC (0x7<<BITS_TC)
374#define BITS_T_VC (16)
375#define MASK_T_VC (0x1<<BITS_T_VC)
376#define BITS_LOCK (12)
377#define MASK_LOCK (0x1<<BITS_LOCK)
378#define BITS_SPC (8)
379#define MASK_SPC (0x1<<BITS_SPC)
380
381#define SH4A_PCIEPARL1 (0x020420) /* R/W R/W 0x0000 0000 32 */
382#define SH4A_PCIEPARH1 (0x020424) /* R/W R/W 0x0000 0000 32 */
383#define SH4A_PCIEPAMR1 (0x020428) /* R/W R/W 0x0000 0000 32 */
384#define SH4A_PCIEPTCTLR1 (0x02042C) /* R/W R/W 0x0000 0000 32 */
385#define SH4A_PCIEPARL2 (0x020440) /* R/W R/W 0x0000 0000 32 */
386#define SH4A_PCIEPARH2 (0x020444) /* R/W R/W 0x0000 0000 32 */
387#define SH4A_PCIEPAMR2 (0x020448) /* R/W R/W 0x0000 0000 32 */
388#define SH4A_PCIEPTCTLR2 (0x02044C) /* R/W R/W 0x0000 0000 32 */
389#define SH4A_PCIEPARL3 (0x020460) /* R/W R/W 0x0000 0000 32 */
390#define SH4A_PCIEPARH3 (0x020464) /* R/W R/W 0x0000 0000 32 */
391#define SH4A_PCIEPAMR3 (0x020468) /* R/W R/W 0x0000 0000 32 */
392#define SH4A_PCIEPTCTLR3 (0x02046C) /* R/W R/W 0x0000 0000 32 */
393#define SH4A_PCIEPARL4 (0x020480) /* R/W R/W 0x0000 0000 32 */
394#define SH4A_PCIEPARH4 (0x020484) /* R/W R/W 0x0000 0000 32 */
395#define SH4A_PCIEPAMR4 (0x020488) /* R/W R/W 0x0000 0000 32 */
396#define SH4A_PCIEPTCTLR4 (0x02048C) /* R/W R/W 0x0000 0000 32 */
397#define SH4A_PCIEPARL5 (0x0204A0) /* R/W R/W 0x0000 0000 32 */
398#define SH4A_PCIEPARH5 (0x0204A4) /* R/W R/W 0x0000 0000 32 */
399#define SH4A_PCIEPAMR5 (0x0204A8) /* R/W R/W 0x0000 0000 32 */
400#define SH4A_PCIEPTCTLR5 (0x0204AC) /* R/W R/W 0x0000 0000 32 */
401#define SH4A_PCIEDMAOR (0x021000) /* R/W R/W 0x0000 0000 32 */
402#define SH4A_PCIEDMSAR0 (0x021100) /* R/W R/W 0x0000 0000 32 */
403#define SH4A_PCIEDMSAHR0 (0x021104) /* R/W R/W 0x0000 0000 32 */
404#define SH4A_PCIEDMDAR0 (0x021108) /* R/W R/W 0x0000 0000 32 */
405#define SH4A_PCIEDMDAHR0 (0x02110C) /* R/W R/W 0x0000 0000 32 */
406#define SH4A_PCIEDMBCNTR0 (0x021110) /* R/W R/W 0x0000 0000 32 */
407#define SH4A_PCIEDMSBCNTR0 (0x021114) /* R/W R/W 0x0000 0000 32 */
408#define SH4A_PCIEDMSTRR0 (0x021118) /* R/W R/W 0x0000 0000 32 */
409#define SH4A_PCIEDMCCAR0 (0x02111C) /* R/W R/W 0x0000 0000 32 */
410#define SH4A_PCIEDMCCR0 (0x021120) /* R/W R/W 0x0000 0000 32 */
411#define SH4A_PCIEDMCC2R0 (0x021124) /* R/W R/W 0x0000 0000 - */
412#define SH4A_PCIEDMCCCR0 (0x021128) /* R/W R/W 0x0000 0000 32 */
413#define SH4A_PCIEDMSAR1 (0x021140) /* R/W R/W 0x0000 0000 32 */
414#define SH4A_PCIEDMSAHR1 (0x021144) /* R/W R/W 0x0000 0000 32 */
415#define SH4A_PCIEDMDAR1 (0x021148) /* R/W R/W 0x0000 0000 32 */
416#define SH4A_PCIEDMDAHR1 (0x02114C) /* R/W R/W 0x0000 0000 32 */
417#define SH4A_PCIEDMBCNTR1 (0x021150) /* R/W R/W 0x0000 0000 32 */
418#define SH4A_PCIEDMSBCNTR1 (0x021154) /* R/W R/W 0x0000 0000 32 */
419#define SH4A_PCIEDMSTRR1 (0x021158) /* R/W R/W 0x0000 0000 32 */
420#define SH4A_PCIEDMCCAR1 (0x02115C) /* R/W R/W 0x0000 0000 32 */
421#define SH4A_PCIEDMCCR1 (0x021160) /* R/W R/W 0x0000 0000 32 */
422#define SH4A_PCIEDMCC2R1 (0x021164) /* R/W R/W 0x0000 0000 - */
423#define SH4A_PCIEDMCCCR1 (0x021168) /* R/W R/W 0x0000 0000 32 */
424#define SH4A_PCIEDMSAR2 (0x021180) /* R/W R/W 0x0000 0000 32 */
425#define SH4A_PCIEDMSAHR2 (0x021184) /* R/W R/W 0x0000 0000 32 */
426#define SH4A_PCIEDMDAR2 (0x021188) /* R/W R/W 0x0000 0000 32 */
427#define SH4A_PCIEDMDAHR2 (0x02118C) /* R/W R/W 0x0000 0000 32 */
428#define SH4A_PCIEDMBCNTR2 (0x021190) /* R/W R/W 0x0000 0000 32 */
429#define SH4A_PCIEDMSBCNTR2 (0x021194) /* R/W R/W 0x0000 0000 32 */
430#define SH4A_PCIEDMSTRR2 (0x021198) /* R/W R/W 0x0000 0000 32 */
431#define SH4A_PCIEDMCCAR2 (0x02119C) /* R/W R/W 0x0000 0000 32 */
432#define SH4A_PCIEDMCCR2 (0x0211A0) /* R/W R/W 0x0000 0000 32 */
433#define SH4A_PCIEDMCC2R2 (0x0211A4) /* R/W R/W 0x0000 0000 - */
434#define SH4A_PCIEDMCCCR2 (0x0211A8) /* R/W R/W 0x0000 0000 32 */
435#define SH4A_PCIEDMSAR3 (0x0211C0) /* R/W R/W 0x0000 0000 32 */
436#define SH4A_PCIEDMSAHR3 (0x0211C4) /* R/W R/W 0x0000 0000 32 */
437#define SH4A_PCIEDMDAR3 (0x0211C8) /* R/W R/W 0x0000 0000 32 */
438#define SH4A_PCIEDMDAHR3 (0x0211CC) /* R/W R/W 0x0000 0000 32 */
439#define SH4A_PCIEDMBCNTR3 (0x0211D0) /* R/W R/W 0x0000 0000 32 */
440#define SH4A_PCIEDMSBCNTR3 (0x0211D4) /* R/W R/W 0x0000 0000 32 */
441#define SH4A_PCIEDMSTRR3 (0x0211D8) /* R/W R/W 0x0000 0000 32 */
442#define SH4A_PCIEDMCCAR3 (0x0211DC) /* R/W R/W 0x0000 0000 32 */
443#define SH4A_PCIEDMCCR3 (0x0211E0) /* R/W R/W 0x0000 0000 32 */
444#define SH4A_PCIEDMCC2R3 (0x0211E4) /* R/W R/W 0x0000 0000 - */
445#define SH4A_PCIEDMCCCR3 (0x0211E8) /* R/W R/W 0x0000 0000 32 */
446#define SH4A_PCIEPCICONF0 (0x040000) /* R R - 8/16/32 */
447#define SH4A_PCIEPCICONF1 (0x040004) /* R/W R/W 0x0008 0000 8/16/32 */
448#define SH4A_PCIEPCICONF2 (0x040008) /* R/W R/W 0xFF00 0000 8/16/32 */
449#define SH4A_PCIEPCICONF3 (0x04000C) /* R/W R/W 0x0000 0000 8/16/32 */
450#define SH4A_PCIEPCICONF4 (0x040010) /* - R/W - 8/16/32 */
451#define SH4A_PCIEPCICONF5 (0x040014) /* - R/W - 8/16/32 */
452#define SH4A_PCIEPCICONF6 (0x040018) /* - R/W - 8/16/32 */
453#define SH4A_PCIEPCICONF7 (0x04001C) /* - R/W - 8/16/32 */
454#define SH4A_PCIEPCICONF8 (0x040020) /* - R/W - 8/16/32 */
455#define SH4A_PCIEPCICONF9 (0x040024) /* - R/W - 8/16/32 */
456#define SH4A_PCIEPCICONF10 (0x040028) /* R/W R/W 0x0000 0000 8/16/32 */
457#define SH4A_PCIEPCICONF11 (0x04002C) /* R/W R/W 0x0000 0000 8/16/32 */
458#define SH4A_PCIEPCICONF12 (0x040030) /* R/W R/W 0x0000 0000 8/16/32 */
459#define SH4A_PCIEPCICONF13 (0x040034) /* R/W R/W 0x0000 0040 8/16/32 */
460#define SH4A_PCIEPCICONF14 (0x040038) /* R/W R/W 0x0000 0000 8/16/32 */
461#define SH4A_PCIEPCICONF15 (0x04003C) /* R/W R/W 0x0000 00FF 8/16/32 */
462#define SH4A_PCIEPMCAP0 (0x040040) /* R/W R 0x0003 5001 8/16/32 */
463#define SH4A_PCIEPMCAP1 (0x040044) /* R/W R/W 0x0000 0000 8/16/32 */
464#define SH4A_PCIEMSICAP0 (0x040050) /* R/W R/W 0x0180 7005 8/16/32 */
465#define SH4A_PCIEMSICAP1 (0x040054) /* R/W R/W 0x0000 0000 8/16/32 */
466#define SH4A_PCIEMSICAP2 (0x040058) /* R/W R/W 0x0000 0000 8/16/32 */
467#define SH4A_PCIEMSICAP3 (0x04005C) /* R/W R/W 0x0000 0000 8/16/32 */
468#define SH4A_PCIEMSICAP4 (0x040060) /* R/W R/W 0x0000 0000 8/16/32 */
469#define SH4A_PCIEMSICAP5 (0x040064) /* R/W R/W 0x0000 0000 8/16/32 */
470#define SH4A_PCIEEXPCAP0 (0x040070) /* R/W R/W 0x0001 0010 8/16/32 */
471#define SH4A_PCIEEXPCAP1 (0x040074) /* R/W R 0x0000 0005 8/16/32 */
472#define SH4A_PCIEEXPCAP2 (0x040078) /* R/W R/W 0x0000 0801 8/16/32 */
473#define SH4A_PCIEEXPCAP3 (0x04007C) /* R/W R 0x0003 F421 8/16/32 */
474#define SH4A_PCIEEXPCAP4 (0x040080) /* R/W R/W 0x0041 0000 8/16/32 */
475#define SH4A_PCIEEXPCAP5 (0x040084) /* R/W R/W 0x0000 0000 8/16/32 */
476#define SH4A_PCIEEXPCAP6 (0x040088) /* R/W R/W 0x0000 03C0 8/16/32 */
477#define SH4A_PCIEEXPCAP7 (0x04008C) /* R/W R/W 0x0000 0000 8/16/32 */
478#define SH4A_PCIEEXPCAP8 (0x040090) /* R/W R/W 0x0000 0000 8/16/32 */
479#define SH4A_PCIEVCCAP0 (0x040100) /* R/W R 0x1B01 0002 8/16/32 */
480#define SH4A_PCIEVCCAP1 (0x040104) /* R R 0x0000 0001 8/16/32 */
481#define SH4A_PCIEVCCAP2 (0x040108) /* R R 0x0000 0000 8/16/32 */
482#define SH4A_PCIEVCCAP3 (0x04010C) /* R R/W 0x0000 0000 8/16/32 */
483#define SH4A_PCIEVCCAP4 (0x040110) /* R/W R/W 0x0000 0000 8/16/32 */
484#define SH4A_PCIEVCCAP5 (0x040114) /* R/W R/W 0x8000 00FF 8/16/32 */
485#define SH4A_PCIEVCCAP6 (0x040118) /* R/W R 0x0002 0000 8/16/32 */
486#define SH4A_PCIEVCCAP7 (0x04011C) /* R/W R/W 0x0000 0000 8/16/32 */
487#define SH4A_PCIEVCCAP8 (0x040120) /* R/W R/W 0x0000 0000 8/16/32 */
488#define SH4A_PCIEVCCAP9 (0x040124) /* R/W R 0x0002 0000 8/16/32 */
489#define SH4A_PCIENUMCAP0 (0x0001B0) /* RW R 0x0001 0003 8/16/32 */
490#define SH4A_PCIENUMCAP1 (0x0001B4) /* R R 0x0000 0000 8/16/32 */
491#define SH4A_PCIENUMCAP2 (0x0001B8) /* R R 0x0000 0000 8/16/32 */
492#define SH4A_PCIEIDSETR0 (0x041000) /* R/W R 0x0000 FFFF 16/32 */
493#define SH4A_PCIEIDSETR1 (0x041004) /* R/W R 0xFF00 0000 16/32 */
494#define SH4A_PCIEBAR0SETR (0x041008) /* R/W R 0x0000 0000 16/32 */
495#define SH4A_PCIEBAR1SETR (0x04100C) /* R/W R 0x0000 0000 16/32 */
496#define SH4A_PCIEBAR2SETR (0x041010) /* R/W R 0x0000 0000 16/32 */
497#define SH4A_PCIEBAR3SETR (0x041014) /* R/W R 0x0000 0000 16/32 */
498#define SH4A_PCIEBAR4SETR (0x041018) /* R/W R 0x0000 0000 16/32 */
499#define SH4A_PCIEBAR5SETR (0x04101C) /* R/W R 0x0000 0000 16/32 */
500#define SH4A_PCIECISSETR (0x041020) /* R/W R 0x0000 0000 16/32 */
501#define SH4A_PCIEIDSETR2 (0x041024) /* R/W R 0x0000 0000 16/32 */
502#define SH4A_PCIEEROMSETR (0x041028) /* R/W R 0x0000 0000 16/32 */
503#define SH4A_PCIEDSERSETR0 (0x04102C) /* R/W R 0x0000 0000 16/32 */
504#define SH4A_PCIEDSERSETR1 (0x041030) /* R/W R 0x0000 0000 16/32 */
505#define SH4A_PCIECTLR (0x041040) /* R/W R 0x0000 0000 16/32 */
506#define SH4A_PCIETLSR (0x041044) /* R/W1C R 0x0000 0000 16/32 */
507#define SH4A_PCIETLCTLR (0x041048) /* R/W R 0x0000 0000 16/32 */
508#define SH4A_PCIEDLSR (0x04104C) /* R/W1C R 0x4003 0000 16/32 */
509#define SH4A_PCIEDLCTLR (0x041050) /* R R 0x0000 0000 16/32 */
510#define SH4A_PCIEMACSR (0x041054) /* R/W1C R 0x0041 0000 16/32 */
511#define SH4A_PCIEMACCTLR (0x041058) /* R/W R 0x0000 0000 16/32 */
512#define PCIEMACCTLR_SCR_DIS (1 << 27) /* scramble disable */
513#define SH4A_PCIEPMSTR (0x04105C) /* R/W1C R 0x0000 0000 16/32 */
514#define SH4A_PCIEPMCTLR (0x041060) /* R/W R 0x0000 0000 16/32 */
515#define SH4A_PCIETLINTENR (0x041064) /* R/W R 0x0000 0000 16/32 */
516#define SH4A_PCIEDLINTENR (0x041068) /* R/W R 0x0000 0000 16/32 */
517#define PCIEDLINTENR_DLL_ACT_ENABLE (1 << 31) /* DL active irq */
518#define SH4A_PCIEMACINTENR (0x04106C) /* R/W R 0x0000 0000 16/32 */
519#define SH4A_PCIEPMINTENR (0x041070) /* R/W R 0x0000 0000 16/32 */
520#define SH4A_PCIETXDCTLR (0x044000) /* R/W - H'00000000_00000000 32/64 */
521#define SH4A_PCIETXCTLR (0x044020) /* R/W - H'00000000_00000000 32/64 */
522#define SH4A_PCIETXSR (0x044028) /* R - H'00000000_00000000 32/64 */
523#define SH4A_PCIETXVC0DCTLR (0x044100) /* R/W - H'00000000_00000000 32/64 */
524#define SH4A_PCIETXVC0SR (0x044108) /* R/W - H'00888000_00000000 32/64 */
525#define SH4A_PCIEVC0PDTXR (0x044110) /* W - H'00000000_00000000 32/64 */
526#define SH4A_PCIEVC0PHTXR (0x044118) /* W - H'00000000_00000000 32/64 */
527#define SH4A_PCIEVC0NPDTXR (0x044120) /* W - H'00000000_00000000 32/64 */
528#define SH4A_PCIEVC0NPHTXR (0x044128) /* W - H'00000000_00000000 32/64 */
529#define SH4A_PCIEVC0CDTXR (0x044130) /* W - H'00000000_00000000 32/64 */
530#define SH4A_PCIEVC0CHTXR (0x044138) /* W - H'00000000_00000000 32/64 */
531#define SH4A_PCIETXVCXDCTLR (0x044200) /* R/W - H'00000000_00000000 32/64 */
532#define SH4A_PCIETXVCXSR (0x044208) /* R/W - H'00000000_00000000 32/64 */
533#define SH4A_PCIEVCXPDTXR (0x044210) /* W - H'00000000_00000000 32/64 */
534#define SH4A_PCIEVCXPHTXR (0x044218) /* W - H'00000000_00000000 32/64 */
535#define SH4A_PCIEVCXNPDTXR (0x044220) /* W - H'00000000_00000000 32/64 */
536#define SH4A_PCIEVCXNPHTXR (0x044228) /* W - H'00000000_00000000 32/64 */
537#define SH4A_PCIEVCXCDTXR (0x044230) /* W - H'00000000_00000000 32/64 */
538#define SH4A_PCIEVCXCHTXR (0x044238) /* W - H'00000000_00000000 32/64 */
539#define SH4A_PCIERDCTLR (0x046000) /* RW - H'00000000_00000000 32/64 */
540#define SH4A_PCIEERPCTLR (0x046008) /* RW - H'00000000_00000000 32/64 */
541#define SH4A_PCIEERPHR (0x046010) /* R - H'00000000_00000000 32/64 */
542#define SH4A_PCIEERPERR (0x046018) /* R - H'00000000_00000000 32/64 */
543#define SH4A_PCIERXVC0DCTLR (0x046100) /* RW - H'00000000_00000000 32/64 */
544#define SH4A_PCIERXVC0SR (0x046108) /* RW - H'00000000_00000000 32/64 */
545#define SH4A_PCIEVC0PDRXR (0x046140) /* R - H'00000000_00000000 32/64 */
546#define SH4A_PCIEVC0PHRXR (0x046148) /* R - H'00000000_00000000 32/64 */
547#define SH4A_PCIEVC0PERR (0x046150) /* R - H'00000000_00000000 32/64 */
548#define SH4A_PCIEVC0NPDRXR (0x046158) /* R - H'00000000_00000000 32/64 */
549#define SH4A_PCIEVC0NPHRXR (0x046160) /* R - H'00000000_00000000 32/64 */
550#define SH4A_PCIEVC0NPERR (0x046168) /* R - H'00000000_00000000 32/64 */
551#define SH4A_PCIEVC0CDRXR (0x046170) /* R - H'00000000_00000000 32/64 */
552#define SH4A_PCIEVC0CHRXR (0x046178) /* R - H'00000000_00000000 32/64 */
553#define SH4A_PCIEVC0CERR (0x046180) /* R - H'00000000_00000000 32/64 */
554#define SH4A_PCIERXVCXDCTLR (0x046200) /* RW - H'00000000_00000000 32/64 */
555#define SH4A_PCIERXVCXSR (0x046208) /* RW - H'00000000_00000000 32/64 */
556#define SH4A_PCIEVCXPDRXR (0x046240) /* R - H'00000000_00000000 32/64 */
557#define SH4A_PCIEVCXPHRXR (0x046248) /* R H'00000000_00000000 32/64 */
558#define SH4A_PCIEVCXPERR (0x046250) /* R H'00000000_00000000 32/64 */
559#define SH4A_PCIEVCXNPDRXR (0x046258) /* R H'00000000_00000000 32/64 */
560#define SH4A_PCIEVCXNPHRXR (0x046260) /* R H'00000000_00000000 32/64 */
561#define SH4A_PCIEVCXNPERR (0x046268) /* R H'00000000_00000000 32/64 */
562#define SH4A_PCIEVCXCDRXR (0x046270) /* R H'00000000_00000000 32/64 */
563#define SH4A_PCIEVCXCHRXR (0x046278) /* R H'00000000_00000000 32/64 */
564#define SH4A_PCIEVCXCERR (0x046280) /* R H'00000000_00000000 32/64 */
565
566/* SSI Register Definition for MSI WORK AROUND --hamada */
567#define SH4A_PCI_SSI_BASE 0xFFE00000 /* spw config address */
568#define SH4A_PCI_SSI_BASE_LEN 0x00100000 /* 1MB */
569
570#define SH4A_SSICR0 (0x000000)
571#define SH4A_SSICR1 (0x010000)
572#define SH4A_SSICR2 (0x020000)
573#define SH4A_SSICR3 (0x030000)
574
575#define PCI_REG(x) ((x) + 0x40000)
576
577static inline void
578pci_write_reg(struct pci_channel *chan, unsigned long val, unsigned long reg)
579{
580 __raw_writel(val, chan->reg_base + reg);
581}
582
583static inline unsigned long
584pci_read_reg(struct pci_channel *chan, unsigned long reg)
585{
586 return __raw_readl(chan->reg_base + reg);
587}
588
589#endif /* __PCI_SH7786_H */
diff --git a/arch/sh/include/asm/atomic-irq.h b/arch/sh/include/asm/atomic-irq.h
index a0b348068ca..467d9415a32 100644
--- a/arch/sh/include/asm/atomic-irq.h
+++ b/arch/sh/include/asm/atomic-irq.h
@@ -10,29 +10,29 @@ static inline void atomic_add(int i, atomic_t *v)
10{ 10{
11 unsigned long flags; 11 unsigned long flags;
12 12
13 local_irq_save(flags); 13 raw_local_irq_save(flags);
14 v->counter += i; 14 v->counter += i;
15 local_irq_restore(flags); 15 raw_local_irq_restore(flags);
16} 16}
17 17
18static inline void atomic_sub(int i, atomic_t *v) 18static inline void atomic_sub(int i, atomic_t *v)
19{ 19{
20 unsigned long flags; 20 unsigned long flags;
21 21
22 local_irq_save(flags); 22 raw_local_irq_save(flags);
23 v->counter -= i; 23 v->counter -= i;
24 local_irq_restore(flags); 24 raw_local_irq_restore(flags);
25} 25}
26 26
27static inline int atomic_add_return(int i, atomic_t *v) 27static inline int atomic_add_return(int i, atomic_t *v)
28{ 28{
29 unsigned long temp, flags; 29 unsigned long temp, flags;
30 30
31 local_irq_save(flags); 31 raw_local_irq_save(flags);
32 temp = v->counter; 32 temp = v->counter;
33 temp += i; 33 temp += i;
34 v->counter = temp; 34 v->counter = temp;
35 local_irq_restore(flags); 35 raw_local_irq_restore(flags);
36 36
37 return temp; 37 return temp;
38} 38}
@@ -41,11 +41,11 @@ static inline int atomic_sub_return(int i, atomic_t *v)
41{ 41{
42 unsigned long temp, flags; 42 unsigned long temp, flags;
43 43
44 local_irq_save(flags); 44 raw_local_irq_save(flags);
45 temp = v->counter; 45 temp = v->counter;
46 temp -= i; 46 temp -= i;
47 v->counter = temp; 47 v->counter = temp;
48 local_irq_restore(flags); 48 raw_local_irq_restore(flags);
49 49
50 return temp; 50 return temp;
51} 51}
@@ -54,18 +54,18 @@ static inline void atomic_clear_mask(unsigned int mask, atomic_t *v)
54{ 54{
55 unsigned long flags; 55 unsigned long flags;
56 56
57 local_irq_save(flags); 57 raw_local_irq_save(flags);
58 v->counter &= ~mask; 58 v->counter &= ~mask;
59 local_irq_restore(flags); 59 raw_local_irq_restore(flags);
60} 60}
61 61
62static inline void atomic_set_mask(unsigned int mask, atomic_t *v) 62static inline void atomic_set_mask(unsigned int mask, atomic_t *v)
63{ 63{
64 unsigned long flags; 64 unsigned long flags;
65 65
66 local_irq_save(flags); 66 raw_local_irq_save(flags);
67 v->counter |= mask; 67 v->counter |= mask;
68 local_irq_restore(flags); 68 raw_local_irq_restore(flags);
69} 69}
70 70
71#endif /* __ASM_SH_ATOMIC_IRQ_H */ 71#endif /* __ASM_SH_ATOMIC_IRQ_H */
diff --git a/arch/sh/include/asm/atomic.h b/arch/sh/include/asm/atomic.h
index 157c320272c..e8e78137c6f 100644
--- a/arch/sh/include/asm/atomic.h
+++ b/arch/sh/include/asm/atomic.h
@@ -85,4 +85,6 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
85#define smp_mb__after_atomic_inc() barrier() 85#define smp_mb__after_atomic_inc() barrier()
86 86
87#include <asm-generic/atomic-long.h> 87#include <asm-generic/atomic-long.h>
88#include <asm-generic/atomic64.h>
89
88#endif /* __ASM_SH_ATOMIC_H */ 90#endif /* __ASM_SH_ATOMIC_H */
diff --git a/arch/sh/include/asm/checksum.h b/arch/sh/include/asm/checksum.h
index 67496ab0ef0..fc26d1f4b59 100644
--- a/arch/sh/include/asm/checksum.h
+++ b/arch/sh/include/asm/checksum.h
@@ -1,5 +1,5 @@
1#ifdef CONFIG_SUPERH32 1#ifdef CONFIG_SUPERH32
2# include "checksum_32.h" 2# include "checksum_32.h"
3#else 3#else
4# include "checksum_64.h" 4# include <asm-generic/checksum.h>
5#endif 5#endif
diff --git a/arch/sh/include/asm/checksum_64.h b/arch/sh/include/asm/checksum_64.h
deleted file mode 100644
index 9c62a031a8f..00000000000
--- a/arch/sh/include/asm/checksum_64.h
+++ /dev/null
@@ -1,78 +0,0 @@
1#ifndef __ASM_SH_CHECKSUM_64_H
2#define __ASM_SH_CHECKSUM_64_H
3
4/*
5 * include/asm-sh/checksum_64.h
6 *
7 * Copyright (C) 2000, 2001 Paolo Alberelli
8 *
9 * This file is subject to the terms and conditions of the GNU General Public
10 * License. See the file "COPYING" in the main directory of this archive
11 * for more details.
12 */
13
14/*
15 * computes the checksum of a memory block at buff, length len,
16 * and adds in "sum" (32-bit)
17 *
18 * returns a 32-bit number suitable for feeding into itself
19 * or csum_tcpudp_magic
20 *
21 * this function must be called with even lengths, except
22 * for the last fragment, which may be odd
23 *
24 * it's best to have buff aligned on a 32-bit boundary
25 */
26asmlinkage __wsum csum_partial(const void *buff, int len, __wsum sum);
27
28/*
29 * Note: when you get a NULL pointer exception here this means someone
30 * passed in an incorrect kernel address to one of these functions.
31 *
32 * If you use these functions directly please don't forget the
33 * access_ok().
34 */
35
36
37__wsum csum_partial_copy_nocheck(const void *src, void *dst, int len,
38 __wsum sum);
39
40__wsum csum_partial_copy_from_user(const void __user *src, void *dst,
41 int len, __wsum sum, int *err_ptr);
42
43static inline __sum16 csum_fold(__wsum csum)
44{
45 u32 sum = (__force u32)csum;
46 sum = (sum & 0xffff) + (sum >> 16);
47 sum = (sum & 0xffff) + (sum >> 16);
48 return (__force __sum16)~sum;
49}
50
51__sum16 ip_fast_csum(const void *iph, unsigned int ihl);
52
53__wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
54 unsigned short len, unsigned short proto,
55 __wsum sum);
56
57/*
58 * computes the checksum of the TCP/UDP pseudo-header
59 * returns a 16-bit checksum, already complemented
60 */
61static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
62 unsigned short len,
63 unsigned short proto,
64 __wsum sum)
65{
66 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
67}
68
69/*
70 * this routine is used for miscellaneous IP-like checksums, mainly
71 * in icmp.c
72 */
73static inline __sum16 ip_compute_csum(const void *buff, int len)
74{
75 return csum_fold(csum_partial(buff, len, 0));
76}
77
78#endif /* __ASM_SH_CHECKSUM_64_H */
diff --git a/arch/sh/include/asm/current.h b/arch/sh/include/asm/current.h
index 62b63880b33..4c51401b553 100644
--- a/arch/sh/include/asm/current.h
+++ b/arch/sh/include/asm/current.h
@@ -1,20 +1 @@
1#ifndef __ASM_SH_CURRENT_H #include <asm-generic/current.h>
2#define __ASM_SH_CURRENT_H
3
4/*
5 * Copyright (C) 1999 Niibe Yutaka
6 *
7 */
8
9#include <linux/thread_info.h>
10
11struct task_struct;
12
13static __inline__ struct task_struct * get_current(void)
14{
15 return current_thread_info()->task;
16}
17
18#define current get_current()
19
20#endif /* __ASM_SH_CURRENT_H */
diff --git a/arch/sh/include/asm/dma-mapping.h b/arch/sh/include/asm/dma-mapping.h
index ea9d4f41c9d..69d56dd4c96 100644
--- a/arch/sh/include/asm/dma-mapping.h
+++ b/arch/sh/include/asm/dma-mapping.h
@@ -97,7 +97,7 @@ static inline void dma_unmap_page(struct device *dev, dma_addr_t dma_address,
97 dma_unmap_single(dev, dma_address, size, dir); 97 dma_unmap_single(dev, dma_address, size, dir);
98} 98}
99 99
100static inline void dma_sync_single(struct device *dev, dma_addr_t dma_handle, 100static inline void __dma_sync_single(struct device *dev, dma_addr_t dma_handle,
101 size_t size, enum dma_data_direction dir) 101 size_t size, enum dma_data_direction dir)
102{ 102{
103#if defined(CONFIG_PCI) && !defined(CONFIG_SH_PCIDMA_NONCOHERENT) 103#if defined(CONFIG_PCI) && !defined(CONFIG_SH_PCIDMA_NONCOHERENT)
@@ -119,7 +119,7 @@ static inline void dma_sync_single_range(struct device *dev,
119 dma_cache_sync(dev, phys_to_virt(dma_handle) + offset, size, dir); 119 dma_cache_sync(dev, phys_to_virt(dma_handle) + offset, size, dir);
120} 120}
121 121
122static inline void dma_sync_sg(struct device *dev, struct scatterlist *sg, 122static inline void __dma_sync_sg(struct device *dev, struct scatterlist *sg,
123 int nelems, enum dma_data_direction dir) 123 int nelems, enum dma_data_direction dir)
124{ 124{
125 int i; 125 int i;
@@ -137,7 +137,7 @@ static inline void dma_sync_single_for_cpu(struct device *dev,
137 dma_addr_t dma_handle, size_t size, 137 dma_addr_t dma_handle, size_t size,
138 enum dma_data_direction dir) 138 enum dma_data_direction dir)
139{ 139{
140 dma_sync_single(dev, dma_handle, size, dir); 140 __dma_sync_single(dev, dma_handle, size, dir);
141 debug_dma_sync_single_for_cpu(dev, dma_handle, size, dir); 141 debug_dma_sync_single_for_cpu(dev, dma_handle, size, dir);
142} 142}
143 143
@@ -146,7 +146,7 @@ static inline void dma_sync_single_for_device(struct device *dev,
146 size_t size, 146 size_t size,
147 enum dma_data_direction dir) 147 enum dma_data_direction dir)
148{ 148{
149 dma_sync_single(dev, dma_handle, size, dir); 149 __dma_sync_single(dev, dma_handle, size, dir);
150 debug_dma_sync_single_for_device(dev, dma_handle, size, dir); 150 debug_dma_sync_single_for_device(dev, dma_handle, size, dir);
151} 151}
152 152
@@ -177,7 +177,7 @@ static inline void dma_sync_sg_for_cpu(struct device *dev,
177 struct scatterlist *sg, int nelems, 177 struct scatterlist *sg, int nelems,
178 enum dma_data_direction dir) 178 enum dma_data_direction dir)
179{ 179{
180 dma_sync_sg(dev, sg, nelems, dir); 180 __dma_sync_sg(dev, sg, nelems, dir);
181 debug_dma_sync_sg_for_cpu(dev, sg, nelems, dir); 181 debug_dma_sync_sg_for_cpu(dev, sg, nelems, dir);
182} 182}
183 183
@@ -185,7 +185,7 @@ static inline void dma_sync_sg_for_device(struct device *dev,
185 struct scatterlist *sg, int nelems, 185 struct scatterlist *sg, int nelems,
186 enum dma_data_direction dir) 186 enum dma_data_direction dir)
187{ 187{
188 dma_sync_sg(dev, sg, nelems, dir); 188 __dma_sync_sg(dev, sg, nelems, dir);
189 debug_dma_sync_sg_for_device(dev, sg, nelems, dir); 189 debug_dma_sync_sg_for_device(dev, sg, nelems, dir);
190} 190}
191 191
diff --git a/arch/sh/include/asm/dma.h b/arch/sh/include/asm/dma.h
index 6bd17847387..04ad0e1e637 100644
--- a/arch/sh/include/asm/dma.h
+++ b/arch/sh/include/asm/dma.h
@@ -16,13 +16,7 @@
16#include <linux/sched.h> 16#include <linux/sched.h>
17#include <linux/sysdev.h> 17#include <linux/sysdev.h>
18#include <cpu/dma.h> 18#include <cpu/dma.h>
19 19#include <asm-generic/dma.h>
20/* The maximum address that we can perform a DMA transfer to on this platform */
21/* Don't define MAX_DMA_ADDRESS; it's useless on the SuperH and any
22 occurrence should be flagged as an error. */
23/* But... */
24/* XXX: This is not applicable to SuperH, just needed for alloc_bootmem */
25#define MAX_DMA_ADDRESS (PAGE_OFFSET+0x10000000)
26 20
27#ifdef CONFIG_NR_DMA_CHANNELS 21#ifdef CONFIG_NR_DMA_CHANNELS
28# define MAX_DMA_CHANNELS (CONFIG_NR_DMA_CHANNELS) 22# define MAX_DMA_CHANNELS (CONFIG_NR_DMA_CHANNELS)
@@ -137,8 +131,6 @@ extern int dma_xfer(unsigned int chan, unsigned long from,
137 131
138extern int request_dma_bycap(const char **dmac, const char **caps, 132extern int request_dma_bycap(const char **dmac, const char **caps,
139 const char *dev_id); 133 const char *dev_id);
140extern int request_dma(unsigned int chan, const char *dev_id);
141extern void free_dma(unsigned int chan);
142extern int get_dma_residue(unsigned int chan); 134extern int get_dma_residue(unsigned int chan);
143extern struct dma_info *get_dma_info(unsigned int chan); 135extern struct dma_info *get_dma_info(unsigned int chan);
144extern struct dma_channel *get_dma_channel(unsigned int chan); 136extern struct dma_channel *get_dma_channel(unsigned int chan);
diff --git a/arch/sh/include/asm/ipcbuf.h b/arch/sh/include/asm/ipcbuf.h
index 5ffc9972a7e..84c7e51cb6d 100644
--- a/arch/sh/include/asm/ipcbuf.h
+++ b/arch/sh/include/asm/ipcbuf.h
@@ -1,29 +1 @@
1#ifndef __ASM_SH_IPCBUF_H__ #include <asm-generic/ipcbuf.h>
2#define __ASM_SH_IPCBUF_H__
3
4/*
5 * The ipc64_perm structure for i386 architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 32-bit mode_t and seq
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct ipc64_perm
15{
16 __kernel_key_t key;
17 __kernel_uid32_t uid;
18 __kernel_gid32_t gid;
19 __kernel_uid32_t cuid;
20 __kernel_gid32_t cgid;
21 __kernel_mode_t mode;
22 unsigned short __pad1;
23 unsigned short seq;
24 unsigned short __pad2;
25 unsigned long __unused1;
26 unsigned long __unused2;
27};
28
29#endif /* __ASM_SH_IPCBUF_H__ */
diff --git a/arch/sh/include/asm/irq.h b/arch/sh/include/asm/irq.h
index a2b8c99cc06..df8e1500527 100644
--- a/arch/sh/include/asm/irq.h
+++ b/arch/sh/include/asm/irq.h
@@ -39,7 +39,6 @@ static inline int generic_irq_demux(int irq)
39 return irq; 39 return irq;
40} 40}
41 41
42#define irq_canonicalize(irq) (irq)
43#define irq_demux(irq) sh_mv.mv_irq_demux(irq) 42#define irq_demux(irq) sh_mv.mv_irq_demux(irq)
44 43
45void init_IRQ(void); 44void init_IRQ(void);
@@ -54,6 +53,7 @@ extern void irq_ctx_exit(int cpu);
54# define irq_ctx_exit(cpu) do { } while (0) 53# define irq_ctx_exit(cpu) do { } while (0)
55#endif 54#endif
56 55
56#include <asm-generic/irq.h>
57#ifdef CONFIG_CPU_SH5 57#ifdef CONFIG_CPU_SH5
58#include <cpu/irq.h> 58#include <cpu/irq.h>
59#endif 59#endif
diff --git a/arch/sh/include/asm/mman.h b/arch/sh/include/asm/mman.h
index 7d8b72c91a5..8eebf89f5ab 100644
--- a/arch/sh/include/asm/mman.h
+++ b/arch/sh/include/asm/mman.h
@@ -1,17 +1 @@
1#ifndef __ASM_SH_MMAN_H #include <asm-generic/mman.h>
2#define __ASM_SH_MMAN_H
3
4#include <asm-generic/mman-common.h>
5
6#define MAP_GROWSDOWN 0x0100 /* stack-like segment */
7#define MAP_DENYWRITE 0x0800 /* ETXTBSY */
8#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
9#define MAP_LOCKED 0x2000 /* pages are locked */
10#define MAP_NORESERVE 0x4000 /* don't check for reservations */
11#define MAP_POPULATE 0x8000 /* populate (prefault) page tables */
12#define MAP_NONBLOCK 0x10000 /* do not block on IO */
13
14#define MCL_CURRENT 1 /* lock all current mappings */
15#define MCL_FUTURE 2 /* lock all future mappings */
16
17#endif /* __ASM_SH_MMAN_H */
diff --git a/arch/sh/include/asm/mmu_context.h b/arch/sh/include/asm/mmu_context.h
index 2a9c55f1a83..67d8946db19 100644
--- a/arch/sh/include/asm/mmu_context.h
+++ b/arch/sh/include/asm/mmu_context.h
@@ -122,30 +122,30 @@ static inline void switch_mm(struct mm_struct *prev,
122 unsigned int cpu = smp_processor_id(); 122 unsigned int cpu = smp_processor_id();
123 123
124 if (likely(prev != next)) { 124 if (likely(prev != next)) {
125 cpu_set(cpu, next->cpu_vm_mask); 125 cpumask_set_cpu(cpu, mm_cpumask(next));
126 set_TTB(next->pgd); 126 set_TTB(next->pgd);
127 activate_context(next, cpu); 127 activate_context(next, cpu);
128 } else 128 } else
129 if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) 129 if (!cpumask_test_and_set_cpu(cpu, mm_cpumask(next)))
130 activate_context(next, cpu); 130 activate_context(next, cpu);
131} 131}
132
133#define activate_mm(prev, next) switch_mm((prev),(next),NULL)
134#define deactivate_mm(tsk,mm) do { } while (0)
135#define enter_lazy_tlb(mm,tsk) do { } while (0)
136
132#else 137#else
133#define get_mmu_context(mm) do { } while (0) 138
134#define init_new_context(tsk,mm) (0)
135#define destroy_context(mm) do { } while (0)
136#define set_asid(asid) do { } while (0) 139#define set_asid(asid) do { } while (0)
137#define get_asid() (0) 140#define get_asid() (0)
138#define cpu_asid(cpu, mm) ({ (void)cpu; NO_CONTEXT; }) 141#define cpu_asid(cpu, mm) ({ (void)cpu; NO_CONTEXT; })
139#define switch_and_save_asid(asid) (0) 142#define switch_and_save_asid(asid) (0)
140#define set_TTB(pgd) do { } while (0) 143#define set_TTB(pgd) do { } while (0)
141#define get_TTB() (0) 144#define get_TTB() (0)
142#define activate_context(mm,cpu) do { } while (0)
143#define switch_mm(prev,next,tsk) do { } while (0)
144#endif /* CONFIG_MMU */
145 145
146#define activate_mm(prev, next) switch_mm((prev),(next),NULL) 146#include <asm-generic/mmu_context.h>
147#define deactivate_mm(tsk,mm) do { } while (0) 147
148#define enter_lazy_tlb(mm,tsk) do { } while (0) 148#endif /* CONFIG_MMU */
149 149
150#if defined(CONFIG_CPU_SH3) || defined(CONFIG_CPU_SH4) 150#if defined(CONFIG_CPU_SH3) || defined(CONFIG_CPU_SH4)
151/* 151/*
diff --git a/arch/sh/include/asm/module.h b/arch/sh/include/asm/module.h
index 46eccd33166..068bf165975 100644
--- a/arch/sh/include/asm/module.h
+++ b/arch/sh/include/asm/module.h
@@ -1,17 +1,7 @@
1#ifndef _ASM_SH_MODULE_H 1#ifndef _ASM_SH_MODULE_H
2#define _ASM_SH_MODULE_H 2#define _ASM_SH_MODULE_H
3 3
4/* 4#include <asm-generic/module.h>
5 * This file contains the SH architecture specific module code.
6 */
7
8struct mod_arch_specific {
9 /* Nothing to see here .. */
10};
11
12#define Elf_Shdr Elf32_Shdr
13#define Elf_Sym Elf32_Sym
14#define Elf_Ehdr Elf32_Ehdr
15 5
16#ifdef CONFIG_CPU_LITTLE_ENDIAN 6#ifdef CONFIG_CPU_LITTLE_ENDIAN
17# ifdef CONFIG_CPU_SH2 7# ifdef CONFIG_CPU_SH2
diff --git a/arch/sh/include/asm/msgbuf.h b/arch/sh/include/asm/msgbuf.h
index 517432343fb..809134c644a 100644
--- a/arch/sh/include/asm/msgbuf.h
+++ b/arch/sh/include/asm/msgbuf.h
@@ -1,31 +1 @@
1#ifndef __ASM_SH_MSGBUF_H #include <asm-generic/msgbuf.h>
2#define __ASM_SH_MSGBUF_H
3
4/*
5 * The msqid64_ds structure for i386 architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct msqid64_ds {
15 struct ipc64_perm msg_perm;
16 __kernel_time_t msg_stime; /* last msgsnd time */
17 unsigned long __unused1;
18 __kernel_time_t msg_rtime; /* last msgrcv time */
19 unsigned long __unused2;
20 __kernel_time_t msg_ctime; /* last change time */
21 unsigned long __unused3;
22 unsigned long msg_cbytes; /* current number of bytes on queue */
23 unsigned long msg_qnum; /* number of messages in queue */
24 unsigned long msg_qbytes; /* max number of bytes on queue */
25 __kernel_pid_t msg_lspid; /* pid of last msgsnd */
26 __kernel_pid_t msg_lrpid; /* last receive pid */
27 unsigned long __unused4;
28 unsigned long __unused5;
29};
30
31#endif /* __ASM_SH_MSGBUF_H */
diff --git a/arch/sh/include/asm/param.h b/arch/sh/include/asm/param.h
index ae245afdfd6..965d4542797 100644
--- a/arch/sh/include/asm/param.h
+++ b/arch/sh/include/asm/param.h
@@ -1,22 +1 @@
1#ifndef __ASM_SH_PARAM_H #include <asm-generic/param.h>
2#define __ASM_SH_PARAM_H
3
4#ifdef __KERNEL__
5# define HZ CONFIG_HZ
6# define USER_HZ 100 /* User interfaces are in "ticks" */
7# define CLOCKS_PER_SEC (USER_HZ) /* frequency at which times() counts */
8#endif
9
10#ifndef HZ
11#define HZ 100
12#endif
13
14#define EXEC_PAGESIZE 4096
15
16#ifndef NOGROUP
17#define NOGROUP (-1)
18#endif
19
20#define MAXHOSTNAMELEN 64 /* max length of hostname */
21
22#endif /* __ASM_SH_PARAM_H */
diff --git a/arch/sh/include/asm/parport.h b/arch/sh/include/asm/parport.h
index f67ba60a2ac..cf252af6459 100644
--- a/arch/sh/include/asm/parport.h
+++ b/arch/sh/include/asm/parport.h
@@ -1,16 +1 @@
1/* #include <asm-generic/parport.h>
2 * Copyright (C) 1999, 2000 Tim Waugh <tim@cyberelk.demon.co.uk>
3 *
4 * This file should only be included by drivers/parport/parport_pc.c.
5 */
6#ifndef __ASM_SH_PARPORT_H
7#define __ASM_SH_PARPORT_H
8
9static int __devinit parport_pc_find_isa_ports(int autoirq, int autodma);
10
11static int __devinit parport_pc_find_nonpci_ports(int autoirq, int autodma)
12{
13 return parport_pc_find_isa_ports(autoirq, autodma);
14}
15
16#endif /* __ASM_SH_PARPORT_H */
diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h
index ae0da6f48b6..d3633f513eb 100644
--- a/arch/sh/include/asm/pci.h
+++ b/arch/sh/include/asm/pci.h
@@ -137,19 +137,6 @@ extern void pcibios_resource_to_bus(struct pci_dev *dev,
137extern void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, 137extern void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
138 struct pci_bus_region *region); 138 struct pci_bus_region *region);
139 139
140static inline struct resource *
141pcibios_select_root(struct pci_dev *pdev, struct resource *res)
142{
143 struct resource *root = NULL;
144
145 if (res->flags & IORESOURCE_IO)
146 root = &ioport_resource;
147 if (res->flags & IORESOURCE_MEM)
148 root = &iomem_resource;
149
150 return root;
151}
152
153/* Chances are this interrupt is wired PC-style ... */ 140/* Chances are this interrupt is wired PC-style ... */
154static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) 141static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
155{ 142{
diff --git a/arch/sh/include/asm/perf_counter.h b/arch/sh/include/asm/perf_counter.h
new file mode 100644
index 00000000000..a8153c2aa6f
--- /dev/null
+++ b/arch/sh/include/asm/perf_counter.h
@@ -0,0 +1,7 @@
1#ifndef __ASM_SH_PERF_COUNTER_H
2#define __ASM_SH_PERF_COUNTER_H
3
4/* SH only supports software counters through this interface. */
5#define set_perf_counter_pending() do { } while (0)
6
7#endif /* __ASM_SH_PERF_COUNTER_H */
diff --git a/arch/sh/include/asm/posix_types_32.h b/arch/sh/include/asm/posix_types_32.h
index 2172732c55c..6a9ceaaf1ae 100644
--- a/arch/sh/include/asm/posix_types_32.h
+++ b/arch/sh/include/asm/posix_types_32.h
@@ -1,118 +1,29 @@
1#ifndef __ASM_SH_POSIX_TYPES_H 1#ifndef __ASM_SH_POSIX_TYPES_32_H
2#define __ASM_SH_POSIX_TYPES_H 2#define __ASM_SH_POSIX_TYPES_32_H
3 3
4/*
5 * This file is generally used by user-level software, so you need to
6 * be a little careful about namespace pollution etc. Also, we cannot
7 * assume GCC is being used.
8 */
9
10typedef unsigned long __kernel_ino_t;
11typedef unsigned short __kernel_mode_t; 4typedef unsigned short __kernel_mode_t;
5#define __kernel_mode_t __kernel_mode_t
12typedef unsigned short __kernel_nlink_t; 6typedef unsigned short __kernel_nlink_t;
13typedef long __kernel_off_t; 7#define __kernel_nlink_t __kernel_nlink_t
14typedef int __kernel_pid_t;
15typedef unsigned short __kernel_ipc_pid_t; 8typedef unsigned short __kernel_ipc_pid_t;
9#define __kernel_ipc_pid_t __kernel_ipc_pid_t
16typedef unsigned short __kernel_uid_t; 10typedef unsigned short __kernel_uid_t;
11#define __kernel_uid_t __kernel_uid_t
17typedef unsigned short __kernel_gid_t; 12typedef unsigned short __kernel_gid_t;
18typedef unsigned int __kernel_size_t; 13#define __kernel_gid_t __kernel_gid_t
19typedef int __kernel_ssize_t; 14
20typedef int __kernel_ptrdiff_t;
21typedef long __kernel_time_t;
22typedef long __kernel_suseconds_t;
23typedef long __kernel_clock_t;
24typedef int __kernel_timer_t;
25typedef int __kernel_clockid_t;
26typedef int __kernel_daddr_t;
27typedef char * __kernel_caddr_t;
28typedef unsigned short __kernel_uid16_t;
29typedef unsigned short __kernel_gid16_t;
30typedef unsigned int __kernel_uid32_t; 15typedef unsigned int __kernel_uid32_t;
16#define __kernel_uid32_t __kernel_uid32_t
31typedef unsigned int __kernel_gid32_t; 17typedef unsigned int __kernel_gid32_t;
18#define __kernel_gid32_t __kernel_gid32_t
32 19
33typedef unsigned short __kernel_old_uid_t; 20typedef unsigned short __kernel_old_uid_t;
21#define __kernel_old_uid_t __kernel_old_uid_t
34typedef unsigned short __kernel_old_gid_t; 22typedef unsigned short __kernel_old_gid_t;
23#define __kernel_old_gid_t __kernel_old_gid_t
35typedef unsigned short __kernel_old_dev_t; 24typedef unsigned short __kernel_old_dev_t;
25#define __kernel_old_dev_t __kernel_old_dev_t
36 26
37#ifdef __GNUC__ 27#include <asm-generic/posix_types.h>
38typedef long long __kernel_loff_t;
39#endif
40
41typedef struct {
42 int val[2];
43} __kernel_fsid_t;
44
45#if defined(__KERNEL__)
46
47#undef __FD_SET
48static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
49{
50 unsigned long __tmp = __fd / __NFDBITS;
51 unsigned long __rem = __fd % __NFDBITS;
52 __fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
53}
54
55#undef __FD_CLR
56static __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
57{
58 unsigned long __tmp = __fd / __NFDBITS;
59 unsigned long __rem = __fd % __NFDBITS;
60 __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
61}
62
63
64#undef __FD_ISSET
65static __inline__ int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
66{
67 unsigned long __tmp = __fd / __NFDBITS;
68 unsigned long __rem = __fd % __NFDBITS;
69 return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
70}
71
72/*
73 * This will unroll the loop for the normal constant case (8 ints,
74 * for a 256-bit fd_set)
75 */
76#undef __FD_ZERO
77static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
78{
79 unsigned long *__tmp = __p->fds_bits;
80 int __i;
81
82 if (__builtin_constant_p(__FDSET_LONGS)) {
83 switch (__FDSET_LONGS) {
84 case 16:
85 __tmp[ 0] = 0; __tmp[ 1] = 0;
86 __tmp[ 2] = 0; __tmp[ 3] = 0;
87 __tmp[ 4] = 0; __tmp[ 5] = 0;
88 __tmp[ 6] = 0; __tmp[ 7] = 0;
89 __tmp[ 8] = 0; __tmp[ 9] = 0;
90 __tmp[10] = 0; __tmp[11] = 0;
91 __tmp[12] = 0; __tmp[13] = 0;
92 __tmp[14] = 0; __tmp[15] = 0;
93 return;
94
95 case 8:
96 __tmp[ 0] = 0; __tmp[ 1] = 0;
97 __tmp[ 2] = 0; __tmp[ 3] = 0;
98 __tmp[ 4] = 0; __tmp[ 5] = 0;
99 __tmp[ 6] = 0; __tmp[ 7] = 0;
100 return;
101
102 case 4:
103 __tmp[ 0] = 0; __tmp[ 1] = 0;
104 __tmp[ 2] = 0; __tmp[ 3] = 0;
105 return;
106 }
107 }
108 __i = __FDSET_LONGS;
109 while (__i) {
110 __i--;
111 *__tmp = 0;
112 __tmp++;
113 }
114}
115
116#endif /* defined(__KERNEL__) */
117 28
118#endif /* __ASM_SH_POSIX_TYPES_H */ 29#endif /* __ASM_SH_POSIX_TYPES_32_H */
diff --git a/arch/sh/include/asm/posix_types_64.h b/arch/sh/include/asm/posix_types_64.h
index f83e9bd463d..8cd11485c06 100644
--- a/arch/sh/include/asm/posix_types_64.h
+++ b/arch/sh/include/asm/posix_types_64.h
@@ -1,127 +1,34 @@
1#ifndef __ASM_SH64_POSIX_TYPES_H 1#ifndef __ASM_SH_POSIX_TYPES_64_H
2#define __ASM_SH64_POSIX_TYPES_H 2#define __ASM_SH_POSIX_TYPES_64_H
3 3
4/*
5 * This file is subject to the terms and conditions of the GNU General Public
6 * License. See the file "COPYING" in the main directory of this archive
7 * for more details.
8 *
9 * include/asm-sh64/posix_types.h
10 *
11 * Copyright (C) 2000, 2001 Paolo Alberelli
12 * Copyright (C) 2003 Paul Mundt
13 *
14 * This file is generally used by user-level software, so you need to
15 * be a little careful about namespace pollution etc. Also, we cannot
16 * assume GCC is being used.
17 */
18
19typedef unsigned long __kernel_ino_t;
20typedef unsigned short __kernel_mode_t; 4typedef unsigned short __kernel_mode_t;
5#define __kernel_mode_t __kernel_mode_t
21typedef unsigned short __kernel_nlink_t; 6typedef unsigned short __kernel_nlink_t;
22typedef long __kernel_off_t; 7#define __kernel_nlink_t __kernel_nlink_t
23typedef int __kernel_pid_t;
24typedef unsigned short __kernel_ipc_pid_t; 8typedef unsigned short __kernel_ipc_pid_t;
9#define __kernel_ipc_pid_t __kernel_ipc_pid_t
25typedef unsigned short __kernel_uid_t; 10typedef unsigned short __kernel_uid_t;
11#define __kernel_uid_t __kernel_uid_t
26typedef unsigned short __kernel_gid_t; 12typedef unsigned short __kernel_gid_t;
13#define __kernel_gid_t __kernel_gid_t
27typedef long unsigned int __kernel_size_t; 14typedef long unsigned int __kernel_size_t;
15#define __kernel_size_t __kernel_size_t
28typedef int __kernel_ssize_t; 16typedef int __kernel_ssize_t;
17#define __kernel_ssize_t __kernel_ssize_t
29typedef int __kernel_ptrdiff_t; 18typedef int __kernel_ptrdiff_t;
30typedef long __kernel_time_t; 19#define __kernel_ptrdiff_t __kernel_ptrdiff_t
31typedef long __kernel_suseconds_t;
32typedef long __kernel_clock_t;
33typedef int __kernel_timer_t;
34typedef int __kernel_clockid_t;
35typedef int __kernel_daddr_t;
36typedef char * __kernel_caddr_t;
37typedef unsigned short __kernel_uid16_t;
38typedef unsigned short __kernel_gid16_t;
39typedef unsigned int __kernel_uid32_t; 20typedef unsigned int __kernel_uid32_t;
21#define __kernel_uid32_t __kernel_uid32_t
40typedef unsigned int __kernel_gid32_t; 22typedef unsigned int __kernel_gid32_t;
23#define __kernel_gid32_t __kernel_gid32_t
41 24
42typedef unsigned short __kernel_old_uid_t; 25typedef unsigned short __kernel_old_uid_t;
26#define __kernel_old_uid_t __kernel_old_uid_t
43typedef unsigned short __kernel_old_gid_t; 27typedef unsigned short __kernel_old_gid_t;
28#define __kernel_old_gid_t __kernel_old_gid_t
44typedef unsigned short __kernel_old_dev_t; 29typedef unsigned short __kernel_old_dev_t;
30#define __kernel_old_dev_t __kernel_old_dev_t
45 31
46#ifdef __GNUC__ 32#include <asm-generic/posix_types.h>
47typedef long long __kernel_loff_t;
48#endif
49
50typedef struct {
51 int val[2];
52} __kernel_fsid_t;
53
54#if defined(__KERNEL__)
55
56#undef __FD_SET
57static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
58{
59 unsigned long __tmp = __fd / __NFDBITS;
60 unsigned long __rem = __fd % __NFDBITS;
61 __fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
62}
63
64#undef __FD_CLR
65static __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
66{
67 unsigned long __tmp = __fd / __NFDBITS;
68 unsigned long __rem = __fd % __NFDBITS;
69 __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
70}
71
72
73#undef __FD_ISSET
74static __inline__ int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
75{
76 unsigned long __tmp = __fd / __NFDBITS;
77 unsigned long __rem = __fd % __NFDBITS;
78 return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
79}
80
81/*
82 * This will unroll the loop for the normal constant case (8 ints,
83 * for a 256-bit fd_set)
84 */
85#undef __FD_ZERO
86static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
87{
88 unsigned long *__tmp = __p->fds_bits;
89 int __i;
90
91 if (__builtin_constant_p(__FDSET_LONGS)) {
92 switch (__FDSET_LONGS) {
93 case 16:
94 __tmp[ 0] = 0; __tmp[ 1] = 0;
95 __tmp[ 2] = 0; __tmp[ 3] = 0;
96 __tmp[ 4] = 0; __tmp[ 5] = 0;
97 __tmp[ 6] = 0; __tmp[ 7] = 0;
98 __tmp[ 8] = 0; __tmp[ 9] = 0;
99 __tmp[10] = 0; __tmp[11] = 0;
100 __tmp[12] = 0; __tmp[13] = 0;
101 __tmp[14] = 0; __tmp[15] = 0;
102 return;
103
104 case 8:
105 __tmp[ 0] = 0; __tmp[ 1] = 0;
106 __tmp[ 2] = 0; __tmp[ 3] = 0;
107 __tmp[ 4] = 0; __tmp[ 5] = 0;
108 __tmp[ 6] = 0; __tmp[ 7] = 0;
109 return;
110
111 case 4:
112 __tmp[ 0] = 0; __tmp[ 1] = 0;
113 __tmp[ 2] = 0; __tmp[ 3] = 0;
114 return;
115 }
116 }
117 __i = __FDSET_LONGS;
118 while (__i) {
119 __i--;
120 *__tmp = 0;
121 __tmp++;
122 }
123}
124
125#endif /* defined(__KERNEL__) */
126 33
127#endif /* __ASM_SH64_POSIX_TYPES_H */ 34#endif /* __ASM_SH_POSIX_TYPES_64_H */
diff --git a/arch/sh/include/asm/scatterlist.h b/arch/sh/include/asm/scatterlist.h
index c693d268a41..327cc2e4c97 100644
--- a/arch/sh/include/asm/scatterlist.h
+++ b/arch/sh/include/asm/scatterlist.h
@@ -1,28 +1,8 @@
1#ifndef __ASM_SH_SCATTERLIST_H 1#ifndef __ASM_SH_SCATTERLIST_H
2#define __ASM_SH_SCATTERLIST_H 2#define __ASM_SH_SCATTERLIST_H
3 3
4#include <asm/types.h>
5
6struct scatterlist {
7#ifdef CONFIG_DEBUG_SG
8 unsigned long sg_magic;
9#endif
10 unsigned long page_link;
11 unsigned int offset; /* for highmem, page offset */
12 unsigned int length;
13 dma_addr_t dma_address;
14 unsigned int dma_length;
15};
16
17#define ISA_DMA_THRESHOLD PHYS_ADDR_MASK 4#define ISA_DMA_THRESHOLD PHYS_ADDR_MASK
18 5
19/* These macros should be used after a pci_map_sg call has been done 6#include <asm-generic/scatterlist.h>
20 * to get bus addresses of each of the SG entries and their lengths.
21 * You should only work with the number of sg entries pci_map_sg
22 * returns, or alternatively stop on the first sg_dma_len(sg) which
23 * is 0.
24 */
25#define sg_dma_address(sg) ((sg)->dma_address)
26#define sg_dma_len(sg) ((sg)->length)
27 7
28#endif /* !(__ASM_SH_SCATTERLIST_H) */ 8#endif /* __ASM_SH_SCATTERLIST_H */
diff --git a/arch/sh/include/asm/sembuf.h b/arch/sh/include/asm/sembuf.h
index d79f3bd570b..7673b83cfef 100644
--- a/arch/sh/include/asm/sembuf.h
+++ b/arch/sh/include/asm/sembuf.h
@@ -1,25 +1 @@
1#ifndef __ASM_SH_SEMBUF_H #include <asm-generic/sembuf.h>
2#define __ASM_SH_SEMBUF_H
3
4/*
5 * The semid64_ds structure for i386 architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct semid64_ds {
15 struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
16 __kernel_time_t sem_otime; /* last semop time */
17 unsigned long __unused1;
18 __kernel_time_t sem_ctime; /* last change time */
19 unsigned long __unused2;
20 unsigned long sem_nsems; /* no. of semaphores in array */
21 unsigned long __unused3;
22 unsigned long __unused4;
23};
24
25#endif /* __ASM_SH_SEMBUF_H */
diff --git a/arch/sh/include/asm/serial.h b/arch/sh/include/asm/serial.h
index 11f854dd136..a0cb0caff15 100644
--- a/arch/sh/include/asm/serial.h
+++ b/arch/sh/include/asm/serial.h
@@ -1,19 +1 @@
1/* #include <asm-generic/serial.h>
2 * include/asm-sh/serial.h
3 *
4 * Configuration details for 8250, 16450, 16550, etc. serial ports
5 */
6
7#ifndef _ASM_SERIAL_H
8#define _ASM_SERIAL_H
9
10/*
11 * This assumes you have a 1.8432 MHz clock for your UART.
12 *
13 * It'd be nice if someone built a serial card with a 24.576 MHz
14 * clock, since the 16550A is capable of handling a top speed of 1.5
15 * megabits/second; but this requires the faster clock.
16 */
17#define BASE_BAUD ( 1843200 / 16 )
18
19#endif /* _ASM_SERIAL_H */
diff --git a/arch/sh/include/asm/setup.h b/arch/sh/include/asm/setup.h
index d450bcf59ee..ce3743599b2 100644
--- a/arch/sh/include/asm/setup.h
+++ b/arch/sh/include/asm/setup.h
@@ -1,7 +1,7 @@
1#ifndef _SH_SETUP_H 1#ifndef _SH_SETUP_H
2#define _SH_SETUP_H 2#define _SH_SETUP_H
3 3
4#define COMMAND_LINE_SIZE 256 4#include <asm-generic/setup.h>
5 5
6#ifdef __KERNEL__ 6#ifdef __KERNEL__
7/* 7/*
diff --git a/arch/sh/include/asm/shmbuf.h b/arch/sh/include/asm/shmbuf.h
index b2101f49052..83c05fc2de3 100644
--- a/arch/sh/include/asm/shmbuf.h
+++ b/arch/sh/include/asm/shmbuf.h
@@ -1,42 +1 @@
1#ifndef __ASM_SH_SHMBUF_H #include <asm-generic/shmbuf.h>
2#define __ASM_SH_SHMBUF_H
3
4/*
5 * The shmid64_ds structure for i386 architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct shmid64_ds {
15 struct ipc64_perm shm_perm; /* operation perms */
16 size_t shm_segsz; /* size of segment (bytes) */
17 __kernel_time_t shm_atime; /* last attach time */
18 unsigned long __unused1;
19 __kernel_time_t shm_dtime; /* last detach time */
20 unsigned long __unused2;
21 __kernel_time_t shm_ctime; /* last change time */
22 unsigned long __unused3;
23 __kernel_pid_t shm_cpid; /* pid of creator */
24 __kernel_pid_t shm_lpid; /* pid of last operator */
25 unsigned long shm_nattch; /* no. of current attaches */
26 unsigned long __unused4;
27 unsigned long __unused5;
28};
29
30struct shminfo64 {
31 unsigned long shmmax;
32 unsigned long shmmin;
33 unsigned long shmmni;
34 unsigned long shmseg;
35 unsigned long shmall;
36 unsigned long __unused1;
37 unsigned long __unused2;
38 unsigned long __unused3;
39 unsigned long __unused4;
40};
41
42#endif /* __ASM_SH_SHMBUF_H */
diff --git a/arch/sh/include/asm/signal.h b/arch/sh/include/asm/signal.h
index 9cc5f014468..9ac530a90bc 100644
--- a/arch/sh/include/asm/signal.h
+++ b/arch/sh/include/asm/signal.h
@@ -1,114 +1,10 @@
1#ifndef __ASM_SH_SIGNAL_H 1#ifndef __ASM_SH_SIGNAL_H
2#define __ASM_SH_SIGNAL_H 2#define __ASM_SH_SIGNAL_H
3 3
4#include <linux/types.h>
5
6/* Avoid too many header ordering problems. */
7struct pt_regs;
8struct siginfo;
9
10#ifdef __KERNEL__
11/* Most things should be clean enough to redefine this at will, if care
12 is taken to make libc match. */
13
14#define _NSIG 64
15#define _NSIG_BPW 32
16#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
17
18typedef unsigned long old_sigset_t; /* at least 32 bits */
19
20typedef struct {
21 unsigned long sig[_NSIG_WORDS];
22} sigset_t;
23
24#else
25/* Here we must cater to libcs that poke about in kernel headers. */
26
27#define NSIG 32
28typedef unsigned long sigset_t;
29
30#endif /* __KERNEL__ */
31
32#define SIGHUP 1
33#define SIGINT 2
34#define SIGQUIT 3
35#define SIGILL 4
36#define SIGTRAP 5
37#define SIGABRT 6
38#define SIGIOT 6
39#define SIGBUS 7
40#define SIGFPE 8
41#define SIGKILL 9
42#define SIGUSR1 10
43#define SIGSEGV 11
44#define SIGUSR2 12
45#define SIGPIPE 13
46#define SIGALRM 14
47#define SIGTERM 15
48#define SIGSTKFLT 16
49#define SIGCHLD 17
50#define SIGCONT 18
51#define SIGSTOP 19
52#define SIGTSTP 20
53#define SIGTTIN 21
54#define SIGTTOU 22
55#define SIGURG 23
56#define SIGXCPU 24
57#define SIGXFSZ 25
58#define SIGVTALRM 26
59#define SIGPROF 27
60#define SIGWINCH 28
61#define SIGIO 29
62#define SIGPOLL SIGIO
63/*
64#define SIGLOST 29
65*/
66#define SIGPWR 30
67#define SIGSYS 31
68#define SIGUNUSED 31
69
70/* These should not be considered constants from userland. */
71#define SIGRTMIN 32
72#define SIGRTMAX _NSIG
73
74/*
75 * SA_FLAGS values:
76 *
77 * SA_ONSTACK indicates that a registered stack_t will be used.
78 * SA_RESTART flag to get restarting signals (which were the default long ago)
79 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
80 * SA_RESETHAND clears the handler when the signal is delivered.
81 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
82 * SA_NODEFER prevents the current signal from being masked in the handler.
83 *
84 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
85 * Unix names RESETHAND and NODEFER respectively.
86 */
87#define SA_NOCLDSTOP 0x00000001
88#define SA_NOCLDWAIT 0x00000002
89#define SA_SIGINFO 0x00000004
90#define SA_ONSTACK 0x08000000
91#define SA_RESTART 0x10000000
92#define SA_NODEFER 0x40000000
93#define SA_RESETHAND 0x80000000
94
95#define SA_NOMASK SA_NODEFER
96#define SA_ONESHOT SA_RESETHAND
97
98#define SA_RESTORER 0x04000000 4#define SA_RESTORER 0x04000000
99 5
100/* 6#include <asm-generic/signal.h>
101 * sigaltstack controls
102 */
103#define SS_ONSTACK 1
104#define SS_DISABLE 2
105
106#define MINSIGSTKSZ 2048
107#define SIGSTKSZ 8192
108 7
109#include <asm-generic/signal-defs.h>
110
111#ifdef __KERNEL__
112struct old_sigaction { 8struct old_sigaction {
113 __sighandler_t sa_handler; 9 __sighandler_t sa_handler;
114 old_sigset_t sa_mask; 10 old_sigset_t sa_mask;
@@ -116,45 +12,4 @@ struct old_sigaction {
116 void (*sa_restorer)(void); 12 void (*sa_restorer)(void);
117}; 13};
118 14
119struct sigaction {
120 __sighandler_t sa_handler;
121 unsigned long sa_flags;
122 void (*sa_restorer)(void);
123 sigset_t sa_mask; /* mask last for extensibility */
124};
125
126struct k_sigaction {
127 struct sigaction sa;
128};
129#else
130/* Here we must cater to libcs that poke about in kernel headers. */
131
132struct sigaction {
133 union {
134 __sighandler_t _sa_handler;
135 void (*_sa_sigaction)(int, struct siginfo *, void *);
136 } _u;
137 sigset_t sa_mask;
138 unsigned long sa_flags;
139 void (*sa_restorer)(void);
140};
141
142#define sa_handler _u._sa_handler
143#define sa_sigaction _u._sa_sigaction
144
145#endif /* __KERNEL__ */
146
147typedef struct sigaltstack {
148 void *ss_sp;
149 int ss_flags;
150 size_t ss_size;
151} stack_t;
152
153#ifdef __KERNEL__
154#include <asm/sigcontext.h>
155
156#define ptrace_signal_deliver(regs, cookie) do { } while (0)
157
158#endif /* __KERNEL__ */
159
160#endif /* __ASM_SH_SIGNAL_H */ 15#endif /* __ASM_SH_SIGNAL_H */
diff --git a/arch/sh/include/asm/smp.h b/arch/sh/include/asm/smp.h
index c24e9c6a173..ca64f43abe6 100644
--- a/arch/sh/include/asm/smp.h
+++ b/arch/sh/include/asm/smp.h
@@ -43,7 +43,8 @@ void plat_start_cpu(unsigned int cpu, unsigned long entry_point);
43void plat_send_ipi(unsigned int cpu, unsigned int message); 43void plat_send_ipi(unsigned int cpu, unsigned int message);
44 44
45void arch_send_call_function_single_ipi(int cpu); 45void arch_send_call_function_single_ipi(int cpu);
46void arch_send_call_function_ipi(cpumask_t mask); 46extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
47#define arch_send_call_function_ipi_mask arch_send_call_function_ipi_mask
47 48
48#else 49#else
49 50
diff --git a/arch/sh/include/asm/socket.h b/arch/sh/include/asm/socket.h
index 345653b9682..6b71384b9d8 100644
--- a/arch/sh/include/asm/socket.h
+++ b/arch/sh/include/asm/socket.h
@@ -1,60 +1 @@
1#ifndef __ASM_SH_SOCKET_H #include <asm-generic/socket.h>
2#define __ASM_SH_SOCKET_H
3
4#include <asm/sockios.h>
5
6/* For setsockopt(2) */
7#define SOL_SOCKET 1
8
9#define SO_DEBUG 1
10#define SO_REUSEADDR 2
11#define SO_TYPE 3
12#define SO_ERROR 4
13#define SO_DONTROUTE 5
14#define SO_BROADCAST 6
15#define SO_SNDBUF 7
16#define SO_RCVBUF 8
17#define SO_RCVBUFFORCE 32
18#define SO_SNDBUFFORCE 33
19#define SO_KEEPALIVE 9
20#define SO_OOBINLINE 10
21#define SO_NO_CHECK 11
22#define SO_PRIORITY 12
23#define SO_LINGER 13
24#define SO_BSDCOMPAT 14
25/* To add :#define SO_REUSEPORT 15 */
26#define SO_PASSCRED 16
27#define SO_PEERCRED 17
28#define SO_RCVLOWAT 18
29#define SO_SNDLOWAT 19
30#define SO_RCVTIMEO 20
31#define SO_SNDTIMEO 21
32
33/* Security levels - as per NRL IPv6 - don't actually do anything */
34#define SO_SECURITY_AUTHENTICATION 22
35#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
36#define SO_SECURITY_ENCRYPTION_NETWORK 24
37
38#define SO_BINDTODEVICE 25
39
40/* Socket filtering */
41#define SO_ATTACH_FILTER 26
42#define SO_DETACH_FILTER 27
43
44#define SO_PEERNAME 28
45#define SO_TIMESTAMP 29
46#define SCM_TIMESTAMP SO_TIMESTAMP
47
48#define SO_ACCEPTCONN 30
49
50#define SO_PEERSEC 31
51#define SO_PASSSEC 34
52#define SO_TIMESTAMPNS 35
53#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
54
55#define SO_MARK 36
56
57#define SO_TIMESTAMPING 37
58#define SCM_TIMESTAMPING SO_TIMESTAMPING
59
60#endif /* __ASM_SH_SOCKET_H */
diff --git a/arch/sh/include/asm/swab.h b/arch/sh/include/asm/swab.h
index 0e08fe54ad7..1cd09767a7a 100644
--- a/arch/sh/include/asm/swab.h
+++ b/arch/sh/include/asm/swab.h
@@ -7,8 +7,7 @@
7 */ 7 */
8#include <linux/compiler.h> 8#include <linux/compiler.h>
9#include <linux/types.h> 9#include <linux/types.h>
10 10#include <asm-generic/swab.h>
11#define __SWAB_64_THRU_32__
12 11
13static inline __attribute_const__ __u32 __arch_swab32(__u32 x) 12static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
14{ 13{
diff --git a/arch/sh/include/asm/system.h b/arch/sh/include/asm/system.h
index a88895e6dcb..ab79e1f4fbe 100644
--- a/arch/sh/include/asm/system.h
+++ b/arch/sh/include/asm/system.h
@@ -154,6 +154,7 @@ extern struct dentry *sh_debugfs_root;
154 154
155void per_cpu_trap_init(void); 155void per_cpu_trap_init(void);
156void default_idle(void); 156void default_idle(void);
157void cpu_idle_wait(void);
157 158
158asmlinkage void break_point_trap(void); 159asmlinkage void break_point_trap(void);
159 160
diff --git a/arch/sh/include/asm/termbits.h b/arch/sh/include/asm/termbits.h
index 77db116948c..3935b106de7 100644
--- a/arch/sh/include/asm/termbits.h
+++ b/arch/sh/include/asm/termbits.h
@@ -1,198 +1 @@
1#ifndef __ASM_SH_TERMBITS_H #include <asm-generic/termbits.h>
2#define __ASM_SH_TERMBITS_H
3
4#include <linux/posix_types.h>
5
6typedef unsigned char cc_t;
7typedef unsigned int speed_t;
8typedef unsigned int tcflag_t;
9
10#define NCCS 19
11struct termios {
12 tcflag_t c_iflag; /* input mode flags */
13 tcflag_t c_oflag; /* output mode flags */
14 tcflag_t c_cflag; /* control mode flags */
15 tcflag_t c_lflag; /* local mode flags */
16 cc_t c_line; /* line discipline */
17 cc_t c_cc[NCCS]; /* control characters */
18};
19
20struct termios2 {
21 tcflag_t c_iflag; /* input mode flags */
22 tcflag_t c_oflag; /* output mode flags */
23 tcflag_t c_cflag; /* control mode flags */
24 tcflag_t c_lflag; /* local mode flags */
25 cc_t c_line; /* line discipline */
26 cc_t c_cc[NCCS]; /* control characters */
27 speed_t c_ispeed; /* input speed */
28 speed_t c_ospeed; /* output speed */
29};
30
31struct ktermios {
32 tcflag_t c_iflag; /* input mode flags */
33 tcflag_t c_oflag; /* output mode flags */
34 tcflag_t c_cflag; /* control mode flags */
35 tcflag_t c_lflag; /* local mode flags */
36 cc_t c_line; /* line discipline */
37 cc_t c_cc[NCCS]; /* control characters */
38 speed_t c_ispeed; /* input speed */
39 speed_t c_ospeed; /* output speed */
40};
41
42/* c_cc characters */
43#define VINTR 0
44#define VQUIT 1
45#define VERASE 2
46#define VKILL 3
47#define VEOF 4
48#define VTIME 5
49#define VMIN 6
50#define VSWTC 7
51#define VSTART 8
52#define VSTOP 9
53#define VSUSP 10
54#define VEOL 11
55#define VREPRINT 12
56#define VDISCARD 13
57#define VWERASE 14
58#define VLNEXT 15
59#define VEOL2 16
60
61/* c_iflag bits */
62#define IGNBRK 0000001
63#define BRKINT 0000002
64#define IGNPAR 0000004
65#define PARMRK 0000010
66#define INPCK 0000020
67#define ISTRIP 0000040
68#define INLCR 0000100
69#define IGNCR 0000200
70#define ICRNL 0000400
71#define IUCLC 0001000
72#define IXON 0002000
73#define IXANY 0004000
74#define IXOFF 0010000
75#define IMAXBEL 0020000
76#define IUTF8 0040000
77
78/* c_oflag bits */
79#define OPOST 0000001
80#define OLCUC 0000002
81#define ONLCR 0000004
82#define OCRNL 0000010
83#define ONOCR 0000020
84#define ONLRET 0000040
85#define OFILL 0000100
86#define OFDEL 0000200
87#define NLDLY 0000400
88#define NL0 0000000
89#define NL1 0000400
90#define CRDLY 0003000
91#define CR0 0000000
92#define CR1 0001000
93#define CR2 0002000
94#define CR3 0003000
95#define TABDLY 0014000
96#define TAB0 0000000
97#define TAB1 0004000
98#define TAB2 0010000
99#define TAB3 0014000
100#define XTABS 0014000
101#define BSDLY 0020000
102#define BS0 0000000
103#define BS1 0020000
104#define VTDLY 0040000
105#define VT0 0000000
106#define VT1 0040000
107#define FFDLY 0100000
108#define FF0 0000000
109#define FF1 0100000
110
111/* c_cflag bit meaning */
112#define CBAUD 0010017
113#define B0 0000000 /* hang up */
114#define B50 0000001
115#define B75 0000002
116#define B110 0000003
117#define B134 0000004
118#define B150 0000005
119#define B200 0000006
120#define B300 0000007
121#define B600 0000010
122#define B1200 0000011
123#define B1800 0000012
124#define B2400 0000013
125#define B4800 0000014
126#define B9600 0000015
127#define B19200 0000016
128#define B38400 0000017
129#define EXTA B19200
130#define EXTB B38400
131#define CSIZE 0000060
132#define CS5 0000000
133#define CS6 0000020
134#define CS7 0000040
135#define CS8 0000060
136#define CSTOPB 0000100
137#define CREAD 0000200
138#define PARENB 0000400
139#define PARODD 0001000
140#define HUPCL 0002000
141#define CLOCAL 0004000
142#define CBAUDEX 0010000
143#define BOTHER 0010000
144#define B57600 0010001
145#define B115200 0010002
146#define B230400 0010003
147#define B460800 0010004
148#define B500000 0010005
149#define B576000 0010006
150#define B921600 0010007
151#define B1000000 0010010
152#define B1152000 0010011
153#define B1500000 0010012
154#define B2000000 0010013
155#define B2500000 0010014
156#define B3000000 0010015
157#define B3500000 0010016
158#define B4000000 0010017
159#define CIBAUD 002003600000 /* input baud rate */
160#define CMSPAR 010000000000 /* mark or space (stick) parity */
161#define CRTSCTS 020000000000 /* flow control */
162
163#define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */
164
165/* c_lflag bits */
166#define ISIG 0000001
167#define ICANON 0000002
168#define XCASE 0000004
169#define ECHO 0000010
170#define ECHOE 0000020
171#define ECHOK 0000040
172#define ECHONL 0000100
173#define NOFLSH 0000200
174#define TOSTOP 0000400
175#define ECHOCTL 0001000
176#define ECHOPRT 0002000
177#define ECHOKE 0004000
178#define FLUSHO 0010000
179#define PENDIN 0040000
180#define IEXTEN 0100000
181
182/* tcflow() and TCXONC use these */
183#define TCOOFF 0
184#define TCOON 1
185#define TCIOFF 2
186#define TCION 3
187
188/* tcflush() and TCFLSH use these */
189#define TCIFLUSH 0
190#define TCOFLUSH 1
191#define TCIOFLUSH 2
192
193/* tcsetattr uses these */
194#define TCSANOW 0
195#define TCSADRAIN 1
196#define TCSAFLUSH 2
197
198#endif /* __ASM_SH_TERMBITS_H */
diff --git a/arch/sh/include/asm/termios.h b/arch/sh/include/asm/termios.h
index 0a8c793c76f..280d78a9d96 100644
--- a/arch/sh/include/asm/termios.h
+++ b/arch/sh/include/asm/termios.h
@@ -1,90 +1 @@
1#ifndef __ASM_SH_TERMIOS_H #include <asm-generic/termios.h>
2#define __ASM_SH_TERMIOS_H
3
4#include <asm/termbits.h>
5#include <asm/ioctls.h>
6
7struct winsize {
8 unsigned short ws_row;
9 unsigned short ws_col;
10 unsigned short ws_xpixel;
11 unsigned short ws_ypixel;
12};
13
14#define NCC 8
15struct termio {
16 unsigned short c_iflag; /* input mode flags */
17 unsigned short c_oflag; /* output mode flags */
18 unsigned short c_cflag; /* control mode flags */
19 unsigned short c_lflag; /* local mode flags */
20 unsigned char c_line; /* line discipline */
21 unsigned char c_cc[NCC]; /* control characters */
22};
23
24/* modem lines */
25#define TIOCM_LE 0x001
26#define TIOCM_DTR 0x002
27#define TIOCM_RTS 0x004
28#define TIOCM_ST 0x008
29#define TIOCM_SR 0x010
30#define TIOCM_CTS 0x020
31#define TIOCM_CAR 0x040
32#define TIOCM_RNG 0x080
33#define TIOCM_DSR 0x100
34#define TIOCM_CD TIOCM_CAR
35#define TIOCM_RI TIOCM_RNG
36#define TIOCM_OUT1 0x2000
37#define TIOCM_OUT2 0x4000
38#define TIOCM_LOOP 0x8000
39
40/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
41
42#ifdef __KERNEL__
43
44/* intr=^C quit=^\ erase=del kill=^U
45 eof=^D vtime=\0 vmin=\1 sxtc=\0
46 start=^Q stop=^S susp=^Z eol=\0
47 reprint=^R discard=^U werase=^W lnext=^V
48 eol2=\0
49*/
50#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
51
52/*
53 * Translate a "termio" structure into a "termios". Ugh.
54 */
55#define SET_LOW_TERMIOS_BITS(termios, termio, x) { \
56 unsigned short __tmp; \
57 get_user(__tmp,&(termio)->x); \
58 *(unsigned short *) &(termios)->x = __tmp; \
59}
60
61#define user_termio_to_kernel_termios(termios, termio) \
62({ \
63 SET_LOW_TERMIOS_BITS(termios, termio, c_iflag); \
64 SET_LOW_TERMIOS_BITS(termios, termio, c_oflag); \
65 SET_LOW_TERMIOS_BITS(termios, termio, c_cflag); \
66 SET_LOW_TERMIOS_BITS(termios, termio, c_lflag); \
67 copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \
68})
69
70/*
71 * Translate a "termios" structure into a "termio". Ugh.
72 */
73#define kernel_termios_to_user_termio(termio, termios) \
74({ \
75 put_user((termios)->c_iflag, &(termio)->c_iflag); \
76 put_user((termios)->c_oflag, &(termio)->c_oflag); \
77 put_user((termios)->c_cflag, &(termio)->c_cflag); \
78 put_user((termios)->c_lflag, &(termio)->c_lflag); \
79 put_user((termios)->c_line, &(termio)->c_line); \
80 copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \
81})
82
83#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2))
84#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2))
85#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios))
86#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios))
87
88#endif /* __KERNEL__ */
89
90#endif /* __ASM_SH_TERMIOS_H */
diff --git a/arch/sh/include/asm/timex.h b/arch/sh/include/asm/timex.h
index a873e24113c..b556d49e5f2 100644
--- a/arch/sh/include/asm/timex.h
+++ b/arch/sh/include/asm/timex.h
@@ -8,11 +8,6 @@
8 8
9#define CLOCK_TICK_RATE (CONFIG_SH_PCLK_FREQ / 4) /* Underlying HZ */ 9#define CLOCK_TICK_RATE (CONFIG_SH_PCLK_FREQ / 4) /* Underlying HZ */
10 10
11typedef unsigned long long cycles_t; 11#include <asm-generic/timex.h>
12
13static __inline__ cycles_t get_cycles (void)
14{
15 return 0;
16}
17 12
18#endif /* __ASM_SH_TIMEX_H */ 13#endif /* __ASM_SH_TIMEX_H */
diff --git a/arch/sh/include/asm/topology.h b/arch/sh/include/asm/topology.h
index 8489a0905a8..b69ee850906 100644
--- a/arch/sh/include/asm/topology.h
+++ b/arch/sh/include/asm/topology.h
@@ -35,9 +35,6 @@
35#define cpumask_of_node(node) ((void)node, cpu_online_mask) 35#define cpumask_of_node(node) ((void)node, cpu_online_mask)
36 36
37#define pcibus_to_node(bus) ((void)(bus), -1) 37#define pcibus_to_node(bus) ((void)(bus), -1)
38#define pcibus_to_cpumask(bus) (pcibus_to_node(bus) == -1 ? \
39 CPU_MASK_ALL : \
40 node_to_cpumask(pcibus_to_node(bus)))
41#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \ 38#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \
42 CPU_MASK_ALL_PTR : \ 39 CPU_MASK_ALL_PTR : \
43 cpumask_of_node(pcibus_to_node(bus))) 40 cpumask_of_node(pcibus_to_node(bus)))
diff --git a/arch/sh/include/asm/types.h b/arch/sh/include/asm/types.h
index b13caca62a7..c7f3c94837d 100644
--- a/arch/sh/include/asm/types.h
+++ b/arch/sh/include/asm/types.h
@@ -1,27 +1,14 @@
1#ifndef __ASM_SH_TYPES_H 1#ifndef __ASM_SH_TYPES_H
2#define __ASM_SH_TYPES_H 2#define __ASM_SH_TYPES_H
3 3
4#include <asm-generic/int-ll64.h> 4#include <asm-generic/types.h>
5
6#ifndef __ASSEMBLY__
7
8typedef unsigned short umode_t;
9
10#endif /* __ASSEMBLY__ */
11 5
12/* 6/*
13 * These aren't exported outside the kernel to avoid name space clashes 7 * These aren't exported outside the kernel to avoid name space clashes
14 */ 8 */
15#ifdef __KERNEL__ 9#ifdef __KERNEL__
16
17#define BITS_PER_LONG 32
18
19#ifndef __ASSEMBLY__ 10#ifndef __ASSEMBLY__
20 11
21/* Dma addresses are 32-bits wide. */
22
23typedef u32 dma_addr_t;
24
25#ifdef CONFIG_SUPERH32 12#ifdef CONFIG_SUPERH32
26typedef u16 insn_size_t; 13typedef u16 insn_size_t;
27#else 14#else
@@ -29,7 +16,6 @@ typedef u32 insn_size_t;
29#endif 16#endif
30 17
31#endif /* __ASSEMBLY__ */ 18#endif /* __ASSEMBLY__ */
32
33#endif /* __KERNEL__ */ 19#endif /* __KERNEL__ */
34 20
35#endif /* __ASM_SH_TYPES_H */ 21#endif /* __ASM_SH_TYPES_H */
diff --git a/arch/sh/include/asm/ucontext.h b/arch/sh/include/asm/ucontext.h
index 202ef1d5a3c..9bc07b9f30f 100644
--- a/arch/sh/include/asm/ucontext.h
+++ b/arch/sh/include/asm/ucontext.h
@@ -1,12 +1 @@
1#ifndef __ASM_SH_UCONTEXT_H #include <asm-generic/ucontext.h>
2#define __ASM_SH_UCONTEXT_H
3
4struct ucontext {
5 unsigned long uc_flags;
6 struct ucontext *uc_link;
7 stack_t uc_stack;
8 struct sigcontext uc_mcontext;
9 sigset_t uc_sigmask; /* mask last for extensibility */
10};
11
12#endif /* __ASM_SH_UCONTEXT_H */
diff --git a/arch/sh/include/asm/unaligned.h b/arch/sh/include/asm/unaligned.h
index 8c0ad5e4487..7d14e066996 100644
--- a/arch/sh/include/asm/unaligned.h
+++ b/arch/sh/include/asm/unaligned.h
@@ -6,19 +6,7 @@
6#include <asm/unaligned-sh4a.h> 6#include <asm/unaligned-sh4a.h>
7#else 7#else
8/* Otherwise, SH can't handle unaligned accesses. */ 8/* Otherwise, SH can't handle unaligned accesses. */
9#ifdef __LITTLE_ENDIAN__ 9#include <asm-generic/unaligned.h>
10# include <linux/unaligned/le_struct.h>
11# include <linux/unaligned/be_byteshift.h>
12# include <linux/unaligned/generic.h>
13# define get_unaligned __get_unaligned_le
14# define put_unaligned __put_unaligned_le
15#else
16# include <linux/unaligned/be_struct.h>
17# include <linux/unaligned/le_byteshift.h>
18# include <linux/unaligned/generic.h>
19# define get_unaligned __get_unaligned_be
20# define put_unaligned __put_unaligned_be
21#endif
22#endif 10#endif
23 11
24#endif /* _ASM_SH_UNALIGNED_H */ 12#endif /* _ASM_SH_UNALIGNED_H */
diff --git a/arch/sh/include/asm/unistd_32.h b/arch/sh/include/asm/unistd_32.h
index 65197086a1c..61d6ad93d78 100644
--- a/arch/sh/include/asm/unistd_32.h
+++ b/arch/sh/include/asm/unistd_32.h
@@ -344,8 +344,9 @@
344#define __NR_preadv 333 344#define __NR_preadv 333
345#define __NR_pwritev 334 345#define __NR_pwritev 334
346#define __NR_rt_tgsigqueueinfo 335 346#define __NR_rt_tgsigqueueinfo 335
347#define __NR_perf_counter_open 336
347 348
348#define NR_syscalls 336 349#define NR_syscalls 337
349 350
350#ifdef __KERNEL__ 351#ifdef __KERNEL__
351 352
diff --git a/arch/sh/include/asm/unistd_64.h b/arch/sh/include/asm/unistd_64.h
index 8014aea88ec..a751699afda 100644
--- a/arch/sh/include/asm/unistd_64.h
+++ b/arch/sh/include/asm/unistd_64.h
@@ -384,10 +384,11 @@
384#define __NR_preadv 361 384#define __NR_preadv 361
385#define __NR_pwritev 362 385#define __NR_pwritev 362
386#define __NR_rt_tgsigqueueinfo 363 386#define __NR_rt_tgsigqueueinfo 363
387#define __NR_perf_counter_open 364
387 388
388#ifdef __KERNEL__ 389#ifdef __KERNEL__
389 390
390#define NR_syscalls 364 391#define NR_syscalls 365
391 392
392#define __ARCH_WANT_IPC_PARSE_VERSION 393#define __ARCH_WANT_IPC_PARSE_VERSION
393#define __ARCH_WANT_OLD_READDIR 394#define __ARCH_WANT_OLD_READDIR
diff --git a/arch/sh/include/mach-common/mach/highlander.h b/arch/sh/include/mach-common/mach/highlander.h
index bd26a848cb0..5d9d4d5154b 100644
--- a/arch/sh/include/mach-common/mach/highlander.h
+++ b/arch/sh/include/mach-common/mach/highlander.h
@@ -2,6 +2,9 @@
2#define __ASM_SH_RENESAS_R7780RP_H 2#define __ASM_SH_RENESAS_R7780RP_H
3 3
4/* Box specific addresses. */ 4/* Box specific addresses. */
5#define PA_NORFLASH_ADDR 0x00000000
6#define PA_NORFLASH_SIZE 0x04000000
7
5#if defined(CONFIG_SH_R7780MP) 8#if defined(CONFIG_SH_R7780MP)
6#define PA_BCR 0xa4000000 /* FPGA */ 9#define PA_BCR 0xa4000000 /* FPGA */
7#define PA_SDPOW (-1) 10#define PA_SDPOW (-1)
diff --git a/arch/sh/kernel/cpu/clock-cpg.c b/arch/sh/kernel/cpu/clock-cpg.c
index 275942e58e4..6dfe2cced3f 100644
--- a/arch/sh/kernel/cpu/clock-cpg.c
+++ b/arch/sh/kernel/cpu/clock-cpg.c
@@ -1,6 +1,6 @@
1#include <linux/clk.h> 1#include <linux/clk.h>
2#include <linux/compiler.h> 2#include <linux/compiler.h>
3#include <linux/bootmem.h> 3#include <linux/slab.h>
4#include <linux/io.h> 4#include <linux/io.h>
5#include <asm/clock.h> 5#include <asm/clock.h>
6 6
@@ -127,10 +127,11 @@ int __init sh_clk_div6_register(struct clk *clks, int nr)
127 int k; 127 int k;
128 128
129 freq_table_size *= (nr_divs + 1); 129 freq_table_size *= (nr_divs + 1);
130 130 freq_table = kzalloc(freq_table_size * nr, GFP_KERNEL);
131 freq_table = alloc_bootmem(freq_table_size * nr); 131 if (!freq_table) {
132 if (!freq_table) 132 pr_err("sh_clk_div6_register: unable to alloc memory\n");
133 return -ENOMEM; 133 return -ENOMEM;
134 }
134 135
135 for (k = 0; !ret && (k < nr); k++) { 136 for (k = 0; !ret && (k < nr); k++) {
136 clkp = clks + k; 137 clkp = clks + k;
@@ -175,10 +176,11 @@ int __init sh_clk_div4_register(struct clk *clks, int nr,
175 int k; 176 int k;
176 177
177 freq_table_size *= (nr_divs + 1); 178 freq_table_size *= (nr_divs + 1);
178 179 freq_table = kzalloc(freq_table_size * nr, GFP_KERNEL);
179 freq_table = alloc_bootmem(freq_table_size * nr); 180 if (!freq_table) {
180 if (!freq_table) 181 pr_err("sh_clk_div4_register: unable to alloc memory\n");
181 return -ENOMEM; 182 return -ENOMEM;
183 }
182 184
183 for (k = 0; !ret && (k < nr); k++) { 185 for (k = 0; !ret && (k < nr); k++) {
184 clkp = clks + k; 186 clkp = clks + k;
diff --git a/arch/sh/kernel/cpu/sh4a/Makefile b/arch/sh/kernel/cpu/sh4a/Makefile
index 96ea09ca8cc..ebdd391d5f4 100644
--- a/arch/sh/kernel/cpu/sh4a/Makefile
+++ b/arch/sh/kernel/cpu/sh4a/Makefile
@@ -16,7 +16,7 @@ obj-$(CONFIG_CPU_SUBTYPE_SH7366) += setup-sh7366.o
16obj-$(CONFIG_CPU_SUBTYPE_SHX3) += setup-shx3.o 16obj-$(CONFIG_CPU_SUBTYPE_SHX3) += setup-shx3.o
17 17
18# SMP setup 18# SMP setup
19smp-$(CONFIG_CPU_SUBTYPE_SHX3) := smp-shx3.o 19smp-$(CONFIG_CPU_SHX3) := smp-shx3.o
20 20
21# Primary on-chip clocks (common) 21# Primary on-chip clocks (common)
22clock-$(CONFIG_CPU_SUBTYPE_SH7763) := clock-sh7763.o 22clock-$(CONFIG_CPU_SUBTYPE_SH7763) := clock-sh7763.o
@@ -38,6 +38,6 @@ pinmux-$(CONFIG_CPU_SUBTYPE_SH7724) := pinmux-sh7724.o
38pinmux-$(CONFIG_CPU_SUBTYPE_SH7785) := pinmux-sh7785.o 38pinmux-$(CONFIG_CPU_SUBTYPE_SH7785) := pinmux-sh7785.o
39pinmux-$(CONFIG_CPU_SUBTYPE_SH7786) := pinmux-sh7786.o 39pinmux-$(CONFIG_CPU_SUBTYPE_SH7786) := pinmux-sh7786.o
40 40
41obj-y += $(clock-y) 41obj-y += $(clock-y)
42obj-$(CONFIG_SMP) += $(smp-y) 42obj-$(CONFIG_SMP) += $(smp-y)
43obj-$(CONFIG_GENERIC_GPIO) += $(pinmux-y) 43obj-$(CONFIG_GENERIC_GPIO) += $(pinmux-y)
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c
index 318516f6bfa..c18f7d09281 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c
@@ -15,6 +15,7 @@
15#include <linux/serial_sci.h> 15#include <linux/serial_sci.h>
16#include <linux/uio_driver.h> 16#include <linux/uio_driver.h>
17#include <linux/sh_timer.h> 17#include <linux/sh_timer.h>
18#include <linux/usb/r8a66597.h>
18#include <asm/clock.h> 19#include <asm/clock.h>
19 20
20static struct resource iic_resources[] = { 21static struct resource iic_resources[] = {
@@ -38,18 +39,20 @@ static struct platform_device iic_device = {
38 .resource = iic_resources, 39 .resource = iic_resources,
39}; 40};
40 41
42static struct r8a66597_platdata r8a66597_data = {
43 /* This set zero to all members */
44};
45
41static struct resource usb_host_resources[] = { 46static struct resource usb_host_resources[] = {
42 [0] = { 47 [0] = {
43 .name = "r8a66597_hcd",
44 .start = 0xa4d80000, 48 .start = 0xa4d80000,
45 .end = 0xa4d800ff, 49 .end = 0xa4d800ff,
46 .flags = IORESOURCE_MEM, 50 .flags = IORESOURCE_MEM,
47 }, 51 },
48 [1] = { 52 [1] = {
49 .name = "r8a66597_hcd",
50 .start = 65, 53 .start = 65,
51 .end = 65, 54 .end = 65,
52 .flags = IORESOURCE_IRQ, 55 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW,
53 }, 56 },
54}; 57};
55 58
@@ -59,6 +62,7 @@ static struct platform_device usb_host_device = {
59 .dev = { 62 .dev = {
60 .dma_mask = NULL, 63 .dma_mask = NULL,
61 .coherent_dma_mask = 0xffffffff, 64 .coherent_dma_mask = 0xffffffff,
65 .platform_data = &r8a66597_data,
62 }, 66 },
63 .num_resources = ARRAY_SIZE(usb_host_resources), 67 .num_resources = ARRAY_SIZE(usb_host_resources),
64 .resource = usb_host_resources, 68 .resource = usb_host_resources,
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
index d8f4a13aeff..e1bb80b2a27 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
@@ -13,6 +13,7 @@
13#include <linux/mm.h> 13#include <linux/mm.h>
14#include <linux/serial_sci.h> 14#include <linux/serial_sci.h>
15#include <linux/uio_driver.h> 15#include <linux/uio_driver.h>
16#include <linux/usb/r8a66597.h>
16#include <linux/sh_timer.h> 17#include <linux/sh_timer.h>
17#include <linux/io.h> 18#include <linux/io.h>
18#include <asm/clock.h> 19#include <asm/clock.h>
@@ -396,9 +397,12 @@ static struct platform_device rtc_device = {
396 .resource = rtc_resources, 397 .resource = rtc_resources,
397}; 398};
398 399
400static struct r8a66597_platdata r8a66597_data = {
401 /* This set zero to all members */
402};
403
399static struct resource sh7723_usb_host_resources[] = { 404static struct resource sh7723_usb_host_resources[] = {
400 [0] = { 405 [0] = {
401 .name = "r8a66597_hcd",
402 .start = 0xa4d80000, 406 .start = 0xa4d80000,
403 .end = 0xa4d800ff, 407 .end = 0xa4d800ff,
404 .flags = IORESOURCE_MEM, 408 .flags = IORESOURCE_MEM,
@@ -406,7 +410,7 @@ static struct resource sh7723_usb_host_resources[] = {
406 [1] = { 410 [1] = {
407 .start = 65, 411 .start = 65,
408 .end = 65, 412 .end = 65,
409 .flags = IORESOURCE_IRQ, 413 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW,
410 }, 414 },
411}; 415};
412 416
@@ -416,6 +420,7 @@ static struct platform_device sh7723_usb_host_device = {
416 .dev = { 420 .dev = {
417 .dma_mask = NULL, /* not use dma */ 421 .dma_mask = NULL, /* not use dma */
418 .coherent_dma_mask = 0xffffffff, 422 .coherent_dma_mask = 0xffffffff,
423 .platform_data = &r8a66597_data,
419 }, 424 },
420 .num_resources = ARRAY_SIZE(sh7723_usb_host_resources), 425 .num_resources = ARRAY_SIZE(sh7723_usb_host_resources),
421 .resource = sh7723_usb_host_resources, 426 .resource = sh7723_usb_host_resources,
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
index 93e0d2c017e..b70049470a0 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
@@ -595,9 +595,8 @@ enum {
595 HSPI, 595 HSPI,
596 GPIO0, GPIO1, 596 GPIO0, GPIO1,
597 Thermal, 597 Thermal,
598 INTC0, INTC1, INTC2, INTC3, INTC4, INTC5, INTC6, INTC7, 598 INTICI0, INTICI1, INTICI2, INTICI3,
599 599 INTICI4, INTICI5, INTICI6, INTICI7,
600 /* interrupt groups */
601}; 600};
602 601
603static struct intc_vect vectors[] __initdata = { 602static struct intc_vect vectors[] __initdata = {
@@ -638,10 +637,12 @@ static struct intc_vect vectors[] __initdata = {
638 INTC_VECT(HSPI, 0xe80), 637 INTC_VECT(HSPI, 0xe80),
639 INTC_VECT(GPIO0, 0xea0), INTC_VECT(GPIO1, 0xec0), 638 INTC_VECT(GPIO0, 0xea0), INTC_VECT(GPIO1, 0xec0),
640 INTC_VECT(Thermal, 0xee0), 639 INTC_VECT(Thermal, 0xee0),
640 INTC_VECT(INTICI0, 0xf00), INTC_VECT(INTICI1, 0xf20),
641 INTC_VECT(INTICI2, 0xf40), INTC_VECT(INTICI3, 0xf60),
642 INTC_VECT(INTICI4, 0xf80), INTC_VECT(INTICI5, 0xfa0),
643 INTC_VECT(INTICI6, 0xfc0), INTC_VECT(INTICI7, 0xfe0),
641}; 644};
642 645
643/* FIXME: Main CPU support only now */
644#if 1 /* Main CPU */
645#define CnINTMSK0 0xfe410030 646#define CnINTMSK0 0xfe410030
646#define CnINTMSK1 0xfe410040 647#define CnINTMSK1 0xfe410040
647#define CnINTMSKCLR0 0xfe410050 648#define CnINTMSKCLR0 0xfe410050
@@ -654,21 +655,6 @@ static struct intc_vect vectors[] __initdata = {
654#define CnINT2MSKCR1 0xfe410a34 655#define CnINT2MSKCR1 0xfe410a34
655#define CnINT2MSKCR2 0xfe410a38 656#define CnINT2MSKCR2 0xfe410a38
656#define CnINT2MSKCR3 0xfe410a3c 657#define CnINT2MSKCR3 0xfe410a3c
657#else /* Sub CPU */
658#define CnINTMSK0 0xfe410034
659#define CnINTMSK1 0xfe410044
660#define CnINTMSKCLR0 0xfe410054
661#define CnINTMSKCLR1 0xfe410064
662#define CnINT2MSKR0 0xfe410b20
663#define CnINT2MSKR1 0xfe410b24
664#define CnINT2MSKR2 0xfe410b28
665#define CnINT2MSKR3 0xfe410b2c
666#define CnINT2MSKCR0 0xfe410b30
667#define CnINT2MSKCR1 0xfe410b34
668#define CnINT2MSKCR2 0xfe410b38
669#define CnINT2MSKCR3 0xfe410b3c
670#endif
671
672#define INTMSK2 0xfe410068 658#define INTMSK2 0xfe410068
673#define INTMSKCLR2 0xfe41006c 659#define INTMSKCLR2 0xfe41006c
674 660
@@ -753,6 +739,9 @@ static struct intc_prio_reg prio_registers[] __initdata = {
753 GPIO1, Thermal } }, 739 GPIO1, Thermal } },
754 { 0xfe41085c, 0, 32, 8, /* INT2PRI23 */ { 0, 0, 0, 0 } }, 740 { 0xfe41085c, 0, 32, 8, /* INT2PRI23 */ { 0, 0, 0, 0 } },
755 { 0xfe410860, 0, 32, 8, /* INT2PRI24 */ { 0, 0, 0, 0 } }, 741 { 0xfe410860, 0, 32, 8, /* INT2PRI24 */ { 0, 0, 0, 0 } },
742 { 0xfe410090, 0xfe4100a0, 32, 4, /* CnICIPRI / CnICIPRICLR */
743 { INTICI7, INTICI6, INTICI5, INTICI4,
744 INTICI3, INTICI2, INTICI1, INTICI0 }, INTC_SMP(4, 2) },
756}; 745};
757 746
758static DECLARE_INTC_DESC(intc_desc, "sh7786", vectors, NULL, 747static DECLARE_INTC_DESC(intc_desc, "sh7786", vectors, NULL,
diff --git a/arch/sh/kernel/cpu/sh4a/smp-shx3.c b/arch/sh/kernel/cpu/sh4a/smp-shx3.c
index b8869aa20de..2b6b0d50c57 100644
--- a/arch/sh/kernel/cpu/sh4a/smp-shx3.c
+++ b/arch/sh/kernel/cpu/sh4a/smp-shx3.c
@@ -35,8 +35,7 @@ void __init plat_smp_setup(void)
35 unsigned int cpu = 0; 35 unsigned int cpu = 0;
36 int i, num; 36 int i, num;
37 37
38 cpus_clear(cpu_possible_map); 38 init_cpu_possible(cpumask_of(cpu));
39 cpu_set(cpu, cpu_possible_map);
40 39
41 __cpu_number_map[0] = 0; 40 __cpu_number_map[0] = 0;
42 __cpu_logical_map[0] = 0; 41 __cpu_logical_map[0] = 0;
@@ -46,7 +45,7 @@ void __init plat_smp_setup(void)
46 * for the total number of cores. 45 * for the total number of cores.
47 */ 46 */
48 for (i = 1, num = 0; i < NR_CPUS; i++) { 47 for (i = 1, num = 0; i < NR_CPUS; i++) {
49 cpu_set(i, cpu_possible_map); 48 set_cpu_possible(i, true);
50 __cpu_number_map[i] = ++num; 49 __cpu_number_map[i] = ++num;
51 __cpu_logical_map[num] = i; 50 __cpu_logical_map[num] = i;
52 } 51 }
diff --git a/arch/sh/kernel/ftrace.c b/arch/sh/kernel/ftrace.c
index 4c3247477aa..066f37dc32a 100644
--- a/arch/sh/kernel/ftrace.c
+++ b/arch/sh/kernel/ftrace.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2008 Matt Fleming <mjf@gentoo.org> 2 * Copyright (C) 2008 Matt Fleming <matt@console-pimps.org>
3 * Copyright (C) 2008 Paul Mundt <lethal@linux-sh.org> 3 * Copyright (C) 2008 Paul Mundt <lethal@linux-sh.org>
4 * 4 *
5 * Code for replacing ftrace calls with jumps. 5 * Code for replacing ftrace calls with jumps.
@@ -19,30 +19,37 @@
19#include <asm/ftrace.h> 19#include <asm/ftrace.h>
20#include <asm/cacheflush.h> 20#include <asm/cacheflush.h>
21 21
22static unsigned char ftrace_nop[] = {
23 0x09, 0x00, /* nop */
24 0x09, 0x00, /* nop */
25};
26
27static unsigned char ftrace_replaced_code[MCOUNT_INSN_SIZE]; 22static unsigned char ftrace_replaced_code[MCOUNT_INSN_SIZE];
28 23
29unsigned char *ftrace_nop_replace(void) 24static unsigned char ftrace_nop[4];
25/*
26 * If we're trying to nop out a call to a function, we instead
27 * place a call to the address after the memory table.
28 *
29 * 8c011060 <a>:
30 * 8c011060: 02 d1 mov.l 8c01106c <a+0xc>,r1
31 * 8c011062: 22 4f sts.l pr,@-r15
32 * 8c011064: 02 c7 mova 8c011070 <a+0x10>,r0
33 * 8c011066: 2b 41 jmp @r1
34 * 8c011068: 2a 40 lds r0,pr
35 * 8c01106a: 09 00 nop
36 * 8c01106c: 68 24 .word 0x2468 <--- ip
37 * 8c01106e: 1d 8c .word 0x8c1d
38 * 8c011070: 26 4f lds.l @r15+,pr <--- ip + MCOUNT_INSN_SIZE
39 *
40 * We write 0x8c011070 to 0x8c01106c so that on entry to a() we branch
41 * past the _mcount call and continue executing code like normal.
42 */
43static unsigned char *ftrace_nop_replace(unsigned long ip)
30{ 44{
45 __raw_writel(ip + MCOUNT_INSN_SIZE, ftrace_nop);
31 return ftrace_nop; 46 return ftrace_nop;
32} 47}
33 48
34static int is_sh_nop(unsigned char *ip) 49static unsigned char *ftrace_call_replace(unsigned long ip, unsigned long addr)
35{
36 return strncmp(ip, ftrace_nop, sizeof(ftrace_nop));
37}
38
39unsigned char *ftrace_call_replace(unsigned long ip, unsigned long addr)
40{ 50{
41 /* Place the address in the memory table. */ 51 /* Place the address in the memory table. */
42 if (addr == CALLER_ADDR) 52 __raw_writel(addr, ftrace_replaced_code);
43 __raw_writel(addr + MCOUNT_INSN_OFFSET, ftrace_replaced_code);
44 else
45 __raw_writel(addr, ftrace_replaced_code);
46 53
47 /* 54 /*
48 * No locking needed, this must be called via kstop_machine 55 * No locking needed, this must be called via kstop_machine
@@ -51,7 +58,7 @@ unsigned char *ftrace_call_replace(unsigned long ip, unsigned long addr)
51 return ftrace_replaced_code; 58 return ftrace_replaced_code;
52} 59}
53 60
54int ftrace_modify_code(unsigned long ip, unsigned char *old_code, 61static int ftrace_modify_code(unsigned long ip, unsigned char *old_code,
55 unsigned char *new_code) 62 unsigned char *new_code)
56{ 63{
57 unsigned char replaced[MCOUNT_INSN_SIZE]; 64 unsigned char replaced[MCOUNT_INSN_SIZE];
@@ -66,13 +73,6 @@ int ftrace_modify_code(unsigned long ip, unsigned char *old_code,
66 * kstop_machine, or before SMP starts. 73 * kstop_machine, or before SMP starts.
67 */ 74 */
68 75
69 /*
70 * If we're trying to nop out a call to a function, we instead
71 * place a call to the address after the memory table.
72 */
73 if (is_sh_nop(new_code) == 0)
74 __raw_writel(ip + MCOUNT_INSN_SIZE, (unsigned long)new_code);
75
76 /* read the text we want to modify */ 76 /* read the text we want to modify */
77 if (probe_kernel_read(replaced, (void *)ip, MCOUNT_INSN_SIZE)) 77 if (probe_kernel_read(replaced, (void *)ip, MCOUNT_INSN_SIZE))
78 return -EFAULT; 78 return -EFAULT;
@@ -92,13 +92,13 @@ int ftrace_modify_code(unsigned long ip, unsigned char *old_code,
92 92
93int ftrace_update_ftrace_func(ftrace_func_t func) 93int ftrace_update_ftrace_func(ftrace_func_t func)
94{ 94{
95 unsigned long ip = (unsigned long)(&ftrace_call); 95 unsigned long ip = (unsigned long)(&ftrace_call) + MCOUNT_INSN_OFFSET;
96 unsigned char old[MCOUNT_INSN_SIZE], *new; 96 unsigned char old[MCOUNT_INSN_SIZE], *new;
97 97
98 memcpy(old, (unsigned char *)(ip + MCOUNT_INSN_OFFSET), MCOUNT_INSN_SIZE); 98 memcpy(old, (unsigned char *)ip, MCOUNT_INSN_SIZE);
99 new = ftrace_call_replace(ip, (unsigned long)func); 99 new = ftrace_call_replace(ip, (unsigned long)func);
100 100
101 return ftrace_modify_code(ip + MCOUNT_INSN_OFFSET, old, new); 101 return ftrace_modify_code(ip, old, new);
102} 102}
103 103
104int ftrace_make_nop(struct module *mod, 104int ftrace_make_nop(struct module *mod,
@@ -108,7 +108,7 @@ int ftrace_make_nop(struct module *mod,
108 unsigned long ip = rec->ip; 108 unsigned long ip = rec->ip;
109 109
110 old = ftrace_call_replace(ip, addr); 110 old = ftrace_call_replace(ip, addr);
111 new = ftrace_nop_replace(); 111 new = ftrace_nop_replace(ip);
112 112
113 return ftrace_modify_code(rec->ip, old, new); 113 return ftrace_modify_code(rec->ip, old, new);
114} 114}
@@ -118,7 +118,7 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
118 unsigned char *new, *old; 118 unsigned char *new, *old;
119 unsigned long ip = rec->ip; 119 unsigned long ip = rec->ip;
120 120
121 old = ftrace_nop_replace(); 121 old = ftrace_nop_replace(ip);
122 new = ftrace_call_replace(ip, addr); 122 new = ftrace_call_replace(ip, addr);
123 123
124 return ftrace_modify_code(rec->ip, old, new); 124 return ftrace_modify_code(rec->ip, old, new);
diff --git a/arch/sh/kernel/idle.c b/arch/sh/kernel/idle.c
index f35ed034885..27ff2dc093c 100644
--- a/arch/sh/kernel/idle.c
+++ b/arch/sh/kernel/idle.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * The idle loop for all SuperH platforms. 2 * The idle loop for all SuperH platforms.
3 * 3 *
4 * Copyright (C) 2002 - 2008 Paul Mundt 4 * Copyright (C) 2002 - 2009 Paul Mundt
5 * 5 *
6 * This file is subject to the terms and conditions of the GNU General Public 6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive 7 * License. See the file "COPYING" in the main directory of this archive
@@ -15,6 +15,7 @@
15#include <linux/preempt.h> 15#include <linux/preempt.h>
16#include <linux/thread_info.h> 16#include <linux/thread_info.h>
17#include <linux/irqflags.h> 17#include <linux/irqflags.h>
18#include <linux/smp.h>
18#include <asm/pgalloc.h> 19#include <asm/pgalloc.h>
19#include <asm/system.h> 20#include <asm/system.h>
20#include <asm/atomic.h> 21#include <asm/atomic.h>
@@ -79,3 +80,23 @@ void cpu_idle(void)
79 check_pgt_cache(); 80 check_pgt_cache();
80 } 81 }
81} 82}
83
84static void do_nothing(void *unused)
85{
86}
87
88/*
89 * cpu_idle_wait - Used to ensure that all the CPUs discard old value of
90 * pm_idle and update to new pm_idle value. Required while changing pm_idle
91 * handler on SMP systems.
92 *
93 * Caller must have changed pm_idle to the new value before the call. Old
94 * pm_idle value will not be used by any CPU after the return of this function.
95 */
96void cpu_idle_wait(void)
97{
98 smp_mb();
99 /* kick all the CPUs so that they exit out of pm_idle */
100 smp_call_function(do_nothing, NULL, 1);
101}
102EXPORT_SYMBOL_GPL(cpu_idle_wait);
diff --git a/arch/sh/kernel/process_32.c b/arch/sh/kernel/process_32.c
index 9289ede29c7..92d7740faab 100644
--- a/arch/sh/kernel/process_32.c
+++ b/arch/sh/kernel/process_32.c
@@ -119,8 +119,6 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
119 pid = do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, 119 pid = do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0,
120 &regs, 0, NULL, NULL); 120 &regs, 0, NULL, NULL);
121 121
122 trace_mark(kernel_arch_kthread_create, "pid %d fn %p", pid, fn);
123
124 return pid; 122 return pid;
125} 123}
126 124
@@ -367,11 +365,6 @@ asmlinkage int sys_execve(char __user *ufilename, char __user * __user *uargv,
367 goto out; 365 goto out;
368 366
369 error = do_execve(filename, uargv, uenvp, regs); 367 error = do_execve(filename, uargv, uenvp, regs);
370 if (error == 0) {
371 task_lock(current);
372 current->ptrace &= ~PT_DTRACE;
373 task_unlock(current);
374 }
375 putname(filename); 368 putname(filename);
376out: 369out:
377 return error; 370 return error;
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c
index 96be839040f..24de7421494 100644
--- a/arch/sh/kernel/process_64.c
+++ b/arch/sh/kernel/process_64.c
@@ -323,7 +323,6 @@ ATTRIB_NORET void kernel_thread_helper(void *arg, int (*fn)(void *))
323int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) 323int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
324{ 324{
325 struct pt_regs regs; 325 struct pt_regs regs;
326 int pid;
327 326
328 memset(&regs, 0, sizeof(regs)); 327 memset(&regs, 0, sizeof(regs));
329 regs.regs[2] = (unsigned long)arg; 328 regs.regs[2] = (unsigned long)arg;
@@ -333,12 +332,8 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
333 regs.sr = (1 << 30); 332 regs.sr = (1 << 30);
334 333
335 /* Ok, create the new process.. */ 334 /* Ok, create the new process.. */
336 pid = do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, 335 return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0,
337 &regs, 0, NULL, NULL); 336 &regs, 0, NULL, NULL);
338
339 trace_mark(kernel_arch_kthread_create, "pid %d fn %p", pid, fn);
340
341 return pid;
342} 337}
343 338
344/* 339/*
@@ -529,11 +524,6 @@ asmlinkage int sys_execve(char *ufilename, char **uargv,
529 (char __user * __user *)uargv, 524 (char __user * __user *)uargv,
530 (char __user * __user *)uenvp, 525 (char __user * __user *)uenvp,
531 pregs); 526 pregs);
532 if (error == 0) {
533 task_lock(current);
534 current->ptrace &= ~PT_DTRACE;
535 task_unlock(current);
536 }
537 putname(filename); 527 putname(filename);
538out: 528out:
539 return error; 529 return error;
diff --git a/arch/sh/kernel/sh_ksyms_64.c b/arch/sh/kernel/sh_ksyms_64.c
index 8f54ef0cfbc..f5bd156ea50 100644
--- a/arch/sh/kernel/sh_ksyms_64.c
+++ b/arch/sh/kernel/sh_ksyms_64.c
@@ -38,13 +38,6 @@ EXPORT_SYMBOL(clear_user_page);
38EXPORT_SYMBOL(flush_dcache_page); 38EXPORT_SYMBOL(flush_dcache_page);
39#endif 39#endif
40 40
41/* Networking helper routines. */
42EXPORT_SYMBOL(csum_partial);
43EXPORT_SYMBOL(csum_partial_copy_nocheck);
44#ifdef CONFIG_IPV6
45EXPORT_SYMBOL(csum_ipv6_magic);
46#endif
47
48#ifdef CONFIG_VT 41#ifdef CONFIG_VT
49EXPORT_SYMBOL(screen_info); 42EXPORT_SYMBOL(screen_info);
50#endif 43#endif
diff --git a/arch/sh/kernel/signal_32.c b/arch/sh/kernel/signal_32.c
index 17784e19ae3..b5afbec1db5 100644
--- a/arch/sh/kernel/signal_32.c
+++ b/arch/sh/kernel/signal_32.c
@@ -332,8 +332,8 @@ get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size)
332 332
333/* These symbols are defined with the addresses in the vsyscall page. 333/* These symbols are defined with the addresses in the vsyscall page.
334 See vsyscall-trapa.S. */ 334 See vsyscall-trapa.S. */
335extern void __user __kernel_sigreturn; 335extern void __kernel_sigreturn(void);
336extern void __user __kernel_rt_sigreturn; 336extern void __kernel_rt_sigreturn(void);
337 337
338static int setup_frame(int sig, struct k_sigaction *ka, 338static int setup_frame(int sig, struct k_sigaction *ka,
339 sigset_t *set, struct pt_regs *regs) 339 sigset_t *set, struct pt_regs *regs)
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c
index 8f402741261..442d8d47a41 100644
--- a/arch/sh/kernel/smp.c
+++ b/arch/sh/kernel/smp.c
@@ -47,7 +47,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
47 plat_prepare_cpus(max_cpus); 47 plat_prepare_cpus(max_cpus);
48 48
49#ifndef CONFIG_HOTPLUG_CPU 49#ifndef CONFIG_HOTPLUG_CPU
50 cpu_present_map = cpu_possible_map; 50 init_cpu_present(&cpu_possible_map);
51#endif 51#endif
52} 52}
53 53
@@ -58,8 +58,8 @@ void __devinit smp_prepare_boot_cpu(void)
58 __cpu_number_map[0] = cpu; 58 __cpu_number_map[0] = cpu;
59 __cpu_logical_map[0] = cpu; 59 __cpu_logical_map[0] = cpu;
60 60
61 cpu_set(cpu, cpu_online_map); 61 set_cpu_online(cpu, true);
62 cpu_set(cpu, cpu_possible_map); 62 set_cpu_possible(cpu, true);
63} 63}
64 64
65asmlinkage void __cpuinit start_secondary(void) 65asmlinkage void __cpuinit start_secondary(void)
@@ -171,11 +171,11 @@ void smp_send_stop(void)
171 smp_call_function(stop_this_cpu, 0, 0); 171 smp_call_function(stop_this_cpu, 0, 0);
172} 172}
173 173
174void arch_send_call_function_ipi(cpumask_t mask) 174void arch_send_call_function_ipi_mask(const struct cpumask *mask)
175{ 175{
176 int cpu; 176 int cpu;
177 177
178 for_each_cpu_mask(cpu, mask) 178 for_each_cpu(cpu, mask)
179 plat_send_ipi(cpu, SMP_MSG_FUNCTION); 179 plat_send_ipi(cpu, SMP_MSG_FUNCTION);
180} 180}
181 181
diff --git a/arch/sh/kernel/sys_sh.c b/arch/sh/kernel/sys_sh.c
index e3a7e36639e..90d00e47264 100644
--- a/arch/sh/kernel/sys_sh.c
+++ b/arch/sh/kernel/sys_sh.c
@@ -88,8 +88,6 @@ asmlinkage int sys_ipc(uint call, int first, int second,
88 version = call >> 16; /* hack for backward compatibility */ 88 version = call >> 16; /* hack for backward compatibility */
89 call &= 0xffff; 89 call &= 0xffff;
90 90
91 trace_mark(kernel_arch_ipc_call, "call %u first %d", call, first);
92
93 if (call <= SEMTIMEDOP) 91 if (call <= SEMTIMEDOP)
94 switch (call) { 92 switch (call) {
95 case SEMOP: 93 case SEMOP:
diff --git a/arch/sh/kernel/syscalls_32.S b/arch/sh/kernel/syscalls_32.S
index a9fff9f731e..f9e21fa2f59 100644
--- a/arch/sh/kernel/syscalls_32.S
+++ b/arch/sh/kernel/syscalls_32.S
@@ -352,3 +352,4 @@ ENTRY(sys_call_table)
352 .long sys_preadv 352 .long sys_preadv
353 .long sys_pwritev 353 .long sys_pwritev
354 .long sys_rt_tgsigqueueinfo /* 335 */ 354 .long sys_rt_tgsigqueueinfo /* 335 */
355 .long sys_perf_counter_open
diff --git a/arch/sh/kernel/syscalls_64.S b/arch/sh/kernel/syscalls_64.S
index 75c1889af1e..bf420b616ae 100644
--- a/arch/sh/kernel/syscalls_64.S
+++ b/arch/sh/kernel/syscalls_64.S
@@ -390,3 +390,4 @@ sys_call_table:
390 .long sys_preadv 390 .long sys_preadv
391 .long sys_pwritev 391 .long sys_pwritev
392 .long sys_rt_tgsigqueueinfo 392 .long sys_rt_tgsigqueueinfo
393 .long sys_perf_counter_open
diff --git a/arch/sh/kernel/time.c b/arch/sh/kernel/time.c
index 2edde32c764..9b352a1e3fb 100644
--- a/arch/sh/kernel/time.c
+++ b/arch/sh/kernel/time.c
@@ -91,21 +91,6 @@ module_init(rtc_generic_init);
91 91
92void (*board_time_init)(void); 92void (*board_time_init)(void);
93 93
94unsigned long long sched_clock(void)
95{
96 return (jiffies_64 - INITIAL_JIFFIES) * (NSEC_PER_SEC / HZ);
97}
98
99static void __init sh_late_time_init(void)
100{
101 /*
102 * Make sure all compiled-in early timers register themselves.
103 * Run probe() for one "earlytimer" device.
104 */
105 early_platform_driver_register_all("earlytimer");
106 early_platform_driver_probe("earlytimer", 1, 0);
107}
108
109void __init time_init(void) 94void __init time_init(void)
110{ 95{
111 if (board_time_init) 96 if (board_time_init)
@@ -121,5 +106,15 @@ void __init time_init(void)
121 local_timer_setup(smp_processor_id()); 106 local_timer_setup(smp_processor_id());
122#endif 107#endif
123 108
124 late_time_init = sh_late_time_init; 109 /*
110 * Make sure all compiled-in early timers register themselves.
111 *
112 * Run probe() for two "earlytimer" devices, these will be the
113 * clockevents and clocksource devices respectively. In the event
114 * that only a clockevents device is available, we -ENODEV on the
115 * clocksource and the jiffies clocksource is used transparently
116 * instead. No error handling is necessary here.
117 */
118 early_platform_driver_register_all("earlytimer");
119 early_platform_driver_probe("earlytimer", 2, 0);
125} 120}
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c
index 46348ed07cc..b3e0067db35 100644
--- a/arch/sh/kernel/traps.c
+++ b/arch/sh/kernel/traps.c
@@ -69,6 +69,7 @@ BUILD_TRAP_HANDLER(bug)
69 insn_size_t insn = *(insn_size_t *)instruction_pointer(regs); 69 insn_size_t insn = *(insn_size_t *)instruction_pointer(regs);
70 if (insn == TRAPA_BUG_OPCODE) 70 if (insn == TRAPA_BUG_OPCODE)
71 handle_BUG(regs); 71 handle_BUG(regs);
72 return;
72 } 73 }
73#endif 74#endif
74 75
diff --git a/arch/sh/lib64/Makefile b/arch/sh/lib64/Makefile
index 4bacb9e8347..334bb2da36e 100644
--- a/arch/sh/lib64/Makefile
+++ b/arch/sh/lib64/Makefile
@@ -10,7 +10,7 @@
10# 10#
11 11
12# Panic should really be compiled as PIC 12# Panic should really be compiled as PIC
13lib-y := udelay.o c-checksum.o dbg.o panic.o memcpy.o memset.o \ 13lib-y := udelay.o dbg.o panic.o memcpy.o memset.o \
14 copy_user_memcpy.o copy_page.o clear_page.o strcpy.o strlen.o 14 copy_user_memcpy.o copy_page.o clear_page.o strcpy.o strlen.o
15 15
16# Extracted from libgcc 16# Extracted from libgcc
diff --git a/arch/sh/lib64/c-checksum.c b/arch/sh/lib64/c-checksum.c
deleted file mode 100644
index 73c0877e3a2..00000000000
--- a/arch/sh/lib64/c-checksum.c
+++ /dev/null
@@ -1,214 +0,0 @@
1/*
2 * arch/sh/lib64/c-checksum.c
3 *
4 * This file contains network checksum routines that are better done
5 * in an architecture-specific manner due to speed..
6 */
7#include <linux/string.h>
8#include <linux/errno.h>
9#include <linux/kernel.h>
10#include <linux/module.h>
11#include <asm/byteorder.h>
12#include <asm/uaccess.h>
13
14static inline unsigned short from64to16(unsigned long long x)
15{
16 /* add up 32-bit words for 33 bits */
17 x = (x & 0xffffffff) + (x >> 32);
18 /* add up 16-bit and 17-bit words for 17+c bits */
19 x = (x & 0xffff) + (x >> 16);
20 /* add up 16-bit and 2-bit for 16+c bit */
21 x = (x & 0xffff) + (x >> 16);
22 /* add up carry.. */
23 x = (x & 0xffff) + (x >> 16);
24 return x;
25}
26
27static inline unsigned short foldto16(unsigned long x)
28{
29 /* add up 16-bit for 17 bits */
30 x = (x & 0xffff) + (x >> 16);
31 /* add up carry.. */
32 x = (x & 0xffff) + (x >> 16);
33 return x;
34}
35
36static inline unsigned short myfoldto16(unsigned long long x)
37{
38 /* Fold down to 32-bits so we don't lose in the typedef-less
39 network stack. */
40 /* 64 to 33 */
41 x = (x & 0xffffffff) + (x >> 32);
42 /* 33 to 32 */
43 x = (x & 0xffffffff) + (x >> 32);
44
45 /* add up 16-bit for 17 bits */
46 x = (x & 0xffff) + (x >> 16);
47 /* add up carry.. */
48 x = (x & 0xffff) + (x >> 16);
49 return x;
50}
51
52#define odd(x) ((x)&1)
53#define U16(x) ntohs(x)
54
55static unsigned long do_csum(const unsigned char *buff, int len)
56{
57 int odd, count;
58 unsigned long result = 0;
59
60 pr_debug("do_csum buff %p, len %d (0x%x)\n", buff, len, len);
61#ifdef DEBUG
62 for (i = 0; i < len; i++) {
63 if ((i % 26) == 0)
64 printk("\n");
65 printk("%02X ", buff[i]);
66 }
67#endif
68
69 if (len <= 0)
70 goto out;
71
72 odd = 1 & (unsigned long) buff;
73 if (odd) {
74 result = *buff << 8;
75 len--;
76 buff++;
77 }
78 count = len >> 1; /* nr of 16-bit words.. */
79 if (count) {
80 if (2 & (unsigned long) buff) {
81 result += *(unsigned short *) buff;
82 count--;
83 len -= 2;
84 buff += 2;
85 }
86 count >>= 1; /* nr of 32-bit words.. */
87 if (count) {
88 unsigned long carry = 0;
89 do {
90 unsigned long w = *(unsigned long *) buff;
91 buff += 4;
92 count--;
93 result += carry;
94 result += w;
95 carry = (w > result);
96 } while (count);
97 result += carry;
98 result = (result & 0xffff) + (result >> 16);
99 }
100 if (len & 2) {
101 result += *(unsigned short *) buff;
102 buff += 2;
103 }
104 }
105 if (len & 1)
106 result += *buff;
107 result = foldto16(result);
108 if (odd)
109 result = ((result >> 8) & 0xff) | ((result & 0xff) << 8);
110
111 pr_debug("\nCHECKSUM is 0x%lx\n", result);
112
113 out:
114 return result;
115}
116
117/* computes the checksum of a memory block at buff, length len,
118 and adds in "sum" (32-bit) */
119__wsum csum_partial(const void *buff, int len, __wsum sum)
120{
121 unsigned long long result = do_csum(buff, len);
122
123 /* add in old sum, and carry.. */
124 result += (__force u32)sum;
125 /* 32+c bits -> 32 bits */
126 result = (result & 0xffffffff) + (result >> 32);
127
128 pr_debug("csum_partial, buff %p len %d sum 0x%x result=0x%016Lx\n",
129 buff, len, sum, result);
130
131 return (__force __wsum)result;
132}
133
134/* Copy while checksumming, otherwise like csum_partial. */
135__wsum
136csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum)
137{
138 sum = csum_partial(src, len, sum);
139 memcpy(dst, src, len);
140
141 return sum;
142}
143
144/* Copy from userspace and compute checksum. If we catch an exception
145 then zero the rest of the buffer. */
146__wsum
147csum_partial_copy_from_user(const void __user *src, void *dst, int len,
148 __wsum sum, int *err_ptr)
149{
150 int missing;
151
152 pr_debug
153 ("csum_partial_copy_from_user src %p, dest %p, len %d, sum %08x, err_ptr %p\n",
154 src, dst, len, sum, err_ptr);
155 missing = copy_from_user(dst, src, len);
156 pr_debug(" access_ok %d\n", __access_ok((unsigned long) src, len));
157 pr_debug(" missing %d\n", missing);
158 if (missing) {
159 memset(dst + len - missing, 0, missing);
160 *err_ptr = -EFAULT;
161 }
162
163 return csum_partial(dst, len, sum);
164}
165
166/* Copy to userspace and compute checksum. */
167__wsum
168csum_partial_copy_to_user(const unsigned char *src, unsigned char *dst, int len,
169 __wsum sum, int *err_ptr)
170{
171 sum = csum_partial(src, len, sum);
172
173 if (copy_to_user(dst, src, len))
174 *err_ptr = -EFAULT;
175
176 return sum;
177}
178
179/*
180 * This is a version of ip_compute_csum() optimized for IP headers,
181 * which always checksum on 4 octet boundaries.
182 */
183__sum16 ip_fast_csum(const void *iph, unsigned int ihl)
184{
185 pr_debug("ip_fast_csum %p,%d\n", iph, ihl);
186
187 return (__force __sum16)~do_csum(iph, ihl * 4);
188}
189
190__wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
191 unsigned short len,
192 unsigned short proto, __wsum sum)
193{
194 unsigned long long result;
195
196 pr_debug("ntohs(0x%x)=0x%x\n", 0xdead, ntohs(0xdead));
197 pr_debug("htons(0x%x)=0x%x\n", 0xdead, htons(0xdead));
198
199 result = (__force u64) saddr + (__force u64) daddr +
200 (__force u64) sum + ((len + proto) << 8);
201
202 /* Fold down to 32-bits so we don't lose in the typedef-less
203 network stack. */
204 /* 64 to 33 */
205 result = (result & 0xffffffff) + (result >> 32);
206 /* 33 to 32 */
207 result = (result & 0xffffffff) + (result >> 32);
208
209 pr_debug("%s saddr %x daddr %x len %x proto %x sum %x result %08Lx\n",
210 __func__, saddr, daddr, len, proto, sum, result);
211
212 return (__wsum)result;
213}
214EXPORT_SYMBOL(csum_tcpudp_nofold);
diff --git a/arch/sh/mm/fault_32.c b/arch/sh/mm/fault_32.c
index 31a33ebdef6..cc8ddbdf3d7 100644
--- a/arch/sh/mm/fault_32.c
+++ b/arch/sh/mm/fault_32.c
@@ -133,7 +133,7 @@ good_area:
133 * the fault. 133 * the fault.
134 */ 134 */
135survive: 135survive:
136 fault = handle_mm_fault(mm, vma, address, writeaccess); 136 fault = handle_mm_fault(mm, vma, address, writeaccess ? FAULT_FLAG_WRITE : 0);
137 if (unlikely(fault & VM_FAULT_ERROR)) { 137 if (unlikely(fault & VM_FAULT_ERROR)) {
138 if (fault & VM_FAULT_OOM) 138 if (fault & VM_FAULT_OOM)
139 goto out_of_memory; 139 goto out_of_memory;
@@ -249,9 +249,6 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
249{ 249{
250 int ret = 0; 250 int ret = 0;
251 251
252 trace_mark(kernel_arch_trap_entry, "trap_id %d ip #p%ld",
253 trap >> 5, instruction_pointer(regs));
254
255#ifdef CONFIG_KPROBES 252#ifdef CONFIG_KPROBES
256 if (!user_mode(regs)) { 253 if (!user_mode(regs)) {
257 preempt_disable(); 254 preempt_disable();
@@ -327,6 +324,5 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs,
327 324
328 ret = 0; 325 ret = 0;
329out: 326out:
330 trace_mark(kernel_arch_trap_exit, MARK_NOARGS);
331 return ret; 327 return ret;
332} 328}
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
index ee8e6bbe882..fe532aeaa16 100644
--- a/arch/sh/mm/init.c
+++ b/arch/sh/mm/init.c
@@ -70,7 +70,7 @@ static void set_pte_phys(unsigned long addr, unsigned long phys, pgprot_t prot)
70 } 70 }
71 71
72 set_pte(pte, pfn_pte(phys >> PAGE_SHIFT, prot)); 72 set_pte(pte, pfn_pte(phys >> PAGE_SHIFT, prot));
73 flush_tlb_one(get_asid(), addr); 73 local_flush_tlb_one(get_asid(), addr);
74} 74}
75 75
76/* 76/*
@@ -177,10 +177,8 @@ void __init paging_init(void)
177 177
178 free_area_init_nodes(max_zone_pfns); 178 free_area_init_nodes(max_zone_pfns);
179 179
180#ifdef CONFIG_SUPERH32
181 /* Set up the uncached fixmap */ 180 /* Set up the uncached fixmap */
182 set_fixmap_nocache(FIX_UNCACHED, __pa(&__uncached_start)); 181 set_fixmap_nocache(FIX_UNCACHED, __pa(&__uncached_start));
183#endif
184} 182}
185 183
186static struct kcore_list kcore_mem, kcore_vmalloc; 184static struct kcore_list kcore_mem, kcore_vmalloc;
diff --git a/arch/sh/mm/tlbflush_64.c b/arch/sh/mm/tlbflush_64.c
index 7876997ba19..fcbb6e135ce 100644
--- a/arch/sh/mm/tlbflush_64.c
+++ b/arch/sh/mm/tlbflush_64.c
@@ -187,7 +187,7 @@ good_area:
187 * the fault. 187 * the fault.
188 */ 188 */
189survive: 189survive:
190 fault = handle_mm_fault(mm, vma, address, writeaccess); 190 fault = handle_mm_fault(mm, vma, address, writeaccess ? FAULT_FLAG_WRITE : 0);
191 if (unlikely(fault & VM_FAULT_ERROR)) { 191 if (unlikely(fault & VM_FAULT_ERROR)) {
192 if (fault & VM_FAULT_OOM) 192 if (fault & VM_FAULT_OOM)
193 goto out_of_memory; 193 goto out_of_memory;
diff --git a/arch/sparc/include/asm/pci_64.h b/arch/sparc/include/asm/pci_64.h
index 4f79a54948f..7a1e3566e59 100644
--- a/arch/sparc/include/asm/pci_64.h
+++ b/arch/sparc/include/asm/pci_64.h
@@ -191,8 +191,6 @@ extern void
191pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, 191pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
192 struct pci_bus_region *region); 192 struct pci_bus_region *region);
193 193
194extern struct resource *pcibios_select_root(struct pci_dev *, struct resource *);
195
196static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) 194static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
197{ 195{
198 return PCI_IRQ_NONE; 196 return PCI_IRQ_NONE;
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c
index 4638fba799e..57859ad2354 100644
--- a/arch/sparc/kernel/pci.c
+++ b/arch/sparc/kernel/pci.c
@@ -711,19 +711,6 @@ void __devinit pcibios_fixup_bus(struct pci_bus *pbus)
711 pbus->resource[1] = &pbm->mem_space; 711 pbus->resource[1] = &pbm->mem_space;
712} 712}
713 713
714struct resource *pcibios_select_root(struct pci_dev *pdev, struct resource *r)
715{
716 struct pci_pbm_info *pbm = pdev->bus->sysdata;
717 struct resource *root = NULL;
718
719 if (r->flags & IORESOURCE_IO)
720 root = &pbm->io_space;
721 if (r->flags & IORESOURCE_MEM)
722 root = &pbm->mem_space;
723
724 return root;
725}
726
727void pcibios_update_irq(struct pci_dev *pdev, int irq) 714void pcibios_update_irq(struct pci_dev *pdev, int irq)
728{ 715{
729} 716}
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
index 12e447fc854..a5e30c642ee 100644
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -241,7 +241,7 @@ good_area:
241 * make sure we exit gracefully rather than endlessly redo 241 * make sure we exit gracefully rather than endlessly redo
242 * the fault. 242 * the fault.
243 */ 243 */
244 fault = handle_mm_fault(mm, vma, address, write); 244 fault = handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0);
245 if (unlikely(fault & VM_FAULT_ERROR)) { 245 if (unlikely(fault & VM_FAULT_ERROR)) {
246 if (fault & VM_FAULT_OOM) 246 if (fault & VM_FAULT_OOM)
247 goto out_of_memory; 247 goto out_of_memory;
@@ -484,7 +484,7 @@ good_area:
484 if(!(vma->vm_flags & (VM_READ | VM_EXEC))) 484 if(!(vma->vm_flags & (VM_READ | VM_EXEC)))
485 goto bad_area; 485 goto bad_area;
486 } 486 }
487 switch (handle_mm_fault(mm, vma, address, write)) { 487 switch (handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0)) {
488 case VM_FAULT_SIGBUS: 488 case VM_FAULT_SIGBUS:
489 case VM_FAULT_OOM: 489 case VM_FAULT_OOM:
490 goto do_sigbus; 490 goto do_sigbus;
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
index 4ab8993b086..e5620b27c8b 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -398,7 +398,7 @@ good_area:
398 goto bad_area; 398 goto bad_area;
399 } 399 }
400 400
401 fault = handle_mm_fault(mm, vma, address, (fault_code & FAULT_CODE_WRITE)); 401 fault = handle_mm_fault(mm, vma, address, (fault_code & FAULT_CODE_WRITE) ? FAULT_FLAG_WRITE : 0);
402 if (unlikely(fault & VM_FAULT_ERROR)) { 402 if (unlikely(fault & VM_FAULT_ERROR)) {
403 if (fault & VM_FAULT_OOM) 403 if (fault & VM_FAULT_OOM)
404 goto out_of_memory; 404 goto out_of_memory;
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index ca92e2f54e4..ed6be6ba2f4 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -1796,10 +1796,16 @@ void __init paging_init(void)
1796 1796
1797 prom_build_devicetree(); 1797 prom_build_devicetree();
1798 of_populate_present_mask(); 1798 of_populate_present_mask();
1799#ifndef CONFIG_SMP
1800 of_fill_in_cpu_data();
1801#endif
1799 1802
1800 if (tlb_type == hypervisor) { 1803 if (tlb_type == hypervisor) {
1801 sun4v_mdesc_init(); 1804 sun4v_mdesc_init();
1802 mdesc_populate_present_mask(cpu_all_mask); 1805 mdesc_populate_present_mask(cpu_all_mask);
1806#ifndef CONFIG_SMP
1807 mdesc_fill_in_cpu_data(cpu_all_mask);
1808#endif
1803 } 1809 }
1804 1810
1805 /* Once the OF device tree and MDESC have been setup, we know 1811 /* Once the OF device tree and MDESC have been setup, we know
diff --git a/arch/um/drivers/slip_kern.c b/arch/um/drivers/slip_kern.c
index 5ec17563142..dd2aadc14af 100644
--- a/arch/um/drivers/slip_kern.c
+++ b/arch/um/drivers/slip_kern.c
@@ -30,7 +30,6 @@ static void slip_init(struct net_device *dev, void *data)
30 30
31 slip_proto_init(&spri->slip); 31 slip_proto_init(&spri->slip);
32 32
33 dev->init = NULL;
34 dev->hard_header_len = 0; 33 dev->hard_header_len = 0;
35 dev->header_ops = NULL; 34 dev->header_ops = NULL;
36 dev->addr_len = 0; 35 dev->addr_len = 0;
diff --git a/arch/um/drivers/slirp_kern.c b/arch/um/drivers/slirp_kern.c
index f15a6e7654f..e376284f0fb 100644
--- a/arch/um/drivers/slirp_kern.c
+++ b/arch/um/drivers/slirp_kern.c
@@ -32,7 +32,6 @@ void slirp_init(struct net_device *dev, void *data)
32 32
33 slip_proto_init(&spri->slip); 33 slip_proto_init(&spri->slip);
34 34
35 dev->init = NULL;
36 dev->hard_header_len = 0; 35 dev->hard_header_len = 0;
37 dev->header_ops = NULL; 36 dev->header_ops = NULL;
38 dev->addr_len = 0; 37 dev->addr_len = 0;
diff --git a/arch/um/include/asm/dma-mapping.h b/arch/um/include/asm/dma-mapping.h
index 90fc708b320..378de4bbf49 100644
--- a/arch/um/include/asm/dma-mapping.h
+++ b/arch/um/include/asm/dma-mapping.h
@@ -79,14 +79,14 @@ dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
79} 79}
80 80
81static inline void 81static inline void
82dma_sync_single(struct device *dev, dma_addr_t dma_handle, size_t size, 82dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
83 enum dma_data_direction direction) 83 enum dma_data_direction direction)
84{ 84{
85 BUG(); 85 BUG();
86} 86}
87 87
88static inline void 88static inline void
89dma_sync_sg(struct device *dev, struct scatterlist *sg, int nelems, 89dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
90 enum dma_data_direction direction) 90 enum dma_data_direction direction)
91{ 91{
92 BUG(); 92 BUG();
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index 7384d8accfe..637c6505dc0 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -65,7 +65,7 @@ good_area:
65 do { 65 do {
66 int fault; 66 int fault;
67 67
68 fault = handle_mm_fault(mm, vma, address, is_write); 68 fault = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0);
69 if (unlikely(fault & VM_FAULT_ERROR)) { 69 if (unlikely(fault & VM_FAULT_ERROR)) {
70 if (fault & VM_FAULT_OOM) { 70 if (fault & VM_FAULT_OOM) {
71 goto out_of_memory; 71 goto out_of_memory;
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index cf42fc30541..d1430ef6b4f 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -28,11 +28,13 @@ config X86
28 select HAVE_KPROBES 28 select HAVE_KPROBES
29 select ARCH_WANT_OPTIONAL_GPIOLIB 29 select ARCH_WANT_OPTIONAL_GPIOLIB
30 select ARCH_WANT_FRAME_POINTERS 30 select ARCH_WANT_FRAME_POINTERS
31 select HAVE_DMA_ATTRS
31 select HAVE_KRETPROBES 32 select HAVE_KRETPROBES
32 select HAVE_FTRACE_MCOUNT_RECORD 33 select HAVE_FTRACE_MCOUNT_RECORD
33 select HAVE_DYNAMIC_FTRACE 34 select HAVE_DYNAMIC_FTRACE
34 select HAVE_FUNCTION_TRACER 35 select HAVE_FUNCTION_TRACER
35 select HAVE_FUNCTION_GRAPH_TRACER 36 select HAVE_FUNCTION_GRAPH_TRACER
37 select HAVE_FUNCTION_GRAPH_FP_TEST
36 select HAVE_FUNCTION_TRACE_MCOUNT_TEST 38 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
37 select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE 39 select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
38 select HAVE_FTRACE_SYSCALLS 40 select HAVE_FTRACE_SYSCALLS
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
index 8d16ada2504..ec749c2bfdd 100644
--- a/arch/x86/boot/Makefile
+++ b/arch/x86/boot/Makefile
@@ -70,6 +70,7 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
70 $(call cc-option, -mpreferred-stack-boundary=2) 70 $(call cc-option, -mpreferred-stack-boundary=2)
71KBUILD_CFLAGS += $(call cc-option, -m32) 71KBUILD_CFLAGS += $(call cc-option, -m32)
72KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ 72KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
73GCOV_PROFILE := n
73 74
74$(obj)/bzImage: asflags-y := $(SVGA_MODE) 75$(obj)/bzImage: asflags-y := $(SVGA_MODE)
75 76
diff --git a/arch/x86/boot/bioscall.S b/arch/x86/boot/bioscall.S
index 507793739ea..1dfbf64e52a 100644
--- a/arch/x86/boot/bioscall.S
+++ b/arch/x86/boot/bioscall.S
@@ -13,7 +13,7 @@
13 * touching registers they shouldn't be. 13 * touching registers they shouldn't be.
14 */ 14 */
15 15
16 .code16 16 .code16gcc
17 .text 17 .text
18 .globl intcall 18 .globl intcall
19 .type intcall, @function 19 .type intcall, @function
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 49c8a4c37d7..e2ff504b4dd 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -15,6 +15,7 @@ KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
15KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) 15KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
16 16
17KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ 17KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
18GCOV_PROFILE := n
18 19
19LDFLAGS := -m elf_$(UTS_MACHINE) 20LDFLAGS := -m elf_$(UTS_MACHINE)
20LDFLAGS_vmlinux := -T 21LDFLAGS_vmlinux := -T
diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S
index caba9960170..eb0566e8331 100644
--- a/arch/x86/crypto/aesni-intel_asm.S
+++ b/arch/x86/crypto/aesni-intel_asm.S
@@ -845,7 +845,7 @@ ENTRY(aesni_cbc_enc)
845 */ 845 */
846ENTRY(aesni_cbc_dec) 846ENTRY(aesni_cbc_dec)
847 cmp $16, LEN 847 cmp $16, LEN
848 jb .Lcbc_dec_ret 848 jb .Lcbc_dec_just_ret
849 mov 480(KEYP), KLEN 849 mov 480(KEYP), KLEN
850 add $240, KEYP 850 add $240, KEYP
851 movups (IVP), IV 851 movups (IVP), IV
@@ -891,6 +891,7 @@ ENTRY(aesni_cbc_dec)
891 add $16, OUTP 891 add $16, OUTP
892 cmp $16, LEN 892 cmp $16, LEN
893 jge .Lcbc_dec_loop1 893 jge .Lcbc_dec_loop1
894 movups IV, (IVP)
895.Lcbc_dec_ret: 894.Lcbc_dec_ret:
895 movups IV, (IVP)
896.Lcbc_dec_just_ret:
896 ret 897 ret
diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c
index 4e663398f77..c580c5ec1ca 100644
--- a/arch/x86/crypto/aesni-intel_glue.c
+++ b/arch/x86/crypto/aesni-intel_glue.c
@@ -198,6 +198,7 @@ static int ecb_encrypt(struct blkcipher_desc *desc,
198 198
199 blkcipher_walk_init(&walk, dst, src, nbytes); 199 blkcipher_walk_init(&walk, dst, src, nbytes);
200 err = blkcipher_walk_virt(desc, &walk); 200 err = blkcipher_walk_virt(desc, &walk);
201 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
201 202
202 kernel_fpu_begin(); 203 kernel_fpu_begin();
203 while ((nbytes = walk.nbytes)) { 204 while ((nbytes = walk.nbytes)) {
@@ -221,6 +222,7 @@ static int ecb_decrypt(struct blkcipher_desc *desc,
221 222
222 blkcipher_walk_init(&walk, dst, src, nbytes); 223 blkcipher_walk_init(&walk, dst, src, nbytes);
223 err = blkcipher_walk_virt(desc, &walk); 224 err = blkcipher_walk_virt(desc, &walk);
225 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
224 226
225 kernel_fpu_begin(); 227 kernel_fpu_begin();
226 while ((nbytes = walk.nbytes)) { 228 while ((nbytes = walk.nbytes)) {
@@ -266,6 +268,7 @@ static int cbc_encrypt(struct blkcipher_desc *desc,
266 268
267 blkcipher_walk_init(&walk, dst, src, nbytes); 269 blkcipher_walk_init(&walk, dst, src, nbytes);
268 err = blkcipher_walk_virt(desc, &walk); 270 err = blkcipher_walk_virt(desc, &walk);
271 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
269 272
270 kernel_fpu_begin(); 273 kernel_fpu_begin();
271 while ((nbytes = walk.nbytes)) { 274 while ((nbytes = walk.nbytes)) {
@@ -289,6 +292,7 @@ static int cbc_decrypt(struct blkcipher_desc *desc,
289 292
290 blkcipher_walk_init(&walk, dst, src, nbytes); 293 blkcipher_walk_init(&walk, dst, src, nbytes);
291 err = blkcipher_walk_virt(desc, &walk); 294 err = blkcipher_walk_virt(desc, &walk);
295 desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
292 296
293 kernel_fpu_begin(); 297 kernel_fpu_begin();
294 while ((nbytes = walk.nbytes)) { 298 while ((nbytes = walk.nbytes)) {
diff --git a/arch/x86/crypto/fpu.c b/arch/x86/crypto/fpu.c
index 5f9781a3815..daef6cd2b45 100644
--- a/arch/x86/crypto/fpu.c
+++ b/arch/x86/crypto/fpu.c
@@ -48,7 +48,7 @@ static int crypto_fpu_encrypt(struct blkcipher_desc *desc_in,
48 struct blkcipher_desc desc = { 48 struct blkcipher_desc desc = {
49 .tfm = child, 49 .tfm = child,
50 .info = desc_in->info, 50 .info = desc_in->info,
51 .flags = desc_in->flags, 51 .flags = desc_in->flags & ~CRYPTO_TFM_REQ_MAY_SLEEP,
52 }; 52 };
53 53
54 kernel_fpu_begin(); 54 kernel_fpu_begin();
@@ -67,7 +67,7 @@ static int crypto_fpu_decrypt(struct blkcipher_desc *desc_in,
67 struct blkcipher_desc desc = { 67 struct blkcipher_desc desc = {
68 .tfm = child, 68 .tfm = child,
69 .info = desc_in->info, 69 .info = desc_in->info,
70 .flags = desc_in->flags, 70 .flags = desc_in->flags & ~CRYPTO_TFM_REQ_MAY_SLEEP,
71 }; 71 };
72 72
73 kernel_fpu_begin(); 73 kernel_fpu_begin();
diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
index 4518dc50090..20d1465a2ab 100644
--- a/arch/x86/include/asm/acpi.h
+++ b/arch/x86/include/asm/acpi.h
@@ -144,6 +144,7 @@ static inline unsigned int acpi_processor_cstate_check(unsigned int max_cstate)
144 144
145#else /* !CONFIG_ACPI */ 145#else /* !CONFIG_ACPI */
146 146
147#define acpi_disabled 1
147#define acpi_lapic 0 148#define acpi_lapic 0
148#define acpi_ioapic 0 149#define acpi_ioapic 0
149static inline void acpi_noirq_set(void) { } 150static inline void acpi_noirq_set(void) { }
diff --git a/arch/x86/include/asm/amd_iommu.h b/arch/x86/include/asm/amd_iommu.h
index 262e0282004..bdf96f119f0 100644
--- a/arch/x86/include/asm/amd_iommu.h
+++ b/arch/x86/include/asm/amd_iommu.h
@@ -29,9 +29,11 @@ extern void amd_iommu_detect(void);
29extern irqreturn_t amd_iommu_int_handler(int irq, void *data); 29extern irqreturn_t amd_iommu_int_handler(int irq, void *data);
30extern void amd_iommu_flush_all_domains(void); 30extern void amd_iommu_flush_all_domains(void);
31extern void amd_iommu_flush_all_devices(void); 31extern void amd_iommu_flush_all_devices(void);
32extern void amd_iommu_shutdown(void);
32#else 33#else
33static inline int amd_iommu_init(void) { return -ENODEV; } 34static inline int amd_iommu_init(void) { return -ENODEV; }
34static inline void amd_iommu_detect(void) { } 35static inline void amd_iommu_detect(void) { }
36static inline void amd_iommu_shutdown(void) { }
35#endif 37#endif
36 38
37#endif /* _ASM_X86_AMD_IOMMU_H */ 39#endif /* _ASM_X86_AMD_IOMMU_H */
diff --git a/arch/x86/include/asm/atomic_32.h b/arch/x86/include/asm/atomic_32.h
index 8cb9c814e12..2503d4e64c2 100644
--- a/arch/x86/include/asm/atomic_32.h
+++ b/arch/x86/include/asm/atomic_32.h
@@ -257,7 +257,7 @@ typedef struct {
257 257
258/** 258/**
259 * atomic64_read - read atomic64 variable 259 * atomic64_read - read atomic64 variable
260 * @v: pointer of type atomic64_t 260 * @ptr: pointer of type atomic64_t
261 * 261 *
262 * Atomically reads the value of @v. 262 * Atomically reads the value of @v.
263 * Doesn't imply a read memory barrier. 263 * Doesn't imply a read memory barrier.
@@ -294,7 +294,6 @@ atomic64_cmpxchg(atomic64_t *ptr, unsigned long long old_val,
294 * atomic64_xchg - xchg atomic64 variable 294 * atomic64_xchg - xchg atomic64 variable
295 * @ptr: pointer to type atomic64_t 295 * @ptr: pointer to type atomic64_t
296 * @new_val: value to assign 296 * @new_val: value to assign
297 * @old_val: old value that was there
298 * 297 *
299 * Atomically xchgs the value of @ptr to @new_val and returns 298 * Atomically xchgs the value of @ptr to @new_val and returns
300 * the old value. 299 * the old value.
diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
index c45f415ce31..c993e9e0fed 100644
--- a/arch/x86/include/asm/desc.h
+++ b/arch/x86/include/asm/desc.h
@@ -1,7 +1,6 @@
1#ifndef _ASM_X86_DESC_H 1#ifndef _ASM_X86_DESC_H
2#define _ASM_X86_DESC_H 2#define _ASM_X86_DESC_H
3 3
4#ifndef __ASSEMBLY__
5#include <asm/desc_defs.h> 4#include <asm/desc_defs.h>
6#include <asm/ldt.h> 5#include <asm/ldt.h>
7#include <asm/mmu.h> 6#include <asm/mmu.h>
@@ -380,29 +379,4 @@ static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist)
380 _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS); 379 _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
381} 380}
382 381
383#else
384/*
385 * GET_DESC_BASE reads the descriptor base of the specified segment.
386 *
387 * Args:
388 * idx - descriptor index
389 * gdt - GDT pointer
390 * base - 32bit register to which the base will be written
391 * lo_w - lo word of the "base" register
392 * lo_b - lo byte of the "base" register
393 * hi_b - hi byte of the low word of the "base" register
394 *
395 * Example:
396 * GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah)
397 * Will read the base address of GDT_ENTRY_ESPFIX_SS and put it into %eax.
398 */
399#define GET_DESC_BASE(idx, gdt, base, lo_w, lo_b, hi_b) \
400 movb idx * 8 + 4(gdt), lo_b; \
401 movb idx * 8 + 7(gdt), hi_b; \
402 shll $16, base; \
403 movw idx * 8 + 2(gdt), lo_w;
404
405
406#endif /* __ASSEMBLY__ */
407
408#endif /* _ASM_X86_DESC_H */ 382#endif /* _ASM_X86_DESC_H */
diff --git a/arch/x86/include/asm/dma-mapping.h b/arch/x86/include/asm/dma-mapping.h
index b93405b228b..1c3f9435f1c 100644
--- a/arch/x86/include/asm/dma-mapping.h
+++ b/arch/x86/include/asm/dma-mapping.h
@@ -33,6 +33,8 @@ static inline struct dma_map_ops *get_dma_ops(struct device *dev)
33#endif 33#endif
34} 34}
35 35
36#include <asm-generic/dma-mapping-common.h>
37
36/* Make sure we keep the same behaviour */ 38/* Make sure we keep the same behaviour */
37static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) 39static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
38{ 40{
@@ -53,177 +55,6 @@ extern int dma_set_mask(struct device *dev, u64 mask);
53extern void *dma_generic_alloc_coherent(struct device *dev, size_t size, 55extern void *dma_generic_alloc_coherent(struct device *dev, size_t size,
54 dma_addr_t *dma_addr, gfp_t flag); 56 dma_addr_t *dma_addr, gfp_t flag);
55 57
56static inline dma_addr_t
57dma_map_single(struct device *hwdev, void *ptr, size_t size,
58 enum dma_data_direction dir)
59{
60 struct dma_map_ops *ops = get_dma_ops(hwdev);
61 dma_addr_t addr;
62
63 BUG_ON(!valid_dma_direction(dir));
64 kmemcheck_mark_initialized(ptr, size);
65 addr = ops->map_page(hwdev, virt_to_page(ptr),
66 (unsigned long)ptr & ~PAGE_MASK, size,
67 dir, NULL);
68 debug_dma_map_page(hwdev, virt_to_page(ptr),
69 (unsigned long)ptr & ~PAGE_MASK, size,
70 dir, addr, true);
71 return addr;
72}
73
74static inline void
75dma_unmap_single(struct device *dev, dma_addr_t addr, size_t size,
76 enum dma_data_direction dir)
77{
78 struct dma_map_ops *ops = get_dma_ops(dev);
79
80 BUG_ON(!valid_dma_direction(dir));
81 if (ops->unmap_page)
82 ops->unmap_page(dev, addr, size, dir, NULL);
83 debug_dma_unmap_page(dev, addr, size, dir, true);
84}
85
86static inline int
87dma_map_sg(struct device *hwdev, struct scatterlist *sg,
88 int nents, enum dma_data_direction dir)
89{
90 struct dma_map_ops *ops = get_dma_ops(hwdev);
91 int ents;
92 struct scatterlist *s;
93 int i;
94
95 BUG_ON(!valid_dma_direction(dir));
96 for_each_sg(sg, s, nents, i)
97 kmemcheck_mark_initialized(sg_virt(s), s->length);
98 ents = ops->map_sg(hwdev, sg, nents, dir, NULL);
99 debug_dma_map_sg(hwdev, sg, nents, ents, dir);
100
101 return ents;
102}
103
104static inline void
105dma_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents,
106 enum dma_data_direction dir)
107{
108 struct dma_map_ops *ops = get_dma_ops(hwdev);
109
110 BUG_ON(!valid_dma_direction(dir));
111 debug_dma_unmap_sg(hwdev, sg, nents, dir);
112 if (ops->unmap_sg)
113 ops->unmap_sg(hwdev, sg, nents, dir, NULL);
114}
115
116static inline void
117dma_sync_single_for_cpu(struct device *hwdev, dma_addr_t dma_handle,
118 size_t size, enum dma_data_direction dir)
119{
120 struct dma_map_ops *ops = get_dma_ops(hwdev);
121
122 BUG_ON(!valid_dma_direction(dir));
123 if (ops->sync_single_for_cpu)
124 ops->sync_single_for_cpu(hwdev, dma_handle, size, dir);
125 debug_dma_sync_single_for_cpu(hwdev, dma_handle, size, dir);
126 flush_write_buffers();
127}
128
129static inline void
130dma_sync_single_for_device(struct device *hwdev, dma_addr_t dma_handle,
131 size_t size, enum dma_data_direction dir)
132{
133 struct dma_map_ops *ops = get_dma_ops(hwdev);
134
135 BUG_ON(!valid_dma_direction(dir));
136 if (ops->sync_single_for_device)
137 ops->sync_single_for_device(hwdev, dma_handle, size, dir);
138 debug_dma_sync_single_for_device(hwdev, dma_handle, size, dir);
139 flush_write_buffers();
140}
141
142static inline void
143dma_sync_single_range_for_cpu(struct device *hwdev, dma_addr_t dma_handle,
144 unsigned long offset, size_t size,
145 enum dma_data_direction dir)
146{
147 struct dma_map_ops *ops = get_dma_ops(hwdev);
148
149 BUG_ON(!valid_dma_direction(dir));
150 if (ops->sync_single_range_for_cpu)
151 ops->sync_single_range_for_cpu(hwdev, dma_handle, offset,
152 size, dir);
153 debug_dma_sync_single_range_for_cpu(hwdev, dma_handle,
154 offset, size, dir);
155 flush_write_buffers();
156}
157
158static inline void
159dma_sync_single_range_for_device(struct device *hwdev, dma_addr_t dma_handle,
160 unsigned long offset, size_t size,
161 enum dma_data_direction dir)
162{
163 struct dma_map_ops *ops = get_dma_ops(hwdev);
164
165 BUG_ON(!valid_dma_direction(dir));
166 if (ops->sync_single_range_for_device)
167 ops->sync_single_range_for_device(hwdev, dma_handle,
168 offset, size, dir);
169 debug_dma_sync_single_range_for_device(hwdev, dma_handle,
170 offset, size, dir);
171 flush_write_buffers();
172}
173
174static inline void
175dma_sync_sg_for_cpu(struct device *hwdev, struct scatterlist *sg,
176 int nelems, enum dma_data_direction dir)
177{
178 struct dma_map_ops *ops = get_dma_ops(hwdev);
179
180 BUG_ON(!valid_dma_direction(dir));
181 if (ops->sync_sg_for_cpu)
182 ops->sync_sg_for_cpu(hwdev, sg, nelems, dir);
183 debug_dma_sync_sg_for_cpu(hwdev, sg, nelems, dir);
184 flush_write_buffers();
185}
186
187static inline void
188dma_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg,
189 int nelems, enum dma_data_direction dir)
190{
191 struct dma_map_ops *ops = get_dma_ops(hwdev);
192
193 BUG_ON(!valid_dma_direction(dir));
194 if (ops->sync_sg_for_device)
195 ops->sync_sg_for_device(hwdev, sg, nelems, dir);
196 debug_dma_sync_sg_for_device(hwdev, sg, nelems, dir);
197
198 flush_write_buffers();
199}
200
201static inline dma_addr_t dma_map_page(struct device *dev, struct page *page,
202 size_t offset, size_t size,
203 enum dma_data_direction dir)
204{
205 struct dma_map_ops *ops = get_dma_ops(dev);
206 dma_addr_t addr;
207
208 BUG_ON(!valid_dma_direction(dir));
209 kmemcheck_mark_initialized(page_address(page) + offset, size);
210 addr = ops->map_page(dev, page, offset, size, dir, NULL);
211 debug_dma_map_page(dev, page, offset, size, dir, addr, false);
212
213 return addr;
214}
215
216static inline void dma_unmap_page(struct device *dev, dma_addr_t addr,
217 size_t size, enum dma_data_direction dir)
218{
219 struct dma_map_ops *ops = get_dma_ops(dev);
220
221 BUG_ON(!valid_dma_direction(dir));
222 if (ops->unmap_page)
223 ops->unmap_page(dev, addr, size, dir, NULL);
224 debug_dma_unmap_page(dev, addr, size, dir, false);
225}
226
227static inline void 58static inline void
228dma_cache_sync(struct device *dev, void *vaddr, size_t size, 59dma_cache_sync(struct device *dev, void *vaddr, size_t size,
229 enum dma_data_direction dir) 60 enum dma_data_direction dir)
diff --git a/arch/x86/include/asm/iommu.h b/arch/x86/include/asm/iommu.h
index af326a2975b..fd6d21bbee6 100644
--- a/arch/x86/include/asm/iommu.h
+++ b/arch/x86/include/asm/iommu.h
@@ -6,6 +6,7 @@ extern void no_iommu_init(void);
6extern struct dma_map_ops nommu_dma_ops; 6extern struct dma_map_ops nommu_dma_ops;
7extern int force_iommu, no_iommu; 7extern int force_iommu, no_iommu;
8extern int iommu_detected; 8extern int iommu_detected;
9extern int iommu_pass_through;
9 10
10/* 10 seconds */ 11/* 10 seconds */
11#define DMAR_OPERATION_TIMEOUT ((cycles_t) tsc_khz*10*1000) 12#define DMAR_OPERATION_TIMEOUT ((cycles_t) tsc_khz*10*1000)
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h
index 540a466e50f..5cdd8d100ec 100644
--- a/arch/x86/include/asm/mce.h
+++ b/arch/x86/include/asm/mce.h
@@ -102,15 +102,39 @@ struct mce_log {
102 102
103#ifdef __KERNEL__ 103#ifdef __KERNEL__
104 104
105#include <linux/percpu.h>
106#include <linux/init.h>
107#include <asm/atomic.h>
108
105extern int mce_disabled; 109extern int mce_disabled;
110extern int mce_p5_enabled;
106 111
107#include <asm/atomic.h> 112#ifdef CONFIG_X86_MCE
108#include <linux/percpu.h> 113void mcheck_init(struct cpuinfo_x86 *c);
114#else
115static inline void mcheck_init(struct cpuinfo_x86 *c) {}
116#endif
117
118#ifdef CONFIG_X86_OLD_MCE
119extern int nr_mce_banks;
120void amd_mcheck_init(struct cpuinfo_x86 *c);
121void intel_p4_mcheck_init(struct cpuinfo_x86 *c);
122void intel_p6_mcheck_init(struct cpuinfo_x86 *c);
123#endif
124
125#ifdef CONFIG_X86_ANCIENT_MCE
126void intel_p5_mcheck_init(struct cpuinfo_x86 *c);
127void winchip_mcheck_init(struct cpuinfo_x86 *c);
128static inline void enable_p5_mce(void) { mce_p5_enabled = 1; }
129#else
130static inline void intel_p5_mcheck_init(struct cpuinfo_x86 *c) {}
131static inline void winchip_mcheck_init(struct cpuinfo_x86 *c) {}
132static inline void enable_p5_mce(void) {}
133#endif
109 134
110void mce_setup(struct mce *m); 135void mce_setup(struct mce *m);
111void mce_log(struct mce *m); 136void mce_log(struct mce *m);
112DECLARE_PER_CPU(struct sys_device, mce_dev); 137DECLARE_PER_CPU(struct sys_device, mce_dev);
113extern void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu);
114 138
115/* 139/*
116 * To support more than 128 would need to escape the predefined 140 * To support more than 128 would need to escape the predefined
@@ -145,12 +169,8 @@ int mce_available(struct cpuinfo_x86 *c);
145DECLARE_PER_CPU(unsigned, mce_exception_count); 169DECLARE_PER_CPU(unsigned, mce_exception_count);
146DECLARE_PER_CPU(unsigned, mce_poll_count); 170DECLARE_PER_CPU(unsigned, mce_poll_count);
147 171
148void mce_log_therm_throt_event(__u64 status);
149
150extern atomic_t mce_entry; 172extern atomic_t mce_entry;
151 173
152void do_machine_check(struct pt_regs *, long);
153
154typedef DECLARE_BITMAP(mce_banks_t, MAX_NR_BANKS); 174typedef DECLARE_BITMAP(mce_banks_t, MAX_NR_BANKS);
155DECLARE_PER_CPU(mce_banks_t, mce_poll_banks); 175DECLARE_PER_CPU(mce_banks_t, mce_poll_banks);
156 176
@@ -167,13 +187,32 @@ void mce_notify_process(void);
167DECLARE_PER_CPU(struct mce, injectm); 187DECLARE_PER_CPU(struct mce, injectm);
168extern struct file_operations mce_chrdev_ops; 188extern struct file_operations mce_chrdev_ops;
169 189
170#ifdef CONFIG_X86_MCE 190/*
171void mcheck_init(struct cpuinfo_x86 *c); 191 * Exception handler
172#else 192 */
173#define mcheck_init(c) do { } while (0) 193
174#endif 194/* Call the installed machine check handler for this CPU setup. */
195extern void (*machine_check_vector)(struct pt_regs *, long error_code);
196void do_machine_check(struct pt_regs *, long);
197
198/*
199 * Threshold handler
200 */
175 201
176extern void (*mce_threshold_vector)(void); 202extern void (*mce_threshold_vector)(void);
203extern void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu);
204
205/*
206 * Thermal handler
207 */
208
209void intel_init_thermal(struct cpuinfo_x86 *c);
210
211#ifdef CONFIG_X86_NEW_MCE
212void mce_log_therm_throt_event(__u64 status);
213#else
214static inline void mce_log_therm_throt_event(__u64 status) {}
215#endif
177 216
178#endif /* __KERNEL__ */ 217#endif /* __KERNEL__ */
179#endif /* _ASM_X86_MCE_H */ 218#endif /* _ASM_X86_MCE_H */
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 22603764e7d..48ad9d29484 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -3,13 +3,10 @@
3 3
4#include <asm/msr-index.h> 4#include <asm/msr-index.h>
5 5
6#ifndef __ASSEMBLY__
7# include <linux/types.h>
8#endif
9
10#ifdef __KERNEL__ 6#ifdef __KERNEL__
11#ifndef __ASSEMBLY__ 7#ifndef __ASSEMBLY__
12 8
9#include <linux/types.h>
13#include <asm/asm.h> 10#include <asm/asm.h>
14#include <asm/errno.h> 11#include <asm/errno.h>
15#include <asm/cpumask.h> 12#include <asm/cpumask.h>
@@ -264,6 +261,4 @@ static inline int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
264#endif /* CONFIG_SMP */ 261#endif /* CONFIG_SMP */
265#endif /* __ASSEMBLY__ */ 262#endif /* __ASSEMBLY__ */
266#endif /* __KERNEL__ */ 263#endif /* __KERNEL__ */
267
268
269#endif /* _ASM_X86_MSR_H */ 264#endif /* _ASM_X86_MSR_H */
diff --git a/arch/x86/include/asm/page_64_types.h b/arch/x86/include/asm/page_64_types.h
index 8d382d3abf3..7639dbf5d22 100644
--- a/arch/x86/include/asm/page_64_types.h
+++ b/arch/x86/include/asm/page_64_types.h
@@ -41,7 +41,7 @@
41 41
42/* See Documentation/x86/x86_64/mm.txt for a description of the memory map. */ 42/* See Documentation/x86/x86_64/mm.txt for a description of the memory map. */
43#define __PHYSICAL_MASK_SHIFT 46 43#define __PHYSICAL_MASK_SHIFT 46
44#define __VIRTUAL_MASK_SHIFT 48 44#define __VIRTUAL_MASK_SHIFT 47
45 45
46/* 46/*
47 * Kernel image size is limited to 512 MB (see level2_kernel_pgt in 47 * Kernel image size is limited to 512 MB (see level2_kernel_pgt in
diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
index b51a1e8b0ba..927958d13c1 100644
--- a/arch/x86/include/asm/pci.h
+++ b/arch/x86/include/asm/pci.h
@@ -130,6 +130,7 @@ extern void pci_iommu_alloc(void);
130 130
131/* generic pci stuff */ 131/* generic pci stuff */
132#include <asm-generic/pci.h> 132#include <asm-generic/pci.h>
133#define PCIBIOS_MAX_MEM_32 0xffffffff
133 134
134#ifdef CONFIG_NUMA 135#ifdef CONFIG_NUMA
135/* Returns the node based on pci bus */ 136/* Returns the node based on pci bus */
diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index e60fd3e14bd..b399988eee3 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
@@ -121,6 +121,9 @@ extern int __init pcibios_init(void);
121extern int __init pci_mmcfg_arch_init(void); 121extern int __init pci_mmcfg_arch_init(void);
122extern void __init pci_mmcfg_arch_free(void); 122extern void __init pci_mmcfg_arch_free(void);
123 123
124extern struct acpi_mcfg_allocation *pci_mmcfg_config;
125extern int pci_mmcfg_config_num;
126
124/* 127/*
125 * AMD Fam10h CPUs are buggy, and cannot access MMIO config space 128 * AMD Fam10h CPUs are buggy, and cannot access MMIO config space
126 * on their northbrige except through the * %eax register. As such, you MUST 129 * on their northbrige except through the * %eax register. As such, you MUST
diff --git a/arch/x86/include/asm/perf_counter.h b/arch/x86/include/asm/perf_counter.h
index 876ed97147b..5fb33e160ea 100644
--- a/arch/x86/include/asm/perf_counter.h
+++ b/arch/x86/include/asm/perf_counter.h
@@ -84,11 +84,6 @@ union cpuid10_edx {
84#define MSR_ARCH_PERFMON_FIXED_CTR2 0x30b 84#define MSR_ARCH_PERFMON_FIXED_CTR2 0x30b
85#define X86_PMC_IDX_FIXED_BUS_CYCLES (X86_PMC_IDX_FIXED + 2) 85#define X86_PMC_IDX_FIXED_BUS_CYCLES (X86_PMC_IDX_FIXED + 2)
86 86
87extern void set_perf_counter_pending(void);
88
89#define clear_perf_counter_pending() do { } while (0)
90#define test_perf_counter_pending() (0)
91
92#ifdef CONFIG_PERF_COUNTERS 87#ifdef CONFIG_PERF_COUNTERS
93extern void init_hw_perf_counters(void); 88extern void init_hw_perf_counters(void);
94extern void perf_counters_lapic_init(void); 89extern void perf_counters_lapic_init(void);
diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
index 31bd120cf2a..01fd9461d32 100644
--- a/arch/x86/include/asm/pgtable_32.h
+++ b/arch/x86/include/asm/pgtable_32.h
@@ -49,13 +49,17 @@ extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t);
49#endif 49#endif
50 50
51#if defined(CONFIG_HIGHPTE) 51#if defined(CONFIG_HIGHPTE)
52#define __KM_PTE \
53 (in_nmi() ? KM_NMI_PTE : \
54 in_irq() ? KM_IRQ_PTE : \
55 KM_PTE0)
52#define pte_offset_map(dir, address) \ 56#define pte_offset_map(dir, address) \
53 ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE0) + \ 57 ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), __KM_PTE) + \
54 pte_index((address))) 58 pte_index((address)))
55#define pte_offset_map_nested(dir, address) \ 59#define pte_offset_map_nested(dir, address) \
56 ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE1) + \ 60 ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE1) + \
57 pte_index((address))) 61 pte_index((address)))
58#define pte_unmap(pte) kunmap_atomic((pte), KM_PTE0) 62#define pte_unmap(pte) kunmap_atomic((pte), __KM_PTE)
59#define pte_unmap_nested(pte) kunmap_atomic((pte), KM_PTE1) 63#define pte_unmap_nested(pte) kunmap_atomic((pte), KM_PTE1)
60#else 64#else
61#define pte_offset_map(dir, address) \ 65#define pte_offset_map(dir, address) \
diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
index abde308fdb0..c57a3011714 100644
--- a/arch/x86/include/asm/pgtable_64.h
+++ b/arch/x86/include/asm/pgtable_64.h
@@ -165,10 +165,7 @@ extern void cleanup_highmap(void);
165 165
166/* fs/proc/kcore.c */ 166/* fs/proc/kcore.c */
167#define kc_vaddr_to_offset(v) ((v) & __VIRTUAL_MASK) 167#define kc_vaddr_to_offset(v) ((v) & __VIRTUAL_MASK)
168#define kc_offset_to_vaddr(o) \ 168#define kc_offset_to_vaddr(o) ((o) | ~__VIRTUAL_MASK)
169 (((o) & (1UL << (__VIRTUAL_MASK_SHIFT - 1))) \
170 ? ((o) | ~__VIRTUAL_MASK) \
171 : (o))
172 169
173#define __HAVE_ARCH_PTE_SAME 170#define __HAVE_ARCH_PTE_SAME
174#endif /* !__ASSEMBLY__ */ 171#endif /* !__ASSEMBLY__ */
diff --git a/arch/x86/include/asm/therm_throt.h b/arch/x86/include/asm/therm_throt.h
deleted file mode 100644
index c62349ee786..00000000000
--- a/arch/x86/include/asm/therm_throt.h
+++ /dev/null
@@ -1,9 +0,0 @@
1#ifndef _ASM_X86_THERM_THROT_H
2#define _ASM_X86_THERM_THROT_H
3
4#include <asm/atomic.h>
5
6extern atomic_t therm_throt_en;
7int therm_throt_process(int curr);
8
9#endif /* _ASM_X86_THERM_THROT_H */
diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index bd37ed444a2..20ca9c4d468 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -45,12 +45,16 @@ extern int no_timer_check;
45 */ 45 */
46 46
47DECLARE_PER_CPU(unsigned long, cyc2ns); 47DECLARE_PER_CPU(unsigned long, cyc2ns);
48DECLARE_PER_CPU(unsigned long long, cyc2ns_offset);
48 49
49#define CYC2NS_SCALE_FACTOR 10 /* 2^10, carefully chosen */ 50#define CYC2NS_SCALE_FACTOR 10 /* 2^10, carefully chosen */
50 51
51static inline unsigned long long __cycles_2_ns(unsigned long long cyc) 52static inline unsigned long long __cycles_2_ns(unsigned long long cyc)
52{ 53{
53 return cyc * per_cpu(cyc2ns, smp_processor_id()) >> CYC2NS_SCALE_FACTOR; 54 int cpu = smp_processor_id();
55 unsigned long long ns = per_cpu(cyc2ns_offset, cpu);
56 ns += cyc * per_cpu(cyc2ns, cpu) >> CYC2NS_SCALE_FACTOR;
57 return ns;
54} 58}
55 59
56static inline unsigned long long cycles_2_ns(unsigned long long cyc) 60static inline unsigned long long cycles_2_ns(unsigned long long cyc)
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index b685ece89d5..20e6a795e16 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -25,7 +25,7 @@
25#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) }) 25#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
26 26
27#define KERNEL_DS MAKE_MM_SEG(-1UL) 27#define KERNEL_DS MAKE_MM_SEG(-1UL)
28#define USER_DS MAKE_MM_SEG(PAGE_OFFSET) 28#define USER_DS MAKE_MM_SEG(TASK_SIZE_MAX)
29 29
30#define get_ds() (KERNEL_DS) 30#define get_ds() (KERNEL_DS)
31#define get_fs() (current_thread_info()->addr_limit) 31#define get_fs() (current_thread_info()->addr_limit)
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index f3477bb8456..6c327b852e2 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -24,6 +24,8 @@ CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp)
24CFLAGS_hpet.o := $(nostackp) 24CFLAGS_hpet.o := $(nostackp)
25CFLAGS_tsc.o := $(nostackp) 25CFLAGS_tsc.o := $(nostackp)
26CFLAGS_paravirt.o := $(nostackp) 26CFLAGS_paravirt.o := $(nostackp)
27GCOV_PROFILE_vsyscall_64.o := n
28GCOV_PROFILE_hpet.o := n
27 29
28obj-y := process_$(BITS).o signal.o entry_$(BITS).o 30obj-y := process_$(BITS).o signal.o entry_$(BITS).o
29obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o 31obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 631086159c5..6b8ca3a0285 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -44,11 +44,7 @@
44 44
45static int __initdata acpi_force = 0; 45static int __initdata acpi_force = 0;
46u32 acpi_rsdt_forced; 46u32 acpi_rsdt_forced;
47#ifdef CONFIG_ACPI 47int acpi_disabled;
48int acpi_disabled = 0;
49#else
50int acpi_disabled = 1;
51#endif
52EXPORT_SYMBOL(acpi_disabled); 48EXPORT_SYMBOL(acpi_disabled);
53 49
54#ifdef CONFIG_X86_64 50#ifdef CONFIG_X86_64
@@ -122,72 +118,6 @@ void __init __acpi_unmap_table(char *map, unsigned long size)
122 early_iounmap(map, size); 118 early_iounmap(map, size);
123} 119}
124 120
125#ifdef CONFIG_PCI_MMCONFIG
126
127static int acpi_mcfg_64bit_base_addr __initdata = FALSE;
128
129/* The physical address of the MMCONFIG aperture. Set from ACPI tables. */
130struct acpi_mcfg_allocation *pci_mmcfg_config;
131int pci_mmcfg_config_num;
132
133static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg)
134{
135 if (!strcmp(mcfg->header.oem_id, "SGI"))
136 acpi_mcfg_64bit_base_addr = TRUE;
137
138 return 0;
139}
140
141int __init acpi_parse_mcfg(struct acpi_table_header *header)
142{
143 struct acpi_table_mcfg *mcfg;
144 unsigned long i;
145 int config_size;
146
147 if (!header)
148 return -EINVAL;
149
150 mcfg = (struct acpi_table_mcfg *)header;
151
152 /* how many config structures do we have */
153 pci_mmcfg_config_num = 0;
154 i = header->length - sizeof(struct acpi_table_mcfg);
155 while (i >= sizeof(struct acpi_mcfg_allocation)) {
156 ++pci_mmcfg_config_num;
157 i -= sizeof(struct acpi_mcfg_allocation);
158 };
159 if (pci_mmcfg_config_num == 0) {
160 printk(KERN_ERR PREFIX "MMCONFIG has no entries\n");
161 return -ENODEV;
162 }
163
164 config_size = pci_mmcfg_config_num * sizeof(*pci_mmcfg_config);
165 pci_mmcfg_config = kmalloc(config_size, GFP_KERNEL);
166 if (!pci_mmcfg_config) {
167 printk(KERN_WARNING PREFIX
168 "No memory for MCFG config tables\n");
169 return -ENOMEM;
170 }
171
172 memcpy(pci_mmcfg_config, &mcfg[1], config_size);
173
174 acpi_mcfg_oem_check(mcfg);
175
176 for (i = 0; i < pci_mmcfg_config_num; ++i) {
177 if ((pci_mmcfg_config[i].address > 0xFFFFFFFF) &&
178 !acpi_mcfg_64bit_base_addr) {
179 printk(KERN_ERR PREFIX
180 "MMCONFIG not in low 4GB of memory\n");
181 kfree(pci_mmcfg_config);
182 pci_mmcfg_config_num = 0;
183 return -ENODEV;
184 }
185 }
186
187 return 0;
188}
189#endif /* CONFIG_PCI_MMCONFIG */
190
191#ifdef CONFIG_X86_LOCAL_APIC 121#ifdef CONFIG_X86_LOCAL_APIC
192static int __init acpi_parse_madt(struct acpi_table_header *table) 122static int __init acpi_parse_madt(struct acpi_table_header *table)
193{ 123{
@@ -1519,14 +1449,6 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
1519 }, 1449 },
1520 { 1450 {
1521 .callback = force_acpi_ht, 1451 .callback = force_acpi_ht,
1522 .ident = "ASUS P4B266",
1523 .matches = {
1524 DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
1525 DMI_MATCH(DMI_BOARD_NAME, "P4B266"),
1526 },
1527 },
1528 {
1529 .callback = force_acpi_ht,
1530 .ident = "ASUS P2B-DS", 1452 .ident = "ASUS P2B-DS",
1531 .matches = { 1453 .matches = {
1532 DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), 1454 DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c
index bbbe4bbb6f3..8c44c232efc 100644
--- a/arch/x86/kernel/acpi/cstate.c
+++ b/arch/x86/kernel/acpi/cstate.c
@@ -34,12 +34,22 @@ void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flags,
34 flags->bm_check = 1; 34 flags->bm_check = 1;
35 else if (c->x86_vendor == X86_VENDOR_INTEL) { 35 else if (c->x86_vendor == X86_VENDOR_INTEL) {
36 /* 36 /*
37 * Today all CPUs that support C3 share cache. 37 * Today all MP CPUs that support C3 share cache.
38 * TBD: This needs to look at cache shared map, once 38 * And caches should not be flushed by software while
39 * multi-core detection patch makes to the base. 39 * entering C3 type state.
40 */ 40 */
41 flags->bm_check = 1; 41 flags->bm_check = 1;
42 } 42 }
43
44 /*
45 * On all recent Intel platforms, ARB_DISABLE is a nop.
46 * So, set bm_control to zero to indicate that ARB_DISABLE
47 * is not required while entering C3 type state on
48 * P4, Core and beyond CPUs
49 */
50 if (c->x86_vendor == X86_VENDOR_INTEL &&
51 (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)))
52 flags->bm_control = 0;
43} 53}
44EXPORT_SYMBOL(acpi_processor_power_init_bm_check); 54EXPORT_SYMBOL(acpi_processor_power_init_bm_check);
45 55
diff --git a/arch/x86/kernel/acpi/processor.c b/arch/x86/kernel/acpi/processor.c
index 7c074eec39f..d296f4a195c 100644
--- a/arch/x86/kernel/acpi/processor.c
+++ b/arch/x86/kernel/acpi/processor.c
@@ -72,6 +72,7 @@ static void init_intel_pdc(struct acpi_processor *pr, struct cpuinfo_x86 *c)
72 return; 72 return;
73} 73}
74 74
75
75/* Initialize _PDC data based on the CPU vendor */ 76/* Initialize _PDC data based on the CPU vendor */
76void arch_acpi_processor_init_pdc(struct acpi_processor *pr) 77void arch_acpi_processor_init_pdc(struct acpi_processor *pr)
77{ 78{
@@ -85,3 +86,15 @@ void arch_acpi_processor_init_pdc(struct acpi_processor *pr)
85} 86}
86 87
87EXPORT_SYMBOL(arch_acpi_processor_init_pdc); 88EXPORT_SYMBOL(arch_acpi_processor_init_pdc);
89
90void arch_acpi_processor_cleanup_pdc(struct acpi_processor *pr)
91{
92 if (pr->pdc) {
93 kfree(pr->pdc->pointer->buffer.pointer);
94 kfree(pr->pdc->pointer);
95 kfree(pr->pdc);
96 pr->pdc = NULL;
97 }
98}
99
100EXPORT_SYMBOL(arch_acpi_processor_cleanup_pdc);
diff --git a/arch/x86/kernel/acpi/realmode/Makefile b/arch/x86/kernel/acpi/realmode/Makefile
index 167bc16ce0e..6a564ac67ef 100644
--- a/arch/x86/kernel/acpi/realmode/Makefile
+++ b/arch/x86/kernel/acpi/realmode/Makefile
@@ -42,6 +42,7 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D_WAKEUP -D__KERNEL__ \
42 $(call cc-option, -mpreferred-stack-boundary=2) 42 $(call cc-option, -mpreferred-stack-boundary=2)
43KBUILD_CFLAGS += $(call cc-option, -m32) 43KBUILD_CFLAGS += $(call cc-option, -m32)
44KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ 44KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
45GCOV_PROFILE := n
45 46
46WAKEUP_OBJS = $(addprefix $(obj)/,$(wakeup-y)) 47WAKEUP_OBJS = $(addprefix $(obj)/,$(wakeup-y))
47 48
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
index 1c60554537c..9372f0406ad 100644
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -434,6 +434,16 @@ static void iommu_flush_tlb(struct amd_iommu *iommu, u16 domid)
434 iommu_queue_inv_iommu_pages(iommu, address, domid, 0, 1); 434 iommu_queue_inv_iommu_pages(iommu, address, domid, 0, 1);
435} 435}
436 436
437/* Flush the whole IO/TLB for a given protection domain - including PDE */
438static void iommu_flush_tlb_pde(struct amd_iommu *iommu, u16 domid)
439{
440 u64 address = CMD_INV_IOMMU_ALL_PAGES_ADDRESS;
441
442 INC_STATS_COUNTER(domain_flush_single);
443
444 iommu_queue_inv_iommu_pages(iommu, address, domid, 1, 1);
445}
446
437/* 447/*
438 * This function is used to flush the IO/TLB for a given protection domain 448 * This function is used to flush the IO/TLB for a given protection domain
439 * on every IOMMU in the system 449 * on every IOMMU in the system
@@ -1078,7 +1088,13 @@ static void attach_device(struct amd_iommu *iommu,
1078 amd_iommu_pd_table[devid] = domain; 1088 amd_iommu_pd_table[devid] = domain;
1079 write_unlock_irqrestore(&amd_iommu_devtable_lock, flags); 1089 write_unlock_irqrestore(&amd_iommu_devtable_lock, flags);
1080 1090
1091 /*
1092 * We might boot into a crash-kernel here. The crashed kernel
1093 * left the caches in the IOMMU dirty. So we have to flush
1094 * here to evict all dirty stuff.
1095 */
1081 iommu_queue_inv_dev_entry(iommu, devid); 1096 iommu_queue_inv_dev_entry(iommu, devid);
1097 iommu_flush_tlb_pde(iommu, domain->id);
1082} 1098}
1083 1099
1084/* 1100/*
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c
index 238989ec077..10b2accd12e 100644
--- a/arch/x86/kernel/amd_iommu_init.c
+++ b/arch/x86/kernel/amd_iommu_init.c
@@ -260,6 +260,14 @@ static void iommu_enable(struct amd_iommu *iommu)
260 260
261static void iommu_disable(struct amd_iommu *iommu) 261static void iommu_disable(struct amd_iommu *iommu)
262{ 262{
263 /* Disable command buffer */
264 iommu_feature_disable(iommu, CONTROL_CMDBUF_EN);
265
266 /* Disable event logging and event interrupts */
267 iommu_feature_disable(iommu, CONTROL_EVT_INT_EN);
268 iommu_feature_disable(iommu, CONTROL_EVT_LOG_EN);
269
270 /* Disable IOMMU hardware itself */
263 iommu_feature_disable(iommu, CONTROL_IOMMU_EN); 271 iommu_feature_disable(iommu, CONTROL_IOMMU_EN);
264} 272}
265 273
@@ -478,6 +486,10 @@ static void iommu_enable_event_buffer(struct amd_iommu *iommu)
478 memcpy_toio(iommu->mmio_base + MMIO_EVT_BUF_OFFSET, 486 memcpy_toio(iommu->mmio_base + MMIO_EVT_BUF_OFFSET,
479 &entry, sizeof(entry)); 487 &entry, sizeof(entry));
480 488
489 /* set head and tail to zero manually */
490 writel(0x00, iommu->mmio_base + MMIO_EVT_HEAD_OFFSET);
491 writel(0x00, iommu->mmio_base + MMIO_EVT_TAIL_OFFSET);
492
481 iommu_feature_enable(iommu, CONTROL_EVT_LOG_EN); 493 iommu_feature_enable(iommu, CONTROL_EVT_LOG_EN);
482} 494}
483 495
@@ -1042,6 +1054,7 @@ static void enable_iommus(void)
1042 struct amd_iommu *iommu; 1054 struct amd_iommu *iommu;
1043 1055
1044 for_each_iommu(iommu) { 1056 for_each_iommu(iommu) {
1057 iommu_disable(iommu);
1045 iommu_set_device_table(iommu); 1058 iommu_set_device_table(iommu);
1046 iommu_enable_command_buffer(iommu); 1059 iommu_enable_command_buffer(iommu);
1047 iommu_enable_event_buffer(iommu); 1060 iommu_enable_event_buffer(iommu);
@@ -1066,12 +1079,6 @@ static void disable_iommus(void)
1066 1079
1067static int amd_iommu_resume(struct sys_device *dev) 1080static int amd_iommu_resume(struct sys_device *dev)
1068{ 1081{
1069 /*
1070 * Disable IOMMUs before reprogramming the hardware registers.
1071 * IOMMU is still enabled from the resume kernel.
1072 */
1073 disable_iommus();
1074
1075 /* re-load the hardware */ 1082 /* re-load the hardware */
1076 enable_iommus(); 1083 enable_iommus();
1077 1084
@@ -1079,8 +1086,8 @@ static int amd_iommu_resume(struct sys_device *dev)
1079 * we have to flush after the IOMMUs are enabled because a 1086 * we have to flush after the IOMMUs are enabled because a
1080 * disabled IOMMU will never execute the commands we send 1087 * disabled IOMMU will never execute the commands we send
1081 */ 1088 */
1082 amd_iommu_flush_all_domains();
1083 amd_iommu_flush_all_devices(); 1089 amd_iommu_flush_all_devices();
1090 amd_iommu_flush_all_domains();
1084 1091
1085 return 0; 1092 return 0;
1086} 1093}
@@ -1273,6 +1280,11 @@ free:
1273 goto out; 1280 goto out;
1274} 1281}
1275 1282
1283void amd_iommu_shutdown(void)
1284{
1285 disable_iommus();
1286}
1287
1276/**************************************************************************** 1288/****************************************************************************
1277 * 1289 *
1278 * Early detect code. This code runs at IOMMU detection time in the DMA 1290 * Early detect code. This code runs at IOMMU detection time in the DMA
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index ef8d9290c7e..4d0216fcb36 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -462,7 +462,8 @@ static struct IO_APIC_route_entry ioapic_read_entry(int apic, int pin)
462static void 462static void
463__ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e) 463__ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e)
464{ 464{
465 union entry_union eu; 465 union entry_union eu = {{0, 0}};
466
466 eu.entry = e; 467 eu.entry = e;
467 io_apic_write(apic, 0x11 + 2*pin, eu.w2); 468 io_apic_write(apic, 0x11 + 2*pin, eu.w2);
468 io_apic_write(apic, 0x10 + 2*pin, eu.w1); 469 io_apic_write(apic, 0x10 + 2*pin, eu.w1);
@@ -1413,6 +1414,9 @@ int setup_ioapic_entry(int apic_id, int irq,
1413 irte.vector = vector; 1414 irte.vector = vector;
1414 irte.dest_id = IRTE_DEST(destination); 1415 irte.dest_id = IRTE_DEST(destination);
1415 1416
1417 /* Set source-id of interrupt request */
1418 set_ioapic_sid(&irte, apic_id);
1419
1416 modify_irte(irq, &irte); 1420 modify_irte(irq, &irte);
1417 1421
1418 ir_entry->index2 = (index >> 15) & 0x1; 1422 ir_entry->index2 = (index >> 15) & 0x1;
@@ -2003,7 +2007,9 @@ void disable_IO_APIC(void)
2003 /* 2007 /*
2004 * Use virtual wire A mode when interrupt remapping is enabled. 2008 * Use virtual wire A mode when interrupt remapping is enabled.
2005 */ 2009 */
2006 disconnect_bsp_APIC(!intr_remapping_enabled && ioapic_i8259.pin != -1); 2010 if (cpu_has_apic)
2011 disconnect_bsp_APIC(!intr_remapping_enabled &&
2012 ioapic_i8259.pin != -1);
2007} 2013}
2008 2014
2009#ifdef CONFIG_X86_32 2015#ifdef CONFIG_X86_32
@@ -3287,6 +3293,9 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3287 irte.vector = cfg->vector; 3293 irte.vector = cfg->vector;
3288 irte.dest_id = IRTE_DEST(dest); 3294 irte.dest_id = IRTE_DEST(dest);
3289 3295
3296 /* Set source-id of interrupt request */
3297 set_msi_sid(&irte, pdev);
3298
3290 modify_irte(irq, &irte); 3299 modify_irte(irq, &irte);
3291 3300
3292 msg->address_hi = MSI_ADDR_BASE_HI; 3301 msg->address_hi = MSI_ADDR_BASE_HI;
@@ -3567,7 +3576,7 @@ static int dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask)
3567 3576
3568#endif /* CONFIG_SMP */ 3577#endif /* CONFIG_SMP */
3569 3578
3570struct irq_chip dmar_msi_type = { 3579static struct irq_chip dmar_msi_type = {
3571 .name = "DMAR_MSI", 3580 .name = "DMAR_MSI",
3572 .unmask = dmar_msi_unmask, 3581 .unmask = dmar_msi_unmask,
3573 .mask = dmar_msi_mask, 3582 .mask = dmar_msi_mask,
diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c
index 440a8bccd91..0c0182cc947 100644
--- a/arch/x86/kernel/apic/probe_32.c
+++ b/arch/x86/kernel/apic/probe_32.c
@@ -20,23 +20,12 @@
20#include <asm/apic.h> 20#include <asm/apic.h>
21#include <asm/setup.h> 21#include <asm/setup.h>
22 22
23#include <linux/threads.h>
24#include <linux/cpumask.h>
25#include <asm/mpspec.h>
26#include <asm/fixmap.h>
27#include <asm/apicdef.h>
28#include <linux/kernel.h>
29#include <linux/string.h>
30#include <linux/smp.h> 23#include <linux/smp.h>
31#include <linux/init.h>
32#include <asm/ipi.h> 24#include <asm/ipi.h>
33 25
34#include <linux/smp.h>
35#include <linux/init.h>
36#include <linux/interrupt.h> 26#include <linux/interrupt.h>
37#include <asm/acpi.h> 27#include <asm/acpi.h>
38#include <asm/e820.h> 28#include <asm/e820.h>
39#include <asm/setup.h>
40 29
41#ifdef CONFIG_HOTPLUG_CPU 30#ifdef CONFIG_HOTPLUG_CPU
42#define DEFAULT_SEND_IPI (1) 31#define DEFAULT_SEND_IPI (1)
diff --git a/arch/x86/kernel/apic/summit_32.c b/arch/x86/kernel/apic/summit_32.c
index 344eee4ac0a..eafdfbd1ea9 100644
--- a/arch/x86/kernel/apic/summit_32.c
+++ b/arch/x86/kernel/apic/summit_32.c
@@ -44,7 +44,6 @@
44#include <asm/ipi.h> 44#include <asm/ipi.h>
45#include <linux/kernel.h> 45#include <linux/kernel.h>
46#include <linux/string.h> 46#include <linux/string.h>
47#include <linux/init.h>
48#include <linux/gfp.h> 47#include <linux/gfp.h>
49#include <linux/smp.h> 48#include <linux/smp.h>
50 49
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 9fa33886c0d..6b26d4deada 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -108,7 +108,7 @@ DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
108 /* data */ 108 /* data */
109 [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } }, 109 [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } },
110 110
111 [GDT_ENTRY_ESPFIX_SS] = { { { 0x00000000, 0x00c09200 } } }, 111 [GDT_ENTRY_ESPFIX_SS] = { { { 0x0000ffff, 0x00cf9200 } } },
112 [GDT_ENTRY_PERCPU] = { { { 0x0000ffff, 0x00cf9200 } } }, 112 [GDT_ENTRY_PERCPU] = { { { 0x0000ffff, 0x00cf9200 } } },
113 GDT_STACK_CANARY_INIT 113 GDT_STACK_CANARY_INIT
114#endif 114#endif
@@ -848,6 +848,9 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
848#if defined(CONFIG_NUMA) && defined(CONFIG_X86_64) 848#if defined(CONFIG_NUMA) && defined(CONFIG_X86_64)
849 numa_add_cpu(smp_processor_id()); 849 numa_add_cpu(smp_processor_id());
850#endif 850#endif
851
852 /* Cap the iomem address space to what is addressable on all CPUs */
853 iomem_resource.end &= (1ULL << c->x86_phys_bits) - 1;
851} 854}
852 855
853#ifdef CONFIG_X86_64 856#ifdef CONFIG_X86_64
diff --git a/arch/x86/kernel/cpu/mcheck/Makefile b/arch/x86/kernel/cpu/mcheck/Makefile
index 45004faf67e..188a1ca5ad2 100644
--- a/arch/x86/kernel/cpu/mcheck/Makefile
+++ b/arch/x86/kernel/cpu/mcheck/Makefile
@@ -1,11 +1,12 @@
1obj-y = mce.o therm_throt.o 1obj-y = mce.o
2 2
3obj-$(CONFIG_X86_NEW_MCE) += mce-severity.o 3obj-$(CONFIG_X86_NEW_MCE) += mce-severity.o
4obj-$(CONFIG_X86_OLD_MCE) += k7.o p4.o p6.o 4obj-$(CONFIG_X86_OLD_MCE) += k7.o p4.o p6.o
5obj-$(CONFIG_X86_ANCIENT_MCE) += winchip.o p5.o 5obj-$(CONFIG_X86_ANCIENT_MCE) += winchip.o p5.o
6obj-$(CONFIG_X86_MCE_P4THERMAL) += mce_intel.o 6obj-$(CONFIG_X86_MCE_INTEL) += mce_intel.o
7obj-$(CONFIG_X86_MCE_INTEL) += mce_intel_64.o mce_intel.o 7obj-$(CONFIG_X86_MCE_AMD) += mce_amd.o
8obj-$(CONFIG_X86_MCE_AMD) += mce_amd_64.o
9obj-$(CONFIG_X86_MCE_NONFATAL) += non-fatal.o 8obj-$(CONFIG_X86_MCE_NONFATAL) += non-fatal.o
10obj-$(CONFIG_X86_MCE_THRESHOLD) += threshold.o 9obj-$(CONFIG_X86_MCE_THRESHOLD) += threshold.o
11obj-$(CONFIG_X86_MCE_INJECT) += mce-inject.o 10obj-$(CONFIG_X86_MCE_INJECT) += mce-inject.o
11
12obj-$(CONFIG_X86_THERMAL_VECTOR) += therm_throt.o
diff --git a/arch/x86/kernel/cpu/mcheck/k7.c b/arch/x86/kernel/cpu/mcheck/k7.c
index 89e51042415..b945d5dbc60 100644
--- a/arch/x86/kernel/cpu/mcheck/k7.c
+++ b/arch/x86/kernel/cpu/mcheck/k7.c
@@ -10,10 +10,9 @@
10 10
11#include <asm/processor.h> 11#include <asm/processor.h>
12#include <asm/system.h> 12#include <asm/system.h>
13#include <asm/mce.h>
13#include <asm/msr.h> 14#include <asm/msr.h>
14 15
15#include "mce.h"
16
17/* Machine Check Handler For AMD Athlon/Duron: */ 16/* Machine Check Handler For AMD Athlon/Duron: */
18static void k7_machine_check(struct pt_regs *regs, long error_code) 17static void k7_machine_check(struct pt_regs *regs, long error_code)
19{ 18{
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index fabba15e455..284d1de968b 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -44,7 +44,6 @@
44#include <asm/msr.h> 44#include <asm/msr.h>
45 45
46#include "mce-internal.h" 46#include "mce-internal.h"
47#include "mce.h"
48 47
49/* Handle unconfigured int18 (should never happen) */ 48/* Handle unconfigured int18 (should never happen) */
50static void unexpected_machine_check(struct pt_regs *regs, long error_code) 49static void unexpected_machine_check(struct pt_regs *regs, long error_code)
@@ -57,7 +56,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
57void (*machine_check_vector)(struct pt_regs *, long error_code) = 56void (*machine_check_vector)(struct pt_regs *, long error_code) =
58 unexpected_machine_check; 57 unexpected_machine_check;
59 58
60int mce_disabled; 59int mce_disabled __read_mostly;
61 60
62#ifdef CONFIG_X86_NEW_MCE 61#ifdef CONFIG_X86_NEW_MCE
63 62
@@ -76,21 +75,22 @@ DEFINE_PER_CPU(unsigned, mce_exception_count);
76 * 2: SIGBUS or log uncorrected errors (if possible), log corrected errors 75 * 2: SIGBUS or log uncorrected errors (if possible), log corrected errors
77 * 3: never panic or SIGBUS, log all errors (for testing only) 76 * 3: never panic or SIGBUS, log all errors (for testing only)
78 */ 77 */
79static int tolerant = 1; 78static int tolerant __read_mostly = 1;
80static int banks; 79static int banks __read_mostly;
81static u64 *bank; 80static u64 *bank __read_mostly;
82static unsigned long notify_user; 81static int rip_msr __read_mostly;
83static int rip_msr; 82static int mce_bootlog __read_mostly = -1;
84static int mce_bootlog = -1; 83static int monarch_timeout __read_mostly = -1;
85static int monarch_timeout = -1; 84static int mce_panic_timeout __read_mostly;
86static int mce_panic_timeout; 85static int mce_dont_log_ce __read_mostly;
87static int mce_dont_log_ce; 86int mce_cmci_disabled __read_mostly;
88int mce_cmci_disabled; 87int mce_ignore_ce __read_mostly;
89int mce_ignore_ce; 88int mce_ser __read_mostly;
90int mce_ser; 89
91 90/* User mode helper program triggered by machine check event */
92static char trigger[128]; 91static unsigned long mce_need_notify;
93static char *trigger_argv[2] = { trigger, NULL }; 92static char mce_helper[128];
93static char *mce_helper_argv[2] = { mce_helper, NULL };
94 94
95static unsigned long dont_init_banks; 95static unsigned long dont_init_banks;
96 96
@@ -180,7 +180,7 @@ void mce_log(struct mce *mce)
180 wmb(); 180 wmb();
181 181
182 mce->finished = 1; 182 mce->finished = 1;
183 set_bit(0, &notify_user); 183 set_bit(0, &mce_need_notify);
184} 184}
185 185
186static void print_mce(struct mce *m) 186static void print_mce(struct mce *m)
@@ -691,18 +691,21 @@ static atomic_t global_nwo;
691 * in the entry order. 691 * in the entry order.
692 * TBD double check parallel CPU hotunplug 692 * TBD double check parallel CPU hotunplug
693 */ 693 */
694static int mce_start(int no_way_out, int *order) 694static int mce_start(int *no_way_out)
695{ 695{
696 int nwo; 696 int order;
697 int cpus = num_online_cpus(); 697 int cpus = num_online_cpus();
698 u64 timeout = (u64)monarch_timeout * NSEC_PER_USEC; 698 u64 timeout = (u64)monarch_timeout * NSEC_PER_USEC;
699 699
700 if (!timeout) { 700 if (!timeout)
701 *order = -1; 701 return -1;
702 return no_way_out;
703 }
704 702
705 atomic_add(no_way_out, &global_nwo); 703 atomic_add(*no_way_out, &global_nwo);
704 /*
705 * global_nwo should be updated before mce_callin
706 */
707 smp_wmb();
708 order = atomic_add_return(1, &mce_callin);
706 709
707 /* 710 /*
708 * Wait for everyone. 711 * Wait for everyone.
@@ -710,40 +713,43 @@ static int mce_start(int no_way_out, int *order)
710 while (atomic_read(&mce_callin) != cpus) { 713 while (atomic_read(&mce_callin) != cpus) {
711 if (mce_timed_out(&timeout)) { 714 if (mce_timed_out(&timeout)) {
712 atomic_set(&global_nwo, 0); 715 atomic_set(&global_nwo, 0);
713 *order = -1; 716 return -1;
714 return no_way_out;
715 } 717 }
716 ndelay(SPINUNIT); 718 ndelay(SPINUNIT);
717 } 719 }
718 720
719 /* 721 /*
720 * Cache the global no_way_out state. 722 * mce_callin should be read before global_nwo
721 */ 723 */
722 nwo = atomic_read(&global_nwo); 724 smp_rmb();
723 725
724 /* 726 if (order == 1) {
725 * Monarch starts executing now, the others wait. 727 /*
726 */ 728 * Monarch: Starts executing now, the others wait.
727 if (*order == 1) { 729 */
728 atomic_set(&mce_executing, 1); 730 atomic_set(&mce_executing, 1);
729 return nwo; 731 } else {
732 /*
733 * Subject: Now start the scanning loop one by one in
734 * the original callin order.
735 * This way when there are any shared banks it will be
736 * only seen by one CPU before cleared, avoiding duplicates.
737 */
738 while (atomic_read(&mce_executing) < order) {
739 if (mce_timed_out(&timeout)) {
740 atomic_set(&global_nwo, 0);
741 return -1;
742 }
743 ndelay(SPINUNIT);
744 }
730 } 745 }
731 746
732 /* 747 /*
733 * Now start the scanning loop one by one 748 * Cache the global no_way_out state.
734 * in the original callin order.
735 * This way when there are any shared banks it will
736 * be only seen by one CPU before cleared, avoiding duplicates.
737 */ 749 */
738 while (atomic_read(&mce_executing) < *order) { 750 *no_way_out = atomic_read(&global_nwo);
739 if (mce_timed_out(&timeout)) { 751
740 atomic_set(&global_nwo, 0); 752 return order;
741 *order = -1;
742 return no_way_out;
743 }
744 ndelay(SPINUNIT);
745 }
746 return nwo;
747} 753}
748 754
749/* 755/*
@@ -863,7 +869,6 @@ void do_machine_check(struct pt_regs *regs, long error_code)
863 * check handler. 869 * check handler.
864 */ 870 */
865 int order; 871 int order;
866
867 /* 872 /*
868 * If no_way_out gets set, there is no safe way to recover from this 873 * If no_way_out gets set, there is no safe way to recover from this
869 * MCE. If tolerant is cranked up, we'll try anyway. 874 * MCE. If tolerant is cranked up, we'll try anyway.
@@ -887,7 +892,6 @@ void do_machine_check(struct pt_regs *regs, long error_code)
887 if (!banks) 892 if (!banks)
888 goto out; 893 goto out;
889 894
890 order = atomic_add_return(1, &mce_callin);
891 mce_setup(&m); 895 mce_setup(&m);
892 896
893 m.mcgstatus = mce_rdmsrl(MSR_IA32_MCG_STATUS); 897 m.mcgstatus = mce_rdmsrl(MSR_IA32_MCG_STATUS);
@@ -909,7 +913,7 @@ void do_machine_check(struct pt_regs *regs, long error_code)
909 * This way we don't report duplicated events on shared banks 913 * This way we don't report duplicated events on shared banks
910 * because the first one to see it will clear it. 914 * because the first one to see it will clear it.
911 */ 915 */
912 no_way_out = mce_start(no_way_out, &order); 916 order = mce_start(&no_way_out);
913 for (i = 0; i < banks; i++) { 917 for (i = 0; i < banks; i++) {
914 __clear_bit(i, toclear); 918 __clear_bit(i, toclear);
915 if (!bank[i]) 919 if (!bank[i])
@@ -1118,7 +1122,7 @@ static void mcheck_timer(unsigned long data)
1118 1122
1119static void mce_do_trigger(struct work_struct *work) 1123static void mce_do_trigger(struct work_struct *work)
1120{ 1124{
1121 call_usermodehelper(trigger, trigger_argv, NULL, UMH_NO_WAIT); 1125 call_usermodehelper(mce_helper, mce_helper_argv, NULL, UMH_NO_WAIT);
1122} 1126}
1123 1127
1124static DECLARE_WORK(mce_trigger_work, mce_do_trigger); 1128static DECLARE_WORK(mce_trigger_work, mce_do_trigger);
@@ -1135,7 +1139,7 @@ int mce_notify_irq(void)
1135 1139
1136 clear_thread_flag(TIF_MCE_NOTIFY); 1140 clear_thread_flag(TIF_MCE_NOTIFY);
1137 1141
1138 if (test_and_clear_bit(0, &notify_user)) { 1142 if (test_and_clear_bit(0, &mce_need_notify)) {
1139 wake_up_interruptible(&mce_wait); 1143 wake_up_interruptible(&mce_wait);
1140 1144
1141 /* 1145 /*
@@ -1143,7 +1147,7 @@ int mce_notify_irq(void)
1143 * work_pending is always cleared before the function is 1147 * work_pending is always cleared before the function is
1144 * executed. 1148 * executed.
1145 */ 1149 */
1146 if (trigger[0] && !work_pending(&mce_trigger_work)) 1150 if (mce_helper[0] && !work_pending(&mce_trigger_work))
1147 schedule_work(&mce_trigger_work); 1151 schedule_work(&mce_trigger_work);
1148 1152
1149 if (__ratelimit(&ratelimit)) 1153 if (__ratelimit(&ratelimit))
@@ -1245,7 +1249,7 @@ static void mce_cpu_quirks(struct cpuinfo_x86 *c)
1245 * Various K7s with broken bank 0 around. Always disable 1249 * Various K7s with broken bank 0 around. Always disable
1246 * by default. 1250 * by default.
1247 */ 1251 */
1248 if (c->x86 == 6) 1252 if (c->x86 == 6 && banks > 0)
1249 bank[0] = 0; 1253 bank[0] = 0;
1250 } 1254 }
1251 1255
@@ -1282,8 +1286,7 @@ static void __cpuinit mce_ancient_init(struct cpuinfo_x86 *c)
1282 return; 1286 return;
1283 switch (c->x86_vendor) { 1287 switch (c->x86_vendor) {
1284 case X86_VENDOR_INTEL: 1288 case X86_VENDOR_INTEL:
1285 if (mce_p5_enabled()) 1289 intel_p5_mcheck_init(c);
1286 intel_p5_mcheck_init(c);
1287 break; 1290 break;
1288 case X86_VENDOR_CENTAUR: 1291 case X86_VENDOR_CENTAUR:
1289 winchip_mcheck_init(c); 1292 winchip_mcheck_init(c);
@@ -1609,8 +1612,9 @@ static int mce_resume(struct sys_device *dev)
1609static void mce_cpu_restart(void *data) 1612static void mce_cpu_restart(void *data)
1610{ 1613{
1611 del_timer_sync(&__get_cpu_var(mce_timer)); 1614 del_timer_sync(&__get_cpu_var(mce_timer));
1612 if (mce_available(&current_cpu_data)) 1615 if (!mce_available(&current_cpu_data))
1613 mce_init(); 1616 return;
1617 mce_init();
1614 mce_init_timer(); 1618 mce_init_timer();
1615} 1619}
1616 1620
@@ -1620,6 +1624,26 @@ static void mce_restart(void)
1620 on_each_cpu(mce_cpu_restart, NULL, 1); 1624 on_each_cpu(mce_cpu_restart, NULL, 1);
1621} 1625}
1622 1626
1627/* Toggle features for corrected errors */
1628static void mce_disable_ce(void *all)
1629{
1630 if (!mce_available(&current_cpu_data))
1631 return;
1632 if (all)
1633 del_timer_sync(&__get_cpu_var(mce_timer));
1634 cmci_clear();
1635}
1636
1637static void mce_enable_ce(void *all)
1638{
1639 if (!mce_available(&current_cpu_data))
1640 return;
1641 cmci_reenable();
1642 cmci_recheck();
1643 if (all)
1644 mce_init_timer();
1645}
1646
1623static struct sysdev_class mce_sysclass = { 1647static struct sysdev_class mce_sysclass = {
1624 .suspend = mce_suspend, 1648 .suspend = mce_suspend,
1625 .shutdown = mce_shutdown, 1649 .shutdown = mce_shutdown,
@@ -1659,9 +1683,9 @@ static ssize_t set_bank(struct sys_device *s, struct sysdev_attribute *attr,
1659static ssize_t 1683static ssize_t
1660show_trigger(struct sys_device *s, struct sysdev_attribute *attr, char *buf) 1684show_trigger(struct sys_device *s, struct sysdev_attribute *attr, char *buf)
1661{ 1685{
1662 strcpy(buf, trigger); 1686 strcpy(buf, mce_helper);
1663 strcat(buf, "\n"); 1687 strcat(buf, "\n");
1664 return strlen(trigger) + 1; 1688 return strlen(mce_helper) + 1;
1665} 1689}
1666 1690
1667static ssize_t set_trigger(struct sys_device *s, struct sysdev_attribute *attr, 1691static ssize_t set_trigger(struct sys_device *s, struct sysdev_attribute *attr,
@@ -1670,10 +1694,10 @@ static ssize_t set_trigger(struct sys_device *s, struct sysdev_attribute *attr,
1670 char *p; 1694 char *p;
1671 int len; 1695 int len;
1672 1696
1673 strncpy(trigger, buf, sizeof(trigger)); 1697 strncpy(mce_helper, buf, sizeof(mce_helper));
1674 trigger[sizeof(trigger)-1] = 0; 1698 mce_helper[sizeof(mce_helper)-1] = 0;
1675 len = strlen(trigger); 1699 len = strlen(mce_helper);
1676 p = strchr(trigger, '\n'); 1700 p = strchr(mce_helper, '\n');
1677 1701
1678 if (*p) 1702 if (*p)
1679 *p = 0; 1703 *p = 0;
@@ -1681,6 +1705,52 @@ static ssize_t set_trigger(struct sys_device *s, struct sysdev_attribute *attr,
1681 return len; 1705 return len;
1682} 1706}
1683 1707
1708static ssize_t set_ignore_ce(struct sys_device *s,
1709 struct sysdev_attribute *attr,
1710 const char *buf, size_t size)
1711{
1712 u64 new;
1713
1714 if (strict_strtoull(buf, 0, &new) < 0)
1715 return -EINVAL;
1716
1717 if (mce_ignore_ce ^ !!new) {
1718 if (new) {
1719 /* disable ce features */
1720 on_each_cpu(mce_disable_ce, (void *)1, 1);
1721 mce_ignore_ce = 1;
1722 } else {
1723 /* enable ce features */
1724 mce_ignore_ce = 0;
1725 on_each_cpu(mce_enable_ce, (void *)1, 1);
1726 }
1727 }
1728 return size;
1729}
1730
1731static ssize_t set_cmci_disabled(struct sys_device *s,
1732 struct sysdev_attribute *attr,
1733 const char *buf, size_t size)
1734{
1735 u64 new;
1736
1737 if (strict_strtoull(buf, 0, &new) < 0)
1738 return -EINVAL;
1739
1740 if (mce_cmci_disabled ^ !!new) {
1741 if (new) {
1742 /* disable cmci */
1743 on_each_cpu(mce_disable_ce, NULL, 1);
1744 mce_cmci_disabled = 1;
1745 } else {
1746 /* enable cmci */
1747 mce_cmci_disabled = 0;
1748 on_each_cpu(mce_enable_ce, NULL, 1);
1749 }
1750 }
1751 return size;
1752}
1753
1684static ssize_t store_int_with_restart(struct sys_device *s, 1754static ssize_t store_int_with_restart(struct sys_device *s,
1685 struct sysdev_attribute *attr, 1755 struct sysdev_attribute *attr,
1686 const char *buf, size_t size) 1756 const char *buf, size_t size)
@@ -1693,6 +1763,7 @@ static ssize_t store_int_with_restart(struct sys_device *s,
1693static SYSDEV_ATTR(trigger, 0644, show_trigger, set_trigger); 1763static SYSDEV_ATTR(trigger, 0644, show_trigger, set_trigger);
1694static SYSDEV_INT_ATTR(tolerant, 0644, tolerant); 1764static SYSDEV_INT_ATTR(tolerant, 0644, tolerant);
1695static SYSDEV_INT_ATTR(monarch_timeout, 0644, monarch_timeout); 1765static SYSDEV_INT_ATTR(monarch_timeout, 0644, monarch_timeout);
1766static SYSDEV_INT_ATTR(dont_log_ce, 0644, mce_dont_log_ce);
1696 1767
1697static struct sysdev_ext_attribute attr_check_interval = { 1768static struct sysdev_ext_attribute attr_check_interval = {
1698 _SYSDEV_ATTR(check_interval, 0644, sysdev_show_int, 1769 _SYSDEV_ATTR(check_interval, 0644, sysdev_show_int,
@@ -1700,9 +1771,24 @@ static struct sysdev_ext_attribute attr_check_interval = {
1700 &check_interval 1771 &check_interval
1701}; 1772};
1702 1773
1774static struct sysdev_ext_attribute attr_ignore_ce = {
1775 _SYSDEV_ATTR(ignore_ce, 0644, sysdev_show_int, set_ignore_ce),
1776 &mce_ignore_ce
1777};
1778
1779static struct sysdev_ext_attribute attr_cmci_disabled = {
1780 _SYSDEV_ATTR(cmci_disabled, 0644, sysdev_show_int, set_cmci_disabled),
1781 &mce_cmci_disabled
1782};
1783
1703static struct sysdev_attribute *mce_attrs[] = { 1784static struct sysdev_attribute *mce_attrs[] = {
1704 &attr_tolerant.attr, &attr_check_interval.attr, &attr_trigger, 1785 &attr_tolerant.attr,
1786 &attr_check_interval.attr,
1787 &attr_trigger,
1705 &attr_monarch_timeout.attr, 1788 &attr_monarch_timeout.attr,
1789 &attr_dont_log_ce.attr,
1790 &attr_ignore_ce.attr,
1791 &attr_cmci_disabled.attr,
1706 NULL 1792 NULL
1707}; 1793};
1708 1794
@@ -1712,7 +1798,7 @@ static cpumask_var_t mce_dev_initialized;
1712static __cpuinit int mce_create_device(unsigned int cpu) 1798static __cpuinit int mce_create_device(unsigned int cpu)
1713{ 1799{
1714 int err; 1800 int err;
1715 int i; 1801 int i, j;
1716 1802
1717 if (!mce_available(&boot_cpu_data)) 1803 if (!mce_available(&boot_cpu_data))
1718 return -EIO; 1804 return -EIO;
@@ -1730,9 +1816,9 @@ static __cpuinit int mce_create_device(unsigned int cpu)
1730 if (err) 1816 if (err)
1731 goto error; 1817 goto error;
1732 } 1818 }
1733 for (i = 0; i < banks; i++) { 1819 for (j = 0; j < banks; j++) {
1734 err = sysdev_create_file(&per_cpu(mce_dev, cpu), 1820 err = sysdev_create_file(&per_cpu(mce_dev, cpu),
1735 &bank_attrs[i]); 1821 &bank_attrs[j]);
1736 if (err) 1822 if (err)
1737 goto error2; 1823 goto error2;
1738 } 1824 }
@@ -1740,8 +1826,8 @@ static __cpuinit int mce_create_device(unsigned int cpu)
1740 1826
1741 return 0; 1827 return 0;
1742error2: 1828error2:
1743 while (--i >= 0) 1829 while (--j >= 0)
1744 sysdev_remove_file(&per_cpu(mce_dev, cpu), &bank_attrs[i]); 1830 sysdev_remove_file(&per_cpu(mce_dev, cpu), &bank_attrs[j]);
1745error: 1831error:
1746 while (--i >= 0) 1832 while (--i >= 0)
1747 sysdev_remove_file(&per_cpu(mce_dev, cpu), mce_attrs[i]); 1833 sysdev_remove_file(&per_cpu(mce_dev, cpu), mce_attrs[i]);
@@ -1883,7 +1969,7 @@ static __init int mce_init_device(void)
1883 if (!mce_available(&boot_cpu_data)) 1969 if (!mce_available(&boot_cpu_data))
1884 return -EIO; 1970 return -EIO;
1885 1971
1886 alloc_cpumask_var(&mce_dev_initialized, GFP_KERNEL); 1972 zalloc_cpumask_var(&mce_dev_initialized, GFP_KERNEL);
1887 1973
1888 err = mce_init_banks(); 1974 err = mce_init_banks();
1889 if (err) 1975 if (err)
@@ -1915,7 +2001,7 @@ EXPORT_SYMBOL_GPL(nr_mce_banks); /* non-fatal.o */
1915/* This has to be run for each processor */ 2001/* This has to be run for each processor */
1916void mcheck_init(struct cpuinfo_x86 *c) 2002void mcheck_init(struct cpuinfo_x86 *c)
1917{ 2003{
1918 if (mce_disabled == 1) 2004 if (mce_disabled)
1919 return; 2005 return;
1920 2006
1921 switch (c->x86_vendor) { 2007 switch (c->x86_vendor) {
@@ -1945,10 +2031,9 @@ void mcheck_init(struct cpuinfo_x86 *c)
1945 2031
1946static int __init mcheck_enable(char *str) 2032static int __init mcheck_enable(char *str)
1947{ 2033{
1948 mce_disabled = -1; 2034 mce_p5_enabled = 1;
1949 return 1; 2035 return 1;
1950} 2036}
1951
1952__setup("mce", mcheck_enable); 2037__setup("mce", mcheck_enable);
1953 2038
1954#endif /* CONFIG_X86_OLD_MCE */ 2039#endif /* CONFIG_X86_OLD_MCE */
diff --git a/arch/x86/kernel/cpu/mcheck/mce.h b/arch/x86/kernel/cpu/mcheck/mce.h
deleted file mode 100644
index 84a552b458c..00000000000
--- a/arch/x86/kernel/cpu/mcheck/mce.h
+++ /dev/null
@@ -1,38 +0,0 @@
1#include <linux/init.h>
2#include <asm/mce.h>
3
4#ifdef CONFIG_X86_OLD_MCE
5void amd_mcheck_init(struct cpuinfo_x86 *c);
6void intel_p4_mcheck_init(struct cpuinfo_x86 *c);
7void intel_p6_mcheck_init(struct cpuinfo_x86 *c);
8#endif
9
10#ifdef CONFIG_X86_ANCIENT_MCE
11void intel_p5_mcheck_init(struct cpuinfo_x86 *c);
12void winchip_mcheck_init(struct cpuinfo_x86 *c);
13extern int mce_p5_enable;
14static inline int mce_p5_enabled(void) { return mce_p5_enable; }
15static inline void enable_p5_mce(void) { mce_p5_enable = 1; }
16#else
17static inline void intel_p5_mcheck_init(struct cpuinfo_x86 *c) {}
18static inline void winchip_mcheck_init(struct cpuinfo_x86 *c) {}
19static inline int mce_p5_enabled(void) { return 0; }
20static inline void enable_p5_mce(void) { }
21#endif
22
23/* Call the installed machine check handler for this CPU setup. */
24extern void (*machine_check_vector)(struct pt_regs *, long error_code);
25
26#ifdef CONFIG_X86_OLD_MCE
27
28extern int nr_mce_banks;
29
30void intel_set_thermal_handler(void);
31
32#else
33
34static inline void intel_set_thermal_handler(void) { }
35
36#endif
37
38void intel_init_thermal(struct cpuinfo_x86 *c);
diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c b/arch/x86/kernel/cpu/mcheck/mce_amd.c
index ddae21620bd..ddae21620bd 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c
diff --git a/arch/x86/kernel/cpu/mcheck/mce_intel.c b/arch/x86/kernel/cpu/mcheck/mce_intel.c
index 2b011d2d857..e1acec0f7a3 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_intel.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_intel.c
@@ -1,74 +1,226 @@
1/* 1/*
2 * Common code for Intel machine checks 2 * Intel specific MCE features.
3 * Copyright 2004 Zwane Mwaikambo <zwane@linuxpower.ca>
4 * Copyright (C) 2008, 2009 Intel Corporation
5 * Author: Andi Kleen
3 */ 6 */
4#include <linux/interrupt.h>
5#include <linux/kernel.h>
6#include <linux/types.h>
7#include <linux/init.h>
8#include <linux/smp.h>
9 7
10#include <asm/therm_throt.h> 8#include <linux/init.h>
11#include <asm/processor.h> 9#include <linux/interrupt.h>
12#include <asm/system.h> 10#include <linux/percpu.h>
13#include <asm/apic.h> 11#include <asm/apic.h>
12#include <asm/processor.h>
14#include <asm/msr.h> 13#include <asm/msr.h>
14#include <asm/mce.h>
15
16/*
17 * Support for Intel Correct Machine Check Interrupts. This allows
18 * the CPU to raise an interrupt when a corrected machine check happened.
19 * Normally we pick those up using a regular polling timer.
20 * Also supports reliable discovery of shared banks.
21 */
15 22
16#include "mce.h" 23static DEFINE_PER_CPU(mce_banks_t, mce_banks_owned);
17 24
18void intel_init_thermal(struct cpuinfo_x86 *c) 25/*
26 * cmci_discover_lock protects against parallel discovery attempts
27 * which could race against each other.
28 */
29static DEFINE_SPINLOCK(cmci_discover_lock);
30
31#define CMCI_THRESHOLD 1
32
33static int cmci_supported(int *banks)
19{ 34{
20 unsigned int cpu = smp_processor_id(); 35 u64 cap;
21 int tm2 = 0;
22 u32 l, h;
23 36
24 /* Thermal monitoring depends on ACPI and clock modulation*/ 37 if (mce_cmci_disabled || mce_ignore_ce)
25 if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC)) 38 return 0;
26 return;
27 39
28 /* 40 /*
29 * First check if its enabled already, in which case there might 41 * Vendor check is not strictly needed, but the initial
30 * be some SMM goo which handles it, so we can't even put a handler 42 * initialization is vendor keyed and this
31 * since it might be delivered via SMI already: 43 * makes sure none of the backdoors are entered otherwise.
32 */ 44 */
33 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 45 if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
34 h = apic_read(APIC_LVTTHMR); 46 return 0;
35 if ((l & MSR_IA32_MISC_ENABLE_TM1) && (h & APIC_DM_SMI)) { 47 if (!cpu_has_apic || lapic_get_maxlvt() < 6)
36 printk(KERN_DEBUG 48 return 0;
37 "CPU%d: Thermal monitoring handled by SMI\n", cpu); 49 rdmsrl(MSR_IA32_MCG_CAP, cap);
38 return; 50 *banks = min_t(unsigned, MAX_NR_BANKS, cap & 0xff);
51 return !!(cap & MCG_CMCI_P);
52}
53
54/*
55 * The interrupt handler. This is called on every event.
56 * Just call the poller directly to log any events.
57 * This could in theory increase the threshold under high load,
58 * but doesn't for now.
59 */
60static void intel_threshold_interrupt(void)
61{
62 machine_check_poll(MCP_TIMESTAMP, &__get_cpu_var(mce_banks_owned));
63 mce_notify_irq();
64}
65
66static void print_update(char *type, int *hdr, int num)
67{
68 if (*hdr == 0)
69 printk(KERN_INFO "CPU %d MCA banks", smp_processor_id());
70 *hdr = 1;
71 printk(KERN_CONT " %s:%d", type, num);
72}
73
74/*
75 * Enable CMCI (Corrected Machine Check Interrupt) for available MCE banks
76 * on this CPU. Use the algorithm recommended in the SDM to discover shared
77 * banks.
78 */
79static void cmci_discover(int banks, int boot)
80{
81 unsigned long *owned = (void *)&__get_cpu_var(mce_banks_owned);
82 unsigned long flags;
83 int hdr = 0;
84 int i;
85
86 spin_lock_irqsave(&cmci_discover_lock, flags);
87 for (i = 0; i < banks; i++) {
88 u64 val;
89
90 if (test_bit(i, owned))
91 continue;
92
93 rdmsrl(MSR_IA32_MC0_CTL2 + i, val);
94
95 /* Already owned by someone else? */
96 if (val & CMCI_EN) {
97 if (test_and_clear_bit(i, owned) || boot)
98 print_update("SHD", &hdr, i);
99 __clear_bit(i, __get_cpu_var(mce_poll_banks));
100 continue;
101 }
102
103 val |= CMCI_EN | CMCI_THRESHOLD;
104 wrmsrl(MSR_IA32_MC0_CTL2 + i, val);
105 rdmsrl(MSR_IA32_MC0_CTL2 + i, val);
106
107 /* Did the enable bit stick? -- the bank supports CMCI */
108 if (val & CMCI_EN) {
109 if (!test_and_set_bit(i, owned) || boot)
110 print_update("CMCI", &hdr, i);
111 __clear_bit(i, __get_cpu_var(mce_poll_banks));
112 } else {
113 WARN_ON(!test_bit(i, __get_cpu_var(mce_poll_banks)));
114 }
39 } 115 }
116 spin_unlock_irqrestore(&cmci_discover_lock, flags);
117 if (hdr)
118 printk(KERN_CONT "\n");
119}
120
121/*
122 * Just in case we missed an event during initialization check
123 * all the CMCI owned banks.
124 */
125void cmci_recheck(void)
126{
127 unsigned long flags;
128 int banks;
129
130 if (!mce_available(&current_cpu_data) || !cmci_supported(&banks))
131 return;
132 local_irq_save(flags);
133 machine_check_poll(MCP_TIMESTAMP, &__get_cpu_var(mce_banks_owned));
134 local_irq_restore(flags);
135}
40 136
41 if (cpu_has(c, X86_FEATURE_TM2) && (l & MSR_IA32_MISC_ENABLE_TM2)) 137/*
42 tm2 = 1; 138 * Disable CMCI on this CPU for all banks it owns when it goes down.
139 * This allows other CPUs to claim the banks on rediscovery.
140 */
141void cmci_clear(void)
142{
143 unsigned long flags;
144 int i;
145 int banks;
146 u64 val;
43 147
44 /* Check whether a vector already exists */ 148 if (!cmci_supported(&banks))
45 if (h & APIC_VECTOR_MASK) {
46 printk(KERN_DEBUG
47 "CPU%d: Thermal LVT vector (%#x) already installed\n",
48 cpu, (h & APIC_VECTOR_MASK));
49 return; 149 return;
150 spin_lock_irqsave(&cmci_discover_lock, flags);
151 for (i = 0; i < banks; i++) {
152 if (!test_bit(i, __get_cpu_var(mce_banks_owned)))
153 continue;
154 /* Disable CMCI */
155 rdmsrl(MSR_IA32_MC0_CTL2 + i, val);
156 val &= ~(CMCI_EN|CMCI_THRESHOLD_MASK);
157 wrmsrl(MSR_IA32_MC0_CTL2 + i, val);
158 __clear_bit(i, __get_cpu_var(mce_banks_owned));
50 } 159 }
160 spin_unlock_irqrestore(&cmci_discover_lock, flags);
161}
162
163/*
164 * After a CPU went down cycle through all the others and rediscover
165 * Must run in process context.
166 */
167void cmci_rediscover(int dying)
168{
169 int banks;
170 int cpu;
171 cpumask_var_t old;
172
173 if (!cmci_supported(&banks))
174 return;
175 if (!alloc_cpumask_var(&old, GFP_KERNEL))
176 return;
177 cpumask_copy(old, &current->cpus_allowed);
51 178
52 /* We'll mask the thermal vector in the lapic till we're ready: */ 179 for_each_online_cpu(cpu) {
53 h = THERMAL_APIC_VECTOR | APIC_DM_FIXED | APIC_LVT_MASKED; 180 if (cpu == dying)
54 apic_write(APIC_LVTTHMR, h); 181 continue;
182 if (set_cpus_allowed_ptr(current, cpumask_of(cpu)))
183 continue;
184 /* Recheck banks in case CPUs don't all have the same */
185 if (cmci_supported(&banks))
186 cmci_discover(banks, 0);
187 }
55 188
56 rdmsr(MSR_IA32_THERM_INTERRUPT, l, h); 189 set_cpus_allowed_ptr(current, old);
57 wrmsr(MSR_IA32_THERM_INTERRUPT, 190 free_cpumask_var(old);
58 l | (THERM_INT_LOW_ENABLE | THERM_INT_HIGH_ENABLE), h); 191}
59 192
60 intel_set_thermal_handler(); 193/*
194 * Reenable CMCI on this CPU in case a CPU down failed.
195 */
196void cmci_reenable(void)
197{
198 int banks;
199 if (cmci_supported(&banks))
200 cmci_discover(banks, 0);
201}
61 202
62 rdmsr(MSR_IA32_MISC_ENABLE, l, h); 203static void intel_init_cmci(void)
63 wrmsr(MSR_IA32_MISC_ENABLE, l | MSR_IA32_MISC_ENABLE_TM1, h); 204{
205 int banks;
64 206
65 /* Unmask the thermal vector: */ 207 if (!cmci_supported(&banks))
66 l = apic_read(APIC_LVTTHMR); 208 return;
67 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED);
68 209
69 printk(KERN_INFO "CPU%d: Thermal monitoring enabled (%s)\n", 210 mce_threshold_vector = intel_threshold_interrupt;
70 cpu, tm2 ? "TM2" : "TM1"); 211 cmci_discover(banks, 1);
212 /*
213 * For CPU #0 this runs with still disabled APIC, but that's
214 * ok because only the vector is set up. We still do another
215 * check for the banks later for CPU #0 just to make sure
216 * to not miss any events.
217 */
218 apic_write(APIC_LVTCMCI, THRESHOLD_APIC_VECTOR|APIC_DM_FIXED);
219 cmci_recheck();
220}
71 221
72 /* enable thermal throttle processing */ 222void mce_intel_feature_init(struct cpuinfo_x86 *c)
73 atomic_set(&therm_throt_en, 1); 223{
224 intel_init_thermal(c);
225 intel_init_cmci();
74} 226}
diff --git a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
deleted file mode 100644
index f2ef6952c40..00000000000
--- a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
+++ /dev/null
@@ -1,248 +0,0 @@
1/*
2 * Intel specific MCE features.
3 * Copyright 2004 Zwane Mwaikambo <zwane@linuxpower.ca>
4 * Copyright (C) 2008, 2009 Intel Corporation
5 * Author: Andi Kleen
6 */
7
8#include <linux/init.h>
9#include <linux/interrupt.h>
10#include <linux/percpu.h>
11#include <asm/processor.h>
12#include <asm/apic.h>
13#include <asm/msr.h>
14#include <asm/mce.h>
15#include <asm/hw_irq.h>
16#include <asm/idle.h>
17#include <asm/therm_throt.h>
18
19#include "mce.h"
20
21asmlinkage void smp_thermal_interrupt(void)
22{
23 __u64 msr_val;
24
25 ack_APIC_irq();
26
27 exit_idle();
28 irq_enter();
29
30 rdmsrl(MSR_IA32_THERM_STATUS, msr_val);
31 if (therm_throt_process(msr_val & THERM_STATUS_PROCHOT))
32 mce_log_therm_throt_event(msr_val);
33
34 inc_irq_stat(irq_thermal_count);
35 irq_exit();
36}
37
38/*
39 * Support for Intel Correct Machine Check Interrupts. This allows
40 * the CPU to raise an interrupt when a corrected machine check happened.
41 * Normally we pick those up using a regular polling timer.
42 * Also supports reliable discovery of shared banks.
43 */
44
45static DEFINE_PER_CPU(mce_banks_t, mce_banks_owned);
46
47/*
48 * cmci_discover_lock protects against parallel discovery attempts
49 * which could race against each other.
50 */
51static DEFINE_SPINLOCK(cmci_discover_lock);
52
53#define CMCI_THRESHOLD 1
54
55static int cmci_supported(int *banks)
56{
57 u64 cap;
58
59 if (mce_cmci_disabled || mce_ignore_ce)
60 return 0;
61
62 /*
63 * Vendor check is not strictly needed, but the initial
64 * initialization is vendor keyed and this
65 * makes sure none of the backdoors are entered otherwise.
66 */
67 if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
68 return 0;
69 if (!cpu_has_apic || lapic_get_maxlvt() < 6)
70 return 0;
71 rdmsrl(MSR_IA32_MCG_CAP, cap);
72 *banks = min_t(unsigned, MAX_NR_BANKS, cap & 0xff);
73 return !!(cap & MCG_CMCI_P);
74}
75
76/*
77 * The interrupt handler. This is called on every event.
78 * Just call the poller directly to log any events.
79 * This could in theory increase the threshold under high load,
80 * but doesn't for now.
81 */
82static void intel_threshold_interrupt(void)
83{
84 machine_check_poll(MCP_TIMESTAMP, &__get_cpu_var(mce_banks_owned));
85 mce_notify_irq();
86}
87
88static void print_update(char *type, int *hdr, int num)
89{
90 if (*hdr == 0)
91 printk(KERN_INFO "CPU %d MCA banks", smp_processor_id());
92 *hdr = 1;
93 printk(KERN_CONT " %s:%d", type, num);
94}
95
96/*
97 * Enable CMCI (Corrected Machine Check Interrupt) for available MCE banks
98 * on this CPU. Use the algorithm recommended in the SDM to discover shared
99 * banks.
100 */
101static void cmci_discover(int banks, int boot)
102{
103 unsigned long *owned = (void *)&__get_cpu_var(mce_banks_owned);
104 unsigned long flags;
105 int hdr = 0;
106 int i;
107
108 spin_lock_irqsave(&cmci_discover_lock, flags);
109 for (i = 0; i < banks; i++) {
110 u64 val;
111
112 if (test_bit(i, owned))
113 continue;
114
115 rdmsrl(MSR_IA32_MC0_CTL2 + i, val);
116
117 /* Already owned by someone else? */
118 if (val & CMCI_EN) {
119 if (test_and_clear_bit(i, owned) || boot)
120 print_update("SHD", &hdr, i);
121 __clear_bit(i, __get_cpu_var(mce_poll_banks));
122 continue;
123 }
124
125 val |= CMCI_EN | CMCI_THRESHOLD;
126 wrmsrl(MSR_IA32_MC0_CTL2 + i, val);
127 rdmsrl(MSR_IA32_MC0_CTL2 + i, val);
128
129 /* Did the enable bit stick? -- the bank supports CMCI */
130 if (val & CMCI_EN) {
131 if (!test_and_set_bit(i, owned) || boot)
132 print_update("CMCI", &hdr, i);
133 __clear_bit(i, __get_cpu_var(mce_poll_banks));
134 } else {
135 WARN_ON(!test_bit(i, __get_cpu_var(mce_poll_banks)));
136 }
137 }
138 spin_unlock_irqrestore(&cmci_discover_lock, flags);
139 if (hdr)
140 printk(KERN_CONT "\n");
141}
142
143/*
144 * Just in case we missed an event during initialization check
145 * all the CMCI owned banks.
146 */
147void cmci_recheck(void)
148{
149 unsigned long flags;
150 int banks;
151
152 if (!mce_available(&current_cpu_data) || !cmci_supported(&banks))
153 return;
154 local_irq_save(flags);
155 machine_check_poll(MCP_TIMESTAMP, &__get_cpu_var(mce_banks_owned));
156 local_irq_restore(flags);
157}
158
159/*
160 * Disable CMCI on this CPU for all banks it owns when it goes down.
161 * This allows other CPUs to claim the banks on rediscovery.
162 */
163void cmci_clear(void)
164{
165 unsigned long flags;
166 int i;
167 int banks;
168 u64 val;
169
170 if (!cmci_supported(&banks))
171 return;
172 spin_lock_irqsave(&cmci_discover_lock, flags);
173 for (i = 0; i < banks; i++) {
174 if (!test_bit(i, __get_cpu_var(mce_banks_owned)))
175 continue;
176 /* Disable CMCI */
177 rdmsrl(MSR_IA32_MC0_CTL2 + i, val);
178 val &= ~(CMCI_EN|CMCI_THRESHOLD_MASK);
179 wrmsrl(MSR_IA32_MC0_CTL2 + i, val);
180 __clear_bit(i, __get_cpu_var(mce_banks_owned));
181 }
182 spin_unlock_irqrestore(&cmci_discover_lock, flags);
183}
184
185/*
186 * After a CPU went down cycle through all the others and rediscover
187 * Must run in process context.
188 */
189void cmci_rediscover(int dying)
190{
191 int banks;
192 int cpu;
193 cpumask_var_t old;
194
195 if (!cmci_supported(&banks))
196 return;
197 if (!alloc_cpumask_var(&old, GFP_KERNEL))
198 return;
199 cpumask_copy(old, &current->cpus_allowed);
200
201 for_each_online_cpu(cpu) {
202 if (cpu == dying)
203 continue;
204 if (set_cpus_allowed_ptr(current, cpumask_of(cpu)))
205 continue;
206 /* Recheck banks in case CPUs don't all have the same */
207 if (cmci_supported(&banks))
208 cmci_discover(banks, 0);
209 }
210
211 set_cpus_allowed_ptr(current, old);
212 free_cpumask_var(old);
213}
214
215/*
216 * Reenable CMCI on this CPU in case a CPU down failed.
217 */
218void cmci_reenable(void)
219{
220 int banks;
221 if (cmci_supported(&banks))
222 cmci_discover(banks, 0);
223}
224
225static void intel_init_cmci(void)
226{
227 int banks;
228
229 if (!cmci_supported(&banks))
230 return;
231
232 mce_threshold_vector = intel_threshold_interrupt;
233 cmci_discover(banks, 1);
234 /*
235 * For CPU #0 this runs with still disabled APIC, but that's
236 * ok because only the vector is set up. We still do another
237 * check for the banks later for CPU #0 just to make sure
238 * to not miss any events.
239 */
240 apic_write(APIC_LVTCMCI, THRESHOLD_APIC_VECTOR|APIC_DM_FIXED);
241 cmci_recheck();
242}
243
244void mce_intel_feature_init(struct cpuinfo_x86 *c)
245{
246 intel_init_thermal(c);
247 intel_init_cmci();
248}
diff --git a/arch/x86/kernel/cpu/mcheck/non-fatal.c b/arch/x86/kernel/cpu/mcheck/non-fatal.c
index 70b710420f7..f5f2d6f71fb 100644
--- a/arch/x86/kernel/cpu/mcheck/non-fatal.c
+++ b/arch/x86/kernel/cpu/mcheck/non-fatal.c
@@ -17,10 +17,9 @@
17 17
18#include <asm/processor.h> 18#include <asm/processor.h>
19#include <asm/system.h> 19#include <asm/system.h>
20#include <asm/mce.h>
20#include <asm/msr.h> 21#include <asm/msr.h>
21 22
22#include "mce.h"
23
24static int firstbank; 23static int firstbank;
25 24
26#define MCE_RATE (15*HZ) /* timer rate is 15s */ 25#define MCE_RATE (15*HZ) /* timer rate is 15s */
diff --git a/arch/x86/kernel/cpu/mcheck/p4.c b/arch/x86/kernel/cpu/mcheck/p4.c
index 82cee108a2d..4482aea9aa2 100644
--- a/arch/x86/kernel/cpu/mcheck/p4.c
+++ b/arch/x86/kernel/cpu/mcheck/p4.c
@@ -1,21 +1,15 @@
1/* 1/*
2 * P4 specific Machine Check Exception Reporting 2 * P4 specific Machine Check Exception Reporting
3 */ 3 */
4
5#include <linux/interrupt.h>
6#include <linux/kernel.h> 4#include <linux/kernel.h>
7#include <linux/types.h> 5#include <linux/types.h>
8#include <linux/init.h> 6#include <linux/init.h>
9#include <linux/smp.h> 7#include <linux/smp.h>
10 8
11#include <asm/therm_throt.h>
12#include <asm/processor.h> 9#include <asm/processor.h>
13#include <asm/system.h> 10#include <asm/mce.h>
14#include <asm/apic.h>
15#include <asm/msr.h> 11#include <asm/msr.h>
16 12
17#include "mce.h"
18
19/* as supported by the P4/Xeon family */ 13/* as supported by the P4/Xeon family */
20struct intel_mce_extended_msrs { 14struct intel_mce_extended_msrs {
21 u32 eax; 15 u32 eax;
@@ -33,46 +27,6 @@ struct intel_mce_extended_msrs {
33 27
34static int mce_num_extended_msrs; 28static int mce_num_extended_msrs;
35 29
36
37#ifdef CONFIG_X86_MCE_P4THERMAL
38
39static void unexpected_thermal_interrupt(struct pt_regs *regs)
40{
41 printk(KERN_ERR "CPU%d: Unexpected LVT TMR interrupt!\n",
42 smp_processor_id());
43 add_taint(TAINT_MACHINE_CHECK);
44}
45
46/* P4/Xeon Thermal transition interrupt handler: */
47static void intel_thermal_interrupt(struct pt_regs *regs)
48{
49 __u64 msr_val;
50
51 ack_APIC_irq();
52
53 rdmsrl(MSR_IA32_THERM_STATUS, msr_val);
54 therm_throt_process(msr_val & THERM_STATUS_PROCHOT);
55}
56
57/* Thermal interrupt handler for this CPU setup: */
58static void (*vendor_thermal_interrupt)(struct pt_regs *regs) =
59 unexpected_thermal_interrupt;
60
61void smp_thermal_interrupt(struct pt_regs *regs)
62{
63 irq_enter();
64 vendor_thermal_interrupt(regs);
65 __get_cpu_var(irq_stat).irq_thermal_count++;
66 irq_exit();
67}
68
69void intel_set_thermal_handler(void)
70{
71 vendor_thermal_interrupt = intel_thermal_interrupt;
72}
73
74#endif /* CONFIG_X86_MCE_P4THERMAL */
75
76/* P4/Xeon Extended MCE MSR retrieval, return 0 if unsupported */ 30/* P4/Xeon Extended MCE MSR retrieval, return 0 if unsupported */
77static void intel_get_extended_msrs(struct intel_mce_extended_msrs *r) 31static void intel_get_extended_msrs(struct intel_mce_extended_msrs *r)
78{ 32{
diff --git a/arch/x86/kernel/cpu/mcheck/p5.c b/arch/x86/kernel/cpu/mcheck/p5.c
index 015f481ab1b..5c0e6533d9b 100644
--- a/arch/x86/kernel/cpu/mcheck/p5.c
+++ b/arch/x86/kernel/cpu/mcheck/p5.c
@@ -10,12 +10,11 @@
10 10
11#include <asm/processor.h> 11#include <asm/processor.h>
12#include <asm/system.h> 12#include <asm/system.h>
13#include <asm/mce.h>
13#include <asm/msr.h> 14#include <asm/msr.h>
14 15
15#include "mce.h"
16
17/* By default disabled */ 16/* By default disabled */
18int mce_p5_enable; 17int mce_p5_enabled __read_mostly;
19 18
20/* Machine check handler for Pentium class Intel CPUs: */ 19/* Machine check handler for Pentium class Intel CPUs: */
21static void pentium_machine_check(struct pt_regs *regs, long error_code) 20static void pentium_machine_check(struct pt_regs *regs, long error_code)
@@ -43,15 +42,13 @@ void intel_p5_mcheck_init(struct cpuinfo_x86 *c)
43{ 42{
44 u32 l, h; 43 u32 l, h;
45 44
46 /* Check for MCE support: */ 45 /* Default P5 to off as its often misconnected: */
47 if (!cpu_has(c, X86_FEATURE_MCE)) 46 if (!mce_p5_enabled)
48 return; 47 return;
49 48
50#ifdef CONFIG_X86_OLD_MCE 49 /* Check for MCE support: */
51 /* Default P5 to off as its often misconnected: */ 50 if (!cpu_has(c, X86_FEATURE_MCE))
52 if (mce_disabled != -1)
53 return; 51 return;
54#endif
55 52
56 machine_check_vector = pentium_machine_check; 53 machine_check_vector = pentium_machine_check;
57 /* Make sure the vector pointer is visible before we enable MCEs: */ 54 /* Make sure the vector pointer is visible before we enable MCEs: */
diff --git a/arch/x86/kernel/cpu/mcheck/p6.c b/arch/x86/kernel/cpu/mcheck/p6.c
index 43c24e66745..01e4f817818 100644
--- a/arch/x86/kernel/cpu/mcheck/p6.c
+++ b/arch/x86/kernel/cpu/mcheck/p6.c
@@ -10,10 +10,9 @@
10 10
11#include <asm/processor.h> 11#include <asm/processor.h>
12#include <asm/system.h> 12#include <asm/system.h>
13#include <asm/mce.h>
13#include <asm/msr.h> 14#include <asm/msr.h>
14 15
15#include "mce.h"
16
17/* Machine Check Handler For PII/PIII */ 16/* Machine Check Handler For PII/PIII */
18static void intel_machine_check(struct pt_regs *regs, long error_code) 17static void intel_machine_check(struct pt_regs *regs, long error_code)
19{ 18{
diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c
index 7b1ae2e20ba..bff8dd191dd 100644
--- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
+++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@ -13,13 +13,23 @@
13 * Credits: Adapted from Zwane Mwaikambo's original code in mce_intel.c. 13 * Credits: Adapted from Zwane Mwaikambo's original code in mce_intel.c.
14 * Inspired by Ross Biro's and Al Borchers' counter code. 14 * Inspired by Ross Biro's and Al Borchers' counter code.
15 */ 15 */
16#include <linux/interrupt.h>
16#include <linux/notifier.h> 17#include <linux/notifier.h>
17#include <linux/jiffies.h> 18#include <linux/jiffies.h>
19#include <linux/kernel.h>
18#include <linux/percpu.h> 20#include <linux/percpu.h>
19#include <linux/sysdev.h> 21#include <linux/sysdev.h>
22#include <linux/types.h>
23#include <linux/init.h>
24#include <linux/smp.h>
20#include <linux/cpu.h> 25#include <linux/cpu.h>
21 26
22#include <asm/therm_throt.h> 27#include <asm/processor.h>
28#include <asm/system.h>
29#include <asm/apic.h>
30#include <asm/idle.h>
31#include <asm/mce.h>
32#include <asm/msr.h>
23 33
24/* How long to wait between reporting thermal events */ 34/* How long to wait between reporting thermal events */
25#define CHECK_INTERVAL (300 * HZ) 35#define CHECK_INTERVAL (300 * HZ)
@@ -27,7 +37,7 @@
27static DEFINE_PER_CPU(__u64, next_check) = INITIAL_JIFFIES; 37static DEFINE_PER_CPU(__u64, next_check) = INITIAL_JIFFIES;
28static DEFINE_PER_CPU(unsigned long, thermal_throttle_count); 38static DEFINE_PER_CPU(unsigned long, thermal_throttle_count);
29 39
30atomic_t therm_throt_en = ATOMIC_INIT(0); 40static atomic_t therm_throt_en = ATOMIC_INIT(0);
31 41
32#ifdef CONFIG_SYSFS 42#ifdef CONFIG_SYSFS
33#define define_therm_throt_sysdev_one_ro(_name) \ 43#define define_therm_throt_sysdev_one_ro(_name) \
@@ -82,7 +92,7 @@ static struct attribute_group thermal_throttle_attr_group = {
82 * 1 : Event should be logged further, and a message has been 92 * 1 : Event should be logged further, and a message has been
83 * printed to the syslog. 93 * printed to the syslog.
84 */ 94 */
85int therm_throt_process(int curr) 95static int therm_throt_process(int curr)
86{ 96{
87 unsigned int cpu = smp_processor_id(); 97 unsigned int cpu = smp_processor_id();
88 __u64 tmp_jiffs = get_jiffies_64(); 98 __u64 tmp_jiffs = get_jiffies_64();
@@ -186,6 +196,94 @@ static __init int thermal_throttle_init_device(void)
186 196
187 return 0; 197 return 0;
188} 198}
189
190device_initcall(thermal_throttle_init_device); 199device_initcall(thermal_throttle_init_device);
200
191#endif /* CONFIG_SYSFS */ 201#endif /* CONFIG_SYSFS */
202
203/* Thermal transition interrupt handler */
204static void intel_thermal_interrupt(void)
205{
206 __u64 msr_val;
207
208 rdmsrl(MSR_IA32_THERM_STATUS, msr_val);
209 if (therm_throt_process(msr_val & THERM_STATUS_PROCHOT))
210 mce_log_therm_throt_event(msr_val);
211}
212
213static void unexpected_thermal_interrupt(void)
214{
215 printk(KERN_ERR "CPU%d: Unexpected LVT TMR interrupt!\n",
216 smp_processor_id());
217 add_taint(TAINT_MACHINE_CHECK);
218}
219
220static void (*smp_thermal_vector)(void) = unexpected_thermal_interrupt;
221
222asmlinkage void smp_thermal_interrupt(struct pt_regs *regs)
223{
224 exit_idle();
225 irq_enter();
226 inc_irq_stat(irq_thermal_count);
227 smp_thermal_vector();
228 irq_exit();
229 /* Ack only at the end to avoid potential reentry */
230 ack_APIC_irq();
231}
232
233void intel_init_thermal(struct cpuinfo_x86 *c)
234{
235 unsigned int cpu = smp_processor_id();
236 int tm2 = 0;
237 u32 l, h;
238
239 /* Thermal monitoring depends on ACPI and clock modulation*/
240 if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC))
241 return;
242
243 /*
244 * First check if its enabled already, in which case there might
245 * be some SMM goo which handles it, so we can't even put a handler
246 * since it might be delivered via SMI already:
247 */
248 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
249 h = apic_read(APIC_LVTTHMR);
250 if ((l & MSR_IA32_MISC_ENABLE_TM1) && (h & APIC_DM_SMI)) {
251 printk(KERN_DEBUG
252 "CPU%d: Thermal monitoring handled by SMI\n", cpu);
253 return;
254 }
255
256 if (cpu_has(c, X86_FEATURE_TM2) && (l & MSR_IA32_MISC_ENABLE_TM2))
257 tm2 = 1;
258
259 /* Check whether a vector already exists */
260 if (h & APIC_VECTOR_MASK) {
261 printk(KERN_DEBUG
262 "CPU%d: Thermal LVT vector (%#x) already installed\n",
263 cpu, (h & APIC_VECTOR_MASK));
264 return;
265 }
266
267 /* We'll mask the thermal vector in the lapic till we're ready: */
268 h = THERMAL_APIC_VECTOR | APIC_DM_FIXED | APIC_LVT_MASKED;
269 apic_write(APIC_LVTTHMR, h);
270
271 rdmsr(MSR_IA32_THERM_INTERRUPT, l, h);
272 wrmsr(MSR_IA32_THERM_INTERRUPT,
273 l | (THERM_INT_LOW_ENABLE | THERM_INT_HIGH_ENABLE), h);
274
275 smp_thermal_vector = intel_thermal_interrupt;
276
277 rdmsr(MSR_IA32_MISC_ENABLE, l, h);
278 wrmsr(MSR_IA32_MISC_ENABLE, l | MSR_IA32_MISC_ENABLE_TM1, h);
279
280 /* Unmask the thermal vector: */
281 l = apic_read(APIC_LVTTHMR);
282 apic_write(APIC_LVTTHMR, l & ~APIC_LVT_MASKED);
283
284 printk(KERN_INFO "CPU%d: Thermal monitoring enabled (%s)\n",
285 cpu, tm2 ? "TM2" : "TM1");
286
287 /* enable thermal throttle processing */
288 atomic_set(&therm_throt_en, 1);
289}
diff --git a/arch/x86/kernel/cpu/mcheck/winchip.c b/arch/x86/kernel/cpu/mcheck/winchip.c
index 81b02487090..54060f56597 100644
--- a/arch/x86/kernel/cpu/mcheck/winchip.c
+++ b/arch/x86/kernel/cpu/mcheck/winchip.c
@@ -9,10 +9,9 @@
9 9
10#include <asm/processor.h> 10#include <asm/processor.h>
11#include <asm/system.h> 11#include <asm/system.h>
12#include <asm/mce.h>
12#include <asm/msr.h> 13#include <asm/msr.h>
13 14
14#include "mce.h"
15
16/* Machine check handler for WinChip C6: */ 15/* Machine check handler for WinChip C6: */
17static void winchip_machine_check(struct pt_regs *regs, long error_code) 16static void winchip_machine_check(struct pt_regs *regs, long error_code)
18{ 17{
diff --git a/arch/x86/kernel/cpu/perf_counter.c b/arch/x86/kernel/cpu/perf_counter.c
index 275bc142cd5..76dfef23f78 100644
--- a/arch/x86/kernel/cpu/perf_counter.c
+++ b/arch/x86/kernel/cpu/perf_counter.c
@@ -19,6 +19,7 @@
19#include <linux/kdebug.h> 19#include <linux/kdebug.h>
20#include <linux/sched.h> 20#include <linux/sched.h>
21#include <linux/uaccess.h> 21#include <linux/uaccess.h>
22#include <linux/highmem.h>
22 23
23#include <asm/apic.h> 24#include <asm/apic.h>
24#include <asm/stacktrace.h> 25#include <asm/stacktrace.h>
@@ -389,23 +390,23 @@ static u64 intel_pmu_raw_event(u64 event)
389 return event & CORE_EVNTSEL_MASK; 390 return event & CORE_EVNTSEL_MASK;
390} 391}
391 392
392static const u64 amd_0f_hw_cache_event_ids 393static const u64 amd_hw_cache_event_ids
393 [PERF_COUNT_HW_CACHE_MAX] 394 [PERF_COUNT_HW_CACHE_MAX]
394 [PERF_COUNT_HW_CACHE_OP_MAX] 395 [PERF_COUNT_HW_CACHE_OP_MAX]
395 [PERF_COUNT_HW_CACHE_RESULT_MAX] = 396 [PERF_COUNT_HW_CACHE_RESULT_MAX] =
396{ 397{
397 [ C(L1D) ] = { 398 [ C(L1D) ] = {
398 [ C(OP_READ) ] = { 399 [ C(OP_READ) ] = {
399 [ C(RESULT_ACCESS) ] = 0, 400 [ C(RESULT_ACCESS) ] = 0x0040, /* Data Cache Accesses */
400 [ C(RESULT_MISS) ] = 0, 401 [ C(RESULT_MISS) ] = 0x0041, /* Data Cache Misses */
401 }, 402 },
402 [ C(OP_WRITE) ] = { 403 [ C(OP_WRITE) ] = {
403 [ C(RESULT_ACCESS) ] = 0, 404 [ C(RESULT_ACCESS) ] = 0x0042, /* Data Cache Refills from L2 */
404 [ C(RESULT_MISS) ] = 0, 405 [ C(RESULT_MISS) ] = 0,
405 }, 406 },
406 [ C(OP_PREFETCH) ] = { 407 [ C(OP_PREFETCH) ] = {
407 [ C(RESULT_ACCESS) ] = 0, 408 [ C(RESULT_ACCESS) ] = 0x0267, /* Data Prefetcher :attempts */
408 [ C(RESULT_MISS) ] = 0, 409 [ C(RESULT_MISS) ] = 0x0167, /* Data Prefetcher :cancelled */
409 }, 410 },
410 }, 411 },
411 [ C(L1I ) ] = { 412 [ C(L1I ) ] = {
@@ -418,17 +419,17 @@ static const u64 amd_0f_hw_cache_event_ids
418 [ C(RESULT_MISS) ] = -1, 419 [ C(RESULT_MISS) ] = -1,
419 }, 420 },
420 [ C(OP_PREFETCH) ] = { 421 [ C(OP_PREFETCH) ] = {
421 [ C(RESULT_ACCESS) ] = 0, 422 [ C(RESULT_ACCESS) ] = 0x014B, /* Prefetch Instructions :Load */
422 [ C(RESULT_MISS) ] = 0, 423 [ C(RESULT_MISS) ] = 0,
423 }, 424 },
424 }, 425 },
425 [ C(LL ) ] = { 426 [ C(LL ) ] = {
426 [ C(OP_READ) ] = { 427 [ C(OP_READ) ] = {
427 [ C(RESULT_ACCESS) ] = 0, 428 [ C(RESULT_ACCESS) ] = 0x037D, /* Requests to L2 Cache :IC+DC */
428 [ C(RESULT_MISS) ] = 0, 429 [ C(RESULT_MISS) ] = 0x037E, /* L2 Cache Misses : IC+DC */
429 }, 430 },
430 [ C(OP_WRITE) ] = { 431 [ C(OP_WRITE) ] = {
431 [ C(RESULT_ACCESS) ] = 0, 432 [ C(RESULT_ACCESS) ] = 0x017F, /* L2 Fill/Writeback */
432 [ C(RESULT_MISS) ] = 0, 433 [ C(RESULT_MISS) ] = 0,
433 }, 434 },
434 [ C(OP_PREFETCH) ] = { 435 [ C(OP_PREFETCH) ] = {
@@ -438,8 +439,8 @@ static const u64 amd_0f_hw_cache_event_ids
438 }, 439 },
439 [ C(DTLB) ] = { 440 [ C(DTLB) ] = {
440 [ C(OP_READ) ] = { 441 [ C(OP_READ) ] = {
441 [ C(RESULT_ACCESS) ] = 0, 442 [ C(RESULT_ACCESS) ] = 0x0040, /* Data Cache Accesses */
442 [ C(RESULT_MISS) ] = 0, 443 [ C(RESULT_MISS) ] = 0x0046, /* L1 DTLB and L2 DLTB Miss */
443 }, 444 },
444 [ C(OP_WRITE) ] = { 445 [ C(OP_WRITE) ] = {
445 [ C(RESULT_ACCESS) ] = 0, 446 [ C(RESULT_ACCESS) ] = 0,
@@ -1223,6 +1224,8 @@ again:
1223 if (!intel_pmu_save_and_restart(counter)) 1224 if (!intel_pmu_save_and_restart(counter))
1224 continue; 1225 continue;
1225 1226
1227 data.period = counter->hw.last_period;
1228
1226 if (perf_counter_overflow(counter, 1, &data)) 1229 if (perf_counter_overflow(counter, 1, &data))
1227 intel_pmu_disable_counter(&counter->hw, bit); 1230 intel_pmu_disable_counter(&counter->hw, bit);
1228 } 1231 }
@@ -1459,18 +1462,16 @@ static int intel_pmu_init(void)
1459 1462
1460static int amd_pmu_init(void) 1463static int amd_pmu_init(void)
1461{ 1464{
1465 /* Performance-monitoring supported from K7 and later: */
1466 if (boot_cpu_data.x86 < 6)
1467 return -ENODEV;
1468
1462 x86_pmu = amd_pmu; 1469 x86_pmu = amd_pmu;
1463 1470
1464 switch (boot_cpu_data.x86) { 1471 /* Events are common for all AMDs */
1465 case 0x0f: 1472 memcpy(hw_cache_event_ids, amd_hw_cache_event_ids,
1466 case 0x10: 1473 sizeof(hw_cache_event_ids));
1467 case 0x11:
1468 memcpy(hw_cache_event_ids, amd_0f_hw_cache_event_ids,
1469 sizeof(hw_cache_event_ids));
1470 1474
1471 pr_cont("AMD Family 0f/10/11 events, ");
1472 break;
1473 }
1474 return 0; 1475 return 0;
1475} 1476}
1476 1477
@@ -1554,9 +1555,9 @@ const struct pmu *hw_perf_counter_init(struct perf_counter *counter)
1554 */ 1555 */
1555 1556
1556static inline 1557static inline
1557void callchain_store(struct perf_callchain_entry *entry, unsigned long ip) 1558void callchain_store(struct perf_callchain_entry *entry, u64 ip)
1558{ 1559{
1559 if (entry->nr < MAX_STACK_DEPTH) 1560 if (entry->nr < PERF_MAX_STACK_DEPTH)
1560 entry->ip[entry->nr++] = ip; 1561 entry->ip[entry->nr++] = ip;
1561} 1562}
1562 1563
@@ -1577,8 +1578,8 @@ static void backtrace_warning(void *data, char *msg)
1577 1578
1578static int backtrace_stack(void *data, char *name) 1579static int backtrace_stack(void *data, char *name)
1579{ 1580{
1580 /* Don't bother with IRQ stacks for now */ 1581 /* Process all stacks: */
1581 return -1; 1582 return 0;
1582} 1583}
1583 1584
1584static void backtrace_address(void *data, unsigned long addr, int reliable) 1585static void backtrace_address(void *data, unsigned long addr, int reliable)
@@ -1596,47 +1597,59 @@ static const struct stacktrace_ops backtrace_ops = {
1596 .address = backtrace_address, 1597 .address = backtrace_address,
1597}; 1598};
1598 1599
1600#include "../dumpstack.h"
1601
1599static void 1602static void
1600perf_callchain_kernel(struct pt_regs *regs, struct perf_callchain_entry *entry) 1603perf_callchain_kernel(struct pt_regs *regs, struct perf_callchain_entry *entry)
1601{ 1604{
1602 unsigned long bp; 1605 callchain_store(entry, PERF_CONTEXT_KERNEL);
1603 char *stack; 1606 callchain_store(entry, regs->ip);
1604 int nr = entry->nr;
1605 1607
1606 callchain_store(entry, instruction_pointer(regs)); 1608 dump_trace(NULL, regs, NULL, 0, &backtrace_ops, entry);
1609}
1607 1610
1608 stack = ((char *)regs + sizeof(struct pt_regs)); 1611/*
1609#ifdef CONFIG_FRAME_POINTER 1612 * best effort, GUP based copy_from_user() that assumes IRQ or NMI context
1610 bp = frame_pointer(regs); 1613 */
1611#else 1614static unsigned long
1612 bp = 0; 1615copy_from_user_nmi(void *to, const void __user *from, unsigned long n)
1613#endif 1616{
1617 unsigned long offset, addr = (unsigned long)from;
1618 int type = in_nmi() ? KM_NMI : KM_IRQ0;
1619 unsigned long size, len = 0;
1620 struct page *page;
1621 void *map;
1622 int ret;
1614 1623
1615 dump_trace(NULL, regs, (void *)stack, bp, &backtrace_ops, entry); 1624 do {
1625 ret = __get_user_pages_fast(addr, 1, 0, &page);
1626 if (!ret)
1627 break;
1616 1628
1617 entry->kernel = entry->nr - nr; 1629 offset = addr & (PAGE_SIZE - 1);
1618} 1630 size = min(PAGE_SIZE - offset, n - len);
1619 1631
1632 map = kmap_atomic(page, type);
1633 memcpy(to, map+offset, size);
1634 kunmap_atomic(map, type);
1635 put_page(page);
1620 1636
1621struct stack_frame { 1637 len += size;
1622 const void __user *next_fp; 1638 to += size;
1623 unsigned long return_address; 1639 addr += size;
1624}; 1640
1641 } while (len < n);
1642
1643 return len;
1644}
1625 1645
1626static int copy_stack_frame(const void __user *fp, struct stack_frame *frame) 1646static int copy_stack_frame(const void __user *fp, struct stack_frame *frame)
1627{ 1647{
1628 int ret; 1648 unsigned long bytes;
1629 1649
1630 if (!access_ok(VERIFY_READ, fp, sizeof(*frame))) 1650 bytes = copy_from_user_nmi(frame, fp, sizeof(*frame));
1631 return 0;
1632 1651
1633 ret = 1; 1652 return bytes == sizeof(*frame);
1634 pagefault_disable();
1635 if (__copy_from_user_inatomic(frame, fp, sizeof(*frame)))
1636 ret = 0;
1637 pagefault_enable();
1638
1639 return ret;
1640} 1653}
1641 1654
1642static void 1655static void
@@ -1644,28 +1657,28 @@ perf_callchain_user(struct pt_regs *regs, struct perf_callchain_entry *entry)
1644{ 1657{
1645 struct stack_frame frame; 1658 struct stack_frame frame;
1646 const void __user *fp; 1659 const void __user *fp;
1647 int nr = entry->nr;
1648 1660
1649 regs = (struct pt_regs *)current->thread.sp0 - 1; 1661 if (!user_mode(regs))
1650 fp = (void __user *)regs->bp; 1662 regs = task_pt_regs(current);
1651 1663
1664 fp = (void __user *)regs->bp;
1665
1666 callchain_store(entry, PERF_CONTEXT_USER);
1652 callchain_store(entry, regs->ip); 1667 callchain_store(entry, regs->ip);
1653 1668
1654 while (entry->nr < MAX_STACK_DEPTH) { 1669 while (entry->nr < PERF_MAX_STACK_DEPTH) {
1655 frame.next_fp = NULL; 1670 frame.next_frame = NULL;
1656 frame.return_address = 0; 1671 frame.return_address = 0;
1657 1672
1658 if (!copy_stack_frame(fp, &frame)) 1673 if (!copy_stack_frame(fp, &frame))
1659 break; 1674 break;
1660 1675
1661 if ((unsigned long)fp < user_stack_pointer(regs)) 1676 if ((unsigned long)fp < regs->sp)
1662 break; 1677 break;
1663 1678
1664 callchain_store(entry, frame.return_address); 1679 callchain_store(entry, frame.return_address);
1665 fp = frame.next_fp; 1680 fp = frame.next_frame;
1666 } 1681 }
1667
1668 entry->user = entry->nr - nr;
1669} 1682}
1670 1683
1671static void 1684static void
@@ -1701,9 +1714,6 @@ struct perf_callchain_entry *perf_callchain(struct pt_regs *regs)
1701 entry = &__get_cpu_var(irq_entry); 1714 entry = &__get_cpu_var(irq_entry);
1702 1715
1703 entry->nr = 0; 1716 entry->nr = 0;
1704 entry->hv = 0;
1705 entry->kernel = 0;
1706 entry->user = 0;
1707 1717
1708 perf_do_callchain(regs, entry); 1718 perf_do_callchain(regs, entry);
1709 1719
diff --git a/arch/x86/kernel/cpu/perfctr-watchdog.c b/arch/x86/kernel/cpu/perfctr-watchdog.c
index d6f5b9fbde3..5c481f6205b 100644
--- a/arch/x86/kernel/cpu/perfctr-watchdog.c
+++ b/arch/x86/kernel/cpu/perfctr-watchdog.c
@@ -716,11 +716,15 @@ static void probe_nmi_watchdog(void)
716 wd_ops = &k7_wd_ops; 716 wd_ops = &k7_wd_ops;
717 break; 717 break;
718 case X86_VENDOR_INTEL: 718 case X86_VENDOR_INTEL:
719 /* 719 /* Work around where perfctr1 doesn't have a working enable
720 * Work around Core Duo (Yonah) errata AE49 where perfctr1 720 * bit as described in the following errata:
721 * doesn't have a working enable bit. 721 * AE49 Core Duo and Intel Core Solo 65 nm
722 * AN49 Intel Pentium Dual-Core
723 * AF49 Dual-Core Intel Xeon Processor LV
722 */ 724 */
723 if (boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 14) { 725 if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 14) ||
726 ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 15 &&
727 boot_cpu_data.x86_mask == 4))) {
724 intel_arch_wd_ops.perfctr = MSR_ARCH_PERFMON_PERFCTR0; 728 intel_arch_wd_ops.perfctr = MSR_ARCH_PERFMON_PERFCTR0;
725 intel_arch_wd_ops.evntsel = MSR_ARCH_PERFMON_EVENTSEL0; 729 intel_arch_wd_ops.evntsel = MSR_ARCH_PERFMON_EVENTSEL0;
726 } 730 }
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index ff958248e61..5e409dc298a 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -27,6 +27,7 @@
27#include <asm/cpu.h> 27#include <asm/cpu.h>
28#include <asm/reboot.h> 28#include <asm/reboot.h>
29#include <asm/virtext.h> 29#include <asm/virtext.h>
30#include <asm/iommu.h>
30 31
31 32
32#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC) 33#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
@@ -103,5 +104,10 @@ void native_machine_crash_shutdown(struct pt_regs *regs)
103#ifdef CONFIG_HPET_TIMER 104#ifdef CONFIG_HPET_TIMER
104 hpet_disable(); 105 hpet_disable();
105#endif 106#endif
107
108#ifdef CONFIG_X86_64
109 pci_iommu_shutdown();
110#endif
111
106 crash_save_cpu(regs, safe_smp_processor_id()); 112 crash_save_cpu(regs, safe_smp_processor_id());
107} 113}
diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c
index 1736acc4d7a..96f7ac0bbf0 100644
--- a/arch/x86/kernel/efi.c
+++ b/arch/x86/kernel/efi.c
@@ -240,10 +240,35 @@ static void __init do_add_efi_memmap(void)
240 unsigned long long size = md->num_pages << EFI_PAGE_SHIFT; 240 unsigned long long size = md->num_pages << EFI_PAGE_SHIFT;
241 int e820_type; 241 int e820_type;
242 242
243 if (md->attribute & EFI_MEMORY_WB) 243 switch (md->type) {
244 e820_type = E820_RAM; 244 case EFI_LOADER_CODE:
245 else 245 case EFI_LOADER_DATA:
246 case EFI_BOOT_SERVICES_CODE:
247 case EFI_BOOT_SERVICES_DATA:
248 case EFI_CONVENTIONAL_MEMORY:
249 if (md->attribute & EFI_MEMORY_WB)
250 e820_type = E820_RAM;
251 else
252 e820_type = E820_RESERVED;
253 break;
254 case EFI_ACPI_RECLAIM_MEMORY:
255 e820_type = E820_ACPI;
256 break;
257 case EFI_ACPI_MEMORY_NVS:
258 e820_type = E820_NVS;
259 break;
260 case EFI_UNUSABLE_MEMORY:
261 e820_type = E820_UNUSABLE;
262 break;
263 default:
264 /*
265 * EFI_RESERVED_TYPE EFI_RUNTIME_SERVICES_CODE
266 * EFI_RUNTIME_SERVICES_DATA EFI_MEMORY_MAPPED_IO
267 * EFI_MEMORY_MAPPED_IO_PORT_SPACE EFI_PAL_CODE
268 */
246 e820_type = E820_RESERVED; 269 e820_type = E820_RESERVED;
270 break;
271 }
247 e820_add_region(start, size, e820_type); 272 e820_add_region(start, size, e820_type);
248 } 273 }
249 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); 274 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index c929add475c..c097e7d607c 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -48,7 +48,6 @@
48#include <asm/segment.h> 48#include <asm/segment.h>
49#include <asm/smp.h> 49#include <asm/smp.h>
50#include <asm/page_types.h> 50#include <asm/page_types.h>
51#include <asm/desc.h>
52#include <asm/percpu.h> 51#include <asm/percpu.h>
53#include <asm/dwarf2.h> 52#include <asm/dwarf2.h>
54#include <asm/processor-flags.h> 53#include <asm/processor-flags.h>
@@ -84,7 +83,7 @@
84#define preempt_stop(clobbers) DISABLE_INTERRUPTS(clobbers); TRACE_IRQS_OFF 83#define preempt_stop(clobbers) DISABLE_INTERRUPTS(clobbers); TRACE_IRQS_OFF
85#else 84#else
86#define preempt_stop(clobbers) 85#define preempt_stop(clobbers)
87#define resume_kernel restore_nocheck 86#define resume_kernel restore_all
88#endif 87#endif
89 88
90.macro TRACE_IRQS_IRET 89.macro TRACE_IRQS_IRET
@@ -372,7 +371,7 @@ END(ret_from_exception)
372ENTRY(resume_kernel) 371ENTRY(resume_kernel)
373 DISABLE_INTERRUPTS(CLBR_ANY) 372 DISABLE_INTERRUPTS(CLBR_ANY)
374 cmpl $0,TI_preempt_count(%ebp) # non-zero preempt_count ? 373 cmpl $0,TI_preempt_count(%ebp) # non-zero preempt_count ?
375 jnz restore_nocheck 374 jnz restore_all
376need_resched: 375need_resched:
377 movl TI_flags(%ebp), %ecx # need_resched set ? 376 movl TI_flags(%ebp), %ecx # need_resched set ?
378 testb $_TIF_NEED_RESCHED, %cl 377 testb $_TIF_NEED_RESCHED, %cl
@@ -540,6 +539,8 @@ syscall_exit:
540 jne syscall_exit_work 539 jne syscall_exit_work
541 540
542restore_all: 541restore_all:
542 TRACE_IRQS_IRET
543restore_all_notrace:
543 movl PT_EFLAGS(%esp), %eax # mix EFLAGS, SS and CS 544 movl PT_EFLAGS(%esp), %eax # mix EFLAGS, SS and CS
544 # Warning: PT_OLDSS(%esp) contains the wrong/random values if we 545 # Warning: PT_OLDSS(%esp) contains the wrong/random values if we
545 # are returning to the kernel. 546 # are returning to the kernel.
@@ -551,8 +552,6 @@ restore_all:
551 CFI_REMEMBER_STATE 552 CFI_REMEMBER_STATE
552 je ldt_ss # returning to user-space with LDT SS 553 je ldt_ss # returning to user-space with LDT SS
553restore_nocheck: 554restore_nocheck:
554 TRACE_IRQS_IRET
555restore_nocheck_notrace:
556 RESTORE_REGS 4 # skip orig_eax/error_code 555 RESTORE_REGS 4 # skip orig_eax/error_code
557 CFI_ADJUST_CFA_OFFSET -4 556 CFI_ADJUST_CFA_OFFSET -4
558irq_return: 557irq_return:
@@ -588,22 +587,34 @@ ldt_ss:
588 jne restore_nocheck 587 jne restore_nocheck
589#endif 588#endif
590 589
591 /* If returning to userspace with 16bit stack, 590/*
592 * try to fix the higher word of ESP, as the CPU 591 * Setup and switch to ESPFIX stack
593 * won't restore it. 592 *
594 * This is an "official" bug of all the x86-compatible 593 * We're returning to userspace with a 16 bit stack. The CPU will not
595 * CPUs, which we can try to work around to make 594 * restore the high word of ESP for us on executing iret... This is an
596 * dosemu and wine happy. */ 595 * "official" bug of all the x86-compatible CPUs, which we can work
597 movl PT_OLDESP(%esp), %eax 596 * around to make dosemu and wine happy. We do this by preloading the
598 movl %esp, %edx 597 * high word of ESP with the high word of the userspace ESP while
599 call patch_espfix_desc 598 * compensating for the offset by changing to the ESPFIX segment with
599 * a base address that matches for the difference.
600 */
601 mov %esp, %edx /* load kernel esp */
602 mov PT_OLDESP(%esp), %eax /* load userspace esp */
603 mov %dx, %ax /* eax: new kernel esp */
604 sub %eax, %edx /* offset (low word is 0) */
605 PER_CPU(gdt_page, %ebx)
606 shr $16, %edx
607 mov %dl, GDT_ENTRY_ESPFIX_SS * 8 + 4(%ebx) /* bits 16..23 */
608 mov %dh, GDT_ENTRY_ESPFIX_SS * 8 + 7(%ebx) /* bits 24..31 */
600 pushl $__ESPFIX_SS 609 pushl $__ESPFIX_SS
601 CFI_ADJUST_CFA_OFFSET 4 610 CFI_ADJUST_CFA_OFFSET 4
602 pushl %eax 611 push %eax /* new kernel esp */
603 CFI_ADJUST_CFA_OFFSET 4 612 CFI_ADJUST_CFA_OFFSET 4
613 /* Disable interrupts, but do not irqtrace this section: we
614 * will soon execute iret and the tracer was already set to
615 * the irqstate after the iret */
604 DISABLE_INTERRUPTS(CLBR_EAX) 616 DISABLE_INTERRUPTS(CLBR_EAX)
605 TRACE_IRQS_OFF 617 lss (%esp), %esp /* switch to espfix segment */
606 lss (%esp), %esp
607 CFI_ADJUST_CFA_OFFSET -8 618 CFI_ADJUST_CFA_OFFSET -8
608 jmp restore_nocheck 619 jmp restore_nocheck
609 CFI_ENDPROC 620 CFI_ENDPROC
@@ -716,15 +727,24 @@ PTREGSCALL(vm86)
716PTREGSCALL(vm86old) 727PTREGSCALL(vm86old)
717 728
718.macro FIXUP_ESPFIX_STACK 729.macro FIXUP_ESPFIX_STACK
719 /* since we are on a wrong stack, we cant make it a C code :( */ 730/*
731 * Switch back for ESPFIX stack to the normal zerobased stack
732 *
733 * We can't call C functions using the ESPFIX stack. This code reads
734 * the high word of the segment base from the GDT and swiches to the
735 * normal stack and adjusts ESP with the matching offset.
736 */
737 /* fixup the stack */
720 PER_CPU(gdt_page, %ebx) 738 PER_CPU(gdt_page, %ebx)
721 GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah) 739 mov GDT_ENTRY_ESPFIX_SS * 8 + 4(%ebx), %al /* bits 16..23 */
722 addl %esp, %eax 740 mov GDT_ENTRY_ESPFIX_SS * 8 + 7(%ebx), %ah /* bits 24..31 */
741 shl $16, %eax
742 addl %esp, %eax /* the adjusted stack pointer */
723 pushl $__KERNEL_DS 743 pushl $__KERNEL_DS
724 CFI_ADJUST_CFA_OFFSET 4 744 CFI_ADJUST_CFA_OFFSET 4
725 pushl %eax 745 pushl %eax
726 CFI_ADJUST_CFA_OFFSET 4 746 CFI_ADJUST_CFA_OFFSET 4
727 lss (%esp), %esp 747 lss (%esp), %esp /* switch to the normal stack segment */
728 CFI_ADJUST_CFA_OFFSET -8 748 CFI_ADJUST_CFA_OFFSET -8
729.endm 749.endm
730.macro UNWIND_ESPFIX_STACK 750.macro UNWIND_ESPFIX_STACK
@@ -1154,6 +1174,7 @@ ENTRY(ftrace_graph_caller)
1154 pushl %edx 1174 pushl %edx
1155 movl 0xc(%esp), %edx 1175 movl 0xc(%esp), %edx
1156 lea 0x4(%ebp), %eax 1176 lea 0x4(%ebp), %eax
1177 movl (%ebp), %ecx
1157 subl $MCOUNT_INSN_SIZE, %edx 1178 subl $MCOUNT_INSN_SIZE, %edx
1158 call prepare_ftrace_return 1179 call prepare_ftrace_return
1159 popl %edx 1180 popl %edx
@@ -1168,6 +1189,7 @@ return_to_handler:
1168 pushl %eax 1189 pushl %eax
1169 pushl %ecx 1190 pushl %ecx
1170 pushl %edx 1191 pushl %edx
1192 movl %ebp, %eax
1171 call ftrace_return_to_handler 1193 call ftrace_return_to_handler
1172 movl %eax, 0xc(%esp) 1194 movl %eax, 0xc(%esp)
1173 popl %edx 1195 popl %edx
@@ -1329,7 +1351,7 @@ nmi_stack_correct:
1329 xorl %edx,%edx # zero error code 1351 xorl %edx,%edx # zero error code
1330 movl %esp,%eax # pt_regs pointer 1352 movl %esp,%eax # pt_regs pointer
1331 call do_nmi 1353 call do_nmi
1332 jmp restore_nocheck_notrace 1354 jmp restore_all_notrace
1333 CFI_ENDPROC 1355 CFI_ENDPROC
1334 1356
1335nmi_stack_fixup: 1357nmi_stack_fixup:
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index de74f0a3e0e..c251be74510 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -135,6 +135,7 @@ ENTRY(ftrace_graph_caller)
135 135
136 leaq 8(%rbp), %rdi 136 leaq 8(%rbp), %rdi
137 movq 0x38(%rsp), %rsi 137 movq 0x38(%rsp), %rsi
138 movq (%rbp), %rdx
138 subq $MCOUNT_INSN_SIZE, %rsi 139 subq $MCOUNT_INSN_SIZE, %rsi
139 140
140 call prepare_ftrace_return 141 call prepare_ftrace_return
@@ -150,6 +151,7 @@ GLOBAL(return_to_handler)
150 /* Save the return values */ 151 /* Save the return values */
151 movq %rax, (%rsp) 152 movq %rax, (%rsp)
152 movq %rdx, 8(%rsp) 153 movq %rdx, 8(%rsp)
154 movq %rbp, %rdi
153 155
154 call ftrace_return_to_handler 156 call ftrace_return_to_handler
155 157
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index b79c5533c42..d94e1ea3b9f 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -408,7 +408,8 @@ int ftrace_disable_ftrace_graph_caller(void)
408 * Hook the return address and push it in the stack of return addrs 408 * Hook the return address and push it in the stack of return addrs
409 * in current thread info. 409 * in current thread info.
410 */ 410 */
411void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) 411void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr,
412 unsigned long frame_pointer)
412{ 413{
413 unsigned long old; 414 unsigned long old;
414 int faulted; 415 int faulted;
@@ -453,7 +454,8 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
453 return; 454 return;
454 } 455 }
455 456
456 if (ftrace_push_return_trace(old, self_addr, &trace.depth) == -EBUSY) { 457 if (ftrace_push_return_trace(old, self_addr, &trace.depth,
458 frame_pointer) == -EBUSY) {
457 *parent = old; 459 *parent = old;
458 return; 460 return;
459 } 461 }
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index dc5ed4bdd88..8663afb5653 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -13,7 +13,6 @@
13#include <asm/segment.h> 13#include <asm/segment.h>
14#include <asm/page_types.h> 14#include <asm/page_types.h>
15#include <asm/pgtable_types.h> 15#include <asm/pgtable_types.h>
16#include <asm/desc.h>
17#include <asm/cache.h> 16#include <asm/cache.h>
18#include <asm/thread_info.h> 17#include <asm/thread_info.h>
19#include <asm/asm-offsets.h> 18#include <asm/asm-offsets.h>
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 54b29bb24e7..fa54f78e2a0 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -12,7 +12,6 @@
12#include <linux/linkage.h> 12#include <linux/linkage.h>
13#include <linux/threads.h> 13#include <linux/threads.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <asm/desc.h>
16#include <asm/segment.h> 15#include <asm/segment.h>
17#include <asm/pgtable.h> 16#include <asm/pgtable.h>
18#include <asm/page.h> 17#include <asm/page.h>
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 81408b93f88..dedc2bddf7a 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -510,7 +510,8 @@ static int hpet_setup_irq(struct hpet_dev *dev)
510{ 510{
511 511
512 if (request_irq(dev->irq, hpet_interrupt_handler, 512 if (request_irq(dev->irq, hpet_interrupt_handler,
513 IRQF_DISABLED|IRQF_NOBALANCING, dev->name, dev)) 513 IRQF_TIMER | IRQF_DISABLED | IRQF_NOBALANCING,
514 dev->name, dev))
514 return -1; 515 return -1;
515 516
516 disable_irq(dev->irq); 517 disable_irq(dev->irq);
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index 745579bc825..47630479b06 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -32,6 +32,8 @@ int no_iommu __read_mostly;
32/* Set this to 1 if there is a HW IOMMU in the system */ 32/* Set this to 1 if there is a HW IOMMU in the system */
33int iommu_detected __read_mostly = 0; 33int iommu_detected __read_mostly = 0;
34 34
35int iommu_pass_through;
36
35dma_addr_t bad_dma_address __read_mostly = 0; 37dma_addr_t bad_dma_address __read_mostly = 0;
36EXPORT_SYMBOL(bad_dma_address); 38EXPORT_SYMBOL(bad_dma_address);
37 39
@@ -209,6 +211,10 @@ static __init int iommu_setup(char *p)
209#ifdef CONFIG_SWIOTLB 211#ifdef CONFIG_SWIOTLB
210 if (!strncmp(p, "soft", 4)) 212 if (!strncmp(p, "soft", 4))
211 swiotlb = 1; 213 swiotlb = 1;
214 if (!strncmp(p, "pt", 2)) {
215 iommu_pass_through = 1;
216 return 1;
217 }
212#endif 218#endif
213 219
214 gart_parse_options(p); 220 gart_parse_options(p);
@@ -290,6 +296,8 @@ static int __init pci_iommu_init(void)
290void pci_iommu_shutdown(void) 296void pci_iommu_shutdown(void)
291{ 297{
292 gart_iommu_shutdown(); 298 gart_iommu_shutdown();
299
300 amd_iommu_shutdown();
293} 301}
294/* Must execute after PCI subsystem */ 302/* Must execute after PCI subsystem */
295fs_initcall(pci_iommu_init); 303fs_initcall(pci_iommu_init);
diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c
index a1712f2b50f..6af96ee4420 100644
--- a/arch/x86/kernel/pci-swiotlb.c
+++ b/arch/x86/kernel/pci-swiotlb.c
@@ -71,7 +71,8 @@ void __init pci_swiotlb_init(void)
71{ 71{
72 /* don't initialize swiotlb if iommu=off (no_iommu=1) */ 72 /* don't initialize swiotlb if iommu=off (no_iommu=1) */
73#ifdef CONFIG_X86_64 73#ifdef CONFIG_X86_64
74 if (!iommu_detected && !no_iommu && max_pfn > MAX_DMA32_PFN) 74 if ((!iommu_detected && !no_iommu && max_pfn > MAX_DMA32_PFN) ||
75 iommu_pass_through)
75 swiotlb = 1; 76 swiotlb = 1;
76#endif 77#endif
77 if (swiotlb_force) 78 if (swiotlb_force)
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index 5f935f0d586..a0f48f5671c 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -54,6 +54,7 @@
54#include <asm/traps.h> 54#include <asm/traps.h>
55#include <asm/desc.h> 55#include <asm/desc.h>
56#include <asm/i387.h> 56#include <asm/i387.h>
57#include <asm/mce.h>
57 58
58#include <asm/mach_traps.h> 59#include <asm/mach_traps.h>
59 60
@@ -65,8 +66,6 @@
65#include <asm/setup.h> 66#include <asm/setup.h>
66#include <asm/traps.h> 67#include <asm/traps.h>
67 68
68#include "cpu/mcheck/mce.h"
69
70asmlinkage int system_call(void); 69asmlinkage int system_call(void);
71 70
72/* Do we ignore FPU interrupts ? */ 71/* Do we ignore FPU interrupts ? */
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index b0597ad02c9..6e1a368d21d 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -590,22 +590,26 @@ EXPORT_SYMBOL(recalibrate_cpu_khz);
590 */ 590 */
591 591
592DEFINE_PER_CPU(unsigned long, cyc2ns); 592DEFINE_PER_CPU(unsigned long, cyc2ns);
593DEFINE_PER_CPU(unsigned long long, cyc2ns_offset);
593 594
594static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu) 595static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu)
595{ 596{
596 unsigned long long tsc_now, ns_now; 597 unsigned long long tsc_now, ns_now, *offset;
597 unsigned long flags, *scale; 598 unsigned long flags, *scale;
598 599
599 local_irq_save(flags); 600 local_irq_save(flags);
600 sched_clock_idle_sleep_event(); 601 sched_clock_idle_sleep_event();
601 602
602 scale = &per_cpu(cyc2ns, cpu); 603 scale = &per_cpu(cyc2ns, cpu);
604 offset = &per_cpu(cyc2ns_offset, cpu);
603 605
604 rdtscll(tsc_now); 606 rdtscll(tsc_now);
605 ns_now = __cycles_2_ns(tsc_now); 607 ns_now = __cycles_2_ns(tsc_now);
606 608
607 if (cpu_khz) 609 if (cpu_khz) {
608 *scale = (NSEC_PER_MSEC << CYC2NS_SCALE_FACTOR)/cpu_khz; 610 *scale = (NSEC_PER_MSEC << CYC2NS_SCALE_FACTOR)/cpu_khz;
611 *offset = ns_now - (tsc_now * *scale >> CYC2NS_SCALE_FACTOR);
612 }
609 613
610 sched_clock_idle_wakeup_event(0); 614 sched_clock_idle_wakeup_event(0);
611 local_irq_restore(flags); 615 local_irq_restore(flags);
diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
index ec13cb5f17e..b7c2849ffb6 100644
--- a/arch/x86/lib/usercopy_64.c
+++ b/arch/x86/lib/usercopy_64.c
@@ -127,7 +127,7 @@ EXPORT_SYMBOL(__strnlen_user);
127 127
128long strnlen_user(const char __user *s, long n) 128long strnlen_user(const char __user *s, long n)
129{ 129{
130 if (!access_ok(VERIFY_READ, s, n)) 130 if (!access_ok(VERIFY_READ, s, 1))
131 return 0; 131 return 0;
132 return __strnlen_user(s, n); 132 return __strnlen_user(s, n);
133} 133}
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index baa0e86adfb..78a5fff857b 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -952,8 +952,6 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
952 tsk = current; 952 tsk = current;
953 mm = tsk->mm; 953 mm = tsk->mm;
954 954
955 prefetchw(&mm->mmap_sem);
956
957 /* Get the faulting address: */ 955 /* Get the faulting address: */
958 address = read_cr2(); 956 address = read_cr2();
959 957
@@ -963,6 +961,7 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
963 */ 961 */
964 if (kmemcheck_active(regs)) 962 if (kmemcheck_active(regs))
965 kmemcheck_hide(regs); 963 kmemcheck_hide(regs);
964 prefetchw(&mm->mmap_sem);
966 965
967 if (unlikely(kmmio_fault(regs, address))) 966 if (unlikely(kmmio_fault(regs, address)))
968 return; 967 return;
@@ -1114,7 +1113,7 @@ good_area:
1114 * make sure we exit gracefully rather than endlessly redo 1113 * make sure we exit gracefully rather than endlessly redo
1115 * the fault: 1114 * the fault:
1116 */ 1115 */
1117 fault = handle_mm_fault(mm, vma, address, write); 1116 fault = handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0);
1118 1117
1119 if (unlikely(fault & VM_FAULT_ERROR)) { 1118 if (unlikely(fault & VM_FAULT_ERROR)) {
1120 mm_fault_error(regs, error_code, address, fault); 1119 mm_fault_error(regs, error_code, address, fault);
diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c
index 6340cef6798..71da1bca13c 100644
--- a/arch/x86/mm/gup.c
+++ b/arch/x86/mm/gup.c
@@ -14,7 +14,7 @@
14static inline pte_t gup_get_pte(pte_t *ptep) 14static inline pte_t gup_get_pte(pte_t *ptep)
15{ 15{
16#ifndef CONFIG_X86_PAE 16#ifndef CONFIG_X86_PAE
17 return *ptep; 17 return ACCESS_ONCE(*ptep);
18#else 18#else
19 /* 19 /*
20 * With get_user_pages_fast, we walk down the pagetables without taking 20 * With get_user_pages_fast, we walk down the pagetables without taking
@@ -219,6 +219,62 @@ static int gup_pud_range(pgd_t pgd, unsigned long addr, unsigned long end,
219 return 1; 219 return 1;
220} 220}
221 221
222/*
223 * Like get_user_pages_fast() except its IRQ-safe in that it won't fall
224 * back to the regular GUP.
225 */
226int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
227 struct page **pages)
228{
229 struct mm_struct *mm = current->mm;
230 unsigned long addr, len, end;
231 unsigned long next;
232 unsigned long flags;
233 pgd_t *pgdp;
234 int nr = 0;
235
236 start &= PAGE_MASK;
237 addr = start;
238 len = (unsigned long) nr_pages << PAGE_SHIFT;
239 end = start + len;
240 if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ,
241 (void __user *)start, len)))
242 return 0;
243
244 /*
245 * XXX: batch / limit 'nr', to avoid large irq off latency
246 * needs some instrumenting to determine the common sizes used by
247 * important workloads (eg. DB2), and whether limiting the batch size
248 * will decrease performance.
249 *
250 * It seems like we're in the clear for the moment. Direct-IO is
251 * the main guy that batches up lots of get_user_pages, and even
252 * they are limited to 64-at-a-time which is not so many.
253 */
254 /*
255 * This doesn't prevent pagetable teardown, but does prevent
256 * the pagetables and pages from being freed on x86.
257 *
258 * So long as we atomically load page table pointers versus teardown
259 * (which we do on x86, with the above PAE exception), we can follow the
260 * address down to the the page and take a ref on it.
261 */
262 local_irq_save(flags);
263 pgdp = pgd_offset(mm, addr);
264 do {
265 pgd_t pgd = *pgdp;
266
267 next = pgd_addr_end(addr, end);
268 if (pgd_none(pgd))
269 break;
270 if (!gup_pud_range(pgd, addr, next, write, pages, &nr))
271 break;
272 } while (pgdp++, addr = next, addr != end);
273 local_irq_restore(flags);
274
275 return nr;
276}
277
222/** 278/**
223 * get_user_pages_fast() - pin user pages in memory 279 * get_user_pages_fast() - pin user pages in memory
224 * @start: starting user address 280 * @start: starting user address
@@ -247,11 +303,16 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
247 start &= PAGE_MASK; 303 start &= PAGE_MASK;
248 addr = start; 304 addr = start;
249 len = (unsigned long) nr_pages << PAGE_SHIFT; 305 len = (unsigned long) nr_pages << PAGE_SHIFT;
306
250 end = start + len; 307 end = start + len;
251 if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ, 308 if (end < start)
252 (void __user *)start, len)))
253 goto slow_irqon; 309 goto slow_irqon;
254 310
311#ifdef CONFIG_X86_64
312 if (end >> __VIRTUAL_MASK_SHIFT)
313 goto slow_irqon;
314#endif
315
255 /* 316 /*
256 * XXX: batch / limit 'nr', to avoid large irq off latency 317 * XXX: batch / limit 'nr', to avoid large irq off latency
257 * needs some instrumenting to determine the common sizes used by 318 * needs some instrumenting to determine the common sizes used by
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 9c543290a81..c4378f4fd4a 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -527,7 +527,7 @@ phys_pud_update(pgd_t *pgd, unsigned long addr, unsigned long end,
527 return phys_pud_init(pud, addr, end, page_size_mask); 527 return phys_pud_init(pud, addr, end, page_size_mask);
528} 528}
529 529
530unsigned long __init 530unsigned long __meminit
531kernel_physical_mapping_init(unsigned long start, 531kernel_physical_mapping_init(unsigned long start,
532 unsigned long end, 532 unsigned long end,
533 unsigned long page_size_mask) 533 unsigned long page_size_mask)
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index c0ecf250fe5..b26626dc517 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -38,15 +38,26 @@ count_resource(struct acpi_resource *acpi_res, void *data)
38 struct acpi_resource_address64 addr; 38 struct acpi_resource_address64 addr;
39 acpi_status status; 39 acpi_status status;
40 40
41 if (info->res_num >= PCI_BUS_NUM_RESOURCES)
42 return AE_OK;
43
44 status = resource_to_addr(acpi_res, &addr); 41 status = resource_to_addr(acpi_res, &addr);
45 if (ACPI_SUCCESS(status)) 42 if (ACPI_SUCCESS(status))
46 info->res_num++; 43 info->res_num++;
47 return AE_OK; 44 return AE_OK;
48} 45}
49 46
47static int
48bus_has_transparent_bridge(struct pci_bus *bus)
49{
50 struct pci_dev *dev;
51
52 list_for_each_entry(dev, &bus->devices, bus_list) {
53 u16 class = dev->class >> 8;
54
55 if (class == PCI_CLASS_BRIDGE_PCI && dev->transparent)
56 return true;
57 }
58 return false;
59}
60
50static acpi_status 61static acpi_status
51setup_resource(struct acpi_resource *acpi_res, void *data) 62setup_resource(struct acpi_resource *acpi_res, void *data)
52{ 63{
@@ -56,9 +67,7 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
56 acpi_status status; 67 acpi_status status;
57 unsigned long flags; 68 unsigned long flags;
58 struct resource *root; 69 struct resource *root;
59 70 int max_root_bus_resources = PCI_BUS_NUM_RESOURCES;
60 if (info->res_num >= PCI_BUS_NUM_RESOURCES)
61 return AE_OK;
62 71
63 status = resource_to_addr(acpi_res, &addr); 72 status = resource_to_addr(acpi_res, &addr);
64 if (!ACPI_SUCCESS(status)) 73 if (!ACPI_SUCCESS(status))
@@ -82,6 +91,18 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
82 res->end = res->start + addr.address_length - 1; 91 res->end = res->start + addr.address_length - 1;
83 res->child = NULL; 92 res->child = NULL;
84 93
94 if (bus_has_transparent_bridge(info->bus))
95 max_root_bus_resources -= 3;
96 if (info->res_num >= max_root_bus_resources) {
97 printk(KERN_WARNING "PCI: Failed to allocate 0x%lx-0x%lx "
98 "from %s for %s due to _CRS returning more than "
99 "%d resource descriptors\n", (unsigned long) res->start,
100 (unsigned long) res->end, root->name, info->name,
101 max_root_bus_resources);
102 info->res_num++;
103 return AE_OK;
104 }
105
85 if (insert_resource(root, res)) { 106 if (insert_resource(root, res)) {
86 printk(KERN_ERR "PCI: Failed to allocate 0x%lx-0x%lx " 107 printk(KERN_ERR "PCI: Failed to allocate 0x%lx-0x%lx "
87 "from %s for %s\n", (unsigned long) res->start, 108 "from %s for %s\n", (unsigned long) res->start,
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index a85bef20a3b..0fb56db16d1 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -116,7 +116,7 @@ static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
116 struct pci_bus *bus; 116 struct pci_bus *bus;
117 struct pci_dev *dev; 117 struct pci_dev *dev;
118 int idx; 118 int idx;
119 struct resource *r, *pr; 119 struct resource *r;
120 120
121 /* Depth-First Search on bus tree */ 121 /* Depth-First Search on bus tree */
122 list_for_each_entry(bus, bus_list, node) { 122 list_for_each_entry(bus, bus_list, node) {
@@ -126,9 +126,8 @@ static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
126 r = &dev->resource[idx]; 126 r = &dev->resource[idx];
127 if (!r->flags) 127 if (!r->flags)
128 continue; 128 continue;
129 pr = pci_find_parent_resource(dev, r); 129 if (!r->start ||
130 if (!r->start || !pr || 130 pci_claim_resource(dev, idx) < 0) {
131 request_resource(pr, r) < 0) {
132 dev_info(&dev->dev, "BAR %d: can't allocate resource\n", idx); 131 dev_info(&dev->dev, "BAR %d: can't allocate resource\n", idx);
133 /* 132 /*
134 * Something is wrong with the region. 133 * Something is wrong with the region.
@@ -149,7 +148,7 @@ static void __init pcibios_allocate_resources(int pass)
149 struct pci_dev *dev = NULL; 148 struct pci_dev *dev = NULL;
150 int idx, disabled; 149 int idx, disabled;
151 u16 command; 150 u16 command;
152 struct resource *r, *pr; 151 struct resource *r;
153 152
154 for_each_pci_dev(dev) { 153 for_each_pci_dev(dev) {
155 pci_read_config_word(dev, PCI_COMMAND, &command); 154 pci_read_config_word(dev, PCI_COMMAND, &command);
@@ -168,8 +167,7 @@ static void __init pcibios_allocate_resources(int pass)
168 (unsigned long long) r->start, 167 (unsigned long long) r->start,
169 (unsigned long long) r->end, 168 (unsigned long long) r->end,
170 r->flags, disabled, pass); 169 r->flags, disabled, pass);
171 pr = pci_find_parent_resource(dev, r); 170 if (pci_claim_resource(dev, idx) < 0) {
172 if (!pr || request_resource(pr, r) < 0) {
173 dev_info(&dev->dev, "BAR %d: can't allocate resource\n", idx); 171 dev_info(&dev->dev, "BAR %d: can't allocate resource\n", idx);
174 /* We'll assign a new address later */ 172 /* We'll assign a new address later */
175 r->end -= r->start; 173 r->end -= r->start;
@@ -197,7 +195,7 @@ static void __init pcibios_allocate_resources(int pass)
197static int __init pcibios_assign_resources(void) 195static int __init pcibios_assign_resources(void)
198{ 196{
199 struct pci_dev *dev = NULL; 197 struct pci_dev *dev = NULL;
200 struct resource *r, *pr; 198 struct resource *r;
201 199
202 if (!(pci_probe & PCI_ASSIGN_ROMS)) { 200 if (!(pci_probe & PCI_ASSIGN_ROMS)) {
203 /* 201 /*
@@ -209,8 +207,7 @@ static int __init pcibios_assign_resources(void)
209 r = &dev->resource[PCI_ROM_RESOURCE]; 207 r = &dev->resource[PCI_ROM_RESOURCE];
210 if (!r->flags || !r->start) 208 if (!r->flags || !r->start)
211 continue; 209 continue;
212 pr = pci_find_parent_resource(dev, r); 210 if (pci_claim_resource(dev, PCI_ROM_RESOURCE) < 0) {
213 if (!pr || request_resource(pr, r) < 0) {
214 r->end -= r->start; 211 r->end -= r->start;
215 r->start = 0; 212 r->start = 0;
216 } 213 }
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 8766b0e216c..712443ec6d4 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -523,6 +523,69 @@ reject:
523 523
524static int __initdata known_bridge; 524static int __initdata known_bridge;
525 525
526static int acpi_mcfg_64bit_base_addr __initdata = FALSE;
527
528/* The physical address of the MMCONFIG aperture. Set from ACPI tables. */
529struct acpi_mcfg_allocation *pci_mmcfg_config;
530int pci_mmcfg_config_num;
531
532static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg)
533{
534 if (!strcmp(mcfg->header.oem_id, "SGI"))
535 acpi_mcfg_64bit_base_addr = TRUE;
536
537 return 0;
538}
539
540static int __init pci_parse_mcfg(struct acpi_table_header *header)
541{
542 struct acpi_table_mcfg *mcfg;
543 unsigned long i;
544 int config_size;
545
546 if (!header)
547 return -EINVAL;
548
549 mcfg = (struct acpi_table_mcfg *)header;
550
551 /* how many config structures do we have */
552 pci_mmcfg_config_num = 0;
553 i = header->length - sizeof(struct acpi_table_mcfg);
554 while (i >= sizeof(struct acpi_mcfg_allocation)) {
555 ++pci_mmcfg_config_num;
556 i -= sizeof(struct acpi_mcfg_allocation);
557 };
558 if (pci_mmcfg_config_num == 0) {
559 printk(KERN_ERR PREFIX "MMCONFIG has no entries\n");
560 return -ENODEV;
561 }
562
563 config_size = pci_mmcfg_config_num * sizeof(*pci_mmcfg_config);
564 pci_mmcfg_config = kmalloc(config_size, GFP_KERNEL);
565 if (!pci_mmcfg_config) {
566 printk(KERN_WARNING PREFIX
567 "No memory for MCFG config tables\n");
568 return -ENOMEM;
569 }
570
571 memcpy(pci_mmcfg_config, &mcfg[1], config_size);
572
573 acpi_mcfg_oem_check(mcfg);
574
575 for (i = 0; i < pci_mmcfg_config_num; ++i) {
576 if ((pci_mmcfg_config[i].address > 0xFFFFFFFF) &&
577 !acpi_mcfg_64bit_base_addr) {
578 printk(KERN_ERR PREFIX
579 "MMCONFIG not in low 4GB of memory\n");
580 kfree(pci_mmcfg_config);
581 pci_mmcfg_config_num = 0;
582 return -ENODEV;
583 }
584 }
585
586 return 0;
587}
588
526static void __init __pci_mmcfg_init(int early) 589static void __init __pci_mmcfg_init(int early)
527{ 590{
528 /* MMCONFIG disabled */ 591 /* MMCONFIG disabled */
@@ -543,7 +606,7 @@ static void __init __pci_mmcfg_init(int early)
543 } 606 }
544 607
545 if (!known_bridge) 608 if (!known_bridge)
546 acpi_table_parse(ACPI_SIG_MCFG, acpi_parse_mcfg); 609 acpi_table_parse(ACPI_SIG_MCFG, pci_parse_mcfg);
547 610
548 pci_mmcfg_reject_broken(early); 611 pci_mmcfg_reject_broken(early);
549 612
diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
index 16a9020c8f1..88112b49f02 100644
--- a/arch/x86/vdso/Makefile
+++ b/arch/x86/vdso/Makefile
@@ -123,6 +123,7 @@ quiet_cmd_vdso = VDSO $@
123 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) 123 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^)
124 124
125VDSO_LDFLAGS = -fPIC -shared $(call ld-option, -Wl$(comma)--hash-style=sysv) 125VDSO_LDFLAGS = -fPIC -shared $(call ld-option, -Wl$(comma)--hash-style=sysv)
126GCOV_PROFILE := n
126 127
127# 128#
128# Install the unstripped copy of vdso*.so listed in $(vdso-install-y). 129# Install the unstripped copy of vdso*.so listed in $(vdso-install-y).
diff --git a/arch/xtensa/configs/s6105_defconfig b/arch/xtensa/configs/s6105_defconfig
index 768bee00603..bb84fbc9921 100644
--- a/arch/xtensa/configs/s6105_defconfig
+++ b/arch/xtensa/configs/s6105_defconfig
@@ -263,7 +263,54 @@ CONFIG_HAVE_IDE=y
263# CONFIG_SCSI_NETLINK is not set 263# CONFIG_SCSI_NETLINK is not set
264# CONFIG_ATA is not set 264# CONFIG_ATA is not set
265# CONFIG_MD is not set 265# CONFIG_MD is not set
266# CONFIG_NETDEVICES is not set 266CONFIG_NETDEVICES=y
267# CONFIG_DUMMY is not set
268# CONFIG_BONDING is not set
269# CONFIG_MACVLAN is not set
270# CONFIG_EQUALIZER is not set
271# CONFIG_TUN is not set
272# CONFIG_VETH is not set
273CONFIG_PHYLIB=y
274
275#
276# MII PHY device drivers
277#
278# CONFIG_MARVELL_PHY is not set
279# CONFIG_DAVICOM_PHY is not set
280# CONFIG_QSEMI_PHY is not set
281# CONFIG_LXT_PHY is not set
282# CONFIG_CICADA_PHY is not set
283# CONFIG_VITESSE_PHY is not set
284CONFIG_SMSC_PHY=y
285# CONFIG_BROADCOM_PHY is not set
286# CONFIG_ICPLUS_PHY is not set
287# CONFIG_REALTEK_PHY is not set
288# CONFIG_NATIONAL_PHY is not set
289# CONFIG_STE10XP is not set
290# CONFIG_LSI_ET1011C_PHY is not set
291# CONFIG_FIXED_PHY is not set
292# CONFIG_MDIO_BITBANG is not set
293# CONFIG_NET_ETHERNET is not set
294CONFIG_NETDEV_1000=y
295CONFIG_S6GMAC=y
296# CONFIG_NETDEV_10000 is not set
297
298#
299# Wireless LAN
300#
301# CONFIG_WLAN_PRE80211 is not set
302# CONFIG_WLAN_80211 is not set
303# CONFIG_IWLWIFI_LEDS is not set
304
305#
306# Enable WiMAX (Networking options) to see the WiMAX drivers
307#
308# CONFIG_WAN is not set
309# CONFIG_PPP is not set
310# CONFIG_SLIP is not set
311# CONFIG_NETCONSOLE is not set
312# CONFIG_NETPOLL is not set
313# CONFIG_NET_POLL_CONTROLLER is not set
267# CONFIG_ISDN is not set 314# CONFIG_ISDN is not set
268# CONFIG_PHONE is not set 315# CONFIG_PHONE is not set
269 316
@@ -304,8 +351,6 @@ CONFIG_UNIX98_PTYS=y
304# CONFIG_LEGACY_PTYS is not set 351# CONFIG_LEGACY_PTYS is not set
305# CONFIG_IPMI_HANDLER is not set 352# CONFIG_IPMI_HANDLER is not set
306# CONFIG_HW_RANDOM is not set 353# CONFIG_HW_RANDOM is not set
307# CONFIG_RTC is not set
308# CONFIG_GEN_RTC is not set
309# CONFIG_R3964 is not set 354# CONFIG_R3964 is not set
310# CONFIG_RAW_DRIVER is not set 355# CONFIG_RAW_DRIVER is not set
311# CONFIG_TCG_TPM is not set 356# CONFIG_TCG_TPM is not set
@@ -387,7 +432,59 @@ CONFIG_SSB_POSSIBLE=y
387# CONFIG_MEMSTICK is not set 432# CONFIG_MEMSTICK is not set
388# CONFIG_NEW_LEDS is not set 433# CONFIG_NEW_LEDS is not set
389# CONFIG_ACCESSIBILITY is not set 434# CONFIG_ACCESSIBILITY is not set
390# CONFIG_RTC_CLASS is not set 435CONFIG_RTC_LIB=y
436CONFIG_RTC_CLASS=y
437CONFIG_RTC_HCTOSYS=y
438CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
439# CONFIG_RTC_DEBUG is not set
440
441#
442# RTC interfaces
443#
444# CONFIG_RTC_INTF_SYSFS is not set
445# CONFIG_RTC_INTF_PROC is not set
446# CONFIG_RTC_INTF_DEV is not set
447# CONFIG_RTC_DRV_TEST is not set
448
449#
450# I2C RTC drivers
451#
452# CONFIG_RTC_DRV_DS1307 is not set
453# CONFIG_RTC_DRV_DS1374 is not set
454# CONFIG_RTC_DRV_DS1672 is not set
455# CONFIG_RTC_DRV_MAX6900 is not set
456# CONFIG_RTC_DRV_RS5C372 is not set
457# CONFIG_RTC_DRV_ISL1208 is not set
458# CONFIG_RTC_DRV_X1205 is not set
459# CONFIG_RTC_DRV_PCF8563 is not set
460# CONFIG_RTC_DRV_PCF8583 is not set
461CONFIG_RTC_DRV_M41T80=y
462# CONFIG_RTC_DRV_M41T80_WDT is not set
463# CONFIG_RTC_DRV_S35390A is not set
464# CONFIG_RTC_DRV_FM3130 is not set
465# CONFIG_RTC_DRV_RX8581 is not set
466
467#
468# SPI RTC drivers
469#
470
471#
472# Platform RTC drivers
473#
474# CONFIG_RTC_DRV_DS1286 is not set
475# CONFIG_RTC_DRV_DS1511 is not set
476# CONFIG_RTC_DRV_DS1553 is not set
477# CONFIG_RTC_DRV_DS1742 is not set
478# CONFIG_RTC_DRV_STK17TA8 is not set
479# CONFIG_RTC_DRV_M48T86 is not set
480# CONFIG_RTC_DRV_M48T35 is not set
481# CONFIG_RTC_DRV_M48T59 is not set
482# CONFIG_RTC_DRV_BQ4802 is not set
483# CONFIG_RTC_DRV_V3020 is not set
484
485#
486# on-CPU RTC drivers
487#
391# CONFIG_DMADEVICES is not set 488# CONFIG_DMADEVICES is not set
392# CONFIG_UIO is not set 489# CONFIG_UIO is not set
393# CONFIG_STAGING is not set 490# CONFIG_STAGING is not set
diff --git a/arch/xtensa/include/asm/cacheflush.h b/arch/xtensa/include/asm/cacheflush.h
index 8fc1c0c8de0..b7b8fbe47c7 100644
--- a/arch/xtensa/include/asm/cacheflush.h
+++ b/arch/xtensa/include/asm/cacheflush.h
@@ -155,5 +155,100 @@ extern void copy_from_user_page(struct vm_area_struct*, struct page*,
155 155
156#endif 156#endif
157 157
158#define XTENSA_CACHEBLK_LOG2 29
159#define XTENSA_CACHEBLK_SIZE (1 << XTENSA_CACHEBLK_LOG2)
160#define XTENSA_CACHEBLK_MASK (7 << XTENSA_CACHEBLK_LOG2)
161
162#if XCHAL_HAVE_CACHEATTR
163static inline u32 xtensa_get_cacheattr(void)
164{
165 u32 r;
166 asm volatile(" rsr %0, CACHEATTR" : "=a"(r));
167 return r;
168}
169
170static inline u32 xtensa_get_dtlb1(u32 addr)
171{
172 u32 r = addr & XTENSA_CACHEBLK_MASK;
173 return r | ((xtensa_get_cacheattr() >> (r >> (XTENSA_CACHEBLK_LOG2-2)))
174 & 0xF);
175}
176#else
177static inline u32 xtensa_get_dtlb1(u32 addr)
178{
179 u32 r;
180 asm volatile(" rdtlb1 %0, %1" : "=a"(r) : "a"(addr));
181 asm volatile(" dsync");
182 return r;
183}
184
185static inline u32 xtensa_get_cacheattr(void)
186{
187 u32 r = 0;
188 u32 a = 0;
189 do {
190 a -= XTENSA_CACHEBLK_SIZE;
191 r = (r << 4) | (xtensa_get_dtlb1(a) & 0xF);
192 } while (a);
193 return r;
194}
195#endif
196
197static inline int xtensa_need_flush_dma_source(u32 addr)
198{
199 return (xtensa_get_dtlb1(addr) & ((1 << XCHAL_CA_BITS) - 1)) >= 4;
200}
201
202static inline int xtensa_need_invalidate_dma_destination(u32 addr)
203{
204 return (xtensa_get_dtlb1(addr) & ((1 << XCHAL_CA_BITS) - 1)) != 2;
205}
206
207static inline void flush_dcache_unaligned(u32 addr, u32 size)
208{
209 u32 cnt;
210 if (size) {
211 cnt = (size + ((XCHAL_DCACHE_LINESIZE - 1) & addr)
212 + XCHAL_DCACHE_LINESIZE - 1) / XCHAL_DCACHE_LINESIZE;
213 while (cnt--) {
214 asm volatile(" dhwb %0, 0" : : "a"(addr));
215 addr += XCHAL_DCACHE_LINESIZE;
216 }
217 asm volatile(" dsync");
218 }
219}
220
221static inline void invalidate_dcache_unaligned(u32 addr, u32 size)
222{
223 int cnt;
224 if (size) {
225 asm volatile(" dhwbi %0, 0 ;" : : "a"(addr));
226 cnt = (size + ((XCHAL_DCACHE_LINESIZE - 1) & addr)
227 - XCHAL_DCACHE_LINESIZE - 1) / XCHAL_DCACHE_LINESIZE;
228 while (cnt-- > 0) {
229 asm volatile(" dhi %0, %1" : : "a"(addr),
230 "n"(XCHAL_DCACHE_LINESIZE));
231 addr += XCHAL_DCACHE_LINESIZE;
232 }
233 asm volatile(" dhwbi %0, %1" : : "a"(addr),
234 "n"(XCHAL_DCACHE_LINESIZE));
235 asm volatile(" dsync");
236 }
237}
238
239static inline void flush_invalidate_dcache_unaligned(u32 addr, u32 size)
240{
241 u32 cnt;
242 if (size) {
243 cnt = (size + ((XCHAL_DCACHE_LINESIZE - 1) & addr)
244 + XCHAL_DCACHE_LINESIZE - 1) / XCHAL_DCACHE_LINESIZE;
245 while (cnt--) {
246 asm volatile(" dhwbi %0, 0" : : "a"(addr));
247 addr += XCHAL_DCACHE_LINESIZE;
248 }
249 asm volatile(" dsync");
250 }
251}
252
158#endif /* __KERNEL__ */ 253#endif /* __KERNEL__ */
159#endif /* _XTENSA_CACHEFLUSH_H */ 254#endif /* _XTENSA_CACHEFLUSH_H */
diff --git a/arch/xtensa/include/asm/gpio.h b/arch/xtensa/include/asm/gpio.h
index 0763b076396..a8c9fc46c79 100644
--- a/arch/xtensa/include/asm/gpio.h
+++ b/arch/xtensa/include/asm/gpio.h
@@ -38,14 +38,14 @@ static inline int gpio_cansleep(unsigned int gpio)
38 return __gpio_cansleep(gpio); 38 return __gpio_cansleep(gpio);
39} 39}
40 40
41/*
42 * Not implemented, yet.
43 */
44static inline int gpio_to_irq(unsigned int gpio) 41static inline int gpio_to_irq(unsigned int gpio)
45{ 42{
46 return -ENOSYS; 43 return __gpio_to_irq(gpio);
47} 44}
48 45
46/*
47 * Not implemented, yet.
48 */
49static inline int irq_to_gpio(unsigned int irq) 49static inline int irq_to_gpio(unsigned int irq)
50{ 50{
51 return -EINVAL; 51 return -EINVAL;
diff --git a/arch/xtensa/include/asm/irq.h b/arch/xtensa/include/asm/irq.h
index dfac82dc52a..4c0ccc9c4f4 100644
--- a/arch/xtensa/include/asm/irq.h
+++ b/arch/xtensa/include/asm/irq.h
@@ -11,6 +11,7 @@
11#ifndef _XTENSA_IRQ_H 11#ifndef _XTENSA_IRQ_H
12#define _XTENSA_IRQ_H 12#define _XTENSA_IRQ_H
13 13
14#include <linux/init.h>
14#include <platform/hardware.h> 15#include <platform/hardware.h>
15#include <variant/core.h> 16#include <variant/core.h>
16 17
@@ -21,11 +22,20 @@ static inline void variant_irq_enable(unsigned int irq) { }
21static inline void variant_irq_disable(unsigned int irq) { } 22static inline void variant_irq_disable(unsigned int irq) { }
22#endif 23#endif
23 24
25#ifndef VARIANT_NR_IRQS
26# define VARIANT_NR_IRQS 0
27#endif
24#ifndef PLATFORM_NR_IRQS 28#ifndef PLATFORM_NR_IRQS
25# define PLATFORM_NR_IRQS 0 29# define PLATFORM_NR_IRQS 0
26#endif 30#endif
27#define XTENSA_NR_IRQS XCHAL_NUM_INTERRUPTS 31#define XTENSA_NR_IRQS XCHAL_NUM_INTERRUPTS
28#define NR_IRQS (XTENSA_NR_IRQS + PLATFORM_NR_IRQS) 32#define NR_IRQS (XTENSA_NR_IRQS + VARIANT_NR_IRQS + PLATFORM_NR_IRQS)
33
34#if VARIANT_NR_IRQS == 0
35static inline void variant_init_irq(void) { }
36#else
37void variant_init_irq(void) __init;
38#endif
29 39
30static __inline__ int irq_canonicalize(int irq) 40static __inline__ int irq_canonicalize(int irq)
31{ 41{
diff --git a/arch/xtensa/kernel/irq.c b/arch/xtensa/kernel/irq.c
index a36c85edd04..a1badb32fcd 100644
--- a/arch/xtensa/kernel/irq.c
+++ b/arch/xtensa/kernel/irq.c
@@ -197,4 +197,6 @@ void __init init_IRQ(void)
197 } 197 }
198 198
199 cached_irq_mask = 0; 199 cached_irq_mask = 0;
200
201 variant_init_irq();
200} 202}
diff --git a/arch/xtensa/kernel/process.c b/arch/xtensa/kernel/process.c
index 031f3668571..e1a04a346e7 100644
--- a/arch/xtensa/kernel/process.c
+++ b/arch/xtensa/kernel/process.c
@@ -331,11 +331,6 @@ long xtensa_execve(char __user *name, char __user * __user *argv,
331 if (IS_ERR(filename)) 331 if (IS_ERR(filename))
332 goto out; 332 goto out;
333 error = do_execve(filename, argv, envp, regs); 333 error = do_execve(filename, argv, envp, regs);
334 if (error == 0) {
335 task_lock(current);
336 current->ptrace &= ~PT_DTRACE;
337 task_unlock(current);
338 }
339 putname(filename); 334 putname(filename);
340out: 335out:
341 return error; 336 return error;
diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c
index bdd860d93f7..bc0733359a8 100644
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -106,7 +106,7 @@ good_area:
106 * the fault. 106 * the fault.
107 */ 107 */
108survive: 108survive:
109 fault = handle_mm_fault(mm, vma, address, is_write); 109 fault = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0);
110 if (unlikely(fault & VM_FAULT_ERROR)) { 110 if (unlikely(fault & VM_FAULT_ERROR)) {
111 if (fault & VM_FAULT_OOM) 111 if (fault & VM_FAULT_OOM)
112 goto out_of_memory; 112 goto out_of_memory;
diff --git a/arch/xtensa/platforms/s6105/device.c b/arch/xtensa/platforms/s6105/device.c
index 78b08be5a92..65333ffefb0 100644
--- a/arch/xtensa/platforms/s6105/device.c
+++ b/arch/xtensa/platforms/s6105/device.c
@@ -5,14 +5,27 @@
5 */ 5 */
6 6
7#include <linux/kernel.h> 7#include <linux/kernel.h>
8#include <linux/gpio.h>
8#include <linux/init.h> 9#include <linux/init.h>
10#include <linux/irq.h>
11#include <linux/phy.h>
9#include <linux/platform_device.h> 12#include <linux/platform_device.h>
10#include <linux/serial.h> 13#include <linux/serial.h>
11#include <linux/serial_8250.h> 14#include <linux/serial_8250.h>
12 15
13#include <variant/hardware.h> 16#include <variant/hardware.h>
17#include <variant/dmac.h>
14 18
19#include <platform/gpio.h>
20
21#define GPIO3_INTNUM 3
15#define UART_INTNUM 4 22#define UART_INTNUM 4
23#define GMAC_INTNUM 5
24
25static const signed char gpio3_irq_mappings[] = {
26 S6_INTC_GPIO(3),
27 -1
28};
16 29
17static const signed char uart_irq_mappings[] = { 30static const signed char uart_irq_mappings[] = {
18 S6_INTC_UART(0), 31 S6_INTC_UART(0),
@@ -20,8 +33,18 @@ static const signed char uart_irq_mappings[] = {
20 -1, 33 -1,
21}; 34};
22 35
36static const signed char gmac_irq_mappings[] = {
37 S6_INTC_GMAC_STAT,
38 S6_INTC_GMAC_ERR,
39 S6_INTC_DMA_HOSTTERMCNT(0),
40 S6_INTC_DMA_HOSTTERMCNT(1),
41 -1
42};
43
23const signed char *platform_irq_mappings[NR_IRQS] = { 44const signed char *platform_irq_mappings[NR_IRQS] = {
45 [GPIO3_INTNUM] = gpio3_irq_mappings,
24 [UART_INTNUM] = uart_irq_mappings, 46 [UART_INTNUM] = uart_irq_mappings,
47 [GMAC_INTNUM] = gmac_irq_mappings,
25}; 48};
26 49
27static struct plat_serial8250_port serial_platform_data[] = { 50static struct plat_serial8250_port serial_platform_data[] = {
@@ -46,6 +69,66 @@ static struct plat_serial8250_port serial_platform_data[] = {
46 { }, 69 { },
47}; 70};
48 71
72static struct resource s6_gmac_resource[] = {
73 {
74 .name = "mem",
75 .start = (resource_size_t)S6_REG_GMAC,
76 .end = (resource_size_t)S6_REG_GMAC + 0x10000 - 1,
77 .flags = IORESOURCE_MEM,
78 },
79 {
80 .name = "dma",
81 .start = (resource_size_t)
82 DMA_CHNL(S6_REG_HIFDMA, S6_HIFDMA_GMACTX),
83 .end = (resource_size_t)
84 DMA_CHNL(S6_REG_HIFDMA, S6_HIFDMA_GMACTX) + 0x100 - 1,
85 .flags = IORESOURCE_DMA,
86 },
87 {
88 .name = "dma",
89 .start = (resource_size_t)
90 DMA_CHNL(S6_REG_HIFDMA, S6_HIFDMA_GMACRX),
91 .end = (resource_size_t)
92 DMA_CHNL(S6_REG_HIFDMA, S6_HIFDMA_GMACRX) + 0x100 - 1,
93 .flags = IORESOURCE_DMA,
94 },
95 {
96 .name = "io",
97 .start = (resource_size_t)S6_MEM_GMAC,
98 .end = (resource_size_t)S6_MEM_GMAC + 0x2000000 - 1,
99 .flags = IORESOURCE_IO,
100 },
101 {
102 .name = "irq",
103 .start = (resource_size_t)GMAC_INTNUM,
104 .flags = IORESOURCE_IRQ,
105 },
106 {
107 .name = "irq",
108 .start = (resource_size_t)PHY_POLL,
109 .flags = IORESOURCE_IRQ,
110 },
111};
112
113static int __init prepare_phy_irq(int pin)
114{
115 int irq;
116 if (gpio_request(pin, "s6gmac_phy") < 0)
117 goto fail;
118 if (gpio_direction_input(pin) < 0)
119 goto free;
120 irq = gpio_to_irq(pin);
121 if (irq < 0)
122 goto free;
123 if (set_irq_type(irq, IRQ_TYPE_LEVEL_LOW) < 0)
124 goto free;
125 return irq;
126free:
127 gpio_free(pin);
128fail:
129 return PHY_POLL;
130}
131
49static struct platform_device platform_devices[] = { 132static struct platform_device platform_devices[] = {
50 { 133 {
51 .name = "serial8250", 134 .name = "serial8250",
@@ -54,12 +137,23 @@ static struct platform_device platform_devices[] = {
54 .platform_data = serial_platform_data, 137 .platform_data = serial_platform_data,
55 }, 138 },
56 }, 139 },
140 {
141 .name = "s6gmac",
142 .id = 0,
143 .resource = s6_gmac_resource,
144 .num_resources = ARRAY_SIZE(s6_gmac_resource),
145 },
146 {
147 I2C_BOARD_INFO("m41t62", S6I2C_ADDR_M41T62),
148 },
57}; 149};
58 150
59static int __init device_init(void) 151static int __init device_init(void)
60{ 152{
61 int i; 153 int i;
62 154
155 s6_gmac_resource[5].start = prepare_phy_irq(GPIO_PHY_IRQ);
156
63 for (i = 0; i < ARRAY_SIZE(platform_devices); i++) 157 for (i = 0; i < ARRAY_SIZE(platform_devices); i++)
64 platform_device_register(&platform_devices[i]); 158 platform_device_register(&platform_devices[i]);
65 return 0; 159 return 0;
diff --git a/arch/xtensa/platforms/s6105/setup.c b/arch/xtensa/platforms/s6105/setup.c
index 855ddeadc43..86ce730f791 100644
--- a/arch/xtensa/platforms/s6105/setup.c
+++ b/arch/xtensa/platforms/s6105/setup.c
@@ -35,12 +35,21 @@ void __init platform_setup(char **cmdline)
35{ 35{
36 unsigned long reg; 36 unsigned long reg;
37 37
38 reg = readl(S6_REG_GREG1 + S6_GREG1_PLLSEL);
39 reg &= ~(S6_GREG1_PLLSEL_GMAC_MASK << S6_GREG1_PLLSEL_GMAC |
40 S6_GREG1_PLLSEL_GMII_MASK << S6_GREG1_PLLSEL_GMII);
41 reg |= S6_GREG1_PLLSEL_GMAC_125MHZ << S6_GREG1_PLLSEL_GMAC |
42 S6_GREG1_PLLSEL_GMII_125MHZ << S6_GREG1_PLLSEL_GMII;
43 writel(reg, S6_REG_GREG1 + S6_GREG1_PLLSEL);
44
38 reg = readl(S6_REG_GREG1 + S6_GREG1_CLKGATE); 45 reg = readl(S6_REG_GREG1 + S6_GREG1_CLKGATE);
39 reg &= ~(1 << S6_GREG1_BLOCK_SB); 46 reg &= ~(1 << S6_GREG1_BLOCK_SB);
47 reg &= ~(1 << S6_GREG1_BLOCK_GMAC);
40 writel(reg, S6_REG_GREG1 + S6_GREG1_CLKGATE); 48 writel(reg, S6_REG_GREG1 + S6_GREG1_CLKGATE);
41 49
42 reg = readl(S6_REG_GREG1 + S6_GREG1_BLOCKENA); 50 reg = readl(S6_REG_GREG1 + S6_GREG1_BLOCKENA);
43 reg |= 1 << S6_GREG1_BLOCK_SB; 51 reg |= 1 << S6_GREG1_BLOCK_SB;
52 reg |= 1 << S6_GREG1_BLOCK_GMAC;
44 writel(reg, S6_REG_GREG1 + S6_GREG1_BLOCKENA); 53 writel(reg, S6_REG_GREG1 + S6_GREG1_BLOCKENA);
45 54
46 printk(KERN_NOTICE "S6105 on Stretch S6000 - " 55 printk(KERN_NOTICE "S6105 on Stretch S6000 - "
@@ -49,7 +58,7 @@ void __init platform_setup(char **cmdline)
49 58
50void __init platform_init(bp_tag_t *first) 59void __init platform_init(bp_tag_t *first)
51{ 60{
52 s6_gpio_init(); 61 s6_gpio_init(0);
53 gpio_request(GPIO_LED1_NGREEN, "led1_green"); 62 gpio_request(GPIO_LED1_NGREEN, "led1_green");
54 gpio_request(GPIO_LED1_RED, "led1_red"); 63 gpio_request(GPIO_LED1_RED, "led1_red");
55 gpio_direction_output(GPIO_LED1_NGREEN, 1); 64 gpio_direction_output(GPIO_LED1_NGREEN, 1);
diff --git a/arch/xtensa/variants/s6000/Makefile b/arch/xtensa/variants/s6000/Makefile
index d83f3805130..3e7ef0a0c49 100644
--- a/arch/xtensa/variants/s6000/Makefile
+++ b/arch/xtensa/variants/s6000/Makefile
@@ -1,4 +1,4 @@
1# s6000 Makefile 1# s6000 Makefile
2 2
3obj-y += irq.o gpio.o 3obj-y += irq.o gpio.o dmac.o
4obj-$(CONFIG_XTENSA_CALIBRATE_CCOUNT) += delay.o 4obj-$(CONFIG_XTENSA_CALIBRATE_CCOUNT) += delay.o
diff --git a/arch/xtensa/variants/s6000/dmac.c b/arch/xtensa/variants/s6000/dmac.c
new file mode 100644
index 00000000000..dc7f7c57351
--- /dev/null
+++ b/arch/xtensa/variants/s6000/dmac.c
@@ -0,0 +1,173 @@
1/*
2 * Authors: Oskar Schirmer <os@emlix.com>
3 * Daniel Gloeckner <dg@emlix.com>
4 * (c) 2008 emlix GmbH http://www.emlix.com
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version.
10 */
11
12#include <linux/kernel.h>
13#include <linux/io.h>
14#include <linux/types.h>
15#include <linux/errno.h>
16#include <linux/spinlock.h>
17#include <asm/cacheflush.h>
18#include <variant/dmac.h>
19
20/* DMA engine lookup */
21
22struct s6dmac_ctrl s6dmac_ctrl[S6_DMAC_NB];
23
24
25/* DMA control, per engine */
26
27void s6dmac_put_fifo_cache(u32 dmac, int chan, u32 src, u32 dst, u32 size)
28{
29 if (xtensa_need_flush_dma_source(src)) {
30 u32 base = src;
31 u32 span = size;
32 u32 chunk = readl(DMA_CHNL(dmac, chan) + S6_DMA_CMONCHUNK);
33 if (chunk && (size > chunk)) {
34 s32 skip =
35 readl(DMA_CHNL(dmac, chan) + S6_DMA_SRCSKIP);
36 u32 gaps = (size+chunk-1)/chunk - 1;
37 if (skip >= 0) {
38 span += gaps * skip;
39 } else if (-skip > chunk) {
40 s32 decr = gaps * (chunk + skip);
41 base += decr;
42 span = chunk - decr;
43 } else {
44 span = max(span + gaps * skip,
45 (chunk + skip) * gaps - skip);
46 }
47 }
48 flush_dcache_unaligned(base, span);
49 }
50 if (xtensa_need_invalidate_dma_destination(dst)) {
51 u32 base = dst;
52 u32 span = size;
53 u32 chunk = readl(DMA_CHNL(dmac, chan) + S6_DMA_CMONCHUNK);
54 if (chunk && (size > chunk)) {
55 s32 skip =
56 readl(DMA_CHNL(dmac, chan) + S6_DMA_DSTSKIP);
57 u32 gaps = (size+chunk-1)/chunk - 1;
58 if (skip >= 0) {
59 span += gaps * skip;
60 } else if (-skip > chunk) {
61 s32 decr = gaps * (chunk + skip);
62 base += decr;
63 span = chunk - decr;
64 } else {
65 span = max(span + gaps * skip,
66 (chunk + skip) * gaps - skip);
67 }
68 }
69 invalidate_dcache_unaligned(base, span);
70 }
71 s6dmac_put_fifo(dmac, chan, src, dst, size);
72}
73
74void s6dmac_disable_error_irqs(u32 dmac, u32 mask)
75{
76 unsigned long flags;
77 spinlock_t *spinl = &s6dmac_ctrl[_dmac_addr_index(dmac)].lock;
78 spin_lock_irqsave(spinl, flags);
79 _s6dmac_disable_error_irqs(dmac, mask);
80 spin_unlock_irqrestore(spinl, flags);
81}
82
83u32 s6dmac_int_sources(u32 dmac, u32 channel)
84{
85 u32 mask, ret, tmp;
86 mask = 1 << channel;
87
88 tmp = readl(dmac + S6_DMA_TERMCNTIRQSTAT);
89 tmp &= mask;
90 writel(tmp, dmac + S6_DMA_TERMCNTIRQCLR);
91 ret = tmp >> channel;
92
93 tmp = readl(dmac + S6_DMA_PENDCNTIRQSTAT);
94 tmp &= mask;
95 writel(tmp, dmac + S6_DMA_PENDCNTIRQCLR);
96 ret |= (tmp >> channel) << 1;
97
98 tmp = readl(dmac + S6_DMA_LOWWMRKIRQSTAT);
99 tmp &= mask;
100 writel(tmp, dmac + S6_DMA_LOWWMRKIRQCLR);
101 ret |= (tmp >> channel) << 2;
102
103 tmp = readl(dmac + S6_DMA_INTRAW0);
104 tmp &= (mask << S6_DMA_INT0_OVER) | (mask << S6_DMA_INT0_UNDER);
105 writel(tmp, dmac + S6_DMA_INTCLEAR0);
106
107 if (tmp & (mask << S6_DMA_INT0_UNDER))
108 ret |= 1 << 3;
109 if (tmp & (mask << S6_DMA_INT0_OVER))
110 ret |= 1 << 4;
111
112 tmp = readl(dmac + S6_DMA_MASTERERRINFO);
113 mask <<= S6_DMA_INT1_CHANNEL;
114 if (((tmp >> S6_DMA_MASTERERR_CHAN(0)) & S6_DMA_MASTERERR_CHAN_MASK)
115 == channel)
116 mask |= 1 << S6_DMA_INT1_MASTER;
117 if (((tmp >> S6_DMA_MASTERERR_CHAN(1)) & S6_DMA_MASTERERR_CHAN_MASK)
118 == channel)
119 mask |= 1 << (S6_DMA_INT1_MASTER + 1);
120 if (((tmp >> S6_DMA_MASTERERR_CHAN(2)) & S6_DMA_MASTERERR_CHAN_MASK)
121 == channel)
122 mask |= 1 << (S6_DMA_INT1_MASTER + 2);
123
124 tmp = readl(dmac + S6_DMA_INTRAW1) & mask;
125 writel(tmp, dmac + S6_DMA_INTCLEAR1);
126 ret |= ((tmp >> channel) & 1) << 5;
127 ret |= ((tmp >> S6_DMA_INT1_MASTER) & S6_DMA_INT1_MASTER_MASK) << 6;
128
129 return ret;
130}
131
132void s6dmac_release_chan(u32 dmac, int chan)
133{
134 if (chan >= 0)
135 s6dmac_disable_chan(dmac, chan);
136}
137
138
139/* global init */
140
141static inline void __init dmac_init(u32 dmac, u8 chan_nb)
142{
143 s6dmac_ctrl[S6_DMAC_INDEX(dmac)].dmac = dmac;
144 spin_lock_init(&s6dmac_ctrl[S6_DMAC_INDEX(dmac)].lock);
145 s6dmac_ctrl[S6_DMAC_INDEX(dmac)].chan_nb = chan_nb;
146 writel(S6_DMA_INT1_MASTER_MASK << S6_DMA_INT1_MASTER,
147 dmac + S6_DMA_INTCLEAR1);
148}
149
150static inline void __init dmac_master(u32 dmac,
151 u32 m0start, u32 m0end, u32 m1start, u32 m1end)
152{
153 writel(m0start, dmac + S6_DMA_MASTER0START);
154 writel(m0end - 1, dmac + S6_DMA_MASTER0END);
155 writel(m1start, dmac + S6_DMA_MASTER1START);
156 writel(m1end - 1, dmac + S6_DMA_MASTER1END);
157}
158
159static void __init s6_dmac_init(void)
160{
161 dmac_init(S6_REG_LMSDMA, S6_LMSDMA_NB);
162 dmac_master(S6_REG_LMSDMA,
163 S6_MEM_DDR, S6_MEM_PCIE_APER, S6_MEM_EFI, S6_MEM_GMAC);
164 dmac_init(S6_REG_NIDMA, S6_NIDMA_NB);
165 dmac_init(S6_REG_DPDMA, S6_DPDMA_NB);
166 dmac_master(S6_REG_DPDMA,
167 S6_MEM_DDR, S6_MEM_PCIE_APER, S6_REG_DP, S6_REG_DPDMA);
168 dmac_init(S6_REG_HIFDMA, S6_HIFDMA_NB);
169 dmac_master(S6_REG_HIFDMA,
170 S6_MEM_GMAC, S6_MEM_PCIE_CFG, S6_MEM_PCIE_APER, S6_MEM_AUX);
171}
172
173arch_initcall(s6_dmac_init);
diff --git a/arch/xtensa/variants/s6000/gpio.c b/arch/xtensa/variants/s6000/gpio.c
index 79317fdcf14..380a70fff75 100644
--- a/arch/xtensa/variants/s6000/gpio.c
+++ b/arch/xtensa/variants/s6000/gpio.c
@@ -4,15 +4,20 @@
4 * Copyright (c) 2009 emlix GmbH 4 * Copyright (c) 2009 emlix GmbH
5 * Authors: Oskar Schirmer <os@emlix.com> 5 * Authors: Oskar Schirmer <os@emlix.com>
6 * Johannes Weiner <jw@emlix.com> 6 * Johannes Weiner <jw@emlix.com>
7 * Daniel Gloeckner <dg@emlix.com>
7 */ 8 */
9#include <linux/bitops.h>
8#include <linux/kernel.h> 10#include <linux/kernel.h>
9#include <linux/module.h> 11#include <linux/module.h>
10#include <linux/init.h> 12#include <linux/init.h>
11#include <linux/io.h> 13#include <linux/io.h>
14#include <linux/irq.h>
12#include <linux/gpio.h> 15#include <linux/gpio.h>
13 16
14#include <variant/hardware.h> 17#include <variant/hardware.h>
15 18
19#define IRQ_BASE XTENSA_NR_IRQS
20
16#define S6_GPIO_DATA 0x000 21#define S6_GPIO_DATA 0x000
17#define S6_GPIO_IS 0x404 22#define S6_GPIO_IS 0x404
18#define S6_GPIO_IBE 0x408 23#define S6_GPIO_IBE 0x408
@@ -52,19 +57,175 @@ static void set(struct gpio_chip *chip, unsigned int off, int val)
52 writeb(val ? ~0 : 0, S6_REG_GPIO + S6_GPIO_DATA + S6_GPIO_OFFSET(off)); 57 writeb(val ? ~0 : 0, S6_REG_GPIO + S6_GPIO_DATA + S6_GPIO_OFFSET(off));
53} 58}
54 59
60static int to_irq(struct gpio_chip *chip, unsigned offset)
61{
62 if (offset < 8)
63 return offset + IRQ_BASE;
64 return -EINVAL;
65}
66
55static struct gpio_chip gpiochip = { 67static struct gpio_chip gpiochip = {
56 .owner = THIS_MODULE, 68 .owner = THIS_MODULE,
57 .direction_input = direction_input, 69 .direction_input = direction_input,
58 .get = get, 70 .get = get,
59 .direction_output = direction_output, 71 .direction_output = direction_output,
60 .set = set, 72 .set = set,
73 .to_irq = to_irq,
61 .base = 0, 74 .base = 0,
62 .ngpio = 24, 75 .ngpio = 24,
63 .can_sleep = 0, /* no blocking io needed */ 76 .can_sleep = 0, /* no blocking io needed */
64 .exported = 0, /* no exporting to userspace */ 77 .exported = 0, /* no exporting to userspace */
65}; 78};
66 79
67int s6_gpio_init(void) 80int s6_gpio_init(u32 afsel)
68{ 81{
82 writeb(afsel, S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_AFSEL);
83 writeb(afsel >> 8, S6_REG_GPIO + S6_GPIO_BANK(1) + S6_GPIO_AFSEL);
84 writeb(afsel >> 16, S6_REG_GPIO + S6_GPIO_BANK(2) + S6_GPIO_AFSEL);
69 return gpiochip_add(&gpiochip); 85 return gpiochip_add(&gpiochip);
70} 86}
87
88static void ack(unsigned int irq)
89{
90 writeb(1 << (irq - IRQ_BASE), S6_REG_GPIO + S6_GPIO_IC);
91}
92
93static void mask(unsigned int irq)
94{
95 u8 r = readb(S6_REG_GPIO + S6_GPIO_IE);
96 r &= ~(1 << (irq - IRQ_BASE));
97 writeb(r, S6_REG_GPIO + S6_GPIO_IE);
98}
99
100static void unmask(unsigned int irq)
101{
102 u8 m = readb(S6_REG_GPIO + S6_GPIO_IE);
103 m |= 1 << (irq - IRQ_BASE);
104 writeb(m, S6_REG_GPIO + S6_GPIO_IE);
105}
106
107static int set_type(unsigned int irq, unsigned int type)
108{
109 const u8 m = 1 << (irq - IRQ_BASE);
110 irq_flow_handler_t handler;
111 struct irq_desc *desc;
112 u8 reg;
113
114 if (type == IRQ_TYPE_PROBE) {
115 if ((readb(S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_AFSEL) & m)
116 || (readb(S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_IE) & m)
117 || readb(S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_DIR
118 + S6_GPIO_MASK(irq - IRQ_BASE)))
119 return 0;
120 type = IRQ_TYPE_EDGE_BOTH;
121 }
122
123 reg = readb(S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_IS);
124 if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH)) {
125 reg |= m;
126 handler = handle_level_irq;
127 } else {
128 reg &= ~m;
129 handler = handle_edge_irq;
130 }
131 writeb(reg, S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_IS);
132 desc = irq_to_desc(irq);
133 desc->handle_irq = handler;
134
135 reg = readb(S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_IEV);
136 if (type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING))
137 reg |= m;
138 else
139 reg &= ~m;
140 writeb(reg, S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_IEV);
141
142 reg = readb(S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_IBE);
143 if ((type & IRQ_TYPE_EDGE_BOTH) == IRQ_TYPE_EDGE_BOTH)
144 reg |= m;
145 else
146 reg &= ~m;
147 writeb(reg, S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_IBE);
148 return 0;
149}
150
151static struct irq_chip gpioirqs = {
152 .name = "GPIO",
153 .ack = ack,
154 .mask = mask,
155 .unmask = unmask,
156 .set_type = set_type,
157};
158
159static u8 demux_masks[4];
160
161static void demux_irqs(unsigned int irq, struct irq_desc *desc)
162{
163 u8 *mask = get_irq_desc_data(desc);
164 u8 pending;
165 int cirq;
166
167 desc->chip->mask(irq);
168 desc->chip->ack(irq);
169 pending = readb(S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_MIS) & *mask;
170 cirq = IRQ_BASE - 1;
171 while (pending) {
172 int n = ffs(pending);
173 cirq += n;
174 pending >>= n;
175 generic_handle_irq(cirq);
176 }
177 desc->chip->unmask(irq);
178}
179
180extern const signed char *platform_irq_mappings[XTENSA_NR_IRQS];
181
182void __init variant_init_irq(void)
183{
184 int irq, n;
185 writeb(0, S6_REG_GPIO + S6_GPIO_BANK(0) + S6_GPIO_IE);
186 for (irq = n = 0; irq < XTENSA_NR_IRQS; irq++) {
187 const signed char *mapping = platform_irq_mappings[irq];
188 int alone = 1;
189 u8 mask;
190 if (!mapping)
191 continue;
192 for(mask = 0; *mapping != -1; mapping++)
193 switch (*mapping) {
194 case S6_INTC_GPIO(0):
195 mask |= 1 << 0;
196 break;
197 case S6_INTC_GPIO(1):
198 mask |= 1 << 1;
199 break;
200 case S6_INTC_GPIO(2):
201 mask |= 1 << 2;
202 break;
203 case S6_INTC_GPIO(3):
204 mask |= 0x1f << 3;
205 break;
206 default:
207 alone = 0;
208 }
209 if (mask) {
210 int cirq, i;
211 if (!alone) {
212 printk(KERN_ERR "chained irq chips can't share"
213 " parent irq %i\n", irq);
214 continue;
215 }
216 demux_masks[n] = mask;
217 cirq = IRQ_BASE - 1;
218 do {
219 i = ffs(mask);
220 cirq += i;
221 mask >>= i;
222 set_irq_chip(cirq, &gpioirqs);
223 set_irq_type(irq, IRQ_TYPE_LEVEL_LOW);
224 } while (mask);
225 set_irq_data(irq, demux_masks + n);
226 set_irq_chained_handler(irq, demux_irqs);
227 if (++n == ARRAY_SIZE(demux_masks))
228 break;
229 }
230 }
231}
diff --git a/arch/xtensa/variants/s6000/include/variant/dmac.h b/arch/xtensa/variants/s6000/include/variant/dmac.h
new file mode 100644
index 00000000000..89ab9484fb7
--- /dev/null
+++ b/arch/xtensa/variants/s6000/include/variant/dmac.h
@@ -0,0 +1,387 @@
1/*
2 * include/asm-xtensa/variant-s6000/dmac.h
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * Copyright (C) 2006 Tensilica Inc.
9 * Copyright (C) 2008 Emlix GmbH <info@emlix.com>
10 * Authors: Fabian Godehardt <fg@emlix.com>
11 * Oskar Schirmer <os@emlix.com>
12 * Daniel Gloeckner <dg@emlix.com>
13 */
14
15#ifndef __ASM_XTENSA_S6000_DMAC_H
16#define __ASM_XTENSA_S6000_DMAC_H
17#include <linux/io.h>
18#include <variant/hardware.h>
19
20/* DMA global */
21
22#define S6_DMA_INTSTAT0 0x000
23#define S6_DMA_INTSTAT1 0x004
24#define S6_DMA_INTENABLE0 0x008
25#define S6_DMA_INTENABLE1 0x00C
26#define S6_DMA_INTRAW0 0x010
27#define S6_DMA_INTRAW1 0x014
28#define S6_DMA_INTCLEAR0 0x018
29#define S6_DMA_INTCLEAR1 0x01C
30#define S6_DMA_INTSET0 0x020
31#define S6_DMA_INTSET1 0x024
32#define S6_DMA_INT0_UNDER 0
33#define S6_DMA_INT0_OVER 16
34#define S6_DMA_INT1_CHANNEL 0
35#define S6_DMA_INT1_MASTER 16
36#define S6_DMA_INT1_MASTER_MASK 7
37#define S6_DMA_TERMCNTIRQSTAT 0x028
38#define S6_DMA_TERMCNTIRQCLR 0x02C
39#define S6_DMA_TERMCNTIRQSET 0x030
40#define S6_DMA_PENDCNTIRQSTAT 0x034
41#define S6_DMA_PENDCNTIRQCLR 0x038
42#define S6_DMA_PENDCNTIRQSET 0x03C
43#define S6_DMA_LOWWMRKIRQSTAT 0x040
44#define S6_DMA_LOWWMRKIRQCLR 0x044
45#define S6_DMA_LOWWMRKIRQSET 0x048
46#define S6_DMA_MASTERERRINFO 0x04C
47#define S6_DMA_MASTERERR_CHAN(n) (4*(n))
48#define S6_DMA_MASTERERR_CHAN_MASK 0xF
49#define S6_DMA_DESCRFIFO0 0x050
50#define S6_DMA_DESCRFIFO1 0x054
51#define S6_DMA_DESCRFIFO2 0x058
52#define S6_DMA_DESCRFIFO2_AUTODISABLE 24
53#define S6_DMA_DESCRFIFO3 0x05C
54#define S6_DMA_MASTER0START 0x060
55#define S6_DMA_MASTER0END 0x064
56#define S6_DMA_MASTER1START 0x068
57#define S6_DMA_MASTER1END 0x06C
58#define S6_DMA_NEXTFREE 0x070
59#define S6_DMA_NEXTFREE_CHAN 0
60#define S6_DMA_NEXTFREE_CHAN_MASK 0x1F
61#define S6_DMA_NEXTFREE_ENA 16
62#define S6_DMA_NEXTFREE_ENA_MASK ((1 << 16) - 1)
63#define S6_DMA_DPORTCTRLGRP(p) ((p) * 4 + 0x074)
64#define S6_DMA_DPORTCTRLGRP_FRAMEREP 0
65#define S6_DMA_DPORTCTRLGRP_NRCHANS 1
66#define S6_DMA_DPORTCTRLGRP_NRCHANS_1 0
67#define S6_DMA_DPORTCTRLGRP_NRCHANS_3 1
68#define S6_DMA_DPORTCTRLGRP_NRCHANS_4 2
69#define S6_DMA_DPORTCTRLGRP_NRCHANS_2 3
70#define S6_DMA_DPORTCTRLGRP_ENA 31
71
72
73/* DMA per channel */
74
75#define DMA_CHNL(dmac, n) ((dmac) + 0x1000 + (n) * 0x100)
76#define DMA_INDEX_CHNL(addr) (((addr) >> 8) & 0xF)
77#define DMA_MASK_DMAC(addr) ((addr) & 0xFFFF0000)
78#define S6_DMA_CHNCTRL 0x000
79#define S6_DMA_CHNCTRL_ENABLE 0
80#define S6_DMA_CHNCTRL_PAUSE 1
81#define S6_DMA_CHNCTRL_PRIO 2
82#define S6_DMA_CHNCTRL_PRIO_MASK 3
83#define S6_DMA_CHNCTRL_PERIPHXFER 4
84#define S6_DMA_CHNCTRL_PERIPHENA 5
85#define S6_DMA_CHNCTRL_SRCINC 6
86#define S6_DMA_CHNCTRL_DSTINC 7
87#define S6_DMA_CHNCTRL_BURSTLOG 8
88#define S6_DMA_CHNCTRL_BURSTLOG_MASK 7
89#define S6_DMA_CHNCTRL_DESCFIFODEPTH 12
90#define S6_DMA_CHNCTRL_DESCFIFODEPTH_MASK 0x1F
91#define S6_DMA_CHNCTRL_DESCFIFOFULL 17
92#define S6_DMA_CHNCTRL_BWCONSEL 18
93#define S6_DMA_CHNCTRL_BWCONENA 19
94#define S6_DMA_CHNCTRL_PENDGCNTSTAT 20
95#define S6_DMA_CHNCTRL_PENDGCNTSTAT_MASK 0x3F
96#define S6_DMA_CHNCTRL_LOWWMARK 26
97#define S6_DMA_CHNCTRL_LOWWMARK_MASK 0xF
98#define S6_DMA_CHNCTRL_TSTAMP 30
99#define S6_DMA_TERMCNTNB 0x004
100#define S6_DMA_TERMCNTNB_MASK 0xFFFF
101#define S6_DMA_TERMCNTTMO 0x008
102#define S6_DMA_TERMCNTSTAT 0x00C
103#define S6_DMA_TERMCNTSTAT_MASK 0xFF
104#define S6_DMA_CMONCHUNK 0x010
105#define S6_DMA_SRCSKIP 0x014
106#define S6_DMA_DSTSKIP 0x018
107#define S6_DMA_CUR_SRC 0x024
108#define S6_DMA_CUR_DST 0x028
109#define S6_DMA_TIMESTAMP 0x030
110
111/* DMA channel lists */
112
113#define S6_DPDMA_CHAN(stream, channel) (4 * (stream) + (channel))
114#define S6_DPDMA_NB 16
115
116#define S6_HIFDMA_GMACTX 0
117#define S6_HIFDMA_GMACRX 1
118#define S6_HIFDMA_I2S0 2
119#define S6_HIFDMA_I2S1 3
120#define S6_HIFDMA_EGIB 4
121#define S6_HIFDMA_PCITX 5
122#define S6_HIFDMA_PCIRX 6
123#define S6_HIFDMA_NB 7
124
125#define S6_NIDMA_NB 4
126
127#define S6_LMSDMA_NB 12
128
129/* controller access */
130
131#define S6_DMAC_NB 4
132#define S6_DMAC_INDEX(dmac) (((unsigned)(dmac) >> 18) % S6_DMAC_NB)
133
134struct s6dmac_ctrl {
135 u32 dmac;
136 spinlock_t lock;
137 u8 chan_nb;
138};
139
140extern struct s6dmac_ctrl s6dmac_ctrl[S6_DMAC_NB];
141
142
143/* DMA control, per channel */
144
145static inline int s6dmac_fifo_full(u32 dmac, int chan)
146{
147 return (readl(DMA_CHNL(dmac, chan) + S6_DMA_CHNCTRL)
148 & (1 << S6_DMA_CHNCTRL_DESCFIFOFULL)) && 1;
149}
150
151static inline int s6dmac_termcnt_irq(u32 dmac, int chan)
152{
153 u32 m = 1 << chan;
154 int r = (readl(dmac + S6_DMA_TERMCNTIRQSTAT) & m) && 1;
155 if (r)
156 writel(m, dmac + S6_DMA_TERMCNTIRQCLR);
157 return r;
158}
159
160static inline int s6dmac_pendcnt_irq(u32 dmac, int chan)
161{
162 u32 m = 1 << chan;
163 int r = (readl(dmac + S6_DMA_PENDCNTIRQSTAT) & m) && 1;
164 if (r)
165 writel(m, dmac + S6_DMA_PENDCNTIRQCLR);
166 return r;
167}
168
169static inline int s6dmac_lowwmark_irq(u32 dmac, int chan)
170{
171 int r = (readl(dmac + S6_DMA_LOWWMRKIRQSTAT) & (1 << chan)) ? 1 : 0;
172 if (r)
173 writel(1 << chan, dmac + S6_DMA_LOWWMRKIRQCLR);
174 return r;
175}
176
177static inline u32 s6dmac_pending_count(u32 dmac, int chan)
178{
179 return (readl(DMA_CHNL(dmac, chan) + S6_DMA_CHNCTRL)
180 >> S6_DMA_CHNCTRL_PENDGCNTSTAT)
181 & S6_DMA_CHNCTRL_PENDGCNTSTAT_MASK;
182}
183
184static inline void s6dmac_set_terminal_count(u32 dmac, int chan, u32 n)
185{
186 n &= S6_DMA_TERMCNTNB_MASK;
187 n |= readl(DMA_CHNL(dmac, chan) + S6_DMA_TERMCNTNB)
188 & ~S6_DMA_TERMCNTNB_MASK;
189 writel(n, DMA_CHNL(dmac, chan) + S6_DMA_TERMCNTNB);
190}
191
192static inline u32 s6dmac_get_terminal_count(u32 dmac, int chan)
193{
194 return (readl(DMA_CHNL(dmac, chan) + S6_DMA_TERMCNTNB))
195 & S6_DMA_TERMCNTNB_MASK;
196}
197
198static inline u32 s6dmac_timestamp(u32 dmac, int chan)
199{
200 return readl(DMA_CHNL(dmac, chan) + S6_DMA_TIMESTAMP);
201}
202
203static inline u32 s6dmac_cur_src(u32 dmac, int chan)
204{
205 return readl(DMA_CHNL(dmac, chan) + S6_DMA_CUR_SRC);
206}
207
208static inline u32 s6dmac_cur_dst(u32 dmac, int chan)
209{
210 return readl(DMA_CHNL(dmac, chan) + S6_DMA_CUR_DST);
211}
212
213static inline void s6dmac_disable_chan(u32 dmac, int chan)
214{
215 u32 ctrl;
216 writel(readl(DMA_CHNL(dmac, chan) + S6_DMA_CHNCTRL)
217 & ~(1 << S6_DMA_CHNCTRL_ENABLE),
218 DMA_CHNL(dmac, chan) + S6_DMA_CHNCTRL);
219 do
220 ctrl = readl(DMA_CHNL(dmac, chan) + S6_DMA_CHNCTRL);
221 while (ctrl & (1 << S6_DMA_CHNCTRL_ENABLE));
222}
223
224static inline void s6dmac_set_stride_skip(u32 dmac, int chan,
225 int comchunk, /* 0: disable scatter/gather */
226 int srcskip, int dstskip)
227{
228 writel(comchunk, DMA_CHNL(dmac, chan) + S6_DMA_CMONCHUNK);
229 writel(srcskip, DMA_CHNL(dmac, chan) + S6_DMA_SRCSKIP);
230 writel(dstskip, DMA_CHNL(dmac, chan) + S6_DMA_DSTSKIP);
231}
232
233static inline void s6dmac_enable_chan(u32 dmac, int chan,
234 int prio, /* 0 (highest) .. 3 (lowest) */
235 int periphxfer, /* <0: disable p.req.line, 0..1: mode */
236 int srcinc, int dstinc, /* 0: dont increment src/dst address */
237 int comchunk, /* 0: disable scatter/gather */
238 int srcskip, int dstskip,
239 int burstsize, /* 4 for I2S, 7 for everything else */
240 int bandwidthconserve, /* <0: disable, 0..1: select */
241 int lowwmark, /* 0..15 */
242 int timestamp, /* 0: disable timestamp */
243 int enable) /* 0: disable for now */
244{
245 writel(1, DMA_CHNL(dmac, chan) + S6_DMA_TERMCNTNB);
246 writel(0, DMA_CHNL(dmac, chan) + S6_DMA_TERMCNTTMO);
247 writel(lowwmark << S6_DMA_CHNCTRL_LOWWMARK,
248 DMA_CHNL(dmac, chan) + S6_DMA_CHNCTRL);
249 s6dmac_set_stride_skip(dmac, chan, comchunk, srcskip, dstskip);
250 writel(((enable ? 1 : 0) << S6_DMA_CHNCTRL_ENABLE) |
251 (prio << S6_DMA_CHNCTRL_PRIO) |
252 (((periphxfer > 0) ? 1 : 0) << S6_DMA_CHNCTRL_PERIPHXFER) |
253 (((periphxfer < 0) ? 0 : 1) << S6_DMA_CHNCTRL_PERIPHENA) |
254 ((srcinc ? 1 : 0) << S6_DMA_CHNCTRL_SRCINC) |
255 ((dstinc ? 1 : 0) << S6_DMA_CHNCTRL_DSTINC) |
256 (burstsize << S6_DMA_CHNCTRL_BURSTLOG) |
257 (((bandwidthconserve > 0) ? 1 : 0) << S6_DMA_CHNCTRL_BWCONSEL) |
258 (((bandwidthconserve < 0) ? 0 : 1) << S6_DMA_CHNCTRL_BWCONENA) |
259 (lowwmark << S6_DMA_CHNCTRL_LOWWMARK) |
260 ((timestamp ? 1 : 0) << S6_DMA_CHNCTRL_TSTAMP),
261 DMA_CHNL(dmac, chan) + S6_DMA_CHNCTRL);
262}
263
264
265/* DMA control, per engine */
266
267static inline unsigned _dmac_addr_index(u32 dmac)
268{
269 unsigned i = S6_DMAC_INDEX(dmac);
270 if (s6dmac_ctrl[i].dmac != dmac)
271 BUG();
272 return i;
273}
274
275static inline void _s6dmac_disable_error_irqs(u32 dmac, u32 mask)
276{
277 writel(mask, dmac + S6_DMA_TERMCNTIRQCLR);
278 writel(mask, dmac + S6_DMA_PENDCNTIRQCLR);
279 writel(mask, dmac + S6_DMA_LOWWMRKIRQCLR);
280 writel(readl(dmac + S6_DMA_INTENABLE0)
281 & ~((mask << S6_DMA_INT0_UNDER) | (mask << S6_DMA_INT0_OVER)),
282 dmac + S6_DMA_INTENABLE0);
283 writel(readl(dmac + S6_DMA_INTENABLE1) & ~(mask << S6_DMA_INT1_CHANNEL),
284 dmac + S6_DMA_INTENABLE1);
285 writel((mask << S6_DMA_INT0_UNDER) | (mask << S6_DMA_INT0_OVER),
286 dmac + S6_DMA_INTCLEAR0);
287 writel(mask << S6_DMA_INT1_CHANNEL, dmac + S6_DMA_INTCLEAR1);
288}
289
290/*
291 * request channel from specified engine
292 * with chan<0, accept any channel
293 * further parameters see s6dmac_enable_chan
294 * returns < 0 upon error, channel nb otherwise
295 */
296static inline int s6dmac_request_chan(u32 dmac, int chan,
297 int prio,
298 int periphxfer,
299 int srcinc, int dstinc,
300 int comchunk,
301 int srcskip, int dstskip,
302 int burstsize,
303 int bandwidthconserve,
304 int lowwmark,
305 int timestamp,
306 int enable)
307{
308 int r = chan;
309 unsigned long flags;
310 spinlock_t *spinl = &s6dmac_ctrl[_dmac_addr_index(dmac)].lock;
311 spin_lock_irqsave(spinl, flags);
312 if (r < 0) {
313 r = (readl(dmac + S6_DMA_NEXTFREE) >> S6_DMA_NEXTFREE_CHAN)
314 & S6_DMA_NEXTFREE_CHAN_MASK;
315 }
316 if (r >= s6dmac_ctrl[_dmac_addr_index(dmac)].chan_nb) {
317 if (chan < 0)
318 r = -EBUSY;
319 else
320 r = -ENXIO;
321 } else if (((readl(dmac + S6_DMA_NEXTFREE) >> S6_DMA_NEXTFREE_ENA)
322 >> r) & 1) {
323 r = -EBUSY;
324 } else {
325 s6dmac_enable_chan(dmac, r, prio, periphxfer,
326 srcinc, dstinc, comchunk, srcskip, dstskip, burstsize,
327 bandwidthconserve, lowwmark, timestamp, enable);
328 }
329 spin_unlock_irqrestore(spinl, flags);
330 return r;
331}
332
333static inline void s6dmac_put_fifo(u32 dmac, int chan,
334 u32 src, u32 dst, u32 size)
335{
336 unsigned long flags;
337 spinlock_t *spinl = &s6dmac_ctrl[_dmac_addr_index(dmac)].lock;
338 spin_lock_irqsave(spinl, flags);
339 writel(src, dmac + S6_DMA_DESCRFIFO0);
340 writel(dst, dmac + S6_DMA_DESCRFIFO1);
341 writel(size, dmac + S6_DMA_DESCRFIFO2);
342 writel(chan, dmac + S6_DMA_DESCRFIFO3);
343 spin_unlock_irqrestore(spinl, flags);
344}
345
346static inline u32 s6dmac_channel_enabled(u32 dmac, int chan)
347{
348 return readl(DMA_CHNL(dmac, chan) + S6_DMA_CHNCTRL) &
349 (1 << S6_DMA_CHNCTRL_ENABLE);
350}
351
352/*
353 * group 1-4 data port channels
354 * with port=0..3, nrch=1-4 channels,
355 * frrep=0/1 (dis- or enable frame repeat)
356 */
357static inline void s6dmac_dp_setup_group(u32 dmac, int port,
358 int nrch, int frrep)
359{
360 const static u8 mask[4] = {0, 3, 1, 2};
361 BUG_ON(dmac != S6_REG_DPDMA);
362 if ((port < 0) || (port > 3) || (nrch < 1) || (nrch > 4))
363 return;
364 writel((mask[nrch - 1] << S6_DMA_DPORTCTRLGRP_NRCHANS)
365 | ((frrep ? 1 : 0) << S6_DMA_DPORTCTRLGRP_FRAMEREP),
366 dmac + S6_DMA_DPORTCTRLGRP(port));
367}
368
369static inline void s6dmac_dp_switch_group(u32 dmac, int port, int enable)
370{
371 u32 tmp;
372 BUG_ON(dmac != S6_REG_DPDMA);
373 tmp = readl(dmac + S6_DMA_DPORTCTRLGRP(port));
374 if (enable)
375 tmp |= (1 << S6_DMA_DPORTCTRLGRP_ENA);
376 else
377 tmp &= ~(1 << S6_DMA_DPORTCTRLGRP_ENA);
378 writel(tmp, dmac + S6_DMA_DPORTCTRLGRP(port));
379}
380
381extern void s6dmac_put_fifo_cache(u32 dmac, int chan,
382 u32 src, u32 dst, u32 size);
383extern void s6dmac_disable_error_irqs(u32 dmac, u32 mask);
384extern u32 s6dmac_int_sources(u32 dmac, u32 channel);
385extern void s6dmac_release_chan(u32 dmac, int chan);
386
387#endif /* __ASM_XTENSA_S6000_DMAC_H */
diff --git a/arch/xtensa/variants/s6000/include/variant/gpio.h b/arch/xtensa/variants/s6000/include/variant/gpio.h
index 8327f62167e..8484ab0df46 100644
--- a/arch/xtensa/variants/s6000/include/variant/gpio.h
+++ b/arch/xtensa/variants/s6000/include/variant/gpio.h
@@ -1,6 +1,6 @@
1#ifndef _XTENSA_VARIANT_S6000_GPIO_H 1#ifndef _XTENSA_VARIANT_S6000_GPIO_H
2#define _XTENSA_VARIANT_S6000_GPIO_H 2#define _XTENSA_VARIANT_S6000_GPIO_H
3 3
4extern int s6_gpio_init(void); 4extern int s6_gpio_init(u32 afsel);
5 5
6#endif /* _XTENSA_VARIANT_S6000_GPIO_H */ 6#endif /* _XTENSA_VARIANT_S6000_GPIO_H */
diff --git a/arch/xtensa/variants/s6000/include/variant/irq.h b/arch/xtensa/variants/s6000/include/variant/irq.h
index fa031cb0acc..97d6fc48def 100644
--- a/arch/xtensa/variants/s6000/include/variant/irq.h
+++ b/arch/xtensa/variants/s6000/include/variant/irq.h
@@ -1,9 +1,9 @@
1#ifndef __XTENSA_S6000_IRQ_H 1#ifndef _XTENSA_S6000_IRQ_H
2#define __XTENSA_S6000_IRQ_H 2#define _XTENSA_S6000_IRQ_H
3 3
4#define NO_IRQ (-1) 4#define NO_IRQ (-1)
5#define VARIANT_NR_IRQS 8 /* GPIO interrupts */
5 6
6extern void variant_irq_enable(unsigned int irq); 7extern void variant_irq_enable(unsigned int irq);
7extern void variant_irq_disable(unsigned int irq);
8 8
9#endif /* __XTENSA_S6000_IRQ_H */ 9#endif /* __XTENSA_S6000_IRQ_H */