From 75f9a13f8aac9ca758c03e148f441a598adab4b5 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 12 Oct 2012 12:39:17 +0900 Subject: [PATCH] --- yaml --- r: 333857 b: refs/heads/master c: 4f1cd91497774488ed16119ec3f54b3daf1561de h: refs/heads/master i: 333855: 88ced7231956a3dd7a081a33f41c2950452043af v: v3 --- [refs] | 2 +- trunk/Documentation/00-INDEX | 2 - .../ABI/obsolete/proc-pid-oom_adj | 22 - trunk/Documentation/ABI/testing/sysfs-block | 14 + trunk/Documentation/ABI/testing/sysfs-bus-rbd | 18 +- .../ABI/testing/sysfs-devices-firmware_node | 17 + trunk/Documentation/ABI/testing/sysfs-fs-ext4 | 13 + trunk/Documentation/DocBook/mtdnand.tmpl | 2 - trunk/Documentation/arm/Booting | 22 +- trunk/Documentation/block/biodoc.txt | 5 - trunk/Documentation/cgroups/memory.txt | 90 +- .../devicetree/bindings/arm/davinci/nand.txt | 51 + .../devicetree/bindings/i2c/atmel-i2c.txt | 30 + .../devicetree/bindings/i2c/davinci.txt | 28 + .../devicetree/bindings/i2c/i2c-mxs.txt | 2 + .../devicetree/bindings/i2c/nomadik.txt | 23 + .../devicetree/bindings/mmc/atmel-hsmci.txt | 68 + .../bindings/mmc/exynos-dw-mshc.txt | 87 + .../devicetree/bindings/mmc/mmc.txt | 9 +- .../devicetree/bindings/mmc/pxa-mmc.txt | 25 + .../devicetree/bindings/mmc/samsung-sdhci.txt | 53 + .../devicetree/bindings/mmc/sdhci-dove.txt | 14 + .../devicetree/bindings/mmc/sdhci-spear.txt | 18 + .../bindings/mmc/synposis-dw-mshc.txt | 79 + .../devicetree/bindings/mtd/atmel-nand.txt | 40 +- .../devicetree/bindings/mtd/gpmi-nand.txt | 4 + .../devicetree/bindings/mtd/lpc32xx-mlc.txt | 50 + .../devicetree/bindings/mtd/lpc32xx-slc.txt | 52 + .../devicetree/bindings/mtd/mtd-physmap.txt | 7 + .../bindings/pinctrl/lantiq,falcon-pinumx.txt | 83 + .../bindings/pinctrl/lantiq,xway-pinumx.txt | 97 + .../devicetree/bindings/pwm/imx-pwm.txt | 17 + .../devicetree/bindings/pwm/mxs-pwm.txt | 2 +- .../bindings/pwm/nvidia,tegra20-pwm.txt | 2 +- .../devicetree/bindings/sound/cs4270.txt | 21 + .../devicetree/bindings/sound/cs4271.txt | 36 + .../bindings/sound/davinci-mcasp-audio.txt | 45 + .../bindings/sound/omap-abe-twl6040.txt | 91 + .../devicetree/bindings/sound/omap-mcbsp.txt | 37 + .../bindings/sound/omap-twl4030.txt | 17 + .../devicetree/bindings/sound/tlv320aic3x.txt | 20 + .../devicetree/bindings/spi/spi-octeon.txt | 33 + trunk/Documentation/driver-model/devres.txt | 4 + trunk/Documentation/filesystems/ext4.txt | 10 + trunk/Documentation/filesystems/nfs/nfs.txt | 44 +- trunk/Documentation/filesystems/proc.txt | 22 +- trunk/Documentation/hwmon/da9052 | 2 +- trunk/Documentation/hwmon/max1619 | 2 +- trunk/Documentation/hwmon/twl4030-madc-hwmon | 2 +- trunk/Documentation/i2c/busses/i2c-viapro | 6 +- trunk/Documentation/i2c/muxes/i2c-mux-gpio | 18 + trunk/Documentation/kernel-parameters.txt | 5 + trunk/Documentation/leds/leds-lp5523.txt | 21 +- trunk/Documentation/memory.txt | 33 - trunk/Documentation/percpu-rw-semaphore.txt | 27 + trunk/Documentation/prio_tree.txt | 107 - trunk/Documentation/pwm.txt | 3 +- trunk/Documentation/rbtree.txt | 209 +- .../sound/alsa/ALSA-Configuration.txt | 10 +- .../sound/alsa/Channel-Mapping-API.txt | 153 + .../sound/alsa/HD-Audio-Models.txt | 3 +- trunk/Documentation/target/tcm_mod_builder.py | 16 - .../virtual/uml/UserModeLinux-HOWTO.txt | 2 +- trunk/Documentation/vm/unevictable-lru.txt | 14 +- trunk/MAINTAINERS | 33 +- trunk/Makefile | 19 +- trunk/README | 18 + trunk/arch/Kconfig | 6 + trunk/arch/alpha/Kconfig | 1 + trunk/arch/alpha/include/asm/Kbuild | 3 + trunk/arch/alpha/include/asm/exec.h | 6 - trunk/arch/alpha/include/asm/processor.h | 3 - trunk/arch/alpha/include/asm/thread_info.h | 3 +- trunk/arch/alpha/include/asm/unistd.h | 2 + trunk/arch/alpha/kernel/alpha_ksyms.c | 3 - trunk/arch/alpha/kernel/entry.S | 82 +- trunk/arch/alpha/kernel/pci-sysfs.c | 2 +- trunk/arch/alpha/kernel/process.c | 79 +- trunk/arch/alpha/kernel/ptrace.c | 32 +- trunk/arch/arm/Kconfig | 4 + trunk/arch/arm/boot/compressed/.gitignore | 1 + trunk/arch/arm/boot/compressed/Makefile | 9 +- trunk/arch/arm/boot/compressed/head.S | 71 +- trunk/arch/arm/boot/dts/Makefile | 4 +- trunk/arch/arm/boot/dts/at91sam9260.dtsi | 10 + trunk/arch/arm/boot/dts/at91sam9263.dtsi | 10 + trunk/arch/arm/boot/dts/at91sam9g20.dtsi | 4 + trunk/arch/arm/boot/dts/at91sam9g25ek.dts | 12 + trunk/arch/arm/boot/dts/at91sam9g45.dtsi | 20 + trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts | 8 + trunk/arch/arm/boot/dts/at91sam9n12.dtsi | 20 + trunk/arch/arm/boot/dts/at91sam9n12ek.dts | 8 + trunk/arch/arm/boot/dts/at91sam9x5.dtsi | 30 + trunk/arch/arm/boot/dts/imx28.dtsi | 2 + trunk/arch/arm/boot/dts/imx51.dtsi | 7 + trunk/arch/arm/boot/dts/imx53.dtsi | 7 + trunk/arch/arm/boot/dts/omap4-panda.dts | 47 + trunk/arch/arm/boot/dts/omap4-sdp.dts | 57 + trunk/arch/arm/boot/dts/omap5-evm.dts | 58 + trunk/arch/arm/boot/dts/omap5.dtsi | 17 + trunk/arch/arm/boot/dts/spear300-evb.dts | 3 +- trunk/arch/arm/boot/dts/spear320-evb.dts | 2 - trunk/arch/arm/common/it8152.c | 12 +- trunk/arch/arm/configs/cam60_defconfig | 1 - trunk/arch/arm/configs/corgi_defconfig | 1 - trunk/arch/arm/configs/ep93xx_defconfig | 1 - trunk/arch/arm/configs/mini2440_defconfig | 1 - trunk/arch/arm/configs/mv78xx0_defconfig | 1 - trunk/arch/arm/configs/nhk8815_defconfig | 1 - trunk/arch/arm/configs/orion5x_defconfig | 1 - trunk/arch/arm/configs/pxa3xx_defconfig | 1 - trunk/arch/arm/configs/spitz_defconfig | 1 - trunk/arch/arm/include/asm/assembler.h | 29 + trunk/arch/arm/include/asm/cacheflush.h | 15 + trunk/arch/arm/include/asm/glue-cache.h | 1 + trunk/arch/arm/include/asm/opcodes-virt.h | 10 + trunk/arch/arm/include/asm/processor.h | 5 - trunk/arch/arm/include/asm/ptrace.h | 6 + trunk/arch/arm/include/asm/system.h | 1 - trunk/arch/arm/include/asm/thread_info.h | 2 - trunk/arch/arm/include/asm/unistd.h | 2 + trunk/arch/arm/include/asm/vfpmacros.h | 4 +- trunk/arch/arm/include/asm/virt.h | 69 + trunk/arch/arm/kernel/Makefile | 2 + trunk/arch/arm/kernel/calls.S | 2 +- trunk/arch/arm/kernel/entry-common.S | 29 +- trunk/arch/arm/kernel/head.S | 14 +- trunk/arch/arm/kernel/hyp-stub.S | 223 + trunk/arch/arm/kernel/process.c | 75 +- trunk/arch/arm/kernel/setup.c | 20 + trunk/arch/arm/kernel/signal.c | 1 - trunk/arch/arm/kernel/smp.c | 8 +- trunk/arch/arm/kernel/suspend.c | 17 +- trunk/arch/arm/kernel/sys_arm.c | 63 - trunk/arch/arm/mach-at91/at91rm9200.c | 1 + trunk/arch/arm/mach-at91/at91rm9200_devices.c | 2 +- trunk/arch/arm/mach-at91/at91sam9260.c | 3 + .../arch/arm/mach-at91/at91sam9260_devices.c | 8 +- trunk/arch/arm/mach-at91/at91sam9261.c | 2 + .../arch/arm/mach-at91/at91sam9261_devices.c | 14 +- trunk/arch/arm/mach-at91/at91sam9263.c | 2 + .../arch/arm/mach-at91/at91sam9263_devices.c | 2 +- trunk/arch/arm/mach-at91/at91sam9g45.c | 4 + .../arch/arm/mach-at91/at91sam9g45_devices.c | 10 +- trunk/arch/arm/mach-at91/at91sam9n12.c | 2 + trunk/arch/arm/mach-at91/at91sam9rl.c | 2 + trunk/arch/arm/mach-at91/at91sam9rl_devices.c | 2 +- trunk/arch/arm/mach-at91/at91sam9x5.c | 3 + .../arm/mach-at91/include/mach/at91_twi.h | 68 - trunk/arch/arm/mach-clps711x/autcpu12.c | 19 + trunk/arch/arm/mach-davinci/asp.h | 49 + trunk/arch/arm/mach-davinci/davinci.h | 4 +- trunk/arch/arm/mach-davinci/devices-da8xx.c | 8 +- trunk/arch/arm/mach-davinci/devices.c | 11 - trunk/arch/arm/mach-davinci/dm355.c | 2 +- trunk/arch/arm/mach-davinci/dm365.c | 2 +- trunk/arch/arm/mach-davinci/dm644x.c | 2 +- trunk/arch/arm/mach-davinci/dm646x.c | 2 +- .../arm/mach-davinci/include/mach/da8xx.h | 2 +- trunk/arch/arm/mach-exynos/dma.c | 2 + trunk/arch/arm/mach-exynos/mach-nuri.c | 2 +- trunk/arch/arm/mach-exynos/mach-origen.c | 2 +- trunk/arch/arm/mach-exynos/mach-smdk4x12.c | 2 +- trunk/arch/arm/mach-exynos/mach-smdkv310.c | 2 +- .../arm/mach-exynos/mach-universal_c210.c | 2 +- trunk/arch/arm/mach-exynos/setup-fimd0.c | 2 +- trunk/arch/arm/mach-imx/clk-imx51-imx53.c | 2 + .../arm/mach-imx/eukrea_mbimx27-baseboard.c | 1 + .../arm/mach-imx/eukrea_mbimxsd25-baseboard.c | 1 + .../arm/mach-imx/eukrea_mbimxsd35-baseboard.c | 1 + .../arm/mach-imx/eukrea_mbimxsd51-baseboard.c | 1 + .../arm/mach-imx/mach-imx27_visstrim_m10.c | 42 +- trunk/arch/arm/mach-omap1/devices.c | 2 +- trunk/arch/arm/mach-omap2/board-4430sdp.c | 99 +- trunk/arch/arm/mach-omap2/board-am3517evm.c | 13 + trunk/arch/arm/mach-omap2/board-cm-t35.c | 1 + trunk/arch/arm/mach-omap2/board-devkit8000.c | 1 + trunk/arch/arm/mach-omap2/board-flash.c | 2 +- trunk/arch/arm/mach-omap2/board-igep0020.c | 1 + trunk/arch/arm/mach-omap2/board-omap3beagle.c | 3 +- trunk/arch/arm/mach-omap2/board-omap3evm.c | 4 +- .../arch/arm/mach-omap2/board-omap3stalker.c | 5 - trunk/arch/arm/mach-omap2/board-omap4panda.c | 45 +- trunk/arch/arm/mach-omap2/board-overo.c | 1 + .../arm/mach-omap2/board-rx51-peripherals.c | 2 +- .../arm/mach-omap2/board-zoom-peripherals.c | 12 +- trunk/arch/arm/mach-omap2/clkt_clksel.c | 2 +- trunk/arch/arm/mach-omap2/clock33xx_data.c | 2 + .../arm/mach-omap2/clockdomain2xxx_3xxx.c | 44 +- trunk/arch/arm/mach-omap2/display.c | 3 +- trunk/arch/arm/mach-omap2/gpmc.c | 4 +- trunk/arch/arm/mach-omap2/hsmmc.c | 2 +- .../arm/mach-omap2/include/mach/board-zoom.h | 2 - trunk/arch/arm/mach-omap2/mcbsp.c | 126 +- trunk/arch/arm/mach-omap2/mux.c | 2 +- trunk/arch/arm/mach-omap2/omap-secure.c | 4 +- trunk/arch/arm/mach-omap2/omap_hwmod.c | 31 +- .../mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 2 +- .../arm/mach-omap2/omap_hwmod_3xxx_data.c | 9 +- .../arm/mach-omap2/omap_hwmod_44xx_data.c | 2 + trunk/arch/arm/mach-omap2/opp.c | 23 +- trunk/arch/arm/mach-omap2/pm-debug.c | 2 +- trunk/arch/arm/mach-omap2/pm.c | 13 +- trunk/arch/arm/mach-omap2/sr_device.c | 2 +- trunk/arch/arm/mach-omap2/timer.c | 2 +- trunk/arch/arm/mach-omap2/twl-common.c | 35 +- trunk/arch/arm/mach-omap2/twl-common.h | 2 + trunk/arch/arm/mach-s3c24xx/mach-smdk2416.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-anw6410.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-crag6410.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-hmt.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-mini6410.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-ncp.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-real6410.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-smartq5.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-smartq7.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-smdk6410.c | 2 +- trunk/arch/arm/mach-s5p64x0/mach-smdk6440.c | 2 +- trunk/arch/arm/mach-s5p64x0/mach-smdk6450.c | 2 +- trunk/arch/arm/mach-s5pc100/mach-smdkc100.c | 2 +- trunk/arch/arm/mach-s5pv210/mach-aquila.c | 2 +- trunk/arch/arm/mach-s5pv210/mach-goni.c | 2 +- trunk/arch/arm/mach-s5pv210/mach-smdkv210.c | 2 +- trunk/arch/arm/mach-spear13xx/spear13xx.c | 3 + trunk/arch/arm/mach-tegra/include/mach/smmu.h | 63 - trunk/arch/arm/mm/Kconfig | 17 + trunk/arch/arm/mm/cache-fa.S | 3 + trunk/arch/arm/mm/cache-v3.S | 3 + trunk/arch/arm/mm/cache-v4.S | 3 + trunk/arch/arm/mm/cache-v4wb.S | 3 + trunk/arch/arm/mm/cache-v4wt.S | 3 + trunk/arch/arm/mm/cache-v6.S | 3 + trunk/arch/arm/mm/cache-v7.S | 48 +- trunk/arch/arm/mm/fault-armv.c | 3 +- trunk/arch/arm/mm/fault.c | 1 + trunk/arch/arm/mm/flush.c | 3 +- trunk/arch/arm/mm/proc-arm1020.S | 3 + trunk/arch/arm/mm/proc-arm1020e.S | 3 + trunk/arch/arm/mm/proc-arm1022.S | 3 + trunk/arch/arm/mm/proc-arm1026.S | 3 + trunk/arch/arm/mm/proc-arm920.S | 3 + trunk/arch/arm/mm/proc-arm922.S | 3 + trunk/arch/arm/mm/proc-arm925.S | 3 + trunk/arch/arm/mm/proc-arm926.S | 3 + trunk/arch/arm/mm/proc-arm940.S | 3 + trunk/arch/arm/mm/proc-arm946.S | 3 + trunk/arch/arm/mm/proc-feroceon.S | 4 + trunk/arch/arm/mm/proc-macros.S | 1 + trunk/arch/arm/mm/proc-mohawk.S | 3 + trunk/arch/arm/mm/proc-v7.S | 2 +- trunk/arch/arm/mm/proc-xsc3.S | 3 + trunk/arch/arm/mm/proc-xscale.S | 4 + .../arm/plat-mxc/devices/platform-mxc_nand.c | 11 +- .../plat-nomadik/include/plat/gpio-nomadik.h | 6 + .../arm/plat-nomadik/include/plat/pincfg.h | 2 + trunk/arch/arm/plat-omap/Kconfig | 2 + trunk/arch/arm/plat-omap/counter_32k.c | 21 +- trunk/arch/arm/plat-omap/i2c.c | 21 - trunk/arch/arm/plat-omap/omap-pm-noop.c | 8 +- trunk/arch/arm/plat-omap/omap_device.c | 2 +- trunk/arch/arm/plat-samsung/dma-ops.c | 3 +- .../plat-samsung/include/plat/regs-fb-v4.h | 159 - trunk/arch/arm64/Kconfig | 4 + trunk/arch/arm64/include/asm/unistd32.h | 1 + trunk/arch/arm64/kernel/entry.S | 1 + trunk/arch/arm64/kernel/sys_compat.c | 20 - trunk/arch/arm64/mm/dma-mapping.c | 6 +- trunk/arch/arm64/mm/init.c | 5 +- trunk/arch/arm64/mm/mm.h | 1 + trunk/arch/avr32/include/asm/Kbuild | 3 + trunk/arch/avr32/include/asm/exec.h | 13 - trunk/arch/avr32/include/asm/thread_info.h | 18 +- trunk/arch/avr32/kernel/signal.c | 1 - trunk/arch/avr32/mach-at32ap/at32ap700x.c | 3 + trunk/arch/avr32/mm/fault.c | 1 + trunk/arch/blackfin/Kconfig | 3 +- .../blackfin/configs/BF533-EZKIT_defconfig | 7 +- .../blackfin/configs/BF561-ACVILON_defconfig | 1 - .../blackfin/configs/BF609-EZKIT_defconfig | 16 +- trunk/arch/blackfin/include/asm/thread_info.h | 4 - trunk/arch/blackfin/kernel/bfin_gpio.c | 4 +- trunk/arch/blackfin/kernel/reboot.c | 1 - trunk/arch/blackfin/kernel/signal.c | 1 - trunk/arch/blackfin/mach-bf527/boards/ezkit.c | 20 + trunk/arch/blackfin/mach-bf533/boards/stamp.c | 20 + .../blackfin/mach-bf537/boards/cm_bf537e.c | 130 +- trunk/arch/blackfin/mach-bf537/boards/stamp.c | 22 +- trunk/arch/blackfin/mach-bf561/boards/ezkit.c | 20 + trunk/arch/blackfin/mach-bf609/boards/ezkit.c | 19 + .../mach-bf609/include/mach/defBF609.h | 271 + trunk/arch/blackfin/mach-common/cpufreq.c | 9 +- .../arch/blackfin/mach-common/ints-priority.c | 1 - trunk/arch/blackfin/mach-common/smp.c | 4 +- trunk/arch/c6x/Kconfig | 1 + trunk/arch/c6x/include/asm/Kbuild | 1 + trunk/arch/c6x/include/asm/exec.h | 6 - trunk/arch/c6x/include/asm/processor.h | 2 - trunk/arch/c6x/include/asm/syscalls.h | 5 - trunk/arch/c6x/include/asm/thread_info.h | 1 - trunk/arch/c6x/include/asm/unistd.h | 3 + trunk/arch/c6x/kernel/asm-offsets.c | 1 - trunk/arch/c6x/kernel/entry.S | 56 +- trunk/arch/c6x/kernel/process.c | 72 +- trunk/arch/cris/Kconfig | 1 + trunk/arch/cris/include/asm/Kbuild | 3 + trunk/arch/cris/include/asm/exec.h | 6 - trunk/arch/cris/include/asm/thread_info.h | 3 - trunk/arch/cris/mm/fault.c | 1 + trunk/arch/frv/Kconfig | 3 + trunk/arch/frv/include/asm/Kbuild | 2 + trunk/arch/frv/include/asm/exec.h | 17 - trunk/arch/frv/include/asm/processor.h | 9 +- trunk/arch/frv/include/asm/ptrace.h | 1 + trunk/arch/frv/include/asm/thread_info.h | 3 - trunk/arch/frv/include/asm/unistd.h | 2 + trunk/arch/frv/kernel/Makefile | 4 +- trunk/arch/frv/kernel/entry.S | 13 + trunk/arch/frv/kernel/frv_ksyms.c | 1 - trunk/arch/frv/kernel/kernel_execve.S | 33 - trunk/arch/frv/kernel/kernel_thread.S | 77 - trunk/arch/frv/kernel/process.c | 66 +- trunk/arch/frv/kernel/signal.c | 9 - trunk/arch/h8300/Kconfig | 1 + trunk/arch/h8300/include/asm/Kbuild | 3 + trunk/arch/h8300/include/asm/exec.h | 6 - trunk/arch/h8300/include/asm/thread_info.h | 7 +- trunk/arch/h8300/kernel/signal.c | 1 - trunk/arch/hexagon/include/asm/Kbuild | 1 + trunk/arch/hexagon/include/asm/thread_info.h | 5 - trunk/arch/hexagon/kernel/signal.c | 1 - trunk/arch/hexagon/kernel/syscall.c | 1 - trunk/arch/hexagon/mm/vm_fault.c | 1 + trunk/arch/ia64/include/asm/Kbuild | 2 + trunk/arch/ia64/include/asm/exec.h | 14 - trunk/arch/ia64/include/asm/hugetlb.h | 4 + trunk/arch/ia64/include/asm/thread_info.h | 2 - trunk/arch/ia64/kernel/perfmon.c | 2 +- trunk/arch/ia64/kernel/signal.c | 8 - trunk/arch/ia64/mm/fault.c | 1 + trunk/arch/ia64/mm/init.c | 4 +- trunk/arch/m32r/Kconfig | 1 + trunk/arch/m32r/include/asm/Kbuild | 3 + trunk/arch/m32r/include/asm/exec.h | 14 - trunk/arch/m32r/include/asm/thread_info.h | 9 +- trunk/arch/m32r/kernel/signal.c | 3 - trunk/arch/m68k/Kconfig | 3 + trunk/arch/m68k/include/asm/Kbuild | 2 + trunk/arch/m68k/include/asm/exec.h | 6 - trunk/arch/m68k/include/asm/processor.h | 25 +- trunk/arch/m68k/include/asm/ptrace.h | 2 + trunk/arch/m68k/include/asm/unistd.h | 2 + trunk/arch/m68k/kernel/entry.S | 16 + trunk/arch/m68k/kernel/process.c | 104 +- trunk/arch/m68k/kernel/sys_m68k.c | 17 - trunk/arch/m68k/mm/fault.c | 1 + trunk/arch/microblaze/Kconfig | 1 + trunk/arch/microblaze/include/asm/Kbuild | 2 + trunk/arch/microblaze/include/asm/atomic.h | 1 + trunk/arch/microblaze/include/asm/exec.h | 14 - .../arch/microblaze/include/asm/thread_info.h | 3 +- trunk/arch/microblaze/kernel/signal.c | 7 +- trunk/arch/microblaze/mm/fault.c | 1 + trunk/arch/mips/Kbuild.platforms | 2 +- trunk/arch/mips/Kconfig | 47 +- trunk/arch/mips/Makefile | 2 +- trunk/arch/mips/ath79/clock.c | 109 +- trunk/arch/mips/ath79/dev-usb.c | 92 +- trunk/arch/mips/ath79/mach-db120.c | 2 + trunk/arch/mips/bcm63xx/Makefile | 2 +- .../arch/mips/bcm63xx/boards/board_bcm963xx.c | 26 +- trunk/arch/mips/bcm63xx/clk.c | 21 +- trunk/arch/mips/bcm63xx/dev-usb-usbd.c | 65 + trunk/arch/mips/bcm63xx/irq.c | 22 +- trunk/arch/mips/bcm63xx/setup.c | 6 + trunk/arch/mips/cavium-octeon/csrc-octeon.c | 93 +- .../executive/cvmx-interrupt-rsl.c | 2 +- trunk/arch/mips/cavium-octeon/octeon-irq.c | 842 +- trunk/arch/mips/cavium-octeon/setup.c | 3 +- ...teon_defconfig => cavium_octeon_defconfig} | 0 trunk/arch/mips/configs/mipssim_defconfig | 64 - trunk/arch/mips/configs/nlm_xlp_defconfig | 133 +- ...225_defconfig => pnx8335_stb225_defconfig} | 0 ...50-jbs_defconfig => pnx8550_jbs_defconfig} | 0 ...810_defconfig => pnx8550_stb810_defconfig} | 0 trunk/arch/mips/configs/rb532_defconfig | 1 - ...swarm_defconfig => sb1250_swarm_defconfig} | 0 trunk/arch/mips/configs/sead3_defconfig | 124 + trunk/arch/mips/include/asm/cpu-features.h | 4 +- trunk/arch/mips/include/asm/cpu.h | 2 + trunk/arch/mips/include/asm/gic.h | 49 +- trunk/arch/mips/include/asm/hugetlb.h | 4 + .../mips/include/asm/mach-ath79/ar71xx_regs.h | 30 + .../include/asm/mach-bcm63xx/bcm63xx_cpu.h | 93 +- .../asm/mach-bcm63xx/bcm63xx_dev_usb_usbd.h | 17 + .../include/asm/mach-bcm63xx/bcm63xx_iudma.h | 38 + .../include/asm/mach-bcm63xx/bcm63xx_regs.h | 168 +- .../include/asm/mach-bcm63xx/board_bcm963xx.h | 5 + .../cpu-feature-overrides.h | 2 +- .../mips/include/asm/mach-cavium-octeon/irq.h | 7 +- .../mips/include/asm/mach-jz4740/platform.h | 1 + .../arch/mips/include/asm/mach-jz4740/timer.h | 113 + .../asm/mach-lantiq/falcon/falcon_irq.h | 2 + .../asm/mach-lantiq/falcon/lantiq_soc.h | 4 + .../arch/mips/include/asm/mach-lantiq/gpio.h | 5 +- .../include/asm/mach-lantiq/xway/lantiq_irq.h | 2 + .../cpu-feature-overrides.h | 15 +- trunk/arch/mips/include/asm/mach-sead3/irq.h | 9 + .../asm/mach-sead3/kernel-entry-init.h | 52 + .../asm/{mach-mipssim => mach-sead3}/war.h | 12 +- .../mips/include/asm/mips-boards/maltaint.h | 55 +- .../mips/include/asm/mips-boards/sead3int.h | 19 + .../mips/include/asm/mips-boards/simint.h | 31 - trunk/arch/mips/include/asm/mipsregs.h | 3 + .../mips/include/asm/octeon/cvmx-agl-defs.h | 1014 +- .../mips/include/asm/octeon/cvmx-asxx-defs.h | 300 +- .../mips/include/asm/octeon/cvmx-ciu-defs.h | 11333 +++++++++++++--- .../mips/include/asm/octeon/cvmx-ciu2-defs.h | 7108 ++++++++++ .../mips/include/asm/octeon/cvmx-dbg-defs.h | 39 +- .../mips/include/asm/octeon/cvmx-dpi-defs.h | 411 +- .../mips/include/asm/octeon/cvmx-fpa-defs.h | 1321 +- .../mips/include/asm/octeon/cvmx-gmxx-defs.h | 4966 ++++++- .../mips/include/asm/octeon/cvmx-gpio-defs.h | 282 +- .../mips/include/asm/octeon/cvmx-iob-defs.h | 722 +- .../mips/include/asm/octeon/cvmx-ipd-defs.h | 1111 +- .../mips/include/asm/octeon/cvmx-l2c-defs.h | 1726 ++- .../mips/include/asm/octeon/cvmx-l2d-defs.h | 171 +- .../mips/include/asm/octeon/cvmx-l2t-defs.h | 105 +- .../mips/include/asm/octeon/cvmx-led-defs.h | 67 +- .../mips/include/asm/octeon/cvmx-mio-defs.h | 1909 ++- .../mips/include/asm/octeon/cvmx-mixx-defs.h | 234 +- .../mips/include/asm/octeon/cvmx-mpi-defs.h | 328 + .../mips/include/asm/octeon/cvmx-npei-defs.h | 1743 ++- .../mips/include/asm/octeon/cvmx-npi-defs.h | 1260 +- .../mips/include/asm/octeon/cvmx-pci-defs.h | 909 +- .../include/asm/octeon/cvmx-pciercx-defs.h | 1292 +- .../mips/include/asm/octeon/cvmx-pcsx-defs.h | 729 +- .../mips/include/asm/octeon/cvmx-pcsxx-defs.h | 574 +- .../mips/include/asm/octeon/cvmx-pemx-defs.h | 288 +- .../mips/include/asm/octeon/cvmx-pescx-defs.h | 246 +- .../mips/include/asm/octeon/cvmx-pexp-defs.h | 2 +- .../mips/include/asm/octeon/cvmx-pip-defs.h | 2431 +++- .../mips/include/asm/octeon/cvmx-pko-defs.h | 1993 ++- .../mips/include/asm/octeon/cvmx-pow-defs.h | 530 +- .../mips/include/asm/octeon/cvmx-rnm-defs.h | 107 +- .../mips/include/asm/octeon/cvmx-sli-defs.h | 1351 +- .../mips/include/asm/octeon/cvmx-smix-defs.h | 202 +- .../mips/include/asm/octeon/cvmx-spxx-defs.h | 225 +- .../mips/include/asm/octeon/cvmx-sriox-defs.h | 703 +- .../mips/include/asm/octeon/cvmx-srxx-defs.h | 62 +- .../mips/include/asm/octeon/cvmx-stxx-defs.h | 166 +- .../mips/include/asm/octeon/cvmx-uctlx-defs.h | 268 +- .../mips/include/asm/octeon/octeon-model.h | 18 + trunk/arch/mips/include/asm/octeon/octeon.h | 4 + trunk/arch/mips/include/asm/pgtable-bits.h | 18 +- trunk/arch/mips/include/asm/pgtable.h | 12 +- trunk/arch/mips/include/asm/thread_info.h | 9 +- trunk/arch/mips/include/asm/uasm.h | 2 + trunk/arch/mips/include/asm/unistd.h | 15 +- trunk/arch/mips/jz4740/Kconfig | 3 - trunk/arch/mips/jz4740/Makefile | 2 +- trunk/arch/mips/jz4740/board-qi_lb60.c | 1 + trunk/arch/mips/jz4740/platform.c | 6 + trunk/arch/mips/jz4740/pwm.c | 177 - trunk/arch/mips/jz4740/time.c | 2 +- trunk/arch/mips/jz4740/timer.c | 4 +- trunk/arch/mips/jz4740/timer.h | 136 - trunk/arch/mips/kernel/Makefile | 21 +- trunk/arch/mips/kernel/cevt-r4k.c | 5 + trunk/arch/mips/kernel/cpu-probe.c | 10 +- trunk/arch/mips/kernel/entry.S | 15 +- trunk/arch/mips/kernel/irq-gic.c | 162 +- trunk/arch/mips/kernel/scall32-o32.S | 14 +- trunk/arch/mips/kernel/scall64-64.S | 14 +- trunk/arch/mips/kernel/scall64-n32.S | 14 +- trunk/arch/mips/kernel/scall64-o32.S | 14 +- trunk/arch/mips/kernel/signal.c | 8 - trunk/arch/mips/kernel/smp-mt.c | 2 + trunk/arch/mips/lantiq/Kconfig | 2 + trunk/arch/mips/lantiq/falcon/prom.c | 5 + trunk/arch/mips/lantiq/falcon/sysctrl.c | 1 + trunk/arch/mips/lantiq/irq.c | 82 +- trunk/arch/mips/lantiq/xway/Makefile | 2 +- trunk/arch/mips/lantiq/xway/gpio.c | 183 - trunk/arch/mips/lantiq/xway/gptu.c | 214 + trunk/arch/mips/lantiq/xway/sysctrl.c | 5 +- trunk/arch/mips/lib/Makefile | 21 +- trunk/arch/mips/mipssim/Makefile | 23 - trunk/arch/mips/mipssim/Platform | 6 - trunk/arch/mips/mipssim/sim_console.c | 40 - trunk/arch/mips/mipssim/sim_int.c | 87 - trunk/arch/mips/mipssim/sim_mem.c | 115 - trunk/arch/mips/mipssim/sim_platform.c | 35 - trunk/arch/mips/mipssim/sim_setup.c | 99 - trunk/arch/mips/mipssim/sim_smtc.c | 116 - trunk/arch/mips/mipssim/sim_time.c | 117 - trunk/arch/mips/mm/Makefile | 17 +- trunk/arch/mips/mm/c-r4k.c | 21 + trunk/arch/mips/mm/cache.c | 2 +- trunk/arch/mips/mm/fault.c | 3 +- trunk/arch/mips/mm/tlb-r4k.c | 2 +- trunk/arch/mips/mm/tlbex.c | 44 +- trunk/arch/mips/mm/uasm.c | 23 +- trunk/arch/mips/mti-malta/malta-int.c | 34 + trunk/arch/mips/mti-sead3/Makefile | 19 + trunk/arch/mips/mti-sead3/Platform | 7 + trunk/arch/mips/mti-sead3/leds-sead3.c | 128 + trunk/arch/mips/mti-sead3/sead3-cmdline.c | 46 + trunk/arch/mips/mti-sead3/sead3-console.c | 46 + trunk/arch/mips/mti-sead3/sead3-display.c | 78 + trunk/arch/mips/mti-sead3/sead3-ehci.c | 47 + trunk/arch/mips/mti-sead3/sead3-i2c-dev.c | 33 + trunk/arch/mips/mti-sead3/sead3-i2c-drv.c | 405 + trunk/arch/mips/mti-sead3/sead3-i2c.c | 37 + trunk/arch/mips/mti-sead3/sead3-init.c | 91 + trunk/arch/mips/mti-sead3/sead3-int.c | 158 + trunk/arch/mips/mti-sead3/sead3-lcd.c | 43 + trunk/arch/mips/mti-sead3/sead3-leds.c | 83 + trunk/arch/mips/mti-sead3/sead3-memory.c | 138 + trunk/arch/mips/mti-sead3/sead3-mtd.c | 54 + trunk/arch/mips/mti-sead3/sead3-net.c | 51 + trunk/arch/mips/mti-sead3/sead3-pic32-bus.c | 103 + .../arch/mips/mti-sead3/sead3-pic32-i2c-drv.c | 435 + trunk/arch/mips/mti-sead3/sead3-platform.c | 45 + trunk/arch/mips/mti-sead3/sead3-reset.c | 39 + trunk/arch/mips/mti-sead3/sead3-serial.c | 45 + trunk/arch/mips/mti-sead3/sead3-setup.c | 20 + trunk/arch/mips/mti-sead3/sead3-time.c | 117 + trunk/arch/mips/netlogic/Kconfig | 15 + trunk/arch/mips/netlogic/Makefile | 1 + trunk/arch/mips/netlogic/dts/Makefile | 4 + trunk/arch/mips/netlogic/dts/xlp_evp.dts | 124 + trunk/arch/mips/netlogic/xlp/Makefile | 3 +- trunk/arch/mips/netlogic/xlp/of.c | 34 - trunk/arch/mips/netlogic/xlp/platform.c | 108 - trunk/arch/mips/netlogic/xlp/setup.c | 32 +- trunk/arch/mn10300/Kconfig | 1 + trunk/arch/mn10300/include/asm/Kbuild | 3 + trunk/arch/mn10300/include/asm/exec.h | 16 - trunk/arch/mn10300/include/asm/frame.inc | 2 +- trunk/arch/mn10300/include/asm/processor.h | 18 +- trunk/arch/mn10300/include/asm/ptrace.h | 1 + trunk/arch/mn10300/include/asm/thread_info.h | 3 +- trunk/arch/mn10300/include/asm/unistd.h | 2 + trunk/arch/mn10300/kernel/Makefile | 4 +- trunk/arch/mn10300/kernel/entry.S | 18 + trunk/arch/mn10300/kernel/internal.h | 6 +- trunk/arch/mn10300/kernel/kernel_execve.S | 37 - trunk/arch/mn10300/kernel/kthread.S | 31 - trunk/arch/mn10300/kernel/process.c | 91 +- trunk/arch/mn10300/kernel/signal.c | 13 - trunk/arch/openrisc/include/asm/Kbuild | 1 + trunk/arch/openrisc/include/asm/thread_info.h | 3 +- trunk/arch/openrisc/mm/fault.c | 1 + trunk/arch/parisc/hpux/gate.S | 2 +- trunk/arch/parisc/include/asm/Kbuild | 2 + trunk/arch/parisc/include/asm/exec.h | 6 - trunk/arch/parisc/include/asm/thread_info.h | 5 +- trunk/arch/parisc/kernel/cache.c | 3 +- trunk/arch/parisc/kernel/signal.c | 45 +- trunk/arch/parisc/kernel/syscall.S | 9 +- trunk/arch/powerpc/Kconfig | 3 + .../configs/83xx/mpc8313_rdb_defconfig | 1 - .../configs/83xx/mpc8315_rdb_defconfig | 1 - trunk/arch/powerpc/configs/mpc83xx_defconfig | 1 - trunk/arch/powerpc/include/asm/Kbuild | 1 + trunk/arch/powerpc/include/asm/atomic.h | 1 + trunk/arch/powerpc/include/asm/hugetlb.h | 4 + trunk/arch/powerpc/include/asm/processor.h | 3 - trunk/arch/powerpc/include/asm/ptrace.h | 2 + trunk/arch/powerpc/include/asm/syscalls.h | 3 - trunk/arch/powerpc/include/asm/thread_info.h | 2 + trunk/arch/powerpc/include/asm/unistd.h | 2 + trunk/arch/powerpc/kernel/entry_32.S | 16 + trunk/arch/powerpc/kernel/entry_64.S | 16 + trunk/arch/powerpc/kernel/misc.S | 7 - trunk/arch/powerpc/kernel/misc_32.S | 33 - trunk/arch/powerpc/kernel/misc_64.S | 34 - trunk/arch/powerpc/kernel/ppc_ksyms.c | 1 - trunk/arch/powerpc/kernel/process.c | 59 +- trunk/arch/powerpc/kernel/signal_32.c | 1 - trunk/arch/powerpc/kernel/sys_ppc32.c | 22 - trunk/arch/powerpc/kvm/book3s_hv.c | 2 +- trunk/arch/powerpc/mm/fault.c | 1 + .../powerpc/oprofile/cell/spu_task_sync.c | 15 +- .../platforms/pseries/hotplug-memory.c | 12 +- trunk/arch/s390/Kconfig | 4 + trunk/arch/s390/Kconfig.debug | 12 + trunk/arch/s390/include/asm/Kbuild | 16 +- trunk/arch/s390/include/asm/chpid.h | 19 +- trunk/arch/s390/include/asm/cmb.h | 51 +- trunk/arch/s390/include/asm/css_chars.h | 3 - trunk/arch/s390/include/asm/debug.h | 28 +- trunk/arch/s390/include/asm/hugetlb.h | 19 +- trunk/arch/s390/include/asm/kvm_para.h | 14 +- trunk/arch/s390/include/asm/mman.h | 6 +- trunk/arch/s390/include/asm/page.h | 14 +- trunk/arch/s390/include/asm/pgtable.h | 240 +- trunk/arch/s390/include/asm/processor.h | 4 +- trunk/arch/s390/include/asm/ptrace.h | 462 +- trunk/arch/s390/include/asm/schid.h | 15 +- trunk/arch/s390/include/asm/setup.h | 26 +- trunk/arch/s390/include/asm/signal.h | 128 +- trunk/arch/s390/include/asm/termios.h | 42 +- trunk/arch/s390/include/asm/thread_info.h | 4 - trunk/arch/s390/include/asm/tlb.h | 1 + trunk/arch/s390/include/asm/types.h | 15 +- trunk/arch/s390/include/asm/unistd.h | 369 +- trunk/arch/s390/include/uapi/asm/Kbuild | 45 + .../arch/s390/include/{ => uapi}/asm/auxvec.h | 0 .../s390/include/{ => uapi}/asm/bitsperlong.h | 0 .../s390/include/{ => uapi}/asm/byteorder.h | 0 trunk/arch/s390/include/uapi/asm/chpid.h | 22 + trunk/arch/s390/include/{ => uapi}/asm/chsc.h | 10 +- trunk/arch/s390/include/uapi/asm/cmb.h | 53 + trunk/arch/s390/include/{ => uapi}/asm/dasd.h | 0 trunk/arch/s390/include/uapi/asm/debug.h | 34 + .../arch/s390/include/{ => uapi}/asm/errno.h | 0 .../arch/s390/include/{ => uapi}/asm/fcntl.h | 0 .../arch/s390/include/{ => uapi}/asm/ioctl.h | 0 .../arch/s390/include/{ => uapi}/asm/ioctls.h | 0 .../arch/s390/include/{ => uapi}/asm/ipcbuf.h | 0 trunk/arch/s390/include/{ => uapi}/asm/kvm.h | 0 trunk/arch/s390/include/uapi/asm/kvm_para.h | 0 .../s390/include/{ => uapi}/asm/kvm_virtio.h | 0 trunk/arch/s390/include/uapi/asm/mman.h | 6 + .../s390/include/{ => uapi}/asm/monwriter.h | 0 .../arch/s390/include/{ => uapi}/asm/msgbuf.h | 0 .../arch/s390/include/{ => uapi}/asm/param.h | 0 trunk/arch/s390/include/{ => uapi}/asm/poll.h | 0 .../s390/include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/s390/include/uapi/asm/ptrace.h | 472 + trunk/arch/s390/include/{ => uapi}/asm/qeth.h | 0 .../s390/include/{ => uapi}/asm/resource.h | 0 trunk/arch/s390/include/uapi/asm/schid.h | 16 + .../arch/s390/include/{ => uapi}/asm/sembuf.h | 0 trunk/arch/s390/include/uapi/asm/setup.h | 13 + .../arch/s390/include/{ => uapi}/asm/shmbuf.h | 0 .../s390/include/{ => uapi}/asm/sigcontext.h | 0 .../s390/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/s390/include/uapi/asm/signal.h | 135 + .../arch/s390/include/{ => uapi}/asm/socket.h | 0 .../s390/include/{ => uapi}/asm/sockios.h | 0 trunk/arch/s390/include/{ => uapi}/asm/stat.h | 0 .../arch/s390/include/{ => uapi}/asm/statfs.h | 0 trunk/arch/s390/include/{ => uapi}/asm/swab.h | 0 .../s390/include/{ => uapi}/asm/tape390.h | 0 .../s390/include/{ => uapi}/asm/termbits.h | 0 trunk/arch/s390/include/uapi/asm/termios.h | 49 + trunk/arch/s390/include/uapi/asm/types.h | 22 + .../s390/include/{ => uapi}/asm/ucontext.h | 0 trunk/arch/s390/include/uapi/asm/unistd.h | 374 + trunk/arch/s390/include/{ => uapi}/asm/vtoc.h | 0 .../arch/s390/include/{ => uapi}/asm/zcrypt.h | 0 trunk/arch/s390/kernel/compat_linux.c | 26 - trunk/arch/s390/kernel/compat_linux.h | 2 - trunk/arch/s390/kernel/compat_wrapper.S | 2 +- trunk/arch/s390/kernel/early.c | 19 +- trunk/arch/s390/kernel/entry.S | 51 +- trunk/arch/s390/kernel/entry.h | 3 - trunk/arch/s390/kernel/entry64.S | 52 +- trunk/arch/s390/kernel/head.S | 101 +- trunk/arch/s390/kernel/head31.S | 3 - trunk/arch/s390/kernel/head64.S | 3 - trunk/arch/s390/kernel/module.c | 11 + trunk/arch/s390/kernel/process.c | 107 +- trunk/arch/s390/kernel/setup.c | 51 +- trunk/arch/s390/mm/Makefile | 1 + trunk/arch/s390/mm/dump_pagetables.c | 226 + trunk/arch/s390/mm/fault.c | 1 + trunk/arch/s390/mm/gup.c | 11 +- trunk/arch/s390/mm/pageattr.c | 40 +- trunk/arch/s390/mm/pgtable.c | 108 + trunk/arch/s390/mm/vmem.c | 45 +- trunk/arch/score/include/asm/Kbuild | 2 + trunk/arch/score/include/asm/thread_info.h | 4 - trunk/arch/score/kernel/signal.c | 1 + trunk/arch/sh/Kconfig | 3 + trunk/arch/sh/include/asm/Kbuild | 1 + trunk/arch/sh/include/asm/exec.h | 10 - trunk/arch/sh/include/asm/hugetlb.h | 6 + trunk/arch/sh/include/asm/thread_info.h | 3 + trunk/arch/sh/kernel/signal_32.c | 1 - trunk/arch/sh/kernel/signal_64.c | 1 - trunk/arch/sh/mm/fault.c | 1 + trunk/arch/sparc/Kconfig | 41 +- trunk/arch/sparc/include/asm/Kbuild | 18 +- trunk/arch/sparc/include/asm/exec.h | 6 - trunk/arch/sparc/include/asm/fbio.h | 260 +- trunk/arch/sparc/include/asm/hugetlb.h | 9 +- trunk/arch/sparc/include/asm/ioctls.h | 129 +- trunk/arch/sparc/include/asm/mman.h | 25 +- trunk/arch/sparc/include/asm/mmu_64.h | 19 +- trunk/arch/sparc/include/asm/mmu_context_64.h | 2 +- trunk/arch/sparc/include/asm/page_64.h | 21 +- trunk/arch/sparc/include/asm/pgalloc_64.h | 56 +- trunk/arch/sparc/include/asm/pgtable_64.h | 253 +- trunk/arch/sparc/include/asm/psr.h | 36 +- trunk/arch/sparc/include/asm/ptrace.h | 347 +- trunk/arch/sparc/include/asm/setup.h | 10 +- trunk/arch/sparc/include/asm/sigcontext.h | 4 +- trunk/arch/sparc/include/asm/siginfo.h | 23 +- trunk/arch/sparc/include/asm/signal.h | 185 +- trunk/arch/sparc/include/asm/termbits.h | 260 +- trunk/arch/sparc/include/asm/termios.h | 41 +- trunk/arch/sparc/include/asm/thread_info_32.h | 3 +- trunk/arch/sparc/include/asm/thread_info_64.h | 3 + trunk/arch/sparc/include/asm/traps.h | 111 +- trunk/arch/sparc/include/asm/tsb.h | 106 +- trunk/arch/sparc/include/asm/unistd.h | 412 +- trunk/arch/sparc/include/uapi/asm/Kbuild | 46 + trunk/arch/sparc/include/{ => uapi}/asm/apc.h | 0 trunk/arch/sparc/include/{ => uapi}/asm/asi.h | 19 + .../sparc/include/{ => uapi}/asm/auxvec.h | 0 .../include/{ => uapi}/asm/bitsperlong.h | 0 .../sparc/include/{ => uapi}/asm/byteorder.h | 0 .../include/{ => uapi}/asm/display7seg.h | 0 .../sparc/include/{ => uapi}/asm/envctrl.h | 0 .../arch/sparc/include/{ => uapi}/asm/errno.h | 0 trunk/arch/sparc/include/uapi/asm/fbio.h | 259 + .../arch/sparc/include/{ => uapi}/asm/fcntl.h | 0 .../arch/sparc/include/{ => uapi}/asm/ioctl.h | 0 trunk/arch/sparc/include/uapi/asm/ioctls.h | 131 + .../sparc/include/{ => uapi}/asm/ipcbuf.h | 0 .../sparc/include/{ => uapi}/asm/jsflash.h | 0 .../sparc/include/{ => uapi}/asm/kvm_para.h | 0 trunk/arch/sparc/include/uapi/asm/mman.h | 27 + .../sparc/include/{ => uapi}/asm/msgbuf.h | 0 .../sparc/include/{ => uapi}/asm/openpromio.h | 0 .../arch/sparc/include/{ => uapi}/asm/param.h | 0 .../sparc/include/{ => uapi}/asm/perfctr.h | 0 .../arch/sparc/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/sparc/include/uapi/asm/psr.h | 47 + .../sparc/include/{ => uapi}/asm/psrcompat.h | 0 .../sparc/include/{ => uapi}/asm/pstate.h | 0 trunk/arch/sparc/include/uapi/asm/ptrace.h | 352 + .../sparc/include/{ => uapi}/asm/resource.h | 0 .../sparc/include/{ => uapi}/asm/sembuf.h | 0 trunk/arch/sparc/include/uapi/asm/setup.h | 15 + .../sparc/include/{ => uapi}/asm/shmbuf.h | 0 .../arch/sparc/include/uapi/asm/sigcontext.h | 0 trunk/arch/sparc/include/uapi/asm/siginfo.h | 25 + trunk/arch/sparc/include/uapi/asm/signal.h | 185 + .../sparc/include/{ => uapi}/asm/socket.h | 0 .../sparc/include/{ => uapi}/asm/sockios.h | 0 .../arch/sparc/include/{ => uapi}/asm/stat.h | 0 .../sparc/include/{ => uapi}/asm/statfs.h | 0 .../arch/sparc/include/{ => uapi}/asm/swab.h | 0 trunk/arch/sparc/include/uapi/asm/termbits.h | 263 + trunk/arch/sparc/include/uapi/asm/termios.h | 43 + trunk/arch/sparc/include/uapi/asm/traps.h | 120 + .../arch/sparc/include/{ => uapi}/asm/types.h | 0 .../arch/sparc/include/{ => uapi}/asm/uctx.h | 0 trunk/arch/sparc/include/uapi/asm/unistd.h | 422 + .../arch/sparc/include/{ => uapi}/asm/utrap.h | 0 .../sparc/include/{ => uapi}/asm/watchdog.h | 0 trunk/arch/sparc/kernel/head_64.S | 2 +- trunk/arch/sparc/kernel/pci.c | 2 +- trunk/arch/sparc/kernel/sun4v_tlb_miss.S | 2 +- trunk/arch/sparc/kernel/tsb.S | 9 +- trunk/arch/sparc/lib/Makefile | 2 +- trunk/arch/sparc/lib/NG4clear_page.S | 29 + trunk/arch/sparc/lib/NG4copy_page.S | 16 +- trunk/arch/sparc/lib/NG4memset.S | 105 + trunk/arch/sparc/lib/NG4patch.S | 15 +- trunk/arch/sparc/mm/fault_32.c | 1 + trunk/arch/sparc/mm/fault_64.c | 5 +- trunk/arch/sparc/mm/hugetlbpage.c | 50 - trunk/arch/sparc/mm/init_64.c | 314 +- trunk/arch/sparc/mm/tlb.c | 118 +- trunk/arch/sparc/mm/tsb.c | 40 +- trunk/arch/tile/Kconfig | 3 + trunk/arch/tile/include/asm/Kbuild | 2 + trunk/arch/tile/include/asm/exec.h | 20 - trunk/arch/tile/include/asm/hugetlb.h | 4 + trunk/arch/tile/kernel/compat_signal.c | 9 - trunk/arch/tile/kernel/signal.c | 12 +- trunk/arch/tile/mm/elf.c | 19 +- trunk/arch/tile/mm/fault.c | 1 + trunk/arch/um/Kconfig.common | 1 + trunk/arch/um/drivers/chan_kern.c | 4 +- trunk/arch/um/drivers/chan_user.c | 4 +- trunk/arch/um/drivers/chan_user.h | 2 +- trunk/arch/um/drivers/cow_sys.h | 6 +- trunk/arch/um/drivers/daemon.h | 2 +- trunk/arch/um/drivers/daemon_kern.c | 4 +- trunk/arch/um/drivers/daemon_user.c | 6 +- trunk/arch/um/drivers/fd.c | 4 +- trunk/arch/um/drivers/harddog_user.c | 2 +- trunk/arch/um/drivers/hostaudio_kern.c | 18 +- trunk/arch/um/drivers/line.c | 16 +- trunk/arch/um/drivers/line.h | 12 +- trunk/arch/um/drivers/mconsole.h | 2 +- trunk/arch/um/drivers/mconsole_kern.c | 10 +- trunk/arch/um/drivers/mconsole_kern.h | 2 +- trunk/arch/um/drivers/mmapper_kern.c | 2 +- trunk/arch/um/drivers/net_kern.c | 10 +- trunk/arch/um/drivers/net_user.c | 6 +- trunk/arch/um/drivers/null.c | 2 +- trunk/arch/um/drivers/pcap_kern.c | 4 +- trunk/arch/um/drivers/pcap_user.c | 4 +- trunk/arch/um/drivers/pcap_user.h | 2 +- trunk/arch/um/drivers/port_kern.c | 20 +- trunk/arch/um/drivers/port_user.c | 4 +- trunk/arch/um/drivers/pty.c | 4 +- trunk/arch/um/drivers/random.c | 4 +- trunk/arch/um/drivers/slip_common.c | 2 +- trunk/arch/um/drivers/slip_kern.c | 2 +- trunk/arch/um/drivers/slip_user.c | 6 +- trunk/arch/um/drivers/slirp_kern.c | 6 +- trunk/arch/um/drivers/slirp_user.c | 4 +- trunk/arch/um/drivers/ssl.c | 22 +- trunk/arch/um/drivers/stdio_console.c | 36 +- trunk/arch/um/drivers/tty.c | 4 +- trunk/arch/um/drivers/ubd_kern.c | 8 +- trunk/arch/um/drivers/ubd_user.c | 2 +- trunk/arch/um/drivers/umcast.h | 2 +- trunk/arch/um/drivers/umcast_kern.c | 4 +- trunk/arch/um/drivers/umcast_user.c | 4 +- trunk/arch/um/drivers/vde_kern.c | 6 +- trunk/arch/um/drivers/vde_user.c | 4 +- trunk/arch/um/drivers/xterm.c | 4 +- trunk/arch/um/drivers/xterm_kern.c | 4 +- trunk/arch/um/include/asm/Kbuild | 2 +- trunk/arch/um/include/asm/dma.h | 2 +- trunk/arch/um/include/asm/mmu.h | 2 +- trunk/arch/um/include/asm/page.h | 2 +- trunk/arch/um/include/asm/pgtable.h | 4 +- trunk/arch/um/include/asm/processor-generic.h | 8 +- trunk/arch/um/include/asm/ptrace-generic.h | 2 +- trunk/arch/um/include/asm/smp.h | 6 +- trunk/arch/um/include/{shared => asm}/sysrq.h | 0 trunk/arch/um/include/asm/thread_info.h | 3 - trunk/arch/um/include/shared/arch.h | 2 +- trunk/arch/um/include/shared/as-layout.h | 2 +- trunk/arch/um/include/shared/irq_kern.h | 4 +- trunk/arch/um/include/shared/irq_user.h | 2 +- trunk/arch/um/include/shared/kern_util.h | 4 +- trunk/arch/um/include/shared/longjmp.h | 4 +- trunk/arch/um/include/shared/os.h | 6 +- trunk/arch/um/include/shared/registers.h | 4 +- trunk/arch/um/include/shared/skas/skas.h | 2 +- trunk/arch/um/include/shared/skas_ptrace.h | 2 +- trunk/arch/um/kernel/asm-offsets.c | 2 +- trunk/arch/um/kernel/config.c.in | 2 +- trunk/arch/um/kernel/dyn.lds.S | 2 +- trunk/arch/um/kernel/early_printk.c | 2 +- trunk/arch/um/kernel/exec.c | 33 +- trunk/arch/um/kernel/gmon_syms.c | 2 +- trunk/arch/um/kernel/gprof_syms.c | 2 +- trunk/arch/um/kernel/initrd.c | 12 +- trunk/arch/um/kernel/internal.h | 1 - trunk/arch/um/kernel/irq.c | 22 +- trunk/arch/um/kernel/ksyms.c | 2 +- trunk/arch/um/kernel/mem.c | 12 +- trunk/arch/um/kernel/process.c | 25 +- trunk/arch/um/kernel/reboot.c | 14 +- trunk/arch/um/kernel/sigio.c | 6 +- trunk/arch/um/kernel/signal.c | 4 +- trunk/arch/um/kernel/skas/clone.c | 8 +- trunk/arch/um/kernel/skas/mmu.c | 16 +- trunk/arch/um/kernel/skas/process.c | 12 +- trunk/arch/um/kernel/skas/syscall.c | 10 +- trunk/arch/um/kernel/skas/uaccess.c | 4 +- trunk/arch/um/kernel/smp.c | 30 +- trunk/arch/um/kernel/syscall.c | 37 +- trunk/arch/um/kernel/sysrq.c | 2 +- trunk/arch/um/kernel/time.c | 4 +- trunk/arch/um/kernel/tlb.c | 8 +- trunk/arch/um/kernel/trap.c | 11 +- trunk/arch/um/kernel/um_arch.c | 14 +- trunk/arch/um/kernel/umid.c | 6 +- trunk/arch/um/kernel/uml.lds.S | 2 +- trunk/arch/um/os-Linux/aio.c | 8 +- trunk/arch/um/os-Linux/drivers/etap.h | 2 +- .../arch/um/os-Linux/drivers/ethertap_kern.c | 2 +- .../arch/um/os-Linux/drivers/ethertap_user.c | 6 +- trunk/arch/um/os-Linux/drivers/tuntap.h | 2 +- trunk/arch/um/os-Linux/drivers/tuntap_kern.c | 2 +- trunk/arch/um/os-Linux/drivers/tuntap_user.c | 4 +- trunk/arch/um/os-Linux/elf_aux.c | 6 +- trunk/arch/um/os-Linux/execvp.c | 4 +- trunk/arch/um/os-Linux/file.c | 2 +- trunk/arch/um/os-Linux/helper.c | 6 +- trunk/arch/um/os-Linux/irq.c | 6 +- trunk/arch/um/os-Linux/main.c | 10 +- trunk/arch/um/os-Linux/mem.c | 4 +- trunk/arch/um/os-Linux/process.c | 8 +- trunk/arch/um/os-Linux/registers.c | 6 +- trunk/arch/um/os-Linux/sigio.c | 10 +- trunk/arch/um/os-Linux/signal.c | 8 +- trunk/arch/um/os-Linux/skas/mem.c | 20 +- trunk/arch/um/os-Linux/skas/process.c | 22 +- trunk/arch/um/os-Linux/start_up.c | 14 +- trunk/arch/um/os-Linux/time.c | 4 +- trunk/arch/um/os-Linux/tty.c | 4 +- trunk/arch/um/os-Linux/umid.c | 4 +- trunk/arch/um/os-Linux/user_syms.c | 4 +- trunk/arch/um/os-Linux/util.c | 2 +- trunk/arch/um/sys-ppc/miscthings.c | 6 +- trunk/arch/um/sys-ppc/ptrace.c | 2 +- trunk/arch/um/sys-ppc/ptrace_user.c | 2 +- trunk/arch/um/sys-ppc/shared/sysdep/ptrace.h | 2 +- trunk/arch/um/sys-ppc/sigcontext.c | 2 +- trunk/arch/um/sys-ppc/sysrq.c | 4 +- trunk/arch/unicore32/Kconfig | 12 +- trunk/arch/unicore32/include/asm/Kbuild | 2 + trunk/arch/unicore32/include/asm/exec.h | 15 - .../arch/unicore32/include/asm/thread_info.h | 4 +- trunk/arch/unicore32/include/mach/regs-ost.h | 18 +- trunk/arch/unicore32/kernel/Makefile | 1 - trunk/arch/unicore32/kernel/entry.S | 2 - trunk/arch/unicore32/kernel/process.c | 2 +- trunk/arch/unicore32/kernel/pwm.c | 263 - trunk/arch/unicore32/kernel/signal.c | 1 - trunk/arch/unicore32/kernel/sys.c | 1 - trunk/arch/x86/Kconfig | 6 + trunk/arch/x86/Makefile | 4 +- trunk/arch/x86/ia32/ia32entry.S | 2 +- trunk/arch/x86/ia32/sys_ia32.c | 15 - trunk/arch/x86/include/asm/Kbuild | 6 + trunk/arch/x86/include/asm/atomic.h | 24 - trunk/arch/x86/include/asm/hugetlb.h | 4 + trunk/arch/x86/include/asm/pgtable.h | 11 +- trunk/arch/x86/include/asm/pgtable_32.h | 1 + trunk/arch/x86/include/asm/pgtable_64.h | 1 + trunk/arch/x86/include/asm/processor.h | 5 - trunk/arch/x86/include/asm/sys_ia32.h | 2 - trunk/arch/x86/include/asm/syscalls.h | 2 +- trunk/arch/x86/include/asm/thread_info.h | 2 - trunk/arch/x86/include/asm/unistd.h | 2 + trunk/arch/x86/kernel/Makefile | 2 +- trunk/arch/x86/kernel/asm-offsets.c | 3 + trunk/arch/x86/kernel/entry_32.S | 43 +- trunk/arch/x86/kernel/entry_64.S | 74 +- trunk/arch/x86/kernel/process.c | 65 - trunk/arch/x86/kernel/process_32.c | 37 +- trunk/arch/x86/kernel/process_64.c | 35 +- trunk/arch/x86/kernel/signal.c | 4 - trunk/arch/x86/kernel/sys_i386_32.c | 40 - trunk/arch/x86/kernel/vm86_32.c | 6 +- trunk/arch/x86/mm/fault.c | 1 + trunk/arch/x86/mm/hugetlbpage.c | 3 +- trunk/arch/x86/mm/pat.c | 87 +- trunk/arch/x86/mm/pat_rbtree.c | 34 +- trunk/arch/x86/syscalls/syscall_32.tbl | 2 +- trunk/arch/x86/um/Kconfig | 1 + trunk/arch/x86/um/asm/checksum.h | 144 + trunk/arch/x86/um/asm/checksum_32.h | 140 - trunk/arch/x86/um/asm/checksum_64.h | 125 - trunk/arch/x86/um/asm/elf.h | 2 +- trunk/arch/x86/um/asm/ptrace.h | 58 +- trunk/arch/x86/um/asm/ptrace_32.h | 28 - trunk/arch/x86/um/asm/ptrace_64.h | 46 - trunk/arch/x86/um/bugs_32.c | 6 +- trunk/arch/x86/um/bugs_64.c | 2 +- trunk/arch/x86/um/fault.c | 2 +- trunk/arch/x86/um/ldt.c | 10 +- trunk/arch/x86/um/mem_64.c | 6 +- trunk/arch/x86/um/os-Linux/registers.c | 4 +- trunk/arch/x86/um/os-Linux/task_size.c | 2 +- trunk/arch/x86/um/os-Linux/tls.c | 2 +- trunk/arch/x86/um/ptrace_32.c | 8 +- trunk/arch/x86/um/ptrace_user.c | 2 +- trunk/arch/x86/um/shared/sysdep/ptrace.h | 2 +- trunk/arch/x86/um/shared/sysdep/stub.h | 4 +- trunk/arch/x86/um/shared/sysdep/syscalls_32.h | 4 +- trunk/arch/x86/um/signal.c | 4 +- trunk/arch/x86/um/stub_32.S | 2 +- trunk/arch/x86/um/stub_64.S | 2 +- trunk/arch/x86/um/stub_segv.c | 6 +- trunk/arch/x86/um/sys_call_table_32.c | 1 - trunk/arch/x86/um/sysrq_32.c | 12 +- trunk/arch/x86/um/sysrq_64.c | 2 +- trunk/arch/x86/um/tls_32.c | 12 +- trunk/arch/x86/um/tls_64.c | 2 +- trunk/arch/x86/xen/mmu.c | 3 +- trunk/arch/xtensa/Kconfig | 23 +- trunk/arch/xtensa/Makefile | 34 +- trunk/arch/xtensa/boot/Makefile | 2 +- trunk/arch/xtensa/boot/boot-elf/Makefile | 24 +- trunk/arch/xtensa/boot/boot-elf/boot.lds.S | 7 - trunk/arch/xtensa/boot/boot-redboot/Makefile | 12 +- trunk/arch/xtensa/boot/boot-redboot/boot.ld | 7 - .../arch/xtensa/boot/boot-redboot/bootstrap.S | 10 - trunk/arch/xtensa/boot/ramdisk/Makefile | 23 - trunk/arch/xtensa/configs/s6105_defconfig | 5 - trunk/arch/xtensa/include/asm/Kbuild | 3 + trunk/arch/xtensa/include/asm/exec.h | 14 - trunk/arch/xtensa/include/asm/io.h | 172 +- trunk/arch/xtensa/include/asm/ioctls.h | 4 +- trunk/arch/xtensa/include/asm/regs.h | 2 +- trunk/arch/xtensa/include/asm/thread_info.h | 5 - trunk/arch/xtensa/kernel/Makefile | 3 +- trunk/arch/xtensa/kernel/io.c | 75 - trunk/arch/xtensa/kernel/irq.c | 4 +- trunk/arch/xtensa/kernel/pci-dma.c | 4 + trunk/arch/xtensa/kernel/pci.c | 2 +- trunk/arch/xtensa/kernel/platform.c | 4 +- trunk/arch/xtensa/kernel/setup.c | 12 - trunk/arch/xtensa/kernel/signal.c | 4 - trunk/arch/xtensa/kernel/vmlinux.lds.S | 5 - trunk/arch/xtensa/kernel/xtensa_ksyms.c | 25 + trunk/arch/xtensa/mm/fault.c | 1 + trunk/arch/xtensa/platforms/iss/Makefile | 4 +- trunk/arch/xtensa/platforms/iss/console.c | 15 +- .../platforms/iss/include/platform/serial.h | 0 .../platforms/iss/include/platform/simcall.h | 53 + trunk/arch/xtensa/platforms/iss/io.c | 32 - trunk/arch/xtensa/platforms/iss/network.c | 49 - trunk/arch/xtensa/platforms/iss/setup.c | 14 +- trunk/block/blk-core.c | 51 +- trunk/block/blk-lib.c | 104 +- trunk/block/blk-merge.c | 53 +- trunk/block/blk-settings.c | 16 + trunk/block/blk-sysfs.c | 44 +- trunk/block/blk-tag.c | 6 +- trunk/block/blk.h | 5 +- trunk/block/elevator.c | 6 +- trunk/block/ioctl.c | 27 + trunk/drivers/acpi/acpica/Makefile | 1 + trunk/drivers/acpi/acpica/achware.h | 3 +- trunk/drivers/acpi/acpica/aclocal.h | 23 +- trunk/drivers/acpi/acpica/acmacros.h | 29 +- trunk/drivers/acpi/acpica/dswload.c | 14 + trunk/drivers/acpi/acpica/dswload2.c | 14 + trunk/drivers/acpi/acpica/evgpe.c | 24 +- trunk/drivers/acpi/acpica/evxfgpe.c | 3 +- trunk/drivers/acpi/acpica/hwgpe.c | 15 +- trunk/drivers/acpi/acpica/hwxfsleep.c | 1 - trunk/drivers/acpi/acpica/nsdump.c | 2 +- trunk/drivers/acpi/acpica/tbinstal.c | 20 +- trunk/drivers/acpi/acpica/tbxface.c | 41 +- trunk/drivers/acpi/acpica/utosi.c | 1 + trunk/drivers/acpi/acpica/utxface.c | 354 +- trunk/drivers/acpi/acpica/utxfinit.c | 317 + trunk/drivers/acpi/bus.c | 8 +- trunk/drivers/acpi/button.c | 13 +- trunk/drivers/acpi/fan.c | 22 +- trunk/drivers/acpi/glue.c | 135 +- trunk/drivers/acpi/hed.c | 20 +- trunk/drivers/acpi/proc.c | 57 +- trunk/drivers/acpi/sbshc.c | 18 +- trunk/drivers/acpi/scan.c | 56 +- trunk/drivers/acpi/tables.c | 18 +- trunk/drivers/acpi/utils.c | 11 +- trunk/drivers/base/memory.c | 40 +- trunk/drivers/block/drbd/drbd_main.c | 13 +- trunk/drivers/block/osdblk.c | 3 +- trunk/drivers/block/pktcdvd.c | 52 +- trunk/drivers/block/rbd.c | 1790 ++- trunk/drivers/block/rbd_types.h | 27 +- trunk/drivers/char/mbcs.c | 2 +- trunk/drivers/char/mem.c | 2 +- trunk/drivers/char/mspec.c | 2 +- trunk/drivers/char/raw.c | 2 +- trunk/drivers/cpufreq/omap-cpufreq.c | 36 +- trunk/drivers/dma/Kconfig | 17 + trunk/drivers/dma/Makefile | 2 + trunk/drivers/dma/amba-pl08x.c | 2 + trunk/drivers/dma/at_hdmac.c | 3 +- trunk/drivers/dma/dw_dmac.c | 258 +- trunk/drivers/dma/dw_dmac_regs.h | 48 +- trunk/drivers/dma/edma.c | 671 + trunk/drivers/dma/ep93xx_dma.c | 4 +- trunk/drivers/dma/imx-dma.c | 2 +- trunk/drivers/dma/imx-sdma.c | 2 +- trunk/drivers/dma/ioat/dma_v2.c | 3 +- trunk/drivers/dma/ioat/pci.c | 22 + trunk/drivers/dma/mmp_pdma.c | 875 ++ trunk/drivers/dma/mmp_tdma.c | 53 +- trunk/drivers/dma/mxs-dma.c | 16 +- trunk/drivers/dma/omap-dma.c | 45 +- trunk/drivers/dma/pl330.c | 80 +- trunk/drivers/dma/sa11x0-dma.c | 2 +- trunk/drivers/dma/sirf-dma.c | 25 +- trunk/drivers/dma/ste_dma40.c | 17 +- trunk/drivers/dma/tegra20-apb-dma.c | 14 +- trunk/drivers/firewire/core-cdev.c | 4 +- trunk/drivers/gpio/gpio-stp-xway.c | 2 +- trunk/drivers/gpu/drm/drm_edid.c | 3 +- trunk/drivers/gpu/drm/drm_gem.c | 2 +- trunk/drivers/gpu/drm/drm_vm.c | 10 +- trunk/drivers/gpu/drm/exynos/exynos_ddc.c | 22 +- .../gpu/drm/exynos/exynos_drm_connector.c | 50 +- .../gpu/drm/exynos/exynos_drm_connector.h | 4 + .../drivers/gpu/drm/exynos/exynos_drm_core.c | 100 +- .../drivers/gpu/drm/exynos/exynos_drm_crtc.c | 20 +- trunk/drivers/gpu/drm/exynos/exynos_drm_drv.h | 19 +- .../gpu/drm/exynos/exynos_drm_encoder.c | 116 +- trunk/drivers/gpu/drm/exynos/exynos_drm_fb.c | 65 +- trunk/drivers/gpu/drm/exynos/exynos_drm_fb.h | 20 +- .../drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 3 + .../drivers/gpu/drm/exynos/exynos_drm_fimd.c | 119 +- trunk/drivers/gpu/drm/exynos/exynos_drm_g2d.c | 5 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gem.c | 2 +- .../drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 62 +- .../drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 3 + .../drivers/gpu/drm/exynos/exynos_drm_plane.c | 58 +- .../drivers/gpu/drm/exynos/exynos_drm_vidi.c | 24 +- trunk/drivers/gpu/drm/exynos/exynos_hdmi.c | 196 +- trunk/drivers/gpu/drm/exynos/exynos_hdmiphy.c | 12 +- trunk/drivers/gpu/drm/exynos/exynos_mixer.c | 240 +- trunk/drivers/gpu/drm/exynos/regs-mixer.h | 3 + trunk/drivers/gpu/drm/gma500/framebuffer.c | 3 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 14 +- trunk/drivers/gpu/drm/i915/i915_gem_context.c | 2 +- trunk/drivers/gpu/drm/i915/i915_gem_tiling.c | 5 +- trunk/drivers/gpu/drm/i915/i915_irq.c | 16 +- trunk/drivers/gpu/drm/i915/i915_reg.h | 3 + trunk/drivers/gpu/drm/i915/intel_display.c | 52 +- trunk/drivers/gpu/drm/i915/intel_dp.c | 73 +- trunk/drivers/gpu/drm/i915/intel_drv.h | 2 + trunk/drivers/gpu/drm/i915/intel_pm.c | 5 + .../gpu/drm/nouveau/core/core/parent.c | 17 - .../drm/nouveau/core/include/core/parent.h | 3 - .../drm/nouveau/core/include/subdev/timer.h | 2 +- .../gpu/drm/nouveau/core/subdev/bios/base.c | 21 +- .../gpu/drm/nouveau/core/subdev/clock/nv50.c | 1 + .../gpu/drm/nouveau/core/subdev/therm/nv50.c | 2 +- .../gpu/drm/nouveau/core/subdev/timer/nv04.c | 2 +- trunk/drivers/gpu/drm/ttm/ttm_bo_vm.c | 4 +- trunk/drivers/gpu/drm/udl/udl_fb.c | 2 +- trunk/drivers/hwmon/acpi_power_meter.c | 1 + trunk/drivers/hwmon/adm9240.c | 1 + trunk/drivers/hwmon/adt7411.c | 1 - trunk/drivers/hwmon/adt7462.c | 1 - trunk/drivers/hwmon/adt7475.c | 1 + trunk/drivers/hwmon/applesmc.c | 1 + trunk/drivers/hwmon/asus_atk0110.c | 2 + trunk/drivers/hwmon/da9052-hwmon.c | 1 - trunk/drivers/hwmon/emc1403.c | 1 + trunk/drivers/hwmon/emc6w201.c | 1 - trunk/drivers/hwmon/hih6130.c | 1 + trunk/drivers/hwmon/i5k_amb.c | 2 - trunk/drivers/hwmon/ibmaem.c | 1 + trunk/drivers/hwmon/ibmpex.c | 1 + trunk/drivers/hwmon/ina2xx.c | 1 + trunk/drivers/hwmon/k8temp.c | 1 - trunk/drivers/hwmon/lineage-pem.c | 1 + trunk/drivers/hwmon/lm92.c | 1 + trunk/drivers/hwmon/lm93.c | 1 + trunk/drivers/hwmon/ltc4151.c | 1 + trunk/drivers/hwmon/ltc4215.c | 1 + trunk/drivers/hwmon/ltc4245.c | 1 + trunk/drivers/hwmon/ltc4261.c | 1 + trunk/drivers/hwmon/max16065.c | 1 - trunk/drivers/hwmon/max1619.c | 4 +- trunk/drivers/hwmon/max6642.c | 2 +- trunk/drivers/hwmon/pmbus/pmbus_core.c | 2 +- trunk/drivers/hwmon/s3c-hwmon.c | 1 - trunk/drivers/hwmon/sht21.c | 1 + trunk/drivers/hwmon/smm665.c | 1 + trunk/drivers/hwmon/thmc50.c | 1 + trunk/drivers/hwmon/tmp102.c | 1 + trunk/drivers/hwmon/ultra45_env.c | 1 + trunk/drivers/hwmon/w83791d.c | 1 + trunk/drivers/hwmon/w83792d.c | 1 + trunk/drivers/hwmon/w83793.c | 1 + trunk/drivers/hwmon/w83795.c | 2 +- trunk/drivers/hwmon/w83l786ng.c | 1 + trunk/drivers/i2c/Kconfig | 17 +- trunk/drivers/i2c/algos/i2c-algo-pca.c | 27 +- trunk/drivers/i2c/busses/Kconfig | 45 +- trunk/drivers/i2c/busses/Makefile | 1 + trunk/drivers/i2c/busses/i2c-at91.c | 667 +- trunk/drivers/i2c/busses/i2c-davinci.c | 58 +- .../drivers/i2c/busses/i2c-designware-core.c | 2 +- trunk/drivers/i2c/busses/i2c-i801.c | 185 +- trunk/drivers/i2c/busses/i2c-imx.c | 6 +- trunk/drivers/i2c/busses/i2c-mpc.c | 18 +- trunk/drivers/i2c/busses/i2c-mxs.c | 269 +- trunk/drivers/i2c/busses/i2c-nomadik.c | 52 +- trunk/drivers/i2c/busses/i2c-omap.c | 474 +- trunk/drivers/i2c/busses/i2c-parport.c | 2 +- trunk/drivers/i2c/busses/i2c-piix4.c | 1 + trunk/drivers/i2c/busses/i2c-rcar.c | 709 + trunk/drivers/i2c/busses/i2c-s3c2410.c | 18 +- trunk/drivers/i2c/busses/i2c-scmi.c | 14 +- trunk/drivers/i2c/busses/i2c-viapro.c | 3 + trunk/drivers/i2c/busses/scx200_acb.c | 24 +- trunk/drivers/i2c/busses/scx200_i2c.c | 15 +- trunk/drivers/i2c/i2c-core.c | 16 +- trunk/drivers/i2c/i2c-mux.c | 22 + trunk/drivers/i2c/i2c-smbus.c | 11 +- trunk/drivers/i2c/muxes/i2c-mux-gpio.c | 56 +- trunk/drivers/i2c/muxes/i2c-mux-pca9541.c | 2 +- trunk/drivers/i2c/muxes/i2c-mux-pca954x.c | 10 +- trunk/drivers/i2c/muxes/i2c-mux-pinctrl.c | 2 +- trunk/drivers/idle/intel_idle.c | 1 + trunk/drivers/infiniband/core/cma.c | 3 +- trunk/drivers/infiniband/core/netlink.c | 1 + .../drivers/infiniband/hw/ehca/ehca_uverbs.c | 4 +- .../infiniband/hw/ipath/ipath_file_ops.c | 2 +- .../drivers/infiniband/hw/qib/qib_file_ops.c | 2 +- trunk/drivers/infiniband/ulp/srpt/ib_srpt.c | 12 - trunk/drivers/input/misc/atlas_btns.c | 17 +- trunk/drivers/iommu/Kconfig | 2 +- trunk/drivers/iommu/amd_iommu.c | 514 +- trunk/drivers/iommu/amd_iommu_init.c | 253 +- trunk/drivers/iommu/amd_iommu_proto.h | 8 + trunk/drivers/iommu/amd_iommu_types.h | 59 +- trunk/drivers/iommu/exynos-iommu.c | 3 +- trunk/drivers/iommu/intel-iommu.c | 4 +- trunk/drivers/iommu/irq_remapping.c | 5 + trunk/drivers/iommu/irq_remapping.h | 6 + trunk/drivers/iommu/tegra-smmu.c | 261 +- trunk/drivers/isdn/hisax/Kconfig | 10 +- trunk/drivers/leds/Kconfig | 26 +- trunk/drivers/leds/Makefile | 3 +- trunk/drivers/leds/led-class.c | 15 + trunk/drivers/leds/led-core.c | 16 +- trunk/drivers/leds/led-triggers.c | 17 +- trunk/drivers/leds/leds-clevo-mail.c | 10 +- trunk/drivers/leds/leds-gpio.c | 19 +- trunk/drivers/leds/leds-lm3530.c | 16 +- trunk/drivers/leds/leds-lm3556.c | 512 - trunk/drivers/leds/leds-lm355x.c | 572 + trunk/drivers/leds/leds-lm3642.c | 462 + trunk/drivers/leds/leds-lp5523.c | 75 +- trunk/drivers/leds/leds-pca9633.c | 19 +- trunk/drivers/leds/leds-wm8350.c | 29 +- trunk/drivers/leds/leds.h | 2 + trunk/drivers/md/dm-crypt.c | 16 +- trunk/drivers/md/dm-io.c | 11 - trunk/drivers/md/dm.c | 74 +- trunk/drivers/md/md.c | 44 +- trunk/drivers/md/raid0.c | 1 + trunk/drivers/media/pci/meye/meye.c | 2 +- trunk/drivers/media/platform/omap/omap_vout.c | 77 +- trunk/drivers/media/platform/vino.c | 2 +- .../drivers/media/usb/sn9c102/sn9c102_core.c | 3 +- .../media/usb/usbvision/usbvision-video.c | 3 +- .../drivers/media/v4l2-core/videobuf-dma-sg.c | 2 +- .../media/v4l2-core/videobuf-vmalloc.c | 2 +- .../media/v4l2-core/videobuf2-memops.c | 2 +- trunk/drivers/misc/Kconfig | 10 - trunk/drivers/misc/Makefile | 1 - trunk/drivers/misc/carma/carma-fpga.c | 2 - trunk/drivers/misc/sgi-gru/grufile.c | 5 +- trunk/drivers/mmc/core/core.c | 240 +- trunk/drivers/mmc/core/debugfs.c | 2 +- trunk/drivers/mmc/core/mmc.c | 57 +- trunk/drivers/mmc/core/mmc_ops.c | 84 +- trunk/drivers/mmc/core/sdio_bus.c | 7 - trunk/drivers/mmc/core/slot-gpio.c | 8 +- trunk/drivers/mmc/host/Kconfig | 9 + trunk/drivers/mmc/host/Makefile | 1 + trunk/drivers/mmc/host/atmel-mci-regs.h | 7 + trunk/drivers/mmc/host/atmel-mci.c | 113 +- trunk/drivers/mmc/host/bfin_sdh.c | 210 +- trunk/drivers/mmc/host/davinci_mmc.c | 271 +- trunk/drivers/mmc/host/dw_mmc-exynos.c | 253 + trunk/drivers/mmc/host/dw_mmc-pci.c | 15 +- trunk/drivers/mmc/host/dw_mmc-pltfm.c | 62 +- trunk/drivers/mmc/host/dw_mmc-pltfm.h | 20 + trunk/drivers/mmc/host/dw_mmc.c | 326 +- trunk/drivers/mmc/host/dw_mmc.h | 24 + trunk/drivers/mmc/host/mmc_spi.c | 15 +- trunk/drivers/mmc/host/mmci.c | 13 +- trunk/drivers/mmc/host/mxcmmc.c | 76 +- trunk/drivers/mmc/host/omap.c | 37 +- trunk/drivers/mmc/host/omap_hsmmc.c | 125 +- trunk/drivers/mmc/host/pxamci.c | 52 + trunk/drivers/mmc/host/sdhci-dove.c | 8 + trunk/drivers/mmc/host/sdhci-of-esdhc.c | 36 +- trunk/drivers/mmc/host/sdhci-pci.c | 19 +- trunk/drivers/mmc/host/sdhci-pltfm.c | 3 + trunk/drivers/mmc/host/sdhci-pxav2.c | 6 +- trunk/drivers/mmc/host/sdhci-pxav3.c | 35 +- trunk/drivers/mmc/host/sdhci-s3c.c | 216 +- trunk/drivers/mmc/host/sdhci-spear.c | 67 +- trunk/drivers/mmc/host/sdhci-tegra.c | 7 +- trunk/drivers/mmc/host/sdhci.c | 205 +- trunk/drivers/mmc/host/sh_mmcif.c | 8 +- trunk/drivers/mmc/host/via-sdmmc.c | 16 +- trunk/drivers/mmc/host/vub300.c | 4 +- trunk/drivers/mtd/Kconfig | 7 + trunk/drivers/mtd/Makefile | 1 + trunk/drivers/mtd/bcm47xxpart.c | 202 + trunk/drivers/mtd/chips/Kconfig | 11 +- trunk/drivers/mtd/chips/cfi_cmdset_0001.c | 14 +- trunk/drivers/mtd/chips/cfi_cmdset_0002.c | 67 + trunk/drivers/mtd/cmdlinepart.c | 183 +- trunk/drivers/mtd/devices/Kconfig | 10 +- trunk/drivers/mtd/devices/Makefile | 1 + trunk/drivers/mtd/devices/bcm47xxsflash.c | 105 + trunk/drivers/mtd/devices/doc2001plus.c | 14 +- trunk/drivers/mtd/devices/docg3.c | 12 +- trunk/drivers/mtd/devices/m25p80.c | 24 +- trunk/drivers/mtd/devices/spear_smi.c | 141 +- trunk/drivers/mtd/maps/Kconfig | 16 +- trunk/drivers/mtd/maps/Makefile | 1 - trunk/drivers/mtd/maps/autcpu12-nvram.c | 153 +- trunk/drivers/mtd/maps/pci.c | 23 - trunk/drivers/mtd/maps/physmap_of.c | 14 + trunk/drivers/mtd/maps/rbtx4939-flash.c | 2 - trunk/drivers/mtd/maps/uclinux.c | 15 +- trunk/drivers/mtd/maps/wr_sbc82xx_flash.c | 174 - trunk/drivers/mtd/mtdchar.c | 8 +- trunk/drivers/mtd/mtdcore.c | 27 +- trunk/drivers/mtd/mtdoops.c | 14 +- trunk/drivers/mtd/mtdpart.c | 5 +- trunk/drivers/mtd/nand/Kconfig | 63 +- trunk/drivers/mtd/nand/Makefile | 4 +- trunk/drivers/mtd/nand/ams-delta.c | 13 - trunk/drivers/mtd/nand/atmel_nand.c | 987 +- trunk/drivers/mtd/nand/atmel_nand_ecc.h | 114 +- trunk/drivers/mtd/nand/au1550nd.c | 46 - trunk/drivers/mtd/nand/bcm_umi_bch.c | 217 - trunk/drivers/mtd/nand/bcm_umi_nand.c | 555 - trunk/drivers/mtd/nand/bf5xx_nand.c | 6 +- trunk/drivers/mtd/nand/cafe_nand.c | 20 +- trunk/drivers/mtd/nand/cmx270_nand.c | 13 - trunk/drivers/mtd/nand/davinci_nand.c | 78 +- trunk/drivers/mtd/nand/denali.c | 12 +- trunk/drivers/mtd/nand/diskonchip.c | 63 - trunk/drivers/mtd/nand/docg4.c | 43 +- trunk/drivers/mtd/nand/fsl_elbc_nand.c | 51 +- trunk/drivers/mtd/nand/fsl_ifc_nand.c | 52 +- trunk/drivers/mtd/nand/gpio.c | 54 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-lib.c | 322 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 152 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-nand.h | 26 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-regs.h | 12 + trunk/drivers/mtd/nand/lpc32xx_mlc.c | 924 ++ trunk/drivers/mtd/nand/lpc32xx_slc.c | 1039 ++ trunk/drivers/mtd/nand/mpc5121_nfc.c | 22 - trunk/drivers/mtd/nand/mxc_nand.c | 168 +- trunk/drivers/mtd/nand/nand_base.c | 529 +- trunk/drivers/mtd/nand/nand_bbt.c | 148 +- trunk/drivers/mtd/nand/nand_bcm_umi.c | 149 - trunk/drivers/mtd/nand/nand_bcm_umi.h | 336 - trunk/drivers/mtd/nand/nand_ids.c | 7 +- trunk/drivers/mtd/nand/nandsim.c | 17 +- trunk/drivers/mtd/nand/ndfc.c | 13 - trunk/drivers/mtd/nand/nuc900_nand.c | 17 - trunk/drivers/mtd/nand/omap2.c | 36 +- trunk/drivers/mtd/nand/orion_nand.c | 1 - trunk/drivers/mtd/nand/plat_nand.c | 5 + trunk/drivers/mtd/nand/pxa3xx_nand.c | 12 +- trunk/drivers/mtd/nand/r852.c | 22 - trunk/drivers/mtd/nand/s3c2410.c | 191 +- trunk/drivers/mtd/nand/sh_flctl.c | 327 +- trunk/drivers/mtd/nand/socrates_nand.c | 19 - trunk/drivers/mtd/nand/tmio_nand.c | 13 - trunk/drivers/mtd/nand/txx9ndfmc.c | 13 - trunk/drivers/mtd/nand/xway_nand.c | 201 + trunk/drivers/mtd/sm_ftl.c | 1 - trunk/drivers/mtd/tests/Makefile | 1 + trunk/drivers/mtd/tests/mtd_nandbiterrs.c | 460 + trunk/drivers/mtd/tests/mtd_nandecctest.c | 294 +- trunk/drivers/mtd/tests/mtd_speedtest.c | 16 +- trunk/drivers/mtd/tests/mtd_stresstest.c | 39 +- trunk/drivers/mtd/ubi/Kconfig | 21 + trunk/drivers/mtd/ubi/Makefile | 1 + trunk/drivers/mtd/ubi/attach.c | 386 +- trunk/drivers/mtd/ubi/build.c | 70 +- trunk/drivers/mtd/ubi/eba.c | 126 +- trunk/drivers/mtd/ubi/fastmap.c | 1537 +++ trunk/drivers/mtd/ubi/ubi-media.h | 137 + trunk/drivers/mtd/ubi/ubi.h | 118 +- trunk/drivers/mtd/ubi/wl.c | 599 +- trunk/drivers/net/ethernet/amd/amd8111e.c | 2 + trunk/drivers/net/ethernet/amd/au1000_eth.c | 10 +- .../net/ethernet/broadcom/bcm63xx_enet.h | 30 +- trunk/drivers/net/ethernet/calxeda/xgmac.c | 19 +- .../net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + .../net/ethernet/chelsio/cxgb4/cxgb4_main.c | 54 +- .../net/ethernet/chelsio/cxgb4/t4_hw.c | 15 +- trunk/drivers/net/ethernet/dec/tulip/dmfe.c | 12 +- .../net/ethernet/emulex/benet/be_main.c | 7 +- .../drivers/net/ethernet/freescale/gianfar.c | 27 +- .../drivers/net/ethernet/freescale/gianfar.h | 2 - .../drivers/net/ethernet/freescale/ucc_geth.c | 29 +- .../drivers/net/ethernet/freescale/ucc_geth.h | 2 - trunk/drivers/net/ethernet/intel/e1000e/hw.h | 2 + .../net/ethernet/intel/e1000e/netdev.c | 2 + .../drivers/net/ethernet/intel/ixgbe/ixgbe.h | 2 +- .../net/ethernet/intel/ixgbevf/ixgbevf.h | 2 +- .../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 7 + .../net/ethernet/marvell/mv643xx_eth.c | 18 +- trunk/drivers/net/ethernet/marvell/skge.c | 13 +- trunk/drivers/net/ethernet/marvell/sky2.c | 5 +- trunk/drivers/net/ethernet/natsemi/natsemi.c | 4 +- trunk/drivers/net/ethernet/natsemi/xtsonic.c | 1 + .../drivers/net/ethernet/octeon/octeon_mgmt.c | 550 +- .../net/ethernet/oki-semi/pch_gbe/Kconfig | 3 + .../net/ethernet/qlogic/qlcnic/qlcnic_main.c | 3 +- trunk/drivers/net/ethernet/realtek/8139cp.c | 2 +- trunk/drivers/net/ethernet/renesas/sh_eth.c | 1 + trunk/drivers/net/ethernet/sfc/ptp.c | 9 +- trunk/drivers/net/ethernet/sis/sis900.c | 4 +- .../net/ethernet/stmicro/stmmac/stmmac.h | 1 - .../net/ethernet/stmicro/stmmac/stmmac_main.c | 20 +- trunk/drivers/net/ethernet/sun/niu.c | 1 + trunk/drivers/net/ethernet/sun/sungem.c | 3 +- trunk/drivers/net/irda/irtty-sir.c | 4 +- trunk/drivers/net/irda/mcs7780.c | 4 +- trunk/drivers/net/irda/pxaficp_ir.c | 4 +- trunk/drivers/net/irda/sa1100_ir.c | 4 +- trunk/drivers/net/irda/sh_irda.c | 4 +- trunk/drivers/net/irda/sh_sir.c | 5 +- trunk/drivers/net/phy/mdio_bus.c | 1 + trunk/drivers/net/vxlan.c | 5 +- trunk/drivers/net/wan/farsync.c | 2 +- trunk/drivers/oprofile/buffer_sync.c | 17 +- trunk/drivers/parport/Kconfig | 2 +- trunk/drivers/pinctrl/Kconfig | 16 + trunk/drivers/pinctrl/Makefile | 3 + trunk/drivers/pinctrl/pinctrl-falcon.c | 468 + trunk/drivers/pinctrl/pinctrl-lantiq.c | 342 + trunk/drivers/pinctrl/pinctrl-lantiq.h | 194 + .../drivers/pinctrl/pinctrl-nomadik-db8500.c | 289 +- .../drivers/pinctrl/pinctrl-nomadik-db8540.c | 344 +- trunk/drivers/pinctrl/pinctrl-nomadik.c | 117 +- trunk/drivers/pinctrl/pinctrl-nomadik.h | 78 + trunk/drivers/pinctrl/pinctrl-xway.c | 781 ++ trunk/drivers/platform/x86/hp_accel.c | 25 +- trunk/drivers/platform/x86/ideapad-laptop.c | 14 +- trunk/drivers/platform/x86/topstar-laptop.c | 22 +- .../drivers/platform/x86/toshiba_bluetooth.c | 22 +- trunk/drivers/platform/x86/xo15-ebook.c | 14 +- trunk/drivers/pnp/pnpacpi/core.c | 7 +- trunk/drivers/power/avs/smartreflex.c | 8 +- trunk/drivers/pwm/Kconfig | 29 +- trunk/drivers/pwm/Makefile | 3 + trunk/drivers/pwm/core.c | 82 +- .../{misc/ab8500-pwm.c => pwm/pwm-ab8500.c} | 116 +- trunk/drivers/pwm/pwm-bfin.c | 3 - trunk/drivers/pwm/pwm-imx.c | 278 +- trunk/drivers/pwm/pwm-jz4740.c | 221 + trunk/drivers/pwm/pwm-puv3.c | 161 + trunk/drivers/pwm/pwm-pxa.c | 3 - trunk/drivers/pwm/pwm-samsung.c | 3 - trunk/drivers/pwm/pwm-tiecap.c | 24 +- trunk/drivers/pwm/pwm-tiehrpwm.c | 75 +- trunk/drivers/rapidio/rio-scan.c | 40 +- trunk/drivers/rapidio/rio.c | 75 +- trunk/drivers/rtc/Kconfig | 3 + trunk/drivers/s390/block/dcssblk.c | 52 +- trunk/drivers/s390/crypto/zcrypt_pcixcc.c | 1 - trunk/drivers/scsi/qla2xxx/qla_target.c | 2 +- trunk/drivers/scsi/qla2xxx/tcm_qla2xxx.c | 15 - trunk/drivers/scsi/sg.c | 2 +- trunk/drivers/spi/Kconfig | 8 + trunk/drivers/spi/Makefile | 1 + trunk/drivers/spi/spi-davinci.c | 292 +- trunk/drivers/spi/spi-octeon.c | 362 + trunk/drivers/staging/android/ashmem.c | 1 - trunk/drivers/staging/omapdrm/omap_drv.c | 5 +- .../drivers/staging/omapdrm/omap_gem_dmabuf.c | 2 +- .../staging/tidspbridge/rmgr/drv_interface.c | 2 +- trunk/drivers/target/iscsi/iscsi_target.c | 196 +- trunk/drivers/target/iscsi/iscsi_target.h | 5 + .../target/iscsi/iscsi_target_configfs.c | 42 +- .../drivers/target/iscsi/iscsi_target_core.h | 15 +- .../drivers/target/iscsi/iscsi_target_erl0.c | 94 +- .../drivers/target/iscsi/iscsi_target_erl1.c | 4 +- .../drivers/target/iscsi/iscsi_target_erl1.h | 4 +- .../drivers/target/iscsi/iscsi_target_erl2.c | 9 +- .../drivers/target/iscsi/iscsi_target_erl2.h | 2 +- .../drivers/target/iscsi/iscsi_target_login.c | 20 +- .../drivers/target/iscsi/iscsi_target_nego.c | 31 +- .../target/iscsi/iscsi_target_parameters.c | 71 +- .../target/iscsi/iscsi_target_parameters.h | 7 +- .../target/iscsi/iscsi_target_seq_pdu_list.c | 61 +- trunk/drivers/target/iscsi/iscsi_target_tmr.c | 31 +- trunk/drivers/target/iscsi/iscsi_target_tpg.c | 12 + trunk/drivers/target/iscsi/iscsi_target_tq.c | 6 +- trunk/drivers/target/iscsi/iscsi_target_tq.h | 1 - .../drivers/target/iscsi/iscsi_target_util.c | 16 +- .../drivers/target/iscsi/iscsi_target_util.h | 8 +- trunk/drivers/target/loopback/tcm_loop.c | 74 +- trunk/drivers/target/sbp/sbp_target.c | 27 +- trunk/drivers/target/target_core_alua.c | 2 +- trunk/drivers/target/target_core_configfs.c | 18 +- trunk/drivers/target/target_core_device.c | 16 +- .../target/target_core_fabric_configfs.c | 1 - trunk/drivers/target/target_core_fabric_lib.c | 8 +- trunk/drivers/target/target_core_file.c | 43 +- trunk/drivers/target/target_core_file.h | 1 + trunk/drivers/target/target_core_iblock.c | 26 +- trunk/drivers/target/target_core_pr.c | 14 +- trunk/drivers/target/target_core_pscsi.c | 2 +- trunk/drivers/target/target_core_sbc.c | 23 +- trunk/drivers/target/target_core_spc.c | 48 +- trunk/drivers/target/target_core_stat.c | 1 - trunk/drivers/target/target_core_tpg.c | 2 +- trunk/drivers/target/target_core_transport.c | 268 +- trunk/drivers/target/tcm_fc/tfc_cmd.c | 1 - trunk/drivers/target/tcm_fc/tfc_conf.c | 12 - trunk/drivers/target/tcm_fc/tfc_io.c | 4 +- trunk/drivers/target/tcm_fc/tfc_sess.c | 1 - trunk/drivers/uio/uio.c | 4 +- trunk/drivers/usb/core/usb-acpi.c | 7 +- trunk/drivers/usb/gadget/tcm_usb_gadget.c | 15 +- trunk/drivers/usb/mon/mon_bin.c | 2 +- trunk/drivers/usb/musb/musb_io.h | 3 +- trunk/drivers/vfio/pci/vfio_pci.c | 9 +- trunk/drivers/vfio/pci/vfio_pci_intrs.c | 18 +- trunk/drivers/vhost/tcm_vhost.c | 81 +- trunk/drivers/vhost/tcm_vhost.h | 8 + trunk/drivers/video/68328fb.c | 2 +- trunk/drivers/video/Kconfig | 15 - trunk/drivers/video/Makefile | 2 - trunk/drivers/video/amifb.c | 2 - trunk/drivers/video/arcfb.c | 1 + trunk/drivers/video/atmel_lcdfb.c | 5 +- trunk/drivers/video/aty/atyfb_base.c | 3 +- trunk/drivers/video/backlight/pwm_bl.c | 7 +- trunk/drivers/video/bf537-lq035.c | 12 +- trunk/drivers/video/bf54x-lq043fb.c | 9 +- trunk/drivers/video/bfin-lq035q1-fb.c | 13 +- trunk/drivers/video/bfin-t350mcqb-fb.c | 1 + trunk/drivers/video/bw2.c | 4 +- trunk/drivers/video/cg3.c | 3 +- trunk/drivers/video/cobalt_lcdfb.c | 5 +- trunk/drivers/video/console/font_mini_4x6.c | 2 +- trunk/drivers/video/console/font_sun8x16.c | 2 +- trunk/drivers/video/cyber2000fb.c | 4 +- trunk/drivers/video/da8xx-fb.c | 283 +- trunk/drivers/video/ep93xx-fb.c | 17 +- trunk/drivers/video/exynos/exynos_dp_core.c | 322 +- trunk/drivers/video/exynos/exynos_dp_core.h | 6 +- trunk/drivers/video/exynos/exynos_dp_reg.c | 58 +- trunk/drivers/video/exynos/exynos_dp_reg.h | 3 +- trunk/drivers/video/exynos/exynos_mipi_dsi.c | 9 +- .../video/exynos/exynos_mipi_dsi_common.c | 8 - trunk/drivers/video/fb-puv3.c | 3 +- trunk/drivers/video/fb_defio.c | 2 +- trunk/drivers/video/fbmem.c | 3 +- trunk/drivers/video/fsl-diu-fb.c | 10 +- trunk/drivers/video/gbefb.c | 19 +- trunk/drivers/video/hpfb.c | 28 +- trunk/drivers/video/imxfb.c | 1 + trunk/drivers/video/jz4740_fb.c | 44 +- trunk/drivers/video/mb862xx/mb862xxfbdrv.c | 10 +- trunk/drivers/video/mbx/mbxfb.c | 25 +- trunk/drivers/video/msm/mddi.c | 3 - trunk/drivers/video/msm/mddi_client_nt35399.c | 6 +- trunk/drivers/video/msm/mdp.c | 1 - trunk/drivers/video/msm/mdp_hw.h | 1 - trunk/drivers/video/mx3fb.c | 3 +- trunk/drivers/video/nuc900fb.c | 2 +- trunk/drivers/video/omap/hwa742.c | 1 - trunk/drivers/video/omap/lcd_palmte.c | 1 - trunk/drivers/video/omap/omapfb_main.c | 9 - .../video/omap2/displays/panel-acx565akm.c | 14 +- .../video/omap2/displays/panel-generic-dpi.c | 76 +- .../omap2/displays/panel-lgphilips-lb035q02.c | 3 + .../drivers/video/omap2/displays/panel-n8x0.c | 31 +- .../omap2/displays/panel-nec-nl8048hl11-01b.c | 3 + .../video/omap2/displays/panel-picodlp.c | 4 + .../omap2/displays/panel-sharp-ls037v7dw01.c | 3 + .../drivers/video/omap2/displays/panel-taal.c | 239 +- .../video/omap2/displays/panel-tfp410.c | 20 +- .../omap2/displays/panel-tpo-td043mtea1.c | 7 +- trunk/drivers/video/omap2/dss/Kconfig | 2 +- trunk/drivers/video/omap2/dss/Makefile | 4 +- trunk/drivers/video/omap2/dss/apply.c | 330 +- trunk/drivers/video/omap2/dss/core.c | 91 +- trunk/drivers/video/omap2/dss/dispc.c | 1018 +- trunk/drivers/video/omap2/dss/dispc.h | 37 + trunk/drivers/video/omap2/dss/display.c | 108 +- trunk/drivers/video/omap2/dss/dpi.c | 181 +- trunk/drivers/video/omap2/dss/dsi.c | 675 +- trunk/drivers/video/omap2/dss/dss.c | 257 +- trunk/drivers/video/omap2/dss/dss.h | 79 +- trunk/drivers/video/omap2/dss/dss_features.c | 278 +- trunk/drivers/video/omap2/dss/dss_features.h | 7 + trunk/drivers/video/omap2/dss/hdmi.c | 247 +- trunk/drivers/video/omap2/dss/hdmi_panel.c | 31 +- trunk/drivers/video/omap2/dss/manager-sysfs.c | 512 + trunk/drivers/video/omap2/dss/manager.c | 473 +- trunk/drivers/video/omap2/dss/output.c | 148 + trunk/drivers/video/omap2/dss/overlay-sysfs.c | 456 + trunk/drivers/video/omap2/dss/overlay.c | 492 +- trunk/drivers/video/omap2/dss/rfbi.c | 222 +- trunk/drivers/video/omap2/dss/sdi.c | 126 +- trunk/drivers/video/omap2/dss/venc.c | 337 +- trunk/drivers/video/omap2/dss/venc_panel.c | 251 + .../drivers/video/omap2/omapfb/omapfb-ioctl.c | 7 +- .../drivers/video/omap2/omapfb/omapfb-main.c | 34 +- trunk/drivers/video/omap2/omapfb/omapfb.h | 5 +- trunk/drivers/video/omap2/vram.c | 56 - trunk/drivers/video/pnx4008/Makefile | 7 - trunk/drivers/video/pnx4008/dum.h | 211 - trunk/drivers/video/pnx4008/fbcommon.h | 43 - trunk/drivers/video/pnx4008/pnxrgbfb.c | 198 - trunk/drivers/video/pnx4008/sdum.c | 861 -- trunk/drivers/video/pnx4008/sdum.h | 136 - trunk/drivers/video/ps3fb.c | 7 +- trunk/drivers/video/s3c-fb.c | 54 +- trunk/drivers/video/s3c2410fb.c | 34 +- trunk/drivers/video/savage/savagefb_driver.c | 4 +- trunk/drivers/video/sbuslib.c | 5 +- trunk/drivers/video/sis/initextlfb.c | 2 +- trunk/drivers/video/smscufx.c | 1 - trunk/drivers/video/sunxvr1000.c | 4 +- trunk/drivers/video/sunxvr2500.c | 4 +- trunk/drivers/video/sunxvr500.c | 8 +- trunk/drivers/video/udlfb.c | 3 +- trunk/drivers/video/uvesafb.c | 2 + trunk/drivers/video/vermilion/vermilion.c | 4 +- trunk/drivers/video/vfb.c | 1 - trunk/drivers/video/via/via_clock.c | 19 + trunk/drivers/xen/gntalloc.c | 2 +- trunk/drivers/xen/gntdev.c | 2 +- trunk/drivers/xen/privcmd.c | 3 +- trunk/fs/9p/v9fs.c | 30 +- trunk/fs/9p/vfs_file.c | 1 + trunk/fs/9p/vfs_inode.c | 8 +- trunk/fs/autofs4/root.c | 6 +- trunk/fs/binfmt_elf.c | 5 +- trunk/fs/binfmt_elf_fdpic.c | 3 +- trunk/fs/bio-integrity.c | 44 +- trunk/fs/bio.c | 231 +- trunk/fs/block_dev.c | 68 +- trunk/fs/btrfs/backref.c | 299 +- trunk/fs/btrfs/backref.h | 10 +- trunk/fs/btrfs/btrfs_inode.h | 15 +- trunk/fs/btrfs/check-integrity.c | 16 +- trunk/fs/btrfs/compression.c | 13 +- trunk/fs/btrfs/ctree.c | 148 +- trunk/fs/btrfs/ctree.h | 109 +- trunk/fs/btrfs/delayed-inode.c | 6 +- trunk/fs/btrfs/disk-io.c | 230 +- trunk/fs/btrfs/disk-io.h | 2 + trunk/fs/btrfs/extent-tree.c | 376 +- trunk/fs/btrfs/extent_io.c | 128 +- trunk/fs/btrfs/extent_io.h | 23 +- trunk/fs/btrfs/extent_map.c | 55 +- trunk/fs/btrfs/extent_map.h | 8 +- trunk/fs/btrfs/file-item.c | 5 +- trunk/fs/btrfs/file.c | 449 +- trunk/fs/btrfs/free-space-cache.c | 10 +- trunk/fs/btrfs/hash.h | 10 + trunk/fs/btrfs/inode-item.c | 285 +- trunk/fs/btrfs/inode.c | 386 +- trunk/fs/btrfs/ioctl.c | 100 +- trunk/fs/btrfs/ordered-data.c | 97 +- trunk/fs/btrfs/ordered-data.h | 12 +- trunk/fs/btrfs/qgroup.c | 40 +- trunk/fs/btrfs/relocation.c | 11 +- trunk/fs/btrfs/root-tree.c | 29 +- trunk/fs/btrfs/scrub.c | 30 +- trunk/fs/btrfs/send.c | 915 +- trunk/fs/btrfs/send.h | 1 + trunk/fs/btrfs/super.c | 74 +- trunk/fs/btrfs/transaction.c | 283 +- trunk/fs/btrfs/transaction.h | 20 +- trunk/fs/btrfs/tree-log.c | 889 +- trunk/fs/btrfs/ulist.c | 7 +- trunk/fs/btrfs/ulist.h | 9 +- trunk/fs/btrfs/volumes.c | 73 +- trunk/fs/btrfs/zlib.c | 8 +- trunk/fs/buffer.c | 13 +- trunk/fs/ceph/addr.c | 21 +- trunk/fs/ceph/caps.c | 2 +- trunk/fs/ceph/export.c | 18 +- trunk/fs/ceph/file.c | 4 +- trunk/fs/ceph/ioctl.c | 8 +- trunk/fs/ceph/mds_client.c | 3 +- trunk/fs/ceph/super.c | 37 +- trunk/fs/cifs/cifs_unicode.c | 22 + trunk/fs/cifs/connect.c | 9 + trunk/fs/cifs/file.c | 1 + trunk/fs/cifs/transport.c | 6 + trunk/fs/exec.c | 79 +- trunk/fs/exofs/ore.c | 5 +- trunk/fs/exofs/ore_raid.c | 2 +- trunk/fs/exofs/super.c | 4 - trunk/fs/exofs/sys.c | 7 +- trunk/fs/ext3/super.c | 6 - trunk/fs/ext4/ext4.h | 49 +- trunk/fs/ext4/extents.c | 258 +- trunk/fs/ext4/file.c | 8 +- trunk/fs/ext4/fsync.c | 92 +- trunk/fs/ext4/ialloc.c | 9 + trunk/fs/ext4/indirect.c | 18 +- trunk/fs/ext4/inode.c | 83 +- trunk/fs/ext4/ioctl.c | 22 - trunk/fs/ext4/mballoc.c | 129 +- trunk/fs/ext4/mballoc.h | 5 - trunk/fs/ext4/move_extent.c | 520 +- trunk/fs/ext4/namei.c | 105 +- trunk/fs/ext4/page-io.c | 176 +- trunk/fs/ext4/resize.c | 432 +- trunk/fs/ext4/super.c | 92 +- trunk/fs/fat/dir.c | 4 +- trunk/fs/fat/fat.h | 5 +- trunk/fs/fat/inode.c | 5 +- trunk/fs/fat/namei_msdos.c | 26 +- trunk/fs/fat/namei_vfat.c | 30 +- trunk/fs/fcntl.c | 2 +- trunk/fs/file.c | 3 + trunk/fs/file_table.c | 2 +- trunk/fs/fs-writeback.c | 10 +- trunk/fs/fuse/file.c | 1 + trunk/fs/gfs2/export.c | 4 + trunk/fs/gfs2/file.c | 2 +- trunk/fs/hostfs/hostfs.h | 2 +- trunk/fs/hostfs/hostfs_kern.c | 12 +- trunk/fs/hostfs/hostfs_user.c | 1 - trunk/fs/hpfs/super.c | 3 - trunk/fs/hppfs/hppfs.c | 4 +- trunk/fs/hugetlbfs/inode.c | 11 +- trunk/fs/inode.c | 2 +- trunk/fs/isofs/export.c | 2 +- trunk/fs/jbd2/commit.c | 40 +- trunk/fs/jbd2/journal.c | 5 + trunk/fs/jbd2/recovery.c | 7 +- trunk/fs/jbd2/transaction.c | 65 +- trunk/fs/jffs2/readinode.c | 13 +- trunk/fs/jffs2/super.c | 4 + trunk/fs/jffs2/wbuf.c | 8 +- trunk/fs/lockd/mon.c | 86 +- trunk/fs/lockd/netns.h | 4 + trunk/fs/lockd/svc.c | 1 + trunk/fs/namei.c | 3 +- trunk/fs/namespace.c | 12 +- trunk/fs/nfs/Kconfig | 4 +- trunk/fs/nfs/blocklayout/blocklayout.c | 306 +- trunk/fs/nfs/blocklayout/blocklayout.h | 2 +- trunk/fs/nfs/blocklayout/blocklayoutdev.c | 25 +- trunk/fs/nfs/blocklayout/extents.c | 3 +- trunk/fs/nfs/callback.c | 321 +- trunk/fs/nfs/callback.h | 3 +- trunk/fs/nfs/callback_proc.c | 31 +- trunk/fs/nfs/client.c | 23 +- trunk/fs/nfs/dir.c | 16 +- trunk/fs/nfs/direct.c | 32 +- trunk/fs/nfs/file.c | 42 +- trunk/fs/nfs/getroot.c | 2 + trunk/fs/nfs/idmap.c | 114 +- trunk/fs/nfs/inode.c | 10 +- trunk/fs/nfs/internal.h | 15 +- trunk/fs/nfs/netns.h | 4 + trunk/fs/nfs/nfs4_fs.h | 19 +- trunk/fs/nfs/nfs4client.c | 256 +- trunk/fs/nfs/nfs4file.c | 29 +- trunk/fs/nfs/nfs4filelayout.c | 41 +- trunk/fs/nfs/nfs4filelayout.h | 16 +- trunk/fs/nfs/nfs4filelayoutdev.c | 17 +- trunk/fs/nfs/nfs4namespace.c | 16 +- trunk/fs/nfs/nfs4proc.c | 342 +- trunk/fs/nfs/nfs4state.c | 228 +- trunk/fs/nfs/nfs4sysctl.c | 1 + trunk/fs/nfs/nfs4xdr.c | 31 +- trunk/fs/nfs/objlayout/objio_osd.c | 9 +- trunk/fs/nfs/pagelist.c | 12 +- trunk/fs/nfs/pnfs.c | 417 +- trunk/fs/nfs/pnfs.h | 57 +- trunk/fs/nfs/pnfs_dev.c | 27 + trunk/fs/nfs/super.c | 31 +- trunk/fs/nfs/write.c | 11 +- trunk/fs/nilfs2/file.c | 3 +- trunk/fs/ocfs2/mmap.c | 2 +- trunk/fs/proc/base.c | 117 +- trunk/fs/proc/page.c | 8 +- trunk/fs/proc/proc_sysctl.c | 5 +- trunk/fs/proc/task_mmu.c | 2 +- trunk/fs/reiserfs/inode.c | 6 +- trunk/fs/super.c | 23 - trunk/fs/sysv/balloc.c | 18 +- trunk/fs/sysv/ialloc.c | 14 +- trunk/fs/sysv/inode.c | 4 +- trunk/fs/sysv/super.c | 1 + trunk/fs/sysv/sysv.h | 1 + trunk/fs/ubifs/file.c | 1 + trunk/fs/ufs/balloc.c | 30 +- trunk/fs/ufs/ialloc.c | 16 +- trunk/fs/ufs/super.c | 21 +- trunk/fs/ufs/ufs.h | 1 + trunk/fs/xfs/xfs_export.c | 3 + trunk/fs/xfs/xfs_file.c | 2 +- trunk/include/acpi/acbuffer.h | 235 + trunk/include/acpi/acnames.h | 3 +- trunk/include/acpi/acpi_bus.h | 60 +- trunk/include/acpi/acpixf.h | 7 +- trunk/include/acpi/actbl.h | 60 +- trunk/include/acpi/actbl1.h | 16 +- trunk/include/acpi/actbl2.h | 123 +- trunk/include/acpi/actbl3.h | 13 +- trunk/include/acpi/actypes.h | 7 - trunk/include/asm-generic/Kbuild | 35 - trunk/include/asm-generic/bitsperlong.h | 13 +- trunk/include/asm-generic/clkdev.h | 28 + trunk/include/asm-generic/int-l64.h | 26 +- trunk/include/asm-generic/int-ll64.h | 31 +- trunk/include/asm-generic/ioctl.h | 95 +- trunk/include/asm-generic/kvm_para.h | 5 +- trunk/include/asm-generic/param.h | 17 +- trunk/include/asm-generic/pgtable.h | 72 +- trunk/include/asm-generic/resource.h | 66 +- trunk/include/asm-generic/siginfo.h | 297 +- trunk/include/asm-generic/signal.h | 117 +- trunk/include/asm-generic/statfs.h | 81 +- trunk/include/asm-generic/termios.h | 49 +- trunk/include/asm-generic/unistd.h | 907 +- trunk/include/asm-generic/xor.h | 4 +- trunk/include/drm/Kbuild | 15 - trunk/include/drm/drm_crtc.h | 1 + trunk/include/drm/drm_dp_helper.h | 101 +- trunk/include/drm/exynos_drm.h | 175 +- trunk/include/drm/i915_drm.h | 920 +- trunk/include/linux/atomic.h | 25 + .../linux/bcma/bcma_driver_chipcommon.h | 2 + trunk/include/linux/binfmts.h | 6 + trunk/include/linux/bio.h | 70 +- trunk/include/linux/blk_types.h | 36 +- trunk/include/linux/blkdev.h | 82 +- trunk/include/linux/caif/Kbuild | 2 - trunk/include/linux/ceph/mon_client.h | 1 - trunk/include/linux/ceph/osd_client.h | 2 +- trunk/include/linux/ceph/osdmap.h | 6 +- trunk/include/linux/compaction.h | 19 +- trunk/include/linux/compat.h | 8 +- trunk/include/linux/compiler-gcc4.h | 2 +- trunk/include/linux/dmaengine.h | 7 +- trunk/include/linux/dw_dmac.h | 7 + trunk/include/linux/edma.h | 29 + trunk/include/linux/falloc.h | 1 + trunk/include/linux/fs.h | 19 +- trunk/include/linux/gfp.h | 9 +- trunk/include/linux/huge_mm.h | 3 +- trunk/include/linux/i2c-algo-pca.h | 1 + trunk/include/linux/i2c-mux-gpio.h | 5 + trunk/include/linux/i2c-mux.h | 1 + trunk/include/linux/i2c-omap.h | 1 - trunk/include/linux/i2c.h | 2 +- trunk/include/linux/i2c/i2c-rcar.h | 10 + trunk/include/linux/i2c/pca954x.h | 1 + trunk/include/linux/i2c/twl.h | 2 +- trunk/include/linux/if_vlan.h | 8 +- trunk/include/linux/interval_tree.h | 27 + trunk/include/linux/interval_tree_generic.h | 191 + trunk/include/linux/isdn/Kbuild | 1 - trunk/include/linux/leds-lp5523.h | 1 + trunk/include/linux/leds.h | 4 + trunk/include/linux/lglock.h | 19 +- trunk/include/linux/memblock.h | 3 +- trunk/include/linux/memcontrol.h | 18 +- trunk/include/linux/memory_hotplug.h | 3 + trunk/include/linux/mempolicy.h | 4 +- trunk/include/linux/mfd/wm8994/pdata.h | 4 + trunk/include/linux/mm.h | 140 +- trunk/include/linux/mm_types.h | 16 +- trunk/include/linux/mman.h | 1 - trunk/include/linux/mmc/card.h | 18 +- trunk/include/linux/mmc/core.h | 4 + trunk/include/linux/mmc/dw_mmc.h | 15 +- trunk/include/linux/mmc/host.h | 5 +- trunk/include/linux/mmc/mmc.h | 19 + trunk/include/linux/mmc/sdhci.h | 3 +- trunk/include/linux/mmu_notifier.h | 60 +- trunk/include/linux/mmzone.h | 10 +- trunk/include/linux/mtd/bbm.h | 7 +- trunk/include/linux/mtd/lpc32xx_mlc.h | 20 + trunk/include/linux/mtd/lpc32xx_slc.h | 20 + trunk/include/linux/mtd/mtd.h | 9 +- trunk/include/linux/mtd/nand.h | 72 +- trunk/include/linux/mtd/sh_flctl.h | 23 +- trunk/include/linux/netdevice.h | 19 +- trunk/include/linux/netfilter/Kbuild | 77 - trunk/include/linux/netfilter/ipset/Kbuild | 4 - trunk/include/linux/netfilter/ipset/ip_set.h | 225 +- .../linux/netfilter/ipset/ip_set_bitmap.h | 11 +- .../linux/netfilter/ipset/ip_set_hash.h | 19 +- .../linux/netfilter/ipset/ip_set_list.h | 19 +- .../linux/netfilter/nf_conntrack_common.h | 115 +- .../linux/netfilter/nf_conntrack_ftp.h | 16 +- .../linux/netfilter/nf_conntrack_tcp.h | 49 +- trunk/include/linux/netfilter/nfnetlink.h | 55 +- .../include/linux/netfilter/nfnetlink_acct.h | 25 +- trunk/include/linux/netfilter/x_tables.h | 186 +- trunk/include/linux/netfilter/xt_hashlimit.h | 71 +- trunk/include/linux/netfilter/xt_physdev.h | 21 +- trunk/include/linux/netfilter_arp/Kbuild | 2 - .../include/linux/netfilter_arp/arp_tables.h | 200 +- trunk/include/linux/netfilter_bridge/Kbuild | 18 - .../linux/netfilter_bridge/ebt_802_3.h | 61 +- .../include/linux/netfilter_bridge/ebtables.h | 255 +- trunk/include/linux/netfilter_ipv4/Kbuild | 10 - .../include/linux/netfilter_ipv4/ip_tables.h | 218 +- trunk/include/linux/netfilter_ipv6/Kbuild | 12 - .../include/linux/netfilter_ipv6/ip6_tables.h | 256 +- trunk/include/linux/netlink.h | 20 +- trunk/include/linux/nfs_fs.h | 11 +- trunk/include/linux/nfs_fs_sb.h | 3 + trunk/include/linux/nfs_xdr.h | 5 +- trunk/include/linux/oom.h | 11 - trunk/include/linux/page-isolation.h | 7 +- trunk/include/linux/pageblock-flags.h | 19 +- trunk/include/linux/pci_ids.h | 1 + trunk/include/linux/percpu-rwsem.h | 89 + .../linux/platform_data/asoc-mx27vis.h | 11 + .../linux/platform_data/asoc-ti-mcbsp.h | 2 - .../linux/platform_data/davinci_asp.h} | 74 +- .../include/linux/platform_data/i2c-nomadik.h | 2 +- .../include/linux/platform_data/leds-lm3556.h | 50 - .../include/linux/platform_data/leds-lm355x.h | 66 + .../include/linux/platform_data/leds-lm3642.h | 38 + .../linux/platform_data/leds-pca9633.h | 35 + trunk/include/linux/platform_data/mmp_dma.h | 19 + .../linux/platform_data/omap-twl4030.h | 32 + trunk/include/linux/platform_data/pxa_sdhci.h | 1 + trunk/include/linux/pnfs_osd_xdr.h | 1 - trunk/include/linux/prio_tree.h | 120 - trunk/include/linux/ptrace.h | 4 + trunk/include/linux/pwm.h | 108 +- trunk/include/linux/rbtree.h | 119 +- trunk/include/linux/rbtree_augmented.h | 223 + trunk/include/linux/rio.h | 3 +- trunk/include/linux/rmap.h | 36 +- trunk/include/linux/scatterlist.h | 1 + trunk/include/linux/sched.h | 4 +- trunk/include/linux/security.h | 12 +- trunk/include/linux/skbuff.h | 24 - trunk/include/linux/sunrpc/clnt.h | 2 + trunk/include/linux/sunrpc/xprt.h | 3 +- trunk/include/linux/swap.h | 2 +- trunk/include/linux/tc_act/Kbuild | 7 - trunk/include/linux/tc_ematch/Kbuild | 4 - trunk/include/linux/timerqueue.h | 2 +- trunk/include/linux/vm_event_item.h | 1 - trunk/include/linux/vmstat.h | 12 + trunk/include/mtd/Kbuild | 5 - trunk/include/net/flow.h | 1 + trunk/include/net/route.h | 3 +- trunk/include/rdma/rdma_netlink.h | 1 + trunk/include/sound/ac97_codec.h | 3 + trunk/include/sound/ad1816a.h | 9 +- trunk/include/sound/asound.h | 39 + trunk/include/sound/compress_driver.h | 1 + trunk/include/sound/compress_params.h | 1 + trunk/include/sound/da9055.h | 33 + trunk/include/sound/emu10k1.h | 4 +- trunk/include/sound/initval.h | 14 + trunk/include/sound/memalloc.h | 27 +- trunk/include/sound/pcm.h | 87 +- trunk/include/sound/soc-dai.h | 3 + trunk/include/sound/soc-dapm.h | 10 +- trunk/include/sound/soc.h | 20 +- .../sound/tegra_wm8903.h} | 7 +- trunk/include/sound/tlv.h | 8 + trunk/include/sound/version.h | 3 - trunk/include/sound/wm0010.h | 27 + trunk/include/sound/wm8960.h | 2 +- trunk/include/sound/wm8993.h | 4 + trunk/include/target/target_core_backend.h | 3 - trunk/include/target/target_core_fabric.h | 5 +- trunk/include/trace/events/btrfs.h | 14 +- trunk/include/trace/events/ext4.h | 242 +- trunk/include/trace/events/gfpflags.h | 1 - trunk/include/uapi/asm-generic/Kbuild | 35 + trunk/include/{ => uapi}/asm-generic/auxvec.h | 0 trunk/include/uapi/asm-generic/bitsperlong.h | 15 + .../{ => uapi}/asm-generic/errno-base.h | 0 trunk/include/{ => uapi}/asm-generic/errno.h | 0 trunk/include/{ => uapi}/asm-generic/fcntl.h | 0 trunk/include/uapi/asm-generic/int-l64.h | 34 + trunk/include/uapi/asm-generic/int-ll64.h | 39 + trunk/include/uapi/asm-generic/ioctl.h | 98 + trunk/include/{ => uapi}/asm-generic/ioctls.h | 0 trunk/include/{ => uapi}/asm-generic/ipcbuf.h | 0 trunk/include/uapi/asm-generic/kvm_para.h | 0 .../{ => uapi}/asm-generic/mman-common.h | 0 trunk/include/{ => uapi}/asm-generic/mman.h | 0 trunk/include/{ => uapi}/asm-generic/msgbuf.h | 0 trunk/include/uapi/asm-generic/param.h | 19 + trunk/include/{ => uapi}/asm-generic/poll.h | 0 .../{ => uapi}/asm-generic/posix_types.h | 0 trunk/include/uapi/asm-generic/resource.h | 68 + trunk/include/{ => uapi}/asm-generic/sembuf.h | 0 trunk/include/{ => uapi}/asm-generic/setup.h | 0 trunk/include/{ => uapi}/asm-generic/shmbuf.h | 0 .../include/{ => uapi}/asm-generic/shmparam.h | 0 trunk/include/uapi/asm-generic/siginfo.h | 298 + .../{ => uapi}/asm-generic/signal-defs.h | 0 trunk/include/uapi/asm-generic/signal.h | 123 + trunk/include/{ => uapi}/asm-generic/socket.h | 0 .../include/{ => uapi}/asm-generic/sockios.h | 0 trunk/include/{ => uapi}/asm-generic/stat.h | 0 trunk/include/uapi/asm-generic/statfs.h | 83 + trunk/include/{ => uapi}/asm-generic/swab.h | 0 .../include/{ => uapi}/asm-generic/termbits.h | 0 trunk/include/uapi/asm-generic/termios.h | 50 + trunk/include/{ => uapi}/asm-generic/types.h | 0 .../include/{ => uapi}/asm-generic/ucontext.h | 0 trunk/include/uapi/asm-generic/unistd.h | 902 ++ trunk/include/uapi/drm/Kbuild | 15 + trunk/include/{ => uapi}/drm/drm.h | 0 trunk/include/{ => uapi}/drm/drm_fourcc.h | 0 trunk/include/{ => uapi}/drm/drm_mode.h | 0 trunk/include/{ => uapi}/drm/drm_sarea.h | 0 trunk/include/uapi/drm/exynos_drm.h | 203 + trunk/include/{ => uapi}/drm/i810_drm.h | 0 trunk/include/uapi/drm/i915_drm.h | 947 ++ trunk/include/{ => uapi}/drm/mga_drm.h | 0 trunk/include/{ => uapi}/drm/nouveau_drm.h | 0 trunk/include/{ => uapi}/drm/r128_drm.h | 0 trunk/include/{ => uapi}/drm/radeon_drm.h | 0 trunk/include/{ => uapi}/drm/savage_drm.h | 0 trunk/include/{ => uapi}/drm/sis_drm.h | 0 trunk/include/{ => uapi}/drm/via_drm.h | 0 trunk/include/{ => uapi}/drm/vmwgfx_drm.h | 0 trunk/include/uapi/linux/caif/Kbuild | 2 + .../{ => uapi}/linux/caif/caif_socket.h | 0 trunk/include/{ => uapi}/linux/caif/if_caif.h | 0 trunk/include/uapi/linux/isdn/Kbuild | 1 + trunk/include/{ => uapi}/linux/isdn/capicmd.h | 0 trunk/include/uapi/linux/netfilter/Kbuild | 76 + .../include/uapi/linux/netfilter/ipset/Kbuild | 4 + .../uapi/linux/netfilter/ipset/ip_set.h | 231 + .../linux/netfilter/ipset/ip_set_bitmap.h | 13 + .../uapi/linux/netfilter/ipset/ip_set_hash.h | 21 + .../uapi/linux/netfilter/ipset/ip_set_list.h | 21 + .../linux/netfilter/nf_conntrack_common.h | 117 + .../uapi/linux/netfilter/nf_conntrack_ftp.h | 18 + .../linux/netfilter/nf_conntrack_sctp.h | 0 .../uapi/linux/netfilter/nf_conntrack_tcp.h | 51 + .../netfilter/nf_conntrack_tuple_common.h | 0 .../{ => uapi}/linux/netfilter/nf_nat.h | 0 .../include/uapi/linux/netfilter/nfnetlink.h | 56 + .../uapi/linux/netfilter/nfnetlink_acct.h | 27 + .../linux/netfilter/nfnetlink_compat.h | 0 .../linux/netfilter/nfnetlink_conntrack.h | 0 .../linux/netfilter/nfnetlink_cthelper.h | 0 .../linux/netfilter/nfnetlink_cttimeout.h | 0 .../linux/netfilter/nfnetlink_log.h | 0 .../linux/netfilter/nfnetlink_queue.h | 0 trunk/include/uapi/linux/netfilter/x_tables.h | 187 + .../{ => uapi}/linux/netfilter/xt_AUDIT.h | 0 .../{ => uapi}/linux/netfilter/xt_CHECKSUM.h | 0 .../{ => uapi}/linux/netfilter/xt_CLASSIFY.h | 0 .../{ => uapi}/linux/netfilter/xt_CONNMARK.h | 0 .../linux/netfilter/xt_CONNSECMARK.h | 0 .../{ => uapi}/linux/netfilter/xt_CT.h | 0 .../{ => uapi}/linux/netfilter/xt_DSCP.h | 0 .../{ => uapi}/linux/netfilter/xt_IDLETIMER.h | 0 .../{ => uapi}/linux/netfilter/xt_LED.h | 0 .../{ => uapi}/linux/netfilter/xt_LOG.h | 0 .../{ => uapi}/linux/netfilter/xt_MARK.h | 0 .../{ => uapi}/linux/netfilter/xt_NFLOG.h | 0 .../{ => uapi}/linux/netfilter/xt_NFQUEUE.h | 0 .../{ => uapi}/linux/netfilter/xt_RATEEST.h | 0 .../{ => uapi}/linux/netfilter/xt_SECMARK.h | 0 .../{ => uapi}/linux/netfilter/xt_TCPMSS.h | 0 .../linux/netfilter/xt_TCPOPTSTRIP.h | 0 .../{ => uapi}/linux/netfilter/xt_TEE.h | 0 .../{ => uapi}/linux/netfilter/xt_TPROXY.h | 0 .../{ => uapi}/linux/netfilter/xt_addrtype.h | 0 .../{ => uapi}/linux/netfilter/xt_cluster.h | 0 .../{ => uapi}/linux/netfilter/xt_comment.h | 0 .../{ => uapi}/linux/netfilter/xt_connbytes.h | 0 .../{ => uapi}/linux/netfilter/xt_connlimit.h | 0 .../{ => uapi}/linux/netfilter/xt_connmark.h | 0 .../{ => uapi}/linux/netfilter/xt_conntrack.h | 0 .../{ => uapi}/linux/netfilter/xt_cpu.h | 0 .../{ => uapi}/linux/netfilter/xt_dccp.h | 0 .../{ => uapi}/linux/netfilter/xt_devgroup.h | 0 .../{ => uapi}/linux/netfilter/xt_dscp.h | 0 .../{ => uapi}/linux/netfilter/xt_ecn.h | 0 .../{ => uapi}/linux/netfilter/xt_esp.h | 0 .../uapi/linux/netfilter/xt_hashlimit.h | 73 + .../{ => uapi}/linux/netfilter/xt_helper.h | 0 .../{ => uapi}/linux/netfilter/xt_iprange.h | 0 .../{ => uapi}/linux/netfilter/xt_ipvs.h | 0 .../{ => uapi}/linux/netfilter/xt_length.h | 0 .../{ => uapi}/linux/netfilter/xt_limit.h | 0 .../{ => uapi}/linux/netfilter/xt_mac.h | 0 .../{ => uapi}/linux/netfilter/xt_mark.h | 0 .../{ => uapi}/linux/netfilter/xt_multiport.h | 0 .../{ => uapi}/linux/netfilter/xt_nfacct.h | 0 .../{ => uapi}/linux/netfilter/xt_osf.h | 0 .../{ => uapi}/linux/netfilter/xt_owner.h | 0 .../include/uapi/linux/netfilter/xt_physdev.h | 23 + .../{ => uapi}/linux/netfilter/xt_pkttype.h | 0 .../{ => uapi}/linux/netfilter/xt_policy.h | 0 .../{ => uapi}/linux/netfilter/xt_quota.h | 0 .../{ => uapi}/linux/netfilter/xt_rateest.h | 0 .../{ => uapi}/linux/netfilter/xt_realm.h | 0 .../{ => uapi}/linux/netfilter/xt_recent.h | 0 .../{ => uapi}/linux/netfilter/xt_sctp.h | 0 .../{ => uapi}/linux/netfilter/xt_set.h | 0 .../{ => uapi}/linux/netfilter/xt_socket.h | 0 .../{ => uapi}/linux/netfilter/xt_state.h | 0 .../{ => uapi}/linux/netfilter/xt_statistic.h | 0 .../{ => uapi}/linux/netfilter/xt_string.h | 0 .../{ => uapi}/linux/netfilter/xt_tcpmss.h | 0 .../{ => uapi}/linux/netfilter/xt_tcpudp.h | 0 .../{ => uapi}/linux/netfilter/xt_time.h | 0 .../{ => uapi}/linux/netfilter/xt_u32.h | 0 trunk/include/uapi/linux/netfilter_arp/Kbuild | 2 + .../uapi/linux/netfilter_arp/arp_tables.h | 206 + .../linux/netfilter_arp/arpt_mangle.h | 0 .../uapi/linux/netfilter_bridge/Kbuild | 18 + .../uapi/linux/netfilter_bridge/ebt_802_3.h | 62 + .../linux/netfilter_bridge/ebt_among.h | 0 .../linux/netfilter_bridge/ebt_arp.h | 0 .../linux/netfilter_bridge/ebt_arpreply.h | 0 .../linux/netfilter_bridge/ebt_ip.h | 0 .../linux/netfilter_bridge/ebt_ip6.h | 0 .../linux/netfilter_bridge/ebt_limit.h | 0 .../linux/netfilter_bridge/ebt_log.h | 0 .../linux/netfilter_bridge/ebt_mark_m.h | 0 .../linux/netfilter_bridge/ebt_mark_t.h | 0 .../linux/netfilter_bridge/ebt_nat.h | 0 .../linux/netfilter_bridge/ebt_nflog.h | 0 .../linux/netfilter_bridge/ebt_pkttype.h | 0 .../linux/netfilter_bridge/ebt_redirect.h | 0 .../linux/netfilter_bridge/ebt_stp.h | 0 .../linux/netfilter_bridge/ebt_ulog.h | 0 .../linux/netfilter_bridge/ebt_vlan.h | 0 .../uapi/linux/netfilter_bridge/ebtables.h | 268 + .../include/uapi/linux/netfilter_ipv4/Kbuild | 10 + .../uapi/linux/netfilter_ipv4/ip_tables.h | 229 + .../linux/netfilter_ipv4/ipt_CLUSTERIP.h | 0 .../{ => uapi}/linux/netfilter_ipv4/ipt_ECN.h | 0 .../{ => uapi}/linux/netfilter_ipv4/ipt_LOG.h | 0 .../linux/netfilter_ipv4/ipt_REJECT.h | 0 .../{ => uapi}/linux/netfilter_ipv4/ipt_TTL.h | 0 .../linux/netfilter_ipv4/ipt_ULOG.h | 0 .../{ => uapi}/linux/netfilter_ipv4/ipt_ah.h | 0 .../{ => uapi}/linux/netfilter_ipv4/ipt_ecn.h | 0 .../{ => uapi}/linux/netfilter_ipv4/ipt_ttl.h | 0 .../include/uapi/linux/netfilter_ipv6/Kbuild | 12 + .../uapi/linux/netfilter_ipv6/ip6_tables.h | 267 + .../{ => uapi}/linux/netfilter_ipv6/ip6t_HL.h | 0 .../linux/netfilter_ipv6/ip6t_LOG.h | 0 .../linux/netfilter_ipv6/ip6t_NPT.h | 0 .../linux/netfilter_ipv6/ip6t_REJECT.h | 0 .../{ => uapi}/linux/netfilter_ipv6/ip6t_ah.h | 0 .../linux/netfilter_ipv6/ip6t_frag.h | 0 .../{ => uapi}/linux/netfilter_ipv6/ip6t_hl.h | 0 .../linux/netfilter_ipv6/ip6t_ipv6header.h | 0 .../{ => uapi}/linux/netfilter_ipv6/ip6t_mh.h | 0 .../linux/netfilter_ipv6/ip6t_opts.h | 0 .../{ => uapi}/linux/netfilter_ipv6/ip6t_rt.h | 0 trunk/include/uapi/linux/tc_act/Kbuild | 7 + .../include/{ => uapi}/linux/tc_act/tc_csum.h | 0 .../include/{ => uapi}/linux/tc_act/tc_gact.h | 0 .../include/{ => uapi}/linux/tc_act/tc_ipt.h | 0 .../{ => uapi}/linux/tc_act/tc_mirred.h | 0 .../include/{ => uapi}/linux/tc_act/tc_nat.h | 0 .../{ => uapi}/linux/tc_act/tc_pedit.h | 0 .../{ => uapi}/linux/tc_act/tc_skbedit.h | 0 trunk/include/uapi/linux/tc_ematch/Kbuild | 4 + .../{ => uapi}/linux/tc_ematch/tc_em_cmp.h | 0 .../{ => uapi}/linux/tc_ematch/tc_em_meta.h | 0 .../{ => uapi}/linux/tc_ematch/tc_em_nbyte.h | 0 .../{ => uapi}/linux/tc_ematch/tc_em_text.h | 0 trunk/include/uapi/mtd/Kbuild | 5 + trunk/include/{ => uapi}/mtd/inftl-user.h | 0 trunk/include/{ => uapi}/mtd/mtd-abi.h | 0 trunk/include/{ => uapi}/mtd/mtd-user.h | 0 trunk/include/{ => uapi}/mtd/nftl-user.h | 0 trunk/include/{ => uapi}/mtd/ubi-user.h | 0 trunk/include/video/omapdss.h | 112 +- .../video/samsung_fimd.h} | 152 +- trunk/init/Kconfig | 11 +- trunk/init/main.c | 2 - trunk/ipc/mqueue.c | 3 - trunk/kernel/audit.c | 2 + trunk/kernel/auditsc.c | 13 +- trunk/kernel/cpu.c | 4 + trunk/kernel/events/core.c | 2 +- trunk/kernel/events/uprobes.c | 8 +- trunk/kernel/fork.c | 45 +- trunk/kernel/irq/irqdomain.c | 33 +- trunk/kernel/sched/core.c | 2 +- trunk/kernel/sysctl.c | 3 +- trunk/lib/Kconfig.debug | 38 +- trunk/lib/Makefile | 7 +- trunk/lib/dma-debug.c | 5 - trunk/lib/interval_tree.c | 10 + trunk/lib/interval_tree_test_main.c | 105 + trunk/lib/kasprintf.c | 2 +- trunk/lib/prio_tree.c | 466 - trunk/lib/rbtree.c | 656 +- trunk/lib/rbtree_test.c | 234 + trunk/lib/scatterlist.c | 19 + trunk/mm/Kconfig | 3 +- trunk/mm/Makefile | 4 +- trunk/mm/backing-dev.c | 50 +- trunk/mm/bootmem.c | 10 +- trunk/mm/compaction.c | 562 +- trunk/mm/filemap.c | 6 +- trunk/mm/filemap_xip.c | 10 +- trunk/mm/fremap.c | 16 +- trunk/mm/huge_memory.c | 440 +- trunk/mm/hugetlb.c | 34 +- trunk/mm/internal.h | 52 +- trunk/mm/interval_tree.c | 112 + trunk/mm/kmemleak.c | 100 +- trunk/mm/ksm.c | 40 +- trunk/mm/madvise.c | 8 +- trunk/mm/memblock.c | 5 +- trunk/mm/memcontrol.c | 22 +- trunk/mm/memory-failure.c | 8 +- trunk/mm/memory.c | 115 +- trunk/mm/memory_hotplug.c | 77 +- trunk/mm/mempolicy.c | 148 +- trunk/mm/mlock.c | 27 +- trunk/mm/mmap.c | 207 +- trunk/mm/mmu_notifier.c | 103 +- trunk/mm/mremap.c | 73 +- trunk/mm/nobootmem.c | 5 +- trunk/mm/nommu.c | 33 +- trunk/mm/oom_kill.c | 4 +- trunk/mm/page-writeback.c | 14 +- trunk/mm/page_alloc.c | 317 +- trunk/mm/page_isolation.c | 43 +- trunk/mm/pgtable-generic.c | 50 + trunk/mm/prio_tree.c | 208 - trunk/mm/rmap.c | 159 +- trunk/mm/shmem.c | 9 +- trunk/mm/swap.c | 13 +- trunk/mm/truncate.c | 3 - trunk/mm/vmalloc.c | 5 +- trunk/mm/vmscan.c | 111 +- trunk/mm/vmstat.c | 14 +- trunk/net/8021q/vlan_core.c | 10 +- trunk/net/9p/client.c | 18 +- trunk/net/9p/trans_fd.c | 38 +- trunk/net/ceph/mon_client.c | 7 +- trunk/net/ceph/osd_client.c | 48 +- trunk/net/ceph/osdmap.c | 18 +- trunk/net/ceph/pagelist.c | 5 +- trunk/net/core/dev.c | 59 +- trunk/net/core/neighbour.c | 6 +- trunk/net/core/skbuff.c | 47 - trunk/net/ipv4/fib_frontend.c | 3 +- trunk/net/ipv4/fib_semantics.c | 2 + trunk/net/ipv4/inet_connection_sock.c | 4 +- trunk/net/ipv4/ip_forward.c | 2 +- trunk/net/ipv4/ip_output.c | 4 +- trunk/net/ipv4/route.c | 146 +- trunk/net/ipv4/xfrm4_policy.c | 1 + trunk/net/ipv6/af_inet6.c | 22 +- trunk/net/netfilter/ipvs/ip_vs_xmit.c | 6 +- trunk/net/netlink/af_netlink.c | 29 +- trunk/net/rds/send.c | 2 +- trunk/net/sunrpc/auth_gss/auth_gss.c | 58 +- trunk/net/sunrpc/clnt.c | 105 +- trunk/net/sunrpc/rpc_pipe.c | 8 +- trunk/net/sunrpc/sched.c | 2 +- trunk/net/sunrpc/xdr.c | 21 +- trunk/net/sunrpc/xprt.c | 8 +- trunk/net/sunrpc/xprtrdma/transport.c | 22 +- trunk/net/sunrpc/xprtsock.c | 40 +- trunk/scripts/Kbuild.include | 12 +- trunk/scripts/Makefile.fwinst | 4 +- trunk/scripts/Makefile.modinst | 2 +- trunk/scripts/Makefile.modpost | 2 +- trunk/scripts/coccicheck | 3 + trunk/scripts/coccinelle/api/ptr_ret.cocci | 26 + .../coccinelle/tests/odd_ptr_err.cocci | 65 + trunk/scripts/gcc-version.sh | 6 +- .../scripts/gcc-x86_32-has-stack-protector.sh | 2 +- .../scripts/gcc-x86_64-has-stack-protector.sh | 2 +- trunk/scripts/kconfig/Makefile | 12 +- trunk/scripts/kconfig/check.sh | 2 +- trunk/scripts/kconfig/conf.c | 25 +- trunk/scripts/kconfig/expr.h | 11 + trunk/scripts/kconfig/lkc_proto.h | 6 +- .../kconfig/lxdialog/check-lxdialog.sh | 2 +- trunk/scripts/kconfig/lxdialog/dialog.h | 9 +- trunk/scripts/kconfig/lxdialog/textbox.c | 171 +- trunk/scripts/kconfig/lxdialog/util.c | 7 + trunk/scripts/kconfig/mconf.c | 123 +- trunk/scripts/kconfig/menu.c | 53 +- trunk/scripts/kconfig/nconf.c | 2 +- trunk/scripts/kernel-doc | 273 +- trunk/scripts/mod/modpost.c | 3 + trunk/scripts/package/buildtar | 8 +- trunk/scripts/tags.sh | 8 +- trunk/security/apparmor/Makefile | 2 +- trunk/security/capability.c | 4 +- trunk/security/security.c | 4 +- trunk/security/selinux/hooks.c | 4 +- trunk/security/selinux/selinuxfs.c | 2 +- trunk/security/smack/smack_lsm.c | 4 +- trunk/security/tomoyo/common.h | 2 +- trunk/security/tomoyo/mount.c | 5 +- trunk/security/tomoyo/tomoyo.c | 4 +- trunk/security/tomoyo/util.c | 9 +- trunk/sound/core/compress_offload.c | 26 + trunk/sound/core/control.c | 1 + trunk/sound/core/info.c | 7 +- trunk/sound/core/info_oss.c | 3 +- trunk/sound/core/oss/mixer_oss.c | 2 + trunk/sound/core/pcm.c | 4 + trunk/sound/core/pcm_lib.c | 214 + trunk/sound/core/pcm_memory.c | 26 - trunk/sound/core/pcm_native.c | 6 +- trunk/sound/core/seq/seq_device.c | 2 + trunk/sound/core/sgbuf.c | 27 + trunk/sound/core/sound.c | 3 +- trunk/sound/drivers/aloop.c | 6 + trunk/sound/drivers/opl3/opl3_midi.c | 2 +- trunk/sound/drivers/opl4/opl4_synth.c | 9 +- trunk/sound/drivers/vx/vx_pcm.c | 2 +- trunk/sound/isa/Kconfig | 12 + trunk/sound/isa/Makefile | 2 + trunk/sound/isa/ad1816a/ad1816a.c | 64 +- trunk/sound/isa/ad1816a/ad1816a_lib.c | 38 +- trunk/sound/isa/cmi8328.c | 483 + trunk/sound/isa/gus/interwave.c | 5 +- trunk/sound/isa/opti9xx/miro.c | 15 +- trunk/sound/isa/opti9xx/opti92x-ad1848.c | 14 +- trunk/sound/isa/sb/emu8000.c | 15 +- trunk/sound/isa/sb/emu8000_callback.c | 2 +- trunk/sound/isa/wavefront/wavefront_synth.c | 2 +- trunk/sound/last.c | 1 - trunk/sound/oss/audio.c | 2 +- trunk/sound/oss/opl3.c | 2 +- trunk/sound/oss/pss.c | 2 +- trunk/sound/oss/sb_ess.c | 22 +- trunk/sound/oss/sb_mixer.c | 4 +- trunk/sound/oss/sys_timer.c | 4 +- trunk/sound/oss/uart6850.c | 2 +- trunk/sound/pci/ac97/ac97_patch.c | 24 +- trunk/sound/pci/ali5451/ali5451.c | 10 +- trunk/sound/pci/als300.c | 2 +- trunk/sound/pci/als4000.c | 4 +- trunk/sound/pci/asihpi/asihpi.c | 4 +- trunk/sound/pci/atiixp.c | 15 +- trunk/sound/pci/atiixp_modem.c | 6 +- trunk/sound/pci/au88x0/au88x0_game.c | 2 +- trunk/sound/pci/au88x0/au88x0_pcm.c | 2 +- trunk/sound/pci/azt3328.c | 6 +- trunk/sound/pci/ca0106/ca0106.h | 4 +- trunk/sound/pci/ca0106/ca0106_main.c | 30 +- trunk/sound/pci/ca0106/ca0106_mixer.c | 4 +- trunk/sound/pci/cmipci.c | 12 +- trunk/sound/pci/cs4281.c | 6 +- trunk/sound/pci/cs46xx/cs46xx.c | 2 +- trunk/sound/pci/cs46xx/cs46xx.h | 2 +- trunk/sound/pci/cs46xx/cs46xx_lib.c | 8 +- trunk/sound/pci/cs46xx/cs46xx_lib.h | 2 +- trunk/sound/pci/cs46xx/dsp_spos.c | 8 +- trunk/sound/pci/cs46xx/dsp_spos_scb_lib.c | 2 +- trunk/sound/pci/cs5530.c | 3 +- trunk/sound/pci/cs5535audio/Makefile | 2 +- trunk/sound/pci/cs5535audio/cs5535audio.c | 2 +- trunk/sound/pci/ctxfi/ctatc.c | 4 +- trunk/sound/pci/ctxfi/ctatc.h | 2 +- trunk/sound/pci/ctxfi/cthardware.h | 2 +- trunk/sound/pci/ctxfi/cthw20k1.c | 4 +- trunk/sound/pci/ctxfi/cthw20k2.c | 4 +- trunk/sound/pci/ctxfi/ctmixer.c | 4 +- trunk/sound/pci/ctxfi/ctmixer.h | 2 +- trunk/sound/pci/ctxfi/ctpcm.c | 52 +- trunk/sound/pci/ctxfi/xfi.c | 2 +- trunk/sound/pci/echoaudio/echoaudio.c | 12 +- trunk/sound/pci/echoaudio/echoaudio.h | 2 +- trunk/sound/pci/emu10k1/emu10k1.c | 4 +- trunk/sound/pci/emu10k1/emu10k1_callback.c | 2 +- trunk/sound/pci/emu10k1/emu10k1_main.c | 8 +- trunk/sound/pci/emu10k1/emu10k1x.c | 21 + trunk/sound/pci/emu10k1/emufx.c | 2 +- trunk/sound/pci/emu10k1/emupcm.c | 2 +- trunk/sound/pci/emu10k1/memory.c | 4 +- trunk/sound/pci/emu10k1/p16v.c | 2 +- trunk/sound/pci/ens1370.c | 70 +- trunk/sound/pci/es1938.c | 6 +- trunk/sound/pci/es1968.c | 12 +- trunk/sound/pci/fm801.c | 13 +- trunk/sound/pci/hda/Kconfig | 10 +- trunk/sound/pci/hda/hda_auto_parser.c | 56 +- trunk/sound/pci/hda/hda_codec.c | 278 +- trunk/sound/pci/hda/hda_codec.h | 82 +- trunk/sound/pci/hda/hda_generic.c | 8 +- trunk/sound/pci/hda/hda_hwdep.c | 43 +- trunk/sound/pci/hda/hda_intel.c | 311 +- trunk/sound/pci/hda/hda_jack.c | 37 +- trunk/sound/pci/hda/hda_jack.h | 9 + trunk/sound/pci/hda/hda_local.h | 2 +- trunk/sound/pci/hda/hda_proc.c | 9 +- trunk/sound/pci/hda/hda_trace.h | 26 + trunk/sound/pci/hda/patch_analog.c | 90 +- trunk/sound/pci/hda/patch_cirrus.c | 283 +- trunk/sound/pci/hda/patch_conexant.c | 78 +- trunk/sound/pci/hda/patch_hdmi.c | 407 +- trunk/sound/pci/hda/patch_realtek.c | 122 +- trunk/sound/pci/hda/patch_sigmatel.c | 142 +- trunk/sound/pci/hda/patch_via.c | 135 +- trunk/sound/pci/ice1712/aureon.c | 4 +- trunk/sound/pci/ice1712/ice1712.h | 2 +- trunk/sound/pci/ice1712/ice1724.c | 4 +- trunk/sound/pci/ice1712/juli.c | 4 +- trunk/sound/pci/ice1712/prodigy_hifi.c | 4 +- trunk/sound/pci/intel8x0.c | 26 +- trunk/sound/pci/intel8x0m.c | 4 +- trunk/sound/pci/korg1212/korg1212.c | 4 +- trunk/sound/pci/maestro3.c | 10 +- trunk/sound/pci/mixart/mixart_hwdep.c | 2 +- trunk/sound/pci/nm256/nm256.c | 4 +- trunk/sound/pci/oxygen/oxygen.c | 2 +- trunk/sound/pci/oxygen/oxygen.h | 2 +- trunk/sound/pci/oxygen/oxygen_lib.c | 4 +- trunk/sound/pci/oxygen/virtuoso.c | 2 +- trunk/sound/pci/pcxhr/pcxhr.c | 24 + trunk/sound/pci/pcxhr/pcxhr_hwdep.c | 6 +- trunk/sound/pci/riptide/riptide.c | 6 +- trunk/sound/pci/sis7019.c | 6 +- trunk/sound/pci/trident/trident.c | 2 +- trunk/sound/pci/trident/trident_main.c | 4 +- trunk/sound/pci/via82xx.c | 33 +- trunk/sound/pci/via82xx_modem.c | 4 +- trunk/sound/pci/vx222/vx222.c | 2 +- trunk/sound/pci/ymfpci/ymfpci.c | 2 +- trunk/sound/pci/ymfpci/ymfpci.h | 2 +- trunk/sound/pci/ymfpci/ymfpci_main.c | 26 +- trunk/sound/soc/Kconfig | 3 +- trunk/sound/soc/Makefile | 4 +- trunk/sound/soc/blackfin/bf5xx-ad1836.c | 73 +- trunk/sound/soc/{ep93xx => cirrus}/Kconfig | 0 trunk/sound/soc/{ep93xx => cirrus}/Makefile | 0 trunk/sound/soc/{ep93xx => cirrus}/edb93xx.c | 0 .../soc/{ep93xx => cirrus}/ep93xx-ac97.c | 0 .../sound/soc/{ep93xx => cirrus}/ep93xx-i2s.c | 0 .../sound/soc/{ep93xx => cirrus}/ep93xx-pcm.c | 0 .../sound/soc/{ep93xx => cirrus}/ep93xx-pcm.h | 0 trunk/sound/soc/{ep93xx => cirrus}/simone.c | 0 .../soc/{ep93xx => cirrus}/snappercl15.c | 0 trunk/sound/soc/codecs/Kconfig | 8 + trunk/sound/soc/codecs/Makefile | 4 + trunk/sound/soc/codecs/ab8500-codec.c | 13 +- trunk/sound/soc/codecs/ad1836.c | 88 +- trunk/sound/soc/codecs/ad193x.c | 50 +- trunk/sound/soc/codecs/ad1980.c | 1 - trunk/sound/soc/codecs/adau1373.c | 12 +- trunk/sound/soc/codecs/adau1701.c | 12 +- trunk/sound/soc/codecs/ak4671.c | 12 +- trunk/sound/soc/codecs/arizona.c | 110 +- trunk/sound/soc/codecs/arizona.h | 8 +- trunk/sound/soc/codecs/cs4270.c | 156 +- trunk/sound/soc/codecs/cs4271.c | 24 +- trunk/sound/soc/codecs/cs42l51.c | 19 +- trunk/sound/soc/codecs/cs42l52.c | 1 - trunk/sound/soc/codecs/da9055.c | 1510 ++ trunk/sound/soc/codecs/isabelle.c | 1 - trunk/sound/soc/codecs/lm4857.c | 12 +- trunk/sound/soc/codecs/max98088.c | 18 +- trunk/sound/soc/codecs/max98095.c | 18 +- trunk/sound/soc/codecs/max9850.c | 12 +- trunk/sound/soc/codecs/max9877.c | 12 +- trunk/sound/soc/codecs/mc13783.c | 60 +- trunk/sound/soc/codecs/sta32x.c | 151 +- trunk/sound/soc/codecs/sta529.c | 2 +- trunk/sound/soc/codecs/stac9766.c | 1 - trunk/sound/soc/codecs/tlv320aic26.c | 12 +- trunk/sound/soc/codecs/tlv320aic32x4.c | 19 +- trunk/sound/soc/codecs/tlv320aic3x.c | 49 +- trunk/sound/soc/codecs/tlv320dac33.c | 19 +- trunk/sound/soc/codecs/tpa6130a2.c | 13 +- trunk/sound/soc/codecs/twl4030.c | 157 +- trunk/sound/soc/codecs/twl6040.c | 43 +- trunk/sound/soc/codecs/wm0010.c | 940 ++ trunk/sound/soc/codecs/wm2000.c | 72 +- trunk/sound/soc/codecs/wm2200.c | 16 +- trunk/sound/soc/codecs/wm5100.c | 6 +- trunk/sound/soc/codecs/wm5102.c | 52 +- trunk/sound/soc/codecs/wm5110.c | 95 +- trunk/sound/soc/codecs/wm8510.c | 129 +- trunk/sound/soc/codecs/wm8523.c | 184 +- trunk/sound/soc/codecs/wm8580.c | 149 +- trunk/sound/soc/codecs/wm8711.c | 65 +- trunk/sound/soc/codecs/wm8728.c | 60 +- trunk/sound/soc/codecs/wm8737.c | 132 +- trunk/sound/soc/codecs/wm8741.c | 115 +- trunk/sound/soc/codecs/wm8770.c | 19 +- trunk/sound/soc/codecs/wm8776.c | 75 +- trunk/sound/soc/codecs/wm8900.c | 166 +- trunk/sound/soc/codecs/wm8903.c | 18 +- trunk/sound/soc/codecs/wm8904.c | 2 - trunk/sound/soc/codecs/wm8940.c | 18 +- trunk/sound/soc/codecs/wm8955.c | 18 +- trunk/sound/soc/codecs/wm8958-dsp2.c | 28 +- trunk/sound/soc/codecs/wm8960.c | 150 +- trunk/sound/soc/codecs/wm8961.c | 492 +- trunk/sound/soc/codecs/wm8971.c | 18 +- trunk/sound/soc/codecs/wm8974.c | 18 +- trunk/sound/soc/codecs/wm8978.c | 18 +- trunk/sound/soc/codecs/wm8983.c | 162 +- trunk/sound/soc/codecs/wm8990.c | 8 +- trunk/sound/soc/codecs/wm8991.c | 25 +- trunk/sound/soc/codecs/wm8993.c | 2 + trunk/sound/soc/codecs/wm8994.c | 132 +- trunk/sound/soc/codecs/wm8994.h | 12 +- trunk/sound/soc/codecs/wm8996.c | 2 +- trunk/sound/soc/codecs/wm9090.c | 12 +- trunk/sound/soc/codecs/wm9712.c | 12 +- trunk/sound/soc/codecs/wm9713.c | 1 - trunk/sound/soc/codecs/wm_hubs.c | 119 +- trunk/sound/soc/codecs/wm_hubs.h | 6 + trunk/sound/soc/davinci/davinci-evm.c | 19 +- trunk/sound/soc/davinci/davinci-i2s.c | 13 +- trunk/sound/soc/davinci/davinci-mcasp.c | 260 +- trunk/sound/soc/davinci/davinci-mcasp.h | 6 +- trunk/sound/soc/davinci/davinci-pcm.c | 24 +- trunk/sound/soc/davinci/davinci-pcm.h | 6 +- trunk/sound/soc/davinci/davinci-sffsdr.c | 2 +- trunk/sound/soc/davinci/davinci-vcif.c | 8 + trunk/sound/soc/fsl/Kconfig | 2 +- trunk/sound/soc/fsl/eukrea-tlv320.c | 37 +- trunk/sound/soc/fsl/fsl_dma.c | 6 - trunk/sound/soc/fsl/imx-audmux.c | 3 - trunk/sound/soc/fsl/imx-pcm-dma.c | 5 +- trunk/sound/soc/fsl/imx-ssi.c | 30 +- trunk/sound/soc/fsl/mpc5200_dma.c | 24 +- trunk/sound/soc/fsl/mpc5200_dma.h | 3 + trunk/sound/soc/fsl/mpc5200_psc_ac97.c | 10 + trunk/sound/soc/fsl/mpc5200_psc_i2s.c | 8 + trunk/sound/soc/fsl/mpc8610_hpcd.c | 32 +- trunk/sound/soc/fsl/mx27vis-aic32x4.c | 42 +- trunk/sound/soc/fsl/p1022_ds.c | 31 +- trunk/sound/soc/fsl/pcm030-audio-fabric.c | 100 +- trunk/sound/soc/mid-x86/mfld_machine.c | 9 + trunk/sound/soc/mid-x86/sst_dsp.h | 134 + trunk/sound/soc/mid-x86/sst_platform.c | 204 +- trunk/sound/soc/mid-x86/sst_platform.h | 26 +- trunk/sound/soc/mxs/mxs-saif.c | 20 +- trunk/sound/soc/omap/Kconfig | 51 +- trunk/sound/soc/omap/Makefile | 10 +- trunk/sound/soc/omap/am3517evm.c | 21 +- trunk/sound/soc/omap/igep0020.c | 120 - trunk/sound/soc/omap/mcbsp.c | 54 +- trunk/sound/soc/omap/mcbsp.h | 3 - trunk/sound/soc/omap/omap-abe-twl6040.c | 145 +- trunk/sound/soc/omap/omap-dmic.c | 9 +- trunk/sound/soc/omap/omap-hdmi.c | 17 +- trunk/sound/soc/omap/omap-mcbsp.c | 230 +- trunk/sound/soc/omap/omap-mcbsp.h | 20 - trunk/sound/soc/omap/omap-mcpdm.c | 92 +- trunk/sound/soc/omap/omap-pcm.c | 236 +- trunk/sound/soc/omap/omap-pcm.h | 4 +- trunk/sound/soc/omap/omap-twl4030.c | 188 + trunk/sound/soc/omap/omap3beagle.c | 150 - trunk/sound/soc/omap/omap3evm.c | 118 - trunk/sound/soc/omap/overo.c | 122 - trunk/sound/soc/omap/zoom2.c | 4 - trunk/sound/soc/samsung/Kconfig | 11 +- trunk/sound/soc/samsung/Makefile | 2 + trunk/sound/soc/samsung/bells.c | 346 + trunk/sound/soc/samsung/speyside.c | 42 +- trunk/sound/soc/sh/fsi.c | 28 +- trunk/sound/soc/soc-compress.c | 294 + trunk/sound/soc/soc-core.c | 100 +- trunk/sound/soc/soc-dapm.c | 67 +- trunk/sound/soc/soc-dmaengine-pcm.c | 6 +- trunk/sound/soc/soc-jack.c | 6 - trunk/sound/soc/tegra/tegra_wm8903.c | 3 +- trunk/sound/soc/ux500/ux500_msp_dai.c | 3 + trunk/sound/soc/ux500/ux500_msp_i2s.c | 2 + trunk/sound/sparc/amd7930.c | 4 +- trunk/sound/sparc/dbri.c | 2 +- trunk/sound/usb/6fire/firmware.c | 5 +- trunk/sound/usb/card.c | 2 + trunk/sound/usb/card.h | 7 +- trunk/sound/usb/endpoint.c | 39 +- trunk/sound/usb/endpoint.h | 5 +- trunk/sound/usb/helper.c | 5 + trunk/sound/usb/mixer.c | 7 + trunk/sound/usb/pcm.c | 126 +- trunk/sound/usb/quirks-table.h | 99 + trunk/sound/usb/quirks.c | 24 + trunk/sound/usb/quirks.h | 10 + trunk/sound/usb/usx2y/us122l.c | 2 +- trunk/sound/usb/usx2y/usX2Yhwdep.c | 2 +- trunk/sound/usb/usx2y/usx2yhwdeppcm.c | 2 +- trunk/tools/perf/Makefile | 2 +- trunk/tools/power/acpi/Makefile | 18 + trunk/tools/power/acpi/acpidump.8 | 59 + trunk/tools/power/acpi/acpidump.c | 560 + trunk/tools/power/cpupower/Makefile | 2 +- trunk/tools/power/x86/turbostat/turbostat.8 | 55 +- trunk/tools/power/x86/turbostat/turbostat.c | 214 +- trunk/tools/testing/ktest/ktest.pl | 15 +- 2583 files changed, 120836 insertions(+), 42763 deletions(-) delete mode 100644 trunk/Documentation/ABI/obsolete/proc-pid-oom_adj create mode 100644 trunk/Documentation/ABI/testing/sysfs-devices-firmware_node create mode 100644 trunk/Documentation/devicetree/bindings/arm/davinci/nand.txt create mode 100644 trunk/Documentation/devicetree/bindings/i2c/atmel-i2c.txt create mode 100644 trunk/Documentation/devicetree/bindings/i2c/davinci.txt create mode 100644 trunk/Documentation/devicetree/bindings/i2c/nomadik.txt create mode 100644 trunk/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt create mode 100644 trunk/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt create mode 100644 trunk/Documentation/devicetree/bindings/mmc/pxa-mmc.txt create mode 100644 trunk/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt create mode 100644 trunk/Documentation/devicetree/bindings/mmc/sdhci-dove.txt create mode 100644 trunk/Documentation/devicetree/bindings/mmc/sdhci-spear.txt create mode 100644 trunk/Documentation/devicetree/bindings/mmc/synposis-dw-mshc.txt create mode 100644 trunk/Documentation/devicetree/bindings/mtd/lpc32xx-mlc.txt create mode 100644 trunk/Documentation/devicetree/bindings/mtd/lpc32xx-slc.txt create mode 100644 trunk/Documentation/devicetree/bindings/pinctrl/lantiq,falcon-pinumx.txt create mode 100644 trunk/Documentation/devicetree/bindings/pinctrl/lantiq,xway-pinumx.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/imx-pwm.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/cs4270.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/cs4271.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/omap-abe-twl6040.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/omap-mcbsp.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/omap-twl4030.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/tlv320aic3x.txt create mode 100644 trunk/Documentation/devicetree/bindings/spi/spi-octeon.txt delete mode 100644 trunk/Documentation/memory.txt create mode 100644 trunk/Documentation/percpu-rw-semaphore.txt delete mode 100644 trunk/Documentation/prio_tree.txt create mode 100644 trunk/Documentation/sound/alsa/Channel-Mapping-API.txt delete mode 100644 trunk/arch/alpha/include/asm/exec.h create mode 100644 trunk/arch/arm/include/asm/virt.h create mode 100644 trunk/arch/arm/kernel/hyp-stub.S delete mode 100644 trunk/arch/arm/mach-at91/include/mach/at91_twi.h create mode 100644 trunk/arch/arm/mach-davinci/asp.h delete mode 100644 trunk/arch/arm/mach-tegra/include/mach/smmu.h delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/regs-fb-v4.h delete mode 100644 trunk/arch/avr32/include/asm/exec.h delete mode 100644 trunk/arch/c6x/include/asm/exec.h delete mode 100644 trunk/arch/cris/include/asm/exec.h delete mode 100644 trunk/arch/frv/include/asm/exec.h delete mode 100644 trunk/arch/frv/kernel/kernel_execve.S delete mode 100644 trunk/arch/frv/kernel/kernel_thread.S delete mode 100644 trunk/arch/h8300/include/asm/exec.h delete mode 100644 trunk/arch/ia64/include/asm/exec.h delete mode 100644 trunk/arch/m32r/include/asm/exec.h delete mode 100644 trunk/arch/m68k/include/asm/exec.h delete mode 100644 trunk/arch/microblaze/include/asm/exec.h create mode 100644 trunk/arch/mips/bcm63xx/dev-usb-usbd.c rename trunk/arch/mips/configs/{cavium-octeon_defconfig => cavium_octeon_defconfig} (100%) delete mode 100644 trunk/arch/mips/configs/mipssim_defconfig rename trunk/arch/mips/configs/{pnx8335-stb225_defconfig => pnx8335_stb225_defconfig} (100%) rename trunk/arch/mips/configs/{pnx8550-jbs_defconfig => pnx8550_jbs_defconfig} (100%) rename trunk/arch/mips/configs/{pnx8550-stb810_defconfig => pnx8550_stb810_defconfig} (100%) rename trunk/arch/mips/configs/{sb1250-swarm_defconfig => sb1250_swarm_defconfig} (100%) create mode 100644 trunk/arch/mips/configs/sead3_defconfig create mode 100644 trunk/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_usb_usbd.h create mode 100644 trunk/arch/mips/include/asm/mach-bcm63xx/bcm63xx_iudma.h rename trunk/arch/mips/include/asm/{mach-mipssim => mach-sead3}/cpu-feature-overrides.h (83%) create mode 100644 trunk/arch/mips/include/asm/mach-sead3/irq.h create mode 100644 trunk/arch/mips/include/asm/mach-sead3/kernel-entry-init.h rename trunk/arch/mips/include/asm/{mach-mipssim => mach-sead3}/war.h (72%) create mode 100644 trunk/arch/mips/include/asm/mips-boards/sead3int.h delete mode 100644 trunk/arch/mips/include/asm/mips-boards/simint.h create mode 100644 trunk/arch/mips/include/asm/octeon/cvmx-ciu2-defs.h create mode 100644 trunk/arch/mips/include/asm/octeon/cvmx-mpi-defs.h delete mode 100644 trunk/arch/mips/jz4740/pwm.c delete mode 100644 trunk/arch/mips/jz4740/timer.h delete mode 100644 trunk/arch/mips/lantiq/xway/gpio.c create mode 100644 trunk/arch/mips/lantiq/xway/gptu.c delete mode 100644 trunk/arch/mips/mipssim/Makefile delete mode 100644 trunk/arch/mips/mipssim/Platform delete mode 100644 trunk/arch/mips/mipssim/sim_console.c delete mode 100644 trunk/arch/mips/mipssim/sim_int.c delete mode 100644 trunk/arch/mips/mipssim/sim_mem.c delete mode 100644 trunk/arch/mips/mipssim/sim_platform.c delete mode 100644 trunk/arch/mips/mipssim/sim_setup.c delete mode 100644 trunk/arch/mips/mipssim/sim_smtc.c delete mode 100644 trunk/arch/mips/mipssim/sim_time.c create mode 100644 trunk/arch/mips/mti-sead3/Makefile create mode 100644 trunk/arch/mips/mti-sead3/Platform create mode 100644 trunk/arch/mips/mti-sead3/leds-sead3.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-cmdline.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-console.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-display.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-ehci.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-i2c-dev.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-i2c-drv.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-i2c.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-init.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-int.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-lcd.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-leds.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-memory.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-mtd.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-net.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-pic32-bus.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-pic32-i2c-drv.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-platform.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-reset.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-serial.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-setup.c create mode 100644 trunk/arch/mips/mti-sead3/sead3-time.c create mode 100644 trunk/arch/mips/netlogic/dts/Makefile create mode 100644 trunk/arch/mips/netlogic/dts/xlp_evp.dts delete mode 100644 trunk/arch/mips/netlogic/xlp/of.c delete mode 100644 trunk/arch/mips/netlogic/xlp/platform.c delete mode 100644 trunk/arch/mn10300/include/asm/exec.h delete mode 100644 trunk/arch/mn10300/kernel/kernel_execve.S delete mode 100644 trunk/arch/mn10300/kernel/kthread.S delete mode 100644 trunk/arch/parisc/include/asm/exec.h rename trunk/arch/s390/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/byteorder.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/chpid.h rename trunk/arch/s390/include/{ => uapi}/asm/chsc.h (92%) create mode 100644 trunk/arch/s390/include/uapi/asm/cmb.h rename trunk/arch/s390/include/{ => uapi}/asm/dasd.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/debug.h rename trunk/arch/s390/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/kvm.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/kvm_para.h rename trunk/arch/s390/include/{ => uapi}/asm/kvm_virtio.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/mman.h rename trunk/arch/s390/include/{ => uapi}/asm/monwriter.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/ptrace.h rename trunk/arch/s390/include/{ => uapi}/asm/qeth.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/resource.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/schid.h rename trunk/arch/s390/include/{ => uapi}/asm/sembuf.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/setup.h rename trunk/arch/s390/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/signal.h rename trunk/arch/s390/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/tape390.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/termbits.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/termios.h create mode 100644 trunk/arch/s390/include/uapi/asm/types.h rename trunk/arch/s390/include/{ => uapi}/asm/ucontext.h (100%) create mode 100644 trunk/arch/s390/include/uapi/asm/unistd.h rename trunk/arch/s390/include/{ => uapi}/asm/vtoc.h (100%) rename trunk/arch/s390/include/{ => uapi}/asm/zcrypt.h (100%) create mode 100644 trunk/arch/s390/mm/dump_pagetables.c delete mode 100644 trunk/arch/sh/include/asm/exec.h delete mode 100644 trunk/arch/sparc/include/asm/exec.h rename trunk/arch/sparc/include/{ => uapi}/asm/apc.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/asi.h (95%) rename trunk/arch/sparc/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/display7seg.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/envctrl.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/errno.h (100%) create mode 100644 trunk/arch/sparc/include/uapi/asm/fbio.h rename trunk/arch/sparc/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/ioctl.h (100%) create mode 100644 trunk/arch/sparc/include/uapi/asm/ioctls.h rename trunk/arch/sparc/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/jsflash.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/kvm_para.h (100%) create mode 100644 trunk/arch/sparc/include/uapi/asm/mman.h rename trunk/arch/sparc/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/openpromio.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/perfctr.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/sparc/include/uapi/asm/psr.h rename trunk/arch/sparc/include/{ => uapi}/asm/psrcompat.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/pstate.h (100%) create mode 100644 trunk/arch/sparc/include/uapi/asm/ptrace.h rename trunk/arch/sparc/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/sembuf.h (100%) create mode 100644 trunk/arch/sparc/include/uapi/asm/setup.h rename trunk/arch/sparc/include/{ => uapi}/asm/shmbuf.h (100%) create mode 100644 trunk/arch/sparc/include/uapi/asm/sigcontext.h create mode 100644 trunk/arch/sparc/include/uapi/asm/siginfo.h create mode 100644 trunk/arch/sparc/include/uapi/asm/signal.h rename trunk/arch/sparc/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/swab.h (100%) create mode 100644 trunk/arch/sparc/include/uapi/asm/termbits.h create mode 100644 trunk/arch/sparc/include/uapi/asm/termios.h create mode 100644 trunk/arch/sparc/include/uapi/asm/traps.h rename trunk/arch/sparc/include/{ => uapi}/asm/types.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/uctx.h (100%) create mode 100644 trunk/arch/sparc/include/uapi/asm/unistd.h rename trunk/arch/sparc/include/{ => uapi}/asm/utrap.h (100%) rename trunk/arch/sparc/include/{ => uapi}/asm/watchdog.h (100%) create mode 100644 trunk/arch/sparc/lib/NG4clear_page.S create mode 100644 trunk/arch/sparc/lib/NG4memset.S delete mode 100644 trunk/arch/tile/include/asm/exec.h rename trunk/arch/um/include/{shared => asm}/sysrq.h (100%) delete mode 100644 trunk/arch/um/kernel/internal.h delete mode 100644 trunk/arch/unicore32/include/asm/exec.h delete mode 100644 trunk/arch/unicore32/kernel/pwm.c delete mode 100644 trunk/arch/x86/kernel/sys_i386_32.c delete mode 100644 trunk/arch/x86/um/asm/ptrace_32.h delete mode 100644 trunk/arch/x86/um/asm/ptrace_64.h delete mode 100644 trunk/arch/xtensa/boot/ramdisk/Makefile delete mode 100644 trunk/arch/xtensa/include/asm/exec.h delete mode 100644 trunk/arch/xtensa/kernel/io.c create mode 100644 trunk/arch/xtensa/platforms/iss/include/platform/serial.h delete mode 100644 trunk/arch/xtensa/platforms/iss/io.c create mode 100644 trunk/drivers/acpi/acpica/utxfinit.c create mode 100644 trunk/drivers/dma/edma.c create mode 100644 trunk/drivers/dma/mmp_pdma.c create mode 100644 trunk/drivers/i2c/busses/i2c-rcar.c delete mode 100644 trunk/drivers/leds/leds-lm3556.c create mode 100644 trunk/drivers/leds/leds-lm355x.c create mode 100644 trunk/drivers/leds/leds-lm3642.c create mode 100644 trunk/drivers/mmc/host/dw_mmc-exynos.c create mode 100644 trunk/drivers/mmc/host/dw_mmc-pltfm.h create mode 100644 trunk/drivers/mtd/bcm47xxpart.c create mode 100644 trunk/drivers/mtd/devices/bcm47xxsflash.c delete mode 100644 trunk/drivers/mtd/maps/wr_sbc82xx_flash.c delete mode 100644 trunk/drivers/mtd/nand/bcm_umi_bch.c delete mode 100644 trunk/drivers/mtd/nand/bcm_umi_nand.c create mode 100644 trunk/drivers/mtd/nand/lpc32xx_mlc.c create mode 100644 trunk/drivers/mtd/nand/lpc32xx_slc.c delete mode 100644 trunk/drivers/mtd/nand/nand_bcm_umi.c delete mode 100644 trunk/drivers/mtd/nand/nand_bcm_umi.h create mode 100644 trunk/drivers/mtd/nand/xway_nand.c create mode 100644 trunk/drivers/mtd/tests/mtd_nandbiterrs.c create mode 100644 trunk/drivers/mtd/ubi/fastmap.c create mode 100644 trunk/drivers/pinctrl/pinctrl-falcon.c create mode 100644 trunk/drivers/pinctrl/pinctrl-lantiq.c create mode 100644 trunk/drivers/pinctrl/pinctrl-lantiq.h create mode 100644 trunk/drivers/pinctrl/pinctrl-xway.c rename trunk/drivers/{misc/ab8500-pwm.c => pwm/pwm-ab8500.c} (52%) create mode 100644 trunk/drivers/pwm/pwm-jz4740.c create mode 100644 trunk/drivers/pwm/pwm-puv3.c create mode 100644 trunk/drivers/spi/spi-octeon.c create mode 100644 trunk/drivers/video/omap2/dss/manager-sysfs.c create mode 100644 trunk/drivers/video/omap2/dss/output.c create mode 100644 trunk/drivers/video/omap2/dss/overlay-sysfs.c create mode 100644 trunk/drivers/video/omap2/dss/venc_panel.c delete mode 100644 trunk/drivers/video/pnx4008/Makefile delete mode 100644 trunk/drivers/video/pnx4008/dum.h delete mode 100644 trunk/drivers/video/pnx4008/fbcommon.h delete mode 100644 trunk/drivers/video/pnx4008/pnxrgbfb.c delete mode 100644 trunk/drivers/video/pnx4008/sdum.c delete mode 100644 trunk/drivers/video/pnx4008/sdum.h create mode 100644 trunk/include/acpi/acbuffer.h create mode 100644 trunk/include/asm-generic/clkdev.h create mode 100644 trunk/include/linux/edma.h create mode 100644 trunk/include/linux/i2c/i2c-rcar.h create mode 100644 trunk/include/linux/interval_tree.h create mode 100644 trunk/include/linux/interval_tree_generic.h create mode 100644 trunk/include/linux/mtd/lpc32xx_mlc.h create mode 100644 trunk/include/linux/mtd/lpc32xx_slc.h create mode 100644 trunk/include/linux/percpu-rwsem.h create mode 100644 trunk/include/linux/platform_data/asoc-mx27vis.h rename trunk/{arch/arm/mach-davinci/include/mach/asp.h => include/linux/platform_data/davinci_asp.h} (56%) delete mode 100644 trunk/include/linux/platform_data/leds-lm3556.h create mode 100644 trunk/include/linux/platform_data/leds-lm355x.h create mode 100644 trunk/include/linux/platform_data/leds-lm3642.h create mode 100644 trunk/include/linux/platform_data/leds-pca9633.h create mode 100644 trunk/include/linux/platform_data/mmp_dma.h create mode 100644 trunk/include/linux/platform_data/omap-twl4030.h delete mode 100644 trunk/include/linux/prio_tree.h create mode 100644 trunk/include/linux/rbtree_augmented.h create mode 100644 trunk/include/sound/da9055.h rename trunk/{arch/arm/mach-tegra/include/mach/tegra_wm8903_pdata.h => include/sound/tegra_wm8903.h} (89%) delete mode 100644 trunk/include/sound/version.h create mode 100644 trunk/include/sound/wm0010.h rename trunk/include/{ => uapi}/asm-generic/auxvec.h (100%) create mode 100644 trunk/include/uapi/asm-generic/bitsperlong.h rename trunk/include/{ => uapi}/asm-generic/errno-base.h (100%) rename trunk/include/{ => uapi}/asm-generic/errno.h (100%) rename trunk/include/{ => uapi}/asm-generic/fcntl.h (100%) create mode 100644 trunk/include/uapi/asm-generic/int-l64.h create mode 100644 trunk/include/uapi/asm-generic/int-ll64.h create mode 100644 trunk/include/uapi/asm-generic/ioctl.h rename trunk/include/{ => uapi}/asm-generic/ioctls.h (100%) rename trunk/include/{ => uapi}/asm-generic/ipcbuf.h (100%) create mode 100644 trunk/include/uapi/asm-generic/kvm_para.h rename trunk/include/{ => uapi}/asm-generic/mman-common.h (100%) rename trunk/include/{ => uapi}/asm-generic/mman.h (100%) rename trunk/include/{ => uapi}/asm-generic/msgbuf.h (100%) create mode 100644 trunk/include/uapi/asm-generic/param.h rename trunk/include/{ => uapi}/asm-generic/poll.h (100%) rename trunk/include/{ => uapi}/asm-generic/posix_types.h (100%) create mode 100644 trunk/include/uapi/asm-generic/resource.h rename trunk/include/{ => uapi}/asm-generic/sembuf.h (100%) rename trunk/include/{ => uapi}/asm-generic/setup.h (100%) rename trunk/include/{ => uapi}/asm-generic/shmbuf.h (100%) rename trunk/include/{ => uapi}/asm-generic/shmparam.h (100%) create mode 100644 trunk/include/uapi/asm-generic/siginfo.h rename trunk/include/{ => uapi}/asm-generic/signal-defs.h (100%) create mode 100644 trunk/include/uapi/asm-generic/signal.h rename trunk/include/{ => uapi}/asm-generic/socket.h (100%) rename trunk/include/{ => uapi}/asm-generic/sockios.h (100%) rename trunk/include/{ => uapi}/asm-generic/stat.h (100%) create mode 100644 trunk/include/uapi/asm-generic/statfs.h rename trunk/include/{ => uapi}/asm-generic/swab.h (100%) rename trunk/include/{ => uapi}/asm-generic/termbits.h (100%) create mode 100644 trunk/include/uapi/asm-generic/termios.h rename trunk/include/{ => uapi}/asm-generic/types.h (100%) rename trunk/include/{ => uapi}/asm-generic/ucontext.h (100%) create mode 100644 trunk/include/uapi/asm-generic/unistd.h rename trunk/include/{ => uapi}/drm/drm.h (100%) rename trunk/include/{ => uapi}/drm/drm_fourcc.h (100%) rename trunk/include/{ => uapi}/drm/drm_mode.h (100%) rename trunk/include/{ => uapi}/drm/drm_sarea.h (100%) create mode 100644 trunk/include/uapi/drm/exynos_drm.h rename trunk/include/{ => uapi}/drm/i810_drm.h (100%) create mode 100644 trunk/include/uapi/drm/i915_drm.h rename trunk/include/{ => uapi}/drm/mga_drm.h (100%) rename trunk/include/{ => uapi}/drm/nouveau_drm.h (100%) rename trunk/include/{ => uapi}/drm/r128_drm.h (100%) rename trunk/include/{ => uapi}/drm/radeon_drm.h (100%) rename trunk/include/{ => uapi}/drm/savage_drm.h (100%) rename trunk/include/{ => uapi}/drm/sis_drm.h (100%) rename trunk/include/{ => uapi}/drm/via_drm.h (100%) rename trunk/include/{ => uapi}/drm/vmwgfx_drm.h (100%) rename trunk/include/{ => uapi}/linux/caif/caif_socket.h (100%) rename trunk/include/{ => uapi}/linux/caif/if_caif.h (100%) rename trunk/include/{ => uapi}/linux/isdn/capicmd.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter/ipset/ip_set.h create mode 100644 trunk/include/uapi/linux/netfilter/ipset/ip_set_bitmap.h create mode 100644 trunk/include/uapi/linux/netfilter/ipset/ip_set_hash.h create mode 100644 trunk/include/uapi/linux/netfilter/ipset/ip_set_list.h create mode 100644 trunk/include/uapi/linux/netfilter/nf_conntrack_common.h create mode 100644 trunk/include/uapi/linux/netfilter/nf_conntrack_ftp.h rename trunk/include/{ => uapi}/linux/netfilter/nf_conntrack_sctp.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter/nf_conntrack_tcp.h rename trunk/include/{ => uapi}/linux/netfilter/nf_conntrack_tuple_common.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/nf_nat.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter/nfnetlink.h create mode 100644 trunk/include/uapi/linux/netfilter/nfnetlink_acct.h rename trunk/include/{ => uapi}/linux/netfilter/nfnetlink_compat.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/nfnetlink_conntrack.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/nfnetlink_cthelper.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/nfnetlink_cttimeout.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/nfnetlink_log.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/nfnetlink_queue.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter/x_tables.h rename trunk/include/{ => uapi}/linux/netfilter/xt_AUDIT.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_CHECKSUM.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_CLASSIFY.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_CONNMARK.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_CONNSECMARK.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_CT.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_DSCP.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_IDLETIMER.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_LED.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_LOG.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_MARK.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_NFLOG.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_NFQUEUE.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_RATEEST.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_SECMARK.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_TCPMSS.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_TCPOPTSTRIP.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_TEE.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_TPROXY.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_addrtype.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_cluster.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_comment.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_connbytes.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_connlimit.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_connmark.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_conntrack.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_cpu.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_dccp.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_devgroup.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_dscp.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_ecn.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_esp.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter/xt_hashlimit.h rename trunk/include/{ => uapi}/linux/netfilter/xt_helper.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_iprange.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_ipvs.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_length.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_limit.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_mac.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_mark.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_multiport.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_nfacct.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_osf.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_owner.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter/xt_physdev.h rename trunk/include/{ => uapi}/linux/netfilter/xt_pkttype.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_policy.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_quota.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_rateest.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_realm.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_recent.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_sctp.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_set.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_socket.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_state.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_statistic.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_string.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_tcpmss.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_tcpudp.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_time.h (100%) rename trunk/include/{ => uapi}/linux/netfilter/xt_u32.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter_arp/arp_tables.h rename trunk/include/{ => uapi}/linux/netfilter_arp/arpt_mangle.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter_bridge/ebt_802_3.h rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_among.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_arp.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_arpreply.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_ip.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_ip6.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_limit.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_log.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_mark_m.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_mark_t.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_nat.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_nflog.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_pkttype.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_redirect.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_stp.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_ulog.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_bridge/ebt_vlan.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter_bridge/ebtables.h create mode 100644 trunk/include/uapi/linux/netfilter_ipv4/ip_tables.h rename trunk/include/{ => uapi}/linux/netfilter_ipv4/ipt_CLUSTERIP.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv4/ipt_ECN.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv4/ipt_LOG.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv4/ipt_REJECT.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv4/ipt_TTL.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv4/ipt_ULOG.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv4/ipt_ah.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv4/ipt_ecn.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv4/ipt_ttl.h (100%) create mode 100644 trunk/include/uapi/linux/netfilter_ipv6/ip6_tables.h rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_HL.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_LOG.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_NPT.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_REJECT.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_ah.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_frag.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_hl.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_ipv6header.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_mh.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_opts.h (100%) rename trunk/include/{ => uapi}/linux/netfilter_ipv6/ip6t_rt.h (100%) rename trunk/include/{ => uapi}/linux/tc_act/tc_csum.h (100%) rename trunk/include/{ => uapi}/linux/tc_act/tc_gact.h (100%) rename trunk/include/{ => uapi}/linux/tc_act/tc_ipt.h (100%) rename trunk/include/{ => uapi}/linux/tc_act/tc_mirred.h (100%) rename trunk/include/{ => uapi}/linux/tc_act/tc_nat.h (100%) rename trunk/include/{ => uapi}/linux/tc_act/tc_pedit.h (100%) rename trunk/include/{ => uapi}/linux/tc_act/tc_skbedit.h (100%) rename trunk/include/{ => uapi}/linux/tc_ematch/tc_em_cmp.h (100%) rename trunk/include/{ => uapi}/linux/tc_ematch/tc_em_meta.h (100%) rename trunk/include/{ => uapi}/linux/tc_ematch/tc_em_nbyte.h (100%) rename trunk/include/{ => uapi}/linux/tc_ematch/tc_em_text.h (100%) rename trunk/include/{ => uapi}/mtd/inftl-user.h (100%) rename trunk/include/{ => uapi}/mtd/mtd-abi.h (100%) rename trunk/include/{ => uapi}/mtd/mtd-user.h (100%) rename trunk/include/{ => uapi}/mtd/nftl-user.h (100%) rename trunk/include/{ => uapi}/mtd/ubi-user.h (100%) rename trunk/{arch/arm/plat-samsung/include/plat/regs-fb.h => include/video/samsung_fimd.h} (73%) create mode 100644 trunk/lib/interval_tree.c create mode 100644 trunk/lib/interval_tree_test_main.c delete mode 100644 trunk/lib/prio_tree.c create mode 100644 trunk/lib/rbtree_test.c create mode 100644 trunk/mm/interval_tree.c delete mode 100644 trunk/mm/prio_tree.c create mode 100644 trunk/scripts/coccinelle/tests/odd_ptr_err.cocci create mode 100644 trunk/sound/isa/cmi8328.c rename trunk/sound/soc/{ep93xx => cirrus}/Kconfig (100%) rename trunk/sound/soc/{ep93xx => cirrus}/Makefile (100%) rename trunk/sound/soc/{ep93xx => cirrus}/edb93xx.c (100%) rename trunk/sound/soc/{ep93xx => cirrus}/ep93xx-ac97.c (100%) rename trunk/sound/soc/{ep93xx => cirrus}/ep93xx-i2s.c (100%) rename trunk/sound/soc/{ep93xx => cirrus}/ep93xx-pcm.c (100%) rename trunk/sound/soc/{ep93xx => cirrus}/ep93xx-pcm.h (100%) rename trunk/sound/soc/{ep93xx => cirrus}/simone.c (100%) rename trunk/sound/soc/{ep93xx => cirrus}/snappercl15.c (100%) create mode 100644 trunk/sound/soc/codecs/da9055.c create mode 100644 trunk/sound/soc/codecs/wm0010.c create mode 100644 trunk/sound/soc/mid-x86/sst_dsp.h delete mode 100644 trunk/sound/soc/omap/igep0020.c create mode 100644 trunk/sound/soc/omap/omap-twl4030.c delete mode 100644 trunk/sound/soc/omap/omap3beagle.c delete mode 100644 trunk/sound/soc/omap/omap3evm.c delete mode 100644 trunk/sound/soc/omap/overo.c create mode 100644 trunk/sound/soc/samsung/bells.c create mode 100644 trunk/sound/soc/soc-compress.c create mode 100644 trunk/tools/power/acpi/Makefile create mode 100644 trunk/tools/power/acpi/acpidump.8 create mode 100644 trunk/tools/power/acpi/acpidump.c diff --git a/[refs] b/[refs] index fa2689611727..da5e3715e9b3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bf3b202b41999f88f091632f13842b7234bd58b7 +refs/heads/master: 4f1cd91497774488ed16119ec3f54b3daf1561de diff --git a/trunk/Documentation/00-INDEX b/trunk/Documentation/00-INDEX index 49c051380daf..f54273e2ac97 100644 --- a/trunk/Documentation/00-INDEX +++ b/trunk/Documentation/00-INDEX @@ -270,8 +270,6 @@ preempt-locking.txt - info on locking under a preemptive kernel. printk-formats.txt - how to get printk format specifiers right -prio_tree.txt - - info on radix-priority-search-tree use for indexing vmas. ramoops.txt - documentation of the ramoops oops/panic logging module. rbtree.txt diff --git a/trunk/Documentation/ABI/obsolete/proc-pid-oom_adj b/trunk/Documentation/ABI/obsolete/proc-pid-oom_adj deleted file mode 100644 index 9a3cb88ade47..000000000000 --- a/trunk/Documentation/ABI/obsolete/proc-pid-oom_adj +++ /dev/null @@ -1,22 +0,0 @@ -What: /proc//oom_adj -When: August 2012 -Why: /proc//oom_adj allows userspace to influence the oom killer's - badness heuristic used to determine which task to kill when the kernel - is out of memory. - - The badness heuristic has since been rewritten since the introduction of - this tunable such that its meaning is deprecated. The value was - implemented as a bitshift on a score generated by the badness() - function that did not have any precise units of measure. With the - rewrite, the score is given as a proportion of available memory to the - task allocating pages, so using a bitshift which grows the score - exponentially is, thus, impossible to tune with fine granularity. - - A much more powerful interface, /proc//oom_score_adj, was - introduced with the oom killer rewrite that allows users to increase or - decrease the badness score linearly. This interface will replace - /proc//oom_adj. - - A warning will be emitted to the kernel log if an application uses this - deprecated interface. After it is printed once, future warnings will be - suppressed until the kernel is rebooted. diff --git a/trunk/Documentation/ABI/testing/sysfs-block b/trunk/Documentation/ABI/testing/sysfs-block index c1eb41cb9876..279da08f7541 100644 --- a/trunk/Documentation/ABI/testing/sysfs-block +++ b/trunk/Documentation/ABI/testing/sysfs-block @@ -206,3 +206,17 @@ Description: when a discarded area is read the discard_zeroes_data parameter will be set to one. Otherwise it will be 0 and the result of reading a discarded area is undefined. + +What: /sys/block//queue/write_same_max_bytes +Date: January 2012 +Contact: Martin K. Petersen +Description: + Some devices support a write same operation in which a + single data block can be written to a range of several + contiguous blocks on storage. This can be used to wipe + areas on disk or to initialize drives in a RAID + configuration. write_same_max_bytes indicates how many + bytes can be written in a single write same command. If + write_same_max_bytes is 0, write same is not supported + by the device. + diff --git a/trunk/Documentation/ABI/testing/sysfs-bus-rbd b/trunk/Documentation/ABI/testing/sysfs-bus-rbd index 3c17b62899f6..1cf2adf46b11 100644 --- a/trunk/Documentation/ABI/testing/sysfs-bus-rbd +++ b/trunk/Documentation/ABI/testing/sysfs-bus-rbd @@ -25,6 +25,10 @@ client_id The ceph unique client id that was assigned for this specific session. +features + + A hexadecimal encoding of the feature bits for this image. + major The block device major number. @@ -33,6 +37,11 @@ name The name of the rbd image. +image_id + + The unique id for the rbd image. (For rbd image format 1 + this is empty.) + pool The name of the storage pool where this rbd image resides. @@ -57,12 +66,6 @@ current_snap The current snapshot for which the device is mapped. -create_snap - - Create a snapshot: - - $ echo > /sys/bus/rbd/devices//snap_create - snap_* A directory per each snapshot @@ -79,4 +82,7 @@ snap_size The size of the image when this snapshot was taken. +snap_features + + A hexadecimal encoding of the feature bits for this snapshot. diff --git a/trunk/Documentation/ABI/testing/sysfs-devices-firmware_node b/trunk/Documentation/ABI/testing/sysfs-devices-firmware_node new file mode 100644 index 000000000000..46badc9ea284 --- /dev/null +++ b/trunk/Documentation/ABI/testing/sysfs-devices-firmware_node @@ -0,0 +1,17 @@ +What: /sys/devices/.../firmware_node/ +Date: September 2012 +Contact: <> +Description: + The /sys/devices/.../firmware_node directory contains attributes + allowing the user space to check and modify some firmware + related properties of given device. + +What: /sys/devices/.../firmware_node/description +Date: September 2012 +Contact: Lance Ortiz +Description: + The /sys/devices/.../firmware/description attribute contains a string + that describes the device as provided by the _STR method in the ACPI + namespace. This attribute is read-only. If the device does not have + an _STR method associated with it in the ACPI namespace, this + attribute is not present. diff --git a/trunk/Documentation/ABI/testing/sysfs-fs-ext4 b/trunk/Documentation/ABI/testing/sysfs-fs-ext4 index f22ac0872ae8..c631253cf85c 100644 --- a/trunk/Documentation/ABI/testing/sysfs-fs-ext4 +++ b/trunk/Documentation/ABI/testing/sysfs-fs-ext4 @@ -96,3 +96,16 @@ Contact: "Theodore Ts'o" Description: The maximum number of megabytes the writeback code will try to write out before move on to another inode. + +What: /sys/fs/ext4//extent_max_zeroout_kb +Date: August 2012 +Contact: "Theodore Ts'o" +Description: + The maximum number of kilobytes which will be zeroed + out in preference to creating a new uninitialized + extent when manipulating an inode's extent tree. Note + that using a larger value will increase the + variability of time necessary to complete a random + write operation (since a 4k random write might turn + into a much larger write due to the zeroout + operation). diff --git a/trunk/Documentation/DocBook/mtdnand.tmpl b/trunk/Documentation/DocBook/mtdnand.tmpl index e0aedb7a7827..fe122d6e686f 100644 --- a/trunk/Documentation/DocBook/mtdnand.tmpl +++ b/trunk/Documentation/DocBook/mtdnand.tmpl @@ -1216,8 +1216,6 @@ in this page #define NAND_BBT_LASTBLOCK 0x00000010 /* The bbt is at the given page, else we must scan for the bbt */ #define NAND_BBT_ABSPAGE 0x00000020 -/* The bbt is at the given page, else we must scan for the bbt */ -#define NAND_BBT_SEARCH 0x00000040 /* bbt is stored per chip on multichip devices */ #define NAND_BBT_PERCHIP 0x00000080 /* bbt has a version counter at offset veroffs */ diff --git a/trunk/Documentation/arm/Booting b/trunk/Documentation/arm/Booting index a341d87d276e..0c1f475fdf36 100644 --- a/trunk/Documentation/arm/Booting +++ b/trunk/Documentation/arm/Booting @@ -154,13 +154,33 @@ In either case, the following conditions must be met: - CPU mode All forms of interrupts must be disabled (IRQs and FIQs) - The CPU must be in SVC mode. (A special exception exists for Angel) + + For CPUs which do not include the ARM virtualization extensions, the + CPU must be in SVC mode. (A special exception exists for Angel) + + CPUs which include support for the virtualization extensions can be + entered in HYP mode in order to enable the kernel to make full use of + these extensions. This is the recommended boot method for such CPUs, + unless the virtualisations are already in use by a pre-installed + hypervisor. + + If the kernel is not entered in HYP mode for any reason, it must be + entered in SVC mode. - Caches, MMUs The MMU must be off. Instruction cache may be on or off. Data cache must be off. + If the kernel is entered in HYP mode, the above requirements apply to + the HYP mode configuration in addition to the ordinary PL1 (privileged + kernel modes) configuration. In addition, all traps into the + hypervisor must be disabled, and PL1 access must be granted for all + peripherals and CPU resources for which this is architecturally + possible. Except for entering in HYP mode, the system configuration + should be such that a kernel which does not include support for the + virtualization extensions can boot correctly without extra help. + - The boot loader is expected to call the kernel image by jumping directly to the first instruction of the kernel image. diff --git a/trunk/Documentation/block/biodoc.txt b/trunk/Documentation/block/biodoc.txt index e418dc0a7086..8df5e8e6dceb 100644 --- a/trunk/Documentation/block/biodoc.txt +++ b/trunk/Documentation/block/biodoc.txt @@ -465,7 +465,6 @@ struct bio { bio_end_io_t *bi_end_io; /* bi_end_io (bio) */ atomic_t bi_cnt; /* pin count: free when it hits zero */ void *bi_private; - bio_destructor_t *bi_destructor; /* bi_destructor (bio) */ }; With this multipage bio design: @@ -647,10 +646,6 @@ for a non-clone bio. There are the 6 pools setup for different size biovecs, so bio_alloc(gfp_mask, nr_iovecs) will allocate a vec_list of the given size from these slabs. -The bi_destructor() routine takes into account the possibility of the bio -having originated from a different source (see later discussions on -n/w to block transfers and kvec_cb) - The bio_get() routine may be used to hold an extra reference on a bio prior to i/o submission, if the bio fields are likely to be accessed after the i/o is issued (since the bio may otherwise get freed in case i/o completion diff --git a/trunk/Documentation/cgroups/memory.txt b/trunk/Documentation/cgroups/memory.txt index 4372e6b8a353..c07f7b4fb88d 100644 --- a/trunk/Documentation/cgroups/memory.txt +++ b/trunk/Documentation/cgroups/memory.txt @@ -18,16 +18,16 @@ from the rest of the system. The article on LWN [12] mentions some probable uses of the memory controller. The memory controller can be used to a. Isolate an application or a group of applications - Memory hungry applications can be isolated and limited to a smaller + Memory-hungry applications can be isolated and limited to a smaller amount of memory. -b. Create a cgroup with limited amount of memory, this can be used +b. Create a cgroup with a limited amount of memory; this can be used as a good alternative to booting with mem=XXXX. c. Virtualization solutions can control the amount of memory they want to assign to a virtual machine instance. d. A CD/DVD burner could control the amount of memory used by the rest of the system to ensure that burning does not fail due to lack of available memory. -e. There are several other use cases, find one or use the controller just +e. There are several other use cases; find one or use the controller just for fun (to learn and hack on the VM subsystem). Current Status: linux-2.6.34-mmotm(development version of 2010/April) @@ -38,12 +38,12 @@ Features: - optionally, memory+swap usage can be accounted and limited. - hierarchical accounting - soft limit - - moving(recharging) account at moving a task is selectable. + - moving (recharging) account at moving a task is selectable. - usage threshold notifier - oom-killer disable knob and oom-notifier - Root cgroup has no limit controls. - Kernel memory support is work in progress, and the current version provides + Kernel memory support is a work in progress, and the current version provides basically functionality. (See Section 2.7) Brief summary of control files. @@ -144,9 +144,9 @@ Figure 1 shows the important aspects of the controller 3. Each page has a pointer to the page_cgroup, which in turn knows the cgroup it belongs to -The accounting is done as follows: mem_cgroup_charge() is invoked to setup +The accounting is done as follows: mem_cgroup_charge() is invoked to set up the necessary data structures and check if the cgroup that is being charged -is over its limit. If it is then reclaim is invoked on the cgroup. +is over its limit. If it is, then reclaim is invoked on the cgroup. More details can be found in the reclaim section of this document. If everything goes well, a page meta-data-structure called page_cgroup is updated. page_cgroup has its own LRU on cgroup. @@ -163,13 +163,13 @@ for earlier. A file page will be accounted for as Page Cache when it's inserted into inode (radix-tree). While it's mapped into the page tables of processes, duplicate accounting is carefully avoided. -A RSS page is unaccounted when it's fully unmapped. A PageCache page is +An RSS page is unaccounted when it's fully unmapped. A PageCache page is unaccounted when it's removed from radix-tree. Even if RSS pages are fully unmapped (by kswapd), they may exist as SwapCache in the system until they -are really freed. Such SwapCaches also also accounted. +are really freed. Such SwapCaches are also accounted. A swapped-in page is not accounted until it's mapped. -Note: The kernel does swapin-readahead and read multiple swaps at once. +Note: The kernel does swapin-readahead and reads multiple swaps at once. This means swapped-in pages may contain pages for other tasks than a task causing page fault. So, we avoid accounting at swap-in I/O. @@ -209,7 +209,7 @@ memsw.limit_in_bytes. Example: Assume a system with 4G of swap. A task which allocates 6G of memory (by mistake) under 2G memory limitation will use all swap. In this case, setting memsw.limit_in_bytes=3G will prevent bad use of swap. -By using memsw limit, you can avoid system OOM which can be caused by swap +By using the memsw limit, you can avoid system OOM which can be caused by swap shortage. * why 'memory+swap' rather than swap. @@ -217,7 +217,7 @@ The global LRU(kswapd) can swap out arbitrary pages. Swap-out means to move account from memory to swap...there is no change in usage of memory+swap. In other words, when we want to limit the usage of swap without affecting global LRU, memory+swap limit is better than just limiting swap from -OS point of view. +an OS point of view. * What happens when a cgroup hits memory.memsw.limit_in_bytes When a cgroup hits memory.memsw.limit_in_bytes, it's useless to do swap-out @@ -236,7 +236,7 @@ an OOM routine is invoked to select and kill the bulkiest task in the cgroup. (See 10. OOM Control below.) The reclaim algorithm has not been modified for cgroups, except that -pages that are selected for reclaiming come from the per cgroup LRU +pages that are selected for reclaiming come from the per-cgroup LRU list. NOTE: Reclaim does not work for the root cgroup, since we cannot set any @@ -316,7 +316,7 @@ We can check the usage: # cat /sys/fs/cgroup/memory/0/memory.usage_in_bytes 1216512 -A successful write to this file does not guarantee a successful set of +A successful write to this file does not guarantee a successful setting of this limit to the value written into the file. This can be due to a number of factors, such as rounding up to page boundaries or the total availability of memory on the system. The user is required to re-read @@ -350,7 +350,7 @@ Trying usual test under memory controller is always helpful. 4.1 Troubleshooting Sometimes a user might find that the application under a cgroup is -terminated by OOM killer. There are several causes for this: +terminated by the OOM killer. There are several causes for this: 1. The cgroup limit is too low (just too low to do anything useful) 2. The user is using anonymous memory and swap is turned off or too low @@ -358,7 +358,7 @@ terminated by OOM killer. There are several causes for this: A sync followed by echo 1 > /proc/sys/vm/drop_caches will help get rid of some of the pages cached in the cgroup (page cache pages). -To know what happens, disable OOM_Kill by 10. OOM Control(see below) and +To know what happens, disabling OOM_Kill as per "10. OOM Control" (below) and seeing what happens will be helpful. 4.2 Task migration @@ -399,10 +399,10 @@ About use_hierarchy, see Section 6. Almost all pages tracked by this memory cgroup will be unmapped and freed. Some pages cannot be freed because they are locked or in-use. Such pages are - moved to parent(if use_hierarchy==1) or root (if use_hierarchy==0) and this + moved to parent (if use_hierarchy==1) or root (if use_hierarchy==0) and this cgroup will be empty. - Typical use case of this interface is that calling this before rmdir(). + The typical use case for this interface is before calling rmdir(). Because rmdir() moves all pages to parent, some out-of-use page caches can be moved to the parent. If you want to avoid that, force_empty will be useful. @@ -486,7 +486,7 @@ You can reset failcnt by writing 0 to failcnt file. For efficiency, as other kernel components, memory cgroup uses some optimization to avoid unnecessary cacheline false sharing. usage_in_bytes is affected by the -method and doesn't show 'exact' value of memory(and swap) usage, it's an fuzz +method and doesn't show 'exact' value of memory (and swap) usage, it's a fuzz value for efficient access. (Of course, when necessary, it's synchronized.) If you want to know more exact memory usage, you should use RSS+CACHE(+SWAP) value in memory.stat(see 5.2). @@ -496,8 +496,8 @@ value in memory.stat(see 5.2). This is similar to numa_maps but operates on a per-memcg basis. This is useful for providing visibility into the numa locality information within an memcg since the pages are allowed to be allocated from any physical -node. One of the usecases is evaluating application performance by -combining this information with the application's cpu allocation. +node. One of the use cases is evaluating application performance by +combining this information with the application's CPU allocation. We export "total", "file", "anon" and "unevictable" pages per-node for each memcg. The ouput format of memory.numa_stat is: @@ -561,10 +561,10 @@ are pushed back to their soft limits. If the soft limit of each control group is very high, they are pushed back as much as possible to make sure that one control group does not starve the others of memory. -Please note that soft limits is a best effort feature, it comes with +Please note that soft limits is a best-effort feature; it comes with no guarantees, but it does its best to make sure that when memory is heavily contended for, memory is allocated based on the soft limit -hints/setup. Currently soft limit based reclaim is setup such that +hints/setup. Currently soft limit based reclaim is set up such that it gets invoked from balance_pgdat (kswapd). 7.1 Interface @@ -592,7 +592,7 @@ page tables. 8.1 Interface -This feature is disabled by default. It can be enabled(and disabled again) by +This feature is disabled by default. It can be enabledi (and disabled again) by writing to memory.move_charge_at_immigrate of the destination cgroup. If you want to enable it: @@ -601,8 +601,8 @@ If you want to enable it: Note: Each bits of move_charge_at_immigrate has its own meaning about what type of charges should be moved. See 8.2 for details. -Note: Charges are moved only when you move mm->owner, IOW, a leader of a thread - group. +Note: Charges are moved only when you move mm->owner, in other words, + a leader of a thread group. Note: If we cannot find enough space for the task in the destination cgroup, we try to make space by reclaiming memory. Task migration may fail if we cannot make enough space. @@ -612,25 +612,25 @@ And if you want disable it again: # echo 0 > memory.move_charge_at_immigrate -8.2 Type of charges which can be move +8.2 Type of charges which can be moved -Each bits of move_charge_at_immigrate has its own meaning about what type of -charges should be moved. But in any cases, it must be noted that an account of -a page or a swap can be moved only when it is charged to the task's current(old) -memory cgroup. +Each bit in move_charge_at_immigrate has its own meaning about what type of +charges should be moved. But in any case, it must be noted that an account of +a page or a swap can be moved only when it is charged to the task's current +(old) memory cgroup. bit | what type of charges would be moved ? -----+------------------------------------------------------------------------ - 0 | A charge of an anonymous page(or swap of it) used by the target task. - | You must enable Swap Extension(see 2.4) to enable move of swap charges. + 0 | A charge of an anonymous page (or swap of it) used by the target task. + | You must enable Swap Extension (see 2.4) to enable move of swap charges. -----+------------------------------------------------------------------------ - 1 | A charge of file pages(normal file, tmpfs file(e.g. ipc shared memory) + 1 | A charge of file pages (normal file, tmpfs file (e.g. ipc shared memory) | and swaps of tmpfs file) mmapped by the target task. Unlike the case of - | anonymous pages, file pages(and swaps) in the range mmapped by the task + | anonymous pages, file pages (and swaps) in the range mmapped by the task | will be moved even if the task hasn't done page fault, i.e. they might | not be the task's "RSS", but other task's "RSS" that maps the same file. - | And mapcount of the page is ignored(the page can be moved even if - | page_mapcount(page) > 1). You must enable Swap Extension(see 2.4) to + | And mapcount of the page is ignored (the page can be moved even if + | page_mapcount(page) > 1). You must enable Swap Extension (see 2.4) to | enable move of swap charges. 8.3 TODO @@ -640,11 +640,11 @@ memory cgroup. 9. Memory thresholds -Memory cgroup implements memory thresholds using cgroups notification +Memory cgroup implements memory thresholds using the cgroups notification API (see cgroups.txt). It allows to register multiple memory and memsw thresholds and gets notifications when it crosses. -To register a threshold application need: +To register a threshold, an application must: - create an eventfd using eventfd(2); - open memory.usage_in_bytes or memory.memsw.usage_in_bytes; - write string like " " to @@ -659,24 +659,24 @@ It's applicable for root and non-root cgroup. memory.oom_control file is for OOM notification and other controls. -Memory cgroup implements OOM notifier using cgroup notification +Memory cgroup implements OOM notifier using the cgroup notification API (See cgroups.txt). It allows to register multiple OOM notification delivery and gets notification when OOM happens. -To register a notifier, application need: +To register a notifier, an application must: - create an eventfd using eventfd(2) - open memory.oom_control file - write string like " " to cgroup.event_control -Application will be notified through eventfd when OOM happens. -OOM notification doesn't work for root cgroup. +The application will be notified through eventfd when OOM happens. +OOM notification doesn't work for the root cgroup. -You can disable OOM-killer by writing "1" to memory.oom_control file, as: +You can disable the OOM-killer by writing "1" to memory.oom_control file, as: #echo 1 > memory.oom_control -This operation is only allowed to the top cgroup of sub-hierarchy. +This operation is only allowed to the top cgroup of a sub-hierarchy. If OOM-killer is disabled, tasks under cgroup will hang/sleep in memory cgroup's OOM-waitqueue when they request accountable memory. diff --git a/trunk/Documentation/devicetree/bindings/arm/davinci/nand.txt b/trunk/Documentation/devicetree/bindings/arm/davinci/nand.txt new file mode 100644 index 000000000000..e37241f1fdd8 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/arm/davinci/nand.txt @@ -0,0 +1,51 @@ +* Texas Instruments Davinci NAND + +This file provides information, what the device node for the +davinci nand interface contain. + +Required properties: +- compatible: "ti,davinci-nand"; +- reg : contain 2 offset/length values: + - offset and length for the access window + - offset and length for accessing the aemif control registers +- ti,davinci-chipselect: Indicates on the davinci_nand driver which + chipselect is used for accessing the nand. + +Recommended properties : +- ti,davinci-mask-ale: mask for ale +- ti,davinci-mask-cle: mask for cle +- ti,davinci-mask-chipsel: mask for chipselect +- ti,davinci-ecc-mode: ECC mode valid values for davinci driver: + - "none" + - "soft" + - "hw" +- ti,davinci-ecc-bits: used ECC bits, currently supported 1 or 4. +- ti,davinci-nand-buswidth: buswidth 8 or 16 +- ti,davinci-nand-use-bbt: use flash based bad block table support. + +Example (enbw_cmc board): +aemif@60000000 { + compatible = "ti,davinci-aemif"; + #address-cells = <2>; + #size-cells = <1>; + reg = <0x68000000 0x80000>; + ranges = <2 0 0x60000000 0x02000000 + 3 0 0x62000000 0x02000000 + 4 0 0x64000000 0x02000000 + 5 0 0x66000000 0x02000000 + 6 0 0x68000000 0x02000000>; + nand@3,0 { + compatible = "ti,davinci-nand"; + reg = <3 0x0 0x807ff + 6 0x0 0x8000>; + #address-cells = <1>; + #size-cells = <1>; + ti,davinci-chipselect = <1>; + ti,davinci-mask-ale = <0>; + ti,davinci-mask-cle = <0>; + ti,davinci-mask-chipsel = <0>; + ti,davinci-ecc-mode = "hw"; + ti,davinci-ecc-bits = <4>; + ti,davinci-nand-use-bbt; + }; +}; diff --git a/trunk/Documentation/devicetree/bindings/i2c/atmel-i2c.txt b/trunk/Documentation/devicetree/bindings/i2c/atmel-i2c.txt new file mode 100644 index 000000000000..b689a0d9441c --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/i2c/atmel-i2c.txt @@ -0,0 +1,30 @@ +I2C for Atmel platforms + +Required properties : +- compatible : Must be "atmel,at91rm9200-i2c", "atmel,at91sam9261-i2c", + "atmel,at91sam9260-i2c", "atmel,at91sam9g20-i2c", "atmel,at91sam9g10-i2c" + or "atmel,at91sam9x5-i2c" +- reg: physical base address of the controller and length of memory mapped + region. +- interrupts: interrupt number to the cpu. +- #address-cells = <1>; +- #size-cells = <0>; + +Optional properties: +- Child nodes conforming to i2c bus binding + +Examples : + +i2c0: i2c@fff84000 { + compatible = "atmel,at91sam9g20-i2c"; + reg = <0xfff84000 0x100>; + interrupts = <12 4 6>; + #address-cells = <1>; + #size-cells = <0>; + + 24c512@50 { + compatible = "24c512"; + reg = <0x50>; + pagesize = <128>; + } +} diff --git a/trunk/Documentation/devicetree/bindings/i2c/davinci.txt b/trunk/Documentation/devicetree/bindings/i2c/davinci.txt new file mode 100644 index 000000000000..2dc935b4113d --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/i2c/davinci.txt @@ -0,0 +1,28 @@ +* Texas Instruments Davinci I2C + +This file provides information, what the device node for the +davinci i2c interface contain. + +Required properties: +- compatible: "ti,davinci-i2c"; +- reg : Offset and length of the register set for the device + +Recommended properties : +- interrupts : standard interrupt property. +- clock-frequency : desired I2C bus clock frequency in Hz. + +Example (enbw_cmc board): + i2c@1c22000 { + compatible = "ti,davinci-i2c"; + reg = <0x22000 0x1000>; + clock-frequency = <100000>; + interrupts = <15>; + interrupt-parent = <&intc>; + #address-cells = <1>; + #size-cells = <0>; + + dtt@48 { + compatible = "national,lm75"; + reg = <0x48>; + }; + }; diff --git a/trunk/Documentation/devicetree/bindings/i2c/i2c-mxs.txt b/trunk/Documentation/devicetree/bindings/i2c/i2c-mxs.txt index 30ac3a0557f7..7a3fe9e5f4cb 100644 --- a/trunk/Documentation/devicetree/bindings/i2c/i2c-mxs.txt +++ b/trunk/Documentation/devicetree/bindings/i2c/i2c-mxs.txt @@ -6,6 +6,7 @@ Required properties: - interrupts: Should contain ERROR and DMA interrupts - clock-frequency: Desired I2C bus clock frequency in Hz. Only 100000Hz and 400000Hz modes are supported. +- fsl,i2c-dma-channel: APBX DMA channel for the I2C Examples: @@ -16,4 +17,5 @@ i2c0: i2c@80058000 { reg = <0x80058000 2000>; interrupts = <111 68>; clock-frequency = <100000>; + fsl,i2c-dma-channel = <6>; }; diff --git a/trunk/Documentation/devicetree/bindings/i2c/nomadik.txt b/trunk/Documentation/devicetree/bindings/i2c/nomadik.txt new file mode 100644 index 000000000000..72065b0ff680 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/i2c/nomadik.txt @@ -0,0 +1,23 @@ +I2C for Nomadik based systems + +Required (non-standard) properties: + - Nil + +Recommended (non-standard) properties: + - clock-frequency : Maximum bus clock frequency for the device + +Optional (non-standard) properties: + - Nil + +Example : + +i2c@80004000 { + compatible = "stericsson,db8500-i2c", "st,nomadik-i2c"; + reg = <0x80004000 0x1000>; + interrupts = <0 21 0x4>; + #address-cells = <1>; + #size-cells = <0>; + v-i2c-supply = <&db8500_vape_reg>; + + clock-frequency = <400000>; +}; diff --git a/trunk/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt b/trunk/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt new file mode 100644 index 000000000000..0a85c70cd30a --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt @@ -0,0 +1,68 @@ +* Atmel High Speed MultiMedia Card Interface + +This controller on atmel products provides an interface for MMC, SD and SDIO +types of memory cards. + +This file documents differences between the core properties described +by mmc.txt and the properties used by the atmel-mci driver. + +1) MCI node + +Required properties: +- compatible: should be "atmel,hsmci" +- #address-cells: should be one. The cell is the slot id. +- #size-cells: should be zero. +- at least one slot node + +The node contains child nodes for each slot that the platform uses + +Example MCI node: + +mmc0: mmc@f0008000 { + compatible = "atmel,hsmci"; + reg = <0xf0008000 0x600>; + interrupts = <12 4>; + #address-cells = <1>; + #size-cells = <0>; + + [ child node definitions...] +}; + +2) slot nodes + +Required properties: +- reg: should contain the slot id. +- bus-width: number of data lines connected to the controller + +Optional properties: +- cd-gpios: specify GPIOs for card detection +- cd-inverted: invert the value of external card detect gpio line +- wp-gpios: specify GPIOs for write protection + +Example slot node: + +slot@0 { + reg = <0>; + bus-width = <4>; + cd-gpios = <&pioD 15 0> + cd-inverted; +}; + +Example full MCI node: +mmc0: mmc@f0008000 { + compatible = "atmel,hsmci"; + reg = <0xf0008000 0x600>; + interrupts = <12 4>; + #address-cells = <1>; + #size-cells = <0>; + slot@0 { + reg = <0>; + bus-width = <4>; + cd-gpios = <&pioD 15 0> + cd-inverted; + }; + slot@1 { + reg = <1>; + bus-width = <4>; + }; +}; diff --git a/trunk/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt b/trunk/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt new file mode 100644 index 000000000000..792768953330 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt @@ -0,0 +1,87 @@ +* Samsung Exynos specific extensions to the Synopsis Designware Mobile + Storage Host Controller + +The Synopsis designware mobile storage host controller is used to interface +a SoC with storage medium such as eMMC or SD/MMC cards. This file documents +differences between the core Synopsis dw mshc controller properties described +by synposis-dw-mshc.txt and the properties used by the Samsung Exynos specific +extensions to the Synopsis Designware Mobile Storage Host Controller. + +Required Properties: + +* compatible: should be + - "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 + specific extentions. + - "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 + specific extentions. + - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 + specific extentions. + +* samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface + unit (ciu) clock. This property is applicable only for Exynos5 SoC's and + ignored for Exynos4 SoC's. The valid range of divider value is 0 to 7. + +* samsung,dw-mshc-sdr-timing: Specifies the value of CIU clock phase shift value + in transmit mode and CIU clock phase shift value in receive mode for single + data rate mode operation. Refer notes below for the order of the cells and the + valid values. + +* samsung,dw-mshc-ddr-timing: Specifies the value of CUI clock phase shift value + in transmit mode and CIU clock phase shift value in receive mode for double + data rate mode operation. Refer notes below for the order of the cells and the + valid values. + + Notes for the sdr-timing and ddr-timing values: + + The order of the cells should be + - First Cell: CIU clock phase shift value for tx mode. + - Second Cell: CIU clock phase shift value for rx mode. + + Valid values for SDR and DDR CIU clock timing for Exynos5250: + - valid value for tx phase shift and rx phase shift is 0 to 7. + - when CIU clock divider value is set to 3, all possible 8 phase shift + values can be used. + - if CIU clock divider value is 0 (that is divide by 1), both tx and rx + phase shift clocks should be 0. + +Required properties for a slot: + +* gpios: specifies a list of gpios used for command, clock and data bus. The + first gpio is the command line and the second gpio is the clock line. The + rest of the gpios (depending on the bus-width property) are the data lines in + no particular order. The format of the gpio specifier depends on the gpio + controller. + +Example: + + The MSHC controller node can be split into two portions, SoC specific and + board specific portions as listed below. + + dwmmc0@12200000 { + compatible = "samsung,exynos5250-dw-mshc"; + reg = <0x12200000 0x1000>; + interrupts = <0 75 0>; + #address-cells = <1>; + #size-cells = <0>; + }; + + dwmmc0@12200000 { + num-slots = <1>; + supports-highspeed; + broken-cd; + fifo-depth = <0x80>; + card-detect-delay = <200>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <2 3>; + samsung,dw-mshc-ddr-timing = <1 2>; + + slot@0 { + reg = <0>; + bus-width = <8>; + gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>, + <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>, + <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>, + <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>, + <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>; + }; + }; diff --git a/trunk/Documentation/devicetree/bindings/mmc/mmc.txt b/trunk/Documentation/devicetree/bindings/mmc/mmc.txt index 8a6811f4a02f..8e2e0ba2f486 100644 --- a/trunk/Documentation/devicetree/bindings/mmc/mmc.txt +++ b/trunk/Documentation/devicetree/bindings/mmc/mmc.txt @@ -9,12 +9,17 @@ Interpreted by the OF core: Required properties: - bus-width: Number of data lines, can be <1>, <4>, or <8> +Card detection: +If no property below is supplied, standard SDHCI card detect is used. +Only one of the properties in this section should be supplied: + - broken-cd: There is no card detection available; polling must be used. + - cd-gpios: Specify GPIOs for card detection, see gpio binding + - non-removable: non-removable slot (like eMMC); assume always present. + Optional properties: -- cd-gpios: Specify GPIOs for card detection, see gpio binding - wp-gpios: Specify GPIOs for write protection, see gpio binding - cd-inverted: when present, polarity on the cd gpio line is inverted - wp-inverted: when present, polarity on the wp gpio line is inverted -- non-removable: non-removable slot (like eMMC) - max-frequency: maximum operating clock frequency Example: diff --git a/trunk/Documentation/devicetree/bindings/mmc/pxa-mmc.txt b/trunk/Documentation/devicetree/bindings/mmc/pxa-mmc.txt new file mode 100644 index 000000000000..b7025de7dced --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/mmc/pxa-mmc.txt @@ -0,0 +1,25 @@ +* PXA MMC drivers + +Driver bindings for the PXA MCI (MMC/SDIO) interfaces + +Required properties: +- compatible: Should be "marvell,pxa-mmc". +- vmmc-supply: A regulator for VMMC + +Optional properties: +- marvell,detect-delay-ms: sets the detection delay timeout in ms. +- marvell,gpio-power: GPIO spec for the card power enable pin + +This file documents differences between the core properties in mmc.txt +and the properties used by the pxa-mmc driver. + +Examples: + +mmc0: mmc@41100000 { + compatible = "marvell,pxa-mmc"; + reg = <0x41100000 0x1000>; + interrupts = <23>; + cd-gpios = <&gpio 23 0>; + wp-gpios = <&gpio 24 0>; +}; + diff --git a/trunk/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt b/trunk/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt new file mode 100644 index 000000000000..630a7d7f4718 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt @@ -0,0 +1,53 @@ +* Samsung's SDHCI Controller device tree bindings + +Samsung's SDHCI controller is used as a connectivity interface with external +MMC, SD and eMMC storage mediums. This file documents differences between the +core mmc properties described by mmc.txt and the properties used by the +Samsung implmentation of the SDHCI controller. + +Note: The mmc core bindings documentation states that if none of the core +card-detect bindings are used, then the standard sdhci card detect mechanism +is used. The Samsung's SDHCI controller bindings extends this as listed below. + +[A] The property "samsung,cd-pinmux-gpio" can be used as stated in the + "Optional Board Specific Properties" section below. + +[B] If core card-detect bindings and "samsung,cd-pinmux-gpio" property + is not specified, it is assumed that there is no card detection + mechanism used. + +Required SoC Specific Properties: +- compatible: should be one of the following + - "samsung,s3c6410-sdhci": For controllers compatible with s3c6410 sdhci + controller. + - "samsung,exynos4210-sdhci": For controllers compatible with Exynos4 sdhci + controller. + +Required Board Specific Properties: +- gpios: Should specify the gpios used for clock, command and data lines. The + gpio specifier format depends on the gpio controller. + +Optional Board Specific Properties: +- samsung,cd-pinmux-gpio: Specifies the card detect line that is routed + through a pinmux to the card-detect pin of the card slot. This property + should be used only if none of the mmc core card-detect properties are + used. + +Example: + sdhci@12530000 { + compatible = "samsung,exynos4210-sdhci"; + reg = <0x12530000 0x100>; + interrupts = <0 75 0>; + bus-width = <4>; + cd-gpios = <&gpk2 2 2 3 3>; + gpios = <&gpk2 0 2 0 3>, /* clock line */ + <&gpk2 1 2 0 3>, /* command line */ + <&gpk2 3 2 3 3>, /* data line 0 */ + <&gpk2 4 2 3 3>, /* data line 1 */ + <&gpk2 5 2 3 3>, /* data line 2 */ + <&gpk2 6 2 3 3>; /* data line 3 */ + }; + + Note: This example shows both SoC specific and board specific properties + in a single device node. The properties can be actually be seperated + into SoC specific node and board specific node. diff --git a/trunk/Documentation/devicetree/bindings/mmc/sdhci-dove.txt b/trunk/Documentation/devicetree/bindings/mmc/sdhci-dove.txt new file mode 100644 index 000000000000..ae9aab9abcd7 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/mmc/sdhci-dove.txt @@ -0,0 +1,14 @@ +* Marvell sdhci-dove controller + +This file documents differences between the core properties in mmc.txt +and the properties used by the sdhci-pxav2 and sdhci-pxav3 drivers. + +- compatible: Should be "marvell,dove-sdhci". + +Example: + +sdio0: sdio@92000 { + compatible = "marvell,dove-sdhci"; + reg = <0x92000 0x100>; + interrupts = <35>; +}; diff --git a/trunk/Documentation/devicetree/bindings/mmc/sdhci-spear.txt b/trunk/Documentation/devicetree/bindings/mmc/sdhci-spear.txt new file mode 100644 index 000000000000..fd3643e7e467 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/mmc/sdhci-spear.txt @@ -0,0 +1,18 @@ +* SPEAr SDHCI Controller + +This file documents differences between the core properties in mmc.txt +and the properties used by the sdhci-spear driver. + +Required properties: +- compatible: "st,spear300-sdhci" + +Optional properties: +- cd-gpios: card detect gpio, with zero flags. + +Example: + + sdhci@fc000000 { + compatible = "st,spear300-sdhci"; + reg = <0xfc000000 0x1000>; + cd-gpios = <&gpio0 6 0>; + }; diff --git a/trunk/Documentation/devicetree/bindings/mmc/synposis-dw-mshc.txt b/trunk/Documentation/devicetree/bindings/mmc/synposis-dw-mshc.txt new file mode 100644 index 000000000000..06cd32d08052 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/mmc/synposis-dw-mshc.txt @@ -0,0 +1,79 @@ +* Synopsis Designware Mobile Storage Host Controller + +The Synopsis designware mobile storage host controller is used to interface +a SoC with storage medium such as eMMC or SD/MMC cards. This file documents +differences between the core mmc properties described by mmc.txt and the +properties used by the Synopsis Designware Mobile Storage Host Controller. + +Required Properties: + +* compatible: should be + - snps,dw-mshc: for controllers compliant with synopsis dw-mshc. +* #address-cells: should be 1. +* #size-cells: should be 0. + +# Slots: The slot specific information are contained within child-nodes with + each child-node representing a supported slot. There should be atleast one + child node representing a card slot. The name of the child node representing + the slot is recommended to be slot@n where n is the unique number of the slot + connnected to the controller. The following are optional properties which + can be included in the slot child node. + + * reg: specifies the physical slot number. The valid values of this + property is 0 to (num-slots -1), where num-slots is the value + specified by the num-slots property. + + * bus-width: as documented in mmc core bindings. + + * wp-gpios: specifies the write protect gpio line. The format of the + gpio specifier depends on the gpio controller. If the write-protect + line is not available, this property is optional. + +Optional properties: + +* num-slots: specifies the number of slots supported by the controller. + The number of physical slots actually used could be equal or less than the + value specified by num-slots. If this property is not specified, the value + of num-slot property is assumed to be 1. + +* fifo-depth: The maximum size of the tx/rx fifo's. If this property is not + specified, the default value of the fifo size is determined from the + controller registers. + +* card-detect-delay: Delay in milli-seconds before detecting card after card + insert event. The default value is 0. + +* supports-highspeed: Enables support for high speed cards (upto 50MHz) + +* broken-cd: as documented in mmc core bindings. + +Aliases: + +- All the MSHC controller nodes should be represented in the aliases node using + the following format 'mshc{n}' where n is a unique number for the alias. + +Example: + +The MSHC controller node can be split into two portions, SoC specific and +board specific portions as listed below. + + dwmmc0@12200000 { + compatible = "snps,dw-mshc"; + reg = <0x12200000 0x1000>; + interrupts = <0 75 0>; + #address-cells = <1>; + #size-cells = <0>; + }; + + dwmmc0@12200000 { + num-slots = <1>; + supports-highspeed; + broken-cd; + fifo-depth = <0x80>; + card-detect-delay = <200>; + + slot@0 { + reg = <0>; + bus-width = <8>; + }; + }; diff --git a/trunk/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/trunk/Documentation/devicetree/bindings/mtd/atmel-nand.txt index a20069502f5a..d555421ea49f 100644 --- a/trunk/Documentation/devicetree/bindings/mtd/atmel-nand.txt +++ b/trunk/Documentation/devicetree/bindings/mtd/atmel-nand.txt @@ -3,7 +3,9 @@ Atmel NAND flash Required properties: - compatible : "atmel,at91rm9200-nand". - reg : should specify localbus address and size used for the chip, - and if availlable the ECC. + and hardware ECC controller if available. + If the hardware ECC is PMECC, it should contain address and size for + PMECC, PMECC Error Location controller and ROM which has lookup tables. - atmel,nand-addr-offset : offset for the address latch. - atmel,nand-cmd-offset : offset for the command latch. - #address-cells, #size-cells : Must be present if the device has sub-nodes @@ -16,6 +18,15 @@ Optional properties: - nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default. Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", "soft_bch". +- atmel,has-pmecc : boolean to enable Programmable Multibit ECC hardware. + Only supported by at91sam9x5 or later sam9 product. +- atmel,pmecc-cap : error correct capability for Programmable Multibit ECC + Controller. Supported values are: 2, 4, 8, 12, 24. +- atmel,pmecc-sector-size : sector size for ECC computation. Supported values + are: 512, 1024. +- atmel,pmecc-lookup-table-offset : includes two offsets of lookup table in ROM + for different sector size. First one is for sector size 512, the next is for + sector size 1024. - nand-bus-width : 8 or 16 bus width if not present 8 - nand-on-flash-bbt: boolean to enable on flash bbt option if not present false @@ -39,3 +50,30 @@ nand0: nand@40000000,0 { ... }; }; + +/* for PMECC supported chips */ +nand0: nand@40000000 { + compatible = "atmel,at91rm9200-nand"; + #address-cells = <1>; + #size-cells = <1>; + reg = < 0x40000000 0x10000000 /* bus addr & size */ + 0xffffe000 0x00000600 /* PMECC addr & size */ + 0xffffe600 0x00000200 /* PMECC ERRLOC addr & size */ + 0x00100000 0x00100000 /* ROM addr & size */ + >; + atmel,nand-addr-offset = <21>; /* ale */ + atmel,nand-cmd-offset = <22>; /* cle */ + nand-on-flash-bbt; + nand-ecc-mode = "hw"; + atmel,has-pmecc; /* enable PMECC */ + atmel,pmecc-cap = <2>; + atmel,pmecc-sector-size = <512>; + atmel,pmecc-lookup-table-offset = <0x8000 0x10000>; + gpios = <&pioD 5 0 /* rdy */ + &pioD 4 0 /* nce */ + 0 /* cd */ + >; + partition@0 { + ... + }; +}; diff --git a/trunk/Documentation/devicetree/bindings/mtd/gpmi-nand.txt b/trunk/Documentation/devicetree/bindings/mtd/gpmi-nand.txt index 1a5bbd346d22..3fb3f9015365 100644 --- a/trunk/Documentation/devicetree/bindings/mtd/gpmi-nand.txt +++ b/trunk/Documentation/devicetree/bindings/mtd/gpmi-nand.txt @@ -12,6 +12,10 @@ Required properties: - interrupt-names : The interrupt names "gpmi-dma", "bch"; - fsl,gpmi-dma-channel : Should contain the dma channel it uses. +Optional properties: + - nand-on-flash-bbt: boolean to enable on flash bbt option if not + present false + The device tree may optionally contain sub-nodes describing partitions of the address space. See partition.txt for more detail. diff --git a/trunk/Documentation/devicetree/bindings/mtd/lpc32xx-mlc.txt b/trunk/Documentation/devicetree/bindings/mtd/lpc32xx-mlc.txt new file mode 100644 index 000000000000..d0a37252eb22 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/mtd/lpc32xx-mlc.txt @@ -0,0 +1,50 @@ +NXP LPC32xx SoC NAND MLC controller + +Required properties: +- compatible: "nxp,lpc3220-mlc" +- reg: Address and size of the controller +- interrupts: The NAND interrupt specification +- gpios: GPIO specification for NAND write protect + +The following required properties are very controller specific. See the LPC32xx +User Manual 7.5.14 MLC NAND Timing Register (the values here are specified in +Hz, to make them independent of actual clock speed and to provide for good +accuracy:) +- nxp,tcea_delay: TCEA_DELAY +- nxp,busy_delay: BUSY_DELAY +- nxp,nand_ta: NAND_TA +- nxp,rd_high: RD_HIGH +- nxp,rd_low: RD_LOW +- nxp,wr_high: WR_HIGH +- nxp,wr_low: WR_LOW + +Optional subnodes: +- Partitions, see Documentation/devicetree/bindings/mtd/partition.txt + +Example: + + mlc: flash@200A8000 { + compatible = "nxp,lpc3220-mlc"; + reg = <0x200A8000 0x11000>; + interrupts = <11 0>; + #address-cells = <1>; + #size-cells = <1>; + + nxp,tcea-delay = <333333333>; + nxp,busy-delay = <10000000>; + nxp,nand-ta = <18181818>; + nxp,rd-high = <31250000>; + nxp,rd-low = <45454545>; + nxp,wr-high = <40000000>; + nxp,wr-low = <83333333>; + gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */ + + mtd0@00000000 { + label = "boot"; + reg = <0x00000000 0x00064000>; + read-only; + }; + + ... + + }; diff --git a/trunk/Documentation/devicetree/bindings/mtd/lpc32xx-slc.txt b/trunk/Documentation/devicetree/bindings/mtd/lpc32xx-slc.txt new file mode 100644 index 000000000000..d94edc0fc554 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/mtd/lpc32xx-slc.txt @@ -0,0 +1,52 @@ +NXP LPC32xx SoC NAND SLC controller + +Required properties: +- compatible: "nxp,lpc3220-slc" +- reg: Address and size of the controller +- nand-on-flash-bbt: Use bad block table on flash +- gpios: GPIO specification for NAND write protect + +The following required properties are very controller specific. See the LPC32xx +User Manual: +- nxp,wdr-clks: Delay before Ready signal is tested on write (W_RDY) +- nxp,rdr-clks: Delay before Ready signal is tested on read (R_RDY) +(The following values are specified in Hz, to make them independent of actual +clock speed:) +- nxp,wwidth: Write pulse width (W_WIDTH) +- nxp,whold: Write hold time (W_HOLD) +- nxp,wsetup: Write setup time (W_SETUP) +- nxp,rwidth: Read pulse width (R_WIDTH) +- nxp,rhold: Read hold time (R_HOLD) +- nxp,rsetup: Read setup time (R_SETUP) + +Optional subnodes: +- Partitions, see Documentation/devicetree/bindings/mtd/partition.txt + +Example: + + slc: flash@20020000 { + compatible = "nxp,lpc3220-slc"; + reg = <0x20020000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + + nxp,wdr-clks = <14>; + nxp,wwidth = <40000000>; + nxp,whold = <100000000>; + nxp,wsetup = <100000000>; + nxp,rdr-clks = <14>; + nxp,rwidth = <40000000>; + nxp,rhold = <66666666>; + nxp,rsetup = <100000000>; + nand-on-flash-bbt; + gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */ + + mtd0@00000000 { + label = "phy3250-boot"; + reg = <0x00000000 0x00064000>; + read-only; + }; + + ... + + }; diff --git a/trunk/Documentation/devicetree/bindings/mtd/mtd-physmap.txt b/trunk/Documentation/devicetree/bindings/mtd/mtd-physmap.txt index a63c2bd7de2b..94de19b8f16b 100644 --- a/trunk/Documentation/devicetree/bindings/mtd/mtd-physmap.txt +++ b/trunk/Documentation/devicetree/bindings/mtd/mtd-physmap.txt @@ -16,6 +16,13 @@ file systems on embedded devices. - #address-cells, #size-cells : Must be present if the device has sub-nodes representing partitions (see below). In this case both #address-cells and #size-cells must be equal to 1. + - no-unaligned-direct-access: boolean to disable the default direct + mapping of the flash. + On some platforms (e.g. MPC5200) a direct 1:1 mapping may cause + problems with JFFS2 usage, as the local bus (LPB) doesn't support + unaligned accesses as implemented in the JFFS2 code via memcpy(). + By defining "no-unaligned-direct-access", the flash will not be + exposed directly to the MTD users (e.g. JFFS2) any more. For JEDEC compatible devices, the following additional properties are defined: diff --git a/trunk/Documentation/devicetree/bindings/pinctrl/lantiq,falcon-pinumx.txt b/trunk/Documentation/devicetree/bindings/pinctrl/lantiq,falcon-pinumx.txt new file mode 100644 index 000000000000..daa768956069 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/pinctrl/lantiq,falcon-pinumx.txt @@ -0,0 +1,83 @@ +Lantiq FALCON pinmux controller + +Required properties: +- compatible: "lantiq,pinctrl-falcon" +- reg: Should contain the physical address and length of the gpio/pinmux + register range + +Please refer to pinctrl-bindings.txt in this directory for details of the +common pinctrl bindings used by client devices, including the meaning of the +phrase "pin configuration node". + +Lantiq's pin configuration nodes act as a container for an abitrary number of +subnodes. Each of these subnodes represents some desired configuration for a +pin, a group, or a list of pins or groups. This configuration can include the +mux function to select on those group(s), and two pin configuration parameters: +pull-up and open-drain + +The name of each subnode is not important as long as it is unique; all subnodes +should be enumerated and processed purely based on their content. + +Each subnode only affects those parameters that are explicitly listed. In +other words, a subnode that lists a mux function but no pin configuration +parameters implies no information about any pin configuration parameters. +Similarly, a pin subnode that describes a pullup parameter implies no +information about e.g. the mux function. + +We support 2 types of nodes. + +Definition of mux function groups: + +Required subnode-properties: +- lantiq,groups : An array of strings. Each string contains the name of a group. + Valid values for these names are listed below. +- lantiq,function: A string containing the name of the function to mux to the + group. Valid values for function names are listed below. + +Valid values for group and function names: + + mux groups: + por, ntr, ntr8k, hrst, mdio, bootled, asc0, spi, spi cs0, spi cs1, i2c, + jtag, slic, pcm, asc1 + + functions: + rst, ntr, mdio, led, asc, spi, i2c, jtag, slic, pcm + + +Definition of pin configurations: + +Required subnode-properties: +- lantiq,pins : An array of strings. Each string contains the name of a pin. + Valid values for these names are listed below. + +Optional subnode-properties: +- lantiq,pull: Integer, representing the pull-down/up to apply to the pin. + 0: none, 1: down +- lantiq,drive-current: Boolean, enables drive-current +- lantiq,slew-rate: Boolean, enables slew-rate + +Example: + pinmux0 { + compatible = "lantiq,pinctrl-falcon"; + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + state_default: pinmux { + asc0 { + lantiq,groups = "asc0"; + lantiq,function = "asc"; + }; + ntr { + lantiq,groups = "ntr8k"; + lantiq,function = "ntr"; + }; + i2c { + lantiq,groups = "i2c"; + lantiq,function = "i2c"; + }; + hrst { + lantiq,groups = "hrst"; + lantiq,function = "rst"; + }; + }; + }; diff --git a/trunk/Documentation/devicetree/bindings/pinctrl/lantiq,xway-pinumx.txt b/trunk/Documentation/devicetree/bindings/pinctrl/lantiq,xway-pinumx.txt new file mode 100644 index 000000000000..b5469db1d7ad --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/pinctrl/lantiq,xway-pinumx.txt @@ -0,0 +1,97 @@ +Lantiq XWAY pinmux controller + +Required properties: +- compatible: "lantiq,pinctrl-xway" or "lantiq,pinctrl-xr9" +- reg: Should contain the physical address and length of the gpio/pinmux + register range + +Please refer to pinctrl-bindings.txt in this directory for details of the +common pinctrl bindings used by client devices, including the meaning of the +phrase "pin configuration node". + +Lantiq's pin configuration nodes act as a container for an abitrary number of +subnodes. Each of these subnodes represents some desired configuration for a +pin, a group, or a list of pins or groups. This configuration can include the +mux function to select on those group(s), and two pin configuration parameters: +pull-up and open-drain + +The name of each subnode is not important as long as it is unique; all subnodes +should be enumerated and processed purely based on their content. + +Each subnode only affects those parameters that are explicitly listed. In +other words, a subnode that lists a mux function but no pin configuration +parameters implies no information about any pin configuration parameters. +Similarly, a pin subnode that describes a pullup parameter implies no +information about e.g. the mux function. + +We support 2 types of nodes. + +Definition of mux function groups: + +Required subnode-properties: +- lantiq,groups : An array of strings. Each string contains the name of a group. + Valid values for these names are listed below. +- lantiq,function: A string containing the name of the function to mux to the + group. Valid values for function names are listed below. + +Valid values for group and function names: + + mux groups: + exin0, exin1, exin2, jtag, ebu a23, ebu a24, ebu a25, ebu clk, ebu cs1, + ebu wait, nand ale, nand cs1, nand cle, spi, spi_cs1, spi_cs2, spi_cs3, + spi_cs4, spi_cs5, spi_cs6, asc0, asc0 cts rts, stp, nmi , gpt1, gpt2, + gpt3, clkout0, clkout1, clkout2, clkout3, gnt1, gnt2, gnt3, req1, req2, + req3 + + additional mux groups (XR9 only): + mdio, nand rdy, nand rd, exin3, exin4, gnt4, req4 + + functions: + spi, asc, cgu, jtag, exin, stp, gpt, nmi, pci, ebu, mdio + + + +Definition of pin configurations: + +Required subnode-properties: +- lantiq,pins : An array of strings. Each string contains the name of a pin. + Valid values for these names are listed below. + +Optional subnode-properties: +- lantiq,pull: Integer, representing the pull-down/up to apply to the pin. + 0: none, 1: down, 2: up. +- lantiq,open-drain: Boolean, enables open-drain on the defined pin. + +Valid values for XWAY pin names: + Pinconf pins can be referenced via the names io0-io31. + +Valid values for XR9 pin names: + Pinconf pins can be referenced via the names io0-io55. + +Example: + gpio: pinmux@E100B10 { + compatible = "lantiq,pinctrl-xway"; + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + #gpio-cells = <2>; + gpio-controller; + reg = <0xE100B10 0xA0>; + + state_default: pinmux { + stp { + lantiq,groups = "stp"; + lantiq,function = "stp"; + }; + pci { + lantiq,groups = "gnt1"; + lantiq,function = "pci"; + }; + conf_out { + lantiq,pins = "io4", "io5", "io6"; /* stp */ + lantiq,open-drain; + lantiq,pull = <0>; + }; + }; + }; + diff --git a/trunk/Documentation/devicetree/bindings/pwm/imx-pwm.txt b/trunk/Documentation/devicetree/bindings/pwm/imx-pwm.txt new file mode 100644 index 000000000000..8522bfbccfd7 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/pwm/imx-pwm.txt @@ -0,0 +1,17 @@ +Freescale i.MX PWM controller + +Required properties: +- compatible: should be "fsl,-pwm" +- reg: physical base address and length of the controller's registers +- #pwm-cells: should be 2. The first cell specifies the per-chip index + of the PWM to use and the second cell is the period in nanoseconds. +- interrupts: The interrupt for the pwm controller + +Example: + +pwm1: pwm@53fb4000 { + #pwm-cells = <2>; + compatible = "fsl,imx53-pwm", "fsl,imx27-pwm"; + reg = <0x53fb4000 0x4000>; + interrupts = <61>; +}; diff --git a/trunk/Documentation/devicetree/bindings/pwm/mxs-pwm.txt b/trunk/Documentation/devicetree/bindings/pwm/mxs-pwm.txt index 11963e4d6bc4..9e3f8f1d46a2 100644 --- a/trunk/Documentation/devicetree/bindings/pwm/mxs-pwm.txt +++ b/trunk/Documentation/devicetree/bindings/pwm/mxs-pwm.txt @@ -4,7 +4,7 @@ Required properties: - compatible: should be "fsl,imx23-pwm" - reg: physical base address and length of the controller's registers - #pwm-cells: should be 2. The first cell specifies the per-chip index - of the PWM to use and the second cell is the duty cycle in nanoseconds. + of the PWM to use and the second cell is the period in nanoseconds. - fsl,pwm-number: the number of PWM devices Example: diff --git a/trunk/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt b/trunk/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt index bbbeedb4ec05..01438ecd6628 100644 --- a/trunk/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt +++ b/trunk/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt @@ -7,7 +7,7 @@ Required properties: - reg: physical base address and length of the controller's registers - #pwm-cells: On Tegra the number of cells used to specify a PWM is 2. The first cell specifies the per-chip index of the PWM to use and the second - cell is the duty cycle in nanoseconds. + cell is the period in nanoseconds. Example: diff --git a/trunk/Documentation/devicetree/bindings/sound/cs4270.txt b/trunk/Documentation/devicetree/bindings/sound/cs4270.txt new file mode 100644 index 000000000000..6b222f9b8ef5 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/cs4270.txt @@ -0,0 +1,21 @@ +CS4270 audio CODEC + +The driver for this device currently only supports I2C. + +Required properties: + + - compatible : "cirrus,cs4270" + + - reg : the I2C address of the device for I2C + +Optional properties: + + - reset-gpio : a GPIO spec for the reset pin. If specified, it will be + deasserted before communication to the codec starts. + +Example: + +codec: cs4270@48 { + compatible = "cirrus,cs4270"; + reg = <0x48>; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/cs4271.txt b/trunk/Documentation/devicetree/bindings/sound/cs4271.txt new file mode 100644 index 000000000000..c81b5fd5a5bc --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/cs4271.txt @@ -0,0 +1,36 @@ +Cirrus Logic CS4271 DT bindings + +This driver supports both the I2C and the SPI bus. + +Required properties: + + - compatible: "cirrus,cs4271" + +For required properties on SPI, please consult +Documentation/devicetree/bindings/spi/spi-bus.txt + +Required properties on I2C: + + - reg: the i2c address + + +Optional properties: + + - reset-gpio: a GPIO spec to define which pin is connected to the chip's + !RESET pin + +Examples: + + codec_i2c: cs4271@10 { + compatible = "cirrus,cs4271"; + reg = <0x10>; + reset-gpio = <&gpio 23 0>; + }; + + codec_spi: cs4271@0 { + compatible = "cirrus,cs4271"; + reg = <0x0>; + reset-gpio = <&gpio 23 0>; + spi-max-frequency = <6000000>; + }; + diff --git a/trunk/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt b/trunk/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt new file mode 100644 index 000000000000..374e145c2ef1 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt @@ -0,0 +1,45 @@ +Texas Instruments McASP controller + +Required properties: +- compatible : + "ti,dm646x-mcasp-audio" : for DM646x platforms + "ti,da830-mcasp-audio" : for both DA830 & DA850 platforms + "ti,omap2-mcasp-audio" : for OMAP2 platforms (TI81xx, AM33xx) + +- reg : Should contain McASP registers offset and length +- interrupts : Interrupt number for McASP +- op-mode : I2S/DIT ops mode. +- tdm-slots : Slots for TDM operation. +- num-serializer : Serializers used by McASP. +- serial-dir : A list of serializer pin mode. The list number should be equal + to "num-serializer" parameter. Each entry is a number indication + serializer pin direction. (0 - INACTIVE, 1 - TX, 2 - RX) + + +Optional properties: + +- ti,hwmods : Must be "mcasp", n is controller instance starting 0 +- tx-num-evt : FIFO levels. +- rx-num-evt : FIFO levels. +- sram-size-playback : size of sram to be allocated during playback +- sram-size-capture : size of sram to be allocated during capture + +Example: + +mcasp0: mcasp0@1d00000 { + compatible = "ti,da830-mcasp-audio"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x100000 0x3000>; + interrupts = <82 83>; + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + num-serializer = <16>; + serial-dir = < + 0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */ + 0 0 0 0 + 0 0 0 1 + 2 0 0 0 >; + tx-num-evt = <1>; + rx-num-evt = <1>; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/omap-abe-twl6040.txt b/trunk/Documentation/devicetree/bindings/sound/omap-abe-twl6040.txt new file mode 100644 index 000000000000..65dec876cb2d --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/omap-abe-twl6040.txt @@ -0,0 +1,91 @@ +* Texas Instruments OMAP4+ and twl6040 based audio setups + +Required properties: +- compatible: "ti,abe-twl6040" +- ti,model: Name of the sound card ( for example "SDP4430") +- ti,mclk-freq: MCLK frequency for HPPLL operation +- ti,mcpdm: phandle for the McPDM node +- ti,twl6040: phandle for the twl6040 core node +- ti,audio-routing: List of connections between audio components. + Each entry is a pair of strings, the first being the connection's sink, + the second being the connection's source. + +Optional properties: +- ti,dmic: phandle for the OMAP dmic node if the machine have it connected +- ti,jack_detection: Need to be set to <1> if the board capable to detect jack + insertion, removal. + +Available audio endpoints for the audio-routing table: + +Board connectors: + * Headset Stereophone + * Earphone Spk + * Ext Spk + * Line Out + * Vibrator + * Headset Mic + * Main Handset Mic + * Sub Handset Mic + * Line In + * Digital Mic + +twl6040 pins: + * HSOL + * HSOR + * EP + * HFL + * HFR + * AUXL + * AUXR + * VIBRAL + * VIBRAR + * HSMIC + * MAINMIC + * SUBMIC + * AFML + * AFMR + + * Headset Mic Bias + * Main Mic Bias + * Digital Mic1 Bias + * Digital Mic2 Bias + +Digital mic pins: + * DMic + +Example: + +sound { + compatible = "ti,abe-twl6040"; + ti,model = "SDP4430"; + + ti,jack-detection = <1>; + ti,mclk-freq = <38400000>; + + ti,mcpdm = <&mcpdm>; + ti,dmic = <&dmic>; + + ti,twl6040 = <&twl6040>; + + /* Audio routing */ + ti,audio-routing = + "Headset Stereophone", "HSOL", + "Headset Stereophone", "HSOR", + "Earphone Spk", "EP", + "Ext Spk", "HFL", + "Ext Spk", "HFR", + "Line Out", "AUXL", + "Line Out", "AUXR", + "Vibrator", "VIBRAL", + "Vibrator", "VIBRAR", + "HSMIC", "Headset Mic", + "Headset Mic", "Headset Mic Bias", + "MAINMIC", "Main Handset Mic", + "Main Handset Mic", "Main Mic Bias", + "SUBMIC", "Sub Handset Mic", + "Sub Handset Mic", "Main Mic Bias", + "AFML", "Line In", + "AFMR", "Line In", + "DMic", "Digital Mic", + "Digital Mic", "Digital Mic1 Bias"; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/omap-mcbsp.txt b/trunk/Documentation/devicetree/bindings/sound/omap-mcbsp.txt new file mode 100644 index 000000000000..17cce4490456 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/omap-mcbsp.txt @@ -0,0 +1,37 @@ +* Texas Instruments OMAP2+ McBSP module + +Required properties: +- compatible: "ti,omap2420-mcbsp" for McBSP on OMAP2420 + "ti,omap2430-mcbsp" for McBSP on OMAP2430 + "ti,omap3-mcbsp" for McBSP on OMAP3 + "ti,omap4-mcbsp" for McBSP on OMAP4 and newer SoC +- reg: Register location and size, for OMAP4+ as an array: + , + ; +- reg-names: Array of strings associated with the address space +- interrupts: Interrupt numbers for the McBSP port, as an array in case the + McBSP IP have more interrupt lines: + , + , + ; +- interrupt-names: Array of strings associated with the interrupt numbers +- interrupt-parent: The parent interrupt controller +- ti,buffer-size: Size of the FIFO on the port (OMAP2430 and newer SoC) +- ti,hwmods: Name of the hwmod associated to the McBSP port + +Example: + +mcbsp2: mcbsp@49022000 { + compatible = "ti,omap3-mcbsp"; + reg = <0x49022000 0xff>, + <0x49028000 0xff>; + reg-names = "mpu", "sidetone"; + interrupts = <0 17 0x4>, /* OCP compliant interrupt */ + <0 62 0x4>, /* TX interrupt */ + <0 63 0x4>, /* RX interrupt */ + <0 4 0x4>; /* Sidetone */ + interrupt-names = "common", "tx", "rx", "sidetone"; + interrupt-parent = <&intc>; + ti,buffer-size = <1280>; + ti,hwmods = "mcbsp2"; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/omap-twl4030.txt b/trunk/Documentation/devicetree/bindings/sound/omap-twl4030.txt new file mode 100644 index 000000000000..6fae51c7f766 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/omap-twl4030.txt @@ -0,0 +1,17 @@ +* Texas Instruments SoC with twl4030 based audio setups + +Required properties: +- compatible: "ti,omap-twl4030" +- ti,model: Name of the sound card (for example "omap3beagle") +- ti,mcbsp: phandle for the McBSP node +- ti,codec: phandle for the twl4030 audio node + +Example: + +sound { + compatible = "ti,omap-twl4030"; + ti,model = "omap3beagle"; + + ti,mcbsp = <&mcbsp2>; + ti,codec = <&twl_audio>; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/tlv320aic3x.txt b/trunk/Documentation/devicetree/bindings/sound/tlv320aic3x.txt new file mode 100644 index 000000000000..e7b98f41fa5f --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/tlv320aic3x.txt @@ -0,0 +1,20 @@ +Texas Instruments - tlv320aic3x Codec module + +The tlv320aic3x serial control bus communicates through I2C protocols + +Required properties: +- compatible - "string" - "ti,tlv320aic3x" +- reg - - I2C slave address + + +Optional properties: + +- gpio-reset - gpio pin number used for codec reset +- ai3x-gpio-func - - AIC3X_GPIO1 & AIC3X_GPIO2 Functionality + +Example: + +tlv320aic3x: tlv320aic3x@1b { + compatible = "ti,tlv320aic3x"; + reg = <0x1b>; +}; diff --git a/trunk/Documentation/devicetree/bindings/spi/spi-octeon.txt b/trunk/Documentation/devicetree/bindings/spi/spi-octeon.txt new file mode 100644 index 000000000000..431add192342 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/spi/spi-octeon.txt @@ -0,0 +1,33 @@ +Cavium, Inc. OCTEON SOC SPI master controller. + +Required properties: +- compatible : "cavium,octeon-3010-spi" +- reg : The register base for the controller. +- interrupts : One interrupt, used by the controller. +- #address-cells : <1>, as required by generic SPI binding. +- #size-cells : <0>, also as required by generic SPI binding. + +Child nodes as per the generic SPI binding. + +Example: + + spi@1070000001000 { + compatible = "cavium,octeon-3010-spi"; + reg = <0x10700 0x00001000 0x0 0x100>; + interrupts = <0 58>; + #address-cells = <1>; + #size-cells = <0>; + + eeprom@0 { + compatible = "st,m95256", "atmel,at25"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpha; + spi-cpol; + + pagesize = <64>; + size = <32768>; + address-width = <16>; + }; + }; + diff --git a/trunk/Documentation/driver-model/devres.txt b/trunk/Documentation/driver-model/devres.txt index 950856bd2e39..43cff70465ab 100644 --- a/trunk/Documentation/driver-model/devres.txt +++ b/trunk/Documentation/driver-model/devres.txt @@ -284,3 +284,7 @@ CLOCK PINCTRL devm_pinctrl_get() devm_pinctrl_put() + +PWM + devm_pwm_get() + devm_pwm_put() diff --git a/trunk/Documentation/filesystems/ext4.txt b/trunk/Documentation/filesystems/ext4.txt index 1b7f9acbcbbe..104322bf378c 100644 --- a/trunk/Documentation/filesystems/ext4.txt +++ b/trunk/Documentation/filesystems/ext4.txt @@ -375,6 +375,16 @@ dioread_nolock locking. If the dioread_nolock option is specified Because of the restrictions this options comprises it is off by default (e.g. dioread_lock). +max_dir_size_kb=n This limits the size of directories so that any + attempt to expand them beyond the specified + limit in kilobytes will cause an ENOSPC error. + This is useful in memory constrained + environments, where a very large directory can + cause severe performance problems or even + provoke the Out Of Memory killer. (For example, + if there is only 512mb memory available, a 176mb + directory may seriously cramp the system's style.) + i_version Enable 64-bit inode version support. This option is off by default. diff --git a/trunk/Documentation/filesystems/nfs/nfs.txt b/trunk/Documentation/filesystems/nfs/nfs.txt index f50f26ce6cd0..f2571c8bef74 100644 --- a/trunk/Documentation/filesystems/nfs/nfs.txt +++ b/trunk/Documentation/filesystems/nfs/nfs.txt @@ -12,9 +12,47 @@ and work is in progress on adding support for minor version 1 of the NFSv4 protocol. The purpose of this document is to provide information on some of the -upcall interfaces that are used in order to provide the NFS client with -some of the information that it requires in order to fully comply with -the NFS spec. +special features of the NFS client that can be configured by system +administrators. + + +The nfs4_unique_id parameter +============================ + +NFSv4 requires clients to identify themselves to servers with a unique +string. File open and lock state shared between one client and one server +is associated with this identity. To support robust NFSv4 state recovery +and transparent state migration, this identity string must not change +across client reboots. + +Without any other intervention, the Linux client uses a string that contains +the local system's node name. System administrators, however, often do not +take care to ensure that node names are fully qualified and do not change +over the lifetime of a client system. Node names can have other +administrative requirements that require particular behavior that does not +work well as part of an nfs_client_id4 string. + +The nfs.nfs4_unique_id boot parameter specifies a unique string that can be +used instead of a system's node name when an NFS client identifies itself to +a server. Thus, if the system's node name is not unique, or it changes, its +nfs.nfs4_unique_id stays the same, preventing collision with other clients +or loss of state during NFS reboot recovery or transparent state migration. + +The nfs.nfs4_unique_id string is typically a UUID, though it can contain +anything that is believed to be unique across all NFS clients. An +nfs4_unique_id string should be chosen when a client system is installed, +just as a system's root file system gets a fresh UUID in its label at +install time. + +The string should remain fixed for the lifetime of the client. It can be +changed safely if care is taken that the client shuts down cleanly and all +outstanding NFSv4 state has expired, to prevent loss of NFSv4 state. + +This string can be stored in an NFS client's grub.conf, or it can be provided +via a net boot facility such as PXE. It may also be specified as an nfs.ko +module parameter. Specifying a uniquifier string is not support for NFS +clients running in containers. + The DNS resolver ================ diff --git a/trunk/Documentation/filesystems/proc.txt b/trunk/Documentation/filesystems/proc.txt index fb0a6aeb936c..a1793d670cd0 100644 --- a/trunk/Documentation/filesystems/proc.txt +++ b/trunk/Documentation/filesystems/proc.txt @@ -33,7 +33,7 @@ Table of Contents 2 Modifying System Parameters 3 Per-Process Parameters - 3.1 /proc//oom_adj & /proc//oom_score_adj - Adjust the oom-killer + 3.1 /proc//oom_score_adj - Adjust the oom-killer score 3.2 /proc//oom_score - Display current oom-killer score 3.3 /proc//io - Display the IO accounting fields @@ -1320,10 +1320,10 @@ of the kernel. CHAPTER 3: PER-PROCESS PARAMETERS ------------------------------------------------------------------------------ -3.1 /proc//oom_adj & /proc//oom_score_adj- Adjust the oom-killer score +3.1 /proc//oom_score_adj- Adjust the oom-killer score -------------------------------------------------------------------------------- -These file can be used to adjust the badness heuristic used to select which +This file can be used to adjust the badness heuristic used to select which process gets killed in out of memory conditions. The badness heuristic assigns a value to each candidate task ranging from 0 @@ -1361,22 +1361,10 @@ same system, cpuset, mempolicy, or memory controller resources to use at least equivalent to discounting 50% of the task's allowed memory from being considered as scoring against the task. -For backwards compatibility with previous kernels, /proc//oom_adj may also -be used to tune the badness score. Its acceptable values range from -16 -(OOM_ADJUST_MIN) to +15 (OOM_ADJUST_MAX) and a special value of -17 -(OOM_DISABLE) to disable oom killing entirely for that task. Its value is -scaled linearly with /proc//oom_score_adj. - -Writing to /proc//oom_score_adj or /proc//oom_adj will change the -other with its scaled value. - The value of /proc//oom_score_adj may be reduced no lower than the last value set by a CAP_SYS_RESOURCE process. To reduce the value any lower requires CAP_SYS_RESOURCE. -NOTICE: /proc//oom_adj is deprecated and will be removed, please see -Documentation/feature-removal-schedule.txt. - Caveat: when a parent task is selected, the oom killer will sacrifice any first generation children with separate address spaces instead, if possible. This avoids servers and important system daemons from being killed and loses the @@ -1387,9 +1375,7 @@ minimal amount of work. ------------------------------------------------------------- This file can be used to check the current score used by the oom-killer is for -any given . Use it together with /proc//oom_adj to tune which -process should be killed in an out-of-memory situation. - +any given . 3.3 /proc//io - Display the IO accounting fields ------------------------------------------------------- diff --git a/trunk/Documentation/hwmon/da9052 b/trunk/Documentation/hwmon/da9052 index ef898553638e..5bc51346b689 100644 --- a/trunk/Documentation/hwmon/da9052 +++ b/trunk/Documentation/hwmon/da9052 @@ -56,6 +56,6 @@ The junction temperature is calculated: The junction temperature attribute is supported by the driver. The battery temperature is calculated: - Degree Celcius = 1 / (t1 + 1/298)- 273 + Degree Celsius = 1 / (t1 + 1/298)- 273 where t1 = (1/B)* ln(( ADCval * 2.5)/(R25*ITBAT*255)) Default values of R25, B, ITBAT are 10e3, 3380 and 50e-6 respectively. diff --git a/trunk/Documentation/hwmon/max1619 b/trunk/Documentation/hwmon/max1619 index d6f8d9cd7d7f..e6d87398cc8f 100644 --- a/trunk/Documentation/hwmon/max1619 +++ b/trunk/Documentation/hwmon/max1619 @@ -9,7 +9,7 @@ Supported chips: http://pdfserv.maxim-ic.com/en/ds/MAX1619.pdf Authors: - Alexey Fisher , + Oleksij Rempel , Jean Delvare Description diff --git a/trunk/Documentation/hwmon/twl4030-madc-hwmon b/trunk/Documentation/hwmon/twl4030-madc-hwmon index ef7984317cec..c3a3a5be10ad 100644 --- a/trunk/Documentation/hwmon/twl4030-madc-hwmon +++ b/trunk/Documentation/hwmon/twl4030-madc-hwmon @@ -41,5 +41,5 @@ Channel Signal The Sysfs nodes will represent the voltage in the units of mV, the temperature channel shows the converted temperature in -degree celcius. The Battery charging current channel represents +degree Celsius. The Battery charging current channel represents battery charging current in mA. diff --git a/trunk/Documentation/i2c/busses/i2c-viapro b/trunk/Documentation/i2c/busses/i2c-viapro index 2e758b0e9456..b88f91ae580e 100644 --- a/trunk/Documentation/i2c/busses/i2c-viapro +++ b/trunk/Documentation/i2c/busses/i2c-viapro @@ -20,7 +20,10 @@ Supported adapters: Datasheet: available on http://linux.via.com.tw * VIA Technologies, Inc. VX855/VX875 - Datasheet: Availability unknown + Datasheet: available on http://linux.via.com.tw + + * VIA Technologies, Inc. VX900 + Datasheet: available on http://linux.via.com.tw Authors: Kyösti Mälkki , @@ -57,6 +60,7 @@ Your lspci -n listing must show one of these : device 1106:8324 (CX700) device 1106:8353 (VX800/VX820) device 1106:8409 (VX855/VX875) + device 1106:8410 (VX900) If none of these show up, you should look in the BIOS for settings like enable ACPI / SMBus or even USB. diff --git a/trunk/Documentation/i2c/muxes/i2c-mux-gpio b/trunk/Documentation/i2c/muxes/i2c-mux-gpio index bd9b2299b739..d4d91a53fc39 100644 --- a/trunk/Documentation/i2c/muxes/i2c-mux-gpio +++ b/trunk/Documentation/i2c/muxes/i2c-mux-gpio @@ -63,3 +63,21 @@ static struct platform_device myboard_i2cmux = { .platform_data = &myboard_i2cmux_data, }, }; + +If you don't know the absolute GPIO pin numbers at registration time, +you can instead provide a chip name (.chip_name) and relative GPIO pin +numbers, and the i2c-gpio-mux driver will do the work for you, +including deferred probing if the GPIO chip isn't immediately +available. + +Device Registration +------------------- + +When registering your i2c-gpio-mux device, you should pass the number +of any GPIO pin it uses as the device ID. This guarantees that every +instance has a different ID. + +Alternatively, if you don't need a stable device name, you can simply +pass PLATFORM_DEVID_AUTO as the device ID, and the platform core will +assign a dynamic ID to your device. If you do not know the absolute +GPIO pin numbers at registration time, this is even the only option. diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index f777fa96243d..e2ed3360b708 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -1730,6 +1730,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. will be autodetected by the client, and it will fall back to using the idmapper. To turn off this behaviour, set the value to '0'. + nfs.nfs4_unique_id= + [NFS4] Specify an additional fixed unique ident- + ification string that NFSv4 clients can insert into + their nfs_client_id4 string. This is typically a + UUID that is generated at system install time. nfs.send_implementation_id = [NFSv4.1] Send client implementation identification diff --git a/trunk/Documentation/leds/leds-lp5523.txt b/trunk/Documentation/leds/leds-lp5523.txt index fad2feb8b7ce..c2743f59f9ac 100644 --- a/trunk/Documentation/leds/leds-lp5523.txt +++ b/trunk/Documentation/leds/leds-lp5523.txt @@ -10,8 +10,22 @@ Contact: Samu Onkalo (samu.p.onkalo-at-nokia.com) Description ----------- LP5523 can drive up to 9 channels. Leds can be controlled directly via -the led class control interface. Channels have generic names: -lp5523:channelx where x is 0...8 +the led class control interface. +The name of each channel is configurable in the platform data - name and label. +There are three options to make the channel name. + +a) Define the 'name' in the platform data +To make specific channel name, then use 'name' platform data. +/sys/class/leds/R1 (name: 'R1') +/sys/class/leds/B1 (name: 'B1') + +b) Use the 'label' with no 'name' field +For one device name with channel number, then use 'label'. +/sys/class/leds/RGB:channelN (label: 'RGB', N: 0 ~ 8) + +c) Default +If both fields are NULL, 'lp5523' is used by default. +/sys/class/leds/lp5523:channelN (N: 0 ~ 8) The chip provides 3 engines. Each engine can control channels without interaction from the main CPU. Details of the micro engine code can be found @@ -46,12 +60,13 @@ Note - chan_nr can have values between 0 and 8. static struct lp5523_led_config lp5523_led_config[] = { { + .name = "D1", .chan_nr = 0, .led_current = 50, .max_current = 130, }, ... - }, { + { .chan_nr = 8, .led_current = 50, .max_current = 130, diff --git a/trunk/Documentation/memory.txt b/trunk/Documentation/memory.txt deleted file mode 100644 index 802efe58647c..000000000000 --- a/trunk/Documentation/memory.txt +++ /dev/null @@ -1,33 +0,0 @@ -There are several classic problems related to memory on Linux -systems. - - 1) There are some motherboards that will not cache above - a certain quantity of memory. If you have one of these - motherboards, your system will be SLOWER, not faster - as you add more memory. Consider exchanging your - motherboard. - -All of these problems can be addressed with the "mem=XXXM" boot option -(where XXX is the size of RAM to use in megabytes). -It can also tell Linux to use less memory than is actually installed. -If you use "mem=" on a machine with PCI, consider using "memmap=" to avoid -physical address space collisions. - -See the documentation of your boot loader (LILO, grub, loadlin, etc.) about -how to pass options to the kernel. - -There are other memory problems which Linux cannot deal with. Random -corruption of memory is usually a sign of serious hardware trouble. -Try: - - * Reducing memory settings in the BIOS to the most conservative - timings. - - * Adding a cooling fan. - - * Not overclocking your CPU. - - * Having the memory tested in a memory tester or exchanged - with the vendor. Consider testing it with memtest86 yourself. - - * Exchanging your CPU, cache, or motherboard for one that works. diff --git a/trunk/Documentation/percpu-rw-semaphore.txt b/trunk/Documentation/percpu-rw-semaphore.txt new file mode 100644 index 000000000000..7d3c82431909 --- /dev/null +++ b/trunk/Documentation/percpu-rw-semaphore.txt @@ -0,0 +1,27 @@ +Percpu rw semaphores +-------------------- + +Percpu rw semaphores is a new read-write semaphore design that is +optimized for locking for reading. + +The problem with traditional read-write semaphores is that when multiple +cores take the lock for reading, the cache line containing the semaphore +is bouncing between L1 caches of the cores, causing performance +degradation. + +Locking for reading is very fast, it uses RCU and it avoids any atomic +instruction in the lock and unlock path. On the other hand, locking for +writing is very expensive, it calls synchronize_rcu() that can take +hundreds of milliseconds. + +The lock is declared with "struct percpu_rw_semaphore" type. +The lock is initialized percpu_init_rwsem, it returns 0 on success and +-ENOMEM on allocation failure. +The lock must be freed with percpu_free_rwsem to avoid memory leak. + +The lock is locked for read with percpu_down_read, percpu_up_read and +for write with percpu_down_write, percpu_up_write. + +The idea of using RCU for optimized rw-lock was introduced by +Eric Dumazet . +The code was written by Mikulas Patocka diff --git a/trunk/Documentation/prio_tree.txt b/trunk/Documentation/prio_tree.txt deleted file mode 100644 index 3aa68f9a117b..000000000000 --- a/trunk/Documentation/prio_tree.txt +++ /dev/null @@ -1,107 +0,0 @@ -The prio_tree.c code indexes vmas using 3 different indexes: - * heap_index = vm_pgoff + vm_size_in_pages : end_vm_pgoff - * radix_index = vm_pgoff : start_vm_pgoff - * size_index = vm_size_in_pages - -A regular radix-priority-search-tree indexes vmas using only heap_index and -radix_index. The conditions for indexing are: - * ->heap_index >= ->left->heap_index && - ->heap_index >= ->right->heap_index - * if (->heap_index == ->left->heap_index) - then ->radix_index < ->left->radix_index; - * if (->heap_index == ->right->heap_index) - then ->radix_index < ->right->radix_index; - * nodes are hashed to left or right subtree using radix_index - similar to a pure binary radix tree. - -A regular radix-priority-search-tree helps to store and query -intervals (vmas). However, a regular radix-priority-search-tree is only -suitable for storing vmas with different radix indices (vm_pgoff). - -Therefore, the prio_tree.c extends the regular radix-priority-search-tree -to handle many vmas with the same vm_pgoff. Such vmas are handled in -2 different ways: 1) All vmas with the same radix _and_ heap indices are -linked using vm_set.list, 2) if there are many vmas with the same radix -index, but different heap indices and if the regular radix-priority-search -tree cannot index them all, we build an overflow-sub-tree that indexes such -vmas using heap and size indices instead of heap and radix indices. For -example, in the figure below some vmas with vm_pgoff = 0 (zero) are -indexed by regular radix-priority-search-tree whereas others are pushed -into an overflow-subtree. Note that all vmas in an overflow-sub-tree have -the same vm_pgoff (radix_index) and if necessary we build different -overflow-sub-trees to handle each possible radix_index. For example, -in figure we have 3 overflow-sub-trees corresponding to radix indices -0, 2, and 4. - -In the final tree the first few (prio_tree_root->index_bits) levels -are indexed using heap and radix indices whereas the overflow-sub-trees below -those levels (i.e. levels prio_tree_root->index_bits + 1 and higher) are -indexed using heap and size indices. In overflow-sub-trees the size_index -is used for hashing the nodes to appropriate places. - -Now, an example prio_tree: - - vmas are represented [radix_index, size_index, heap_index] - i.e., [start_vm_pgoff, vm_size_in_pages, end_vm_pgoff] - -level prio_tree_root->index_bits = 3 ------ - _ - 0 [0,7,7] | - / \ | - ------------------ ------------ | Regular - / \ | radix priority - 1 [1,6,7] [4,3,7] | search tree - / \ / \ | - ------- ----- ------ ----- | heap-and-radix - / \ / \ | indexed - 2 [0,6,6] [2,5,7] [5,2,7] [6,1,7] | - / \ / \ / \ / \ | - 3 [0,5,5] [1,5,6] [2,4,6] [3,4,7] [4,2,6] [5,1,6] [6,0,6] [7,0,7] | - / / / _ - / / / _ - 4 [0,4,4] [2,3,5] [4,1,5] | - / / / | - 5 [0,3,3] [2,2,4] [4,0,4] | Overflow-sub-trees - / / | - 6 [0,2,2] [2,1,3] | heap-and-size - / / | indexed - 7 [0,1,1] [2,0,2] | - / | - 8 [0,0,0] | - _ - -Note that we use prio_tree_root->index_bits to optimize the height -of the heap-and-radix indexed tree. Since prio_tree_root->index_bits is -set according to the maximum end_vm_pgoff mapped, we are sure that all -bits (in vm_pgoff) above prio_tree_root->index_bits are 0 (zero). Therefore, -we only use the first prio_tree_root->index_bits as radix_index. -Whenever index_bits is increased in prio_tree_expand, we shuffle the tree -to make sure that the first prio_tree_root->index_bits levels of the tree -is indexed properly using heap and radix indices. - -We do not optimize the height of overflow-sub-trees using index_bits. -The reason is: there can be many such overflow-sub-trees and all of -them have to be suffled whenever the index_bits increases. This may involve -walking the whole prio_tree in prio_tree_insert->prio_tree_expand code -path which is not desirable. Hence, we do not optimize the height of the -heap-and-size indexed overflow-sub-trees using prio_tree->index_bits. -Instead the overflow sub-trees are indexed using full BITS_PER_LONG bits -of size_index. This may lead to skewed sub-trees because most of the -higher significant bits of the size_index are likely to be 0 (zero). In -the example above, all 3 overflow-sub-trees are skewed. This may marginally -affect the performance. However, processes rarely map many vmas with the -same start_vm_pgoff but different end_vm_pgoffs. Therefore, we normally -do not require overflow-sub-trees to index all vmas. - -From the above discussion it is clear that the maximum height of -a prio_tree can be prio_tree_root->index_bits + BITS_PER_LONG. -However, in most of the common cases we do not need overflow-sub-trees, -so the tree height in the common cases will be prio_tree_root->index_bits. - -It is fair to mention here that the prio_tree_root->index_bits -is increased on demand, however, the index_bits is not decreased when -vmas are removed from the prio_tree. That's tricky to do. Hence, it's -left as a home work problem. - - diff --git a/trunk/Documentation/pwm.txt b/trunk/Documentation/pwm.txt index 554290ebab94..7d2b4c9b544b 100644 --- a/trunk/Documentation/pwm.txt +++ b/trunk/Documentation/pwm.txt @@ -36,7 +36,8 @@ Legacy users can request a PWM device using pwm_request() and free it after usage with pwm_free(). New users should use the pwm_get() function and pass to it the consumer -device or a consumer name. pwm_put() is used to free the PWM device. +device or a consumer name. pwm_put() is used to free the PWM device. Managed +variants of these functions, devm_pwm_get() and devm_pwm_put(), also exist. After being requested a PWM has to be configured using: diff --git a/trunk/Documentation/rbtree.txt b/trunk/Documentation/rbtree.txt index 8d32d85a5234..61b6c48871a0 100644 --- a/trunk/Documentation/rbtree.txt +++ b/trunk/Documentation/rbtree.txt @@ -193,24 +193,55 @@ Example: Support for Augmented rbtrees ----------------------------- -Augmented rbtree is an rbtree with "some" additional data stored in each node. -This data can be used to augment some new functionality to rbtree. -Augmented rbtree is an optional feature built on top of basic rbtree -infrastructure. An rbtree user who wants this feature will have to call the -augmentation functions with the user provided augmentation callback -when inserting and erasing nodes. - -On insertion, the user must call rb_augment_insert() once the new node is in -place. This will cause the augmentation function callback to be called for -each node between the new node and the root which has been affected by the -insertion. - -When erasing a node, the user must call rb_augment_erase_begin() first to -retrieve the deepest node on the rebalance path. Then, after erasing the -original node, the user must call rb_augment_erase_end() with the deepest -node found earlier. This will cause the augmentation function to be called -for each affected node between the deepest node and the root. - +Augmented rbtree is an rbtree with "some" additional data stored in +each node, where the additional data for node N must be a function of +the contents of all nodes in the subtree rooted at N. This data can +be used to augment some new functionality to rbtree. Augmented rbtree +is an optional feature built on top of basic rbtree infrastructure. +An rbtree user who wants this feature will have to call the augmentation +functions with the user provided augmentation callback when inserting +and erasing nodes. + +C files implementing augmented rbtree manipulation must include + instead of . Note that +linux/rbtree_augmented.h exposes some rbtree implementations details +you are not expected to rely on; please stick to the documented APIs +there and do not include from header files +either so as to minimize chances of your users accidentally relying on +such implementation details. + +On insertion, the user must update the augmented information on the path +leading to the inserted node, then call rb_link_node() as usual and +rb_augment_inserted() instead of the usual rb_insert_color() call. +If rb_augment_inserted() rebalances the rbtree, it will callback into +a user provided function to update the augmented information on the +affected subtrees. + +When erasing a node, the user must call rb_erase_augmented() instead of +rb_erase(). rb_erase_augmented() calls back into user provided functions +to updated the augmented information on affected subtrees. + +In both cases, the callbacks are provided through struct rb_augment_callbacks. +3 callbacks must be defined: + +- A propagation callback, which updates the augmented value for a given + node and its ancestors, up to a given stop point (or NULL to update + all the way to the root). + +- A copy callback, which copies the augmented value for a given subtree + to a newly assigned subtree root. + +- A tree rotation callback, which copies the augmented value for a given + subtree to a newly assigned subtree root AND recomputes the augmented + information for the former subtree root. + +The compiled code for rb_erase_augmented() may inline the propagation and +copy callbacks, which results in a large function, so each augmented rbtree +user should have a single rb_erase_augmented() call site in order to limit +compiled code size. + + +Sample usage: Interval tree is an example of augmented rb tree. Reference - "Introduction to Algorithms" by Cormen, Leiserson, Rivest and Stein. @@ -230,26 +261,132 @@ and its immediate children. And this will be used in O(log n) lookup for lowest match (lowest start address among all possible matches) with something like: -find_lowest_match(lo, hi, node) +struct interval_tree_node * +interval_tree_first_match(struct rb_root *root, + unsigned long start, unsigned long last) { - lowest_match = NULL; - while (node) { - if (max_hi(node->left) > lo) { - // Lowest overlap if any must be on left side - node = node->left; - } else if (overlap(lo, hi, node)) { - lowest_match = node; - break; - } else if (lo > node->lo) { - // Lowest overlap if any must be on right side - node = node->right; - } else { - break; + struct interval_tree_node *node; + + if (!root->rb_node) + return NULL; + node = rb_entry(root->rb_node, struct interval_tree_node, rb); + + while (true) { + if (node->rb.rb_left) { + struct interval_tree_node *left = + rb_entry(node->rb.rb_left, + struct interval_tree_node, rb); + if (left->__subtree_last >= start) { + /* + * Some nodes in left subtree satisfy Cond2. + * Iterate to find the leftmost such node N. + * If it also satisfies Cond1, that's the match + * we are looking for. Otherwise, there is no + * matching interval as nodes to the right of N + * can't satisfy Cond1 either. + */ + node = left; + continue; + } } + if (node->start <= last) { /* Cond1 */ + if (node->last >= start) /* Cond2 */ + return node; /* node is leftmost match */ + if (node->rb.rb_right) { + node = rb_entry(node->rb.rb_right, + struct interval_tree_node, rb); + if (node->__subtree_last >= start) + continue; + } + } + return NULL; /* No match */ + } +} + +Insertion/removal are defined using the following augmented callbacks: + +static inline unsigned long +compute_subtree_last(struct interval_tree_node *node) +{ + unsigned long max = node->last, subtree_last; + if (node->rb.rb_left) { + subtree_last = rb_entry(node->rb.rb_left, + struct interval_tree_node, rb)->__subtree_last; + if (max < subtree_last) + max = subtree_last; + } + if (node->rb.rb_right) { + subtree_last = rb_entry(node->rb.rb_right, + struct interval_tree_node, rb)->__subtree_last; + if (max < subtree_last) + max = subtree_last; + } + return max; +} + +static void augment_propagate(struct rb_node *rb, struct rb_node *stop) +{ + while (rb != stop) { + struct interval_tree_node *node = + rb_entry(rb, struct interval_tree_node, rb); + unsigned long subtree_last = compute_subtree_last(node); + if (node->__subtree_last == subtree_last) + break; + node->__subtree_last = subtree_last; + rb = rb_parent(&node->rb); } - return lowest_match; } -Finding exact match will be to first find lowest match and then to follow -successor nodes looking for exact match, until the start of a node is beyond -the hi value we are looking for. +static void augment_copy(struct rb_node *rb_old, struct rb_node *rb_new) +{ + struct interval_tree_node *old = + rb_entry(rb_old, struct interval_tree_node, rb); + struct interval_tree_node *new = + rb_entry(rb_new, struct interval_tree_node, rb); + + new->__subtree_last = old->__subtree_last; +} + +static void augment_rotate(struct rb_node *rb_old, struct rb_node *rb_new) +{ + struct interval_tree_node *old = + rb_entry(rb_old, struct interval_tree_node, rb); + struct interval_tree_node *new = + rb_entry(rb_new, struct interval_tree_node, rb); + + new->__subtree_last = old->__subtree_last; + old->__subtree_last = compute_subtree_last(old); +} + +static const struct rb_augment_callbacks augment_callbacks = { + augment_propagate, augment_copy, augment_rotate +}; + +void interval_tree_insert(struct interval_tree_node *node, + struct rb_root *root) +{ + struct rb_node **link = &root->rb_node, *rb_parent = NULL; + unsigned long start = node->start, last = node->last; + struct interval_tree_node *parent; + + while (*link) { + rb_parent = *link; + parent = rb_entry(rb_parent, struct interval_tree_node, rb); + if (parent->__subtree_last < last) + parent->__subtree_last = last; + if (start < parent->start) + link = &parent->rb.rb_left; + else + link = &parent->rb.rb_right; + } + + node->__subtree_last = last; + rb_link_node(&node->rb, rb_parent, link); + rb_insert_augmented(&node->rb, root, &augment_callbacks); +} + +void interval_tree_remove(struct interval_tree_node *node, + struct rb_root *root) +{ + rb_erase_augmented(&node->rb, root, &augment_callbacks); +} diff --git a/trunk/Documentation/sound/alsa/ALSA-Configuration.txt b/trunk/Documentation/sound/alsa/ALSA-Configuration.txt index 4e4d0bc9816f..d90d8ec2853d 100644 --- a/trunk/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/trunk/Documentation/sound/alsa/ALSA-Configuration.txt @@ -860,8 +860,14 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. [Multiple options for each card instance] model - force the model name - position_fix - Fix DMA pointer (0 = auto, 1 = use LPIB, 2 = POSBUF, - 3 = VIACOMBO, 4 = COMBO) + position_fix - Fix DMA pointer + -1 = system default: choose appropriate one per controller + hardware + 0 = auto: falls back to LPIB when POSBUF doesn't work + 1 = use LPIB + 2 = POSBUF: use position buffer + 3 = VIACOMBO: VIA-specific workaround for capture + 4 = COMBO: use LPIB for playback, auto for capture stream probe_mask - Bitmask to probe codecs (default = -1, meaning all slots) When the bit 8 (0x100) is set, the lower 8 bits are used as the "fixed" codec slots; i.e. the driver probes the diff --git a/trunk/Documentation/sound/alsa/Channel-Mapping-API.txt b/trunk/Documentation/sound/alsa/Channel-Mapping-API.txt new file mode 100644 index 000000000000..3c43d1a4ca0e --- /dev/null +++ b/trunk/Documentation/sound/alsa/Channel-Mapping-API.txt @@ -0,0 +1,153 @@ +ALSA PCM channel-mapping API +============================ + Takashi Iwai + +GENERAL +------- + +The channel mapping API allows user to query the possible channel maps +and the current channel map, also optionally to modify the channel map +of the current stream. + +A channel map is an array of position for each PCM channel. +Typically, a stereo PCM stream has a channel map of + { front_left, front_right } +while a 4.0 surround PCM stream has a channel map of + { front left, front right, rear left, rear right }. + +The problem, so far, was that we had no standard channel map +explicitly, and applications had no way to know which channel +corresponds to which (speaker) position. Thus, applications applied +wrong channels for 5.1 outputs, and you hear suddenly strange sound +from rear. Or, some devices secretly assume that center/LFE is the +third/fourth channels while others that C/LFE as 5th/6th channels. + +Also, some devices such as HDMI are configurable for different speaker +positions even with the same number of total channels. However, there +was no way to specify this because of lack of channel map +specification. These are the main motivations for the new channel +mapping API. + + +DESIGN +------ + +Actually, "the channel mapping API" doesn't introduce anything new in +the kernel/user-space ABI perspective. It uses only the existing +control element features. + +As a ground design, each PCM substream may contain a control element +providing the channel mapping information and configuration. This +element is specified by: + iface = SNDRV_CTL_ELEM_IFACE_PCM + name = "Playback Channel Map" or "Capture Channel Map" + device = the same device number for the assigned PCM substream + index = the same index number for the assigned PCM substream + +Note the name is different depending on the PCM substream direction. + +Each control element provides at least the TLV read operation and the +read operation. Optionally, the write operation can be provided to +allow user to change the channel map dynamically. + +* TLV + +The TLV operation gives the list of available channel +maps. A list item of a channel map is usually a TLV of + type data-bytes ch0 ch1 ch2... +where type is the TLV type value, the second argument is the total +bytes (not the numbers) of channel values, and the rest are the +position value for each channel. + +As a TLV type, either SNDRV_CTL_TLVT_CHMAP_FIXED, +SNDRV_CTL_TLV_CHMAP_VAR or SNDRV_CTL_TLVT_CHMAP_PAIRED can be used. +The _FIXED type is for a channel map with the fixed channel position +while the latter two are for flexible channel positions. _VAR type is +for a channel map where all channels are freely swappable and _PAIRED +type is where pair-wise channels are swappable. For example, when you +have {FL/FR/RL/RR} channel map, _PAIRED type would allow you to swap +only {RL/RR/FL/FR} while _VAR type would allow even swapping FL and +RR. + +These new TLV types are defined in sound/tlv.h. + +The available channel position values are defined in sound/asound.h, +here is a cut: + +/* channel positions */ +enum { + SNDRV_CHMAP_UNKNOWN = 0, + SNDRV_CHMAP_NA, /* N/A, silent */ + SNDRV_CHMAP_MONO, /* mono stream */ + /* this follows the alsa-lib mixer channel value + 3 */ + SNDRV_CHMAP_FL, /* front left */ + SNDRV_CHMAP_FR, /* front right */ + SNDRV_CHMAP_RL, /* rear left */ + SNDRV_CHMAP_RR, /* rear right */ + SNDRV_CHMAP_FC, /* front center */ + SNDRV_CHMAP_LFE, /* LFE */ + SNDRV_CHMAP_SL, /* side left */ + SNDRV_CHMAP_SR, /* side right */ + SNDRV_CHMAP_RC, /* rear center */ + /* new definitions */ + SNDRV_CHMAP_FLC, /* front left center */ + SNDRV_CHMAP_FRC, /* front right center */ + SNDRV_CHMAP_RLC, /* rear left center */ + SNDRV_CHMAP_RRC, /* rear right center */ + SNDRV_CHMAP_FLW, /* front left wide */ + SNDRV_CHMAP_FRW, /* front right wide */ + SNDRV_CHMAP_FLH, /* front left high */ + SNDRV_CHMAP_FCH, /* front center high */ + SNDRV_CHMAP_FRH, /* front right high */ + SNDRV_CHMAP_TC, /* top center */ + SNDRV_CHMAP_TFL, /* top front left */ + SNDRV_CHMAP_TFR, /* top front right */ + SNDRV_CHMAP_TFC, /* top front center */ + SNDRV_CHMAP_TRL, /* top rear left */ + SNDRV_CHMAP_TRR, /* top rear right */ + SNDRV_CHMAP_TRC, /* top rear center */ + SNDRV_CHMAP_LAST = SNDRV_CHMAP_TRC, +}; + +When a PCM stream can provide more than one channel map, you can +provide multiple channel maps in a TLV container type. The TLV data +to be returned will contain such as: + SNDRV_CTL_TLVT_CONTAINER 96 + SNDRV_CTL_TLVT_CHMAP_FIXED 4 SNDRV_CHMAP_FC + SNDRV_CTL_TLVT_CHMAP_FIXED 8 SNDRV_CHMAP_FL SNDRV_CHMAP_FR + SNDRV_CTL_TLVT_CHMAP_FIXED 16 NDRV_CHMAP_FL SNDRV_CHMAP_FR \ + SNDRV_CHMAP_RL SNDRV_CHMAP_RR + +The channel position is provided in LSB 16bits. The upper bits are +used for bit flags. + +#define SNDRV_CHMAP_POSITION_MASK 0xffff +#define SNDRV_CHMAP_PHASE_INVERSE (0x01 << 16) +#define SNDRV_CHMAP_DRIVER_SPEC (0x02 << 16) + +SNDRV_CHMAP_PHASE_INVERSE indicates the channel is phase inverted, +(thus summing left and right channels would result in almost silence). +Some digital mic devices have this. + +When SNDRV_CHMAP_DRIVER_SPEC is set, all the channel position values +don't follow the standard definition above but driver-specific. + +* READ OPERATION + +The control read operation is for providing the current channel map of +the given stream. The control element returns an integer array +containing the position of each channel. + +When this is performed before the number of the channel is specified +(i.e. hw_params is set), it should return all channels set to +UNKNOWN. + +* WRITE OPERATION + +The control write operation is optional, and only for devices that can +change the channel configuration on the fly, such as HDMI. User needs +to pass an integer value containing the valid channel positions for +all channels of the assigned PCM substream. + +This operation is allowed only at PCM PREPARED state. When called in +other states, it shall return an error. diff --git a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt index a92bba816843..16dfe57f1731 100644 --- a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt @@ -74,7 +74,8 @@ CMI9880 AD1882 / AD1882A ================ - 3stack 3-stack mode (default) + 3stack 3-stack mode + 3stack-automute 3-stack with automute front HP (default) 6stack 6-stack mode AD1884A / AD1883 / AD1984A / AD1984B diff --git a/trunk/Documentation/target/tcm_mod_builder.py b/trunk/Documentation/target/tcm_mod_builder.py index a78879b01f09..3fe0d812dcec 100755 --- a/trunk/Documentation/target/tcm_mod_builder.py +++ b/trunk/Documentation/target/tcm_mod_builder.py @@ -402,8 +402,6 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): buf += " .queue_data_in = " + fabric_mod_name + "_queue_data_in,\n" buf += " .queue_status = " + fabric_mod_name + "_queue_status,\n" buf += " .queue_tm_rsp = " + fabric_mod_name + "_queue_tm_rsp,\n" - buf += " .get_fabric_sense_len = " + fabric_mod_name + "_get_fabric_sense_len,\n" - buf += " .set_fabric_sense_len = " + fabric_mod_name + "_set_fabric_sense_len,\n" buf += " .is_state_remove = " + fabric_mod_name + "_is_state_remove,\n" buf += " /*\n" buf += " * Setup function pointers for generic logic in target_core_fabric_configfs.c\n" @@ -906,20 +904,6 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name): buf += "}\n\n" bufi += "int " + fabric_mod_name + "_queue_tm_rsp(struct se_cmd *);\n" - if re.search('get_fabric_sense_len\)\(', fo): - buf += "u16 " + fabric_mod_name + "_get_fabric_sense_len(void)\n" - buf += "{\n" - buf += " return 0;\n" - buf += "}\n\n" - bufi += "u16 " + fabric_mod_name + "_get_fabric_sense_len(void);\n" - - if re.search('set_fabric_sense_len\)\(', fo): - buf += "u16 " + fabric_mod_name + "_set_fabric_sense_len(struct se_cmd *se_cmd, u32 sense_length)\n" - buf += "{\n" - buf += " return 0;\n" - buf += "}\n\n" - bufi += "u16 " + fabric_mod_name + "_set_fabric_sense_len(struct se_cmd *, u32);\n" - if re.search('is_state_remove\)\(', fo): buf += "int " + fabric_mod_name + "_is_state_remove(struct se_cmd *se_cmd)\n" buf += "{\n" diff --git a/trunk/Documentation/virtual/uml/UserModeLinux-HOWTO.txt b/trunk/Documentation/virtual/uml/UserModeLinux-HOWTO.txt index 77dfecf4e2d6..a5f8436753e7 100644 --- a/trunk/Documentation/virtual/uml/UserModeLinux-HOWTO.txt +++ b/trunk/Documentation/virtual/uml/UserModeLinux-HOWTO.txt @@ -3591,7 +3591,7 @@ Looking at the source shows that the fault happened during a call to - copy_to_user to copy the data into the kernel: + copy_from_user to copy the data into the kernel: 107 count -= chars; diff --git a/trunk/Documentation/vm/unevictable-lru.txt b/trunk/Documentation/vm/unevictable-lru.txt index fa206cccf89f..a68db7692ee8 100644 --- a/trunk/Documentation/vm/unevictable-lru.txt +++ b/trunk/Documentation/vm/unevictable-lru.txt @@ -197,12 +197,8 @@ the pages are also "rescued" from the unevictable list in the process of freeing them. page_evictable() also checks for mlocked pages by testing an additional page -flag, PG_mlocked (as wrapped by PageMlocked()). If the page is NOT mlocked, -and a non-NULL VMA is supplied, page_evictable() will check whether the VMA is -VM_LOCKED via is_mlocked_vma(). is_mlocked_vma() will SetPageMlocked() and -update the appropriate statistics if the vma is VM_LOCKED. This method allows -efficient "culling" of pages in the fault path that are being faulted in to -VM_LOCKED VMAs. +flag, PG_mlocked (as wrapped by PageMlocked()), which is set when a page is +faulted into a VM_LOCKED vma, or found in a vma being VM_LOCKED. VMSCAN'S HANDLING OF UNEVICTABLE PAGES @@ -371,8 +367,8 @@ mlock_fixup() filters several classes of "special" VMAs: mlock_fixup() will call make_pages_present() in the hugetlbfs VMA range to allocate the huge pages and populate the ptes. -3) VMAs with VM_DONTEXPAND or VM_RESERVED are generally userspace mappings of - kernel pages, such as the VDSO page, relay channel pages, etc. These pages +3) VMAs with VM_DONTEXPAND are generally userspace mappings of kernel pages, + such as the VDSO page, relay channel pages, etc. These pages are inherently unevictable and are not managed on the LRU lists. mlock_fixup() treats these VMAs the same as hugetlbfs VMAs. It calls make_pages_present() to populate the ptes. @@ -651,7 +647,7 @@ PAGE RECLAIM IN shrink_*_list() ------------------------------- shrink_active_list() culls any obviously unevictable pages - i.e. -!page_evictable(page, NULL) - diverting these to the unevictable list. +!page_evictable(page) - diverting these to the unevictable list. However, shrink_active_list() only sees unevictable pages that made it onto the active/inactive lru lists. Note that these pages do not have PageUnevictable set - otherwise they would be on the unevictable list and shrink_active_list diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 84ee86719bd9..e73060fe0788 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -1544,7 +1544,7 @@ S: Supported F: drivers/rtc/rtc-bfin.c BLACKFIN SDH DRIVER -M: Cliff Cai +M: Sonic Zhang L: uclinux-dist-devel@blackfin.uclinux.org W: http://blackfin.uclinux.org S: Supported @@ -1958,10 +1958,10 @@ S: Supported F: drivers/platform/x86/classmate-laptop.c COCCINELLE/Semantic Patches (SmPL) -M: Julia Lawall +M: Julia Lawall M: Gilles Muller -M: Nicolas Palix -L: cocci@diku.dk (moderated for non-subscribers) +M: Nicolas Palix +L: cocci@systeme.lip6.fr (moderated for non-subscribers) W: http://coccinelle.lip6.fr/ S: Supported F: scripts/coccinelle/ @@ -2423,11 +2423,6 @@ S: Maintained F: Documentation/hwmon/dme1737 F: drivers/hwmon/dme1737.c -DOCBOOK FOR DOCUMENTATION -M: Randy Dunlap -S: Maintained -F: scripts/kernel-doc - DOCKING STATION DRIVER M: Shaohua Li L: linux-acpi@vger.kernel.org @@ -5207,8 +5202,10 @@ S: Maintained F: drivers/mmc/host/omap.c OMAP HS MMC SUPPORT +M: Venkatraman S +L: linux-mmc@vger.kernel.org L: linux-omap@vger.kernel.org -S: Orphan +S: Maintained F: drivers/mmc/host/omap_hsmmc.c OMAP RANDOM NUMBER GENERATOR SUPPORT @@ -7039,6 +7036,14 @@ S: Maintained F: Documentation/svga.txt F: arch/x86/boot/video* +SWIOTLB SUBSYSTEM +M: Konrad Rzeszutek Wilk +L: linux-kernel@vger.kernel.org +S: Supported +F: lib/swiotlb.c +F: arch/*/kernel/pci-swiotlb.c +F: include/linux/swiotlb.h + SYSV FILESYSTEM M: Christoph Hellwig S: Maintained @@ -7170,6 +7175,8 @@ F: drivers/char/tlclk.c TENSILICA XTENSA PORT (xtensa) M: Chris Zankel +M: Max Filippov +L: linux-xtensa@linux-xtensa.org S: Maintained F: arch/xtensa/ @@ -7457,6 +7464,12 @@ F: drivers/mtd/ubi/ F: include/linux/mtd/ubi.h F: include/mtd/ubi-user.h +UNSORTED BLOCK IMAGES (UBI) Fastmap +M: Richard Weinberger +L: linux-mtd@lists.infradead.org +S: Maintained +F: drivers/mtd/ubi/fastmap.c + USB ACM DRIVER M: Oliver Neukum L: linux-usb@vger.kernel.org diff --git a/trunk/Makefile b/trunk/Makefile index 86eb6acb3978..5d8e7f258388 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -664,22 +664,9 @@ ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y) endif # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments -# But warn user when we do so -warn-assign = \ -$(warning "WARNING: Appending $$K$(1) ($(K$(1))) from $(origin K$(1)) to kernel $$$(1)") - -ifneq ($(KCPPFLAGS),) - $(call warn-assign,CPPFLAGS) - KBUILD_CPPFLAGS += $(KCPPFLAGS) -endif -ifneq ($(KAFLAGS),) - $(call warn-assign,AFLAGS) - KBUILD_AFLAGS += $(KAFLAGS) -endif -ifneq ($(KCFLAGS),) - $(call warn-assign,CFLAGS) - KBUILD_CFLAGS += $(KCFLAGS) -endif +KBUILD_CPPFLAGS += $(KCPPFLAGS) +KBUILD_AFLAGS += $(KAFLAGS) +KBUILD_CFLAGS += $(KCFLAGS) # Use --build-id when available. LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ diff --git a/trunk/README b/trunk/README index 9beaed0ed620..f32710a817fc 100644 --- a/trunk/README +++ b/trunk/README @@ -206,6 +206,24 @@ CONFIGURING the kernel: "make randconfig" Create a ./.config file by setting symbol values to random values. + "make localmodconfig" Create a config based on current config and + loaded modules (lsmod). Disables any module + option that is not needed for the loaded modules. + + To create a localmodconfig for another machine, + store the lsmod of that machine into a file + and pass it in as a LSMOD parameter. + + target$ lsmod > /tmp/mylsmod + target$ scp /tmp/mylsmod host:/tmp + + host$ make LSMOD=/tmp/mylsmod localmodconfig + + The above also works when cross compiling. + + "make localyesconfig" Similar to localmodconfig, except it will convert + all module options to built in (=y) options. + You can find more information on using the Linux kernel config tools in Documentation/kbuild/kconfig.txt. diff --git a/trunk/arch/Kconfig b/trunk/arch/Kconfig index a62965d057f6..26a28419cafc 100644 --- a/trunk/arch/Kconfig +++ b/trunk/arch/Kconfig @@ -271,6 +271,9 @@ config ARCH_WANT_OLD_COMPAT_IPC select ARCH_WANT_COMPAT_IPC_PARSE_VERSION bool +config GENERIC_KERNEL_THREAD + bool + config HAVE_ARCH_SECCOMP_FILTER bool help @@ -313,4 +316,7 @@ config HAVE_IRQ_TIME_ACCOUNTING Archs need to ensure they use a high enough resolution clock to support irq time accounting and then call enable_sched_clock_irqtime(). +config HAVE_ARCH_TRANSPARENT_HUGEPAGE + bool + source "kernel/gcov/Kconfig" diff --git a/trunk/arch/alpha/Kconfig b/trunk/arch/alpha/Kconfig index 9944dedee5b1..7da91246e279 100644 --- a/trunk/arch/alpha/Kconfig +++ b/trunk/arch/alpha/Kconfig @@ -20,6 +20,7 @@ config ALPHA select GENERIC_CMOS_UPDATE select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER + select GENERIC_KERNEL_THREAD help The Alpha is a 64-bit general-purpose processor designed and marketed by the Digital Equipment Corporation of blessed memory, diff --git a/trunk/arch/alpha/include/asm/Kbuild b/trunk/arch/alpha/include/asm/Kbuild index e423defed91e..64ffc9e9e548 100644 --- a/trunk/arch/alpha/include/asm/Kbuild +++ b/trunk/arch/alpha/include/asm/Kbuild @@ -1,5 +1,7 @@ include include/asm-generic/Kbuild.asm +generic-y += clkdev.h + header-y += compiler.h header-y += console.h header-y += fpu.h @@ -8,3 +10,4 @@ header-y += pal.h header-y += reg.h header-y += regdef.h header-y += sysinfo.h +generic-y += exec.h diff --git a/trunk/arch/alpha/include/asm/exec.h b/trunk/arch/alpha/include/asm/exec.h deleted file mode 100644 index 4a5a41f30779..000000000000 --- a/trunk/arch/alpha/include/asm/exec.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __ALPHA_EXEC_H -#define __ALPHA_EXEC_H - -#define arch_align_stack(x) (x) - -#endif /* __ALPHA_EXEC_H */ diff --git a/trunk/arch/alpha/include/asm/processor.h b/trunk/arch/alpha/include/asm/processor.h index e37b887b3d9f..6cb7fe85c4b5 100644 --- a/trunk/arch/alpha/include/asm/processor.h +++ b/trunk/arch/alpha/include/asm/processor.h @@ -49,9 +49,6 @@ extern void start_thread(struct pt_regs *, unsigned long, unsigned long); /* Free all resources held by a thread. */ extern void release_thread(struct task_struct *); -/* Create a kernel thread without removing it from tasklists. */ -extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); - unsigned long get_wchan(struct task_struct *p); #define KSTK_EIP(tsk) (task_pt_regs(tsk)->pc) diff --git a/trunk/arch/alpha/include/asm/thread_info.h b/trunk/arch/alpha/include/asm/thread_info.h index 28335bd40e40..4554ecbff7c6 100644 --- a/trunk/arch/alpha/include/asm/thread_info.h +++ b/trunk/arch/alpha/include/asm/thread_info.h @@ -84,7 +84,6 @@ register struct thread_info *__current_thread_info __asm__("$8"); #define _TIF_SIGPENDING (1<sparse_io_base : hose->dense_io_base; vma->vm_pgoff += base >> PAGE_SHIFT; - vma->vm_flags |= (VM_IO | VM_RESERVED); + vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP; return io_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, vma->vm_end - vma->vm_start, diff --git a/trunk/arch/alpha/kernel/process.c b/trunk/arch/alpha/kernel/process.c index 83638aa096d5..4054e0ffe2b2 100644 --- a/trunk/arch/alpha/kernel/process.c +++ b/trunk/arch/alpha/kernel/process.c @@ -263,33 +263,35 @@ alpha_vfork(struct pt_regs *regs) /* * Copy an alpha thread.. - * - * Note the "stack_offset" stuff: when returning to kernel mode, we need - * to have some extra stack-space for the kernel stack that still exists - * after the "ret_from_fork". When returning to user mode, we only want - * the space needed by the syscall stack frame (ie "struct pt_regs"). - * Use the passed "regs" pointer to determine how much space we need - * for a kernel fork(). */ int copy_thread(unsigned long clone_flags, unsigned long usp, - unsigned long unused, + unsigned long arg, struct task_struct * p, struct pt_regs * regs) { extern void ret_from_fork(void); + extern void ret_from_kernel_thread(void); struct thread_info *childti = task_thread_info(p); - struct pt_regs * childregs; - struct switch_stack * childstack, *stack; - unsigned long stack_offset, settls; - - stack_offset = PAGE_SIZE - sizeof(struct pt_regs); - if (!(regs->ps & 8)) - stack_offset = (PAGE_SIZE-1) & (unsigned long) regs; - childregs = (struct pt_regs *) - (stack_offset + PAGE_SIZE + task_stack_page(p)); - + struct pt_regs *childregs = task_pt_regs(p); + struct switch_stack *childstack, *stack; + unsigned long settls; + + childstack = ((struct switch_stack *) childregs) - 1; + if (unlikely(!regs)) { + /* kernel thread */ + memset(childstack, 0, + sizeof(struct switch_stack) + sizeof(struct pt_regs)); + childstack->r26 = (unsigned long) ret_from_kernel_thread; + childstack->r9 = usp; /* function */ + childstack->r10 = arg; + childregs->hae = alpha_mv.hae_cache, + childti->pcb.usp = 0; + childti->pcb.ksp = (unsigned long) childstack; + childti->pcb.flags = 1; /* set FEN, clear everything else */ + return 0; + } *childregs = *regs; settls = regs->r20; childregs->r0 = 0; @@ -297,7 +299,6 @@ copy_thread(unsigned long clone_flags, unsigned long usp, childregs->r20 = 1; /* OSF/1 has some strange fork() semantics. */ regs->r20 = 0; stack = ((struct switch_stack *) regs) - 1; - childstack = ((struct switch_stack *) childregs) - 1; *childstack = *stack; childstack->r26 = (unsigned long) ret_from_fork; childti->pcb.usp = usp; @@ -385,27 +386,6 @@ dump_elf_task_fp(elf_fpreg_t *dest, struct task_struct *task) } EXPORT_SYMBOL(dump_elf_task_fp); -/* - * sys_execve() executes a new program. - */ -asmlinkage int -do_sys_execve(const char __user *ufilename, - const char __user *const __user *argv, - const char __user *const __user *envp, struct pt_regs *regs) -{ - int error; - char *filename; - - filename = getname(ufilename); - error = PTR_ERR(filename); - if (IS_ERR(filename)) - goto out; - error = do_execve(filename, argv, envp, regs); - putname(filename); -out: - return error; -} - /* * Return saved PC of a blocked thread. This assumes the frame * pointer is the 6th saved long on the kernel stack and that the @@ -459,22 +439,3 @@ get_wchan(struct task_struct *p) } return pc; } - -int kernel_execve(const char *path, const char *const argv[], const char *const envp[]) -{ - /* Avoid the HAE being gratuitously wrong, which would cause us - to do the whole turn off interrupts thing and restore it. */ - struct pt_regs regs = {.hae = alpha_mv.hae_cache}; - int err = do_execve(path, argv, envp, ®s); - if (!err) { - struct pt_regs *p = current_pt_regs(); - /* copy regs to normal position and off to userland we go... */ - *p = regs; - __asm__ __volatile__ ( - "mov %0, $sp;" - "br $31, ret_from_sys_call" - : : "r"(p)); - } - return err; -} -EXPORT_SYMBOL(kernel_execve); diff --git a/trunk/arch/alpha/kernel/ptrace.c b/trunk/arch/alpha/kernel/ptrace.c index 54616f496aed..2a4a80ff4a20 100644 --- a/trunk/arch/alpha/kernel/ptrace.c +++ b/trunk/arch/alpha/kernel/ptrace.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -312,25 +313,18 @@ long arch_ptrace(struct task_struct *child, long request, return ret; } +asmlinkage unsigned long syscall_trace_enter(void) +{ + unsigned long ret = 0; + if (test_thread_flag(TIF_SYSCALL_TRACE) && + tracehook_report_syscall_entry(current_pt_regs())) + ret = -1UL; + return ret ?: current_pt_regs()->r0; +} + asmlinkage void -syscall_trace(void) +syscall_trace_leave(void) { - if (!test_thread_flag(TIF_SYSCALL_TRACE)) - return; - if (!(current->ptrace & PT_PTRACED)) - return; - /* The 0x80 provides a way for the tracing parent to distinguish - between a syscall stop and SIGTRAP delivery */ - ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) - ? 0x80 : 0)); - - /* - * This isn't the same as continuing with a signal, but it will do - * for normal use. strace only continues with a signal if the - * stopping signal is not SIGTRAP. -brl - */ - if (current->exit_code) { - send_sig(current->exit_code, current, 1); - current->exit_code = 0; - } + if (test_thread_flag(TIF_SYSCALL_TRACE)) + tracehook_report_syscall_exit(current_pt_regs(), 0); } diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index f3342d439af0..767aae8277fa 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -25,6 +25,7 @@ config ARM select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL) select ARCH_BINFMT_ELF_RANDOMIZE_PIE select HAVE_GENERIC_DMA_COHERENT + select HAVE_DEBUG_KMEMLEAK select HAVE_KERNEL_GZIP select HAVE_KERNEL_LZO select HAVE_KERNEL_LZMA @@ -39,6 +40,7 @@ config ARM select HARDIRQS_SW_RESEND select GENERIC_IRQ_PROBE select GENERIC_IRQ_SHOW + select HAVE_UID16 select ARCH_WANT_IPC_PARSE_VERSION select HARDIRQS_SW_RESEND select CPU_PM if (SUSPEND || CPU_IDLE) @@ -50,6 +52,7 @@ config ARM select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN + select GENERIC_KERNEL_THREAD help The ARM series is a line of low-power-consumption RISC chip designs licensed by ARM Ltd and targeted at embedded applications and @@ -1767,6 +1770,7 @@ source "mm/Kconfig" config FORCE_MAX_ZONEORDER int "Maximum zone order" if ARCH_SHMOBILE range 11 64 if ARCH_SHMOBILE + default "12" if SOC_AM33XX default "9" if SA1111 default "11" help diff --git a/trunk/arch/arm/boot/compressed/.gitignore b/trunk/arch/arm/boot/compressed/.gitignore index d0d441c429ae..f79a08efe000 100644 --- a/trunk/arch/arm/boot/compressed/.gitignore +++ b/trunk/arch/arm/boot/compressed/.gitignore @@ -1,6 +1,7 @@ ashldi3.S font.c lib1funcs.S +hyp-stub.S piggy.gzip piggy.lzo piggy.lzma diff --git a/trunk/arch/arm/boot/compressed/Makefile b/trunk/arch/arm/boot/compressed/Makefile index bb267562e7ed..a517153a13ea 100644 --- a/trunk/arch/arm/boot/compressed/Makefile +++ b/trunk/arch/arm/boot/compressed/Makefile @@ -30,6 +30,10 @@ FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c OBJS += string.o CFLAGS_string.o := -Os +ifeq ($(CONFIG_ARM_VIRT_EXT),y) +OBJS += hyp-stub.o +endif + # # Architecture dependencies # @@ -126,7 +130,7 @@ KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) endif ccflags-y := -fpic -fno-builtin -I$(obj) -asflags-y := -Wa,-march=all +asflags-y := -Wa,-march=all -DZIMAGE # Supply kernel BSS size to the decompressor via a linker symbol. KBSS_SZ = $(shell $(CROSS_COMPILE)size $(obj)/../../../../vmlinux | \ @@ -198,3 +202,6 @@ $(obj)/font.c: $(FONTC) $(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in arch/arm/boot/Makefile $(KCONFIG_CONFIG) @sed "$(SEDFLAGS)" < $< > $@ + +$(obj)/hyp-stub.S: $(srctree)/arch/$(SRCARCH)/kernel/hyp-stub.S + $(call cmd,shipped) diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index bc67cbff3944..90275f036cd1 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -9,6 +9,7 @@ * published by the Free Software Foundation. */ #include +#include /* * Debugging stuff @@ -132,7 +133,12 @@ start: .word start @ absolute load/run zImage address .word _edata @ zImage end address THUMB( .thumb ) -1: mov r7, r1 @ save architecture ID +1: + mrs r9, cpsr +#ifdef CONFIG_ARM_VIRT_EXT + bl __hyp_stub_install @ get into SVC mode, reversibly +#endif + mov r7, r1 @ save architecture ID mov r8, r2 @ save atags pointer #ifndef __ARM_ARCH_2__ @@ -148,9 +154,9 @@ start: ARM( swi 0x123456 ) @ angel_SWI_ARM THUMB( svc 0xab ) @ angel_SWI_THUMB not_angel: - mrs r2, cpsr @ turn off interrupts to - orr r2, r2, #0xc0 @ prevent angel from running - msr cpsr_c, r2 + safe_svcmode_maskall r0 + msr spsr_cxsf, r9 @ Save the CPU boot mode in + @ SPSR #else teqp pc, #0x0c000003 @ turn off interrupts #endif @@ -350,6 +356,20 @@ dtb_check_done: adr r5, restart bic r5, r5, #31 +/* Relocate the hyp vector base if necessary */ +#ifdef CONFIG_ARM_VIRT_EXT + mrs r0, spsr + and r0, r0, #MODE_MASK + cmp r0, #HYP_MODE + bne 1f + + bl __hyp_get_vectors + sub r0, r0, r5 + add r0, r0, r10 + bl __hyp_set_vectors +1: +#endif + sub r9, r6, r5 @ size to copy add r9, r9, #31 @ rounded up to a multiple bic r9, r9, #31 @ ... of 32 bytes @@ -458,11 +478,29 @@ not_relocated: mov r0, #0 bl decompress_kernel bl cache_clean_flush bl cache_off - mov r0, #0 @ must be zero mov r1, r7 @ restore architecture number mov r2, r8 @ restore atags pointer - ARM( mov pc, r4 ) @ call kernel - THUMB( bx r4 ) @ entry point is always ARM + +#ifdef CONFIG_ARM_VIRT_EXT + mrs r0, spsr @ Get saved CPU boot mode + and r0, r0, #MODE_MASK + cmp r0, #HYP_MODE @ if not booted in HYP mode... + bne __enter_kernel @ boot kernel directly + + adr r12, .L__hyp_reentry_vectors_offset + ldr r0, [r12] + add r0, r0, r12 + + bl __hyp_set_vectors + __HVC(0) @ otherwise bounce to hyp mode + + b . @ should never be reached + + .align 2 +.L__hyp_reentry_vectors_offset: .long __hyp_reentry_vectors - . +#else + b __enter_kernel +#endif .align 2 .type LC0, #object @@ -1196,6 +1234,25 @@ memdump: mov r12, r0 #endif .ltorg + +#ifdef CONFIG_ARM_VIRT_EXT +.align 5 +__hyp_reentry_vectors: + W(b) . @ reset + W(b) . @ undef + W(b) . @ svc + W(b) . @ pabort + W(b) . @ dabort + W(b) __enter_kernel @ hyp + W(b) . @ irq + W(b) . @ fiq +#endif /* CONFIG_ARM_VIRT_EXT */ + +__enter_kernel: + mov r0, #0 @ must be 0 + ARM( mov pc, r4 ) @ call kernel + THUMB( bx r4 ) @ entry point is always ARM + reloc_code_end: .align diff --git a/trunk/arch/arm/boot/dts/Makefile b/trunk/arch/arm/boot/dts/Makefile index 5c5b0aa42497..c1ce813fcc4a 100644 --- a/trunk/arch/arm/boot/dts/Makefile +++ b/trunk/arch/arm/boot/dts/Makefile @@ -68,7 +68,9 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ omap4-pandaES.dtb \ omap4-var_som.dtb \ omap4-sdp.dtb \ - omap5-evm.dtb + omap5-evm.dtb \ + am335x-evm.dtb \ + am335x-bone.dtb dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb dtb-$(CONFIG_ARCH_U8500) += snowball.dtb dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ diff --git a/trunk/arch/arm/boot/dts/at91sam9260.dtsi b/trunk/arch/arm/boot/dts/at91sam9260.dtsi index 7c95f76398de..d410581a5a85 100644 --- a/trunk/arch/arm/boot/dts/at91sam9260.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9260.dtsi @@ -28,6 +28,7 @@ gpio2 = &pioC; tcb0 = &tcb0; tcb1 = &tcb1; + i2c0 = &i2c0; }; cpus { cpu@0 { @@ -202,6 +203,15 @@ status = "disabled"; }; + i2c0: i2c@fffac000 { + compatible = "atmel,at91sam9260-i2c"; + reg = <0xfffac000 0x100>; + interrupts = <11 4 6>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + adc0: adc@fffe0000 { compatible = "atmel,at91sam9260-adc"; reg = <0xfffe0000 0x100>; diff --git a/trunk/arch/arm/boot/dts/at91sam9263.dtsi b/trunk/arch/arm/boot/dts/at91sam9263.dtsi index 195019b7ca0e..3e6e5c1abbf3 100644 --- a/trunk/arch/arm/boot/dts/at91sam9263.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9263.dtsi @@ -24,6 +24,7 @@ gpio3 = &pioD; gpio4 = &pioE; tcb0 = &tcb0; + i2c0 = &i2c0; }; cpus { cpu@0 { @@ -185,6 +186,15 @@ interrupts = <24 4 2>; status = "disabled"; }; + + i2c0: i2c@fff88000 { + compatible = "atmel,at91sam9263-i2c"; + reg = <0xfff88000 0x100>; + interrupts = <13 4 6>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; }; nand0: nand@40000000 { diff --git a/trunk/arch/arm/boot/dts/at91sam9g20.dtsi b/trunk/arch/arm/boot/dts/at91sam9g20.dtsi index 2a1d1ca8bd86..75ce6e760016 100644 --- a/trunk/arch/arm/boot/dts/at91sam9g20.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9g20.dtsi @@ -18,6 +18,10 @@ ahb { apb { + i2c0: i2c@fffac000 { + compatible = "atmel,at91sam9g20-i2c"; + }; + adc0: adc@fffe0000 { atmel,adc-startup-time = <40>; }; diff --git a/trunk/arch/arm/boot/dts/at91sam9g25ek.dts b/trunk/arch/arm/boot/dts/at91sam9g25ek.dts index 96514c134e54..877c08f06763 100644 --- a/trunk/arch/arm/boot/dts/at91sam9g25ek.dts +++ b/trunk/arch/arm/boot/dts/at91sam9g25ek.dts @@ -32,6 +32,18 @@ phy-mode = "rmii"; status = "okay"; }; + + i2c0: i2c@f8010000 { + status = "okay"; + }; + + i2c1: i2c@f8014000 { + status = "okay"; + }; + + i2c2: i2c@f8018000 { + status = "okay"; + }; }; usb0: ohci@00600000 { diff --git a/trunk/arch/arm/boot/dts/at91sam9g45.dtsi b/trunk/arch/arm/boot/dts/at91sam9g45.dtsi index 63751b1e744b..3add030d61f8 100644 --- a/trunk/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9g45.dtsi @@ -29,6 +29,8 @@ gpio4 = &pioE; tcb0 = &tcb0; tcb1 = &tcb1; + i2c0 = &i2c0; + i2c1 = &i2c1; }; cpus { cpu@0 { @@ -206,6 +208,24 @@ status = "disabled"; }; + i2c0: i2c@fff84000 { + compatible = "atmel,at91sam9g10-i2c"; + reg = <0xfff84000 0x100>; + interrupts = <12 4 6>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c1: i2c@fff88000 { + compatible = "atmel,at91sam9g10-i2c"; + reg = <0xfff88000 0x100>; + interrupts = <13 4 6>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + adc0: adc@fffb0000 { compatible = "atmel,at91sam9260-adc"; reg = <0xfffb0000 0x100>; diff --git a/trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts b/trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts index a3633bd13111..15e1dd43f625 100644 --- a/trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts +++ b/trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts @@ -46,6 +46,14 @@ phy-mode = "rmii"; status = "okay"; }; + + i2c0: i2c@fff84000 { + status = "okay"; + }; + + i2c1: i2c@fff88000 { + status = "okay"; + }; }; nand0: nand@40000000 { diff --git a/trunk/arch/arm/boot/dts/at91sam9n12.dtsi b/trunk/arch/arm/boot/dts/at91sam9n12.dtsi index ef9336ae9614..82508d68aa7e 100644 --- a/trunk/arch/arm/boot/dts/at91sam9n12.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9n12.dtsi @@ -26,6 +26,8 @@ gpio3 = &pioD; tcb0 = &tcb0; tcb1 = &tcb1; + i2c0 = &i2c0; + i2c1 = &i2c1; }; cpus { cpu@0 { @@ -182,6 +184,24 @@ atmel,use-dma-tx; status = "disabled"; }; + + i2c0: i2c@f8010000 { + compatible = "atmel,at91sam9x5-i2c"; + reg = <0xf8010000 0x100>; + interrupts = <9 4 6>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c1: i2c@f8014000 { + compatible = "atmel,at91sam9x5-i2c"; + reg = <0xf8014000 0x100>; + interrupts = <10 4 6>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; }; nand0: nand@40000000 { diff --git a/trunk/arch/arm/boot/dts/at91sam9n12ek.dts b/trunk/arch/arm/boot/dts/at91sam9n12ek.dts index f4e43e38f3a1..912b2c283d6f 100644 --- a/trunk/arch/arm/boot/dts/at91sam9n12ek.dts +++ b/trunk/arch/arm/boot/dts/at91sam9n12ek.dts @@ -37,6 +37,14 @@ dbgu: serial@fffff200 { status = "okay"; }; + + i2c0: i2c@f8010000 { + status = "okay"; + }; + + i2c1: i2c@f8014000 { + status = "okay"; + }; }; nand0: nand@40000000 { diff --git a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi b/trunk/arch/arm/boot/dts/at91sam9x5.dtsi index 8a387a8d61b7..03fc136421c5 100644 --- a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9x5.dtsi @@ -27,6 +27,9 @@ gpio3 = &pioD; tcb0 = &tcb0; tcb1 = &tcb1; + i2c0 = &i2c0; + i2c1 = &i2c1; + i2c2 = &i2c2; }; cpus { cpu@0 { @@ -196,6 +199,33 @@ status = "disabled"; }; + i2c0: i2c@f8010000 { + compatible = "atmel,at91sam9x5-i2c"; + reg = <0xf8010000 0x100>; + interrupts = <9 4 6>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c1: i2c@f8014000 { + compatible = "atmel,at91sam9x5-i2c"; + reg = <0xf8014000 0x100>; + interrupts = <10 4 6>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c2: i2c@f8018000 { + compatible = "atmel,at91sam9x5-i2c"; + reg = <0xf8018000 0x100>; + interrupts = <11 4 6>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + adc0: adc@f804c000 { compatible = "atmel,at91sam9260-adc"; reg = <0xf804c000 0x100>; diff --git a/trunk/arch/arm/boot/dts/imx28.dtsi b/trunk/arch/arm/boot/dts/imx28.dtsi index 59fbfba23df8..e16d63155480 100644 --- a/trunk/arch/arm/boot/dts/imx28.dtsi +++ b/trunk/arch/arm/boot/dts/imx28.dtsi @@ -764,6 +764,7 @@ reg = <0x80058000 0x2000>; interrupts = <111 68>; clock-frequency = <100000>; + fsl,i2c-dma-channel = <6>; status = "disabled"; }; @@ -774,6 +775,7 @@ reg = <0x8005a000 0x2000>; interrupts = <110 69>; clock-frequency = <100000>; + fsl,i2c-dma-channel = <7>; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/imx51.dtsi b/trunk/arch/arm/boot/dts/imx51.dtsi index 2f71a91ca98e..75d069fcf897 100644 --- a/trunk/arch/arm/boot/dts/imx51.dtsi +++ b/trunk/arch/arm/boot/dts/imx51.dtsi @@ -407,6 +407,13 @@ status = "disabled"; }; + nand@83fdb000 { + compatible = "fsl,imx51-nand"; + reg = <0x83fdb000 0x1000 0xcfff0000 0x10000>; + interrupts = <8>; + status = "disabled"; + }; + ssi3: ssi@83fe8000 { compatible = "fsl,imx51-ssi", "fsl,imx21-ssi"; reg = <0x83fe8000 0x4000>; diff --git a/trunk/arch/arm/boot/dts/imx53.dtsi b/trunk/arch/arm/boot/dts/imx53.dtsi index 221cf3321b0a..76ebb1ad2675 100644 --- a/trunk/arch/arm/boot/dts/imx53.dtsi +++ b/trunk/arch/arm/boot/dts/imx53.dtsi @@ -518,6 +518,13 @@ status = "disabled"; }; + nand@63fdb000 { + compatible = "fsl,imx53-nand"; + reg = <0x63fdb000 0x1000 0xf7ff0000 0x10000>; + interrupts = <8>; + status = "disabled"; + }; + ssi3: ssi@63fe8000 { compatible = "fsl,imx53-ssi", "fsl,imx21-ssi"; reg = <0x63fe8000 0x4000>; diff --git a/trunk/arch/arm/boot/dts/omap4-panda.dts b/trunk/arch/arm/boot/dts/omap4-panda.dts index 20b966ee1bb3..e8f927cbb376 100644 --- a/trunk/arch/arm/boot/dts/omap4-panda.dts +++ b/trunk/arch/arm/boot/dts/omap4-panda.dts @@ -59,6 +59,41 @@ }; }; +&omap4_pmx_core { + pinctrl-names = "default"; + pinctrl-0 = < + &twl6040_pins + &mcpdm_pins + &mcbsp1_pins + >; + + twl6040_pins: pinmux_twl6040_pins { + pinctrl-single,pins = < + 0xe0 0x3 /* hdq_sio.gpio_127 OUTPUT | MODE3 */ + 0x160 0x100 /* sys_nirq2.sys_nirq2 INPUT | MODE0 */ + >; + }; + + mcpdm_pins: pinmux_mcpdm_pins { + pinctrl-single,pins = < + 0xc6 0x108 /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */ + 0xc8 0x108 /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */ + 0xca 0x118 /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */ + 0xcc 0x108 /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */ + 0xce 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ + >; + }; + + mcbsp1_pins: pinmux_mcbsp1_pins { + pinctrl-single,pins = < + 0xbe 0x100 /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */ + 0xc0 0x108 /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */ + 0xc2 0x8 /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */ + 0xc4 0x100 /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */ + >; + }; +}; + &i2c1 { clock-frequency = <400000>; @@ -137,3 +172,15 @@ cs1-used; device-handle = <&elpida_ECB240ABACN>; }; + +&mcbsp2 { + status = "disabled"; +}; + +&mcbsp3 { + status = "disabled"; +}; + +&dmic { + status = "disabled"; +}; diff --git a/trunk/arch/arm/boot/dts/omap4-sdp.dts b/trunk/arch/arm/boot/dts/omap4-sdp.dts index 94a23b39033d..5b7e04fbff50 100644 --- a/trunk/arch/arm/boot/dts/omap4-sdp.dts +++ b/trunk/arch/arm/boot/dts/omap4-sdp.dts @@ -117,6 +117,15 @@ }; &omap4_pmx_core { + pinctrl-names = "default"; + pinctrl-0 = < + &twl6040_pins + &mcpdm_pins + &dmic_pins + &mcbsp1_pins + &mcbsp2_pins + >; + uart2_pins: pinmux_uart2_pins { pinctrl-single,pins = < 0xd8 0x118 /* uart2_cts.uart2_cts INPUT_PULLUP | MODE0 */ @@ -141,6 +150,50 @@ 0x11e 0 /* uart4_tx.uart4_tx OUTPUT | MODE0 */ >; }; + + twl6040_pins: pinmux_twl6040_pins { + pinctrl-single,pins = < + 0xe0 0x3 /* hdq_sio.gpio_127 OUTPUT | MODE3 */ + 0x160 0x100 /* sys_nirq2.sys_nirq2 INPUT | MODE0 */ + >; + }; + + mcpdm_pins: pinmux_mcpdm_pins { + pinctrl-single,pins = < + 0xc6 0x108 /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */ + 0xc8 0x108 /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */ + 0xca 0x118 /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */ + 0xcc 0x108 /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */ + 0xce 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ + >; + }; + + dmic_pins: pinmux_dmic_pins { + pinctrl-single,pins = < + 0xd0 0 /* abe_dmic_clk1.abe_dmic_clk1 OUTPUT | MODE0 */ + 0xd2 0x100 /* abe_dmic_din1.abe_dmic_din1 INPUT | MODE0 */ + 0xd4 0x100 /* abe_dmic_din2.abe_dmic_din2 INPUT | MODE0 */ + 0xd6 0x100 /* abe_dmic_din3.abe_dmic_din3 INPUT | MODE0 */ + >; + }; + + mcbsp1_pins: pinmux_mcbsp1_pins { + pinctrl-single,pins = < + 0xbe 0x100 /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */ + 0xc0 0x108 /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */ + 0xc2 0x8 /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */ + 0xc4 0x100 /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */ + >; + }; + + mcbsp2_pins: pinmux_mcbsp2_pins { + pinctrl-single,pins = < + 0xb6 0x100 /* abe_mcbsp2_clkx.abe_mcbsp2_clkx INPUT | MODE0 */ + 0xb8 0x108 /* abe_mcbsp2_dr.abe_mcbsp2_dr INPUT PULLDOWN | MODE0 */ + 0xba 0x8 /* abe_mcbsp2_dx.abe_mcbsp2_dx OUTPUT PULLDOWN | MODE0 */ + 0xbc 0x100 /* abe_mcbsp2_fsx.abe_mcbsp2_fsx INPUT | MODE0 */ + >; + }; }; &i2c1 { @@ -349,3 +402,7 @@ pinctrl-names = "default"; pinctrl-0 = <&uart4_pins>; }; + +&mcbsp3 { + status = "disabled"; +}; diff --git a/trunk/arch/arm/boot/dts/omap5-evm.dts b/trunk/arch/arm/boot/dts/omap5-evm.dts index 9c41a3f311aa..c663eba73168 100644 --- a/trunk/arch/arm/boot/dts/omap5-evm.dts +++ b/trunk/arch/arm/boot/dts/omap5-evm.dts @@ -27,6 +27,60 @@ }; +&omap5_pmx_core { + pinctrl-names = "default"; + pinctrl-0 = < + &twl6040_pins + &mcpdm_pins + &dmic_pins + &mcbsp1_pins + &mcbsp2_pins + >; + + twl6040_pins: pinmux_twl6040_pins { + pinctrl-single,pins = < + 0x18a 0x6 /* perslimbus2_clock.gpio5_145 OUTPUT | MODE6 */ + >; + }; + + mcpdm_pins: pinmux_mcpdm_pins { + pinctrl-single,pins = < + 0x142 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ + 0x15c 0x108 /* abemcpdm_ul_data.abemcpdm_ul_data INPUT PULLDOWN | MODE0 */ + 0x15e 0x108 /* abemcpdm_dl_data.abemcpdm_dl_data INPUT PULLDOWN | MODE0 */ + 0x160 0x118 /* abemcpdm_frame.abemcpdm_frame INPUT PULLUP | MODE0 */ + 0x162 0x108 /* abemcpdm_lb_clk.abemcpdm_lb_clk INPUT PULLDOWN | MODE0 */ + >; + }; + + dmic_pins: pinmux_dmic_pins { + pinctrl-single,pins = < + 0x144 0x100 /* abedmic_din1.abedmic_din1 INPUT | MODE0 */ + 0x146 0x100 /* abedmic_din2.abedmic_din2 INPUT | MODE0 */ + 0x148 0x100 /* abedmic_din3.abedmic_din3 INPUT | MODE0 */ + 0x14a 0 /* abedmic_clk1.abedmic_clk1 OUTPUT | MODE0 */ + >; + }; + + mcbsp1_pins: pinmux_mcbsp1_pins { + pinctrl-single,pins = < + 0x14c 0x101 /* abedmic_clk2.abemcbsp1_fsx INPUT | MODE1 */ + 0x14e 0x9 /* abedmic_clk3.abemcbsp1_dx OUTPUT PULLDOWN | MODE1 */ + 0x150 0x101 /* abeslimbus1_clock.abemcbsp1_clkx INPUT | MODE0 */ + 0x152 0x109 /* abeslimbus1_data.abemcbsp1_dr INPUT PULLDOWN | MODE1 */ + >; + }; + + mcbsp2_pins: pinmux_mcbsp2_pins { + pinctrl-single,pins = < + 0x154 0x108 /* abemcbsp2_dr.abemcbsp2_dr INPUT PULLDOWN | MODE0 */ + 0x156 0x8 /* abemcbsp2_dx.abemcbsp2_dx OUTPUT PULLDOWN | MODE0 */ + 0x158 0x100 /* abemcbsp2_fsx.abemcbsp2_fsx INPUT | MODE0 */ + 0x15a 0x100 /* abemcbsp2_clkx.abemcbsp2_clkx INPUT | MODE0 */ + >; + }; +}; + &mmc1 { vmmc-supply = <&vmmcsd_fixed>; bus-width = <4>; @@ -82,3 +136,7 @@ 0x020700d9>; /* SEARCH */ linux,input-no-autorepeat; }; + +&mcbsp3 { + status = "disabled"; +}; diff --git a/trunk/arch/arm/boot/dts/omap5.dtsi b/trunk/arch/arm/boot/dts/omap5.dtsi index 5db33f481a33..42c78beb4fdc 100644 --- a/trunk/arch/arm/boot/dts/omap5.dtsi +++ b/trunk/arch/arm/boot/dts/omap5.dtsi @@ -77,6 +77,23 @@ ranges; ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; + omap5_pmx_core: pinmux@4a002840 { + compatible = "ti,omap4-padconf", "pinctrl-single"; + reg = <0x4a002840 0x01b6>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-single,register-width = <16>; + pinctrl-single,function-mask = <0x7fff>; + }; + omap5_pmx_wkup: pinmux@4ae0c840 { + compatible = "ti,omap4-padconf", "pinctrl-single"; + reg = <0x4ae0c840 0x0038>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-single,register-width = <16>; + pinctrl-single,function-mask = <0x7fff>; + }; + gic: interrupt-controller@48211000 { compatible = "arm,cortex-a15-gic"; interrupt-controller; diff --git a/trunk/arch/arm/boot/dts/spear300-evb.dts b/trunk/arch/arm/boot/dts/spear300-evb.dts index d71b8d581e3d..1e7c7a8e2123 100644 --- a/trunk/arch/arm/boot/dts/spear300-evb.dts +++ b/trunk/arch/arm/boot/dts/spear300-evb.dts @@ -80,8 +80,7 @@ }; sdhci@70000000 { - int-gpio = <&gpio1 0 0>; - power-gpio = <&gpio1 2 1>; + cd-gpios = <&gpio1 0 0>; status = "okay"; }; diff --git a/trunk/arch/arm/boot/dts/spear320-evb.dts b/trunk/arch/arm/boot/dts/spear320-evb.dts index e4e912f95024..082328bd64ab 100644 --- a/trunk/arch/arm/boot/dts/spear320-evb.dts +++ b/trunk/arch/arm/boot/dts/spear320-evb.dts @@ -103,8 +103,6 @@ }; sdhci@70000000 { - power-gpio = <&gpio0 2 1>; - power_always_enb; status = "okay"; }; diff --git a/trunk/arch/arm/common/it8152.c b/trunk/arch/arm/common/it8152.c index c4110d1b1f2d..001f4913799c 100644 --- a/trunk/arch/arm/common/it8152.c +++ b/trunk/arch/arm/common/it8152.c @@ -284,11 +284,17 @@ int dma_set_coherent_mask(struct device *dev, u64 mask) int __init it8152_pci_setup(int nr, struct pci_sys_data *sys) { - it8152_io.start = IT8152_IO_BASE + 0x12000; - it8152_io.end = IT8152_IO_BASE + 0x12000 + 0x100000; + /* + * FIXME: use pci_ioremap_io to remap the IO space here and + * move over to the generic io.h implementation. + * This requires solving the same problem for PXA PCMCIA + * support. + */ + it8152_io.start = (unsigned long)IT8152_IO_BASE + 0x12000; + it8152_io.end = (unsigned long)IT8152_IO_BASE + 0x12000 + 0x100000; sys->mem_offset = 0x10000000; - sys->io_offset = IT8152_IO_BASE; + sys->io_offset = (unsigned long)IT8152_IO_BASE; if (request_resource(&ioport_resource, &it8152_io)) { printk(KERN_ERR "PCI: unable to allocate IO region\n"); diff --git a/trunk/arch/arm/configs/cam60_defconfig b/trunk/arch/arm/configs/cam60_defconfig index cedc92ef88ab..14579711d8fc 100644 --- a/trunk/arch/arm/configs/cam60_defconfig +++ b/trunk/arch/arm/configs/cam60_defconfig @@ -49,7 +49,6 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y CONFIG_MTD_PLATRAM=m CONFIG_MTD_DATAFLASH=y CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_MTD_NAND_ATMEL=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y diff --git a/trunk/arch/arm/configs/corgi_defconfig b/trunk/arch/arm/configs/corgi_defconfig index e53c47563845..4b8a25d9e686 100644 --- a/trunk/arch/arm/configs/corgi_defconfig +++ b/trunk/arch/arm/configs/corgi_defconfig @@ -97,7 +97,6 @@ CONFIG_MTD_BLOCK=y CONFIG_MTD_ROM=y CONFIG_MTD_COMPLEX_MAPPINGS=y CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_MTD_NAND_SHARPSL=y CONFIG_BLK_DEV_LOOP=y CONFIG_IDE=y diff --git a/trunk/arch/arm/configs/ep93xx_defconfig b/trunk/arch/arm/configs/ep93xx_defconfig index 8e97b2f7ceec..806005a4c4c1 100644 --- a/trunk/arch/arm/configs/ep93xx_defconfig +++ b/trunk/arch/arm/configs/ep93xx_defconfig @@ -61,7 +61,6 @@ CONFIG_MTD_CFI_STAA=y CONFIG_MTD_ROM=y CONFIG_MTD_PHYSMAP=y CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_BLK_DEV_NBD=y CONFIG_EEPROM_LEGACY=y CONFIG_SCSI=y diff --git a/trunk/arch/arm/configs/mini2440_defconfig b/trunk/arch/arm/configs/mini2440_defconfig index 082175c54e7c..00630e6af45c 100644 --- a/trunk/arch/arm/configs/mini2440_defconfig +++ b/trunk/arch/arm/configs/mini2440_defconfig @@ -102,7 +102,6 @@ CONFIG_MTD_CFI_STAA=y CONFIG_MTD_RAM=y CONFIG_MTD_ROM=y CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_MTD_NAND_S3C2410=y CONFIG_MTD_NAND_PLATFORM=y CONFIG_MTD_LPDDR=y diff --git a/trunk/arch/arm/configs/mv78xx0_defconfig b/trunk/arch/arm/configs/mv78xx0_defconfig index 7305ebddb510..1f08219c1b3c 100644 --- a/trunk/arch/arm/configs/mv78xx0_defconfig +++ b/trunk/arch/arm/configs/mv78xx0_defconfig @@ -49,7 +49,6 @@ CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_CFI_AMDSTD=y CONFIG_MTD_PHYSMAP=y CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_MTD_NAND_ORION=y CONFIG_BLK_DEV_LOOP=y # CONFIG_SCSI_PROC_FS is not set diff --git a/trunk/arch/arm/configs/nhk8815_defconfig b/trunk/arch/arm/configs/nhk8815_defconfig index bf123c5384d4..240b25eea565 100644 --- a/trunk/arch/arm/configs/nhk8815_defconfig +++ b/trunk/arch/arm/configs/nhk8815_defconfig @@ -57,7 +57,6 @@ CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y CONFIG_MTD_NAND=y CONFIG_MTD_NAND_ECC_SMC=y -CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_MTD_NAND_NOMADIK=y CONFIG_MTD_ONENAND=y CONFIG_MTD_ONENAND_VERIFY_WRITE=y diff --git a/trunk/arch/arm/configs/orion5x_defconfig b/trunk/arch/arm/configs/orion5x_defconfig index a288d7033950..cd5e6ba9a54d 100644 --- a/trunk/arch/arm/configs/orion5x_defconfig +++ b/trunk/arch/arm/configs/orion5x_defconfig @@ -72,7 +72,6 @@ CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_CFI_AMDSTD=y CONFIG_MTD_PHYSMAP=y CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_MTD_NAND_PLATFORM=y CONFIG_MTD_NAND_ORION=y CONFIG_BLK_DEV_LOOP=y diff --git a/trunk/arch/arm/configs/pxa3xx_defconfig b/trunk/arch/arm/configs/pxa3xx_defconfig index 1677a0607ca9..60e313834b3f 100644 --- a/trunk/arch/arm/configs/pxa3xx_defconfig +++ b/trunk/arch/arm/configs/pxa3xx_defconfig @@ -36,7 +36,6 @@ CONFIG_MTD_CONCAT=y CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_MTD_NAND_PXA3xx=y CONFIG_MTD_NAND_PXA3xx_BUILTIN=y CONFIG_MTD_ONENAND=y diff --git a/trunk/arch/arm/configs/spitz_defconfig b/trunk/arch/arm/configs/spitz_defconfig index 70158273c6dd..df77931a4326 100644 --- a/trunk/arch/arm/configs/spitz_defconfig +++ b/trunk/arch/arm/configs/spitz_defconfig @@ -94,7 +94,6 @@ CONFIG_MTD_BLOCK=y CONFIG_MTD_ROM=y CONFIG_MTD_COMPLEX_MAPPINGS=y CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_VERIFY_WRITE=y CONFIG_MTD_NAND_SHARPSL=y CONFIG_BLK_DEV_LOOP=y CONFIG_IDE=y diff --git a/trunk/arch/arm/include/asm/assembler.h b/trunk/arch/arm/include/asm/assembler.h index 5c8b3bf4d825..2ef95813fce0 100644 --- a/trunk/arch/arm/include/asm/assembler.h +++ b/trunk/arch/arm/include/asm/assembler.h @@ -22,6 +22,7 @@ #include #include +#include #define IOMEM(x) (x) @@ -239,6 +240,34 @@ .endm #endif +/* + * Helper macro to enter SVC mode cleanly and mask interrupts. reg is + * a scratch register for the macro to overwrite. + * + * This macro is intended for forcing the CPU into SVC mode at boot time. + * you cannot return to the original mode. + * + * Beware, it also clobers LR. + */ +.macro safe_svcmode_maskall reg:req + mrs \reg , cpsr + mov lr , \reg + and lr , lr , #MODE_MASK + cmp lr , #HYP_MODE + orr \reg , \reg , #PSR_I_BIT | PSR_F_BIT + bic \reg , \reg , #MODE_MASK + orr \reg , \reg , #SVC_MODE +THUMB( orr \reg , \reg , #PSR_T_BIT ) + bne 1f + orr \reg, \reg, #PSR_A_BIT + adr lr, BSYM(2f) + msr spsr_cxsf, \reg + __MSR_ELR_HYP(14) + __ERET +1: msr cpsr_c, \reg +2: +.endm + /* * STRT/LDRT access macros with ARM and Thumb-2 variants */ diff --git a/trunk/arch/arm/include/asm/cacheflush.h b/trunk/arch/arm/include/asm/cacheflush.h index e4448e16046d..e1489c54cd12 100644 --- a/trunk/arch/arm/include/asm/cacheflush.h +++ b/trunk/arch/arm/include/asm/cacheflush.h @@ -49,6 +49,13 @@ * * Unconditionally clean and invalidate the entire cache. * + * flush_kern_louis() + * + * Flush data cache levels up to the level of unification + * inner shareable and invalidate the I-cache. + * Only needed from v7 onwards, falls back to flush_cache_all() + * for all other processor versions. + * * flush_user_all() * * Clean and invalidate all user space cache entries @@ -97,6 +104,7 @@ struct cpu_cache_fns { void (*flush_icache_all)(void); void (*flush_kern_all)(void); + void (*flush_kern_louis)(void); void (*flush_user_all)(void); void (*flush_user_range)(unsigned long, unsigned long, unsigned int); @@ -119,6 +127,7 @@ extern struct cpu_cache_fns cpu_cache; #define __cpuc_flush_icache_all cpu_cache.flush_icache_all #define __cpuc_flush_kern_all cpu_cache.flush_kern_all +#define __cpuc_flush_kern_louis cpu_cache.flush_kern_louis #define __cpuc_flush_user_all cpu_cache.flush_user_all #define __cpuc_flush_user_range cpu_cache.flush_user_range #define __cpuc_coherent_kern_range cpu_cache.coherent_kern_range @@ -139,6 +148,7 @@ extern struct cpu_cache_fns cpu_cache; extern void __cpuc_flush_icache_all(void); extern void __cpuc_flush_kern_all(void); +extern void __cpuc_flush_kern_louis(void); extern void __cpuc_flush_user_all(void); extern void __cpuc_flush_user_range(unsigned long, unsigned long, unsigned int); extern void __cpuc_coherent_kern_range(unsigned long, unsigned long); @@ -204,6 +214,11 @@ static inline void __flush_icache_all(void) __flush_icache_preferred(); } +/* + * Flush caches up to Level of Unification Inner Shareable + */ +#define flush_cache_louis() __cpuc_flush_kern_louis() + #define flush_cache_all() __cpuc_flush_kern_all() static inline void vivt_flush_cache_mm(struct mm_struct *mm) diff --git a/trunk/arch/arm/include/asm/glue-cache.h b/trunk/arch/arm/include/asm/glue-cache.h index 4f8d2c0dc441..cca9f15704ed 100644 --- a/trunk/arch/arm/include/asm/glue-cache.h +++ b/trunk/arch/arm/include/asm/glue-cache.h @@ -132,6 +132,7 @@ #ifndef MULTI_CACHE #define __cpuc_flush_icache_all __glue(_CACHE,_flush_icache_all) #define __cpuc_flush_kern_all __glue(_CACHE,_flush_kern_cache_all) +#define __cpuc_flush_kern_louis __glue(_CACHE,_flush_kern_cache_louis) #define __cpuc_flush_user_all __glue(_CACHE,_flush_user_cache_all) #define __cpuc_flush_user_range __glue(_CACHE,_flush_user_cache_range) #define __cpuc_coherent_kern_range __glue(_CACHE,_coherent_kern_range) diff --git a/trunk/arch/arm/include/asm/opcodes-virt.h b/trunk/arch/arm/include/asm/opcodes-virt.h index b85665a96f8e..efcfdf92d9d5 100644 --- a/trunk/arch/arm/include/asm/opcodes-virt.h +++ b/trunk/arch/arm/include/asm/opcodes-virt.h @@ -26,4 +26,14 @@ 0xF7E08000 | (((imm16) & 0xF000) << 4) | ((imm16) & 0x0FFF) \ ) +#define __ERET __inst_arm_thumb32( \ + 0xE160006E, \ + 0xF3DE8F00 \ +) + +#define __MSR_ELR_HYP(regnum) __inst_arm_thumb32( \ + 0xE12EF300 | regnum, \ + 0xF3808E30 | (regnum << 16) \ +) + #endif /* ! __ASM_ARM_OPCODES_VIRT_H */ diff --git a/trunk/arch/arm/include/asm/processor.h b/trunk/arch/arm/include/asm/processor.h index 99afa7498260..06e7d509eaac 100644 --- a/trunk/arch/arm/include/asm/processor.h +++ b/trunk/arch/arm/include/asm/processor.h @@ -85,11 +85,6 @@ unsigned long get_wchan(struct task_struct *p); #define cpu_relax() barrier() #endif -/* - * Create a new kernel thread - */ -extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); - #define task_pt_regs(p) \ ((struct pt_regs *)(THREAD_START_SP + task_stack_page(p)) - 1) diff --git a/trunk/arch/arm/include/asm/ptrace.h b/trunk/arch/arm/include/asm/ptrace.h index 355ece523f41..142d6ae41231 100644 --- a/trunk/arch/arm/include/asm/ptrace.h +++ b/trunk/arch/arm/include/asm/ptrace.h @@ -44,6 +44,7 @@ #define IRQ_MODE 0x00000012 #define SVC_MODE 0x00000013 #define ABT_MODE 0x00000017 +#define HYP_MODE 0x0000001a #define UND_MODE 0x0000001b #define SYSTEM_MODE 0x0000001f #define MODE32_BIT 0x00000010 @@ -254,6 +255,11 @@ static inline unsigned long user_stack_pointer(struct pt_regs *regs) return regs->ARM_sp; } +#define current_pt_regs(void) ({ \ + register unsigned long sp asm ("sp"); \ + (struct pt_regs *)((sp | (THREAD_SIZE - 1)) - 7) - 1; \ +}) + #endif /* __KERNEL__ */ #endif /* __ASSEMBLY__ */ diff --git a/trunk/arch/arm/include/asm/system.h b/trunk/arch/arm/include/asm/system.h index 74542c52f9be..368165e33c1c 100644 --- a/trunk/arch/arm/include/asm/system.h +++ b/trunk/arch/arm/include/asm/system.h @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include diff --git a/trunk/arch/arm/include/asm/thread_info.h b/trunk/arch/arm/include/asm/thread_info.h index f71cdab18b87..8477b4c1d39f 100644 --- a/trunk/arch/arm/include/asm/thread_info.h +++ b/trunk/arch/arm/include/asm/thread_info.h @@ -151,7 +151,6 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *, #define TIF_SYSCALL_TRACE 8 #define TIF_SYSCALL_AUDIT 9 #define TIF_SYSCALL_TRACEPOINT 10 -#define TIF_POLLING_NRFLAG 16 #define TIF_USING_IWMMXT 17 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */ #define TIF_RESTORE_SIGMASK 20 @@ -164,7 +163,6 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *, #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT) -#define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG) #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT) #define _TIF_SECCOMP (1 << TIF_SECCOMP) diff --git a/trunk/arch/arm/include/asm/unistd.h b/trunk/arch/arm/include/asm/unistd.h index d9ff5cc3a506..f259921edfe9 100644 --- a/trunk/arch/arm/include/asm/unistd.h +++ b/trunk/arch/arm/include/asm/unistd.h @@ -478,6 +478,8 @@ #define __ARCH_WANT_OLD_READDIR #define __ARCH_WANT_SYS_SOCKETCALL #endif +#define __ARCH_WANT_SYS_EXECVE +#define __ARCH_WANT_KERNEL_EXECVE /* * "Conditional" syscalls diff --git a/trunk/arch/arm/include/asm/vfpmacros.h b/trunk/arch/arm/include/asm/vfpmacros.h index a7aadbd9a6dd..6a6f1e485f41 100644 --- a/trunk/arch/arm/include/asm/vfpmacros.h +++ b/trunk/arch/arm/include/asm/vfpmacros.h @@ -28,7 +28,7 @@ ldr \tmp, =elf_hwcap @ may not have MVFR regs ldr \tmp, [\tmp, #0] tst \tmp, #HWCAP_VFPv3D16 - ldceq p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31} + ldceql p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31} addne \base, \base, #32*4 @ step over unused register space #else VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0 @@ -52,7 +52,7 @@ ldr \tmp, =elf_hwcap @ may not have MVFR regs ldr \tmp, [\tmp, #0] tst \tmp, #HWCAP_VFPv3D16 - stceq p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31} + stceql p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31} addne \base, \base, #32*4 @ step over unused register space #else VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0 diff --git a/trunk/arch/arm/include/asm/virt.h b/trunk/arch/arm/include/asm/virt.h new file mode 100644 index 000000000000..86164df86cb4 --- /dev/null +++ b/trunk/arch/arm/include/asm/virt.h @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2012 Linaro Limited. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef VIRT_H +#define VIRT_H + +#include + +/* + * Flag indicating that the kernel was not entered in the same mode on every + * CPU. The zImage loader stashes this value in an SPSR, so we need an + * architecturally defined flag bit here (the N flag, as it happens) + */ +#define BOOT_CPU_MODE_MISMATCH (1<<31) + +#ifndef __ASSEMBLY__ + +#ifdef CONFIG_ARM_VIRT_EXT +/* + * __boot_cpu_mode records what mode the primary CPU was booted in. + * A correctly-implemented bootloader must start all CPUs in the same mode: + * if it fails to do this, the flag BOOT_CPU_MODE_MISMATCH is set to indicate + * that some CPU(s) were booted in a different mode. + * + * This allows the kernel to flag an error when the secondaries have come up. + */ +extern int __boot_cpu_mode; + +void __hyp_set_vectors(unsigned long phys_vector_base); +unsigned long __hyp_get_vectors(void); +#else +#define __boot_cpu_mode (SVC_MODE) +#endif + +#ifndef ZIMAGE +void hyp_mode_check(void); + +/* Reports the availability of HYP mode */ +static inline bool is_hyp_mode_available(void) +{ + return ((__boot_cpu_mode & MODE_MASK) == HYP_MODE && + !(__boot_cpu_mode & BOOT_CPU_MODE_MISMATCH)); +} + +/* Check if the bootloader has booted CPUs in different modes */ +static inline bool is_hyp_mode_mismatched(void) +{ + return !!(__boot_cpu_mode & BOOT_CPU_MODE_MISMATCH); +} +#endif + +#endif /* __ASSEMBLY__ */ + +#endif /* ! VIRT_H */ diff --git a/trunk/arch/arm/kernel/Makefile b/trunk/arch/arm/kernel/Makefile index 5dfef9d97ed9..5bbec7b8183e 100644 --- a/trunk/arch/arm/kernel/Makefile +++ b/trunk/arch/arm/kernel/Makefile @@ -81,4 +81,6 @@ head-y := head$(MMUEXT).o obj-$(CONFIG_DEBUG_LL) += debug.o obj-$(CONFIG_EARLY_PRINTK) += early_printk.o +obj-$(CONFIG_ARM_VIRT_EXT) += hyp-stub.o + extra-y := $(head-y) vmlinux.lds diff --git a/trunk/arch/arm/kernel/calls.S b/trunk/arch/arm/kernel/calls.S index e337879595e5..831cd38c8d99 100644 --- a/trunk/arch/arm/kernel/calls.S +++ b/trunk/arch/arm/kernel/calls.S @@ -20,7 +20,7 @@ CALL(sys_creat) CALL(sys_link) /* 10 */ CALL(sys_unlink) - CALL(sys_execve_wrapper) + CALL(sys_execve) CALL(sys_chdir) CALL(OBSOLETE(sys_time)) /* used by libc4 */ CALL(sys_mknod) diff --git a/trunk/arch/arm/kernel/entry-common.S b/trunk/arch/arm/kernel/entry-common.S index f45987037bf1..e340fa1db203 100644 --- a/trunk/arch/arm/kernel/entry-common.S +++ b/trunk/arch/arm/kernel/entry-common.S @@ -91,6 +91,30 @@ ENTRY(ret_from_fork) b ret_slow_syscall ENDPROC(ret_from_fork) +ENTRY(ret_from_kernel_thread) + UNWIND(.fnstart) + UNWIND(.cantunwind) + bl schedule_tail + mov r0, r4 + adr lr, BSYM(1f) @ kernel threads should not exit + mov pc, r5 +1: bl do_exit + nop + UNWIND(.fnend) +ENDPROC(ret_from_kernel_thread) + +/* + * turn a kernel thread into userland process + * use: ret_from_kernel_execve(struct pt_regs *normal) + */ +ENTRY(ret_from_kernel_execve) + mov why, #0 @ not a syscall + str why, [r0, #S_R0] @ ... and we want 0 in ->ARM_r0 as well + get_thread_info tsk @ thread structure + mov sp, r0 @ stack pointer just under pt_regs + b ret_slow_syscall +ENDPROC(ret_from_kernel_execve) + .equ NR_syscalls,0 #define CALL(x) .equ NR_syscalls,NR_syscalls+1 #include "calls.S" @@ -517,11 +541,6 @@ sys_vfork_wrapper: b sys_vfork ENDPROC(sys_vfork_wrapper) -sys_execve_wrapper: - add r3, sp, #S_OFF - b sys_execve -ENDPROC(sys_execve_wrapper) - sys_clone_wrapper: add ip, sp, #S_OFF str ip, [sp, #4] diff --git a/trunk/arch/arm/kernel/head.S b/trunk/arch/arm/kernel/head.S index 9874d0741191..4eee351f4668 100644 --- a/trunk/arch/arm/kernel/head.S +++ b/trunk/arch/arm/kernel/head.S @@ -83,8 +83,12 @@ ENTRY(stext) THUMB( .thumb ) @ switch to Thumb now. THUMB(1: ) - setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode - @ and irqs disabled +#ifdef CONFIG_ARM_VIRT_EXT + bl __hyp_stub_install +#endif + @ ensure svc mode and all interrupts masked + safe_svcmode_maskall r9 + mrc p15, 0, r9, c0, c0 @ get processor id bl __lookup_processor_type @ r5=procinfo r9=cpuid movs r10, r5 @ invalid processor (r5=0)? @@ -326,7 +330,11 @@ ENTRY(secondary_startup) * the processor type - there is no need to check the machine type * as it has already been validated by the primary processor. */ - setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 +#ifdef CONFIG_ARM_VIRT_EXT + bl __hyp_stub_install +#endif + safe_svcmode_maskall r9 + mrc p15, 0, r9, c0, c0 @ get processor id bl __lookup_processor_type movs r10, r5 @ invalid processor? diff --git a/trunk/arch/arm/kernel/hyp-stub.S b/trunk/arch/arm/kernel/hyp-stub.S new file mode 100644 index 000000000000..65b2417aebce --- /dev/null +++ b/trunk/arch/arm/kernel/hyp-stub.S @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2012 Linaro Limited. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include + +#ifndef ZIMAGE +/* + * For the kernel proper, we need to find out the CPU boot mode long after + * boot, so we need to store it in a writable variable. + * + * This is not in .bss, because we set it sufficiently early that the boot-time + * zeroing of .bss would clobber it. + */ +.data +ENTRY(__boot_cpu_mode) + .long 0 +.text + + /* + * Save the primary CPU boot mode. Requires 3 scratch registers. + */ + .macro store_primary_cpu_mode reg1, reg2, reg3 + mrs \reg1, cpsr + and \reg1, \reg1, #MODE_MASK + adr \reg2, .L__boot_cpu_mode_offset + ldr \reg3, [\reg2] + str \reg1, [\reg2, \reg3] + .endm + + /* + * Compare the current mode with the one saved on the primary CPU. + * If they don't match, record that fact. The Z bit indicates + * if there's a match or not. + * Requires 3 additionnal scratch registers. + */ + .macro compare_cpu_mode_with_primary mode, reg1, reg2, reg3 + adr \reg2, .L__boot_cpu_mode_offset + ldr \reg3, [\reg2] + ldr \reg1, [\reg2, \reg3] + cmp \mode, \reg1 @ matches primary CPU boot mode? + orrne r7, r7, #BOOT_CPU_MODE_MISMATCH + strne r7, [r5, r6] @ record what happened and give up + .endm + +#else /* ZIMAGE */ + + .macro store_primary_cpu_mode reg1:req, reg2:req, reg3:req + .endm + +/* + * The zImage loader only runs on one CPU, so we don't bother with mult-CPU + * consistency checking: + */ + .macro compare_cpu_mode_with_primary mode, reg1, reg2, reg3 + cmp \mode, \mode + .endm + +#endif /* ZIMAGE */ + +/* + * Hypervisor stub installation functions. + * + * These must be called with the MMU and D-cache off. + * They are not ABI compliant and are only intended to be called from the kernel + * entry points in head.S. + */ +@ Call this from the primary CPU +ENTRY(__hyp_stub_install) + store_primary_cpu_mode r4, r5, r6 +ENDPROC(__hyp_stub_install) + + @ fall through... + +@ Secondary CPUs should call here +ENTRY(__hyp_stub_install_secondary) + mrs r4, cpsr + and r4, r4, #MODE_MASK + + /* + * If the secondary has booted with a different mode, give up + * immediately. + */ + compare_cpu_mode_with_primary r4, r5, r6, r7 + bxne lr + + /* + * Once we have given up on one CPU, we do not try to install the + * stub hypervisor on the remaining ones: because the saved boot mode + * is modified, it can't compare equal to the CPSR mode field any + * more. + * + * Otherwise... + */ + + cmp r4, #HYP_MODE + bxne lr @ give up if the CPU is not in HYP mode + +/* + * Configure HSCTLR to set correct exception endianness/instruction set + * state etc. + * Turn off all traps + * Eventually, CPU-specific code might be needed -- assume not for now + * + * This code relies on the "eret" instruction to synchronize the + * various coprocessor accesses. + */ + @ Now install the hypervisor stub: + adr r7, __hyp_stub_vectors + mcr p15, 4, r7, c12, c0, 0 @ set hypervisor vector base (HVBAR) + + @ Disable all traps, so we don't get any nasty surprise + mov r7, #0 + mcr p15, 4, r7, c1, c1, 0 @ HCR + mcr p15, 4, r7, c1, c1, 2 @ HCPTR + mcr p15, 4, r7, c1, c1, 3 @ HSTR + +THUMB( orr r7, #(1 << 30) ) @ HSCTLR.TE +#ifdef CONFIG_CPU_BIG_ENDIAN + orr r7, #(1 << 9) @ HSCTLR.EE +#endif + mcr p15, 4, r7, c1, c0, 0 @ HSCTLR + + mrc p15, 4, r7, c1, c1, 1 @ HDCR + and r7, #0x1f @ Preserve HPMN + mcr p15, 4, r7, c1, c1, 1 @ HDCR + +#if !defined(ZIMAGE) && defined(CONFIG_ARM_ARCH_TIMER) + @ make CNTP_* and CNTPCT accessible from PL1 + mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1 + lsr r7, #16 + and r7, #0xf + cmp r7, #1 + bne 1f + mrc p15, 4, r7, c14, c1, 0 @ CNTHCTL + orr r7, r7, #3 @ PL1PCEN | PL1PCTEN + mcr p15, 4, r7, c14, c1, 0 @ CNTHCTL +1: +#endif + + bic r7, r4, #MODE_MASK + orr r7, r7, #SVC_MODE +THUMB( orr r7, r7, #PSR_T_BIT ) + msr spsr_cxsf, r7 @ This is SPSR_hyp. + + __MSR_ELR_HYP(14) @ msr elr_hyp, lr + __ERET @ return, switching to SVC mode + @ The boot CPU mode is left in r4. +ENDPROC(__hyp_stub_install_secondary) + +__hyp_stub_do_trap: + cmp r0, #-1 + mrceq p15, 4, r0, c12, c0, 0 @ get HVBAR + mcrne p15, 4, r0, c12, c0, 0 @ set HVBAR + __ERET +ENDPROC(__hyp_stub_do_trap) + +/* + * __hyp_set_vectors: Call this after boot to set the initial hypervisor + * vectors as part of hypervisor installation. On an SMP system, this should + * be called on each CPU. + * + * r0 must be the physical address of the new vector table (which must lie in + * the bottom 4GB of physical address space. + * + * r0 must be 32-byte aligned. + * + * Before calling this, you must check that the stub hypervisor is installed + * everywhere, by waiting for any secondary CPUs to be brought up and then + * checking that BOOT_CPU_MODE_HAVE_HYP(__boot_cpu_mode) is true. + * + * If not, there is a pre-existing hypervisor, some CPUs failed to boot, or + * something else went wrong... in such cases, trying to install a new + * hypervisor is unlikely to work as desired. + * + * When you call into your shiny new hypervisor, sp_hyp will contain junk, + * so you will need to set that to something sensible at the new hypervisor's + * initialisation entry point. + */ +ENTRY(__hyp_get_vectors) + mov r0, #-1 +ENDPROC(__hyp_get_vectors) + @ fall through +ENTRY(__hyp_set_vectors) + __HVC(0) + bx lr +ENDPROC(__hyp_set_vectors) + +#ifndef ZIMAGE +.align 2 +.L__boot_cpu_mode_offset: + .long __boot_cpu_mode - . +#endif + +.align 5 +__hyp_stub_vectors: +__hyp_stub_reset: W(b) . +__hyp_stub_und: W(b) . +__hyp_stub_svc: W(b) . +__hyp_stub_pabort: W(b) . +__hyp_stub_dabort: W(b) . +__hyp_stub_trap: W(b) __hyp_stub_do_trap +__hyp_stub_irq: W(b) . +__hyp_stub_fiq: W(b) . +ENDPROC(__hyp_stub_vectors) + diff --git a/trunk/arch/arm/kernel/process.c b/trunk/arch/arm/kernel/process.c index 04eea22d7958..f98c17ff1957 100644 --- a/trunk/arch/arm/kernel/process.c +++ b/trunk/arch/arm/kernel/process.c @@ -373,6 +373,7 @@ void release_thread(struct task_struct *dead_task) } asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); +asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread"); int copy_thread(unsigned long clone_flags, unsigned long stack_start, @@ -381,13 +382,20 @@ copy_thread(unsigned long clone_flags, unsigned long stack_start, struct thread_info *thread = task_thread_info(p); struct pt_regs *childregs = task_pt_regs(p); - *childregs = *regs; - childregs->ARM_r0 = 0; - childregs->ARM_sp = stack_start; - memset(&thread->cpu_context, 0, sizeof(struct cpu_context_save)); + + if (likely(regs)) { + *childregs = *regs; + childregs->ARM_r0 = 0; + childregs->ARM_sp = stack_start; + thread->cpu_context.pc = (unsigned long)ret_from_fork; + } else { + thread->cpu_context.r4 = stk_sz; + thread->cpu_context.r5 = stack_start; + thread->cpu_context.pc = (unsigned long)ret_from_kernel_thread; + childregs->ARM_cpsr = SVC_MODE; + } thread->cpu_context.sp = (unsigned long)childregs; - thread->cpu_context.pc = (unsigned long)ret_from_fork; clear_ptrace_hw_breakpoint(p); @@ -423,63 +431,6 @@ int dump_fpu (struct pt_regs *regs, struct user_fp *fp) } EXPORT_SYMBOL(dump_fpu); -/* - * Shuffle the argument into the correct register before calling the - * thread function. r4 is the thread argument, r5 is the pointer to - * the thread function, and r6 points to the exit function. - */ -extern void kernel_thread_helper(void); -asm( ".pushsection .text\n" -" .align\n" -" .type kernel_thread_helper, #function\n" -"kernel_thread_helper:\n" -#ifdef CONFIG_TRACE_IRQFLAGS -" bl trace_hardirqs_on\n" -#endif -" msr cpsr_c, r7\n" -" mov r0, r4\n" -" mov lr, r6\n" -" mov pc, r5\n" -" .size kernel_thread_helper, . - kernel_thread_helper\n" -" .popsection"); - -#ifdef CONFIG_ARM_UNWIND -extern void kernel_thread_exit(long code); -asm( ".pushsection .text\n" -" .align\n" -" .type kernel_thread_exit, #function\n" -"kernel_thread_exit:\n" -" .fnstart\n" -" .cantunwind\n" -" bl do_exit\n" -" nop\n" -" .fnend\n" -" .size kernel_thread_exit, . - kernel_thread_exit\n" -" .popsection"); -#else -#define kernel_thread_exit do_exit -#endif - -/* - * Create a kernel thread. - */ -pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) -{ - struct pt_regs regs; - - memset(®s, 0, sizeof(regs)); - - regs.ARM_r4 = (unsigned long)arg; - regs.ARM_r5 = (unsigned long)fn; - regs.ARM_r6 = (unsigned long)kernel_thread_exit; - regs.ARM_r7 = SVC_MODE | PSR_ENDSTATE | PSR_ISETSTATE; - regs.ARM_pc = (unsigned long)kernel_thread_helper; - regs.ARM_cpsr = regs.ARM_r7 | PSR_I_BIT; - - return do_fork(flags|CLONE_VM|CLONE_UNTRACED, 0, ®s, 0, NULL, NULL); -} -EXPORT_SYMBOL(kernel_thread); - unsigned long get_wchan(struct task_struct *p) { struct stackframe frame; diff --git a/trunk/arch/arm/kernel/setup.c b/trunk/arch/arm/kernel/setup.c index febafa0f552d..da1d1aa20ad9 100644 --- a/trunk/arch/arm/kernel/setup.c +++ b/trunk/arch/arm/kernel/setup.c @@ -53,6 +53,7 @@ #include #include #include +#include #include "atags.h" #include "tcm.h" @@ -703,6 +704,21 @@ static int __init meminfo_cmp(const void *_a, const void *_b) return cmp < 0 ? -1 : cmp > 0 ? 1 : 0; } +void __init hyp_mode_check(void) +{ +#ifdef CONFIG_ARM_VIRT_EXT + if (is_hyp_mode_available()) { + pr_info("CPU: All CPU(s) started in HYP mode.\n"); + pr_info("CPU: Virtualization extensions available.\n"); + } else if (is_hyp_mode_mismatched()) { + pr_warn("CPU: WARNING: CPU(s) started in wrong/inconsistent modes (primary CPU mode 0x%x)\n", + __boot_cpu_mode & MODE_MASK); + pr_warn("CPU: This may indicate a broken bootloader or firmware.\n"); + } else + pr_info("CPU: All CPU(s) started in SVC mode.\n"); +#endif +} + void __init setup_arch(char **cmdline_p) { struct machine_desc *mdesc; @@ -748,6 +764,10 @@ void __init setup_arch(char **cmdline_p) smp_init_cpus(); } #endif + + if (!is_smp()) + hyp_mode_check(); + reserve_crashkernel(); tcm_init(); diff --git a/trunk/arch/arm/kernel/signal.c b/trunk/arch/arm/kernel/signal.c index f27789e4e38a..56f72d257ebd 100644 --- a/trunk/arch/arm/kernel/signal.c +++ b/trunk/arch/arm/kernel/signal.c @@ -10,7 +10,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index d100eacdb798..8e20754dd31d 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -43,6 +43,7 @@ #include #include #include +#include #include /* @@ -202,8 +203,11 @@ int __cpuinit __cpu_disable(void) /* * Flush user cache and TLB mappings, and then remove this CPU * from the vm mask set of all processes. + * + * Caches are flushed to the Level of Unification Inner Shareable + * to write-back dirty lines to unified caches shared by all CPUs. */ - flush_cache_all(); + flush_cache_louis(); local_flush_tlb_all(); clear_tasks_mm_cpumask(cpu); @@ -355,6 +359,8 @@ void __init smp_cpus_done(unsigned int max_cpus) num_online_cpus(), bogosum / (500000/HZ), (bogosum / (5000/HZ)) % 100); + + hyp_mode_check(); } void __init smp_prepare_boot_cpu(void) diff --git a/trunk/arch/arm/kernel/suspend.c b/trunk/arch/arm/kernel/suspend.c index 1794cc3b0f18..358bca3a995e 100644 --- a/trunk/arch/arm/kernel/suspend.c +++ b/trunk/arch/arm/kernel/suspend.c @@ -17,6 +17,8 @@ extern void cpu_resume_mmu(void); */ void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr) { + u32 *ctx = ptr; + *save_ptr = virt_to_phys(ptr); /* This must correspond to the LDM in cpu_resume() assembly */ @@ -26,7 +28,20 @@ void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr) cpu_do_suspend(ptr); - flush_cache_all(); + flush_cache_louis(); + + /* + * flush_cache_louis does not guarantee that + * save_ptr and ptr are cleaned to main memory, + * just up to the Level of Unification Inner Shareable. + * Since the context pointer and context itself + * are to be retrieved with the MMU off that + * data must be cleaned from all cache levels + * to main memory using "area" cache primitives. + */ + __cpuc_flush_dcache_area(ctx, ptrsz); + __cpuc_flush_dcache_area(save_ptr, sizeof(*save_ptr)); + outer_clean_range(*save_ptr, *save_ptr + ptrsz); outer_clean_range(virt_to_phys(save_ptr), virt_to_phys(save_ptr) + sizeof(*save_ptr)); diff --git a/trunk/arch/arm/kernel/sys_arm.c b/trunk/arch/arm/kernel/sys_arm.c index 76cbb055dd05..c2a898aa57aa 100644 --- a/trunk/arch/arm/kernel/sys_arm.c +++ b/trunk/arch/arm/kernel/sys_arm.c @@ -59,69 +59,6 @@ asmlinkage int sys_vfork(struct pt_regs *regs) return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->ARM_sp, regs, 0, NULL, NULL); } -/* sys_execve() executes a new program. - * This is called indirectly via a small wrapper - */ -asmlinkage int sys_execve(const char __user *filenamei, - const char __user *const __user *argv, - const char __user *const __user *envp, struct pt_regs *regs) -{ - int error; - char * filename; - - filename = getname(filenamei); - error = PTR_ERR(filename); - if (IS_ERR(filename)) - goto out; - error = do_execve(filename, argv, envp, regs); - putname(filename); -out: - return error; -} - -int kernel_execve(const char *filename, - const char *const argv[], - const char *const envp[]) -{ - struct pt_regs regs; - int ret; - - memset(®s, 0, sizeof(struct pt_regs)); - ret = do_execve(filename, - (const char __user *const __user *)argv, - (const char __user *const __user *)envp, ®s); - if (ret < 0) - goto out; - - /* - * Save argc to the register structure for userspace. - */ - regs.ARM_r0 = ret; - - /* - * We were successful. We won't be returning to our caller, but - * instead to user space by manipulating the kernel stack. - */ - asm( "add r0, %0, %1\n\t" - "mov r1, %2\n\t" - "mov r2, %3\n\t" - "bl memmove\n\t" /* copy regs to top of stack */ - "mov r8, #0\n\t" /* not a syscall */ - "mov r9, %0\n\t" /* thread structure */ - "mov sp, r0\n\t" /* reposition stack pointer */ - "b ret_to_user" - : - : "r" (current_thread_info()), - "Ir" (THREAD_START_SP - sizeof(regs)), - "r" (®s), - "Ir" (sizeof(regs)) - : "r0", "r1", "r2", "r3", "r8", "r9", "ip", "lr", "memory"); - - out: - return ret; -} -EXPORT_SYMBOL(kernel_execve); - /* * Since loff_t is a 64 bit type we avoid a lot of ABI hassle * with a different argument ordering. diff --git a/trunk/arch/arm/mach-at91/at91rm9200.c b/trunk/arch/arm/mach-at91/at91rm9200.c index 6f50c6722276..b4f0565aff63 100644 --- a/trunk/arch/arm/mach-at91/at91rm9200.c +++ b/trunk/arch/arm/mach-at91/at91rm9200.c @@ -187,6 +187,7 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91rm9200", &twi_clk), /* fake hclk clock */ CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), CLKDEV_CON_ID("pioA", &pioA_clk), diff --git a/trunk/arch/arm/mach-at91/at91rm9200_devices.c b/trunk/arch/arm/mach-at91/at91rm9200_devices.c index 9ac427a702da..a563189cdfc3 100644 --- a/trunk/arch/arm/mach-at91/at91rm9200_devices.c +++ b/trunk/arch/arm/mach-at91/at91rm9200_devices.c @@ -511,7 +511,7 @@ static struct resource twi_resources[] = { }; static struct platform_device at91rm9200_twi_device = { - .name = "at91_i2c", + .name = "i2c-at91rm9200", .id = -1, .resource = twi_resources, .num_resources = ARRAY_SIZE(twi_resources), diff --git a/trunk/arch/arm/mach-at91/at91sam9260.c b/trunk/arch/arm/mach-at91/at91sam9260.c index 30c7f26a4668..ad29f93f20ca 100644 --- a/trunk/arch/arm/mach-at91/at91sam9260.c +++ b/trunk/arch/arm/mach-at91/at91sam9260.c @@ -211,6 +211,8 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t1_clk", "atmel_tcb.1", &tc4_clk), CLKDEV_CON_DEV_ID("t2_clk", "atmel_tcb.1", &tc5_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc_clk), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9260", &twi_clk), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9g20", &twi_clk), /* more usart lookup table for DT entries */ CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), CLKDEV_CON_DEV_ID("usart", "fffb0000.serial", &usart0_clk), @@ -219,6 +221,7 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("usart", "fffd0000.serial", &usart3_clk), CLKDEV_CON_DEV_ID("usart", "fffd4000.serial", &usart4_clk), CLKDEV_CON_DEV_ID("usart", "fffd8000.serial", &usart5_clk), + CLKDEV_CON_DEV_ID(NULL, "fffac000.i2c", &twi_clk), /* more tc lookup table for DT entries */ CLKDEV_CON_DEV_ID("t0_clk", "fffa0000.timer", &tc0_clk), CLKDEV_CON_DEV_ID("t1_clk", "fffa0000.timer", &tc1_clk), diff --git a/trunk/arch/arm/mach-at91/at91sam9260_devices.c b/trunk/arch/arm/mach-at91/at91sam9260_devices.c index af50ff3281c7..a76b8684f52d 100644 --- a/trunk/arch/arm/mach-at91/at91sam9260_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9260_devices.c @@ -421,7 +421,6 @@ static struct resource twi_resources[] = { }; static struct platform_device at91sam9260_twi_device = { - .name = "at91_i2c", .id = -1, .resource = twi_resources, .num_resources = ARRAY_SIZE(twi_resources), @@ -429,6 +428,13 @@ static struct platform_device at91sam9260_twi_device = { void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) { + /* IP version is not the same on 9260 and g20 */ + if (cpu_is_at91sam9g20()) { + at91sam9260_twi_device.name = "i2c-at91sam9g20"; + } else { + at91sam9260_twi_device.name = "i2c-at91sam9260"; + } + /* pins used for TWI interface */ at91_set_A_periph(AT91_PIN_PA23, 0); /* TWD */ at91_set_multi_drive(AT91_PIN_PA23, 1); diff --git a/trunk/arch/arm/mach-at91/at91sam9261.c b/trunk/arch/arm/mach-at91/at91sam9261.c index f40762c5fede..8d999eb1a137 100644 --- a/trunk/arch/arm/mach-at91/at91sam9261.c +++ b/trunk/arch/arm/mach-at91/at91sam9261.c @@ -178,6 +178,8 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &hck0), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9261", &twi_clk), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9g10", &twi_clk), CLKDEV_CON_ID("pioA", &pioA_clk), CLKDEV_CON_ID("pioB", &pioB_clk), CLKDEV_CON_ID("pioC", &pioC_clk), diff --git a/trunk/arch/arm/mach-at91/at91sam9261_devices.c b/trunk/arch/arm/mach-at91/at91sam9261_devices.c index 11e9fa835cde..9752f17efba9 100644 --- a/trunk/arch/arm/mach-at91/at91sam9261_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9261_devices.c @@ -317,7 +317,6 @@ static struct resource twi_resources[] = { }; static struct platform_device at91sam9261_twi_device = { - .name = "at91_i2c", .id = -1, .resource = twi_resources, .num_resources = ARRAY_SIZE(twi_resources), @@ -325,12 +324,19 @@ static struct platform_device at91sam9261_twi_device = { void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) { + /* IP version is not the same on 9261 and g10 */ + if (cpu_is_at91sam9g10()) { + at91sam9261_twi_device.name = "i2c-at91sam9g10"; + /* I2C PIO must not be configured as open-drain on this chip */ + } else { + at91sam9261_twi_device.name = "i2c-at91sam9261"; + at91_set_multi_drive(AT91_PIN_PA7, 1); + at91_set_multi_drive(AT91_PIN_PA8, 1); + } + /* pins used for TWI interface */ at91_set_A_periph(AT91_PIN_PA7, 0); /* TWD */ - at91_set_multi_drive(AT91_PIN_PA7, 1); - at91_set_A_periph(AT91_PIN_PA8, 0); /* TWCK */ - at91_set_multi_drive(AT91_PIN_PA8, 1); i2c_register_board_info(0, devices, nr_devices); platform_device_register(&at91sam9261_twi_device); diff --git a/trunk/arch/arm/mach-at91/at91sam9263.c b/trunk/arch/arm/mach-at91/at91sam9263.c index 144ef5de51b6..6a01d0360dfb 100644 --- a/trunk/arch/arm/mach-at91/at91sam9263.c +++ b/trunk/arch/arm/mach-at91/at91sam9263.c @@ -193,6 +193,7 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.0", &spi0_clk), CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk), CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9260", &twi_clk), /* fake hclk clock */ CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), CLKDEV_CON_ID("pioA", &pioA_clk), @@ -210,6 +211,7 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("hclk", "a00000.ohci", &ohci_clk), CLKDEV_CON_DEV_ID("spi_clk", "fffa4000.spi", &spi0_clk), CLKDEV_CON_DEV_ID("spi_clk", "fffa8000.spi", &spi1_clk), + CLKDEV_CON_DEV_ID(NULL, "fff88000.i2c", &twi_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91sam9263_devices.c b/trunk/arch/arm/mach-at91/at91sam9263_devices.c index 7c0898fe20fa..8dde220b42b6 100644 --- a/trunk/arch/arm/mach-at91/at91sam9263_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9263_devices.c @@ -599,7 +599,7 @@ static struct resource twi_resources[] = { }; static struct platform_device at91sam9263_twi_device = { - .name = "at91_i2c", + .name = "i2c-at91sam9260", .id = -1, .resource = twi_resources, .num_resources = ARRAY_SIZE(twi_resources), diff --git a/trunk/arch/arm/mach-at91/at91sam9g45.c b/trunk/arch/arm/mach-at91/at91sam9g45.c index ef6cedd52e3c..84af1b506d92 100644 --- a/trunk/arch/arm/mach-at91/at91sam9g45.c +++ b/trunk/arch/arm/mach-at91/at91sam9g45.c @@ -237,6 +237,8 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk), CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb0_clk), CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.1", &tcb0_clk), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9g10.0", &twi0_clk), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9g10.1", &twi1_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), CLKDEV_CON_DEV_ID(NULL, "atmel-trng", &trng_clk), @@ -254,6 +256,8 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t0_clk", "fffd4000.timer", &tcb0_clk), CLKDEV_CON_DEV_ID("hclk", "700000.ohci", &uhphs_clk), CLKDEV_CON_DEV_ID("ehci_clk", "800000.ehci", &uhphs_clk), + CLKDEV_CON_DEV_ID(NULL, "fff84000.i2c", &twi0_clk), + CLKDEV_CON_DEV_ID(NULL, "fff88000.i2c", &twi1_clk), /* fake hclk clock */ CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &uhphs_clk), CLKDEV_CON_ID("pioA", &pioA_clk), diff --git a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c index e4c3b3709204..b1596072dcc2 100644 --- a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c @@ -653,7 +653,7 @@ static struct resource twi0_resources[] = { }; static struct platform_device at91sam9g45_twi0_device = { - .name = "at91_i2c", + .name = "i2c-at91sam9g10", .id = 0, .resource = twi0_resources, .num_resources = ARRAY_SIZE(twi0_resources), @@ -673,7 +673,7 @@ static struct resource twi1_resources[] = { }; static struct platform_device at91sam9g45_twi1_device = { - .name = "at91_i2c", + .name = "i2c-at91sam9g10", .id = 1, .resource = twi1_resources, .num_resources = ARRAY_SIZE(twi1_resources), @@ -686,18 +686,12 @@ void __init at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, in /* pins used for TWI interface */ if (i2c_id == 0) { at91_set_A_periph(AT91_PIN_PA20, 0); /* TWD */ - at91_set_multi_drive(AT91_PIN_PA20, 1); - at91_set_A_periph(AT91_PIN_PA21, 0); /* TWCK */ - at91_set_multi_drive(AT91_PIN_PA21, 1); platform_device_register(&at91sam9g45_twi0_device); } else { at91_set_A_periph(AT91_PIN_PB10, 0); /* TWD */ - at91_set_multi_drive(AT91_PIN_PB10, 1); - at91_set_A_periph(AT91_PIN_PB11, 0); /* TWCK */ - at91_set_multi_drive(AT91_PIN_PB11, 1); platform_device_register(&at91sam9g45_twi1_device); } diff --git a/trunk/arch/arm/mach-at91/at91sam9n12.c b/trunk/arch/arm/mach-at91/at91sam9n12.c index 08494664ab78..732d3d3f4ec5 100644 --- a/trunk/arch/arm/mach-at91/at91sam9n12.c +++ b/trunk/arch/arm/mach-at91/at91sam9n12.c @@ -169,6 +169,8 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t0_clk", "f8008000.timer", &tcb_clk), CLKDEV_CON_DEV_ID("t0_clk", "f800c000.timer", &tcb_clk), CLKDEV_CON_DEV_ID("dma_clk", "ffffec00.dma-controller", &dma_clk), + CLKDEV_CON_DEV_ID(NULL, "f8010000.i2c", &twi0_clk), + CLKDEV_CON_DEV_ID(NULL, "f8014000.i2c", &twi1_clk), CLKDEV_CON_ID("pioA", &pioAB_clk), CLKDEV_CON_ID("pioB", &pioAB_clk), CLKDEV_CON_ID("pioC", &pioCD_clk), diff --git a/trunk/arch/arm/mach-at91/at91sam9rl.c b/trunk/arch/arm/mach-at91/at91sam9rl.c index 72ce50a50de5..72e908412222 100644 --- a/trunk/arch/arm/mach-at91/at91sam9rl.c +++ b/trunk/arch/arm/mach-at91/at91sam9rl.c @@ -186,6 +186,8 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t2_clk", "atmel_tcb.0", &tc2_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9g20.0", &twi0_clk), + CLKDEV_CON_DEV_ID(NULL, "i2c-at91sam9g20.1", &twi1_clk), CLKDEV_CON_ID("pioA", &pioA_clk), CLKDEV_CON_ID("pioB", &pioB_clk), CLKDEV_CON_ID("pioC", &pioC_clk), diff --git a/trunk/arch/arm/mach-at91/at91sam9rl_devices.c b/trunk/arch/arm/mach-at91/at91sam9rl_devices.c index deafea0e493d..d6ca0543ce8d 100644 --- a/trunk/arch/arm/mach-at91/at91sam9rl_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9rl_devices.c @@ -346,7 +346,7 @@ static struct resource twi_resources[] = { }; static struct platform_device at91sam9rl_twi_device = { - .name = "at91_i2c", + .name = "i2c-at91sam9g20", .id = -1, .resource = twi_resources, .num_resources = ARRAY_SIZE(twi_resources), diff --git a/trunk/arch/arm/mach-at91/at91sam9x5.c b/trunk/arch/arm/mach-at91/at91sam9x5.c index 477cf9d06672..e5035380dcbc 100644 --- a/trunk/arch/arm/mach-at91/at91sam9x5.c +++ b/trunk/arch/arm/mach-at91/at91sam9x5.c @@ -231,6 +231,9 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t0_clk", "f800c000.timer", &tcb0_clk), CLKDEV_CON_DEV_ID("dma_clk", "ffffec00.dma-controller", &dma0_clk), CLKDEV_CON_DEV_ID("dma_clk", "ffffee00.dma-controller", &dma1_clk), + CLKDEV_CON_DEV_ID(NULL, "f8010000.i2c", &twi0_clk), + CLKDEV_CON_DEV_ID(NULL, "f8014000.i2c", &twi1_clk), + CLKDEV_CON_DEV_ID(NULL, "f8018000.i2c", &twi2_clk), CLKDEV_CON_ID("pioA", &pioAB_clk), CLKDEV_CON_ID("pioB", &pioAB_clk), CLKDEV_CON_ID("pioC", &pioCD_clk), diff --git a/trunk/arch/arm/mach-at91/include/mach/at91_twi.h b/trunk/arch/arm/mach-at91/include/mach/at91_twi.h deleted file mode 100644 index bb2880f6ba37..000000000000 --- a/trunk/arch/arm/mach-at91/include/mach/at91_twi.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * arch/arm/mach-at91/include/mach/at91_twi.h - * - * Copyright (C) 2005 Ivan Kokshaysky - * Copyright (C) SAN People - * - * Two-wire Interface (TWI) registers. - * Based on AT91RM9200 datasheet revision E. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - */ - -#ifndef AT91_TWI_H -#define AT91_TWI_H - -#define AT91_TWI_CR 0x00 /* Control Register */ -#define AT91_TWI_START (1 << 0) /* Send a Start Condition */ -#define AT91_TWI_STOP (1 << 1) /* Send a Stop Condition */ -#define AT91_TWI_MSEN (1 << 2) /* Master Transfer Enable */ -#define AT91_TWI_MSDIS (1 << 3) /* Master Transfer Disable */ -#define AT91_TWI_SVEN (1 << 4) /* Slave Transfer Enable [SAM9260 only] */ -#define AT91_TWI_SVDIS (1 << 5) /* Slave Transfer Disable [SAM9260 only] */ -#define AT91_TWI_SWRST (1 << 7) /* Software Reset */ - -#define AT91_TWI_MMR 0x04 /* Master Mode Register */ -#define AT91_TWI_IADRSZ (3 << 8) /* Internal Device Address Size */ -#define AT91_TWI_IADRSZ_NO (0 << 8) -#define AT91_TWI_IADRSZ_1 (1 << 8) -#define AT91_TWI_IADRSZ_2 (2 << 8) -#define AT91_TWI_IADRSZ_3 (3 << 8) -#define AT91_TWI_MREAD (1 << 12) /* Master Read Direction */ -#define AT91_TWI_DADR (0x7f << 16) /* Device Address */ - -#define AT91_TWI_SMR 0x08 /* Slave Mode Register [SAM9260 only] */ -#define AT91_TWI_SADR (0x7f << 16) /* Slave Address */ - -#define AT91_TWI_IADR 0x0c /* Internal Address Register */ - -#define AT91_TWI_CWGR 0x10 /* Clock Waveform Generator Register */ -#define AT91_TWI_CLDIV (0xff << 0) /* Clock Low Divisor */ -#define AT91_TWI_CHDIV (0xff << 8) /* Clock High Divisor */ -#define AT91_TWI_CKDIV (7 << 16) /* Clock Divider */ - -#define AT91_TWI_SR 0x20 /* Status Register */ -#define AT91_TWI_TXCOMP (1 << 0) /* Transmission Complete */ -#define AT91_TWI_RXRDY (1 << 1) /* Receive Holding Register Ready */ -#define AT91_TWI_TXRDY (1 << 2) /* Transmit Holding Register Ready */ -#define AT91_TWI_SVREAD (1 << 3) /* Slave Read [SAM9260 only] */ -#define AT91_TWI_SVACC (1 << 4) /* Slave Access [SAM9260 only] */ -#define AT91_TWI_GACC (1 << 5) /* General Call Access [SAM9260 only] */ -#define AT91_TWI_OVRE (1 << 6) /* Overrun Error [AT91RM9200 only] */ -#define AT91_TWI_UNRE (1 << 7) /* Underrun Error [AT91RM9200 only] */ -#define AT91_TWI_NACK (1 << 8) /* Not Acknowledged */ -#define AT91_TWI_ARBLST (1 << 9) /* Arbitration Lost [SAM9260 only] */ -#define AT91_TWI_SCLWS (1 << 10) /* Clock Wait State [SAM9260 only] */ -#define AT91_TWI_EOSACC (1 << 11) /* End of Slave Address [SAM9260 only] */ - -#define AT91_TWI_IER 0x24 /* Interrupt Enable Register */ -#define AT91_TWI_IDR 0x28 /* Interrupt Disable Register */ -#define AT91_TWI_IMR 0x2c /* Interrupt Mask Register */ -#define AT91_TWI_RHR 0x30 /* Receive Holding Register */ -#define AT91_TWI_THR 0x34 /* Transmit Holding Register */ - -#endif - diff --git a/trunk/arch/arm/mach-clps711x/autcpu12.c b/trunk/arch/arm/mach-clps711x/autcpu12.c index 3fb79a1d0bde..32871918bb6e 100644 --- a/trunk/arch/arm/mach-clps711x/autcpu12.c +++ b/trunk/arch/arm/mach-clps711x/autcpu12.c @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include #include @@ -62,9 +64,26 @@ void __init autcpu12_map_io(void) iotable_init(autcpu12_io_desc, ARRAY_SIZE(autcpu12_io_desc)); } +static struct resource autcpu12_nvram_resource[] __initdata = { + DEFINE_RES_MEM_NAMED(AUTCPU12_PHYS_NVRAM, SZ_128K, "SRAM"), +}; + +static struct platform_device autcpu12_nvram_pdev __initdata = { + .name = "autcpu12_nvram", + .id = -1, + .resource = autcpu12_nvram_resource, + .num_resources = ARRAY_SIZE(autcpu12_nvram_resource), +}; + +static void __init autcpu12_init(void) +{ + platform_device_register(&autcpu12_nvram_pdev); +} + MACHINE_START(AUTCPU12, "autronix autcpu12") /* Maintainer: Thomas Gleixner */ .atag_offset = 0x20000, + .init_machine = autcpu12_init, .map_io = autcpu12_map_io, .init_irq = clps711x_init_irq, .timer = &clps711x_timer, diff --git a/trunk/arch/arm/mach-davinci/asp.h b/trunk/arch/arm/mach-davinci/asp.h new file mode 100644 index 000000000000..d9b2acd12393 --- /dev/null +++ b/trunk/arch/arm/mach-davinci/asp.h @@ -0,0 +1,49 @@ +/* + * TI DaVinci Audio definitions + */ +#ifndef __ASM_ARCH_DAVINCI_ASP_H +#define __ASM_ARCH_DAVINCI_ASP_H + +/* Bases of dm644x and dm355 register banks */ +#define DAVINCI_ASP0_BASE 0x01E02000 +#define DAVINCI_ASP1_BASE 0x01E04000 + +/* Bases of dm365 register banks */ +#define DAVINCI_DM365_ASP0_BASE 0x01D02000 + +/* Bases of dm646x register banks */ +#define DAVINCI_DM646X_MCASP0_REG_BASE 0x01D01000 +#define DAVINCI_DM646X_MCASP1_REG_BASE 0x01D01800 + +/* Bases of da850/da830 McASP0 register banks */ +#define DAVINCI_DA8XX_MCASP0_REG_BASE 0x01D00000 + +/* Bases of da830 McASP1 register banks */ +#define DAVINCI_DA830_MCASP1_REG_BASE 0x01D04000 + +/* EDMA channels of dm644x and dm355 */ +#define DAVINCI_DMA_ASP0_TX 2 +#define DAVINCI_DMA_ASP0_RX 3 +#define DAVINCI_DMA_ASP1_TX 8 +#define DAVINCI_DMA_ASP1_RX 9 + +/* EDMA channels of dm646x */ +#define DAVINCI_DM646X_DMA_MCASP0_AXEVT0 6 +#define DAVINCI_DM646X_DMA_MCASP0_AREVT0 9 +#define DAVINCI_DM646X_DMA_MCASP1_AXEVT1 12 + +/* EDMA channels of da850/da830 McASP0 */ +#define DAVINCI_DA8XX_DMA_MCASP0_AREVT 0 +#define DAVINCI_DA8XX_DMA_MCASP0_AXEVT 1 + +/* EDMA channels of da830 McASP1 */ +#define DAVINCI_DA830_DMA_MCASP1_AREVT 2 +#define DAVINCI_DA830_DMA_MCASP1_AXEVT 3 + +/* Interrupts */ +#define DAVINCI_ASP0_RX_INT IRQ_MBRINT +#define DAVINCI_ASP0_TX_INT IRQ_MBXINT +#define DAVINCI_ASP1_RX_INT IRQ_MBRINT +#define DAVINCI_ASP1_TX_INT IRQ_MBXINT + +#endif /* __ASM_ARCH_DAVINCI_ASP_H */ diff --git a/trunk/arch/arm/mach-davinci/davinci.h b/trunk/arch/arm/mach-davinci/davinci.h index a37fc44e29bc..12d544befcfa 100644 --- a/trunk/arch/arm/mach-davinci/davinci.h +++ b/trunk/arch/arm/mach-davinci/davinci.h @@ -22,10 +22,10 @@ #include #include #include - -#include +#include #include #include +#include #include #include diff --git a/trunk/arch/arm/mach-davinci/devices-da8xx.c b/trunk/arch/arm/mach-davinci/devices-da8xx.c index 783eab6845c4..bd2f72b414bc 100644 --- a/trunk/arch/arm/mach-davinci/devices-da8xx.c +++ b/trunk/arch/arm/mach-davinci/devices-da8xx.c @@ -24,6 +24,7 @@ #include #include "clock.h" +#include "asp.h" #define DA8XX_TPCC_BASE 0x01c00000 #define DA8XX_TPTC0_BASE 0x01c08000 @@ -505,15 +506,8 @@ static struct platform_device da850_mcasp_device = { .resource = da850_mcasp_resources, }; -static struct platform_device davinci_pcm_device = { - .name = "davinci-pcm-audio", - .id = -1, -}; - void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata) { - platform_device_register(&davinci_pcm_device); - /* DA830/OMAP-L137 has 3 instances of McASP */ if (cpu_is_davinci_da830() && id == 1) { da830_mcasp1_device.dev.platform_data = pdata; diff --git a/trunk/arch/arm/mach-davinci/devices.c b/trunk/arch/arm/mach-davinci/devices.c index 3a42b6f79aa9..4c48a36ee567 100644 --- a/trunk/arch/arm/mach-davinci/devices.c +++ b/trunk/arch/arm/mach-davinci/devices.c @@ -313,16 +313,6 @@ static void davinci_init_wdt(void) /*-------------------------------------------------------------------------*/ -static struct platform_device davinci_pcm_device = { - .name = "davinci-pcm-audio", - .id = -1, -}; - -static void davinci_init_pcm(void) -{ - platform_device_register(&davinci_pcm_device); -} - /*-------------------------------------------------------------------------*/ struct davinci_timer_instance davinci_timer_instance[2] = { @@ -345,7 +335,6 @@ static int __init davinci_init_devices(void) /* please keep these calls, and their implementations above, * in alphabetical order so they're easier to sort through. */ - davinci_init_pcm(); davinci_init_wdt(); return 0; diff --git a/trunk/arch/arm/mach-davinci/dm355.c b/trunk/arch/arm/mach-davinci/dm355.c index adbde33eca01..a255434908db 100644 --- a/trunk/arch/arm/mach-davinci/dm355.c +++ b/trunk/arch/arm/mach-davinci/dm355.c @@ -26,13 +26,13 @@ #include #include #include -#include #include #include #include "davinci.h" #include "clock.h" #include "mux.h" +#include "asp.h" #define DM355_UART2_BASE (IO_PHYS + 0x206000) diff --git a/trunk/arch/arm/mach-davinci/dm365.c b/trunk/arch/arm/mach-davinci/dm365.c index 719e22f2a37e..b680c832e0ba 100644 --- a/trunk/arch/arm/mach-davinci/dm365.c +++ b/trunk/arch/arm/mach-davinci/dm365.c @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -37,6 +36,7 @@ #include "davinci.h" #include "clock.h" #include "mux.h" +#include "asp.h" #define DM365_REF_FREQ 24000000 /* 24 MHz on the DM365 EVM */ diff --git a/trunk/arch/arm/mach-davinci/dm644x.c b/trunk/arch/arm/mach-davinci/dm644x.c index 79d2880c9d2d..cd0c8b1e1ecf 100644 --- a/trunk/arch/arm/mach-davinci/dm644x.c +++ b/trunk/arch/arm/mach-davinci/dm644x.c @@ -23,12 +23,12 @@ #include #include #include -#include #include #include "davinci.h" #include "clock.h" #include "mux.h" +#include "asp.h" /* * Device specific clocks diff --git a/trunk/arch/arm/mach-davinci/dm646x.c b/trunk/arch/arm/mach-davinci/dm646x.c index 9eb87c1d1edd..97c0f8e555bd 100644 --- a/trunk/arch/arm/mach-davinci/dm646x.c +++ b/trunk/arch/arm/mach-davinci/dm646x.c @@ -24,12 +24,12 @@ #include #include #include -#include #include #include "davinci.h" #include "clock.h" #include "mux.h" +#include "asp.h" #define DAVINCI_VPIF_BASE (0x01C12000) diff --git a/trunk/arch/arm/mach-davinci/include/mach/da8xx.h b/trunk/arch/arm/mach-davinci/include/mach/da8xx.h index 13d229575757..aaccdc4528fc 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/trunk/arch/arm/mach-davinci/include/mach/da8xx.h @@ -16,11 +16,11 @@ #include #include #include +#include #include #include #include -#include #include #include #include diff --git a/trunk/arch/arm/mach-exynos/dma.c b/trunk/arch/arm/mach-exynos/dma.c index f60b66dbcf84..21d568b3b149 100644 --- a/trunk/arch/arm/mach-exynos/dma.c +++ b/trunk/arch/arm/mach-exynos/dma.c @@ -303,10 +303,12 @@ static int __init exynos_dma_init(void) dma_cap_set(DMA_SLAVE, exynos_pdma0_pdata.cap_mask); dma_cap_set(DMA_CYCLIC, exynos_pdma0_pdata.cap_mask); + dma_cap_set(DMA_PRIVATE, exynos_pdma0_pdata.cap_mask); amba_device_register(&exynos_pdma0_device, &iomem_resource); dma_cap_set(DMA_SLAVE, exynos_pdma1_pdata.cap_mask); dma_cap_set(DMA_CYCLIC, exynos_pdma1_pdata.cap_mask); + dma_cap_set(DMA_PRIVATE, exynos_pdma1_pdata.cap_mask); amba_device_register(&exynos_pdma1_device, &iomem_resource); dma_cap_set(DMA_MEMCPY, exynos_mdma1_pdata.cap_mask); diff --git a/trunk/arch/arm/mach-exynos/mach-nuri.c b/trunk/arch/arm/mach-exynos/mach-nuri.c index d397fd2f07ff..c05d7aa84031 100644 --- a/trunk/arch/arm/mach-exynos/mach-nuri.c +++ b/trunk/arch/arm/mach-exynos/mach-nuri.c @@ -29,6 +29,7 @@ #include #include