From a73b19918efc201730a5a4e85af74bd529fdfbc7 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 27 Jul 2011 09:26:22 -0700 Subject: [PATCH] --- yaml --- r: 260819 b: refs/heads/master c: 333c066bb76f1f270ca77f16afe198e54e352c83 h: refs/heads/master i: 260817: 7d44c0c302eed5e9b39d234eb2dd577a42aa9ba8 260815: 7604fa2da2ec4b83e5e99bf3255b3b5f9bb24284 v: v3 --- [refs] | 2 +- trunk/Documentation/DMA-API-HOWTO.txt | 12 +- trunk/Documentation/cgroups/memory.txt | 85 +- .../devicetree/bindings/arm/sirf.txt | 3 + .../devicetree/bindings/arm/xilinx.txt | 7 + .../devicetree/bindings/gpio/gpio_keys.txt | 36 + .../devicetree/bindings/rtc/olpc-xo1-rtc.txt | 5 + trunk/Documentation/fb/modedb.txt | 21 +- .../feature-removal-schedule.txt | 7 - trunk/Documentation/filesystems/ext3.txt | 13 +- trunk/Documentation/filesystems/ext4.txt | 23 +- trunk/Documentation/filesystems/nfs/Exporting | 9 +- trunk/Documentation/kernel-parameters.txt | 4 +- trunk/Documentation/sysctl/kernel.txt | 22 + trunk/MAINTAINERS | 9 +- trunk/arch/alpha/include/asm/atomic.h | 12 +- trunk/arch/alpha/include/asm/bitops.h | 3 +- trunk/arch/alpha/include/asm/local.h | 2 +- trunk/arch/alpha/include/asm/ptrace.h | 1 - trunk/arch/alpha/kernel/perf_event.c | 2 +- trunk/arch/alpha/kernel/smp.c | 2 +- trunk/arch/alpha/lib/dec_and_lock.c | 2 +- trunk/arch/arm/Kconfig | 40 +- trunk/arch/arm/Makefile | 3 + trunk/arch/arm/boot/dts/prima2-cb.dts | 416 ++++++++ trunk/arch/arm/boot/dts/zynq-ep107.dts | 52 + trunk/arch/arm/common/gic.c | 6 - trunk/arch/arm/configs/mxs_defconfig | 2 + trunk/arch/arm/configs/u8500_defconfig | 32 +- trunk/arch/arm/include/asm/atomic.h | 10 +- trunk/arch/arm/include/asm/bitops.h | 5 +- trunk/arch/arm/include/asm/clkdev.h | 5 + trunk/arch/arm/include/asm/hardware/gic.h | 6 + trunk/arch/arm/include/asm/irq.h | 1 + trunk/arch/arm/include/asm/pci.h | 12 +- trunk/arch/arm/include/asm/vga.h | 5 +- trunk/arch/arm/kernel/irq.c | 19 +- trunk/arch/arm/kernel/smp.c | 2 +- trunk/arch/arm/kernel/traps.c | 2 +- trunk/arch/arm/lib/ecard.S | 1 - trunk/arch/arm/lib/io-readsw-armv3.S | 1 - trunk/arch/arm/lib/io-writesw-armv3.S | 1 - .../arch/arm/mach-at91/include/mach/clkdev.h | 7 - trunk/arch/arm/mach-at91/pm.c | 2 +- trunk/arch/arm/mach-bcmring/dma.c | 2 +- .../arm/mach-bcmring/include/mach/clkdev.h | 7 - .../arm/mach-bcmring/include/mach/hardware.h | 2 - trunk/arch/arm/mach-cns3xxx/cns3420vb.c | 3 +- trunk/arch/arm/mach-cns3xxx/core.c | 43 + trunk/arch/arm/mach-cns3xxx/core.h | 6 + .../arm/mach-cns3xxx/include/mach/hardware.h | 22 - trunk/arch/arm/mach-cns3xxx/include/mach/pm.h | 2 +- trunk/arch/arm/mach-cns3xxx/pcie.c | 3 + trunk/arch/arm/mach-cns3xxx/pm.c | 2 +- trunk/arch/arm/mach-davinci/board-da850-evm.c | 7 + trunk/arch/arm/mach-davinci/clock.c | 8 +- trunk/arch/arm/mach-davinci/clock.h | 1 + trunk/arch/arm/mach-davinci/da850.c | 10 + trunk/arch/arm/mach-davinci/devices-da8xx.c | 126 +++ .../arm/mach-davinci/include/mach/clkdev.h | 15 - .../arm/mach-davinci/include/mach/da8xx.h | 2 + .../arch/arm/mach-davinci/include/mach/psc.h | 3 +- trunk/arch/arm/mach-davinci/psc.c | 14 +- .../arm/mach-dove/include/mach/hardware.h | 7 - trunk/arch/arm/mach-dove/pcie.c | 3 + .../arm/mach-ep93xx/include/mach/clkdev.h | 11 - .../arm/mach-ep93xx/include/mach/hardware.h | 2 - trunk/arch/arm/mach-exynos4/Kconfig | 30 +- trunk/arch/arm/mach-exynos4/Makefile | 11 +- trunk/arch/arm/mach-exynos4/clock.c | 61 ++ trunk/arch/arm/mach-exynos4/cpu.c | 39 +- trunk/arch/arm/mach-exynos4/dev-audio.c | 2 + trunk/arch/arm/mach-exynos4/dev-dwmci.c | 82 ++ trunk/arch/arm/mach-exynos4/hotplug.c | 13 +- .../arm/mach-exynos4/include/mach/dwmci.h | 20 + .../mach-exynos4/include/mach/entry-macro.S | 11 +- .../arch/arm/mach-exynos4/include/mach/irqs.h | 196 ++-- .../arch/arm/mach-exynos4/include/mach/map.h | 19 +- .../arm/mach-exynos4/include/mach/pm-core.h | 10 + .../arch/arm/mach-exynos4/include/mach/pmu.h | 25 + .../mach-exynos4/include/mach/regs-audss.h | 18 + .../mach-exynos4/include/mach/regs-clock.h | 12 + .../arm/mach-exynos4/include/mach/regs-pmu.h | 1 + trunk/arch/arm/mach-exynos4/localtimer.c | 26 - trunk/arch/arm/mach-exynos4/mach-nuri.c | 753 +++++++++++++- trunk/arch/arm/mach-exynos4/mach-smdkc210.c | 70 ++ trunk/arch/arm/mach-exynos4/mach-smdkv310.c | 3 + .../arm/mach-exynos4/mach-universal_c210.c | 121 +++ trunk/arch/arm/mach-exynos4/mct.c | 2 +- trunk/arch/arm/mach-exynos4/platsmp.c | 57 +- trunk/arch/arm/mach-exynos4/pm.c | 273 +++-- trunk/arch/arm/mach-exynos4/pmu.c | 175 ++++ trunk/arch/arm/mach-exynos4/setup-fimd0.c | 43 + trunk/arch/arm/mach-exynos4/time.c | 301 ------ trunk/arch/arm/mach-footbridge/dc21285.c | 3 + .../mach-footbridge/include/mach/hardware.h | 5 - trunk/arch/arm/mach-imx/Kconfig | 1 + trunk/arch/arm/mach-imx/mach-mx27_3ds.c | 93 +- trunk/arch/arm/mach-imx/mm-imx21.c | 3 + trunk/arch/arm/mach-imx/mm-imx25.c | 25 + trunk/arch/arm/mach-imx/mm-imx27.c | 3 + trunk/arch/arm/mach-imx/mm-imx31.c | 27 + trunk/arch/arm/mach-imx/mm-imx35.c | 47 + .../mach-integrator/include/mach/hardware.h | 7 - trunk/arch/arm/mach-integrator/pci_v3.c | 5 + .../arm/mach-iop13xx/include/mach/hardware.h | 7 - trunk/arch/arm/mach-iop13xx/pci.c | 5 +- .../arm/mach-iop32x/include/mach/hardware.h | 3 - .../arm/mach-iop33x/include/mach/hardware.h | 3 - .../arm/mach-ixp2000/include/mach/hardware.h | 8 - trunk/arch/arm/mach-ixp2000/pci.c | 5 + .../arm/mach-ixp23xx/include/mach/hardware.h | 4 - trunk/arch/arm/mach-ixp23xx/pci.c | 5 + trunk/arch/arm/mach-ixp4xx/common-pci.c | 5 + .../arm/mach-ixp4xx/include/mach/hardware.h | 5 - .../arm/mach-kirkwood/include/mach/hardware.h | 7 - trunk/arch/arm/mach-kirkwood/pcie.c | 3 + .../arm/mach-ks8695/include/mach/hardware.h | 9 - trunk/arch/arm/mach-ks8695/pci.c | 3 + trunk/arch/arm/mach-lpc32xx/clock.c | 2 +- trunk/arch/arm/mach-lpc32xx/common.c | 42 + trunk/arch/arm/mach-lpc32xx/common.h | 2 + .../arm/mach-lpc32xx/include/mach/clkdev.h | 25 - trunk/arch/arm/mach-mmp/Kconfig | 7 + trunk/arch/arm/mach-mmp/Makefile | 1 + trunk/arch/arm/mach-mmp/clock.c | 15 + trunk/arch/arm/mach-mmp/clock.h | 1 + trunk/arch/arm/mach-mmp/gplugd.c | 189 ++++ trunk/arch/arm/mach-mmp/include/mach/clkdev.h | 7 - .../arm/mach-mmp/include/mach/mfp-gplugd.h | 52 + .../arm/mach-mmp/include/mach/mfp-pxa168.h | 19 + trunk/arch/arm/mach-mmp/include/mach/pxa168.h | 8 + .../arm/mach-mmp/include/mach/regs-apmu.h | 1 + trunk/arch/arm/mach-mmp/pxa168.c | 6 + trunk/arch/arm/mach-mmp/ttc_dkb.c | 31 +- trunk/arch/arm/mach-msm/include/mach/clkdev.h | 19 - .../arm/mach-mv78xx0/include/mach/hardware.h | 7 - trunk/arch/arm/mach-mv78xx0/pcie.c | 3 + trunk/arch/arm/mach-mx5/Kconfig | 14 + trunk/arch/arm/mach-mx5/Makefile | 2 + trunk/arch/arm/mach-mx5/board-mx51_babbage.c | 22 +- trunk/arch/arm/mach-mx5/board-mx53_ard.c | 254 +++++ trunk/arch/arm/mach-mx5/board-mx53_evk.c | 17 + trunk/arch/arm/mach-mx5/board-mx53_loco.c | 35 +- trunk/arch/arm/mach-mx5/clock-mx51-mx53.c | 18 + trunk/arch/arm/mach-mx5/crm_regs.h | 2 + trunk/arch/arm/mach-mx5/devices-imx53.h | 8 + trunk/arch/arm/mach-mx5/mm.c | 44 + trunk/arch/arm/mach-mx5/pm-imx5.c | 73 ++ trunk/arch/arm/mach-mxs/Kconfig | 2 + trunk/arch/arm/mach-mxs/include/mach/clkdev.h | 7 - trunk/arch/arm/mach-mxs/mach-mx28evk.c | 21 + trunk/arch/arm/mach-mxs/mach-tx28.c | 6 + .../arm/mach-nomadik/include/mach/clkdev.h | 7 - .../arm/mach-nuc93x/include/mach/clkdev.h | 7 - .../arch/arm/mach-omap1/include/mach/clkdev.h | 5 - trunk/arch/arm/mach-omap1/pm.c | 2 +- trunk/arch/arm/mach-omap2/Kconfig | 6 +- trunk/arch/arm/mach-omap2/board-4430sdp.c | 203 +++- trunk/arch/arm/mach-omap2/board-cm-t35.c | 95 +- trunk/arch/arm/mach-omap2/board-omap3beagle.c | 78 +- trunk/arch/arm/mach-omap2/board-overo.c | 1 - .../arm/mach-omap2/board-rx51-peripherals.c | 141 ++- .../arm/mach-omap2/board-zoom-debugboard.c | 9 + .../arm/mach-omap2/board-zoom-peripherals.c | 10 +- trunk/arch/arm/mach-omap2/clock.c | 28 +- trunk/arch/arm/mach-omap2/clock.h | 3 + trunk/arch/arm/mach-omap2/clock2420_data.c | 22 +- trunk/arch/arm/mach-omap2/clock2430_data.c | 32 +- trunk/arch/arm/mach-omap2/clock3xxx_data.c | 44 +- trunk/arch/arm/mach-omap2/clock44xx_data.c | 263 ++++- trunk/arch/arm/mach-omap2/clockdomain.c | 210 +++- trunk/arch/arm/mach-omap2/clockdomain.h | 11 + .../arm/mach-omap2/clockdomain2xxx_3xxx.c | 6 +- trunk/arch/arm/mach-omap2/clockdomain44xx.c | 13 +- .../arm/mach-omap2/clockdomains44xx_data.c | 2 +- trunk/arch/arm/mach-omap2/cm-regbits-44xx.h | 36 + trunk/arch/arm/mach-omap2/cm44xx.h | 8 +- trunk/arch/arm/mach-omap2/cminst44xx.c | 150 ++- trunk/arch/arm/mach-omap2/cminst44xx.h | 10 +- trunk/arch/arm/mach-omap2/devices.c | 3 +- trunk/arch/arm/mach-omap2/hsmmc.c | 7 +- trunk/arch/arm/mach-omap2/i2c.c | 68 ++ trunk/arch/arm/mach-omap2/id.c | 53 +- .../arch/arm/mach-omap2/include/mach/clkdev.h | 5 - trunk/arch/arm/mach-omap2/iommu2.c | 4 +- trunk/arch/arm/mach-omap2/omap-iommu.c | 2 +- trunk/arch/arm/mach-omap2/omap_hwmod.c | 261 ++++- .../arm/mach-omap2/omap_hwmod_2420_data.c | 9 +- .../arm/mach-omap2/omap_hwmod_2430_data.c | 7 + .../arm/mach-omap2/omap_hwmod_3xxx_data.c | 18 +- .../arm/mach-omap2/omap_hwmod_44xx_data.c | 491 +++++++-- trunk/arch/arm/mach-omap2/pm.c | 6 +- .../arm/mach-omap2/powerdomains44xx_data.c | 9 +- trunk/arch/arm/mach-omap2/prcm.c | 2 +- trunk/arch/arm/mach-omap2/prm-regbits-44xx.h | 8 + trunk/arch/arm/mach-omap2/prm44xx.c | 145 +-- trunk/arch/arm/mach-omap2/prm44xx.h | 10 - trunk/arch/arm/mach-omap2/prminst44xx.c | 112 +- trunk/arch/arm/mach-omap2/prminst44xx.h | 12 +- trunk/arch/arm/mach-omap2/twl-common.c | 10 +- .../arm/mach-orion5x/include/mach/hardware.h | 7 - trunk/arch/arm/mach-orion5x/pci.c | 2 + .../arm/mach-pnx4008/include/mach/clkdev.h | 7 - trunk/arch/arm/mach-prima2/Makefile | 7 + trunk/arch/arm/mach-prima2/Makefile.boot | 3 + trunk/arch/arm/mach-prima2/clock.c | 509 +++++++++ trunk/arch/arm/mach-prima2/common.h | 26 + .../arm/mach-prima2/include/mach/clkdev.h | 15 + .../mach-prima2/include/mach/debug-macro.S | 29 + .../mach-prima2/include/mach/entry-macro.S | 29 + .../arm/mach-prima2/include/mach/hardware.h | 15 + trunk/arch/arm/mach-prima2/include/mach/io.h | 16 + .../arch/arm/mach-prima2/include/mach/irqs.h | 17 + trunk/arch/arm/mach-prima2/include/mach/map.h | 16 + .../arm/mach-prima2/include/mach/memory.h | 21 + .../arm/mach-prima2/include/mach/system.h | 29 + .../arch/arm/mach-prima2/include/mach/timex.h | 14 + .../arch/arm/mach-prima2/include/mach/uart.h | 23 + .../arm/mach-prima2/include/mach/uncompress.h | 40 + .../arm/mach-prima2/include/mach/vmalloc.h | 16 + trunk/arch/arm/mach-prima2/irq.c | 71 ++ trunk/arch/arm/mach-prima2/l2x0.c | 59 ++ trunk/arch/arm/mach-prima2/lluart.c | 25 + trunk/arch/arm/mach-prima2/prima2.c | 41 + trunk/arch/arm/mach-prima2/rstc.c | 69 ++ trunk/arch/arm/mach-prima2/timer.c | 217 ++++ trunk/arch/arm/mach-pxa/balloon3.c | 1 + trunk/arch/arm/mach-pxa/capc7117.c | 1 + trunk/arch/arm/mach-pxa/clock.c | 15 + trunk/arch/arm/mach-pxa/clock.h | 1 + trunk/arch/arm/mach-pxa/cm-x2xx-pci.c | 3 + trunk/arch/arm/mach-pxa/cm-x2xx.c | 5 +- trunk/arch/arm/mach-pxa/cm-x300.c | 1 + trunk/arch/arm/mach-pxa/colibri-pxa270.c | 2 + trunk/arch/arm/mach-pxa/colibri-pxa300.c | 1 + trunk/arch/arm/mach-pxa/colibri-pxa320.c | 4 +- trunk/arch/arm/mach-pxa/corgi.c | 3 + trunk/arch/arm/mach-pxa/csb726.c | 4 +- trunk/arch/arm/mach-pxa/em-x270.c | 2 + trunk/arch/arm/mach-pxa/eseries.c | 6 + trunk/arch/arm/mach-pxa/ezx.c | 6 + trunk/arch/arm/mach-pxa/generic.h | 13 - trunk/arch/arm/mach-pxa/gumstix.c | 1 + trunk/arch/arm/mach-pxa/h5000.c | 2 + trunk/arch/arm/mach-pxa/himalaya.c | 4 +- trunk/arch/arm/mach-pxa/hx4700.c | 1 + trunk/arch/arm/mach-pxa/icontrol.c | 1 + trunk/arch/arm/mach-pxa/idp.c | 1 + trunk/arch/arm/mach-pxa/include/mach/clkdev.h | 7 - .../arch/arm/mach-pxa/include/mach/hardware.h | 3 - trunk/arch/arm/mach-pxa/include/mach/irqs.h | 12 + trunk/arch/arm/mach-pxa/include/mach/pxa25x.h | 9 + trunk/arch/arm/mach-pxa/include/mach/pxa27x.h | 5 + trunk/arch/arm/mach-pxa/include/mach/pxa300.h | 3 +- trunk/arch/arm/mach-pxa/include/mach/pxa320.h | 3 +- trunk/arch/arm/mach-pxa/include/mach/pxa3xx.h | 14 + trunk/arch/arm/mach-pxa/include/mach/pxa930.h | 3 +- .../arm/mach-pxa/include/mach/regs-intc.h | 30 - trunk/arch/arm/mach-pxa/irq.c | 36 +- trunk/arch/arm/mach-pxa/littleton.c | 1 + trunk/arch/arm/mach-pxa/lpd270.c | 1 + trunk/arch/arm/mach-pxa/lubbock.c | 1 + trunk/arch/arm/mach-pxa/magician.c | 1 + trunk/arch/arm/mach-pxa/mainstone.c | 1 + trunk/arch/arm/mach-pxa/mioa701.c | 1 + trunk/arch/arm/mach-pxa/mp900.c | 1 + trunk/arch/arm/mach-pxa/palmld.c | 1 + trunk/arch/arm/mach-pxa/palmt5.c | 1 + trunk/arch/arm/mach-pxa/palmtc.c | 4 +- trunk/arch/arm/mach-pxa/palmte2.c | 3 +- trunk/arch/arm/mach-pxa/palmtreo.c | 2 + trunk/arch/arm/mach-pxa/palmtx.c | 1 + trunk/arch/arm/mach-pxa/palmz72.c | 1 + trunk/arch/arm/mach-pxa/pcm027.c | 1 + trunk/arch/arm/mach-pxa/poodle.c | 1 + trunk/arch/arm/mach-pxa/pxa3xx.c | 5 +- trunk/arch/arm/mach-pxa/pxa95x.c | 1 - trunk/arch/arm/mach-pxa/raumfeld.c | 8 +- trunk/arch/arm/mach-pxa/saar.c | 1 + trunk/arch/arm/mach-pxa/saarb.c | 1 + trunk/arch/arm/mach-pxa/spitz.c | 3 + trunk/arch/arm/mach-pxa/stargate2.c | 2 + trunk/arch/arm/mach-pxa/tavorevb.c | 1 + trunk/arch/arm/mach-pxa/tavorevb3.c | 1 + trunk/arch/arm/mach-pxa/tosa.c | 1 + trunk/arch/arm/mach-pxa/trizeps4.c | 2 + trunk/arch/arm/mach-pxa/viper.c | 1 + trunk/arch/arm/mach-pxa/vpac270.c | 1 + trunk/arch/arm/mach-pxa/xcep.c | 4 +- trunk/arch/arm/mach-pxa/z2.c | 18 + trunk/arch/arm/mach-pxa/zeus.c | 4 +- trunk/arch/arm/mach-pxa/zylonite.c | 3 +- .../arm/mach-s3c2410/include/mach/pm-core.h | 3 + trunk/arch/arm/mach-s3c2440/clock.c | 2 +- trunk/arch/arm/mach-s3c2440/s3c2442.c | 2 +- trunk/arch/arm/mach-s3c2440/s3c244x-clock.c | 2 +- trunk/arch/arm/mach-s3c64xx/Kconfig | 23 + trunk/arch/arm/mach-s3c64xx/Makefile | 1 + .../arch/arm/mach-s3c64xx/include/mach/irqs.h | 5 +- .../arm/mach-s3c64xx/include/mach/pm-core.h | 19 +- trunk/arch/arm/mach-s3c64xx/irq.c | 12 +- trunk/arch/arm/mach-s3c64xx/mach-crag6410.c | 774 ++++++++++++++ trunk/arch/arm/mach-s5p64x0/Makefile | 2 +- .../arch/arm/mach-s5p64x0/include/mach/irqs.h | 2 + .../arm/mach-s5p64x0/include/mach/regs-gpio.h | 10 + trunk/arch/arm/mach-s5p64x0/irq-eint.c | 152 +++ trunk/arch/arm/mach-s5pv210/Kconfig | 1 + trunk/arch/arm/mach-s5pv210/clock.c | 7 + trunk/arch/arm/mach-s5pv210/cpu.c | 2 +- trunk/arch/arm/mach-s5pv210/dev-audio.c | 2 + .../arch/arm/mach-s5pv210/include/mach/map.h | 3 + .../arm/mach-s5pv210/include/mach/pm-core.h | 3 + .../mach-s5pv210/include/mach/regs-audss.h | 18 + trunk/arch/arm/mach-s5pv210/mach-goni.c | 10 + trunk/arch/arm/mach-s5pv210/mach-smdkv210.c | 1 + .../arm/mach-sa1100/include/mach/hardware.h | 8 - trunk/arch/arm/mach-sa1100/pci-nanoengine.c | 3 + .../arm/mach-shark/include/mach/hardware.h | 6 - trunk/arch/arm/mach-shark/pci.c | 12 +- .../arm/mach-spear3xx/include/mach/clkdev.h | 19 - .../arm/mach-spear6xx/include/mach/clkdev.h | 19 - trunk/arch/arm/mach-tegra/board-harmony.c | 22 - .../arch/arm/mach-tegra/board-paz00-pinmux.c | 10 +- trunk/arch/arm/mach-tegra/board-paz00.c | 31 +- trunk/arch/arm/mach-tegra/board-paz00.h | 10 +- trunk/arch/arm/mach-tegra/board-seaboard.c | 26 +- .../arm/mach-tegra/board-trimslice-pinmux.c | 7 +- trunk/arch/arm/mach-tegra/board-trimslice.c | 56 + trunk/arch/arm/mach-tegra/board-trimslice.h | 3 + trunk/arch/arm/mach-tegra/devices.c | 53 +- .../arm/mach-tegra/include/mach/barriers.h | 30 - .../arch/arm/mach-tegra/include/mach/system.h | 1 - trunk/arch/arm/mach-tegra/io.c | 1 - trunk/arch/arm/mach-tegra/pcie.c | 2 + trunk/arch/arm/mach-tegra/platsmp.c | 3 +- trunk/arch/arm/mach-tegra/tegra2_clocks.c | 4 +- trunk/arch/arm/mach-u300/spi.c | 4 +- trunk/arch/arm/mach-u300/timer.c | 33 +- trunk/arch/arm/mach-ux500/Kconfig | 15 +- trunk/arch/arm/mach-ux500/board-mop500-pins.c | 43 + .../arm/mach-ux500/board-mop500-regulators.c | 9 +- trunk/arch/arm/mach-ux500/board-mop500-sdi.c | 61 +- trunk/arch/arm/mach-ux500/board-mop500-uib.c | 2 +- trunk/arch/arm/mach-ux500/board-mop500.c | 154 ++- trunk/arch/arm/mach-ux500/board-mop500.h | 5 + trunk/arch/arm/mach-ux500/clock.c | 48 + trunk/arch/arm/mach-ux500/cpu-db5500.c | 1 + .../arch/arm/mach-ux500/include/mach/clkdev.h | 7 - .../arm/mach-ux500/include/mach/uncompress.h | 3 +- trunk/arch/arm/mach-ux500/usb.c | 1 + .../mach-versatile/include/mach/hardware.h | 6 - trunk/arch/arm/mach-versatile/pci.c | 3 + .../arm/mach-w90x900/include/mach/clkdev.h | 7 - trunk/arch/arm/mach-zynq/Makefile | 6 + trunk/arch/arm/mach-zynq/Makefile.boot | 3 + trunk/arch/arm/mach-zynq/board_dt.c | 0 trunk/arch/arm/mach-zynq/common.c | 118 +++ .../mach/hardware.h => mach-zynq/common.h} | 20 +- .../arch/arm/mach-zynq/include/mach/clkdev.h | 32 + .../arm/mach-zynq/include/mach/debug-macro.S | 36 + .../arm/mach-zynq/include/mach/entry-macro.S | 30 + .../arm/mach-zynq/include/mach/hardware.h | 18 + trunk/arch/arm/mach-zynq/include/mach/io.h | 33 + trunk/arch/arm/mach-zynq/include/mach/irqs.h | 21 + .../arch/arm/mach-zynq/include/mach/memory.h | 22 + .../include/mach/system.h} | 22 +- trunk/arch/arm/mach-zynq/include/mach/timex.h | 23 + trunk/arch/arm/mach-zynq/include/mach/uart.h | 25 + .../arm/mach-zynq/include/mach/uncompress.h | 51 + .../arch/arm/mach-zynq/include/mach/vmalloc.h | 20 + .../arm/mach-zynq/include/mach/zynq_soc.h | 48 + trunk/arch/arm/mach-zynq/timer.c | 298 ++++++ trunk/arch/arm/mm/Kconfig | 3 +- trunk/arch/arm/mm/iomap.c | 12 + trunk/arch/arm/mm/proc-xsc3.S | 1 - trunk/arch/arm/plat-iop/pci.c | 3 + trunk/arch/arm/plat-mxc/devices.c | 16 +- .../arm/plat-mxc/devices/platform-imx-dma.c | 204 +--- .../arm/plat-mxc/devices/platform-imx-i2c.c | 3 +- .../plat-mxc/devices/platform-imx-keypad.c | 5 + .../arm/plat-mxc/devices/platform-imx-ssi.c | 10 + .../arm/plat-mxc/devices/platform-imx-uart.c | 2 + trunk/arch/arm/plat-mxc/include/mach/clkdev.h | 7 - .../plat-mxc/include/mach/devices-common.h | 6 + trunk/arch/arm/plat-mxc/include/mach/mx53.h | 28 +- trunk/arch/arm/plat-mxc/include/mach/sdma.h | 6 +- .../arm/plat-mxc/include/mach/uncompress.h | 1 + trunk/arch/arm/plat-mxc/irq-common.c | 13 +- trunk/arch/arm/plat-mxc/tzic.c | 97 +- trunk/arch/arm/plat-omap/clock.c | 39 + trunk/arch/arm/plat-omap/dmtimer.c | 4 +- .../arch/arm/plat-omap/include/plat/clkdev.h | 13 - .../arm/plat-omap/include/plat/clkdev_omap.h | 1 + trunk/arch/arm/plat-omap/include/plat/clock.h | 2 + trunk/arch/arm/plat-omap/include/plat/cpu.h | 35 +- trunk/arch/arm/plat-omap/include/plat/i2c.h | 6 +- trunk/arch/arm/plat-omap/include/plat/irqs.h | 12 +- .../arm/plat-omap/include/plat/omap4-keypad.h | 3 +- .../arm/plat-omap/include/plat/omap_hwmod.h | 15 +- .../arm/plat-omap/include/plat/uncompress.h | 1 + trunk/arch/arm/plat-omap/iovmm.c | 6 +- trunk/arch/arm/plat-omap/mcbsp.c | 27 + trunk/arch/arm/plat-omap/omap_device.c | 85 +- trunk/arch/arm/plat-s5p/Kconfig | 11 + trunk/arch/arm/plat-s5p/Makefile | 3 +- trunk/arch/arm/plat-s5p/dev-fimd0.c | 67 ++ trunk/arch/arm/plat-s5p/dev-mfc.c | 123 +++ .../arch/arm/plat-s5p/include/plat/map-s5p.h | 5 +- trunk/arch/arm/plat-s5p/include/plat/mfc.h | 27 + trunk/arch/arm/plat-samsung/adc.c | 84 +- trunk/arch/arm/plat-samsung/dev-asocdma.c | 10 + .../arm/plat-samsung/include/plat/audio.h | 1 + .../arch/arm/plat-samsung/include/plat/devs.h | 6 + .../arm/plat-samsung/include/plat/fb-core.h | 15 + trunk/arch/arm/plat-samsung/include/plat/fb.h | 15 + .../arm/plat-samsung/include/plat/regs-adc.h | 1 + trunk/arch/arm/plat-samsung/irq-uart.c | 7 + trunk/arch/arm/plat-samsung/pm.c | 2 + .../arch/arm/plat-spear/include/plat/clkdev.h | 20 - trunk/arch/arm/plat-tcc/include/mach/clkdev.h | 7 - trunk/arch/avr32/include/asm/atomic.h | 60 +- trunk/arch/avr32/include/asm/ptrace.h | 2 - trunk/arch/blackfin/include/asm/atomic.h | 8 +- trunk/arch/blackfin/include/asm/dma.h | 2 +- trunk/arch/blackfin/include/asm/ipipe.h | 2 +- trunk/arch/blackfin/include/asm/ptrace.h | 1 - trunk/arch/blackfin/include/asm/spinlock.h | 2 +- trunk/arch/blackfin/kernel/ftrace.c | 2 +- trunk/arch/blackfin/kernel/ipipe.c | 2 +- trunk/arch/blackfin/kernel/nmi.c | 2 +- trunk/arch/blackfin/mach-common/smp.c | 2 +- trunk/arch/cris/arch-v32/drivers/cryptocop.c | 2 +- trunk/arch/cris/arch-v32/kernel/smp.c | 2 +- .../arch/cris/include/arch-v10/arch/ptrace.h | 1 - .../arch/cris/include/arch-v32/arch/ptrace.h | 1 - trunk/arch/cris/include/asm/atomic.h | 6 +- trunk/arch/cris/include/asm/bitops.h | 5 +- trunk/arch/cris/kernel/process.c | 2 +- trunk/arch/frv/include/asm/atomic.h | 6 +- trunk/arch/frv/include/asm/bitops.h | 3 +- trunk/arch/frv/include/asm/hardirq.h | 2 +- trunk/arch/frv/include/asm/processor.h | 1 - trunk/arch/frv/include/asm/ptrace.h | 1 - trunk/arch/frv/kernel/irq.c | 2 +- trunk/arch/frv/kernel/process.c | 5 +- trunk/arch/h8300/include/asm/atomic.h | 6 +- trunk/arch/h8300/include/asm/posix_types.h | 2 +- trunk/arch/h8300/include/asm/ptrace.h | 1 - trunk/arch/ia64/include/asm/atomic.h | 6 +- trunk/arch/ia64/include/asm/bitops.h | 3 +- trunk/arch/ia64/include/asm/processor.h | 2 +- trunk/arch/ia64/include/asm/ptrace.h | 1 - trunk/arch/ia64/include/asm/spinlock.h | 2 +- trunk/arch/ia64/kernel/smp.c | 2 +- trunk/arch/ia64/kernel/smpboot.c | 2 +- trunk/arch/ia64/kernel/uncached.c | 2 +- trunk/arch/m32r/include/asm/atomic.h | 10 +- trunk/arch/m32r/include/asm/mmu_context.h | 2 +- trunk/arch/m32r/include/asm/ptrace.h | 2 - trunk/arch/m32r/include/asm/spinlock.h | 2 +- trunk/arch/m32r/kernel/smp.c | 2 +- trunk/arch/m32r/kernel/traps.c | 2 +- trunk/arch/m68k/include/asm/atomic.h | 7 +- trunk/arch/m68k/include/asm/posix_types.h | 2 +- trunk/arch/m68k/include/asm/ptrace.h | 1 - trunk/arch/microblaze/include/asm/cpuinfo.h | 1 + trunk/arch/microblaze/include/asm/irqflags.h | 20 +- .../microblaze/include/asm/mmu_context_mm.h | 2 +- .../arch/microblaze/include/asm/pci-bridge.h | 64 +- trunk/arch/microblaze/include/asm/processor.h | 3 - trunk/arch/microblaze/include/asm/prom.h | 10 +- trunk/arch/microblaze/include/asm/ptrace.h | 2 - trunk/arch/microblaze/include/asm/pvr.h | 5 +- trunk/arch/microblaze/include/asm/setup.h | 1 + .../microblaze/kernel/cpu/cpuinfo-pvr-full.c | 1 + .../microblaze/kernel/cpu/cpuinfo-static.c | 1 + trunk/arch/microblaze/kernel/cpu/cpuinfo.c | 4 + trunk/arch/microblaze/kernel/cpu/mb.c | 9 +- trunk/arch/microblaze/kernel/early_printk.c | 68 +- .../microblaze/kernel/hw_exception_handler.S | 56 +- trunk/arch/microblaze/kernel/intc.c | 2 +- trunk/arch/microblaze/kernel/process.c | 1 - trunk/arch/microblaze/kernel/prom.c | 97 +- trunk/arch/microblaze/kernel/setup.c | 5 + trunk/arch/mips/Kbuild.platforms | 1 + trunk/arch/mips/Makefile | 12 - trunk/arch/mips/ar7/clock.c | 2 +- trunk/arch/mips/ar7/platform.c | 2 +- trunk/arch/mips/ar7/prom.c | 2 +- trunk/arch/mips/include/asm/atomic.h | 17 +- trunk/arch/mips/include/asm/fixmap.h | 10 +- trunk/arch/mips/include/asm/gt64120.h | 2 - trunk/arch/mips/include/asm/hw_irq.h | 2 +- trunk/arch/mips/include/asm/irq.h | 1 - trunk/arch/mips/include/asm/local.h | 2 +- .../include/asm/mach-bcm63xx/bcm63xx_regs.h | 1 - .../mips/include/asm/mach-bcm63xx/spaces.h | 17 + .../include/asm/mach-generic/dma-coherence.h | 1 - .../mips/include/asm/mach-generic/spaces.h | 4 + .../include/asm/mach-ip27/dma-coherence.h | 1 - .../include/asm/mach-jazz/dma-coherence.h | 1 - .../include/asm/mach-loongson/dma-coherence.h | 1 - .../asm/mach-malta/cpu-feature-overrides.h | 2 + .../asm/mach-mipssim/cpu-feature-overrides.h | 2 + .../asm/mach-powertv/cpu-feature-overrides.h | 59 ++ .../include/asm/mach-powertv/dma-coherence.h | 1 - .../mips/include/asm/mach-tx39xx/spaces.h | 17 + .../mips/include/asm/mach-tx49xx/spaces.h | 17 + trunk/arch/mips/include/asm/pgtable.h | 1 + trunk/arch/mips/include/asm/smp-ops.h | 43 +- trunk/arch/mips/include/asm/smp.h | 2 +- trunk/arch/mips/include/asm/smtc.h | 1 + trunk/arch/mips/include/asm/uasm.h | 2 + trunk/arch/mips/include/asm/unistd.h | 21 +- trunk/arch/mips/kernel/cpu-probe.c | 1 - trunk/arch/mips/kernel/irq.c | 2 +- trunk/arch/mips/kernel/irq_cpu.c | 14 +- trunk/arch/mips/kernel/mips-mt.c | 2 +- trunk/arch/mips/kernel/perf_event.c | 2 - trunk/arch/mips/kernel/process.c | 1 - trunk/arch/mips/kernel/rtlx.c | 2 +- trunk/arch/mips/kernel/scall32-o32.S | 1 + trunk/arch/mips/kernel/scall64-64.S | 1 + trunk/arch/mips/kernel/scall64-n32.S | 1 + trunk/arch/mips/kernel/scall64-o32.S | 1 + trunk/arch/mips/kernel/smp-cmp.c | 2 +- trunk/arch/mips/kernel/smp-mt.c | 2 +- trunk/arch/mips/kernel/smp.c | 2 +- trunk/arch/mips/kernel/smtc-proc.c | 2 +- trunk/arch/mips/kernel/smtc.c | 2 +- trunk/arch/mips/kernel/sync-r4k.c | 2 +- trunk/arch/mips/kernel/vpe.c | 2 +- trunk/arch/mips/lantiq/clk.c | 13 + .../arch/mips/loongson/lemote-2f/ec_kb3310b.c | 2 - trunk/arch/mips/mipssim/sim_setup.c | 18 +- trunk/arch/mips/mipssim/sim_smtc.c | 2 +- trunk/arch/mips/mm/c-r4k.c | 4 + trunk/arch/mips/mm/dma-default.c | 114 +- trunk/arch/mips/mm/init.c | 8 +- trunk/arch/mips/mm/mmap.c | 193 +++- trunk/arch/mips/mm/pgtable-32.c | 2 +- trunk/arch/mips/mm/pgtable-64.c | 2 +- trunk/arch/mips/mm/tlbex.c | 292 ++++-- trunk/arch/mips/mti-malta/malta-init.c | 14 +- trunk/arch/mips/mti-malta/malta-smtc.c | 2 +- trunk/arch/mips/netlogic/Platform | 11 + trunk/arch/mips/netlogic/xlr/irq.c | 2 +- trunk/arch/mips/netlogic/xlr/smp.c | 13 +- trunk/arch/mips/nxp/pnx8550/common/setup.c | 2 - trunk/arch/mips/pci/ops-nile4.c | 1 - .../arch/mips/pmc-sierra/msp71xx/msp_setup.c | 8 +- trunk/arch/mips/pnx8550/common/setup.c | 2 - trunk/arch/mips/rb532/devices.c | 24 +- trunk/arch/mips/sgi-ip27/ip27-nmi.c | 2 +- trunk/arch/mips/sibyte/sb1250/irq.c | 8 + trunk/arch/mn10300/include/asm/atomic.h | 7 +- trunk/arch/mn10300/include/asm/bitops.h | 7 +- trunk/arch/mn10300/include/asm/mmu_context.h | 2 +- trunk/arch/mn10300/include/asm/processor.h | 1 - trunk/arch/mn10300/include/asm/ptrace.h | 1 - trunk/arch/mn10300/include/asm/spinlock.h | 2 +- trunk/arch/mn10300/include/asm/system.h | 2 +- trunk/arch/mn10300/kernel/mn10300-watchdog.c | 2 +- trunk/arch/mn10300/kernel/traps.c | 2 +- trunk/arch/mn10300/mm/misalignment.c | 2 +- trunk/arch/mn10300/proc-mn2ws0050/proc-init.c | 2 +- trunk/arch/parisc/include/asm/atomic.h | 16 +- trunk/arch/parisc/include/asm/bitops.h | 11 +- trunk/arch/parisc/include/asm/mmu_context.h | 2 +- trunk/arch/parisc/include/asm/ptrace.h | 1 - trunk/arch/parisc/kernel/parisc_ksyms.c | 2 +- trunk/arch/parisc/kernel/smp.c | 2 +- trunk/arch/parisc/kernel/traps.c | 2 +- trunk/arch/parisc/lib/bitops.c | 2 +- trunk/arch/powerpc/include/asm/atomic.h | 19 +- trunk/arch/powerpc/include/asm/bitops.h | 5 +- trunk/arch/powerpc/include/asm/emulated_ops.h | 2 +- trunk/arch/powerpc/include/asm/irq.h | 2 +- trunk/arch/powerpc/include/asm/local.h | 2 +- trunk/arch/powerpc/include/asm/pci-bridge.h | 50 +- trunk/arch/powerpc/include/asm/pci.h | 2 +- trunk/arch/powerpc/include/asm/prom.h | 2 +- trunk/arch/powerpc/include/asm/system.h | 1 - trunk/arch/powerpc/kernel/of_platform.c | 2 +- trunk/arch/powerpc/kernel/pci-common.c | 22 +- trunk/arch/powerpc/kernel/pci_32.c | 2 +- trunk/arch/powerpc/kernel/pci_64.c | 4 +- trunk/arch/powerpc/kernel/ppc_ksyms.c | 2 +- trunk/arch/powerpc/kernel/rtas.c | 2 +- trunk/arch/powerpc/kernel/rtas_pci.c | 2 +- trunk/arch/powerpc/kernel/rtasd.c | 2 +- trunk/arch/powerpc/kernel/smp-tbsync.c | 2 +- trunk/arch/powerpc/kernel/smp.c | 2 +- trunk/arch/powerpc/platforms/40x/ep405.c | 2 +- .../powerpc/platforms/40x/ppc40x_simple.c | 2 +- trunk/arch/powerpc/platforms/40x/walnut.c | 2 +- .../arch/powerpc/platforms/44x/canyonlands.c | 2 +- trunk/arch/powerpc/platforms/44x/ebony.c | 2 +- .../powerpc/platforms/44x/ppc44x_simple.c | 2 +- trunk/arch/powerpc/platforms/44x/sam440ep.c | 2 +- .../arch/powerpc/platforms/52xx/mpc52xx_pci.c | 2 +- trunk/arch/powerpc/platforms/82xx/pq2.c | 2 +- trunk/arch/powerpc/platforms/83xx/km83xx.c | 2 +- .../arch/powerpc/platforms/83xx/mpc832x_mds.c | 2 +- .../arch/powerpc/platforms/83xx/mpc834x_itx.c | 2 +- .../arch/powerpc/platforms/83xx/mpc834x_mds.c | 2 +- .../arch/powerpc/platforms/83xx/mpc836x_mds.c | 2 +- trunk/arch/powerpc/platforms/83xx/sbc834x.c | 2 +- .../arch/powerpc/platforms/85xx/mpc85xx_cds.c | 2 +- .../arch/powerpc/platforms/85xx/mpc85xx_mds.c | 2 +- trunk/arch/powerpc/platforms/85xx/sbc8548.c | 2 +- .../platforms/cell/cpufreq_spudemand.c | 2 +- trunk/arch/powerpc/platforms/cell/smp.c | 2 +- .../powerpc/platforms/cell/spufs/context.c | 2 +- trunk/arch/powerpc/platforms/chrp/pci.c | 2 +- trunk/arch/powerpc/platforms/chrp/smp.c | 2 +- trunk/arch/powerpc/platforms/iseries/smp.c | 2 +- .../powerpc/platforms/powermac/backlight.c | 2 +- trunk/arch/powerpc/platforms/powermac/pci.c | 6 +- trunk/arch/powerpc/platforms/powermac/smp.c | 2 +- trunk/arch/powerpc/platforms/pseries/eeh.c | 2 +- .../powerpc/platforms/pseries/eeh_cache.c | 2 +- trunk/arch/powerpc/platforms/pseries/smp.c | 2 +- trunk/arch/powerpc/sysdev/fsl_pci.c | 4 +- trunk/arch/powerpc/sysdev/fsl_soc.c | 2 +- trunk/arch/powerpc/sysdev/grackle.c | 2 +- trunk/arch/powerpc/sysdev/ppc4xx_pci.c | 2 +- trunk/arch/powerpc/sysdev/tsi108_dev.c | 2 +- trunk/arch/s390/include/asm/atomic.h | 7 +- trunk/arch/s390/include/asm/bitops.h | 5 +- trunk/arch/s390/include/asm/ptrace.h | 1 - trunk/arch/s390/kernel/dis.c | 2 +- trunk/arch/s390/kernel/traps.c | 2 +- trunk/arch/sh/include/asm/atomic.h | 12 +- trunk/arch/sh/include/asm/hw_irq.h | 2 +- trunk/arch/sh/include/asm/ptrace.h | 2 - trunk/arch/sh/include/asm/smp.h | 2 +- trunk/arch/sh/kernel/idle.c | 2 +- trunk/arch/sh/kernel/smp.c | 2 +- trunk/arch/sh/kernel/traps_64.c | 2 +- trunk/arch/sh/kernel/unwinder.c | 2 +- trunk/arch/sparc/include/asm/atomic_32.h | 4 +- trunk/arch/sparc/include/asm/atomic_64.h | 6 +- trunk/arch/sparc/include/asm/bitops_64.h | 5 +- trunk/arch/sparc/include/asm/prom.h | 2 +- trunk/arch/sparc/include/asm/ptrace.h | 2 - trunk/arch/sparc/include/asm/smp_32.h | 2 +- trunk/arch/sparc/include/asm/smp_64.h | 2 +- trunk/arch/sparc/kernel/irq_64.c | 2 +- trunk/arch/sparc/kernel/leon_smp.c | 2 +- trunk/arch/sparc/kernel/perf_event.c | 2 +- trunk/arch/sparc/kernel/smp_32.c | 2 +- trunk/arch/sparc/kernel/smp_64.c | 2 +- trunk/arch/sparc/lib/atomic32.c | 2 +- trunk/arch/tile/include/asm/atomic.h | 14 - trunk/arch/tile/include/asm/atomic_32.h | 14 +- trunk/arch/tile/include/asm/atomic_64.h | 6 +- trunk/arch/tile/include/asm/bitops_32.h | 2 +- trunk/arch/tile/include/asm/bitops_64.h | 7 +- trunk/arch/tile/include/asm/ptrace.h | 2 - trunk/arch/tile/include/asm/spinlock_32.h | 2 +- trunk/arch/tile/kernel/intvec_32.S | 2 +- trunk/arch/tile/lib/atomic_32.c | 2 +- trunk/arch/tile/lib/atomic_asm_32.S | 2 +- trunk/arch/um/include/asm/ptrace-generic.h | 2 - trunk/arch/x86/Kconfig | 43 +- trunk/arch/x86/ia32/sys_ia32.c | 2 +- trunk/arch/x86/include/asm/apic.h | 2 +- trunk/arch/x86/include/asm/atomic.h | 10 +- trunk/arch/x86/include/asm/atomic64_32.h | 2 +- trunk/arch/x86/include/asm/atomic64_64.h | 2 +- trunk/arch/x86/include/asm/bitops.h | 5 +- trunk/arch/x86/include/asm/hw_irq.h | 2 +- trunk/arch/x86/include/asm/kdebug.h | 1 - trunk/arch/x86/include/asm/local.h | 2 +- trunk/arch/x86/include/asm/mce.h | 2 +- trunk/arch/x86/include/asm/mmu_context.h | 2 +- trunk/arch/x86/include/asm/olpc.h | 51 +- trunk/arch/x86/include/asm/prom.h | 2 +- trunk/arch/x86/include/asm/spinlock.h | 2 +- trunk/arch/x86/include/asm/thread_info.h | 2 +- trunk/arch/x86/kernel/amd_gart_64.c | 2 +- trunk/arch/x86/kernel/apic/apic.c | 2 +- trunk/arch/x86/kernel/apic/es7000_32.c | 2 +- trunk/arch/x86/kernel/cpu/common.c | 2 +- trunk/arch/x86/kernel/i8259.c | 2 +- trunk/arch/x86/kernel/irqinit.c | 2 +- trunk/arch/x86/kernel/traps.c | 2 +- trunk/arch/x86/kvm/lapic.c | 2 +- trunk/arch/x86/kvm/timer.c | 2 +- trunk/arch/x86/lib/atomic64_32.c | 2 +- trunk/arch/x86/mm/mmio-mod.c | 2 +- trunk/arch/x86/platform/olpc/Makefile | 5 +- trunk/arch/x86/platform/olpc/olpc-xo1-pm.c | 215 ++++ trunk/arch/x86/platform/olpc/olpc-xo1-rtc.c | 81 ++ trunk/arch/x86/platform/olpc/olpc-xo1-sci.c | 614 +++++++++++ trunk/arch/x86/platform/olpc/olpc-xo1.c | 146 --- trunk/arch/x86/platform/olpc/olpc-xo15-sci.c | 168 +++ trunk/arch/x86/platform/olpc/olpc.c | 95 ++ trunk/arch/x86/platform/olpc/olpc_dt.c | 103 ++ trunk/arch/x86/platform/olpc/xo1-wakeup.S | 124 +++ trunk/arch/xtensa/include/asm/atomic.h | 10 +- trunk/arch/xtensa/include/asm/bitops.h | 14 +- trunk/arch/xtensa/include/asm/posix_types.h | 2 +- trunk/arch/xtensa/include/asm/ptrace.h | 1 - trunk/arch/xtensa/kernel/process.c | 2 +- trunk/block/blk-core.c | 28 +- trunk/crypto/af_alg.c | 2 +- trunk/crypto/proc.c | 2 +- trunk/crypto/rng.c | 2 +- trunk/drivers/acpi/video.c | 7 +- trunk/drivers/atm/ambassador.c | 2 +- trunk/drivers/atm/atmtcp.c | 2 +- trunk/drivers/atm/eni.c | 2 +- trunk/drivers/atm/eni.h | 2 +- trunk/drivers/atm/firestream.c | 2 +- trunk/drivers/atm/fore200e.c | 2 +- trunk/drivers/atm/horizon.c | 2 +- trunk/drivers/atm/idt77252.c | 2 +- trunk/drivers/atm/iphase.c | 2 +- trunk/drivers/atm/nicstar.c | 2 +- trunk/drivers/atm/suni.c | 2 +- trunk/drivers/atm/uPD98402.c | 2 +- trunk/drivers/atm/zatm.c | 2 +- trunk/drivers/base/memory.c | 2 +- trunk/drivers/base/power/opp.c | 2 +- trunk/drivers/base/power/sysfs.c | 2 +- trunk/drivers/block/cciss_scsi.c | 2 +- trunk/drivers/block/rbd.c | 46 +- trunk/drivers/char/ipmi/ipmi_watchdog.c | 2 +- trunk/drivers/char/mspec.c | 2 +- trunk/drivers/char/ramoops.c | 92 +- trunk/drivers/clk/Kconfig | 3 + trunk/drivers/connector/cn_proc.c | 3 +- trunk/drivers/cpufreq/cpufreq.c | 20 + trunk/drivers/dma/imx-sdma.c | 6 +- trunk/drivers/edac/edac_stub.c | 2 +- trunk/drivers/edac/mpc85xx_edac.c | 4 +- trunk/drivers/firewire/core-card.c | 2 +- trunk/drivers/firewire/core-device.c | 2 +- trunk/drivers/firewire/core-topology.c | 2 +- trunk/drivers/firewire/core.h | 2 +- trunk/drivers/firewire/nosy.c | 2 +- trunk/drivers/gpu/drm/drm_crtc_helper.c | 5 + trunk/drivers/gpu/drm/drm_edid.c | 4 +- trunk/drivers/gpu/drm/drm_gem.c | 47 +- trunk/drivers/gpu/drm/drm_modes.c | 87 +- trunk/drivers/gpu/drm/drm_platform.c | 5 +- trunk/drivers/gpu/drm/i915/i915_debugfs.c | 41 +- trunk/drivers/gpu/drm/i915/i915_dma.c | 4 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 69 +- trunk/drivers/gpu/drm/i915/i915_drv.h | 46 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 191 +++- trunk/drivers/gpu/drm/i915/i915_gem_gtt.c | 39 +- trunk/drivers/gpu/drm/i915/i915_irq.c | 13 +- trunk/drivers/gpu/drm/i915/i915_reg.h | 6 +- trunk/drivers/gpu/drm/i915/i915_suspend.c | 8 +- trunk/drivers/gpu/drm/i915/intel_bios.c | 142 +-- trunk/drivers/gpu/drm/i915/intel_display.c | 699 +++++++++---- trunk/drivers/gpu/drm/i915/intel_dp.c | 17 +- trunk/drivers/gpu/drm/i915/intel_drv.h | 9 + trunk/drivers/gpu/drm/i915/intel_hdmi.c | 8 +- trunk/drivers/gpu/drm/i915/intel_opregion.c | 15 +- trunk/drivers/gpu/drm/i915/intel_overlay.c | 6 +- trunk/drivers/gpu/drm/i915/intel_ringbuffer.c | 6 +- trunk/drivers/gpu/drm/i915/intel_tv.c | 46 +- trunk/drivers/gpu/drm/nouveau/nouveau_bios.c | 50 +- trunk/drivers/gpu/drm/nouveau/nouveau_bo.c | 232 ++--- .../drivers/gpu/drm/nouveau/nouveau_channel.c | 167 ++- .../gpu/drm/nouveau/nouveau_connector.c | 34 +- trunk/drivers/gpu/drm/nouveau/nouveau_dma.c | 7 +- trunk/drivers/gpu/drm/nouveau/nouveau_drv.c | 23 +- trunk/drivers/gpu/drm/nouveau/nouveau_drv.h | 78 +- trunk/drivers/gpu/drm/nouveau/nouveau_fb.h | 1 + trunk/drivers/gpu/drm/nouveau/nouveau_fbcon.c | 15 +- trunk/drivers/gpu/drm/nouveau/nouveau_fence.c | 31 +- trunk/drivers/gpu/drm/nouveau/nouveau_gem.c | 148 ++- trunk/drivers/gpu/drm/nouveau/nouveau_irq.c | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_mem.c | 119 +-- trunk/drivers/gpu/drm/nouveau/nouveau_mm.c | 11 +- trunk/drivers/gpu/drm/nouveau/nouveau_mm.h | 1 + .../gpu/drm/nouveau/nouveau_notifier.c | 20 +- .../drivers/gpu/drm/nouveau/nouveau_object.c | 98 +- trunk/drivers/gpu/drm/nouveau/nouveau_sgdma.c | 4 +- trunk/drivers/gpu/drm/nouveau/nouveau_state.c | 114 +- trunk/drivers/gpu/drm/nouveau/nouveau_temp.c | 15 +- trunk/drivers/gpu/drm/nouveau/nouveau_vm.c | 21 +- trunk/drivers/gpu/drm/nouveau/nouveau_vm.h | 2 + trunk/drivers/gpu/drm/nouveau/nv04_crtc.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv04_graph.c | 22 +- trunk/drivers/gpu/drm/nouveau/nv04_instmem.c | 28 +- trunk/drivers/gpu/drm/nouveau/nv10_graph.c | 15 +- trunk/drivers/gpu/drm/nouveau/nv20_graph.c | 13 +- trunk/drivers/gpu/drm/nouveau/nv40_graph.c | 112 +- trunk/drivers/gpu/drm/nouveau/nv40_mpeg.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv50_crtc.c | 10 +- trunk/drivers/gpu/drm/nouveau/nv50_display.c | 6 +- trunk/drivers/gpu/drm/nouveau/nv50_evo.c | 10 +- trunk/drivers/gpu/drm/nouveau/nv50_fbcon.c | 10 +- trunk/drivers/gpu/drm/nouveau/nv50_graph.c | 9 +- trunk/drivers/gpu/drm/nouveau/nv50_instmem.c | 8 +- trunk/drivers/gpu/drm/nouveau/nv50_mpeg.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv50_sor.c | 2 + trunk/drivers/gpu/drm/nouveau/nv50_vm.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv50_vram.c | 41 +- trunk/drivers/gpu/drm/nouveau/nv84_crypt.c | 2 +- trunk/drivers/gpu/drm/nouveau/nva3_copy.c | 2 +- trunk/drivers/gpu/drm/nouveau/nvc0_copy.c | 8 +- trunk/drivers/gpu/drm/nouveau/nvc0_fb.c | 68 +- trunk/drivers/gpu/drm/nouveau/nvc0_fbcon.c | 14 +- trunk/drivers/gpu/drm/nouveau/nvc0_fifo.c | 4 +- trunk/drivers/gpu/drm/nouveau/nvc0_graph.c | 270 +++-- trunk/drivers/gpu/drm/nouveau/nvc0_graph.fuc | 400 ++++++++ trunk/drivers/gpu/drm/nouveau/nvc0_graph.h | 24 +- trunk/drivers/gpu/drm/nouveau/nvc0_grctx.c | 239 ++--- trunk/drivers/gpu/drm/nouveau/nvc0_grgpc.fuc | 474 +++++++++ .../drivers/gpu/drm/nouveau/nvc0_grgpc.fuc.h | 483 +++++++++ trunk/drivers/gpu/drm/nouveau/nvc0_grhub.fuc | 808 +++++++++++++++ .../drivers/gpu/drm/nouveau/nvc0_grhub.fuc.h | 838 +++++++++++++++ trunk/drivers/gpu/drm/nouveau/nvc0_instmem.c | 14 +- trunk/drivers/gpu/drm/nouveau/nvc0_vm.c | 6 +- trunk/drivers/gpu/drm/nouveau/nvc0_vram.c | 14 +- trunk/drivers/gpu/drm/radeon/atombios_crtc.c | 5 +- trunk/drivers/gpu/drm/radeon/atombios_dp.c | 22 +- trunk/drivers/gpu/drm/radeon/evergreen.c | 7 +- trunk/drivers/gpu/drm/radeon/evergreen_cs.c | 57 +- trunk/drivers/gpu/drm/radeon/evergreend.h | 2 + trunk/drivers/gpu/drm/radeon/ni.c | 1 + trunk/drivers/gpu/drm/radeon/r600.c | 15 +- trunk/drivers/gpu/drm/radeon/r600_cp.c | 23 +- trunk/drivers/gpu/drm/radeon/r600_cs.c | 9 + trunk/drivers/gpu/drm/radeon/radeon.h | 27 +- trunk/drivers/gpu/drm/radeon/radeon_asic.c | 14 +- trunk/drivers/gpu/drm/radeon/radeon_clocks.c | 4 +- trunk/drivers/gpu/drm/radeon/radeon_combios.c | 3 +- trunk/drivers/gpu/drm/radeon/radeon_cp.c | 2 +- trunk/drivers/gpu/drm/radeon/radeon_display.c | 42 +- trunk/drivers/gpu/drm/radeon/radeon_drv.c | 5 +- trunk/drivers/gpu/drm/radeon/radeon_fence.c | 2 +- trunk/drivers/gpu/drm/radeon/radeon_kms.c | 15 +- trunk/drivers/gpu/drm/radeon/radeon_pm.c | 3 + trunk/drivers/gpu/drm/radeon/radeon_reg.h | 2 +- trunk/drivers/gpu/drm/radeon/reg_srcs/cayman | 2 + .../drivers/gpu/drm/radeon/reg_srcs/evergreen | 3 + trunk/drivers/gpu/drm/radeon/reg_srcs/r600 | 1 + trunk/drivers/gpu/drm/radeon/rs600.c | 2 +- trunk/drivers/gpu/drm/radeon/rv770.c | 1 + trunk/drivers/gpu/drm/ttm/ttm_bo.c | 2 +- trunk/drivers/gpu/drm/ttm/ttm_lock.c | 2 +- trunk/drivers/gpu/drm/ttm/ttm_object.c | 2 +- trunk/drivers/gpu/drm/ttm/ttm_page_alloc.c | 18 +- trunk/drivers/hwmon/sht15.c | 2 +- trunk/drivers/i2c/busses/i2c-eg20t.c | 41 +- trunk/drivers/i2c/busses/i2c-tegra.c | 17 +- trunk/drivers/infiniband/hw/cxgb4/mem.c | 2 +- trunk/drivers/infiniband/hw/ehca/ehca_tools.h | 2 +- trunk/drivers/infiniband/hw/nes/nes_cm.c | 2 +- trunk/drivers/infiniband/ulp/ipoib/ipoib.h | 2 +- trunk/drivers/infiniband/ulp/srp/ib_srp.c | 2 +- trunk/drivers/input/joystick/xpad.c | 31 +- trunk/drivers/input/keyboard/adp5588-keys.c | 1 - trunk/drivers/input/keyboard/adp5589-keys.c | 1 - trunk/drivers/input/keyboard/atkbd.c | 4 +- trunk/drivers/input/keyboard/gpio_keys.c | 166 ++- trunk/drivers/input/keyboard/lm8323.c | 23 +- .../drivers/input/keyboard/mpr121_touchkey.c | 16 +- .../drivers/input/keyboard/pmic8xxx-keypad.c | 8 +- trunk/drivers/input/keyboard/qt1070.c | 2 - trunk/drivers/input/keyboard/sh_keysc.c | 2 +- trunk/drivers/input/keyboard/tegra-kbc.c | 2 +- .../drivers/input/keyboard/tnetv107x-keypad.c | 2 +- trunk/drivers/input/misc/Kconfig | 51 +- trunk/drivers/input/misc/Makefile | 5 +- trunk/drivers/input/misc/bfin_rotary.c | 1 - trunk/drivers/input/misc/kxtj9.c | 671 ++++++++++++ trunk/drivers/input/misc/mma8450.c | 256 +++++ trunk/drivers/input/misc/mpu3050.c | 376 +++++++ trunk/drivers/input/misc/twl4030-vibra.c | 12 +- trunk/drivers/input/misc/twl6040-vibra.c | 423 ++++++++ trunk/drivers/input/misc/xen-kbdfront.c | 2 +- trunk/drivers/input/mouse/gpio_mouse.c | 2 +- trunk/drivers/input/mouse/lifebook.c | 4 +- trunk/drivers/input/mouse/pxa930_trkball.c | 1 - trunk/drivers/input/mouse/sentelic.c | 1 - trunk/drivers/input/mouse/synaptics.c | 107 +- trunk/drivers/input/mouse/synaptics.h | 18 +- trunk/drivers/input/serio/at32psif.c | 2 +- trunk/drivers/input/serio/hp_sdc.c | 2 +- trunk/drivers/input/tablet/aiptek.c | 1 - trunk/drivers/input/tablet/wacom_wac.c | 68 +- trunk/drivers/input/touchscreen/ads7846.c | 15 +- .../drivers/input/touchscreen/atmel-wm97xx.c | 4 +- .../drivers/input/touchscreen/atmel_mxt_ts.c | 190 ++-- .../drivers/input/touchscreen/cy8ctmg110_ts.c | 8 +- .../input/touchscreen/intel-mid-touch.c | 15 +- .../input/touchscreen/mainstone-wm97xx.c | 6 +- .../drivers/input/touchscreen/tnetv107x-ts.c | 2 +- trunk/drivers/input/touchscreen/wm9705.c | 25 +- trunk/drivers/input/touchscreen/wm9712.c | 27 +- trunk/drivers/input/touchscreen/wm9713.c | 25 +- .../input/touchscreen/zylonite-wm97xx.c | 6 +- trunk/drivers/isdn/gigaset/gigaset.h | 2 +- trunk/drivers/md/dm-crypt.c | 2 +- trunk/drivers/md/dm-kcopyd.c | 2 +- trunk/drivers/md/dm-mpath.c | 2 +- trunk/drivers/md/dm-queue-length.c | 2 +- trunk/drivers/md/dm-table.c | 2 +- trunk/drivers/media/video/hdpvr/hdpvr-core.c | 2 +- trunk/drivers/media/video/tlg2300/pd-dvb.c | 2 +- trunk/drivers/media/video/uvc/uvc_ctrl.c | 2 +- trunk/drivers/media/video/uvc/uvc_queue.c | 2 +- trunk/drivers/media/video/uvc/uvc_v4l2.c | 2 +- trunk/drivers/media/video/uvc/uvc_video.c | 2 +- trunk/drivers/message/i2o/i2o_scsi.c | 2 +- trunk/drivers/mfd/Kconfig | 8 +- trunk/drivers/mfd/Makefile | 3 +- trunk/drivers/mfd/twl-core.c | 13 +- trunk/drivers/mfd/twl4030-audio.c | 277 +++++ trunk/drivers/mfd/twl4030-codec.c | 277 ----- trunk/drivers/mfd/twl6040-core.c | 620 +++++++++++ trunk/drivers/mfd/twl6040-irq.c | 191 ++++ trunk/drivers/misc/phantom.c | 2 +- trunk/drivers/misc/vmw_balloon.c | 31 +- trunk/drivers/mmc/host/tmio_mmc.h | 1 + trunk/drivers/net/atlx/atl1.c | 2 +- trunk/drivers/net/atlx/atl2.c | 2 +- trunk/drivers/net/atlx/atl2.h | 2 +- trunk/drivers/net/cassini.c | 2 +- trunk/drivers/net/cpmac.c | 2 +- trunk/drivers/net/cxgb3/cxgb3_offload.c | 2 +- trunk/drivers/net/cxgb3/l2t.h | 2 +- trunk/drivers/net/cxgb3/t3cdev.h | 2 +- trunk/drivers/net/cxgb4/cxgb4_uld.h | 2 +- trunk/drivers/net/cxgb4/l2t.h | 2 +- trunk/drivers/net/hamradio/6pack.c | 2 +- trunk/drivers/net/hamradio/dmascc.c | 2 +- trunk/drivers/net/ibmveth.c | 2 +- trunk/drivers/net/phy/phy.c | 2 +- trunk/drivers/net/ppp_generic.c | 2 +- trunk/drivers/net/wimax/i2400m/i2400m.h | 2 +- .../net/wireless/b43legacy/b43legacy.h | 2 +- trunk/drivers/net/wireless/b43legacy/dma.h | 2 +- trunk/drivers/oprofile/oprofile_stats.h | 2 +- trunk/drivers/pci/hotplug/cpci_hotplug_core.c | 2 +- trunk/drivers/pci/pci-label.c | 2 +- trunk/drivers/pci/xen-pcifront.c | 2 +- trunk/drivers/rtc/interface.c | 55 +- trunk/drivers/s390/block/dasd_eer.c | 2 +- trunk/drivers/s390/char/sclp_quiesce.c | 2 +- trunk/drivers/s390/char/vmlogrdr.c | 2 +- trunk/drivers/s390/cio/device.h | 2 +- trunk/drivers/s390/cio/qdio_main.c | 2 +- trunk/drivers/s390/cio/qdio_thinint.c | 2 +- trunk/drivers/s390/crypto/ap_bus.c | 2 +- trunk/drivers/s390/crypto/zcrypt_api.c | 2 +- trunk/drivers/s390/crypto/zcrypt_cex2a.c | 2 +- trunk/drivers/s390/crypto/zcrypt_mono.c | 2 +- trunk/drivers/s390/crypto/zcrypt_pcica.c | 2 +- trunk/drivers/s390/crypto/zcrypt_pcicc.c | 2 +- trunk/drivers/s390/crypto/zcrypt_pcixcc.c | 2 +- trunk/drivers/s390/net/fsm.h | 2 +- trunk/drivers/s390/scsi/zfcp_scsi.c | 2 +- trunk/drivers/sbus/char/display7seg.c | 2 +- trunk/drivers/scsi/dpt/dpti_i2o.h | 2 +- trunk/drivers/scsi/hpsa.c | 2 +- trunk/drivers/scsi/pm8001/pm8001_sas.h | 2 +- .../staging/brcm80211/brcmsmac/mac80211_if.h | 2 - trunk/drivers/staging/gma500/mrst_hdmi.c | 2 +- trunk/drivers/staging/octeon/ethernet-rx.c | 2 +- trunk/drivers/staging/octeon/ethernet-tx.c | 2 +- trunk/drivers/staging/solo6x10/solo6x10.h | 2 +- .../tidspbridge/include/dspbridge/host_os.h | 2 +- trunk/drivers/staging/winbond/mds_s.h | 2 +- trunk/drivers/staging/winbond/wb35reg_s.h | 2 +- trunk/drivers/tty/bfin_jtag_comm.c | 2 +- trunk/drivers/tty/rocket.c | 2 +- trunk/drivers/tty/serial/dz.c | 2 +- trunk/drivers/tty/serial/sb1250-duart.c | 2 +- trunk/drivers/tty/serial/zs.c | 2 +- trunk/drivers/usb/gadget/f_audio.c | 2 +- trunk/drivers/usb/gadget/f_rndis.c | 2 +- trunk/drivers/usb/gadget/uvc_queue.c | 2 +- trunk/drivers/usb/image/microtek.c | 2 +- trunk/drivers/usb/misc/appledisplay.c | 2 +- trunk/drivers/usb/renesas_usbhs/fifo.c | 1 + trunk/drivers/usb/serial/garmin_gps.c | 2 +- trunk/drivers/usb/wusbcore/wa-rpipe.c | 2 +- trunk/drivers/vhost/vhost.h | 2 +- trunk/drivers/video/sh_mobile_lcdcfb.c | 2 +- trunk/drivers/video/vermilion/vermilion.h | 2 +- trunk/drivers/w1/masters/matrox_w1.c | 2 +- trunk/drivers/w1/slaves/w1_therm.c | 9 + trunk/drivers/w1/w1.c | 2 +- trunk/drivers/w1/w1_family.h | 3 +- trunk/drivers/watchdog/intel_scu_watchdog.c | 2 +- trunk/drivers/watchdog/sbc7240_wdt.c | 2 +- trunk/fs/anon_inodes.c | 2 +- trunk/fs/block_dev.c | 16 +- trunk/fs/btrfs/delayed-inode.h | 2 +- trunk/fs/btrfs/extent_io.c | 2 - trunk/fs/btrfs/inode.c | 4 +- trunk/fs/ceph/debugfs.c | 2 +- trunk/fs/ceph/dir.c | 116 ++- trunk/fs/ceph/export.c | 24 +- trunk/fs/ceph/file.c | 61 +- trunk/fs/ceph/inode.c | 48 +- trunk/fs/ceph/ioctl.c | 15 +- trunk/fs/ceph/ioctl.h | 1 + trunk/fs/ceph/mds_client.c | 56 +- trunk/fs/ceph/mds_client.h | 3 +- trunk/fs/ceph/snap.c | 25 +- trunk/fs/ceph/super.c | 7 +- trunk/fs/ceph/super.h | 20 +- trunk/fs/ceph/xattr.c | 8 +- trunk/fs/cifs/cifsencrypt.c | 110 +- trunk/fs/cifs/cifsglob.h | 2 +- trunk/fs/cifs/dir.c | 5 - trunk/fs/cifs/link.c | 8 +- trunk/fs/cifs/readdir.c | 427 ++++---- trunk/fs/cifs/smbencrypt.c | 8 +- trunk/fs/dcache.c | 11 +- trunk/fs/direct-io.c | 2 +- trunk/fs/eventpoll.c | 2 +- trunk/fs/exec.c | 60 +- trunk/fs/ext2/xattr.c | 10 +- trunk/fs/ext3/balloc.c | 38 +- trunk/fs/ext3/file.c | 1 - trunk/fs/ext3/fsync.c | 11 +- trunk/fs/ext3/ialloc.c | 4 + trunk/fs/ext3/inode.c | 193 +++- trunk/fs/ext3/ioctl.c | 4 +- trunk/fs/ext3/namei.c | 7 +- trunk/fs/ext3/super.c | 13 + trunk/fs/ext3/xattr.c | 12 +- trunk/fs/ext4/inode.c | 4 +- trunk/fs/file_table.c | 2 +- trunk/fs/fs-writeback.c | 373 ++++--- trunk/fs/gfs2/main.c | 2 +- trunk/fs/inode.c | 44 +- trunk/fs/jbd/checkpoint.c | 37 +- trunk/fs/jbd/commit.c | 57 +- trunk/fs/jbd/journal.c | 99 +- trunk/fs/jbd/transaction.c | 83 +- trunk/fs/jffs2/fs.c | 2 +- trunk/fs/nfs/cache_lib.h | 2 +- trunk/fs/nfs/direct.c | 2 +- trunk/fs/nfs/write.c | 3 +- trunk/fs/notify/group.c | 2 +- trunk/fs/notify/inode_mark.c | 2 +- trunk/fs/notify/mark.c | 2 +- trunk/fs/notify/notification.c | 2 +- trunk/fs/notify/vfsmount_mark.c | 2 +- trunk/fs/ntfs/inode.h | 2 +- trunk/fs/omfs/dir.c | 2 +- trunk/fs/open.c | 78 +- trunk/fs/pipe.c | 2 +- trunk/fs/posix_acl.c | 2 +- trunk/fs/proc/base.c | 16 +- trunk/fs/proc/inode.c | 2 +- trunk/fs/proc/meminfo.c | 2 +- trunk/fs/read_write.c | 12 +- trunk/fs/xfs/linux-2.6/xfs_ioctl.c | 6 +- trunk/fs/xfs/xfs_bmap.c | 7 +- trunk/fs/xfs/xfs_dir2.c | 16 +- trunk/fs/xfs/xfs_filestream.c | 14 +- trunk/fs/xfs/xfs_inode.c | 16 +- trunk/fs/xfs/xfs_inode.h | 2 +- trunk/fs/xfs/xfs_log_recover.c | 4 +- trunk/fs/xfs/xfs_mount.c | 2 +- trunk/fs/xfs/xfs_rename.c | 4 +- trunk/fs/xfs/xfs_vnodeops.c | 10 +- trunk/include/acpi/platform/aclinux.h | 2 +- trunk/include/acpi/video.h | 2 + trunk/include/asm-generic/atomic.h | 59 +- .../asm-generic/bitops/ext2-atomic-setbit.h | 11 + .../include/asm-generic/bitops/ext2-atomic.h | 4 + trunk/include/asm-generic/local.h | 2 +- trunk/include/asm-generic/local64.h | 2 +- trunk/include/asm-generic/pci-bridge.h | 62 ++ trunk/include/drm/drmP.h | 11 +- trunk/include/drm/radeon_drm.h | 1 + trunk/include/drm/ttm/ttm_bo_api.h | 3 - trunk/include/drm/ttm/ttm_bo_driver.h | 6 +- trunk/include/drm/ttm/ttm_lock.h | 2 +- trunk/include/drm/ttm/ttm_memory.h | 2 +- trunk/include/drm/ttm/ttm_object.h | 4 +- trunk/include/drm/ttm/ttm_page_alloc.h | 2 +- trunk/include/linux/aio.h | 2 +- trunk/include/linux/atmdev.h | 2 +- trunk/include/linux/atomic.h | 28 + trunk/include/linux/backing-dev.h | 10 +- trunk/include/linux/bit_spinlock.h | 2 +- trunk/include/linux/bitmap.h | 1 + trunk/include/linux/buffer_head.h | 2 +- trunk/include/linux/ceph/messenger.h | 1 + trunk/include/linux/configfs.h | 2 +- trunk/include/linux/connector.h | 2 +- trunk/include/linux/cpufreq.h | 5 + trunk/include/linux/cpumask.h | 14 + trunk/include/linux/cred.h | 2 +- trunk/include/linux/crypto.h | 2 +- trunk/include/linux/cs5535.h | 60 ++ trunk/include/linux/dcache.h | 2 +- trunk/include/linux/debug_locks.h | 2 +- trunk/include/linux/device.h | 2 +- trunk/include/linux/dma-mapping.h | 21 - trunk/include/linux/edac.h | 2 +- trunk/include/linux/ext2_fs.h | 1 + trunk/include/linux/ext3_fs.h | 7 +- trunk/include/linux/fault-inject.h | 21 +- trunk/include/linux/fdtable.h | 2 +- trunk/include/linux/filter.h | 2 +- trunk/include/linux/firewire.h | 2 +- trunk/include/linux/fs.h | 3 +- trunk/include/linux/fsnotify_backend.h | 2 +- trunk/include/linux/i2c-omap.h | 27 + trunk/include/linux/i2c/twl.h | 25 +- trunk/include/linux/input.h | 6 +- trunk/include/linux/input/kxtj9.h | 70 ++ trunk/include/linux/interrupt.h | 2 +- trunk/include/linux/ipc_namespace.h | 7 + trunk/include/linux/jbd.h | 1 - trunk/include/linux/journal-head.h | 2 +- trunk/include/linux/jump_label.h | 2 +- trunk/include/linux/kdb.h | 2 +- trunk/include/linux/key.h | 2 +- trunk/include/linux/kgdb.h | 2 +- trunk/include/linux/kobject.h | 2 +- trunk/include/linux/memcontrol.h | 26 +- .../mfd/{twl4030-codec.h => twl4030-audio.h} | 16 +- trunk/include/linux/mfd/twl6040.h | 228 ++++ trunk/include/linux/mlx4/device.h | 2 +- trunk/include/linux/mman.h | 2 +- trunk/include/linux/mmzone.h | 8 +- trunk/include/linux/mount.h | 2 +- trunk/include/linux/mutex.h | 2 +- trunk/include/linux/netdevice.h | 2 +- trunk/include/linux/nfs_fs_sb.h | 2 +- trunk/include/linux/nodemask.h | 13 + trunk/include/linux/oprofile.h | 2 +- trunk/include/linux/pci.h | 2 +- trunk/include/linux/perf_event.h | 2 +- trunk/include/linux/phy.h | 2 +- trunk/include/linux/proc_fs.h | 2 +- trunk/include/linux/quota.h | 10 +- trunk/include/linux/ramoops.h | 2 + trunk/include/linux/rwsem.h | 2 +- trunk/include/linux/sem.h | 2 +- trunk/include/linux/shm.h | 4 + trunk/include/linux/skbuff.h | 2 +- trunk/include/linux/sonet.h | 2 +- trunk/include/linux/spinlock.h | 2 +- trunk/include/linux/sunrpc/auth.h | 2 +- trunk/include/linux/sunrpc/cache.h | 2 +- trunk/include/linux/sunrpc/timer.h | 2 +- trunk/include/linux/swap.h | 19 +- trunk/include/linux/sysfs.h | 2 +- trunk/include/linux/vmstat.h | 2 +- trunk/include/linux/vt_kern.h | 2 +- trunk/include/linux/wm97xx.h | 13 +- trunk/include/linux/workqueue.h | 2 +- trunk/include/linux/writeback.h | 55 +- trunk/include/net/ax25.h | 2 +- trunk/include/net/cipso_ipv4.h | 2 +- trunk/include/net/flow.h | 2 +- trunk/include/net/inet_hashtables.h | 2 +- trunk/include/net/inet_timewait_sock.h | 2 +- trunk/include/net/inetpeer.h | 2 +- trunk/include/net/ip_vs.h | 2 +- trunk/include/net/lib80211.h | 2 +- trunk/include/net/llc.h | 2 +- trunk/include/net/neighbour.h | 2 +- trunk/include/net/net_namespace.h | 2 +- trunk/include/net/netfilter/nf_conntrack.h | 2 +- trunk/include/net/netlabel.h | 2 +- trunk/include/net/netns/conntrack.h | 2 +- trunk/include/net/sctp/structs.h | 2 +- trunk/include/pcmcia/ds.h | 2 +- trunk/include/rdma/ib_sa.h | 2 +- trunk/include/rdma/ib_verbs.h | 2 +- trunk/include/rxrpc/types.h | 2 +- trunk/include/scsi/scsi_device.h | 2 +- trunk/include/sound/pcm.h | 35 +- trunk/include/sound/pcm_params.h | 16 +- trunk/include/sound/soc-dapm.h | 6 + trunk/include/trace/events/btrfs.h | 6 +- trunk/include/trace/events/ext3.h | 864 ++++++++++++++++ trunk/include/trace/events/ext4.h | 6 +- trunk/include/trace/events/jbd.h | 203 ++++ trunk/include/trace/events/writeback.h | 183 +++- trunk/ipc/ipc_sysctl.c | 36 + trunk/ipc/mqueue.c | 125 +-- trunk/ipc/shm.c | 97 +- trunk/kernel/audit.c | 2 +- trunk/kernel/auditsc.c | 2 +- trunk/kernel/cgroup.c | 2 +- trunk/kernel/cpuset.c | 10 +- trunk/kernel/debug/debug_core.c | 2 +- trunk/kernel/exit.c | 1 + trunk/kernel/fork.c | 87 +- trunk/kernel/gcov/Kconfig | 2 +- trunk/kernel/panic.c | 2 + trunk/kernel/rcupdate.c | 2 +- trunk/kernel/rcutorture.c | 2 +- trunk/kernel/rcutree_trace.c | 2 +- trunk/kernel/rwsem.c | 2 +- trunk/kernel/stop_machine.c | 2 +- trunk/kernel/taskstats.c | 2 +- trunk/kernel/trace/trace.h | 2 +- trunk/kernel/trace/trace_mmiotrace.c | 2 +- trunk/lib/atomic64.c | 2 +- trunk/lib/atomic64_test.c | 2 +- trunk/lib/bitmap.c | 2 +- trunk/lib/cpumask.c | 4 +- trunk/lib/crc32.c | 2 +- trunk/lib/dec_and_lock.c | 2 +- trunk/lib/fault-inject.c | 144 +-- trunk/mm/backing-dev.c | 82 +- trunk/mm/failslab.c | 31 +- trunk/mm/filemap.c | 6 +- trunk/mm/init-mm.c | 2 +- trunk/mm/kmemleak.c | 2 +- trunk/mm/memcontrol.c | 573 +++++++---- trunk/mm/mempolicy.c | 16 + trunk/mm/page-writeback.c | 280 ++++- trunk/mm/page_alloc.c | 51 +- trunk/mm/rmap.c | 4 +- trunk/mm/slob.c | 2 +- trunk/mm/vmalloc.c | 2 +- trunk/mm/vmscan.c | 79 +- trunk/net/atm/atm_misc.c | 2 +- trunk/net/atm/clip.c | 2 +- trunk/net/atm/common.c | 2 +- trunk/net/atm/lec.c | 2 +- trunk/net/atm/proc.c | 2 +- trunk/net/bridge/br_fdb.c | 2 +- trunk/net/ceph/messenger.c | 12 +- trunk/net/ceph/osd_client.c | 6 + trunk/net/core/flow.c | 2 +- trunk/net/decnet/dn_fib.c | 2 +- trunk/net/decnet/dn_neigh.c | 2 +- trunk/net/decnet/dn_table.c | 2 +- trunk/net/decnet/dn_timer.c | 2 +- trunk/net/ipv4/cipso_ipv4.c | 2 +- trunk/net/ipv4/raw.c | 2 +- trunk/net/ipv6/ip6_tunnel.c | 2 +- trunk/net/iucv/iucv.c | 2 +- trunk/net/l2tp/l2tp_core.c | 2 +- trunk/net/l2tp/l2tp_ppp.c | 2 +- trunk/net/netfilter/nfnetlink_log.c | 2 +- trunk/net/netfilter/nfnetlink_queue.c | 2 +- trunk/net/netlabel/netlabel_cipso_v4.c | 2 +- trunk/net/netlabel/netlabel_kapi.c | 2 +- trunk/net/netlabel/netlabel_mgmt.c | 2 +- trunk/net/netlabel/netlabel_mgmt.h | 2 +- trunk/net/netlabel/netlabel_unlabeled.c | 2 +- trunk/net/socket.c | 2 +- trunk/net/sunrpc/xprtrdma/xprt_rdma.h | 2 +- trunk/net/tipc/core.h | 2 +- trunk/security/integrity/ima/ima_main.c | 2 +- trunk/security/selinux/hooks.c | 2 +- trunk/security/selinux/xfrm.c | 2 +- trunk/sound/core/pcm_lib.c | 13 +- trunk/sound/isa/msnd/msnd.h | 2 +- trunk/sound/pci/asihpi/asihpi.c | 21 - trunk/sound/pci/echoaudio/darla20.c | 2 +- trunk/sound/pci/echoaudio/darla24.c | 2 +- trunk/sound/pci/echoaudio/echo3g.c | 2 +- trunk/sound/pci/echoaudio/gina20.c | 2 +- trunk/sound/pci/echoaudio/gina24.c | 2 +- trunk/sound/pci/echoaudio/indigo.c | 2 +- trunk/sound/pci/echoaudio/indigodj.c | 2 +- trunk/sound/pci/echoaudio/indigodjx.c | 2 +- trunk/sound/pci/echoaudio/indigoio.c | 2 +- trunk/sound/pci/echoaudio/indigoiox.c | 2 +- trunk/sound/pci/echoaudio/layla20.c | 2 +- trunk/sound/pci/echoaudio/layla24.c | 2 +- trunk/sound/pci/echoaudio/mia.c | 2 +- trunk/sound/pci/echoaudio/mona.c | 2 +- trunk/sound/pci/hda/Kconfig | 1 + trunk/sound/pci/hda/hda_codec.c | 114 +- trunk/sound/pci/hda/hda_codec.h | 15 +- trunk/sound/pci/hda/hda_local.h | 2 +- trunk/sound/pci/hda/patch_analog.c | 4 +- trunk/sound/pci/hda/patch_cirrus.c | 743 +++++++++++++- trunk/sound/pci/hda/patch_conexant.c | 14 + trunk/sound/pci/hda/patch_realtek.c | 15 +- trunk/sound/pci/hda/patch_sigmatel.c | 122 ++- trunk/sound/pci/hda/patch_via.c | 4 +- trunk/sound/pci/lx6464es/lx6464es.h | 2 +- trunk/sound/soc/codecs/Kconfig | 3 +- trunk/sound/soc/codecs/sgtl5000.c | 70 +- trunk/sound/soc/codecs/twl4030.c | 22 +- trunk/sound/soc/codecs/twl6040.c | 733 ++++++------- trunk/sound/soc/codecs/twl6040.h | 119 +-- trunk/sound/soc/codecs/wm8962.c | 6 +- trunk/sound/soc/davinci/davinci-vcif.c | 9 +- trunk/sound/soc/omap/sdp3430.c | 2 +- trunk/sound/soc/omap/sdp4430.c | 52 +- trunk/sound/soc/omap/zoom2.c | 2 +- trunk/sound/soc/samsung/i2s.c | 7 + trunk/sound/soc/soc-core.c | 5 +- trunk/sound/soc/soc-dapm.c | 30 + trunk/sound/sparc/dbri.c | 2 +- trunk/tools/testing/ktest/ktest.pl | 970 +++++++++++++++--- trunk/tools/testing/ktest/sample.conf | 142 ++- 1307 files changed, 29221 insertions(+), 8393 deletions(-) create mode 100644 trunk/Documentation/devicetree/bindings/arm/sirf.txt create mode 100644 trunk/Documentation/devicetree/bindings/arm/xilinx.txt create mode 100644 trunk/Documentation/devicetree/bindings/gpio/gpio_keys.txt create mode 100644 trunk/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt create mode 100644 trunk/arch/arm/boot/dts/prima2-cb.dts create mode 100644 trunk/arch/arm/boot/dts/zynq-ep107.dts delete mode 100644 trunk/arch/arm/mach-at91/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-bcmring/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-cns3xxx/include/mach/hardware.h delete mode 100644 trunk/arch/arm/mach-davinci/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-ep93xx/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-exynos4/dev-dwmci.c create mode 100644 trunk/arch/arm/mach-exynos4/include/mach/dwmci.h create mode 100644 trunk/arch/arm/mach-exynos4/include/mach/pmu.h create mode 100644 trunk/arch/arm/mach-exynos4/include/mach/regs-audss.h delete mode 100644 trunk/arch/arm/mach-exynos4/localtimer.c create mode 100644 trunk/arch/arm/mach-exynos4/pmu.c create mode 100644 trunk/arch/arm/mach-exynos4/setup-fimd0.c delete mode 100644 trunk/arch/arm/mach-exynos4/time.c delete mode 100644 trunk/arch/arm/mach-lpc32xx/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-mmp/gplugd.c delete mode 100644 trunk/arch/arm/mach-mmp/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-mmp/include/mach/mfp-gplugd.h delete mode 100644 trunk/arch/arm/mach-msm/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-mx5/board-mx53_ard.c create mode 100644 trunk/arch/arm/mach-mx5/pm-imx5.c delete mode 100644 trunk/arch/arm/mach-mxs/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-nomadik/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-nuc93x/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-omap1/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-omap2/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-pnx4008/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-prima2/Makefile create mode 100644 trunk/arch/arm/mach-prima2/Makefile.boot create mode 100644 trunk/arch/arm/mach-prima2/clock.c create mode 100644 trunk/arch/arm/mach-prima2/common.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/debug-macro.S create mode 100644 trunk/arch/arm/mach-prima2/include/mach/entry-macro.S create mode 100644 trunk/arch/arm/mach-prima2/include/mach/hardware.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/io.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/irqs.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/map.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/memory.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/system.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/timex.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/uart.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/uncompress.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/vmalloc.h create mode 100644 trunk/arch/arm/mach-prima2/irq.c create mode 100644 trunk/arch/arm/mach-prima2/l2x0.c create mode 100644 trunk/arch/arm/mach-prima2/lluart.c create mode 100644 trunk/arch/arm/mach-prima2/prima2.c create mode 100644 trunk/arch/arm/mach-prima2/rstc.c create mode 100644 trunk/arch/arm/mach-prima2/timer.c delete mode 100644 trunk/arch/arm/mach-pxa/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-pxa/include/mach/pxa3xx.h delete mode 100644 trunk/arch/arm/mach-pxa/include/mach/regs-intc.h create mode 100644 trunk/arch/arm/mach-s3c64xx/mach-crag6410.c create mode 100644 trunk/arch/arm/mach-s5p64x0/irq-eint.c create mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/regs-audss.h delete mode 100644 trunk/arch/arm/mach-spear3xx/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-spear6xx/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-tegra/include/mach/barriers.h delete mode 100644 trunk/arch/arm/mach-ux500/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-w90x900/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-zynq/Makefile create mode 100644 trunk/arch/arm/mach-zynq/Makefile.boot create mode 100644 trunk/arch/arm/mach-zynq/board_dt.c create mode 100644 trunk/arch/arm/mach-zynq/common.c rename trunk/arch/arm/{mach-tegra/include/mach/hardware.h => mach-zynq/common.h} (58%) create mode 100644 trunk/arch/arm/mach-zynq/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/debug-macro.S create mode 100644 trunk/arch/arm/mach-zynq/include/mach/entry-macro.S create mode 100644 trunk/arch/arm/mach-zynq/include/mach/hardware.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/io.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/irqs.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/memory.h rename trunk/arch/arm/{mach-tegra/include/mach/clkdev.h => mach-zynq/include/mach/system.h} (61%) create mode 100644 trunk/arch/arm/mach-zynq/include/mach/timex.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/uart.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/uncompress.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/vmalloc.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/zynq_soc.h create mode 100644 trunk/arch/arm/mach-zynq/timer.c delete mode 100644 trunk/arch/arm/plat-mxc/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/plat-omap/include/plat/clkdev.h create mode 100644 trunk/arch/arm/plat-s5p/dev-fimd0.c create mode 100644 trunk/arch/arm/plat-s5p/dev-mfc.c create mode 100644 trunk/arch/arm/plat-s5p/include/plat/mfc.h delete mode 100644 trunk/arch/arm/plat-spear/include/plat/clkdev.h delete mode 100644 trunk/arch/arm/plat-tcc/include/mach/clkdev.h create mode 100644 trunk/arch/mips/include/asm/mach-bcm63xx/spaces.h create mode 100644 trunk/arch/mips/include/asm/mach-powertv/cpu-feature-overrides.h create mode 100644 trunk/arch/mips/include/asm/mach-tx39xx/spaces.h create mode 100644 trunk/arch/mips/include/asm/mach-tx49xx/spaces.h create mode 100644 trunk/arch/mips/netlogic/Platform create mode 100644 trunk/arch/x86/platform/olpc/olpc-xo1-pm.c create mode 100644 trunk/arch/x86/platform/olpc/olpc-xo1-rtc.c create mode 100644 trunk/arch/x86/platform/olpc/olpc-xo1-sci.c delete mode 100644 trunk/arch/x86/platform/olpc/olpc-xo1.c create mode 100644 trunk/arch/x86/platform/olpc/olpc-xo15-sci.c create mode 100644 trunk/arch/x86/platform/olpc/xo1-wakeup.S create mode 100644 trunk/drivers/gpu/drm/nouveau/nvc0_graph.fuc create mode 100644 trunk/drivers/gpu/drm/nouveau/nvc0_grgpc.fuc create mode 100644 trunk/drivers/gpu/drm/nouveau/nvc0_grgpc.fuc.h create mode 100644 trunk/drivers/gpu/drm/nouveau/nvc0_grhub.fuc create mode 100644 trunk/drivers/gpu/drm/nouveau/nvc0_grhub.fuc.h create mode 100644 trunk/drivers/input/misc/kxtj9.c create mode 100644 trunk/drivers/input/misc/mma8450.c create mode 100644 trunk/drivers/input/misc/mpu3050.c create mode 100644 trunk/drivers/input/misc/twl6040-vibra.c create mode 100644 trunk/drivers/mfd/twl4030-audio.c delete mode 100644 trunk/drivers/mfd/twl4030-codec.c create mode 100644 trunk/drivers/mfd/twl6040-core.c create mode 100644 trunk/drivers/mfd/twl6040-irq.c create mode 100644 trunk/include/asm-generic/bitops/ext2-atomic-setbit.h create mode 100644 trunk/include/asm-generic/pci-bridge.h create mode 100644 trunk/include/linux/input/kxtj9.h rename trunk/include/linux/mfd/{twl4030-codec.h => twl4030-audio.h} (96%) create mode 100644 trunk/include/linux/mfd/twl6040.h create mode 100644 trunk/include/trace/events/ext3.h create mode 100644 trunk/include/trace/events/jbd.h diff --git a/[refs] b/[refs] index 9d903df0d7ad..bbffde9768d1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 19237039919088781b4191a00bdc1284d8fea1dd +refs/heads/master: 333c066bb76f1f270ca77f16afe198e54e352c83 diff --git a/trunk/Documentation/DMA-API-HOWTO.txt b/trunk/Documentation/DMA-API-HOWTO.txt index d568bc235bc0..a0b6250add79 100644 --- a/trunk/Documentation/DMA-API-HOWTO.txt +++ b/trunk/Documentation/DMA-API-HOWTO.txt @@ -613,13 +613,13 @@ to use the dma_sync_*() interfaces. pass_to_upper_layers(cp->rx_buf); make_and_setup_new_rx_buf(cp); } else { - /* Just sync the buffer and give it back - * to the card. + /* CPU should not write to + * DMA_FROM_DEVICE-mapped area, + * so dma_sync_single_for_device() is + * not needed here. It would be required + * for DMA_BIDIRECTIONAL mapping if + * the memory was modified. */ - dma_sync_single_for_device(&cp->dev, - cp->rx_dma, - cp->rx_len, - DMA_FROM_DEVICE); give_rx_buf_to_card(cp); } } diff --git a/trunk/Documentation/cgroups/memory.txt b/trunk/Documentation/cgroups/memory.txt index 06eb6d957c83..6f3c598971fc 100644 --- a/trunk/Documentation/cgroups/memory.txt +++ b/trunk/Documentation/cgroups/memory.txt @@ -380,7 +380,7 @@ will be charged as a new owner of it. 5.2 stat file -memory.stat file includes following statistics +5.2.1 memory.stat file includes following statistics # per-memory cgroup local status cache - # of bytes of page cache memory. @@ -438,6 +438,89 @@ Note: file_mapped is accounted only when the memory cgroup is owner of page cache.) +5.2.2 memory.vmscan_stat + +memory.vmscan_stat includes statistics information for memory scanning and +freeing, reclaiming. The statistics shows memory scanning information since +memory cgroup creation and can be reset to 0 by writing 0 as + + #echo 0 > ../memory.vmscan_stat + +This file contains following statistics. + +[param]_[file_or_anon]_pages_by_[reason]_[under_heararchy] +[param]_elapsed_ns_by_[reason]_[under_hierarchy] + +For example, + + scanned_file_pages_by_limit indicates the number of scanned + file pages at vmscan. + +Now, 3 parameters are supported + + scanned - the number of pages scanned by vmscan + rotated - the number of pages activated at vmscan + freed - the number of pages freed by vmscan + +If "rotated" is high against scanned/freed, the memcg seems busy. + +Now, 2 reason are supported + + limit - the memory cgroup's limit + system - global memory pressure + softlimit + (global memory pressure not under softlimit is not handled now) + +When under_hierarchy is added in the tail, the number indicates the +total memcg scan of its children and itself. + +elapsed_ns is a elapsed time in nanosecond. This may include sleep time +and not indicates CPU usage. So, please take this as just showing +latency. + +Here is an example. + +# cat /cgroup/memory/A/memory.vmscan_stat +scanned_pages_by_limit 9471864 +scanned_anon_pages_by_limit 6640629 +scanned_file_pages_by_limit 2831235 +rotated_pages_by_limit 4243974 +rotated_anon_pages_by_limit 3971968 +rotated_file_pages_by_limit 272006 +freed_pages_by_limit 2318492 +freed_anon_pages_by_limit 962052 +freed_file_pages_by_limit 1356440 +elapsed_ns_by_limit 351386416101 +scanned_pages_by_system 0 +scanned_anon_pages_by_system 0 +scanned_file_pages_by_system 0 +rotated_pages_by_system 0 +rotated_anon_pages_by_system 0 +rotated_file_pages_by_system 0 +freed_pages_by_system 0 +freed_anon_pages_by_system 0 +freed_file_pages_by_system 0 +elapsed_ns_by_system 0 +scanned_pages_by_limit_under_hierarchy 9471864 +scanned_anon_pages_by_limit_under_hierarchy 6640629 +scanned_file_pages_by_limit_under_hierarchy 2831235 +rotated_pages_by_limit_under_hierarchy 4243974 +rotated_anon_pages_by_limit_under_hierarchy 3971968 +rotated_file_pages_by_limit_under_hierarchy 272006 +freed_pages_by_limit_under_hierarchy 2318492 +freed_anon_pages_by_limit_under_hierarchy 962052 +freed_file_pages_by_limit_under_hierarchy 1356440 +elapsed_ns_by_limit_under_hierarchy 351386416101 +scanned_pages_by_system_under_hierarchy 0 +scanned_anon_pages_by_system_under_hierarchy 0 +scanned_file_pages_by_system_under_hierarchy 0 +rotated_pages_by_system_under_hierarchy 0 +rotated_anon_pages_by_system_under_hierarchy 0 +rotated_file_pages_by_system_under_hierarchy 0 +freed_pages_by_system_under_hierarchy 0 +freed_anon_pages_by_system_under_hierarchy 0 +freed_file_pages_by_system_under_hierarchy 0 +elapsed_ns_by_system_under_hierarchy 0 + 5.3 swappiness Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only. diff --git a/trunk/Documentation/devicetree/bindings/arm/sirf.txt b/trunk/Documentation/devicetree/bindings/arm/sirf.txt new file mode 100644 index 000000000000..6b07f65b32de --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/arm/sirf.txt @@ -0,0 +1,3 @@ +prima2 "cb" evalutation board +Required root node properties: + - compatible = "sirf,prima2-cb", "sirf,prima2"; diff --git a/trunk/Documentation/devicetree/bindings/arm/xilinx.txt b/trunk/Documentation/devicetree/bindings/arm/xilinx.txt new file mode 100644 index 000000000000..6f1ed830b4f7 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/arm/xilinx.txt @@ -0,0 +1,7 @@ +Xilinx Zynq EP107 Emulation Platform board + +This board is an emulation platform for the Zynq product which is +based on an ARM Cortex A9 processor. + +Required root node properties: + - compatible = "xlnx,zynq-ep107"; diff --git a/trunk/Documentation/devicetree/bindings/gpio/gpio_keys.txt b/trunk/Documentation/devicetree/bindings/gpio/gpio_keys.txt new file mode 100644 index 000000000000..7190c99d7611 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/gpio/gpio_keys.txt @@ -0,0 +1,36 @@ +Device-Tree bindings for input/gpio_keys.c keyboard driver + +Required properties: + - compatible = "gpio-keys"; + +Optional properties: + - autorepeat: Boolean, Enable auto repeat feature of Linux input + subsystem. + +Each button (key) is represented as a sub-node of "gpio-keys": +Subnode properties: + + - gpios: OF devcie-tree gpio specificatin. + - label: Descriptive name of the key. + - linux,code: Keycode to emit. + +Optional subnode-properties: + - linux,input-type: Specify event type this button/key generates. + If not specified defaults to <1> == EV_KEY. + - debounce-interval: Debouncing interval time in milliseconds. + If not specified defaults to 5. + - gpio-key,wakeup: Boolean, button can wake-up the system. + +Example nodes: + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + autorepeat; + button@21 { + label = "GPIO Key UP"; + linux,code = <103>; + gpios = <&gpio1 0 1>; + }; + ... diff --git a/trunk/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt b/trunk/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt new file mode 100644 index 000000000000..a2891ceb6344 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/rtc/olpc-xo1-rtc.txt @@ -0,0 +1,5 @@ +OLPC XO-1 RTC +~~~~~~~~~~~~~ + +Required properties: + - compatible : "olpc,xo1-rtc" diff --git a/trunk/Documentation/fb/modedb.txt b/trunk/Documentation/fb/modedb.txt index ec4dee75a354..16aa08453911 100644 --- a/trunk/Documentation/fb/modedb.txt +++ b/trunk/Documentation/fb/modedb.txt @@ -20,7 +20,7 @@ in a video= option, fbmem considers that to be a global video mode option. Valid mode specifiers (mode_option argument): - x[M][R][-][@][i][m] + x[M][R][-][@][i][m][eDd] [-][@] with , , and decimal numbers and a string. @@ -36,6 +36,21 @@ pixels and 1.8% of yres). Sample usage: 1024x768M@60m - CVT timing with margins +DRM drivers also add options to enable or disable outputs: + +'e' will force the display to be enabled, i.e. it will override the detection +if a display is connected. 'D' will force the display to be enabled and use +digital output. This is useful for outputs that have both analog and digital +signals (e.g. HDMI and DVI-I). For other outputs it behaves like 'e'. If 'd' +is specified the output is disabled. + +You can additionally specify which output the options matches to. +To force the VGA output to be enabled and drive a specific mode say: + video=VGA-1:1280x1024@60me + +Specifying the option multiple times for different ports is possible, e.g.: + video=LVDS-1:d video=HDMI-1:D + ***** oOo ***** oOo ***** oOo ***** oOo ***** oOo ***** oOo ***** oOo ***** What is the VESA(TM) Coordinated Video Timings (CVT)? @@ -132,5 +147,5 @@ There may be more modes. tridentfb - Trident (Cyber)blade chipset frame buffer vt8623fb - VIA 8623 frame buffer -BTW, only a few drivers use this at the moment. Others are to follow -(feel free to send patches). +BTW, only a few fb drivers use this at the moment. Others are to follow +(feel free to send patches). The DRM drivers also support this. diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index f10014fa1d14..dfd6a9f4a583 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -460,13 +460,6 @@ Who: FUJITA Tomonori ---------------------------- -What: DMA_xxBIT_MASK macros -When: Jun 2011 -Why: DMA_xxBIT_MASK macros were replaced with DMA_BIT_MASK() macros. -Who: FUJITA Tomonori - ----------------------------- - What: iwlwifi disable_hw_scan module parameters When: 3.0 Why: Hareware scan is the prefer method for iwlwifi devices for diff --git a/trunk/Documentation/filesystems/ext3.txt b/trunk/Documentation/filesystems/ext3.txt index 272f80d5f966..22f3a0eda1d2 100644 --- a/trunk/Documentation/filesystems/ext3.txt +++ b/trunk/Documentation/filesystems/ext3.txt @@ -147,15 +147,6 @@ grpjquota= during journal replay. They replace the above package for more details (http://sourceforge.net/projects/linuxquota). -bh (*) ext3 associates buffer heads to data pages to -nobh (a) cache disk block mapping information - (b) link pages into transaction to provide - ordering guarantees. - "bh" option forces use of buffer heads. - "nobh" option tries to avoid associating buffer - heads (supported only for "writeback" mode). - - Specification ============= Ext3 shares all disk implementation with the ext2 filesystem, and adds @@ -227,5 +218,5 @@ kernel source: programs: http://e2fsprogs.sourceforge.net/ http://ext2resize.sourceforge.net -useful links: http://www.ibm.com/developerworks/library/l-fs7.html - http://www.ibm.com/developerworks/library/l-fs8.html +useful links: http://www.ibm.com/developerworks/library/l-fs7/index.html + http://www.ibm.com/developerworks/library/l-fs8/index.html diff --git a/trunk/Documentation/filesystems/ext4.txt b/trunk/Documentation/filesystems/ext4.txt index 3ae9bc94352a..232a575a0c48 100644 --- a/trunk/Documentation/filesystems/ext4.txt +++ b/trunk/Documentation/filesystems/ext4.txt @@ -68,12 +68,12 @@ Note: More extensive information for getting started with ext4 can be '-o barriers=[0|1]' mount option for both ext3 and ext4 filesystems for a fair comparison. When tuning ext3 for best benchmark numbers, it is often worthwhile to try changing the data journaling mode; '-o - data=writeback,nobh' can be faster for some workloads. (Note - however that running mounted with data=writeback can potentially - leave stale data exposed in recently written files in case of an - unclean shutdown, which could be a security exposure in some - situations.) Configuring the filesystem with a large journal can - also be helpful for metadata-intensive workloads. + data=writeback' can be faster for some workloads. (Note however that + running mounted with data=writeback can potentially leave stale data + exposed in recently written files in case of an unclean shutdown, + which could be a security exposure in some situations.) Configuring + the filesystem with a large journal can also be helpful for + metadata-intensive workloads. 2. Features =========== @@ -272,14 +272,6 @@ grpjquota= during journal replay. They replace the above package for more details (http://sourceforge.net/projects/linuxquota). -bh (*) ext4 associates buffer heads to data pages to -nobh (a) cache disk block mapping information - (b) link pages into transaction to provide - ordering guarantees. - "bh" option forces use of buffer heads. - "nobh" option tries to avoid associating buffer - heads (supported only for "writeback" mode). - stripe=n Number of filesystem blocks that mballoc will try to use for allocation size and alignment. For RAID5/6 systems this should be the number of data @@ -393,8 +385,7 @@ dioread_nolock locking. If the dioread_nolock option is specified write and convert the extent to initialized after IO completes. This approach allows ext4 code to avoid using inode mutex, which improves scalability on high - speed storages. However this does not work with nobh - option and the mount will fail. Nor does it work with + speed storages. However this does not work with data journaling and dioread_nolock option will be ignored with kernel warning. Note that dioread_nolock code path is only used for extent-based files. diff --git a/trunk/Documentation/filesystems/nfs/Exporting b/trunk/Documentation/filesystems/nfs/Exporting index 87019d2b5981..09994c247289 100644 --- a/trunk/Documentation/filesystems/nfs/Exporting +++ b/trunk/Documentation/filesystems/nfs/Exporting @@ -92,7 +92,14 @@ For a filesystem to be exportable it must: 1/ provide the filehandle fragment routines described below. 2/ make sure that d_splice_alias is used rather than d_add when ->lookup finds an inode for a given parent and name. - Typically the ->lookup routine will end with a: + + If inode is NULL, d_splice_alias(inode, dentry) is eqivalent to + + d_add(dentry, inode), NULL + + Similarly, d_splice_alias(ERR_PTR(err), dentry) = ERR_PTR(err) + + Typically the ->lookup routine will simply end with a: return d_splice_alias(inode, dentry); } diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index a70e43edcb65..4ca93898fbd3 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -1846,7 +1846,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted. See Documentation/sound/oss/oss-parameters.txt panic= [KNL] Kernel behaviour on panic: delay - seconds before rebooting + timeout > 0: seconds before rebooting + timeout = 0: wait forever + timeout < 0: reboot immediately Format: parkbd.port= [HW] Parallel port number the keyboard adapter is diff --git a/trunk/Documentation/sysctl/kernel.txt b/trunk/Documentation/sysctl/kernel.txt index 1c7fb0a94e28..704e474a93df 100644 --- a/trunk/Documentation/sysctl/kernel.txt +++ b/trunk/Documentation/sysctl/kernel.txt @@ -61,6 +61,7 @@ show up in /proc/sys/kernel: - rtsig-nr - sem - sg-big-buff [ generic SCSI device (sg) ] +- shm_rmid_forced - shmall - shmmax [ sysv ipc ] - shmmni @@ -518,6 +519,27 @@ kernel. This value defaults to SHMMAX. ============================================================== +shm_rmid_forced: + +Linux lets you set resource limits, including how much memory one +process can consume, via setrlimit(2). Unfortunately, shared memory +segments are allowed to exist without association with any process, and +thus might not be counted against any resource limits. If enabled, +shared memory segments are automatically destroyed when their attach +count becomes zero after a detach or a process termination. It will +also destroy segments that were created, but never attached to, on exit +from the process. The only use left for IPC_RMID is to immediately +destroy an unattached segment. Of course, this breaks the way things are +defined, so some applications might stop working. Note that this +feature will do you no good unless you also configure your resource +limits (in particular, RLIMIT_AS and RLIMIT_NPROC). Most systems don't +need this. + +Note that if you change this from 0 to 1, already created segments +without users and with a dead originative process will be destroyed. + +============================================================== + softlockup_thresh: This value can be used to lower the softlockup tolerance threshold. The diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 128829424747..7b2e9e85e427 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -734,6 +734,12 @@ T: git git://git.berlios.de/gemini-board S: Maintained F: arch/arm/mach-gemini/ +ARM/CSR SIRFPRIMA2 MACHINE SUPPORT +M: Barry Song +L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) +S: Maintained +F: arch/arm/mach-prima2/ + ARM/EBSA110 MACHINE SUPPORT M: Russell King L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) @@ -4217,9 +4223,10 @@ F: drivers/usb/image/microtek.* MIPS M: Ralf Baechle -W: http://www.linux-mips.org/ L: linux-mips@linux-mips.org +W: http://www.linux-mips.org/ T: git git://git.linux-mips.org/pub/scm/linux.git +Q: http://patchwork.linux-mips.org/project/linux-mips/list/ S: Supported F: Documentation/mips/ F: arch/mips/ diff --git a/trunk/arch/alpha/include/asm/atomic.h b/trunk/arch/alpha/include/asm/atomic.h index e756d04b6cd5..640f909ddd41 100644 --- a/trunk/arch/alpha/include/asm/atomic.h +++ b/trunk/arch/alpha/include/asm/atomic.h @@ -176,15 +176,15 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v) #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) /** - * atomic_add_unless - add unless the number is a given value + * __atomic_add_unless - add unless the number is a given value * @v: pointer of type atomic_t * @a: the amount to add to v... * @u: ...unless v is equal to u. * * Atomically adds @a to @v, so long as it was not @u. - * Returns non-zero if @v was not @u, and zero otherwise. + * Returns the old value of @v. */ -static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) +static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) { int c, old; c = atomic_read(v); @@ -196,10 +196,9 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) break; c = old; } - return c != (u); + return c; } -#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) /** * atomic64_add_unless - add unless the number is a given value @@ -208,7 +207,7 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) * @u: ...unless v is equal to u. * * Atomically adds @a to @v, so long as it was not @u. - * Returns non-zero if @v was not @u, and zero otherwise. + * Returns the old value of @v. */ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) { @@ -256,5 +255,4 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) #define smp_mb__before_atomic_inc() smp_mb() #define smp_mb__after_atomic_inc() smp_mb() -#include #endif /* _ALPHA_ATOMIC_H */ diff --git a/trunk/arch/alpha/include/asm/bitops.h b/trunk/arch/alpha/include/asm/bitops.h index 85b815215776..a19ba5efea4c 100644 --- a/trunk/arch/alpha/include/asm/bitops.h +++ b/trunk/arch/alpha/include/asm/bitops.h @@ -456,8 +456,7 @@ sched_find_first_bit(const unsigned long b[2]) #include -#define ext2_set_bit_atomic(l,n,a) test_and_set_bit(n,a) -#define ext2_clear_bit_atomic(l,n,a) test_and_clear_bit(n,a) +#include #endif /* __KERNEL__ */ diff --git a/trunk/arch/alpha/include/asm/local.h b/trunk/arch/alpha/include/asm/local.h index b9e3e3318371..9c94b8456043 100644 --- a/trunk/arch/alpha/include/asm/local.h +++ b/trunk/arch/alpha/include/asm/local.h @@ -2,7 +2,7 @@ #define _ALPHA_LOCAL_H #include -#include +#include typedef struct { diff --git a/trunk/arch/alpha/include/asm/ptrace.h b/trunk/arch/alpha/include/asm/ptrace.h index 65cf3e28e2f4..fd698a174f26 100644 --- a/trunk/arch/alpha/include/asm/ptrace.h +++ b/trunk/arch/alpha/include/asm/ptrace.h @@ -72,7 +72,6 @@ struct switch_stack { #define user_mode(regs) (((regs)->ps & 8) != 0) #define instruction_pointer(regs) ((regs)->pc) #define profile_pc(regs) instruction_pointer(regs) -extern void show_regs(struct pt_regs *); #define task_pt_regs(task) \ ((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1) diff --git a/trunk/arch/alpha/kernel/perf_event.c b/trunk/arch/alpha/kernel/perf_event.c index 8e47709160f8..8143cd7cdbfb 100644 --- a/trunk/arch/alpha/kernel/perf_event.c +++ b/trunk/arch/alpha/kernel/perf_event.c @@ -17,7 +17,7 @@ #include #include -#include +#include #include #include #include diff --git a/trunk/arch/alpha/kernel/smp.c b/trunk/arch/alpha/kernel/smp.c index d739703608fc..4087a569b43b 100644 --- a/trunk/arch/alpha/kernel/smp.c +++ b/trunk/arch/alpha/kernel/smp.c @@ -31,7 +31,7 @@ #include #include -#include +#include #include #include diff --git a/trunk/arch/alpha/lib/dec_and_lock.c b/trunk/arch/alpha/lib/dec_and_lock.c index 0f5520d2f45f..f9f5fe830e9f 100644 --- a/trunk/arch/alpha/lib/dec_and_lock.c +++ b/trunk/arch/alpha/lib/dec_and_lock.c @@ -6,7 +6,7 @@ */ #include -#include +#include asm (".text \n\ .global _atomic_dec_and_lock \n\ diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 9cb1f4bd7618..09ebf0ba64fa 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -242,6 +242,7 @@ config ARCH_INTEGRATOR select ARM_AMBA select ARCH_HAS_CPUFREQ select CLKDEV_LOOKUP + select HAVE_MACH_CLKDEV select ICST select GENERIC_CLOCKEVENTS select PLAT_VERSATILE @@ -253,6 +254,7 @@ config ARCH_REALVIEW bool "ARM Ltd. RealView family" select ARM_AMBA select CLKDEV_LOOKUP + select HAVE_MACH_CLKDEV select ICST select GENERIC_CLOCKEVENTS select ARCH_WANT_OPTIONAL_GPIOLIB @@ -268,6 +270,7 @@ config ARCH_VERSATILE select ARM_AMBA select ARM_VIC select CLKDEV_LOOKUP + select HAVE_MACH_CLKDEV select ICST select GENERIC_CLOCKEVENTS select ARCH_WANT_OPTIONAL_GPIOLIB @@ -284,6 +287,7 @@ config ARCH_VEXPRESS select ARM_AMBA select ARM_TIMER_SP804 select CLKDEV_LOOKUP + select HAVE_MACH_CLKDEV select GENERIC_CLOCKEVENTS select HAVE_CLK select HAVE_PATA_PLATFORM @@ -324,7 +328,7 @@ config ARCH_CLPS711X config ARCH_CNS3XXX bool "Cavium Networks CNS3XXX family" - select CPU_V6 + select CPU_V6K select GENERIC_CLOCKEVENTS select ARM_GIC select MIGHT_HAVE_PCI @@ -340,6 +344,19 @@ config ARCH_GEMINI help Support for the Cortina Systems Gemini family SoCs +config ARCH_PRIMA2 + bool "CSR SiRFSoC PRIMA2 ARM Cortex A9 Platform" + select CPU_V7 + select GENERIC_TIME + select NO_IOPORT + select GENERIC_CLOCKEVENTS + select CLKDEV_LOOKUP + select GENERIC_IRQ_CHIP + select USE_OF + select ZONE_DMA + help + Support for CSR SiRFSoC ARM Cortex A9 Platform + config ARCH_EBSA110 bool "EBSA-110" select CPU_SA110 @@ -379,6 +396,7 @@ config ARCH_MXC select ARCH_REQUIRE_GPIOLIB select CLKDEV_LOOKUP select CLKSRC_MMIO + select GENERIC_IRQ_CHIP select HAVE_SCHED_CLOCK help Support for Freescale MXC/iMX-based family of processors @@ -586,7 +604,6 @@ config ARCH_TEGRA select GENERIC_GPIO select HAVE_CLK select HAVE_SCHED_CLOCK - select ARCH_HAS_BARRIERS if CACHE_L2X0 select ARCH_HAS_CPUFREQ help This enables support for NVIDIA Tegra based systems (Tegra APX, @@ -613,6 +630,8 @@ config ARCH_PXA select TICK_ONESHOT select PLAT_PXA select SPARSE_IRQ + select AUTO_ZRELADDR + select MULTI_IRQ_HANDLER help Support for Intel/Marvell's PXA2xx/PXA3xx processor line. @@ -633,6 +652,7 @@ config ARCH_SHMOBILE bool "Renesas SH-Mobile / R-Mobile" select HAVE_CLK select CLKDEV_LOOKUP + select HAVE_MACH_CLKDEV select GENERIC_CLOCKEVENTS select NO_IOPORT select SPARSE_IRQ @@ -750,6 +770,7 @@ config ARCH_S5PV210 bool "Samsung S5PV210/S5PC110" select CPU_V7 select ARCH_SPARSEMEM_ENABLE + select ARCH_HAS_HOLES_MEMORYMODEL select GENERIC_GPIO select HAVE_CLK select CLKDEV_LOOKUP @@ -768,6 +789,7 @@ config ARCH_EXYNOS4 bool "Samsung EXYNOS4" select CPU_V7 select ARCH_SPARSEMEM_ENABLE + select ARCH_HAS_HOLES_MEMORYMODEL select GENERIC_GPIO select HAVE_CLK select CLKDEV_LOOKUP @@ -812,6 +834,7 @@ config ARCH_U300 select ARM_VIC select GENERIC_CLOCKEVENTS select CLKDEV_LOOKUP + select HAVE_MACH_CLKDEV select GENERIC_GPIO help Support for ST-Ericsson U300 series mobile platforms. @@ -884,6 +907,19 @@ config ARCH_VT8500 select HAVE_PWM help Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip. + +config ARCH_ZYNQ + bool "Xilinx Zynq ARM Cortex A9 Platform" + select CPU_V7 + select GENERIC_TIME + select GENERIC_CLOCKEVENTS + select CLKDEV_LOOKUP + select ARM_GIC + select ARM_AMBA + select ICST + select USE_OF + help + Support for Xilinx Zynq ARM Cortex A9 Platform endchoice # diff --git a/trunk/arch/arm/Makefile b/trunk/arch/arm/Makefile index 206c34ecb9e3..3a4a04b33d0f 100644 --- a/trunk/arch/arm/Makefile +++ b/trunk/arch/arm/Makefile @@ -168,6 +168,7 @@ machine-$(CONFIG_ARCH_OMAP3) := omap2 machine-$(CONFIG_ARCH_OMAP4) := omap2 machine-$(CONFIG_ARCH_ORION5X) := orion5x machine-$(CONFIG_ARCH_PNX4008) := pnx4008 +machine-$(CONFIG_ARCH_PRIMA2) := prima2 machine-$(CONFIG_ARCH_PXA) := pxa machine-$(CONFIG_ARCH_REALVIEW) := realview machine-$(CONFIG_ARCH_RPC) := rpc @@ -194,6 +195,7 @@ machine-$(CONFIG_MACH_SPEAR300) := spear3xx machine-$(CONFIG_MACH_SPEAR310) := spear3xx machine-$(CONFIG_MACH_SPEAR320) := spear3xx machine-$(CONFIG_MACH_SPEAR600) := spear6xx +machine-$(CONFIG_ARCH_ZYNQ) := zynq # Platform directory name. This list is sorted alphanumerically # by CONFIG_* macro name. @@ -201,6 +203,7 @@ plat-$(CONFIG_ARCH_MXC) := mxc plat-$(CONFIG_ARCH_OMAP) := omap plat-$(CONFIG_ARCH_S3C64XX) := samsung plat-$(CONFIG_ARCH_TCC_926) := tcc +plat-$(CONFIG_ARCH_ZYNQ) := versatile plat-$(CONFIG_PLAT_IOP) := iop plat-$(CONFIG_PLAT_NOMADIK) := nomadik plat-$(CONFIG_PLAT_ORION) := orion diff --git a/trunk/arch/arm/boot/dts/prima2-cb.dts b/trunk/arch/arm/boot/dts/prima2-cb.dts new file mode 100644 index 000000000000..6fecc88065b2 --- /dev/null +++ b/trunk/arch/arm/boot/dts/prima2-cb.dts @@ -0,0 +1,416 @@ +/dts-v1/; +/ { + model = "SiRF Prima2 eVB"; + compatible = "sirf,prima2-cb", "sirf,prima2"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&intc>; + + memory { + reg = <0x00000000 0x20000000>; + }; + + chosen { + bootargs = "mem=512M real_root=/dev/mmcblk0p2 console=ttyS0 panel=1 bootsplash=true bpp=16 androidboot.console=ttyS1"; + linux,stdout-path = &uart1; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + reg = <0x0>; + d-cache-line-size = <32>; + i-cache-line-size = <32>; + d-cache-size = <32768>; + i-cache-size = <32768>; + /* from bootloader */ + timebase-frequency = <0>; + bus-frequency = <0>; + clock-frequency = <0>; + }; + }; + + axi { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x40000000 0x40000000 0x80000000>; + + l2-cache-controller@80040000 { + compatible = "arm,pl310-cache"; + reg = <0x80040000 0x1000>; + interrupts = <59>; + }; + + intc: interrupt-controller@80020000 { + #interrupt-cells = <1>; + interrupt-controller; + compatible = "sirf,prima2-intc"; + reg = <0x80020000 0x1000>; + }; + + sys-iobg { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x88000000 0x88000000 0x40000>; + + clock-controller@88000000 { + compatible = "sirf,prima2-clkc"; + reg = <0x88000000 0x1000>; + interrupts = <3>; + }; + + reset-controller@88010000 { + compatible = "sirf,prima2-rstc"; + reg = <0x88010000 0x1000>; + }; + }; + + mem-iobg { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x90000000 0x90000000 0x10000>; + + memory-controller@90000000 { + compatible = "sirf,prima2-memc"; + reg = <0x90000000 0x10000>; + interrupts = <27>; + }; + }; + + disp-iobg { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x90010000 0x90010000 0x30000>; + + display@90010000 { + compatible = "sirf,prima2-lcd"; + reg = <0x90010000 0x20000>; + interrupts = <30>; + }; + + vpp@90020000 { + compatible = "sirf,prima2-vpp"; + reg = <0x90020000 0x10000>; + interrupts = <31>; + }; + }; + + graphics-iobg { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x98000000 0x98000000 0x8000000>; + + graphics@98000000 { + compatible = "powervr,sgx531"; + reg = <0x98000000 0x8000000>; + interrupts = <6>; + }; + }; + + multimedia-iobg { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0xa0000000 0xa0000000 0x8000000>; + + multimedia@a0000000 { + compatible = "sirf,prima2-video-codec"; + reg = <0xa0000000 0x8000000>; + interrupts = <5>; + }; + }; + + dsp-iobg { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0xa8000000 0xa8000000 0x2000000>; + + dspif@a8000000 { + compatible = "sirf,prima2-dspif"; + reg = <0xa8000000 0x10000>; + interrupts = <9>; + }; + + gps@a8010000 { + compatible = "sirf,prima2-gps"; + reg = <0xa8010000 0x10000>; + interrupts = <7>; + }; + + dsp@a9000000 { + compatible = "sirf,prima2-dsp"; + reg = <0xa9000000 0x1000000>; + interrupts = <8>; + }; + }; + + peri-iobg { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0xb0000000 0xb0000000 0x180000>; + + timer@b0020000 { + compatible = "sirf,prima2-tick"; + reg = <0xb0020000 0x1000>; + interrupts = <0>; + }; + + nand@b0030000 { + compatible = "sirf,prima2-nand"; + reg = <0xb0030000 0x10000>; + interrupts = <41>; + }; + + audio@b0040000 { + compatible = "sirf,prima2-audio"; + reg = <0xb0040000 0x10000>; + interrupts = <35>; + }; + + uart0: uart@b0050000 { + cell-index = <0>; + compatible = "sirf,prima2-uart"; + reg = <0xb0050000 0x10000>; + interrupts = <17>; + }; + + uart1: uart@b0060000 { + cell-index = <1>; + compatible = "sirf,prima2-uart"; + reg = <0xb0060000 0x10000>; + interrupts = <18>; + }; + + uart2: uart@b0070000 { + cell-index = <2>; + compatible = "sirf,prima2-uart"; + reg = <0xb0070000 0x10000>; + interrupts = <19>; + }; + + usp0: usp@b0080000 { + cell-index = <0>; + compatible = "sirf,prima2-usp"; + reg = <0xb0080000 0x10000>; + interrupts = <20>; + }; + + usp1: usp@b0090000 { + cell-index = <1>; + compatible = "sirf,prima2-usp"; + reg = <0xb0090000 0x10000>; + interrupts = <21>; + }; + + usp2: usp@b00a0000 { + cell-index = <2>; + compatible = "sirf,prima2-usp"; + reg = <0xb00a0000 0x10000>; + interrupts = <22>; + }; + + dmac0: dma-controller@b00b0000 { + cell-index = <0>; + compatible = "sirf,prima2-dmac"; + reg = <0xb00b0000 0x10000>; + interrupts = <12>; + }; + + dmac1: dma-controller@b0160000 { + cell-index = <1>; + compatible = "sirf,prima2-dmac"; + reg = <0xb0160000 0x10000>; + interrupts = <13>; + }; + + vip@b00C0000 { + compatible = "sirf,prima2-vip"; + reg = <0xb00C0000 0x10000>; + }; + + spi0: spi@b00d0000 { + cell-index = <0>; + compatible = "sirf,prima2-spi"; + reg = <0xb00d0000 0x10000>; + interrupts = <15>; + }; + + spi1: spi@b0170000 { + cell-index = <1>; + compatible = "sirf,prima2-spi"; + reg = <0xb0170000 0x10000>; + interrupts = <16>; + }; + + i2c0: i2c@b00e0000 { + cell-index = <0>; + compatible = "sirf,prima2-i2c"; + reg = <0xb00e0000 0x10000>; + interrupts = <24>; + }; + + i2c1: i2c@b00f0000 { + cell-index = <1>; + compatible = "sirf,prima2-i2c"; + reg = <0xb00f0000 0x10000>; + interrupts = <25>; + }; + + tsc@b0110000 { + compatible = "sirf,prima2-tsc"; + reg = <0xb0110000 0x10000>; + interrupts = <33>; + }; + + gpio: gpio-controller@b0120000 { + #gpio-cells = <2>; + #interrupt-cells = <2>; + compatible = "sirf,prima2-gpio"; + reg = <0xb0120000 0x10000>; + gpio-controller; + interrupt-controller; + }; + + pwm@b0130000 { + compatible = "sirf,prima2-pwm"; + reg = <0xb0130000 0x10000>; + }; + + efusesys@b0140000 { + compatible = "sirf,prima2-efuse"; + reg = <0xb0140000 0x10000>; + }; + + pulsec@b0150000 { + compatible = "sirf,prima2-pulsec"; + reg = <0xb0150000 0x10000>; + interrupts = <48>; + }; + + pci-iobg { + compatible = "sirf,prima2-pciiobg", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x56000000 0x56000000 0x1b00000>; + + sd0: sdhci@56000000 { + cell-index = <0>; + compatible = "sirf,prima2-sdhc"; + reg = <0x56000000 0x100000>; + interrupts = <38>; + }; + + sd1: sdhci@56100000 { + cell-index = <1>; + compatible = "sirf,prima2-sdhc"; + reg = <0x56100000 0x100000>; + interrupts = <38>; + }; + + sd2: sdhci@56200000 { + cell-index = <2>; + compatible = "sirf,prima2-sdhc"; + reg = <0x56200000 0x100000>; + interrupts = <23>; + }; + + sd3: sdhci@56300000 { + cell-index = <3>; + compatible = "sirf,prima2-sdhc"; + reg = <0x56300000 0x100000>; + interrupts = <23>; + }; + + sd4: sdhci@56400000 { + cell-index = <4>; + compatible = "sirf,prima2-sdhc"; + reg = <0x56400000 0x100000>; + interrupts = <39>; + }; + + sd5: sdhci@56500000 { + cell-index = <5>; + compatible = "sirf,prima2-sdhc"; + reg = <0x56500000 0x100000>; + interrupts = <39>; + }; + + pci-copy@57900000 { + compatible = "sirf,prima2-pcicp"; + reg = <0x57900000 0x100000>; + interrupts = <40>; + }; + + rom-interface@57a00000 { + compatible = "sirf,prima2-romif"; + reg = <0x57a00000 0x100000>; + }; + }; + }; + + rtc-iobg { + compatible = "sirf,prima2-rtciobg", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x80030000 0x10000>; + + gpsrtc@1000 { + compatible = "sirf,prima2-gpsrtc"; + reg = <0x1000 0x1000>; + interrupts = <55 56 57>; + }; + + sysrtc@2000 { + compatible = "sirf,prima2-sysrtc"; + reg = <0x2000 0x1000>; + interrupts = <52 53 54>; + }; + + pwrc@3000 { + compatible = "sirf,prima2-pwrc"; + reg = <0x3000 0x1000>; + interrupts = <32>; + }; + }; + + uus-iobg { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0xb8000000 0xb8000000 0x40000>; + + usb0: usb@b00e0000 { + compatible = "chipidea,ci13611a-prima2"; + reg = <0xb8000000 0x10000>; + interrupts = <10>; + }; + + usb1: usb@b00f0000 { + compatible = "chipidea,ci13611a-prima2"; + reg = <0xb8010000 0x10000>; + interrupts = <11>; + }; + + sata@b00f0000 { + compatible = "synopsys,dwc-ahsata"; + reg = <0xb8020000 0x10000>; + interrupts = <37>; + }; + + security@b00f0000 { + compatible = "sirf,prima2-security"; + reg = <0xb8030000 0x10000>; + interrupts = <42>; + }; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/zynq-ep107.dts b/trunk/arch/arm/boot/dts/zynq-ep107.dts new file mode 100644 index 000000000000..37ca192fb193 --- /dev/null +++ b/trunk/arch/arm/boot/dts/zynq-ep107.dts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2011 Xilinx + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; +/ { + model = "Xilinx Zynq EP107"; + compatible = "xlnx,zynq-ep107"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&intc>; + + memory { + device_type = "memory"; + reg = <0x0 0x10000000>; + }; + + chosen { + bootargs = "console=ttyPS0,9600 root=/dev/ram rw initrd=0x800000,8M earlyprintk"; + linux,stdout-path = &uart0; + }; + + amba { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + intc: interrupt-controller@f8f01000 { + interrupt-controller; + compatible = "arm,gic"; + reg = <0xF8F01000 0x1000>; + #interrupt-cells = <2>; + }; + + uart0: uart@e0000000 { + compatible = "xlnx,xuartps"; + reg = <0xE0000000 0x1000>; + interrupts = <59 0>; + clock = <50000000>; + }; + }; +}; diff --git a/trunk/arch/arm/common/gic.c b/trunk/arch/arm/common/gic.c index 7bdd91766d65..3227ca952a12 100644 --- a/trunk/arch/arm/common/gic.c +++ b/trunk/arch/arm/common/gic.c @@ -38,12 +38,6 @@ static DEFINE_SPINLOCK(irq_controller_lock); /* Address of GIC 0 CPU interface */ void __iomem *gic_cpu_base_addr __read_mostly; -struct gic_chip_data { - unsigned int irq_offset; - void __iomem *dist_base; - void __iomem *cpu_base; -}; - /* * Supported arch specific GIC irq extension. * Default make them NULL. diff --git a/trunk/arch/arm/configs/mxs_defconfig b/trunk/arch/arm/configs/mxs_defconfig index 5a6ff7c605df..db2cb7d180dc 100644 --- a/trunk/arch/arm/configs/mxs_defconfig +++ b/trunk/arch/arm/configs/mxs_defconfig @@ -22,6 +22,8 @@ CONFIG_BLK_DEV_INTEGRITY=y # CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_CFQ is not set CONFIG_ARCH_MXS=y +CONFIG_MACH_MX23EVK=y +CONFIG_MACH_MX28EVK=y CONFIG_MACH_STMP378X_DEVB=y CONFIG_MACH_TX28=y # CONFIG_ARM_THUMB is not set diff --git a/trunk/arch/arm/configs/u8500_defconfig b/trunk/arch/arm/configs/u8500_defconfig index a5cce242a775..97d31a4663da 100644 --- a/trunk/arch/arm/configs/u8500_defconfig +++ b/trunk/arch/arm/configs/u8500_defconfig @@ -11,12 +11,12 @@ CONFIG_ARCH_U8500=y CONFIG_UX500_SOC_DB5500=y CONFIG_UX500_SOC_DB8500=y CONFIG_MACH_U8500=y +CONFIG_MACH_SNOWBALL=y CONFIG_MACH_U5500=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_SMP=y CONFIG_NR_CPUS=2 -CONFIG_HOTPLUG_CPU=y CONFIG_PREEMPT=y CONFIG_AEABI=y CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8" @@ -25,8 +25,13 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y CONFIG_VFP=y CONFIG_NEON=y CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_NETFILTER=y CONFIG_PHONET=y -CONFIG_PHONET_PIPECTRLR=y # CONFIG_WIRELESS is not set CONFIG_CAIF=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" @@ -35,6 +40,13 @@ CONFIG_BLK_DEV_RAM_SIZE=65536 CONFIG_MISC_DEVICES=y CONFIG_AB8500_PWM=y CONFIG_SENSORS_BH1780=y +CONFIG_NETDEVICES=y +CONFIG_SMSC_PHY=y +CONFIG_NET_ETHERNET=y +CONFIG_SMSC911X=y +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_WLAN is not set # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_EVDEV=y # CONFIG_KEYBOARD_ATKBD is not set @@ -49,9 +61,9 @@ CONFIG_INPUT_MISC=y CONFIG_INPUT_AB8500_PONKEY=y # CONFIG_SERIO is not set CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_LEGACY_PTYS is not set CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -# CONFIG_LEGACY_PTYS is not set CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_NOMADIK=y CONFIG_I2C=y @@ -64,14 +76,19 @@ CONFIG_GPIO_TC3589X=y CONFIG_MFD_STMPE=y CONFIG_MFD_TC3589X=y CONFIG_AB8500_CORE=y -CONFIG_REGULATOR=y CONFIG_REGULATOR_AB8500=y # CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_GADGET_MUSB_HDRC=y +CONFIG_MUSB_PIO_ONLY=y +CONFIG_USB_GADGET=y +CONFIG_AB8500_USB=y CONFIG_MMC=y +CONFIG_MMC_CLKGATE=y CONFIG_MMC_ARMMMCI=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y +CONFIG_LEDS_LM3530=y CONFIG_LEDS_LP5521=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_AB8500=y @@ -79,7 +96,6 @@ CONFIG_RTC_DRV_PL031=y CONFIG_DMADEVICES=y CONFIG_STE_DMA40=y CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y @@ -91,6 +107,8 @@ CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_CONFIGFS_FS=m # CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NFS_FS=y +CONFIG_ROOT_NFS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_MAGIC_SYSRQ=y @@ -99,7 +117,5 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_PREEMPT is not set CONFIG_DEBUG_INFO=y -# CONFIG_RCU_CPU_STALL_DETECTOR is not set # CONFIG_FTRACE is not set CONFIG_DEBUG_USER=y -CONFIG_DEBUG_ERRORS=y diff --git a/trunk/arch/arm/include/asm/atomic.h b/trunk/arch/arm/include/asm/atomic.h index 7e79503ab89b..86976d034382 100644 --- a/trunk/arch/arm/include/asm/atomic.h +++ b/trunk/arch/arm/include/asm/atomic.h @@ -208,16 +208,15 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr) #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) -static inline int atomic_add_unless(atomic_t *v, int a, int u) +static inline int __atomic_add_unless(atomic_t *v, int a, int u) { int c, old; c = atomic_read(v); while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c) c = old; - return c != u; + return c; } -#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) #define atomic_inc(v) atomic_add(1, v) #define atomic_dec(v) atomic_sub(1, v) @@ -460,9 +459,6 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u) #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0) #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL) -#else /* !CONFIG_GENERIC_ATOMIC64 */ -#include -#endif -#include +#endif /* !CONFIG_GENERIC_ATOMIC64 */ #endif #endif diff --git a/trunk/arch/arm/include/asm/bitops.h b/trunk/arch/arm/include/asm/bitops.h index f4280593dfa3..f7419ef9c8f9 100644 --- a/trunk/arch/arm/include/asm/bitops.h +++ b/trunk/arch/arm/include/asm/bitops.h @@ -310,10 +310,7 @@ static inline int find_next_bit_le(const void *p, int size, int offset) /* * Ext2 is defined to use little-endian byte ordering. */ -#define ext2_set_bit_atomic(lock, nr, p) \ - test_and_set_bit_le(nr, p) -#define ext2_clear_bit_atomic(lock, nr, p) \ - test_and_clear_bit_le(nr, p) +#include #endif /* __KERNEL__ */ diff --git a/trunk/arch/arm/include/asm/clkdev.h b/trunk/arch/arm/include/asm/clkdev.h index 765d33222369..80751c15c300 100644 --- a/trunk/arch/arm/include/asm/clkdev.h +++ b/trunk/arch/arm/include/asm/clkdev.h @@ -14,7 +14,12 @@ #include +#ifdef CONFIG_HAVE_MACH_CLKDEV #include +#else +#define __clk_get(clk) ({ 1; }) +#define __clk_put(clk) do { } while (0) +#endif static inline struct clk_lookup_alloc *__clkdev_alloc(size_t size) { diff --git a/trunk/arch/arm/include/asm/hardware/gic.h b/trunk/arch/arm/include/asm/hardware/gic.h index 0691f9dcc500..435d3f86c708 100644 --- a/trunk/arch/arm/include/asm/hardware/gic.h +++ b/trunk/arch/arm/include/asm/hardware/gic.h @@ -41,6 +41,12 @@ void gic_secondary_init(unsigned int); void gic_cascade_irq(unsigned int gic_nr, unsigned int irq); void gic_raise_softirq(const struct cpumask *mask, unsigned int irq); void gic_enable_ppi(unsigned int); + +struct gic_chip_data { + unsigned int irq_offset; + void __iomem *dist_base; + void __iomem *cpu_base; +}; #endif #endif diff --git a/trunk/arch/arm/include/asm/irq.h b/trunk/arch/arm/include/asm/irq.h index 2721a5814cb9..5a526afb5f18 100644 --- a/trunk/arch/arm/include/asm/irq.h +++ b/trunk/arch/arm/include/asm/irq.h @@ -23,6 +23,7 @@ struct pt_regs; extern void migrate_irqs(void); extern void asm_do_IRQ(unsigned int, struct pt_regs *); +void handle_IRQ(unsigned int, struct pt_regs *); void init_IRQ(void); #endif diff --git a/trunk/arch/arm/include/asm/pci.h b/trunk/arch/arm/include/asm/pci.h index 92e2a833693d..2b1f245db0c6 100644 --- a/trunk/arch/arm/include/asm/pci.h +++ b/trunk/arch/arm/include/asm/pci.h @@ -3,9 +3,19 @@ #ifdef __KERNEL__ #include +#include #include /* for pci_sys_data */ -#include /* for PCIBIOS_MIN_* */ + +extern unsigned long pcibios_min_io; +#define PCIBIOS_MIN_IO pcibios_min_io +extern unsigned long pcibios_min_mem; +#define PCIBIOS_MIN_MEM pcibios_min_mem + +static inline int pcibios_assign_all_busses(void) +{ + return pci_has_flag(PCI_REASSIGN_ALL_RSRC); +} #ifdef CONFIG_PCI_DOMAINS static inline int pci_domain_nr(struct pci_bus *bus) diff --git a/trunk/arch/arm/include/asm/vga.h b/trunk/arch/arm/include/asm/vga.h index 250a4dd00630..91f40217bfa5 100644 --- a/trunk/arch/arm/include/asm/vga.h +++ b/trunk/arch/arm/include/asm/vga.h @@ -2,9 +2,10 @@ #define ASMARM_VGA_H #include -#include -#define VGA_MAP_MEM(x,s) (PCIMEM_BASE + (x)) +extern unsigned long vga_base; + +#define VGA_MAP_MEM(x,s) (vga_base + (x)) #define vga_readb(x) (*((volatile unsigned char *)x)) #define vga_writeb(x,y) (*((volatile unsigned char *)y) = (x)) diff --git a/trunk/arch/arm/kernel/irq.c b/trunk/arch/arm/kernel/irq.c index 0f928a131af8..de3dcab8610b 100644 --- a/trunk/arch/arm/kernel/irq.c +++ b/trunk/arch/arm/kernel/irq.c @@ -67,12 +67,12 @@ int arch_show_interrupts(struct seq_file *p, int prec) } /* - * do_IRQ handles all hardware IRQ's. Decoded IRQs should not - * come via this function. Instead, they should provide their - * own 'handler' + * handle_IRQ handles all hardware IRQ's. Decoded IRQs should + * not come via this function. Instead, they should provide their + * own 'handler'. Used by platform code implementing C-based 1st + * level decoding. */ -asmlinkage void __exception_irq_entry -asm_do_IRQ(unsigned int irq, struct pt_regs *regs) +void handle_IRQ(unsigned int irq, struct pt_regs *regs) { struct pt_regs *old_regs = set_irq_regs(regs); @@ -97,6 +97,15 @@ asm_do_IRQ(unsigned int irq, struct pt_regs *regs) set_irq_regs(old_regs); } +/* + * asm_do_IRQ is the interface to be used from assembly code. + */ +asmlinkage void __exception_irq_entry +asm_do_IRQ(unsigned int irq, struct pt_regs *regs) +{ + handle_IRQ(irq, regs); +} + void set_irq_flags(unsigned int irq, unsigned int iflags) { unsigned long clr = 0, set = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN; diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index 167e3cbe1f2f..d88ff0230e82 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -27,7 +27,7 @@ #include #include -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/traps.c b/trunk/arch/arm/kernel/traps.c index 2d3436e9f71f..bc9f9da782cb 100644 --- a/trunk/arch/arm/kernel/traps.c +++ b/trunk/arch/arm/kernel/traps.c @@ -25,7 +25,7 @@ #include #include -#include +#include #include #include #include diff --git a/trunk/arch/arm/lib/ecard.S b/trunk/arch/arm/lib/ecard.S index 8678eb2b7a60..e6057fa851bb 100644 --- a/trunk/arch/arm/lib/ecard.S +++ b/trunk/arch/arm/lib/ecard.S @@ -12,7 +12,6 @@ */ #include #include -#include #define CPSR2SPSR(rt) \ mrs rt, cpsr; \ diff --git a/trunk/arch/arm/lib/io-readsw-armv3.S b/trunk/arch/arm/lib/io-readsw-armv3.S index 9aaf7c72065d..88487c8c4f23 100644 --- a/trunk/arch/arm/lib/io-readsw-armv3.S +++ b/trunk/arch/arm/lib/io-readsw-armv3.S @@ -9,7 +9,6 @@ */ #include #include -#include .Linsw_bad_alignment: adr r0, .Linsw_bad_align_msg diff --git a/trunk/arch/arm/lib/io-writesw-armv3.S b/trunk/arch/arm/lib/io-writesw-armv3.S index cd34503e424d..49b800419e32 100644 --- a/trunk/arch/arm/lib/io-writesw-armv3.S +++ b/trunk/arch/arm/lib/io-writesw-armv3.S @@ -9,7 +9,6 @@ */ #include #include -#include .Loutsw_bad_alignment: adr r0, .Loutsw_bad_align_msg diff --git a/trunk/arch/arm/mach-at91/include/mach/clkdev.h b/trunk/arch/arm/mach-at91/include/mach/clkdev.h deleted file mode 100644 index 04b37a89801c..000000000000 --- a/trunk/arch/arm/mach-at91/include/mach/clkdev.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef __ASM_MACH_CLKDEV_H -#define __ASM_MACH_CLKDEV_H - -#define __clk_get(clk) ({ 1; }) -#define __clk_put(clk) do { } while (0) - -#endif diff --git a/trunk/arch/arm/mach-at91/pm.c b/trunk/arch/arm/mach-at91/pm.c index ea53f4d9b283..4159eca78945 100644 --- a/trunk/arch/arm/mach-at91/pm.c +++ b/trunk/arch/arm/mach-at91/pm.c @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include diff --git a/trunk/arch/arm/mach-bcmring/dma.c b/trunk/arch/arm/mach-bcmring/dma.c index 9f2a948e0e72..0ca00050666a 100644 --- a/trunk/arch/arm/mach-bcmring/dma.c +++ b/trunk/arch/arm/mach-bcmring/dma.c @@ -34,7 +34,7 @@ #include #include -#include +#include #include /* I don't quite understand why dc4 fails when this is set to 1 and DMA is enabled */ diff --git a/trunk/arch/arm/mach-bcmring/include/mach/clkdev.h b/trunk/arch/arm/mach-bcmring/include/mach/clkdev.h deleted file mode 100644 index 04b37a89801c..000000000000 --- a/trunk/arch/arm/mach-bcmring/include/mach/clkdev.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef __ASM_MACH_CLKDEV_H -#define __ASM_MACH_CLKDEV_H - -#define __clk_get(clk) ({ 1; }) -#define __clk_put(clk) do { } while (0) - -#endif diff --git a/trunk/arch/arm/mach-bcmring/include/mach/hardware.h b/trunk/arch/arm/mach-bcmring/include/mach/hardware.h index 8bf3564fba50..ed78aabb8e9f 100644 --- a/trunk/arch/arm/mach-bcmring/include/mach/hardware.h +++ b/trunk/arch/arm/mach-bcmring/include/mach/hardware.h @@ -36,8 +36,6 @@ #define RAM_SIZE (CFG_GLOBAL_RAM_SIZE-CFG_GLOBAL_RAM_SIZE_RESERVED) #define RAM_BASE PAGE_OFFSET -#define pcibios_assign_all_busses() 1 - /* Macros to make managing spinlocks a bit more controlled in terms of naming. */ /* See reg_gpio.h, reg_irq.h, arch.c, gpio.c for example usage. */ #if defined(__KERNEL__) diff --git a/trunk/arch/arm/mach-cns3xxx/cns3420vb.c b/trunk/arch/arm/mach-cns3xxx/cns3420vb.c index 08e5c8759502..3e7d1496cb47 100644 --- a/trunk/arch/arm/mach-cns3xxx/cns3420vb.c +++ b/trunk/arch/arm/mach-cns3xxx/cns3420vb.c @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include "core.h" @@ -170,6 +169,8 @@ static struct platform_device *cns3420_pdevs[] __initdata = { static void __init cns3420_init(void) { + cns3xxx_l2x0_init(); + platform_add_devices(cns3420_pdevs, ARRAY_SIZE(cns3420_pdevs)); cns3xxx_ahci_init(); diff --git a/trunk/arch/arm/mach-cns3xxx/core.c b/trunk/arch/arm/mach-cns3xxx/core.c index da30078a80c1..941a308e1253 100644 --- a/trunk/arch/arm/mach-cns3xxx/core.c +++ b/trunk/arch/arm/mach-cns3xxx/core.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include "core.h" @@ -244,3 +245,45 @@ static void __init cns3xxx_timer_init(void) struct sys_timer cns3xxx_timer = { .init = cns3xxx_timer_init, }; + +#ifdef CONFIG_CACHE_L2X0 + +void __init cns3xxx_l2x0_init(void) +{ + void __iomem *base = ioremap(CNS3XXX_L2C_BASE, SZ_4K); + u32 val; + + if (WARN_ON(!base)) + return; + + /* + * Tag RAM Control register + * + * bit[10:8] - 1 cycle of write accesses latency + * bit[6:4] - 1 cycle of read accesses latency + * bit[3:0] - 1 cycle of setup latency + * + * 1 cycle of latency for setup, read and write accesses + */ + val = readl(base + L2X0_TAG_LATENCY_CTRL); + val &= 0xfffff888; + writel(val, base + L2X0_TAG_LATENCY_CTRL); + + /* + * Data RAM Control register + * + * bit[10:8] - 1 cycles of write accesses latency + * bit[6:4] - 1 cycles of read accesses latency + * bit[3:0] - 1 cycle of setup latency + * + * 1 cycle of latency for setup, read and write accesses + */ + val = readl(base + L2X0_DATA_LATENCY_CTRL); + val &= 0xfffff888; + writel(val, base + L2X0_DATA_LATENCY_CTRL); + + /* 32 KiB, 8-way, parity disable */ + l2x0_init(base, 0x00540000, 0xfe000fff); +} + +#endif /* CONFIG_CACHE_L2X0 */ diff --git a/trunk/arch/arm/mach-cns3xxx/core.h b/trunk/arch/arm/mach-cns3xxx/core.h index ffeb3a8b73ba..fcd225343c61 100644 --- a/trunk/arch/arm/mach-cns3xxx/core.h +++ b/trunk/arch/arm/mach-cns3xxx/core.h @@ -13,6 +13,12 @@ extern struct sys_timer cns3xxx_timer; +#ifdef CONFIG_CACHE_L2X0 +void __init cns3xxx_l2x0_init(void); +#else +static inline void cns3xxx_l2x0_init(void) {} +#endif /* CONFIG_CACHE_L2X0 */ + void __init cns3xxx_map_io(void); void __init cns3xxx_init_irq(void); void cns3xxx_power_off(void); diff --git a/trunk/arch/arm/mach-cns3xxx/include/mach/hardware.h b/trunk/arch/arm/mach-cns3xxx/include/mach/hardware.h deleted file mode 100644 index 57e09836f9d7..000000000000 --- a/trunk/arch/arm/mach-cns3xxx/include/mach/hardware.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * This file contains the hardware definitions of the Cavium Networks boards. - * - * Copyright 2003 ARM Limited. - * Copyright 2008 Cavium Networks - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License, Version 2, as - * published by the Free Software Foundation. - */ - -#ifndef __MACH_HARDWARE_H -#define __MACH_HARDWARE_H - -#include - -/* macro to get at IO space when running virtually */ -#define PCIBIOS_MIN_IO 0x00000000 -#define PCIBIOS_MIN_MEM 0x00000000 -#define pcibios_assign_all_busses() 1 - -#endif diff --git a/trunk/arch/arm/mach-cns3xxx/include/mach/pm.h b/trunk/arch/arm/mach-cns3xxx/include/mach/pm.h index 6eae7f764d1d..c2588cc991d1 100644 --- a/trunk/arch/arm/mach-cns3xxx/include/mach/pm.h +++ b/trunk/arch/arm/mach-cns3xxx/include/mach/pm.h @@ -11,7 +11,7 @@ #ifndef __CNS3XXX_PM_H #define __CNS3XXX_PM_H -#include +#include void cns3xxx_pwr_clk_en(unsigned int block); void cns3xxx_pwr_clk_dis(unsigned int block); diff --git a/trunk/arch/arm/mach-cns3xxx/pcie.c b/trunk/arch/arm/mach-cns3xxx/pcie.c index 78defd71a829..a4ec080908b8 100644 --- a/trunk/arch/arm/mach-cns3xxx/pcie.c +++ b/trunk/arch/arm/mach-cns3xxx/pcie.c @@ -369,6 +369,9 @@ static int __init cns3xxx_pcie_init(void) { int i; + pcibios_min_io = 0; + pcibios_min_mem = 0; + hook_fault_code(16 + 6, cns3xxx_pcie_abort_handler, SIGBUS, 0, "imprecise external abort"); diff --git a/trunk/arch/arm/mach-cns3xxx/pm.c b/trunk/arch/arm/mach-cns3xxx/pm.c index 5e579552aa54..0c04678615ce 100644 --- a/trunk/arch/arm/mach-cns3xxx/pm.c +++ b/trunk/arch/arm/mach-cns3xxx/pm.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/trunk/arch/arm/mach-davinci/board-da850-evm.c b/trunk/arch/arm/mach-davinci/board-da850-evm.c index 29671ef07152..bd5394537c88 100644 --- a/trunk/arch/arm/mach-davinci/board-da850-evm.c +++ b/trunk/arch/arm/mach-davinci/board-da850-evm.c @@ -1117,6 +1117,8 @@ static __init int da850_evm_init_cpufreq(void) static __init int da850_evm_init_cpufreq(void) { return 0; } #endif +#define DA850EVM_SATA_REFCLKPN_RATE (100 * 1000 * 1000) + static __init void da850_evm_init(void) { int ret; @@ -1237,6 +1239,11 @@ static __init void da850_evm_init(void) if (ret) pr_warning("da850_evm_init: spi 1 registration failed: %d\n", ret); + + ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE); + if (ret) + pr_warning("da850_evm_init: sata registration failed: %d\n", + ret); } #ifdef CONFIG_SERIAL_8250_CONSOLE diff --git a/trunk/arch/arm/mach-davinci/clock.c b/trunk/arch/arm/mach-davinci/clock.c index ae653194b645..00861139101d 100644 --- a/trunk/arch/arm/mach-davinci/clock.c +++ b/trunk/arch/arm/mach-davinci/clock.c @@ -44,7 +44,7 @@ static void __clk_enable(struct clk *clk) __clk_enable(clk->parent); if (clk->usecount++ == 0 && (clk->flags & CLK_PSC)) davinci_psc_config(psc_domain(clk), clk->gpsc, clk->lpsc, - PSC_STATE_ENABLE); + true, clk->flags); } static void __clk_disable(struct clk *clk) @@ -54,8 +54,7 @@ static void __clk_disable(struct clk *clk) if (--clk->usecount == 0 && !(clk->flags & CLK_PLL) && (clk->flags & CLK_PSC)) davinci_psc_config(psc_domain(clk), clk->gpsc, clk->lpsc, - (clk->flags & PSC_SWRSTDISABLE) ? - PSC_STATE_SWRSTDISABLE : PSC_STATE_DISABLE); + false, clk->flags); if (clk->parent) __clk_disable(clk->parent); } @@ -239,8 +238,7 @@ static int __init clk_disable_unused(void) pr_debug("Clocks: disable unused %s\n", ck->name); davinci_psc_config(psc_domain(ck), ck->gpsc, ck->lpsc, - (ck->flags & PSC_SWRSTDISABLE) ? - PSC_STATE_SWRSTDISABLE : PSC_STATE_DISABLE); + false, ck->flags); } spin_unlock_irq(&clockfw_lock); diff --git a/trunk/arch/arm/mach-davinci/clock.h b/trunk/arch/arm/mach-davinci/clock.h index 50b2482e0ba2..a705f367a84d 100644 --- a/trunk/arch/arm/mach-davinci/clock.h +++ b/trunk/arch/arm/mach-davinci/clock.h @@ -111,6 +111,7 @@ struct clk { #define CLK_PLL BIT(4) /* PLL-derived clock */ #define PRE_PLL BIT(5) /* source is before PLL mult/div */ #define PSC_SWRSTDISABLE BIT(6) /* Disable state is SwRstDisable */ +#define PSC_FORCE BIT(7) /* Force module state transtition */ #define CLK(dev, con, ck) \ { \ diff --git a/trunk/arch/arm/mach-davinci/da850.c b/trunk/arch/arm/mach-davinci/da850.c index 133aac405853..935dbed5c541 100644 --- a/trunk/arch/arm/mach-davinci/da850.c +++ b/trunk/arch/arm/mach-davinci/da850.c @@ -58,6 +58,7 @@ static struct pll_data pll0_data = { static struct clk ref_clk = { .name = "ref_clk", .rate = DA850_REF_FREQ, + .set_rate = davinci_simple_set_rate, }; static struct clk pll0_clk = { @@ -373,6 +374,14 @@ static struct clk spi1_clk = { .flags = DA850_CLK_ASYNC3, }; +static struct clk sata_clk = { + .name = "sata", + .parent = &pll0_sysclk2, + .lpsc = DA850_LPSC1_SATA, + .gpsc = 1, + .flags = PSC_FORCE, +}; + static struct clk_lookup da850_clks[] = { CLK(NULL, "ref", &ref_clk), CLK(NULL, "pll0", &pll0_clk), @@ -419,6 +428,7 @@ static struct clk_lookup da850_clks[] = { CLK(NULL, "usb20", &usb20_clk), CLK("spi_davinci.0", NULL, &spi0_clk), CLK("spi_davinci.1", NULL, &spi1_clk), + CLK("ahci", NULL, &sata_clk), CLK(NULL, NULL, NULL), }; diff --git a/trunk/arch/arm/mach-davinci/devices-da8xx.c b/trunk/arch/arm/mach-davinci/devices-da8xx.c index fc4e98ea7543..2f7e719636f1 100644 --- a/trunk/arch/arm/mach-davinci/devices-da8xx.c +++ b/trunk/arch/arm/mach-davinci/devices-da8xx.c @@ -14,6 +14,8 @@ #include #include #include +#include +#include #include #include @@ -33,6 +35,7 @@ #define DA8XX_SPI0_BASE 0x01c41000 #define DA830_SPI1_BASE 0x01e12000 #define DA8XX_LCD_CNTRL_BASE 0x01e13000 +#define DA850_SATA_BASE 0x01e18000 #define DA850_MMCSD1_BASE 0x01e1b000 #define DA8XX_EMAC_CPPI_PORT_BASE 0x01e20000 #define DA8XX_EMAC_CPGMACSS_BASE 0x01e22000 @@ -842,3 +845,126 @@ int __init da8xx_register_spi(int instance, struct spi_board_info *info, return platform_device_register(&da8xx_spi_device[instance]); } + +#ifdef CONFIG_ARCH_DAVINCI_DA850 + +static struct resource da850_sata_resources[] = { + { + .start = DA850_SATA_BASE, + .end = DA850_SATA_BASE + 0x1fff, + .flags = IORESOURCE_MEM, + }, + { + .start = IRQ_DA850_SATAINT, + .flags = IORESOURCE_IRQ, + }, +}; + +/* SATA PHY Control Register offset from AHCI base */ +#define SATA_P0PHYCR_REG 0x178 + +#define SATA_PHY_MPY(x) ((x) << 0) +#define SATA_PHY_LOS(x) ((x) << 6) +#define SATA_PHY_RXCDR(x) ((x) << 10) +#define SATA_PHY_RXEQ(x) ((x) << 13) +#define SATA_PHY_TXSWING(x) ((x) << 19) +#define SATA_PHY_ENPLL(x) ((x) << 31) + +static struct clk *da850_sata_clk; +static unsigned long da850_sata_refclkpn; + +/* Supported DA850 SATA crystal frequencies */ +#define KHZ_TO_HZ(freq) ((freq) * 1000) +static unsigned long da850_sata_xtal[] = { + KHZ_TO_HZ(300000), + KHZ_TO_HZ(250000), + 0, /* Reserved */ + KHZ_TO_HZ(187500), + KHZ_TO_HZ(150000), + KHZ_TO_HZ(125000), + KHZ_TO_HZ(120000), + KHZ_TO_HZ(100000), + KHZ_TO_HZ(75000), + KHZ_TO_HZ(60000), +}; + +static int da850_sata_init(struct device *dev, void __iomem *addr) +{ + int i, ret; + unsigned int val; + + da850_sata_clk = clk_get(dev, NULL); + if (IS_ERR(da850_sata_clk)) + return PTR_ERR(da850_sata_clk); + + ret = clk_enable(da850_sata_clk); + if (ret) + goto err0; + + /* Enable SATA clock receiver */ + val = __raw_readl(DA8XX_SYSCFG1_VIRT(DA8XX_PWRDN_REG)); + val &= ~BIT(0); + __raw_writel(val, DA8XX_SYSCFG1_VIRT(DA8XX_PWRDN_REG)); + + /* Get the multiplier needed for 1.5GHz PLL output */ + for (i = 0; i < ARRAY_SIZE(da850_sata_xtal); i++) + if (da850_sata_xtal[i] == da850_sata_refclkpn) + break; + + if (i == ARRAY_SIZE(da850_sata_xtal)) { + ret = -EINVAL; + goto err1; + } + + val = SATA_PHY_MPY(i + 1) | + SATA_PHY_LOS(1) | + SATA_PHY_RXCDR(4) | + SATA_PHY_RXEQ(1) | + SATA_PHY_TXSWING(3) | + SATA_PHY_ENPLL(1); + + __raw_writel(val, addr + SATA_P0PHYCR_REG); + + return 0; + +err1: + clk_disable(da850_sata_clk); +err0: + clk_put(da850_sata_clk); + return ret; +} + +static void da850_sata_exit(struct device *dev) +{ + clk_disable(da850_sata_clk); + clk_put(da850_sata_clk); +} + +static struct ahci_platform_data da850_sata_pdata = { + .init = da850_sata_init, + .exit = da850_sata_exit, +}; + +static u64 da850_sata_dmamask = DMA_BIT_MASK(32); + +static struct platform_device da850_sata_device = { + .name = "ahci", + .id = -1, + .dev = { + .platform_data = &da850_sata_pdata, + .dma_mask = &da850_sata_dmamask, + .coherent_dma_mask = DMA_BIT_MASK(32), + }, + .num_resources = ARRAY_SIZE(da850_sata_resources), + .resource = da850_sata_resources, +}; + +int __init da850_register_sata(unsigned long refclkpn) +{ + da850_sata_refclkpn = refclkpn; + if (!da850_sata_refclkpn) + return -EINVAL; + + return platform_device_register(&da850_sata_device); +} +#endif diff --git a/trunk/arch/arm/mach-davinci/include/mach/clkdev.h b/trunk/arch/arm/mach-davinci/include/mach/clkdev.h deleted file mode 100644 index 14a504887189..000000000000 --- a/trunk/arch/arm/mach-davinci/include/mach/clkdev.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __MACH_CLKDEV_H -#define __MACH_CLKDEV_H - -struct clk; - -static inline int __clk_get(struct clk *clk) -{ - return 1; -} - -static inline void __clk_put(struct clk *clk) -{ -} - -#endif diff --git a/trunk/arch/arm/mach-davinci/include/mach/da8xx.h b/trunk/arch/arm/mach-davinci/include/mach/da8xx.h index ad64da713fc8..eaca7d8b9d68 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/trunk/arch/arm/mach-davinci/include/mach/da8xx.h @@ -57,6 +57,7 @@ extern unsigned int da850_max_speed; #define DA8XX_SYSCFG1_BASE (IO_PHYS + 0x22C000) #define DA8XX_SYSCFG1_VIRT(x) (da8xx_syscfg1_base + (x)) #define DA8XX_DEEPSLEEP_REG 0x8 +#define DA8XX_PWRDN_REG 0x18 #define DA8XX_PSC0_BASE 0x01c10000 #define DA8XX_PLL0_BASE 0x01c11000 @@ -89,6 +90,7 @@ int da850_register_cpufreq(char *async_clk); int da8xx_register_cpuidle(void); void __iomem * __init da8xx_get_mem_ctlr(void); int da850_register_pm(struct platform_device *pdev); +int __init da850_register_sata(unsigned long refclkpn); extern struct platform_device da8xx_serial_device; extern struct emac_platform_data da8xx_emac_pdata; diff --git a/trunk/arch/arm/mach-davinci/include/mach/psc.h b/trunk/arch/arm/mach-davinci/include/mach/psc.h index 1110fdd77ba4..47fd0bc3d3e7 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/psc.h +++ b/trunk/arch/arm/mach-davinci/include/mach/psc.h @@ -244,12 +244,13 @@ #define PSC_STATE_ENABLE 3 #define MDSTAT_STATE_MASK 0x1f +#define MDCTL_FORCE BIT(31) #ifndef __ASSEMBLER__ extern int davinci_psc_is_clk_active(unsigned int ctlr, unsigned int id); extern void davinci_psc_config(unsigned int domain, unsigned int ctlr, - unsigned int id, u32 next_state); + unsigned int id, bool enable, u32 flags); #endif diff --git a/trunk/arch/arm/mach-davinci/psc.c b/trunk/arch/arm/mach-davinci/psc.c index a41580400701..1fb6bdff38c1 100644 --- a/trunk/arch/arm/mach-davinci/psc.c +++ b/trunk/arch/arm/mach-davinci/psc.c @@ -25,6 +25,8 @@ #include #include +#include "clock.h" + /* Return nonzero iff the domain's clock is active */ int __init davinci_psc_is_clk_active(unsigned int ctlr, unsigned int id) { @@ -48,11 +50,12 @@ int __init davinci_psc_is_clk_active(unsigned int ctlr, unsigned int id) /* Enable or disable a PSC domain */ void davinci_psc_config(unsigned int domain, unsigned int ctlr, - unsigned int id, u32 next_state) + unsigned int id, bool enable, u32 flags) { u32 epcpr, ptcmd, ptstat, pdstat, pdctl1, mdstat, mdctl; void __iomem *psc_base; struct davinci_soc_info *soc_info = &davinci_soc_info; + u32 next_state = PSC_STATE_ENABLE; if (!soc_info->psc_bases || (ctlr >= soc_info->psc_bases_num)) { pr_warning("PSC: Bad psc data: 0x%x[%d]\n", @@ -62,9 +65,18 @@ void davinci_psc_config(unsigned int domain, unsigned int ctlr, psc_base = ioremap(soc_info->psc_bases[ctlr], SZ_4K); + if (!enable) { + if (flags & PSC_SWRSTDISABLE) + next_state = PSC_STATE_SWRSTDISABLE; + else + next_state = PSC_STATE_DISABLE; + } + mdctl = __raw_readl(psc_base + MDCTL + 4 * id); mdctl &= ~MDSTAT_STATE_MASK; mdctl |= next_state; + if (flags & PSC_FORCE) + mdctl |= MDCTL_FORCE; __raw_writel(mdctl, psc_base + MDCTL + 4 * id); pdstat = __raw_readl(psc_base + PDSTAT); diff --git a/trunk/arch/arm/mach-dove/include/mach/hardware.h b/trunk/arch/arm/mach-dove/include/mach/hardware.h index 32b0826e7873..f1368b9a8ece 100644 --- a/trunk/arch/arm/mach-dove/include/mach/hardware.h +++ b/trunk/arch/arm/mach-dove/include/mach/hardware.h @@ -11,13 +11,6 @@ #include "dove.h" -#define pcibios_assign_all_busses() 1 - -#define PCIBIOS_MIN_IO 0x1000 -#define PCIBIOS_MIN_MEM 0x01000000 -#define PCIMEM_BASE DOVE_PCIE0_MEM_PHYS_BASE - - /* Macros below are required for compatibility with PXA AC'97 driver. */ #define __REG(x) (*((volatile u32 *)((x) - DOVE_SB_REGS_PHYS_BASE + \ DOVE_SB_REGS_VIRT_BASE))) diff --git a/trunk/arch/arm/mach-dove/pcie.c b/trunk/arch/arm/mach-dove/pcie.c index 502d1ca2f4b7..c2f1c4767f21 100644 --- a/trunk/arch/arm/mach-dove/pcie.c +++ b/trunk/arch/arm/mach-dove/pcie.c @@ -11,6 +11,7 @@ #include #include #include +#include