Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 13 Apr 2009 15:22:43 +0000 (08:22 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 13 Apr 2009 15:22:43 +0000 (08:22 -0700)
* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  percpu: unbreak alpha percpu
  mutex: have non-spinning mutexes on s390 by default

649 files changed:
Documentation/cgroups/cpuacct.txt
Documentation/infiniband/ipoib.txt
Documentation/trace/ftrace.txt [moved from Documentation/ftrace.txt with 100% similarity]
Documentation/trace/kmemtrace.txt [moved from Documentation/vm/kmemtrace.txt with 100% similarity]
Documentation/trace/mmiotrace.txt [moved from Documentation/tracers/mmiotrace.txt with 100% similarity]
Documentation/trace/tracepoints.txt [moved from Documentation/tracepoints.txt with 100% similarity]
MAINTAINERS
arch/arm/configs/magician_defconfig
arch/arm/include/asm/sizes.h
arch/arm/mach-at91/include/mach/board.h
arch/arm/mach-omap1/clock.c
arch/arm/mach-pxa/Kconfig
arch/arm/mach-pxa/Makefile
arch/arm/mach-pxa/cm-x2xx.c
arch/arm/mach-pxa/colibri-pxa300.c
arch/arm/mach-pxa/colibri-pxa320.c
arch/arm/mach-pxa/colibri-pxa3xx.c
arch/arm/mach-pxa/csb701.c
arch/arm/mach-pxa/e740.c
arch/arm/mach-pxa/e750.c
arch/arm/mach-pxa/e800.c
arch/arm/mach-pxa/em-x270.c
arch/arm/mach-pxa/include/mach/colibri.h
arch/arm/mach-pxa/include/mach/magician.h
arch/arm/mach-pxa/include/mach/palmld.h
arch/arm/mach-pxa/include/mach/palmt5.h
arch/arm/mach-pxa/include/mach/palmte2.h [new file with mode: 0644]
arch/arm/mach-pxa/include/mach/palmtx.h
arch/arm/mach-pxa/magician.c
arch/arm/mach-pxa/mioa701.c
arch/arm/mach-pxa/palmld.c
arch/arm/mach-pxa/palmt5.c
arch/arm/mach-pxa/palmte2.c [new file with mode: 0644]
arch/arm/mach-pxa/palmtx.c
arch/arm/mach-pxa/tosa.c
arch/arm/mm/mmu.c
arch/frv/include/asm/Kbuild [moved from include/asm-frv/Kbuild with 100% similarity]
arch/frv/include/asm/atomic.h [moved from include/asm-frv/atomic.h with 100% similarity]
arch/frv/include/asm/auxvec.h [moved from include/asm-frv/auxvec.h with 100% similarity]
arch/frv/include/asm/ax88796.h [moved from include/asm-frv/ax88796.h with 100% similarity]
arch/frv/include/asm/bitops.h [moved from include/asm-frv/bitops.h with 100% similarity]
arch/frv/include/asm/bug.h [moved from include/asm-frv/bug.h with 100% similarity]
arch/frv/include/asm/bugs.h [moved from include/asm-frv/bugs.h with 100% similarity]
arch/frv/include/asm/busctl-regs.h [moved from include/asm-frv/busctl-regs.h with 100% similarity]
arch/frv/include/asm/byteorder.h [moved from include/asm-frv/byteorder.h with 100% similarity]
arch/frv/include/asm/cache.h [moved from include/asm-frv/cache.h with 100% similarity]
arch/frv/include/asm/cacheflush.h [moved from include/asm-frv/cacheflush.h with 100% similarity]
arch/frv/include/asm/checksum.h [moved from include/asm-frv/checksum.h with 100% similarity]
arch/frv/include/asm/cpu-irqs.h [moved from include/asm-frv/cpu-irqs.h with 100% similarity]
arch/frv/include/asm/cpumask.h [moved from include/asm-frv/cpumask.h with 100% similarity]
arch/frv/include/asm/cputime.h [moved from include/asm-frv/cputime.h with 100% similarity]
arch/frv/include/asm/current.h [moved from include/asm-frv/current.h with 100% similarity]
arch/frv/include/asm/delay.h [moved from include/asm-frv/delay.h with 100% similarity]
arch/frv/include/asm/device.h [moved from include/asm-frv/device.h with 100% similarity]
arch/frv/include/asm/div64.h [moved from include/asm-frv/div64.h with 100% similarity]
arch/frv/include/asm/dm9000.h [moved from include/asm-frv/dm9000.h with 100% similarity]
arch/frv/include/asm/dma-mapping.h [moved from include/asm-frv/dma-mapping.h with 100% similarity]
arch/frv/include/asm/dma.h [moved from include/asm-frv/dma.h with 100% similarity]
arch/frv/include/asm/elf.h [moved from include/asm-frv/elf.h with 100% similarity]
arch/frv/include/asm/emergency-restart.h [moved from include/asm-frv/emergency-restart.h with 100% similarity]
arch/frv/include/asm/errno.h [moved from include/asm-frv/errno.h with 100% similarity]
arch/frv/include/asm/fb.h [moved from include/asm-frv/fb.h with 100% similarity]
arch/frv/include/asm/fcntl.h [moved from include/asm-frv/fcntl.h with 100% similarity]
arch/frv/include/asm/fpu.h [moved from include/asm-frv/fpu.h with 100% similarity]
arch/frv/include/asm/ftrace.h [moved from include/asm-frv/ftrace.h with 100% similarity]
arch/frv/include/asm/futex.h [moved from include/asm-frv/futex.h with 100% similarity]
arch/frv/include/asm/gdb-stub.h [moved from include/asm-frv/gdb-stub.h with 100% similarity]
arch/frv/include/asm/gpio-regs.h [moved from include/asm-frv/gpio-regs.h with 100% similarity]
arch/frv/include/asm/hardirq.h [moved from include/asm-frv/hardirq.h with 100% similarity]
arch/frv/include/asm/highmem.h [moved from include/asm-frv/highmem.h with 100% similarity]
arch/frv/include/asm/hw_irq.h [moved from include/asm-frv/hw_irq.h with 100% similarity]
arch/frv/include/asm/init.h [moved from include/asm-frv/init.h with 100% similarity]
arch/frv/include/asm/io.h [moved from include/asm-frv/io.h with 100% similarity]
arch/frv/include/asm/ioctl.h [moved from include/asm-frv/ioctl.h with 100% similarity]
arch/frv/include/asm/ioctls.h [moved from include/asm-frv/ioctls.h with 100% similarity]
arch/frv/include/asm/ipcbuf.h [moved from include/asm-frv/ipcbuf.h with 100% similarity]
arch/frv/include/asm/irc-regs.h [moved from include/asm-frv/irc-regs.h with 100% similarity]
arch/frv/include/asm/irq.h [moved from include/asm-frv/irq.h with 100% similarity]
arch/frv/include/asm/irq_regs.h [moved from include/asm-frv/irq_regs.h with 100% similarity]
arch/frv/include/asm/kdebug.h [moved from include/asm-frv/kdebug.h with 100% similarity]
arch/frv/include/asm/kmap_types.h [moved from include/asm-frv/kmap_types.h with 100% similarity]
arch/frv/include/asm/linkage.h [moved from include/asm-frv/linkage.h with 100% similarity]
arch/frv/include/asm/local.h [moved from include/asm-frv/local.h with 100% similarity]
arch/frv/include/asm/math-emu.h [moved from include/asm-frv/math-emu.h with 100% similarity]
arch/frv/include/asm/mb-regs.h [moved from include/asm-frv/mb-regs.h with 100% similarity]
arch/frv/include/asm/mb86943a.h [moved from include/asm-frv/mb86943a.h with 100% similarity]
arch/frv/include/asm/mb93091-fpga-irqs.h [moved from include/asm-frv/mb93091-fpga-irqs.h with 100% similarity]
arch/frv/include/asm/mb93093-fpga-irqs.h [moved from include/asm-frv/mb93093-fpga-irqs.h with 100% similarity]
arch/frv/include/asm/mb93493-irqs.h [moved from include/asm-frv/mb93493-irqs.h with 100% similarity]
arch/frv/include/asm/mb93493-regs.h [moved from include/asm-frv/mb93493-regs.h with 100% similarity]
arch/frv/include/asm/mc146818rtc.h [moved from include/asm-frv/mc146818rtc.h with 100% similarity]
arch/frv/include/asm/mem-layout.h [moved from include/asm-frv/mem-layout.h with 100% similarity]
arch/frv/include/asm/mman.h [moved from include/asm-frv/mman.h with 100% similarity]
arch/frv/include/asm/mmu.h [moved from include/asm-frv/mmu.h with 100% similarity]
arch/frv/include/asm/mmu_context.h [moved from include/asm-frv/mmu_context.h with 100% similarity]
arch/frv/include/asm/module.h [moved from include/asm-frv/module.h with 100% similarity]
arch/frv/include/asm/msgbuf.h [moved from include/asm-frv/msgbuf.h with 100% similarity]
arch/frv/include/asm/mutex.h [moved from include/asm-frv/mutex.h with 100% similarity]
arch/frv/include/asm/page.h [moved from include/asm-frv/page.h with 100% similarity]
arch/frv/include/asm/param.h [moved from include/asm-frv/param.h with 100% similarity]
arch/frv/include/asm/pci.h [moved from include/asm-frv/pci.h with 100% similarity]
arch/frv/include/asm/percpu.h [moved from include/asm-frv/percpu.h with 100% similarity]
arch/frv/include/asm/pgalloc.h [moved from include/asm-frv/pgalloc.h with 100% similarity]
arch/frv/include/asm/pgtable.h [moved from include/asm-frv/pgtable.h with 98% similarity]
arch/frv/include/asm/poll.h [moved from include/asm-frv/poll.h with 100% similarity]
arch/frv/include/asm/posix_types.h [moved from include/asm-frv/posix_types.h with 100% similarity]
arch/frv/include/asm/processor.h [moved from include/asm-frv/processor.h with 100% similarity]
arch/frv/include/asm/ptrace.h [moved from include/asm-frv/ptrace.h with 100% similarity]
arch/frv/include/asm/registers.h [moved from include/asm-frv/registers.h with 100% similarity]
arch/frv/include/asm/resource.h [moved from include/asm-frv/resource.h with 100% similarity]
arch/frv/include/asm/scatterlist.h [moved from include/asm-frv/scatterlist.h with 100% similarity]
arch/frv/include/asm/sections.h [moved from include/asm-frv/sections.h with 100% similarity]
arch/frv/include/asm/segment.h [moved from include/asm-frv/segment.h with 100% similarity]
arch/frv/include/asm/sembuf.h [moved from include/asm-frv/sembuf.h with 100% similarity]
arch/frv/include/asm/serial-regs.h [moved from include/asm-frv/serial-regs.h with 100% similarity]
arch/frv/include/asm/serial.h [moved from include/asm-frv/serial.h with 100% similarity]
arch/frv/include/asm/setup.h [moved from include/asm-frv/setup.h with 100% similarity]
arch/frv/include/asm/shmbuf.h [moved from include/asm-frv/shmbuf.h with 100% similarity]
arch/frv/include/asm/shmparam.h [moved from include/asm-frv/shmparam.h with 100% similarity]
arch/frv/include/asm/sigcontext.h [moved from include/asm-frv/sigcontext.h with 100% similarity]
arch/frv/include/asm/siginfo.h [moved from include/asm-frv/siginfo.h with 100% similarity]
arch/frv/include/asm/signal.h [moved from include/asm-frv/signal.h with 100% similarity]
arch/frv/include/asm/smp.h [moved from include/asm-frv/smp.h with 100% similarity]
arch/frv/include/asm/socket.h [moved from include/asm-frv/socket.h with 100% similarity]
arch/frv/include/asm/sockios.h [moved from include/asm-frv/sockios.h with 100% similarity]
arch/frv/include/asm/spinlock.h [moved from include/asm-frv/spinlock.h with 100% similarity]
arch/frv/include/asm/spr-regs.h [moved from include/asm-frv/spr-regs.h with 100% similarity]
arch/frv/include/asm/stat.h [moved from include/asm-frv/stat.h with 100% similarity]
arch/frv/include/asm/statfs.h [moved from include/asm-frv/statfs.h with 100% similarity]
arch/frv/include/asm/string.h [moved from include/asm-frv/string.h with 100% similarity]
arch/frv/include/asm/suspend.h [moved from include/asm-frv/suspend.h with 100% similarity]
arch/frv/include/asm/swab.h [moved from include/asm-frv/swab.h with 100% similarity]
arch/frv/include/asm/system.h [moved from include/asm-frv/system.h with 100% similarity]
arch/frv/include/asm/termbits.h [moved from include/asm-frv/termbits.h with 100% similarity]
arch/frv/include/asm/termios.h [moved from include/asm-frv/termios.h with 100% similarity]
arch/frv/include/asm/thread_info.h [moved from include/asm-frv/thread_info.h with 97% similarity]
arch/frv/include/asm/timer-regs.h [moved from include/asm-frv/timer-regs.h with 100% similarity]
arch/frv/include/asm/timex.h [moved from include/asm-frv/timex.h with 100% similarity]
arch/frv/include/asm/tlb.h [moved from include/asm-frv/tlb.h with 100% similarity]
arch/frv/include/asm/tlbflush.h [moved from include/asm-frv/tlbflush.h with 100% similarity]
arch/frv/include/asm/topology.h [moved from include/asm-frv/topology.h with 100% similarity]
arch/frv/include/asm/types.h [moved from include/asm-frv/types.h with 100% similarity]
arch/frv/include/asm/uaccess.h [moved from include/asm-frv/uaccess.h with 100% similarity]
arch/frv/include/asm/ucontext.h [moved from include/asm-frv/ucontext.h with 100% similarity]
arch/frv/include/asm/unaligned.h [moved from include/asm-frv/unaligned.h with 100% similarity]
arch/frv/include/asm/unistd.h [moved from include/asm-frv/unistd.h with 100% similarity]
arch/frv/include/asm/user.h [moved from include/asm-frv/user.h with 100% similarity]
arch/frv/include/asm/vga.h [moved from include/asm-frv/vga.h with 100% similarity]
arch/frv/include/asm/virtconvert.h [moved from include/asm-frv/virtconvert.h with 100% similarity]
arch/frv/include/asm/xor.h [moved from include/asm-frv/xor.h with 100% similarity]
arch/ia64/include/asm/unistd.h
arch/ia64/kernel/entry.S
arch/microblaze/Kconfig [new file with mode: 0644]
arch/microblaze/Kconfig.debug [new file with mode: 0644]
arch/microblaze/Makefile [new file with mode: 0644]
arch/microblaze/boot/Makefile [new file with mode: 0644]
arch/microblaze/configs/nommu_defconfig [new file with mode: 0644]
arch/microblaze/include/asm/Kbuild [new file with mode: 0644]
arch/microblaze/include/asm/atomic.h [new file with mode: 0644]
arch/microblaze/include/asm/auxvec.h [new file with mode: 0644]
arch/microblaze/include/asm/bitops.h [new file with mode: 0644]
arch/microblaze/include/asm/bug.h [new file with mode: 0644]
arch/microblaze/include/asm/bugs.h [new file with mode: 0644]
arch/microblaze/include/asm/byteorder.h [new file with mode: 0644]
arch/microblaze/include/asm/cache.h [new file with mode: 0644]
arch/microblaze/include/asm/cacheflush.h [new file with mode: 0644]
arch/microblaze/include/asm/checksum.h [new file with mode: 0644]
arch/microblaze/include/asm/clinkage.h [new file with mode: 0644]
arch/microblaze/include/asm/cpuinfo.h [new file with mode: 0644]
arch/microblaze/include/asm/cputable.h [new file with mode: 0644]
arch/microblaze/include/asm/cputime.h [moved from include/asm-mn10300/cputime.h with 100% similarity]
arch/microblaze/include/asm/current.h [new file with mode: 0644]
arch/microblaze/include/asm/delay.h [new file with mode: 0644]
arch/microblaze/include/asm/device.h [new file with mode: 0644]
arch/microblaze/include/asm/div64.h [new file with mode: 0644]
arch/microblaze/include/asm/dma-mapping.h [new file with mode: 0644]
arch/microblaze/include/asm/dma.h [new file with mode: 0644]
arch/microblaze/include/asm/elf.h [new file with mode: 0644]
arch/microblaze/include/asm/emergency-restart.h [moved from include/asm-mn10300/emergency-restart.h with 100% similarity]
arch/microblaze/include/asm/entry.h [new file with mode: 0644]
arch/microblaze/include/asm/errno.h [moved from include/asm-mn10300/errno.h with 100% similarity]
arch/microblaze/include/asm/exceptions.h [new file with mode: 0644]
arch/microblaze/include/asm/fcntl.h [moved from include/asm-mn10300/fcntl.h with 100% similarity]
arch/microblaze/include/asm/flat.h [new file with mode: 0644]
arch/microblaze/include/asm/futex.h [moved from include/asm-mn10300/futex.h with 100% similarity]
arch/microblaze/include/asm/gpio.h [new file with mode: 0644]
arch/microblaze/include/asm/hardirq.h [new file with mode: 0644]
arch/microblaze/include/asm/hw_irq.h [new file with mode: 0644]
arch/microblaze/include/asm/io.h [new file with mode: 0644]
arch/microblaze/include/asm/ioctl.h [moved from include/asm-mn10300/ioctl.h with 100% similarity]
arch/microblaze/include/asm/ioctls.h [new file with mode: 0644]
arch/microblaze/include/asm/ipc.h [moved from include/asm-mn10300/ipc.h with 100% similarity]
arch/microblaze/include/asm/ipcbuf.h [new file with mode: 0644]
arch/microblaze/include/asm/irq.h [new file with mode: 0644]
arch/microblaze/include/asm/irq_regs.h [new file with mode: 0644]
arch/microblaze/include/asm/irqflags.h [new file with mode: 0644]
arch/microblaze/include/asm/kdebug.h [new file with mode: 0644]
arch/microblaze/include/asm/kmap_types.h [new file with mode: 0644]
arch/microblaze/include/asm/linkage.h [new file with mode: 0644]
arch/microblaze/include/asm/lmb.h [new file with mode: 0644]
arch/microblaze/include/asm/local.h [moved from include/asm-mn10300/local.h with 100% similarity]
arch/microblaze/include/asm/mman.h [new file with mode: 0644]
arch/microblaze/include/asm/mmu.h [new file with mode: 0644]
arch/microblaze/include/asm/mmu_context.h [new file with mode: 0644]
arch/microblaze/include/asm/module.h [new file with mode: 0644]
arch/microblaze/include/asm/msgbuf.h [new file with mode: 0644]
arch/microblaze/include/asm/mutex.h [new file with mode: 0644]
arch/microblaze/include/asm/namei.h [new file with mode: 0644]
arch/microblaze/include/asm/of_device.h [new file with mode: 0644]
arch/microblaze/include/asm/of_platform.h [new file with mode: 0644]
arch/microblaze/include/asm/page.h [new file with mode: 0644]
arch/microblaze/include/asm/param.h [new file with mode: 0644]
arch/microblaze/include/asm/pci-bridge.h [new file with mode: 0644]
arch/microblaze/include/asm/pci.h [new file with mode: 0644]
arch/microblaze/include/asm/percpu.h [moved from include/asm-mn10300/percpu.h with 100% similarity]
arch/microblaze/include/asm/pgalloc.h [new file with mode: 0644]
arch/microblaze/include/asm/pgtable.h [new file with mode: 0644]
arch/microblaze/include/asm/poll.h [moved from include/asm-mn10300/poll.h with 100% similarity]
arch/microblaze/include/asm/posix_types.h [new file with mode: 0644]
arch/microblaze/include/asm/processor.h [new file with mode: 0644]
arch/microblaze/include/asm/prom.h [new file with mode: 0644]
arch/microblaze/include/asm/ptrace.h [new file with mode: 0644]
arch/microblaze/include/asm/pvr.h [new file with mode: 0644]
arch/microblaze/include/asm/registers.h [new file with mode: 0644]
arch/microblaze/include/asm/resource.h [moved from include/asm-mn10300/resource.h with 100% similarity]
arch/microblaze/include/asm/scatterlist.h [new file with mode: 0644]
arch/microblaze/include/asm/sections.h [new file with mode: 0644]
arch/microblaze/include/asm/segment.h [new file with mode: 0644]
arch/microblaze/include/asm/selfmod.h [new file with mode: 0644]
arch/microblaze/include/asm/sembuf.h [new file with mode: 0644]
arch/microblaze/include/asm/serial.h [new file with mode: 0644]
arch/microblaze/include/asm/setup.h [new file with mode: 0644]
arch/microblaze/include/asm/shmbuf.h [new file with mode: 0644]
arch/microblaze/include/asm/shmparam.h [new file with mode: 0644]
arch/microblaze/include/asm/sigcontext.h [new file with mode: 0644]
arch/microblaze/include/asm/siginfo.h [new file with mode: 0644]
arch/microblaze/include/asm/signal.h [new file with mode: 0644]
arch/microblaze/include/asm/socket.h [new file with mode: 0644]
arch/microblaze/include/asm/sockios.h [new file with mode: 0644]
arch/microblaze/include/asm/stat.h [new file with mode: 0644]
arch/microblaze/include/asm/statfs.h [moved from include/asm-mn10300/statfs.h with 100% similarity]
arch/microblaze/include/asm/string.h [new file with mode: 0644]
arch/microblaze/include/asm/swab.h [new file with mode: 0644]
arch/microblaze/include/asm/syscalls.h [new file with mode: 0644]
arch/microblaze/include/asm/system.h [new file with mode: 0644]
arch/microblaze/include/asm/termbits.h [new file with mode: 0644]
arch/microblaze/include/asm/termios.h [new file with mode: 0644]
arch/microblaze/include/asm/thread_info.h [new file with mode: 0644]
arch/microblaze/include/asm/timex.h [new file with mode: 0644]
arch/microblaze/include/asm/tlb.h [new file with mode: 0644]
arch/microblaze/include/asm/tlbflush.h [new file with mode: 0644]
arch/microblaze/include/asm/topology.h [new file with mode: 0644]
arch/microblaze/include/asm/types.h [new file with mode: 0644]
arch/microblaze/include/asm/uaccess.h [new file with mode: 0644]
arch/microblaze/include/asm/ucontext.h [new file with mode: 0644]
arch/microblaze/include/asm/unaligned.h [new file with mode: 0644]
arch/microblaze/include/asm/unistd.h [new file with mode: 0644]
arch/microblaze/include/asm/user.h [new file with mode: 0644]
arch/microblaze/include/asm/vga.h [new file with mode: 0644]
arch/microblaze/include/asm/xor.h [moved from include/asm-mn10300/xor.h with 100% similarity]
arch/microblaze/kernel/Makefile [new file with mode: 0644]
arch/microblaze/kernel/asm-offsets.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/Makefile [new file with mode: 0644]
arch/microblaze/kernel/cpu/cache.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/cpuinfo-static.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/cpuinfo.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/mb.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/pvr.c [new file with mode: 0644]
arch/microblaze/kernel/early_printk.c [new file with mode: 0644]
arch/microblaze/kernel/entry-nommu.S [new file with mode: 0644]
arch/microblaze/kernel/exceptions.c [new file with mode: 0644]
arch/microblaze/kernel/head.S [new file with mode: 0644]
arch/microblaze/kernel/heartbeat.c [new file with mode: 0644]
arch/microblaze/kernel/hw_exception_handler.S [new file with mode: 0644]
arch/microblaze/kernel/init_task.c [new file with mode: 0644]
arch/microblaze/kernel/intc.c [new file with mode: 0644]
arch/microblaze/kernel/irq.c [new file with mode: 0644]
arch/microblaze/kernel/microblaze_ksyms.c [new file with mode: 0644]
arch/microblaze/kernel/module.c [new file with mode: 0644]
arch/microblaze/kernel/of_device.c [new file with mode: 0644]
arch/microblaze/kernel/of_platform.c [new file with mode: 0644]
arch/microblaze/kernel/process.c [new file with mode: 0644]
arch/microblaze/kernel/prom.c [new file with mode: 0644]
arch/microblaze/kernel/prom_parse.c [new file with mode: 0644]
arch/microblaze/kernel/ptrace.c [new file with mode: 0644]
arch/microblaze/kernel/selfmod.c [new file with mode: 0644]
arch/microblaze/kernel/setup.c [new file with mode: 0644]
arch/microblaze/kernel/signal.c [new file with mode: 0644]
arch/microblaze/kernel/sys_microblaze.c [new file with mode: 0644]
arch/microblaze/kernel/syscall_table.S [new file with mode: 0644]
arch/microblaze/kernel/timer.c [new file with mode: 0644]
arch/microblaze/kernel/traps.c [new file with mode: 0644]
arch/microblaze/kernel/vmlinux.lds.S [new file with mode: 0644]
arch/microblaze/lib/Makefile [new file with mode: 0644]
arch/microblaze/lib/checksum.c [new file with mode: 0644]
arch/microblaze/lib/fastcopy.S [new file with mode: 0644]
arch/microblaze/lib/memcpy.c [new file with mode: 0644]
arch/microblaze/lib/memmove.c [new file with mode: 0644]
arch/microblaze/lib/memset.c [new file with mode: 0644]
arch/microblaze/lib/uaccess.c [new file with mode: 0644]
arch/microblaze/mm/Makefile [new file with mode: 0644]
arch/microblaze/mm/init.c [new file with mode: 0644]
arch/microblaze/platform/Kconfig.platform [new file with mode: 0644]
arch/microblaze/platform/Makefile [new file with mode: 0644]
arch/microblaze/platform/generic/Kconfig.auto [new file with mode: 0644]
arch/microblaze/platform/generic/Makefile [new file with mode: 0644]
arch/microblaze/platform/generic/system.dts [new file with mode: 0644]
arch/microblaze/platform/platform.c [new file with mode: 0644]
arch/mn10300/Kconfig
arch/mn10300/Makefile
arch/mn10300/include/asm/Kbuild [moved from include/asm-mn10300/Kbuild with 100% similarity]
arch/mn10300/include/asm/atomic.h [moved from include/asm-mn10300/atomic.h with 100% similarity]
arch/mn10300/include/asm/auxvec.h [moved from include/asm-mn10300/auxvec.h with 100% similarity]
arch/mn10300/include/asm/bitops.h [moved from include/asm-mn10300/bitops.h with 100% similarity]
arch/mn10300/include/asm/bug.h [moved from include/asm-mn10300/bug.h with 100% similarity]
arch/mn10300/include/asm/bugs.h [moved from include/asm-mn10300/bugs.h with 100% similarity]
arch/mn10300/include/asm/busctl-regs.h [moved from include/asm-mn10300/busctl-regs.h with 100% similarity]
arch/mn10300/include/asm/byteorder.h [moved from include/asm-mn10300/byteorder.h with 100% similarity]
arch/mn10300/include/asm/cache.h [moved from include/asm-mn10300/cache.h with 98% similarity]
arch/mn10300/include/asm/cacheflush.h [moved from include/asm-mn10300/cacheflush.h with 100% similarity]
arch/mn10300/include/asm/checksum.h [moved from include/asm-mn10300/checksum.h with 100% similarity]
arch/mn10300/include/asm/cpu-regs.h [moved from include/asm-mn10300/cpu-regs.h with 100% similarity]
arch/mn10300/include/asm/cputime.h [new file with mode: 0644]
arch/mn10300/include/asm/current.h [moved from include/asm-mn10300/current.h with 100% similarity]
arch/mn10300/include/asm/delay.h [moved from include/asm-mn10300/delay.h with 100% similarity]
arch/mn10300/include/asm/device.h [moved from include/asm-mn10300/device.h with 100% similarity]
arch/mn10300/include/asm/div64.h [moved from include/asm-mn10300/div64.h with 100% similarity]
arch/mn10300/include/asm/dma-mapping.h [moved from include/asm-mn10300/dma-mapping.h with 100% similarity]
arch/mn10300/include/asm/dma.h [moved from include/asm-mn10300/dma.h with 100% similarity]
arch/mn10300/include/asm/dmactl-regs.h [moved from include/asm-mn10300/dmactl-regs.h with 100% similarity]
arch/mn10300/include/asm/elf.h [moved from include/asm-mn10300/elf.h with 100% similarity]
arch/mn10300/include/asm/emergency-restart.h [new file with mode: 0644]
arch/mn10300/include/asm/errno.h [new file with mode: 0644]
arch/mn10300/include/asm/exceptions.h [moved from include/asm-mn10300/exceptions.h with 100% similarity]
arch/mn10300/include/asm/fb.h [moved from include/asm-mn10300/fb.h with 100% similarity]
arch/mn10300/include/asm/fcntl.h [new file with mode: 0644]
arch/mn10300/include/asm/fpu.h [moved from include/asm-mn10300/fpu.h with 100% similarity]
arch/mn10300/include/asm/frame.inc [moved from include/asm-mn10300/frame.inc with 100% similarity]
arch/mn10300/include/asm/ftrace.h [moved from include/asm-mn10300/ftrace.h with 100% similarity]
arch/mn10300/include/asm/futex.h [new file with mode: 0644]
arch/mn10300/include/asm/gdb-stub.h [moved from include/asm-mn10300/gdb-stub.h with 100% similarity]
arch/mn10300/include/asm/hardirq.h [moved from include/asm-mn10300/hardirq.h with 100% similarity]
arch/mn10300/include/asm/highmem.h [moved from include/asm-mn10300/highmem.h with 100% similarity]
arch/mn10300/include/asm/hw_irq.h [moved from include/asm-mn10300/hw_irq.h with 100% similarity]
arch/mn10300/include/asm/intctl-regs.h [moved from include/asm-mn10300/intctl-regs.h with 100% similarity]
arch/mn10300/include/asm/io.h [moved from include/asm-mn10300/io.h with 100% similarity]
arch/mn10300/include/asm/ioctl.h [new file with mode: 0644]
arch/mn10300/include/asm/ioctls.h [moved from include/asm-mn10300/ioctls.h with 100% similarity]
arch/mn10300/include/asm/ipc.h [new file with mode: 0644]
arch/mn10300/include/asm/ipcbuf.h [moved from include/asm-mn10300/ipcbuf.h with 100% similarity]
arch/mn10300/include/asm/irq.h [moved from include/asm-mn10300/irq.h with 97% similarity]
arch/mn10300/include/asm/irq_regs.h [moved from include/asm-mn10300/irq_regs.h with 100% similarity]
arch/mn10300/include/asm/kdebug.h [moved from include/asm-mn10300/kdebug.h with 100% similarity]
arch/mn10300/include/asm/kmap_types.h [moved from include/asm-mn10300/kmap_types.h with 100% similarity]
arch/mn10300/include/asm/kprobes.h [moved from include/asm-mn10300/kprobes.h with 100% similarity]
arch/mn10300/include/asm/linkage.h [moved from include/asm-mn10300/linkage.h with 100% similarity]
arch/mn10300/include/asm/local.h [new file with mode: 0644]
arch/mn10300/include/asm/mc146818rtc.h [moved from include/asm-mn10300/mc146818rtc.h with 100% similarity]
arch/mn10300/include/asm/mman.h [moved from include/asm-mn10300/mman.h with 100% similarity]
arch/mn10300/include/asm/mmu.h [moved from include/asm-mn10300/mmu.h with 100% similarity]
arch/mn10300/include/asm/mmu_context.h [moved from include/asm-mn10300/mmu_context.h with 100% similarity]
arch/mn10300/include/asm/module.h [moved from include/asm-mn10300/module.h with 100% similarity]
arch/mn10300/include/asm/msgbuf.h [moved from include/asm-mn10300/msgbuf.h with 100% similarity]
arch/mn10300/include/asm/mutex.h [moved from include/asm-mn10300/mutex.h with 100% similarity]
arch/mn10300/include/asm/nmi.h [moved from include/asm-mn10300/nmi.h with 100% similarity]
arch/mn10300/include/asm/page.h [moved from include/asm-mn10300/page.h with 100% similarity]
arch/mn10300/include/asm/page_offset.h [moved from include/asm-mn10300/page_offset.h with 100% similarity]
arch/mn10300/include/asm/param.h [moved from include/asm-mn10300/param.h with 100% similarity]
arch/mn10300/include/asm/pci.h [moved from include/asm-mn10300/pci.h with 100% similarity]
arch/mn10300/include/asm/percpu.h [new file with mode: 0644]
arch/mn10300/include/asm/pgalloc.h [moved from include/asm-mn10300/pgalloc.h with 100% similarity]
arch/mn10300/include/asm/pgtable.h [moved from include/asm-mn10300/pgtable.h with 100% similarity]
arch/mn10300/include/asm/pio-regs.h [moved from include/asm-mn10300/pio-regs.h with 100% similarity]
arch/mn10300/include/asm/poll.h [new file with mode: 0644]
arch/mn10300/include/asm/posix_types.h [moved from include/asm-mn10300/posix_types.h with 100% similarity]
arch/mn10300/include/asm/processor.h [moved from include/asm-mn10300/processor.h with 100% similarity]
arch/mn10300/include/asm/ptrace.h [moved from include/asm-mn10300/ptrace.h with 100% similarity]
arch/mn10300/include/asm/reset-regs.h [moved from include/asm-mn10300/reset-regs.h with 100% similarity]
arch/mn10300/include/asm/resource.h [new file with mode: 0644]
arch/mn10300/include/asm/rtc-regs.h [moved from include/asm-mn10300/rtc-regs.h with 100% similarity]
arch/mn10300/include/asm/rtc.h [moved from include/asm-mn10300/rtc.h with 100% similarity]
arch/mn10300/include/asm/scatterlist.h [moved from include/asm-mn10300/scatterlist.h with 100% similarity]
arch/mn10300/include/asm/sections.h [moved from include/asm-mn10300/sections.h with 100% similarity]
arch/mn10300/include/asm/sembuf.h [moved from include/asm-mn10300/sembuf.h with 100% similarity]
arch/mn10300/include/asm/serial-regs.h [moved from include/asm-mn10300/serial-regs.h with 100% similarity]
arch/mn10300/include/asm/serial.h [moved from include/asm-mn10300/serial.h with 97% similarity]
arch/mn10300/include/asm/setup.h [moved from include/asm-mn10300/setup.h with 100% similarity]
arch/mn10300/include/asm/shmbuf.h [moved from include/asm-mn10300/shmbuf.h with 100% similarity]
arch/mn10300/include/asm/shmparam.h [moved from include/asm-mn10300/shmparam.h with 100% similarity]
arch/mn10300/include/asm/sigcontext.h [moved from include/asm-mn10300/sigcontext.h with 100% similarity]
arch/mn10300/include/asm/siginfo.h [moved from include/asm-mn10300/siginfo.h with 100% similarity]
arch/mn10300/include/asm/signal.h [moved from include/asm-mn10300/signal.h with 100% similarity]
arch/mn10300/include/asm/smp.h [moved from include/asm-mn10300/smp.h with 100% similarity]
arch/mn10300/include/asm/socket.h [moved from include/asm-mn10300/socket.h with 100% similarity]
arch/mn10300/include/asm/sockios.h [moved from include/asm-mn10300/sockios.h with 100% similarity]
arch/mn10300/include/asm/spinlock.h [moved from include/asm-mn10300/spinlock.h with 100% similarity]
arch/mn10300/include/asm/stat.h [moved from include/asm-mn10300/stat.h with 100% similarity]
arch/mn10300/include/asm/statfs.h [new file with mode: 0644]
arch/mn10300/include/asm/string.h [moved from include/asm-mn10300/string.h with 100% similarity]
arch/mn10300/include/asm/swab.h [moved from include/asm-mn10300/swab.h with 100% similarity]
arch/mn10300/include/asm/system.h [moved from include/asm-mn10300/system.h with 100% similarity]
arch/mn10300/include/asm/termbits.h [moved from include/asm-mn10300/termbits.h with 100% similarity]
arch/mn10300/include/asm/termios.h [moved from include/asm-mn10300/termios.h with 100% similarity]
arch/mn10300/include/asm/thread_info.h [moved from include/asm-mn10300/thread_info.h with 100% similarity]
arch/mn10300/include/asm/timer-regs.h [moved from include/asm-mn10300/timer-regs.h with 100% similarity]
arch/mn10300/include/asm/timex.h [moved from include/asm-mn10300/timex.h with 96% similarity]
arch/mn10300/include/asm/tlb.h [moved from include/asm-mn10300/tlb.h with 100% similarity]
arch/mn10300/include/asm/tlbflush.h [moved from include/asm-mn10300/tlbflush.h with 100% similarity]
arch/mn10300/include/asm/topology.h [moved from include/asm-mn10300/topology.h with 100% similarity]
arch/mn10300/include/asm/types.h [moved from include/asm-mn10300/types.h with 100% similarity]
arch/mn10300/include/asm/uaccess.h [moved from include/asm-mn10300/uaccess.h with 100% similarity]
arch/mn10300/include/asm/ucontext.h [moved from include/asm-mn10300/ucontext.h with 100% similarity]
arch/mn10300/include/asm/unaligned.h [moved from include/asm-mn10300/unaligned.h with 100% similarity]
arch/mn10300/include/asm/unistd.h [moved from include/asm-mn10300/unistd.h with 100% similarity]
arch/mn10300/include/asm/user.h [moved from include/asm-mn10300/user.h with 100% similarity]
arch/mn10300/include/asm/vga.h [moved from include/asm-mn10300/vga.h with 100% similarity]
arch/mn10300/include/asm/xor.h [new file with mode: 0644]
arch/mn10300/kernel/entry.S
arch/mn10300/kernel/gdb-io-serial-low.S
arch/mn10300/kernel/gdb-io-serial.c
arch/mn10300/kernel/gdb-io-ttysm-low.S
arch/mn10300/kernel/gdb-io-ttysm.c
arch/mn10300/kernel/gdb-stub.c
arch/mn10300/kernel/head.S
arch/mn10300/kernel/irq.c
arch/mn10300/kernel/mn10300-serial-low.S
arch/mn10300/kernel/mn10300-serial.c
arch/mn10300/kernel/mn10300-watchdog.c
arch/mn10300/kernel/setup.c
arch/mn10300/kernel/traps.c
arch/mn10300/oprofile/Kconfig [deleted file]
arch/mn10300/proc-mn103e010/include/proc/cache.h [moved from include/asm-mn10300/proc-mn103e010/cache.h with 100% similarity]
arch/mn10300/proc-mn103e010/include/proc/clock.h [moved from include/asm-mn10300/proc-mn103e010/clock.h with 94% similarity]
arch/mn10300/proc-mn103e010/include/proc/irq.h [moved from include/asm-mn10300/proc-mn103e010/irq.h with 100% similarity]
arch/mn10300/proc-mn103e010/include/proc/proc.h [moved from include/asm-mn10300/proc-mn103e010/proc.h with 100% similarity]
arch/mn10300/unit-asb2303/include/unit/clock.h [moved from include/asm-mn10300/unit-asb2303/clock.h with 100% similarity]
arch/mn10300/unit-asb2303/include/unit/leds.h [moved from include/asm-mn10300/unit-asb2303/leds.h with 100% similarity]
arch/mn10300/unit-asb2303/include/unit/serial.h [moved from include/asm-mn10300/unit-asb2303/serial.h with 99% similarity]
arch/mn10300/unit-asb2303/include/unit/smc91111.h [moved from include/asm-mn10300/unit-asb2303/smc91111.h with 100% similarity]
arch/mn10300/unit-asb2303/include/unit/timex.h [moved from include/asm-mn10300/unit-asb2303/timex.h with 98% similarity]
arch/mn10300/unit-asb2303/leds.c
arch/mn10300/unit-asb2303/smc91111.c
arch/mn10300/unit-asb2305/include/unit/clock.h [moved from include/asm-mn10300/unit-asb2305/clock.h with 100% similarity]
arch/mn10300/unit-asb2305/include/unit/leds.h [moved from include/asm-mn10300/unit-asb2305/leds.h with 100% similarity]
arch/mn10300/unit-asb2305/include/unit/serial.h [moved from include/asm-mn10300/unit-asb2305/serial.h with 99% similarity]
arch/mn10300/unit-asb2305/include/unit/timex.h [moved from include/asm-mn10300/unit-asb2305/timex.h with 98% similarity]
arch/mn10300/unit-asb2305/leds.c
arch/mn10300/unit-asb2305/unit-init.c
arch/sparc/include/asm/unistd.h
arch/sparc/kernel/of_device_64.c
arch/sparc/kernel/pci_fire.c
arch/sparc/kernel/pci_psycho.c
arch/sparc/kernel/pci_sabre.c
arch/sparc/kernel/pci_sun4v.c
arch/sparc/kernel/power.c
arch/sparc/kernel/systbls_32.S
arch/sparc/kernel/systbls_64.S
arch/sparc/mm/init_64.c
arch/x86/Kconfig
arch/x86/boot/video-vga.c
arch/x86/include/asm/cpu_debug.h [changed mode: 0755->0644]
arch/x86/include/asm/cpufeature.h
arch/x86/include/asm/fixmap.h
arch/x86/include/asm/paravirt.h
arch/x86/kernel/apic/apic.c
arch/x86/kernel/apic/apic_flat_64.c
arch/x86/kernel/cpu/addon_cpuid_features.c
arch/x86/kernel/cpu/cpu_debug.c [changed mode: 0755->0644]
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
arch/x86/kernel/cpu/cpufreq/longhaul.c
arch/x86/kernel/ftrace.c
arch/x86/kernel/irq.c
arch/x86/kernel/ptrace.c
arch/x86/kernel/reboot.c
arch/x86/mm/pgtable.c
arch/x86/xen/mmu.c
drivers/acpi/acpica/hwvalid.c
drivers/acpi/proc.c
drivers/acpi/processor_idle.c
drivers/acpi/scan.c
drivers/acpi/sleep.h
drivers/acpi/thermal.c
drivers/acpi/video.c
drivers/acpi/wakeup.c
drivers/block/xsysace.c
drivers/ide/at91_ide.c
drivers/ide/falconide.c
drivers/ide/ide-acpi.c
drivers/ide/ide-atapi.c
drivers/ide/ide-cd.c
drivers/ide/ide-disk.c
drivers/ide/ide-disk_proc.c
drivers/ide/ide-dma-sff.c
drivers/ide/ide-h8300.c
drivers/ide/ide-io-std.c
drivers/ide/ide-io.c
drivers/ide/ide-ioctls.c
drivers/ide/ide-iops.c
drivers/ide/ide-lib.c
drivers/ide/ide-park.c
drivers/ide/ide-pm.c
drivers/ide/ide-probe.c
drivers/ide/ide-proc.c
drivers/ide/ide-taskfile.c
drivers/ide/ns87415.c
drivers/ide/q40ide.c
drivers/ide/scc_pata.c
drivers/ide/tx4938ide.c
drivers/ide/tx4939ide.c
drivers/infiniband/core/cma.c
drivers/infiniband/hw/cxgb3/cxio_hal.c
drivers/infiniband/hw/cxgb3/cxio_hal.h
drivers/infiniband/hw/cxgb3/iwch.c
drivers/infiniband/hw/cxgb3/iwch.h
drivers/infiniband/hw/cxgb3/iwch_cm.c
drivers/infiniband/hw/cxgb3/iwch_cm.h
drivers/infiniband/hw/cxgb3/iwch_qp.c
drivers/infiniband/hw/mlx4/main.c
drivers/infiniband/hw/nes/nes.h
drivers/infiniband/hw/nes/nes_cm.c
drivers/infiniband/hw/nes/nes_cm.h
drivers/infiniband/hw/nes/nes_hw.c
drivers/infiniband/hw/nes/nes_hw.h
drivers/infiniband/hw/nes/nes_nic.c
drivers/infiniband/ulp/ipoib/ipoib_vlan.c
drivers/leds/leds-gpio.c
drivers/md/dm-ioctl.c
drivers/md/dm-kcopyd.c
drivers/md/dm-linear.c
drivers/md/dm-table.c
drivers/md/dm.c
drivers/md/dm.h
drivers/media/dvb/ttpci/Kconfig
drivers/media/dvb/ttpci/Makefile
drivers/media/dvb/ttpci/av7110.c
drivers/media/dvb/ttpci/av7110_hw.c
drivers/media/dvb/ttpci/av7110_hw.h
drivers/media/dvb/ttpci/fdump.c [deleted file]
drivers/mmc/core/mmc.c
drivers/mmc/core/sd.c
drivers/mmc/host/imxmmc.c
drivers/mmc/host/mmc_spi.c
drivers/mmc/host/omap_hsmmc.c
drivers/mmc/host/sdhci-pci.c
drivers/mmc/host/sdhci.c
drivers/mmc/host/wbsd.c
drivers/net/Kconfig
drivers/net/Makefile
drivers/net/bnx2.c
drivers/net/eql.c
drivers/net/fec.c
drivers/net/igb/igb_main.c
drivers/net/igbvf/Makefile [new file with mode: 0644]
drivers/net/igbvf/defines.h [new file with mode: 0644]
drivers/net/igbvf/ethtool.c [new file with mode: 0644]
drivers/net/igbvf/igbvf.h [new file with mode: 0644]
drivers/net/igbvf/mbx.c [new file with mode: 0644]
drivers/net/igbvf/mbx.h [new file with mode: 0644]
drivers/net/igbvf/netdev.c [new file with mode: 0644]
drivers/net/igbvf/regs.h [new file with mode: 0644]
drivers/net/igbvf/vf.c [new file with mode: 0644]
drivers/net/igbvf/vf.h [new file with mode: 0644]
drivers/net/mlx4/port.c
drivers/net/mv643xx_eth.c
drivers/net/niu.c
drivers/net/r6040.c
drivers/net/smc91x.h
drivers/net/smsc911x.c
drivers/platform/x86/fujitsu-laptop.c
drivers/platform/x86/panasonic-laptop.c
drivers/platform/x86/sony-laptop.c
drivers/platform/x86/wmi.c
drivers/power/pcf50633-charger.c
drivers/power/pda_power.c
drivers/scsi/qla1280.c
drivers/serial/Kconfig
drivers/serial/max3100.c [new file with mode: 0644]
drivers/serial/sunsu.c
drivers/usb/host/ohci-at91.c
drivers/watchdog/Kconfig
drivers/watchdog/Makefile
drivers/watchdog/at91rm9200_wdt.c
drivers/watchdog/i6300esb.c
drivers/watchdog/ks8695_wdt.c
drivers/watchdog/omap_wdt.c
drivers/watchdog/orion5x_wdt.c
firmware/.gitignore
firmware/Makefile
firmware/README.AddingFirmware [new file with mode: 0644]
firmware/WHENCE
firmware/av7110/Boot.S [new file with mode: 0644]
firmware/av7110/bootcode.bin.ihex [new file with mode: 0644]
firmware/ihex2fw.c [moved from scripts/ihex2fw.c with 100% similarity]
firmware/slicoss/gbdownload.sys.ihex [deleted file]
firmware/slicoss/gbrcvucode.sys.ihex [deleted file]
firmware/slicoss/oasisdbgdownload.sys.ihex [deleted file]
firmware/slicoss/oasisdownload.sys.ihex [deleted file]
firmware/slicoss/oasisrcvucode.sys.ihex [deleted file]
firmware/sxg/saharadbgdownloadB.sys.ihex [deleted file]
firmware/sxg/saharadownloadB.sys.ihex [deleted file]
firmware/yamaha/yss225_registers.bin.ihex [new file with mode: 0644]
fs/afs/netdevices.c
fs/befs/super.c
fs/buffer.c
fs/ext3/inode.c
fs/ext4/extents.c
fs/ext4/inode.c
fs/ext4/super.c
fs/proc/task_nommu.c
include/acpi/acpi_bus.h
include/asm-mn10300/.gitignore [deleted file]
include/linux/device-mapper.h
include/linux/ftrace.h
include/linux/ide.h
include/linux/irq.h
include/linux/kmod.h
include/linux/mfd/pcf50633/core.h
include/linux/mfd/pcf50633/mbc.h
include/linux/pda_power.h
include/linux/sched.h
include/linux/serial_max3100.h [new file with mode: 0644]
include/linux/syscalls.h
include/net/netfilter/nf_conntrack_expect.h
include/trace/syscall.h [new file with mode: 0644]
kernel/fork.c
kernel/irq/numa_migrate.c
kernel/kthread.c
kernel/module.c
kernel/posix-cpu-timers.c
kernel/ptrace.c
kernel/sched.c
kernel/sched_cpupri.c
kernel/sched_rt.c
kernel/timer.c
kernel/trace/blktrace.c
kernel/trace/trace_syscalls.c
kernel/workqueue.c
net/ipv6/netfilter/ip6_tables.c
net/netfilter/Kconfig
net/netfilter/nf_conntrack_expect.c
scripts/.gitignore
scripts/Makefile
security/commoncap.c
security/keys/request_key.c
sound/isa/Kconfig
sound/isa/wavefront/wavefront_fx.c
sound/isa/wavefront/yss225.c [deleted file]
sound/sparc/cs4231.c

index bb775fbe43d78f6f5083f03a7986d9edf9012a05..8b930946c52a7dec05657470016946b1c3492123 100644 (file)
@@ -30,3 +30,21 @@ The above steps create a new group g1 and move the current shell
 process (bash) into it. CPU time consumed by this bash and its children
 can be obtained from g1/cpuacct.usage and the same is accumulated in
 /cgroups/cpuacct.usage also.
+
+cpuacct.stat file lists a few statistics which further divide the
+CPU time obtained by the cgroup into user and system times. Currently
+the following statistics are supported:
+
+user: Time spent by tasks of the cgroup in user mode.
+system: Time spent by tasks of the cgroup in kernel mode.
+
+user and system are in USER_HZ unit.
+
+cpuacct controller uses percpu_counter interface to collect user and
+system times. This has two side effects:
+
+- It is theoretically possible to see wrong values for user and system times.
+  This is because percpu_counter_read() on 32bit systems isn't safe
+  against concurrent writes.
+- It is possible to see slightly outdated values for user and system times
+  due to the batch processing nature of percpu_counter.
index 864ff32837803da00c5c0d8cfde27e754216ef95..6d40f00b358caa42a1d217fb7f6c6a185915ea86 100644 (file)
@@ -24,6 +24,49 @@ Partitions and P_Keys
   The P_Key for any interface is given by the "pkey" file, and the
   main interface for a subinterface is in "parent."
 
+Datagram vs Connected modes
+
+  The IPoIB driver supports two modes of operation: datagram and
+  connected.  The mode is set and read through an interface's
+  /sys/class/net/<intf name>/mode file.
+
+  In datagram mode, the IB UD (Unreliable Datagram) transport is used
+  and so the interface MTU has is equal to the IB L2 MTU minus the
+  IPoIB encapsulation header (4 bytes).  For example, in a typical IB
+  fabric with a 2K MTU, the IPoIB MTU will be 2048 - 4 = 2044 bytes.
+
+  In connected mode, the IB RC (Reliable Connected) transport is used.
+  Connected mode is to takes advantage of the connected nature of the
+  IB transport and allows an MTU up to the maximal IP packet size of
+  64K, which reduces the number of IP packets needed for handling
+  large UDP datagrams, TCP segments, etc and increases the performance
+  for large messages.
+
+  In connected mode, the interface's UD QP is still used for multicast
+  and communication with peers that don't support connected mode. In
+  this case, RX emulation of ICMP PMTU packets is used to cause the
+  networking stack to use the smaller UD MTU for these neighbours.
+
+Stateless offloads
+
+  If the IB HW supports IPoIB stateless offloads, IPoIB advertises
+  TCP/IP checksum and/or Large Send (LSO) offloading capability to the
+  network stack.
+
+  Large Receive (LRO) offloading is also implemented and may be turned
+  on/off using ethtool calls.  Currently LRO is supported only for
+  checksum offload capable devices.
+
+  Stateless offloads are supported only in datagram mode.  
+
+Interrupt moderation
+
+  If the underlying IB device supports CQ event moderation, one can
+  use ethtool to set interrupt mitigation parameters and thus reduce
+  the overhead incurred by handling interrupts.  The main code path of
+  IPoIB doesn't use events for TX completion signaling so only RX
+  moderation is supported.
+
 Debugging Information
 
   By compiling the IPoIB driver with CONFIG_INFINIBAND_IPOIB_DEBUG set
@@ -55,3 +98,5 @@ References
     http://ietf.org/rfc/rfc4391.txt 
   IP over InfiniBand (IPoIB) Architecture (RFC 4392)
     http://ietf.org/rfc/rfc4392.txt 
+  IP over InfiniBand: Connected Mode (RFC 4755)
+    http://ietf.org/rfc/rfc4755.txt
index c3b215970f7b439fd83cf1dc2009979c3ce0a84f..bff9f9fafbbd3e6e8d76f41d902b76a6abf109a8 100644 (file)
@@ -636,7 +636,7 @@ P:  Dirk Opfer
 M:     dirk@opfer-online.de
 S:     Maintained
 
-ARM/PALMTX,PALMT5,PALMLD SUPPORT
+ARM/PALMTX,PALMT5,PALMLD,PALMTE2 SUPPORT
 P:     Marek Vasut
 M:     marek.vasut@gmail.com
 W:     http://hackndev.com
@@ -2992,6 +2992,14 @@ L:       linux-mtd@lists.infradead.org
 T:     git git://git.infradead.org/mtd-2.6.git
 S:     Maintained
 
+MICROBLAZE ARCHITECTURE
+P:     Michal Simek
+M:     monstr@monstr.eu
+L:     microblaze-uclinux@itee.uq.edu.au
+W:     http://www.monstr.eu/fdt/
+T:     git git://git.monstr.eu/linux-2.6-microblaze.git
+S:     Supported
+
 MICROTEK X6 SCANNER
 P:     Oliver Neukum
 M:     oliver@neukum.name
@@ -3057,7 +3065,7 @@ S:        Supported
 
 MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
 P:     Pierre Ossman
-M:     drzeus-mmc@drzeus.cx
+M:     pierre@ossman.eu
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
 
@@ -3873,8 +3881,8 @@ S:        Maintained
 SCHEDULER
 P:     Ingo Molnar
 M:     mingo@elte.hu
-P:     Robert Love    [the preemptible kernel bits]
-M:     rml@tech9.net
+P:     Peter Zijlstra
+M:     peterz@infradead.org
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
 
@@ -3939,7 +3947,7 @@ S:        Maintained
 
 SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
 P:     Pierre Ossman
-M:     drzeus-sdhci@drzeus.cx
+M:     pierre@ossman.eu
 L:     sdhci-devel@lists.ossman.eu
 S:     Maintained
 
@@ -4926,7 +4934,7 @@ S:        Maintained
 
 W83L51xD SD/MMC CARD INTERFACE DRIVER
 P:     Pierre Ossman
-M:     drzeus-wbsd@drzeus.cx
+M:     pierre@ossman.eu
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
 
index 82428c2f234cb4c1b6f509aed187d52164211834..f56837f69ca7323130828ab367e736e59ca98ea6 100644 (file)
@@ -1183,7 +1183,11 @@ CONFIG_RTC_INTF_DEV=y
 CONFIG_RTC_DRV_SA1100=y
 # CONFIG_RTC_DRV_PXA is not set
 # CONFIG_DMADEVICES is not set
-# CONFIG_REGULATOR is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+CONFIG_REGULATOR_BQ24022=y
 # CONFIG_UIO is not set
 # CONFIG_STAGING is not set
 
index c10d1aa4b48728aae12cf45764e8bb62a6b1f5e8..ada93a8fc2ef6ed426cf5ac61ba27b3926ee402e 100644 (file)
@@ -32,6 +32,7 @@
 #define SZ_4K                           0x00001000
 #define SZ_8K                           0x00002000
 #define SZ_16K                          0x00004000
+#define SZ_32K                          0x00008000
 #define SZ_64K                          0x00010000
 #define SZ_128K                         0x00020000
 #define SZ_256K                         0x00040000
index 793fe7b25f367653292110e5936c1c8b4bcdc3d8..e6afff849b85e5475155b344123387276958a694 100644 (file)
@@ -87,7 +87,7 @@ extern void __init at91_add_device_eth(struct at91_eth_data *data);
  /* USB Host */
 struct at91_usbh_data {
        u8              ports;          /* number of ports on root hub */
-       u8              vbus_pin[];     /* port power-control pin */
+       u8              vbus_pin[2];    /* port power-control pin */
 };
 extern void __init at91_add_device_usbh(struct at91_usbh_data *data);
 
index dafe4f71d15f2a4785f076d444a58e529480e176..336e51dc612725588b802ef9b0e4da53f3d70d63 100644 (file)
@@ -590,27 +590,28 @@ static void omap1_init_ext_clk(struct clk * clk)
 static int omap1_clk_enable(struct clk *clk)
 {
        int ret = 0;
+
        if (clk->usecount++ == 0) {
-               if (likely(clk->parent)) {
+               if (clk->parent) {
                        ret = omap1_clk_enable(clk->parent);
-
-                       if (unlikely(ret != 0)) {
-                               clk->usecount--;
-                               return ret;
-                       }
+                       if (ret)
+                               goto err;
 
                        if (clk->flags & CLOCK_NO_IDLE_PARENT)
                                omap1_clk_deny_idle(clk->parent);
                }
 
                ret = clk->ops->enable(clk);
-
-               if (unlikely(ret != 0) && clk->parent) {
-                       omap1_clk_disable(clk->parent);
-                       clk->usecount--;
+               if (ret) {
+                       if (clk->parent)
+                               omap1_clk_disable(clk->parent);
+                       goto err;
                }
        }
+       return ret;
 
+err:
+       clk->usecount--;
        return ret;
 }
 
index 96a2006cb597919566f0a95150ad196ca2555ace..3e66d9099eab2bd329b9c2a877a741969e32b9ee 100644 (file)
@@ -343,6 +343,15 @@ config ARCH_PXA_PALM
        bool "PXA based Palm PDAs"
        select HAVE_PWM
 
+config MACH_PALMTE2
+       bool "Palm Tungsten|E2"
+       default y
+       depends on ARCH_PXA_PALM
+       select PXA25x
+       help
+         Say Y here if you intend to run this kernel on a Palm Tungsten|E2
+         handheld computer.
+
 config MACH_PALMT5
        bool "Palm Tungsten|T5"
        default y
index c80e1bac4945a71a5759dc87ec4fa81b94c15db5..682dbf4e14b06e25bac7ade81d38ac117d9079ef 100644 (file)
@@ -57,6 +57,7 @@ obj-$(CONFIG_MACH_E740)               += e740.o
 obj-$(CONFIG_MACH_E750)                += e750.o
 obj-$(CONFIG_MACH_E400)                += e400.o
 obj-$(CONFIG_MACH_E800)                += e800.o
+obj-$(CONFIG_MACH_PALMTE2)     += palmte2.o
 obj-$(CONFIG_MACH_PALMT5)      += palmt5.o
 obj-$(CONFIG_MACH_PALMTX)      += palmtx.o
 obj-$(CONFIG_MACH_PALMLD)      += palmld.o
index 117b5435f8d572358e98fc4b63952c79e9c06f84..b50ef39eabfcdadf5751b34d69d79bdeb3fefaf2 100644 (file)
@@ -121,7 +121,7 @@ static inline void cmx2xx_init_dm9000(void) {}
 /* UCB1400 touchscreen controller */
 #if defined(CONFIG_TOUCHSCREEN_UCB1400) || defined(CONFIG_TOUCHSCREEN_UCB1400_MODULE)
 static struct platform_device cmx2xx_ts_device = {
-       .name           = "ucb1400_ts",
+       .name           = "ucb1400_core",
        .id             = -1,
 };
 
index 10c2eaf932306c5cd0d30ce8402e13114bcf47df..7c9c34c19ae2781cd058a4bdf3516d374dc1c1b2 100644 (file)
@@ -15,7 +15,7 @@
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #include <linux/gpio.h>
-#include <net/ax88796.h>
+#include <linux/interrupt.h>
 
 #include <asm/mach-types.h>
 #include <asm/sizes.h>
 
 #if defined(CONFIG_AX88796)
 #define COLIBRI_ETH_IRQ_GPIO   mfp_to_gpio(GPIO26_GPIO)
+
 /*
  * Asix AX88796 Ethernet
  */
 static struct ax_plat_data colibri_asix_platdata = {
-       .flags          = AXFLG_MAC_FROMDEV,
-       .wordlength     = 2
+       .flags          = 0, /* defined later */
+       .wordlength     = 2,
 };
 
 static struct resource colibri_asix_resource[] = {
@@ -49,7 +50,7 @@ static struct resource colibri_asix_resource[] = {
        [1] = {
                .start = gpio_to_irq(COLIBRI_ETH_IRQ_GPIO),
                .end   = gpio_to_irq(COLIBRI_ETH_IRQ_GPIO),
-               .flags = IORESOURCE_IRQ
+               .flags = IORESOURCE_IRQ | IRQF_TRIGGER_FALLING,
        }
 };
 
@@ -70,8 +71,8 @@ static mfp_cfg_t colibri_pxa300_eth_pin_config[] __initdata = {
 
 static void __init colibri_pxa300_init_eth(void)
 {
+       colibri_pxa3xx_init_eth(&colibri_asix_platdata);
        pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa300_eth_pin_config));
-       set_irq_type(gpio_to_irq(COLIBRI_ETH_IRQ_GPIO), IRQ_TYPE_EDGE_FALLING);
        platform_device_register(&asix_device);
 }
 #else
index 55b74a7a6151b6f3e08e702348f6113b93a2da32..a18d37b3c5e65dbb79a25514ed15f370f3032364 100644 (file)
@@ -15,7 +15,7 @@
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #include <linux/gpio.h>
-#include <net/ax88796.h>
+#include <linux/interrupt.h>
 
 #include <asm/mach-types.h>
 #include <asm/sizes.h>
@@ -38,8 +38,8 @@
  * Asix AX88796 Ethernet
  */
 static struct ax_plat_data colibri_asix_platdata = {
-       .flags          = AXFLG_MAC_FROMDEV,
-       .wordlength     = 2
+       .flags          = 0, /* defined later */
+       .wordlength     = 2,
 };
 
 static struct resource colibri_asix_resource[] = {
@@ -51,7 +51,7 @@ static struct resource colibri_asix_resource[] = {
        [1] = {
                .start = gpio_to_irq(COLIBRI_ETH_IRQ_GPIO),
                .end   = gpio_to_irq(COLIBRI_ETH_IRQ_GPIO),
-               .flags = IORESOURCE_IRQ
+               .flags = IORESOURCE_IRQ | IRQF_TRIGGER_FALLING,
        }
 };
 
@@ -72,8 +72,8 @@ static mfp_cfg_t colibri_pxa320_eth_pin_config[] __initdata = {
 
 static void __init colibri_pxa320_init_eth(void)
 {
+       colibri_pxa3xx_init_eth(&colibri_asix_platdata);
        pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_eth_pin_config));
-       set_irq_type(gpio_to_irq(COLIBRI_ETH_IRQ_GPIO), IRQ_TYPE_EDGE_FALLING);
        platform_device_register(&asix_device);
 }
 #else
index 12d0afc54aa5342cd97cda940d3206d98866dab9..ea34e34f8cd82e4a8104d5d127c857cc93426fc7 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #include <linux/gpio.h>
+#include <linux/etherdevice.h>
 #include <asm/mach-types.h>
 #include <mach/hardware.h>
 #include <asm/sizes.h>
 #include "generic.h"
 #include "devices.h"
 
+#if defined(CONFIG_AX88796)
+#define ETHER_ADDR_LEN 6
+static u8 ether_mac_addr[ETHER_ADDR_LEN];
+
+void __init colibri_pxa3xx_init_eth(struct ax_plat_data *plat_data)
+{
+       int i;
+       u64 serial = ((u64) system_serial_high << 32) | system_serial_low;
+
+       /*
+        * If the bootloader passed in a serial boot tag, which contains a
+        * valid ethernet MAC, pass it to the interface. Toradex ships the
+        * modules with their own bootloader which provides a valid MAC
+        * this way.
+        */
+
+       for (i = 0; i < ETHER_ADDR_LEN; i++) {
+               ether_mac_addr[i] = serial & 0xff;
+               serial >>= 8;
+       }
+
+       if (is_valid_ether_addr(ether_mac_addr)) {
+               plat_data->flags |= AXFLG_MAC_FROMPLATFORM;
+               plat_data->mac_addr = ether_mac_addr;
+               printk(KERN_INFO "%s(): taking MAC from serial boot tag\n",
+                       __func__);
+       } else {
+               plat_data->flags |= AXFLG_MAC_FROMDEV;
+               printk(KERN_INFO "%s(): no valid serial boot tag found, "
+                       "taking MAC from device\n", __func__);
+       }
+}
+#endif
+
 #if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
 static int mmc_detect_pin;
 
index 4a2a2952c3748e0c50f7147a1a247ef5cf4790a0..5a221a49ea4de38bb37df529e0271baa9355ca31 100644 (file)
@@ -5,6 +5,8 @@
 #include <linux/input.h>
 #include <linux/leds.h>
 
+#include <asm/mach-types.h>
+
 static struct gpio_keys_button csb701_buttons[] = {
        {
                .code   = 0x7,
@@ -54,6 +56,9 @@ static struct platform_device *devices[] __initdata = {
 
 static int __init csb701_init(void)
 {
+       if (!machine_is_csb726())
+               return -ENODEV;
+
        return platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
index 07500a04fd8c09f91ae6179a0ac4f1b8fdfec96a..a36fc17f671d937f73e8e0fe8626a2e271afa1e2 100644 (file)
@@ -29,6 +29,7 @@
 #include <mach/udc.h>
 #include <mach/irda.h>
 #include <mach/irqs.h>
+#include <mach/audio.h>
 
 #include "generic.h"
 #include "eseries.h"
@@ -197,6 +198,7 @@ static void __init e740_init(void)
        eseries_get_tmio_gpios();
        platform_add_devices(devices, ARRAY_SIZE(devices));
        pxa_set_udc_info(&e7xx_udc_mach_info);
+       pxa_set_ac97_info(NULL);
        e7xx_irda_init();
        pxa_set_ficp_info(&e7xx_ficp_platform_data);
 }
index 6126c04e02bcfd610a7718f5750de41f11f95f66..1d00110590e5c7dee25cca9918e1c6591a798526 100644 (file)
@@ -28,6 +28,7 @@
 #include <mach/udc.h>
 #include <mach/irda.h>
 #include <mach/irqs.h>
+#include <mach/audio.h>
 
 #include "generic.h"
 #include "eseries.h"
@@ -198,6 +199,7 @@ static void __init e750_init(void)
        eseries_get_tmio_gpios();
        platform_add_devices(devices, ARRAY_SIZE(devices));
        pxa_set_udc_info(&e7xx_udc_mach_info);
+       pxa_set_ac97_info(NULL);
        e7xx_irda_init();
        pxa_set_ficp_info(&e7xx_ficp_platform_data);
 }
index 74ab09812a72a1444e3b7af9d59e0999b263b854..9866c7b9e78416efc55a2f810e9ccee8359f5dfd 100644 (file)
@@ -27,6 +27,7 @@
 #include <mach/eseries-gpio.h>
 #include <mach/udc.h>
 #include <mach/irqs.h>
+#include <mach/audio.h>
 
 #include "generic.h"
 #include "eseries.h"
@@ -199,6 +200,7 @@ static void __init e800_init(void)
        eseries_get_tmio_gpios();
        platform_add_devices(devices, ARRAY_SIZE(devices));
        pxa_set_udc_info(&e800_udc_mach_info);
+       pxa_set_ac97_info(NULL);
 }
 
 MACHINE_START(E800, "Toshiba e800")
index 920dfb8d36dabcb686159e8d24427c9d5ecd7ff3..67611dadb44ec0f7f811b5859e8d89f52518e093 100644 (file)
 #include <linux/regulator/machine.h>
 #include <linux/spi/spi.h>
 #include <linux/spi/tdo24m.h>
+#include <linux/spi/libertas_spi.h>
 #include <linux/power_supply.h>
 #include <linux/apm-emulation.h>
+#include <linux/delay.h>
 
 #include <media/soc_camera.h>
 
@@ -62,6 +64,8 @@
 #define GPIO93_CAM_RESET       (93)
 #define GPIO41_ETHIRQ          (41)
 #define EM_X270_ETHIRQ         IRQ_GPIO(GPIO41_ETHIRQ)
+#define GPIO115_WLAN_PWEN      (115)
+#define GPIO19_WLAN_STRAP      (19)
 
 static int mmc_cd;
 static int nand_rb;
@@ -159,8 +163,8 @@ static unsigned long common_pin_config[] = {
        GPIO57_SSP1_TXD,
 
        /* SSP2 */
-       GPIO19_SSP2_SCLK,
-       GPIO14_SSP2_SFRM,
+       GPIO19_GPIO,    /* SSP2 clock is used as GPIO for Libertas pin-strap */
+       GPIO14_GPIO,
        GPIO89_SSP2_TXD,
        GPIO88_SSP2_RXD,
 
@@ -648,20 +652,86 @@ static struct tdo24m_platform_data em_x270_tdo24m_pdata = {
        .model = TDO35S,
 };
 
+static struct pxa2xx_spi_master em_x270_spi_2_info = {
+       .num_chipselect = 1,
+       .enable_dma     = 1,
+};
+
+static struct pxa2xx_spi_chip em_x270_libertas_chip = {
+       .rx_threshold   = 1,
+       .tx_threshold   = 1,
+       .timeout        = 1000,
+};
+
+static unsigned long em_x270_libertas_pin_config[] = {
+       /* SSP2 */
+       GPIO19_SSP2_SCLK,
+       GPIO14_GPIO,
+       GPIO89_SSP2_TXD,
+       GPIO88_SSP2_RXD,
+};
+
+static int em_x270_libertas_setup(struct spi_device *spi)
+{
+       int err = gpio_request(GPIO115_WLAN_PWEN, "WLAN PWEN");
+       if (err)
+               return err;
+
+       gpio_direction_output(GPIO19_WLAN_STRAP, 1);
+       mdelay(100);
+
+       pxa2xx_mfp_config(ARRAY_AND_SIZE(em_x270_libertas_pin_config));
+
+       gpio_direction_output(GPIO115_WLAN_PWEN, 0);
+       mdelay(100);
+       gpio_set_value(GPIO115_WLAN_PWEN, 1);
+       mdelay(100);
+
+       spi->bits_per_word = 16;
+       spi_setup(spi);
+
+       return 0;
+}
+
+static int em_x270_libertas_teardown(struct spi_device *spi)
+{
+       gpio_set_value(GPIO115_WLAN_PWEN, 0);
+       gpio_free(GPIO115_WLAN_PWEN);
+
+       return 0;
+}
+
+struct libertas_spi_platform_data em_x270_libertas_pdata = {
+       .use_dummy_writes       = 1,
+       .gpio_cs                = 14,
+       .setup                  = em_x270_libertas_setup,
+       .teardown               = em_x270_libertas_teardown,
+};
+
 static struct spi_board_info em_x270_spi_devices[] __initdata = {
        {
-               .modalias = "tdo24m",
-               .max_speed_hz = 1000000,
-               .bus_num = 1,
-               .chip_select = 0,
-               .controller_data = &em_x270_tdo24m_chip,
-               .platform_data = &em_x270_tdo24m_pdata,
+               .modalias               = "tdo24m",
+               .max_speed_hz           = 1000000,
+               .bus_num                = 1,
+               .chip_select            = 0,
+               .controller_data        = &em_x270_tdo24m_chip,
+               .platform_data          = &em_x270_tdo24m_pdata,
+       },
+       {
+               .modalias               = "libertas_spi",
+               .max_speed_hz           = 13000000,
+               .bus_num                = 2,
+               .irq                    = IRQ_GPIO(116),
+               .chip_select            = 0,
+               .controller_data        = &em_x270_libertas_chip,
+               .platform_data          = &em_x270_libertas_pdata,
        },
 };
 
 static void __init em_x270_init_spi(void)
 {
        pxa2xx_set_spi_info(1, &em_x270_spi_info);
+       pxa2xx_set_spi_info(2, &em_x270_spi_2_info);
        spi_register_board_info(ARRAY_AND_SIZE(em_x270_spi_devices));
 }
 #else
index 3f2a01d6a03c6563c377761a42ba586f2cd9d5bd..90230c6f9925c0d0d25e2ffc92eb9025522850b8 100644 (file)
@@ -1,5 +1,8 @@
 #ifndef _COLIBRI_H_
 #define _COLIBRI_H_
+
+#include <net/ax88796.h>
+
 /*
  * common settings for all modules
  */
@@ -16,6 +19,10 @@ extern void colibri_pxa3xx_init_lcd(int bl_pin);
 static inline void colibri_pxa3xx_init_lcd(int) {}
 #endif
 
+#if defined(CONFIG_AX88796)
+extern void colibri_pxa3xx_init_eth(struct ax_plat_data *plat_data);
+#endif
+
 /* physical memory regions */
 #define COLIBRI_SDRAM_BASE     0xa0000000      /* SDRAM region */
 
index 82a399f3f9f2b547c7a1ccec5615045547770423..20ef37d4a9a75b2567e73791d1ba8ee5056ae563 100644 (file)
@@ -27,7 +27,7 @@
 #define GPIO22_MAGICIAN_VIBRA_EN               22
 #define GPIO26_MAGICIAN_GSM_POWER              26
 #define GPIO27_MAGICIAN_USBC_PUEN              27
-#define GPIO30_MAGICIAN_nCHARGE_EN             30
+#define GPIO30_MAGICIAN_BQ24022_nCHARGE_EN     30
 #define GPIO37_MAGICIAN_KEY_HANGUP             37
 #define GPIO38_MAGICIAN_KEY_CONTACTS           38
 #define GPIO40_MAGICIAN_GSM_OUT2               40
@@ -98,7 +98,7 @@
 #define EGPIO_MAGICIAN_UNKNOWN_WAVEDEV_DLL     MAGICIAN_EGPIO(2, 2)
 #define EGPIO_MAGICIAN_FLASH_VPP               MAGICIAN_EGPIO(2, 3)
 #define EGPIO_MAGICIAN_BL_POWER2               MAGICIAN_EGPIO(2, 4)
-#define EGPIO_MAGICIAN_CHARGE_EN               MAGICIAN_EGPIO(2, 5)
+#define EGPIO_MAGICIAN_BQ24022_ISET2           MAGICIAN_EGPIO(2, 5)
 #define EGPIO_MAGICIAN_GSM_POWER               MAGICIAN_EGPIO(2, 7)
 
 /* input */
index 7c295a48d78460fea21411ffcb7e75c4120ebaeb..fb13c82ad6dcdbe5f1c148b67e1705e55347d203 100644 (file)
@@ -87,6 +87,7 @@
 #define PALMLD_IDE_SIZE                0x00100000
 
 #define PALMLD_PHYS_IO_START   0x40000000
+#define PALMLD_STR_BASE                0xa0200000
 
 /* BATTERY */
 #define PALMLD_BAT_MAX_VOLTAGE         4000    /* 4.00V maximum voltage */
index 94db2881f04828f3c90ba2112506fc0c8766d8d1..052bfe788adae87ed0061fea2112e5435fc09bf9 100644 (file)
@@ -59,6 +59,7 @@
 /* Various addresses  */
 #define PALMT5_PHYS_RAM_START  0xa0000000
 #define PALMT5_PHYS_IO_START   0x40000000
+#define PALMT5_STR_BASE                0xa0200000
 
 /* TOUCHSCREEN */
 #define AC97_LINK_FRAME                21
diff --git a/arch/arm/mach-pxa/include/mach/palmte2.h b/arch/arm/mach-pxa/include/mach/palmte2.h
new file mode 100644 (file)
index 0000000..1236134
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * GPIOs and interrupts for Palm Tungsten|E2 Handheld Computer
+ *
+ * Author:
+ *             Carlos Eduardo Medaglia Dyonisio <cadu@nerdfeliz.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#ifndef _INCLUDE_PALMTE2_H_
+#define _INCLUDE_PALMTE2_H_
+
+/** HERE ARE GPIOs **/
+
+/* GPIOs */
+#define GPIO_NR_PALMTE2_POWER_DETECT           9
+#define GPIO_NR_PALMTE2_HOTSYNC_BUTTON_N       4
+#define GPIO_NR_PALMTE2_EARPHONE_DETECT                15
+
+/* SD/MMC */
+#define GPIO_NR_PALMTE2_SD_DETECT_N            10
+#define GPIO_NR_PALMTE2_SD_POWER               55
+#define GPIO_NR_PALMTE2_SD_READONLY            51
+
+/* IRDA -  disable GPIO connected to SD pin of tranceiver (TFBS4710?) ? */
+#define GPIO_NR_PALMTE2_IR_DISABLE             48
+
+/* USB */
+#define GPIO_NR_PALMTE2_USB_DETECT_N           35
+#define GPIO_NR_PALMTE2_USB_PULLUP             53
+
+/* LCD/BACKLIGHT */
+#define GPIO_NR_PALMTE2_BL_POWER               56
+#define GPIO_NR_PALMTE2_LCD_POWER              37
+
+/* KEYS */
+#define GPIO_NR_PALMTE2_KEY_NOTES      5
+#define GPIO_NR_PALMTE2_KEY_TASKS      7
+#define GPIO_NR_PALMTE2_KEY_CALENDAR   11
+#define GPIO_NR_PALMTE2_KEY_CONTACTS   13
+#define GPIO_NR_PALMTE2_KEY_CENTER     14
+#define GPIO_NR_PALMTE2_KEY_LEFT       19
+#define GPIO_NR_PALMTE2_KEY_RIGHT      20
+#define GPIO_NR_PALMTE2_KEY_DOWN       21
+#define GPIO_NR_PALMTE2_KEY_UP         22
+
+/** HERE ARE INIT VALUES **/
+
+/* BACKLIGHT */
+#define PALMTE2_MAX_INTENSITY          0xFE
+#define PALMTE2_DEFAULT_INTENSITY      0x7E
+#define PALMTE2_LIMIT_MASK             0x7F
+#define PALMTE2_PRESCALER              0x3F
+#define PALMTE2_PERIOD_NS              3500
+
+/* BATTERY */
+#define PALMTE2_BAT_MAX_VOLTAGE                4000    /* 4.00v current voltage */
+#define PALMTE2_BAT_MIN_VOLTAGE                3550    /* 3.55v critical voltage */
+#define PALMTE2_BAT_MAX_CURRENT                0       /* unknokn */
+#define PALMTE2_BAT_MIN_CURRENT                0       /* unknown */
+#define PALMTE2_BAT_MAX_CHARGE         1       /* unknown */
+#define PALMTE2_BAT_MIN_CHARGE         1       /* unknown */
+#define PALMTE2_MAX_LIFE_MINS          360     /* on-life in minutes */
+
+#endif
index 1e8bccbda51027a0fbb686ab8f33e6b321b3ecd0..9f7d62fb4cbb5797227ece0856c8d9b0049c7403 100644 (file)
@@ -78,6 +78,8 @@
 #define PALMTX_PHYS_RAM_START  0xa0000000
 #define PALMTX_PHYS_IO_START   0x40000000
 
+#define PALMTX_STR_BASE                0xa0200000
+
 #define PALMTX_PHYS_FLASH_START        PXA_CS0_PHYS    /* ChipSelect 0 */
 #define PALMTX_PHYS_NAND_START PXA_CS1_PHYS    /* ChipSelect 1 */
 
index deeea1c2782b4a68c1f2876bd1b92dc07f8d1ec5..c899bbd94dc06bad6fbbcb9d57133281667fe509 100644 (file)
@@ -25,6 +25,8 @@
 #include <linux/mtd/physmap.h>
 #include <linux/pda_power.h>
 #include <linux/pwm_backlight.h>
+#include <linux/regulator/bq24022.h>
+#include <linux/regulator/machine.h>
 #include <linux/usb/gpio_vbus.h>
 
 #include <mach/hardware.h>
@@ -552,33 +554,7 @@ static struct platform_device gpio_vbus = {
 
 static int power_supply_init(struct device *dev)
 {
-       int ret;
-
-       ret = gpio_request(EGPIO_MAGICIAN_CABLE_STATE_AC, "CABLE_STATE_AC");
-       if (ret)
-               goto err_cs_ac;
-       ret = gpio_request(EGPIO_MAGICIAN_CABLE_STATE_USB, "CABLE_STATE_USB");
-       if (ret)
-               goto err_cs_usb;
-       ret = gpio_request(EGPIO_MAGICIAN_CHARGE_EN, "CHARGE_EN");
-       if (ret)
-               goto err_chg_en;
-       ret = gpio_request(GPIO30_MAGICIAN_nCHARGE_EN, "nCHARGE_EN");
-       if (!ret)
-               ret = gpio_direction_output(GPIO30_MAGICIAN_nCHARGE_EN, 0);
-       if (ret)
-               goto err_nchg_en;
-
-       return 0;
-
-err_nchg_en:
-       gpio_free(EGPIO_MAGICIAN_CHARGE_EN);
-err_chg_en:
-       gpio_free(EGPIO_MAGICIAN_CABLE_STATE_USB);
-err_cs_usb:
-       gpio_free(EGPIO_MAGICIAN_CABLE_STATE_AC);
-err_cs_ac:
-       return ret;
+       return gpio_request(EGPIO_MAGICIAN_CABLE_STATE_AC, "CABLE_STATE_AC");
 }
 
 static int magician_is_ac_online(void)
@@ -586,22 +562,8 @@ static int magician_is_ac_online(void)
        return gpio_get_value(EGPIO_MAGICIAN_CABLE_STATE_AC);
 }
 
-static int magician_is_usb_online(void)
-{
-       return gpio_get_value(EGPIO_MAGICIAN_CABLE_STATE_USB);
-}
-
-static void magician_set_charge(int flags)
-{
-       gpio_set_value(GPIO30_MAGICIAN_nCHARGE_EN, !flags);
-       gpio_set_value(EGPIO_MAGICIAN_CHARGE_EN, flags);
-}
-
 static void power_supply_exit(struct device *dev)
 {
-       gpio_free(GPIO30_MAGICIAN_nCHARGE_EN);
-       gpio_free(EGPIO_MAGICIAN_CHARGE_EN);
-       gpio_free(EGPIO_MAGICIAN_CABLE_STATE_USB);
        gpio_free(EGPIO_MAGICIAN_CABLE_STATE_AC);
 }
 
@@ -612,8 +574,6 @@ static char *magician_supplicants[] = {
 static struct pda_power_pdata power_supply_info = {
        .init            = power_supply_init,
        .is_ac_online    = magician_is_ac_online,
-       .is_usb_online   = magician_is_usb_online,
-       .set_charge      = magician_set_charge,
        .exit            = power_supply_exit,
        .supplied_to     = magician_supplicants,
        .num_supplicants = ARRAY_SIZE(magician_supplicants),
@@ -646,6 +606,43 @@ static struct platform_device power_supply = {
        .num_resources = ARRAY_SIZE(power_supply_resources),
 };
 
+/*
+ * Battery charger
+ */
+
+static struct regulator_consumer_supply bq24022_consumers[] = {
+       {
+               .dev = &gpio_vbus.dev,
+               .supply = "vbus_draw",
+       },
+       {
+               .dev = &power_supply.dev,
+               .supply = "ac_draw",
+       },
+};
+
+static struct regulator_init_data bq24022_init_data = {
+       .constraints = {
+               .max_uA         = 500000,
+               .valid_ops_mask = REGULATOR_CHANGE_CURRENT,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(bq24022_consumers),
+       .consumer_supplies      = bq24022_consumers,
+};
+
+static struct bq24022_mach_info bq24022_info = {
+       .gpio_nce   = GPIO30_MAGICIAN_BQ24022_nCHARGE_EN,
+       .gpio_iset2 = EGPIO_MAGICIAN_BQ24022_ISET2,
+       .init_data  = &bq24022_init_data,
+};
+
+static struct platform_device bq24022 = {
+       .name = "bq24022",
+       .id   = -1,
+       .dev  = {
+               .platform_data = &bq24022_info,
+       },
+};
 
 /*
  * MMC/SD
@@ -756,6 +753,7 @@ static struct platform_device *devices[] __initdata = {
        &egpio,
        &backlight,
        &pasic3,
+       &bq24022,
        &gpio_vbus,
        &power_supply,
        &strataflash,
index 97c93a7a285c12b70a7249c25cd9f47ee1b2f493..9203b069b35c7483a801cb8e7e9ba97753a2853f 100644 (file)
@@ -50,6 +50,7 @@
 #include <mach/pxa27x-udc.h>
 #include <mach/i2c.h>
 #include <mach/camera.h>
+#include <mach/audio.h>
 #include <media/soc_camera.h>
 
 #include <mach/mioa701.h>
@@ -763,8 +764,6 @@ MIO_PARENT_DEV(mioa701_backlight, "pwm-backlight",  &pxa27x_device_pwm0.dev,
                &mioa701_backlight_data);
 MIO_SIMPLE_DEV(mioa701_led,      "leds-gpio",      &gpio_led_info)
 MIO_SIMPLE_DEV(pxa2xx_pcm,       "pxa2xx-pcm",     NULL)
-MIO_SIMPLE_DEV(pxa2xx_ac97,      "pxa2xx-ac97",    NULL)
-MIO_PARENT_DEV(mio_wm9713_codec,  "wm9713-codec",   &pxa2xx_ac97.dev, NULL)
 MIO_SIMPLE_DEV(mioa701_sound,    "mioa701-wm9713", NULL)
 MIO_SIMPLE_DEV(mioa701_board,    "mioa701-board",  NULL)
 MIO_SIMPLE_DEV(gpio_vbus,        "gpio-vbus",      &gpio_vbus_data);
@@ -774,8 +773,6 @@ static struct platform_device *devices[] __initdata = {
        &mioa701_backlight,
        &mioa701_led,
        &pxa2xx_pcm,
-       &pxa2xx_ac97,
-       &mio_wm9713_codec,
        &mioa701_sound,
        &power_dev,
        &strataflash,
@@ -818,6 +815,7 @@ static void __init mioa701_machine_init(void)
        pxa_set_keypad_info(&mioa701_keypad_info);
        wm97xx_bat_set_pdata(&mioa701_battery_data);
        pxa_set_udc_info(&mioa701_udc_info);
+       pxa_set_ac97_info(NULL);
        pm_power_off = mioa701_poweroff;
        arm_pm_restart = mioa701_restart;
        platform_add_devices(devices, ARRAY_SIZE(devices));
index 8587477a9bb7d52ae822551b27f48376d225a6b8..ecf5910e39d770d40a86e5a994f32b8305c2af45 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/gpio.h>
 #include <linux/wm97xx_batt.h>
 #include <linux/power_supply.h>
+#include <linux/sysdev.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -68,10 +69,10 @@ static unsigned long palmld_pin_config[] __initdata = {
        GPIO47_FICP_TXD,
 
        /* MATRIX KEYPAD */
-       GPIO100_KP_MKIN_0,
-       GPIO101_KP_MKIN_1,
-       GPIO102_KP_MKIN_2,
-       GPIO97_KP_MKIN_3,
+       GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
+       GPIO101_KP_MKIN_1 | WAKEUP_ON_LEVEL_HIGH,
+       GPIO102_KP_MKIN_2 | WAKEUP_ON_LEVEL_HIGH,
+       GPIO97_KP_MKIN_3 | WAKEUP_ON_LEVEL_HIGH,
        GPIO103_KP_MKOUT_0,
        GPIO104_KP_MKOUT_1,
        GPIO105_KP_MKOUT_2,
@@ -506,6 +507,33 @@ static struct pxafb_mach_info palmld_lcd_screen = {
        .lcd_conn       = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
 };
 
+/******************************************************************************
+ * Power management - standby
+ ******************************************************************************/
+#ifdef CONFIG_PM
+static u32 *addr __initdata;
+static u32 resume[3] __initdata = {
+       0xe3a00101,     /* mov  r0,     #0x40000000 */
+       0xe380060f,     /* orr  r0, r0, #0x00f00000 */
+       0xe590f008,     /* ldr  pc, [r0, #0x08] */
+};
+
+static int __init palmld_pm_init(void)
+{
+       int i;
+
+       /* this is where the bootloader jumps */
+       addr = phys_to_virt(PALMLD_STR_BASE);
+
+       for (i = 0; i < 3; i++)
+               addr[i] = resume[i];
+
+       return 0;
+}
+
+device_initcall(palmld_pm_init);
+#endif
+
 /******************************************************************************
  * Machine init
  ******************************************************************************/
index 9521c7b334927f28d79eda5cc1b199fe23d3fab9..0680f1a575a33556e41e40b75ff83da0886dd178 100644 (file)
@@ -75,10 +75,10 @@ static unsigned long palmt5_pin_config[] __initdata = {
        GPIO95_GPIO,    /* usb power */
 
        /* MATRIX KEYPAD */
-       GPIO100_KP_MKIN_0,
-       GPIO101_KP_MKIN_1,
-       GPIO102_KP_MKIN_2,
-       GPIO97_KP_MKIN_3,
+       GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
+       GPIO101_KP_MKIN_1 | WAKEUP_ON_LEVEL_HIGH,
+       GPIO102_KP_MKIN_2 | WAKEUP_ON_LEVEL_HIGH,
+       GPIO97_KP_MKIN_3 | WAKEUP_ON_LEVEL_HIGH,
        GPIO103_KP_MKOUT_0,
        GPIO104_KP_MKOUT_1,
        GPIO105_KP_MKOUT_2,
@@ -449,6 +449,33 @@ static struct pxafb_mach_info palmt5_lcd_screen = {
        .lcd_conn       = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
 };
 
+/******************************************************************************
+ * Power management - standby
+ ******************************************************************************/
+#ifdef CONFIG_PM
+static u32 *addr __initdata;
+static u32 resume[3] __initdata = {
+       0xe3a00101,     /* mov  r0,     #0x40000000 */
+       0xe380060f,     /* orr  r0, r0, #0x00f00000 */
+       0xe590f008,     /* ldr  pc, [r0, #0x08] */
+};
+
+static int __init palmt5_pm_init(void)
+{
+       int i;
+
+       /* this is where the bootloader jumps */
+       addr = phys_to_virt(PALMT5_STR_BASE);
+
+       for (i = 0; i < 3; i++)
+               addr[i] = resume[i];
+
+       return 0;
+}
+
+device_initcall(palmt5_pm_init);
+#endif
+
 /******************************************************************************
  * Machine init
  ******************************************************************************/
diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c
new file mode 100644 (file)
index 0000000..43fcf2e
--- /dev/null
@@ -0,0 +1,466 @@
+/*
+ * Hardware definitions for Palm Tungsten|E2
+ *
+ * Author:
+ *     Carlos Eduardo Medaglia Dyonisio <cadu@nerdfeliz.com>
+ *
+ * Rewrite for mainline:
+ *     Marek Vasut <marek.vasut@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * (find more info at www.hackndev.com)
+ *
+ */
+
+#include <linux/platform_device.h>
+#include <linux/delay.h>
+#include <linux/irq.h>
+#include <linux/gpio_keys.h>
+#include <linux/input.h>
+#include <linux/pda_power.h>
+#include <linux/pwm_backlight.h>
+#include <linux/gpio.h>
+#include <linux/wm97xx_batt.h>
+#include <linux/power_supply.h>
+
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+
+#include <mach/audio.h>
+#include <mach/palmte2.h>
+#include <mach/mmc.h>
+#include <mach/pxafb.h>
+#include <mach/mfp-pxa25x.h>
+#include <mach/irda.h>
+#include <mach/udc.h>
+
+#include "generic.h"
+#include "devices.h"
+
+/******************************************************************************
+ * Pin configuration
+ ******************************************************************************/
+static unsigned long palmte2_pin_config[] __initdata = {
+       /* MMC */
+       GPIO6_MMC_CLK,
+       GPIO8_MMC_CS0,
+       GPIO10_GPIO,    /* SD detect */
+       GPIO55_GPIO,    /* SD power */
+       GPIO51_GPIO,    /* SD r/o switch */
+
+       /* AC97 */
+       GPIO28_AC97_BITCLK,
+       GPIO29_AC97_SDATA_IN_0,
+       GPIO30_AC97_SDATA_OUT,
+       GPIO31_AC97_SYNC,
+
+       /* PWM */
+       GPIO16_PWM0_OUT,
+
+       /* USB */
+       GPIO15_GPIO,    /* usb detect */
+       GPIO53_GPIO,    /* usb power */
+
+       /* IrDA */
+       GPIO48_GPIO,    /* ir disable */
+       GPIO46_FICP_RXD,
+       GPIO47_FICP_TXD,
+
+       /* LCD */
+       GPIO58_LCD_LDD_0,
+       GPIO59_LCD_LDD_1,
+       GPIO60_LCD_LDD_2,
+       GPIO61_LCD_LDD_3,
+       GPIO62_LCD_LDD_4,
+       GPIO63_LCD_LDD_5,
+       GPIO64_LCD_LDD_6,
+       GPIO65_LCD_LDD_7,
+       GPIO66_LCD_LDD_8,
+       GPIO67_LCD_LDD_9,
+       GPIO68_LCD_LDD_10,
+       GPIO69_LCD_LDD_11,
+       GPIO70_LCD_LDD_12,
+       GPIO71_LCD_LDD_13,
+       GPIO72_LCD_LDD_14,
+       GPIO73_LCD_LDD_15,
+       GPIO74_LCD_FCLK,
+       GPIO75_LCD_LCLK,
+       GPIO76_LCD_PCLK,
+       GPIO77_LCD_BIAS,
+
+       /* GPIO KEYS */
+       GPIO5_GPIO,     /* notes */
+       GPIO7_GPIO,     /* tasks */
+       GPIO11_GPIO,    /* calendar */
+       GPIO13_GPIO,    /* contacts */
+       GPIO14_GPIO,    /* center */
+       GPIO19_GPIO,    /* left */
+       GPIO20_GPIO,    /* right */
+       GPIO21_GPIO,    /* down */
+       GPIO22_GPIO,    /* up */
+
+       /* MISC */
+       GPIO1_RST,      /* reset */
+       GPIO4_GPIO,     /* Hotsync button */
+       GPIO9_GPIO,     /* power detect */
+       GPIO37_GPIO,    /* LCD power */
+       GPIO56_GPIO,    /* Backlight power */
+};
+
+/******************************************************************************
+ * SD/MMC card controller
+ ******************************************************************************/
+static int palmte2_mci_init(struct device *dev,
+                               irq_handler_t palmte2_detect_int, void *data)
+{
+       int err = 0;
+
+       /* Setup an interrupt for detecting card insert/remove events */
+       err = gpio_request(GPIO_NR_PALMTE2_SD_DETECT_N, "SD IRQ");
+       if (err)
+               goto err;
+       err = gpio_direction_input(GPIO_NR_PALMTE2_SD_DETECT_N);
+       if (err)
+               goto err2;
+       err = request_irq(gpio_to_irq(GPIO_NR_PALMTE2_SD_DETECT_N),
+                       palmte2_detect_int, IRQF_DISABLED | IRQF_SAMPLE_RANDOM |
+                       IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+                       "SD/MMC card detect", data);
+       if (err) {
+               printk(KERN_ERR "%s: cannot request SD/MMC card detect IRQ\n",
+                               __func__);
+               goto err2;
+       }
+
+       err = gpio_request(GPIO_NR_PALMTE2_SD_POWER, "SD_POWER");
+       if (err)
+               goto err3;
+       err = gpio_direction_output(GPIO_NR_PALMTE2_SD_POWER, 0);
+       if (err)
+               goto err4;
+
+       err = gpio_request(GPIO_NR_PALMTE2_SD_READONLY, "SD_READONLY");
+       if (err)
+               goto err4;
+       err = gpio_direction_input(GPIO_NR_PALMTE2_SD_READONLY);
+       if (err)
+               goto err5;
+
+       printk(KERN_DEBUG "%s: irq registered\n", __func__);
+
+       return 0;
+
+err5:
+       gpio_free(GPIO_NR_PALMTE2_SD_READONLY);
+err4:
+       gpio_free(GPIO_NR_PALMTE2_SD_POWER);
+err3:
+       free_irq(gpio_to_irq(GPIO_NR_PALMTE2_SD_DETECT_N), data);
+err2:
+       gpio_free(GPIO_NR_PALMTE2_SD_DETECT_N);
+err:
+       return err;
+}
+
+static void palmte2_mci_exit(struct device *dev, void *data)
+{
+       gpio_free(GPIO_NR_PALMTE2_SD_READONLY);
+       gpio_free(GPIO_NR_PALMTE2_SD_POWER);
+       free_irq(gpio_to_irq(GPIO_NR_PALMTE2_SD_DETECT_N), data);
+       gpio_free(GPIO_NR_PALMTE2_SD_DETECT_N);
+}
+
+static void palmte2_mci_power(struct device *dev, unsigned int vdd)
+{
+       struct pxamci_platform_data *p_d = dev->platform_data;
+       gpio_set_value(GPIO_NR_PALMTE2_SD_POWER, p_d->ocr_mask & (1 << vdd));
+}
+
+static int palmte2_mci_get_ro(struct device *dev)
+{
+       return gpio_get_value(GPIO_NR_PALMTE2_SD_READONLY);
+}
+
+static struct pxamci_platform_data palmte2_mci_platform_data = {
+       .ocr_mask       = MMC_VDD_32_33 | MMC_VDD_33_34,
+       .setpower       = palmte2_mci_power,
+       .get_ro         = palmte2_mci_get_ro,
+       .init           = palmte2_mci_init,
+       .exit           = palmte2_mci_exit,
+};
+
+/******************************************************************************
+ * GPIO keys
+ ******************************************************************************/
+static struct gpio_keys_button palmte2_pxa_buttons[] = {
+       {KEY_F1,        GPIO_NR_PALMTE2_KEY_CONTACTS,   1, "Contacts" },
+       {KEY_F2,        GPIO_NR_PALMTE2_KEY_CALENDAR,   1, "Calendar" },
+       {KEY_F3,        GPIO_NR_PALMTE2_KEY_TASKS,      1, "Tasks" },
+       {KEY_F4,        GPIO_NR_PALMTE2_KEY_NOTES,      1, "Notes" },
+       {KEY_ENTER,     GPIO_NR_PALMTE2_KEY_CENTER,     1, "Center" },
+       {KEY_LEFT,      GPIO_NR_PALMTE2_KEY_LEFT,       1, "Left" },
+       {KEY_RIGHT,     GPIO_NR_PALMTE2_KEY_RIGHT,      1, "Right" },
+       {KEY_DOWN,      GPIO_NR_PALMTE2_KEY_DOWN,       1, "Down" },
+       {KEY_UP,        GPIO_NR_PALMTE2_KEY_UP,         1, "Up" },
+};
+
+static struct gpio_keys_platform_data palmte2_pxa_keys_data = {
+       .buttons        = palmte2_pxa_buttons,
+       .nbuttons       = ARRAY_SIZE(palmte2_pxa_buttons),
+};
+
+static struct platform_device palmte2_pxa_keys = {
+       .name   = "gpio-keys",
+       .id     = -1,
+       .dev    = {
+               .platform_data = &palmte2_pxa_keys_data,
+       },
+};
+
+/******************************************************************************
+ * Backlight
+ ******************************************************************************/
+static int palmte2_backlight_init(struct device *dev)
+{
+       int ret;
+
+       ret = gpio_request(GPIO_NR_PALMTE2_BL_POWER, "BL POWER");
+       if (ret)
+               goto err;
+       ret = gpio_direction_output(GPIO_NR_PALMTE2_BL_POWER, 0);
+       if (ret)
+               goto err2;
+       ret = gpio_request(GPIO_NR_PALMTE2_LCD_POWER, "LCD POWER");
+       if (ret)
+               goto err2;
+       ret = gpio_direction_output(GPIO_NR_PALMTE2_LCD_POWER, 0);
+       if (ret)
+               goto err3;
+
+       return 0;
+err3:
+       gpio_free(GPIO_NR_PALMTE2_LCD_POWER);
+err2:
+       gpio_free(GPIO_NR_PALMTE2_BL_POWER);
+err:
+       return ret;
+}
+
+static int palmte2_backlight_notify(int brightness)
+{
+       gpio_set_value(GPIO_NR_PALMTE2_BL_POWER, brightness);
+       gpio_set_value(GPIO_NR_PALMTE2_LCD_POWER, brightness);
+       return brightness;
+}
+
+static void palmte2_backlight_exit(struct device *dev)
+{
+       gpio_free(GPIO_NR_PALMTE2_BL_POWER);
+       gpio_free(GPIO_NR_PALMTE2_LCD_POWER);
+}
+
+static struct platform_pwm_backlight_data palmte2_backlight_data = {
+       .pwm_id         = 0,
+       .max_brightness = PALMTE2_MAX_INTENSITY,
+       .dft_brightness = PALMTE2_MAX_INTENSITY,
+       .pwm_period_ns  = PALMTE2_PERIOD_NS,
+       .init           = palmte2_backlight_init,
+       .notify         = palmte2_backlight_notify,
+       .exit           = palmte2_backlight_exit,
+};
+
+static struct platform_device palmte2_backlight = {
+       .name   = "pwm-backlight",
+       .dev    = {
+               .parent         = &pxa25x_device_pwm0.dev,
+               .platform_data  = &palmte2_backlight_data,
+       },
+};
+
+/******************************************************************************
+ * IrDA
+ ******************************************************************************/
+static int palmte2_irda_startup(struct device *dev)
+{
+       int err;
+       err = gpio_request(GPIO_NR_PALMTE2_IR_DISABLE, "IR DISABLE");
+       if (err)
+               goto err;
+       err = gpio_direction_output(GPIO_NR_PALMTE2_IR_DISABLE, 1);
+       if (err)
+               gpio_free(GPIO_NR_PALMTE2_IR_DISABLE);
+err:
+       return err;
+}
+
+static void palmte2_irda_shutdown(struct device *dev)
+{
+       gpio_free(GPIO_NR_PALMTE2_IR_DISABLE);
+}
+
+static void palmte2_irda_transceiver_mode(struct device *dev, int mode)
+{
+       gpio_set_value(GPIO_NR_PALMTE2_IR_DISABLE, mode & IR_OFF);
+       pxa2xx_transceiver_mode(dev, mode);
+}
+
+static struct pxaficp_platform_data palmte2_ficp_platform_data = {
+       .startup                = palmte2_irda_startup,
+       .shutdown               = palmte2_irda_shutdown,
+       .transceiver_cap        = IR_SIRMODE | IR_FIRMODE | IR_OFF,
+       .transceiver_mode       = palmte2_irda_transceiver_mode,
+};
+
+/******************************************************************************
+ * UDC
+ ******************************************************************************/
+static struct pxa2xx_udc_mach_info palmte2_udc_info __initdata = {
+       .gpio_vbus              = GPIO_NR_PALMTE2_USB_DETECT_N,
+       .gpio_vbus_inverted     = 1,
+       .gpio_pullup            = GPIO_NR_PALMTE2_USB_PULLUP,
+       .gpio_pullup_inverted   = 0,
+};
+
+/******************************************************************************
+ * Power supply
+ ******************************************************************************/
+static int power_supply_init(struct device *dev)
+{
+       int ret;
+
+       ret = gpio_request(GPIO_NR_PALMTE2_POWER_DETECT, "CABLE_STATE_AC");
+       if (ret)
+               goto err1;
+       ret = gpio_direction_input(GPIO_NR_PALMTE2_POWER_DETECT);
+       if (ret)
+               goto err2;
+
+       return 0;
+
+err2:
+       gpio_free(GPIO_NR_PALMTE2_POWER_DETECT);
+err1:
+       return ret;
+}
+
+static int palmte2_is_ac_online(void)
+{
+       return gpio_get_value(GPIO_NR_PALMTE2_POWER_DETECT);
+}
+
+static void power_supply_exit(struct device *dev)
+{
+       gpio_free(GPIO_NR_PALMTE2_POWER_DETECT);
+}
+
+static char *palmte2_supplicants[] = {
+       "main-battery",
+};
+
+static struct pda_power_pdata power_supply_info = {
+       .init            = power_supply_init,
+       .is_ac_online    = palmte2_is_ac_online,
+       .exit            = power_supply_exit,
+       .supplied_to     = palmte2_supplicants,
+       .num_supplicants = ARRAY_SIZE(palmte2_supplicants),
+};
+
+static struct platform_device power_supply = {
+       .name = "pda-power",
+       .id   = -1,
+       .dev  = {
+               .platform_data = &power_supply_info,
+       },
+};
+
+/******************************************************************************
+ * WM97xx battery
+ ******************************************************************************/
+static struct wm97xx_batt_info wm97xx_batt_pdata = {
+       .batt_aux       = WM97XX_AUX_ID3,
+       .temp_aux       = WM97XX_AUX_ID2,
+       .charge_gpio    = -1,
+       .max_voltage    = PALMTE2_BAT_MAX_VOLTAGE,
+       .min_voltage    = PALMTE2_BAT_MIN_VOLTAGE,
+       .batt_mult      = 1000,
+       .batt_div       = 414,
+       .temp_mult      = 1,
+       .temp_div       = 1,
+       .batt_tech      = POWER_SUPPLY_TECHNOLOGY_LIPO,
+       .batt_name      = "main-batt",
+};
+
+/******************************************************************************
+ * Framebuffer
+ ******************************************************************************/
+static struct pxafb_mode_info palmte2_lcd_modes[] = {
+{
+       .pixclock       = 77757,
+       .xres           = 320,
+       .yres           = 320,
+       .bpp            = 16,
+
+       .left_margin    = 28,
+       .right_margin   = 7,
+       .upper_margin   = 7,
+       .lower_margin   = 5,
+
+       .hsync_len      = 4,
+       .vsync_len      = 1,
+},
+};
+
+static struct pxafb_mach_info palmte2_lcd_screen = {
+       .modes          = palmte2_lcd_modes,
+       .num_modes      = ARRAY_SIZE(palmte2_lcd_modes),
+       .lcd_conn       = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
+};
+
+/******************************************************************************
+ * Machine init
+ ******************************************************************************/
+static struct platform_device *devices[] __initdata = {
+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
+       &palmte2_pxa_keys,
+#endif
+       &palmte2_backlight,
+       &power_supply,
+};
+
+/* setup udc GPIOs initial state */
+static void __init palmte2_udc_init(void)
+{
+       if (!gpio_request(GPIO_NR_PALMTE2_USB_PULLUP, "UDC Vbus")) {
+               gpio_direction_output(GPIO_NR_PALMTE2_USB_PULLUP, 1);
+               gpio_free(GPIO_NR_PALMTE2_USB_PULLUP);
+       }
+}
+
+static void __init palmte2_init(void)
+{
+       pxa2xx_mfp_config(ARRAY_AND_SIZE(palmte2_pin_config));
+
+       set_pxa_fb_info(&palmte2_lcd_screen);
+       pxa_set_mci_info(&palmte2_mci_platform_data);
+       palmte2_udc_init();
+       pxa_set_udc_info(&palmte2_udc_info);
+       pxa_set_ac97_info(NULL);
+       pxa_set_ficp_info(&palmte2_ficp_platform_data);
+       wm97xx_bat_set_pdata(&wm97xx_batt_pdata);
+
+       platform_add_devices(devices, ARRAY_SIZE(devices));
+}
+
+MACHINE_START(PALMTE2, "Palm Tungsten|E2")
+       .phys_io        = 0x40000000,
+       .io_pg_offst    = (io_p2v(0x40000000) >> 18) & 0xfffc,
+       .boot_params    = 0xa0000100,
+       .map_io         = pxa_map_io,
+       .init_irq       = pxa25x_init_irq,
+       .timer          = &pxa_timer,
+       .init_machine   = palmte2_init
+MACHINE_END
index b490c0924619bf7e69fce0ca50fbde060532f090..59d0c1cba5563940e8ba993300bb444743acc753 100644 (file)
@@ -93,10 +93,10 @@ static unsigned long palmtx_pin_config[] __initdata = {
        GPIO116_GPIO,   /* wifi ready */
 
        /* MATRIX KEYPAD */
-       GPIO100_KP_MKIN_0,
-       GPIO101_KP_MKIN_1,
-       GPIO102_KP_MKIN_2,
-       GPIO97_KP_MKIN_3,
+       GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
+       GPIO101_KP_MKIN_1 | WAKEUP_ON_LEVEL_HIGH,
+       GPIO102_KP_MKIN_2 | WAKEUP_ON_LEVEL_HIGH,
+       GPIO97_KP_MKIN_3 | WAKEUP_ON_LEVEL_HIGH,
        GPIO103_KP_MKOUT_0,
        GPIO104_KP_MKOUT_1,
        GPIO105_KP_MKOUT_2,
@@ -458,6 +458,33 @@ static struct pxafb_mach_info palmtx_lcd_screen = {
        .lcd_conn       = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
 };
 
+/******************************************************************************
+ * Power management - standby
+ ******************************************************************************/
+#ifdef CONFIG_PM
+static u32 *addr __initdata;
+static u32 resume[3] __initdata = {
+       0xe3a00101,     /* mov  r0,     #0x40000000 */
+       0xe380060f,     /* orr  r0, r0, #0x00f00000 */
+       0xe590f008,     /* ldr  pc, [r0, #0x08] */
+};
+
+static int __init palmtx_pm_init(void)
+{
+       int i;
+
+       /* this is where the bootloader jumps */
+       addr = phys_to_virt(PALMTX_STR_BASE);
+
+       for (i = 0; i < 3; i++)
+               addr[i] = resume[i];
+
+       return 0;
+}
+
+device_initcall(palmtx_pm_init);
+#endif
+
 /******************************************************************************
  * Machine init
  ******************************************************************************/
index 6e8ade6ae33903e34a051e94f80b3343f84c27aa..afac5b6d3d78e50212afbca1df72579f57de00e4 100644 (file)
@@ -45,6 +45,7 @@
 #include <mach/udc.h>
 #include <mach/tosa_bt.h>
 #include <mach/pxa2xx_spi.h>
+#include <mach/audio.h>
 
 #include <asm/mach/arch.h>
 #include <mach/tosa.h>
@@ -914,6 +915,7 @@ static void __init tosa_init(void)
        pxa_set_udc_info(&udc_info);
        pxa_set_ficp_info(&tosa_ficp_platform_data);
        pxa_set_i2c_info(NULL);
+       pxa_set_ac97_info(NULL);
        platform_scoop_config = &tosa_pcmcia_config;
 
        pxa2xx_set_spi_info(2, &pxa_ssp_master_info);
index b438fc4fb77b7bc0fcd838697ef5bef8c75661de..e6344ece00cee9c6e026bbe3b443e203745534e9 100644 (file)
@@ -828,6 +828,17 @@ void __init reserve_node_zero(pg_data_t *pgdat)
                                BOOTMEM_DEFAULT);
        }
 
+       if (machine_is_palmld() || machine_is_palmtx()) {
+               reserve_bootmem_node(pgdat, 0xa0000000, 0x1000,
+                               BOOTMEM_EXCLUSIVE);
+               reserve_bootmem_node(pgdat, 0xa0200000, 0x1000,
+                               BOOTMEM_EXCLUSIVE);
+       }
+
+       if (machine_is_palmt5())
+               reserve_bootmem_node(pgdat, 0xa0200000, 0x1000,
+                               BOOTMEM_EXCLUSIVE);
+
 #ifdef CONFIG_SA1111
        /*
         * Because of the SA1111 DMA bug, we want to preserve our
similarity index 98%
rename from include/asm-frv/pgtable.h
rename to arch/frv/include/asm/pgtable.h
index e16fdb1f4f4fe11caada4239cbc621f084936552..33233011b1c1147ff46d2aaac3522150d72630c7 100644 (file)
@@ -71,10 +71,8 @@ static inline int pte_file(pte_t pte) { return 0; }
 #define swapper_pg_dir         ((pgd_t *) NULL)
 
 #define pgtable_cache_init()           do {} while (0)
-#define arch_enter_lazy_mmu_mode()     do {} while (0)
-#define arch_leave_lazy_mmu_mode()     do {} while (0)
-#define arch_enter_lazy_cpu_mode()     do {} while (0)
-#define arch_leave_lazy_cpu_mode()     do {} while (0)
+
+#include <asm-generic/pgtable.h>
 
 #else /* !CONFIG_MMU */
 /*****************************************************************************/
similarity index 97%
rename from include/asm-frv/thread_info.h
rename to arch/frv/include/asm/thread_info.h
index b7ac6bf2844c395c3179d733102e13ca0e8001fa..bb53ab753ffbf7b3a62e9e105583b4339d9768ce 100644 (file)
@@ -38,9 +38,9 @@ struct thread_info {
        int                     preempt_count;  /* 0 => preemptable, <0 => BUG */
 
        mm_segment_t            addr_limit;     /* thread address space:
-                                                  0-0xBFFFFFFF for user-thead
-                                                  0-0xFFFFFFFF for kernel-thread
-                                               */
+                                                * 0-0xBFFFFFFF for user-thead
+                                                * 0-0xFFFFFFFF for kernel-thread
+                                                */
        struct restart_block    restart_block;
 
        __u8                    supervisor_stack[0];
index 9015979ebe0f3481a2a7582db001097a608e0155..10a9eb05f74d121777ca763e0887f73c96dca88c 100644 (file)
 #define __NR_dup3                      1316
 #define __NR_pipe2                     1317
 #define __NR_inotify_init1             1318
+#define __NR_preadv                    1319
+#define __NR_pwritev                   1320
 
 #ifdef __KERNEL__
 
 
-#define NR_syscalls                    295 /* length of syscall table */
+#define NR_syscalls                    297 /* length of syscall table */
 
 /*
  * The following defines stop scripts/checksyscalls.sh from complaining about
index 8dc69669586aeca975802ed634e7138df3b249bd..7bebac0e1d44705d8142860d3ce0093bc27ac60e 100644 (file)
@@ -1803,6 +1803,8 @@ sys_call_table:
        data8 sys_dup3
        data8 sys_pipe2
        data8 sys_inotify_init1
+       data8 sys_preadv
+       data8 sys_pwritev                       // 1320
 
        .org sys_call_table + 8*NR_syscalls     // guard against failures to increase NR_syscalls
 #endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
new file mode 100644 (file)
index 0000000..8cc312b
--- /dev/null
@@ -0,0 +1,141 @@
+# For a description of the syntax of this configuration file,
+# see Documentation/kbuild/kconfig-language.txt.
+
+mainmenu "Linux/Microblaze Kernel Configuration"
+
+config MICROBLAZE
+       def_bool y
+       select HAVE_LMB
+
+config SWAP
+       def_bool n
+
+config RWSEM_GENERIC_SPINLOCK
+       def_bool y
+
+config RWSEM_XCHGADD_ALGORITHM
+       bool
+
+config ARCH_HAS_ILOG2_U32
+       def_bool n
+
+config ARCH_HAS_ILOG2_U64
+       def_bool n
+
+config GENERIC_FIND_NEXT_BIT
+       def_bool y
+
+config GENERIC_HWEIGHT
+       def_bool y
+
+config GENERIC_HARDIRQS
+       def_bool y
+
+config GENERIC_IRQ_PROBE
+       def_bool y
+
+config GENERIC_CALIBRATE_DELAY
+       def_bool y
+
+config GENERIC_TIME
+       def_bool y
+
+config GENERIC_TIME_VSYSCALL
+       def_bool n
+
+config GENERIC_CLOCKEVENTS
+       def_bool y
+
+config GENERIC_HARDIRQS_NO__DO_IRQ
+       def_bool y
+
+config PCI
+       depends on !MMU
+       def_bool n
+
+config NO_DMA
+       depends on !MMU
+       def_bool n
+
+source "init/Kconfig"
+
+source "kernel/Kconfig.freezer"
+
+source "arch/microblaze/platform/Kconfig.platform"
+
+menu "Processor type and features"
+
+source kernel/time/Kconfig
+
+source "kernel/Kconfig.preempt"
+
+source "kernel/Kconfig.hz"
+
+config MMU
+       def_bool n
+
+config NO_MMU
+       bool
+       depends on !MMU
+       default y
+
+comment "Boot options"
+
+config CMDLINE_BOOL
+       bool "Default bootloader kernel arguments"
+
+config CMDLINE
+       string "Default kernel command string"
+       depends on CMDLINE_BOOL
+       default "console=ttyUL0,115200"
+       help
+         On some architectures there is currently no way for the boot loader
+         to pass arguments to the kernel. For these architectures, you should
+         supply some command-line options at build time by entering them
+         here.
+
+config CMDLINE_FORCE
+       bool "Force default kernel command string"
+       depends on CMDLINE_BOOL
+       default n
+       help
+         Set this to have arguments from the default kernel command string
+         override those passed by the boot loader.
+
+config OF
+       def_bool y
+
+config OF_DEVICE
+       def_bool y
+
+config PROC_DEVICETREE
+       bool "Support for device tree in /proc"
+       depends on PROC_FS
+       help
+         This option adds a device-tree directory under /proc which contains
+         an image of the device tree that the kernel copies from Open
+         Firmware or other boot firmware. If unsure, say Y here.
+
+endmenu
+
+source "mm/Kconfig"
+
+menu "Exectuable file formats"
+
+source "fs/Kconfig.binfmt"
+
+endmenu
+
+source "net/Kconfig"
+
+source "drivers/Kconfig"
+
+source "fs/Kconfig"
+
+source "arch/microblaze/Kconfig.debug"
+
+source "security/Kconfig"
+
+source "crypto/Kconfig"
+
+source "lib/Kconfig"
diff --git a/arch/microblaze/Kconfig.debug b/arch/microblaze/Kconfig.debug
new file mode 100644 (file)
index 0000000..242cd35
--- /dev/null
@@ -0,0 +1,26 @@
+# For a description of the syntax of this configuration file,
+# see Documentation/kbuild/kconfig-language.txt.
+
+menu "Kernel hacking"
+
+source "lib/Kconfig.debug"
+
+config EARLY_PRINTK
+       bool "Early printk function for kernel"
+       default n
+       help
+         This option turns on/off early printk messages to console.
+         First Uartlite node is taken.
+
+config HEART_BEAT
+       bool "Heart beat function for kernel"
+       default n
+       help
+         This option turns on/off heart beat kernel functionality.
+         First GPIO node is taken.
+
+config DEBUG_BOOTMEM
+       depends on DEBUG_KERNEL
+       bool "Debug BOOTMEM initialization"
+
+endmenu
diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
new file mode 100644 (file)
index 0000000..0dcbb98
--- /dev/null
@@ -0,0 +1,69 @@
+UTS_SYSNAME = -DUTS_SYSNAME=\"uClinux\"
+
+# What CPU vesion are we building for, and crack it open
+# as major.minor.rev
+CPU_VER=$(subst ",,$(CONFIG_XILINX_MICROBLAZE0_HW_VER) )
+CPU_MAJOR=$(shell echo $(CPU_VER) | cut -d '.' -f 1)
+CPU_MINOR=$(shell echo $(CPU_VER) | cut -d '.' -f 2)
+CPU_REV=$(shell echo $(CPU_VER) | cut -d '.' -f 3)
+
+export CPU_VER CPU_MAJOR CPU_MINOR CPU_REV
+
+# Use cpu-related CONFIG_ vars to set compile options.
+
+# Work out HW multipler support.  This is icky.
+# 1. Spartan2 has no HW multiplers.
+# 2. MicroBlaze v3.x always uses them, except in Spartan 2
+# 3. All other FPGa/CPU ver combos, we can trust the CONFIG_ settings
+ifeq (,$(findstring spartan2,$(CONFIG_XILINX_MICROBLAZE0_FAMILY)))
+  ifeq ($(CPU_MAJOR),3)
+    CPUFLAGS-1 += -mno-xl-soft-mul
+  else
+    # USE_HW_MUL can be 0, 1, or 2, defining a heirarchy of HW Mul support.
+    CPUFLAGS-$(subst 1,,$(CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL)) += -mxl-multiply-high
+    CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL) += -mno-xl-soft-mul
+  endif
+endif
+CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div
+CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift
+CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP) += -mxl-pattern-compare
+
+CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
+
+# The various CONFIG_XILINX cpu features options are integers 0/1/2...
+# rather than bools y/n
+CFLAGS += $(CPUFLAGS-1)
+CFLAGS += $(CPUFLAGS-2)
+
+# r31 holds current when in kernel mode
+CFLAGS += -ffixed-r31
+
+LDFLAGS_BLOB := --format binary --oformat elf32-microblaze
+
+LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
+
+head-y         := arch/microblaze/kernel/head.o
+libs-y         += arch/microblaze/lib/ $(LIBGCC)
+core-y         += arch/microblaze/kernel/ arch/microblaze/mm/ \
+                  arch/microblaze/platform/
+
+boot := arch/$(ARCH)/boot
+
+# defines filename extension depending memory management type
+ifeq ($(CONFIG_MMU),)
+MMUEXT         := -nommu
+endif
+export MMUEXT
+
+all: linux.bin
+
+archclean:
+       $(Q)$(MAKE) $(clean)=$(boot)
+
+linux.bin linux.bin.gz: vmlinux
+       $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
+
+define archhelp
+  echo  '* linux.bin    - Create raw binary'
+  echo  '  linux.bin.gz - Create compressed raw binary'
+endef
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
new file mode 100644 (file)
index 0000000..844edf4
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# arch/microblaze/boot/Makefile
+#
+
+targets := linux.bin linux.bin.gz
+
+OBJCOPYFLAGS_linux.bin  := -O binary
+
+$(obj)/linux.bin: vmlinux FORCE
+       $(call if_changed,objcopy)
+       @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
+
+$(obj)/linux.bin.gz: $(obj)/linux.bin FORCE
+       $(call if_changed,gzip)
+       @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
+
+clean-kernel += linux.bin linux.bin.gz
diff --git a/arch/microblaze/configs/nommu_defconfig b/arch/microblaze/configs/nommu_defconfig
new file mode 100644 (file)
index 0000000..beb7ecd
--- /dev/null
@@ -0,0 +1,804 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.29
+# Tue Mar 24 10:23:20 2009
+#
+CONFIG_MICROBLAZE=y
+# CONFIG_SWAP is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_TIME=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+# CONFIG_PCI is not set
+# CONFIG_NO_DMA is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_GROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_EXTRA_PASS=y
+# CONFIG_HOTPLUG is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+# CONFIG_BASE_FULL is not set
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_AIO=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=1
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_FREEZER is not set
+
+#
+# Platform options
+#
+CONFIG_PLATFORM_GENERIC=y
+# CONFIG_SELFMOD is not set
+# CONFIG_OPT_LIB_FUNCTION is not set
+# CONFIG_ALLOW_EDIT_AUTO is not set
+CONFIG_KERNEL_BASE_ADDR=0x90000000
+CONFIG_XILINX_MICROBLAZE0_FAMILY="virtex5"
+CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1
+CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1
+CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1
+CONFIG_XILINX_MICROBLAZE0_USE_DIV=1
+CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=2
+CONFIG_XILINX_MICROBLAZE0_USE_FPU=2
+CONFIG_XILINX_MICROBLAZE0_HW_VER="7.10.d"
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+# CONFIG_MMU is not set
+CONFIG_NO_MMU=y
+
+#
+# Boot options
+#
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="console=ttyUL0,115200"
+# CONFIG_CMDLINE_FORCE is not set
+CONFIG_OF=y
+CONFIG_OF_DEVICE=y
+CONFIG_PROC_DEVICETREE=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+
+#
+# Exectuable file formats
+#
+CONFIG_BINFMT_FLAT=y
+# CONFIG_BINFMT_ZFLAT is not set
+# CONFIG_BINFMT_SHARED_FLAT is not set
+# CONFIG_HAVE_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_COMPAT_NET_DEV_OPS=y
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_PHONET is not set
+CONFIG_WIRELESS=y
+# CONFIG_CFG80211 is not set
+CONFIG_WIRELESS_OLD_REGULATORY=y
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_LIB80211 is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+CONFIG_MTD_RAM=y
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_UCLINUX=y
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_NBD=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_93CX6 is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+# CONFIG_MII is not set
+# CONFIG_DNET is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+CONFIG_NETDEV_10000=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_IWLWIFI_LEDS is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_UARTLITE=y
+CONFIG_SERIAL_UARTLITE_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_RTC is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_I2C is not set
+# CONFIG_SPI is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+# CONFIG_THERMAL_HWMON is not set
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_REGULATOR is not set
+
+#
+# Multimedia devices
+#
+
+#
+# Multimedia core support
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_VIDEO_MEDIA is not set
+
+#
+# Multimedia drivers
+#
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+# CONFIG_FB is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+# CONFIG_SOUND is not set
+CONFIG_USB_SUPPORT=y
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+
+#
+# Enable Host or Gadget support to see Inventra options
+#
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_RTC_CLASS is not set
+# CONFIG_DMADEVICES is not set
+# CONFIG_UIO is not set
+# CONFIG_STAGING is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FILE_LOCKING=y
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_DNOTIFY is not set
+# CONFIG_INOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+# CONFIG_TMPFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+CONFIG_ROMFS_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_SUNRPC_REGISTER_V4 is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_NLS is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_SHIRQ=y
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+CONFIG_TIMER_STATS=y
+CONFIG_DEBUG_OBJECTS=y
+CONFIG_DEBUG_OBJECTS_SELFTEST=y
+CONFIG_DEBUG_OBJECTS_FREE=y
+CONFIG_DEBUG_OBJECTS_TIMERS=y
+CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_NOMMU_REGIONS is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_DEBUG_LIST=y
+CONFIG_DEBUG_SG=y
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+
+#
+# Tracers
+#
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_CONTEXT_SWITCH_TRACER is not set
+# CONFIG_BOOT_TRACER is not set
+# CONFIG_TRACE_BRANCH_PROFILING is not set
+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_EARLY_PRINTK=y
+CONFIG_HEART_BEAT=y
+# CONFIG_DEBUG_BOOTMEM is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_FIPS is not set
+# CONFIG_CRYPTO_MANAGER is not set
+# CONFIG_CRYPTO_MANAGER2 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_HW=y
+
+#
+# Library routines
+#
+CONFIG_GENERIC_FIND_LAST_BIT=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+# CONFIG_CRC32 is not set
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_HAVE_LMB=y
diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
new file mode 100644 (file)
index 0000000..31820df
--- /dev/null
@@ -0,0 +1,26 @@
+include include/asm-generic/Kbuild.asm
+
+header-y += auxvec.h
+header-y += errno.h
+header-y += fcntl.h
+header-y += ioctl.h
+header-y += ioctls.h
+header-y += ipcbuf.h
+header-y += linkage.h
+header-y += msgbuf.h
+header-y += poll.h
+header-y += resource.h
+header-y += sembuf.h
+header-y += shmbuf.h
+header-y += sigcontext.h
+header-y += siginfo.h
+header-y += socket.h
+header-y += sockios.h
+header-y += statfs.h
+header-y += stat.h
+header-y += termbits.h
+header-y += ucontext.h
+
+unifdef-y += cputable.h
+unifdef-y += elf.h
+unifdef-y += termios.h
diff --git a/arch/microblaze/include/asm/atomic.h b/arch/microblaze/include/asm/atomic.h
new file mode 100644 (file)
index 0000000..a448d94
--- /dev/null
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_ATOMIC_H
+#define _ASM_MICROBLAZE_ATOMIC_H
+
+#include <linux/types.h>
+#include <linux/compiler.h> /* likely */
+#include <asm/system.h> /* local_irq_XXX and friends */
+
+#define ATOMIC_INIT(i)         { (i) }
+#define atomic_read(v)         ((v)->counter)
+#define atomic_set(v, i)       (((v)->counter) = (i))
+
+#define atomic_inc(v)          (atomic_add_return(1, (v)))
+#define atomic_dec(v)          (atomic_sub_return(1, (v)))
+
+#define atomic_add(i, v)       (atomic_add_return(i, (v)))
+#define atomic_sub(i, v)       (atomic_sub_return(i, (v)))
+
+#define atomic_inc_return(v)   (atomic_add_return(1, (v)))
+#define atomic_dec_return(v)   (atomic_sub_return(1, (v)))
+
+#define atomic_inc_and_test(v) (atomic_add_return(1, (v)) == 0)
+#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0)
+
+#define atomic_inc_not_zero(v) (atomic_add_unless((v), 1, 0))
+
+#define atomic_sub_and_test(i, v) (atomic_sub_return((i), (v)) == 0)
+
+static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
+{
+       int ret;
+       unsigned long flags;
+
+       local_irq_save(flags);
+       ret = v->counter;
+       if (likely(ret == old))
+               v->counter = new;
+       local_irq_restore(flags);
+
+       return ret;
+}
+
+static inline int atomic_add_unless(atomic_t *v, int a, int u)
+{
+       int c, old;
+
+       c = atomic_read(v);
+       while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c)
+               c = old;
+       return c != u;
+}
+
+static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+{
+       unsigned long flags;
+
+       local_irq_save(flags);
+       *addr &= ~mask;
+       local_irq_restore(flags);
+}
+
+/**
+ * atomic_add_return - add and return
+ * @i: integer value to add
+ * @v: pointer of type atomic_t
+ *
+ * Atomically adds @i to @v and returns @i + @v
+ */
+static inline int atomic_add_return(int i, atomic_t *v)
+{
+       unsigned long flags;
+       int val;
+
+       local_irq_save(flags);
+       val = v->counter;
+       v->counter = val += i;
+       local_irq_restore(flags);
+
+       return val;
+}
+
+static inline int atomic_sub_return(int i, atomic_t *v)
+{
+       return atomic_add_return(-i, v);
+}
+
+/*
+ * Atomically test *v and decrement if it is greater than 0.
+ * The function returns the old value of *v minus 1.
+ */
+static inline int atomic_dec_if_positive(atomic_t *v)
+{
+       unsigned long flags;
+       int res;
+
+       local_irq_save(flags);
+       res = v->counter - 1;
+       if (res >= 0)
+               v->counter = res;
+       local_irq_restore(flags);
+
+       return res;
+}
+
+#define atomic_add_negative(a, v)      (atomic_add_return((a), (v)) < 0)
+#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
+
+/* Atomic operations are already serializing */
+#define smp_mb__before_atomic_dec()    barrier()
+#define smp_mb__after_atomic_dec()     barrier()
+#define smp_mb__before_atomic_inc()    barrier()
+#define smp_mb__after_atomic_inc()     barrier()
+
+#include <asm-generic/atomic.h>
+
+#endif /* _ASM_MICROBLAZE_ATOMIC_H */
diff --git a/arch/microblaze/include/asm/auxvec.h b/arch/microblaze/include/asm/auxvec.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/arch/microblaze/include/asm/bitops.h b/arch/microblaze/include/asm/bitops.h
new file mode 100644 (file)
index 0000000..d6df1fd
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_BITOPS_H
+#define _ASM_MICROBLAZE_BITOPS_H
+
+/*
+ * Copyright 1992, Linus Torvalds.
+ */
+
+#include <asm/byteorder.h> /* swab32 */
+#include <asm/system.h> /* save_flags */
+
+/*
+ * clear_bit() doesn't provide any barrier for the compiler.
+ */
+#define smp_mb__before_clear_bit()     barrier()
+#define smp_mb__after_clear_bit()      barrier()
+#include <asm-generic/bitops.h>
+#include <asm-generic/bitops/__fls.h>
+
+#endif /* _ASM_MICROBLAZE_BITOPS_H */
diff --git a/arch/microblaze/include/asm/bug.h b/arch/microblaze/include/asm/bug.h
new file mode 100644 (file)
index 0000000..8eb2cdd
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_BUG_H
+#define _ASM_MICROBLAZE_BUG_H
+
+#include <linux/kernel.h>
+#include <asm-generic/bug.h>
+
+#endif /* _ASM_MICROBLAZE_BUG_H */
diff --git a/arch/microblaze/include/asm/bugs.h b/arch/microblaze/include/asm/bugs.h
new file mode 100644 (file)
index 0000000..f2c6593
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_BUGS_H
+#define _ASM_MICROBLAZE_BUGS_H
+
+static inline void check_bugs(void)
+{
+       /* nothing to do */
+}
+
+#endif /* _ASM_MICROBLAZE_BUGS_H */
diff --git a/arch/microblaze/include/asm/byteorder.h b/arch/microblaze/include/asm/byteorder.h
new file mode 100644 (file)
index 0000000..ce9c587
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef _ASM_MICROBLAZE_BYTEORDER_H
+#define _ASM_MICROBLAZE_BYTEORDER_H
+
+#include <linux/byteorder/big_endian.h>
+
+#endif /* _ASM_MICROBLAZE_BYTEORDER_H */
diff --git a/arch/microblaze/include/asm/cache.h b/arch/microblaze/include/asm/cache.h
new file mode 100644 (file)
index 0000000..c4c64b4
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Cache operations
+ *
+ * Copyright (C) 2007-2009 Michal Simek <monstr@monstr.eu>
+ * Copyright (C) 2007-2009 PetaLogix
+ * Copyright (C) 2003 John Williams <jwilliams@itee.uq.edu.au>
+ *
+ * This file is subject to the terms and conditions of the GNU General
+ * Public License. See the file COPYING in the main directory of this
+ * archive for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_CACHE_H
+#define _ASM_MICROBLAZE_CACHE_H
+
+#include <asm/registers.h>
+
+#define L1_CACHE_SHIFT 2
+/* word-granular cache in microblaze */
+#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
+
+#define SMP_CACHE_BYTES        L1_CACHE_BYTES
+
+void _enable_icache(void);
+void _disable_icache(void);
+void _invalidate_icache(unsigned int addr);
+
+#define __enable_icache()              _enable_icache()
+#define __disable_icache()             _disable_icache()
+#define __invalidate_icache(addr)      _invalidate_icache(addr)
+
+void _enable_dcache(void);
+void _disable_dcache(void);
+void _invalidate_dcache(unsigned int addr);
+
+#define __enable_dcache()              _enable_dcache()
+#define __disable_dcache()             _disable_dcache()
+#define __invalidate_dcache(addr)      _invalidate_dcache(addr)
+
+/* FIXME - I don't think this is right */
+#ifdef CONFIG_XILINX_UNCACHED_SHADOW
+#define UNCACHED_SHADOW_MASK (CONFIG_XILINX_ERAM_SIZE)
+#endif
+
+#endif /* _ASM_MICROBLAZE_CACHE_H */
diff --git a/arch/microblaze/include/asm/cacheflush.h b/arch/microblaze/include/asm/cacheflush.h
new file mode 100644 (file)
index 0000000..3300b78
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007 PetaLogix
+ * Copyright (C) 2007 John Williams <john.williams@petalogix.com>
+ * based on v850 version which was
+ * Copyright (C) 2001,02,03 NEC Electronics Corporation
+ * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org>
+ *
+ * This file is subject to the terms and conditions of the GNU General
+ * Public License. See the file COPYING in the main directory of this
+ * archive for more details.
+ *
+ */
+
+#ifndef _ASM_MICROBLAZE_CACHEFLUSH_H
+#define _ASM_MICROBLAZE_CACHEFLUSH_H
+
+/* Somebody depends on this; sigh... */
+#include <linux/mm.h>
+
+/*
+ * Cache handling functions.
+ * Microblaze has a write-through data cache, meaning that the data cache
+ * never needs to be flushed.  The only flushing operations that are
+ * implemented are to invalidate the instruction cache.  These are called
+ * after loading a user application into memory, we must invalidate the
+ * instruction cache to make sure we don't fetch old, bad code.
+ */
+
+/* FIXME for LL-temac driver */
+#define invalidate_dcache_range(start, end) \
+                       __invalidate_dcache_range(start, end)
+
+#define flush_cache_all()                      __invalidate_cache_all()
+#define flush_cache_mm(mm)                     do { } while (0)
+#define flush_cache_range(vma, start, end)     __invalidate_cache_all()
+#define flush_cache_page(vma, vmaddr, pfn)     do { } while (0)
+
+#define flush_dcache_range(start, end) __invalidate_dcache_range(start, end)
+#define flush_dcache_page(page)                        do { } while (0)
+#define flush_dcache_mmap_lock(mapping)                do { } while (0)
+#define flush_dcache_mmap_unlock(mapping)      do { } while (0)
+
+#define flush_icache_range(start, len) __invalidate_icache_range(start, len)
+#define flush_icache_page(vma, pg)             do { } while (0)
+
+#define flush_cache_vmap(start, end)           do { } while (0)
+#define flush_cache_vunmap(start, end)         do { } while (0)
+
+struct page;
+struct mm_struct;
+struct vm_area_struct;
+
+/* see arch/microblaze/kernel/cache.c */
+extern void __invalidate_icache_all(void);
+extern void __invalidate_icache_range(unsigned long start, unsigned long end);
+extern void __invalidate_icache_page(struct vm_area_struct *vma,
+                               struct page *page);
+extern void __invalidate_icache_user_range(struct vm_area_struct *vma,
+                               struct page *page,
+                               unsigned long adr, int len);
+extern void __invalidate_cache_sigtramp(unsigned long addr);
+
+extern void __invalidate_dcache_all(void);
+extern void __invalidate_dcache_range(unsigned long start, unsigned long end);
+extern void __invalidate_dcache_page(struct vm_area_struct *vma,
+                               struct page *page);
+extern void __invalidate_dcache_user_range(struct vm_area_struct *vma,
+                               struct page *page,
+                               unsigned long adr, int len);
+
+extern inline void __invalidate_cache_all(void)
+{
+       __invalidate_icache_all();
+       __invalidate_dcache_all();
+}
+
+#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
+do { memcpy((dst), (src), (len)); \
+       flush_icache_range((unsigned) (dst), (unsigned) (dst) + (len)); \
+} while (0)
+
+#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
+       memcpy((dst), (src), (len))
+
+#endif /* _ASM_MICROBLAZE_CACHEFLUSH_H */
diff --git a/arch/microblaze/include/asm/checksum.h b/arch/microblaze/include/asm/checksum.h
new file mode 100644 (file)
index 0000000..92b3076
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2008 Michal Simek <monstr@monstr.eu>
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_CHECKSUM_H
+#define _ASM_MICROBLAZE_CHECKSUM_H
+
+#include <linux/in6.h>
+
+/*
+ * computes the checksum of the TCP/UDP pseudo-header
+ * returns a 16-bit checksum, already complemented
+ */
+static inline __wsum
+csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
+                  unsigned short proto, __wsum sum)
+{
+       __asm__("add %0, %0, %1\n\t"
+               "addc %0, %0, %2\n\t"
+               "addc %0, %0, %3\n\t"
+               "addc %0, %0, r0\n\t"
+               : "+&d" (sum)
+               : "d" (saddr), "d" (daddr), "d" (len + proto));
+
+       return sum;
+}
+
+/*
+ * computes the checksum of a memory block at buff, length len,
+ * and adds in "sum" (32-bit)
+ *
+ * returns a 32-bit number suitable for feeding into itself
+ * or csum_tcpudp_magic
+ *
+ * this function must be called with even lengths, except
+ * for the last fragment, which may be odd
+ *
+ * it's best to have buff aligned on a 32-bit boundary
+ */
+extern __wsum csum_partial(const void *buff, int len, __wsum sum);
+
+/*
+ * the same as csum_partial, but copies from src while it
+ * checksums
+ *
+ * here even more important to align src and dst on a 32-bit (or even
+ * better 64-bit) boundary
+ */
+extern __wsum csum_partial_copy(const char *src, char *dst, int len, int sum);
+
+/*
+ * the same as csum_partial_copy, but copies from user space.
+ *
+ * here even more important to align src and dst on a 32-bit (or even
+ * better 64-bit) boundary
+ */
+extern __wsum csum_partial_copy_from_user(const char *src, char *dst,
+                                       int len, int sum, int *csum_err);
+
+#define csum_partial_copy_nocheck(src, dst, len, sum)  \
+       csum_partial_copy((src), (dst), (len), (sum))
+
+/*
+ *     This is a version of ip_compute_csum() optimized for IP headers,
+ *     which always checksum on 4 octet boundaries.
+ *
+ */
+extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
+
+/*
+ *     Fold a partial checksum
+ */
+static inline __sum16 csum_fold(unsigned int sum)
+{
+       sum = (sum & 0xffff) + (sum >> 16);
+       sum = (sum & 0xffff) + (sum >> 16);
+       return ~sum;
+}
+
+static inline __sum16
+csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len,
+                 unsigned short proto, __wsum sum)
+{
+       return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
+}
+
+/*
+ * this routine is used for miscellaneous IP-like checksums, mainly
+ * in icmp.c
+ */
+extern __sum16 ip_compute_csum(const unsigned char *buff, int len);
+
+#endif /* _ASM_MICROBLAZE_CHECKSUM_H */
diff --git a/arch/microblaze/include/asm/clinkage.h b/arch/microblaze/include/asm/clinkage.h
new file mode 100644 (file)
index 0000000..9e21843
--- /dev/null
@@ -0,0 +1 @@
+#include <linux/linkage.h>
diff --git a/arch/microblaze/include/asm/cpuinfo.h b/arch/microblaze/include/asm/cpuinfo.h
new file mode 100644 (file)
index 0000000..52f28f6
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Generic support for queying CPU info
+ *
+ * Copyright (C) 2007-2009 Michal Simek <monstr@monstr.eu>
+ * Copyright (C) 2007-2009 PetaLogix
+ * Copyright (C) 2007 John Williams <jwilliams@itee.uq.edu.au>
+ *
+ * This file is subject to the terms and conditions of the GNU General
+ * Public License. See the file COPYING in the main directory of this
+ * archive for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_CPUINFO_H
+#define _ASM_MICROBLAZE_CPUINFO_H
+
+#include <asm/prom.h>
+
+/* CPU Version and FPGA Family code conversion table type */
+struct cpu_ver_key {
+       const char *s;
+       const unsigned k;
+};
+
+extern const struct cpu_ver_key cpu_ver_lookup[];
+
+struct family_string_key {
+       const char *s;
+       const unsigned k;
+};
+
+extern const struct family_string_key family_string_lookup[];
+
+struct cpuinfo {
+       /* Core CPU configuration */
+       u32 use_instr;
+       u32 use_mult;
+       u32 use_fpu;
+       u32 use_exc;
+       u32 ver_code;
+       u32 mmu;
+
+       /* CPU caches */
+       u32 use_icache;
+       u32 icache_tagbits;
+       u32 icache_write;
+       u32 icache_line;
+       u32 icache_size;
+       unsigned long icache_base;
+       unsigned long icache_high;
+
+       u32 use_dcache;
+       u32 dcache_tagbits;
+       u32 dcache_write;
+       u32 dcache_line;
+       u32 dcache_size;
+       unsigned long dcache_base;
+       unsigned long dcache_high;
+
+       /* Bus connections */
+       u32 use_dopb;
+       u32 use_iopb;
+       u32 use_dlmb;
+       u32 use_ilmb;
+       u32 num_fsl;
+
+       /* CPU interrupt line info */
+       u32 irq_edge;
+       u32 irq_positive;
+
+       u32 area_optimised;
+
+       /* HW debug support */
+       u32 hw_debug;
+       u32 num_pc_brk;
+       u32 num_rd_brk;
+       u32 num_wr_brk;
+       u32 cpu_clock_freq; /* store real freq of cpu */
+       u32 freq_div_hz; /* store freq/HZ */
+
+       /* FPGA family */
+       u32 fpga_family_code;
+
+       /* User define */
+       u32 pvr_user1;
+       u32 pvr_user2;
+};
+
+extern struct cpuinfo cpuinfo;
+
+/* fwd declarations of the various CPUinfo populators */
+void setup_cpuinfo(void);
+
+void set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu);
+void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu);
+
+static inline unsigned int fcpu(struct device_node *cpu, char *n)
+{
+       int *val;
+       return (val = (int *) of_get_property(cpu, n, NULL)) ? *val : 0;
+}
+
+#endif /* _ASM_MICROBLAZE_CPUINFO_H */
diff --git a/arch/microblaze/include/asm/cputable.h b/arch/microblaze/include/asm/cputable.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/arch/microblaze/include/asm/current.h b/arch/microblaze/include/asm/current.h
new file mode 100644 (file)
index 0000000..8375ea9
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_CURRENT_H
+#define _ASM_MICROBLAZE_CURRENT_H
+
+# ifndef __ASSEMBLY__
+/*
+ * Dedicate r31 to keeping the current task pointer
+ */
+register struct task_struct *current asm("r31");
+
+# define get_current() current
+# endif /* __ASSEMBLY__ */
+
+#endif /* _ASM_MICROBLAZE_CURRENT_H */
diff --git a/arch/microblaze/include/asm/delay.h b/arch/microblaze/include/asm/delay.h
new file mode 100644 (file)
index 0000000..05b7d39
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * include/asm-microblaze/delay.h
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2008 Michal Simek
+ * Copyright (C) 2007 John Williams
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ */
+
+#ifndef _ASM_MICROBLAZE_DELAY_H
+#define _ASM_MICROBLAZE_DELAY_H
+
+extern inline void __delay(unsigned long loops)
+{
+       asm volatile ("# __delay                \n\t"           \
+                       "1: addi        %0, %0, -1\t\n"         \
+                       "bneid  %0, 1b          \t\n"           \
+                       "nop                    \t\n"
+                       : "=r" (loops)
+                       : "0" (loops));
+}
+
+/*
+ * Note that 19 * 226 == 4294 ==~ 2^32 / 10^6, so
+ * loops = (4294 * usecs * loops_per_jiffy * HZ) / 2^32.
+ *
+ * The mul instruction gives us loops = (a * b) / 2^32.
+ * We choose a = usecs * 19 * HZ and b = loops_per_jiffy * 226
+ * because this lets us support a wide range of HZ and
+ * loops_per_jiffy values without either a or b overflowing 2^32.
+ * Thus we need usecs * HZ <= (2^32 - 1) / 19 = 226050910 and
+ * loops_per_jiffy <= (2^32 - 1) / 226 = 19004280
+ * (which corresponds to ~3800 bogomips at HZ = 100).
+ * -- paulus
+ */
+#define __MAX_UDELAY   (226050910UL/HZ)        /* maximum udelay argument */
+#define __MAX_NDELAY   (4294967295UL/HZ)       /* maximum ndelay argument */
+
+extern unsigned long loops_per_jiffy;
+
+extern inline void __udelay(unsigned int x)
+{
+
+       unsigned long long tmp =
+               (unsigned long long)x * (unsigned long long)loops_per_jiffy \
+                       * 226LL;
+       unsigned loops = tmp >> 32;
+
+/*
+       __asm__("mulxuu %0,%1,%2" : "=r" (loops) :
+               "r" (x), "r" (loops_per_jiffy * 226));
+*/
+       __delay(loops);
+}
+
+extern void __bad_udelay(void);                /* deliberately undefined */
+extern void __bad_ndelay(void);                /* deliberately undefined */
+
+#define udelay(n) (__builtin_constant_p(n) ? \
+       ((n) > __MAX_UDELAY ? __bad_udelay() : __udelay((n) * (19 * HZ))) : \
+       __udelay((n) * (19 * HZ)))
+
+#define ndelay(n) (__builtin_constant_p(n) ? \
+       ((n) > __MAX_NDELAY ? __bad_ndelay() : __udelay((n) * HZ)) : \
+       __udelay((n) * HZ))
+
+#define muldiv(a, b, c)                (((a)*(b))/(c))
+
+#endif /* _ASM_MICROBLAZE_DELAY_H */
diff --git a/arch/microblaze/include/asm/device.h b/arch/microblaze/include/asm/device.h
new file mode 100644 (file)
index 0000000..c042830
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Arch specific extensions to struct device
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License v2. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_DEVICE_H
+#define _ASM_MICROBLAZE_DEVICE_H
+
+struct device_node;
+
+struct dev_archdata {
+       /* Optional pointer to an OF device node */
+       struct device_node      *of_node;
+};
+
+#endif /* _ASM_MICROBLAZE_DEVICE_H */
+
+
diff --git a/arch/microblaze/include/asm/div64.h b/arch/microblaze/include/asm/div64.h
new file mode 100644 (file)
index 0000000..6cd978c
--- /dev/null
@@ -0,0 +1 @@
+#include <asm-generic/div64.h>
diff --git a/arch/microblaze/include/asm/dma-mapping.h b/arch/microblaze/include/asm/dma-mapping.h
new file mode 100644 (file)
index 0000000..1733625
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2006 Atmark Techno, Inc.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#ifndef _ASM_MICROBLAZE_DMA_MAPPING_H
+#define _ASM_MICROBLAZE_DMA_MAPPING_H
+
+#include <asm/cacheflush.h>
+#include <linux/io.h>
+#include <linux/bug.h>
+
+struct scatterlist;
+
+#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
+#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
+
+/* FIXME */
+static inline int
+dma_supported(struct device *dev, u64 mask)
+{
+       return 1;
+}
+
+static inline dma_addr_t
+dma_map_page(struct device *dev, struct page *page,
+       unsigned long offset, size_t size,
+       enum dma_data_direction direction)
+{
+       BUG();
+       return 0;
+}
+
+static inline void
+dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
+       enum dma_data_direction direction)
+{
+       BUG();
+}
+
+static inline int
+dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
+       enum dma_data_direction direction)
+{
+       BUG();
+       return 0;
+}
+
+static inline void
+dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
+       enum dma_data_di