From 6d056a624fc1e54c5a7d247df26637feb67e47a0 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Fri, 28 Dec 2012 14:24:14 -0800 Subject: [PATCH] --- yaml --- r: 348371 b: refs/heads/master c: ac196f8c92948deb0fc9ae617f3a453c6d71fa69 h: refs/heads/master i: 348369: d8fee7bed5ce3e096fca5e0e2bd8f387842faab9 348367: 160ff76db047e999038cbcc1cc9b4bd2e93f2989 v: v3 --- [refs] | 2 +- trunk/.gitignore | 1 - trunk/Documentation/00-INDEX | 2 - trunk/Documentation/ABI/README | 3 - .../ABI/stable/sysfs-devices-node | 96 +- trunk/Documentation/ABI/testing/ima_policy | 3 +- trunk/Documentation/ABI/testing/sysfs-bus-rbd | 4 + .../ABI/testing/sysfs-devices-node | 7 - trunk/Documentation/DMA-API-HOWTO.txt | 126 + trunk/Documentation/DMA-API.txt | 12 + trunk/Documentation/DMA-attributes.txt | 9 + trunk/Documentation/DocBook/drm.tmpl | 39 +- trunk/Documentation/DocBook/kernel-api.tmpl | 3 + .../acpi/initrd_table_override.txt | 94 + trunk/Documentation/aoe/aoe.txt | 4 +- trunk/Documentation/arm/OMAP/DSS | 10 +- .../Documentation/backlight/lp855x-driver.txt | 10 +- trunk/Documentation/cgroups/memory.txt | 66 +- .../cgroups/resource_counter.txt | 7 +- .../bindings/arm/altera/socfpga-reset.txt | 11 + .../bindings/arm/altera/socfpga-system.txt | 11 + .../bindings/arm/armada-370-xp-mpic.txt | 12 +- .../bindings/arm/armada-370-xp-pmsu.txt | 20 + .../bindings/arm/armada-370-xp-timer.txt | 1 + .../bindings/arm/coherency-fabric.txt | 21 + .../devicetree/bindings/arm/davinci/nand.txt | 8 + .../devicetree/bindings/arm/l2cc.txt | 9 + .../devicetree/bindings/arm/spear/shirq.txt | 48 + .../bindings/clock/mvebu-core-clock.txt | 47 + .../bindings/clock/mvebu-cpu-clock.txt | 21 + .../bindings/clock/mvebu-gated-clock.txt | 119 + .../devicetree/bindings/crypto/fsl-sec4.txt | 5 +- .../devicetree/bindings/dma/mv-xor.txt | 40 + .../bindings/gpu/nvidia,tegra20-host1x.txt | 191 + .../devicetree/bindings/i2c/i2c-cbus-gpio.txt | 27 + .../devicetree/bindings/i2c/i2c-mux-gpio.txt | 81 + .../devicetree/bindings/i2c/i2c-ocores.txt | 2 +- .../devicetree/bindings/i2c/i2c-s3c2410.txt | 20 +- .../bindings/input/gpio-matrix-keypad.txt | 46 + .../devicetree/bindings/input/pwm-beeper.txt | 7 + .../bindings/input/stmpe-keypad.txt | 39 + .../bindings/input/tca8418_keypad.txt | 8 + .../bindings/input/touchscreen/mms114.txt | 34 + .../bindings/input/touchscreen/stmpe.txt | 43 + .../devicetree/bindings/mfd/stmpe.txt | 28 + .../devicetree/bindings/mtd/denali-nand.txt | 23 + .../devicetree/bindings/mtd/flctl-nand.txt | 49 + .../devicetree/bindings/mtd/fsmc-nand.txt | 12 +- .../devicetree/bindings/mtd/m25p80.txt | 29 + .../devicetree/bindings/mtd/mtd-physmap.txt | 3 + .../bindings/net/marvell-armada-370-neta.txt | 23 + .../bindings/net/marvell-orion-mdio.txt | 35 + .../bindings/powerpc/fsl/raideng.txt | 81 + .../devicetree/bindings/pwm/pwm-tiecap.txt | 23 + .../devicetree/bindings/pwm/pwm-tiehrpwm.txt | 23 + .../devicetree/bindings/pwm/pwm-tipwmss.txt | 31 + .../devicetree/bindings/pwm/pwm.txt | 17 +- .../devicetree/bindings/pwm/spear-pwm.txt | 18 + .../devicetree/bindings/pwm/ti,twl-pwm.txt | 17 + .../devicetree/bindings/pwm/ti,twl-pwmled.txt | 17 + .../devicetree/bindings/pwm/vt8500-pwm.txt | 17 + .../bindings/regulator/tps65217.txt | 4 + .../devicetree/bindings/rtc/imxdi-rtc.txt | 17 + .../devicetree/bindings/rtc/rtc-omap.txt | 17 + .../bindings/spi/nvidia,tegra20-sflash.txt | 2 +- .../bindings/spi/nvidia,tegra20-slink.txt | 2 +- .../devicetree/bindings/spi/spi_atmel.txt | 26 + .../devicetree/bindings/video/exynos_dp.txt | 80 + .../devicetree/bindings/video/ssd1307fb.txt | 24 + .../bindings/watchdog/davinci-wdt.txt | 12 + trunk/Documentation/filesystems/00-INDEX | 4 + trunk/Documentation/filesystems/Locking | 6 - .../filesystems/caching/backend-api.txt | 38 +- .../filesystems/caching/netfs-api.txt | 46 +- .../filesystems/caching/object.txt | 23 +- .../filesystems/caching/operations.txt | 2 +- trunk/Documentation/filesystems/efivarfs.txt | 16 + trunk/Documentation/filesystems/ext4.txt | 9 +- trunk/Documentation/filesystems/f2fs.txt | 421 ++ .../filesystems/nfs/nfs41-server.txt | 20 +- trunk/Documentation/filesystems/porting | 2 +- trunk/Documentation/filesystems/proc.txt | 130 +- trunk/Documentation/filesystems/vfat.txt | 9 + trunk/Documentation/filesystems/vfs.txt | 11 - trunk/Documentation/hwmon/it87 | 10 + trunk/Documentation/i2c/smbus-protocol | 40 +- trunk/Documentation/kernel-parameters.txt | 16 +- trunk/Documentation/kref.txt | 88 + trunk/Documentation/powerpc/ptrace.txt | 16 + trunk/Documentation/prctl/seccomp_filter.txt | 74 +- trunk/Documentation/security/00-INDEX | 2 + trunk/Documentation/security/keys.txt | 17 + trunk/Documentation/sparse.txt | 18 + trunk/Documentation/x86/boot.txt | 3 +- trunk/Documentation/xtensa/atomctl.txt | 44 + trunk/MAINTAINERS | 50 +- trunk/Makefile | 20 +- trunk/arch/Kconfig | 29 +- trunk/arch/alpha/Kconfig | 3 +- trunk/arch/alpha/include/asm/Kbuild | 9 - trunk/arch/alpha/include/asm/a.out.h | 89 +- trunk/arch/alpha/include/asm/compiler.h | 115 +- trunk/arch/alpha/include/asm/console.h | 48 +- trunk/arch/alpha/include/asm/fpu.h | 124 +- trunk/arch/alpha/include/asm/pal.h | 50 +- trunk/arch/alpha/include/asm/param.h | 20 +- trunk/arch/alpha/include/asm/ptrace.h | 69 +- trunk/arch/alpha/include/asm/signal.h | 135 +- trunk/arch/alpha/include/asm/socket.h | 79 +- trunk/arch/alpha/include/asm/termios.h | 68 +- trunk/arch/alpha/include/asm/types.h | 13 +- trunk/arch/alpha/include/asm/unistd.h | 470 +- trunk/arch/alpha/include/uapi/asm/Kbuild | 40 + trunk/arch/alpha/include/uapi/asm/a.out.h | 91 + .../alpha/include/{ => uapi}/asm/auxvec.h | 0 .../include/{ => uapi}/asm/bitsperlong.h | 0 .../alpha/include/{ => uapi}/asm/byteorder.h | 0 trunk/arch/alpha/include/uapi/asm/compiler.h | 117 + trunk/arch/alpha/include/uapi/asm/console.h | 50 + .../arch/alpha/include/{ => uapi}/asm/errno.h | 0 .../arch/alpha/include/{ => uapi}/asm/fcntl.h | 0 trunk/arch/alpha/include/uapi/asm/fpu.h | 123 + .../alpha/include/{ => uapi}/asm/gentrap.h | 0 .../arch/alpha/include/{ => uapi}/asm/ioctl.h | 0 .../alpha/include/{ => uapi}/asm/ioctls.h | 0 .../alpha/include/{ => uapi}/asm/ipcbuf.h | 0 .../alpha/include/{ => uapi}/asm/kvm_para.h | 0 .../arch/alpha/include/{ => uapi}/asm/mman.h | 0 .../alpha/include/{ => uapi}/asm/msgbuf.h | 0 trunk/arch/alpha/include/uapi/asm/pal.h | 52 + trunk/arch/alpha/include/uapi/asm/param.h | 21 + .../arch/alpha/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/alpha/include/uapi/asm/ptrace.h | 70 + trunk/arch/alpha/include/{ => uapi}/asm/reg.h | 0 .../alpha/include/{ => uapi}/asm/regdef.h | 0 .../alpha/include/{ => uapi}/asm/resource.h | 0 .../alpha/include/{ => uapi}/asm/sembuf.h | 0 .../arch/alpha/include/{ => uapi}/asm/setup.h | 0 .../alpha/include/{ => uapi}/asm/shmbuf.h | 0 .../alpha/include/{ => uapi}/asm/sigcontext.h | 0 .../alpha/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/alpha/include/uapi/asm/signal.h | 129 + trunk/arch/alpha/include/uapi/asm/socket.h | 81 + .../alpha/include/{ => uapi}/asm/sockios.h | 0 .../arch/alpha/include/{ => uapi}/asm/stat.h | 0 .../alpha/include/{ => uapi}/asm/statfs.h | 0 .../arch/alpha/include/{ => uapi}/asm/swab.h | 0 .../alpha/include/{ => uapi}/asm/sysinfo.h | 0 .../alpha/include/{ => uapi}/asm/termbits.h | 0 trunk/arch/alpha/include/uapi/asm/termios.h | 70 + trunk/arch/alpha/include/uapi/asm/types.h | 16 + trunk/arch/alpha/include/uapi/asm/unistd.h | 471 ++ trunk/arch/alpha/kernel/signal.c | 10 +- trunk/arch/arm/Kconfig | 3 +- trunk/arch/arm/boot/compressed/head.S | 2 +- trunk/arch/arm/boot/dts/Makefile | 17 +- trunk/arch/arm/boot/dts/armada-370-db.dts | 25 +- .../arch/arm/boot/dts/armada-370-mirabox.dts | 56 + trunk/arch/arm/boot/dts/armada-370-xp.dtsi | 63 +- trunk/arch/arm/boot/dts/armada-370.dtsi | 57 + trunk/arch/arm/boot/dts/armada-xp-db.dts | 44 + .../arch/arm/boot/dts/armada-xp-mv78230.dtsi | 12 + .../arch/arm/boot/dts/armada-xp-mv78260.dtsi | 19 + .../arch/arm/boot/dts/armada-xp-mv78460.dtsi | 34 + .../boot/dts/armada-xp-openblocks-ax3-4.dts | 125 + trunk/arch/arm/boot/dts/armada-xp.dtsi | 91 +- trunk/arch/arm/boot/dts/at91sam9263.dtsi | 4 +- trunk/arch/arm/boot/dts/at91sam9g45.dtsi | 4 +- trunk/arch/arm/boot/dts/at91sam9x5.dtsi | 2 +- trunk/arch/arm/boot/dts/dove.dtsi | 62 + trunk/arch/arm/boot/dts/exynos5250.dtsi | 27 +- trunk/arch/arm/boot/dts/imx27-3ds.dts | 8 +- .../arm/boot/dts/imx27-phytec-phycore.dts | 13 +- trunk/arch/arm/boot/dts/imx27.dtsi | 11 +- trunk/arch/arm/boot/dts/imx28-cfa10049.dts | 24 + trunk/arch/arm/boot/dts/kirkwood.dtsi | 62 + trunk/arch/arm/boot/dts/omap2420-h4.dts | 2 +- trunk/arch/arm/boot/dts/socfpga.dtsi | 10 + trunk/arch/arm/boot/dts/spear1310-evb.dts | 165 +- trunk/arch/arm/boot/dts/spear1310.dtsi | 32 +- trunk/arch/arm/boot/dts/spear1340-evb.dts | 253 +- trunk/arch/arm/boot/dts/spear1340.dtsi | 61 + trunk/arch/arm/boot/dts/spear13xx.dtsi | 82 +- trunk/arch/arm/boot/dts/spear300-evb.dts | 20 +- trunk/arch/arm/boot/dts/spear300.dtsi | 22 +- trunk/arch/arm/boot/dts/spear310-evb.dts | 30 +- trunk/arch/arm/boot/dts/spear310.dtsi | 26 +- trunk/arch/arm/boot/dts/spear320-evb.dts | 35 +- trunk/arch/arm/boot/dts/spear320-hmi.dts | 305 + trunk/arch/arm/boot/dts/spear320.dtsi | 47 +- trunk/arch/arm/boot/dts/spear3xx.dtsi | 5 +- trunk/arch/arm/boot/dts/spear600-evb.dts | 46 +- trunk/arch/arm/boot/dts/spear600.dtsi | 24 +- ...ubieboard.dts => sun4i-a10-cubieboard.dts} | 4 +- .../boot/dts/{sun4i.dtsi => sun4i-a10.dtsi} | 0 ...-olinuxino.dts => sun5i-a13-olinuxino.dts} | 4 +- .../boot/dts/{sun5i.dtsi => sun5i-a13.dtsi} | 0 trunk/arch/arm/configs/multi_v7_defconfig | 2 + trunk/arch/arm/configs/mvebu_defconfig | 17 + trunk/arch/arm/configs/nhk8815_defconfig | 2 +- trunk/arch/arm/configs/socfpga_defconfig | 3 +- trunk/arch/arm/include/asm/dma-mapping.h | 3 + trunk/arch/arm/include/asm/unistd.h | 1 - trunk/arch/arm/include/uapi/asm/signal.h | 7 - trunk/arch/arm/include/uapi/asm/unistd.h | 1 + trunk/arch/arm/kernel/calls.S | 1 + trunk/arch/arm/kernel/setup.c | 2 +- trunk/arch/arm/kernel/swp_emulate.c | 2 + trunk/arch/arm/kernel/vmlinux.lds.S | 4 +- trunk/arch/arm/mach-davinci/board-da850-evm.c | 1 + trunk/arch/arm/mach-davinci/da830.c | 2 +- trunk/arch/arm/mach-davinci/da850.c | 2 +- trunk/arch/arm/mach-davinci/devices-da8xx.c | 35 +- trunk/arch/arm/mach-davinci/pm_domain.c | 1 + trunk/arch/arm/mach-dove/Kconfig | 2 + trunk/arch/arm/mach-dove/common.c | 62 +- .../arm/mach-ep93xx/include/mach/uncompress.h | 10 +- trunk/arch/arm/mach-exynos/clock-exynos4.c | 4 +- trunk/arch/arm/mach-exynos/clock-exynos5.c | 28 +- trunk/arch/arm/mach-exynos/common.c | 3 +- trunk/arch/arm/mach-exynos/common.h | 2 +- trunk/arch/arm/mach-exynos/cpuidle.c | 36 + trunk/arch/arm/mach-exynos/dev-audio.c | 12 - .../arm/mach-exynos/include/mach/regs-clock.h | 19 + .../arm/mach-exynos/include/mach/regs-pmu.h | 3 + trunk/arch/arm/mach-exynos/mach-exynos5-dt.c | 27 +- trunk/arch/arm/mach-exynos/mach-origen.c | 4 +- trunk/arch/arm/mach-exynos/mach-smdk4x12.c | 4 +- trunk/arch/arm/mach-exynos/mach-smdkv310.c | 4 +- trunk/arch/arm/mach-exynos/platsmp.c | 2 +- trunk/arch/arm/mach-exynos/pm.c | 9 + trunk/arch/arm/mach-imx/clk-imx51-imx53.c | 16 + .../devices/platform-mx2-emma.c | 4 +- trunk/arch/arm/mach-kirkwood/Kconfig | 2 + trunk/arch/arm/mach-kirkwood/board-dt.c | 69 +- trunk/arch/arm/mach-kirkwood/common.c | 4 +- trunk/arch/arm/mach-mvebu/Kconfig | 8 +- trunk/arch/arm/mach-mvebu/Makefile | 4 +- trunk/arch/arm/mach-mvebu/addr-map.c | 5 +- trunk/arch/arm/mach-mvebu/armada-370-xp.c | 33 +- trunk/arch/arm/mach-mvebu/armada-370-xp.h | 7 + trunk/arch/arm/mach-mvebu/coherency.c | 155 + trunk/arch/arm/mach-mvebu/coherency.h | 24 + trunk/arch/arm/mach-mvebu/coherency_ll.S | 49 + trunk/arch/arm/mach-mvebu/common.h | 5 + trunk/arch/arm/mach-mvebu/headsmp.S | 49 + trunk/arch/arm/mach-mvebu/hotplug.c | 30 + trunk/arch/arm/mach-mvebu/irq-armada-370-xp.c | 96 +- trunk/arch/arm/mach-mvebu/platsmp.c | 122 + trunk/arch/arm/mach-mvebu/pmsu.c | 75 + trunk/arch/arm/mach-mvebu/pmsu.h | 16 + trunk/arch/arm/mach-mxs/mach-mxs.c | 2 +- trunk/arch/arm/mach-nomadik/board-nhk8815.c | 71 +- .../arch/arm/mach-nomadik/include/mach/fsmc.h | 29 - trunk/arch/arm/mach-omap1/board-nokia770.c | 14 +- trunk/arch/arm/mach-omap2/Kconfig | 3 +- trunk/arch/arm/mach-omap2/board-3430sdp.c | 1 + trunk/arch/arm/mach-omap2/board-am3517evm.c | 1 + 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-h4.c | 83 +- trunk/arch/arm/mach-omap2/board-n8x0.c | 42 + trunk/arch/arm/mach-omap2/board-omap3evm.c | 1 + .../arch/arm/mach-omap2/board-omap3stalker.c | 1 + .../arm/mach-omap2/board-rx51-peripherals.c | 6 + trunk/arch/arm/mach-omap2/board-rx51-video.c | 14 - trunk/arch/arm/mach-omap2/board-rx51.c | 3 - trunk/arch/arm/mach-omap2/cclock44xx_data.c | 78 +- trunk/arch/arm/mach-omap2/clock.h | 10 + trunk/arch/arm/mach-omap2/clockdomain.c | 3 +- trunk/arch/arm/mach-omap2/common.c | 3 - trunk/arch/arm/mach-omap2/cpuidle34xx.c | 14 +- trunk/arch/arm/mach-omap2/cpuidle44xx.c | 28 +- trunk/arch/arm/mach-omap2/devices.c | 2 +- trunk/arch/arm/mach-omap2/display.c | 15 +- trunk/arch/arm/mach-omap2/dpll3xxx.c | 46 +- trunk/arch/arm/mach-omap2/dpll44xx.c | 64 +- trunk/arch/arm/mach-omap2/i2c.c | 20 + trunk/arch/arm/mach-omap2/mux.c | 10 +- trunk/arch/arm/mach-omap2/mux.h | 20 +- trunk/arch/arm/mach-omap2/mux34xx.c | 2 +- trunk/arch/arm/mach-omap2/omap-iommu.c | 167 +- .../arm/mach-omap2/omap_hwmod_2430_data.c | 3 +- .../arm/mach-omap2/omap_hwmod_33xx_data.c | 3 +- .../arm/mach-omap2/omap_hwmod_3xxx_data.c | 12 +- .../arm/mach-omap2/omap_hwmod_44xx_data.c | 7 +- trunk/arch/arm/mach-omap2/serial.c | 3 +- trunk/arch/arm/mach-omap2/timer.c | 8 +- trunk/arch/arm/mach-omap2/usb-host.c | 4 + .../arm/mach-realview/include/mach/board-eb.h | 2 +- trunk/arch/arm/mach-s3c64xx/clock.c | 126 +- trunk/arch/arm/mach-s3c64xx/dev-audio.c | 11 - trunk/arch/arm/mach-s5p64x0/clock-s5p6440.c | 49 +- trunk/arch/arm/mach-s5p64x0/clock-s5p6450.c | 61 +- trunk/arch/arm/mach-s5p64x0/dev-audio.c | 12 - trunk/arch/arm/mach-s5pc100/clock.c | 48 +- trunk/arch/arm/mach-s5pc100/dev-audio.c | 16 - trunk/arch/arm/mach-s5pv210/dev-audio.c | 16 - trunk/arch/arm/mach-shmobile/board-ag5evm.c | 198 +- trunk/arch/arm/mach-shmobile/board-ap4evb.c | 4 +- trunk/arch/arm/mach-shmobile/board-mackerel.c | 6 - trunk/arch/arm/mach-shmobile/clock-sh7372.c | 20 +- .../arm/mach-shmobile/include/mach/sh7372.h | 2 - trunk/arch/arm/mach-shmobile/smp-emev2.c | 22 +- trunk/arch/arm/mach-shmobile/smp-r8a7779.c | 25 +- trunk/arch/arm/mach-shmobile/smp-sh73a0.c | 23 +- trunk/arch/arm/mach-socfpga/Kconfig | 1 + trunk/arch/arm/mach-socfpga/Makefile | 1 + trunk/arch/arm/mach-socfpga/core.h | 34 + trunk/arch/arm/mach-socfpga/headsmp.S | 25 + trunk/arch/arm/mach-socfpga/platsmp.c | 116 + trunk/arch/arm/mach-socfpga/socfpga.c | 54 +- .../arm/mach-spear13xx/include/mach/spear.h | 8 - trunk/arch/arm/mach-spear13xx/spear1310.c | 16 +- trunk/arch/arm/mach-spear13xx/spear13xx.c | 2 - .../arm/mach-spear3xx/include/mach/irqs.h | 10 +- trunk/arch/arm/mach-spear3xx/spear300.c | 103 - trunk/arch/arm/mach-spear3xx/spear310.c | 202 - trunk/arch/arm/mach-spear3xx/spear320.c | 205 +- trunk/arch/arm/mach-spear3xx/spear3xx.c | 4 + trunk/arch/arm/mach-tegra/common.c | 2 +- trunk/arch/arm/mach-tegra/tegra30_clocks.c | 4 +- trunk/arch/arm/mach-u300/core.c | 48 +- .../arch/arm/mach-ux500/board-mop500-stuib.c | 71 +- trunk/arch/arm/mach-ux500/devices-db8500.h | 1 + trunk/arch/arm/mm/Kconfig | 4 + trunk/arch/arm/mm/cache-v7.S | 6 +- trunk/arch/arm/mm/dma-mapping.c | 45 +- trunk/arch/arm/mm/proc-v7.S | 67 + trunk/arch/arm/plat-omap/Makefile | 1 - trunk/arch/arm/plat-omap/debug-devices.c | 92 - trunk/arch/arm/plat-omap/fb.c | 5 +- .../plat-omap/include/plat/debug-devices.h | 2 - trunk/arch/arm/plat-omap/include/plat/vram.h | 43 - trunk/arch/arm/plat-orion/addr-map.c | 4 + trunk/arch/arm/plat-orion/common.c | 192 +- .../arm/plat-orion/include/plat/addr-map.h | 1 + .../arch/arm/plat-orion/include/plat/common.h | 1 + trunk/arch/arm/plat-samsung/clock.c | 75 +- .../arm/plat-samsung/include/plat/gpio-core.h | 5 + trunk/arch/arm/plat-spear/Makefile | 2 +- trunk/arch/arm/plat-spear/shirq.c | 118 - trunk/arch/arm64/Kconfig | 2 - trunk/arch/arm64/include/asm/compat.h | 5 +- trunk/arch/arm64/include/asm/dma-mapping.h | 1 + trunk/arch/arm64/include/asm/unistd.h | 2 +- trunk/arch/arm64/kernel/sys_compat.c | 15 - trunk/arch/avr32/Kconfig | 2 - trunk/arch/avr32/include/asm/ptrace.h | 1 + trunk/arch/avr32/include/asm/unistd.h | 1 - trunk/arch/avr32/include/uapi/asm/signal.h | 6 - trunk/arch/blackfin/Kconfig | 2 - trunk/arch/blackfin/include/asm/Kbuild | 6 +- trunk/arch/blackfin/include/asm/bfin_sport.h | 128 +- trunk/arch/blackfin/include/asm/bfin_twi.h | 2 +- trunk/arch/blackfin/include/asm/fixed_code.h | 30 +- trunk/arch/blackfin/include/asm/pgtable.h | 2 - trunk/arch/blackfin/include/asm/ptrace.h | 162 +- trunk/arch/blackfin/include/asm/uaccess.h | 41 +- trunk/arch/blackfin/include/asm/unistd.h | 431 +- trunk/arch/blackfin/include/mach-common/irq.h | 5 +- trunk/arch/blackfin/include/uapi/asm/Kbuild | 16 + .../blackfin/include/uapi/asm/bfin_sport.h | 136 + .../include/{ => uapi}/asm/byteorder.h | 0 .../include/{ => uapi}/asm/cachectl.h | 0 .../blackfin/include/{ => uapi}/asm/fcntl.h | 0 .../blackfin/include/uapi/asm/fixed_code.h | 38 + .../blackfin/include/{ => uapi}/asm/ioctls.h | 0 .../blackfin/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/blackfin/include/uapi/asm/ptrace.h | 170 + .../include/{ => uapi}/asm/sigcontext.h | 0 .../blackfin/include/{ => uapi}/asm/siginfo.h | 0 .../blackfin/include/{ => uapi}/asm/signal.h | 0 .../blackfin/include/{ => uapi}/asm/stat.h | 0 .../blackfin/include/{ => uapi}/asm/swab.h | 0 trunk/arch/blackfin/include/uapi/asm/unistd.h | 437 ++ trunk/arch/blackfin/kernel/kgdb.c | 13 +- .../mach-bf518/include/mach/anomaly.h | 1 + .../mach-bf527/include/mach/anomaly.h | 1 + .../mach-bf533/include/mach/anomaly.h | 1 + .../mach-bf537/include/mach/anomaly.h | 1 + .../mach-bf538/include/mach/anomaly.h | 1 + .../mach-bf548/include/mach/anomaly.h | 1 + .../mach-bf561/include/mach/anomaly.h | 1 + .../blackfin/mach-bf609/include/mach/irq.h | 3 - trunk/arch/blackfin/mach-bf609/pm.c | 3 +- trunk/arch/blackfin/mach-common/dpmc.c | 19 +- .../arch/blackfin/mach-common/ints-priority.c | 272 +- trunk/arch/c6x/Kconfig | 2 - trunk/arch/c6x/include/asm/Kbuild | 1 + trunk/arch/c6x/include/asm/dma-mapping.h | 1 + trunk/arch/c6x/include/asm/mmu.h | 22 - trunk/arch/c6x/include/uapi/asm/unistd.h | 1 - trunk/arch/cris/Kconfig | 2 - trunk/arch/cris/include/arch-v10/arch/Kbuild | 5 +- trunk/arch/cris/include/arch-v32/arch/Kbuild | 3 +- .../cris/include/arch-v32/arch/cryptocop.h | 116 +- .../cris/include/arch-v32/arch/spinlock.h | 2 +- trunk/arch/cris/include/asm/Kbuild | 5 - trunk/arch/cris/include/asm/io.h | 39 +- trunk/arch/cris/include/asm/ptrace.h | 6 +- trunk/arch/cris/include/asm/signal.h | 121 +- trunk/arch/cris/include/asm/swab.h | 3 +- trunk/arch/cris/include/asm/termios.h | 43 +- trunk/arch/cris/include/asm/types.h | 5 +- trunk/arch/cris/include/asm/unistd.h | 343 +- .../cris/include/uapi/arch-v10/arch/Kbuild | 4 + .../{ => uapi}/arch-v10/arch/sv_addr.agh | 0 .../{ => uapi}/arch-v10/arch/sv_addr_ag.h | 0 .../include/{ => uapi}/arch-v10/arch/svinto.h | 0 .../include/{ => uapi}/arch-v10/arch/user.h | 0 .../cris/include/uapi/arch-v32/arch/Kbuild | 2 + .../include/uapi/arch-v32/arch/cryptocop.h | 122 + .../include/{ => uapi}/arch-v32/arch/user.h | 0 trunk/arch/cris/include/uapi/asm/Kbuild | 34 + .../arch/cris/include/{ => uapi}/asm/auxvec.h | 0 .../cris/include/{ => uapi}/asm/bitsperlong.h | 0 .../cris/include/{ => uapi}/asm/byteorder.h | 0 .../arch/cris/include/{ => uapi}/asm/errno.h | 0 .../cris/include/{ => uapi}/asm/ethernet.h | 0 .../cris/include/{ => uapi}/asm/etraxgpio.h | 0 .../arch/cris/include/{ => uapi}/asm/fcntl.h | 0 .../arch/cris/include/{ => uapi}/asm/ioctl.h | 0 .../arch/cris/include/{ => uapi}/asm/ioctls.h | 0 .../arch/cris/include/{ => uapi}/asm/ipcbuf.h | 0 trunk/arch/cris/include/{ => uapi}/asm/mman.h | 0 .../arch/cris/include/{ => uapi}/asm/msgbuf.h | 0 .../arch/cris/include/{ => uapi}/asm/param.h | 0 trunk/arch/cris/include/{ => uapi}/asm/poll.h | 0 .../cris/include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/cris/include/uapi/asm/ptrace.h | 1 + .../cris/include/{ => uapi}/asm/resource.h | 0 .../arch/cris/include/{ => uapi}/asm/rs485.h | 0 .../arch/cris/include/{ => uapi}/asm/sembuf.h | 0 .../arch/cris/include/{ => uapi}/asm/setup.h | 0 .../arch/cris/include/{ => uapi}/asm/shmbuf.h | 0 .../cris/include/{ => uapi}/asm/sigcontext.h | 0 .../cris/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/cris/include/uapi/asm/signal.h | 116 + .../arch/cris/include/{ => uapi}/asm/socket.h | 0 .../cris/include/{ => uapi}/asm/sockios.h | 0 trunk/arch/cris/include/{ => uapi}/asm/stat.h | 0 .../arch/cris/include/{ => uapi}/asm/statfs.h | 0 trunk/arch/cris/include/uapi/asm/swab.h | 3 + .../cris/include/{ => uapi}/asm/sync_serial.h | 0 .../cris/include/{ => uapi}/asm/termbits.h | 0 trunk/arch/cris/include/uapi/asm/termios.h | 45 + trunk/arch/cris/include/uapi/asm/types.h | 1 + trunk/arch/cris/include/uapi/asm/unistd.h | 344 + trunk/arch/cris/kernel/asm-offsets.c | 6 +- trunk/arch/cris/kernel/module.c | 2 - trunk/arch/frv/Kconfig | 2 - trunk/arch/frv/include/asm/unistd.h | 1 - trunk/arch/frv/kernel/setup.c | 12 +- trunk/arch/frv/mm/init.c | 2 +- trunk/arch/h8300/Kconfig | 3 +- trunk/arch/h8300/include/asm/Kbuild | 2 +- trunk/arch/h8300/include/asm/mmu.h | 10 - trunk/arch/h8300/include/asm/param.h | 15 +- trunk/arch/h8300/include/asm/ptrace.h | 41 +- trunk/arch/h8300/include/asm/signal.h | 121 +- trunk/arch/h8300/include/asm/termios.h | 44 +- trunk/arch/h8300/include/asm/types.h | 5 +- trunk/arch/h8300/include/asm/unistd.h | 329 +- trunk/arch/h8300/include/uapi/asm/Kbuild | 31 + .../h8300/include/{ => uapi}/asm/auxvec.h | 0 .../include/{ => uapi}/asm/bitsperlong.h | 0 .../h8300/include/{ => uapi}/asm/byteorder.h | 0 .../arch/h8300/include/{ => uapi}/asm/errno.h | 0 .../arch/h8300/include/{ => uapi}/asm/fcntl.h | 0 .../arch/h8300/include/{ => uapi}/asm/ioctl.h | 0 .../h8300/include/{ => uapi}/asm/ioctls.h | 0 .../h8300/include/{ => uapi}/asm/ipcbuf.h | 0 .../include/uapi}/asm/kvm_para.h | 0 .../arch/h8300/include/{ => uapi}/asm/mman.h | 0 .../h8300/include/{ => uapi}/asm/msgbuf.h | 0 trunk/arch/h8300/include/uapi/asm/param.h | 16 + .../arch/h8300/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/h8300/include/uapi/asm/ptrace.h | 44 + .../h8300/include/{ => uapi}/asm/resource.h | 0 .../h8300/include/{ => uapi}/asm/sembuf.h | 0 .../arch/h8300/include/{ => uapi}/asm/setup.h | 0 .../h8300/include/{ => uapi}/asm/shmbuf.h | 0 .../h8300/include/{ => uapi}/asm/sigcontext.h | 0 .../h8300/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/h8300/include/uapi/asm/signal.h | 115 + .../h8300/include/{ => uapi}/asm/socket.h | 0 .../h8300/include/{ => uapi}/asm/sockios.h | 0 .../arch/h8300/include/{ => uapi}/asm/stat.h | 0 .../h8300/include/{ => uapi}/asm/statfs.h | 0 .../arch/h8300/include/{ => uapi}/asm/swab.h | 0 .../h8300/include/{ => uapi}/asm/termbits.h | 0 trunk/arch/h8300/include/uapi/asm/termios.h | 44 + trunk/arch/h8300/include/uapi/asm/types.h | 1 + trunk/arch/h8300/include/uapi/asm/unistd.h | 330 + trunk/arch/hexagon/Kconfig | 2 - trunk/arch/hexagon/include/uapi/asm/unistd.h | 1 - trunk/arch/ia64/Kconfig | 2 - trunk/arch/ia64/include/asm/dma-mapping.h | 1 + trunk/arch/ia64/include/asm/ptrace.h | 5 + trunk/arch/ia64/include/asm/unistd.h | 1 - trunk/arch/ia64/include/uapi/asm/signal.h | 6 - trunk/arch/m32r/Kconfig | 2 - trunk/arch/m32r/include/asm/Kbuild | 1 - trunk/arch/m32r/include/asm/ptrace.h | 111 +- trunk/arch/m32r/include/asm/setup.h | 9 +- trunk/arch/m32r/include/asm/signal.h | 123 +- trunk/arch/m32r/include/asm/termios.h | 42 +- trunk/arch/m32r/include/asm/types.h | 5 +- trunk/arch/m32r/include/asm/unistd.h | 334 +- trunk/arch/m32r/include/uapi/asm/Kbuild | 30 + .../arch/m32r/include/{ => uapi}/asm/auxvec.h | 0 .../m32r/include/{ => uapi}/asm/bitsperlong.h | 0 .../m32r/include/{ => uapi}/asm/byteorder.h | 0 .../arch/m32r/include/{ => uapi}/asm/errno.h | 0 .../arch/m32r/include/{ => uapi}/asm/fcntl.h | 0 .../arch/m32r/include/{ => uapi}/asm/ioctl.h | 0 .../arch/m32r/include/{ => uapi}/asm/ioctls.h | 0 .../arch/m32r/include/{ => uapi}/asm/ipcbuf.h | 0 trunk/arch/m32r/include/{ => uapi}/asm/mman.h | 0 .../arch/m32r/include/{ => uapi}/asm/msgbuf.h | 0 .../arch/m32r/include/{ => uapi}/asm/param.h | 0 trunk/arch/m32r/include/{ => uapi}/asm/poll.h | 0 .../m32r/include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/m32r/include/uapi/asm/ptrace.h | 117 + .../m32r/include/{ => uapi}/asm/resource.h | 0 .../arch/m32r/include/{ => uapi}/asm/sembuf.h | 0 trunk/arch/m32r/include/uapi/asm/setup.h | 11 + .../arch/m32r/include/{ => uapi}/asm/shmbuf.h | 0 .../m32r/include/{ => uapi}/asm/sigcontext.h | 0 .../m32r/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/m32r/include/uapi/asm/signal.h | 117 + .../arch/m32r/include/{ => uapi}/asm/socket.h | 0 .../m32r/include/{ => uapi}/asm/sockios.h | 0 trunk/arch/m32r/include/{ => uapi}/asm/stat.h | 0 .../arch/m32r/include/{ => uapi}/asm/statfs.h | 0 trunk/arch/m32r/include/{ => uapi}/asm/swab.h | 0 .../m32r/include/{ => uapi}/asm/termbits.h | 0 trunk/arch/m32r/include/uapi/asm/termios.h | 43 + trunk/arch/m32r/include/uapi/asm/types.h | 1 + trunk/arch/m32r/include/uapi/asm/unistd.h | 335 + trunk/arch/m68k/Kconfig | 2 - trunk/arch/m68k/Kconfig.cpu | 3 +- trunk/arch/m68k/Makefile | 6 +- trunk/arch/m68k/include/asm/m5249sim.h | 269 - trunk/arch/m68k/include/asm/m525xsim.h | 116 +- trunk/arch/m68k/include/asm/mcfclk.h | 9 +- trunk/arch/m68k/include/asm/mcfsim.h | 5 +- trunk/arch/m68k/include/asm/page_no.h | 2 +- trunk/arch/m68k/include/asm/ptrace.h | 1 + trunk/arch/m68k/include/asm/unistd.h | 1 - trunk/arch/m68k/include/uapi/asm/signal.h | 6 - trunk/arch/m68k/lib/memcpy.c | 3 +- trunk/arch/m68k/platform/68000/Makefile | 18 + .../bootlogo.h => 68000/bootlogo-vz.h} | 0 .../m68k/platform/{68328 => 68000}/bootlogo.h | 0 .../m68k/platform/{68328 => 68000}/entry.S | 0 trunk/arch/m68k/platform/68000/head.S | 240 + .../m68k/platform/{68328 => 68000}/ints.c | 2 +- .../{68328/config.c => 68000/m68328.c} | 2 +- .../{68EZ328/config.c => 68000/m68EZ328.c} | 2 +- .../{68VZ328/config.c => 68000/m68VZ328.c} | 4 +- .../m68k/platform/{68328 => 68000}/romvec.S | 2 +- .../m68k/platform/{68328 => 68000}/timers.c | 2 +- trunk/arch/m68k/platform/68328/Makefile | 21 - trunk/arch/m68k/platform/68328/head-de2.S | 128 - trunk/arch/m68k/platform/68328/head-pilot.S | 207 - trunk/arch/m68k/platform/68328/head-ram.S | 141 - trunk/arch/m68k/platform/68328/head-rom.S | 105 - trunk/arch/m68k/platform/68EZ328/Makefile | 5 - trunk/arch/m68k/platform/68VZ328/Makefile | 5 - trunk/arch/m68k/platform/coldfire/clk.c | 100 +- trunk/arch/m68k/platform/coldfire/intc-5249.c | 8 +- trunk/arch/m68k/platform/coldfire/m5206.c | 20 + trunk/arch/m68k/platform/coldfire/m523x.c | 28 + trunk/arch/m68k/platform/coldfire/m5249.c | 28 +- trunk/arch/m68k/platform/coldfire/m525x.c | 20 + trunk/arch/m68k/platform/coldfire/m5272.c | 26 + trunk/arch/m68k/platform/coldfire/m527x.c | 30 + trunk/arch/m68k/platform/coldfire/m528x.c | 28 + trunk/arch/m68k/platform/coldfire/m5307.c | 20 + trunk/arch/m68k/platform/coldfire/m5407.c | 20 + trunk/arch/m68k/platform/coldfire/m54xx.c | 26 + trunk/arch/microblaze/Kconfig | 2 - trunk/arch/microblaze/include/asm/Kbuild | 2 - .../arch/microblaze/include/asm/dma-mapping.h | 2 + trunk/arch/microblaze/include/asm/elf.h | 97 +- trunk/arch/microblaze/include/asm/entry.h | 2 + trunk/arch/microblaze/include/asm/ptrace.h | 63 +- trunk/arch/microblaze/include/asm/setup.h | 6 +- trunk/arch/microblaze/include/asm/uaccess.h | 3 +- trunk/arch/microblaze/include/asm/unistd.h | 391 +- trunk/arch/microblaze/include/uapi/asm/Kbuild | 32 + .../include/{ => uapi}/asm/auxvec.h | 0 .../include/{ => uapi}/asm/bitsperlong.h | 0 .../include/{ => uapi}/asm/byteorder.h | 0 trunk/arch/microblaze/include/uapi/asm/elf.h | 121 + .../microblaze/include/{ => uapi}/asm/errno.h | 0 .../microblaze/include/{ => uapi}/asm/fcntl.h | 0 .../microblaze/include/{ => uapi}/asm/ioctl.h | 0 .../include/{ => uapi}/asm/ioctls.h | 0 .../include/{ => uapi}/asm/ipcbuf.h | 0 .../include/uapi}/asm/kvm_para.h | 0 .../microblaze/include/{ => uapi}/asm/mman.h | 0 .../include/{ => uapi}/asm/msgbuf.h | 0 .../microblaze/include/{ => uapi}/asm/param.h | 0 .../microblaze/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 .../arch/microblaze/include/uapi/asm/ptrace.h | 72 + .../include/{ => uapi}/asm/resource.h | 0 .../include/{ => uapi}/asm/sembuf.h | 0 .../arch/microblaze/include/uapi/asm/setup.h | 19 + .../include/{ => uapi}/asm/shmbuf.h | 0 .../include/{ => uapi}/asm/sigcontext.h | 0 .../include/{ => uapi}/asm/siginfo.h | 0 .../include/{ => uapi}/asm/signal.h | 0 .../include/{ => uapi}/asm/socket.h | 0 .../include/{ => uapi}/asm/sockios.h | 0 .../microblaze/include/{ => uapi}/asm/stat.h | 0 .../include/{ => uapi}/asm/statfs.h | 0 .../microblaze/include/{ => uapi}/asm/swab.h | 0 .../include/{ => uapi}/asm/termbits.h | 0 .../include/{ => uapi}/asm/termios.h | 0 .../microblaze/include/{ => uapi}/asm/types.h | 0 .../arch/microblaze/include/uapi/asm/unistd.h | 401 ++ trunk/arch/microblaze/kernel/entry-nommu.S | 1 - trunk/arch/microblaze/kernel/intc.c | 5 +- trunk/arch/microblaze/kernel/process.c | 1 - trunk/arch/microblaze/kernel/prom.c | 4 +- trunk/arch/microblaze/kernel/signal.c | 2 +- trunk/arch/microblaze/kernel/syscall_table.S | 1 + trunk/arch/microblaze/lib/libgcc.h | 7 + trunk/arch/microblaze/lib/muldi3.c | 28 +- trunk/arch/mips/Kconfig | 143 +- trunk/arch/mips/Makefile | 12 +- trunk/arch/mips/ar7/platform.c | 3 + trunk/arch/mips/bcm47xx/Kconfig | 2 + trunk/arch/mips/bcm47xx/Makefile | 2 +- trunk/arch/mips/bcm47xx/gpio.c | 102 - trunk/arch/mips/bcm47xx/prom.c | 20 +- trunk/arch/mips/bcm47xx/setup.c | 11 +- trunk/arch/mips/bcm47xx/sprom.c | 780 ++- trunk/arch/mips/bcm47xx/wgt634u.c | 8 +- trunk/arch/mips/bcm63xx/Makefile | 7 +- .../arch/mips/bcm63xx/boards/board_bcm963xx.c | 71 +- trunk/arch/mips/bcm63xx/clk.c | 34 +- trunk/arch/mips/bcm63xx/nvram.c | 107 + trunk/arch/mips/bcm63xx/reset.c | 223 + .../cavium-octeon/executive/cvmx-bootmem.c | 5 + trunk/arch/mips/cavium-octeon/flash_setup.c | 3 +- trunk/arch/mips/cavium-octeon/octeon-irq.c | 1 - trunk/arch/mips/cavium-octeon/octeon-memcpy.S | 27 - .../arch/mips/cavium-octeon/octeon-platform.c | 102 - trunk/arch/mips/cavium-octeon/setup.c | 374 +- trunk/arch/mips/configs/ath79_defconfig | 111 + .../arch/mips/configs/cavium_octeon_defconfig | 98 +- trunk/arch/mips/configs/yosemite_defconfig | 94 - trunk/arch/mips/fw/sni/Makefile | 2 +- trunk/arch/mips/include/asm/cpu.h | 6 +- trunk/arch/mips/include/asm/dma-mapping.h | 2 + trunk/arch/mips/include/asm/fw/arc/types.h | 8 +- trunk/arch/mips/include/asm/hazards.h | 25 - trunk/arch/mips/include/asm/kexec.h | 27 +- trunk/arch/mips/include/asm/mach-ar7/war.h | 1 - trunk/arch/mips/include/asm/mach-ath79/war.h | 1 - trunk/arch/mips/include/asm/mach-au1x00/war.h | 1 - .../mips/include/asm/mach-bcm47xx/bcm47xx.h | 4 +- .../arch/mips/include/asm/mach-bcm47xx/gpio.h | 154 +- .../arch/mips/include/asm/mach-bcm47xx/war.h | 1 - .../include/asm/mach-bcm63xx/bcm63xx_nvram.h | 35 + .../include/asm/mach-bcm63xx/bcm63xx_regs.h | 29 +- .../include/asm/mach-bcm63xx/bcm63xx_reset.h | 21 + .../include/asm/mach-bcm63xx/board_bcm963xx.h | 17 - .../arch/mips/include/asm/mach-bcm63xx/war.h | 1 - .../mips/include/asm/mach-cavium-octeon/irq.h | 1 - .../mips/include/asm/mach-cavium-octeon/war.h | 1 - trunk/arch/mips/include/asm/mach-cobalt/war.h | 1 - trunk/arch/mips/include/asm/mach-dec/war.h | 1 - .../arch/mips/include/asm/mach-emma2rh/war.h | 1 - .../arch/mips/include/asm/mach-generic/irq.h | 6 - trunk/arch/mips/include/asm/mach-ip22/war.h | 1 - trunk/arch/mips/include/asm/mach-ip27/war.h | 1 - trunk/arch/mips/include/asm/mach-ip28/war.h | 1 - trunk/arch/mips/include/asm/mach-ip32/war.h | 1 - trunk/arch/mips/include/asm/mach-jazz/war.h | 1 - trunk/arch/mips/include/asm/mach-jz4740/war.h | 1 - trunk/arch/mips/include/asm/mach-lantiq/war.h | 1 - .../include/asm/mach-lantiq/xway/lantiq_soc.h | 3 + trunk/arch/mips/include/asm/mach-lasat/war.h | 1 - .../arch/mips/include/asm/mach-loongson/war.h | 1 - .../include/asm/mach-loongson1/platform.h | 3 +- .../include/asm/mach-loongson1/regs-clk.h | 7 +- .../mips/include/asm/mach-loongson1/war.h | 1 - trunk/arch/mips/include/asm/mach-malta/war.h | 1 - .../arch/mips/include/asm/mach-netlogic/irq.h | 4 +- .../include/asm/mach-netlogic/multi-node.h | 54 + .../arch/mips/include/asm/mach-netlogic/war.h | 1 - .../arch/mips/include/asm/mach-pnx833x/war.h | 1 - .../arch/mips/include/asm/mach-pnx8550/war.h | 1 - .../arch/mips/include/asm/mach-powertv/war.h | 1 - .../arch/mips/include/asm/mach-rc32434/war.h | 1 - trunk/arch/mips/include/asm/mach-rm/war.h | 1 - trunk/arch/mips/include/asm/mach-sead3/war.h | 1 - trunk/arch/mips/include/asm/mach-sibyte/war.h | 1 - trunk/arch/mips/include/asm/mach-tx39xx/war.h | 1 - trunk/arch/mips/include/asm/mach-tx49xx/war.h | 1 - trunk/arch/mips/include/asm/mach-vr41xx/war.h | 1 - trunk/arch/mips/include/asm/mach-wrppmc/war.h | 1 - .../asm/mach-yosemite/cpu-feature-overrides.h | 48 - .../arch/mips/include/asm/mach-yosemite/war.h | 25 - trunk/arch/mips/include/asm/mipsregs.h | 10 +- trunk/arch/mips/include/asm/mmu_context.h | 6 - trunk/arch/mips/include/asm/module.h | 2 - trunk/arch/mips/include/asm/netlogic/common.h | 51 +- .../mips/include/asm/netlogic/interrupt.h | 2 +- .../mips/include/asm/netlogic/mips-extns.h | 142 + .../mips/include/asm/netlogic/xlp-hal/pic.h | 44 +- .../mips/include/asm/netlogic/xlp-hal/sys.h | 1 - .../arch/mips/include/asm/netlogic/xlr/fmn.h | 363 + .../arch/mips/include/asm/netlogic/xlr/pic.h | 2 - .../arch/mips/include/asm/netlogic/xlr/xlr.h | 6 +- .../mips/include/asm/octeon/cvmx-bootmem.h | 2 + .../mips/include/asm/octeon/cvmx-lmcx-defs.h | 3457 ++++++++++ .../mips/include/asm/octeon/octeon-model.h | 6 + trunk/arch/mips/include/asm/octeon/octeon.h | 7 - trunk/arch/mips/include/asm/page.h | 8 +- trunk/arch/mips/include/asm/pgtable-64.h | 2 +- trunk/arch/mips/include/asm/pgtable-bits.h | 131 +- trunk/arch/mips/include/asm/pgtable.h | 168 +- .../mips/include/asm/pmc-sierra/msp71xx/war.h | 1 - trunk/arch/mips/include/asm/processor.h | 4 - trunk/arch/mips/include/asm/ptrace.h | 1 + trunk/arch/mips/include/asm/sgiarcs.h | 8 +- trunk/arch/mips/include/asm/smp.h | 6 + trunk/arch/mips/include/asm/smvp.h | 19 - trunk/arch/mips/include/asm/sparsemem.h | 2 +- trunk/arch/mips/include/asm/time.h | 4 +- trunk/arch/mips/include/asm/titan_dep.h | 231 - trunk/arch/mips/include/asm/unistd.h | 1 - trunk/arch/mips/include/asm/war.h | 8 - trunk/arch/mips/include/uapi/asm/signal.h | 6 - trunk/arch/mips/kernel/Makefile | 8 +- trunk/arch/mips/kernel/asm-offsets.c | 4 - trunk/arch/mips/kernel/crash.c | 71 + trunk/arch/mips/kernel/crash_dump.c | 75 + trunk/arch/mips/kernel/irq-rm9000.c | 106 - trunk/arch/mips/kernel/machine_kexec.c | 33 +- trunk/arch/mips/kernel/mips-mt-fpaff.c | 4 +- trunk/arch/mips/kernel/mips_ksyms.c | 2 +- trunk/arch/mips/kernel/perf_event_mipsxx.c | 124 + trunk/arch/mips/kernel/process.c | 4 +- trunk/arch/mips/kernel/relocate_kernel.S | 107 +- trunk/arch/mips/kernel/scall64-n32.S | 6 - trunk/arch/mips/kernel/setup.c | 56 + trunk/arch/mips/kernel/signal.c | 13 +- trunk/arch/mips/kernel/smp.c | 17 + trunk/arch/mips/kernel/traps.c | 25 +- trunk/arch/mips/lantiq/Kconfig | 4 + trunk/arch/mips/lantiq/prom.c | 5 +- trunk/arch/mips/lantiq/xway/Makefile | 2 + trunk/arch/mips/lantiq/xway/dma.c | 15 +- trunk/arch/mips/lantiq/xway/reset.c | 58 +- trunk/arch/mips/lantiq/xway/sysctrl.c | 4 + trunk/arch/mips/lantiq/xway/xrx200_phy_fw.c | 97 + trunk/arch/mips/loongson1/Kconfig | 2 +- trunk/arch/mips/loongson1/common/clock.c | 159 +- trunk/arch/mips/loongson1/common/platform.c | 10 +- trunk/arch/mips/loongson1/ls1b/board.c | 5 +- trunk/arch/mips/math-emu/cp1emu.c | 15 +- trunk/arch/mips/mm/c-octeon.c | 67 +- trunk/arch/mips/mm/c-r4k.c | 23 +- trunk/arch/mips/mm/highmem.c | 3 +- trunk/arch/mips/mm/page.c | 9 - trunk/arch/mips/mm/pgtable-64.c | 31 + trunk/arch/mips/mm/tlb-r4k.c | 22 +- trunk/arch/mips/mm/tlbex.c | 123 +- trunk/arch/mips/netlogic/Kconfig | 28 + trunk/arch/mips/netlogic/common/irq.c | 165 +- trunk/arch/mips/netlogic/common/smp.c | 89 +- trunk/arch/mips/netlogic/common/smpboot.S | 6 +- trunk/arch/mips/netlogic/xlp/nlm_hal.c | 67 +- trunk/arch/mips/netlogic/xlp/setup.c | 50 +- trunk/arch/mips/netlogic/xlp/wakeup.c | 83 +- trunk/arch/mips/netlogic/xlr/Makefile | 4 +- trunk/arch/mips/netlogic/xlr/fmn-config.c | 290 + trunk/arch/mips/netlogic/xlr/fmn.c | 204 + trunk/arch/mips/netlogic/xlr/setup.c | 37 +- trunk/arch/mips/netlogic/xlr/wakeup.c | 23 +- trunk/arch/mips/oprofile/Makefile | 2 +- trunk/arch/mips/oprofile/common.c | 5 +- trunk/arch/mips/oprofile/op_model_mipsxx.c | 29 + trunk/arch/mips/oprofile/op_model_rm9000.c | 138 - trunk/arch/mips/pci/Makefile | 2 - trunk/arch/mips/pci/fixup-yosemite.c | 41 - trunk/arch/mips/pci/ops-bridge.c | 24 +- trunk/arch/mips/pci/ops-titan-ht.c | 124 - trunk/arch/mips/pci/ops-titan.c | 111 - trunk/arch/mips/pci/pci-bcm63xx.c | 34 +- trunk/arch/mips/pci/pci-octeon.c | 5 + trunk/arch/mips/pci/pci-xlr.c | 69 +- trunk/arch/mips/pci/pci-yosemite.c | 67 - trunk/arch/mips/pmc-sierra/Kconfig | 4 - trunk/arch/mips/pmc-sierra/Platform | 7 - trunk/arch/mips/pmc-sierra/yosemite/Makefile | 7 - .../pmc-sierra/yosemite/atmel_read_eeprom.c | 169 - .../pmc-sierra/yosemite/atmel_read_eeprom.h | 67 - trunk/arch/mips/pmc-sierra/yosemite/ht-irq.c | 41 - trunk/arch/mips/pmc-sierra/yosemite/ht.c | 404 -- trunk/arch/mips/pmc-sierra/yosemite/irq.c | 152 - trunk/arch/mips/pmc-sierra/yosemite/prom.c | 142 - .../mips/pmc-sierra/yosemite/py-console.c | 109 - trunk/arch/mips/pmc-sierra/yosemite/setup.c | 224 - trunk/arch/mips/pmc-sierra/yosemite/setup.h | 32 - trunk/arch/mips/pmc-sierra/yosemite/smp.c | 185 - trunk/arch/mips/powertv/init.c | 37 - trunk/arch/mips/rb532/prom.c | 3 +- trunk/arch/mips/sgi-ip22/ip22-eisa.c | 8 +- trunk/arch/mips/sibyte/Kconfig | 2 +- trunk/arch/mips/sni/setup.c | 8 +- trunk/arch/mips/wrppmc/pci.c | 6 +- trunk/arch/mn10300/Kconfig | 2 - trunk/arch/mn10300/include/asm/unistd.h | 1 - trunk/arch/mn10300/include/uapi/asm/signal.h | 6 - trunk/arch/openrisc/Kconfig | 2 - trunk/arch/openrisc/include/asm/Kbuild | 1 + trunk/arch/openrisc/include/asm/io.h | 1 + .../arch/openrisc/include/uapi/asm/kvm_para.h | 1 - trunk/arch/openrisc/include/uapi/asm/unistd.h | 1 - trunk/arch/openrisc/kernel/asm-offsets.c | 6 +- trunk/arch/parisc/Kconfig | 2 - trunk/arch/parisc/include/asm/unistd.h | 1 - trunk/arch/parisc/include/uapi/asm/signal.h | 6 - trunk/arch/parisc/kernel/module.c | 2 - trunk/arch/powerpc/Kconfig | 2 - trunk/arch/powerpc/Makefile | 2 +- trunk/arch/powerpc/boot/dts/a3m071.dts | 144 + .../powerpc/boot/dts/fsl/p5020si-post.dtsi | 1 + .../powerpc/boot/dts/fsl/p5020si-pre.dtsi | 6 + .../powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi | 85 + trunk/arch/powerpc/configs/pseries_defconfig | 2 +- trunk/arch/powerpc/include/asm/bitops.h | 75 +- trunk/arch/powerpc/include/asm/cputable.h | 12 +- trunk/arch/powerpc/include/asm/dbell.h | 2 +- trunk/arch/powerpc/include/asm/dma-mapping.h | 1 + .../arch/powerpc/include/asm/exception-64s.h | 97 +- trunk/arch/powerpc/include/asm/firmware.h | 4 +- trunk/arch/powerpc/include/asm/fsl_gtm.h | 2 +- trunk/arch/powerpc/include/asm/fsl_guts.h | 4 +- trunk/arch/powerpc/include/asm/hvcall.h | 23 +- trunk/arch/powerpc/include/asm/immap_qe.h | 2 +- trunk/arch/powerpc/include/asm/machdep.h | 39 +- trunk/arch/powerpc/include/asm/mmu.h | 1 + .../powerpc/include/asm/pSeries_reconfig.h | 47 - trunk/arch/powerpc/include/asm/ppc-opcode.h | 6 +- trunk/arch/powerpc/include/asm/prom.h | 16 + trunk/arch/powerpc/include/asm/qe.h | 2 +- trunk/arch/powerpc/include/asm/qe_ic.h | 2 +- trunk/arch/powerpc/include/asm/reg.h | 3 + trunk/arch/powerpc/include/asm/rtas.h | 5 + trunk/arch/powerpc/include/asm/setup.h | 29 + trunk/arch/powerpc/include/asm/systbl.h | 3 +- trunk/arch/powerpc/include/asm/ucc.h | 2 +- trunk/arch/powerpc/include/asm/ucc_fast.h | 2 +- trunk/arch/powerpc/include/asm/ucc_slow.h | 2 +- trunk/arch/powerpc/include/asm/udbg.h | 1 - trunk/arch/powerpc/include/asm/unistd.h | 4 +- trunk/arch/powerpc/include/uapi/asm/setup.h | 31 - trunk/arch/powerpc/include/uapi/asm/signal.h | 6 - trunk/arch/powerpc/include/uapi/asm/unistd.h | 1 + trunk/arch/powerpc/kernel/Makefile | 2 +- .../{cpu_setup_power7.S => cpu_setup_power.S} | 32 +- trunk/arch/powerpc/kernel/cputable.c | 38 + trunk/arch/powerpc/kernel/entry_64.S | 2 + trunk/arch/powerpc/kernel/exceptions-64s.S | 308 +- trunk/arch/powerpc/kernel/head_64.S | 6 +- trunk/arch/powerpc/kernel/idle.c | 3 - trunk/arch/powerpc/kernel/iommu.c | 16 +- trunk/arch/powerpc/kernel/machine_kexec.c | 14 +- trunk/arch/powerpc/kernel/machine_kexec_64.c | 8 +- trunk/arch/powerpc/kernel/pci_32.c | 2 +- trunk/arch/powerpc/kernel/prom.c | 7 +- trunk/arch/powerpc/kernel/prom_init.c | 11 +- trunk/arch/powerpc/kernel/ptrace.c | 90 +- trunk/arch/powerpc/kernel/rtas.c | 1 - trunk/arch/powerpc/kernel/rtas_flash.c | 4 +- trunk/arch/powerpc/kernel/setup_64.c | 5 + trunk/arch/powerpc/kernel/sys_ppc32.c | 17 +- trunk/arch/powerpc/kernel/udbg.c | 23 - trunk/arch/powerpc/mm/numa.c | 12 - trunk/arch/powerpc/mm/tlb_nohash_low.S | 15 +- trunk/arch/powerpc/perf/power7-pmu.c | 17 +- trunk/arch/powerpc/platforms/512x/Kconfig | 1 - .../arch/powerpc/platforms/512x/mpc5121_ads.c | 3 + trunk/arch/powerpc/platforms/512x/mpc512x.h | 11 +- .../powerpc/platforms/512x/mpc512x_shared.c | 25 +- trunk/arch/powerpc/platforms/52xx/lite5200.c | 2 +- .../powerpc/platforms/52xx/mpc5200_simple.c | 1 + .../powerpc/platforms/52xx/mpc52xx_lpbfifo.c | 16 +- .../powerpc/platforms/82xx/pq2ads-pci-pic.c | 8 +- .../arch/powerpc/platforms/83xx/mpc832x_mds.c | 2 +- .../arch/powerpc/platforms/83xx/mpc836x_mds.c | 2 +- .../arch/powerpc/platforms/83xx/mpc836x_rdk.c | 2 +- .../arch/powerpc/platforms/83xx/mpc837x_rdb.c | 2 +- .../arch/powerpc/platforms/85xx/mpc85xx_mds.c | 2 +- trunk/arch/powerpc/platforms/85xx/p1022_ds.c | 8 +- trunk/arch/powerpc/platforms/85xx/smp.c | 49 +- .../powerpc/platforms/86xx/mpc8610_hpcd.c | 2 + .../arch/powerpc/platforms/cell/spufs/sched.c | 2 +- .../powerpc/platforms/cell/spufs/syscalls.c | 2 +- .../powerpc/platforms/powermac/cpufreq_32.c | 5 +- .../arch/powerpc/platforms/powernv/pci-ioda.c | 25 +- trunk/arch/powerpc/platforms/ps3/os-area.c | 6 +- trunk/arch/powerpc/platforms/pseries/dlpar.c | 34 +- .../arch/powerpc/platforms/pseries/firmware.c | 1 + .../powerpc/platforms/pseries/hotplug-cpu.c | 8 +- .../platforms/pseries/hotplug-memory.c | 60 +- trunk/arch/powerpc/platforms/pseries/iommu.c | 10 +- .../arch/powerpc/platforms/pseries/mobility.c | 4 +- .../platforms/pseries/plpar_wrappers.h | 31 + .../arch/powerpc/platforms/pseries/reconfig.c | 119 +- trunk/arch/powerpc/platforms/pseries/setup.c | 77 +- trunk/arch/powerpc/platforms/pseries/smp.c | 1 - trunk/arch/powerpc/sysdev/fsl_gtm.c | 2 +- trunk/arch/powerpc/sysdev/fsl_pci.c | 37 +- trunk/arch/powerpc/sysdev/pmi.c | 13 +- trunk/arch/powerpc/sysdev/qe_lib/qe.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/qe_ic.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/qe_ic.h | 2 +- trunk/arch/powerpc/sysdev/qe_lib/qe_io.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/ucc.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/ucc_fast.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/ucc_slow.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/usb.c | 2 +- trunk/arch/powerpc/xmon/Makefile | 2 +- trunk/arch/powerpc/xmon/nonstdio.c | 53 +- trunk/arch/powerpc/xmon/nonstdio.h | 6 - trunk/arch/powerpc/xmon/start.c | 34 - trunk/arch/powerpc/xmon/xmon.c | 26 +- trunk/arch/s390/Kconfig | 2 - trunk/arch/s390/include/asm/ccwdev.h | 4 +- trunk/arch/s390/include/asm/compat.h | 3 + trunk/arch/s390/include/asm/pci.h | 39 + trunk/arch/s390/include/asm/pci_debug.h | 36 + trunk/arch/s390/include/asm/unistd.h | 1 - trunk/arch/s390/include/uapi/asm/signal.h | 6 - trunk/arch/s390/pci/Makefile | 2 +- trunk/arch/s390/pci/pci.c | 73 +- trunk/arch/s390/pci/pci_clp.c | 1 + trunk/arch/s390/pci/pci_debug.c | 193 + trunk/arch/s390/pci/pci_dma.c | 8 +- trunk/arch/s390/pci/pci_event.c | 2 + trunk/arch/score/Kconfig | 2 - trunk/arch/score/include/asm/Kbuild | 1 - trunk/arch/score/include/asm/kvm_para.h | 1 - trunk/arch/score/include/asm/ptrace.h | 75 +- trunk/arch/score/include/asm/setup.h | 7 +- trunk/arch/score/include/uapi/asm/Kbuild | 31 + .../score/include/{ => uapi}/asm/auxvec.h | 0 .../include/{ => uapi}/asm/bitsperlong.h | 0 .../score/include/{ => uapi}/asm/byteorder.h | 0 .../arch/score/include/{ => uapi}/asm/errno.h | 0 .../arch/score/include/{ => uapi}/asm/fcntl.h | 0 .../arch/score/include/{ => uapi}/asm/ioctl.h | 0 .../score/include/{ => uapi}/asm/ioctls.h | 0 .../score/include/{ => uapi}/asm/ipcbuf.h | 0 .../include/uapi}/asm/kvm_para.h | 0 .../arch/score/include/{ => uapi}/asm/mman.h | 0 .../score/include/{ => uapi}/asm/msgbuf.h | 0 .../arch/score/include/{ => uapi}/asm/param.h | 0 .../arch/score/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/score/include/uapi/asm/ptrace.h | 76 + .../score/include/{ => uapi}/asm/resource.h | 0 .../score/include/{ => uapi}/asm/sembuf.h | 0 trunk/arch/score/include/uapi/asm/setup.h | 9 + .../score/include/{ => uapi}/asm/shmbuf.h | 0 .../score/include/{ => uapi}/asm/sigcontext.h | 0 .../score/include/{ => uapi}/asm/siginfo.h | 0 .../score/include/{ => uapi}/asm/signal.h | 0 .../score/include/{ => uapi}/asm/socket.h | 0 .../score/include/{ => uapi}/asm/sockios.h | 0 .../arch/score/include/{ => uapi}/asm/stat.h | 0 .../score/include/{ => uapi}/asm/statfs.h | 0 .../arch/score/include/{ => uapi}/asm/swab.h | 0 .../score/include/{ => uapi}/asm/termbits.h | 0 .../score/include/{ => uapi}/asm/termios.h | 0 .../arch/score/include/{ => uapi}/asm/types.h | 0 .../score/include/{ => uapi}/asm/unistd.h | 1 - trunk/arch/sh/Kconfig | 2 - trunk/arch/sh/boards/mach-ap325rxa/setup.c | 6 - trunk/arch/sh/boards/mach-ecovec24/setup.c | 6 - trunk/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c | 16 +- trunk/arch/sh/boards/mach-kfr2r09/setup.c | 7 +- trunk/arch/sh/include/asm/dma-mapping.h | 1 + trunk/arch/sh/include/asm/unistd.h | 1 - .../sh/include/mach-kfr2r09/mach/kfr2r09.h | 6 +- trunk/arch/sh/mm/Kconfig | 1 + trunk/arch/sparc/Kconfig | 2 - trunk/arch/sparc/crypto/aes_asm.S | 20 +- trunk/arch/sparc/crypto/aes_glue.c | 31 +- trunk/arch/sparc/crypto/camellia_glue.c | 3 + trunk/arch/sparc/crypto/des_asm.S | 1 + trunk/arch/sparc/crypto/des_glue.c | 6 + trunk/arch/sparc/include/asm/dma-mapping.h | 1 + trunk/arch/sparc/include/asm/hugetlb.h | 10 +- trunk/arch/sparc/include/asm/pgtable_64.h | 8 +- trunk/arch/sparc/include/asm/unistd.h | 2 +- trunk/arch/sparc/include/uapi/asm/signal.h | 6 - trunk/arch/sparc/kernel/module.c | 4 - trunk/arch/sparc/kernel/sys_sparc32.c | 14 - trunk/arch/tile/Kconfig | 2 - trunk/arch/tile/include/asm/compat.h | 2 - trunk/arch/tile/include/asm/dma-mapping.h | 1 + trunk/arch/tile/include/asm/elf.h | 2 + trunk/arch/tile/include/asm/ptrace.h | 4 +- trunk/arch/tile/include/asm/unistd.h | 2 +- trunk/arch/tile/include/uapi/asm/ptrace.h | 8 +- trunk/arch/tile/kernel/compat.c | 18 - trunk/arch/tile/kernel/module.c | 2 - trunk/arch/tile/kernel/pci.c | 4 +- trunk/arch/tile/kernel/pci_gx.c | 3 +- trunk/arch/tile/kernel/ptrace.c | 140 +- trunk/arch/um/drivers/mconsole_kern.c | 2 +- trunk/arch/um/kernel/signal.c | 5 - trunk/arch/unicore32/Kconfig | 2 - trunk/arch/unicore32/include/asm/ptrace.h | 1 + .../arch/unicore32/include/uapi/asm/unistd.h | 1 - trunk/arch/unicore32/kernel/module.c | 3 - trunk/arch/x86/Kconfig | 5 +- trunk/arch/x86/Makefile | 5 +- trunk/arch/x86/crypto/Makefile | 5 + .../x86/crypto/camellia-aesni-avx-asm_64.S | 1102 +++ .../arch/x86/crypto/camellia_aesni_avx_glue.c | 558 ++ trunk/arch/x86/crypto/camellia_glue.c | 92 +- .../arch/x86/crypto/cast5-avx-x86_64-asm_64.S | 348 +- trunk/arch/x86/crypto/cast5_avx_glue.c | 79 +- .../arch/x86/crypto/cast6-avx-x86_64-asm_64.S | 206 +- trunk/arch/x86/crypto/cast6_avx_glue.c | 77 +- .../{crc32c-intel.c => crc32c-intel_glue.c} | 81 + .../arch/x86/crypto/crc32c-pcl-intel-asm_64.S | 460 ++ trunk/arch/x86/crypto/glue_helper-asm-avx.S | 91 + trunk/arch/x86/crypto/glue_helper.c | 12 +- .../x86/crypto/serpent-avx-x86_64-asm_64.S | 166 +- trunk/arch/x86/crypto/serpent_avx_glue.c | 49 +- trunk/arch/x86/crypto/serpent_sse2_glue.c | 12 +- .../x86/crypto/twofish-avx-x86_64-asm_64.S | 208 +- trunk/arch/x86/crypto/twofish_avx_glue.c | 73 +- trunk/arch/x86/crypto/twofish_glue_3way.c | 20 +- trunk/arch/x86/ia32/ia32_signal.c | 55 +- trunk/arch/x86/ia32/ia32entry.S | 1 - trunk/arch/x86/include/asm/Kbuild | 26 - trunk/arch/x86/include/asm/boot.h | 9 +- trunk/arch/x86/include/asm/crypto/camellia.h | 82 + .../arch/x86/include/asm/crypto/glue_helper.h | 28 +- .../arch/x86/include/asm/crypto/serpent-avx.h | 27 +- trunk/arch/x86/include/asm/crypto/twofish.h | 4 +- trunk/arch/x86/include/asm/debugreg.h | 79 +- trunk/arch/x86/include/asm/dma-mapping.h | 1 + trunk/arch/x86/include/asm/e820.h | 74 +- trunk/arch/x86/include/asm/hw_breakpoint.h | 5 +- trunk/arch/x86/include/asm/ia32.h | 10 +- trunk/arch/x86/include/asm/ist.h | 17 +- trunk/arch/x86/include/asm/kvm_para.h | 99 +- trunk/arch/x86/include/asm/mce.h | 138 +- trunk/arch/x86/include/asm/msr.h | 11 +- trunk/arch/x86/include/asm/mtrr.h | 93 +- trunk/arch/x86/include/asm/paravirt.h | 2 - trunk/arch/x86/include/asm/pgtable.h | 17 +- trunk/arch/x86/include/asm/pgtable_types.h | 20 + trunk/arch/x86/include/asm/posix_types.h | 10 - trunk/arch/x86/include/asm/processor-flags.h | 97 +- trunk/arch/x86/include/asm/ptrace.h | 82 +- trunk/arch/x86/include/asm/setup.h | 5 +- trunk/arch/x86/include/asm/sigcontext.h | 216 +- trunk/arch/x86/include/asm/signal.h | 140 +- trunk/arch/x86/include/asm/svm.h | 132 +- trunk/arch/x86/include/asm/sys_ia32.h | 2 - trunk/arch/x86/include/asm/syscalls.h | 3 - trunk/arch/x86/include/asm/unistd.h | 15 +- trunk/arch/x86/include/asm/vm86.h | 128 +- trunk/arch/x86/include/asm/vmx.h | 89 +- trunk/arch/x86/include/asm/vsyscall.h | 16 +- trunk/arch/x86/include/uapi/asm/Kbuild | 58 + trunk/arch/x86/include/{ => uapi}/asm/a.out.h | 0 .../arch/x86/include/{ => uapi}/asm/auxvec.h | 0 .../x86/include/{ => uapi}/asm/bitsperlong.h | 0 trunk/arch/x86/include/uapi/asm/boot.h | 10 + .../x86/include/{ => uapi}/asm/bootparam.h | 0 .../x86/include/{ => uapi}/asm/byteorder.h | 0 trunk/arch/x86/include/uapi/asm/debugreg.h | 80 + trunk/arch/x86/include/uapi/asm/e820.h | 75 + trunk/arch/x86/include/{ => uapi}/asm/errno.h | 0 trunk/arch/x86/include/{ => uapi}/asm/fcntl.h | 0 .../arch/x86/include/uapi/asm/hw_breakpoint.h | 1 + .../arch/x86/include/{ => uapi}/asm/hyperv.h | 0 trunk/arch/x86/include/{ => uapi}/asm/ioctl.h | 0 .../arch/x86/include/{ => uapi}/asm/ioctls.h | 0 .../arch/x86/include/{ => uapi}/asm/ipcbuf.h | 0 trunk/arch/x86/include/uapi/asm/ist.h | 29 + trunk/arch/x86/include/{ => uapi}/asm/kvm.h | 0 trunk/arch/x86/include/uapi/asm/kvm_para.h | 100 + trunk/arch/x86/include/{ => uapi}/asm/ldt.h | 0 trunk/arch/x86/include/uapi/asm/mce.h | 121 + trunk/arch/x86/include/{ => uapi}/asm/mman.h | 0 .../arch/x86/include/{ => uapi}/asm/msgbuf.h | 0 .../x86/include/{ => uapi}/asm/msr-index.h | 37 + trunk/arch/x86/include/uapi/asm/msr.h | 15 + trunk/arch/x86/include/uapi/asm/mtrr.h | 117 + trunk/arch/x86/include/{ => uapi}/asm/param.h | 0 .../x86/include/{ => uapi}/asm/perf_regs.h | 0 trunk/arch/x86/include/{ => uapi}/asm/poll.h | 0 trunk/arch/x86/include/uapi/asm/posix_types.h | 9 + .../include/{ => uapi}/asm/posix_types_32.h | 0 .../include/{ => uapi}/asm/posix_types_64.h | 0 .../include/{ => uapi}/asm/posix_types_x32.h | 0 trunk/arch/x86/include/{ => uapi}/asm/prctl.h | 0 .../x86/include/uapi/asm/processor-flags.h | 99 + .../x86/include/{ => uapi}/asm/ptrace-abi.h | 0 trunk/arch/x86/include/uapi/asm/ptrace.h | 78 + .../x86/include/{ => uapi}/asm/resource.h | 0 .../arch/x86/include/{ => uapi}/asm/sembuf.h | 0 trunk/arch/x86/include/uapi/asm/setup.h | 1 + .../arch/x86/include/{ => uapi}/asm/shmbuf.h | 0 trunk/arch/x86/include/uapi/asm/sigcontext.h | 221 + .../x86/include/{ => uapi}/asm/sigcontext32.h | 0 .../arch/x86/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/x86/include/uapi/asm/signal.h | 139 + .../arch/x86/include/{ => uapi}/asm/socket.h | 0 .../arch/x86/include/{ => uapi}/asm/sockios.h | 0 trunk/arch/x86/include/{ => uapi}/asm/stat.h | 0 .../arch/x86/include/{ => uapi}/asm/statfs.h | 0 trunk/arch/x86/include/uapi/asm/svm.h | 132 + trunk/arch/x86/include/{ => uapi}/asm/swab.h | 0 .../x86/include/{ => uapi}/asm/termbits.h | 0 .../arch/x86/include/{ => uapi}/asm/termios.h | 0 trunk/arch/x86/include/{ => uapi}/asm/types.h | 0 .../x86/include/{ => uapi}/asm/ucontext.h | 0 trunk/arch/x86/include/uapi/asm/unistd.h | 17 + trunk/arch/x86/include/uapi/asm/vm86.h | 129 + trunk/arch/x86/include/uapi/asm/vmx.h | 109 + trunk/arch/x86/include/uapi/asm/vsyscall.h | 17 + trunk/arch/x86/kernel/acpi/boot.c | 6 + .../arch/x86/kernel/cpu/mcheck/mce-internal.h | 2 - .../arch/x86/kernel/cpu/mcheck/mce-severity.c | 4 +- trunk/arch/x86/kernel/cpu/mcheck/mce.c | 209 +- trunk/arch/x86/kernel/cpu/mcheck/mce_intel.c | 8 +- trunk/arch/x86/kernel/cpu/proc.c | 7 +- trunk/arch/x86/kernel/entry_32.S | 1 - trunk/arch/x86/kernel/entry_64.S | 3 - trunk/arch/x86/kernel/irqinit.c | 40 - trunk/arch/x86/kernel/setup.c | 4 + trunk/arch/x86/kernel/signal.c | 29 +- trunk/arch/x86/kernel/traps.c | 6 - trunk/arch/x86/kernel/vsyscall_64.c | 110 +- trunk/arch/x86/lguest/boot.c | 2 +- trunk/arch/x86/mm/pgtable.c | 8 +- trunk/arch/x86/platform/efi/efi-bgrt.c | 2 + trunk/arch/x86/platform/iris/iris.c | 67 +- trunk/arch/x86/syscalls/syscall_32.tbl | 3 +- trunk/arch/x86/syscalls/syscall_64.tbl | 5 +- trunk/arch/x86/um/Kconfig | 3 +- trunk/arch/x86/um/asm/ptrace.h | 1 + trunk/arch/x86/um/signal.c | 9 +- trunk/arch/x86/um/sys_call_table_32.c | 1 - trunk/arch/x86/um/sys_call_table_64.c | 1 - trunk/arch/x86/xen/enlighten.c | 7 +- trunk/arch/x86/xen/smp.c | 2 +- trunk/arch/xtensa/Kconfig | 23 +- trunk/arch/xtensa/Kconfig.debug | 22 +- trunk/arch/xtensa/Makefile | 20 +- trunk/arch/xtensa/boot/Makefile | 25 +- trunk/arch/xtensa/boot/boot-elf/Makefile | 26 +- trunk/arch/xtensa/boot/boot-redboot/Makefile | 26 +- trunk/arch/xtensa/boot/boot-uboot/Makefile | 14 + trunk/arch/xtensa/boot/dts/lx60.dts | 11 + trunk/arch/xtensa/boot/dts/ml605.dts | 11 + .../xtensa/boot/dts/xtfpga-flash-16m.dtsi | 26 + .../arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi | 18 + trunk/arch/xtensa/boot/dts/xtfpga.dtsi | 56 + trunk/arch/xtensa/include/asm/atomic.h | 271 +- trunk/arch/xtensa/include/asm/barrier.h | 6 +- trunk/arch/xtensa/include/asm/bitops.h | 127 +- trunk/arch/xtensa/include/asm/bootparam.h | 20 +- trunk/arch/xtensa/include/asm/cacheasm.h | 1 - trunk/arch/xtensa/include/asm/cacheflush.h | 3 +- trunk/arch/xtensa/include/asm/checksum.h | 19 +- trunk/arch/xtensa/include/asm/cmpxchg.h | 74 +- trunk/arch/xtensa/include/asm/current.h | 2 +- trunk/arch/xtensa/include/asm/delay.h | 7 +- trunk/arch/xtensa/include/asm/dma-mapping.h | 6 +- trunk/arch/xtensa/include/asm/elf.h | 10 +- trunk/arch/xtensa/include/asm/highmem.h | 1 - .../arch/xtensa/include/asm/initialize_mmu.h | 55 + trunk/arch/xtensa/include/asm/mmu.h | 2 +- trunk/arch/xtensa/include/asm/mmu_context.h | 2 +- trunk/arch/xtensa/include/asm/nommu.h | 3 - trunk/arch/xtensa/include/asm/nommu_context.h | 2 +- trunk/arch/xtensa/include/asm/page.h | 20 +- trunk/arch/xtensa/include/asm/pci-bridge.h | 2 +- trunk/arch/xtensa/include/asm/pci.h | 2 +- trunk/arch/xtensa/include/asm/pgalloc.h | 2 +- trunk/arch/xtensa/include/asm/pgtable.h | 8 +- trunk/arch/xtensa/include/asm/platform.h | 1 - trunk/arch/xtensa/include/asm/processor.h | 10 +- trunk/arch/xtensa/include/asm/prom.h | 6 + trunk/arch/xtensa/include/asm/ptrace.h | 6 +- trunk/arch/xtensa/include/asm/regs.h | 5 +- trunk/arch/xtensa/include/asm/spinlock.h | 188 +- trunk/arch/xtensa/include/asm/syscall.h | 11 +- trunk/arch/xtensa/include/asm/traps.h | 23 + trunk/arch/xtensa/include/asm/uaccess.h | 43 +- trunk/arch/xtensa/include/asm/unistd.h | 1 - trunk/arch/xtensa/include/uapi/asm/signal.h | 6 - trunk/arch/xtensa/kernel/Makefile | 8 +- trunk/arch/xtensa/kernel/align.S | 4 +- trunk/arch/xtensa/kernel/asm-offsets.c | 5 +- trunk/arch/xtensa/kernel/coprocessor.S | 25 +- trunk/arch/xtensa/kernel/entry.S | 67 +- trunk/arch/xtensa/kernel/head.S | 21 +- trunk/arch/xtensa/kernel/irq.c | 132 +- trunk/arch/xtensa/kernel/module.c | 2 +- trunk/arch/xtensa/kernel/platform.c | 1 - trunk/arch/xtensa/kernel/process.c | 2 +- trunk/arch/xtensa/kernel/ptrace.c | 3 +- trunk/arch/xtensa/kernel/setup.c | 279 +- trunk/arch/xtensa/kernel/signal.c | 8 +- trunk/arch/xtensa/kernel/syscall.c | 1 - trunk/arch/xtensa/kernel/time.c | 7 +- trunk/arch/xtensa/kernel/traps.c | 18 +- trunk/arch/xtensa/kernel/vectors.S | 67 +- trunk/arch/xtensa/lib/checksum.S | 15 +- trunk/arch/xtensa/lib/memcopy.S | 6 +- trunk/arch/xtensa/lib/pci-auto.c | 9 +- trunk/arch/xtensa/lib/strncpy_user.S | 4 +- trunk/arch/xtensa/lib/strnlen_user.S | 1 - trunk/arch/xtensa/lib/usercopy.S | 1 - trunk/arch/xtensa/mm/cache.c | 27 +- trunk/arch/xtensa/mm/fault.c | 1 - trunk/arch/xtensa/mm/init.c | 16 +- trunk/arch/xtensa/mm/misc.S | 51 +- trunk/arch/xtensa/mm/mmu.c | 2 +- trunk/arch/xtensa/mm/tlb.c | 9 +- .../platforms/iss/include/platform/serial.h | 15 + .../platforms/iss/include/platform/simcall.h | 7 +- trunk/arch/xtensa/platforms/xtfpga/Makefile | 9 + .../xtfpga/include/platform/hardware.h | 69 + .../platforms/xtfpga/include/platform/lcd.h | 20 + .../xtfpga/include/platform/serial.h | 18 + trunk/arch/xtensa/platforms/xtfpga/lcd.c | 76 + trunk/arch/xtensa/platforms/xtfpga/setup.c | 301 + trunk/arch/xtensa/variants/s6000/gpio.c | 4 +- trunk/block/Kconfig | 1 + trunk/block/blk-cgroup.c | 2 +- trunk/block/blk-core.c | 127 +- trunk/block/blk-exec.c | 4 +- trunk/block/blk-lib.c | 26 +- trunk/block/blk-settings.c | 6 +- trunk/block/blk-sysfs.c | 4 +- trunk/block/blk-throttle.c | 2 +- trunk/block/blk.h | 4 +- trunk/block/bsg-lib.c | 13 - trunk/block/cfq-iosched.c | 3 +- trunk/block/deadline-iosched.c | 2 +- trunk/block/elevator.c | 16 +- trunk/block/genhd.c | 10 +- trunk/block/partitions/Kconfig | 4 +- trunk/block/partitions/efi.c | 7 +- trunk/block/partitions/msdos.c | 21 +- trunk/crypto/Kconfig | 42 + trunk/crypto/Makefile | 1 + trunk/crypto/cast5_generic.c | 277 +- trunk/crypto/cast6_generic.c | 280 +- trunk/crypto/cast_common.c | 290 + trunk/crypto/tcrypt.c | 29 + trunk/crypto/testmgr.c | 369 +- trunk/crypto/testmgr.h | 5912 ++++++++++++++++- trunk/crypto/vmac.c | 47 +- trunk/drivers/acpi/Kconfig | 9 + trunk/drivers/acpi/osl.c | 202 +- trunk/drivers/amba/tegra-ahb.c | 2 + trunk/drivers/ata/ahci_platform.c | 46 +- trunk/drivers/ata/ata_piix.c | 444 +- trunk/drivers/ata/libahci.c | 2 +- trunk/drivers/ata/libata-acpi.c | 4 + trunk/drivers/ata/libata-core.c | 31 +- trunk/drivers/ata/libata-eh.c | 1 + trunk/drivers/ata/libata-scsi.c | 6 +- trunk/drivers/ata/pata_arasan_cf.c | 7 +- trunk/drivers/ata/pata_cmd64x.c | 6 +- trunk/drivers/ata/pata_cs5536.c | 32 +- trunk/drivers/ata/pata_ep93xx.c | 6 +- trunk/drivers/ata/pata_imx.c | 2 +- trunk/drivers/ata/pata_ixp4xx_cf.c | 11 +- trunk/drivers/ata/pata_mpc52xx.c | 17 +- trunk/drivers/ata/pata_octeon_cf.c | 423 +- trunk/drivers/ata/pata_of_platform.c | 8 +- trunk/drivers/ata/pata_palmld.c | 4 +- trunk/drivers/ata/pata_platform.c | 24 +- trunk/drivers/ata/pata_rdc.c | 3 - trunk/drivers/ata/sata_dwc_460ex.c | 1 + trunk/drivers/ata/sata_highbank.c | 14 +- trunk/drivers/ata/sata_inic162x.c | 2 - trunk/drivers/ata/sata_promise.c | 15 +- trunk/drivers/ata/sata_sil24.c | 4 - trunk/drivers/ata/sata_sx4.c | 14 +- trunk/drivers/atm/solos-pci.c | 186 +- trunk/drivers/base/core.c | 21 + trunk/drivers/base/devtmpfs.c | 2 +- trunk/drivers/base/dma-buf.c | 2 + trunk/drivers/bcma/Kconfig | 9 + trunk/drivers/bcma/Makefile | 1 + trunk/drivers/bcma/bcma_private.h | 10 + trunk/drivers/bcma/driver_chipcommon.c | 81 +- trunk/drivers/bcma/driver_chipcommon_pmu.c | 3 +- trunk/drivers/bcma/driver_gpio.c | 98 + trunk/drivers/bcma/main.c | 5 + trunk/drivers/block/aoe/aoe.h | 57 +- trunk/drivers/block/aoe/aoeblk.c | 104 +- trunk/drivers/block/aoe/aoechr.c | 7 +- trunk/drivers/block/aoe/aoecmd.c | 715 +- trunk/drivers/block/aoe/aoedev.c | 243 +- trunk/drivers/block/aoe/aoemain.c | 2 +- trunk/drivers/block/aoe/aoenet.c | 15 +- trunk/drivers/block/cciss.c | 21 +- trunk/drivers/block/drbd/Kconfig | 10 +- trunk/drivers/block/drbd/Makefile | 2 + trunk/drivers/block/drbd/drbd_actlog.c | 702 +- trunk/drivers/block/drbd/drbd_bitmap.c | 249 +- trunk/drivers/block/drbd/drbd_int.h | 1365 ++-- trunk/drivers/block/drbd/drbd_interval.c | 207 + trunk/drivers/block/drbd/drbd_interval.h | 40 + trunk/drivers/block/drbd/drbd_main.c | 3861 +++++------ trunk/drivers/block/drbd/drbd_nl.c | 3332 ++++++---- trunk/drivers/block/drbd/drbd_nla.c | 55 + trunk/drivers/block/drbd/drbd_nla.h | 8 + trunk/drivers/block/drbd/drbd_proc.c | 41 +- trunk/drivers/block/drbd/drbd_receiver.c | 3904 ++++++----- trunk/drivers/block/drbd/drbd_req.c | 1574 +++-- trunk/drivers/block/drbd/drbd_req.h | 187 +- trunk/drivers/block/drbd/drbd_state.c | 1856 ++++++ trunk/drivers/block/drbd/drbd_state.h | 161 + trunk/drivers/block/drbd/drbd_strings.c | 1 + trunk/drivers/block/drbd/drbd_worker.c | 1237 ++-- trunk/drivers/block/drbd/drbd_wrappers.h | 11 +- trunk/drivers/block/loop.c | 10 + trunk/drivers/block/rbd.c | 1389 ++-- trunk/drivers/block/rbd_types.h | 2 - trunk/drivers/block/xen-blkback/blkback.c | 301 +- trunk/drivers/block/xen-blkback/common.h | 16 + trunk/drivers/block/xen-blkback/xenbus.c | 23 +- trunk/drivers/block/xen-blkfront.c | 199 +- trunk/drivers/bus/Kconfig | 1 + trunk/drivers/char/agp/intel-agp.h | 91 - trunk/drivers/char/agp/intel-gtt.c | 320 +- trunk/drivers/char/random.c | 40 +- trunk/drivers/char/tpm/tpm_ibmvtpm.c | 81 +- trunk/drivers/char/tpm/tpm_ibmvtpm.h | 5 +- trunk/drivers/char/virtio_console.c | 329 +- trunk/drivers/clk/Kconfig | 2 + trunk/drivers/clk/Makefile | 1 + trunk/drivers/clk/clk-nomadik.c | 1 + trunk/drivers/clk/mvebu/Kconfig | 8 + trunk/drivers/clk/mvebu/Makefile | 3 + trunk/drivers/clk/mvebu/clk-core.c | 675 ++ trunk/drivers/clk/mvebu/clk-core.h | 18 + trunk/drivers/clk/mvebu/clk-cpu.c | 186 + trunk/drivers/clk/mvebu/clk-cpu.h | 22 + trunk/drivers/clk/mvebu/clk-gating-ctrl.c | 249 + trunk/drivers/clk/mvebu/clk-gating-ctrl.h | 22 + trunk/drivers/clk/mvebu/clk.c | 27 + trunk/drivers/clk/spear/spear1310_clock.c | 1 + .../drivers/clocksource/time-armada-370-xp.c | 11 +- trunk/drivers/crypto/Kconfig | 1 + trunk/drivers/crypto/nx/nx-842.c | 20 +- trunk/drivers/crypto/nx/nx.c | 1 - trunk/drivers/crypto/picoxcell_crypto.c | 1 + trunk/drivers/crypto/s5p-sss.c | 2 +- trunk/drivers/crypto/talitos.c | 3 +- trunk/drivers/crypto/tegra-aes.c | 10 +- trunk/drivers/dma/dmatest.c | 49 +- trunk/drivers/dma/mv_xor.c | 429 +- trunk/drivers/dma/mv_xor.h | 36 +- trunk/drivers/edac/Kconfig | 33 +- trunk/drivers/edac/Makefile | 5 + trunk/drivers/edac/octeon_edac-l2c.c | 208 + trunk/drivers/edac/octeon_edac-lmc.c | 186 + trunk/drivers/edac/octeon_edac-pc.c | 143 + trunk/drivers/edac/octeon_edac-pci.c | 111 + trunk/drivers/extcon/extcon-arizona.c | 1 + trunk/drivers/extcon/extcon-class.c | 2 +- trunk/drivers/extcon/extcon-max77693.c | 36 +- trunk/drivers/extcon/extcon-max8997.c | 28 +- trunk/drivers/firmware/dmi_scan.c | 78 +- trunk/drivers/firmware/efivars.c | 511 +- trunk/drivers/gpio/Kconfig | 14 + trunk/drivers/gpio/Makefile | 1 + trunk/drivers/gpio/gpio-da9052.c | 6 +- trunk/drivers/gpio/gpio-ich.c | 1 + trunk/drivers/gpio/gpio-mvebu.c | 17 - trunk/drivers/gpio/gpio-tps6586x.c | 9 + trunk/drivers/gpio/gpio-twl4030.c | 12 +- trunk/drivers/gpio/gpio-viperboard.c | 517 ++ trunk/drivers/gpu/drm/Kconfig | 2 + trunk/drivers/gpu/drm/Makefile | 6 +- trunk/drivers/gpu/drm/ast/ast_ttm.c | 12 +- trunk/drivers/gpu/drm/cirrus/cirrus_drv.c | 13 +- trunk/drivers/gpu/drm/cirrus/cirrus_ttm.c | 12 +- trunk/drivers/gpu/drm/drm_crtc.c | 63 +- trunk/drivers/gpu/drm/drm_crtc_helper.c | 161 +- .../{drm_dp_i2c_helper.c => drm_dp_helper.c} | 146 +- trunk/drivers/gpu/drm/drm_edid.c | 48 +- trunk/drivers/gpu/drm/drm_fb_helper.c | 76 +- trunk/drivers/gpu/drm/drm_hashtab.c | 38 +- trunk/drivers/gpu/drm/drm_ioctl.c | 3 + trunk/drivers/gpu/drm/drm_irq.c | 120 +- trunk/drivers/gpu/drm/drm_modes.c | 8 +- trunk/drivers/gpu/drm/drm_pci.c | 2 +- trunk/drivers/gpu/drm/drm_stub.c | 37 +- trunk/drivers/gpu/drm/drm_sysfs.c | 6 +- trunk/drivers/gpu/drm/exynos/Kconfig | 30 + trunk/drivers/gpu/drm/exynos/Makefile | 5 + trunk/drivers/gpu/drm/exynos/exynos_ddc.c | 4 +- trunk/drivers/gpu/drm/exynos/exynos_drm_buf.c | 115 +- trunk/drivers/gpu/drm/exynos/exynos_drm_buf.h | 4 +- .../drivers/gpu/drm/exynos/exynos_drm_crtc.c | 5 + .../gpu/drm/exynos/exynos_drm_dmabuf.c | 150 +- trunk/drivers/gpu/drm/exynos/exynos_drm_drv.c | 117 +- trunk/drivers/gpu/drm/exynos/exynos_drm_drv.h | 43 +- .../gpu/drm/exynos/exynos_drm_encoder.c | 36 +- .../gpu/drm/exynos/exynos_drm_encoder.h | 1 + trunk/drivers/gpu/drm/exynos/exynos_drm_fb.c | 94 +- .../drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 74 +- .../drivers/gpu/drm/exynos/exynos_drm_fimc.c | 2001 ++++++ .../drivers/gpu/drm/exynos/exynos_drm_fimc.h | 37 + .../drivers/gpu/drm/exynos/exynos_drm_fimd.c | 200 +- trunk/drivers/gpu/drm/exynos/exynos_drm_g2d.c | 495 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gem.c | 435 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gem.h | 58 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.c | 1870 ++++++ trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.h | 38 + .../drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 59 +- .../drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 3 +- .../drivers/gpu/drm/exynos/exynos_drm_iommu.c | 150 + .../drivers/gpu/drm/exynos/exynos_drm_iommu.h | 85 + trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.c | 2060 ++++++ trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.h | 266 + .../drivers/gpu/drm/exynos/exynos_drm_plane.c | 12 +- .../gpu/drm/exynos/exynos_drm_rotator.c | 855 +++ .../gpu/drm/exynos/exynos_drm_rotator.h | 33 + .../drivers/gpu/drm/exynos/exynos_drm_vidi.c | 26 +- trunk/drivers/gpu/drm/exynos/exynos_hdmi.c | 324 +- trunk/drivers/gpu/drm/exynos/exynos_hdmiphy.c | 4 +- trunk/drivers/gpu/drm/exynos/exynos_mixer.c | 376 +- trunk/drivers/gpu/drm/exynos/regs-fimc.h | 669 ++ trunk/drivers/gpu/drm/exynos/regs-gsc.h | 284 + trunk/drivers/gpu/drm/exynos/regs-hdmi.h | 22 +- trunk/drivers/gpu/drm/exynos/regs-rotator.h | 73 + trunk/drivers/gpu/drm/gma500/cdv_device.c | 4 +- trunk/drivers/gpu/drm/gma500/cdv_intel_dp.c | 2 +- trunk/drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 6 +- trunk/drivers/gpu/drm/gma500/cdv_intel_lvds.c | 10 +- .../drivers/gpu/drm/gma500/mdfld_dsi_output.c | 12 +- .../gpu/drm/gma500/mdfld_intel_display.c | 2 +- trunk/drivers/gpu/drm/gma500/oaktrail.h | 6 + trunk/drivers/gpu/drm/gma500/oaktrail_crtc.c | 10 +- .../drivers/gpu/drm/gma500/oaktrail_device.c | 2 +- trunk/drivers/gpu/drm/gma500/oaktrail_hdmi.c | 365 +- trunk/drivers/gpu/drm/gma500/oaktrail_lvds.c | 8 +- trunk/drivers/gpu/drm/gma500/psb_intel_lvds.c | 10 +- trunk/drivers/gpu/drm/gma500/psb_intel_sdvo.c | 24 +- trunk/drivers/gpu/drm/i2c/ch7006_drv.c | 20 +- trunk/drivers/gpu/drm/i915/i915_debugfs.c | 66 +- trunk/drivers/gpu/drm/i915/i915_dma.c | 95 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 136 +- trunk/drivers/gpu/drm/i915/i915_drv.h | 472 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 292 +- trunk/drivers/gpu/drm/i915/i915_gem_context.c | 5 +- .../gpu/drm/i915/i915_gem_execbuffer.c | 64 +- trunk/drivers/gpu/drm/i915/i915_gem_gtt.c | 420 +- trunk/drivers/gpu/drm/i915/i915_irq.c | 86 +- trunk/drivers/gpu/drm/i915/i915_reg.h | 308 +- trunk/drivers/gpu/drm/i915/i915_suspend.c | 763 +-- trunk/drivers/gpu/drm/i915/i915_sysfs.c | 45 +- trunk/drivers/gpu/drm/i915/i915_trace.h | 10 +- trunk/drivers/gpu/drm/i915/intel_bios.c | 3 +- trunk/drivers/gpu/drm/i915/intel_crt.c | 62 +- trunk/drivers/gpu/drm/i915/intel_ddi.c | 1091 ++- trunk/drivers/gpu/drm/i915/intel_display.c | 2029 ++++-- trunk/drivers/gpu/drm/i915/intel_dp.c | 961 +-- trunk/drivers/gpu/drm/i915/intel_drv.h | 123 +- trunk/drivers/gpu/drm/i915/intel_hdmi.c | 135 +- trunk/drivers/gpu/drm/i915/intel_i2c.c | 9 +- trunk/drivers/gpu/drm/i915/intel_lvds.c | 227 +- trunk/drivers/gpu/drm/i915/intel_modes.c | 11 +- trunk/drivers/gpu/drm/i915/intel_opregion.c | 2 + trunk/drivers/gpu/drm/i915/intel_panel.c | 90 +- trunk/drivers/gpu/drm/i915/intel_pm.c | 511 +- trunk/drivers/gpu/drm/i915/intel_ringbuffer.c | 250 +- trunk/drivers/gpu/drm/i915/intel_ringbuffer.h | 36 +- trunk/drivers/gpu/drm/i915/intel_sdvo.c | 128 +- trunk/drivers/gpu/drm/i915/intel_sprite.c | 101 +- trunk/drivers/gpu/drm/i915/intel_tv.c | 21 +- trunk/drivers/gpu/drm/mgag200/mgag200_main.c | 4 +- trunk/drivers/gpu/drm/mgag200/mgag200_ttm.c | 12 +- trunk/drivers/gpu/drm/nouveau/Makefile | 38 +- .../gpu/drm/nouveau/core/core/engctx.c | 15 + .../gpu/drm/nouveau/core/core/falcon.c | 247 + .../gpu/drm/nouveau/core/core/gpuobj.c | 4 +- trunk/drivers/gpu/drm/nouveau/core/core/mm.c | 17 +- .../gpu/drm/nouveau/core/engine/bsp/nv84.c | 108 +- .../gpu/drm/nouveau/core/engine/bsp/nvc0.c | 110 + .../gpu/drm/nouveau/core/engine/bsp/nve0.c | 110 + .../gpu/drm/nouveau/core/engine/copy/nva3.c | 124 +- .../gpu/drm/nouveau/core/engine/copy/nvc0.c | 167 +- .../gpu/drm/nouveau/core/engine/copy/nve0.c | 54 +- .../gpu/drm/nouveau/core/engine/crypt/nv84.c | 46 +- .../gpu/drm/nouveau/core/engine/crypt/nv98.c | 83 +- .../drm/nouveau/core/engine/disp/dacnv50.c | 88 + .../drm/nouveau/core/engine/disp/hdanva3.c | 48 + .../drm/nouveau/core/engine/disp/hdanvd0.c | 53 + .../drm/nouveau/core/engine/disp/hdminv84.c | 66 + .../drm/nouveau/core/engine/disp/hdminva3.c | 66 + .../drm/nouveau/core/engine/disp/hdminvd0.c | 62 + .../gpu/drm/nouveau/core/engine/disp/nv50.c | 1144 +++- .../gpu/drm/nouveau/core/engine/disp/nv50.h | 142 + .../gpu/drm/nouveau/core/engine/disp/nv84.c | 98 + .../gpu/drm/nouveau/core/engine/disp/nv94.c | 109 + .../gpu/drm/nouveau/core/engine/disp/nva0.c | 88 + .../gpu/drm/nouveau/core/engine/disp/nva3.c | 111 + .../gpu/drm/nouveau/core/engine/disp/nvd0.c | 884 ++- .../gpu/drm/nouveau/core/engine/disp/nve0.c | 94 + .../drm/nouveau/core/engine/disp/sornv50.c | 112 + .../drm/nouveau/core/engine/disp/sornv94.c | 190 + .../drm/nouveau/core/engine/disp/sornvd0.c | 126 + .../gpu/drm/nouveau/core/engine/dmaobj/base.c | 71 +- .../gpu/drm/nouveau/core/engine/dmaobj/nv04.c | 68 +- .../gpu/drm/nouveau/core/engine/dmaobj/nv50.c | 126 +- .../gpu/drm/nouveau/core/engine/dmaobj/nvc0.c | 104 +- .../gpu/drm/nouveau/core/engine/dmaobj/nvd0.c | 122 + .../gpu/drm/nouveau/core/engine/fifo/base.c | 19 +- .../gpu/drm/nouveau/core/engine/fifo/nv04.c | 17 +- .../gpu/drm/nouveau/core/engine/fifo/nv10.c | 6 +- .../gpu/drm/nouveau/core/engine/fifo/nv17.c | 8 +- .../gpu/drm/nouveau/core/engine/fifo/nv40.c | 8 +- .../gpu/drm/nouveau/core/engine/fifo/nv50.c | 36 +- .../gpu/drm/nouveau/core/engine/fifo/nv84.c | 60 +- .../gpu/drm/nouveau/core/engine/fifo/nvc0.c | 26 +- .../gpu/drm/nouveau/core/engine/fifo/nve0.c | 21 +- .../gpu/drm/nouveau/core/engine/graph/nv04.c | 184 +- .../gpu/drm/nouveau/core/engine/graph/nv10.c | 10 +- .../gpu/drm/nouveau/core/engine/graph/nv20.c | 6 +- .../gpu/drm/nouveau/core/engine/graph/nv40.c | 38 +- .../gpu/drm/nouveau/core/engine/graph/nv50.c | 83 +- .../gpu/drm/nouveau/core/engine/graph/nvc0.c | 2 +- .../gpu/drm/nouveau/core/engine/graph/regs.h | 5 + .../gpu/drm/nouveau/core/engine/mpeg/nv31.c | 6 +- .../gpu/drm/nouveau/core/engine/mpeg/nv50.c | 1 - .../gpu/drm/nouveau/core/engine/ppp/nv98.c | 107 +- .../gpu/drm/nouveau/core/engine/ppp/nvc0.c | 110 + .../drm/nouveau/core/engine/software/nv04.c | 4 +- .../drm/nouveau/core/engine/software/nv10.c | 2 +- .../drm/nouveau/core/engine/software/nv50.c | 10 +- .../drm/nouveau/core/engine/software/nvc0.c | 10 +- .../gpu/drm/nouveau/core/engine/vp/nv84.c | 108 +- .../gpu/drm/nouveau/core/engine/vp/nvc0.c | 110 + .../gpu/drm/nouveau/core/engine/vp/nve0.c | 110 + .../gpu/drm/nouveau/core/include/core/class.h | 225 + .../drm/nouveau/core/include/core/engctx.h | 3 + .../drm/nouveau/core/include/core/falcon.h | 81 + .../drm/nouveau/core/include/core/gpuobj.h | 4 +- .../gpu/drm/nouveau/core/include/core/mm.h | 6 + .../drm/nouveau/core/include/core/object.h | 41 +- .../drm/nouveau/core/include/core/parent.h | 2 +- .../gpu/drm/nouveau/core/include/engine/bsp.h | 41 +- .../drm/nouveau/core/include/engine/copy.h | 39 +- .../drm/nouveau/core/include/engine/crypt.h | 39 - .../drm/nouveau/core/include/engine/disp.h | 5 + .../drm/nouveau/core/include/engine/dmaobj.h | 29 +- .../drm/nouveau/core/include/engine/fifo.h | 6 +- .../gpu/drm/nouveau/core/include/engine/ppp.h | 40 +- .../gpu/drm/nouveau/core/include/engine/vp.h | 41 +- .../nouveau/core/include/subdev/bios/dcb.h | 34 +- .../nouveau/core/include/subdev/bios/disp.h | 48 + .../drm/nouveau/core/include/subdev/bios/dp.h | 32 +- .../gpu/drm/nouveau/core/include/subdev/fb.h | 43 +- .../gpu/drm/nouveau/core/subdev/bar/base.c | 4 +- .../gpu/drm/nouveau/core/subdev/bios/base.c | 32 +- .../gpu/drm/nouveau/core/subdev/bios/dcb.c | 63 + .../gpu/drm/nouveau/core/subdev/bios/disp.c | 178 + .../gpu/drm/nouveau/core/subdev/bios/dp.c | 182 +- .../gpu/drm/nouveau/core/subdev/bios/gpio.c | 4 +- .../gpu/drm/nouveau/core/subdev/bios/init.c | 13 +- .../gpu/drm/nouveau/core/subdev/device/base.c | 28 +- .../gpu/drm/nouveau/core/subdev/device/nv10.c | 4 +- .../gpu/drm/nouveau/core/subdev/device/nv20.c | 6 +- .../gpu/drm/nouveau/core/subdev/device/nv30.c | 6 +- .../gpu/drm/nouveau/core/subdev/device/nv40.c | 28 +- .../gpu/drm/nouveau/core/subdev/device/nv50.c | 26 +- .../gpu/drm/nouveau/core/subdev/device/nvc0.c | 64 +- .../gpu/drm/nouveau/core/subdev/device/nve0.c | 17 +- .../drm/nouveau/core/subdev/devinit/nv50.c | 34 +- .../gpu/drm/nouveau/core/subdev/fb/base.c | 92 +- .../gpu/drm/nouveau/core/subdev/fb/nv04.c | 62 +- .../gpu/drm/nouveau/core/subdev/fb/nv10.c | 52 +- .../gpu/drm/nouveau/core/subdev/fb/nv1a.c | 89 + .../gpu/drm/nouveau/core/subdev/fb/nv20.c | 86 +- .../gpu/drm/nouveau/core/subdev/fb/nv25.c | 81 + .../gpu/drm/nouveau/core/subdev/fb/nv30.c | 51 +- .../gpu/drm/nouveau/core/subdev/fb/nv35.c | 82 + .../gpu/drm/nouveau/core/subdev/fb/nv36.c | 82 + .../gpu/drm/nouveau/core/subdev/fb/nv40.c | 131 +- .../gpu/drm/nouveau/core/subdev/fb/nv41.c | 106 + .../gpu/drm/nouveau/core/subdev/fb/nv44.c | 114 + .../gpu/drm/nouveau/core/subdev/fb/nv46.c | 79 + .../gpu/drm/nouveau/core/subdev/fb/nv47.c | 66 + .../gpu/drm/nouveau/core/subdev/fb/nv49.c | 84 + .../gpu/drm/nouveau/core/subdev/fb/nv4e.c | 72 + .../gpu/drm/nouveau/core/subdev/fb/nv50.c | 393 +- .../gpu/drm/nouveau/core/subdev/fb/nvc0.c | 126 +- .../gpu/drm/nouveau/core/subdev/i2c/aux.c | 2 +- .../drm/nouveau/core/subdev/instmem/nv04.c | 8 +- .../drm/nouveau/core/subdev/instmem/nv40.c | 4 +- .../drm/nouveau/core/subdev/instmem/nv50.c | 4 +- .../gpu/drm/nouveau/core/subdev/mc/base.c | 8 +- .../gpu/drm/nouveau/core/subdev/mc/nv50.c | 1 + .../gpu/drm/nouveau/core/subdev/mc/nv98.c | 1 + .../gpu/drm/nouveau/core/subdev/mc/nvc0.c | 1 + trunk/drivers/gpu/drm/nouveau/nouveau_abi16.c | 27 +- trunk/drivers/gpu/drm/nouveau/nouveau_acpi.c | 30 +- trunk/drivers/gpu/drm/nouveau/nouveau_acpi.h | 4 + trunk/drivers/gpu/drm/nouveau/nouveau_bios.c | 235 +- trunk/drivers/gpu/drm/nouveau/nouveau_bios.h | 9 - trunk/drivers/gpu/drm/nouveau/nouveau_bo.c | 65 +- trunk/drivers/gpu/drm/nouveau/nouveau_bo.h | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_chan.c | 6 +- .../gpu/drm/nouveau/nouveau_connector.c | 25 +- .../gpu/drm/nouveau/nouveau_connector.h | 16 + trunk/drivers/gpu/drm/nouveau/nouveau_crtc.h | 10 - .../drivers/gpu/drm/nouveau/nouveau_display.c | 25 +- trunk/drivers/gpu/drm/nouveau/nouveau_dp.c | 141 +- trunk/drivers/gpu/drm/nouveau/nouveau_drm.c | 98 +- trunk/drivers/gpu/drm/nouveau/nouveau_drm.h | 4 +- .../drivers/gpu/drm/nouveau/nouveau_encoder.h | 7 +- trunk/drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_hdmi.c | 261 - trunk/drivers/gpu/drm/nouveau/nouveau_irq.c | 12 - trunk/drivers/gpu/drm/nouveau/nouveau_prime.c | 4 - trunk/drivers/gpu/drm/nouveau/nouveau_vga.c | 5 +- trunk/drivers/gpu/drm/nouveau/nv04_crtc.c | 6 +- trunk/drivers/gpu/drm/nouveau/nv04_display.c | 5 - trunk/drivers/gpu/drm/nouveau/nv10_fence.c | 7 +- trunk/drivers/gpu/drm/nouveau/nv17_tv.c | 16 +- trunk/drivers/gpu/drm/nouveau/nv50_crtc.c | 764 --- trunk/drivers/gpu/drm/nouveau/nv50_cursor.c | 136 - trunk/drivers/gpu/drm/nouveau/nv50_dac.c | 321 - trunk/drivers/gpu/drm/nouveau/nv50_display.c | 2579 ++++--- trunk/drivers/gpu/drm/nouveau/nv50_display.h | 71 +- trunk/drivers/gpu/drm/nouveau/nv50_evo.c | 403 -- trunk/drivers/gpu/drm/nouveau/nv50_evo.h | 120 - trunk/drivers/gpu/drm/nouveau/nv50_fence.c | 5 +- trunk/drivers/gpu/drm/nouveau/nv50_pm.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv50_sor.c | 530 -- trunk/drivers/gpu/drm/nouveau/nvc0_fence.c | 28 +- trunk/drivers/gpu/drm/nouveau/nvd0_display.c | 2141 ------ trunk/drivers/gpu/drm/radeon/atombios_crtc.c | 2 + trunk/drivers/gpu/drm/radeon/atombios_dp.c | 149 +- .../gpu/drm/radeon/atombios_encoders.c | 2 +- trunk/drivers/gpu/drm/radeon/evergreen.c | 218 +- trunk/drivers/gpu/drm/radeon/evergreen_cs.c | 739 ++- trunk/drivers/gpu/drm/radeon/evergreend.h | 131 + trunk/drivers/gpu/drm/radeon/ni.c | 357 +- trunk/drivers/gpu/drm/radeon/nid.h | 86 + trunk/drivers/gpu/drm/radeon/r100.c | 23 +- trunk/drivers/gpu/drm/radeon/r600.c | 480 +- trunk/drivers/gpu/drm/radeon/r600_cp.c | 7 +- trunk/drivers/gpu/drm/radeon/r600_cs.c | 357 +- trunk/drivers/gpu/drm/radeon/r600_reg.h | 9 + trunk/drivers/gpu/drm/radeon/r600d.h | 86 +- trunk/drivers/gpu/drm/radeon/radeon.h | 38 +- trunk/drivers/gpu/drm/radeon/radeon_asic.c | 198 +- trunk/drivers/gpu/drm/radeon/radeon_asic.h | 34 + trunk/drivers/gpu/drm/radeon/radeon_combios.c | 6 +- .../gpu/drm/radeon/radeon_connectors.c | 62 +- trunk/drivers/gpu/drm/radeon/radeon_cp.c | 14 - trunk/drivers/gpu/drm/radeon/radeon_cs.c | 13 + trunk/drivers/gpu/drm/radeon/radeon_cursor.c | 17 +- trunk/drivers/gpu/drm/radeon/radeon_device.c | 1 + trunk/drivers/gpu/drm/radeon/radeon_display.c | 4 + trunk/drivers/gpu/drm/radeon/radeon_drv.c | 18 +- trunk/drivers/gpu/drm/radeon/radeon_drv.h | 1 - trunk/drivers/gpu/drm/radeon/radeon_fence.c | 2 +- trunk/drivers/gpu/drm/radeon/radeon_gart.c | 1 - trunk/drivers/gpu/drm/radeon/radeon_kms.c | 16 + trunk/drivers/gpu/drm/radeon/radeon_mode.h | 2 +- trunk/drivers/gpu/drm/radeon/radeon_object.c | 52 +- trunk/drivers/gpu/drm/radeon/radeon_object.h | 2 +- trunk/drivers/gpu/drm/radeon/radeon_test.c | 37 +- trunk/drivers/gpu/drm/radeon/radeon_ttm.c | 40 +- trunk/drivers/gpu/drm/radeon/rv515.c | 122 +- trunk/drivers/gpu/drm/radeon/rv770.c | 31 +- trunk/drivers/gpu/drm/radeon/rv770d.h | 71 + trunk/drivers/gpu/drm/radeon/si.c | 355 +- trunk/drivers/gpu/drm/radeon/sid.h | 119 + .../drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 2 +- trunk/drivers/gpu/drm/tegra/Kconfig | 23 + trunk/drivers/gpu/drm/tegra/Makefile | 7 + trunk/drivers/gpu/drm/tegra/dc.c | 834 +++ trunk/drivers/gpu/drm/tegra/dc.h | 388 ++ trunk/drivers/gpu/drm/tegra/drm.c | 115 + trunk/drivers/gpu/drm/tegra/drm.h | 234 + trunk/drivers/gpu/drm/tegra/fb.c | 56 + trunk/drivers/gpu/drm/tegra/hdmi.c | 1334 ++++ trunk/drivers/gpu/drm/tegra/hdmi.h | 575 ++ trunk/drivers/gpu/drm/tegra/host1x.c | 325 + trunk/drivers/gpu/drm/tegra/output.c | 272 + trunk/drivers/gpu/drm/tegra/rgb.c | 228 + trunk/drivers/gpu/drm/ttm/ttm_bo.c | 321 +- trunk/drivers/gpu/drm/ttm/ttm_bo_util.c | 8 +- trunk/drivers/gpu/drm/ttm/ttm_bo_vm.c | 4 +- trunk/drivers/gpu/drm/ttm/ttm_execbuf_util.c | 10 +- trunk/drivers/gpu/drm/ttm/ttm_memory.c | 1 - trunk/drivers/gpu/drm/ttm/ttm_object.c | 51 +- trunk/drivers/gpu/drm/udl/udl_connector.c | 14 +- trunk/drivers/gpu/drm/vmwgfx/Makefile | 3 +- .../gpu/drm/vmwgfx/svga3d_surfacedefs.h | 909 +++ trunk/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 23 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 274 + trunk/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | 22 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 92 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 153 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 917 ++- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 2 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 7 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 2 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 21 +- .../drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 2113 ++---- .../gpu/drm/vmwgfx/vmwgfx_resource_priv.h | 84 + trunk/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 893 +++ trunk/drivers/gpu/vga/vga_switcheroo.c | 6 - trunk/drivers/hwmon/emc6w201.c | 2 +- trunk/drivers/hwmon/hwmon-vid.c | 10 + trunk/drivers/hwmon/hwmon.c | 26 +- trunk/drivers/hwmon/it87.c | 918 +-- trunk/drivers/hwmon/lm73.c | 16 +- trunk/drivers/hwmon/twl4030-madc-hwmon.c | 2 +- trunk/drivers/hwmon/w83627ehf.c | 99 +- trunk/drivers/hwmon/w83627hf.c | 81 +- trunk/drivers/i2c/busses/Kconfig | 20 + trunk/drivers/i2c/busses/Makefile | 2 + trunk/drivers/i2c/busses/i2c-ali1535.c | 8 +- trunk/drivers/i2c/busses/i2c-ali1563.c | 10 +- trunk/drivers/i2c/busses/i2c-ali15x3.c | 8 +- trunk/drivers/i2c/busses/i2c-amd756.c | 7 +- trunk/drivers/i2c/busses/i2c-amd8111.c | 7 +- trunk/drivers/i2c/busses/i2c-at91.c | 348 +- trunk/drivers/i2c/busses/i2c-au1550.c | 6 +- trunk/drivers/i2c/busses/i2c-cbus-gpio.c | 300 + trunk/drivers/i2c/busses/i2c-cpm.c | 8 +- .../i2c/busses/i2c-designware-pcidrv.c | 6 +- .../i2c/busses/i2c-designware-platdrv.c | 6 +- trunk/drivers/i2c/busses/i2c-eg20t.c | 6 +- trunk/drivers/i2c/busses/i2c-elektor.c | 8 +- trunk/drivers/i2c/busses/i2c-gpio.c | 14 +- trunk/drivers/i2c/busses/i2c-highlander.c | 6 +- trunk/drivers/i2c/busses/i2c-hydra.c | 6 +- trunk/drivers/i2c/busses/i2c-i801.c | 41 +- trunk/drivers/i2c/busses/i2c-ibm_iic.c | 8 +- trunk/drivers/i2c/busses/i2c-intel-mid.c | 6 +- trunk/drivers/i2c/busses/i2c-isch.c | 6 +- trunk/drivers/i2c/busses/i2c-mpc.c | 38 +- trunk/drivers/i2c/busses/i2c-mv64xxx.c | 18 +- trunk/drivers/i2c/busses/i2c-mxs.c | 8 +- trunk/drivers/i2c/busses/i2c-nforce2.c | 12 +- trunk/drivers/i2c/busses/i2c-nomadik.c | 14 - trunk/drivers/i2c/busses/i2c-nuc900.c | 6 +- trunk/drivers/i2c/busses/i2c-ocores.c | 170 +- trunk/drivers/i2c/busses/i2c-octeon.c | 10 +- trunk/drivers/i2c/busses/i2c-omap.c | 232 +- trunk/drivers/i2c/busses/i2c-parport-light.c | 6 +- trunk/drivers/i2c/busses/i2c-pasemi.c | 6 +- trunk/drivers/i2c/busses/i2c-pca-isa.c | 8 +- trunk/drivers/i2c/busses/i2c-pca-platform.c | 6 +- trunk/drivers/i2c/busses/i2c-piix4.c | 37 +- trunk/drivers/i2c/busses/i2c-pmcmsp.c | 6 +- trunk/drivers/i2c/busses/i2c-pnx.c | 6 +- trunk/drivers/i2c/busses/i2c-powermac.c | 16 +- trunk/drivers/i2c/busses/i2c-puv3.c | 6 +- trunk/drivers/i2c/busses/i2c-pxa-pci.c | 6 +- trunk/drivers/i2c/busses/i2c-rcar.c | 12 +- trunk/drivers/i2c/busses/i2c-s3c2410.c | 211 +- trunk/drivers/i2c/busses/i2c-s6000.c | 8 +- trunk/drivers/i2c/busses/i2c-sh7760.c | 8 +- trunk/drivers/i2c/busses/i2c-sh_mobile.c | 152 +- trunk/drivers/i2c/busses/i2c-sirf.c | 8 +- trunk/drivers/i2c/busses/i2c-sis5595.c | 4 +- trunk/drivers/i2c/busses/i2c-sis630.c | 8 +- trunk/drivers/i2c/busses/i2c-sis96x.c | 6 +- trunk/drivers/i2c/busses/i2c-tegra.c | 8 +- trunk/drivers/i2c/busses/i2c-via.c | 6 +- trunk/drivers/i2c/busses/i2c-viapro.c | 4 +- trunk/drivers/i2c/busses/i2c-viperboard.c | 480 ++ trunk/drivers/i2c/busses/i2c-xiic.c | 8 +- trunk/drivers/i2c/busses/i2c-xlr.c | 6 +- trunk/drivers/i2c/busses/scx200_acb.c | 16 +- trunk/drivers/i2c/muxes/i2c-mux-gpio.c | 153 +- trunk/drivers/i2c/muxes/i2c-mux-pinctrl.c | 8 +- trunk/drivers/iio/adc/Kconfig | 14 + trunk/drivers/iio/adc/Makefile | 3 +- trunk/drivers/iio/adc/ti_am335x_adc.c | 260 + trunk/drivers/iio/adc/viperboard_adc.c | 181 + trunk/drivers/infiniband/hw/cxgb4/cm.c | 791 ++- trunk/drivers/infiniband/hw/cxgb4/device.c | 210 +- trunk/drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 33 + trunk/drivers/infiniband/hw/ehca/hcp_if.c | 20 - trunk/drivers/infiniband/ulp/ipoib/ipoib_cm.c | 3 + trunk/drivers/infiniband/ulp/ipoib/ipoib_ib.c | 3 +- trunk/drivers/infiniband/ulp/srpt/ib_srpt.c | 178 +- trunk/drivers/infiniband/ulp/srpt/ib_srpt.h | 1 - trunk/drivers/input/gameport/emu10k1-gp.c | 6 +- trunk/drivers/input/gameport/fm801-gp.c | 6 +- trunk/drivers/input/input-mt.c | 2 +- trunk/drivers/input/input.c | 181 +- trunk/drivers/input/joystick/as5011.c | 29 +- trunk/drivers/input/joystick/maplecontrol.c | 6 +- trunk/drivers/input/joystick/walkera0701.c | 7 +- trunk/drivers/input/joystick/xpad.c | 33 +- trunk/drivers/input/keyboard/Kconfig | 3 +- trunk/drivers/input/keyboard/adp5520-keys.c | 6 +- trunk/drivers/input/keyboard/adp5588-keys.c | 18 +- trunk/drivers/input/keyboard/adp5589-keys.c | 21 +- trunk/drivers/input/keyboard/bf54x-keys.c | 6 +- .../drivers/input/keyboard/davinci_keyscan.c | 4 +- trunk/drivers/input/keyboard/ep93xx_keypad.c | 6 +- trunk/drivers/input/keyboard/gpio_keys.c | 90 +- .../drivers/input/keyboard/gpio_keys_polled.c | 26 +- trunk/drivers/input/keyboard/hilkbd.c | 10 +- trunk/drivers/input/keyboard/imx_keypad.c | 9 +- trunk/drivers/input/keyboard/jornada680_kbd.c | 6 +- trunk/drivers/input/keyboard/jornada720_kbd.c | 6 +- trunk/drivers/input/keyboard/lm8323.c | 6 +- trunk/drivers/input/keyboard/lm8333.c | 6 +- trunk/drivers/input/keyboard/locomokbd.c | 8 +- trunk/drivers/input/keyboard/lpc32xx-keys.c | 8 +- trunk/drivers/input/keyboard/matrix_keypad.c | 129 +- trunk/drivers/input/keyboard/max7359_keypad.c | 6 +- trunk/drivers/input/keyboard/mcs_touchkey.c | 6 +- .../drivers/input/keyboard/mpr121_touchkey.c | 12 +- .../input/keyboard/nomadik-ske-keypad.c | 38 +- trunk/drivers/input/keyboard/omap-keypad.c | 6 +- trunk/drivers/input/keyboard/omap4-keypad.c | 10 +- trunk/drivers/input/keyboard/opencores-kbd.c | 6 +- .../drivers/input/keyboard/pmic8xxx-keypad.c | 10 +- trunk/drivers/input/keyboard/pxa27x_keypad.c | 6 +- trunk/drivers/input/keyboard/pxa930_rotary.c | 6 +- trunk/drivers/input/keyboard/qt1070.c | 8 +- trunk/drivers/input/keyboard/qt2160.c | 31 +- trunk/drivers/input/keyboard/samsung-keypad.c | 109 +- trunk/drivers/input/keyboard/sh_keysc.c | 6 +- trunk/drivers/input/keyboard/spear-keyboard.c | 98 +- trunk/drivers/input/keyboard/stmpe-keypad.c | 142 +- trunk/drivers/input/keyboard/tc3589x-keypad.c | 6 +- trunk/drivers/input/keyboard/tca6416-keypad.c | 8 +- trunk/drivers/input/keyboard/tca8418_keypad.c | 179 +- trunk/drivers/input/keyboard/tegra-kbc.c | 16 +- .../drivers/input/keyboard/tnetv107x-keypad.c | 6 +- trunk/drivers/input/keyboard/twl4030_keypad.c | 8 +- trunk/drivers/input/keyboard/w90p910_keypad.c | 6 +- trunk/drivers/input/matrix-keymap.c | 23 +- trunk/drivers/input/misc/88pm80x_onkey.c | 6 +- trunk/drivers/input/misc/88pm860x_onkey.c | 6 +- trunk/drivers/input/misc/Kconfig | 29 +- trunk/drivers/input/misc/Makefile | 2 + trunk/drivers/input/misc/ab8500-ponkey.c | 6 +- trunk/drivers/input/misc/ad714x-i2c.c | 6 +- trunk/drivers/input/misc/ad714x-spi.c | 6 +- trunk/drivers/input/misc/adxl34x-i2c.c | 6 +- trunk/drivers/input/misc/adxl34x-spi.c | 6 +- trunk/drivers/input/misc/bfin_rotary.c | 6 +- trunk/drivers/input/misc/bma150.c | 28 +- trunk/drivers/input/misc/cma3000_d0x_i2c.c | 6 +- trunk/drivers/input/misc/cobalt_btns.c | 6 +- trunk/drivers/input/misc/da9052_onkey.c | 28 +- trunk/drivers/input/misc/da9055_onkey.c | 171 + trunk/drivers/input/misc/dm355evm_keys.c | 6 +- trunk/drivers/input/misc/gp2ap002a00f.c | 8 +- trunk/drivers/input/misc/gpio_tilt_polled.c | 6 +- trunk/drivers/input/misc/ixp4xx-beeper.c | 6 +- trunk/drivers/input/misc/kxtj9.c | 16 +- trunk/drivers/input/misc/m68kspkr.c | 6 +- trunk/drivers/input/misc/max8925_onkey.c | 6 +- trunk/drivers/input/misc/max8997_haptic.c | 6 +- trunk/drivers/input/misc/mc13783-pwrbutton.c | 6 +- trunk/drivers/input/misc/mma8450.c | 6 +- trunk/drivers/input/misc/mpu3050.c | 8 +- trunk/drivers/input/misc/pcap_keys.c | 6 +- trunk/drivers/input/misc/pcf50633-input.c | 6 +- trunk/drivers/input/misc/pcf8574_keypad.c | 6 +- trunk/drivers/input/misc/pcspkr.c | 6 +- trunk/drivers/input/misc/pm8xxx-vibrator.c | 6 +- trunk/drivers/input/misc/pmic8xxx-pwrkey.c | 6 +- trunk/drivers/input/misc/pwm-beeper.c | 20 +- trunk/drivers/input/misc/rb532_button.c | 6 +- trunk/drivers/input/misc/retu-pwrbutton.c | 99 + trunk/drivers/input/misc/rotary_encoder.c | 9 +- trunk/drivers/input/misc/sgi_btns.c | 6 +- trunk/drivers/input/misc/sparcspkr.c | 14 +- trunk/drivers/input/misc/twl4030-pwrbutton.c | 3 +- trunk/drivers/input/misc/twl4030-vibra.c | 6 +- trunk/drivers/input/misc/twl6040-vibra.c | 6 +- trunk/drivers/input/misc/wistron_btns.c | 20 +- trunk/drivers/input/misc/wm831x-on.c | 11 +- trunk/drivers/input/misc/xen-kbdfront.c | 2 +- trunk/drivers/input/mouse/alps.c | 10 +- trunk/drivers/input/mouse/gpio_mouse.c | 6 +- trunk/drivers/input/mouse/maplemouse.c | 6 +- trunk/drivers/input/mouse/navpoint.c | 6 +- trunk/drivers/input/mouse/pxa930_trkball.c | 6 +- trunk/drivers/input/mouse/synaptics_i2c.c | 6 +- trunk/drivers/input/serio/Kconfig | 9 + trunk/drivers/input/serio/Makefile | 1 + trunk/drivers/input/serio/altera_ps2.c | 6 +- trunk/drivers/input/serio/ambakmi.c | 6 +- trunk/drivers/input/serio/arc_ps2.c | 274 + trunk/drivers/input/serio/ct82c710.c | 6 +- trunk/drivers/input/serio/gscps2.c | 6 +- trunk/drivers/input/serio/hil_mlc.c | 13 +- trunk/drivers/input/serio/i8042-io.h | 2 +- trunk/drivers/input/serio/i8042-sparcio.h | 6 +- trunk/drivers/input/serio/i8042-x86ia64io.h | 9 + trunk/drivers/input/serio/i8042.c | 6 +- trunk/drivers/input/serio/maceps2.c | 8 +- trunk/drivers/input/serio/pcips2.c | 6 +- trunk/drivers/input/serio/q40kbd.c | 6 +- trunk/drivers/input/serio/rpckbd.c | 6 +- trunk/drivers/input/serio/sa1111ps2.c | 12 +- trunk/drivers/input/serio/serio.c | 11 - trunk/drivers/input/serio/xilinx_ps2.c | 8 +- trunk/drivers/input/tablet/wacom_sys.c | 58 +- trunk/drivers/input/tablet/wacom_wac.c | 32 +- trunk/drivers/input/tablet/wacom_wac.h | 2 + trunk/drivers/input/touchscreen/88pm860x-ts.c | 8 +- trunk/drivers/input/touchscreen/Kconfig | 18 +- trunk/drivers/input/touchscreen/Makefile | 3 +- trunk/drivers/input/touchscreen/ad7877.c | 6 +- trunk/drivers/input/touchscreen/ad7879-i2c.c | 6 +- trunk/drivers/input/touchscreen/ad7879-spi.c | 6 +- trunk/drivers/input/touchscreen/ads7846.c | 10 +- .../drivers/input/touchscreen/atmel_mxt_ts.c | 6 +- .../drivers/input/touchscreen/atmel_tsadcc.c | 6 +- .../drivers/input/touchscreen/auo-pixcir-ts.c | 8 +- trunk/drivers/input/touchscreen/bu21013_ts.c | 125 +- .../drivers/input/touchscreen/cy8ctmg110_ts.c | 19 +- trunk/drivers/input/touchscreen/cyttsp_i2c.c | 6 +- trunk/drivers/input/touchscreen/cyttsp_spi.c | 6 +- trunk/drivers/input/touchscreen/da9034-ts.c | 6 +- trunk/drivers/input/touchscreen/da9052_tsi.c | 69 +- trunk/drivers/input/touchscreen/edt-ft5x06.c | 28 +- trunk/drivers/input/touchscreen/eeti_ts.c | 6 +- trunk/drivers/input/touchscreen/egalax_ts.c | 8 +- .../input/touchscreen/h3600_ts_input.c | 479 -- trunk/drivers/input/touchscreen/htcpen.c | 6 +- trunk/drivers/input/touchscreen/ili210x.c | 6 +- .../input/touchscreen/intel-mid-touch.c | 14 +- .../drivers/input/touchscreen/jornada720_ts.c | 6 +- trunk/drivers/input/touchscreen/lpc32xx_ts.c | 6 +- trunk/drivers/input/touchscreen/max11801_ts.c | 8 +- trunk/drivers/input/touchscreen/mc13783_ts.c | 4 +- trunk/drivers/input/touchscreen/mcs5000_ts.c | 6 +- trunk/drivers/input/touchscreen/mms114.c | 68 +- trunk/drivers/input/touchscreen/pcap_ts.c | 6 +- .../drivers/input/touchscreen/pixcir_i2c_ts.c | 6 +- trunk/drivers/input/touchscreen/s3c2410_ts.c | 6 +- trunk/drivers/input/touchscreen/st1232.c | 8 +- trunk/drivers/input/touchscreen/stmpe-ts.c | 133 +- .../drivers/input/touchscreen/ti_am335x_tsc.c | 398 ++ trunk/drivers/input/touchscreen/ti_tscadc.c | 486 -- .../drivers/input/touchscreen/tnetv107x-ts.c | 6 +- trunk/drivers/input/touchscreen/tps6507x-ts.c | 4 +- trunk/drivers/input/touchscreen/tsc2005.c | 8 +- trunk/drivers/input/touchscreen/tsc2007.c | 6 +- trunk/drivers/input/touchscreen/ucb1400_ts.c | 8 +- trunk/drivers/input/touchscreen/w90p910_ts.c | 6 +- trunk/drivers/input/touchscreen/wacom_i2c.c | 6 +- trunk/drivers/input/touchscreen/wm831x-ts.c | 12 +- trunk/drivers/iommu/amd_iommu.c | 196 +- trunk/drivers/iommu/amd_iommu_types.h | 1 + trunk/drivers/iommu/intel-iommu.c | 42 +- trunk/drivers/iommu/omap-iommu.c | 68 +- trunk/drivers/iommu/omap-iommu.h | 3 - trunk/drivers/iommu/omap-iommu2.c | 36 - trunk/drivers/iommu/tegra-gart.c | 2 +- trunk/drivers/iommu/tegra-smmu.c | 6 +- trunk/drivers/irqchip/Makefile | 7 +- trunk/drivers/irqchip/spear-shirq.c | 316 + trunk/drivers/leds/led-class.c | 2 +- trunk/drivers/leds/led-triggers.c | 25 +- trunk/drivers/leds/leds-88pm860x.c | 9 +- trunk/drivers/leds/leds-adp5520.c | 4 +- trunk/drivers/leds/leds-bd2802.c | 10 +- trunk/drivers/leds/leds-clevo-mail.c | 11 +- trunk/drivers/leds/leds-cobalt-qube.c | 11 +- trunk/drivers/leds/leds-cobalt-raq.c | 11 +- trunk/drivers/leds/leds-da903x.c | 10 +- trunk/drivers/leds/leds-fsg.c | 15 +- trunk/drivers/leds/leds-gpio.c | 37 +- trunk/drivers/leds/leds-lm355x.c | 4 +- trunk/drivers/leds/leds-lm3642.c | 12 +- trunk/drivers/leds/leds-lp3944.c | 2 +- trunk/drivers/leds/leds-lp5521.c | 13 +- trunk/drivers/leds/leds-lp5523.c | 24 +- trunk/drivers/leds/leds-lt3593.c | 20 +- trunk/drivers/leds/leds-net48xx.c | 2 +- trunk/drivers/leds/leds-netxbig.c | 2 +- trunk/drivers/leds/leds-ns2.c | 36 +- trunk/drivers/leds/leds-pca955x.c | 2 +- trunk/drivers/leds/leds-pwm.c | 2 +- trunk/drivers/leds/leds-rb532.c | 2 +- trunk/drivers/leds/leds-renesas-tpu.c | 25 +- trunk/drivers/leds/leds-ss4200.c | 2 +- trunk/drivers/leds/leds-wm8350.c | 4 +- trunk/drivers/leds/leds-wrap.c | 2 +- trunk/drivers/leds/ledtrig-backlight.c | 4 +- trunk/drivers/leds/ledtrig-gpio.c | 2 +- trunk/drivers/lguest/core.c | 2 +- trunk/drivers/macintosh/smu.c | 2 +- .../drivers/macintosh/windfarm_fcu_controls.c | 14 +- .../drivers/macintosh/windfarm_lm75_sensor.c | 14 +- .../macintosh/windfarm_max6690_sensor.c | 13 +- trunk/drivers/macintosh/windfarm_smu_sat.c | 13 +- trunk/drivers/md/dm-bio-prison.c | 25 - trunk/drivers/md/dm-bio-prison.h | 1 - trunk/drivers/md/dm-crypt.c | 5 +- trunk/drivers/md/dm-delay.c | 5 +- trunk/drivers/md/dm-flakey.c | 21 +- trunk/drivers/md/dm-io.c | 23 +- trunk/drivers/md/dm-ioctl.c | 64 +- trunk/drivers/md/dm-kcopyd.c | 18 +- trunk/drivers/md/dm-linear.c | 6 +- trunk/drivers/md/dm-raid.c | 8 +- trunk/drivers/md/dm-raid1.c | 75 +- trunk/drivers/md/dm-snap.c | 90 +- trunk/drivers/md/dm-stripe.c | 20 +- trunk/drivers/md/dm-table.c | 41 +- trunk/drivers/md/dm-target.c | 5 +- trunk/drivers/md/dm-thin-metadata.c | 2 +- trunk/drivers/md/dm-thin.c | 234 +- trunk/drivers/md/dm-verity.c | 25 +- trunk/drivers/md/dm-zero.c | 5 +- trunk/drivers/md/dm.c | 84 +- trunk/drivers/md/dm.h | 2 +- trunk/drivers/md/md.c | 258 +- trunk/drivers/md/md.h | 28 +- .../md/persistent-data/dm-block-manager.c | 12 +- .../md/persistent-data/dm-btree-internal.h | 16 +- .../md/persistent-data/dm-btree-remove.c | 50 +- .../md/persistent-data/dm-btree-spine.c | 20 +- trunk/drivers/md/persistent-data/dm-btree.c | 31 +- .../md/persistent-data/dm-space-map-common.c | 16 +- .../persistent-data/dm-space-map-metadata.c | 2 +- trunk/drivers/md/raid1.c | 15 +- trunk/drivers/md/raid10.c | 15 +- trunk/drivers/md/raid5.c | 55 +- trunk/drivers/media/platform/omap/omap_vout.c | 21 +- .../media/platform/omap/omap_voutlib.c | 38 +- .../media/platform/omap/omap_voutlib.h | 3 + trunk/drivers/media/usb/uvc/uvc_ctrl.c | 19 +- trunk/drivers/media/usb/uvc/uvc_v4l2.c | 12 +- trunk/drivers/message/fusion/mptscsih.c | 1 + trunk/drivers/mfd/Kconfig | 63 +- trunk/drivers/mfd/Makefile | 10 +- trunk/drivers/mfd/ab8500-core.c | 107 +- trunk/drivers/mfd/arizona-core.c | 17 +- trunk/drivers/mfd/arizona-irq.c | 1 + trunk/drivers/mfd/as3711.c | 217 + trunk/drivers/mfd/da9052-core.c | 273 +- trunk/drivers/mfd/da9052-irq.c | 288 + trunk/drivers/mfd/db8500-prcmu.c | 8 +- trunk/drivers/mfd/jz4740-adc.c | 20 +- trunk/drivers/mfd/lpc_ich.c | 16 +- trunk/drivers/mfd/mc13xxx-core.c | 94 +- trunk/drivers/mfd/mc13xxx-i2c.c | 22 +- trunk/drivers/mfd/mc13xxx-spi.c | 29 +- trunk/drivers/mfd/mc13xxx.h | 18 +- trunk/drivers/mfd/mfd-core.c | 15 +- trunk/drivers/mfd/omap-usb-host.c | 3 +- trunk/drivers/mfd/rc5t583-irq.c | 2 +- trunk/drivers/mfd/retu-mfd.c | 264 + trunk/drivers/mfd/rtsx_pcr.c | 1 + trunk/drivers/mfd/sec-irq.c | 102 +- trunk/drivers/mfd/sta2x11-mfd.c | 536 +- trunk/drivers/mfd/stmpe-i2c.c | 8 +- trunk/drivers/mfd/stmpe.c | 208 +- trunk/drivers/mfd/ti_am335x_tscadc.c | 274 + trunk/drivers/mfd/tps6507x.c | 21 +- trunk/drivers/mfd/tps65090.c | 312 +- trunk/drivers/mfd/tps65217.c | 12 + trunk/drivers/mfd/tps6586x.c | 103 +- trunk/drivers/mfd/tps65910-irq.c | 260 - trunk/drivers/mfd/tps65910.c | 234 +- trunk/drivers/mfd/tps80031.c | 574 ++ trunk/drivers/mfd/twl-core.c | 227 +- trunk/drivers/mfd/twl4030-irq.c | 10 +- trunk/drivers/mfd/twl4030-madc.c | 14 +- trunk/drivers/mfd/twl4030-power.c | 124 +- trunk/drivers/mfd/twl6030-irq.c | 4 +- trunk/drivers/mfd/twl6040-irq.c | 205 - .../drivers/mfd/{twl6040-core.c => twl6040.c} | 138 +- trunk/drivers/mfd/viperboard.c | 137 + trunk/drivers/mfd/wm5102-tables.c | 35 +- trunk/drivers/mfd/wm8994-core.c | 17 +- trunk/drivers/misc/mei/wd.c | 2 +- trunk/drivers/misc/sgi-xp/xpc_main.c | 34 +- trunk/drivers/mmc/host/Makefile | 2 + trunk/drivers/mmc/host/rtsx_pci_sdmmc.c | 4 +- trunk/drivers/mtd/ar7part.c | 7 +- trunk/drivers/mtd/bcm63xxpart.c | 32 +- trunk/drivers/mtd/chips/cfi_cmdset_0002.c | 16 +- trunk/drivers/mtd/cmdlinepart.c | 91 +- trunk/drivers/mtd/devices/bcm47xxsflash.c | 4 +- trunk/drivers/mtd/devices/block2mtd.c | 4 +- trunk/drivers/mtd/devices/docg3.c | 2 +- trunk/drivers/mtd/devices/docprobe.c | 2 - trunk/drivers/mtd/devices/m25p80.c | 48 +- trunk/drivers/mtd/devices/mtd_dataflash.c | 14 +- trunk/drivers/mtd/devices/spear_smi.c | 23 +- trunk/drivers/mtd/devices/sst25l.c | 10 +- trunk/drivers/mtd/maps/Kconfig | 7 - trunk/drivers/mtd/maps/Makefile | 1 - trunk/drivers/mtd/maps/amd76xrom.c | 7 +- trunk/drivers/mtd/maps/autcpu12-nvram.c | 6 +- trunk/drivers/mtd/maps/bfin-async-flash.c | 9 +- trunk/drivers/mtd/maps/ck804xrom.c | 6 +- trunk/drivers/mtd/maps/esb2rom.c | 6 +- trunk/drivers/mtd/maps/fortunet.c | 277 - trunk/drivers/mtd/maps/gpio-addr-flash.c | 12 +- trunk/drivers/mtd/maps/ichxrom.c | 8 +- trunk/drivers/mtd/maps/intel_vr_nor.c | 18 +- trunk/drivers/mtd/maps/lantiq-flash.c | 8 +- trunk/drivers/mtd/maps/latch-addr-flash.c | 4 +- trunk/drivers/mtd/maps/pci.c | 6 +- trunk/drivers/mtd/maps/physmap_of.c | 19 +- trunk/drivers/mtd/maps/pismo.c | 18 +- trunk/drivers/mtd/maps/pxa2xx-flash.c | 6 +- trunk/drivers/mtd/maps/sa1100-flash.c | 6 +- trunk/drivers/mtd/maps/scb2_flash.c | 8 +- trunk/drivers/mtd/maps/sun_uflash.c | 6 +- trunk/drivers/mtd/maps/vmu-flash.c | 10 +- trunk/drivers/mtd/mtd_blkdevs.c | 51 +- trunk/drivers/mtd/mtdoops.c | 15 +- trunk/drivers/mtd/nand/Kconfig | 34 +- trunk/drivers/mtd/nand/Makefile | 4 +- trunk/drivers/mtd/nand/ams-delta.c | 6 +- trunk/drivers/mtd/nand/atmel_nand.c | 28 +- trunk/drivers/mtd/nand/au1550nd.c | 8 +- trunk/drivers/mtd/nand/bcm47xxnflash/Makefile | 4 + .../mtd/nand/bcm47xxnflash/bcm47xxnflash.h | 22 + trunk/drivers/mtd/nand/bcm47xxnflash/main.c | 108 + .../mtd/nand/bcm47xxnflash/ops_bcm4706.c | 413 ++ trunk/drivers/mtd/nand/bf5xx_nand.c | 8 +- trunk/drivers/mtd/nand/cafe_nand.c | 12 +- trunk/drivers/mtd/nand/cs553x_nand.c | 3 +- trunk/drivers/mtd/nand/davinci_nand.c | 13 +- trunk/drivers/mtd/nand/denali.c | 162 +- trunk/drivers/mtd/nand/denali.h | 5 + trunk/drivers/mtd/nand/denali_dt.c | 167 + trunk/drivers/mtd/nand/denali_pci.c | 144 + trunk/drivers/mtd/nand/diskonchip.c | 2 - trunk/drivers/mtd/nand/docg4.c | 73 +- trunk/drivers/mtd/nand/fsl_elbc_nand.c | 17 +- trunk/drivers/mtd/nand/fsl_ifc_nand.c | 6 +- trunk/drivers/mtd/nand/fsl_upm.c | 8 +- trunk/drivers/mtd/nand/fsmc_nand.c | 106 +- trunk/drivers/mtd/nand/gpio.c | 34 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-lib.c | 10 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 41 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-nand.h | 1 - trunk/drivers/mtd/nand/jz4740_nand.c | 14 +- trunk/drivers/mtd/nand/lpc32xx_mlc.c | 6 +- trunk/drivers/mtd/nand/lpc32xx_slc.c | 6 +- trunk/drivers/mtd/nand/mpc5121_nfc.c | 8 +- trunk/drivers/mtd/nand/mxc_nand.c | 12 +- trunk/drivers/mtd/nand/nand_base.c | 114 +- trunk/drivers/mtd/nand/nandsim.c | 191 +- trunk/drivers/mtd/nand/ndfc.c | 6 +- trunk/drivers/mtd/nand/nomadik_nand.c | 235 - trunk/drivers/mtd/nand/nuc900_nand.c | 6 +- trunk/drivers/mtd/nand/omap2.c | 2 +- trunk/drivers/mtd/nand/orion_nand.c | 4 +- trunk/drivers/mtd/nand/pasemi_nand.c | 4 +- trunk/drivers/mtd/nand/plat_nand.c | 6 +- trunk/drivers/mtd/nand/s3c2410.c | 7 +- trunk/drivers/mtd/nand/sh_flctl.c | 306 +- trunk/drivers/mtd/nand/sharpsl.c | 6 +- trunk/drivers/mtd/nand/socrates_nand.c | 6 +- trunk/drivers/mtd/ofpart.c | 5 +- trunk/drivers/mtd/onenand/generic.c | 6 +- trunk/drivers/mtd/onenand/omap2.c | 6 +- trunk/drivers/mtd/onenand/samsung.c | 4 +- trunk/drivers/mtd/tests/mtd_nandbiterrs.c | 73 +- trunk/drivers/mtd/tests/mtd_nandecctest.c | 6 +- trunk/drivers/mtd/tests/mtd_oobtest.c | 171 +- trunk/drivers/mtd/tests/mtd_pagetest.c | 152 +- trunk/drivers/mtd/tests/mtd_readtest.c | 44 +- trunk/drivers/mtd/tests/mtd_speedtest.c | 88 +- trunk/drivers/mtd/tests/mtd_stresstest.c | 44 +- trunk/drivers/mtd/tests/mtd_subpagetest.c | 124 +- trunk/drivers/mtd/tests/mtd_torturetest.c | 73 +- trunk/drivers/mtd/ubi/attach.c | 23 +- trunk/drivers/mtd/ubi/build.c | 12 +- trunk/drivers/mtd/ubi/debug.c | 34 +- trunk/drivers/mtd/ubi/debug.h | 57 +- trunk/drivers/mtd/ubi/fastmap.c | 6 +- trunk/drivers/mtd/ubi/gluebi.c | 28 +- trunk/drivers/mtd/ubi/io.c | 14 +- trunk/drivers/mtd/ubi/ubi.h | 40 +- trunk/drivers/mtd/ubi/upd.c | 6 +- trunk/drivers/mtd/ubi/vmt.c | 4 +- trunk/drivers/mtd/ubi/vtbl.c | 2 +- trunk/drivers/mtd/ubi/wl.c | 7 +- .../net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 5 +- .../net/ethernet/chelsio/cxgb4/cxgb4.h | 136 + .../net/ethernet/chelsio/cxgb4/cxgb4_main.c | 459 +- .../net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 23 +- .../drivers/net/ethernet/chelsio/cxgb4/l2t.c | 32 + .../drivers/net/ethernet/chelsio/cxgb4/l2t.h | 3 + .../net/ethernet/chelsio/cxgb4/t4_hw.c | 22 +- .../net/ethernet/chelsio/cxgb4/t4_msg.h | 66 + .../net/ethernet/chelsio/cxgb4/t4_regs.h | 37 + .../net/ethernet/chelsio/cxgb4/t4fw_api.h | 418 ++ trunk/drivers/net/ethernet/emulex/benet/be.h | 2 +- .../net/ethernet/emulex/benet/be_cmds.c | 5 + .../net/ethernet/emulex/benet/be_main.c | 59 +- trunk/drivers/net/ethernet/freescale/Kconfig | 3 +- .../drivers/net/ethernet/ibm/ehea/ehea_phyp.h | 20 - trunk/drivers/net/ethernet/marvell/Kconfig | 24 + trunk/drivers/net/ethernet/marvell/Makefile | 2 + trunk/drivers/net/ethernet/marvell/mvmdio.c | 228 + trunk/drivers/net/ethernet/marvell/mvneta.c | 2847 ++++++++ trunk/drivers/net/ethernet/mellanox/mlx4/fw.c | 15 +- trunk/drivers/net/ethernet/mellanox/mlx4/fw.h | 1 + .../drivers/net/ethernet/mellanox/mlx4/main.c | 115 +- .../drivers/net/ethernet/mellanox/mlx4/mcg.c | 7 +- .../drivers/net/ethernet/mellanox/mlx4/mlx4.h | 6 +- .../ethernet/mellanox/mlx4/resource_tracker.c | 28 +- trunk/drivers/net/ethernet/micrel/ksz884x.c | 12 +- .../net/ethernet/qlogic/qlcnic/qlcnic.h | 4 +- .../net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 5 +- .../net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 5 +- .../net/ethernet/qlogic/qlcnic/qlcnic_main.c | 5 - .../ethernet/qlogic/qlcnic/qlcnic_minidump.c | 3 +- trunk/drivers/net/ethernet/realtek/8139cp.c | 18 +- trunk/drivers/net/ethernet/smsc/smc91x.c | 4 +- trunk/drivers/net/ethernet/smsc/smsc911x.c | 4 +- trunk/drivers/net/ethernet/ti/cpts.c | 3 +- trunk/drivers/net/ethernet/ti/cpts.h | 1 - trunk/drivers/net/tun.c | 27 +- trunk/drivers/net/usb/cdc_ether.c | 45 +- trunk/drivers/net/usb/cdc_ncm.c | 10 +- trunk/drivers/net/usb/qmi_wwan.c | 15 + trunk/drivers/net/usb/usbnet.c | 25 +- trunk/drivers/net/virtio_net.c | 48 +- trunk/drivers/net/vxlan.c | 6 +- trunk/drivers/net/wireless/Kconfig | 6 +- trunk/drivers/net/wireless/Makefile | 2 +- trunk/drivers/net/wireless/rt2x00/rt2x00dev.c | 8 + .../net/wireless/rtlwifi/rtl8723ae/sw.c | 2 +- trunk/drivers/of/base.c | 146 +- trunk/drivers/of/fdt.c | 10 +- trunk/drivers/pinctrl/pinctrl-exynos5440.c | 2 +- trunk/drivers/pinctrl/pinctrl-samsung.c | 2 +- trunk/drivers/pinctrl/pinctrl-samsung.h | 2 +- trunk/drivers/platform/x86/asus-nb-wmi.c | 2 +- trunk/drivers/platform/x86/asus-wmi.c | 2 +- trunk/drivers/platform/x86/eeepc-wmi.c | 2 +- trunk/drivers/power/charger-manager.c | 38 +- trunk/drivers/power/da9052-battery.c | 44 +- trunk/drivers/pwm/Kconfig | 39 +- trunk/drivers/pwm/Makefile | 5 +- trunk/drivers/pwm/core.c | 29 + trunk/drivers/pwm/pwm-imx.c | 2 +- trunk/drivers/pwm/pwm-lpc32xx.c | 23 +- trunk/drivers/pwm/pwm-samsung.c | 1 + trunk/drivers/pwm/pwm-spear.c | 276 + trunk/drivers/pwm/pwm-tiecap.c | 48 +- trunk/drivers/pwm/pwm-tiehrpwm.c | 62 +- trunk/drivers/pwm/pwm-tipwmss.c | 139 + trunk/drivers/pwm/pwm-tipwmss.h | 39 + trunk/drivers/pwm/pwm-twl-led.c | 344 + trunk/drivers/pwm/pwm-twl.c | 359 + trunk/drivers/pwm/pwm-twl6030.c | 184 - trunk/drivers/pwm/pwm-vt8500.c | 98 +- trunk/drivers/rpmsg/virtio_rpmsg_bus.c | 6 +- trunk/drivers/rtc/Kconfig | 31 +- trunk/drivers/rtc/Makefile | 2 + trunk/drivers/rtc/class.c | 1 - trunk/drivers/rtc/rtc-da9055.c | 413 ++ trunk/drivers/rtc/rtc-davinci.c | 21 +- trunk/drivers/rtc/rtc-dev.c | 19 - trunk/drivers/rtc/rtc-imxdi.c | 12 + trunk/drivers/rtc/rtc-omap.c | 80 +- trunk/drivers/rtc/rtc-pcf8523.c | 326 + trunk/drivers/rtc/rtc-s3c.c | 52 +- trunk/drivers/rtc/rtc-spear.c | 91 +- trunk/drivers/rtc/rtc-test.c | 14 +- trunk/drivers/rtc/rtc-tps65910.c | 9 +- trunk/drivers/rtc/rtc-twl.c | 32 +- trunk/drivers/rtc/rtc-vt8500.c | 15 +- trunk/drivers/scsi/csiostor/t4fw_api_stor.h | 39 - trunk/drivers/scsi/fcoe/fcoe_ctlr.c | 4 +- trunk/drivers/scsi/qla2xxx/qla_target.c | 21 +- trunk/drivers/scsi/qla2xxx/tcm_qla2xxx.c | 4 +- trunk/drivers/scsi/scsi_lib.c | 2 +- trunk/drivers/scsi/virtio_scsi.c | 24 +- trunk/drivers/sh/clk/cpg.c | 1 - trunk/drivers/spi/spi-atmel.c | 17 +- trunk/drivers/spi/spi-s3c64xx.c | 10 +- trunk/drivers/spi/spi-sh-hspi.c | 2 +- trunk/drivers/spi/spi.c | 5 +- trunk/drivers/ssb/Kconfig | 9 + trunk/drivers/ssb/Makefile | 1 + trunk/drivers/ssb/driver_chipcommon.c | 78 +- trunk/drivers/ssb/driver_extif.c | 43 +- trunk/drivers/ssb/driver_gpio.c | 176 + trunk/drivers/ssb/main.c | 7 + trunk/drivers/ssb/ssb_private.h | 17 + trunk/drivers/staging/android/binder.c | 3 +- trunk/drivers/staging/omapdrm/omap_drv.c | 11 + trunk/drivers/target/iscsi/iscsi_target.c | 84 +- .../target/iscsi/iscsi_target_configfs.c | 28 +- .../drivers/target/iscsi/iscsi_target_core.h | 2 +- .../drivers/target/iscsi/iscsi_target_erl1.c | 11 +- .../drivers/target/iscsi/iscsi_target_erl2.c | 2 +- .../drivers/target/iscsi/iscsi_target_login.c | 18 +- .../drivers/target/iscsi/iscsi_target_nego.c | 10 +- .../target/iscsi/iscsi_target_parameters.c | 16 +- trunk/drivers/target/iscsi/iscsi_target_tmr.c | 4 +- trunk/drivers/target/iscsi/iscsi_target_tq.c | 3 +- .../drivers/target/iscsi/iscsi_target_util.c | 8 +- trunk/drivers/target/loopback/tcm_loop.h | 1 - trunk/drivers/target/sbp/Kconfig | 2 +- trunk/drivers/target/sbp/sbp_target.c | 24 +- trunk/drivers/target/target_core_alua.c | 346 +- trunk/drivers/target/target_core_alua.h | 9 +- trunk/drivers/target/target_core_configfs.c | 705 +- trunk/drivers/target/target_core_device.c | 710 +- .../target/target_core_fabric_configfs.c | 37 +- trunk/drivers/target/target_core_fabric_lib.c | 3 +- trunk/drivers/target/target_core_file.c | 279 +- trunk/drivers/target/target_core_file.h | 2 + trunk/drivers/target/target_core_hba.c | 9 +- trunk/drivers/target/target_core_iblock.c | 501 +- trunk/drivers/target/target_core_iblock.h | 1 + trunk/drivers/target/target_core_internal.h | 16 +- trunk/drivers/target/target_core_pr.c | 1225 ++-- trunk/drivers/target/target_core_pr.h | 10 +- trunk/drivers/target/target_core_pscsi.c | 349 +- trunk/drivers/target/target_core_pscsi.h | 2 +- trunk/drivers/target/target_core_rd.c | 126 +- trunk/drivers/target/target_core_rd.h | 1 + trunk/drivers/target/target_core_sbc.c | 185 +- trunk/drivers/target/target_core_spc.c | 572 +- trunk/drivers/target/target_core_stat.c | 312 +- trunk/drivers/target/target_core_tmr.c | 9 +- trunk/drivers/target/target_core_tpg.c | 29 +- trunk/drivers/target/target_core_transport.c | 675 +- trunk/drivers/target/target_core_ua.c | 20 +- trunk/drivers/target/target_core_ua.h | 2 +- trunk/drivers/target/tcm_fc/tfc_sess.c | 2 +- trunk/drivers/tty/serial/omap-serial.c | 3 +- trunk/drivers/usb/musb/musb_core.c | 12 +- trunk/drivers/usb/musb/musb_io.h | 21 - trunk/drivers/usb/musb/tusb6010.c | 5 +- trunk/drivers/usb/phy/Kconfig | 1 + trunk/drivers/vfio/pci/vfio_pci.c | 83 +- trunk/drivers/vfio/vfio.c | 34 +- trunk/drivers/vhost/tcm_vhost.c | 4 - trunk/drivers/video/Kconfig | 25 +- trunk/drivers/video/Makefile | 1 + trunk/drivers/video/backlight/88pm860x_bl.c | 18 +- trunk/drivers/video/backlight/atmel-pwm-bl.c | 7 +- trunk/drivers/video/backlight/backlight.c | 29 + trunk/drivers/video/backlight/corgi_lcd.c | 20 +- trunk/drivers/video/backlight/da903x_bl.c | 15 +- trunk/drivers/video/backlight/da9052_bl.c | 2 +- trunk/drivers/video/backlight/generic_bl.c | 4 +- trunk/drivers/video/backlight/hp680_bl.c | 4 +- trunk/drivers/video/backlight/ili9320.c | 14 +- trunk/drivers/video/backlight/ili9320.h | 2 +- trunk/drivers/video/backlight/jornada720_bl.c | 31 +- trunk/drivers/video/backlight/l4f00242t03.c | 3 +- trunk/drivers/video/backlight/lcd.c | 8 +- trunk/drivers/video/backlight/lm3630_bl.c | 2 +- trunk/drivers/video/backlight/lm3639_bl.c | 2 +- trunk/drivers/video/backlight/lms283gf05.c | 17 +- trunk/drivers/video/backlight/locomolcd.c | 38 +- trunk/drivers/video/backlight/lp855x_bl.c | 51 +- trunk/drivers/video/backlight/max8925_bl.c | 11 +- trunk/drivers/video/backlight/omap1_bl.c | 4 +- trunk/drivers/video/backlight/pandora_bl.c | 8 +- .../video/backlight/pcf50633-backlight.c | 8 +- trunk/drivers/video/backlight/platform_lcd.c | 2 +- trunk/drivers/video/backlight/s6e63m0.c | 2 +- trunk/drivers/video/backlight/tdo24m.c | 33 +- trunk/drivers/video/backlight/tosa_bl.c | 7 +- trunk/drivers/video/backlight/tosa_lcd.c | 24 +- trunk/drivers/video/backlight/vgg2432a4.c | 10 +- trunk/drivers/video/console/newport_con.c | 11 +- trunk/drivers/video/console/softcursor.c | 3 +- trunk/drivers/video/da8xx-fb.c | 170 +- trunk/drivers/video/exynos/exynos_dp_core.c | 697 +- trunk/drivers/video/exynos/exynos_dp_core.h | 21 +- trunk/drivers/video/exynos/exynos_dp_reg.c | 77 +- trunk/drivers/video/exynos/exynos_dp_reg.h | 3 +- trunk/drivers/video/fsl-diu-fb.c | 201 +- trunk/drivers/video/gxt4500.c | 15 +- trunk/drivers/video/omap2/Kconfig | 7 +- trunk/drivers/video/omap2/Makefile | 1 - .../video/omap2/displays/panel-acx565akm.c | 23 - .../video/omap2/displays/panel-generic-dpi.c | 36 - .../omap2/displays/panel-lgphilips-lb035q02.c | 34 - .../drivers/video/omap2/displays/panel-n8x0.c | 89 +- .../omap2/displays/panel-nec-nl8048hl11-01b.c | 24 - .../video/omap2/displays/panel-picodlp.c | 45 +- .../omap2/displays/panel-sharp-ls037v7dw01.c | 17 - .../drivers/video/omap2/displays/panel-taal.c | 72 - .../video/omap2/displays/panel-tfp410.c | 33 - .../omap2/displays/panel-tpo-td043mtea1.c | 20 - trunk/drivers/video/omap2/dss/Kconfig | 35 +- trunk/drivers/video/omap2/dss/Makefile | 7 +- trunk/drivers/video/omap2/dss/apply.c | 331 +- trunk/drivers/video/omap2/dss/core.c | 72 +- trunk/drivers/video/omap2/dss/dispc-compat.c | 667 ++ trunk/drivers/video/omap2/dss/dispc-compat.h | 30 + trunk/drivers/video/omap2/dss/dispc.c | 1063 +-- trunk/drivers/video/omap2/dss/display-sysfs.c | 321 + trunk/drivers/video/omap2/dss/display.c | 386 +- trunk/drivers/video/omap2/dss/dpi.c | 126 +- trunk/drivers/video/omap2/dss/dsi.c | 247 +- trunk/drivers/video/omap2/dss/dss.c | 101 +- trunk/drivers/video/omap2/dss/dss.h | 124 +- trunk/drivers/video/omap2/dss/dss_features.c | 15 +- trunk/drivers/video/omap2/dss/dss_features.h | 7 - trunk/drivers/video/omap2/dss/hdmi.c | 159 +- trunk/drivers/video/omap2/dss/hdmi_panel.c | 82 +- trunk/drivers/video/omap2/dss/manager.c | 39 - trunk/drivers/video/omap2/dss/output.c | 90 +- trunk/drivers/video/omap2/dss/overlay.c | 17 - trunk/drivers/video/omap2/dss/rfbi.c | 23 +- trunk/drivers/video/omap2/dss/sdi.c | 11 +- trunk/drivers/video/omap2/dss/ti_hdmi.h | 3 + .../drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 11 +- trunk/drivers/video/omap2/dss/venc.c | 11 +- trunk/drivers/video/omap2/dss/venc_panel.c | 19 - trunk/drivers/video/omap2/omapfb/Kconfig | 1 - .../drivers/video/omap2/omapfb/omapfb-ioctl.c | 46 +- .../drivers/video/omap2/omapfb/omapfb-main.c | 204 +- .../drivers/video/omap2/omapfb/omapfb-sysfs.c | 4 + trunk/drivers/video/omap2/omapfb/omapfb.h | 20 +- trunk/drivers/video/omap2/vram.c | 514 -- trunk/drivers/video/s3c-fb.c | 24 +- trunk/drivers/video/sh_mipi_dsi.c | 69 +- trunk/drivers/video/sh_mobile_lcdcfb.c | 74 +- trunk/drivers/video/sh_mobile_lcdcfb.h | 1 + trunk/drivers/video/ssd1307fb.c | 396 ++ trunk/drivers/virt/fsl_hypervisor.c | 3 - trunk/drivers/virtio/virtio.c | 30 +- trunk/drivers/virtio/virtio_balloon.c | 7 +- trunk/drivers/virtio/virtio_mmio.c | 30 +- trunk/drivers/virtio/virtio_pci.c | 20 +- trunk/drivers/virtio/virtio_ring.c | 46 +- trunk/drivers/w1/masters/Kconfig | 1 + trunk/drivers/watchdog/Kconfig | 18 +- trunk/drivers/watchdog/Makefile | 1 + trunk/drivers/watchdog/ath79_wdt.c | 13 +- trunk/drivers/watchdog/cpu5wdt.c | 1 + trunk/drivers/watchdog/da9052_wdt.c | 4 - trunk/drivers/watchdog/da9055_wdt.c | 216 + trunk/drivers/watchdog/davinci_wdt.c | 11 +- trunk/drivers/watchdog/hpwdt.c | 2 +- trunk/drivers/watchdog/mpcore_wdt.c | 19 +- trunk/drivers/watchdog/omap_wdt.c | 311 +- trunk/drivers/watchdog/orion_wdt.c | 2 + trunk/drivers/watchdog/s3c2410_wdt.c | 6 +- trunk/drivers/watchdog/sp5100_tco.c | 321 +- trunk/drivers/watchdog/sp5100_tco.h | 46 +- trunk/drivers/watchdog/sp805_wdt.c | 11 +- trunk/drivers/watchdog/twl4030_wdt.c | 185 +- trunk/drivers/xen/swiotlb-xen.c | 25 +- trunk/fs/Kconfig | 5 +- trunk/fs/Makefile | 1 + trunk/fs/adfs/inode.c | 15 +- trunk/fs/affs/file.c | 18 +- trunk/fs/affs/inode.c | 5 +- trunk/fs/attr.c | 11 +- trunk/fs/autofs4/autofs_i.h | 8 +- trunk/fs/autofs4/dev-ioctl.c | 4 +- trunk/fs/autofs4/inode.c | 24 +- trunk/fs/autofs4/waitq.c | 5 +- trunk/fs/bad_inode.c | 2 +- trunk/fs/bfs/file.c | 15 +- trunk/fs/binfmt_elf.c | 4 +- trunk/fs/binfmt_em86.c | 1 - trunk/fs/binfmt_misc.c | 11 +- trunk/fs/binfmt_script.c | 8 +- trunk/fs/block_dev.c | 4 +- trunk/fs/btrfs/Makefile | 2 +- trunk/fs/btrfs/acl.c | 2 + trunk/fs/btrfs/backref.c | 16 +- trunk/fs/btrfs/btrfs_inode.h | 4 + trunk/fs/btrfs/check-integrity.c | 31 +- trunk/fs/btrfs/compression.c | 6 +- trunk/fs/btrfs/ctree.c | 229 +- trunk/fs/btrfs/ctree.h | 182 +- trunk/fs/btrfs/delayed-inode.c | 11 +- trunk/fs/btrfs/dev-replace.c | 856 +++ trunk/fs/btrfs/dev-replace.h | 44 + trunk/fs/btrfs/dir-item.c | 59 + trunk/fs/btrfs/disk-io.c | 142 +- trunk/fs/btrfs/disk-io.h | 4 +- trunk/fs/btrfs/extent-tree.c | 227 +- trunk/fs/btrfs/extent_io.c | 37 +- trunk/fs/btrfs/extent_io.h | 4 +- trunk/fs/btrfs/extent_map.c | 24 +- trunk/fs/btrfs/extent_map.h | 2 + trunk/fs/btrfs/file-item.c | 21 +- trunk/fs/btrfs/file.c | 422 +- trunk/fs/btrfs/free-space-cache.c | 51 +- trunk/fs/btrfs/inode-map.c | 5 +- trunk/fs/btrfs/inode.c | 500 +- trunk/fs/btrfs/ioctl.c | 317 +- trunk/fs/btrfs/ioctl.h | 48 +- trunk/fs/btrfs/math.h | 44 + trunk/fs/btrfs/ordered-data.c | 90 +- trunk/fs/btrfs/ordered-data.h | 7 +- trunk/fs/btrfs/print-tree.c | 3 + trunk/fs/btrfs/reada.c | 31 +- trunk/fs/btrfs/relocation.c | 40 +- trunk/fs/btrfs/root-tree.c | 4 +- trunk/fs/btrfs/scrub.c | 1836 +++-- trunk/fs/btrfs/send.c | 8 +- trunk/fs/btrfs/super.c | 48 +- trunk/fs/btrfs/transaction.c | 170 +- trunk/fs/btrfs/transaction.h | 2 +- trunk/fs/btrfs/tree-log.c | 477 +- trunk/fs/btrfs/volumes.c | 966 ++- trunk/fs/btrfs/volumes.h | 35 +- trunk/fs/btrfs/xattr.c | 13 +- trunk/fs/cachefiles/interface.c | 57 +- trunk/fs/cachefiles/internal.h | 2 + trunk/fs/cachefiles/key.c | 2 +- trunk/fs/cachefiles/namei.c | 3 +- trunk/fs/cachefiles/rdwr.c | 114 +- trunk/fs/cachefiles/xattr.c | 2 +- trunk/fs/ceph/addr.c | 60 +- trunk/fs/ceph/caps.c | 18 +- trunk/fs/ceph/dir.c | 4 +- trunk/fs/ceph/export.c | 4 +- trunk/fs/ceph/file.c | 79 +- trunk/fs/ceph/inode.c | 15 +- trunk/fs/ceph/mds_client.c | 11 +- trunk/fs/ceph/super.c | 4 +- trunk/fs/cifs/cifs_debug.h | 6 +- trunk/fs/cifs/cifsacl.c | 12 +- trunk/fs/cifs/cifsfs.c | 9 +- trunk/fs/cifs/connect.c | 9 +- trunk/fs/cifs/readdir.c | 19 +- trunk/fs/configfs/dir.c | 4 +- trunk/fs/dcache.c | 35 +- trunk/fs/eventfd.c | 20 + trunk/fs/eventpoll.c | 28 + trunk/fs/exec.c | 55 +- trunk/fs/exofs/inode.c | 16 +- trunk/fs/exportfs/expfs.c | 23 +- trunk/fs/ext3/dir.c | 6 +- trunk/fs/ext3/inode.c | 3 +- trunk/fs/ext3/super.c | 3 - trunk/fs/ext4/Kconfig | 15 - trunk/fs/ext4/Makefile | 4 +- trunk/fs/ext4/acl.c | 6 +- trunk/fs/ext4/dir.c | 47 +- trunk/fs/ext4/ext4.h | 165 +- trunk/fs/ext4/ext4_extents.h | 40 - trunk/fs/ext4/ext4_jbd2.h | 7 - trunk/fs/ext4/extents.c | 480 +- trunk/fs/ext4/extents_status.c | 500 ++ trunk/fs/ext4/extents_status.h | 45 + trunk/fs/ext4/file.c | 338 +- trunk/fs/ext4/fsync.c | 6 +- trunk/fs/ext4/ialloc.c | 6 +- trunk/fs/ext4/indirect.c | 5 +- trunk/fs/ext4/inline.c | 1884 ++++++ trunk/fs/ext4/inode.c | 629 +- trunk/fs/ext4/mballoc.c | 60 +- trunk/fs/ext4/migrate.c | 1 + trunk/fs/ext4/move_extent.c | 1 + trunk/fs/ext4/namei.c | 531 +- trunk/fs/ext4/page-io.c | 3 +- trunk/fs/ext4/resize.c | 17 +- trunk/fs/ext4/super.c | 57 +- trunk/fs/ext4/symlink.c | 4 - trunk/fs/ext4/xattr.c | 110 +- trunk/fs/ext4/xattr.h | 158 +- trunk/fs/f2fs/Kconfig | 53 + trunk/fs/f2fs/Makefile | 7 + trunk/fs/f2fs/acl.c | 413 ++ trunk/fs/f2fs/acl.h | 57 + trunk/fs/f2fs/checkpoint.c | 794 +++ trunk/fs/f2fs/data.c | 702 ++ trunk/fs/f2fs/debug.c | 361 + trunk/fs/f2fs/dir.c | 672 ++ trunk/fs/f2fs/f2fs.h | 1083 +++ trunk/fs/f2fs/file.c | 636 ++ trunk/fs/f2fs/gc.c | 742 +++ trunk/fs/f2fs/gc.h | 117 + trunk/fs/f2fs/hash.c | 97 + trunk/fs/f2fs/inode.c | 268 + trunk/fs/f2fs/namei.c | 503 ++ trunk/fs/f2fs/node.c | 1764 +++++ trunk/fs/f2fs/node.h | 353 + trunk/fs/f2fs/recovery.c | 375 ++ trunk/fs/f2fs/segment.c | 1791 +++++ trunk/fs/f2fs/segment.h | 618 ++ trunk/fs/f2fs/super.c | 657 ++ trunk/fs/f2fs/xattr.c | 440 ++ trunk/fs/f2fs/xattr.h | 145 + trunk/fs/fat/dir.c | 5 +- trunk/fs/fat/fat.h | 3 +- trunk/fs/fat/inode.c | 57 +- trunk/fs/fat/misc.c | 13 +- trunk/fs/fhandle.c | 2 +- trunk/fs/file_table.c | 2 +- trunk/fs/fscache/cache.c | 8 +- trunk/fs/fscache/cookie.c | 78 + trunk/fs/fscache/internal.h | 15 +- trunk/fs/fscache/object-list.c | 2 +- trunk/fs/fscache/object.c | 101 +- trunk/fs/fscache/operation.c | 140 +- trunk/fs/fscache/page.c | 195 +- trunk/fs/fscache/stats.c | 17 +- trunk/fs/fuse/dev.c | 4 +- trunk/fs/fuse/dir.c | 20 +- trunk/fs/fuse/file.c | 8 +- trunk/fs/fuse/fuse_i.h | 4 +- trunk/fs/fuse/inode.c | 23 +- trunk/fs/gfs2/aops.c | 2 +- trunk/fs/gfs2/bmap.c | 54 +- trunk/fs/gfs2/dir.c | 7 +- trunk/fs/gfs2/file.c | 14 +- trunk/fs/gfs2/glock.c | 40 +- trunk/fs/gfs2/glock.h | 54 +- trunk/fs/gfs2/glops.c | 19 +- trunk/fs/gfs2/incore.h | 6 +- trunk/fs/gfs2/inode.c | 209 +- trunk/fs/gfs2/lock_dlm.c | 20 +- trunk/fs/gfs2/ops_fstype.c | 3 + trunk/fs/gfs2/quota.c | 10 +- trunk/fs/gfs2/rgrp.c | 139 +- trunk/fs/gfs2/rgrp.h | 3 +- trunk/fs/gfs2/trace_gfs2.h | 2 +- trunk/fs/gfs2/xattr.c | 2 +- trunk/fs/hfs/inode.c | 26 +- trunk/fs/hfsplus/bitmap.c | 13 +- trunk/fs/hfsplus/btree.c | 5 +- trunk/fs/hfsplus/extents.c | 24 +- trunk/fs/hfsplus/hfsplus_fs.h | 2 +- trunk/fs/hfsplus/inode.c | 27 +- trunk/fs/hfsplus/super.c | 15 +- trunk/fs/hpfs/file.c | 20 +- trunk/fs/hpfs/hpfs_fn.h | 1 + trunk/fs/hpfs/inode.c | 5 +- trunk/fs/hppfs/hppfs.c | 2 +- trunk/fs/jbd2/journal.c | 1 - trunk/fs/jbd2/transaction.c | 11 - trunk/fs/jffs2/nodemgmt.c | 6 +- trunk/fs/jfs/file.c | 6 +- trunk/fs/jfs/inode.c | 20 +- trunk/fs/libfs.c | 6 +- trunk/fs/lockd/clnt4xdr.c | 8 - trunk/fs/lockd/clntproc.c | 3 +- trunk/fs/lockd/clntxdr.c | 8 - trunk/fs/lockd/host.c | 15 +- trunk/fs/lockd/mon.c | 3 - trunk/fs/logfs/readwrite.c | 10 +- trunk/fs/minix/file.c | 6 +- trunk/fs/minix/inode.c | 17 +- trunk/fs/mount.h | 3 + trunk/fs/namei.c | 118 +- trunk/fs/namespace.c | 214 +- trunk/fs/ncpfs/inode.c | 4 +- trunk/fs/nfs/Makefile | 2 +- trunk/fs/nfs/blocklayout/blocklayout.c | 1 + trunk/fs/nfs/cache_lib.c | 1 - trunk/fs/nfs/callback.h | 4 +- trunk/fs/nfs/callback_proc.c | 17 +- trunk/fs/nfs/callback_xdr.c | 5 +- trunk/fs/nfs/client.c | 9 +- trunk/fs/nfs/dir.c | 28 +- trunk/fs/nfs/direct.c | 17 +- trunk/fs/nfs/file.c | 10 +- trunk/fs/nfs/fscache.c | 1 + trunk/fs/nfs/fscache.h | 21 +- trunk/fs/nfs/idmap.c | 12 +- trunk/fs/nfs/inode.c | 30 +- trunk/fs/nfs/internal.h | 42 +- trunk/fs/nfs/mount_clnt.c | 7 +- trunk/fs/nfs/nfs2xdr.c | 4 +- trunk/fs/nfs/nfs3proc.c | 6 +- trunk/fs/nfs/nfs3xdr.c | 7 +- trunk/fs/nfs/nfs4_fs.h | 29 +- trunk/fs/nfs/nfs4client.c | 5 +- trunk/fs/nfs/nfs4file.c | 3 +- trunk/fs/nfs/nfs4filelayout.c | 45 +- trunk/fs/nfs/nfs4filelayoutdev.c | 3 +- trunk/fs/nfs/nfs4proc.c | 821 +-- trunk/fs/nfs/nfs4session.c | 552 ++ trunk/fs/nfs/nfs4session.h | 142 + trunk/fs/nfs/nfs4state.c | 143 +- trunk/fs/nfs/nfs4super.c | 1 + trunk/fs/nfs/nfs4xdr.c | 52 +- trunk/fs/nfs/objlayout/objlayout.c | 11 - trunk/fs/nfs/pnfs.c | 17 +- trunk/fs/nfs/proc.c | 43 - trunk/fs/nfs/super.c | 21 +- trunk/fs/nfs/write.c | 34 +- trunk/fs/nfsd/fault_inject.c | 113 +- trunk/fs/nfsd/fault_inject.h | 28 - trunk/fs/nfsd/netns.h | 66 + trunk/fs/nfsd/nfs2acl.c | 2 +- trunk/fs/nfsd/nfs3acl.c | 2 +- trunk/fs/nfsd/nfs3proc.c | 6 +- trunk/fs/nfsd/nfs3xdr.c | 47 +- trunk/fs/nfsd/nfs4callback.c | 69 +- trunk/fs/nfsd/nfs4proc.c | 74 +- trunk/fs/nfsd/nfs4recover.c | 561 +- trunk/fs/nfsd/nfs4state.c | 1015 +-- trunk/fs/nfsd/nfs4xdr.c | 324 +- trunk/fs/nfsd/nfsctl.c | 100 +- trunk/fs/nfsd/nfsd.h | 36 +- trunk/fs/nfsd/nfsfh.c | 4 +- trunk/fs/nfsd/nfssvc.c | 203 +- trunk/fs/nfsd/nfsxdr.c | 11 +- trunk/fs/nfsd/state.h | 64 +- trunk/fs/nfsd/vfs.c | 52 +- trunk/fs/nfsd/xdr4.h | 15 +- trunk/fs/nilfs2/file.c | 1 - trunk/fs/nilfs2/inode.c | 24 +- trunk/fs/nilfs2/nilfs.h | 1 + trunk/fs/nilfs2/recovery.c | 3 +- trunk/fs/notify/Makefile | 2 +- trunk/fs/notify/dnotify/dnotify.c | 4 +- trunk/fs/notify/fanotify/fanotify.c | 6 + trunk/fs/notify/fanotify/fanotify_user.c | 39 +- trunk/fs/notify/fdinfo.c | 179 + trunk/fs/notify/fdinfo.h | 27 + trunk/fs/notify/group.c | 47 +- trunk/fs/notify/inode_mark.c | 19 +- trunk/fs/notify/inotify/inotify_fsnotify.c | 4 +- trunk/fs/notify/inotify/inotify_user.c | 36 +- trunk/fs/notify/mark.c | 91 +- trunk/fs/notify/notification.c | 1 + trunk/fs/notify/vfsmount_mark.c | 14 +- trunk/fs/ntfs/file.c | 16 +- trunk/fs/ntfs/inode.c | 8 +- trunk/fs/ntfs/inode.h | 4 + trunk/fs/ocfs2/extent_map.c | 12 +- trunk/fs/ocfs2/file.c | 24 +- trunk/fs/omfs/file.c | 22 +- trunk/fs/open.c | 99 +- trunk/fs/pnode.h | 1 + trunk/fs/proc/Makefile | 1 + trunk/fs/proc/array.c | 23 +- trunk/fs/proc/base.c | 176 +- trunk/fs/proc/fd.c | 2 + trunk/fs/proc/generic.c | 48 +- trunk/fs/proc/inode.c | 6 +- trunk/fs/proc/internal.h | 1 + trunk/fs/proc/namespaces.c | 185 +- trunk/fs/proc/proc_devtree.c | 6 +- trunk/fs/proc/proc_sysctl.c | 7 - trunk/fs/proc/root.c | 17 +- trunk/fs/proc/self.c | 59 + trunk/fs/proc/task_mmu.c | 53 + trunk/fs/pstore/ftrace.c | 4 +- trunk/fs/pstore/inode.c | 6 +- trunk/fs/pstore/ram.c | 42 +- trunk/fs/quota/quota.c | 4 + trunk/fs/read_write.c | 42 +- trunk/fs/reiserfs/file.c | 3 +- trunk/fs/reiserfs/inode.c | 15 +- trunk/fs/reiserfs/reiserfs.h | 1 + trunk/fs/seq_file.c | 4 +- trunk/fs/signalfd.c | 18 + trunk/fs/stat.c | 16 +- trunk/fs/statfs.c | 9 +- trunk/fs/sysfs/mount.c | 1 + trunk/fs/sysv/file.c | 5 +- trunk/fs/sysv/itree.c | 17 +- trunk/fs/ubifs/debug.c | 8 +- trunk/fs/ubifs/dir.c | 4 +- trunk/fs/udf/inode.c | 14 +- trunk/fs/ufs/inode.c | 15 +- trunk/fs/utimes.c | 6 +- trunk/fs/xattr.c | 72 +- trunk/include/asm-generic/io.h | 43 +- trunk/include/asm-generic/mmu.h | 6 +- trunk/include/asm-generic/pgtable.h | 110 + trunk/include/crypto/cast5.h | 6 +- trunk/include/crypto/cast6.h | 6 +- trunk/include/crypto/cast_common.h | 9 + trunk/include/crypto/vmac.h | 2 + trunk/include/drm/drmP.h | 3 + trunk/include/drm/drm_crtc.h | 19 +- trunk/include/drm/drm_crtc_helper.h | 3 + trunk/include/drm/drm_dp_helper.h | 39 + trunk/include/drm/drm_hashtab.h | 14 + trunk/include/drm/exynos_drm.h | 26 + trunk/include/drm/intel-gtt.h | 7 +- trunk/include/drm/ttm/ttm_bo_api.h | 33 +- trunk/include/drm/ttm/ttm_bo_driver.h | 45 +- trunk/include/drm/ttm/ttm_execbuf_util.h | 3 - trunk/include/drm/ttm/ttm_memory.h | 2 - trunk/include/drm/ttm/ttm_object.h | 4 + trunk/include/linux/acpi.h | 16 + trunk/include/linux/asn1.h | 2 + trunk/include/linux/ata_platform.h | 2 - trunk/include/linux/backing-dev.h | 1 + trunk/include/linux/backlight.h | 10 + trunk/include/linux/bcma/bcma.h | 1 + .../linux/bcma/bcma_driver_chipcommon.h | 9 + trunk/include/linux/binfmts.h | 7 +- trunk/include/linux/blkdev.h | 28 +- trunk/include/linux/bsg-lib.h | 1 - trunk/include/linux/ceph/libceph.h | 2 - trunk/include/linux/ceph/osdmap.h | 1 + trunk/include/linux/ceph/rados.h | 2 + trunk/include/linux/clk/mvebu.h | 22 + trunk/include/linux/compat.h | 65 + trunk/include/linux/compiler-gcc4.h | 12 + trunk/include/linux/compiler-intel.h | 7 + trunk/include/linux/compiler.h | 11 + trunk/include/linux/cred.h | 19 +- trunk/include/linux/dcache.h | 8 - trunk/include/linux/device-mapper.h | 55 +- trunk/include/linux/device.h | 7 + trunk/include/linux/dma-attrs.h | 1 + trunk/include/linux/dma-buf.h | 99 - trunk/include/linux/dma-debug.h | 7 + trunk/include/linux/drbd.h | 81 +- trunk/include/linux/drbd_genl.h | 378 ++ trunk/include/linux/drbd_genl_api.h | 55 + trunk/include/linux/drbd_limits.h | 90 +- trunk/include/linux/drbd_nl.h | 163 - trunk/include/linux/drbd_tag_magic.h | 84 - trunk/include/linux/earlycpio.h | 17 + trunk/include/linux/efi.h | 6 + trunk/include/linux/exportfs.h | 7 + trunk/include/linux/extcon.h | 50 +- trunk/include/linux/f2fs_fs.h | 413 ++ trunk/include/linux/fs.h | 24 +- trunk/include/linux/fscache-cache.h | 71 +- trunk/include/linux/fscache.h | 50 +- trunk/include/linux/fsl-diu-fb.h | 9 + trunk/include/linux/fsnotify_backend.h | 31 +- trunk/include/linux/ftrace.h | 4 +- trunk/include/linux/genhd.h | 8 +- trunk/include/linux/genl_magic_func.h | 422 ++ trunk/include/linux/genl_magic_struct.h | 277 + trunk/include/linux/gfp.h | 5 + trunk/include/linux/huge_mm.h | 16 +- trunk/include/linux/hugetlb.h | 8 +- trunk/include/linux/hugetlb_cgroup.h | 5 +- trunk/include/linux/i2c-omap.h | 2 - trunk/include/linux/i2c/i2c-sh_mobile.h | 1 + trunk/include/linux/i2c/twl.h | 73 +- trunk/include/linux/idr.h | 11 + trunk/include/linux/ima.h | 6 + trunk/include/linux/init.h | 40 +- trunk/include/linux/input.h | 10 +- trunk/include/linux/input/bu21013.h | 10 +- trunk/include/linux/input/ti_am335x_tsc.h | 23 + trunk/include/linux/input/ti_tscadc.h | 17 - trunk/include/linux/ipc_namespace.h | 9 +- .../linux/irqchip/spear-shirq.h} | 49 +- trunk/include/linux/jbd2.h | 9 +- trunk/include/linux/kernel.h | 39 +- trunk/include/linux/key.h | 1 + trunk/include/linux/kref.h | 21 + trunk/include/linux/leds.h | 17 + trunk/include/linux/libata.h | 5 + trunk/include/linux/loop.h | 3 + trunk/include/linux/lru_cache.h | 67 +- trunk/include/linux/memcontrol.h | 209 + trunk/include/linux/mempolicy.h | 8 + trunk/include/linux/mfd/arizona/registers.h | 1 + trunk/include/linux/mfd/as3711.h | 126 + trunk/include/linux/mfd/da9052/da9052.h | 10 + trunk/include/linux/mfd/da9055/core.h | 2 +- trunk/include/linux/mfd/da9055/pdata.h | 2 +- trunk/include/linux/mfd/da9055/reg.h | 2 +- trunk/include/linux/mfd/rc5t583.h | 3 +- trunk/include/linux/mfd/retu.h | 22 + trunk/include/linux/mfd/sta2x11-mfd.h | 198 +- trunk/include/linux/mfd/stmpe.h | 4 +- trunk/include/linux/mfd/ti_am335x_tscadc.h | 152 + trunk/include/linux/mfd/tps65090.h | 73 +- trunk/include/linux/mfd/tps6586x.h | 1 + trunk/include/linux/mfd/tps65910.h | 145 +- trunk/include/linux/mfd/tps80031.h | 637 ++ trunk/include/linux/mfd/twl6040.h | 10 +- trunk/include/linux/mfd/viperboard.h | 110 + trunk/include/linux/migrate.h | 46 +- trunk/include/linux/mlx4/device.h | 1 + trunk/include/linux/mm.h | 40 +- trunk/include/linux/mm_types.h | 38 +- trunk/include/linux/mmzone.h | 13 + trunk/include/linux/mnt_namespace.h | 3 +- trunk/include/linux/moduleparam.h | 6 +- trunk/include/linux/mtd/blktrans.h | 4 +- trunk/include/linux/mtd/doc2000.h | 22 +- trunk/include/linux/mtd/fsmc.h | 3 - trunk/include/linux/mtd/gpmi-nand.h | 68 - trunk/include/linux/mtd/map.h | 4 +- trunk/include/linux/mtd/mtd.h | 2 +- trunk/include/linux/mtd/nand.h | 11 +- trunk/include/linux/mtd/sh_flctl.h | 14 +- trunk/include/linux/namei.h | 20 +- trunk/include/linux/netdevice.h | 2 +- trunk/include/linux/nfs_fs_sb.h | 47 - trunk/include/linux/nfs_xdr.h | 155 +- trunk/include/linux/nsproxy.h | 2 +- trunk/include/linux/of.h | 31 +- trunk/include/linux/of_i2c.h | 12 + trunk/include/linux/of_platform.h | 1 + trunk/include/linux/page-flags.h | 8 +- trunk/include/linux/percpu-rwsem.h | 91 +- trunk/include/linux/pid.h | 1 + trunk/include/linux/pid_namespace.h | 13 +- .../include/linux/platform_data/dma-mv_xor.h | 11 +- .../linux/platform_data/i2c-cbus-gpio.h | 27 + .../include/linux/platform_data/iommu-omap.h | 9 +- trunk/include/linux/platform_data/lp855x.h | 9 +- .../linux/platform_data/mtd-nomadik-nand.h | 16 - .../linux/platform_data/serial-omap.h} | 0 .../linux/platform_data/ti_am335x_adc.h | 14 + trunk/include/linux/platform_data/usb-omap.h | 3 + trunk/include/linux/proc_fs.h | 29 +- trunk/include/linux/ptrace.h | 6 + trunk/include/linux/pwm.h | 3 + trunk/include/linux/raid/pq.h | 4 + trunk/include/linux/random.h | 19 +- trunk/include/linux/res_counter.h | 12 +- trunk/include/linux/rmap.h | 33 +- trunk/include/linux/sched.h | 36 +- trunk/include/linux/security.h | 13 + trunk/include/linux/signal.h | 3 + trunk/include/linux/slab.h | 57 +- trunk/include/linux/slab_def.h | 9 +- trunk/include/linux/slub_def.h | 9 +- trunk/include/linux/ssb/ssb.h | 4 + .../include/linux/ssb/ssb_driver_chipcommon.h | 3 + trunk/include/linux/ssb/ssb_driver_extif.h | 1 + trunk/include/linux/string.h | 11 + trunk/include/linux/sunrpc/cache.h | 6 +- trunk/include/linux/sunrpc/sched.h | 1 - trunk/include/linux/sunrpc/svc.h | 6 +- trunk/include/linux/sunrpc/svcsock.h | 21 +- trunk/include/linux/swiotlb.h | 20 +- trunk/include/linux/syscalls.h | 20 +- trunk/include/linux/thread_info.h | 2 + trunk/include/linux/usb/usbnet.h | 3 + trunk/include/linux/user_namespace.h | 10 + trunk/include/linux/utsname.h | 7 +- trunk/include/linux/virtio.h | 25 +- trunk/include/linux/virtio_scsi.h | 28 +- trunk/include/linux/vm_event_item.h | 12 +- trunk/include/linux/vmstat.h | 8 + trunk/include/linux/wait.h | 164 + trunk/include/linux/watchdog.h | 2 +- trunk/include/net/net_namespace.h | 2 + trunk/include/net/sock.h | 2 +- trunk/include/sound/soc-dai.h | 1 - trunk/include/sound/soc.h | 1 + trunk/include/target/target_core_backend.h | 49 +- trunk/include/target/target_core_base.h | 212 +- trunk/include/target/target_core_fabric.h | 15 +- trunk/include/trace/events/btrfs.h | 3 +- trunk/include/trace/events/ext4.h | 136 +- trunk/include/trace/events/gfpflags.h | 1 + trunk/include/trace/events/migrate.h | 51 + trunk/include/uapi/asm-generic/signal.h | 6 - trunk/include/uapi/asm-generic/unistd.h | 4 +- trunk/include/uapi/drm/drm.h | 1 + trunk/include/uapi/drm/exynos_drm.h | 203 +- trunk/include/uapi/drm/i915_drm.h | 6 + trunk/include/uapi/drm/radeon_drm.h | 6 + trunk/include/uapi/linux/dm-ioctl.h | 4 +- trunk/include/uapi/linux/magic.h | 2 + trunk/include/uapi/linux/mempolicy.h | 15 +- trunk/include/uapi/linux/module.h | 8 + trunk/include/uapi/linux/ptrace.h | 5 +- trunk/include/uapi/linux/signal.h | 2 + trunk/include/uapi/linux/swab.h | 12 +- trunk/include/uapi/linux/virtio_ids.h | 1 + trunk/include/video/da8xx-fb.h | 25 +- trunk/include/video/omap-panel-tfp410.h | 2 +- trunk/include/video/omapdss.h | 91 +- trunk/include/video/samsung_fimd.h | 168 +- trunk/include/video/sh_mipi_dsi.h | 4 +- trunk/include/video/sh_mobile_lcdc.h | 1 - trunk/include/xen/interface/event_channel.h | 13 + trunk/init/Kconfig | 48 +- trunk/init/do_mounts.c | 61 +- trunk/init/main.c | 5 +- trunk/init/version.c | 2 + trunk/ipc/msgutil.c | 2 + trunk/ipc/namespace.c | 33 +- trunk/kernel/Makefile | 10 +- trunk/kernel/audit_tree.c | 10 +- trunk/kernel/audit_watch.c | 4 +- trunk/kernel/cgroup.c | 3 +- trunk/kernel/compat.c | 17 + trunk/kernel/cred.c | 154 +- trunk/kernel/events/core.c | 2 +- trunk/kernel/exit.c | 12 - trunk/kernel/fork.c | 86 +- trunk/kernel/irq/manage.c | 2 +- trunk/kernel/kcmp.c | 1 + trunk/kernel/kmod.c | 6 +- trunk/kernel/modsign_certificate.S | 19 + trunk/kernel/modsign_pubkey.c | 21 +- trunk/kernel/module.c | 444 +- trunk/kernel/nsproxy.c | 36 +- trunk/kernel/padata.c | 5 +- trunk/kernel/pid.c | 71 +- trunk/kernel/pid_namespace.c | 117 +- trunk/kernel/posix-cpu-timers.c | 3 + trunk/kernel/printk.c | 40 +- trunk/kernel/ptrace.c | 13 +- trunk/kernel/res_counter.c | 20 +- trunk/kernel/sched/core.c | 81 +- trunk/kernel/sched/fair.c | 230 + trunk/kernel/sched/features.h | 11 + trunk/kernel/sched/sched.h | 12 + trunk/kernel/seccomp.c | 13 +- trunk/kernel/signal.c | 76 +- trunk/kernel/sys_ni.c | 1 + trunk/kernel/sysctl.c | 45 +- trunk/kernel/sysctl_binary.c | 2 +- trunk/kernel/trace/ftrace.c | 4 +- trunk/kernel/trace/trace.c | 60 +- trunk/kernel/trace/trace_stack.c | 4 - trunk/kernel/trace/trace_uprobe.c | 8 +- trunk/kernel/user.c | 2 + trunk/kernel/user_namespace.c | 147 +- trunk/kernel/utsname.c | 34 +- trunk/kernel/watchdog.c | 24 +- trunk/lib/Kconfig | 3 + trunk/lib/Kconfig.debug | 10 +- trunk/lib/Makefile | 8 +- trunk/lib/asn1_decoder.c | 8 +- trunk/lib/atomic64.c | 17 +- trunk/lib/dma-debug.c | 66 +- trunk/lib/dynamic_debug.c | 9 +- trunk/lib/earlycpio.c | 145 + trunk/lib/interval_tree_test_main.c | 7 +- trunk/lib/kstrtox.c | 64 + trunk/lib/lru_cache.c | 359 +- ....c => of-reconfig-notifier-error-inject.c} | 22 +- trunk/lib/percpu-rwsem.c | 165 + trunk/lib/raid6/Makefile | 9 +- trunk/lib/raid6/algos.c | 12 + trunk/lib/raid6/altivec.uc | 3 - trunk/lib/raid6/avx2.c | 251 + trunk/lib/raid6/mmx.c | 2 +- trunk/lib/raid6/recov_avx2.c | 323 + trunk/lib/raid6/recov_ssse3.c | 4 - trunk/lib/raid6/sse1.c | 2 +- trunk/lib/raid6/sse2.c | 8 +- trunk/lib/raid6/test/Makefile | 29 +- trunk/lib/raid6/x86.h | 14 +- trunk/lib/random32.c | 97 +- trunk/lib/rbtree_test.c | 8 +- trunk/lib/scatterlist.c | 3 +- trunk/lib/swiotlb.c | 269 +- trunk/lib/vsprintf.c | 109 +- trunk/mm/Kconfig | 13 +- trunk/mm/compaction.c | 31 +- trunk/mm/highmem.c | 1 + trunk/mm/huge_memory.c | 116 +- trunk/mm/hugetlb.c | 21 +- trunk/mm/hugetlb_cgroup.c | 19 +- trunk/mm/internal.h | 7 +- trunk/mm/kmemleak.c | 3 +- trunk/mm/ksm.c | 16 +- trunk/mm/memcontrol.c | 1377 +++- trunk/mm/memory-failure.c | 7 +- trunk/mm/memory.c | 207 +- trunk/mm/memory_hotplug.c | 21 +- trunk/mm/mempolicy.c | 283 +- trunk/mm/migrate.c | 337 +- trunk/mm/mmap.c | 10 +- trunk/mm/mprotect.c | 149 +- trunk/mm/mremap.c | 2 +- trunk/mm/page-writeback.c | 25 +- trunk/mm/page_alloc.c | 59 +- trunk/mm/pgtable-generic.c | 9 +- trunk/mm/rmap.c | 66 +- trunk/mm/shmem.c | 20 +- trunk/mm/slab.c | 383 +- trunk/mm/slab.h | 190 +- trunk/mm/slab_common.c | 292 +- trunk/mm/slob.c | 48 +- trunk/mm/slub.c | 447 +- trunk/mm/truncate.c | 23 - trunk/mm/vmscan.c | 127 +- trunk/mm/vmstat.c | 16 +- trunk/net/9p/trans_virtio.c | 3 +- trunk/net/atm/atm_sysfs.c | 40 +- trunk/net/batman-adv/bat_iv_ogm.c | 2 +- trunk/net/bridge/br_if.c | 8 +- trunk/net/bridge/br_mdb.c | 13 +- trunk/net/bridge/br_multicast.c | 1 + trunk/net/bridge/br_netlink.c | 1 - trunk/net/bridge/br_private.h | 1 + trunk/net/ceph/ceph_common.c | 3 +- trunk/net/ceph/messenger.c | 107 +- trunk/net/ceph/osd_client.c | 59 +- trunk/net/ceph/osdmap.c | 47 +- trunk/net/core/dev.c | 18 +- trunk/net/core/net-sysfs.c | 4 - trunk/net/core/net_namespace.c | 32 +- trunk/net/core/sock.c | 4 +- trunk/net/dns_resolver/dns_key.c | 15 +- trunk/net/ipv4/arp.c | 10 +- trunk/net/ipv4/ip_gre.c | 13 +- trunk/net/ipv4/tcp_input.c | 14 +- trunk/net/ipv6/addrconf.c | 3 +- trunk/net/ipv6/ip6_gre.c | 3 +- trunk/net/netlink/af_netlink.c | 5 +- trunk/net/rds/ib_cm.c | 11 +- trunk/net/rds/ib_recv.c | 9 +- trunk/net/sched/sch_htb.c | 2 +- trunk/net/sunrpc/auth_gss/auth_gss.c | 17 +- trunk/net/sunrpc/backchannel_rqst.c | 9 +- trunk/net/sunrpc/bc_svc.c | 2 +- trunk/net/sunrpc/cache.c | 4 +- trunk/net/sunrpc/clnt.c | 48 +- trunk/net/sunrpc/rpc_pipe.c | 9 +- trunk/net/sunrpc/rpcb_clnt.c | 6 +- trunk/net/sunrpc/sched.c | 71 +- trunk/net/sunrpc/svc.c | 20 +- trunk/net/sunrpc/svc_xprt.c | 11 +- trunk/net/sunrpc/svcsock.c | 104 +- trunk/net/sunrpc/xdr.c | 5 +- trunk/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 10 +- trunk/net/sunrpc/xprtrdma/svc_rdma_sendto.c | 4 +- trunk/net/sunrpc/xprtsock.c | 19 +- trunk/net/wireless/reg.c | 7 - trunk/net/wireless/sysfs.c | 4 - trunk/scripts/Makefile.modsign | 32 + trunk/scripts/checkpatch.pl | 150 +- .../scripts/coccinelle/api/d_find_alias.cocci | 80 + trunk/scripts/coccinelle/misc/warn.cocci | 109 + trunk/scripts/config | 1 - trunk/scripts/pnmtologo.c | 7 + trunk/scripts/tags.sh | 57 +- trunk/security/capability.c | 6 + trunk/security/commoncap.c | 25 +- trunk/security/integrity/ima/ima.h | 2 +- trunk/security/integrity/ima/ima_api.c | 4 +- trunk/security/integrity/ima/ima_main.c | 21 + trunk/security/integrity/ima/ima_policy.c | 3 + trunk/security/keys/key.c | 6 +- trunk/security/keys/keyctl.c | 15 +- trunk/security/keys/keyring.c | 10 +- trunk/security/keys/process_keys.c | 94 +- trunk/security/keys/request_key.c | 21 +- trunk/security/security.c | 10 + trunk/security/smack/Kconfig | 6 +- trunk/security/smack/smackfs.c | 17 + trunk/security/yama/yama_lsm.c | 100 +- trunk/sound/Kconfig | 3 - trunk/sound/pci/hda/hda_intel.c | 4 +- trunk/sound/pci/hda/patch_hdmi.c | 46 +- trunk/sound/pci/hda/patch_realtek.c | 5 +- trunk/sound/pci/hda/patch_sigmatel.c | 2 +- trunk/sound/soc/codecs/cs42l73.c | 116 +- trunk/sound/soc/codecs/sigmadsp.c | 2 +- trunk/sound/soc/codecs/tpa6130a2.c | 23 +- trunk/sound/soc/soc-compress.c | 2 +- trunk/sound/soc/soc-core.c | 10 +- trunk/sound/soc/soc-pcm.c | 12 +- trunk/sound/sound_core.c | 3 +- trunk/sound/usb/midi.c | 4 + trunk/sound/usb/quirks-table.h | 123 + trunk/sound/usb/quirks.c | 91 + trunk/sound/usb/usbaudio.h | 1 + trunk/tools/lguest/lguest.c | 84 +- trunk/tools/power/x86/turbostat/Makefile | 21 +- trunk/tools/power/x86/turbostat/turbostat.8 | 103 +- trunk/tools/power/x86/turbostat/turbostat.c | 677 +- .../power/x86/x86_energy_perf_policy/Makefile | 6 +- .../x86_energy_perf_policy.c | 2 +- .../testing/selftests/breakpoints/Makefile | 2 +- .../testing/selftests/cpu-hotplug/Makefile | 2 +- trunk/tools/testing/selftests/kcmp/Makefile | 6 +- .../tools/testing/selftests/kcmp/kcmp_test.c | 6 +- .../testing/selftests/memory-hotplug/Makefile | 2 +- trunk/tools/testing/selftests/mqueue/Makefile | 4 +- trunk/tools/testing/selftests/vm/Makefile | 2 +- trunk/tools/virtio/virtio_test.c | 4 +- 3215 files changed, 163120 insertions(+), 69122 deletions(-) delete mode 100644 trunk/Documentation/ABI/testing/sysfs-devices-node create mode 100644 trunk/Documentation/acpi/initrd_table_override.txt create mode 100644 trunk/Documentation/devicetree/bindings/arm/altera/socfpga-reset.txt create mode 100644 trunk/Documentation/devicetree/bindings/arm/altera/socfpga-system.txt create mode 100644 trunk/Documentation/devicetree/bindings/arm/armada-370-xp-pmsu.txt create mode 100644 trunk/Documentation/devicetree/bindings/arm/coherency-fabric.txt create mode 100644 trunk/Documentation/devicetree/bindings/arm/spear/shirq.txt create mode 100644 trunk/Documentation/devicetree/bindings/clock/mvebu-core-clock.txt create mode 100644 trunk/Documentation/devicetree/bindings/clock/mvebu-cpu-clock.txt create mode 100644 trunk/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt create mode 100644 trunk/Documentation/devicetree/bindings/dma/mv-xor.txt create mode 100644 trunk/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt create mode 100644 trunk/Documentation/devicetree/bindings/i2c/i2c-cbus-gpio.txt create mode 100644 trunk/Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/pwm-beeper.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/stmpe-keypad.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/tca8418_keypad.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/touchscreen/mms114.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/touchscreen/stmpe.txt create mode 100644 trunk/Documentation/devicetree/bindings/mfd/stmpe.txt create mode 100644 trunk/Documentation/devicetree/bindings/mtd/denali-nand.txt create mode 100644 trunk/Documentation/devicetree/bindings/mtd/flctl-nand.txt create mode 100644 trunk/Documentation/devicetree/bindings/mtd/m25p80.txt create mode 100644 trunk/Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt create mode 100644 trunk/Documentation/devicetree/bindings/net/marvell-orion-mdio.txt create mode 100644 trunk/Documentation/devicetree/bindings/powerpc/fsl/raideng.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/spear-pwm.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt create mode 100644 trunk/Documentation/devicetree/bindings/rtc/imxdi-rtc.txt create mode 100644 trunk/Documentation/devicetree/bindings/rtc/rtc-omap.txt create mode 100644 trunk/Documentation/devicetree/bindings/spi/spi_atmel.txt create mode 100644 trunk/Documentation/devicetree/bindings/video/exynos_dp.txt create mode 100644 trunk/Documentation/devicetree/bindings/video/ssd1307fb.txt create mode 100644 trunk/Documentation/devicetree/bindings/watchdog/davinci-wdt.txt create mode 100644 trunk/Documentation/filesystems/efivarfs.txt create mode 100644 trunk/Documentation/filesystems/f2fs.txt create mode 100644 trunk/Documentation/xtensa/atomctl.txt create mode 100644 trunk/arch/alpha/include/uapi/asm/a.out.h rename trunk/arch/alpha/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/byteorder.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/compiler.h create mode 100644 trunk/arch/alpha/include/uapi/asm/console.h rename trunk/arch/alpha/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/fcntl.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/fpu.h rename trunk/arch/alpha/include/{ => uapi}/asm/gentrap.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/kvm_para.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/msgbuf.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/pal.h create mode 100644 trunk/arch/alpha/include/uapi/asm/param.h rename trunk/arch/alpha/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/ptrace.h rename trunk/arch/alpha/include/{ => uapi}/asm/reg.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/regdef.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/sembuf.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/setup.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/signal.h create mode 100644 trunk/arch/alpha/include/uapi/asm/socket.h rename trunk/arch/alpha/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/sysinfo.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/termbits.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/termios.h create mode 100644 trunk/arch/alpha/include/uapi/asm/types.h create mode 100644 trunk/arch/alpha/include/uapi/asm/unistd.h create mode 100644 trunk/arch/arm/boot/dts/armada-370-mirabox.dts create mode 100644 trunk/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts create mode 100644 trunk/arch/arm/boot/dts/spear320-hmi.dts rename trunk/arch/arm/boot/dts/{sun4i-cubieboard.dts => sun4i-a10-cubieboard.dts} (87%) rename trunk/arch/arm/boot/dts/{sun4i.dtsi => sun4i-a10.dtsi} (100%) rename trunk/arch/arm/boot/dts/{sun5i-olinuxino.dts => sun5i-a13-olinuxino.dts} (86%) rename trunk/arch/arm/boot/dts/{sun5i.dtsi => sun5i-a13.dtsi} (100%) rename trunk/arch/arm/{plat-mxc => mach-imx}/devices/platform-mx2-emma.c (94%) create mode 100644 trunk/arch/arm/mach-mvebu/coherency.c create mode 100644 trunk/arch/arm/mach-mvebu/coherency.h create mode 100644 trunk/arch/arm/mach-mvebu/coherency_ll.S create mode 100644 trunk/arch/arm/mach-mvebu/headsmp.S create mode 100644 trunk/arch/arm/mach-mvebu/hotplug.c create mode 100644 trunk/arch/arm/mach-mvebu/platsmp.c create mode 100644 trunk/arch/arm/mach-mvebu/pmsu.c create mode 100644 trunk/arch/arm/mach-mvebu/pmsu.h delete mode 100644 trunk/arch/arm/mach-nomadik/include/mach/fsmc.h create mode 100644 trunk/arch/arm/mach-socfpga/core.h create mode 100644 trunk/arch/arm/mach-socfpga/headsmp.S create mode 100644 trunk/arch/arm/mach-socfpga/platsmp.c delete mode 100644 trunk/arch/arm/plat-omap/debug-devices.c delete mode 100644 trunk/arch/arm/plat-omap/include/plat/debug-devices.h delete mode 100644 trunk/arch/arm/plat-omap/include/plat/vram.h delete mode 100644 trunk/arch/arm/plat-spear/shirq.c create mode 100644 trunk/arch/blackfin/include/uapi/asm/bfin_sport.h rename trunk/arch/blackfin/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/cachectl.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/fcntl.h (100%) create mode 100644 trunk/arch/blackfin/include/uapi/asm/fixed_code.h rename trunk/arch/blackfin/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/blackfin/include/uapi/asm/ptrace.h rename trunk/arch/blackfin/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/siginfo.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/signal.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/swab.h (100%) create mode 100644 trunk/arch/blackfin/include/uapi/asm/unistd.h delete mode 100644 trunk/arch/c6x/include/asm/mmu.h rename trunk/arch/cris/include/{ => uapi}/arch-v10/arch/sv_addr.agh (100%) rename trunk/arch/cris/include/{ => uapi}/arch-v10/arch/sv_addr_ag.h (100%) rename trunk/arch/cris/include/{ => uapi}/arch-v10/arch/svinto.h (100%) rename trunk/arch/cris/include/{ => uapi}/arch-v10/arch/user.h (100%) create mode 100644 trunk/arch/cris/include/uapi/arch-v32/arch/cryptocop.h rename trunk/arch/cris/include/{ => uapi}/arch-v32/arch/user.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/ethernet.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/etraxgpio.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/cris/include/uapi/asm/ptrace.h rename trunk/arch/cris/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/rs485.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/sembuf.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/setup.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/cris/include/uapi/asm/signal.h rename trunk/arch/cris/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/statfs.h (100%) create mode 100644 trunk/arch/cris/include/uapi/asm/swab.h rename trunk/arch/cris/include/{ => uapi}/asm/sync_serial.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/termbits.h (100%) create mode 100644 trunk/arch/cris/include/uapi/asm/termios.h create mode 100644 trunk/arch/cris/include/uapi/asm/types.h create mode 100644 trunk/arch/cris/include/uapi/asm/unistd.h delete mode 100644 trunk/arch/h8300/include/asm/mmu.h rename trunk/arch/h8300/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/{blackfin/include => h8300/include/uapi}/asm/kvm_para.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/msgbuf.h (100%) create mode 100644 trunk/arch/h8300/include/uapi/asm/param.h rename trunk/arch/h8300/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/h8300/include/uapi/asm/ptrace.h rename trunk/arch/h8300/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/sembuf.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/setup.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/h8300/include/uapi/asm/signal.h rename trunk/arch/h8300/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/termbits.h (100%) create mode 100644 trunk/arch/h8300/include/uapi/asm/termios.h create mode 100644 trunk/arch/h8300/include/uapi/asm/types.h create mode 100644 trunk/arch/h8300/include/uapi/asm/unistd.h rename trunk/arch/m32r/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/m32r/include/uapi/asm/ptrace.h rename trunk/arch/m32r/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/sembuf.h (100%) create mode 100644 trunk/arch/m32r/include/uapi/asm/setup.h rename trunk/arch/m32r/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/m32r/include/uapi/asm/signal.h rename trunk/arch/m32r/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/termbits.h (100%) create mode 100644 trunk/arch/m32r/include/uapi/asm/termios.h create mode 100644 trunk/arch/m32r/include/uapi/asm/types.h create mode 100644 trunk/arch/m32r/include/uapi/asm/unistd.h delete mode 100644 trunk/arch/m68k/include/asm/m5249sim.h create mode 100644 trunk/arch/m68k/platform/68000/Makefile rename trunk/arch/m68k/platform/{68VZ328/bootlogo.h => 68000/bootlogo-vz.h} (100%) rename trunk/arch/m68k/platform/{68328 => 68000}/bootlogo.h (100%) rename trunk/arch/m68k/platform/{68328 => 68000}/entry.S (100%) create mode 100644 trunk/arch/m68k/platform/68000/head.S rename trunk/arch/m68k/platform/{68328 => 68000}/ints.c (98%) rename trunk/arch/m68k/platform/{68328/config.c => 68000/m68328.c} (97%) rename trunk/arch/m68k/platform/{68EZ328/config.c => 68000/m68EZ328.c} (97%) rename trunk/arch/m68k/platform/{68VZ328/config.c => 68000/m68VZ328.c} (98%) rename trunk/arch/m68k/platform/{68328 => 68000}/romvec.S (94%) rename trunk/arch/m68k/platform/{68328 => 68000}/timers.c (98%) delete mode 100644 trunk/arch/m68k/platform/68328/Makefile delete mode 100644 trunk/arch/m68k/platform/68328/head-de2.S delete mode 100644 trunk/arch/m68k/platform/68328/head-pilot.S delete mode 100644 trunk/arch/m68k/platform/68328/head-ram.S delete mode 100644 trunk/arch/m68k/platform/68328/head-rom.S delete mode 100644 trunk/arch/m68k/platform/68EZ328/Makefile delete mode 100644 trunk/arch/m68k/platform/68VZ328/Makefile rename trunk/arch/microblaze/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/byteorder.h (100%) create mode 100644 trunk/arch/microblaze/include/uapi/asm/elf.h rename trunk/arch/microblaze/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/{h8300/include => microblaze/include/uapi}/asm/kvm_para.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/microblaze/include/uapi/asm/ptrace.h rename trunk/arch/microblaze/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/sembuf.h (100%) create mode 100644 trunk/arch/microblaze/include/uapi/asm/setup.h rename trunk/arch/microblaze/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/siginfo.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/signal.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/termbits.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/termios.h (100%) rename trunk/arch/microblaze/include/{ => uapi}/asm/types.h (100%) create mode 100644 trunk/arch/microblaze/include/uapi/asm/unistd.h delete mode 100644 trunk/arch/mips/bcm47xx/gpio.c create mode 100644 trunk/arch/mips/bcm63xx/nvram.c create mode 100644 trunk/arch/mips/bcm63xx/reset.c create mode 100644 trunk/arch/mips/configs/ath79_defconfig delete mode 100644 trunk/arch/mips/configs/yosemite_defconfig create mode 100644 trunk/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h create mode 100644 trunk/arch/mips/include/asm/mach-bcm63xx/bcm63xx_reset.h create mode 100644 trunk/arch/mips/include/asm/mach-netlogic/multi-node.h delete mode 100644 trunk/arch/mips/include/asm/mach-yosemite/cpu-feature-overrides.h delete mode 100644 trunk/arch/mips/include/asm/mach-yosemite/war.h create mode 100644 trunk/arch/mips/include/asm/netlogic/xlr/fmn.h create mode 100644 trunk/arch/mips/include/asm/octeon/cvmx-lmcx-defs.h delete mode 100644 trunk/arch/mips/include/asm/smvp.h delete mode 100644 trunk/arch/mips/include/asm/titan_dep.h create mode 100644 trunk/arch/mips/kernel/crash.c create mode 100644 trunk/arch/mips/kernel/crash_dump.c delete mode 100644 trunk/arch/mips/kernel/irq-rm9000.c create mode 100644 trunk/arch/mips/lantiq/xway/xrx200_phy_fw.c create mode 100644 trunk/arch/mips/netlogic/xlr/fmn-config.c create mode 100644 trunk/arch/mips/netlogic/xlr/fmn.c delete mode 100644 trunk/arch/mips/oprofile/op_model_rm9000.c delete mode 100644 trunk/arch/mips/pci/fixup-yosemite.c delete mode 100644 trunk/arch/mips/pci/ops-titan-ht.c delete mode 100644 trunk/arch/mips/pci/ops-titan.c delete mode 100644 trunk/arch/mips/pci/pci-yosemite.c delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/Makefile delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/ht-irq.c delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/ht.c delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/irq.c delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/prom.c delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/py-console.c delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/setup.c delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/setup.h delete mode 100644 trunk/arch/mips/pmc-sierra/yosemite/smp.c delete mode 100644 trunk/arch/openrisc/include/uapi/asm/kvm_para.h create mode 100644 trunk/arch/powerpc/boot/dts/a3m071.dts create mode 100644 trunk/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi delete mode 100644 trunk/arch/powerpc/include/asm/pSeries_reconfig.h create mode 100644 trunk/arch/powerpc/include/asm/setup.h rename trunk/arch/powerpc/kernel/{cpu_setup_power7.S => cpu_setup_power.S} (80%) delete mode 100644 trunk/arch/powerpc/xmon/start.c create mode 100644 trunk/arch/s390/include/asm/pci_debug.h create mode 100644 trunk/arch/s390/pci/pci_debug.c delete mode 100644 trunk/arch/score/include/asm/kvm_para.h rename trunk/arch/score/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/{microblaze/include => score/include/uapi}/asm/kvm_para.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/score/include/uapi/asm/ptrace.h rename trunk/arch/score/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/sembuf.h (100%) create mode 100644 trunk/arch/score/include/uapi/asm/setup.h rename trunk/arch/score/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/siginfo.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/signal.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/termbits.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/termios.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/types.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/unistd.h (90%) create mode 100644 trunk/arch/x86/crypto/camellia-aesni-avx-asm_64.S create mode 100644 trunk/arch/x86/crypto/camellia_aesni_avx_glue.c rename trunk/arch/x86/crypto/{crc32c-intel.c => crc32c-intel_glue.c} (69%) create mode 100644 trunk/arch/x86/crypto/crc32c-pcl-intel-asm_64.S create mode 100644 trunk/arch/x86/crypto/glue_helper-asm-avx.S create mode 100644 trunk/arch/x86/include/asm/crypto/camellia.h rename trunk/arch/x86/include/{ => uapi}/asm/a.out.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/bitsperlong.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/boot.h rename trunk/arch/x86/include/{ => uapi}/asm/bootparam.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/byteorder.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/debugreg.h create mode 100644 trunk/arch/x86/include/uapi/asm/e820.h rename trunk/arch/x86/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/fcntl.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/hw_breakpoint.h rename trunk/arch/x86/include/{ => uapi}/asm/hyperv.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/ipcbuf.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/ist.h rename trunk/arch/x86/include/{ => uapi}/asm/kvm.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/kvm_para.h rename trunk/arch/x86/include/{ => uapi}/asm/ldt.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/mce.h rename trunk/arch/x86/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/msr-index.h (93%) create mode 100644 trunk/arch/x86/include/uapi/asm/msr.h create mode 100644 trunk/arch/x86/include/uapi/asm/mtrr.h rename trunk/arch/x86/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/perf_regs.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/poll.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/posix_types.h rename trunk/arch/x86/include/{ => uapi}/asm/posix_types_32.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/posix_types_64.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/posix_types_x32.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/prctl.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/processor-flags.h rename trunk/arch/x86/include/{ => uapi}/asm/ptrace-abi.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/ptrace.h rename trunk/arch/x86/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/sembuf.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/setup.h rename trunk/arch/x86/include/{ => uapi}/asm/shmbuf.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/sigcontext.h rename trunk/arch/x86/include/{ => uapi}/asm/sigcontext32.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/signal.h rename trunk/arch/x86/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/statfs.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/svm.h rename trunk/arch/x86/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/termbits.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/termios.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/types.h (100%) rename trunk/arch/x86/include/{ => uapi}/asm/ucontext.h (100%) create mode 100644 trunk/arch/x86/include/uapi/asm/unistd.h create mode 100644 trunk/arch/x86/include/uapi/asm/vm86.h create mode 100644 trunk/arch/x86/include/uapi/asm/vmx.h create mode 100644 trunk/arch/x86/include/uapi/asm/vsyscall.h create mode 100644 trunk/arch/xtensa/boot/boot-uboot/Makefile create mode 100644 trunk/arch/xtensa/boot/dts/lx60.dts create mode 100644 trunk/arch/xtensa/boot/dts/ml605.dts create mode 100644 trunk/arch/xtensa/boot/dts/xtfpga-flash-16m.dtsi create mode 100644 trunk/arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi create mode 100644 trunk/arch/xtensa/boot/dts/xtfpga.dtsi create mode 100644 trunk/arch/xtensa/include/asm/initialize_mmu.h delete mode 100644 trunk/arch/xtensa/include/asm/nommu.h create mode 100644 trunk/arch/xtensa/include/asm/prom.h create mode 100644 trunk/arch/xtensa/include/asm/traps.h create mode 100644 trunk/arch/xtensa/platforms/xtfpga/Makefile create mode 100644 trunk/arch/xtensa/platforms/xtfpga/include/platform/hardware.h create mode 100644 trunk/arch/xtensa/platforms/xtfpga/include/platform/lcd.h create mode 100644 trunk/arch/xtensa/platforms/xtfpga/include/platform/serial.h create mode 100644 trunk/arch/xtensa/platforms/xtfpga/lcd.c create mode 100644 trunk/arch/xtensa/platforms/xtfpga/setup.c create mode 100644 trunk/crypto/cast_common.c mode change 100755 => 100644 trunk/drivers/ata/sata_dwc_460ex.c create mode 100644 trunk/drivers/bcma/driver_gpio.c create mode 100644 trunk/drivers/block/drbd/drbd_interval.c create mode 100644 trunk/drivers/block/drbd/drbd_interval.h create mode 100644 trunk/drivers/block/drbd/drbd_nla.c create mode 100644 trunk/drivers/block/drbd/drbd_nla.h create mode 100644 trunk/drivers/block/drbd/drbd_state.c create mode 100644 trunk/drivers/block/drbd/drbd_state.h create mode 100644 trunk/drivers/clk/mvebu/Kconfig create mode 100644 trunk/drivers/clk/mvebu/Makefile create mode 100644 trunk/drivers/clk/mvebu/clk-core.c create mode 100644 trunk/drivers/clk/mvebu/clk-core.h create mode 100644 trunk/drivers/clk/mvebu/clk-cpu.c create mode 100644 trunk/drivers/clk/mvebu/clk-cpu.h create mode 100644 trunk/drivers/clk/mvebu/clk-gating-ctrl.c create mode 100644 trunk/drivers/clk/mvebu/clk-gating-ctrl.h create mode 100644 trunk/drivers/clk/mvebu/clk.c create mode 100644 trunk/drivers/edac/octeon_edac-l2c.c create mode 100644 trunk/drivers/edac/octeon_edac-lmc.c create mode 100644 trunk/drivers/edac/octeon_edac-pc.c create mode 100644 trunk/drivers/edac/octeon_edac-pci.c create mode 100644 trunk/drivers/gpio/gpio-viperboard.c rename trunk/drivers/gpu/drm/{drm_dp_i2c_helper.c => drm_dp_helper.c} (58%) create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_fimc.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_fimc.h create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.h create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_iommu.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_iommu.h create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.h create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_rotator.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_rotator.h create mode 100644 trunk/drivers/gpu/drm/exynos/regs-fimc.h create mode 100644 trunk/drivers/gpu/drm/exynos/regs-gsc.h create mode 100644 trunk/drivers/gpu/drm/exynos/regs-rotator.h create mode 100644 trunk/drivers/gpu/drm/nouveau/core/core/falcon.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/bsp/nvc0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/bsp/nve0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdanva3.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdanvd0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdminv84.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdminva3.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdminvd0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nv50.h create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nv84.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nv94.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nva0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nva3.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nve0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/sornv50.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/ppp/nvc0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/vp/nvc0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/vp/nve0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/include/core/falcon.h create mode 100644 trunk/drivers/gpu/drm/nouveau/core/include/subdev/bios/disp.h create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/bios/disp.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv1a.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv25.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv35.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv36.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv41.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv44.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv46.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv47.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv49.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv4e.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nouveau_hdmi.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_crtc.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_cursor.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_dac.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_evo.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_evo.h delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_sor.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nvd0_display.c create mode 100644 trunk/drivers/gpu/drm/tegra/Kconfig create mode 100644 trunk/drivers/gpu/drm/tegra/Makefile create mode 100644 trunk/drivers/gpu/drm/tegra/dc.c create mode 100644 trunk/drivers/gpu/drm/tegra/dc.h create mode 100644 trunk/drivers/gpu/drm/tegra/drm.c create mode 100644 trunk/drivers/gpu/drm/tegra/drm.h create mode 100644 trunk/drivers/gpu/drm/tegra/fb.c create mode 100644 trunk/drivers/gpu/drm/tegra/hdmi.c create mode 100644 trunk/drivers/gpu/drm/tegra/hdmi.h create mode 100644 trunk/drivers/gpu/drm/tegra/host1x.c create mode 100644 trunk/drivers/gpu/drm/tegra/output.c create mode 100644 trunk/drivers/gpu/drm/tegra/rgb.c create mode 100644 trunk/drivers/gpu/drm/vmwgfx/svga3d_surfacedefs.h create mode 100644 trunk/drivers/gpu/drm/vmwgfx/vmwgfx_context.c create mode 100644 trunk/drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h create mode 100644 trunk/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c create mode 100644 trunk/drivers/i2c/busses/i2c-cbus-gpio.c create mode 100644 trunk/drivers/i2c/busses/i2c-viperboard.c create mode 100644 trunk/drivers/iio/adc/ti_am335x_adc.c create mode 100644 trunk/drivers/iio/adc/viperboard_adc.c create mode 100644 trunk/drivers/input/misc/da9055_onkey.c create mode 100644 trunk/drivers/input/misc/retu-pwrbutton.c create mode 100644 trunk/drivers/input/serio/arc_ps2.c delete mode 100644 trunk/drivers/input/touchscreen/h3600_ts_input.c create mode 100644 trunk/drivers/input/touchscreen/ti_am335x_tsc.c delete mode 100644 trunk/drivers/input/touchscreen/ti_tscadc.c create mode 100644 trunk/drivers/irqchip/spear-shirq.c create mode 100644 trunk/drivers/mfd/as3711.c create mode 100644 trunk/drivers/mfd/da9052-irq.c create mode 100644 trunk/drivers/mfd/retu-mfd.c create mode 100644 trunk/drivers/mfd/ti_am335x_tscadc.c delete mode 100644 trunk/drivers/mfd/tps65910-irq.c create mode 100644 trunk/drivers/mfd/tps80031.c delete mode 100644 trunk/drivers/mfd/twl6040-irq.c rename trunk/drivers/mfd/{twl6040-core.c => twl6040.c} (84%) create mode 100644 trunk/drivers/mfd/viperboard.c delete mode 100644 trunk/drivers/mtd/maps/fortunet.c create mode 100644 trunk/drivers/mtd/nand/bcm47xxnflash/Makefile create mode 100644 trunk/drivers/mtd/nand/bcm47xxnflash/bcm47xxnflash.h create mode 100644 trunk/drivers/mtd/nand/bcm47xxnflash/main.c create mode 100644 trunk/drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c create mode 100644 trunk/drivers/mtd/nand/denali_dt.c create mode 100644 trunk/drivers/mtd/nand/denali_pci.c delete mode 100644 trunk/drivers/mtd/nand/nomadik_nand.c create mode 100644 trunk/drivers/net/ethernet/marvell/mvmdio.c create mode 100644 trunk/drivers/net/ethernet/marvell/mvneta.c create mode 100644 trunk/drivers/pwm/pwm-spear.c create mode 100644 trunk/drivers/pwm/pwm-tipwmss.c create mode 100644 trunk/drivers/pwm/pwm-tipwmss.h create mode 100644 trunk/drivers/pwm/pwm-twl-led.c create mode 100644 trunk/drivers/pwm/pwm-twl.c delete mode 100644 trunk/drivers/pwm/pwm-twl6030.c create mode 100644 trunk/drivers/rtc/rtc-da9055.c create mode 100644 trunk/drivers/rtc/rtc-pcf8523.c create mode 100644 trunk/drivers/ssb/driver_gpio.c create mode 100644 trunk/drivers/video/omap2/dss/dispc-compat.c create mode 100644 trunk/drivers/video/omap2/dss/dispc-compat.h create mode 100644 trunk/drivers/video/omap2/dss/display-sysfs.c delete mode 100644 trunk/drivers/video/omap2/vram.c create mode 100644 trunk/drivers/video/ssd1307fb.c create mode 100644 trunk/drivers/watchdog/da9055_wdt.c create mode 100644 trunk/fs/btrfs/dev-replace.c create mode 100644 trunk/fs/btrfs/dev-replace.h create mode 100644 trunk/fs/btrfs/math.h create mode 100644 trunk/fs/ext4/extents_status.c create mode 100644 trunk/fs/ext4/extents_status.h create mode 100644 trunk/fs/ext4/inline.c create mode 100644 trunk/fs/f2fs/Kconfig create mode 100644 trunk/fs/f2fs/Makefile create mode 100644 trunk/fs/f2fs/acl.c create mode 100644 trunk/fs/f2fs/acl.h create mode 100644 trunk/fs/f2fs/checkpoint.c create mode 100644 trunk/fs/f2fs/data.c create mode 100644 trunk/fs/f2fs/debug.c create mode 100644 trunk/fs/f2fs/dir.c create mode 100644 trunk/fs/f2fs/f2fs.h create mode 100644 trunk/fs/f2fs/file.c create mode 100644 trunk/fs/f2fs/gc.c create mode 100644 trunk/fs/f2fs/gc.h create mode 100644 trunk/fs/f2fs/hash.c create mode 100644 trunk/fs/f2fs/inode.c create mode 100644 trunk/fs/f2fs/namei.c create mode 100644 trunk/fs/f2fs/node.c create mode 100644 trunk/fs/f2fs/node.h create mode 100644 trunk/fs/f2fs/recovery.c create mode 100644 trunk/fs/f2fs/segment.c create mode 100644 trunk/fs/f2fs/segment.h create mode 100644 trunk/fs/f2fs/super.c create mode 100644 trunk/fs/f2fs/xattr.c create mode 100644 trunk/fs/f2fs/xattr.h create mode 100644 trunk/fs/nfs/nfs4session.c create mode 100644 trunk/fs/nfs/nfs4session.h delete mode 100644 trunk/fs/nfsd/fault_inject.h create mode 100644 trunk/fs/notify/fdinfo.c create mode 100644 trunk/fs/notify/fdinfo.h create mode 100644 trunk/fs/proc/self.c create mode 100644 trunk/include/crypto/cast_common.h create mode 100644 trunk/include/linux/clk/mvebu.h create mode 100644 trunk/include/linux/drbd_genl.h create mode 100644 trunk/include/linux/drbd_genl_api.h delete mode 100644 trunk/include/linux/drbd_nl.h delete mode 100644 trunk/include/linux/drbd_tag_magic.h create mode 100644 trunk/include/linux/earlycpio.h create mode 100644 trunk/include/linux/f2fs_fs.h create mode 100644 trunk/include/linux/genl_magic_func.h create mode 100644 trunk/include/linux/genl_magic_struct.h create mode 100644 trunk/include/linux/input/ti_am335x_tsc.h delete mode 100644 trunk/include/linux/input/ti_tscadc.h rename trunk/{arch/arm/plat-spear/include/plat/shirq.h => include/linux/irqchip/spear-shirq.h} (60%) create mode 100644 trunk/include/linux/mfd/as3711.h create mode 100644 trunk/include/linux/mfd/retu.h create mode 100644 trunk/include/linux/mfd/ti_am335x_tscadc.h create mode 100644 trunk/include/linux/mfd/tps80031.h create mode 100644 trunk/include/linux/mfd/viperboard.h delete mode 100644 trunk/include/linux/mtd/gpmi-nand.h create mode 100644 trunk/include/linux/platform_data/i2c-cbus-gpio.h delete mode 100644 trunk/include/linux/platform_data/mtd-nomadik-nand.h rename trunk/{arch/arm/plat-omap/include/plat/omap-serial.h => include/linux/platform_data/serial-omap.h} (100%) create mode 100644 trunk/include/linux/platform_data/ti_am335x_adc.h create mode 100644 trunk/include/trace/events/migrate.h create mode 100644 trunk/include/uapi/linux/module.h create mode 100644 trunk/kernel/modsign_certificate.S create mode 100644 trunk/lib/earlycpio.c rename trunk/lib/{pSeries-reconfig-notifier-error-inject.c => of-reconfig-notifier-error-inject.c} (51%) create mode 100644 trunk/lib/percpu-rwsem.c create mode 100644 trunk/lib/raid6/avx2.c create mode 100644 trunk/lib/raid6/recov_avx2.c create mode 100644 trunk/scripts/Makefile.modsign create mode 100644 trunk/scripts/coccinelle/api/d_find_alias.cocci create mode 100644 trunk/scripts/coccinelle/misc/warn.cocci diff --git a/[refs] b/[refs] index b1f89c926141..7930d1fed441 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1310b955c804975651dca6c674ebfd1cb2b4c7ff +refs/heads/master: ac196f8c92948deb0fc9ae617f3a453c6d71fa69 diff --git a/trunk/.gitignore b/trunk/.gitignore index 92bd0e45dfa1..3b8b9b33be38 100644 --- a/trunk/.gitignore +++ b/trunk/.gitignore @@ -60,7 +60,6 @@ modules.builtin # Generated include files # include/config -include/linux/version.h include/generated arch/*/include/generated diff --git a/trunk/Documentation/00-INDEX b/trunk/Documentation/00-INDEX index ceb1ff735469..8afe64fb2009 100644 --- a/trunk/Documentation/00-INDEX +++ b/trunk/Documentation/00-INDEX @@ -136,8 +136,6 @@ fault-injection/ - dir with docs about the fault injection capabilities infrastructure. fb/ - directory with info on the frame buffer graphics abstraction layer. -feature-removal-schedule.txt - - list of files and features that are going to be removed. filesystems/ - info on the vfs and the various filesystems that Linux supports. firmware_class/ diff --git a/trunk/Documentation/ABI/README b/trunk/Documentation/ABI/README index 9feaf16f1617..10069828568b 100644 --- a/trunk/Documentation/ABI/README +++ b/trunk/Documentation/ABI/README @@ -36,9 +36,6 @@ The different levels of stability are: the kernel, but are marked to be removed at some later point in time. The description of the interface will document the reason why it is obsolete and when it can be expected to be removed. - The file Documentation/feature-removal-schedule.txt may describe - some of these interfaces, giving a schedule for when they will - be removed. removed/ This directory contains a list of the old interfaces that have diff --git a/trunk/Documentation/ABI/stable/sysfs-devices-node b/trunk/Documentation/ABI/stable/sysfs-devices-node index 49b82cad7003..ce259c13c36a 100644 --- a/trunk/Documentation/ABI/stable/sysfs-devices-node +++ b/trunk/Documentation/ABI/stable/sysfs-devices-node @@ -1,7 +1,101 @@ +What: /sys/devices/system/node/possible +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that could be possibly become online at some point. + +What: /sys/devices/system/node/online +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that are online. + +What: /sys/devices/system/node/has_normal_memory +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that have regular memory. + +What: /sys/devices/system/node/has_cpu +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that have one or more CPUs. + +What: /sys/devices/system/node/has_high_memory +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that have regular or high memory. + Depends on CONFIG_HIGHMEM. + What: /sys/devices/system/node/nodeX Date: October 2002 Contact: Linux Memory Management list Description: When CONFIG_NUMA is enabled, this is a directory containing information on node X such as what CPUs are local to the - node. + node. Each file is detailed next. + +What: /sys/devices/system/node/nodeX/cpumap +Date: October 2002 +Contact: Linux Memory Management list +Description: + The node's cpumap. + +What: /sys/devices/system/node/nodeX/cpulist +Date: October 2002 +Contact: Linux Memory Management list +Description: + The CPUs associated to the node. + +What: /sys/devices/system/node/nodeX/meminfo +Date: October 2002 +Contact: Linux Memory Management list +Description: + Provides information about the node's distribution and memory + utilization. Similar to /proc/meminfo, see Documentation/filesystems/proc.txt + +What: /sys/devices/system/node/nodeX/numastat +Date: October 2002 +Contact: Linux Memory Management list +Description: + The node's hit/miss statistics, in units of pages. + See Documentation/numastat.txt + +What: /sys/devices/system/node/nodeX/distance +Date: October 2002 +Contact: Linux Memory Management list +Description: + Distance between the node and all the other nodes + in the system. + +What: /sys/devices/system/node/nodeX/vmstat +Date: October 2002 +Contact: Linux Memory Management list +Description: + The node's zoned virtual memory statistics. + This is a superset of numastat. + +What: /sys/devices/system/node/nodeX/compact +Date: February 2010 +Contact: Mel Gorman +Description: + When this file is written to, all memory within that node + will be compacted. When it completes, memory will be freed + into blocks which have as many contiguous pages as possible + +What: /sys/devices/system/node/nodeX/scan_unevictable_pages +Date: October 2008 +Contact: Lee Schermerhorn +Description: + When set, it triggers scanning the node's unevictable lists + and move any pages that have become evictable onto the respective + zone's inactive list. See mm/vmscan.c + +What: /sys/devices/system/node/nodeX/hugepages/hugepages-/ +Date: December 2009 +Contact: Lee Schermerhorn +Description: + The node's huge page size control/query attributes. + See Documentation/vm/hugetlbpage.txt \ No newline at end of file diff --git a/trunk/Documentation/ABI/testing/ima_policy b/trunk/Documentation/ABI/testing/ima_policy index 986946613542..ec0a38ef3145 100644 --- a/trunk/Documentation/ABI/testing/ima_policy +++ b/trunk/Documentation/ABI/testing/ima_policy @@ -23,7 +23,7 @@ Description: lsm: [[subj_user=] [subj_role=] [subj_type=] [obj_user=] [obj_role=] [obj_type=]] - base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK] + base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK][MODULE_CHECK] mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC] fsmagic:= hex value uid:= decimal value @@ -53,6 +53,7 @@ Description: measure func=BPRM_CHECK measure func=FILE_MMAP mask=MAY_EXEC measure func=FILE_CHECK mask=MAY_READ uid=0 + measure func=MODULE_CHECK uid=0 appraise fowner=0 The default policy measures all executables in bprm_check, diff --git a/trunk/Documentation/ABI/testing/sysfs-bus-rbd b/trunk/Documentation/ABI/testing/sysfs-bus-rbd index 1cf2adf46b11..cd9213ccf3dc 100644 --- a/trunk/Documentation/ABI/testing/sysfs-bus-rbd +++ b/trunk/Documentation/ABI/testing/sysfs-bus-rbd @@ -70,6 +70,10 @@ snap_* A directory per each snapshot +parent + + Information identifying the pool, image, and snapshot id for + the parent image in a layered rbd image (format 2 only). Entries under /sys/bus/rbd/devices//snap_ ------------------------------------------------------------- diff --git a/trunk/Documentation/ABI/testing/sysfs-devices-node b/trunk/Documentation/ABI/testing/sysfs-devices-node deleted file mode 100644 index 453a210c3ceb..000000000000 --- a/trunk/Documentation/ABI/testing/sysfs-devices-node +++ /dev/null @@ -1,7 +0,0 @@ -What: /sys/devices/system/node/nodeX/compact -Date: February 2010 -Contact: Mel Gorman -Description: - When this file is written to, all memory within that node - will be compacted. When it completes, memory will be freed - into blocks which have as many contiguous pages as possible diff --git a/trunk/Documentation/DMA-API-HOWTO.txt b/trunk/Documentation/DMA-API-HOWTO.txt index a0b6250add79..4a4fb295ceef 100644 --- a/trunk/Documentation/DMA-API-HOWTO.txt +++ b/trunk/Documentation/DMA-API-HOWTO.txt @@ -468,11 +468,46 @@ To map a single region, you do: size_t size = buffer->len; dma_handle = dma_map_single(dev, addr, size, direction); + if (dma_mapping_error(dma_handle)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling; + } and to unmap it: dma_unmap_single(dev, dma_handle, size, direction); +You should call dma_mapping_error() as dma_map_single() could fail and return +error. Not all dma implementations support dma_mapping_error() interface. +However, it is a good practice to call dma_mapping_error() interface, which +will invoke the generic mapping error check interface. Doing so will ensure +that the mapping code will work correctly on all dma implementations without +any dependency on the specifics of the underlying implementation. Using the +returned address without checking for errors could result in failures ranging +from panics to silent data corruption. Couple of example of incorrect ways to +check for errors that make assumptions about the underlying dma implementation +are as follows and these are applicable to dma_map_page() as well. + +Incorrect example 1: + dma_addr_t dma_handle; + + dma_handle = dma_map_single(dev, addr, size, direction); + if ((dma_handle & 0xffff != 0) || (dma_handle >= 0x1000000)) { + goto map_error; + } + +Incorrect example 2: + dma_addr_t dma_handle; + + dma_handle = dma_map_single(dev, addr, size, direction); + if (dma_handle == DMA_ERROR_CODE) { + goto map_error; + } + You should call dma_unmap_single when the DMA activity is finished, e.g. from the interrupt which told you that the DMA transfer is done. @@ -489,6 +524,14 @@ Specifically: size_t size = buffer->len; dma_handle = dma_map_page(dev, page, offset, size, direction); + if (dma_mapping_error(dma_handle)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling; + } ... @@ -496,6 +539,12 @@ Specifically: Here, "offset" means byte offset within the given page. +You should call dma_mapping_error() as dma_map_page() could fail and return +error as outlined under the dma_map_single() discussion. + +You should call dma_unmap_page when the DMA activity is finished, e.g. +from the interrupt which told you that the DMA transfer is done. + With scatterlists, you map a region gathered from several regions by: int i, count = dma_map_sg(dev, sglist, nents, direction); @@ -578,6 +627,14 @@ to use the dma_sync_*() interfaces. dma_addr_t mapping; mapping = dma_map_single(cp->dev, buffer, len, DMA_FROM_DEVICE); + if (dma_mapping_error(dma_handle)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling; + } cp->rx_buf = buffer; cp->rx_len = len; @@ -658,6 +715,75 @@ failure can be determined by: * delay and try again later or * reset driver. */ + goto map_error_handling; + } + +- unmap pages that are already mapped, when mapping error occurs in the middle + of a multiple page mapping attempt. These example are applicable to + dma_map_page() as well. + +Example 1: + dma_addr_t dma_handle1; + dma_addr_t dma_handle2; + + dma_handle1 = dma_map_single(dev, addr, size, direction); + if (dma_mapping_error(dev, dma_handle1)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling1; + } + dma_handle2 = dma_map_single(dev, addr, size, direction); + if (dma_mapping_error(dev, dma_handle2)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling2; + } + + ... + + map_error_handling2: + dma_unmap_single(dma_handle1); + map_error_handling1: + +Example 2: (if buffers are allocated a loop, unmap all mapped buffers when + mapping error is detected in the middle) + + dma_addr_t dma_addr; + dma_addr_t array[DMA_BUFFERS]; + int save_index = 0; + + for (i = 0; i < DMA_BUFFERS; i++) { + + ... + + dma_addr = dma_map_single(dev, addr, size, direction); + if (dma_mapping_error(dev, dma_addr)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling; + } + array[i].dma_addr = dma_addr; + save_index++; + } + + ... + + map_error_handling: + + for (i = 0; i < save_index; i++) { + + ... + + dma_unmap_single(array[i].dma_addr); } Networking drivers must call dev_kfree_skb to free the socket buffer diff --git a/trunk/Documentation/DMA-API.txt b/trunk/Documentation/DMA-API.txt index 66bd97a95f10..78a6c569d204 100644 --- a/trunk/Documentation/DMA-API.txt +++ b/trunk/Documentation/DMA-API.txt @@ -678,3 +678,15 @@ out of dma_debug_entries. These entries are preallocated at boot. The number of preallocated entries is defined per architecture. If it is too low for you boot with 'dma_debug_entries=' to overwrite the architectural default. + +void debug_dmap_mapping_error(struct device *dev, dma_addr_t dma_addr); + +dma-debug interface debug_dma_mapping_error() to debug drivers that fail +to check dma mapping errors on addresses returned by dma_map_single() and +dma_map_page() interfaces. This interface clears a flag set by +debug_dma_map_page() to indicate that dma_mapping_error() has been called by +the driver. When driver does unmap, debug_dma_unmap() checks the flag and if +this flag is still set, prints warning message that includes call trace that +leads up to the unmap. This interface can be called from dma_mapping_error() +routines to enable dma mapping error check debugging. + diff --git a/trunk/Documentation/DMA-attributes.txt b/trunk/Documentation/DMA-attributes.txt index f50309081ac7..e59480db9ee0 100644 --- a/trunk/Documentation/DMA-attributes.txt +++ b/trunk/Documentation/DMA-attributes.txt @@ -91,3 +91,12 @@ transferred to 'device' domain. This attribute can be also used for dma_unmap_{single,page,sg} functions family to force buffer to stay in device domain after releasing a mapping for it. Use this attribute with care! + +DMA_ATTR_FORCE_CONTIGUOUS +------------------------- + +By default DMA-mapping subsystem is allowed to assemble the buffer +allocated by dma_alloc_attrs() function from individual pages if it can +be mapped as contiguous chunk into device dma address space. By +specifing this attribute the allocated buffer is forced to be contiguous +also in physical memory. diff --git a/trunk/Documentation/DocBook/drm.tmpl b/trunk/Documentation/DocBook/drm.tmpl index b0300529ab13..4ee2304f82f9 100644 --- a/trunk/Documentation/DocBook/drm.tmpl +++ b/trunk/Documentation/DocBook/drm.tmpl @@ -1141,23 +1141,13 @@ int max_width, max_height; the page_flip operation will be called with a non-NULL event argument pointing to a drm_pending_vblank_event instance. Upon page - flip completion the driver must fill the - event::event - sequence, tv_sec - and tv_usec fields with the associated - vertical blanking count and timestamp, add the event to the - drm_file list of events to be signaled, and wake - up any waiting process. This can be performed with + flip completion the driver must call drm_send_vblank_event + to fill in the event and send to wake up any waiting processes. + This can be performed with event.sequence = drm_vblank_count_and_time(..., &now); - event->event.tv_sec = now.tv_sec; - event->event.tv_usec = now.tv_usec; - spin_lock_irqsave(&dev->event_lock, flags); - list_add_tail(&event->base.link, &event->base.file_priv->event_list); - wake_up_interruptible(&event->base.file_priv->event_wait); + ... + drm_send_vblank_event(dev, pipe, event); spin_unlock_irqrestore(&dev->event_lock, flags); ]]> @@ -1621,10 +1611,10 @@ void intel_crt_init(struct drm_device *dev) - + - Mid-layer Helper Functions + Mode Setting Helper Functions The CRTC, encoder and connector functions provided by the drivers implement the DRM API. They're called by the DRM core and ioctl handlers @@ -2106,6 +2096,21 @@ void intel_crt_init(struct drm_device *dev) + + Modeset Helper Functions Reference +!Edrivers/gpu/drm/drm_crtc_helper.c + + + fbdev Helper Functions Reference +!Pdrivers/gpu/drm/drm_fb_helper.c fbdev helpers +!Edrivers/gpu/drm/drm_fb_helper.c + + + Display Port Helper Functions Reference +!Pdrivers/gpu/drm/drm_dp_helper.c dp helpers +!Iinclude/drm/drm_dp_helper.h +!Edrivers/gpu/drm/drm_dp_helper.c + diff --git a/trunk/Documentation/DocBook/kernel-api.tmpl b/trunk/Documentation/DocBook/kernel-api.tmpl index 00687ee9d363..f75ab4c1b281 100644 --- a/trunk/Documentation/DocBook/kernel-api.tmpl +++ b/trunk/Documentation/DocBook/kernel-api.tmpl @@ -58,6 +58,9 @@ String Conversions !Elib/vsprintf.c +!Finclude/linux/kernel.h kstrtol +!Finclude/linux/kernel.h kstrtoul +!Elib/kstrtox.c String Manipulation setattr(). Locking information above applies to that call (i.e. is -inherited from ->setattr() - vmtruncate() is used when ATTR_SIZE had been -passed). See Documentation/filesystems/directory-locking for more detailed discussion of the locking scheme for directory operations. diff --git a/trunk/Documentation/filesystems/caching/backend-api.txt b/trunk/Documentation/filesystems/caching/backend-api.txt index 382d52cdaf2d..d78bab9622c6 100644 --- a/trunk/Documentation/filesystems/caching/backend-api.txt +++ b/trunk/Documentation/filesystems/caching/backend-api.txt @@ -308,6 +308,18 @@ performed on the denizens of the cache. These are held in a structure of type: obtained by calling object->cookie->def->get_aux()/get_attr(). + (*) Invalidate data object [mandatory]: + + int (*invalidate_object)(struct fscache_operation *op) + + This is called to invalidate a data object (as pointed to by op->object). + All the data stored for this object should be discarded and an + attr_changed operation should be performed. The caller will follow up + with an object update operation. + + fscache_op_complete() must be called on op before returning. + + (*) Discard object [mandatory]: void (*drop_object)(struct fscache_object *object) @@ -419,7 +431,10 @@ performed on the denizens of the cache. These are held in a structure of type: If an I/O error occurs, fscache_io_error() should be called and -ENOBUFS returned if possible or fscache_end_io() called with a suitable error - code.. + code. + + fscache_put_retrieval() should be called after a page or pages are dealt + with. This will complete the operation when all pages are dealt with. (*) Request pages be read from cache [mandatory]: @@ -526,6 +541,27 @@ FS-Cache provides some utilities that a cache backend may make use of: error value should be 0 if successful and an error otherwise. + (*) Record that one or more pages being retrieved or allocated have been dealt + with: + + void fscache_retrieval_complete(struct fscache_retrieval *op, + int n_pages); + + This is called to record the fact that one or more pages have been dealt + with and are no longer the concern of this operation. When the number of + pages remaining in the operation reaches 0, the operation will be + completed. + + + (*) Record operation completion: + + void fscache_op_complete(struct fscache_operation *op); + + This is called to record the completion of an operation. This deducts + this operation from the parent object's run state, potentially permitting + one or more pending operations to start running. + + (*) Set highest store limit: void fscache_set_store_limit(struct fscache_object *object, diff --git a/trunk/Documentation/filesystems/caching/netfs-api.txt b/trunk/Documentation/filesystems/caching/netfs-api.txt index 7cc6bf2871eb..97e6c0ecc5ef 100644 --- a/trunk/Documentation/filesystems/caching/netfs-api.txt +++ b/trunk/Documentation/filesystems/caching/netfs-api.txt @@ -35,8 +35,9 @@ This document contains the following sections: (12) Index and data file update (13) Miscellaneous cookie operations (14) Cookie unregistration - (15) Index and data file invalidation - (16) FS-Cache specific page flags. + (15) Index invalidation + (16) Data file invalidation + (17) FS-Cache specific page flags. ============================= @@ -767,13 +768,42 @@ the cookies for "child" indices, objects and pages have been relinquished first. -================================ -INDEX AND DATA FILE INVALIDATION -================================ +================== +INDEX INVALIDATION +================== + +There is no direct way to invalidate an index subtree. To do this, the caller +should relinquish and retire the cookie they have, and then acquire a new one. + + +====================== +DATA FILE INVALIDATION +====================== + +Sometimes it will be necessary to invalidate an object that contains data. +Typically this will be necessary when the server tells the netfs of a foreign +change - at which point the netfs has to throw away all the state it had for an +inode and reload from the server. + +To indicate that a cache object should be invalidated, the following function +can be called: + + void fscache_invalidate(struct fscache_cookie *cookie); + +This can be called with spinlocks held as it defers the work to a thread pool. +All extant storage, retrieval and attribute change ops at this point are +cancelled and discarded. Some future operations will be rejected until the +cache has had a chance to insert a barrier in the operations queue. After +that, operations will be queued again behind the invalidation operation. + +The invalidation operation will perform an attribute change operation and an +auxiliary data update operation as it is very likely these will have changed. + +Using the following function, the netfs can wait for the invalidation operation +to have reached a point at which it can start submitting ordinary operations +once again: -There is no direct way to invalidate an index subtree or a data file. To do -this, the caller should relinquish and retire the cookie they have, and then -acquire a new one. + void fscache_wait_on_invalidate(struct fscache_cookie *cookie); =========================== diff --git a/trunk/Documentation/filesystems/caching/object.txt b/trunk/Documentation/filesystems/caching/object.txt index 58313348da87..100ff41127e4 100644 --- a/trunk/Documentation/filesystems/caching/object.txt +++ b/trunk/Documentation/filesystems/caching/object.txt @@ -216,7 +216,14 @@ servicing netfs requests: The normal running state. In this state, requests the netfs makes will be passed on to the cache. - (6) State FSCACHE_OBJECT_UPDATING. + (6) State FSCACHE_OBJECT_INVALIDATING. + + The object is undergoing invalidation. When the state comes here, it + discards all pending read, write and attribute change operations as it is + going to clear out the cache entirely and reinitialise it. It will then + continue to the FSCACHE_OBJECT_UPDATING state. + + (7) State FSCACHE_OBJECT_UPDATING. The state machine comes here to update the object in the cache from the netfs's records. This involves updating the auxiliary data that is used @@ -225,13 +232,13 @@ servicing netfs requests: And there are terminal states in which an object cleans itself up, deallocates memory and potentially deletes stuff from disk: - (7) State FSCACHE_OBJECT_LC_DYING. + (8) State FSCACHE_OBJECT_LC_DYING. The object comes here if it is dying because of a lookup or creation error. This would be due to a disk error or system error of some sort. Temporary data is cleaned up, and the parent is released. - (8) State FSCACHE_OBJECT_DYING. + (9) State FSCACHE_OBJECT_DYING. The object comes here if it is dying due to an error, because its parent cookie has been relinquished by the netfs or because the cache is being @@ -241,27 +248,27 @@ memory and potentially deletes stuff from disk: can destroy themselves. This object waits for all its children to go away before advancing to the next state. - (9) State FSCACHE_OBJECT_ABORT_INIT. +(10) State FSCACHE_OBJECT_ABORT_INIT. The object comes to this state if it was waiting on its parent in FSCACHE_OBJECT_INIT, but its parent died. The object will destroy itself so that the parent may proceed from the FSCACHE_OBJECT_DYING state. -(10) State FSCACHE_OBJECT_RELEASING. -(11) State FSCACHE_OBJECT_RECYCLING. +(11) State FSCACHE_OBJECT_RELEASING. +(12) State FSCACHE_OBJECT_RECYCLING. The object comes to one of these two states when dying once it is rid of all its children, if it is dying because the netfs relinquished its cookie. In the first state, the cached data is expected to persist, and in the second it will be deleted. -(12) State FSCACHE_OBJECT_WITHDRAWING. +(13) State FSCACHE_OBJECT_WITHDRAWING. The object transits to this state if the cache decides it wants to withdraw the object from service, perhaps to make space, but also due to error or just because the whole cache is being withdrawn. -(13) State FSCACHE_OBJECT_DEAD. +(14) State FSCACHE_OBJECT_DEAD. The object transits to this state when the in-memory object record is ready to be deleted. The object processor shouldn't ever see an object in diff --git a/trunk/Documentation/filesystems/caching/operations.txt b/trunk/Documentation/filesystems/caching/operations.txt index b6b070c57cbf..bee2a5f93d60 100644 --- a/trunk/Documentation/filesystems/caching/operations.txt +++ b/trunk/Documentation/filesystems/caching/operations.txt @@ -174,7 +174,7 @@ Operations are used through the following procedure: necessary (the object might have died whilst the thread was waiting). When it has finished doing its processing, it should call - fscache_put_operation() on it. + fscache_op_complete() and fscache_put_operation() on it. (4) The operation holds an effective lock upon the object, preventing other exclusive ops conflicting until it is released. The operation can be diff --git a/trunk/Documentation/filesystems/efivarfs.txt b/trunk/Documentation/filesystems/efivarfs.txt new file mode 100644 index 000000000000..c477af086e65 --- /dev/null +++ b/trunk/Documentation/filesystems/efivarfs.txt @@ -0,0 +1,16 @@ + +efivarfs - a (U)EFI variable filesystem + +The efivarfs filesystem was created to address the shortcomings of +using entries in sysfs to maintain EFI variables. The old sysfs EFI +variables code only supported variables of up to 1024 bytes. This +limitation existed in version 0.99 of the EFI specification, but was +removed before any full releases. Since variables can now be larger +than a single page, sysfs isn't the best interface for this. + +Variables can be created, deleted and modified with the efivarfs +filesystem. + +efivarfs is typically mounted like this, + + mount -t efivarfs none /sys/firmware/efi/efivars diff --git a/trunk/Documentation/filesystems/ext4.txt b/trunk/Documentation/filesystems/ext4.txt index 104322bf378c..34ea4f1fa6ea 100644 --- a/trunk/Documentation/filesystems/ext4.txt +++ b/trunk/Documentation/filesystems/ext4.txt @@ -200,12 +200,9 @@ inode_readahead_blks=n This tuning parameter controls the maximum table readahead algorithm will pre-read into the buffer cache. The default value is 32 blocks. -nouser_xattr Disables Extended User Attributes. If you have extended - attribute support enabled in the kernel configuration - (CONFIG_EXT4_FS_XATTR), extended attribute support - is enabled by default on mount. See the attr(5) manual - page and http://acl.bestbits.at/ for more information - about extended attributes. +nouser_xattr Disables Extended User Attributes. See the + attr(5) manual page and http://acl.bestbits.at/ + for more information about extended attributes. noacl This option disables POSIX Access Control List support. If ACL support is enabled in the kernel diff --git a/trunk/Documentation/filesystems/f2fs.txt b/trunk/Documentation/filesystems/f2fs.txt new file mode 100644 index 000000000000..8fbd8b46ee34 --- /dev/null +++ b/trunk/Documentation/filesystems/f2fs.txt @@ -0,0 +1,421 @@ +================================================================================ +WHAT IS Flash-Friendly File System (F2FS)? +================================================================================ + +NAND flash memory-based storage devices, such as SSD, eMMC, and SD cards, have +been equipped on a variety systems ranging from mobile to server systems. Since +they are known to have different characteristics from the conventional rotating +disks, a file system, an upper layer to the storage device, should adapt to the +changes from the sketch in the design level. + +F2FS is a file system exploiting NAND flash memory-based storage devices, which +is based on Log-structured File System (LFS). The design has been focused on +addressing the fundamental issues in LFS, which are snowball effect of wandering +tree and high cleaning overhead. + +Since a NAND flash memory-based storage device shows different characteristic +according to its internal geometry or flash memory management scheme, namely FTL, +F2FS and its tools support various parameters not only for configuring on-disk +layout, but also for selecting allocation and cleaning algorithms. + +The file system formatting tool, "mkfs.f2fs", is available from the following +git tree: +>> git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git + +For reporting bugs and sending patches, please use the following mailing list: +>> linux-f2fs-devel@lists.sourceforge.net + +================================================================================ +BACKGROUND AND DESIGN ISSUES +================================================================================ + +Log-structured File System (LFS) +-------------------------------- +"A log-structured file system writes all modifications to disk sequentially in +a log-like structure, thereby speeding up both file writing and crash recovery. +The log is the only structure on disk; it contains indexing information so that +files can be read back from the log efficiently. In order to maintain large free +areas on disk for fast writing, we divide the log into segments and use a +segment cleaner to compress the live information from heavily fragmented +segments." from Rosenblum, M. and Ousterhout, J. K., 1992, "The design and +implementation of a log-structured file system", ACM Trans. Computer Systems +10, 1, 26–52. + +Wandering Tree Problem +---------------------- +In LFS, when a file data is updated and written to the end of log, its direct +pointer block is updated due to the changed location. Then the indirect pointer +block is also updated due to the direct pointer block update. In this manner, +the upper index structures such as inode, inode map, and checkpoint block are +also updated recursively. This problem is called as wandering tree problem [1], +and in order to enhance the performance, it should eliminate or relax the update +propagation as much as possible. + +[1] Bityutskiy, A. 2005. JFFS3 design issues. http://www.linux-mtd.infradead.org/ + +Cleaning Overhead +----------------- +Since LFS is based on out-of-place writes, it produces so many obsolete blocks +scattered across the whole storage. In order to serve new empty log space, it +needs to reclaim these obsolete blocks seamlessly to users. This job is called +as a cleaning process. + +The process consists of three operations as follows. +1. A victim segment is selected through referencing segment usage table. +2. It loads parent index structures of all the data in the victim identified by + segment summary blocks. +3. It checks the cross-reference between the data and its parent index structure. +4. It moves valid data selectively. + +This cleaning job may cause unexpected long delays, so the most important goal +is to hide the latencies to users. And also definitely, it should reduce the +amount of valid data to be moved, and move them quickly as well. + +================================================================================ +KEY FEATURES +================================================================================ + +Flash Awareness +--------------- +- Enlarge the random write area for better performance, but provide the high + spatial locality +- Align FS data structures to the operational units in FTL as best efforts + +Wandering Tree Problem +---------------------- +- Use a term, “node”, that represents inodes as well as various pointer blocks +- Introduce Node Address Table (NAT) containing the locations of all the “node” + blocks; this will cut off the update propagation. + +Cleaning Overhead +----------------- +- Support a background cleaning process +- Support greedy and cost-benefit algorithms for victim selection policies +- Support multi-head logs for static/dynamic hot and cold data separation +- Introduce adaptive logging for efficient block allocation + +================================================================================ +MOUNT OPTIONS +================================================================================ + +background_gc_off Turn off cleaning operations, namely garbage collection, + triggered in background when I/O subsystem is idle. +disable_roll_forward Disable the roll-forward recovery routine +discard Issue discard/TRIM commands when a segment is cleaned. +no_heap Disable heap-style segment allocation which finds free + segments for data from the beginning of main area, while + for node from the end of main area. +nouser_xattr Disable Extended User Attributes. Note: xattr is enabled + by default if CONFIG_F2FS_FS_XATTR is selected. +noacl Disable POSIX Access Control List. Note: acl is enabled + by default if CONFIG_F2FS_FS_POSIX_ACL is selected. +active_logs=%u Support configuring the number of active logs. In the + current design, f2fs supports only 2, 4, and 6 logs. + Default number is 6. +disable_ext_identify Disable the extension list configured by mkfs, so f2fs + does not aware of cold files such as media files. + +================================================================================ +DEBUGFS ENTRIES +================================================================================ + +/sys/kernel/debug/f2fs/ contains information about all the partitions mounted as +f2fs. Each file shows the whole f2fs information. + +/sys/kernel/debug/f2fs/status includes: + - major file system information managed by f2fs currently + - average SIT information about whole segments + - current memory footprint consumed by f2fs. + +================================================================================ +USAGE +================================================================================ + +1. Download userland tools and compile them. + +2. Skip, if f2fs was compiled statically inside kernel. + Otherwise, insert the f2fs.ko module. + # insmod f2fs.ko + +3. Create a directory trying to mount + # mkdir /mnt/f2fs + +4. Format the block device, and then mount as f2fs + # mkfs.f2fs -l label /dev/block_device + # mount -t f2fs /dev/block_device /mnt/f2fs + +Format options +-------------- +-l [label] : Give a volume label, up to 256 unicode name. +-a [0 or 1] : Split start location of each area for heap-based allocation. + 1 is set by default, which performs this. +-o [int] : Set overprovision ratio in percent over volume size. + 5 is set by default. +-s [int] : Set the number of segments per section. + 1 is set by default. +-z [int] : Set the number of sections per zone. + 1 is set by default. +-e [str] : Set basic extension list. e.g. "mp3,gif,mov" + +================================================================================ +DESIGN +================================================================================ + +On-disk Layout +-------------- + +F2FS divides the whole volume into a number of segments, each of which is fixed +to 2MB in size. A section is composed of consecutive segments, and a zone +consists of a set of sections. By default, section and zone sizes are set to one +segment size identically, but users can easily modify the sizes by mkfs. + +F2FS splits the entire volume into six areas, and all the areas except superblock +consists of multiple segments as described below. + + align with the zone size <-| + |-> align with the segment size + _________________________________________________________________________ + | | | Node | Segment | Segment | | + | Superblock | Checkpoint | Address | Info. | Summary | Main | + | (SB) | (CP) | Table (NAT) | Table (SIT) | Area (SSA) | | + |____________|_____2______|______N______|______N______|______N_____|__N___| + . . + . . + . . + ._________________________________________. + |_Segment_|_..._|_Segment_|_..._|_Segment_| + . . + ._________._________ + |_section_|__...__|_ + . . + .________. + |__zone__| + +- Superblock (SB) + : It is located at the beginning of the partition, and there exist two copies + to avoid file system crash. It contains basic partition information and some + default parameters of f2fs. + +- Checkpoint (CP) + : It contains file system information, bitmaps for valid NAT/SIT sets, orphan + inode lists, and summary entries of current active segments. + +- Node Address Table (NAT) + : It is composed of a block address table for all the node blocks stored in + Main area. + +- Segment Information Table (SIT) + : It contains segment information such as valid block count and bitmap for the + validity of all the blocks. + +- Segment Summary Area (SSA) + : It contains summary entries which contains the owner information of all the + data and node blocks stored in Main area. + +- Main Area + : It contains file and directory data including their indices. + +In order to avoid misalignment between file system and flash-based storage, F2FS +aligns the start block address of CP with the segment size. Also, it aligns the +start block address of Main area with the zone size by reserving some segments +in SSA area. + +Reference the following survey for additional technical details. +https://wiki.linaro.org/WorkingGroups/Kernel/Projects/FlashCardSurvey + +File System Metadata Structure +------------------------------ + +F2FS adopts the checkpointing scheme to maintain file system consistency. At +mount time, F2FS first tries to find the last valid checkpoint data by scanning +CP area. In order to reduce the scanning time, F2FS uses only two copies of CP. +One of them always indicates the last valid data, which is called as shadow copy +mechanism. In addition to CP, NAT and SIT also adopt the shadow copy mechanism. + +For file system consistency, each CP points to which NAT and SIT copies are +valid, as shown as below. + + +--------+----------+---------+ + | CP | NAT | SIT | + +--------+----------+---------+ + . . . . + . . . . + . . . . + +-------+-------+--------+--------+--------+--------+ + | CP #0 | CP #1 | NAT #0 | NAT #1 | SIT #0 | SIT #1 | + +-------+-------+--------+--------+--------+--------+ + | ^ ^ + | | | + `----------------------------------------' + +Index Structure +--------------- + +The key data structure to manage the data locations is a "node". Similar to +traditional file structures, F2FS has three types of node: inode, direct node, +indirect node. F2FS assigns 4KB to an inode block which contains 923 data block +indices, two direct node pointers, two indirect node pointers, and one double +indirect node pointer as described below. One direct node block contains 1018 +data blocks, and one indirect node block contains also 1018 node blocks. Thus, +one inode block (i.e., a file) covers: + + 4KB * (923 + 2 * 1018 + 2 * 1018 * 1018 + 1018 * 1018 * 1018) := 3.94TB. + + Inode block (4KB) + |- data (923) + |- direct node (2) + | `- data (1018) + |- indirect node (2) + | `- direct node (1018) + | `- data (1018) + `- double indirect node (1) + `- indirect node (1018) + `- direct node (1018) + `- data (1018) + +Note that, all the node blocks are mapped by NAT which means the location of +each node is translated by the NAT table. In the consideration of the wandering +tree problem, F2FS is able to cut off the propagation of node updates caused by +leaf data writes. + +Directory Structure +------------------- + +A directory entry occupies 11 bytes, which consists of the following attributes. + +- hash hash value of the file name +- ino inode number +- len the length of file name +- type file type such as directory, symlink, etc + +A dentry block consists of 214 dentry slots and file names. Therein a bitmap is +used to represent whether each dentry is valid or not. A dentry block occupies +4KB with the following composition. + + Dentry Block(4 K) = bitmap (27 bytes) + reserved (3 bytes) + + dentries(11 * 214 bytes) + file name (8 * 214 bytes) + + [Bucket] + +--------------------------------+ + |dentry block 1 | dentry block 2 | + +--------------------------------+ + . . + . . + . [Dentry Block Structure: 4KB] . + +--------+----------+----------+------------+ + | bitmap | reserved | dentries | file names | + +--------+----------+----------+------------+ + [Dentry Block: 4KB] . . + . . + . . + +------+------+-----+------+ + | hash | ino | len | type | + +------+------+-----+------+ + [Dentry Structure: 11 bytes] + +F2FS implements multi-level hash tables for directory structure. Each level has +a hash table with dedicated number of hash buckets as shown below. Note that +"A(2B)" means a bucket includes 2 data blocks. + +---------------------- +A : bucket +B : block +N : MAX_DIR_HASH_DEPTH +---------------------- + +level #0 | A(2B) + | +level #1 | A(2B) - A(2B) + | +level #2 | A(2B) - A(2B) - A(2B) - A(2B) + . | . . . . +level #N/2 | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B) + . | . . . . +level #N | A(4B) - A(4B) - A(4B) - A(4B) - A(4B) - ... - A(4B) + +The number of blocks and buckets are determined by, + + ,- 2, if n < MAX_DIR_HASH_DEPTH / 2, + # of blocks in level #n = | + `- 4, Otherwise + + ,- 2^n, if n < MAX_DIR_HASH_DEPTH / 2, + # of buckets in level #n = | + `- 2^((MAX_DIR_HASH_DEPTH / 2) - 1), Otherwise + +When F2FS finds a file name in a directory, at first a hash value of the file +name is calculated. Then, F2FS scans the hash table in level #0 to find the +dentry consisting of the file name and its inode number. If not found, F2FS +scans the next hash table in level #1. In this way, F2FS scans hash tables in +each levels incrementally from 1 to N. In each levels F2FS needs to scan only +one bucket determined by the following equation, which shows O(log(# of files)) +complexity. + + bucket number to scan in level #n = (hash value) % (# of buckets in level #n) + +In the case of file creation, F2FS finds empty consecutive slots that cover the +file name. F2FS searches the empty slots in the hash tables of whole levels from +1 to N in the same way as the lookup operation. + +The following figure shows an example of two cases holding children. + --------------> Dir <-------------- + | | + child child + + child - child [hole] - child + + child - child - child [hole] - [hole] - child + + Case 1: Case 2: + Number of children = 6, Number of children = 3, + File size = 7 File size = 7 + +Default Block Allocation +------------------------ + +At runtime, F2FS manages six active logs inside "Main" area: Hot/Warm/Cold node +and Hot/Warm/Cold data. + +- Hot node contains direct node blocks of directories. +- Warm node contains direct node blocks except hot node blocks. +- Cold node contains indirect node blocks +- Hot data contains dentry blocks +- Warm data contains data blocks except hot and cold data blocks +- Cold data contains multimedia data or migrated data blocks + +LFS has two schemes for free space management: threaded log and copy-and-compac- +tion. The copy-and-compaction scheme which is known as cleaning, is well-suited +for devices showing very good sequential write performance, since free segments +are served all the time for writing new data. However, it suffers from cleaning +overhead under high utilization. Contrarily, the threaded log scheme suffers +from random writes, but no cleaning process is needed. F2FS adopts a hybrid +scheme where the copy-and-compaction scheme is adopted by default, but the +policy is dynamically changed to the threaded log scheme according to the file +system status. + +In order to align F2FS with underlying flash-based storage, F2FS allocates a +segment in a unit of section. F2FS expects that the section size would be the +same as the unit size of garbage collection in FTL. Furthermore, with respect +to the mapping granularity in FTL, F2FS allocates each section of the active +logs from different zones as much as possible, since FTL can write the data in +the active logs into one allocation unit according to its mapping granularity. + +Cleaning process +---------------- + +F2FS does cleaning both on demand and in the background. On-demand cleaning is +triggered when there are not enough free segments to serve VFS calls. Background +cleaner is operated by a kernel thread, and triggers the cleaning job when the +system is idle. + +F2FS supports two victim selection policies: greedy and cost-benefit algorithms. +In the greedy algorithm, F2FS selects a victim segment having the smallest number +of valid blocks. In the cost-benefit algorithm, F2FS selects a victim segment +according to the segment age and the number of valid blocks in order to address +log block thrashing problem in the greedy algorithm. F2FS adopts the greedy +algorithm for on-demand cleaner, while background cleaner adopts cost-benefit +algorithm. + +In order to identify whether the data in the victim segment are valid or not, +F2FS manages a bitmap. Each bit represents the validity of a block, and the +bitmap is composed of a bit stream covering whole blocks in main area. diff --git a/trunk/Documentation/filesystems/nfs/nfs41-server.txt b/trunk/Documentation/filesystems/nfs/nfs41-server.txt index 092fad92a3f0..01c2db769791 100644 --- a/trunk/Documentation/filesystems/nfs/nfs41-server.txt +++ b/trunk/Documentation/filesystems/nfs/nfs41-server.txt @@ -39,21 +39,10 @@ interoperability problems with future clients. Known issues: from a linux client are possible, but we aren't really conformant with the spec (for example, we don't use kerberos on the backchannel correctly). - - Incomplete backchannel support: incomplete backchannel gss - support and no support for BACKCHANNEL_CTL mean that - callbacks (hence delegations and layouts) may not be - available and clients confused by the incomplete - implementation may fail. - We do not support SSV, which provides security for shared client-server state (thus preventing unauthorized tampering with locks and opens, for example). It is mandatory for servers to support this, though no clients use it yet. - - Mandatory operations which we do not support, such as - DESTROY_CLIENTID, are not currently used by clients, but will be - (and the spec recommends their uses in common cases), and - clients should not be expected to know how to recover from the - case where they are not supported. This will eventually cause - interoperability failures. In addition, some limitations are inherited from the current NFSv4 implementation: @@ -89,7 +78,7 @@ Operations | | MNI | or OPT) | | +----------------------+------------+--------------+----------------+ | ACCESS | REQ | | Section 18.1 | -NS | BACKCHANNEL_CTL | REQ | | Section 18.33 | +I | BACKCHANNEL_CTL | REQ | | Section 18.33 | I | BIND_CONN_TO_SESSION | REQ | | Section 18.34 | | CLOSE | REQ | | Section 18.2 | | COMMIT | REQ | | Section 18.3 | @@ -99,7 +88,7 @@ NS*| DELEGPURGE | OPT | FDELG (REQ) | Section 18.5 | | DELEGRETURN | OPT | FDELG, | Section 18.6 | | | | DDELG, pNFS | | | | | (REQ) | | -NS | DESTROY_CLIENTID | REQ | | Section 18.50 | +I | DESTROY_CLIENTID | REQ | | Section 18.50 | I | DESTROY_SESSION | REQ | | Section 18.37 | I | EXCHANGE_ID | REQ | | Section 18.35 | I | FREE_STATEID | REQ | | Section 18.38 | @@ -192,7 +181,6 @@ EXCHANGE_ID: CREATE_SESSION: * backchannel attributes are ignored -* backchannel security parameters are ignored SEQUENCE: * no support for dynamic slot table renegotiation (optional) @@ -202,7 +190,7 @@ Nonstandard compound limitations: ca_maxrequestsize request and a ca_maxresponsesize reply, so we may fail to live up to the promise we made in CREATE_SESSION fore channel negotiation. -* No more than one IO operation (read, write, readdir) allowed per - compound. +* No more than one read-like operation allowed per compound; encoding + replies that cross page boundaries (except for read data) not handled. See also http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues. diff --git a/trunk/Documentation/filesystems/porting b/trunk/Documentation/filesystems/porting index 0742feebc6e2..0472c31c163b 100644 --- a/trunk/Documentation/filesystems/porting +++ b/trunk/Documentation/filesystems/porting @@ -281,7 +281,7 @@ ext2_write_failed and callers for an example. [mandatory] - ->truncate is going away. The whole truncate sequence needs to be + ->truncate is gone. The whole truncate sequence needs to be implemented in ->setattr, which is now mandatory for filesystems implementing on-disk size changes. Start with a copy of the old inode_setattr and vmtruncate, and the reorder the vmtruncate + foofs_vmtruncate sequence to diff --git a/trunk/Documentation/filesystems/proc.txt b/trunk/Documentation/filesystems/proc.txt index 3844d21d6ca3..fd8d0d594fc7 100644 --- a/trunk/Documentation/filesystems/proc.txt +++ b/trunk/Documentation/filesystems/proc.txt @@ -41,6 +41,7 @@ Table of Contents 3.5 /proc//mountinfo - Information about mounts 3.6 /proc//comm & /proc//task//comm 3.7 /proc//task//children - Information about task children + 3.8 /proc//fdinfo/ - Information about opened file 4 Configuring procfs 4.1 Mount options @@ -142,7 +143,7 @@ Table 1-1: Process specific entries in /proc pagemap Page table stack Report full stack trace, enable via CONFIG_STACKTRACE smaps a extension based on maps, showing the memory consumption of - each mapping + each mapping and flags associated with it .............................................................................. For example, to get the status information of a process, all you have to do is @@ -181,6 +182,7 @@ read the file /proc/PID/status: CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: ffffffffffffffff + Seccomp: 0 voluntary_ctxt_switches: 0 nonvoluntary_ctxt_switches: 1 @@ -237,6 +239,7 @@ Table 1-2: Contents of the status files (as of 2.6.30-rc7) CapPrm bitmap of permitted capabilities CapEff bitmap of effective capabilities CapBnd bitmap of capabilities bounding set + Seccomp seccomp mode, like prctl(PR_GET_SECCOMP, ...) Cpus_allowed mask of CPUs on which this process may run Cpus_allowed_list Same as previous, but in "list format" Mems_allowed mask of memory nodes allowed to this process @@ -415,8 +418,9 @@ Swap: 0 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Locked: 374 kB +VmFlags: rd ex mr mw me de -The first of these lines shows the same information as is displayed for the +the first of these lines shows the same information as is displayed for the mapping in /proc/PID/maps. The remaining lines show the size of the mapping (size), the amount of the mapping that is currently resident in RAM (RSS), the process' proportional share of this mapping (PSS), the number of clean and @@ -430,6 +434,41 @@ and a page is modified, the file page is replaced by a private anonymous copy. "Swap" shows how much would-be-anonymous memory is also used, but out on swap. +"VmFlags" field deserves a separate description. This member represents the kernel +flags associated with the particular virtual memory area in two letter encoded +manner. The codes are the following: + rd - readable + wr - writeable + ex - executable + sh - shared + mr - may read + mw - may write + me - may execute + ms - may share + gd - stack segment growns down + pf - pure PFN range + dw - disabled write to the mapped file + lo - pages are locked in memory + io - memory mapped I/O area + sr - sequential read advise provided + rr - random read advise provided + dc - do not copy area on fork + de - do not expand area on remapping + ac - area is accountable + nr - swap space is not reserved for the area + ht - area uses huge tlb pages + nl - non-linear mapping + ar - architecture specific flag + dd - do not include area into core dump + mm - mixed map area + hg - huge page advise flag + nh - no-huge page advise flag + mg - mergable advise flag + +Note that there is no guarantee that every flag and associated mnemonic will +be present in all further kernel releases. Things get changed, the flags may +be vanished or the reverse -- new added. + This file is only present if the CONFIG_MMU kernel configuration option is enabled. @@ -1595,6 +1634,93 @@ pids, so one need to either stop or freeze processes being inspected if precise results are needed. +3.7 /proc//fdinfo/ - Information about opened file +--------------------------------------------------------------- +This file provides information associated with an opened file. The regular +files have at least two fields -- 'pos' and 'flags'. The 'pos' represents +the current offset of the opened file in decimal form [see lseek(2) for +details] and 'flags' denotes the octal O_xxx mask the file has been +created with [see open(2) for details]. + +A typical output is + + pos: 0 + flags: 0100002 + +The files such as eventfd, fsnotify, signalfd, epoll among the regular pos/flags +pair provide additional information particular to the objects they represent. + + Eventfd files + ~~~~~~~~~~~~~ + pos: 0 + flags: 04002 + eventfd-count: 5a + + where 'eventfd-count' is hex value of a counter. + + Signalfd files + ~~~~~~~~~~~~~~ + pos: 0 + flags: 04002 + sigmask: 0000000000000200 + + where 'sigmask' is hex value of the signal mask associated + with a file. + + Epoll files + ~~~~~~~~~~~ + pos: 0 + flags: 02 + tfd: 5 events: 1d data: ffffffffffffffff + + where 'tfd' is a target file descriptor number in decimal form, + 'events' is events mask being watched and the 'data' is data + associated with a target [see epoll(7) for more details]. + + Fsnotify files + ~~~~~~~~~~~~~~ + For inotify files the format is the following + + pos: 0 + flags: 02000000 + inotify wd:3 ino:9e7e sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:7e9e0000640d1b6d + + where 'wd' is a watch descriptor in decimal form, ie a target file + descriptor number, 'ino' and 'sdev' are inode and device where the + target file resides and the 'mask' is the mask of events, all in hex + form [see inotify(7) for more details]. + + If the kernel was built with exportfs support, the path to the target + file is encoded as a file handle. The file handle is provided by three + fields 'fhandle-bytes', 'fhandle-type' and 'f_handle', all in hex + format. + + If the kernel is built without exportfs support the file handle won't be + printed out. + + If there is no inotify mark attached yet the 'inotify' line will be omitted. + + For fanotify files the format is + + pos: 0 + flags: 02 + fanotify flags:10 event-flags:0 + fanotify mnt_id:12 mflags:40 mask:38 ignored_mask:40000003 + fanotify ino:4f969 sdev:800013 mflags:0 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type:1 f_handle:69f90400c275b5b4 + + where fanotify 'flags' and 'event-flags' are values used in fanotify_init + call, 'mnt_id' is the mount point identifier, 'mflags' is the value of + flags associated with mark which are tracked separately from events + mask. 'ino', 'sdev' are target inode and device, 'mask' is the events + mask and 'ignored_mask' is the mask of events which are to be ignored. + All in hex format. Incorporation of 'mflags', 'mask' and 'ignored_mask' + does provide information about flags and mask used in fanotify_mark + call [see fsnotify manpage for details]. + + While the first three lines are mandatory and always printed, the rest is + optional and may be omitted if no marks created yet. + + ------------------------------------------------------------------------------ Configuring procfs ------------------------------------------------------------------------------ diff --git a/trunk/Documentation/filesystems/vfat.txt b/trunk/Documentation/filesystems/vfat.txt index de1e6c4dccff..d230dd9c99b0 100644 --- a/trunk/Documentation/filesystems/vfat.txt +++ b/trunk/Documentation/filesystems/vfat.txt @@ -111,6 +111,15 @@ tz=UTC -- Interpret timestamps as UTC rather than local time. useful when mounting devices (like digital cameras) that are set to UTC in order to avoid the pitfalls of local time. +time_offset=minutes + -- Set offset for conversion of timestamps from local time + used by FAT to UTC. I.e. minutes will be subtracted + from each timestamp to convert it to UTC used internally by + Linux. This is useful when time zone set in sys_tz is + not the time zone used by the filesystem. Note that this + option still does not provide correct time stamps in all + cases in presence of DST - time stamps in a different DST + setting will be off by one hour. showexec -- If set, the execute permission bits of the file will be allowed only if the extension part of the name is .EXE, diff --git a/trunk/Documentation/filesystems/vfs.txt b/trunk/Documentation/filesystems/vfs.txt index 2ee133e030c3..e3869098163e 100644 --- a/trunk/Documentation/filesystems/vfs.txt +++ b/trunk/Documentation/filesystems/vfs.txt @@ -350,7 +350,6 @@ struct inode_operations { int (*readlink) (struct dentry *, char __user *,int); void * (*follow_link) (struct dentry *, struct nameidata *); void (*put_link) (struct dentry *, struct nameidata *, void *); - void (*truncate) (struct inode *); int (*permission) (struct inode *, int); int (*get_acl)(struct inode *, int); int (*setattr) (struct dentry *, struct iattr *); @@ -431,16 +430,6 @@ otherwise noted. started might not be in the page cache at the end of the walk). - truncate: Deprecated. This will not be called if ->setsize is defined. - Called by the VFS to change the size of a file. The - i_size field of the inode is set to the desired size by the - VFS before this method is called. This method is called by - the truncate(2) system call and related functionality. - - Note: ->truncate and vmtruncate are deprecated. Do not add new - instances/calls of these. Filesystems should be converted to do their - truncate sequence via ->setattr(). - permission: called by the VFS to check for access rights on a POSIX-like filesystem. diff --git a/trunk/Documentation/hwmon/it87 b/trunk/Documentation/hwmon/it87 index 87850d86c559..8386aadc0a82 100644 --- a/trunk/Documentation/hwmon/it87 +++ b/trunk/Documentation/hwmon/it87 @@ -209,3 +209,13 @@ doesn't use CPU cycles. Trip points must be set properly before switching to automatic fan speed control mode. The driver will perform basic integrity checks before actually switching to automatic control mode. + + +Temperature offset attributes +----------------------------- + +The driver supports temp[1-3]_offset sysfs attributes to adjust the reported +temperature for thermal diodes or diode-connected thermal transistors. +If a temperature sensor is configured for thermistors, the attribute values +are ignored. If the thermal sensor type is Intel PECI, the temperature offset +must be programmed to the critical CPU temperature. diff --git a/trunk/Documentation/i2c/smbus-protocol b/trunk/Documentation/i2c/smbus-protocol index 49f5b680809d..d1f22618e14b 100644 --- a/trunk/Documentation/i2c/smbus-protocol +++ b/trunk/Documentation/i2c/smbus-protocol @@ -23,6 +23,12 @@ don't match these function names. For some of the operations which pass a single data byte, the functions using SMBus protocol operation names execute a different protocol operation entirely. +Each transaction type corresponds to a functionality flag. Before calling a +transaction function, a device driver should always check (just once) for +the corresponding functionality flag to ensure that the underlying I2C +adapter supports the transaction in question. See + for the details. + Key to symbols ============== @@ -49,6 +55,8 @@ This sends a single bit to the device, at the place of the Rd/Wr bit. A Addr Rd/Wr [A] P +Functionality flag: I2C_FUNC_SMBUS_QUICK + SMBus Receive Byte: i2c_smbus_read_byte() ========================================== @@ -60,6 +68,8 @@ the previous SMBus command. S Addr Rd [A] [Data] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_BYTE + SMBus Send Byte: i2c_smbus_write_byte() ======================================== @@ -69,6 +79,8 @@ to a device. See Receive Byte for more information. S Addr Wr [A] Data [A] P +Functionality flag: I2C_FUNC_SMBUS_WRITE_BYTE + SMBus Read Byte: i2c_smbus_read_byte_data() ============================================ @@ -78,6 +90,8 @@ The register is specified through the Comm byte. S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_BYTE_DATA + SMBus Read Word: i2c_smbus_read_word_data() ============================================ @@ -88,6 +102,8 @@ byte. But this time, the data is a complete word (16 bits). S Addr Wr [A] Comm [A] S Addr Rd [A] [DataLow] A [DataHigh] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_WORD_DATA + Note the convenience function i2c_smbus_read_word_swapped is available for reads where the two data bytes are the other way around (not SMBus compliant, but very popular.) @@ -102,6 +118,8 @@ the Read Byte operation. S Addr Wr [A] Comm [A] Data [A] P +Functionality flag: I2C_FUNC_SMBUS_WRITE_BYTE_DATA + SMBus Write Word: i2c_smbus_write_word_data() ============================================== @@ -112,6 +130,8 @@ specified through the Comm byte. S Addr Wr [A] Comm [A] DataLow [A] DataHigh [A] P +Functionality flag: I2C_FUNC_SMBUS_WRITE_WORD_DATA + Note the convenience function i2c_smbus_write_word_swapped is available for writes where the two data bytes are the other way around (not SMBus compliant, but very popular.) @@ -126,6 +146,8 @@ This command selects a device register (through the Comm byte), sends S Addr Wr [A] Comm [A] DataLow [A] DataHigh [A] S Addr Rd [A] [DataLow] A [DataHigh] NA P +Functionality flag: I2C_FUNC_SMBUS_PROC_CALL + SMBus Block Read: i2c_smbus_read_block_data() ============================================== @@ -137,6 +159,8 @@ of data is specified by the device in the Count byte. S Addr Wr [A] Comm [A] S Addr Rd [A] [Count] A [Data] A [Data] A ... A [Data] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_BLOCK_DATA + SMBus Block Write: i2c_smbus_write_block_data() ================================================ @@ -147,6 +171,8 @@ Comm byte. The amount of data is specified in the Count byte. S Addr Wr [A] Comm [A] Count [A] Data [A] Data [A] ... [A] Data [A] P +Functionality flag: I2C_FUNC_SMBUS_WRITE_BLOCK_DATA + SMBus Block Write - Block Read Process Call =========================================== @@ -160,6 +186,8 @@ This command selects a device register (through the Comm byte), sends S Addr Wr [A] Comm [A] Count [A] Data [A] ... S Addr Rd [A] [Count] A [Data] ... A P +Functionality flag: I2C_FUNC_SMBUS_BLOCK_PROC_CALL + SMBus Host Notify ================= @@ -229,15 +257,7 @@ designated register that is specified through the Comm byte. S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P - -I2C Block Read (2 Comm bytes) -============================= - -This command reads a block of bytes from a device, from a -designated register that is specified through the two Comm bytes. - -S Addr Wr [A] Comm1 [A] Comm2 [A] - S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_I2C_BLOCK I2C Block Write: i2c_smbus_write_i2c_block_data() @@ -249,3 +269,5 @@ Comm byte. Note that command lengths of 0, 2, or more bytes are supported as they are indistinguishable from data. S Addr Wr [A] Comm [A] Data [A] Data [A] ... [A] Data [A] P + +Functionality flag: I2C_FUNC_SMBUS_WRITE_I2C_BLOCK diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index 20e248cc03a9..363e348bff9b 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -446,12 +446,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. possible to determine what the correct size should be. This option provides an override for these situations. - capability.disable= - [SECURITY] Disable capabilities. This would normally - be used only if an alternative security model is to be - configured. Potentially dangerous and should only be - used if you are entirely sure of the consequences. - ccw_timeout_log [S390] See Documentation/s390/CommonIO for details. @@ -1503,9 +1497,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory Amount of memory to be used when the kernel is not able to see the whole system memory or for test. - [X86-32] Use together with memmap= to avoid physical - address space collisions. Without memmap= PCI devices - could be placed at addresses belonging to unused RAM. + [X86] Work as limiting max address. Use together + with memmap= to avoid physical address space collisions. + Without memmap= PCI devices could be placed at addresses + belonging to unused RAM. mem=nopentium [BUGS=X86-32] Disable usage of 4MB pages for kernel memory. @@ -2032,6 +2027,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted. nr_uarts= [SERIAL] maximum number of UARTs to be registered. + numa_balancing= [KNL,X86] Enable or disable automatic NUMA balancing. + Allowed values are enable and disable + numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA. one of ['zone', 'node', 'default'] can be specified This can be set from sysctl after boot. diff --git a/trunk/Documentation/kref.txt b/trunk/Documentation/kref.txt index 48ba715d5a63..ddf85a5dde0c 100644 --- a/trunk/Documentation/kref.txt +++ b/trunk/Documentation/kref.txt @@ -213,3 +213,91 @@ presentation on krefs, which can be found at: and: http://www.kroah.com/linux/talks/ols_2004_kref_talk/ + +The above example could also be optimized using kref_get_unless_zero() in +the following way: + +static struct my_data *get_entry() +{ + struct my_data *entry = NULL; + mutex_lock(&mutex); + if (!list_empty(&q)) { + entry = container_of(q.next, struct my_data, link); + if (!kref_get_unless_zero(&entry->refcount)) + entry = NULL; + } + mutex_unlock(&mutex); + return entry; +} + +static void release_entry(struct kref *ref) +{ + struct my_data *entry = container_of(ref, struct my_data, refcount); + + mutex_lock(&mutex); + list_del(&entry->link); + mutex_unlock(&mutex); + kfree(entry); +} + +static void put_entry(struct my_data *entry) +{ + kref_put(&entry->refcount, release_entry); +} + +Which is useful to remove the mutex lock around kref_put() in put_entry(), but +it's important that kref_get_unless_zero is enclosed in the same critical +section that finds the entry in the lookup table, +otherwise kref_get_unless_zero may reference already freed memory. +Note that it is illegal to use kref_get_unless_zero without checking its +return value. If you are sure (by already having a valid pointer) that +kref_get_unless_zero() will return true, then use kref_get() instead. + +The function kref_get_unless_zero also makes it possible to use rcu +locking for lookups in the above example: + +struct my_data +{ + struct rcu_head rhead; + . + struct kref refcount; + . + . +}; + +static struct my_data *get_entry_rcu() +{ + struct my_data *entry = NULL; + rcu_read_lock(); + if (!list_empty(&q)) { + entry = container_of(q.next, struct my_data, link); + if (!kref_get_unless_zero(&entry->refcount)) + entry = NULL; + } + rcu_read_unlock(); + return entry; +} + +static void release_entry_rcu(struct kref *ref) +{ + struct my_data *entry = container_of(ref, struct my_data, refcount); + + mutex_lock(&mutex); + list_del_rcu(&entry->link); + mutex_unlock(&mutex); + kfree_rcu(entry, rhead); +} + +static void put_entry(struct my_data *entry) +{ + kref_put(&entry->refcount, release_entry_rcu); +} + +But note that the struct kref member needs to remain in valid memory for a +rcu grace period after release_entry_rcu was called. That can be accomplished +by using kfree_rcu(entry, rhead) as done above, or by calling synchronize_rcu() +before using kfree, but note that synchronize_rcu() may sleep for a +substantial amount of time. + + +Thomas Hellstrom diff --git a/trunk/Documentation/powerpc/ptrace.txt b/trunk/Documentation/powerpc/ptrace.txt index f4a5499b7bc6..f2a7a3919772 100644 --- a/trunk/Documentation/powerpc/ptrace.txt +++ b/trunk/Documentation/powerpc/ptrace.txt @@ -127,6 +127,22 @@ Some examples of using the structure to: p.addr2 = (uint64_t) end_range; p.condition_value = 0; +- set a watchpoint in server processors (BookS) + + p.version = 1; + p.trigger_type = PPC_BREAKPOINT_TRIGGER_RW; + p.addr_mode = PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE; + or + p.addr_mode = PPC_BREAKPOINT_MODE_EXACT; + + p.condition_mode = PPC_BREAKPOINT_CONDITION_NONE; + p.addr = (uint64_t) begin_range; + /* For PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE addr2 needs to be specified, where + * addr2 - addr <= 8 Bytes. + */ + p.addr2 = (uint64_t) end_range; + p.condition_value = 0; + 3. PTRACE_DELHWDEBUG Takes an integer which identifies an existing breakpoint or watchpoint diff --git a/trunk/Documentation/prctl/seccomp_filter.txt b/trunk/Documentation/prctl/seccomp_filter.txt index 597c3c581375..1e469ef75778 100644 --- a/trunk/Documentation/prctl/seccomp_filter.txt +++ b/trunk/Documentation/prctl/seccomp_filter.txt @@ -95,12 +95,15 @@ SECCOMP_RET_KILL: SECCOMP_RET_TRAP: Results in the kernel sending a SIGSYS signal to the triggering - task without executing the system call. The kernel will - rollback the register state to just before the system call - entry such that a signal handler in the task will be able to - inspect the ucontext_t->uc_mcontext registers and emulate - system call success or failure upon return from the signal - handler. + task without executing the system call. siginfo->si_call_addr + will show the address of the system call instruction, and + siginfo->si_syscall and siginfo->si_arch will indicate which + syscall was attempted. The program counter will be as though + the syscall happened (i.e. it will not point to the syscall + instruction). The return value register will contain an arch- + dependent value -- if resuming execution, set it to something + sensible. (The architecture dependency is because replacing + it with -ENOSYS could overwrite some useful information.) The SECCOMP_RET_DATA portion of the return value will be passed as si_errno. @@ -123,6 +126,18 @@ SECCOMP_RET_TRACE: the BPF program return value will be available to the tracer via PTRACE_GETEVENTMSG. + The tracer can skip the system call by changing the syscall number + to -1. Alternatively, the tracer can change the system call + requested by changing the system call to a valid syscall number. If + the tracer asks to skip the system call, then the system call will + appear to return the value that the tracer puts in the return value + register. + + The seccomp check will not be run again after the tracer is + notified. (This means that seccomp-based sandboxes MUST NOT + allow use of ptrace, even of other sandboxed processes, without + extreme care; ptracers can use this mechanism to escape.) + SECCOMP_RET_ALLOW: Results in the system call being executed. @@ -161,3 +176,50 @@ architecture supports both ptrace_event and seccomp, it will be able to support seccomp filter with minor fixup: SIGSYS support and seccomp return value checking. Then it must just add CONFIG_HAVE_ARCH_SECCOMP_FILTER to its arch-specific Kconfig. + + + +Caveats +------- + +The vDSO can cause some system calls to run entirely in userspace, +leading to surprises when you run programs on different machines that +fall back to real syscalls. To minimize these surprises on x86, make +sure you test with +/sys/devices/system/clocksource/clocksource0/current_clocksource set to +something like acpi_pm. + +On x86-64, vsyscall emulation is enabled by default. (vsyscalls are +legacy variants on vDSO calls.) Currently, emulated vsyscalls will honor seccomp, with a few oddities: + +- A return value of SECCOMP_RET_TRAP will set a si_call_addr pointing to + the vsyscall entry for the given call and not the address after the + 'syscall' instruction. Any code which wants to restart the call + should be aware that (a) a ret instruction has been emulated and (b) + trying to resume the syscall will again trigger the standard vsyscall + emulation security checks, making resuming the syscall mostly + pointless. + +- A return value of SECCOMP_RET_TRACE will signal the tracer as usual, + but the syscall may not be changed to another system call using the + orig_rax register. It may only be changed to -1 order to skip the + currently emulated call. Any other change MAY terminate the process. + The rip value seen by the tracer will be the syscall entry address; + this is different from normal behavior. The tracer MUST NOT modify + rip or rsp. (Do not rely on other changes terminating the process. + They might work. For example, on some kernels, choosing a syscall + that only exists in future kernels will be correctly emulated (by + returning -ENOSYS). + +To detect this quirky behavior, check for addr & ~0x0C00 == +0xFFFFFFFFFF600000. (For SECCOMP_RET_TRACE, use rip. For +SECCOMP_RET_TRAP, use siginfo->si_call_addr.) Do not check any other +condition: future kernels may improve vsyscall emulation and current +kernels in vsyscall=native mode will behave differently, but the +instructions at 0xF...F600{0,4,8,C}00 will not be system calls in these +cases. + +Note that modern systems are unlikely to use vsyscalls at all -- they +are a legacy feature and they are considerably slower than standard +syscalls. New code will use the vDSO, and vDSO-issued system calls +are indistinguishable from normal system calls. diff --git a/trunk/Documentation/security/00-INDEX b/trunk/Documentation/security/00-INDEX index eeed1de546d4..414235c1fcfc 100644 --- a/trunk/Documentation/security/00-INDEX +++ b/trunk/Documentation/security/00-INDEX @@ -12,6 +12,8 @@ apparmor.txt - documentation on the AppArmor security extension. credentials.txt - documentation about credentials in Linux. +keys-ecryptfs.txt + - description of the encryption keys for the ecryptfs filesystem. keys-request-key.txt - description of the kernel key request service. keys-trusted-encrypted.txt diff --git a/trunk/Documentation/security/keys.txt b/trunk/Documentation/security/keys.txt index 7d9ca92022d8..7b4145d00452 100644 --- a/trunk/Documentation/security/keys.txt +++ b/trunk/Documentation/security/keys.txt @@ -994,6 +994,23 @@ payload contents" for more information. reference pointer if successful. +(*) A keyring can be created by: + + struct key *keyring_alloc(const char *description, uid_t uid, gid_t gid, + const struct cred *cred, + key_perm_t perm, + unsigned long flags, + struct key *dest); + + This creates a keyring with the given attributes and returns it. If dest + is not NULL, the new keyring will be linked into the keyring to which it + points. No permission checks are made upon the destination keyring. + + Error EDQUOT can be returned if the keyring would overload the quota (pass + KEY_ALLOC_NOT_IN_QUOTA in flags if the keyring shouldn't be accounted + towards the user's quota). Error ENOMEM can also be returned. + + (*) To check the validity of a key, this function can be called: int validate_key(struct key *key); diff --git a/trunk/Documentation/sparse.txt b/trunk/Documentation/sparse.txt index 4909d4116356..eceab1308a8c 100644 --- a/trunk/Documentation/sparse.txt +++ b/trunk/Documentation/sparse.txt @@ -49,6 +49,24 @@ be generated without __CHECK_ENDIAN__. __bitwise - noisy stuff; in particular, __le*/__be* are that. We really don't want to drown in noise unless we'd explicitly asked for it. +Using sparse for lock checking +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following macros are undefined for gcc and defined during a sparse +run to use the "context" tracking feature of sparse, applied to +locking. These annotations tell sparse when a lock is held, with +regard to the annotated function's entry and exit. + +__must_hold - The specified lock is held on function entry and exit. + +__acquires - The specified lock is held on function exit, but not entry. + +__releases - The specified lock is held on function entry, but not exit. + +If the function enters and exits without the lock held, acquiring and +releasing the lock inside the function in a balanced way, no +annotation is needed. The tree annotations above are for cases where +sparse would otherwise report a context imbalance. Getting sparse ~~~~~~~~~~~~~~ diff --git a/trunk/Documentation/x86/boot.txt b/trunk/Documentation/x86/boot.txt index f15cb74c4f78..406d82d5d2bb 100644 --- a/trunk/Documentation/x86/boot.txt +++ b/trunk/Documentation/x86/boot.txt @@ -373,7 +373,7 @@ Protocol: 2.00+ 1 Loadlin 2 bootsect-loader (0x20, all other values reserved) 3 Syslinux - 4 Etherboot/gPXE + 4 Etherboot/gPXE/iPXE 5 ELILO 7 GRUB 8 U-Boot @@ -381,6 +381,7 @@ Protocol: 2.00+ A Gujin B Qemu C Arcturus Networks uCbootloader + D kexec-tools E Extended (see ext_loader_type) F Special (0xFF = undefined) 10 Reserved diff --git a/trunk/Documentation/xtensa/atomctl.txt b/trunk/Documentation/xtensa/atomctl.txt new file mode 100644 index 000000000000..10a8d1ff35ec --- /dev/null +++ b/trunk/Documentation/xtensa/atomctl.txt @@ -0,0 +1,44 @@ +We Have Atomic Operation Control (ATOMCTL) Register. +This register determines the effect of using a S32C1I instruction +with various combinations of: + + 1. With and without an Coherent Cache Controller which + can do Atomic Transactions to the memory internally. + + 2. With and without An Intelligent Memory Controller which + can do Atomic Transactions itself. + +The Core comes up with a default value of for the three types of cache ops: + + 0x28: (WB: Internal, WT: Internal, BY:Exception) + +On the FPGA Cards we typically simulate an Intelligent Memory controller +which can implement RCW transactions. For FPGA cards with an External +Memory controller we let it to the atomic operations internally while +doing a Cached (WB) transaction and use the Memory RCW for un-cached +operations. + +For systems without an coherent cache controller, non-MX, we always +use the memory controllers RCW, thought non-MX controlers likely +support the Internal Operation. + +CUSTOMER-WARNING: + Virtually all customers buy their memory controllers from vendors that + don't support atomic RCW memory transactions and will likely want to + configure this register to not use RCW. + +Developers might find using RCW in Bypass mode convenient when testing +with the cache being bypassed; for example studying cache alias problems. + +See Section 4.3.12.4 of ISA; Bits: + + WB WT BY + 5 4 | 3 2 | 1 0 + 2 Bit + Field + Values WB - Write Back WT - Write Thru BY - Bypass +--------- --------------- ----------------- ---------------- + 0 Exception Exception Exception + 1 RCW Transaction RCW Transaction RCW Transaction + 2 Internal Operation Exception Reserved + 3 Reserved Reserved Reserved diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index a6be3e864b53..4e2a1f67a1fc 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -1280,7 +1280,7 @@ F: Documentation/hwmon/asc7621 F: drivers/hwmon/asc7621.c ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS -M: Corentin Chary +M: Corentin Chary L: acpi4asus-user@lists.sourceforge.net L: platform-driver-x86@vger.kernel.org W: http://acpi4asus.sf.net @@ -1929,7 +1929,7 @@ F: scripts/checkpatch.pl CHINESE DOCUMENTATION M: Harry Wei -L: xiyoulinuxkernelgroup@googlegroups.com +L: xiyoulinuxkernelgroup@googlegroups.com (subscribers-only) L: linux-kernel@zh-kernel.org (moderated for non-subscribers) S: Maintained F: Documentation/zh_CN/ @@ -2549,6 +2549,15 @@ S: Supported F: drivers/gpu/drm/exynos F: include/drm/exynos* +DRM DRIVERS FOR NVIDIA TEGRA +M: Thierry Reding +L: dri-devel@lists.freedesktop.org +L: linux-tegra@vger.kernel.org +T: git git://gitorious.org/thierryreding/linux.git +S: Maintained +F: drivers/gpu/drm/tegra/ +F: Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt + DSCC4 DRIVER M: Francois Romieu L: netdev@vger.kernel.org @@ -2751,6 +2760,15 @@ W: bluesmoke.sourceforge.net S: Maintained F: drivers/edac/amd64_edac* +EDAC-CAVIUM +M: Ralf Baechle +M: David Daney +L: linux-edac@vger.kernel.org +L: linux-mips@linux-mips.org +W: bluesmoke.sourceforge.net +S: Supported +F: drivers/edac/octeon_edac* + EDAC-E752X M: Mark Gross M: Doug Thompson @@ -2964,7 +2982,6 @@ L: linux-ext4@vger.kernel.org S: Maintained F: Documentation/filesystems/ext3.txt F: fs/ext3/ -F: include/linux/ext3* EXT4 FILE SYSTEM M: "Theodore Ts'o" @@ -3111,7 +3128,8 @@ W: http://ieee1394.wiki.kernel.org/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394.git S: Maintained F: drivers/firewire/ -F: include/linux/firewire*.h +F: include/linux/firewire.h +F: include/uapi/linux/firewire*.h F: tools/firewire/ FIRMWARE LOADER (request_firmware) @@ -3153,6 +3171,12 @@ F: drivers/video/ F: include/video/ F: include/linux/fb.h +FREESCALE DIU FRAMEBUFFER DRIVER +M: Timur Tabi +L: linux-fbdev@vger.kernel.org +S: Supported +F: drivers/video/fsl-diu-fb.* + FREESCALE DMA DRIVER M: Li Yang M: Zhang Wei @@ -3697,7 +3721,7 @@ I2C/SMBUS STUB DRIVER M: "Mark M. Hoffman" L: linux-i2c@vger.kernel.org S: Maintained -F: drivers/i2c/busses/i2c-stub.c +F: drivers/i2c/i2c-stub.c I2C SUBSYSTEM M: Wolfram Sang @@ -4290,7 +4314,6 @@ M: Jan Kara L: linux-ext4@vger.kernel.org S: Maintained F: fs/jbd/ -F: include/linux/ext3_jbd.h F: include/linux/jbd.h JOURNALLING LAYER FOR BLOCK DEVICES (JBD2) @@ -4862,6 +4885,12 @@ S: Maintained F: drivers/net/ethernet/marvell/mv643xx_eth.* F: include/linux/mv643xx.h +MARVELL MVNETA ETHERNET DRIVER +M: Thomas Petazzoni +L: netdev@vger.kernel.org +S: Maintained +F: drivers/net/ethernet/marvell/mvneta.* + MARVELL MWIFIEX WIRELESS DRIVER M: Bing Zhao L: linux-wireless@vger.kernel.org @@ -6462,7 +6491,7 @@ F: drivers/media/pci/saa7146/ F: include/media/saa7146* SAMSUNG LAPTOP DRIVER -M: Corentin Chary +M: Corentin Chary L: platform-driver-x86@vger.kernel.org S: Maintained F: drivers/platform/x86/samsung-laptop.c @@ -7516,6 +7545,13 @@ S: Maintained F: sound/soc/codecs/lm49453* F: sound/soc/codecs/isabelle* +TI LP855x BACKLIGHT DRIVER +M: Milo Kim +S: Maintained +F: Documentation/backlight/lp855x-driver.txt +F: drivers/video/backlight/lp855x_bl.c +F: include/linux/platform_data/lp855x.h + TI TWL4030 SERIES SOC CODEC DRIVER M: Peter Ujfalusi L: alsa-devel@alsa-project.org (moderated for non-subscribers) diff --git a/trunk/Makefile b/trunk/Makefile index 540f7b240c77..275b9567382c 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 -PATCHLEVEL = 7 +PATCHLEVEL = 8 SUBLEVEL = 0 -EXTRAVERSION = +EXTRAVERSION = -rc1 NAME = Terrified Chipmunk # *DOCUMENTATION* @@ -124,7 +124,7 @@ $(if $(KBUILD_OUTPUT),, \ PHONY += $(MAKECMDGOALS) sub-make $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make - $(Q)@: + @: sub-make: FORCE $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \ @@ -981,6 +981,12 @@ _modinst_post: _modinst_ $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modinst $(call cmd,depmod) +ifeq ($(CONFIG_MODULE_SIG), y) +PHONY += modules_sign +modules_sign: + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modsign +endif + else # CONFIG_MODULES # Modules not configured @@ -1021,11 +1027,14 @@ clean: rm-dirs := $(CLEAN_DIRS) clean: rm-files := $(CLEAN_FILES) clean-dirs := $(addprefix _clean_, . $(vmlinux-alldirs) Documentation samples) -PHONY += $(clean-dirs) clean archclean +PHONY += $(clean-dirs) clean archclean vmlinuxclean $(clean-dirs): $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@) -clean: archclean +vmlinuxclean: + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/link-vmlinux.sh clean + +clean: archclean vmlinuxclean # mrproper - Delete all generated files, including .config # @@ -1252,7 +1261,6 @@ scripts: ; endif # KBUILD_EXTMOD clean: $(clean-dirs) - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/link-vmlinux.sh clean $(call cmd,rmdirs) $(call cmd,rmfiles) @find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \ diff --git a/trunk/arch/Kconfig b/trunk/arch/Kconfig index 34884faf98cd..7f8f281f2585 100644 --- a/trunk/arch/Kconfig +++ b/trunk/arch/Kconfig @@ -80,6 +80,7 @@ config UPROBES bool "Transparent user-space probes (EXPERIMENTAL)" depends on UPROBE_EVENT && PERF_EVENTS default n + select PERCPU_RWSEM help Uprobes is the user-space counterpart to kprobes: they enable instrumentation applications (such as 'perf probe') @@ -112,6 +113,25 @@ config HAVE_EFFICIENT_UNALIGNED_ACCESS See Documentation/unaligned-memory-access.txt for more information on the topic of unaligned memory accesses. +config ARCH_USE_BUILTIN_BSWAP + bool + help + Modern versions of GCC (since 4.4) have builtin functions + for handling byte-swapping. Using these, instead of the old + inline assembler that the architecture code provides in the + __arch_bswapXX() macros, allows the compiler to see what's + happening and offers more opportunity for optimisation. In + particular, the compiler will be able to combine the byteswap + with a nearby load or store and use load-and-swap or + store-and-swap instructions if the architecture has them. It + should almost *never* result in code which is worse than the + hand-coded assembler in . But just in case it + does, the use of the builtins is optional. + + Any architecture with load-and-swap or store-and-swap + instructions should set this. And it shouldn't hurt to set it + on architectures that don't have such instructions. + config HAVE_SYSCALL_WRAPPERS bool @@ -271,12 +291,6 @@ config ARCH_WANT_OLD_COMPAT_IPC select ARCH_WANT_COMPAT_IPC_PARSE_VERSION bool -config GENERIC_KERNEL_THREAD - bool - -config GENERIC_KERNEL_EXECVE - bool - config HAVE_ARCH_SECCOMP_FILTER bool help @@ -342,6 +356,9 @@ config MODULES_USE_ELF_REL Modules only use ELF REL relocations. Modules with ELF RELA relocations will give an error. +config GENERIC_SIGALTSTACK + bool + # # ABI hall of shame # diff --git a/trunk/arch/alpha/Kconfig b/trunk/arch/alpha/Kconfig index 5dd7f5db24d4..9d5904cc7712 100644 --- a/trunk/arch/alpha/Kconfig +++ b/trunk/arch/alpha/Kconfig @@ -20,10 +20,9 @@ config ALPHA select GENERIC_CMOS_UPDATE select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER - select GENERIC_KERNEL_THREAD - select GENERIC_KERNEL_EXECVE select HAVE_MOD_ARCH_SPECIFIC select MODULES_USE_ELF_RELA + select GENERIC_SIGALTSTACK 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 dcfabb9f05a0..a6e85f448c1c 100644 --- a/trunk/arch/alpha/include/asm/Kbuild +++ b/trunk/arch/alpha/include/asm/Kbuild @@ -1,14 +1,5 @@ -include include/asm-generic/Kbuild.asm generic-y += clkdev.h -header-y += compiler.h -header-y += console.h -header-y += fpu.h -header-y += gentrap.h -header-y += pal.h -header-y += reg.h -header-y += regdef.h -header-y += sysinfo.h generic-y += exec.h generic-y += trace_clock.h diff --git a/trunk/arch/alpha/include/asm/a.out.h b/trunk/arch/alpha/include/asm/a.out.h index acdc681231cb..9abbd2455306 100644 --- a/trunk/arch/alpha/include/asm/a.out.h +++ b/trunk/arch/alpha/include/asm/a.out.h @@ -1,94 +1,8 @@ #ifndef __ALPHA_A_OUT_H__ #define __ALPHA_A_OUT_H__ -#include +#include -/* - * OSF/1 ECOFF header structs. ECOFF files consist of: - * - a file header (struct filehdr), - * - an a.out header (struct aouthdr), - * - one or more section headers (struct scnhdr). - * The filhdr's "f_nscns" field contains the - * number of section headers. - */ - -struct filehdr -{ - /* OSF/1 "file" header */ - __u16 f_magic, f_nscns; - __u32 f_timdat; - __u64 f_symptr; - __u32 f_nsyms; - __u16 f_opthdr, f_flags; -}; - -struct aouthdr -{ - __u64 info; /* after that it looks quite normal.. */ - __u64 tsize; - __u64 dsize; - __u64 bsize; - __u64 entry; - __u64 text_start; /* with a few additions that actually make sense */ - __u64 data_start; - __u64 bss_start; - __u32 gprmask, fprmask; /* bitmask of general & floating point regs used in binary */ - __u64 gpvalue; -}; - -struct scnhdr -{ - char s_name[8]; - __u64 s_paddr; - __u64 s_vaddr; - __u64 s_size; - __u64 s_scnptr; - __u64 s_relptr; - __u64 s_lnnoptr; - __u16 s_nreloc; - __u16 s_nlnno; - __u32 s_flags; -}; - -struct exec -{ - /* OSF/1 "file" header */ - struct filehdr fh; - struct aouthdr ah; -}; - -/* - * Define's so that the kernel exec code can access the a.out header - * fields... - */ -#define a_info ah.info -#define a_text ah.tsize -#define a_data ah.dsize -#define a_bss ah.bsize -#define a_entry ah.entry -#define a_textstart ah.text_start -#define a_datastart ah.data_start -#define a_bssstart ah.bss_start -#define a_gprmask ah.gprmask -#define a_fprmask ah.fprmask -#define a_gpvalue ah.gpvalue - -#define N_TXTADDR(x) ((x).a_textstart) -#define N_DATADDR(x) ((x).a_datastart) -#define N_BSSADDR(x) ((x).a_bssstart) -#define N_DRSIZE(x) 0 -#define N_TRSIZE(x) 0 -#define N_SYMSIZE(x) 0 - -#define AOUTHSZ sizeof(struct aouthdr) -#define SCNHSZ sizeof(struct scnhdr) -#define SCNROUND 16 - -#define N_TXTOFF(x) \ - ((long) N_MAGIC(x) == ZMAGIC ? 0 : \ - (sizeof(struct exec) + (x).fh.f_nscns*SCNHSZ + SCNROUND - 1) & ~(SCNROUND - 1)) - -#ifdef __KERNEL__ /* Assume that start addresses below 4G belong to a TASO application. Unfortunately, there is no proper bit in the exec header to check. @@ -98,5 +12,4 @@ struct exec set_personality (((BFPM->taso || EX.ah.entry < 0x100000000L \ ? ADDR_LIMIT_32BIT : 0) | PER_OSF4)) -#endif /* __KERNEL__ */ #endif /* __A_OUT_GNU_H__ */ diff --git a/trunk/arch/alpha/include/asm/compiler.h b/trunk/arch/alpha/include/asm/compiler.h index da6bb199839c..a7720b96bcc9 100644 --- a/trunk/arch/alpha/include/asm/compiler.h +++ b/trunk/arch/alpha/include/asm/compiler.h @@ -1,119 +1,8 @@ #ifndef __ALPHA_COMPILER_H #define __ALPHA_COMPILER_H -/* - * Herein are macros we use when describing various patterns we want to GCC. - * In all cases we can get better schedules out of the compiler if we hide - * as little as possible inside inline assembly. However, we want to be - * able to know what we'll get out before giving up inline assembly. Thus - * these tests and macros. - */ +#include -#if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 -# define __kernel_insbl(val, shift) __builtin_alpha_insbl(val, shift) -# define __kernel_inswl(val, shift) __builtin_alpha_inswl(val, shift) -# define __kernel_insql(val, shift) __builtin_alpha_insql(val, shift) -# define __kernel_inslh(val, shift) __builtin_alpha_inslh(val, shift) -# define __kernel_extbl(val, shift) __builtin_alpha_extbl(val, shift) -# define __kernel_extwl(val, shift) __builtin_alpha_extwl(val, shift) -# define __kernel_cmpbge(a, b) __builtin_alpha_cmpbge(a, b) -#else -# define __kernel_insbl(val, shift) \ - ({ unsigned long __kir; \ - __asm__("insbl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_inswl(val, shift) \ - ({ unsigned long __kir; \ - __asm__("inswl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_insql(val, shift) \ - ({ unsigned long __kir; \ - __asm__("insql %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_inslh(val, shift) \ - ({ unsigned long __kir; \ - __asm__("inslh %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_extbl(val, shift) \ - ({ unsigned long __kir; \ - __asm__("extbl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_extwl(val, shift) \ - ({ unsigned long __kir; \ - __asm__("extwl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_cmpbge(a, b) \ - ({ unsigned long __kir; \ - __asm__("cmpbge %r2,%1,%0" : "=r"(__kir) : "rI"(b), "rJ"(a)); \ - __kir; }) -#endif - -#ifdef __alpha_cix__ -# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 -# define __kernel_cttz(x) __builtin_ctzl(x) -# define __kernel_ctlz(x) __builtin_clzl(x) -# define __kernel_ctpop(x) __builtin_popcountl(x) -# else -# define __kernel_cttz(x) \ - ({ unsigned long __kir; \ - __asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# define __kernel_ctlz(x) \ - ({ unsigned long __kir; \ - __asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# define __kernel_ctpop(x) \ - ({ unsigned long __kir; \ - __asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# endif -#else -# define __kernel_cttz(x) \ - ({ unsigned long __kir; \ - __asm__(".arch ev67; cttz %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# define __kernel_ctlz(x) \ - ({ unsigned long __kir; \ - __asm__(".arch ev67; ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# define __kernel_ctpop(x) \ - ({ unsigned long __kir; \ - __asm__(".arch ev67; ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -#endif - - -/* - * Beginning with EGCS 1.1, GCC defines __alpha_bwx__ when the BWX - * extension is enabled. Previous versions did not define anything - * we could test during compilation -- too bad, so sad. - */ - -#if defined(__alpha_bwx__) -#define __kernel_ldbu(mem) (mem) -#define __kernel_ldwu(mem) (mem) -#define __kernel_stb(val,mem) ((mem) = (val)) -#define __kernel_stw(val,mem) ((mem) = (val)) -#else -#define __kernel_ldbu(mem) \ - ({ unsigned char __kir; \ - __asm__(".arch ev56; \ - ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \ - __kir; }) -#define __kernel_ldwu(mem) \ - ({ unsigned short __kir; \ - __asm__(".arch ev56; \ - ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \ - __kir; }) -#define __kernel_stb(val,mem) \ - __asm__(".arch ev56; \ - stb %1,%0" : "=m"(mem) : "r"(val)) -#define __kernel_stw(val,mem) \ - __asm__(".arch ev56; \ - stw %1,%0" : "=m"(mem) : "r"(val)) -#endif - -#ifdef __KERNEL__ /* Some idiots over in thought inline should imply always_inline. This breaks stuff. We'll include this file whenever we run into such problems. */ @@ -125,6 +14,4 @@ #undef __always_inline #define __always_inline inline __attribute__((always_inline)) -#endif /* __KERNEL__ */ - #endif /* __ALPHA_COMPILER_H */ diff --git a/trunk/arch/alpha/include/asm/console.h b/trunk/arch/alpha/include/asm/console.h index a3ce4e62249b..f2b584fe0994 100644 --- a/trunk/arch/alpha/include/asm/console.h +++ b/trunk/arch/alpha/include/asm/console.h @@ -1,52 +1,8 @@ #ifndef __AXP_CONSOLE_H #define __AXP_CONSOLE_H -/* - * Console callback routine numbers - */ -#define CCB_GETC 0x01 -#define CCB_PUTS 0x02 -#define CCB_RESET_TERM 0x03 -#define CCB_SET_TERM_INT 0x04 -#define CCB_SET_TERM_CTL 0x05 -#define CCB_PROCESS_KEYCODE 0x06 -#define CCB_OPEN_CONSOLE 0x07 -#define CCB_CLOSE_CONSOLE 0x08 +#include -#define CCB_OPEN 0x10 -#define CCB_CLOSE 0x11 -#define CCB_IOCTL 0x12 -#define CCB_READ 0x13 -#define CCB_WRITE 0x14 - -#define CCB_SET_ENV 0x20 -#define CCB_RESET_ENV 0x21 -#define CCB_GET_ENV 0x22 -#define CCB_SAVE_ENV 0x23 - -#define CCB_PSWITCH 0x30 -#define CCB_BIOS_EMUL 0x32 - -/* - * Environment variable numbers - */ -#define ENV_AUTO_ACTION 0x01 -#define ENV_BOOT_DEV 0x02 -#define ENV_BOOTDEF_DEV 0x03 -#define ENV_BOOTED_DEV 0x04 -#define ENV_BOOT_FILE 0x05 -#define ENV_BOOTED_FILE 0x06 -#define ENV_BOOT_OSFLAGS 0x07 -#define ENV_BOOTED_OSFLAGS 0x08 -#define ENV_BOOT_RESET 0x09 -#define ENV_DUMP_DEV 0x0A -#define ENV_ENABLE_AUDIT 0x0B -#define ENV_LICENSE 0x0C -#define ENV_CHAR_SET 0x0D -#define ENV_LANGUAGE 0x0E -#define ENV_TTY_DEV 0x0F - -#ifdef __KERNEL__ #ifndef __ASSEMBLY__ extern long callback_puts(long unit, const char *s, long length); extern long callback_getc(long unit); @@ -70,6 +26,4 @@ struct hwrpb_struct; extern int callback_init_done; extern void * callback_init(void *); #endif /* __ASSEMBLY__ */ -#endif /* __KERNEL__ */ - #endif /* __AXP_CONSOLE_H */ diff --git a/trunk/arch/alpha/include/asm/fpu.h b/trunk/arch/alpha/include/asm/fpu.h index e477bcd5b94a..71c20956b905 100644 --- a/trunk/arch/alpha/include/asm/fpu.h +++ b/trunk/arch/alpha/include/asm/fpu.h @@ -1,128 +1,8 @@ #ifndef __ASM_ALPHA_FPU_H #define __ASM_ALPHA_FPU_H -#ifdef __KERNEL__ #include -#endif - -/* - * Alpha floating-point control register defines: - */ -#define FPCR_DNOD (1UL<<47) /* denorm INV trap disable */ -#define FPCR_DNZ (1UL<<48) /* denorms to zero */ -#define FPCR_INVD (1UL<<49) /* invalid op disable (opt.) */ -#define FPCR_DZED (1UL<<50) /* division by zero disable (opt.) */ -#define FPCR_OVFD (1UL<<51) /* overflow disable (optional) */ -#define FPCR_INV (1UL<<52) /* invalid operation */ -#define FPCR_DZE (1UL<<53) /* division by zero */ -#define FPCR_OVF (1UL<<54) /* overflow */ -#define FPCR_UNF (1UL<<55) /* underflow */ -#define FPCR_INE (1UL<<56) /* inexact */ -#define FPCR_IOV (1UL<<57) /* integer overflow */ -#define FPCR_UNDZ (1UL<<60) /* underflow to zero (opt.) */ -#define FPCR_UNFD (1UL<<61) /* underflow disable (opt.) */ -#define FPCR_INED (1UL<<62) /* inexact disable (opt.) */ -#define FPCR_SUM (1UL<<63) /* summary bit */ - -#define FPCR_DYN_SHIFT 58 /* first dynamic rounding mode bit */ -#define FPCR_DYN_CHOPPED (0x0UL << FPCR_DYN_SHIFT) /* towards 0 */ -#define FPCR_DYN_MINUS (0x1UL << FPCR_DYN_SHIFT) /* towards -INF */ -#define FPCR_DYN_NORMAL (0x2UL << FPCR_DYN_SHIFT) /* towards nearest */ -#define FPCR_DYN_PLUS (0x3UL << FPCR_DYN_SHIFT) /* towards +INF */ -#define FPCR_DYN_MASK (0x3UL << FPCR_DYN_SHIFT) - -#define FPCR_MASK 0xffff800000000000L - -/* - * IEEE trap enables are implemented in software. These per-thread - * bits are stored in the "ieee_state" field of "struct thread_info". - * Thus, the bits are defined so as not to conflict with the - * floating-point enable bit (which is architected). On top of that, - * we want to make these bits compatible with OSF/1 so - * ieee_set_fp_control() etc. can be implemented easily and - * compatibly. The corresponding definitions are in - * /usr/include/machine/fpu.h under OSF/1. - */ -#define IEEE_TRAP_ENABLE_INV (1UL<<1) /* invalid op */ -#define IEEE_TRAP_ENABLE_DZE (1UL<<2) /* division by zero */ -#define IEEE_TRAP_ENABLE_OVF (1UL<<3) /* overflow */ -#define IEEE_TRAP_ENABLE_UNF (1UL<<4) /* underflow */ -#define IEEE_TRAP_ENABLE_INE (1UL<<5) /* inexact */ -#define IEEE_TRAP_ENABLE_DNO (1UL<<6) /* denorm */ -#define IEEE_TRAP_ENABLE_MASK (IEEE_TRAP_ENABLE_INV | IEEE_TRAP_ENABLE_DZE |\ - IEEE_TRAP_ENABLE_OVF | IEEE_TRAP_ENABLE_UNF |\ - IEEE_TRAP_ENABLE_INE | IEEE_TRAP_ENABLE_DNO) - -/* Denorm and Underflow flushing */ -#define IEEE_MAP_DMZ (1UL<<12) /* Map denorm inputs to zero */ -#define IEEE_MAP_UMZ (1UL<<13) /* Map underflowed outputs to zero */ - -#define IEEE_MAP_MASK (IEEE_MAP_DMZ | IEEE_MAP_UMZ) - -/* status bits coming from fpcr: */ -#define IEEE_STATUS_INV (1UL<<17) -#define IEEE_STATUS_DZE (1UL<<18) -#define IEEE_STATUS_OVF (1UL<<19) -#define IEEE_STATUS_UNF (1UL<<20) -#define IEEE_STATUS_INE (1UL<<21) -#define IEEE_STATUS_DNO (1UL<<22) - -#define IEEE_STATUS_MASK (IEEE_STATUS_INV | IEEE_STATUS_DZE | \ - IEEE_STATUS_OVF | IEEE_STATUS_UNF | \ - IEEE_STATUS_INE | IEEE_STATUS_DNO) - -#define IEEE_SW_MASK (IEEE_TRAP_ENABLE_MASK | \ - IEEE_STATUS_MASK | IEEE_MAP_MASK) - -#define IEEE_CURRENT_RM_SHIFT 32 -#define IEEE_CURRENT_RM_MASK (3UL<> 35) & IEEE_STATUS_MASK; - sw |= (fp >> 36) & IEEE_MAP_DMZ; - sw |= (~fp >> 48) & (IEEE_TRAP_ENABLE_INV - | IEEE_TRAP_ENABLE_DZE - | IEEE_TRAP_ENABLE_OVF); - sw |= (~fp >> 57) & (IEEE_TRAP_ENABLE_UNF | IEEE_TRAP_ENABLE_INE); - sw |= (fp >> 47) & IEEE_MAP_UMZ; - sw |= (~fp >> 41) & IEEE_TRAP_ENABLE_DNO; - return sw; -} - -#ifdef __KERNEL__ +#include /* The following two functions don't need trapb/excb instructions around the mf_fpcr/mt_fpcr instructions because (a) the kernel @@ -192,6 +72,4 @@ extern void alpha_write_fp_reg (unsigned long reg, unsigned long val); extern unsigned long alpha_read_fp_reg_s (unsigned long reg); extern void alpha_write_fp_reg_s (unsigned long reg, unsigned long val); -#endif /* __KERNEL__ */ - #endif /* __ASM_ALPHA_FPU_H */ diff --git a/trunk/arch/alpha/include/asm/pal.h b/trunk/arch/alpha/include/asm/pal.h index 6699ee583429..6fcd2b5b08f0 100644 --- a/trunk/arch/alpha/include/asm/pal.h +++ b/trunk/arch/alpha/include/asm/pal.h @@ -1,54 +1,8 @@ #ifndef __ALPHA_PAL_H #define __ALPHA_PAL_H -/* - * Common PAL-code - */ -#define PAL_halt 0 -#define PAL_cflush 1 -#define PAL_draina 2 -#define PAL_bpt 128 -#define PAL_bugchk 129 -#define PAL_chmk 131 -#define PAL_callsys 131 -#define PAL_imb 134 -#define PAL_rduniq 158 -#define PAL_wruniq 159 -#define PAL_gentrap 170 -#define PAL_nphalt 190 - -/* - * VMS specific PAL-code - */ -#define PAL_swppal 10 -#define PAL_mfpr_vptb 41 +#include -/* - * OSF specific PAL-code - */ -#define PAL_cserve 9 -#define PAL_wripir 13 -#define PAL_rdmces 16 -#define PAL_wrmces 17 -#define PAL_wrfen 43 -#define PAL_wrvptptr 45 -#define PAL_jtopal 46 -#define PAL_swpctx 48 -#define PAL_wrval 49 -#define PAL_rdval 50 -#define PAL_tbi 51 -#define PAL_wrent 52 -#define PAL_swpipl 53 -#define PAL_rdps 54 -#define PAL_wrkgp 55 -#define PAL_wrusp 56 -#define PAL_wrperfmon 57 -#define PAL_rdusp 58 -#define PAL_whami 60 -#define PAL_retsys 61 -#define PAL_rti 63 - -#ifdef __KERNEL__ #ifndef __ASSEMBLY__ extern void halt(void) __attribute__((noreturn)); @@ -158,6 +112,4 @@ __CALL_PAL_W1(wrvptptr, unsigned long); #define tbia() __tbi(-2, /* no second argument */) #endif /* !__ASSEMBLY__ */ -#endif /* __KERNEL__ */ - #endif /* __ALPHA_PAL_H */ diff --git a/trunk/arch/alpha/include/asm/param.h b/trunk/arch/alpha/include/asm/param.h index e691ecfedb2c..bf46af51941b 100644 --- a/trunk/arch/alpha/include/asm/param.h +++ b/trunk/arch/alpha/include/asm/param.h @@ -1,27 +1,9 @@ #ifndef _ASM_ALPHA_PARAM_H #define _ASM_ALPHA_PARAM_H -/* ??? Gross. I don't want to parameterize this, and supposedly the - hardware ignores reprogramming. We also need userland buy-in to the - change in HZ, since this is visible in the wait4 resources etc. */ +#include -#ifdef __KERNEL__ #define HZ CONFIG_HZ #define USER_HZ HZ -#else -#define HZ 1024 -#endif - -#define EXEC_PAGESIZE 8192 - -#ifndef NOGROUP -#define NOGROUP (-1) -#endif - -#define MAXHOSTNAMELEN 64 /* max length of hostname */ - -#ifdef __KERNEL__ # define CLOCKS_PER_SEC HZ /* frequency at which times() counts */ -#endif - #endif /* _ASM_ALPHA_PARAM_H */ diff --git a/trunk/arch/alpha/include/asm/ptrace.h b/trunk/arch/alpha/include/asm/ptrace.h index b4c5b2fbb647..21128505ddbe 100644 --- a/trunk/arch/alpha/include/asm/ptrace.h +++ b/trunk/arch/alpha/include/asm/ptrace.h @@ -1,77 +1,14 @@ #ifndef _ASMAXP_PTRACE_H #define _ASMAXP_PTRACE_H +#include -/* - * This struct defines the way the registers are stored on the - * kernel stack during a system call or other kernel entry - * - * NOTE! I want to minimize the overhead of system calls, so this - * struct has as little information as possible. I does not have - * - * - floating point regs: the kernel doesn't change those - * - r9-15: saved by the C compiler - * - * This makes "fork()" and "exec()" a bit more complex, but should - * give us low system call latency. - */ - -struct pt_regs { - unsigned long r0; - unsigned long r1; - unsigned long r2; - unsigned long r3; - unsigned long r4; - unsigned long r5; - unsigned long r6; - unsigned long r7; - unsigned long r8; - unsigned long r19; - unsigned long r20; - unsigned long r21; - unsigned long r22; - unsigned long r23; - unsigned long r24; - unsigned long r25; - unsigned long r26; - unsigned long r27; - unsigned long r28; - unsigned long hae; -/* JRP - These are the values provided to a0-a2 by PALcode */ - unsigned long trap_a0; - unsigned long trap_a1; - unsigned long trap_a2; -/* These are saved by PAL-code: */ - unsigned long ps; - unsigned long pc; - unsigned long gp; - unsigned long r16; - unsigned long r17; - unsigned long r18; -}; - -/* - * This is the extended stack used by signal handlers and the context - * switcher: it's pushed after the normal "struct pt_regs". - */ -struct switch_stack { - unsigned long r9; - unsigned long r10; - unsigned long r11; - unsigned long r12; - unsigned long r13; - unsigned long r14; - unsigned long r15; - unsigned long r26; - unsigned long fp[32]; /* fp[31] is fpcr */ -}; - -#ifdef __KERNEL__ #define arch_has_single_step() (1) #define user_mode(regs) (((regs)->ps & 8) != 0) #define instruction_pointer(regs) ((regs)->pc) #define profile_pc(regs) instruction_pointer(regs) +#define current_user_stack_pointer() rdusp() #define task_pt_regs(task) \ ((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1) @@ -83,5 +20,3 @@ struct switch_stack { #define force_successful_syscall_return() (current_pt_regs()->r0 = 0) #endif - -#endif diff --git a/trunk/arch/alpha/include/asm/signal.h b/trunk/arch/alpha/include/asm/signal.h index 45552862cc10..8a1ac28cd562 100644 --- a/trunk/arch/alpha/include/asm/signal.h +++ b/trunk/arch/alpha/include/asm/signal.h @@ -1,12 +1,8 @@ #ifndef _ASMAXP_SIGNAL_H #define _ASMAXP_SIGNAL_H -#include +#include -/* Avoid too many header ordering problems. */ -struct siginfo; - -#ifdef __KERNEL__ /* Digital Unix defines 64 signals. Most things should be clean enough to redefine this at will, if care is taken to make libc match. */ @@ -20,100 +16,6 @@ typedef struct { unsigned long sig[_NSIG_WORDS]; } sigset_t; -#else -/* Here we must cater to libcs that poke about in kernel headers. */ - -#define NSIG 32 -typedef unsigned long sigset_t; - -#endif /* __KERNEL__ */ - - -/* - * Linux/AXP has different signal numbers that Linux/i386: I'm trying - * to make it OSF/1 binary compatible, at least for normal binaries. - */ -#define SIGHUP 1 -#define SIGINT 2 -#define SIGQUIT 3 -#define SIGILL 4 -#define SIGTRAP 5 -#define SIGABRT 6 -#define SIGEMT 7 -#define SIGFPE 8 -#define SIGKILL 9 -#define SIGBUS 10 -#define SIGSEGV 11 -#define SIGSYS 12 -#define SIGPIPE 13 -#define SIGALRM 14 -#define SIGTERM 15 -#define SIGURG 16 -#define SIGSTOP 17 -#define SIGTSTP 18 -#define SIGCONT 19 -#define SIGCHLD 20 -#define SIGTTIN 21 -#define SIGTTOU 22 -#define SIGIO 23 -#define SIGXCPU 24 -#define SIGXFSZ 25 -#define SIGVTALRM 26 -#define SIGPROF 27 -#define SIGWINCH 28 -#define SIGINFO 29 -#define SIGUSR1 30 -#define SIGUSR2 31 - -#define SIGPOLL SIGIO -#define SIGPWR SIGINFO -#define SIGIOT SIGABRT - -/* These should not be considered constants from userland. */ -#define SIGRTMIN 32 -#define SIGRTMAX _NSIG - -/* - * SA_FLAGS values: - * - * SA_ONSTACK indicates that a registered stack_t will be used. - * SA_RESTART flag to get restarting signals (which were the default long ago) - * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. - * SA_RESETHAND clears the handler when the signal is delivered. - * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. - * SA_NODEFER prevents the current signal from being masked in the handler. - * - * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single - * Unix names RESETHAND and NODEFER respectively. - */ - -#define SA_ONSTACK 0x00000001 -#define SA_RESTART 0x00000002 -#define SA_NOCLDSTOP 0x00000004 -#define SA_NODEFER 0x00000008 -#define SA_RESETHAND 0x00000010 -#define SA_NOCLDWAIT 0x00000020 -#define SA_SIGINFO 0x00000040 - -#define SA_ONESHOT SA_RESETHAND -#define SA_NOMASK SA_NODEFER - -/* - * sigaltstack controls - */ -#define SS_ONSTACK 1 -#define SS_DISABLE 2 - -#define MINSIGSTKSZ 4096 -#define SIGSTKSZ 16384 - -#define SIG_BLOCK 1 /* for blocking signals */ -#define SIG_UNBLOCK 2 /* for unblocking signals */ -#define SIG_SETMASK 3 /* for setting the signal mask */ - -#include - -#ifdef __KERNEL__ struct osf_sigaction { __sighandler_t sa_handler; old_sigset_t sa_mask; @@ -130,40 +32,5 @@ struct k_sigaction { struct sigaction sa; __sigrestore_t ka_restorer; }; -#else -/* Here we must cater to libcs that poke about in kernel headers. */ - -struct sigaction { - union { - __sighandler_t _sa_handler; - void (*_sa_sigaction)(int, struct siginfo *, void *); - } _u; - sigset_t sa_mask; - int sa_flags; -}; - -#define sa_handler _u._sa_handler -#define sa_sigaction _u._sa_sigaction - -#endif /* __KERNEL__ */ - -typedef struct sigaltstack { - void __user *ss_sp; - int ss_flags; - size_t ss_size; -} stack_t; - -/* sigstack(2) is deprecated, and will be withdrawn in a future version - of the X/Open CAE Specification. Use sigaltstack instead. It is only - implemented here for OSF/1 compatibility. */ - -struct sigstack { - void __user *ss_sp; - int ss_onstack; -}; - -#ifdef __KERNEL__ #include #endif - -#endif diff --git a/trunk/arch/alpha/include/asm/socket.h b/trunk/arch/alpha/include/asm/socket.h index 0087d053b77f..8d806d80ed24 100644 --- a/trunk/arch/alpha/include/asm/socket.h +++ b/trunk/arch/alpha/include/asm/socket.h @@ -1,87 +1,10 @@ #ifndef _ASM_SOCKET_H #define _ASM_SOCKET_H -#include +#include -/* For setsockopt(2) */ -/* - * Note: we only bother about making the SOL_SOCKET options - * same as OSF/1, as that's all that "normal" programs are - * likely to set. We don't necessarily want to be binary - * compatible with _everything_. - */ -#define SOL_SOCKET 0xffff - -#define SO_DEBUG 0x0001 -#define SO_REUSEADDR 0x0004 -#define SO_KEEPALIVE 0x0008 -#define SO_DONTROUTE 0x0010 -#define SO_BROADCAST 0x0020 -#define SO_LINGER 0x0080 -#define SO_OOBINLINE 0x0100 -/* To add :#define SO_REUSEPORT 0x0200 */ - -#define SO_TYPE 0x1008 -#define SO_ERROR 0x1007 -#define SO_SNDBUF 0x1001 -#define SO_RCVBUF 0x1002 -#define SO_SNDBUFFORCE 0x100a -#define SO_RCVBUFFORCE 0x100b -#define SO_RCVLOWAT 0x1010 -#define SO_SNDLOWAT 0x1011 -#define SO_RCVTIMEO 0x1012 -#define SO_SNDTIMEO 0x1013 -#define SO_ACCEPTCONN 0x1014 -#define SO_PROTOCOL 0x1028 -#define SO_DOMAIN 0x1029 - -/* linux-specific, might as well be the same as on i386 */ -#define SO_NO_CHECK 11 -#define SO_PRIORITY 12 -#define SO_BSDCOMPAT 14 - -#define SO_PASSCRED 17 -#define SO_PEERCRED 18 -#define SO_BINDTODEVICE 25 - -/* Socket filtering */ -#define SO_ATTACH_FILTER 26 -#define SO_DETACH_FILTER 27 -#define SO_GET_FILTER SO_ATTACH_FILTER - -#define SO_PEERNAME 28 -#define SO_TIMESTAMP 29 -#define SCM_TIMESTAMP SO_TIMESTAMP - -#define SO_PEERSEC 30 -#define SO_PASSSEC 34 -#define SO_TIMESTAMPNS 35 -#define SCM_TIMESTAMPNS SO_TIMESTAMPNS - -/* Security levels - as per NRL IPv6 - don't actually do anything */ -#define SO_SECURITY_AUTHENTICATION 19 -#define SO_SECURITY_ENCRYPTION_TRANSPORT 20 -#define SO_SECURITY_ENCRYPTION_NETWORK 21 - -#define SO_MARK 36 - -#define SO_TIMESTAMPING 37 -#define SCM_TIMESTAMPING SO_TIMESTAMPING - -#define SO_RXQ_OVFL 40 - -#define SO_WIFI_STATUS 41 -#define SCM_WIFI_STATUS SO_WIFI_STATUS -#define SO_PEEK_OFF 42 - -/* Instruct lower device to use last 4-bytes of skb data as FCS */ -#define SO_NOFCS 43 - -#ifdef __KERNEL__ /* O_NONBLOCK clashes with the bits used for socket types. Therefore we * have to define SOCK_NONBLOCK to a different value here. */ #define SOCK_NONBLOCK 0x40000000 -#endif /* __KERNEL__ */ - #endif /* _ASM_SOCKET_H */ diff --git a/trunk/arch/alpha/include/asm/termios.h b/trunk/arch/alpha/include/asm/termios.h index fa13716a11c3..7fde0f88da88 100644 --- a/trunk/arch/alpha/include/asm/termios.h +++ b/trunk/arch/alpha/include/asm/termios.h @@ -1,72 +1,8 @@ #ifndef _ALPHA_TERMIOS_H #define _ALPHA_TERMIOS_H -#include -#include +#include -struct sgttyb { - char sg_ispeed; - char sg_ospeed; - char sg_erase; - char sg_kill; - short sg_flags; -}; - -struct tchars { - char t_intrc; - char t_quitc; - char t_startc; - char t_stopc; - char t_eofc; - char t_brkc; -}; - -struct ltchars { - char t_suspc; - char t_dsuspc; - char t_rprntc; - char t_flushc; - char t_werasc; - char t_lnextc; -}; - -struct winsize { - unsigned short ws_row; - unsigned short ws_col; - unsigned short ws_xpixel; - unsigned short ws_ypixel; -}; - -#define NCC 8 -struct termio { - unsigned short c_iflag; /* input mode flags */ - unsigned short c_oflag; /* output mode flags */ - unsigned short c_cflag; /* control mode flags */ - unsigned short c_lflag; /* local mode flags */ - unsigned char c_line; /* line discipline */ - unsigned char c_cc[NCC]; /* control characters */ -}; - -/* - * c_cc characters in the termio structure. Oh, how I love being - * backwardly compatible. Notice that character 4 and 5 are - * interpreted differently depending on whether ICANON is set in - * c_lflag. If it's set, they are used as _VEOF and _VEOL, otherwise - * as _VMIN and V_TIME. This is for compatibility with OSF/1 (which - * is compatible with sysV)... - */ -#define _VINTR 0 -#define _VQUIT 1 -#define _VERASE 2 -#define _VKILL 3 -#define _VEOF 4 -#define _VMIN 4 -#define _VEOL 5 -#define _VTIME 5 -#define _VEOL2 6 -#define _VSWTC 7 - -#ifdef __KERNEL__ /* eof=^D eol=\0 eol2=\0 erase=del werase=^W kill=^U reprint=^R sxtc=\0 intr=^C quit=^\ susp=^Z @@ -141,6 +77,4 @@ struct termio { #define kernel_termios_to_user_termios(u, k) \ copy_to_user(u, k, sizeof(struct termios)) -#endif /* __KERNEL__ */ - #endif /* _ALPHA_TERMIOS_H */ diff --git a/trunk/arch/alpha/include/asm/types.h b/trunk/arch/alpha/include/asm/types.h index 0a0579076f4a..f61e1a56c378 100644 --- a/trunk/arch/alpha/include/asm/types.h +++ b/trunk/arch/alpha/include/asm/types.h @@ -1,18 +1,7 @@ #ifndef _ALPHA_TYPES_H #define _ALPHA_TYPES_H -/* - * This file is never included by application software unless - * explicitly requested (e.g., via linux/types.h) in which case the - * application is Linux specific so (user-) name space pollution is - * not a major issue. However, for interoperability, libraries still - * need to be careful to avoid a name clashes. - */ - -#ifdef __KERNEL__ #include -#else -#include -#endif +#include #endif /* _ALPHA_TYPES_H */ diff --git a/trunk/arch/alpha/include/asm/unistd.h b/trunk/arch/alpha/include/asm/unistd.h index eb3a4664ced2..b3396ee039b7 100644 --- a/trunk/arch/alpha/include/asm/unistd.h +++ b/trunk/arch/alpha/include/asm/unistd.h @@ -1,474 +1,8 @@ #ifndef _ALPHA_UNISTD_H #define _ALPHA_UNISTD_H -#define __NR_osf_syscall 0 /* not implemented */ -#define __NR_exit 1 -#define __NR_fork 2 -#define __NR_read 3 -#define __NR_write 4 -#define __NR_osf_old_open 5 /* not implemented */ -#define __NR_close 6 -#define __NR_osf_wait4 7 -#define __NR_osf_old_creat 8 /* not implemented */ -#define __NR_link 9 -#define __NR_unlink 10 -#define __NR_osf_execve 11 /* not implemented */ -#define __NR_chdir 12 -#define __NR_fchdir 13 -#define __NR_mknod 14 -#define __NR_chmod 15 -#define __NR_chown 16 -#define __NR_brk 17 -#define __NR_osf_getfsstat 18 /* not implemented */ -#define __NR_lseek 19 -#define __NR_getxpid 20 -#define __NR_osf_mount 21 -#define __NR_umount 22 -#define __NR_setuid 23 -#define __NR_getxuid 24 -#define __NR_exec_with_loader 25 /* not implemented */ -#define __NR_ptrace 26 -#define __NR_osf_nrecvmsg 27 /* not implemented */ -#define __NR_osf_nsendmsg 28 /* not implemented */ -#define __NR_osf_nrecvfrom 29 /* not implemented */ -#define __NR_osf_naccept 30 /* not implemented */ -#define __NR_osf_ngetpeername 31 /* not implemented */ -#define __NR_osf_ngetsockname 32 /* not implemented */ -#define __NR_access 33 -#define __NR_osf_chflags 34 /* not implemented */ -#define __NR_osf_fchflags 35 /* not implemented */ -#define __NR_sync 36 -#define __NR_kill 37 -#define __NR_osf_old_stat 38 /* not implemented */ -#define __NR_setpgid 39 -#define __NR_osf_old_lstat 40 /* not implemented */ -#define __NR_dup 41 -#define __NR_pipe 42 -#define __NR_osf_set_program_attributes 43 -#define __NR_osf_profil 44 /* not implemented */ -#define __NR_open 45 -#define __NR_osf_old_sigaction 46 /* not implemented */ -#define __NR_getxgid 47 -#define __NR_osf_sigprocmask 48 -#define __NR_osf_getlogin 49 /* not implemented */ -#define __NR_osf_setlogin 50 /* not implemented */ -#define __NR_acct 51 -#define __NR_sigpending 52 +#include -#define __NR_ioctl 54 -#define __NR_osf_reboot 55 /* not implemented */ -#define __NR_osf_revoke 56 /* not implemented */ -#define __NR_symlink 57 -#define __NR_readlink 58 -#define __NR_execve 59 -#define __NR_umask 60 -#define __NR_chroot 61 -#define __NR_osf_old_fstat 62 /* not implemented */ -#define __NR_getpgrp 63 -#define __NR_getpagesize 64 -#define __NR_osf_mremap 65 /* not implemented */ -#define __NR_vfork 66 -#define __NR_stat 67 -#define __NR_lstat 68 -#define __NR_osf_sbrk 69 /* not implemented */ -#define __NR_osf_sstk 70 /* not implemented */ -#define __NR_mmap 71 /* OSF/1 mmap is superset of Linux */ -#define __NR_osf_old_vadvise 72 /* not implemented */ -#define __NR_munmap 73 -#define __NR_mprotect 74 -#define __NR_madvise 75 -#define __NR_vhangup 76 -#define __NR_osf_kmodcall 77 /* not implemented */ -#define __NR_osf_mincore 78 /* not implemented */ -#define __NR_getgroups 79 -#define __NR_setgroups 80 -#define __NR_osf_old_getpgrp 81 /* not implemented */ -#define __NR_setpgrp 82 /* BSD alias for setpgid */ -#define __NR_osf_setitimer 83 -#define __NR_osf_old_wait 84 /* not implemented */ -#define __NR_osf_table 85 /* not implemented */ -#define __NR_osf_getitimer 86 -#define __NR_gethostname 87 -#define __NR_sethostname 88 -#define __NR_getdtablesize 89 -#define __NR_dup2 90 -#define __NR_fstat 91 -#define __NR_fcntl 92 -#define __NR_osf_select 93 -#define __NR_poll 94 -#define __NR_fsync 95 -#define __NR_setpriority 96 -#define __NR_socket 97 -#define __NR_connect 98 -#define __NR_accept 99 -#define __NR_getpriority 100 -#define __NR_send 101 -#define __NR_recv 102 -#define __NR_sigreturn 103 -#define __NR_bind 104 -#define __NR_setsockopt 105 -#define __NR_listen 106 -#define __NR_osf_plock 107 /* not implemented */ -#define __NR_osf_old_sigvec 108 /* not implemented */ -#define __NR_osf_old_sigblock 109 /* not implemented */ -#define __NR_osf_old_sigsetmask 110 /* not implemented */ -#define __NR_sigsuspend 111 -#define __NR_osf_sigstack 112 -#define __NR_recvmsg 113 -#define __NR_sendmsg 114 -#define __NR_osf_old_vtrace 115 /* not implemented */ -#define __NR_osf_gettimeofday 116 -#define __NR_osf_getrusage 117 -#define __NR_getsockopt 118 - -#define __NR_readv 120 -#define __NR_writev 121 -#define __NR_osf_settimeofday 122 -#define __NR_fchown 123 -#define __NR_fchmod 124 -#define __NR_recvfrom 125 -#define __NR_setreuid 126 -#define __NR_setregid 127 -#define __NR_rename 128 -#define __NR_truncate 129 -#define __NR_ftruncate 130 -#define __NR_flock 131 -#define __NR_setgid 132 -#define __NR_sendto 133 -#define __NR_shutdown 134 -#define __NR_socketpair 135 -#define __NR_mkdir 136 -#define __NR_rmdir 137 -#define __NR_osf_utimes 138 -#define __NR_osf_old_sigreturn 139 /* not implemented */ -#define __NR_osf_adjtime 140 /* not implemented */ -#define __NR_getpeername 141 -#define __NR_osf_gethostid 142 /* not implemented */ -#define __NR_osf_sethostid 143 /* not implemented */ -#define __NR_getrlimit 144 -#define __NR_setrlimit 145 -#define __NR_osf_old_killpg 146 /* not implemented */ -#define __NR_setsid 147 -#define __NR_quotactl 148 -#define __NR_osf_oldquota 149 /* not implemented */ -#define __NR_getsockname 150 - -#define __NR_osf_pid_block 153 /* not implemented */ -#define __NR_osf_pid_unblock 154 /* not implemented */ - -#define __NR_sigaction 156 -#define __NR_osf_sigwaitprim 157 /* not implemented */ -#define __NR_osf_nfssvc 158 /* not implemented */ -#define __NR_osf_getdirentries 159 -#define __NR_osf_statfs 160 -#define __NR_osf_fstatfs 161 - -#define __NR_osf_asynch_daemon 163 /* not implemented */ -#define __NR_osf_getfh 164 /* not implemented */ -#define __NR_osf_getdomainname 165 -#define __NR_setdomainname 166 - -#define __NR_osf_exportfs 169 /* not implemented */ - -#define __NR_osf_alt_plock 181 /* not implemented */ - -#define __NR_osf_getmnt 184 /* not implemented */ - -#define __NR_osf_alt_sigpending 187 /* not implemented */ -#define __NR_osf_alt_setsid 188 /* not implemented */ - -#define __NR_osf_swapon 199 -#define __NR_msgctl 200 -#define __NR_msgget 201 -#define __NR_msgrcv 202 -#define __NR_msgsnd 203 -#define __NR_semctl 204 -#define __NR_semget 205 -#define __NR_semop 206 -#define __NR_osf_utsname 207 -#define __NR_lchown 208 -#define __NR_osf_shmat 209 -#define __NR_shmctl 210 -#define __NR_shmdt 211 -#define __NR_shmget 212 -#define __NR_osf_mvalid 213 /* not implemented */ -#define __NR_osf_getaddressconf 214 /* not implemented */ -#define __NR_osf_msleep 215 /* not implemented */ -#define __NR_osf_mwakeup 216 /* not implemented */ -#define __NR_msync 217 -#define __NR_osf_signal 218 /* not implemented */ -#define __NR_osf_utc_gettime 219 /* not implemented */ -#define __NR_osf_utc_adjtime 220 /* not implemented */ - -#define __NR_osf_security 222 /* not implemented */ -#define __NR_osf_kloadcall 223 /* not implemented */ - -#define __NR_osf_stat 224 -#define __NR_osf_lstat 225 -#define __NR_osf_fstat 226 -#define __NR_osf_statfs64 227 -#define __NR_osf_fstatfs64 228 - -#define __NR_getpgid 233 -#define __NR_getsid 234 -#define __NR_sigaltstack 235 -#define __NR_osf_waitid 236 /* not implemented */ -#define __NR_osf_priocntlset 237 /* not implemented */ -#define __NR_osf_sigsendset 238 /* not implemented */ -#define __NR_osf_set_speculative 239 /* not implemented */ -#define __NR_osf_msfs_syscall 240 /* not implemented */ -#define __NR_osf_sysinfo 241 -#define __NR_osf_uadmin 242 /* not implemented */ -#define __NR_osf_fuser 243 /* not implemented */ -#define __NR_osf_proplist_syscall 244 -#define __NR_osf_ntp_adjtime 245 /* not implemented */ -#define __NR_osf_ntp_gettime 246 /* not implemented */ -#define __NR_osf_pathconf 247 /* not implemented */ -#define __NR_osf_fpathconf 248 /* not implemented */ - -#define __NR_osf_uswitch 250 /* not implemented */ -#define __NR_osf_usleep_thread 251 -#define __NR_osf_audcntl 252 /* not implemented */ -#define __NR_osf_audgen 253 /* not implemented */ -#define __NR_sysfs 254 -#define __NR_osf_subsys_info 255 /* not implemented */ -#define __NR_osf_getsysinfo 256 -#define __NR_osf_setsysinfo 257 -#define __NR_osf_afs_syscall 258 /* not implemented */ -#define __NR_osf_swapctl 259 /* not implemented */ -#define __NR_osf_memcntl 260 /* not implemented */ -#define __NR_osf_fdatasync 261 /* not implemented */ - -/* - * Ignore legacy syscalls that we don't use. - */ -#define __IGNORE_alarm -#define __IGNORE_creat -#define __IGNORE_getegid -#define __IGNORE_geteuid -#define __IGNORE_getgid -#define __IGNORE_getpid -#define __IGNORE_getppid -#define __IGNORE_getuid -#define __IGNORE_pause -#define __IGNORE_time -#define __IGNORE_utime -#define __IGNORE_umount2 - -/* - * Linux-specific system calls begin at 300 - */ -#define __NR_bdflush 300 -#define __NR_sethae 301 -#define __NR_mount 302 -#define __NR_old_adjtimex 303 -#define __NR_swapoff 304 -#define __NR_getdents 305 -#define __NR_create_module 306 -#define __NR_init_module 307 -#define __NR_delete_module 308 -#define __NR_get_kernel_syms 309 -#define __NR_syslog 310 -#define __NR_reboot 311 -#define __NR_clone 312 -#define __NR_uselib 313 -#define __NR_mlock 314 -#define __NR_munlock 315 -#define __NR_mlockall 316 -#define __NR_munlockall 317 -#define __NR_sysinfo 318 -#define __NR__sysctl 319 -/* 320 was sys_idle. */ -#define __NR_oldumount 321 -#define __NR_swapon 322 -#define __NR_times 323 -#define __NR_personality 324 -#define __NR_setfsuid 325 -#define __NR_setfsgid 326 -#define __NR_ustat 327 -#define __NR_statfs 328 -#define __NR_fstatfs 329 -#define __NR_sched_setparam 330 -#define __NR_sched_getparam 331 -#define __NR_sched_setscheduler 332 -#define __NR_sched_getscheduler 333 -#define __NR_sched_yield 334 -#define __NR_sched_get_priority_max 335 -#define __NR_sched_get_priority_min 336 -#define __NR_sched_rr_get_interval 337 -#define __NR_afs_syscall 338 -#define __NR_uname 339 -#define __NR_nanosleep 340 -#define __NR_mremap 341 -#define __NR_nfsservctl 342 -#define __NR_setresuid 343 -#define __NR_getresuid 344 -#define __NR_pciconfig_read 345 -#define __NR_pciconfig_write 346 -#define __NR_query_module 347 -#define __NR_prctl 348 -#define __NR_pread64 349 -#define __NR_pwrite64 350 -#define __NR_rt_sigreturn 351 -#define __NR_rt_sigaction 352 -#define __NR_rt_sigprocmask 353 -#define __NR_rt_sigpending 354 -#define __NR_rt_sigtimedwait 355 -#define __NR_rt_sigqueueinfo 356 -#define __NR_rt_sigsuspend 357 -#define __NR_select 358 -#define __NR_gettimeofday 359 -#define __NR_settimeofday 360 -#define __NR_getitimer 361 -#define __NR_setitimer 362 -#define __NR_utimes 363 -#define __NR_getrusage 364 -#define __NR_wait4 365 -#define __NR_adjtimex 366 -#define __NR_getcwd 367 -#define __NR_capget 368 -#define __NR_capset 369 -#define __NR_sendfile 370 -#define __NR_setresgid 371 -#define __NR_getresgid 372 -#define __NR_dipc 373 -#define __NR_pivot_root 374 -#define __NR_mincore 375 -#define __NR_pciconfig_iobase 376 -#define __NR_getdents64 377 -#define __NR_gettid 378 -#define __NR_readahead 379 -/* 380 is unused */ -#define __NR_tkill 381 -#define __NR_setxattr 382 -#define __NR_lsetxattr 383 -#define __NR_fsetxattr 384 -#define __NR_getxattr 385 -#define __NR_lgetxattr 386 -#define __NR_fgetxattr 387 -#define __NR_listxattr 388 -#define __NR_llistxattr 389 -#define __NR_flistxattr 390 -#define __NR_removexattr 391 -#define __NR_lremovexattr 392 -#define __NR_fremovexattr 393 -#define __NR_futex 394 -#define __NR_sched_setaffinity 395 -#define __NR_sched_getaffinity 396 -#define __NR_tuxcall 397 -#define __NR_io_setup 398 -#define __NR_io_destroy 399 -#define __NR_io_getevents 400 -#define __NR_io_submit 401 -#define __NR_io_cancel 402 -#define __NR_exit_group 405 -#define __NR_lookup_dcookie 406 -#define __NR_epoll_create 407 -#define __NR_epoll_ctl 408 -#define __NR_epoll_wait 409 -/* Feb 2007: These three sys_epoll defines shouldn't be here but culling - * them would break userspace apps ... we'll kill them off in 2010 :) */ -#define __NR_sys_epoll_create __NR_epoll_create -#define __NR_sys_epoll_ctl __NR_epoll_ctl -#define __NR_sys_epoll_wait __NR_epoll_wait -#define __NR_remap_file_pages 410 -#define __NR_set_tid_address 411 -#define __NR_restart_syscall 412 -#define __NR_fadvise64 413 -#define __NR_timer_create 414 -#define __NR_timer_settime 415 -#define __NR_timer_gettime 416 -#define __NR_timer_getoverrun 417 -#define __NR_timer_delete 418 -#define __NR_clock_settime 419 -#define __NR_clock_gettime 420 -#define __NR_clock_getres 421 -#define __NR_clock_nanosleep 422 -#define __NR_semtimedop 423 -#define __NR_tgkill 424 -#define __NR_stat64 425 -#define __NR_lstat64 426 -#define __NR_fstat64 427 -#define __NR_vserver 428 -#define __NR_mbind 429 -#define __NR_get_mempolicy 430 -#define __NR_set_mempolicy 431 -#define __NR_mq_open 432 -#define __NR_mq_unlink 433 -#define __NR_mq_timedsend 434 -#define __NR_mq_timedreceive 435 -#define __NR_mq_notify 436 -#define __NR_mq_getsetattr 437 -#define __NR_waitid 438 -#define __NR_add_key 439 -#define __NR_request_key 440 -#define __NR_keyctl 441 -#define __NR_ioprio_set 442 -#define __NR_ioprio_get 443 -#define __NR_inotify_init 444 -#define __NR_inotify_add_watch 445 -#define __NR_inotify_rm_watch 446 -#define __NR_fdatasync 447 -#define __NR_kexec_load 448 -#define __NR_migrate_pages 449 -#define __NR_openat 450 -#define __NR_mkdirat 451 -#define __NR_mknodat 452 -#define __NR_fchownat 453 -#define __NR_futimesat 454 -#define __NR_fstatat64 455 -#define __NR_unlinkat 456 -#define __NR_renameat 457 -#define __NR_linkat 458 -#define __NR_symlinkat 459 -#define __NR_readlinkat 460 -#define __NR_fchmodat 461 -#define __NR_faccessat 462 -#define __NR_pselect6 463 -#define __NR_ppoll 464 -#define __NR_unshare 465 -#define __NR_set_robust_list 466 -#define __NR_get_robust_list 467 -#define __NR_splice 468 -#define __NR_sync_file_range 469 -#define __NR_tee 470 -#define __NR_vmsplice 471 -#define __NR_move_pages 472 -#define __NR_getcpu 473 -#define __NR_epoll_pwait 474 -#define __NR_utimensat 475 -#define __NR_signalfd 476 -#define __NR_timerfd 477 -#define __NR_eventfd 478 -#define __NR_recvmmsg 479 -#define __NR_fallocate 480 -#define __NR_timerfd_create 481 -#define __NR_timerfd_settime 482 -#define __NR_timerfd_gettime 483 -#define __NR_signalfd4 484 -#define __NR_eventfd2 485 -#define __NR_epoll_create1 486 -#define __NR_dup3 487 -#define __NR_pipe2 488 -#define __NR_inotify_init1 489 -#define __NR_preadv 490 -#define __NR_pwritev 491 -#define __NR_rt_tgsigqueueinfo 492 -#define __NR_perf_event_open 493 -#define __NR_fanotify_init 494 -#define __NR_fanotify_mark 495 -#define __NR_prlimit64 496 -#define __NR_name_to_handle_at 497 -#define __NR_open_by_handle_at 498 -#define __NR_clock_adjtime 499 -#define __NR_syncfs 500 -#define __NR_setns 501 -#define __NR_accept4 502 -#define __NR_sendmmsg 503 -#define __NR_process_vm_readv 504 -#define __NR_process_vm_writev 505 - -#ifdef __KERNEL__ #define NR_SYSCALLS 506 @@ -481,7 +15,6 @@ #define __ARCH_WANT_SYS_OLDUMOUNT #define __ARCH_WANT_SYS_SIGPENDING #define __ARCH_WANT_SYS_RT_SIGSUSPEND -#define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_VFORK #define __ARCH_WANT_SYS_CLONE @@ -498,5 +31,4 @@ #define cond_syscall(x) asm(".weak\t" #x "\n" #x " = sys_ni_syscall") -#endif /* __KERNEL__ */ #endif /* _ALPHA_UNISTD_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/Kbuild b/trunk/arch/alpha/include/uapi/asm/Kbuild index baebb3da1d44..d96f2ef5b639 100644 --- a/trunk/arch/alpha/include/uapi/asm/Kbuild +++ b/trunk/arch/alpha/include/uapi/asm/Kbuild @@ -1,3 +1,43 @@ # UAPI Header export list include include/uapi/asm-generic/Kbuild.asm +header-y += a.out.h +header-y += auxvec.h +header-y += bitsperlong.h +header-y += byteorder.h +header-y += compiler.h +header-y += console.h +header-y += errno.h +header-y += fcntl.h +header-y += fpu.h +header-y += gentrap.h +header-y += ioctl.h +header-y += ioctls.h +header-y += ipcbuf.h +header-y += kvm_para.h +header-y += mman.h +header-y += msgbuf.h +header-y += pal.h +header-y += param.h +header-y += poll.h +header-y += posix_types.h +header-y += ptrace.h +header-y += reg.h +header-y += regdef.h +header-y += resource.h +header-y += sembuf.h +header-y += setup.h +header-y += shmbuf.h +header-y += sigcontext.h +header-y += siginfo.h +header-y += signal.h +header-y += socket.h +header-y += sockios.h +header-y += stat.h +header-y += statfs.h +header-y += swab.h +header-y += sysinfo.h +header-y += termbits.h +header-y += termios.h +header-y += types.h +header-y += unistd.h diff --git a/trunk/arch/alpha/include/uapi/asm/a.out.h b/trunk/arch/alpha/include/uapi/asm/a.out.h new file mode 100644 index 000000000000..547707246f63 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/a.out.h @@ -0,0 +1,91 @@ +#ifndef _UAPI__ALPHA_A_OUT_H__ +#define _UAPI__ALPHA_A_OUT_H__ + +#include + +/* + * OSF/1 ECOFF header structs. ECOFF files consist of: + * - a file header (struct filehdr), + * - an a.out header (struct aouthdr), + * - one or more section headers (struct scnhdr). + * The filhdr's "f_nscns" field contains the + * number of section headers. + */ + +struct filehdr +{ + /* OSF/1 "file" header */ + __u16 f_magic, f_nscns; + __u32 f_timdat; + __u64 f_symptr; + __u32 f_nsyms; + __u16 f_opthdr, f_flags; +}; + +struct aouthdr +{ + __u64 info; /* after that it looks quite normal.. */ + __u64 tsize; + __u64 dsize; + __u64 bsize; + __u64 entry; + __u64 text_start; /* with a few additions that actually make sense */ + __u64 data_start; + __u64 bss_start; + __u32 gprmask, fprmask; /* bitmask of general & floating point regs used in binary */ + __u64 gpvalue; +}; + +struct scnhdr +{ + char s_name[8]; + __u64 s_paddr; + __u64 s_vaddr; + __u64 s_size; + __u64 s_scnptr; + __u64 s_relptr; + __u64 s_lnnoptr; + __u16 s_nreloc; + __u16 s_nlnno; + __u32 s_flags; +}; + +struct exec +{ + /* OSF/1 "file" header */ + struct filehdr fh; + struct aouthdr ah; +}; + +/* + * Define's so that the kernel exec code can access the a.out header + * fields... + */ +#define a_info ah.info +#define a_text ah.tsize +#define a_data ah.dsize +#define a_bss ah.bsize +#define a_entry ah.entry +#define a_textstart ah.text_start +#define a_datastart ah.data_start +#define a_bssstart ah.bss_start +#define a_gprmask ah.gprmask +#define a_fprmask ah.fprmask +#define a_gpvalue ah.gpvalue + +#define N_TXTADDR(x) ((x).a_textstart) +#define N_DATADDR(x) ((x).a_datastart) +#define N_BSSADDR(x) ((x).a_bssstart) +#define N_DRSIZE(x) 0 +#define N_TRSIZE(x) 0 +#define N_SYMSIZE(x) 0 + +#define AOUTHSZ sizeof(struct aouthdr) +#define SCNHSZ sizeof(struct scnhdr) +#define SCNROUND 16 + +#define N_TXTOFF(x) \ + ((long) N_MAGIC(x) == ZMAGIC ? 0 : \ + (sizeof(struct exec) + (x).fh.f_nscns*SCNHSZ + SCNROUND - 1) & ~(SCNROUND - 1)) + +#endif /* _UAPI__ALPHA_A_OUT_H__ */ diff --git a/trunk/arch/alpha/include/asm/auxvec.h b/trunk/arch/alpha/include/uapi/asm/auxvec.h similarity index 100% rename from trunk/arch/alpha/include/asm/auxvec.h rename to trunk/arch/alpha/include/uapi/asm/auxvec.h diff --git a/trunk/arch/alpha/include/asm/bitsperlong.h b/trunk/arch/alpha/include/uapi/asm/bitsperlong.h similarity index 100% rename from trunk/arch/alpha/include/asm/bitsperlong.h rename to trunk/arch/alpha/include/uapi/asm/bitsperlong.h diff --git a/trunk/arch/alpha/include/asm/byteorder.h b/trunk/arch/alpha/include/uapi/asm/byteorder.h similarity index 100% rename from trunk/arch/alpha/include/asm/byteorder.h rename to trunk/arch/alpha/include/uapi/asm/byteorder.h diff --git a/trunk/arch/alpha/include/uapi/asm/compiler.h b/trunk/arch/alpha/include/uapi/asm/compiler.h new file mode 100644 index 000000000000..32cc7833f0c1 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/compiler.h @@ -0,0 +1,117 @@ +#ifndef _UAPI__ALPHA_COMPILER_H +#define _UAPI__ALPHA_COMPILER_H + +/* + * Herein are macros we use when describing various patterns we want to GCC. + * In all cases we can get better schedules out of the compiler if we hide + * as little as possible inside inline assembly. However, we want to be + * able to know what we'll get out before giving up inline assembly. Thus + * these tests and macros. + */ + +#if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 +# define __kernel_insbl(val, shift) __builtin_alpha_insbl(val, shift) +# define __kernel_inswl(val, shift) __builtin_alpha_inswl(val, shift) +# define __kernel_insql(val, shift) __builtin_alpha_insql(val, shift) +# define __kernel_inslh(val, shift) __builtin_alpha_inslh(val, shift) +# define __kernel_extbl(val, shift) __builtin_alpha_extbl(val, shift) +# define __kernel_extwl(val, shift) __builtin_alpha_extwl(val, shift) +# define __kernel_cmpbge(a, b) __builtin_alpha_cmpbge(a, b) +#else +# define __kernel_insbl(val, shift) \ + ({ unsigned long __kir; \ + __asm__("insbl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_inswl(val, shift) \ + ({ unsigned long __kir; \ + __asm__("inswl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_insql(val, shift) \ + ({ unsigned long __kir; \ + __asm__("insql %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_inslh(val, shift) \ + ({ unsigned long __kir; \ + __asm__("inslh %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_extbl(val, shift) \ + ({ unsigned long __kir; \ + __asm__("extbl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_extwl(val, shift) \ + ({ unsigned long __kir; \ + __asm__("extwl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_cmpbge(a, b) \ + ({ unsigned long __kir; \ + __asm__("cmpbge %r2,%1,%0" : "=r"(__kir) : "rI"(b), "rJ"(a)); \ + __kir; }) +#endif + +#ifdef __alpha_cix__ +# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 +# define __kernel_cttz(x) __builtin_ctzl(x) +# define __kernel_ctlz(x) __builtin_clzl(x) +# define __kernel_ctpop(x) __builtin_popcountl(x) +# else +# define __kernel_cttz(x) \ + ({ unsigned long __kir; \ + __asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# define __kernel_ctlz(x) \ + ({ unsigned long __kir; \ + __asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# define __kernel_ctpop(x) \ + ({ unsigned long __kir; \ + __asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# endif +#else +# define __kernel_cttz(x) \ + ({ unsigned long __kir; \ + __asm__(".arch ev67; cttz %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# define __kernel_ctlz(x) \ + ({ unsigned long __kir; \ + __asm__(".arch ev67; ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# define __kernel_ctpop(x) \ + ({ unsigned long __kir; \ + __asm__(".arch ev67; ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +#endif + + +/* + * Beginning with EGCS 1.1, GCC defines __alpha_bwx__ when the BWX + * extension is enabled. Previous versions did not define anything + * we could test during compilation -- too bad, so sad. + */ + +#if defined(__alpha_bwx__) +#define __kernel_ldbu(mem) (mem) +#define __kernel_ldwu(mem) (mem) +#define __kernel_stb(val,mem) ((mem) = (val)) +#define __kernel_stw(val,mem) ((mem) = (val)) +#else +#define __kernel_ldbu(mem) \ + ({ unsigned char __kir; \ + __asm__(".arch ev56; \ + ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \ + __kir; }) +#define __kernel_ldwu(mem) \ + ({ unsigned short __kir; \ + __asm__(".arch ev56; \ + ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \ + __kir; }) +#define __kernel_stb(val,mem) \ + __asm__(".arch ev56; \ + stb %1,%0" : "=m"(mem) : "r"(val)) +#define __kernel_stw(val,mem) \ + __asm__(".arch ev56; \ + stw %1,%0" : "=m"(mem) : "r"(val)) +#endif + + +#endif /* _UAPI__ALPHA_COMPILER_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/console.h b/trunk/arch/alpha/include/uapi/asm/console.h new file mode 100644 index 000000000000..fd08a191f360 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/console.h @@ -0,0 +1,50 @@ +#ifndef _UAPI__AXP_CONSOLE_H +#define _UAPI__AXP_CONSOLE_H + +/* + * Console callback routine numbers + */ +#define CCB_GETC 0x01 +#define CCB_PUTS 0x02 +#define CCB_RESET_TERM 0x03 +#define CCB_SET_TERM_INT 0x04 +#define CCB_SET_TERM_CTL 0x05 +#define CCB_PROCESS_KEYCODE 0x06 +#define CCB_OPEN_CONSOLE 0x07 +#define CCB_CLOSE_CONSOLE 0x08 + +#define CCB_OPEN 0x10 +#define CCB_CLOSE 0x11 +#define CCB_IOCTL 0x12 +#define CCB_READ 0x13 +#define CCB_WRITE 0x14 + +#define CCB_SET_ENV 0x20 +#define CCB_RESET_ENV 0x21 +#define CCB_GET_ENV 0x22 +#define CCB_SAVE_ENV 0x23 + +#define CCB_PSWITCH 0x30 +#define CCB_BIOS_EMUL 0x32 + +/* + * Environment variable numbers + */ +#define ENV_AUTO_ACTION 0x01 +#define ENV_BOOT_DEV 0x02 +#define ENV_BOOTDEF_DEV 0x03 +#define ENV_BOOTED_DEV 0x04 +#define ENV_BOOT_FILE 0x05 +#define ENV_BOOTED_FILE 0x06 +#define ENV_BOOT_OSFLAGS 0x07 +#define ENV_BOOTED_OSFLAGS 0x08 +#define ENV_BOOT_RESET 0x09 +#define ENV_DUMP_DEV 0x0A +#define ENV_ENABLE_AUDIT 0x0B +#define ENV_LICENSE 0x0C +#define ENV_CHAR_SET 0x0D +#define ENV_LANGUAGE 0x0E +#define ENV_TTY_DEV 0x0F + + +#endif /* _UAPI__AXP_CONSOLE_H */ diff --git a/trunk/arch/alpha/include/asm/errno.h b/trunk/arch/alpha/include/uapi/asm/errno.h similarity index 100% rename from trunk/arch/alpha/include/asm/errno.h rename to trunk/arch/alpha/include/uapi/asm/errno.h diff --git a/trunk/arch/alpha/include/asm/fcntl.h b/trunk/arch/alpha/include/uapi/asm/fcntl.h similarity index 100% rename from trunk/arch/alpha/include/asm/fcntl.h rename to trunk/arch/alpha/include/uapi/asm/fcntl.h diff --git a/trunk/arch/alpha/include/uapi/asm/fpu.h b/trunk/arch/alpha/include/uapi/asm/fpu.h new file mode 100644 index 000000000000..21a053ca2233 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/fpu.h @@ -0,0 +1,123 @@ +#ifndef _UAPI__ASM_ALPHA_FPU_H +#define _UAPI__ASM_ALPHA_FPU_H + + +/* + * Alpha floating-point control register defines: + */ +#define FPCR_DNOD (1UL<<47) /* denorm INV trap disable */ +#define FPCR_DNZ (1UL<<48) /* denorms to zero */ +#define FPCR_INVD (1UL<<49) /* invalid op disable (opt.) */ +#define FPCR_DZED (1UL<<50) /* division by zero disable (opt.) */ +#define FPCR_OVFD (1UL<<51) /* overflow disable (optional) */ +#define FPCR_INV (1UL<<52) /* invalid operation */ +#define FPCR_DZE (1UL<<53) /* division by zero */ +#define FPCR_OVF (1UL<<54) /* overflow */ +#define FPCR_UNF (1UL<<55) /* underflow */ +#define FPCR_INE (1UL<<56) /* inexact */ +#define FPCR_IOV (1UL<<57) /* integer overflow */ +#define FPCR_UNDZ (1UL<<60) /* underflow to zero (opt.) */ +#define FPCR_UNFD (1UL<<61) /* underflow disable (opt.) */ +#define FPCR_INED (1UL<<62) /* inexact disable (opt.) */ +#define FPCR_SUM (1UL<<63) /* summary bit */ + +#define FPCR_DYN_SHIFT 58 /* first dynamic rounding mode bit */ +#define FPCR_DYN_CHOPPED (0x0UL << FPCR_DYN_SHIFT) /* towards 0 */ +#define FPCR_DYN_MINUS (0x1UL << FPCR_DYN_SHIFT) /* towards -INF */ +#define FPCR_DYN_NORMAL (0x2UL << FPCR_DYN_SHIFT) /* towards nearest */ +#define FPCR_DYN_PLUS (0x3UL << FPCR_DYN_SHIFT) /* towards +INF */ +#define FPCR_DYN_MASK (0x3UL << FPCR_DYN_SHIFT) + +#define FPCR_MASK 0xffff800000000000L + +/* + * IEEE trap enables are implemented in software. These per-thread + * bits are stored in the "ieee_state" field of "struct thread_info". + * Thus, the bits are defined so as not to conflict with the + * floating-point enable bit (which is architected). On top of that, + * we want to make these bits compatible with OSF/1 so + * ieee_set_fp_control() etc. can be implemented easily and + * compatibly. The corresponding definitions are in + * /usr/include/machine/fpu.h under OSF/1. + */ +#define IEEE_TRAP_ENABLE_INV (1UL<<1) /* invalid op */ +#define IEEE_TRAP_ENABLE_DZE (1UL<<2) /* division by zero */ +#define IEEE_TRAP_ENABLE_OVF (1UL<<3) /* overflow */ +#define IEEE_TRAP_ENABLE_UNF (1UL<<4) /* underflow */ +#define IEEE_TRAP_ENABLE_INE (1UL<<5) /* inexact */ +#define IEEE_TRAP_ENABLE_DNO (1UL<<6) /* denorm */ +#define IEEE_TRAP_ENABLE_MASK (IEEE_TRAP_ENABLE_INV | IEEE_TRAP_ENABLE_DZE |\ + IEEE_TRAP_ENABLE_OVF | IEEE_TRAP_ENABLE_UNF |\ + IEEE_TRAP_ENABLE_INE | IEEE_TRAP_ENABLE_DNO) + +/* Denorm and Underflow flushing */ +#define IEEE_MAP_DMZ (1UL<<12) /* Map denorm inputs to zero */ +#define IEEE_MAP_UMZ (1UL<<13) /* Map underflowed outputs to zero */ + +#define IEEE_MAP_MASK (IEEE_MAP_DMZ | IEEE_MAP_UMZ) + +/* status bits coming from fpcr: */ +#define IEEE_STATUS_INV (1UL<<17) +#define IEEE_STATUS_DZE (1UL<<18) +#define IEEE_STATUS_OVF (1UL<<19) +#define IEEE_STATUS_UNF (1UL<<20) +#define IEEE_STATUS_INE (1UL<<21) +#define IEEE_STATUS_DNO (1UL<<22) + +#define IEEE_STATUS_MASK (IEEE_STATUS_INV | IEEE_STATUS_DZE | \ + IEEE_STATUS_OVF | IEEE_STATUS_UNF | \ + IEEE_STATUS_INE | IEEE_STATUS_DNO) + +#define IEEE_SW_MASK (IEEE_TRAP_ENABLE_MASK | \ + IEEE_STATUS_MASK | IEEE_MAP_MASK) + +#define IEEE_CURRENT_RM_SHIFT 32 +#define IEEE_CURRENT_RM_MASK (3UL<> 35) & IEEE_STATUS_MASK; + sw |= (fp >> 36) & IEEE_MAP_DMZ; + sw |= (~fp >> 48) & (IEEE_TRAP_ENABLE_INV + | IEEE_TRAP_ENABLE_DZE + | IEEE_TRAP_ENABLE_OVF); + sw |= (~fp >> 57) & (IEEE_TRAP_ENABLE_UNF | IEEE_TRAP_ENABLE_INE); + sw |= (fp >> 47) & IEEE_MAP_UMZ; + sw |= (~fp >> 41) & IEEE_TRAP_ENABLE_DNO; + return sw; +} + + +#endif /* _UAPI__ASM_ALPHA_FPU_H */ diff --git a/trunk/arch/alpha/include/asm/gentrap.h b/trunk/arch/alpha/include/uapi/asm/gentrap.h similarity index 100% rename from trunk/arch/alpha/include/asm/gentrap.h rename to trunk/arch/alpha/include/uapi/asm/gentrap.h diff --git a/trunk/arch/alpha/include/asm/ioctl.h b/trunk/arch/alpha/include/uapi/asm/ioctl.h similarity index 100% rename from trunk/arch/alpha/include/asm/ioctl.h rename to trunk/arch/alpha/include/uapi/asm/ioctl.h diff --git a/trunk/arch/alpha/include/asm/ioctls.h b/trunk/arch/alpha/include/uapi/asm/ioctls.h similarity index 100% rename from trunk/arch/alpha/include/asm/ioctls.h rename to trunk/arch/alpha/include/uapi/asm/ioctls.h diff --git a/trunk/arch/alpha/include/asm/ipcbuf.h b/trunk/arch/alpha/include/uapi/asm/ipcbuf.h similarity index 100% rename from trunk/arch/alpha/include/asm/ipcbuf.h rename to trunk/arch/alpha/include/uapi/asm/ipcbuf.h diff --git a/trunk/arch/alpha/include/asm/kvm_para.h b/trunk/arch/alpha/include/uapi/asm/kvm_para.h similarity index 100% rename from trunk/arch/alpha/include/asm/kvm_para.h rename to trunk/arch/alpha/include/uapi/asm/kvm_para.h diff --git a/trunk/arch/alpha/include/asm/mman.h b/trunk/arch/alpha/include/uapi/asm/mman.h similarity index 100% rename from trunk/arch/alpha/include/asm/mman.h rename to trunk/arch/alpha/include/uapi/asm/mman.h diff --git a/trunk/arch/alpha/include/asm/msgbuf.h b/trunk/arch/alpha/include/uapi/asm/msgbuf.h similarity index 100% rename from trunk/arch/alpha/include/asm/msgbuf.h rename to trunk/arch/alpha/include/uapi/asm/msgbuf.h diff --git a/trunk/arch/alpha/include/uapi/asm/pal.h b/trunk/arch/alpha/include/uapi/asm/pal.h new file mode 100644 index 000000000000..3c0ce08e5f59 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/pal.h @@ -0,0 +1,52 @@ +#ifndef _UAPI__ALPHA_PAL_H +#define _UAPI__ALPHA_PAL_H + +/* + * Common PAL-code + */ +#define PAL_halt 0 +#define PAL_cflush 1 +#define PAL_draina 2 +#define PAL_bpt 128 +#define PAL_bugchk 129 +#define PAL_chmk 131 +#define PAL_callsys 131 +#define PAL_imb 134 +#define PAL_rduniq 158 +#define PAL_wruniq 159 +#define PAL_gentrap 170 +#define PAL_nphalt 190 + +/* + * VMS specific PAL-code + */ +#define PAL_swppal 10 +#define PAL_mfpr_vptb 41 + +/* + * OSF specific PAL-code + */ +#define PAL_cserve 9 +#define PAL_wripir 13 +#define PAL_rdmces 16 +#define PAL_wrmces 17 +#define PAL_wrfen 43 +#define PAL_wrvptptr 45 +#define PAL_jtopal 46 +#define PAL_swpctx 48 +#define PAL_wrval 49 +#define PAL_rdval 50 +#define PAL_tbi 51 +#define PAL_wrent 52 +#define PAL_swpipl 53 +#define PAL_rdps 54 +#define PAL_wrkgp 55 +#define PAL_wrusp 56 +#define PAL_wrperfmon 57 +#define PAL_rdusp 58 +#define PAL_whami 60 +#define PAL_retsys 61 +#define PAL_rti 63 + + +#endif /* _UAPI__ALPHA_PAL_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/param.h b/trunk/arch/alpha/include/uapi/asm/param.h new file mode 100644 index 000000000000..29daed819ebd --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/param.h @@ -0,0 +1,21 @@ +#ifndef _UAPI_ASM_ALPHA_PARAM_H +#define _UAPI_ASM_ALPHA_PARAM_H + +/* ??? Gross. I don't want to parameterize this, and supposedly the + hardware ignores reprogramming. We also need userland buy-in to the + change in HZ, since this is visible in the wait4 resources etc. */ + +#ifndef __KERNEL__ +#define HZ 1024 +#endif + +#define EXEC_PAGESIZE 8192 + +#ifndef NOGROUP +#define NOGROUP (-1) +#endif + +#define MAXHOSTNAMELEN 64 /* max length of hostname */ + + +#endif /* _UAPI_ASM_ALPHA_PARAM_H */ diff --git a/trunk/arch/alpha/include/asm/poll.h b/trunk/arch/alpha/include/uapi/asm/poll.h similarity index 100% rename from trunk/arch/alpha/include/asm/poll.h rename to trunk/arch/alpha/include/uapi/asm/poll.h diff --git a/trunk/arch/alpha/include/asm/posix_types.h b/trunk/arch/alpha/include/uapi/asm/posix_types.h similarity index 100% rename from trunk/arch/alpha/include/asm/posix_types.h rename to trunk/arch/alpha/include/uapi/asm/posix_types.h diff --git a/trunk/arch/alpha/include/uapi/asm/ptrace.h b/trunk/arch/alpha/include/uapi/asm/ptrace.h new file mode 100644 index 000000000000..5ce83fa9a05b --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/ptrace.h @@ -0,0 +1,70 @@ +#ifndef _UAPI_ASMAXP_PTRACE_H +#define _UAPI_ASMAXP_PTRACE_H + + +/* + * This struct defines the way the registers are stored on the + * kernel stack during a system call or other kernel entry + * + * NOTE! I want to minimize the overhead of system calls, so this + * struct has as little information as possible. I does not have + * + * - floating point regs: the kernel doesn't change those + * - r9-15: saved by the C compiler + * + * This makes "fork()" and "exec()" a bit more complex, but should + * give us low system call latency. + */ + +struct pt_regs { + unsigned long r0; + unsigned long r1; + unsigned long r2; + unsigned long r3; + unsigned long r4; + unsigned long r5; + unsigned long r6; + unsigned long r7; + unsigned long r8; + unsigned long r19; + unsigned long r20; + unsigned long r21; + unsigned long r22; + unsigned long r23; + unsigned long r24; + unsigned long r25; + unsigned long r26; + unsigned long r27; + unsigned long r28; + unsigned long hae; +/* JRP - These are the values provided to a0-a2 by PALcode */ + unsigned long trap_a0; + unsigned long trap_a1; + unsigned long trap_a2; +/* These are saved by PAL-code: */ + unsigned long ps; + unsigned long pc; + unsigned long gp; + unsigned long r16; + unsigned long r17; + unsigned long r18; +}; + +/* + * This is the extended stack used by signal handlers and the context + * switcher: it's pushed after the normal "struct pt_regs". + */ +struct switch_stack { + unsigned long r9; + unsigned long r10; + unsigned long r11; + unsigned long r12; + unsigned long r13; + unsigned long r14; + unsigned long r15; + unsigned long r26; + unsigned long fp[32]; /* fp[31] is fpcr */ +}; + + +#endif /* _UAPI_ASMAXP_PTRACE_H */ diff --git a/trunk/arch/alpha/include/asm/reg.h b/trunk/arch/alpha/include/uapi/asm/reg.h similarity index 100% rename from trunk/arch/alpha/include/asm/reg.h rename to trunk/arch/alpha/include/uapi/asm/reg.h diff --git a/trunk/arch/alpha/include/asm/regdef.h b/trunk/arch/alpha/include/uapi/asm/regdef.h similarity index 100% rename from trunk/arch/alpha/include/asm/regdef.h rename to trunk/arch/alpha/include/uapi/asm/regdef.h diff --git a/trunk/arch/alpha/include/asm/resource.h b/trunk/arch/alpha/include/uapi/asm/resource.h similarity index 100% rename from trunk/arch/alpha/include/asm/resource.h rename to trunk/arch/alpha/include/uapi/asm/resource.h diff --git a/trunk/arch/alpha/include/asm/sembuf.h b/trunk/arch/alpha/include/uapi/asm/sembuf.h similarity index 100% rename from trunk/arch/alpha/include/asm/sembuf.h rename to trunk/arch/alpha/include/uapi/asm/sembuf.h diff --git a/trunk/arch/alpha/include/asm/setup.h b/trunk/arch/alpha/include/uapi/asm/setup.h similarity index 100% rename from trunk/arch/alpha/include/asm/setup.h rename to trunk/arch/alpha/include/uapi/asm/setup.h diff --git a/trunk/arch/alpha/include/asm/shmbuf.h b/trunk/arch/alpha/include/uapi/asm/shmbuf.h similarity index 100% rename from trunk/arch/alpha/include/asm/shmbuf.h rename to trunk/arch/alpha/include/uapi/asm/shmbuf.h diff --git a/trunk/arch/alpha/include/asm/sigcontext.h b/trunk/arch/alpha/include/uapi/asm/sigcontext.h similarity index 100% rename from trunk/arch/alpha/include/asm/sigcontext.h rename to trunk/arch/alpha/include/uapi/asm/sigcontext.h diff --git a/trunk/arch/alpha/include/asm/siginfo.h b/trunk/arch/alpha/include/uapi/asm/siginfo.h similarity index 100% rename from trunk/arch/alpha/include/asm/siginfo.h rename to trunk/arch/alpha/include/uapi/asm/siginfo.h diff --git a/trunk/arch/alpha/include/uapi/asm/signal.h b/trunk/arch/alpha/include/uapi/asm/signal.h new file mode 100644 index 000000000000..dd4ca4bcbb4a --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/signal.h @@ -0,0 +1,129 @@ +#ifndef _UAPI_ASMAXP_SIGNAL_H +#define _UAPI_ASMAXP_SIGNAL_H + +#include + +/* Avoid too many header ordering problems. */ +struct siginfo; + +#ifndef __KERNEL__ +/* Here we must cater to libcs that poke about in kernel headers. */ + +#define NSIG 32 +typedef unsigned long sigset_t; + +#endif /* __KERNEL__ */ + + +/* + * Linux/AXP has different signal numbers that Linux/i386: I'm trying + * to make it OSF/1 binary compatible, at least for normal binaries. + */ +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGEMT 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGBUS 10 +#define SIGSEGV 11 +#define SIGSYS 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGURG 16 +#define SIGSTOP 17 +#define SIGTSTP 18 +#define SIGCONT 19 +#define SIGCHLD 20 +#define SIGTTIN 21 +#define SIGTTOU 22 +#define SIGIO 23 +#define SIGXCPU 24 +#define SIGXFSZ 25 +#define SIGVTALRM 26 +#define SIGPROF 27 +#define SIGWINCH 28 +#define SIGINFO 29 +#define SIGUSR1 30 +#define SIGUSR2 31 + +#define SIGPOLL SIGIO +#define SIGPWR SIGINFO +#define SIGIOT SIGABRT + +/* These should not be considered constants from userland. */ +#define SIGRTMIN 32 +#define SIGRTMAX _NSIG + +/* + * SA_FLAGS values: + * + * SA_ONSTACK indicates that a registered stack_t will be used. + * SA_RESTART flag to get restarting signals (which were the default long ago) + * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. + * SA_RESETHAND clears the handler when the signal is delivered. + * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. + * SA_NODEFER prevents the current signal from being masked in the handler. + * + * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single + * Unix names RESETHAND and NODEFER respectively. + */ + +#define SA_ONSTACK 0x00000001 +#define SA_RESTART 0x00000002 +#define SA_NOCLDSTOP 0x00000004 +#define SA_NODEFER 0x00000008 +#define SA_RESETHAND 0x00000010 +#define SA_NOCLDWAIT 0x00000020 +#define SA_SIGINFO 0x00000040 + +#define SA_ONESHOT SA_RESETHAND +#define SA_NOMASK SA_NODEFER + +#define MINSIGSTKSZ 4096 +#define SIGSTKSZ 16384 + +#define SIG_BLOCK 1 /* for blocking signals */ +#define SIG_UNBLOCK 2 /* for unblocking signals */ +#define SIG_SETMASK 3 /* for setting the signal mask */ + +#include + +#ifndef __KERNEL__ +/* Here we must cater to libcs that poke about in kernel headers. */ + +struct sigaction { + union { + __sighandler_t _sa_handler; + void (*_sa_sigaction)(int, struct siginfo *, void *); + } _u; + sigset_t sa_mask; + int sa_flags; +}; + +#define sa_handler _u._sa_handler +#define sa_sigaction _u._sa_sigaction + +#endif /* __KERNEL__ */ + +typedef struct sigaltstack { + void __user *ss_sp; + int ss_flags; + size_t ss_size; +} stack_t; + +/* sigstack(2) is deprecated, and will be withdrawn in a future version + of the X/Open CAE Specification. Use sigaltstack instead. It is only + implemented here for OSF/1 compatibility. */ + +struct sigstack { + void __user *ss_sp; + int ss_onstack; +}; + + +#endif /* _UAPI_ASMAXP_SIGNAL_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/socket.h b/trunk/arch/alpha/include/uapi/asm/socket.h new file mode 100644 index 000000000000..097c1577735a --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/socket.h @@ -0,0 +1,81 @@ +#ifndef _UAPI_ASM_SOCKET_H +#define _UAPI_ASM_SOCKET_H + +#include + +/* For setsockopt(2) */ +/* + * Note: we only bother about making the SOL_SOCKET options + * same as OSF/1, as that's all that "normal" programs are + * likely to set. We don't necessarily want to be binary + * compatible with _everything_. + */ +#define SOL_SOCKET 0xffff + +#define SO_DEBUG 0x0001 +#define SO_REUSEADDR 0x0004 +#define SO_KEEPALIVE 0x0008 +#define SO_DONTROUTE 0x0010 +#define SO_BROADCAST 0x0020 +#define SO_LINGER 0x0080 +#define SO_OOBINLINE 0x0100 +/* To add :#define SO_REUSEPORT 0x0200 */ + +#define SO_TYPE 0x1008 +#define SO_ERROR 0x1007 +#define SO_SNDBUF 0x1001 +#define SO_RCVBUF 0x1002 +#define SO_SNDBUFFORCE 0x100a +#define SO_RCVBUFFORCE 0x100b +#define SO_RCVLOWAT 0x1010 +#define SO_SNDLOWAT 0x1011 +#define SO_RCVTIMEO 0x1012 +#define SO_SNDTIMEO 0x1013 +#define SO_ACCEPTCONN 0x1014 +#define SO_PROTOCOL 0x1028 +#define SO_DOMAIN 0x1029 + +/* linux-specific, might as well be the same as on i386 */ +#define SO_NO_CHECK 11 +#define SO_PRIORITY 12 +#define SO_BSDCOMPAT 14 + +#define SO_PASSCRED 17 +#define SO_PEERCRED 18 +#define SO_BINDTODEVICE 25 + +/* Socket filtering */ +#define SO_ATTACH_FILTER 26 +#define SO_DETACH_FILTER 27 +#define SO_GET_FILTER SO_ATTACH_FILTER + +#define SO_PEERNAME 28 +#define SO_TIMESTAMP 29 +#define SCM_TIMESTAMP SO_TIMESTAMP + +#define SO_PEERSEC 30 +#define SO_PASSSEC 34 +#define SO_TIMESTAMPNS 35 +#define SCM_TIMESTAMPNS SO_TIMESTAMPNS + +/* Security levels - as per NRL IPv6 - don't actually do anything */ +#define SO_SECURITY_AUTHENTICATION 19 +#define SO_SECURITY_ENCRYPTION_TRANSPORT 20 +#define SO_SECURITY_ENCRYPTION_NETWORK 21 + +#define SO_MARK 36 + +#define SO_TIMESTAMPING 37 +#define SCM_TIMESTAMPING SO_TIMESTAMPING + +#define SO_RXQ_OVFL 40 + +#define SO_WIFI_STATUS 41 +#define SCM_WIFI_STATUS SO_WIFI_STATUS +#define SO_PEEK_OFF 42 + +/* Instruct lower device to use last 4-bytes of skb data as FCS */ +#define SO_NOFCS 43 + + +#endif /* _UAPI_ASM_SOCKET_H */ diff --git a/trunk/arch/alpha/include/asm/sockios.h b/trunk/arch/alpha/include/uapi/asm/sockios.h similarity index 100% rename from trunk/arch/alpha/include/asm/sockios.h rename to trunk/arch/alpha/include/uapi/asm/sockios.h diff --git a/trunk/arch/alpha/include/asm/stat.h b/trunk/arch/alpha/include/uapi/asm/stat.h similarity index 100% rename from trunk/arch/alpha/include/asm/stat.h rename to trunk/arch/alpha/include/uapi/asm/stat.h diff --git a/trunk/arch/alpha/include/asm/statfs.h b/trunk/arch/alpha/include/uapi/asm/statfs.h similarity index 100% rename from trunk/arch/alpha/include/asm/statfs.h rename to trunk/arch/alpha/include/uapi/asm/statfs.h diff --git a/trunk/arch/alpha/include/asm/swab.h b/trunk/arch/alpha/include/uapi/asm/swab.h similarity index 100% rename from trunk/arch/alpha/include/asm/swab.h rename to trunk/arch/alpha/include/uapi/asm/swab.h diff --git a/trunk/arch/alpha/include/asm/sysinfo.h b/trunk/arch/alpha/include/uapi/asm/sysinfo.h similarity index 100% rename from trunk/arch/alpha/include/asm/sysinfo.h rename to trunk/arch/alpha/include/uapi/asm/sysinfo.h diff --git a/trunk/arch/alpha/include/asm/termbits.h b/trunk/arch/alpha/include/uapi/asm/termbits.h similarity index 100% rename from trunk/arch/alpha/include/asm/termbits.h rename to trunk/arch/alpha/include/uapi/asm/termbits.h diff --git a/trunk/arch/alpha/include/uapi/asm/termios.h b/trunk/arch/alpha/include/uapi/asm/termios.h new file mode 100644 index 000000000000..580ed1e4854c --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/termios.h @@ -0,0 +1,70 @@ +#ifndef _UAPI_ALPHA_TERMIOS_H +#define _UAPI_ALPHA_TERMIOS_H + +#include +#include + +struct sgttyb { + char sg_ispeed; + char sg_ospeed; + char sg_erase; + char sg_kill; + short sg_flags; +}; + +struct tchars { + char t_intrc; + char t_quitc; + char t_startc; + char t_stopc; + char t_eofc; + char t_brkc; +}; + +struct ltchars { + char t_suspc; + char t_dsuspc; + char t_rprntc; + char t_flushc; + char t_werasc; + char t_lnextc; +}; + +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; +}; + +#define NCC 8 +struct termio { + unsigned short c_iflag; /* input mode flags */ + unsigned short c_oflag; /* output mode flags */ + unsigned short c_cflag; /* control mode flags */ + unsigned short c_lflag; /* local mode flags */ + unsigned char c_line; /* line discipline */ + unsigned char c_cc[NCC]; /* control characters */ +}; + +/* + * c_cc characters in the termio structure. Oh, how I love being + * backwardly compatible. Notice that character 4 and 5 are + * interpreted differently depending on whether ICANON is set in + * c_lflag. If it's set, they are used as _VEOF and _VEOL, otherwise + * as _VMIN and V_TIME. This is for compatibility with OSF/1 (which + * is compatible with sysV)... + */ +#define _VINTR 0 +#define _VQUIT 1 +#define _VERASE 2 +#define _VKILL 3 +#define _VEOF 4 +#define _VMIN 4 +#define _VEOL 5 +#define _VTIME 5 +#define _VEOL2 6 +#define _VSWTC 7 + + +#endif /* _UAPI_ALPHA_TERMIOS_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/types.h b/trunk/arch/alpha/include/uapi/asm/types.h new file mode 100644 index 000000000000..9fd3cd459777 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/types.h @@ -0,0 +1,16 @@ +#ifndef _UAPI_ALPHA_TYPES_H +#define _UAPI_ALPHA_TYPES_H + +/* + * This file is never included by application software unless + * explicitly requested (e.g., via linux/types.h) in which case the + * application is Linux specific so (user-) name space pollution is + * not a major issue. However, for interoperability, libraries still + * need to be careful to avoid a name clashes. + */ + +#ifndef __KERNEL__ +#include +#endif + +#endif /* _UAPI_ALPHA_TYPES_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/unistd.h b/trunk/arch/alpha/include/uapi/asm/unistd.h new file mode 100644 index 000000000000..801d28bcea51 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/unistd.h @@ -0,0 +1,471 @@ +#ifndef _UAPI_ALPHA_UNISTD_H +#define _UAPI_ALPHA_UNISTD_H + +#define __NR_osf_syscall 0 /* not implemented */ +#define __NR_exit 1 +#define __NR_fork 2 +#define __NR_read 3 +#define __NR_write 4 +#define __NR_osf_old_open 5 /* not implemented */ +#define __NR_close 6 +#define __NR_osf_wait4 7 +#define __NR_osf_old_creat 8 /* not implemented */ +#define __NR_link 9 +#define __NR_unlink 10 +#define __NR_osf_execve 11 /* not implemented */ +#define __NR_chdir 12 +#define __NR_fchdir 13 +#define __NR_mknod 14 +#define __NR_chmod 15 +#define __NR_chown 16 +#define __NR_brk 17 +#define __NR_osf_getfsstat 18 /* not implemented */ +#define __NR_lseek 19 +#define __NR_getxpid 20 +#define __NR_osf_mount 21 +#define __NR_umount 22 +#define __NR_setuid 23 +#define __NR_getxuid 24 +#define __NR_exec_with_loader 25 /* not implemented */ +#define __NR_ptrace 26 +#define __NR_osf_nrecvmsg 27 /* not implemented */ +#define __NR_osf_nsendmsg 28 /* not implemented */ +#define __NR_osf_nrecvfrom 29 /* not implemented */ +#define __NR_osf_naccept 30 /* not implemented */ +#define __NR_osf_ngetpeername 31 /* not implemented */ +#define __NR_osf_ngetsockname 32 /* not implemented */ +#define __NR_access 33 +#define __NR_osf_chflags 34 /* not implemented */ +#define __NR_osf_fchflags 35 /* not implemented */ +#define __NR_sync 36 +#define __NR_kill 37 +#define __NR_osf_old_stat 38 /* not implemented */ +#define __NR_setpgid 39 +#define __NR_osf_old_lstat 40 /* not implemented */ +#define __NR_dup 41 +#define __NR_pipe 42 +#define __NR_osf_set_program_attributes 43 +#define __NR_osf_profil 44 /* not implemented */ +#define __NR_open 45 +#define __NR_osf_old_sigaction 46 /* not implemented */ +#define __NR_getxgid 47 +#define __NR_osf_sigprocmask 48 +#define __NR_osf_getlogin 49 /* not implemented */ +#define __NR_osf_setlogin 50 /* not implemented */ +#define __NR_acct 51 +#define __NR_sigpending 52 + +#define __NR_ioctl 54 +#define __NR_osf_reboot 55 /* not implemented */ +#define __NR_osf_revoke 56 /* not implemented */ +#define __NR_symlink 57 +#define __NR_readlink 58 +#define __NR_execve 59 +#define __NR_umask 60 +#define __NR_chroot 61 +#define __NR_osf_old_fstat 62 /* not implemented */ +#define __NR_getpgrp 63 +#define __NR_getpagesize 64 +#define __NR_osf_mremap 65 /* not implemented */ +#define __NR_vfork 66 +#define __NR_stat 67 +#define __NR_lstat 68 +#define __NR_osf_sbrk 69 /* not implemented */ +#define __NR_osf_sstk 70 /* not implemented */ +#define __NR_mmap 71 /* OSF/1 mmap is superset of Linux */ +#define __NR_osf_old_vadvise 72 /* not implemented */ +#define __NR_munmap 73 +#define __NR_mprotect 74 +#define __NR_madvise 75 +#define __NR_vhangup 76 +#define __NR_osf_kmodcall 77 /* not implemented */ +#define __NR_osf_mincore 78 /* not implemented */ +#define __NR_getgroups 79 +#define __NR_setgroups 80 +#define __NR_osf_old_getpgrp 81 /* not implemented */ +#define __NR_setpgrp 82 /* BSD alias for setpgid */ +#define __NR_osf_setitimer 83 +#define __NR_osf_old_wait 84 /* not implemented */ +#define __NR_osf_table 85 /* not implemented */ +#define __NR_osf_getitimer 86 +#define __NR_gethostname 87 +#define __NR_sethostname 88 +#define __NR_getdtablesize 89 +#define __NR_dup2 90 +#define __NR_fstat 91 +#define __NR_fcntl 92 +#define __NR_osf_select 93 +#define __NR_poll 94 +#define __NR_fsync 95 +#define __NR_setpriority 96 +#define __NR_socket 97 +#define __NR_connect 98 +#define __NR_accept 99 +#define __NR_getpriority 100 +#define __NR_send 101 +#define __NR_recv 102 +#define __NR_sigreturn 103 +#define __NR_bind 104 +#define __NR_setsockopt 105 +#define __NR_listen 106 +#define __NR_osf_plock 107 /* not implemented */ +#define __NR_osf_old_sigvec 108 /* not implemented */ +#define __NR_osf_old_sigblock 109 /* not implemented */ +#define __NR_osf_old_sigsetmask 110 /* not implemented */ +#define __NR_sigsuspend 111 +#define __NR_osf_sigstack 112 +#define __NR_recvmsg 113 +#define __NR_sendmsg 114 +#define __NR_osf_old_vtrace 115 /* not implemented */ +#define __NR_osf_gettimeofday 116 +#define __NR_osf_getrusage 117 +#define __NR_getsockopt 118 + +#define __NR_readv 120 +#define __NR_writev 121 +#define __NR_osf_settimeofday 122 +#define __NR_fchown 123 +#define __NR_fchmod 124 +#define __NR_recvfrom 125 +#define __NR_setreuid 126 +#define __NR_setregid 127 +#define __NR_rename 128 +#define __NR_truncate 129 +#define __NR_ftruncate 130 +#define __NR_flock 131 +#define __NR_setgid 132 +#define __NR_sendto 133 +#define __NR_shutdown 134 +#define __NR_socketpair 135 +#define __NR_mkdir 136 +#define __NR_rmdir 137 +#define __NR_osf_utimes 138 +#define __NR_osf_old_sigreturn 139 /* not implemented */ +#define __NR_osf_adjtime 140 /* not implemented */ +#define __NR_getpeername 141 +#define __NR_osf_gethostid 142 /* not implemented */ +#define __NR_osf_sethostid 143 /* not implemented */ +#define __NR_getrlimit 144 +#define __NR_setrlimit 145 +#define __NR_osf_old_killpg 146 /* not implemented */ +#define __NR_setsid 147 +#define __NR_quotactl 148 +#define __NR_osf_oldquota 149 /* not implemented */ +#define __NR_getsockname 150 + +#define __NR_osf_pid_block 153 /* not implemented */ +#define __NR_osf_pid_unblock 154 /* not implemented */ + +#define __NR_sigaction 156 +#define __NR_osf_sigwaitprim 157 /* not implemented */ +#define __NR_osf_nfssvc 158 /* not implemented */ +#define __NR_osf_getdirentries 159 +#define __NR_osf_statfs 160 +#define __NR_osf_fstatfs 161 + +#define __NR_osf_asynch_daemon 163 /* not implemented */ +#define __NR_osf_getfh 164 /* not implemented */ +#define __NR_osf_getdomainname 165 +#define __NR_setdomainname 166 + +#define __NR_osf_exportfs 169 /* not implemented */ + +#define __NR_osf_alt_plock 181 /* not implemented */ + +#define __NR_osf_getmnt 184 /* not implemented */ + +#define __NR_osf_alt_sigpending 187 /* not implemented */ +#define __NR_osf_alt_setsid 188 /* not implemented */ + +#define __NR_osf_swapon 199 +#define __NR_msgctl 200 +#define __NR_msgget 201 +#define __NR_msgrcv 202 +#define __NR_msgsnd 203 +#define __NR_semctl 204 +#define __NR_semget 205 +#define __NR_semop 206 +#define __NR_osf_utsname 207 +#define __NR_lchown 208 +#define __NR_osf_shmat 209 +#define __NR_shmctl 210 +#define __NR_shmdt 211 +#define __NR_shmget 212 +#define __NR_osf_mvalid 213 /* not implemented */ +#define __NR_osf_getaddressconf 214 /* not implemented */ +#define __NR_osf_msleep 215 /* not implemented */ +#define __NR_osf_mwakeup 216 /* not implemented */ +#define __NR_msync 217 +#define __NR_osf_signal 218 /* not implemented */ +#define __NR_osf_utc_gettime 219 /* not implemented */ +#define __NR_osf_utc_adjtime 220 /* not implemented */ + +#define __NR_osf_security 222 /* not implemented */ +#define __NR_osf_kloadcall 223 /* not implemented */ + +#define __NR_osf_stat 224 +#define __NR_osf_lstat 225 +#define __NR_osf_fstat 226 +#define __NR_osf_statfs64 227 +#define __NR_osf_fstatfs64 228 + +#define __NR_getpgid 233 +#define __NR_getsid 234 +#define __NR_sigaltstack 235 +#define __NR_osf_waitid 236 /* not implemented */ +#define __NR_osf_priocntlset 237 /* not implemented */ +#define __NR_osf_sigsendset 238 /* not implemented */ +#define __NR_osf_set_speculative 239 /* not implemented */ +#define __NR_osf_msfs_syscall 240 /* not implemented */ +#define __NR_osf_sysinfo 241 +#define __NR_osf_uadmin 242 /* not implemented */ +#define __NR_osf_fuser 243 /* not implemented */ +#define __NR_osf_proplist_syscall 244 +#define __NR_osf_ntp_adjtime 245 /* not implemented */ +#define __NR_osf_ntp_gettime 246 /* not implemented */ +#define __NR_osf_pathconf 247 /* not implemented */ +#define __NR_osf_fpathconf 248 /* not implemented */ + +#define __NR_osf_uswitch 250 /* not implemented */ +#define __NR_osf_usleep_thread 251 +#define __NR_osf_audcntl 252 /* not implemented */ +#define __NR_osf_audgen 253 /* not implemented */ +#define __NR_sysfs 254 +#define __NR_osf_subsys_info 255 /* not implemented */ +#define __NR_osf_getsysinfo 256 +#define __NR_osf_setsysinfo 257 +#define __NR_osf_afs_syscall 258 /* not implemented */ +#define __NR_osf_swapctl 259 /* not implemented */ +#define __NR_osf_memcntl 260 /* not implemented */ +#define __NR_osf_fdatasync 261 /* not implemented */ + +/* + * Ignore legacy syscalls that we don't use. + */ +#define __IGNORE_alarm +#define __IGNORE_creat +#define __IGNORE_getegid +#define __IGNORE_geteuid +#define __IGNORE_getgid +#define __IGNORE_getpid +#define __IGNORE_getppid +#define __IGNORE_getuid +#define __IGNORE_pause +#define __IGNORE_time +#define __IGNORE_utime +#define __IGNORE_umount2 + +/* + * Linux-specific system calls begin at 300 + */ +#define __NR_bdflush 300 +#define __NR_sethae 301 +#define __NR_mount 302 +#define __NR_old_adjtimex 303 +#define __NR_swapoff 304 +#define __NR_getdents 305 +#define __NR_create_module 306 +#define __NR_init_module 307 +#define __NR_delete_module 308 +#define __NR_get_kernel_syms 309 +#define __NR_syslog 310 +#define __NR_reboot 311 +#define __NR_clone 312 +#define __NR_uselib 313 +#define __NR_mlock 314 +#define __NR_munlock 315 +#define __NR_mlockall 316 +#define __NR_munlockall 317 +#define __NR_sysinfo 318 +#define __NR__sysctl 319 +/* 320 was sys_idle. */ +#define __NR_oldumount 321 +#define __NR_swapon 322 +#define __NR_times 323 +#define __NR_personality 324 +#define __NR_setfsuid 325 +#define __NR_setfsgid 326 +#define __NR_ustat 327 +#define __NR_statfs 328 +#define __NR_fstatfs 329 +#define __NR_sched_setparam 330 +#define __NR_sched_getparam 331 +#define __NR_sched_setscheduler 332 +#define __NR_sched_getscheduler 333 +#define __NR_sched_yield 334 +#define __NR_sched_get_priority_max 335 +#define __NR_sched_get_priority_min 336 +#define __NR_sched_rr_get_interval 337 +#define __NR_afs_syscall 338 +#define __NR_uname 339 +#define __NR_nanosleep 340 +#define __NR_mremap 341 +#define __NR_nfsservctl 342 +#define __NR_setresuid 343 +#define __NR_getresuid 344 +#define __NR_pciconfig_read 345 +#define __NR_pciconfig_write 346 +#define __NR_query_module 347 +#define __NR_prctl 348 +#define __NR_pread64 349 +#define __NR_pwrite64 350 +#define __NR_rt_sigreturn 351 +#define __NR_rt_sigaction 352 +#define __NR_rt_sigprocmask 353 +#define __NR_rt_sigpending 354 +#define __NR_rt_sigtimedwait 355 +#define __NR_rt_sigqueueinfo 356 +#define __NR_rt_sigsuspend 357 +#define __NR_select 358 +#define __NR_gettimeofday 359 +#define __NR_settimeofday 360 +#define __NR_getitimer 361 +#define __NR_setitimer 362 +#define __NR_utimes 363 +#define __NR_getrusage 364 +#define __NR_wait4 365 +#define __NR_adjtimex 366 +#define __NR_getcwd 367 +#define __NR_capget 368 +#define __NR_capset 369 +#define __NR_sendfile 370 +#define __NR_setresgid 371 +#define __NR_getresgid 372 +#define __NR_dipc 373 +#define __NR_pivot_root 374 +#define __NR_mincore 375 +#define __NR_pciconfig_iobase 376 +#define __NR_getdents64 377 +#define __NR_gettid 378 +#define __NR_readahead 379 +/* 380 is unused */ +#define __NR_tkill 381 +#define __NR_setxattr 382 +#define __NR_lsetxattr 383 +#define __NR_fsetxattr 384 +#define __NR_getxattr 385 +#define __NR_lgetxattr 386 +#define __NR_fgetxattr 387 +#define __NR_listxattr 388 +#define __NR_llistxattr 389 +#define __NR_flistxattr 390 +#define __NR_removexattr 391 +#define __NR_lremovexattr 392 +#define __NR_fremovexattr 393 +#define __NR_futex 394 +#define __NR_sched_setaffinity 395 +#define __NR_sched_getaffinity 396 +#define __NR_tuxcall 397 +#define __NR_io_setup 398 +#define __NR_io_destroy 399 +#define __NR_io_getevents 400 +#define __NR_io_submit 401 +#define __NR_io_cancel 402 +#define __NR_exit_group 405 +#define __NR_lookup_dcookie 406 +#define __NR_epoll_create 407 +#define __NR_epoll_ctl 408 +#define __NR_epoll_wait 409 +/* Feb 2007: These three sys_epoll defines shouldn't be here but culling + * them would break userspace apps ... we'll kill them off in 2010 :) */ +#define __NR_sys_epoll_create __NR_epoll_create +#define __NR_sys_epoll_ctl __NR_epoll_ctl +#define __NR_sys_epoll_wait __NR_epoll_wait +#define __NR_remap_file_pages 410 +#define __NR_set_tid_address 411 +#define __NR_restart_syscall 412 +#define __NR_fadvise64 413 +#define __NR_timer_create 414 +#define __NR_timer_settime 415 +#define __NR_timer_gettime 416 +#define __NR_timer_getoverrun 417 +#define __NR_timer_delete 418 +#define __NR_clock_settime 419 +#define __NR_clock_gettime 420 +#define __NR_clock_getres 421 +#define __NR_clock_nanosleep 422 +#define __NR_semtimedop 423 +#define __NR_tgkill 424 +#define __NR_stat64 425 +#define __NR_lstat64 426 +#define __NR_fstat64 427 +#define __NR_vserver 428 +#define __NR_mbind 429 +#define __NR_get_mempolicy 430 +#define __NR_set_mempolicy 431 +#define __NR_mq_open 432 +#define __NR_mq_unlink 433 +#define __NR_mq_timedsend 434 +#define __NR_mq_timedreceive 435 +#define __NR_mq_notify 436 +#define __NR_mq_getsetattr 437 +#define __NR_waitid 438 +#define __NR_add_key 439 +#define __NR_request_key 440 +#define __NR_keyctl 441 +#define __NR_ioprio_set 442 +#define __NR_ioprio_get 443 +#define __NR_inotify_init 444 +#define __NR_inotify_add_watch 445 +#define __NR_inotify_rm_watch 446 +#define __NR_fdatasync 447 +#define __NR_kexec_load 448 +#define __NR_migrate_pages 449 +#define __NR_openat 450 +#define __NR_mkdirat 451 +#define __NR_mknodat 452 +#define __NR_fchownat 453 +#define __NR_futimesat 454 +#define __NR_fstatat64 455 +#define __NR_unlinkat 456 +#define __NR_renameat 457 +#define __NR_linkat 458 +#define __NR_symlinkat 459 +#define __NR_readlinkat 460 +#define __NR_fchmodat 461 +#define __NR_faccessat 462 +#define __NR_pselect6 463 +#define __NR_ppoll 464 +#define __NR_unshare 465 +#define __NR_set_robust_list 466 +#define __NR_get_robust_list 467 +#define __NR_splice 468 +#define __NR_sync_file_range 469 +#define __NR_tee 470 +#define __NR_vmsplice 471 +#define __NR_move_pages 472 +#define __NR_getcpu 473 +#define __NR_epoll_pwait 474 +#define __NR_utimensat 475 +#define __NR_signalfd 476 +#define __NR_timerfd 477 +#define __NR_eventfd 478 +#define __NR_recvmmsg 479 +#define __NR_fallocate 480 +#define __NR_timerfd_create 481 +#define __NR_timerfd_settime 482 +#define __NR_timerfd_gettime 483 +#define __NR_signalfd4 484 +#define __NR_eventfd2 485 +#define __NR_epoll_create1 486 +#define __NR_dup3 487 +#define __NR_pipe2 488 +#define __NR_inotify_init1 489 +#define __NR_preadv 490 +#define __NR_pwritev 491 +#define __NR_rt_tgsigqueueinfo 492 +#define __NR_perf_event_open 493 +#define __NR_fanotify_init 494 +#define __NR_fanotify_mark 495 +#define __NR_prlimit64 496 +#define __NR_name_to_handle_at 497 +#define __NR_open_by_handle_at 498 +#define __NR_clock_adjtime 499 +#define __NR_syncfs 500 +#define __NR_setns 501 +#define __NR_accept4 502 +#define __NR_sendmmsg 503 +#define __NR_process_vm_readv 504 +#define __NR_process_vm_writev 505 + +#endif /* _UAPI_ALPHA_UNISTD_H */ diff --git a/trunk/arch/alpha/kernel/signal.c b/trunk/arch/alpha/kernel/signal.c index 336393c9c11f..02d02c047f17 100644 --- a/trunk/arch/alpha/kernel/signal.c +++ b/trunk/arch/alpha/kernel/signal.c @@ -122,12 +122,6 @@ SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask) return sigsuspend(&blocked); } -asmlinkage int -sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) -{ - return do_sigaltstack(uss, uoss, rdusp()); -} - /* * Do a signal return; undo the signal stack. */ @@ -418,9 +412,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, err |= __put_user(0, &frame->uc.uc_flags); err |= __put_user(0, &frame->uc.uc_link); err |= __put_user(set->sig[0], &frame->uc.uc_osf_sigmask); - err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); - err |= __put_user(sas_ss_flags(oldsp), &frame->uc.uc_stack.ss_flags); - err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); + err |= __save_altstack(&frame->uc.uc_stack, oldsp); err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0], oldsp); err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 2277f9530b00..f95ba14ae3d0 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -12,8 +12,6 @@ config ARM select GENERIC_CLOCKEVENTS_BROADCAST if SMP select GENERIC_IRQ_PROBE select GENERIC_IRQ_SHOW - select GENERIC_KERNEL_THREAD - select GENERIC_KERNEL_EXECVE select GENERIC_PCI_IOMAP select GENERIC_SMP_IDLE_THREAD select GENERIC_STRNCPY_FROM_USER @@ -533,6 +531,7 @@ config ARCH_IXP4XX config ARCH_DOVE bool "Marvell Dove" select ARCH_REQUIRE_GPIOLIB + select COMMON_CLK_DOVE select CPU_V7 select GENERIC_CLOCKEVENTS select MIGHT_HAVE_PCI diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index 49ca86e37b8d..fe4d9c3ad761 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -44,7 +44,7 @@ #else -#include +#include CONFIG_DEBUG_LL_INCLUDE .macro writeb, ch, rb senduart \ch, \rb diff --git a/trunk/arch/arm/boot/dts/Makefile b/trunk/arch/arm/boot/dts/Makefile index 2af359cfe985..e44da40d984f 100644 --- a/trunk/arch/arm/boot/dts/Makefile +++ b/trunk/arch/arm/boot/dts/Makefile @@ -42,11 +42,10 @@ dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ exynos4210-smdkv310.dtb \ exynos4210-trats.dtb \ - exynos5250-smdk5250.dtb \ - exynos5440-ssdk5440.dtb \ exynos4412-smdk4412.dtb \ exynos5250-smdk5250.dtb \ - exynos5250-snow.dtb + exynos5250-snow.dtb \ + exynos5440-ssdk5440.dtb dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \ ecx-2000.dtb dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ @@ -77,7 +76,9 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \ msm8960-cdp.dtb dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ - armada-xp-db.dtb + armada-370-mirabox.dtb \ + armada-xp-db.dtb \ + armada-xp-openblocks-ax3-4.dtb dtb-$(CONFIG_ARCH_MXC) += imx51-babbage.dtb \ imx53-ard.dtb \ imx53-evk.dtb \ @@ -105,6 +106,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ omap3-evm.dtb \ omap3-tobi.dtb \ omap4-panda.dtb \ + omap4-panda-a4.dtb \ omap4-panda-es.dtb \ omap4-var-som.dtb \ omap4-sdp.dtb \ @@ -126,10 +128,11 @@ dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \ spear1340-evb.dtb dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \ spear310-evb.dtb \ - spear320-evb.dtb + spear320-evb.dtb \ + spear320-hmi.dtb dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb -dtb-$(CONFIG_ARCH_SUNXI) += sun4i-cubieboard.dtb \ - sun5i-olinuxino.dtb +dtb-$(CONFIG_ARCH_SUNXI) += sun4i-a10-cubieboard.dtb \ + sun5i-a13-olinuxino.dtb dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ tegra20-medcom-wide.dtb \ tegra20-paz00.dtb \ diff --git a/trunk/arch/arm/boot/dts/armada-370-db.dts b/trunk/arch/arm/boot/dts/armada-370-db.dts index fffd5c2a3041..00044026ef1f 100644 --- a/trunk/arch/arm/boot/dts/armada-370-db.dts +++ b/trunk/arch/arm/boot/dts/armada-370-db.dts @@ -34,9 +34,30 @@ clock-frequency = <200000000>; status = "okay"; }; - timer@d0020300 { - clock-frequency = <600000000>; + sata@d00a0000 { + nr-ports = <2>; status = "okay"; }; + + mdio { + phy0: ethernet-phy@0 { + reg = <0>; + }; + + phy1: ethernet-phy@1 { + reg = <1>; + }; + }; + + ethernet@d0070000 { + status = "okay"; + phy = <&phy0>; + phy-mode = "rgmii-id"; + }; + ethernet@d0074000 { + status = "okay"; + phy = <&phy1>; + phy-mode = "rgmii-id"; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/armada-370-mirabox.dts b/trunk/arch/arm/boot/dts/armada-370-mirabox.dts new file mode 100644 index 000000000000..3b4071336599 --- /dev/null +++ b/trunk/arch/arm/boot/dts/armada-370-mirabox.dts @@ -0,0 +1,56 @@ +/* + * Device Tree file for Globalscale Mirabox + * + * Gregory CLEMENT + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; +/include/ "armada-370.dtsi" + +/ { + model = "Globalscale Mirabox"; + compatible = "globalscale,mirabox", "marvell,armada370", "marvell,armada-370-xp"; + + chosen { + bootargs = "console=ttyS0,115200 earlyprintk"; + }; + + memory { + device_type = "memory"; + reg = <0x00000000 0x20000000>; /* 512 MB */ + }; + + soc { + serial@d0012000 { + clock-frequency = <200000000>; + status = "okay"; + }; + timer@d0020300 { + clock-frequency = <600000000>; + status = "okay"; + }; + mdio { + phy0: ethernet-phy@0 { + reg = <0>; + }; + + phy1: ethernet-phy@1 { + reg = <1>; + }; + }; + ethernet@d0070000 { + status = "okay"; + phy = <&phy0>; + phy-mode = "rgmii-id"; + }; + ethernet@d0074000 { + status = "okay"; + phy = <&phy1>; + phy-mode = "rgmii-id"; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/armada-370-xp.dtsi b/trunk/arch/arm/boot/dts/armada-370-xp.dtsi index 16cc82cdaa81..cf6c48a09eac 100644 --- a/trunk/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/trunk/arch/arm/boot/dts/armada-370-xp.dtsi @@ -20,7 +20,7 @@ / { model = "Marvell Armada 370 and XP SoC"; - compatible = "marvell,armada_370_xp"; + compatible = "marvell,armada-370-xp"; cpus { cpu@0 { @@ -36,6 +36,12 @@ interrupt-controller; }; + coherency-fabric@d0020200 { + compatible = "marvell,coherency-fabric"; + reg = <0xd0020200 0xb0>, + <0xd0021810 0x1c>; + }; + soc { #address-cells = <1>; #size-cells = <1>; @@ -62,12 +68,67 @@ compatible = "marvell,armada-370-xp-timer"; reg = <0xd0020300 0x30>; interrupts = <37>, <38>, <39>, <40>; + clocks = <&coreclk 2>; }; addr-decoding@d0020000 { compatible = "marvell,armada-addr-decoding-controller"; reg = <0xd0020000 0x258>; }; + + sata@d00a0000 { + compatible = "marvell,orion-sata"; + reg = <0xd00a0000 0x2400>; + interrupts = <55>; + clocks = <&gateclk 15>, <&gateclk 30>; + clock-names = "0", "1"; + status = "disabled"; + }; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + compatible = "marvell,orion-mdio"; + reg = <0xd0072004 0x4>; + }; + + ethernet@d0070000 { + compatible = "marvell,armada-370-neta"; + reg = <0xd0070000 0x2500>; + interrupts = <8>; + clocks = <&gateclk 4>; + status = "disabled"; + }; + + ethernet@d0074000 { + compatible = "marvell,armada-370-neta"; + reg = <0xd0074000 0x2500>; + interrupts = <10>; + clocks = <&gateclk 3>; + status = "disabled"; + }; + + i2c0: i2c@d0011000 { + compatible = "marvell,mv64xxx-i2c"; + reg = <0xd0011000 0x20>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <31>; + timeout-ms = <1000>; + clocks = <&coreclk 0>; + status = "disabled"; + }; + + i2c1: i2c@d0011100 { + compatible = "marvell,mv64xxx-i2c"; + reg = <0xd0011100 0x20>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <32>; + timeout-ms = <1000>; + clocks = <&coreclk 0>; + status = "disabled"; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/armada-370.dtsi b/trunk/arch/arm/boot/dts/armada-370.dtsi index 2069151afe01..636cf7d4009e 100644 --- a/trunk/arch/arm/boot/dts/armada-370.dtsi +++ b/trunk/arch/arm/boot/dts/armada-370.dtsi @@ -20,6 +20,12 @@ / { model = "Marvell Armada 370 family SoC"; compatible = "marvell,armada370", "marvell,armada-370-xp"; + L2: l2-cache { + compatible = "marvell,aurora-outer-cache"; + reg = <0xd0008000 0x1000>; + cache-id-part = <0x100>; + wt-override; + }; aliases { gpio0 = &gpio0; @@ -75,5 +81,56 @@ #interrupts-cells = <2>; interrupts = <91>; }; + + coreclk: mvebu-sar@d0018230 { + compatible = "marvell,armada-370-core-clock"; + reg = <0xd0018230 0x08>; + #clock-cells = <1>; + }; + + gateclk: clock-gating-control@d0018220 { + compatible = "marvell,armada-370-gating-clock"; + reg = <0xd0018220 0x4>; + clocks = <&coreclk 0>; + #clock-cells = <1>; + }; + + xor@d0060800 { + compatible = "marvell,orion-xor"; + reg = <0xd0060800 0x100 + 0xd0060A00 0x100>; + status = "okay"; + + xor00 { + interrupts = <51>; + dmacap,memcpy; + dmacap,xor; + }; + xor01 { + interrupts = <52>; + dmacap,memcpy; + dmacap,xor; + dmacap,memset; + }; + }; + + xor@d0060900 { + compatible = "marvell,orion-xor"; + reg = <0xd0060900 0x100 + 0xd0060b00 0x100>; + status = "okay"; + + xor10 { + interrupts = <94>; + dmacap,memcpy; + dmacap,xor; + }; + xor11 { + interrupts = <95>; + dmacap,memcpy; + dmacap,xor; + dmacap,memset; + }; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/armada-xp-db.dts b/trunk/arch/arm/boot/dts/armada-xp-db.dts index b1fc728515e9..8e53b25b5508 100644 --- a/trunk/arch/arm/boot/dts/armada-xp-db.dts +++ b/trunk/arch/arm/boot/dts/armada-xp-db.dts @@ -46,5 +46,49 @@ clock-frequency = <250000000>; status = "okay"; }; + + sata@d00a0000 { + nr-ports = <2>; + status = "okay"; + }; + + mdio { + phy0: ethernet-phy@0 { + reg = <0>; + }; + + phy1: ethernet-phy@1 { + reg = <1>; + }; + + phy2: ethernet-phy@2 { + reg = <25>; + }; + + phy3: ethernet-phy@3 { + reg = <27>; + }; + }; + + ethernet@d0070000 { + status = "okay"; + phy = <&phy0>; + phy-mode = "rgmii-id"; + }; + ethernet@d0074000 { + status = "okay"; + phy = <&phy1>; + phy-mode = "rgmii-id"; + }; + ethernet@d0030000 { + status = "okay"; + phy = <&phy2>; + phy-mode = "sgmii"; + }; + ethernet@d0034000 { + status = "okay"; + phy = <&phy3>; + phy-mode = "sgmii"; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi index ea355192be6f..c45c7b4dc352 100644 --- a/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi +++ b/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi @@ -24,6 +24,18 @@ gpio1 = &gpio1; }; + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "marvell,sheeva-v7"; + reg = <0>; + clocks = <&cpuclk 0>; + }; + } + soc { pinctrl { compatible = "marvell,mv78230-pinctrl"; diff --git a/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi index 2057863f3dfa..a2aee5707377 100644 --- a/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi +++ b/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi @@ -25,6 +25,25 @@ gpio2 = &gpio2; }; + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "marvell,sheeva-v7"; + reg = <0>; + clocks = <&cpuclk 0>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "marvell,sheeva-v7"; + reg = <1>; + clocks = <&cpuclk 1>; + }; + }; + soc { pinctrl { compatible = "marvell,mv78260-pinctrl"; diff --git a/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi index ffac98373792..da03a129243a 100644 --- a/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi +++ b/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi @@ -25,6 +25,40 @@ gpio2 = &gpio2; }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "marvell,sheeva-v7"; + reg = <0>; + clocks = <&cpuclk 0>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "marvell,sheeva-v7"; + reg = <1>; + clocks = <&cpuclk 1>; + }; + + cpu@2 { + device_type = "cpu"; + compatible = "marvell,sheeva-v7"; + reg = <2>; + clocks = <&cpuclk 2>; + }; + + cpu@3 { + device_type = "cpu"; + compatible = "marvell,sheeva-v7"; + reg = <3>; + clocks = <&cpuclk 3>; + }; + }; + soc { pinctrl { compatible = "marvell,mv78460-pinctrl"; diff --git a/trunk/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/trunk/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts new file mode 100644 index 000000000000..b42652fd3d8c --- /dev/null +++ b/trunk/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts @@ -0,0 +1,125 @@ +/* + * Device Tree file for OpenBlocks AX3-4 board + * + * Copyright (C) 2012 Marvell + * + * Thomas Petazzoni + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; +/include/ "armada-xp-mv78260.dtsi" + +/ { + model = "PlatHome OpenBlocks AX3-4 board"; + compatible = "plathome,openblocks-ax3-4", "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp"; + + chosen { + bootargs = "console=ttyS0,115200 earlyprintk"; + }; + + memory { + device_type = "memory"; + reg = <0x00000000 0xC0000000>; /* 3 GB */ + }; + + soc { + serial@d0012000 { + clock-frequency = <250000000>; + status = "okay"; + }; + serial@d0012100 { + clock-frequency = <250000000>; + status = "okay"; + }; + pinctrl { + led_pins: led-pins-0 { + marvell,pins = "mpp49", "mpp51", "mpp53"; + marvell,function = "gpio"; + }; + }; + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&led_pins>; + + red_led { + label = "red_led"; + gpios = <&gpio1 17 1>; + default-state = "off"; + }; + + yellow_led { + label = "yellow_led"; + gpios = <&gpio1 19 1>; + default-state = "off"; + }; + + green_led { + label = "green_led"; + gpios = <&gpio1 21 1>; + default-state = "off"; + linux,default-trigger = "heartbeat"; + }; + }; + + mdio { + phy0: ethernet-phy@0 { + reg = <0>; + }; + + phy1: ethernet-phy@1 { + reg = <1>; + }; + + phy2: ethernet-phy@2 { + reg = <2>; + }; + + phy3: ethernet-phy@3 { + reg = <3>; + }; + }; + + ethernet@d0070000 { + status = "okay"; + phy = <&phy0>; + phy-mode = "sgmii"; + }; + ethernet@d0074000 { + status = "okay"; + phy = <&phy1>; + phy-mode = "sgmii"; + }; + ethernet@d0030000 { + status = "okay"; + phy = <&phy2>; + phy-mode = "sgmii"; + }; + ethernet@d0034000 { + status = "okay"; + phy = <&phy3>; + phy-mode = "sgmii"; + }; + i2c@d0011000 { + status = "okay"; + clock-frequency = <400000>; + }; + i2c@d0011100 { + status = "okay"; + clock-frequency = <400000>; + + s35390a: s35390a@30 { + compatible = "s35390a"; + reg = <0x30>; + }; + }; + sata@d00a0000 { + nr-ports = <2>; + status = "okay"; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/armada-xp.dtsi b/trunk/arch/arm/boot/dts/armada-xp.dtsi index 71d6b5d0daf1..367aa3f94912 100644 --- a/trunk/arch/arm/boot/dts/armada-xp.dtsi +++ b/trunk/arch/arm/boot/dts/armada-xp.dtsi @@ -22,9 +22,22 @@ model = "Marvell Armada XP family SoC"; compatible = "marvell,armadaxp", "marvell,armada-370-xp"; + L2: l2-cache { + compatible = "marvell,aurora-system-cache"; + reg = <0xd0008000 0x1000>; + cache-id-part = <0x100>; + wt-override; + }; + mpic: interrupt-controller@d0020000 { reg = <0xd0020a00 0x1d0>, - <0xd0021870 0x58>; + <0xd0021070 0x58>; + }; + + armada-370-xp-pmsu@d0022000 { + compatible = "marvell,armada-370-xp-pmsu"; + reg = <0xd0022100 0x430>, + <0xd0020800 0x20>; }; soc { @@ -47,9 +60,85 @@ marvell,timer-25Mhz; }; + coreclk: mvebu-sar@d0018230 { + compatible = "marvell,armada-xp-core-clock"; + reg = <0xd0018230 0x08>; + #clock-cells = <1>; + }; + + cpuclk: clock-complex@d0018700 { + #clock-cells = <1>; + compatible = "marvell,armada-xp-cpu-clock"; + reg = <0xd0018700 0xA0>; + clocks = <&coreclk 1>; + }; + + gateclk: clock-gating-control@d0018220 { + compatible = "marvell,armada-xp-gating-clock"; + reg = <0xd0018220 0x4>; + clocks = <&coreclk 0>; + #clock-cells = <1>; + }; + system-controller@d0018200 { compatible = "marvell,armada-370-xp-system-controller"; reg = <0xd0018200 0x500>; }; + + ethernet@d0030000 { + compatible = "marvell,armada-370-neta"; + reg = <0xd0030000 0x2500>; + interrupts = <12>; + clocks = <&gateclk 2>; + status = "disabled"; + }; + + ethernet@d0034000 { + compatible = "marvell,armada-370-neta"; + reg = <0xd0034000 0x2500>; + interrupts = <14>; + clocks = <&gateclk 1>; + status = "disabled"; + }; + + xor@d0060900 { + compatible = "marvell,orion-xor"; + reg = <0xd0060900 0x100 + 0xd0060b00 0x100>; + clocks = <&gateclk 22>; + status = "okay"; + + xor10 { + interrupts = <51>; + dmacap,memcpy; + dmacap,xor; + }; + xor11 { + interrupts = <52>; + dmacap,memcpy; + dmacap,xor; + dmacap,memset; + }; + }; + + xor@d00f0900 { + compatible = "marvell,orion-xor"; + reg = <0xd00F0900 0x100 + 0xd00F0B00 0x100>; + clocks = <&gateclk 28>; + status = "okay"; + + xor00 { + interrupts = <94>; + dmacap,memcpy; + dmacap,xor; + }; + xor01 { + interrupts = <95>; + dmacap,memcpy; + dmacap,xor; + dmacap,memset; + }; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/at91sam9263.dtsi b/trunk/arch/arm/boot/dts/at91sam9263.dtsi index 8e6251f1f7a3..32ec62cf5385 100644 --- a/trunk/arch/arm/boot/dts/at91sam9263.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9263.dtsi @@ -368,14 +368,14 @@ compatible = "atmel,at91rm9200-ssc"; reg = <0xfff98000 0x4000>; interrupts = <16 4 5>; - status = "disable"; + status = "disabled"; }; ssc1: ssc@fff9c000 { compatible = "atmel,at91rm9200-ssc"; reg = <0xfff9c000 0x4000>; interrupts = <17 4 5>; - status = "disable"; + status = "disabled"; }; macb0: ethernet@fffbc000 { diff --git a/trunk/arch/arm/boot/dts/at91sam9g45.dtsi b/trunk/arch/arm/boot/dts/at91sam9g45.dtsi index fa1ae0c5479c..231858ffd850 100644 --- a/trunk/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9g45.dtsi @@ -425,14 +425,14 @@ compatible = "atmel,at91sam9g45-ssc"; reg = <0xfff9c000 0x4000>; interrupts = <16 4 5>; - status = "disable"; + status = "disabled"; }; ssc1: ssc@fffa0000 { compatible = "atmel,at91sam9g45-ssc"; reg = <0xfffa0000 0x4000>; interrupts = <17 4 5>; - status = "disable"; + status = "disabled"; }; adc0: adc@fffb0000 { diff --git a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi b/trunk/arch/arm/boot/dts/at91sam9x5.dtsi index 617ede541ca2..40ac3a4eb1ab 100644 --- a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9x5.dtsi @@ -92,7 +92,7 @@ compatible = "atmel,at91sam9g45-ssc"; reg = <0xf0010000 0x4000>; interrupts = <28 4 5>; - status = "disable"; + status = "disabled"; }; tcb0: timer@f8008000 { diff --git a/trunk/arch/arm/boot/dts/dove.dtsi b/trunk/arch/arm/boot/dts/dove.dtsi index 61f391412a5a..f3f7e9d8adca 100644 --- a/trunk/arch/arm/boot/dts/dove.dtsi +++ b/trunk/arch/arm/boot/dts/dove.dtsi @@ -37,6 +37,19 @@ reg = <0x20204 0x04>, <0x20214 0x04>; }; + core_clk: core-clocks@d0214 { + compatible = "marvell,dove-core-clock"; + reg = <0xd0214 0x4>; + #clock-cells = <1>; + }; + + gate_clk: clock-gating-control@d0038 { + compatible = "marvell,dove-gating-clock"; + reg = <0xd0038 0x4>; + clocks = <&core_clk 0>; + #clock-cells = <1>; + }; + uart0: serial@12000 { compatible = "ns16550a"; reg = <0x12000 0x100>; @@ -113,6 +126,7 @@ cell-index = <0>; interrupts = <6>; reg = <0x10600 0x28>; + clocks = <&core_clk 0>; status = "disabled"; }; @@ -123,6 +137,7 @@ cell-index = <1>; interrupts = <5>; reg = <0x14600 0x28>; + clocks = <&core_clk 0>; status = "disabled"; }; @@ -134,6 +149,7 @@ interrupts = <11>; clock-frequency = <400000>; timeout-ms = <1000>; + clocks = <&core_clk 0>; status = "disabled"; }; @@ -141,6 +157,7 @@ compatible = "marvell,dove-sdhci"; reg = <0x92000 0x100>; interrupts = <35>, <37>; + clocks = <&gate_clk 8>; status = "disabled"; }; @@ -148,6 +165,7 @@ compatible = "marvell,dove-sdhci"; reg = <0x90000 0x100>; interrupts = <36>, <38>; + clocks = <&gate_clk 9>; status = "disabled"; }; @@ -155,6 +173,7 @@ compatible = "marvell,orion-sata"; reg = <0xa0000 0x2400>; interrupts = <62>; + clocks = <&gate_clk 3>; nr-ports = <1>; status = "disabled"; }; @@ -165,7 +184,50 @@ <0xc8000000 0x800>; reg-names = "regs", "sram"; interrupts = <31>; + clocks = <&gate_clk 15>; + status = "okay"; + }; + + xor0: dma-engine@60800 { + compatible = "marvell,orion-xor"; + reg = <0x60800 0x100 + 0x60a00 0x100>; + clocks = <&gate_clk 23>; status = "okay"; + + channel0 { + interrupts = <39>; + dmacap,memcpy; + dmacap,xor; + }; + + channel1 { + interrupts = <40>; + dmacap,memset; + dmacap,memcpy; + dmacap,xor; + }; + }; + + xor1: dma-engine@60900 { + compatible = "marvell,orion-xor"; + reg = <0x60900 0x100 + 0x60b00 0x100>; + clocks = <&gate_clk 24>; + status = "okay"; + + channel0 { + interrupts = <42>; + dmacap,memcpy; + dmacap,xor; + }; + + channel1 { + interrupts = <43>; + dmacap,memset; + dmacap,memcpy; + dmacap,xor; + }; }; }; }; diff --git a/trunk/arch/arm/boot/dts/exynos5250.dtsi b/trunk/arch/arm/boot/dts/exynos5250.dtsi index 36d8246ea50e..2e3b6efaf1a2 100644 --- a/trunk/arch/arm/boot/dts/exynos5250.dtsi +++ b/trunk/arch/arm/boot/dts/exynos5250.dtsi @@ -35,6 +35,15 @@ mshc1 = &dwmmc_1; mshc2 = &dwmmc_2; mshc3 = &dwmmc_3; + i2c0 = &i2c_0; + i2c1 = &i2c_1; + i2c2 = &i2c_2; + i2c3 = &i2c_3; + i2c4 = &i2c_4; + i2c5 = &i2c_5; + i2c6 = &i2c_6; + i2c7 = &i2c_7; + i2c8 = &i2c_8; }; gic:interrupt-controller@10481000 { @@ -119,7 +128,7 @@ reg = <0x12170000 0x1ff>; }; - i2c@12C60000 { + i2c_0: i2c@12C60000 { compatible = "samsung,s3c2440-i2c"; reg = <0x12C60000 0x100>; interrupts = <0 56 0>; @@ -127,7 +136,7 @@ #size-cells = <0>; }; - i2c@12C70000 { + i2c_1: i2c@12C70000 { compatible = "samsung,s3c2440-i2c"; reg = <0x12C70000 0x100>; interrupts = <0 57 0>; @@ -135,7 +144,7 @@ #size-cells = <0>; }; - i2c@12C80000 { + i2c_2: i2c@12C80000 { compatible = "samsung,s3c2440-i2c"; reg = <0x12C80000 0x100>; interrupts = <0 58 0>; @@ -143,7 +152,7 @@ #size-cells = <0>; }; - i2c@12C90000 { + i2c_3: i2c@12C90000 { compatible = "samsung,s3c2440-i2c"; reg = <0x12C90000 0x100>; interrupts = <0 59 0>; @@ -151,7 +160,7 @@ #size-cells = <0>; }; - i2c@12CA0000 { + i2c_4: i2c@12CA0000 { compatible = "samsung,s3c2440-i2c"; reg = <0x12CA0000 0x100>; interrupts = <0 60 0>; @@ -159,7 +168,7 @@ #size-cells = <0>; }; - i2c@12CB0000 { + i2c_5: i2c@12CB0000 { compatible = "samsung,s3c2440-i2c"; reg = <0x12CB0000 0x100>; interrupts = <0 61 0>; @@ -167,7 +176,7 @@ #size-cells = <0>; }; - i2c@12CC0000 { + i2c_6: i2c@12CC0000 { compatible = "samsung,s3c2440-i2c"; reg = <0x12CC0000 0x100>; interrupts = <0 62 0>; @@ -175,7 +184,7 @@ #size-cells = <0>; }; - i2c@12CD0000 { + i2c_7: i2c@12CD0000 { compatible = "samsung,s3c2440-i2c"; reg = <0x12CD0000 0x100>; interrupts = <0 63 0>; @@ -183,7 +192,7 @@ #size-cells = <0>; }; - i2c@12CE0000 { + i2c_8: i2c@12CE0000 { compatible = "samsung,s3c2440-hdmiphy-i2c"; reg = <0x12CE0000 0x1000>; interrupts = <0 64 0>; diff --git a/trunk/arch/arm/boot/dts/imx27-3ds.dts b/trunk/arch/arm/boot/dts/imx27-3ds.dts index b01c0d745fc5..fa04c7b18bcb 100644 --- a/trunk/arch/arm/boot/dts/imx27-3ds.dts +++ b/trunk/arch/arm/boot/dts/imx27-3ds.dts @@ -21,17 +21,17 @@ }; soc { - aipi@10000000 { /* aipi */ - + aipi@10000000 { /* aipi1 */ uart1: serial@1000a000 { fsl,uart-has-rtscts; status = "okay"; }; + }; - fec@1002b000 { + aipi@10020000 { /* aipi2 */ + ethernet@1002b000 { status = "okay"; }; }; }; - }; diff --git a/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts b/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts index af50469e34b2..53b0ec0c228e 100644 --- a/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts +++ b/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts @@ -21,8 +21,7 @@ }; soc { - aipi@10000000 { /* aipi */ - + aipi@10000000 { /* aipi1 */ serial@1000a000 { fsl,uart-has-rtscts; status = "okay"; @@ -38,10 +37,6 @@ status = "okay"; }; - ethernet@1002b000 { - status = "okay"; - }; - i2c@1001d000 { clock-frequency = <400000>; status = "okay"; @@ -60,6 +55,12 @@ }; }; }; + + aipi@10020000 { /* aipi2 */ + ethernet@1002b000 { + status = "okay"; + }; + }; }; nor_flash@c0000000 { diff --git a/trunk/arch/arm/boot/dts/imx27.dtsi b/trunk/arch/arm/boot/dts/imx27.dtsi index b8d3905915ac..5a82cb5707a8 100644 --- a/trunk/arch/arm/boot/dts/imx27.dtsi +++ b/trunk/arch/arm/boot/dts/imx27.dtsi @@ -55,7 +55,7 @@ compatible = "fsl,aipi-bus", "simple-bus"; #address-cells = <1>; #size-cells = <1>; - reg = <0x10000000 0x10000000>; + reg = <0x10000000 0x20000>; ranges; wdog: wdog@10002000 { @@ -211,6 +211,15 @@ status = "disabled"; }; + }; + + aipi@10020000 { /* AIPI2 */ + compatible = "fsl,aipi-bus", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x10020000 0x20000>; + ranges; + fec: ethernet@1002b000 { compatible = "fsl,imx27-fec"; reg = <0x1002b000 0x4000>; diff --git a/trunk/arch/arm/boot/dts/imx28-cfa10049.dts b/trunk/arch/arm/boot/dts/imx28-cfa10049.dts index b222614ac9e0..bdc80a4453dd 100644 --- a/trunk/arch/arm/boot/dts/imx28-cfa10049.dts +++ b/trunk/arch/arm/boot/dts/imx28-cfa10049.dts @@ -92,6 +92,30 @@ status = "okay"; }; + i2cmux { + compatible = "i2c-mux-gpio"; + #address-cells = <1>; + #size-cells = <0>; + mux-gpios = <&gpio1 22 0 &gpio1 23 0>; + i2c-parent = <&i2c1>; + + i2c@0 { + reg = <0>; + }; + + i2c@1 { + reg = <1>; + }; + + i2c@2 { + reg = <2>; + }; + + i2c@3 { + reg = <3>; + }; + }; + usbphy1: usbphy@8007e000 { status = "okay"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood.dtsi b/trunk/arch/arm/boot/dts/kirkwood.dtsi index a990c30f0a26..7735cee4a9c6 100644 --- a/trunk/arch/arm/boot/dts/kirkwood.dtsi +++ b/trunk/arch/arm/boot/dts/kirkwood.dtsi @@ -23,6 +23,12 @@ #address-cells = <1>; #size-cells = <1>; + core_clk: core-clocks@10030 { + compatible = "marvell,kirkwood-core-clock"; + reg = <0x10030 0x4>; + #clock-cells = <1>; + }; + gpio0: gpio@10100 { compatible = "marvell,orion-gpio"; #gpio-cells = <2>; @@ -48,6 +54,7 @@ reg = <0x12000 0x100>; reg-shift = <2>; interrupts = <33>; + clocks = <&gate_clk 7>; /* set clock-frequency in board dts */ status = "disabled"; }; @@ -57,6 +64,7 @@ reg = <0x12100 0x100>; reg-shift = <2>; interrupts = <34>; + clocks = <&gate_clk 7>; /* set clock-frequency in board dts */ status = "disabled"; }; @@ -74,13 +82,62 @@ cell-index = <0>; interrupts = <23>; reg = <0x10600 0x28>; + clocks = <&gate_clk 7>; status = "disabled"; }; + gate_clk: clock-gating-control@2011c { + compatible = "marvell,kirkwood-gating-clock"; + reg = <0x2011c 0x4>; + clocks = <&core_clk 0>; + #clock-cells = <1>; + }; + wdt@20300 { compatible = "marvell,orion-wdt"; reg = <0x20300 0x28>; + clocks = <&gate_clk 7>; + status = "okay"; + }; + + xor@60800 { + compatible = "marvell,orion-xor"; + reg = <0x60800 0x100 + 0x60A00 0x100>; + status = "okay"; + clocks = <&gate_clk 8>; + + xor00 { + interrupts = <5>; + dmacap,memcpy; + dmacap,xor; + }; + xor01 { + interrupts = <6>; + dmacap,memcpy; + dmacap,xor; + dmacap,memset; + }; + }; + + xor@60900 { + compatible = "marvell,orion-xor"; + reg = <0x60900 0x100 + 0xd0B00 0x100>; status = "okay"; + clocks = <&gate_clk 16>; + + xor00 { + interrupts = <7>; + dmacap,memcpy; + dmacap,xor; + }; + xor01 { + interrupts = <8>; + dmacap,memcpy; + dmacap,xor; + dmacap,memset; + }; }; ehci@50000 { @@ -94,6 +151,8 @@ compatible = "marvell,orion-sata"; reg = <0x80000 0x5000>; interrupts = <21>; + clocks = <&gate_clk 14>, <&gate_clk 15>; + clock-names = "0", "1"; status = "disabled"; }; @@ -107,6 +166,7 @@ reg = <0x3000000 0x400>; chip-delay = <25>; /* set partition map and/or chip-delay in board dts */ + clocks = <&gate_clk 7>; status = "disabled"; }; @@ -117,6 +177,7 @@ #size-cells = <0>; interrupts = <29>; clock-frequency = <100000>; + clocks = <&gate_clk 7>; status = "disabled"; }; @@ -126,6 +187,7 @@ <0xf5000000 0x800>; reg-names = "regs", "sram"; interrupts = <22>; + clocks = <&gate_clk 17>; status = "okay"; }; }; diff --git a/trunk/arch/arm/boot/dts/omap2420-h4.dts b/trunk/arch/arm/boot/dts/omap2420-h4.dts index 77b84e17c477..9b0d07746cba 100644 --- a/trunk/arch/arm/boot/dts/omap2420-h4.dts +++ b/trunk/arch/arm/boot/dts/omap2420-h4.dts @@ -15,6 +15,6 @@ memory { device_type = "memory"; - reg = <0x80000000 0x84000000>; /* 64 MB */ + reg = <0x80000000 0x4000000>; /* 64 MB */ }; }; diff --git a/trunk/arch/arm/boot/dts/socfpga.dtsi b/trunk/arch/arm/boot/dts/socfpga.dtsi index 0772f5739f59..19aec421bb26 100644 --- a/trunk/arch/arm/boot/dts/socfpga.dtsi +++ b/trunk/arch/arm/boot/dts/socfpga.dtsi @@ -143,5 +143,15 @@ reg-shift = <2>; reg-io-width = <4>; }; + + rstmgr@ffd05000 { + compatible = "altr,rst-mgr"; + reg = <0xffd05000 0x1000>; + }; + + sysmgr@ffd08000 { + compatible = "altr,sys-mgr"; + reg = <0xffd08000 0x4000>; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/spear1310-evb.dts b/trunk/arch/arm/boot/dts/spear1310-evb.dts index 2e4c5727468e..b56a801e42a2 100644 --- a/trunk/arch/arm/boot/dts/spear1310-evb.dts +++ b/trunk/arch/arm/boot/dts/spear1310-evb.dts @@ -30,10 +30,14 @@ pinctrl-0 = <&state_default>; state_default: pinmux { - i2c0-pmx { + i2c0 { st,pins = "i2c0_grp"; st,function = "i2c0"; }; + i2s0 { + st,pins = "i2s0_grp"; + st,function = "i2s0"; + }; i2s1 { st,pins = "i2s1_grp"; st,function = "i2s1"; @@ -42,6 +46,10 @@ st,pins = "arm_gpio_grp"; st,function = "arm_gpio"; }; + clcd { + st,pins = "clcd_grp" , "clcd_high_res"; + st,function = "clcd"; + }; eth { st,pins = "gmii_grp"; st,function = "gmii"; @@ -74,11 +82,6 @@ st,pins = "i2c_1_2_grp"; st,function = "i2c_1_2"; }; - pci { - st,pins = "pcie0_grp","pcie1_grp", - "pcie2_grp"; - st,function = "pci"; - }; smii { st,pins = "smii_0_1_2_grp"; st,function = "smii_0_1_2"; @@ -88,6 +91,14 @@ "nand_16bit_grp"; st,function = "nand"; }; + sata { + st,pins = "sata0_grp"; + st,function = "sata"; + }; + pcie { + st,pins = "pcie1_grp", "pcie2_grp"; + st,function = "pci_express"; + }; }; }; @@ -109,9 +120,49 @@ fsmc: flash@b0000000 { status = "okay"; + + partition@0 { + label = "xloader"; + reg = <0x0 0x80000>; + }; + partition@80000 { + label = "u-boot"; + reg = <0x80000 0x140000>; + }; + partition@1C0000 { + label = "environment"; + reg = <0x1C0000 0x40000>; + }; + partition@200000 { + label = "dtb"; + reg = <0x200000 0x40000>; + }; + partition@240000 { + label = "linux"; + reg = <0x240000 0xC00000>; + }; + partition@E40000 { + label = "rootfs"; + reg = <0xE40000 0x0>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + button@1 { + label = "wakeup"; + linux,code = <0x100>; + gpios = <&gpio0 7 0x4>; + debounce-interval = <20>; + gpio-key,wakeup = <1>; + }; }; gmac0: eth@e2000000 { + phy-mode = "gmii"; status = "okay"; }; @@ -135,23 +186,27 @@ }; partition@10000 { label = "u-boot"; - reg = <0x10000 0x40000>; + reg = <0x10000 0x50000>; + }; + partition@60000 { + label = "environment"; + reg = <0x60000 0x10000>; }; - partition@50000 { + partition@70000 { + label = "dtb"; + reg = <0x70000 0x10000>; + }; + partition@80000 { label = "linux"; - reg = <0x50000 0x2c0000>; + reg = <0x80000 0x310000>; }; - partition@310000 { + partition@390000 { label = "rootfs"; - reg = <0x310000 0x4f0000>; + reg = <0x390000 0x0>; }; }; }; - spi0: spi@e0100000 { - status = "okay"; - }; - ehci@e4800000 { status = "okay"; }; @@ -189,10 +244,6 @@ status = "okay"; }; - i2c1: i2c@5cd00000 { - status = "okay"; - }; - kbd@e0300000 { linux,keymap = < 0x00000001 0x00010002 @@ -277,6 +328,7 @@ 0x08080052 >; autorepeat; st,mode = <0>; + suspended_rate = <2000000>; status = "okay"; }; @@ -286,6 +338,81 @@ serial@e0000000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; + }; + + spi0: spi@e0100000 { + status = "okay"; + num-cs = <3>; + cs-gpios = <&gpio1 7 0>, <&spics 0>, <&spics 1>; + + stmpe610@0 { + compatible = "st,stmpe610"; + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + spi-max-frequency = <1000000>; + spi-cpha; + pl022,hierarchy = <0>; + pl022,interface = <0>; + pl022,slave-tx-disable; + pl022,com-mode = <0>; + pl022,rx-level-trig = <0>; + pl022,tx-level-trig = <0>; + pl022,ctrl-len = <0x7>; + pl022,wait-state = <0>; + pl022,duplex = <0>; + interrupts = <6 0x4>; + interrupt-parent = <&gpio1>; + irq-trigger = <0x2>; + + stmpe_touchscreen { + compatible = "st,stmpe-ts"; + ts,sample-time = <4>; + ts,mod-12b = <1>; + ts,ref-sel = <0>; + ts,adc-freq = <1>; + ts,ave-ctrl = <1>; + ts,touch-det-delay = <2>; + ts,settling = <2>; + ts,fraction-z = <7>; + ts,i-drive = <1>; + }; + }; + + m25p80@1 { + compatible = "st,m25p80"; + reg = <1>; + spi-max-frequency = <12000000>; + spi-cpol; + spi-cpha; + pl022,hierarchy = <0>; + pl022,interface = <0>; + pl022,slave-tx-disable; + pl022,com-mode = <0x2>; + pl022,rx-level-trig = <0>; + pl022,tx-level-trig = <0>; + pl022,ctrl-len = <0x11>; + pl022,wait-state = <0>; + pl022,duplex = <0>; + }; + + spidev@2 { + compatible = "spidev"; + reg = <2>; + spi-max-frequency = <25000000>; + spi-cpha; + pl022,hierarchy = <0>; + pl022,interface = <0>; + pl022,slave-tx-disable; + pl022,com-mode = <0x2>; + pl022,rx-level-trig = <0>; + pl022,tx-level-trig = <0>; + pl022,ctrl-len = <0x11>; + pl022,wait-state = <0>; + pl022,duplex = <0>; + }; }; wdt@ec800620 { diff --git a/trunk/arch/arm/boot/dts/spear1310.dtsi b/trunk/arch/arm/boot/dts/spear1310.dtsi index 7cd25eb4f8e0..1513c1927cc8 100644 --- a/trunk/arch/arm/boot/dts/spear1310.dtsi +++ b/trunk/arch/arm/boot/dts/spear1310.dtsi @@ -17,6 +17,18 @@ compatible = "st,spear1310"; ahb { + spics: spics@e0700000{ + compatible = "st,spear-spics-gpio"; + reg = <0xe0700000 0x1000>; + st-spics,peripcfg-reg = <0x3b0>; + st-spics,sw-enable-bit = <12>; + st-spics,cs-value-bit = <11>; + st-spics,cs-enable-mask = <3>; + st-spics,cs-enable-shift = <8>; + gpio-controller; + #gpio-cells = <2>; + }; + ahci@b1000000 { compatible = "snps,spear-ahci"; reg = <0xb1000000 0x10000>; @@ -43,6 +55,7 @@ reg = <0x5c400000 0x8000>; interrupts = <0 95 0x4>; interrupt-names = "macirq"; + phy-mode = "mii"; status = "disabled"; }; @@ -51,6 +64,7 @@ reg = <0x5c500000 0x8000>; interrupts = <0 96 0x4>; interrupt-names = "macirq"; + phy-mode = "mii"; status = "disabled"; }; @@ -59,6 +73,7 @@ reg = <0x5c600000 0x8000>; interrupts = <0 97 0x4>; interrupt-names = "macirq"; + phy-mode = "rmii"; status = "disabled"; }; @@ -67,6 +82,7 @@ reg = <0x5c700000 0x8000>; interrupts = <0 98 0x4>; interrupt-names = "macirq"; + phy-mode = "rgmii"; status = "disabled"; }; @@ -76,13 +92,6 @@ #gpio-range-cells = <2>; }; - spi1: spi@5d400000 { - compatible = "arm,pl022", "arm,primecell"; - reg = <0x5d400000 0x1000>; - interrupts = <0 99 0x4>; - status = "disabled"; - }; - apb { i2c1: i2c@5cd00000 { #address-cells = <1>; @@ -147,6 +156,15 @@ status = "disabled"; }; + spi1: spi@5d400000 { + compatible = "arm,pl022", "arm,primecell"; + reg = <0x5d400000 0x1000>; + interrupts = <0 99 0x4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + serial@5c800000 { compatible = "arm,pl011", "arm,primecell"; reg = <0x5c800000 0x1000>; diff --git a/trunk/arch/arm/boot/dts/spear1340-evb.dts b/trunk/arch/arm/boot/dts/spear1340-evb.dts index 045f7123ffac..d6c30ae0a8d7 100644 --- a/trunk/arch/arm/boot/dts/spear1340-evb.dts +++ b/trunk/arch/arm/boot/dts/spear1340-evb.dts @@ -38,20 +38,15 @@ st,pins = "fsmc_8bit_grp"; st,function = "fsmc"; }; - kbd { - st,pins = "keyboard_row_col_grp", - "keyboard_col5_grp"; - st,function = "keyboard"; - }; uart0 { - st,pins = "uart0_grp", "uart0_enh_grp"; + st,pins = "uart0_grp"; st,function = "uart0"; }; - i2c0-pmx { + i2c0 { st,pins = "i2c0_grp"; st,function = "i2c0"; }; - i2c1-pmx { + i2c1 { st,pins = "i2c1_grp"; st,function = "i2c1"; }; @@ -64,14 +59,9 @@ st,function = "spdif_out"; }; ssp0 { - st,pins = "ssp0_grp", "ssp0_cs1_grp", - "ssp0_cs3_grp"; + st,pins = "ssp0_grp", "ssp0_cs1_grp", "ssp0_cs2_grp", "ssp0_cs3_grp"; st,function = "ssp0"; }; - pwm { - st,pins = "pwm2_grp", "pwm3_grp"; - st,function = "pwm"; - }; smi-pmx { st,pins = "smi_grp"; st,function = "smi"; @@ -84,6 +74,18 @@ st,pins = "gmii_grp", "rgmii_grp"; st,function = "gmac"; }; + cam0 { + st,pins = "cam0_grp"; + st,function = "cam0"; + }; + cam1 { + st,pins = "cam1_grp"; + st,function = "cam1"; + }; + cam2 { + st,pins = "cam2_grp"; + st,function = "cam2"; + }; cam3 { st,pins = "cam3_grp"; st,function = "cam3"; @@ -108,9 +110,18 @@ st,pins = "sata_grp"; st,function = "sata"; }; + pcie { + st,pins = "pcie_grp"; + st,function = "pcie"; + }; + }; }; + ahci@b1000000 { + status = "okay"; + }; + dma@ea800000 { status = "okay"; }; @@ -121,9 +132,35 @@ fsmc: flash@b0000000 { status = "okay"; + + partition@0 { + label = "xloader"; + reg = <0x0 0x200000>; + }; + partition@200000 { + label = "u-boot"; + reg = <0x200000 0x200000>; + }; + partition@400000 { + label = "environment"; + reg = <0x400000 0x100000>; + }; + partition@500000 { + label = "dtb"; + reg = <0x500000 0x100000>; + }; + partition@600000 { + label = "linux"; + reg = <0x600000 0xC00000>; + }; + partition@1200000 { + label = "rootfs"; + reg = <0x1200000 0x0>; + }; }; gmac0: eth@e2000000 { + phy-mode = "rgmii"; status = "okay"; }; @@ -147,31 +184,62 @@ }; partition@10000 { label = "u-boot"; - reg = <0x10000 0x40000>; + reg = <0x10000 0x50000>; + }; + partition@60000 { + label = "environment"; + reg = <0x60000 0x10000>; }; - partition@50000 { + partition@70000 { + label = "dtb"; + reg = <0x70000 0x10000>; + }; + partition@80000 { label = "linux"; - reg = <0x50000 0x2c0000>; + reg = <0x80000 0x310000>; }; - partition@310000 { + partition@390000 { label = "rootfs"; - reg = <0x310000 0x4f0000>; + reg = <0x390000 0x0>; }; }; }; - spi0: spi@e0100000 { + ehci@e4800000 { status = "okay"; }; - ehci@e4800000 { - status = "okay"; + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + button@1 { + label = "wakeup"; + linux,code = <0x100>; + gpios = <&gpio1 1 0x4>; + debounce-interval = <20>; + gpio-key,wakeup = <1>; + }; }; ehci@e5800000 { status = "okay"; }; + i2s0: i2s-play@b2400000 { + status = "okay"; + }; + + i2s1: i2s-rec@b2000000 { + status = "okay"; + }; + + incodec: dir-hifi { + compatible = "dummy,dir-hifi"; + status = "okay"; + }; + ohci@e4000000 { status = "okay"; }; @@ -180,11 +248,43 @@ status = "okay"; }; + outcodec: dit-hifi { + compatible = "dummy,dit-hifi"; + status = "okay"; + }; + + sound { + compatible = "spear,spear-evb"; + audio-controllers = <&spdif0 &spdif1 &i2s0 &i2s1>; + audio-codecs = <&incodec &outcodec &sta529 &sta529>; + codec_dai_name = "dir-hifi", "dit-hifi", "sta529-audio", "sta529-audio"; + stream_name = "spdif-cap", "spdif-play", "i2s-play", "i2s-cap"; + dai_name = "spdifin-pcm", "spdifout-pcm", "i2s0-pcm", "i2s1-pcm"; + nr_controllers = <4>; + status = "okay"; + }; + + spdif0: spdif-in@d0100000 { + status = "okay"; + }; + + spdif1: spdif-out@d0000000 { + status = "okay"; + }; + apb { adc@e0080000 { status = "okay"; }; + i2s-play@b2400000 { + status = "okay"; + }; + + i2s-rec@b2000000 { + status = "okay"; + }; + gpio0: gpio@e0600000 { status = "okay"; }; @@ -199,10 +299,36 @@ i2c0: i2c@e0280000 { status = "okay"; + + sta529: sta529@1a { + compatible = "st,sta529"; + reg = <0x1a>; + }; }; i2c1: i2c@b4000000 { status = "okay"; + + eeprom0@56 { + compatible = "st,eeprom"; + reg = <0x56>; + }; + + stmpe801@41 { + compatible = "st,stmpe801"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x41>; + interrupts = <4 0x4>; + interrupt-parent = <&gpio0>; + irq-trigger = <0x2>; + + stmpegpio: stmpe_gpio { + compatible = "st,stmpe-gpio"; + gpio-controller; + #gpio-cells = <2>; + }; + }; }; kbd@e0300000 { @@ -289,6 +415,7 @@ 0x08080052 >; autorepeat; st,mode = <0>; + suspended_rate = <2000000>; status = "okay"; }; @@ -298,10 +425,92 @@ serial@e0000000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; serial@b4100000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; + }; + + spi0: spi@e0100000 { + status = "okay"; + num-cs = <3>; + cs-gpios = <&gpiopinctrl 80 0>, <&gpiopinctrl 24 0>, + <&gpiopinctrl 85 0>; + + m25p80@0 { + compatible = "m25p80"; + reg = <0>; + spi-max-frequency = <12000000>; + spi-cpol; + spi-cpha; + pl022,hierarchy = <0>; + pl022,interface = <0>; + pl022,slave-tx-disable; + pl022,com-mode = <0x2>; + pl022,rx-level-trig = <0>; + pl022,tx-level-trig = <0>; + pl022,ctrl-len = <0x11>; + pl022,wait-state = <0>; + pl022,duplex = <0>; + }; + + stmpe610@1 { + compatible = "st,stmpe610"; + spi-max-frequency = <1000000>; + spi-cpha; + reg = <1>; + pl022,hierarchy = <0>; + pl022,interface = <0>; + pl022,slave-tx-disable; + pl022,com-mode = <0>; + pl022,rx-level-trig = <0>; + pl022,tx-level-trig = <0>; + pl022,ctrl-len = <0x7>; + pl022,wait-state = <0>; + pl022,duplex = <0>; + interrupts = <100 0>; + interrupt-parent = <&gpiopinctrl>; + irq-trigger = <0x2>; + #address-cells = <1>; + #size-cells = <0>; + + stmpe_touchscreen { + compatible = "st,stmpe-ts"; + ts,sample-time = <4>; + ts,mod-12b = <1>; + ts,ref-sel = <0>; + ts,adc-freq = <1>; + ts,ave-ctrl = <1>; + ts,touch-det-delay = <2>; + ts,settling = <2>; + ts,fraction-z = <7>; + ts,i-drive = <1>; + }; + }; + + spidev@2 { + compatible = "spidev"; + reg = <2>; + spi-max-frequency = <25000000>; + spi-cpha; + pl022,hierarchy = <0>; + pl022,interface = <0>; + pl022,slave-tx-disable; + pl022,com-mode = <0x2>; + pl022,rx-level-trig = <0>; + pl022,tx-level-trig = <0>; + pl022,ctrl-len = <0x11>; + pl022,wait-state = <0>; + pl022,duplex = <0>; + }; + }; + + timer@ec800600 { + status = "okay"; }; wdt@ec800620 { diff --git a/trunk/arch/arm/boot/dts/spear1340.dtsi b/trunk/arch/arm/boot/dts/spear1340.dtsi index 6c09eb0a1b2b..34da11aa6795 100644 --- a/trunk/arch/arm/boot/dts/spear1340.dtsi +++ b/trunk/arch/arm/boot/dts/spear1340.dtsi @@ -17,6 +17,20 @@ compatible = "st,spear1340"; ahb { + + spics: spics@e0700000{ + compatible = "st,spear-spics-gpio"; + reg = <0xe0700000 0x1000>; + st-spics,peripcfg-reg = <0x42c>; + st-spics,sw-enable-bit = <21>; + st-spics,cs-value-bit = <20>; + st-spics,cs-enable-mask = <3>; + st-spics,cs-enable-shift = <18>; + gpio-controller; + #gpio-cells = <2>; + status = "disabled"; + }; + ahci@b1000000 { compatible = "snps,spear-ahci"; reg = <0xb1000000 0x10000>; @@ -24,15 +38,61 @@ status = "disabled"; }; + i2s-play@b2400000 { + compatible = "snps,designware-i2s"; + reg = <0xb2400000 0x10000>; + interrupt-names = "play_irq"; + interrupts = <0 98 0x4 + 0 99 0x4>; + play; + channel = <8>; + status = "disabled"; + }; + + i2s-rec@b2000000 { + compatible = "snps,designware-i2s"; + reg = <0xb2000000 0x10000>; + interrupt-names = "record_irq"; + interrupts = <0 100 0x4 + 0 101 0x4>; + record; + channel = <8>; + status = "disabled"; + }; + pinmux: pinmux@e0700000 { compatible = "st,spear1340-pinmux"; reg = <0xe0700000 0x1000>; #gpio-range-cells = <2>; }; + pwm: pwm@e0180000 { + compatible ="st,spear13xx-pwm"; + reg = <0xe0180000 0x1000>; + #pwm-cells = <2>; + status = "disabled"; + }; + + spdif-in@d0100000 { + compatible = "st,spdif-in"; + reg = < 0xd0100000 0x20000 + 0xd0110000 0x10000 >; + interrupts = <0 84 0x4>; + status = "disabled"; + }; + + spdif-out@d0000000 { + compatible = "st,spdif-out"; + reg = <0xd0000000 0x20000>; + interrupts = <0 85 0x4>; + status = "disabled"; + }; + spi1: spi@5d400000 { compatible = "arm,pl022", "arm,primecell"; reg = <0x5d400000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; interrupts = <0 99 0x4>; status = "disabled"; }; @@ -44,6 +104,7 @@ compatible = "snps,designware-i2c"; reg = <0xb4000000 0x1000>; interrupts = <0 104 0x4>; + write-16bit; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/spear13xx.dtsi b/trunk/arch/arm/boot/dts/spear13xx.dtsi index f7b84aced654..b4ca60f4eb42 100644 --- a/trunk/arch/arm/boot/dts/spear13xx.dtsi +++ b/trunk/arch/arm/boot/dts/spear13xx.dtsi @@ -64,12 +64,26 @@ bootargs = "console=ttyAMA0,115200"; }; + cpufreq { + compatible = "st,cpufreq-spear"; + cpufreq_tbl = < 166000 + 200000 + 250000 + 300000 + 400000 + 500000 + 600000 >; + status = "disabled"; + }; + ahb { #address-cells = <1>; #size-cells = <1>; compatible = "simple-bus"; ranges = <0x50000000 0x50000000 0x10000000 0xb0000000 0xb0000000 0x10000000 + 0xd0000000 0xd0000000 0x02000000 + 0xd8000000 0xd8000000 0x01000000 0xe0000000 0xe0000000 0x10000000>; sdhci@b3000000 { @@ -81,7 +95,7 @@ cf@b2800000 { compatible = "arasan,cf-spear1340"; - reg = <0xb2800000 0x100>; + reg = <0xb2800000 0x1000>; interrupts = <0 29 0x4>; status = "disabled"; }; @@ -104,15 +118,16 @@ compatible = "st,spear600-fsmc-nand"; #address-cells = <1>; #size-cells = <1>; - reg = <0xb0000000 0x1000 /* FSMC Register */ - 0xb0800000 0x0010>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; + reg = <0xb0000000 0x1000 /* FSMC Register*/ + 0xb0800000 0x0010 /* NAND Base DATA */ + 0xb0820000 0x0010 /* NAND Base ADDR */ + 0xb0810000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; interrupts = <0 20 0x4 0 21 0x4 0 22 0x4 0 23 0x4>; - st,ale-off = <0x20000>; - st,cle-off = <0x10000>; + st,mode = <2>; status = "disabled"; }; @@ -125,6 +140,13 @@ status = "disabled"; }; + pcm { + compatible = "st,pcm-audio"; + #address-cells = <0>; + #size-cells = <0>; + status = "disabled"; + }; + smi: flash@ea000000 { compatible = "st,spear600-smi"; #address-cells = <1>; @@ -134,17 +156,11 @@ status = "disabled"; }; - spi0: spi@e0100000 { - compatible = "arm,pl022", "arm,primecell"; - reg = <0xe0100000 0x1000>; - interrupts = <0 31 0x4>; - status = "disabled"; - }; - ehci@e4800000 { compatible = "st,spear600-ehci", "usb-ehci"; reg = <0xe4800000 0x1000>; interrupts = <0 64 0x4>; + usbh0_id = <0>; status = "disabled"; }; @@ -152,6 +168,7 @@ compatible = "st,spear600-ehci", "usb-ehci"; reg = <0xe5800000 0x1000>; interrupts = <0 66 0x4>; + usbh1_id = <1>; status = "disabled"; }; @@ -159,6 +176,7 @@ compatible = "st,spear600-ohci", "usb-ohci"; reg = <0xe4000000 0x1000>; interrupts = <0 65 0x4>; + usbh0_id = <0>; status = "disabled"; }; @@ -166,6 +184,7 @@ compatible = "st,spear600-ohci", "usb-ohci"; reg = <0xe5000000 0x1000>; interrupts = <0 67 0x4>; + usbh1_id = <1>; status = "disabled"; }; @@ -175,6 +194,8 @@ compatible = "simple-bus"; ranges = <0x50000000 0x50000000 0x10000000 0xb0000000 0xb0000000 0x10000000 + 0xd0000000 0xd0000000 0x02000000 + 0xd8000000 0xd8000000 0x01000000 0xe0000000 0xe0000000 0x10000000>; gpio0: gpio@e0600000 { @@ -215,8 +236,35 @@ status = "disabled"; }; + i2s@e0180000 { + compatible = "st,designware-i2s"; + reg = <0xe0180000 0x1000>; + interrupt-names = "play_irq", "record_irq"; + interrupts = <0 10 0x4 + 0 11 0x4 >; + status = "disabled"; + }; + + i2s@e0200000 { + compatible = "st,designware-i2s"; + reg = <0xe0200000 0x1000>; + interrupt-names = "play_irq", "record_irq"; + interrupts = <0 26 0x4 + 0 53 0x4>; + status = "disabled"; + }; + + spi0: spi@e0100000 { + compatible = "arm,pl022", "arm,primecell"; + reg = <0xe0100000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0 31 0x4>; + status = "disabled"; + }; + rtc@e0580000 { - compatible = "st,spear-rtc"; + compatible = "st,spear600-rtc"; reg = <0xe0580000 0x1000>; interrupts = <0 36 0x4>; status = "disabled"; @@ -232,7 +280,7 @@ adc@e0080000 { compatible = "st,spear600-adc"; reg = <0xe0080000 0x1000>; - interrupts = <0 44 0x4>; + interrupts = <0 12 0x4>; status = "disabled"; }; @@ -245,7 +293,8 @@ timer@ec800600 { compatible = "arm,cortex-a9-twd-timer"; reg = <0xec800600 0x20>; - interrupts = <1 13 0x301>; + interrupts = <1 13 0x4>; + status = "disabled"; }; wdt@ec800620 { @@ -257,6 +306,7 @@ thermal@e07008c4 { compatible = "st,thermal-spear1340"; reg = <0xe07008c4 0x4>; + thermal_flags = <0x7000>; }; }; }; diff --git a/trunk/arch/arm/boot/dts/spear300-evb.dts b/trunk/arch/arm/boot/dts/spear300-evb.dts index 1e7c7a8e2123..5de1431653e4 100644 --- a/trunk/arch/arm/boot/dts/spear300-evb.dts +++ b/trunk/arch/arm/boot/dts/spear300-evb.dts @@ -100,15 +100,23 @@ }; partition@10000 { label = "u-boot"; - reg = <0x10000 0x40000>; + reg = <0x10000 0x50000>; }; - partition@50000 { + partition@60000 { + label = "environment"; + reg = <0x60000 0x10000>; + }; + partition@70000 { + label = "dtb"; + reg = <0x70000 0x10000>; + }; + partition@80000 { label = "linux"; - reg = <0x50000 0x2c0000>; + reg = <0x80000 0x310000>; }; - partition@310000 { + partition@390000 { label = "rootfs"; - reg = <0x310000 0x4f0000>; + reg = <0x390000 0x0>; }; }; }; @@ -235,6 +243,8 @@ serial@d0000000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; wdt@fc880000 { diff --git a/trunk/arch/arm/boot/dts/spear300.dtsi b/trunk/arch/arm/boot/dts/spear300.dtsi index ed3627c116cc..f79b3dfaabe6 100644 --- a/trunk/arch/arm/boot/dts/spear300.dtsi +++ b/trunk/arch/arm/boot/dts/spear300.dtsi @@ -27,7 +27,7 @@ }; clcd@60000000 { - compatible = "arm,clcd-pl110", "arm,primecell"; + compatible = "arm,pl110", "arm,primecell"; reg = <0x60000000 0x1000>; interrupts = <30>; status = "disabled"; @@ -38,10 +38,10 @@ #address-cells = <1>; #size-cells = <1>; reg = <0x94000000 0x1000 /* FSMC Register */ - 0x80000000 0x0010>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; - st,ale-off = <0x20000>; - st,cle-off = <0x10000>; + 0x80000000 0x0010 /* NAND Base DATA */ + 0x80020000 0x0010 /* NAND Base ADDR */ + 0x80010000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; status = "disabled"; }; @@ -52,6 +52,14 @@ status = "disabled"; }; + shirq: interrupt-controller@0x50000000 { + compatible = "st,spear300-shirq"; + reg = <0x50000000 0x1000>; + interrupts = <28>; + #interrupt-cells = <1>; + interrupt-controller; + }; + apb { #address-cells = <1>; #size-cells = <1>; @@ -64,12 +72,16 @@ compatible = "arm,pl061", "arm,primecell"; gpio-controller; reg = <0xa9000000 0x1000>; + interrupts = <8>; + interrupt-parent = <&shirq>; status = "disabled"; }; kbd@a0000000 { compatible = "st,spear300-kbd"; reg = <0xa0000000 0x1000>; + interrupts = <7>; + interrupt-parent = <&shirq>; status = "disabled"; }; }; diff --git a/trunk/arch/arm/boot/dts/spear310-evb.dts b/trunk/arch/arm/boot/dts/spear310-evb.dts index b00544e0cd5d..b09632963d15 100644 --- a/trunk/arch/arm/boot/dts/spear310-evb.dts +++ b/trunk/arch/arm/boot/dts/spear310-evb.dts @@ -114,15 +114,23 @@ }; partition@10000 { label = "u-boot"; - reg = <0x10000 0x40000>; + reg = <0x10000 0x50000>; }; - partition@50000 { + partition@60000 { + label = "environment"; + reg = <0x60000 0x10000>; + }; + partition@70000 { + label = "dtb"; + reg = <0x70000 0x10000>; + }; + partition@80000 { label = "linux"; - reg = <0x50000 0x2c0000>; + reg = <0x80000 0x310000>; }; - partition@310000 { + partition@390000 { label = "rootfs"; - reg = <0x310000 0x4f0000>; + reg = <0x390000 0x0>; }; }; }; @@ -158,26 +166,38 @@ serial@d0000000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; serial@b2000000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; serial@b2080000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; serial@b2100000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; serial@b2180000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; serial@b2200000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; wdt@fc880000 { diff --git a/trunk/arch/arm/boot/dts/spear310.dtsi b/trunk/arch/arm/boot/dts/spear310.dtsi index 930303e48df9..ab45b8c81982 100644 --- a/trunk/arch/arm/boot/dts/spear310.dtsi +++ b/trunk/arch/arm/boot/dts/spear310.dtsi @@ -33,13 +33,21 @@ #address-cells = <1>; #size-cells = <1>; reg = <0x44000000 0x1000 /* FSMC Register */ - 0x40000000 0x0010>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; - st,ale-off = <0x10000>; - st,cle-off = <0x20000>; + 0x40000000 0x0010 /* NAND Base DATA */ + 0x40020000 0x0010 /* NAND Base ADDR */ + 0x40010000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; status = "disabled"; }; + shirq: interrupt-controller@0xb4000000 { + compatible = "st,spear310-shirq"; + reg = <0xb4000000 0x1000>; + interrupts = <28 29 30 1>; + #interrupt-cells = <1>; + interrupt-controller; + }; + apb { #address-cells = <1>; #size-cells = <1>; @@ -50,30 +58,40 @@ serial@b2000000 { compatible = "arm,pl011", "arm,primecell"; reg = <0xb2000000 0x1000>; + interrupts = <8>; + interrupt-parent = <&shirq>; status = "disabled"; }; serial@b2080000 { compatible = "arm,pl011", "arm,primecell"; reg = <0xb2080000 0x1000>; + interrupts = <9>; + interrupt-parent = <&shirq>; status = "disabled"; }; serial@b2100000 { compatible = "arm,pl011", "arm,primecell"; reg = <0xb2100000 0x1000>; + interrupts = <10>; + interrupt-parent = <&shirq>; status = "disabled"; }; serial@b2180000 { compatible = "arm,pl011", "arm,primecell"; reg = <0xb2180000 0x1000>; + interrupts = <11>; + interrupt-parent = <&shirq>; status = "disabled"; }; serial@b2200000 { compatible = "arm,pl011", "arm,primecell"; reg = <0xb2200000 0x1000>; + interrupts = <12>; + interrupt-parent = <&shirq>; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/spear320-evb.dts b/trunk/arch/arm/boot/dts/spear320-evb.dts index ad4bfc68ee05..fdedbb514102 100644 --- a/trunk/arch/arm/boot/dts/spear320-evb.dts +++ b/trunk/arch/arm/boot/dts/spear320-evb.dts @@ -76,20 +76,12 @@ st,function = "mii2"; }; pwm0_1 { - st,pins = "pwm0_1_pin_14_15_grp"; + st,pins = "pwm0_1_pin_37_38_grp"; st,function = "pwm0_1"; }; - pwm2 { - st,pins = "pwm2_pin_13_grp"; - st,function = "pwm2"; - }; }; }; - clcd@90000000 { - status = "okay"; - }; - dma@fc400000 { status = "okay"; }; @@ -103,6 +95,7 @@ }; sdhci@70000000 { + power-gpio = <&gpiopinctrl 61 1>; status = "okay"; }; @@ -122,15 +115,23 @@ }; partition@10000 { label = "u-boot"; - reg = <0x10000 0x40000>; + reg = <0x10000 0x50000>; + }; + partition@60000 { + label = "environment"; + reg = <0x60000 0x10000>; + }; + partition@70000 { + label = "dtb"; + reg = <0x70000 0x10000>; }; - partition@50000 { + partition@80000 { label = "linux"; - reg = <0x50000 0x2c0000>; + reg = <0x80000 0x310000>; }; - partition@310000 { + partition@390000 { label = "rootfs"; - reg = <0x310000 0x4f0000>; + reg = <0x390000 0x0>; }; }; }; @@ -182,14 +183,20 @@ serial@d0000000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; serial@a3000000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; serial@a4000000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; wdt@fc880000 { diff --git a/trunk/arch/arm/boot/dts/spear320-hmi.dts b/trunk/arch/arm/boot/dts/spear320-hmi.dts new file mode 100644 index 000000000000..3075d2d3a8be --- /dev/null +++ b/trunk/arch/arm/boot/dts/spear320-hmi.dts @@ -0,0 +1,305 @@ +/* + * DTS file for SPEAr320 Evaluation Baord + * + * Copyright 2012 Shiraz Hashim + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +/dts-v1/; +/include/ "spear320.dtsi" + +/ { + model = "ST SPEAr320 HMI Board"; + compatible = "st,spear320-hmi", "st,spear320"; + #address-cells = <1>; + #size-cells = <1>; + + memory { + reg = <0 0x40000000>; + }; + + ahb { + pinmux@b3000000 { + st,pinmux-mode = <4>; + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + state_default: pinmux { + i2c0 { + st,pins = "i2c0_grp"; + st,function = "i2c0"; + }; + ssp0 { + st,pins = "ssp0_grp"; + st,function = "ssp0"; + }; + uart0 { + st,pins = "uart0_grp"; + st,function = "uart0"; + }; + clcd { + st,pins = "clcd_grp"; + st,function = "clcd"; + }; + fsmc { + st,pins = "fsmc_8bit_grp"; + st,function = "fsmc"; + }; + sdhci { + st,pins = "sdhci_cd_12_grp"; + st,function = "sdhci"; + }; + i2s { + st,pins = "i2s_grp"; + st,function = "i2s"; + }; + uart1 { + st,pins = "uart1_grp"; + st,function = "uart1"; + }; + uart2 { + st,pins = "uart2_grp"; + st,function = "uart2"; + }; + can0 { + st,pins = "can0_grp"; + st,function = "can0"; + }; + can1 { + st,pins = "can1_grp"; + st,function = "can1"; + }; + mii0_1 { + st,pins = "rmii0_1_grp"; + st,function = "mii0_1"; + }; + pwm0_1 { + st,pins = "pwm0_1_pin_37_38_grp"; + st,function = "pwm0_1"; + }; + pwm2 { + st,pins = "pwm2_pin_34_grp"; + st,function = "pwm2"; + }; + }; + }; + + clcd@90000000 { + status = "okay"; + }; + + dma@fc400000 { + status = "okay"; + }; + + ehci@e1800000 { + status = "okay"; + }; + + fsmc: flash@4c000000 { + status = "okay"; + + partition@0 { + label = "xloader"; + reg = <0x0 0x80000>; + }; + partition@80000 { + label = "u-boot"; + reg = <0x80000 0x140000>; + }; + partition@1C0000 { + label = "environment"; + reg = <0x1C0000 0x40000>; + }; + partition@200000 { + label = "dtb"; + reg = <0x200000 0x40000>; + }; + partition@240000 { + label = "linux"; + reg = <0x240000 0xC00000>; + }; + partition@E40000 { + label = "rootfs"; + reg = <0xE40000 0x0>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + button@1 { + label = "user button 1"; + linux,code = <0x100>; + gpios = <&stmpegpio 3 0x4>; + debounce-interval = <20>; + gpio-key,wakeup = <1>; + }; + + button@2 { + label = "user button 2"; + linux,code = <0x200>; + gpios = <&stmpegpio 2 0x4>; + debounce-interval = <20>; + gpio-key,wakeup = <1>; + }; + }; + + ohci@e1900000 { + status = "okay"; + }; + + ohci@e2100000 { + status = "okay"; + }; + + pwm: pwm@a8000000 { + status = "okay"; + }; + + sdhci@70000000 { + power-gpio = <&gpiopinctrl 50 1>; + power_always_enb; + status = "okay"; + }; + + smi: flash@fc000000 { + status = "okay"; + clock-rate=<50000000>; + + flash@f8000000 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0xf8000000 0x800000>; + st,smi-fast-mode; + + partition@0 { + label = "xloader"; + reg = <0x0 0x10000>; + }; + partition@10000 { + label = "u-boot"; + reg = <0x10000 0x50000>; + }; + partition@60000 { + label = "environment"; + reg = <0x60000 0x10000>; + }; + partition@70000 { + label = "dtb"; + reg = <0x70000 0x10000>; + }; + partition@80000 { + label = "linux"; + reg = <0x80000 0x310000>; + }; + partition@390000 { + label = "rootfs"; + reg = <0x390000 0x0>; + }; + }; + }; + + spi0: spi@d0100000 { + status = "okay"; + }; + + spi1: spi@a5000000 { + status = "okay"; + }; + + spi2: spi@a6000000 { + status = "okay"; + }; + + usbd@e1100000 { + status = "okay"; + }; + + apb { + gpio0: gpio@fc980000 { + status = "okay"; + }; + + gpio@b3000000 { + status = "okay"; + }; + + i2c0: i2c@d0180000 { + status = "okay"; + + stmpe811@41 { + compatible = "st,stmpe811"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x41>; + irq-over-gpio; + irq-gpios = <&gpiopinctrl 29 0x4>; + id = <0>; + blocks = <0x5>; + irq-trigger = <0x1>; + + stmpegpio: stmpe-gpio { + compatible = "stmpe,gpio"; + reg = <0>; + gpio-controller; + #gpio-cells = <2>; + gpio,norequest-mask = <0xF3>; + }; + + stmpe610-ts { + compatible = "stmpe,ts"; + reg = <0>; + ts,sample-time = <4>; + ts,mod-12b = <1>; + ts,ref-sel = <0>; + ts,adc-freq = <1>; + ts,ave-ctrl = <1>; + ts,touch-det-delay = <3>; + ts,settling = <4>; + ts,fraction-z = <7>; + ts,i-drive = <1>; + }; + }; + }; + + i2c1: i2c@a7000000 { + status = "okay"; + }; + + rtc@fc900000 { + status = "okay"; + }; + + serial@d0000000 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; + }; + + serial@a3000000 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; + }; + + serial@a4000000 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; + }; + + wdt@fc880000 { + status = "okay"; + }; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/spear320.dtsi b/trunk/arch/arm/boot/dts/spear320.dtsi index 67d7ada71275..caa5520b1fd4 100644 --- a/trunk/arch/arm/boot/dts/spear320.dtsi +++ b/trunk/arch/arm/boot/dts/spear320.dtsi @@ -28,9 +28,10 @@ }; clcd@90000000 { - compatible = "arm,clcd-pl110", "arm,primecell"; + compatible = "arm,pl110", "arm,primecell"; reg = <0x90000000 0x1000>; - interrupts = <33>; + interrupts = <8>; + interrupt-parent = <&shirq>; status = "disabled"; }; @@ -39,37 +40,61 @@ #address-cells = <1>; #size-cells = <1>; reg = <0x4c000000 0x1000 /* FSMC Register */ - 0x50000000 0x0010>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; - st,ale-off = <0x20000>; - st,cle-off = <0x10000>; + 0x50000000 0x0010 /* NAND Base DATA */ + 0x50020000 0x0010 /* NAND Base ADDR */ + 0x50010000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; status = "disabled"; }; sdhci@70000000 { compatible = "st,sdhci-spear"; reg = <0x70000000 0x100>; - interrupts = <29>; + interrupts = <10>; + interrupt-parent = <&shirq>; status = "disabled"; }; + shirq: interrupt-controller@0xb3000000 { + compatible = "st,spear320-shirq"; + reg = <0xb3000000 0x1000>; + interrupts = <30 28 29 1>; + #interrupt-cells = <1>; + interrupt-controller; + }; + spi1: spi@a5000000 { compatible = "arm,pl022", "arm,primecell"; reg = <0xa5000000 0x1000>; + interrupts = <15>; + interrupt-parent = <&shirq>; + #address-cells = <1>; + #size-cells = <0>; status = "disabled"; }; spi2: spi@a6000000 { compatible = "arm,pl022", "arm,primecell"; reg = <0xa6000000 0x1000>; + interrupts = <16>; + interrupt-parent = <&shirq>; + #address-cells = <1>; + #size-cells = <0>; status = "disabled"; }; + pwm: pwm@a8000000 { + compatible ="st,spear-pwm"; + reg = <0xa8000000 0x1000>; + #pwm-cells = <2>; + status = "disabled"; + }; + apb { #address-cells = <1>; #size-cells = <1>; compatible = "simple-bus"; - ranges = <0xa0000000 0xa0000000 0x10000000 + ranges = <0xa0000000 0xa0000000 0x20000000 0xd0000000 0xd0000000 0x30000000>; i2c1: i2c@a7000000 { @@ -77,18 +102,24 @@ #size-cells = <0>; compatible = "snps,designware-i2c"; reg = <0xa7000000 0x1000>; + interrupts = <21>; + interrupt-parent = <&shirq>; status = "disabled"; }; serial@a3000000 { compatible = "arm,pl011", "arm,primecell"; reg = <0xa3000000 0x1000>; + interrupts = <13>; + interrupt-parent = <&shirq>; status = "disabled"; }; serial@a4000000 { compatible = "arm,pl011", "arm,primecell"; reg = <0xa4000000 0x1000>; + interrupts = <14>; + interrupt-parent = <&shirq>; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/spear3xx.dtsi b/trunk/arch/arm/boot/dts/spear3xx.dtsi index 3a8bb5736928..c2a852d43c48 100644 --- a/trunk/arch/arm/boot/dts/spear3xx.dtsi +++ b/trunk/arch/arm/boot/dts/spear3xx.dtsi @@ -53,6 +53,7 @@ reg = <0xe0800000 0x8000>; interrupts = <23 22>; interrupt-names = "macirq", "eth_wake_irq"; + phy-mode = "mii"; status = "disabled"; }; @@ -69,6 +70,8 @@ compatible = "arm,pl022", "arm,primecell"; reg = <0xd0100000 0x1000>; interrupts = <20>; + #address-cells = <1>; + #size-cells = <0>; status = "disabled"; }; @@ -120,7 +123,7 @@ }; rtc@fc900000 { - compatible = "st,spear-rtc"; + compatible = "st,spear600-rtc"; reg = <0xfc900000 0x1000>; interrupts = <10>; status = "disabled"; diff --git a/trunk/arch/arm/boot/dts/spear600-evb.dts b/trunk/arch/arm/boot/dts/spear600-evb.dts index 1119c22c9a82..d865a891776d 100644 --- a/trunk/arch/arm/boot/dts/spear600-evb.dts +++ b/trunk/arch/arm/boot/dts/spear600-evb.dts @@ -24,15 +24,35 @@ }; ahb { + clcd@fc200000 { + status = "okay"; + }; + dma@fc400000 { status = "okay"; }; + ehci@e1800000 { + status = "okay"; + }; + + ehci@e2000000 { + status = "okay"; + }; + gmac: ethernet@e0800000 { phy-mode = "gmii"; status = "okay"; }; + ohci@e1900000 { + status = "okay"; + }; + + ohci@e2100000 { + status = "okay"; + }; + smi: flash@fc000000 { status = "okay"; clock-rate=<50000000>; @@ -49,15 +69,23 @@ }; partition@10000 { label = "u-boot"; - reg = <0x10000 0x40000>; + reg = <0x10000 0x50000>; }; - partition@50000 { + partition@60000 { + label = "environment"; + reg = <0x60000 0x10000>; + }; + partition@70000 { + label = "dtb"; + reg = <0x70000 0x10000>; + }; + partition@80000 { label = "linux"; - reg = <0x50000 0x2c0000>; + reg = <0x80000 0x310000>; }; - partition@310000 { + partition@390000 { label = "rootfs"; - reg = <0x310000 0x4f0000>; + reg = <0x390000 0x0>; }; }; }; @@ -65,10 +93,18 @@ apb { serial@d0000000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; }; serial@d0080000 { status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; + }; + + rtc@fc900000 { + status = "okay"; }; i2c@d0200000 { diff --git a/trunk/arch/arm/boot/dts/spear600.dtsi b/trunk/arch/arm/boot/dts/spear600.dtsi index a3c36e47d7ef..19f99dc4115e 100644 --- a/trunk/arch/arm/boot/dts/spear600.dtsi +++ b/trunk/arch/arm/boot/dts/spear600.dtsi @@ -45,6 +45,14 @@ #interrupt-cells = <1>; }; + clcd@fc200000 { + compatible = "arm,pl110", "arm,primecell"; + reg = <0xfc200000 0x1000>; + interrupt-parent = <&vic1>; + interrupts = <12>; + status = "disabled"; + }; + dma@fc400000 { compatible = "arm,pl080", "arm,primecell"; reg = <0xfc400000 0x1000>; @@ -59,6 +67,7 @@ interrupt-parent = <&vic1>; interrupts = <24 23>; interrupt-names = "macirq", "eth_wake_irq"; + phy-mode = "gmii"; status = "disabled"; }; @@ -67,10 +76,10 @@ #address-cells = <1>; #size-cells = <1>; reg = <0xd1800000 0x1000 /* FSMC Register */ - 0xd2000000 0x4000>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; - st,ale-off = <0x20000>; - st,cle-off = <0x10000>; + 0xd2000000 0x0010 /* NAND Base DATA */ + 0xd2020000 0x0010 /* NAND Base ADDR */ + 0xd2010000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; status = "disabled"; }; @@ -178,6 +187,13 @@ status = "disabled"; }; + rtc@fc900000 { + compatible = "st,spear600-rtc"; + reg = <0xfc900000 0x1000>; + interrupts = <10>; + status = "disabled"; + }; + timer@f0000000 { compatible = "st,spear-timer"; reg = <0xf0000000 0x400>; diff --git a/trunk/arch/arm/boot/dts/sun4i-cubieboard.dts b/trunk/arch/arm/boot/dts/sun4i-a10-cubieboard.dts similarity index 87% rename from trunk/arch/arm/boot/dts/sun4i-cubieboard.dts rename to trunk/arch/arm/boot/dts/sun4i-a10-cubieboard.dts index f4ca126ad994..5cab82540437 100644 --- a/trunk/arch/arm/boot/dts/sun4i-cubieboard.dts +++ b/trunk/arch/arm/boot/dts/sun4i-a10-cubieboard.dts @@ -11,11 +11,11 @@ */ /dts-v1/; -/include/ "sun4i.dtsi" +/include/ "sun4i-a10.dtsi" / { model = "Cubietech Cubieboard"; - compatible = "cubietech,cubieboard", "allwinner,sun4i"; + compatible = "cubietech,a10-cubieboard", "allwinner,sun4i-a10"; aliases { serial0 = &uart0; diff --git a/trunk/arch/arm/boot/dts/sun4i.dtsi b/trunk/arch/arm/boot/dts/sun4i-a10.dtsi similarity index 100% rename from trunk/arch/arm/boot/dts/sun4i.dtsi rename to trunk/arch/arm/boot/dts/sun4i-a10.dtsi diff --git a/trunk/arch/arm/boot/dts/sun5i-olinuxino.dts b/trunk/arch/arm/boot/dts/sun5i-a13-olinuxino.dts similarity index 86% rename from trunk/arch/arm/boot/dts/sun5i-olinuxino.dts rename to trunk/arch/arm/boot/dts/sun5i-a13-olinuxino.dts index d6ff889a5d87..498a091a4ea2 100644 --- a/trunk/arch/arm/boot/dts/sun5i-olinuxino.dts +++ b/trunk/arch/arm/boot/dts/sun5i-a13-olinuxino.dts @@ -12,11 +12,11 @@ */ /dts-v1/; -/include/ "sun5i.dtsi" +/include/ "sun5i-a13.dtsi" / { model = "Olimex A13-Olinuxino"; - compatible = "olimex,a13-olinuxino", "allwinner,sun5i"; + compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13"; chosen { bootargs = "earlyprintk console=ttyS0,115200"; diff --git a/trunk/arch/arm/boot/dts/sun5i.dtsi b/trunk/arch/arm/boot/dts/sun5i-a13.dtsi similarity index 100% rename from trunk/arch/arm/boot/dts/sun5i.dtsi rename to trunk/arch/arm/boot/dts/sun5i-a13.dtsi diff --git a/trunk/arch/arm/configs/multi_v7_defconfig b/trunk/arch/arm/configs/multi_v7_defconfig index 159f75fc4377..dbea6f4efe9f 100644 --- a/trunk/arch/arm/configs/multi_v7_defconfig +++ b/trunk/arch/arm/configs/multi_v7_defconfig @@ -17,8 +17,10 @@ CONFIG_ARM_APPENDED_DTB=y CONFIG_VFP=y CONFIG_NEON=y CONFIG_NET=y +CONFIG_BLK_DEV_SD=y CONFIG_ATA=y CONFIG_SATA_HIGHBANK=y +CONFIG_SATA_MV=y CONFIG_NETDEVICES=y CONFIG_NET_CALXEDA_XGMAC=y CONFIG_SMSC911X=y diff --git a/trunk/arch/arm/configs/mvebu_defconfig b/trunk/arch/arm/configs/mvebu_defconfig index 3458752c4bb2..a702fb345c01 100644 --- a/trunk/arch/arm/configs/mvebu_defconfig +++ b/trunk/arch/arm/configs/mvebu_defconfig @@ -12,6 +12,9 @@ CONFIG_ARCH_MVEBU=y CONFIG_MACH_ARMADA_370=y CONFIG_MACH_ARMADA_XP=y # CONFIG_CACHE_L2X0 is not set +# CONFIG_SWP_EMULATE is not set +CONFIG_SMP=y +# CONFIG_LOCAL_TIMERS is not set CONFIG_AEABI=y CONFIG_HIGHMEM=y # CONFIG_COMPACTION is not set @@ -19,13 +22,27 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ARM_APPENDED_DTB=y CONFIG_VFP=y +CONFIG_NET=y +CONFIG_INET=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_SATA_MV=y +CONFIG_NETDEVICES=y +CONFIG_MVNETA=y +CONFIG_MARVELL_PHY=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_I2C=y +CONFIG_I2C_MV64XXX=y CONFIG_GPIOLIB=y CONFIG_GPIO_SYSFS=y # CONFIG_USB_SUPPORT is not set +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_S35390A=y +CONFIG_DMADEVICES=y +CONFIG_MV_XOR=y # CONFIG_IOMMU_SUPPORT is not set CONFIG_EXT2_FS=y CONFIG_EXT3_FS=y diff --git a/trunk/arch/arm/configs/nhk8815_defconfig b/trunk/arch/arm/configs/nhk8815_defconfig index 240b25eea565..86cfd2959c47 100644 --- a/trunk/arch/arm/configs/nhk8815_defconfig +++ b/trunk/arch/arm/configs/nhk8815_defconfig @@ -57,7 +57,7 @@ CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y CONFIG_MTD_NAND=y CONFIG_MTD_NAND_ECC_SMC=y -CONFIG_MTD_NAND_NOMADIK=y +CONFIG_MTD_NAND_FSMC=y CONFIG_MTD_ONENAND=y CONFIG_MTD_ONENAND_VERIFY_WRITE=y CONFIG_MTD_ONENAND_GENERIC=y diff --git a/trunk/arch/arm/configs/socfpga_defconfig b/trunk/arch/arm/configs/socfpga_defconfig index 0ac1293dba10..4e1ce211d43f 100644 --- a/trunk/arch/arm/configs/socfpga_defconfig +++ b/trunk/arch/arm/configs/socfpga_defconfig @@ -18,9 +18,10 @@ CONFIG_MODULE_UNLOAD=y CONFIG_ARCH_SOCFPGA=y CONFIG_MACH_SOCFPGA_CYCLONE5=y CONFIG_ARM_THUMBEE=y +# CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA is not set # CONFIG_CACHE_L2X0 is not set CONFIG_HIGH_RES_TIMERS=y -CONFIG_VMSPLIT_2G=y +CONFIG_SMP=y CONFIG_NR_CPUS=2 CONFIG_AEABI=y CONFIG_ZBOOT_ROM_TEXT=0x0 diff --git a/trunk/arch/arm/include/asm/dma-mapping.h b/trunk/arch/arm/include/asm/dma-mapping.h index 8ea02ac3ec1a..5b579b951503 100644 --- a/trunk/arch/arm/include/asm/dma-mapping.h +++ b/trunk/arch/arm/include/asm/dma-mapping.h @@ -91,6 +91,7 @@ static inline dma_addr_t virt_to_dma(struct device *dev, void *addr) */ static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) { + debug_dma_mapping_error(dev, dma_addr); return dma_addr == DMA_ERROR_CODE; } @@ -111,6 +112,8 @@ static inline void dma_free_noncoherent(struct device *dev, size_t size, extern int dma_supported(struct device *dev, u64 mask); +extern int arm_dma_set_mask(struct device *dev, u64 dma_mask); + /** * arm_dma_alloc - allocate consistent memory for DMA * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices diff --git a/trunk/arch/arm/include/asm/unistd.h b/trunk/arch/arm/include/asm/unistd.h index 7cd13cc62624..21a2700d2957 100644 --- a/trunk/arch/arm/include/asm/unistd.h +++ b/trunk/arch/arm/include/asm/unistd.h @@ -41,7 +41,6 @@ #define __ARCH_WANT_OLD_READDIR #define __ARCH_WANT_SYS_SOCKETCALL #endif -#define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_VFORK #define __ARCH_WANT_SYS_CLONE diff --git a/trunk/arch/arm/include/uapi/asm/signal.h b/trunk/arch/arm/include/uapi/asm/signal.h index 921c57fdc52e..33073bdcf091 100644 --- a/trunk/arch/arm/include/uapi/asm/signal.h +++ b/trunk/arch/arm/include/uapi/asm/signal.h @@ -87,13 +87,6 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND - -/* - * sigaltstack controls - */ -#define SS_ONSTACK 1 -#define SS_DISABLE 2 - #define MINSIGSTKSZ 2048 #define SIGSTKSZ 8192 diff --git a/trunk/arch/arm/include/uapi/asm/unistd.h b/trunk/arch/arm/include/uapi/asm/unistd.h index ac03bdb4ae44..4da7cde70b5d 100644 --- a/trunk/arch/arm/include/uapi/asm/unistd.h +++ b/trunk/arch/arm/include/uapi/asm/unistd.h @@ -405,6 +405,7 @@ #define __NR_process_vm_readv (__NR_SYSCALL_BASE+376) #define __NR_process_vm_writev (__NR_SYSCALL_BASE+377) /* 378 for kcmp */ +#define __NR_finit_module (__NR_SYSCALL_BASE+379) /* * This may need to be greater than __NR_last_syscall+1 in order to diff --git a/trunk/arch/arm/kernel/calls.S b/trunk/arch/arm/kernel/calls.S index 5935b6a02e6e..a4fda4e7a372 100644 --- a/trunk/arch/arm/kernel/calls.S +++ b/trunk/arch/arm/kernel/calls.S @@ -388,6 +388,7 @@ CALL(sys_process_vm_readv) CALL(sys_process_vm_writev) CALL(sys_ni_syscall) /* reserved for sys_kcmp */ + CALL(sys_finit_module) #ifndef syscalls_counted .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls #define syscalls_counted diff --git a/trunk/arch/arm/kernel/setup.c b/trunk/arch/arm/kernel/setup.c index 9a89bf4aefe1..3f6cbb2e3eda 100644 --- a/trunk/arch/arm/kernel/setup.c +++ b/trunk/arch/arm/kernel/setup.c @@ -733,7 +733,7 @@ void __init setup_arch(char **cmdline_p) setup_processor(); mdesc = setup_machine_fdt(__atags_pointer); if (!mdesc) - mdesc = setup_machine_tags(__atags_pointer, machine_arch_type); + mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type); machine_desc = mdesc; machine_name = mdesc->name; diff --git a/trunk/arch/arm/kernel/swp_emulate.c b/trunk/arch/arm/kernel/swp_emulate.c index df745188f5de..ab1017bd1667 100644 --- a/trunk/arch/arm/kernel/swp_emulate.c +++ b/trunk/arch/arm/kernel/swp_emulate.c @@ -109,10 +109,12 @@ static void set_segfault(struct pt_regs *regs, unsigned long addr) { siginfo_t info; + down_read(¤t->mm->mmap_sem); if (find_vma(current->mm, addr) == NULL) info.si_code = SEGV_MAPERR; else info.si_code = SEGV_ACCERR; + up_read(¤t->mm->mmap_sem); info.si_signo = SIGSEGV; info.si_errno = 0; diff --git a/trunk/arch/arm/kernel/vmlinux.lds.S b/trunk/arch/arm/kernel/vmlinux.lds.S index b9f38e388b43..11c1785bf63e 100644 --- a/trunk/arch/arm/kernel/vmlinux.lds.S +++ b/trunk/arch/arm/kernel/vmlinux.lds.S @@ -140,6 +140,8 @@ SECTIONS } #endif + NOTES + _etext = .; /* End of text and rodata section */ #ifndef CONFIG_XIP_KERNEL @@ -295,8 +297,6 @@ SECTIONS } #endif - NOTES - BSS_SECTION(0, 0, 0) _end = .; diff --git a/trunk/arch/arm/mach-davinci/board-da850-evm.c b/trunk/arch/arm/mach-davinci/board-da850-evm.c index 7211772edd9d..0299915575a8 100644 --- a/trunk/arch/arm/mach-davinci/board-da850-evm.c +++ b/trunk/arch/arm/mach-davinci/board-da850-evm.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include diff --git a/trunk/arch/arm/mach-davinci/da830.c b/trunk/arch/arm/mach-davinci/da830.c index 510648e0394b..678a54a64dae 100644 --- a/trunk/arch/arm/mach-davinci/da830.c +++ b/trunk/arch/arm/mach-davinci/da830.c @@ -408,7 +408,7 @@ static struct clk_lookup da830_clks[] = { CLK(NULL, "pwm2", &pwm2_clk), CLK("eqep.0", NULL, &eqep0_clk), CLK("eqep.1", NULL, &eqep1_clk), - CLK("da8xx_lcdc.0", NULL, &lcdc_clk), + CLK("da8xx_lcdc.0", "fck", &lcdc_clk), CLK("davinci-mcasp.0", NULL, &mcasp0_clk), CLK("davinci-mcasp.1", NULL, &mcasp1_clk), CLK("davinci-mcasp.2", NULL, &mcasp2_clk), diff --git a/trunk/arch/arm/mach-davinci/da850.c b/trunk/arch/arm/mach-davinci/da850.c index 68c5fe01857c..6b9154e9f908 100644 --- a/trunk/arch/arm/mach-davinci/da850.c +++ b/trunk/arch/arm/mach-davinci/da850.c @@ -403,7 +403,7 @@ static struct clk_lookup da850_clks[] = { CLK(NULL, "rmii", &rmii_clk), CLK("davinci_emac.1", NULL, &emac_clk), CLK("davinci-mcasp.0", NULL, &mcasp_clk), - CLK("da8xx_lcdc.0", NULL, &lcdc_clk), + CLK("da8xx_lcdc.0", "fck", &lcdc_clk), CLK("davinci_mmc.0", NULL, &mmcsd0_clk), CLK("davinci_mmc.1", NULL, &mmcsd1_clk), CLK(NULL, "aemif", &aemif_clk), diff --git a/trunk/arch/arm/mach-davinci/devices-da8xx.c b/trunk/arch/arm/mach-davinci/devices-da8xx.c index 46c9a0c09ae5..2d5502d84a22 100644 --- a/trunk/arch/arm/mach-davinci/devices-da8xx.c +++ b/trunk/arch/arm/mach-davinci/devices-da8xx.c @@ -589,29 +589,9 @@ int __init da8xx_register_uio_pruss(void) return platform_device_register(&da8xx_uio_pruss_dev); } -static const struct display_panel disp_panel = { - QVGA, - 16, - 16, - COLOR_ACTIVE, -}; - static struct lcd_ctrl_config lcd_cfg = { - &disp_panel, - .ac_bias = 255, - .ac_bias_intrpt = 0, - .dma_burst_sz = 16, + .panel_shade = COLOR_ACTIVE, .bpp = 16, - .fdd = 255, - .tft_alt_mode = 0, - .stn_565_mode = 0, - .mono_8bit_mode = 0, - .invert_line_clock = 1, - .invert_frm_clock = 1, - .sync_edge = 0, - .sync_ctrl = 1, - .raster_order = 0, - .fifo_th = 6, }; struct da8xx_lcdc_platform_data sharp_lcd035q3dg01_pdata = { @@ -745,7 +725,7 @@ static struct resource da8xx_rtc_resources[] = { }; static struct platform_device da8xx_rtc_device = { - .name = "omap_rtc", + .name = "da830-rtc", .id = -1, .num_resources = ARRAY_SIZE(da8xx_rtc_resources), .resource = da8xx_rtc_resources, @@ -754,17 +734,6 @@ static struct platform_device da8xx_rtc_device = { int da8xx_register_rtc(void) { int ret; - void __iomem *base; - - base = ioremap(DA8XX_RTC_BASE, SZ_4K); - if (WARN_ON(!base)) - return -ENOMEM; - - /* Unlock the rtc's registers */ - __raw_writel(0x83e70b13, base + 0x6c); - __raw_writel(0x95a4f1e0, base + 0x70); - - iounmap(base); ret = platform_device_register(&da8xx_rtc_device); if (!ret) diff --git a/trunk/arch/arm/mach-davinci/pm_domain.c b/trunk/arch/arm/mach-davinci/pm_domain.c index 00946e23c1ee..c90250e3bef8 100644 --- a/trunk/arch/arm/mach-davinci/pm_domain.c +++ b/trunk/arch/arm/mach-davinci/pm_domain.c @@ -53,6 +53,7 @@ static struct dev_pm_domain davinci_pm_domain = { static struct pm_clk_notifier_block platform_bus_notifier = { .pm_domain = &davinci_pm_domain, + .con_ids = { "fck", NULL, }, }; static int __init davinci_pm_runtime_init(void) diff --git a/trunk/arch/arm/mach-dove/Kconfig b/trunk/arch/arm/mach-dove/Kconfig index 00154e74ce6b..603c5fd99e8a 100644 --- a/trunk/arch/arm/mach-dove/Kconfig +++ b/trunk/arch/arm/mach-dove/Kconfig @@ -17,6 +17,8 @@ config MACH_CM_A510 config MACH_DOVE_DT bool "Marvell Dove Flattened Device Tree" + select MVEBU_CLK_CORE + select MVEBU_CLK_GATING select USE_OF help Say 'Y' here if you want your kernel to support the diff --git a/trunk/arch/arm/mach-dove/common.c b/trunk/arch/arm/mach-dove/common.c index f723fe13d0f0..89f4f993cd03 100644 --- a/trunk/arch/arm/mach-dove/common.c +++ b/trunk/arch/arm/mach-dove/common.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -32,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -123,8 +125,8 @@ static void __init dove_clk_init(void) orion_clkdev_add(NULL, "mv_crypto", crypto); orion_clkdev_add(NULL, "dove-ac97", ac97); orion_clkdev_add(NULL, "dove-pdma", pdma); - orion_clkdev_add(NULL, "mv_xor_shared.0", xor0); - orion_clkdev_add(NULL, "mv_xor_shared.1", xor1); + orion_clkdev_add(NULL, MV_XOR_NAME ".0", xor0); + orion_clkdev_add(NULL, MV_XOR_NAME ".1", xor1); } /***************************************************************************** @@ -376,19 +378,44 @@ void dove_restart(char mode, const char *cmd) #if defined(CONFIG_MACH_DOVE_DT) /* - * Auxdata required until real OF clock provider + * There are still devices that doesn't even know about DT, + * get clock gates here and add a clock lookup. */ -struct of_dev_auxdata dove_auxdata_lookup[] __initdata = { - OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), - OF_DEV_AUXDATA("marvell,orion-spi", 0xf1014600, "orion_spi.1", NULL), - OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), - OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", - NULL), - OF_DEV_AUXDATA("marvell,orion-sata", 0xf10a0000, "sata_mv.0", NULL), - OF_DEV_AUXDATA("marvell,dove-sdhci", 0xf1092000, "sdhci-dove.0", NULL), - OF_DEV_AUXDATA("marvell,dove-sdhci", 0xf1090000, "sdhci-dove.1", NULL), - {}, -}; +static void __init dove_legacy_clk_init(void) +{ + struct device_node *np = of_find_compatible_node(NULL, NULL, + "marvell,dove-gating-clock"); + struct of_phandle_args clkspec; + + clkspec.np = np; + clkspec.args_count = 1; + + clkspec.args[0] = CLOCK_GATING_BIT_USB0; + orion_clkdev_add(NULL, "orion-ehci.0", + of_clk_get_from_provider(&clkspec)); + + clkspec.args[0] = CLOCK_GATING_BIT_USB1; + orion_clkdev_add(NULL, "orion-ehci.1", + of_clk_get_from_provider(&clkspec)); + + clkspec.args[0] = CLOCK_GATING_BIT_GBE; + orion_clkdev_add(NULL, "mv643xx_eth_port.0", + of_clk_get_from_provider(&clkspec)); + + clkspec.args[0] = CLOCK_GATING_BIT_PCIE0; + orion_clkdev_add("0", "pcie", + of_clk_get_from_provider(&clkspec)); + + clkspec.args[0] = CLOCK_GATING_BIT_PCIE1; + orion_clkdev_add("1", "pcie", + of_clk_get_from_provider(&clkspec)); +} + +static void __init dove_of_clk_init(void) +{ + mvebu_clocks_init(); + dove_legacy_clk_init(); +} static struct mv643xx_eth_platform_data dove_dt_ge00_data = { .phy_addr = MV643XX_ETH_PHY_ADDR_DEFAULT, @@ -405,20 +432,17 @@ static void __init dove_dt_init(void) dove_setup_cpu_mbus(); /* Setup root of clk tree */ - dove_clk_init(); + dove_of_clk_init(); /* Internal devices not ported to DT yet */ dove_rtc_init(); - dove_xor0_init(); - dove_xor1_init(); dove_ge00_init(&dove_dt_ge00_data); dove_ehci0_init(); dove_ehci1_init(); dove_pcie_init(1, 1); - of_platform_populate(NULL, of_default_bus_match_table, - dove_auxdata_lookup, NULL); + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); } static const char * const dove_dt_board_compat[] = { diff --git a/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h b/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h index 16026c2b1c8c..d64274fc5760 100644 --- a/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h +++ b/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h @@ -47,13 +47,9 @@ static void __raw_writel(unsigned int value, unsigned int ptr) static inline void putc(int c) { - int i; - - for (i = 0; i < 1000; i++) { - /* Transmit fifo not full? */ - if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF)) - break; - } + /* Transmit fifo not full? */ + while (__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF) + ; __raw_writeb(c, PHYS_UART_DATA); } diff --git a/trunk/arch/arm/mach-exynos/clock-exynos4.c b/trunk/arch/arm/mach-exynos/clock-exynos4.c index efead60b9436..bbcb3dea0d40 100644 --- a/trunk/arch/arm/mach-exynos/clock-exynos4.c +++ b/trunk/arch/arm/mach-exynos/clock-exynos4.c @@ -529,7 +529,7 @@ static struct clk exynos4_init_clocks_off[] = { .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 8), }, { - .name = "dwmmc", + .name = "biu", .parent = &exynos4_clk_aclk_133.clk, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 9), @@ -1134,7 +1134,7 @@ static struct clksrc_clk exynos4_clksrcs[] = { .reg_div = { .reg = EXYNOS4_CLKDIV_MFC, .shift = 0, .size = 4 }, }, { .clk = { - .name = "sclk_dwmmc", + .name = "ciu", .parent = &exynos4_clk_dout_mmc4.clk, .enable = exynos4_clksrc_mask_fsys_ctrl, .ctrlbit = (1 << 16), diff --git a/trunk/arch/arm/mach-exynos/clock-exynos5.c b/trunk/arch/arm/mach-exynos/clock-exynos5.c index 7652f5d78a56..e9d7b80bae49 100644 --- a/trunk/arch/arm/mach-exynos/clock-exynos5.c +++ b/trunk/arch/arm/mach-exynos/clock-exynos5.c @@ -80,6 +80,8 @@ static struct sleep_save exynos5_clock_save[] = { SAVE_ITEM(EXYNOS5_VPLL_CON0), SAVE_ITEM(EXYNOS5_VPLL_CON1), SAVE_ITEM(EXYNOS5_VPLL_CON2), + SAVE_ITEM(EXYNOS5_PWR_CTRL1), + SAVE_ITEM(EXYNOS5_PWR_CTRL2), }; #endif @@ -661,15 +663,20 @@ static struct clk exynos5_init_clocks_off[] = { .ctrlbit = (1 << 15), }, { .name = "sata", - .devname = "ahci", + .devname = "exynos5-sata", + .parent = &exynos5_clk_aclk_200.clk, .enable = exynos5_clk_ip_fsys_ctrl, .ctrlbit = (1 << 6), }, { - .name = "sata_phy", + .name = "sata-phy", + .devname = "exynos5-sata-phy", + .parent = &exynos5_clk_aclk_200.clk, .enable = exynos5_clk_ip_fsys_ctrl, .ctrlbit = (1 << 24), }, { - .name = "sata_phy_i2c", + .name = "i2c", + .devname = "exynos5-sata-phy-i2c", + .parent = &exynos5_clk_aclk_200.clk, .enable = exynos5_clk_ip_fsys_ctrl, .ctrlbit = (1 << 25), }, { @@ -692,6 +699,11 @@ static struct clk exynos5_init_clocks_off[] = { .devname = "exynos5-mixer", .enable = exynos5_clk_ip_disp1_ctrl, .ctrlbit = (1 << 5), + }, { + .name = "dp", + .devname = "exynos-dp", + .enable = exynos5_clk_ip_disp1_ctrl, + .ctrlbit = (1 << 4), }, { .name = "jpeg", .enable = exynos5_clk_ip_gen_ctrl, @@ -1239,6 +1251,16 @@ static struct clksrc_clk exynos5_clksrcs[] = { .sources = &exynos5_clkset_aclk, .reg_src = { .reg = EXYNOS5_CLKSRC_TOP0, .shift = 20, .size = 1 }, .reg_div = { .reg = EXYNOS5_CLKDIV_TOP0, .shift = 24, .size = 3 }, + }, { + .clk = { + .name = "sclk_sata", + .devname = "exynos5-sata", + .enable = exynos5_clksrc_mask_fsys_ctrl, + .ctrlbit = (1 << 24), + }, + .sources = &exynos5_clkset_aclk, + .reg_src = { .reg = EXYNOS5_CLKSRC_FSYS, .shift = 24, .size = 1 }, + .reg_div = { .reg = EXYNOS5_CLKDIV_FSYS0, .shift = 20, .size = 4 }, }, { .clk = { .name = "sclk_gscl_wrap", diff --git a/trunk/arch/arm/mach-exynos/common.c b/trunk/arch/arm/mach-exynos/common.c index ddd4b72c6f9a..d6d0dc651089 100644 --- a/trunk/arch/arm/mach-exynos/common.c +++ b/trunk/arch/arm/mach-exynos/common.c @@ -679,7 +679,8 @@ void __init exynos5_init_irq(void) * Theses parameters should be NULL and 0 because EXYNOS4 * uses GIC instead of VIC. */ - s5p_init_irq(NULL, 0); + if (!of_machine_is_compatible("samsung,exynos5440")) + s5p_init_irq(NULL, 0); gic_arch_extn.irq_set_wake = s3c_irq_wake; } diff --git a/trunk/arch/arm/mach-exynos/common.h b/trunk/arch/arm/mach-exynos/common.h index dac146df79ac..04744f9c120f 100644 --- a/trunk/arch/arm/mach-exynos/common.h +++ b/trunk/arch/arm/mach-exynos/common.h @@ -25,7 +25,7 @@ void exynos_init_late(void); #ifdef CONFIG_PM_GENERIC_DOMAINS int exynos_pm_late_initcall(void); #else -static int exynos_pm_late_initcall(void) { return 0; } +static inline int exynos_pm_late_initcall(void) { return 0; } #endif #ifdef CONFIG_ARCH_EXYNOS4 diff --git a/trunk/arch/arm/mach-exynos/cpuidle.c b/trunk/arch/arm/mach-exynos/cpuidle.c index 8e4ec21ef2cf..050924152776 100644 --- a/trunk/arch/arm/mach-exynos/cpuidle.c +++ b/trunk/arch/arm/mach-exynos/cpuidle.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -157,12 +158,47 @@ static int exynos4_enter_lowpower(struct cpuidle_device *dev, return exynos4_enter_core0_aftr(dev, drv, new_index); } +static void __init exynos5_core_down_clk(void) +{ + unsigned int tmp; + + /* + * Enable arm clock down (in idle) and set arm divider + * ratios in WFI/WFE state. + */ + tmp = PWR_CTRL1_CORE2_DOWN_RATIO | \ + PWR_CTRL1_CORE1_DOWN_RATIO | \ + PWR_CTRL1_DIV2_DOWN_EN | \ + PWR_CTRL1_DIV1_DOWN_EN | \ + PWR_CTRL1_USE_CORE1_WFE | \ + PWR_CTRL1_USE_CORE0_WFE | \ + PWR_CTRL1_USE_CORE1_WFI | \ + PWR_CTRL1_USE_CORE0_WFI; + __raw_writel(tmp, EXYNOS5_PWR_CTRL1); + + /* + * Enable arm clock up (on exiting idle). Set arm divider + * ratios when not in idle along with the standby duration + * ratios. + */ + tmp = PWR_CTRL2_DIV2_UP_EN | \ + PWR_CTRL2_DIV1_UP_EN | \ + PWR_CTRL2_DUR_STANDBY2_VAL | \ + PWR_CTRL2_DUR_STANDBY1_VAL | \ + PWR_CTRL2_CORE2_UP_RATIO | \ + PWR_CTRL2_CORE1_UP_RATIO; + __raw_writel(tmp, EXYNOS5_PWR_CTRL2); +} + static int __init exynos4_init_cpuidle(void) { int i, max_cpuidle_state, cpu_id; struct cpuidle_device *device; struct cpuidle_driver *drv = &exynos4_idle_driver; + if (soc_is_exynos5250()) + exynos5_core_down_clk(); + /* Setup cpuidle driver */ drv->state_count = (sizeof(exynos4_cpuidle_set) / sizeof(struct cpuidle_state)); diff --git a/trunk/arch/arm/mach-exynos/dev-audio.c b/trunk/arch/arm/mach-exynos/dev-audio.c index a1cb42c39590..9d1a60951d7b 100644 --- a/trunk/arch/arm/mach-exynos/dev-audio.c +++ b/trunk/arch/arm/mach-exynos/dev-audio.c @@ -23,11 +23,6 @@ #include #include -static const char *rclksrc[] = { - [0] = "busclk", - [1] = "i2sclk", -}; - static int exynos4_cfg_i2s(struct platform_device *pdev) { /* configure GPIO for i2s port */ @@ -55,7 +50,6 @@ static struct s3c_audio_pdata i2sv5_pdata = { .i2s = { .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR, - .src_clk = rclksrc, .idma_addr = EXYNOS4_AUDSS_INT_MEM, }, }, @@ -78,17 +72,11 @@ struct platform_device exynos4_device_i2s0 = { }, }; -static const char *rclksrc_v3[] = { - [0] = "sclk_i2s", - [1] = "no_such_clock", -}; - static struct s3c_audio_pdata i2sv3_pdata = { .cfg_gpio = exynos4_cfg_i2s, .type = { .i2s = { .quirks = QUIRK_NO_MUXPSR, - .src_clk = rclksrc_v3, }, }, }; diff --git a/trunk/arch/arm/mach-exynos/include/mach/regs-clock.h b/trunk/arch/arm/mach-exynos/include/mach/regs-clock.h index 8c9b38c9c504..d36ad76ad6a4 100644 --- a/trunk/arch/arm/mach-exynos/include/mach/regs-clock.h +++ b/trunk/arch/arm/mach-exynos/include/mach/regs-clock.h @@ -267,6 +267,9 @@ #define EXYNOS5_CLKDIV_STATCPU0 EXYNOS_CLKREG(0x00600) #define EXYNOS5_CLKDIV_STATCPU1 EXYNOS_CLKREG(0x00604) +#define EXYNOS5_PWR_CTRL1 EXYNOS_CLKREG(0x01020) +#define EXYNOS5_PWR_CTRL2 EXYNOS_CLKREG(0x01024) + #define EXYNOS5_MPLL_CON0 EXYNOS_CLKREG(0x04100) #define EXYNOS5_CLKSRC_CORE1 EXYNOS_CLKREG(0x04204) @@ -344,6 +347,22 @@ #define EXYNOS5_EPLLCON0_LOCKED_SHIFT (29) +#define PWR_CTRL1_CORE2_DOWN_RATIO (7 << 28) +#define PWR_CTRL1_CORE1_DOWN_RATIO (7 << 16) +#define PWR_CTRL1_DIV2_DOWN_EN (1 << 9) +#define PWR_CTRL1_DIV1_DOWN_EN (1 << 8) +#define PWR_CTRL1_USE_CORE1_WFE (1 << 5) +#define PWR_CTRL1_USE_CORE0_WFE (1 << 4) +#define PWR_CTRL1_USE_CORE1_WFI (1 << 1) +#define PWR_CTRL1_USE_CORE0_WFI (1 << 0) + +#define PWR_CTRL2_DIV2_UP_EN (1 << 25) +#define PWR_CTRL2_DIV1_UP_EN (1 << 24) +#define PWR_CTRL2_DUR_STANDBY2_VAL (1 << 16) +#define PWR_CTRL2_DUR_STANDBY1_VAL (1 << 8) +#define PWR_CTRL2_CORE2_UP_RATIO (1 << 4) +#define PWR_CTRL2_CORE1_UP_RATIO (1 << 0) + /* Compatibility defines and inclusion */ #include diff --git a/trunk/arch/arm/mach-exynos/include/mach/regs-pmu.h b/trunk/arch/arm/mach-exynos/include/mach/regs-pmu.h index 84428e72cf5e..3f30aa1ae354 100644 --- a/trunk/arch/arm/mach-exynos/include/mach/regs-pmu.h +++ b/trunk/arch/arm/mach-exynos/include/mach/regs-pmu.h @@ -15,6 +15,7 @@ #include #define S5P_PMUREG(x) (S5P_VA_PMU + (x)) +#define S5P_SYSREG(x) (S3C_VA_SYS + (x)) #define S5P_CENTRAL_SEQ_CONFIGURATION S5P_PMUREG(0x0200) @@ -231,6 +232,8 @@ /* For EXYNOS5 */ +#define EXYNOS5_SYS_I2C_CFG S5P_SYSREG(0x0234) + #define EXYNOS5_AUTO_WDTRESET_DISABLE S5P_PMUREG(0x0408) #define EXYNOS5_MASK_WDTRESET_REQUEST S5P_PMUREG(0x040C) diff --git a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c index 929de766d490..e99d3d8f2bcf 100644 --- a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c @@ -13,11 +13,12 @@ #include #include #include -#include +#include #include #include #include +#include #include #include @@ -124,6 +125,28 @@ static void __init exynos5_dt_map_io(void) static void __init exynos5_dt_machine_init(void) { + struct device_node *i2c_np; + const char *i2c_compat = "samsung,s3c2440-i2c"; + unsigned int tmp; + + /* + * Exynos5's legacy i2c controller and new high speed i2c + * controller have muxed interrupt sources. By default the + * interrupts for 4-channel HS-I2C controller are enabled. + * If node for first four channels of legacy i2c controller + * are available then re-configure the interrupts via the + * system register. + */ + for_each_compatible_node(i2c_np, NULL, i2c_compat) { + if (of_device_is_available(i2c_np)) { + if (of_alias_get_id(i2c_np, "i2c") < 4) { + tmp = readl(EXYNOS5_SYS_I2C_CFG); + writel(tmp & ~(0x1 << of_alias_get_id(i2c_np, "i2c")), + EXYNOS5_SYS_I2C_CFG); + } + } + } + if (of_machine_is_compatible("samsung,exynos5250")) of_platform_populate(NULL, of_default_bus_match_table, exynos5250_auxdata_lookup, NULL); @@ -140,6 +163,7 @@ static char const *exynos5_dt_compat[] __initdata = { static void __init exynos5_reserve(void) { +#ifdef CONFIG_S5P_DEV_MFC struct s5p_mfc_dt_meminfo mfc_mem; /* Reserve memory for MFC only if it's available */ @@ -147,6 +171,7 @@ static void __init exynos5_reserve(void) if (of_scan_flat_dt(s5p_fdt_find_mfc_mem, &mfc_mem)) s5p_mfc_reserve_mem(mfc_mem.roff, mfc_mem.rsize, mfc_mem.loff, mfc_mem.lsize); +#endif } DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") diff --git a/trunk/arch/arm/mach-exynos/mach-origen.c b/trunk/arch/arm/mach-exynos/mach-origen.c index e6f4191cd14c..5e34b9c16196 100644 --- a/trunk/arch/arm/mach-exynos/mach-origen.c +++ b/trunk/arch/arm/mach-exynos/mach-origen.c @@ -621,7 +621,7 @@ static struct pwm_lookup origen_pwm_lookup[] = { PWM_LOOKUP("s3c24xx-pwm.0", 0, "pwm-backlight.0", NULL), }; -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD static struct exynos_drm_fimd_pdata drm_fimd_pdata = { .panel = { .timing = { @@ -793,7 +793,7 @@ static void __init origen_machine_init(void) s5p_i2c_hdmiphy_set_platdata(NULL); s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0); -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; exynos4_fimd0_gpio_setup_24bpp(); #else diff --git a/trunk/arch/arm/mach-exynos/mach-smdk4x12.c b/trunk/arch/arm/mach-exynos/mach-smdk4x12.c index a1555a73c7af..ae6da40c2aa9 100644 --- a/trunk/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/trunk/arch/arm/mach-exynos/mach-smdk4x12.c @@ -246,7 +246,7 @@ static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = { .cols = 8, }; -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD static struct exynos_drm_fimd_pdata drm_fimd_pdata = { .panel = { .timing = { @@ -360,7 +360,7 @@ static void __init smdk4x12_machine_init(void) s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata); -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; exynos4_fimd0_gpio_setup_24bpp(); #else diff --git a/trunk/arch/arm/mach-exynos/mach-smdkv310.c b/trunk/arch/arm/mach-exynos/mach-smdkv310.c index b7384241fb03..35548e3c097d 100644 --- a/trunk/arch/arm/mach-exynos/mach-smdkv310.c +++ b/trunk/arch/arm/mach-exynos/mach-smdkv310.c @@ -159,7 +159,7 @@ static struct platform_device smdkv310_lcd_lte480wv = { .dev.platform_data = &smdkv310_lcd_lte480wv_data, }; -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD static struct exynos_drm_fimd_pdata drm_fimd_pdata = { .panel = { .timing = { @@ -402,7 +402,7 @@ static void __init smdkv310_machine_init(void) samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); pwm_add_table(smdkv310_pwm_lookup, ARRAY_SIZE(smdkv310_pwm_lookup)); -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; exynos4_fimd0_gpio_setup_24bpp(); #else diff --git a/trunk/arch/arm/mach-exynos/platsmp.c b/trunk/arch/arm/mach-exynos/platsmp.c index 4ca8ff14a5bf..c5c840e947b8 100644 --- a/trunk/arch/arm/mach-exynos/platsmp.c +++ b/trunk/arch/arm/mach-exynos/platsmp.c @@ -198,7 +198,7 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus) { int i; - if (!soc_is_exynos5250()) + if (!(soc_is_exynos5250() || soc_is_exynos5440())) scu_enable(scu_base_addr()); /* diff --git a/trunk/arch/arm/mach-exynos/pm.c b/trunk/arch/arm/mach-exynos/pm.c index 8df6ec547f78..b9b539cac81e 100644 --- a/trunk/arch/arm/mach-exynos/pm.c +++ b/trunk/arch/arm/mach-exynos/pm.c @@ -62,6 +62,10 @@ static struct sleep_save exynos4_vpll_save[] = { SAVE_ITEM(EXYNOS4_VPLL_CON1), }; +static struct sleep_save exynos5_sys_save[] = { + SAVE_ITEM(EXYNOS5_SYS_I2C_CFG), +}; + static struct sleep_save exynos_core_save[] = { /* SROM side */ SAVE_ITEM(S5P_SROM_BW), @@ -101,6 +105,7 @@ static void exynos_pm_prepare(void) s3c_pm_do_save(exynos4_epll_save, ARRAY_SIZE(exynos4_epll_save)); s3c_pm_do_save(exynos4_vpll_save, ARRAY_SIZE(exynos4_vpll_save)); } else { + s3c_pm_do_save(exynos5_sys_save, ARRAY_SIZE(exynos5_sys_save)); /* Disable USE_RETENTION of JPEG_MEM_OPTION */ tmp = __raw_readl(EXYNOS5_JPEG_MEM_OPTION); tmp &= ~EXYNOS5_OPTION_USE_RETENTION; @@ -304,6 +309,10 @@ static void exynos_pm_resume(void) __raw_writel((1 << 28), S5P_PAD_RET_EBIA_OPTION); __raw_writel((1 << 28), S5P_PAD_RET_EBIB_OPTION); + if (soc_is_exynos5250()) + s3c_pm_do_restore(exynos5_sys_save, + ARRAY_SIZE(exynos5_sys_save)); + s3c_pm_do_restore_core(exynos_core_save, ARRAY_SIZE(exynos_core_save)); if (!soc_is_exynos5250()) { diff --git a/trunk/arch/arm/mach-imx/clk-imx51-imx53.c b/trunk/arch/arm/mach-imx/clk-imx51-imx53.c index e8c0473c7568..579023f59dc1 100644 --- a/trunk/arch/arm/mach-imx/clk-imx51-imx53.c +++ b/trunk/arch/arm/mach-imx/clk-imx51-imx53.c @@ -319,6 +319,7 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc, unsigned long rate_ckih1, unsigned long rate_ckih2) { int i; + u32 val; struct device_node *np; clk[pll1_sw] = imx_clk_pllv2("pll1_sw", "osc", MX51_DPLL1_BASE); @@ -390,6 +391,21 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc, imx_print_silicon_rev("i.MX51", mx51_revision()); clk_disable_unprepare(clk[iim_gate]); + /* + * Reference Manual says: Functionality of CCDR[18] and CLPCR[23] is no + * longer supported. Set to one for better power saving. + * + * The effect of not setting these bits is that MIPI clocks can't be + * enabled without the IPU clock being enabled aswell. + */ + val = readl(MXC_CCM_CCDR); + val |= 1 << 18; + writel(val, MXC_CCM_CCDR); + + val = readl(MXC_CCM_CLPCR); + val |= 1 << 23; + writel(val, MXC_CCM_CLPCR); + return 0; } diff --git a/trunk/arch/arm/plat-mxc/devices/platform-mx2-emma.c b/trunk/arch/arm/mach-imx/devices/platform-mx2-emma.c similarity index 94% rename from trunk/arch/arm/plat-mxc/devices/platform-mx2-emma.c rename to trunk/arch/arm/mach-imx/devices/platform-mx2-emma.c index 508404ddd4ea..11bd01d402f2 100644 --- a/trunk/arch/arm/plat-mxc/devices/platform-mx2-emma.c +++ b/trunk/arch/arm/mach-imx/devices/platform-mx2-emma.c @@ -6,8 +6,8 @@ * the terms of the GNU General Public License version 2 as published by the * Free Software Foundation. */ -#include -#include +#include "../hardware.h" +#include "devices-common.h" #define imx_mx2_emmaprp_data_entry_single(soc) \ { \ diff --git a/trunk/arch/arm/mach-kirkwood/Kconfig b/trunk/arch/arm/mach-kirkwood/Kconfig index 503d7dd944ff..f91cdff5a3e4 100644 --- a/trunk/arch/arm/mach-kirkwood/Kconfig +++ b/trunk/arch/arm/mach-kirkwood/Kconfig @@ -51,6 +51,8 @@ config ARCH_KIRKWOOD_DT select POWER_RESET_GPIO select REGULATOR select REGULATOR_FIXED_VOLTAGE + select MVEBU_CLK_CORE + select MVEBU_CLK_GATING select USE_OF help Say 'Y' here if you want your kernel to support the diff --git a/trunk/arch/arm/mach-kirkwood/board-dt.c b/trunk/arch/arm/mach-kirkwood/board-dt.c index 375f7d88551c..ff4150a2ad05 100644 --- a/trunk/arch/arm/mach-kirkwood/board-dt.c +++ b/trunk/arch/arm/mach-kirkwood/board-dt.c @@ -14,11 +14,15 @@ #include #include #include +#include +#include #include #include #include #include +#include #include +#include #include "common.h" static struct of_device_id kirkwood_dt_match_table[] __initdata = { @@ -26,18 +30,50 @@ static struct of_device_id kirkwood_dt_match_table[] __initdata = { { } }; -static struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = { - OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), - OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", - NULL), - OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011100, "mv64xxx_i2c.1", - NULL), - OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), - OF_DEV_AUXDATA("marvell,orion-sata", 0xf1080000, "sata_mv.0", NULL), - OF_DEV_AUXDATA("marvell,orion-nand", 0xf4000000, "orion_nand", NULL), - OF_DEV_AUXDATA("marvell,orion-crypto", 0xf1030000, "mv_crypto", NULL), - {}, -}; +/* + * There are still devices that doesn't know about DT yet. Get clock + * gates here and add a clock lookup alias, so that old platform + * devices still work. +*/ + +static void __init kirkwood_legacy_clk_init(void) +{ + + struct device_node *np = of_find_compatible_node( + NULL, NULL, "marvell,kirkwood-gating-clock"); + + struct of_phandle_args clkspec; + + clkspec.np = np; + clkspec.args_count = 1; + + clkspec.args[0] = CGC_BIT_GE0; + orion_clkdev_add(NULL, "mv643xx_eth_port.0", + of_clk_get_from_provider(&clkspec)); + + clkspec.args[0] = CGC_BIT_PEX0; + orion_clkdev_add("0", "pcie", + of_clk_get_from_provider(&clkspec)); + + clkspec.args[0] = CGC_BIT_USB0; + orion_clkdev_add(NULL, "orion-ehci.0", + of_clk_get_from_provider(&clkspec)); + + clkspec.args[0] = CGC_BIT_PEX1; + orion_clkdev_add("1", "pcie", + of_clk_get_from_provider(&clkspec)); + + clkspec.args[0] = CGC_BIT_GE1; + orion_clkdev_add(NULL, "mv643xx_eth_port.1", + of_clk_get_from_provider(&clkspec)); + +} + +static void __init kirkwood_of_clk_init(void) +{ + mvebu_clocks_init(); + kirkwood_legacy_clk_init(); +} static void __init kirkwood_dt_init(void) { @@ -56,11 +92,7 @@ static void __init kirkwood_dt_init(void) kirkwood_l2_init(); /* Setup root of clk tree */ - kirkwood_clk_init(); - - /* internal devices that every board has */ - kirkwood_xor0_init(); - kirkwood_xor1_init(); + kirkwood_of_clk_init(); #ifdef CONFIG_KEXEC kexec_reinit = kirkwood_enable_pcie; @@ -115,8 +147,7 @@ static void __init kirkwood_dt_init(void) if (of_machine_is_compatible("zyxel,nsa310")) nsa310_init(); - of_platform_populate(NULL, kirkwood_dt_match_table, - kirkwood_auxdata_lookup, NULL); + of_platform_populate(NULL, kirkwood_dt_match_table, NULL, NULL); } static const char * const kirkwood_dt_board_compat[] = { diff --git a/trunk/arch/arm/mach-kirkwood/common.c b/trunk/arch/arm/mach-kirkwood/common.c index 5303be62b311..bac21a554c91 100644 --- a/trunk/arch/arm/mach-kirkwood/common.c +++ b/trunk/arch/arm/mach-kirkwood/common.c @@ -260,8 +260,8 @@ void __init kirkwood_clk_init(void) orion_clkdev_add(NULL, "orion_nand", runit); orion_clkdev_add(NULL, "mvsdio", sdio); orion_clkdev_add(NULL, "mv_crypto", crypto); - orion_clkdev_add(NULL, MV_XOR_SHARED_NAME ".0", xor0); - orion_clkdev_add(NULL, MV_XOR_SHARED_NAME ".1", xor1); + orion_clkdev_add(NULL, MV_XOR_NAME ".0", xor0); + orion_clkdev_add(NULL, MV_XOR_NAME ".1", xor1); orion_clkdev_add("0", "pcie", pex0); orion_clkdev_add("1", "pcie", pex1); orion_clkdev_add(NULL, "kirkwood-i2s", audio); diff --git a/trunk/arch/arm/mach-mvebu/Kconfig b/trunk/arch/arm/mach-mvebu/Kconfig index 416d46ef7ebd..440b13ef1fed 100644 --- a/trunk/arch/arm/mach-mvebu/Kconfig +++ b/trunk/arch/arm/mach-mvebu/Kconfig @@ -9,6 +9,10 @@ config ARCH_MVEBU select PINCTRL select PLAT_ORION select SPARSE_IRQ + select CLKDEV_LOOKUP + select MVEBU_CLK_CORE + select MVEBU_CLK_CPU + select MVEBU_CLK_GATING if ARCH_MVEBU @@ -17,7 +21,9 @@ menu "Marvell SOC with device tree" config MACH_ARMADA_370_XP bool select ARMADA_370_XP_TIMER - select CPU_V7 + select HAVE_SMP + select CACHE_L2X0 + select CPU_PJ4B config MACH_ARMADA_370 bool "Marvell Armada 370 boards" diff --git a/trunk/arch/arm/mach-mvebu/Makefile b/trunk/arch/arm/mach-mvebu/Makefile index 57f996b6aa0e..5dcb369b58aa 100644 --- a/trunk/arch/arm/mach-mvebu/Makefile +++ b/trunk/arch/arm/mach-mvebu/Makefile @@ -2,4 +2,6 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ -I$(srctree)/arch/arm/plat-orion/include obj-y += system-controller.o -obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o +obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o coherency.o coherency_ll.o pmsu.o +obj-$(CONFIG_SMP) += platsmp.o headsmp.o +obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o diff --git a/trunk/arch/arm/mach-mvebu/addr-map.c b/trunk/arch/arm/mach-mvebu/addr-map.c index fe454a4430be..ab9b3bd4fef5 100644 --- a/trunk/arch/arm/mach-mvebu/addr-map.c +++ b/trunk/arch/arm/mach-mvebu/addr-map.c @@ -78,7 +78,7 @@ armada_cfg_base(const struct orion_addr_map_cfg *cfg, int win) if (win < 8) offset = (win << 4); else - offset = ARMADA_WINDOW_8_PLUS_OFFSET + (win << 3); + offset = ARMADA_WINDOW_8_PLUS_OFFSET + ((win - 8) << 3); return cfg->bridge_virt_base + offset; } @@ -108,6 +108,9 @@ static int __init armada_setup_cpu_mbus(void) addr_map_cfg.bridge_virt_base = mbus_unit_addr_decoding_base; + if (of_find_compatible_node(NULL, NULL, "marvell,coherency-fabric")) + addr_map_cfg.hw_io_coherency = 1; + /* * Disable, clear and configure windows. */ diff --git a/trunk/arch/arm/mach-mvebu/armada-370-xp.c b/trunk/arch/arm/mach-mvebu/armada-370-xp.c index 49d791548ad6..7434b5e36197 100644 --- a/trunk/arch/arm/mach-mvebu/armada-370-xp.c +++ b/trunk/arch/arm/mach-mvebu/armada-370-xp.c @@ -17,11 +17,14 @@ #include #include #include +#include +#include #include #include #include #include "armada-370-xp.h" #include "common.h" +#include "coherency.h" static struct map_desc armada_370_xp_io_desc[] __initdata = { { @@ -37,27 +40,45 @@ void __init armada_370_xp_map_io(void) iotable_init(armada_370_xp_io_desc, ARRAY_SIZE(armada_370_xp_io_desc)); } +void __init armada_370_xp_timer_and_clk_init(void) +{ + mvebu_clocks_init(); + armada_370_xp_timer_init(); +} + +void __init armada_370_xp_init_early(void) +{ + /* + * Some Armada 370/XP devices allocate their coherent buffers + * from atomic context. Increase size of atomic coherent pool + * to make sure such the allocations won't fail. + */ + init_dma_coherent_pool_size(SZ_1M); +} + struct sys_timer armada_370_xp_timer = { - .init = armada_370_xp_timer_init, + .init = armada_370_xp_timer_and_clk_init, }; static void __init armada_370_xp_dt_init(void) { of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); + coherency_init(); } -static const char * const armada_370_xp_dt_board_dt_compat[] = { - "marvell,a370-db", - "marvell,axp-db", +static const char * const armada_370_xp_dt_compat[] = { + "marvell,armada-370-xp", NULL, }; -DT_MACHINE_START(ARMADA_XP_DT, "Marvell Aramada 370/XP (Device Tree)") +DT_MACHINE_START(ARMADA_XP_DT, "Marvell Armada 370/XP (Device Tree)") + .smp = smp_ops(armada_xp_smp_ops), .init_machine = armada_370_xp_dt_init, .map_io = armada_370_xp_map_io, + .init_early = armada_370_xp_init_early, .init_irq = armada_370_xp_init_irq, .handle_irq = armada_370_xp_handle_irq, .timer = &armada_370_xp_timer, .restart = mvebu_restart, - .dt_compat = armada_370_xp_dt_board_dt_compat, + .dt_compat = armada_370_xp_dt_compat, MACHINE_END diff --git a/trunk/arch/arm/mach-mvebu/armada-370-xp.h b/trunk/arch/arm/mach-mvebu/armada-370-xp.h index aac9bebc6b03..c6a7d74fddfe 100644 --- a/trunk/arch/arm/mach-mvebu/armada-370-xp.h +++ b/trunk/arch/arm/mach-mvebu/armada-370-xp.h @@ -19,4 +19,11 @@ #define ARMADA_370_XP_REGS_VIRT_BASE IOMEM(0xfeb00000) #define ARMADA_370_XP_REGS_SIZE SZ_1M +#ifdef CONFIG_SMP +#include + +void armada_mpic_send_doorbell(const struct cpumask *mask, unsigned int irq); +void armada_xp_mpic_smp_cpu_init(void); +#endif + #endif /* __MACH_ARMADA_370_XP_H */ diff --git a/trunk/arch/arm/mach-mvebu/coherency.c b/trunk/arch/arm/mach-mvebu/coherency.c new file mode 100644 index 000000000000..8278960066c3 --- /dev/null +++ b/trunk/arch/arm/mach-mvebu/coherency.c @@ -0,0 +1,155 @@ +/* + * Coherency fabric (Aurora) support for Armada 370 and XP platforms. + * + * Copyright (C) 2012 Marvell + * + * Yehuda Yitschak + * Gregory Clement + * Thomas Petazzoni + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * The Armada 370 and Armada XP SOCs have a coherency fabric which is + * responsible for ensuring hardware coherency between all CPUs and between + * CPUs and I/O masters. This file initializes the coherency fabric and + * supplies basic routines for configuring and controlling hardware coherency + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "armada-370-xp.h" + +/* + * Some functions in this file are called very early during SMP + * initialization. At that time the device tree framework is not yet + * ready, and it is not possible to get the register address to + * ioremap it. That's why the pointer below is given with an initial + * value matching its virtual mapping + */ +static void __iomem *coherency_base = ARMADA_370_XP_REGS_VIRT_BASE + 0x20200; +static void __iomem *coherency_cpu_base; + +/* Coherency fabric registers */ +#define COHERENCY_FABRIC_CFG_OFFSET 0x4 + +#define IO_SYNC_BARRIER_CTL_OFFSET 0x0 + +static struct of_device_id of_coherency_table[] = { + {.compatible = "marvell,coherency-fabric"}, + { /* end of list */ }, +}; + +#ifdef CONFIG_SMP +int coherency_get_cpu_count(void) +{ + int reg, cnt; + + reg = readl(coherency_base + COHERENCY_FABRIC_CFG_OFFSET); + cnt = (reg & 0xF) + 1; + + return cnt; +} +#endif + +/* Function defined in coherency_ll.S */ +int ll_set_cpu_coherent(void __iomem *base_addr, unsigned int hw_cpu_id); + +int set_cpu_coherent(unsigned int hw_cpu_id, int smp_group_id) +{ + if (!coherency_base) { + pr_warn("Can't make CPU %d cache coherent.\n", hw_cpu_id); + pr_warn("Coherency fabric is not initialized\n"); + return 1; + } + + return ll_set_cpu_coherent(coherency_base, hw_cpu_id); +} + +static inline void mvebu_hwcc_sync_io_barrier(void) +{ + writel(0x1, coherency_cpu_base + IO_SYNC_BARRIER_CTL_OFFSET); + while (readl(coherency_cpu_base + IO_SYNC_BARRIER_CTL_OFFSET) & 0x1); +} + +static dma_addr_t mvebu_hwcc_dma_map_page(struct device *dev, struct page *page, + unsigned long offset, size_t size, + enum dma_data_direction dir, + struct dma_attrs *attrs) +{ + if (dir != DMA_TO_DEVICE) + mvebu_hwcc_sync_io_barrier(); + return pfn_to_dma(dev, page_to_pfn(page)) + offset; +} + + +static void mvebu_hwcc_dma_unmap_page(struct device *dev, dma_addr_t dma_handle, + size_t size, enum dma_data_direction dir, + struct dma_attrs *attrs) +{ + if (dir != DMA_TO_DEVICE) + mvebu_hwcc_sync_io_barrier(); +} + +static void mvebu_hwcc_dma_sync(struct device *dev, dma_addr_t dma_handle, + size_t size, enum dma_data_direction dir) +{ + if (dir != DMA_TO_DEVICE) + mvebu_hwcc_sync_io_barrier(); +} + +static struct dma_map_ops mvebu_hwcc_dma_ops = { + .alloc = arm_dma_alloc, + .free = arm_dma_free, + .mmap = arm_dma_mmap, + .map_page = mvebu_hwcc_dma_map_page, + .unmap_page = mvebu_hwcc_dma_unmap_page, + .get_sgtable = arm_dma_get_sgtable, + .map_sg = arm_dma_map_sg, + .unmap_sg = arm_dma_unmap_sg, + .sync_single_for_cpu = mvebu_hwcc_dma_sync, + .sync_single_for_device = mvebu_hwcc_dma_sync, + .sync_sg_for_cpu = arm_dma_sync_sg_for_cpu, + .sync_sg_for_device = arm_dma_sync_sg_for_device, + .set_dma_mask = arm_dma_set_mask, +}; + +static int mvebu_hwcc_platform_notifier(struct notifier_block *nb, + unsigned long event, void *__dev) +{ + struct device *dev = __dev; + + if (event != BUS_NOTIFY_ADD_DEVICE) + return NOTIFY_DONE; + set_dma_ops(dev, &mvebu_hwcc_dma_ops); + + return NOTIFY_OK; +} + +static struct notifier_block mvebu_hwcc_platform_nb = { + .notifier_call = mvebu_hwcc_platform_notifier, +}; + +int __init coherency_init(void) +{ + struct device_node *np; + + np = of_find_matching_node(NULL, of_coherency_table); + if (np) { + pr_info("Initializing Coherency fabric\n"); + coherency_base = of_iomap(np, 0); + coherency_cpu_base = of_iomap(np, 1); + set_cpu_coherent(cpu_logical_map(smp_processor_id()), 0); + bus_register_notifier(&platform_bus_type, + &mvebu_hwcc_platform_nb); + } + + return 0; +} diff --git a/trunk/arch/arm/mach-mvebu/coherency.h b/trunk/arch/arm/mach-mvebu/coherency.h new file mode 100644 index 000000000000..2f428137f6fe --- /dev/null +++ b/trunk/arch/arm/mach-mvebu/coherency.h @@ -0,0 +1,24 @@ +/* + * arch/arm/mach-mvebu/include/mach/coherency.h + * + * + * Coherency fabric (Aurora) support for Armada 370 and XP platforms. + * + * Copyright (C) 2012 Marvell + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#ifndef __MACH_370_XP_COHERENCY_H +#define __MACH_370_XP_COHERENCY_H + +#ifdef CONFIG_SMP +int coherency_get_cpu_count(void); +#endif + +int set_cpu_coherent(int cpu_id, int smp_group_id); +int coherency_init(void); + +#endif /* __MACH_370_XP_COHERENCY_H */ diff --git a/trunk/arch/arm/mach-mvebu/coherency_ll.S b/trunk/arch/arm/mach-mvebu/coherency_ll.S new file mode 100644 index 000000000000..53e8391192cd --- /dev/null +++ b/trunk/arch/arm/mach-mvebu/coherency_ll.S @@ -0,0 +1,49 @@ +/* + * Coherency fabric: low level functions + * + * Copyright (C) 2012 Marvell + * + * Gregory CLEMENT + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * This file implements the assembly function to add a CPU to the + * coherency fabric. This function is called by each of the secondary + * CPUs during their early boot in an SMP kernel, this why this + * function have to callable from assembly. It can also be called by a + * primary CPU from C code during its boot. + */ + +#include +#define ARMADA_XP_CFB_CTL_REG_OFFSET 0x0 +#define ARMADA_XP_CFB_CFG_REG_OFFSET 0x4 + + .text +/* + * r0: Coherency fabric base register address + * r1: HW CPU id + */ +ENTRY(ll_set_cpu_coherent) + /* Create bit by cpu index */ + mov r3, #(1 << 24) + lsl r1, r3, r1 + + /* Add CPU to SMP group - Atomic */ + add r3, r0, #ARMADA_XP_CFB_CTL_REG_OFFSET + ldr r2, [r3] + orr r2, r2, r1 + str r2, [r3] + + /* Enable coherency on CPU - Atomic */ + add r3, r0, #ARMADA_XP_CFB_CFG_REG_OFFSET + ldr r2, [r3] + orr r2, r2, r1 + str r2, [r3] + + dsb + + mov r0, #0 + mov pc, lr +ENDPROC(ll_set_cpu_coherent) diff --git a/trunk/arch/arm/mach-mvebu/common.h b/trunk/arch/arm/mach-mvebu/common.h index 02f89eaa25fe..aa27bc2ffb60 100644 --- a/trunk/arch/arm/mach-mvebu/common.h +++ b/trunk/arch/arm/mach-mvebu/common.h @@ -20,4 +20,9 @@ void mvebu_restart(char mode, const char *cmd); void armada_370_xp_init_irq(void); void armada_370_xp_handle_irq(struct pt_regs *regs); +void armada_xp_cpu_die(unsigned int cpu); +int armada_370_xp_coherency_init(void); +int armada_370_xp_pmsu_init(void); +void armada_xp_secondary_startup(void); +extern struct smp_operations armada_xp_smp_ops; #endif diff --git a/trunk/arch/arm/mach-mvebu/headsmp.S b/trunk/arch/arm/mach-mvebu/headsmp.S new file mode 100644 index 000000000000..a06e0ede8c08 --- /dev/null +++ b/trunk/arch/arm/mach-mvebu/headsmp.S @@ -0,0 +1,49 @@ +/* + * SMP support: Entry point for secondary CPUs + * + * Copyright (C) 2012 Marvell + * + * Yehuda Yitschak + * Gregory CLEMENT + * Thomas Petazzoni + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * This file implements the assembly entry point for secondary CPUs in + * an SMP kernel. The only thing we need to do is to add the CPU to + * the coherency fabric by writing to 2 registers. Currently the base + * register addresses are hard coded due to the early initialisation + * problems. + */ + +#include +#include + +/* + * At this stage the secondary CPUs don't have acces yet to the MMU, so + * we have to provide physical addresses + */ +#define ARMADA_XP_CFB_BASE 0xD0020200 + + __CPUINIT + +/* + * Armada XP specific entry point for secondary CPUs. + * We add the CPU to the coherency fabric and then jump to secondary + * startup + */ +ENTRY(armada_xp_secondary_startup) + + /* Read CPU id */ + mrc p15, 0, r1, c0, c0, 5 + and r1, r1, #0xF + + /* Add CPU to coherency fabric */ + ldr r0, =ARMADA_XP_CFB_BASE + + bl ll_set_cpu_coherent + b secondary_startup + +ENDPROC(armada_xp_secondary_startup) diff --git a/trunk/arch/arm/mach-mvebu/hotplug.c b/trunk/arch/arm/mach-mvebu/hotplug.c new file mode 100644 index 000000000000..b228b6a80c85 --- /dev/null +++ b/trunk/arch/arm/mach-mvebu/hotplug.c @@ -0,0 +1,30 @@ +/* + * Symmetric Multi Processing (SMP) support for Armada XP + * + * Copyright (C) 2012 Marvell + * + * Lior Amsalem + * Gregory CLEMENT + * Thomas Petazzoni + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ +#include +#include +#include +#include + +/* + * platform-specific code to shutdown a CPU + * + * Called with IRQs disabled + */ +void __ref armada_xp_cpu_die(unsigned int cpu) +{ + cpu_do_idle(); + + /* We should never return from idle */ + panic("mvebu: cpu %d unexpectedly exit from shutdown\n", cpu); +} diff --git a/trunk/arch/arm/mach-mvebu/irq-armada-370-xp.c b/trunk/arch/arm/mach-mvebu/irq-armada-370-xp.c index 5f5f9394b6b2..8e3fb082c3c6 100644 --- a/trunk/arch/arm/mach-mvebu/irq-armada-370-xp.c +++ b/trunk/arch/arm/mach-mvebu/irq-armada-370-xp.c @@ -24,6 +24,8 @@ #include #include #include +#include +#include /* Interrupt Controller Registers Map */ #define ARMADA_370_XP_INT_SET_MASK_OFFS (0x48) @@ -35,6 +37,12 @@ #define ARMADA_370_XP_CPU_INTACK_OFFS (0x44) +#define ARMADA_370_XP_SW_TRIG_INT_OFFS (0x4) +#define ARMADA_370_XP_IN_DRBEL_MSK_OFFS (0xc) +#define ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS (0x8) + +#define ACTIVE_DOORBELLS (8) + static void __iomem *per_cpu_int_base; static void __iomem *main_int_base; static struct irq_domain *armada_370_xp_mpic_domain; @@ -51,11 +59,22 @@ static void armada_370_xp_irq_unmask(struct irq_data *d) per_cpu_int_base + ARMADA_370_XP_INT_CLEAR_MASK_OFFS); } +#ifdef CONFIG_SMP +static int armada_xp_set_affinity(struct irq_data *d, + const struct cpumask *mask_val, bool force) +{ + return 0; +} +#endif + static struct irq_chip armada_370_xp_irq_chip = { .name = "armada_370_xp_irq", .irq_mask = armada_370_xp_irq_mask, .irq_mask_ack = armada_370_xp_irq_mask, .irq_unmask = armada_370_xp_irq_unmask, +#ifdef CONFIG_SMP + .irq_set_affinity = armada_xp_set_affinity, +#endif }; static int armada_370_xp_mpic_irq_map(struct irq_domain *h, @@ -72,6 +91,41 @@ static int armada_370_xp_mpic_irq_map(struct irq_domain *h, return 0; } +#ifdef CONFIG_SMP +void armada_mpic_send_doorbell(const struct cpumask *mask, unsigned int irq) +{ + int cpu; + unsigned long map = 0; + + /* Convert our logical CPU mask into a physical one. */ + for_each_cpu(cpu, mask) + map |= 1 << cpu_logical_map(cpu); + + /* + * Ensure that stores to Normal memory are visible to the + * other CPUs before issuing the IPI. + */ + dsb(); + + /* submit softirq */ + writel((map << 8) | irq, main_int_base + + ARMADA_370_XP_SW_TRIG_INT_OFFS); +} + +void armada_xp_mpic_smp_cpu_init(void) +{ + /* Clear pending IPIs */ + writel(0, per_cpu_int_base + ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS); + + /* Enable first 8 IPIs */ + writel((1 << ACTIVE_DOORBELLS) - 1, per_cpu_int_base + + ARMADA_370_XP_IN_DRBEL_MSK_OFFS); + + /* Unmask IPI interrupt */ + writel(0, per_cpu_int_base + ARMADA_370_XP_INT_CLEAR_MASK_OFFS); +} +#endif /* CONFIG_SMP */ + static struct irq_domain_ops armada_370_xp_mpic_irq_ops = { .map = armada_370_xp_mpic_irq_map, .xlate = irq_domain_xlate_onecell, @@ -91,13 +145,18 @@ static int __init armada_370_xp_mpic_of_init(struct device_node *node, control = readl(main_int_base + ARMADA_370_XP_INT_CONTROL); armada_370_xp_mpic_domain = - irq_domain_add_linear(node, (control >> 2) & 0x3ff, - &armada_370_xp_mpic_irq_ops, NULL); + irq_domain_add_linear(node, (control >> 2) & 0x3ff, + &armada_370_xp_mpic_irq_ops, NULL); if (!armada_370_xp_mpic_domain) panic("Unable to add Armada_370_Xp MPIC irq domain (DT)\n"); irq_set_default_host(armada_370_xp_mpic_domain); + +#ifdef CONFIG_SMP + armada_xp_mpic_smp_cpu_init(); +#endif + return 0; } @@ -111,14 +170,36 @@ asmlinkage void __exception_irq_entry armada_370_xp_handle_irq(struct pt_regs ARMADA_370_XP_CPU_INTACK_OFFS); irqnr = irqstat & 0x3FF; - if (irqnr < 1023) { - irqnr = - irq_find_mapping(armada_370_xp_mpic_domain, irqnr); + if (irqnr > 1022) + break; + + if (irqnr >= 8) { + irqnr = irq_find_mapping(armada_370_xp_mpic_domain, + irqnr); handle_IRQ(irqnr, regs); continue; } +#ifdef CONFIG_SMP + /* IPI Handling */ + if (irqnr == 0) { + u32 ipimask, ipinr; + + ipimask = readl_relaxed(per_cpu_int_base + + ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS) + & 0xFF; + + writel(0x0, per_cpu_int_base + + ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS); + + /* Handle all pending doorbells */ + for (ipinr = 0; ipinr < ACTIVE_DOORBELLS; ipinr++) { + if (ipimask & (0x1 << ipinr)) + handle_IPI(ipinr, regs); + } + continue; + } +#endif - break; } while (1); } @@ -130,4 +211,7 @@ static const struct of_device_id mpic_of_match[] __initconst = { void __init armada_370_xp_init_irq(void) { of_irq_init(mpic_of_match); +#ifdef CONFIG_CACHE_L2X0 + l2x0_of_init(0, ~0UL); +#endif } diff --git a/trunk/arch/arm/mach-mvebu/platsmp.c b/trunk/arch/arm/mach-mvebu/platsmp.c new file mode 100644 index 000000000000..fe16aaf7c19c --- /dev/null +++ b/trunk/arch/arm/mach-mvebu/platsmp.c @@ -0,0 +1,122 @@ +/* + * Symmetric Multi Processing (SMP) support for Armada XP + * + * Copyright (C) 2012 Marvell + * + * Lior Amsalem + * Yehuda Yitschak + * Gregory CLEMENT + * Thomas Petazzoni + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * The Armada XP SoC has 4 ARMv7 PJ4B CPUs running in full HW coherency + * This file implements the routines for preparing the SMP infrastructure + * and waking up the secondary CPUs + */ + +#include +#include +#include +#include +#include +#include +#include "common.h" +#include "armada-370-xp.h" +#include "pmsu.h" +#include "coherency.h" + +void __init set_secondary_cpus_clock(void) +{ + int thiscpu; + unsigned long rate; + struct clk *cpu_clk = NULL; + struct device_node *np = NULL; + + thiscpu = smp_processor_id(); + for_each_node_by_type(np, "cpu") { + int err; + int cpu; + + err = of_property_read_u32(np, "reg", &cpu); + if (WARN_ON(err)) + return; + + if (cpu == thiscpu) { + cpu_clk = of_clk_get(np, 0); + break; + } + } + if (WARN_ON(IS_ERR(cpu_clk))) + return; + clk_prepare_enable(cpu_clk); + rate = clk_get_rate(cpu_clk); + + /* set all the other CPU clk to the same rate than the boot CPU */ + for_each_node_by_type(np, "cpu") { + int err; + int cpu; + + err = of_property_read_u32(np, "reg", &cpu); + if (WARN_ON(err)) + return; + + if (cpu != thiscpu) { + cpu_clk = of_clk_get(np, 0); + clk_set_rate(cpu_clk, rate); + } + } +} + +static void __cpuinit armada_xp_secondary_init(unsigned int cpu) +{ + armada_xp_mpic_smp_cpu_init(); +} + +static int __cpuinit armada_xp_boot_secondary(unsigned int cpu, + struct task_struct *idle) +{ + pr_info("Booting CPU %d\n", cpu); + + armada_xp_boot_cpu(cpu, armada_xp_secondary_startup); + + return 0; +} + +static void __init armada_xp_smp_init_cpus(void) +{ + unsigned int i, ncores; + ncores = coherency_get_cpu_count(); + + /* Limit possible CPUs to defconfig */ + if (ncores > nr_cpu_ids) { + pr_warn("SMP: %d CPUs physically present. Only %d configured.", + ncores, nr_cpu_ids); + pr_warn("Clipping CPU count to %d\n", nr_cpu_ids); + ncores = nr_cpu_ids; + } + + for (i = 0; i < ncores; i++) + set_cpu_possible(i, true); + + set_smp_cross_call(armada_mpic_send_doorbell); +} + +void __init armada_xp_smp_prepare_cpus(unsigned int max_cpus) +{ + set_secondary_cpus_clock(); + flush_cache_all(); + set_cpu_coherent(cpu_logical_map(smp_processor_id()), 0); +} + +struct smp_operations armada_xp_smp_ops __initdata = { + .smp_init_cpus = armada_xp_smp_init_cpus, + .smp_prepare_cpus = armada_xp_smp_prepare_cpus, + .smp_secondary_init = armada_xp_secondary_init, + .smp_boot_secondary = armada_xp_boot_secondary, +#ifdef CONFIG_HOTPLUG_CPU + .cpu_die = armada_xp_cpu_die, +#endif +}; diff --git a/trunk/arch/arm/mach-mvebu/pmsu.c b/trunk/arch/arm/mach-mvebu/pmsu.c new file mode 100644 index 000000000000..3cc4bef6401c --- /dev/null +++ b/trunk/arch/arm/mach-mvebu/pmsu.c @@ -0,0 +1,75 @@ +/* + * Power Management Service Unit(PMSU) support for Armada 370/XP platforms. + * + * Copyright (C) 2012 Marvell + * + * Yehuda Yitschak + * Gregory Clement + * Thomas Petazzoni + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * The Armada 370 and Armada XP SOCs have a power management service + * unit which is responsible for powering down and waking up CPUs and + * other SOC units + */ + +#include +#include +#include +#include +#include +#include + +static void __iomem *pmsu_mp_base; +static void __iomem *pmsu_reset_base; + +#define PMSU_BOOT_ADDR_REDIRECT_OFFSET(cpu) ((cpu * 0x100) + 0x24) +#define PMSU_RESET_CTL_OFFSET(cpu) (cpu * 0x8) + +static struct of_device_id of_pmsu_table[] = { + {.compatible = "marvell,armada-370-xp-pmsu"}, + { /* end of list */ }, +}; + +#ifdef CONFIG_SMP +int armada_xp_boot_cpu(unsigned int cpu_id, void *boot_addr) +{ + int reg, hw_cpu; + + if (!pmsu_mp_base || !pmsu_reset_base) { + pr_warn("Can't boot CPU. PMSU is uninitialized\n"); + return 1; + } + + hw_cpu = cpu_logical_map(cpu_id); + + writel(virt_to_phys(boot_addr), pmsu_mp_base + + PMSU_BOOT_ADDR_REDIRECT_OFFSET(hw_cpu)); + + /* Release CPU from reset by clearing reset bit*/ + reg = readl(pmsu_reset_base + PMSU_RESET_CTL_OFFSET(hw_cpu)); + reg &= (~0x1); + writel(reg, pmsu_reset_base + PMSU_RESET_CTL_OFFSET(hw_cpu)); + + return 0; +} +#endif + +int __init armada_370_xp_pmsu_init(void) +{ + struct device_node *np; + + np = of_find_matching_node(NULL, of_pmsu_table); + if (np) { + pr_info("Initializing Power Management Service Unit\n"); + pmsu_mp_base = of_iomap(np, 0); + pmsu_reset_base = of_iomap(np, 1); + } + + return 0; +} + +early_initcall(armada_370_xp_pmsu_init); diff --git a/trunk/arch/arm/mach-mvebu/pmsu.h b/trunk/arch/arm/mach-mvebu/pmsu.h new file mode 100644 index 000000000000..07a737c6b95d --- /dev/null +++ b/trunk/arch/arm/mach-mvebu/pmsu.h @@ -0,0 +1,16 @@ +/* + * Power Management Service Unit (PMSU) support for Armada 370/XP platforms. + * + * Copyright (C) 2012 Marvell + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#ifndef __MACH_MVEBU_PMSU_H +#define __MACH_MVEBU_PMSU_H + +int armada_xp_boot_cpu(unsigned int cpu_id, void *phys_addr); + +#endif /* __MACH_370_XP_PMSU_H */ diff --git a/trunk/arch/arm/mach-mxs/mach-mxs.c b/trunk/arch/arm/mach-mxs/mach-mxs.c index 98070370d602..c66129b5dd18 100644 --- a/trunk/arch/arm/mach-mxs/mach-mxs.c +++ b/trunk/arch/arm/mach-mxs/mach-mxs.c @@ -240,7 +240,7 @@ static void __init update_fec_mac_prop(enum mac_oui oui) macaddr[4] = (val >> 8) & 0xff; macaddr[5] = (val >> 0) & 0xff; - prom_update_property(np, newmac); + of_update_property(np, newmac); } } diff --git a/trunk/arch/arm/mach-nomadik/board-nhk8815.c b/trunk/arch/arm/mach-nomadik/board-nhk8815.c index 5ccdf53c5a9d..98167a4319f7 100644 --- a/trunk/arch/arm/mach-nomadik/board-nhk8815.c +++ b/trunk/arch/arm/mach-nomadik/board-nhk8815.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -33,7 +34,6 @@ #include #include #include -#include #include #include "cpu-8815.h" @@ -42,39 +42,34 @@ #define SRC_CR_INIT_MASK 0x00007fff #define SRC_CR_INIT_VAL 0x2aaa8000 +#define ALE_OFF 0x1000000 +#define CLE_OFF 0x800000 + /* These addresses span 16MB, so use three individual pages */ static struct resource nhk8815_nand_resources[] = { { + .name = "nand_data", + .start = 0x40000000, + .end = 0x40000000 + SZ_16K - 1, + .flags = IORESOURCE_MEM, + }, { .name = "nand_addr", - .start = NAND_IO_ADDR, - .end = NAND_IO_ADDR + 0xfff, + .start = 0x40000000 + ALE_OFF, + .end = 0x40000000 +ALE_OFF + SZ_16K - 1, .flags = IORESOURCE_MEM, }, { .name = "nand_cmd", - .start = NAND_IO_CMD, - .end = NAND_IO_CMD + 0xfff, + .start = 0x40000000 + CLE_OFF, + .end = 0x40000000 + CLE_OFF + SZ_16K - 1, .flags = IORESOURCE_MEM, }, { - .name = "nand_data", - .start = NAND_IO_DATA, - .end = NAND_IO_DATA + 0xfff, + .name = "fsmc_regs", + .start = NOMADIK_FSMC_BASE, + .end = NOMADIK_FSMC_BASE + SZ_4K - 1, .flags = IORESOURCE_MEM, - } + }, }; -static int nhk8815_nand_init(void) -{ - /* FSMC setup for nand chip select (8-bit nand in 8815NHK) */ - writel(0x0000000E, FSMC_PCR(0)); - writel(0x000D0A00, FSMC_PMEM(0)); - writel(0x00100A00, FSMC_PATT(0)); - - /* enable access to the chip select area */ - writel(readl(FSMC_PCR(0)) | 0x04, FSMC_PCR(0)); - - return 0; -} - /* * These partitions are the same as those used in the 2.6.20 release * shipped by the vendor; the first two partitions are mandated @@ -108,20 +103,28 @@ static struct mtd_partition nhk8815_partitions[] = { } }; -static struct nomadik_nand_platform_data nhk8815_nand_data = { - .parts = nhk8815_partitions, - .nparts = ARRAY_SIZE(nhk8815_partitions), - .options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING, - .init = nhk8815_nand_init, +static struct fsmc_nand_timings nhk8815_nand_timings = { + .thiz = 0, + .thold = 0x10, + .twait = 0x0A, + .tset = 0, +}; + +static struct fsmc_nand_platform_data nhk8815_nand_platform_data = { + .nand_timings = &nhk8815_nand_timings, + .partitions = nhk8815_partitions, + .nr_partitions = ARRAY_SIZE(nhk8815_partitions), + .width = FSMC_NAND_BW8, }; static struct platform_device nhk8815_nand_device = { - .name = "nomadik_nand", - .dev = { - .platform_data = &nhk8815_nand_data, + .name = "fsmc-nand", + .id = -1, + .resource = nhk8815_nand_resources, + .num_resources = ARRAY_SIZE(nhk8815_nand_resources), + .dev = { + .platform_data = &nhk8815_nand_platform_data, }, - .resource = nhk8815_nand_resources, - .num_resources = ARRAY_SIZE(nhk8815_nand_resources), }; /* These are the partitions for the OneNand device, different from above */ @@ -176,6 +179,10 @@ static struct platform_device nhk8815_onenand_device = { .num_resources = ARRAY_SIZE(nhk8815_onenand_resource), }; +/* bus control reg. and bus timing reg. for CS0..CS3 */ +#define FSMC_BCR(x) (NOMADIK_FSMC_VA + (x << 3)) +#define FSMC_BTR(x) (NOMADIK_FSMC_VA + (x << 3) + 0x04) + static void __init nhk8815_onenand_init(void) { #ifdef CONFIG_MTD_ONENAND diff --git a/trunk/arch/arm/mach-nomadik/include/mach/fsmc.h b/trunk/arch/arm/mach-nomadik/include/mach/fsmc.h deleted file mode 100644 index 8c2c05183685..000000000000 --- a/trunk/arch/arm/mach-nomadik/include/mach/fsmc.h +++ /dev/null @@ -1,29 +0,0 @@ - -/* Definitions for the Nomadik FSMC "Flexible Static Memory controller" */ - -#ifndef __ASM_ARCH_FSMC_H -#define __ASM_ARCH_FSMC_H - -#include -/* - * Register list - */ - -/* bus control reg. and bus timing reg. for CS0..CS3 */ -#define FSMC_BCR(x) (NOMADIK_FSMC_VA + (x << 3)) -#define FSMC_BTR(x) (NOMADIK_FSMC_VA + (x << 3) + 0x04) - -/* PC-card and NAND: - * PCR = control register - * PMEM = memory timing - * PATT = attribute timing - * PIO = I/O timing - * PECCR = ECC result - */ -#define FSMC_PCR(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x00) -#define FSMC_PMEM(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x08) -#define FSMC_PATT(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x0c) -#define FSMC_PIO(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x10) -#define FSMC_PECCR(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x14) - -#endif /* __ASM_ARCH_FSMC_H */ diff --git a/trunk/arch/arm/mach-omap1/board-nokia770.c b/trunk/arch/arm/mach-omap1/board-nokia770.c index 3e8ead67e459..24d2f2df11a0 100644 --- a/trunk/arch/arm/mach-omap1/board-nokia770.c +++ b/trunk/arch/arm/mach-omap1/board-nokia770.c @@ -112,17 +112,6 @@ static void __init mipid_dev_init(void) omapfb_set_lcd_config(&nokia770_lcd_config); } -static void __init ads7846_dev_init(void) -{ - if (gpio_request(ADS7846_PENDOWN_GPIO, "ADS7846 pendown") < 0) - printk(KERN_ERR "can't get ads7846 pen down GPIO\n"); -} - -static int ads7846_get_pendown_state(void) -{ - return !gpio_get_value(ADS7846_PENDOWN_GPIO); -} - static struct ads7846_platform_data nokia770_ads7846_platform_data __initdata = { .x_max = 0x0fff, .y_max = 0x0fff, @@ -131,7 +120,7 @@ static struct ads7846_platform_data nokia770_ads7846_platform_data __initdata = .debounce_max = 10, .debounce_tol = 3, .debounce_rep = 1, - .get_pendown_state = ads7846_get_pendown_state, + .gpio_pendown = ADS7846_PENDOWN_GPIO, }; static struct spi_board_info nokia770_spi_board_info[] __initdata = { @@ -241,7 +230,6 @@ static void __init omap_nokia770_init(void) omap_serial_init(); omap_register_i2c_bus(1, 100, NULL, 0); hwa742_dev_init(); - ads7846_dev_init(); mipid_dev_init(); omap1_usb_init(&nokia770_usb_config); nokia770_mmc_init(); diff --git a/trunk/arch/arm/mach-omap2/Kconfig b/trunk/arch/arm/mach-omap2/Kconfig index be0f62bf9037..41b581fd0213 100644 --- a/trunk/arch/arm/mach-omap2/Kconfig +++ b/trunk/arch/arm/mach-omap2/Kconfig @@ -26,6 +26,8 @@ config SOC_HAS_OMAP2_SDRC config SOC_HAS_REALTIME_COUNTER bool "Real time free running counter" + depends on SOC_OMAP5 + default y config ARCH_OMAP2 bool "TI OMAP2" @@ -79,7 +81,6 @@ config SOC_OMAP5 select ARM_GIC select CPU_V7 select HAVE_SMP - select SOC_HAS_REALTIME_COUNTER select COMMON_CLK comment "OMAP Core Type" diff --git a/trunk/arch/arm/mach-omap2/board-3430sdp.c b/trunk/arch/arm/mach-omap2/board-3430sdp.c index 7b201546834d..bb73afc9ac17 100644 --- a/trunk/arch/arm/mach-omap2/board-3430sdp.c +++ b/trunk/arch/arm/mach-omap2/board-3430sdp.c @@ -157,6 +157,7 @@ static struct omap_dss_device sdp3430_lcd_device = { static struct tfp410_platform_data dvi_panel = { .power_down_gpio = -1, + .i2c_bus_num = -1, }; static struct omap_dss_device sdp3430_dvi_device = { diff --git a/trunk/arch/arm/mach-omap2/board-am3517evm.c b/trunk/arch/arm/mach-omap2/board-am3517evm.c index 4be58fd071f6..f81a303b87ff 100644 --- a/trunk/arch/arm/mach-omap2/board-am3517evm.c +++ b/trunk/arch/arm/mach-omap2/board-am3517evm.c @@ -208,6 +208,7 @@ static struct omap_dss_device am3517_evm_tv_device = { static struct tfp410_platform_data dvi_panel = { .power_down_gpio = -1, + .i2c_bus_num = -1, }; static struct omap_dss_device am3517_evm_dvi_device = { diff --git a/trunk/arch/arm/mach-omap2/board-cm-t35.c b/trunk/arch/arm/mach-omap2/board-cm-t35.c index c8e37dc00892..b3102c2f4a3c 100644 --- a/trunk/arch/arm/mach-omap2/board-cm-t35.c +++ b/trunk/arch/arm/mach-omap2/board-cm-t35.c @@ -241,6 +241,7 @@ static struct omap_dss_device cm_t35_lcd_device = { static struct tfp410_platform_data dvi_panel = { .power_down_gpio = CM_T35_DVI_EN_GPIO, + .i2c_bus_num = -1, }; static struct omap_dss_device cm_t35_dvi_device = { diff --git a/trunk/arch/arm/mach-omap2/board-devkit8000.c b/trunk/arch/arm/mach-omap2/board-devkit8000.c index 7667eb749522..12865af25d3a 100644 --- a/trunk/arch/arm/mach-omap2/board-devkit8000.c +++ b/trunk/arch/arm/mach-omap2/board-devkit8000.c @@ -141,6 +141,7 @@ static struct omap_dss_device devkit8000_lcd_device = { static struct tfp410_platform_data dvi_panel = { .power_down_gpio = -1, + .i2c_bus_num = 1, }; static struct omap_dss_device devkit8000_dvi_device = { diff --git a/trunk/arch/arm/mach-omap2/board-h4.c b/trunk/arch/arm/mach-omap2/board-h4.c index 9a3878ec2256..3be1311f9e33 100644 --- a/trunk/arch/arm/mach-omap2/board-h4.c +++ b/trunk/arch/arm/mach-omap2/board-h4.c @@ -27,14 +27,12 @@ #include #include #include +#include #include #include #include -#include -#include - #include