From 9636631fa57cfba3c25d8de9358f1ace5aa650c7 Mon Sep 17 00:00:00 2001 From: Roland Stigge Date: Wed, 8 Feb 2012 21:40:59 +0100 Subject: [PATCH] --- yaml --- r: 296604 b: refs/heads/master c: 4ee1c5716d10e30269b64e393cc4a5bf17afee38 h: refs/heads/master v: v3 --- [refs] | 2 +- .../Documentation/DocBook/device-drivers.tmpl | 12 +- trunk/Documentation/IRQ-domain.txt | 117 - .../bindings/arm/exynos/power_domain.txt | 21 - .../devicetree/bindings/arm/tegra/emc.txt | 100 - .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 19 - .../bindings/dma/tegra20-apbdma.txt | 30 - .../devicetree/bindings/gpio/gpio_nvidia.txt | 36 +- .../feature-removal-schedule.txt | 14 + trunk/Documentation/input/event-codes.txt | 72 +- trunk/Documentation/sysctl/kernel.txt | 2 - trunk/MAINTAINERS | 80 +- trunk/Makefile | 2 +- trunk/arch/arm/Kconfig | 4 +- trunk/arch/arm/Kconfig.debug | 164 +- trunk/arch/arm/boot/dts/exynos4210.dtsi | 1 - trunk/arch/arm/boot/dts/tegra-harmony.dts | 45 +- trunk/arch/arm/boot/dts/tegra-paz00.dts | 36 +- trunk/arch/arm/boot/dts/tegra-seaboard.dts | 78 - trunk/arch/arm/boot/dts/tegra-trimslice.dts | 12 - trunk/arch/arm/boot/dts/tegra-ventana.dts | 42 - trunk/arch/arm/boot/dts/tegra20.dtsi | 43 +- trunk/arch/arm/boot/dts/tegra30.dtsi | 53 +- trunk/arch/arm/common/gic.c | 95 +- trunk/arch/arm/common/it8152.c | 7 + trunk/arch/arm/common/pl330.c | 3 +- trunk/arch/arm/common/vic.c | 16 +- trunk/arch/arm/configs/at91cap9_defconfig | 108 + trunk/arch/arm/configs/imx_v4_v5_defconfig | 18 - trunk/arch/arm/configs/imx_v6_v7_defconfig | 36 +- trunk/arch/arm/configs/lpc32xx_defconfig | 145 ++ trunk/arch/arm/configs/magician_defconfig | 2 +- trunk/arch/arm/include/asm/assembler.h | 5 - trunk/arch/arm/include/asm/hardware/gic.h | 4 +- trunk/arch/arm/include/asm/hardware/pl330.h | 2 +- trunk/arch/arm/include/asm/hardware/vic.h | 2 - trunk/arch/arm/include/asm/processor.h | 1 - trunk/arch/arm/include/asm/system.h | 1 - trunk/arch/arm/include/asm/tlb.h | 10 +- trunk/arch/arm/kernel/entry-armv.S | 2 +- trunk/arch/arm/kernel/perf_event_v7.c | 28 - trunk/arch/arm/kernel/process.c | 27 +- trunk/arch/arm/kernel/ptrace.c | 17 +- trunk/arch/arm/kernel/signal.c | 5 +- trunk/arch/arm/kernel/smp_twd.c | 2 +- trunk/arch/arm/kernel/traps.c | 5 +- trunk/arch/arm/kernel/vmlinux.lds.S | 1 - trunk/arch/arm/mach-at91/Kconfig | 26 +- trunk/arch/arm/mach-at91/Makefile | 4 + trunk/arch/arm/mach-at91/Makefile.boot | 6 +- trunk/arch/arm/mach-at91/at91cap9.c | 396 ++++ trunk/arch/arm/mach-at91/at91cap9_devices.c | 1273 ++++++++++ trunk/arch/arm/mach-at91/at91rm9200.c | 10 - trunk/arch/arm/mach-at91/at91rm9200_devices.c | 2 +- trunk/arch/arm/mach-at91/at91sam9260.c | 8 - .../arch/arm/mach-at91/at91sam9260_devices.c | 9 +- trunk/arch/arm/mach-at91/at91sam9261.c | 8 - .../arch/arm/mach-at91/at91sam9261_devices.c | 2 +- trunk/arch/arm/mach-at91/at91sam9263.c | 8 - .../arch/arm/mach-at91/at91sam9263_devices.c | 21 +- trunk/arch/arm/mach-at91/at91sam9g45.c | 7 - .../arch/arm/mach-at91/at91sam9g45_devices.c | 113 +- trunk/arch/arm/mach-at91/at91sam9rl.c | 8 - trunk/arch/arm/mach-at91/at91sam9rl_devices.c | 8 +- trunk/arch/arm/mach-at91/at91x40.c | 12 - trunk/arch/arm/mach-at91/board-cap9adk.c | 396 ++++ trunk/arch/arm/mach-at91/board-flexibity.c | 12 +- trunk/arch/arm/mach-at91/board-sam9m10g45ek.c | 80 +- trunk/arch/arm/mach-at91/clock.c | 5 +- trunk/arch/arm/mach-at91/generic.h | 1 + .../arm/mach-at91/include/mach/at91_pmc.h | 14 +- .../arm/mach-at91/include/mach/at91cap9.h | 122 + .../mach-at91/include/mach/at91cap9_matrix.h | 137 ++ .../mach-at91/include/mach/at91sam9_ddrsdr.h | 10 + .../arm/mach-at91/include/mach/at91sam9_smc.h | 29 - trunk/arch/arm/mach-at91/include/mach/board.h | 6 +- trunk/arch/arm/mach-at91/include/mach/cpu.h | 21 + .../arm/mach-at91/include/mach/hardware.h | 4 +- .../arch/arm/mach-at91/include/mach/system.h | 50 + trunk/arch/arm/mach-at91/pm.c | 5 + trunk/arch/arm/mach-at91/pm.h | 18 + trunk/arch/arm/mach-at91/pm_slowclock.S | 12 +- trunk/arch/arm/mach-at91/sam9_smc.c | 76 +- trunk/arch/arm/mach-at91/sam9_smc.h | 23 + trunk/arch/arm/mach-at91/setup.c | 17 + trunk/arch/arm/mach-at91/soc.h | 5 + trunk/arch/arm/mach-bcmring/arch.c | 2 +- trunk/arch/arm/mach-bcmring/core.c | 23 +- trunk/arch/arm/mach-bcmring/dma.c | 812 +++++++ .../arch/arm/mach-bcmring/include/mach/dma.h | 196 ++ .../arm/mach-bcmring/include/mach/system.h | 28 + trunk/arch/arm/mach-clps711x/common.c | 16 - .../arm/mach-clps711x/include/mach/system.h | 35 + .../arm/mach-cns3xxx/include/mach/system.h | 25 + trunk/arch/arm/mach-davinci/board-da850-evm.c | 2 +- trunk/arch/arm/mach-davinci/board-dm365-evm.c | 2 +- .../arch/arm/mach-davinci/board-dm644x-evm.c | 2 +- .../arch/arm/mach-davinci/board-dm646x-evm.c | 2 +- .../arch/arm/mach-davinci/board-neuros-osd2.c | 2 +- .../arm/mach-davinci/board-omapl138-hawk.c | 2 +- trunk/arch/arm/mach-davinci/board-sffsdr.c | 2 +- trunk/arch/arm/mach-davinci/da850.c | 32 + .../arm/mach-davinci/include/mach/system.h | 21 + trunk/arch/arm/mach-dove/common.c | 3 +- .../arch/arm/mach-dove/include/mach/system.h | 17 + trunk/arch/arm/mach-ebsa110/core.c | 25 - .../arm/mach-ebsa110/include/mach/system.h | 37 + trunk/arch/arm/mach-ep93xx/core.c | 46 +- .../arm/mach-ep93xx/include/mach/system.h | 7 + trunk/arch/arm/mach-ep93xx/vision_ep9307.c | 4 +- trunk/arch/arm/mach-exynos/Kconfig | 13 +- trunk/arch/arm/mach-exynos/Makefile | 5 +- trunk/arch/arm/mach-exynos/clock-exynos4.c | 1572 ------------- trunk/arch/arm/mach-exynos/clock-exynos4.h | 30 - trunk/arch/arm/mach-exynos/clock-exynos4210.c | 50 +- trunk/arch/arm/mach-exynos/clock-exynos4212.c | 34 +- trunk/arch/arm/mach-exynos/clock.c | 1562 +++++++++++++ trunk/arch/arm/mach-exynos/common.c | 16 +- trunk/arch/arm/mach-exynos/common.h | 9 - trunk/arch/arm/mach-exynos/dev-pd.c | 139 ++ trunk/arch/arm/mach-exynos/dma.c | 153 +- .../mach-exynos/include/mach/exynos4-clock.h | 43 + .../arch/arm/mach-exynos/include/mach/irqs.h | 2 - trunk/arch/arm/mach-exynos/include/mach/map.h | 3 +- .../arm/mach-exynos/include/mach/regs-clock.h | 416 ++-- .../arm/mach-exynos/include/mach/system.h | 20 + trunk/arch/arm/mach-exynos/mach-exynos4-dt.c | 8 +- trunk/arch/arm/mach-exynos/mach-nuri.c | 23 +- trunk/arch/arm/mach-exynos/mach-origen.c | 16 +- trunk/arch/arm/mach-exynos/mach-smdkv310.c | 12 + .../arm/mach-exynos/mach-universal_c210.c | 23 +- trunk/arch/arm/mach-exynos/pm.c | 44 +- trunk/arch/arm/mach-exynos/pm_domains.c | 201 -- .../arm/mach-footbridge/include/mach/system.h | 13 + trunk/arch/arm/mach-gemini/Makefile | 2 +- trunk/arch/arm/mach-gemini/idle.c | 29 - .../arm/mach-gemini/include/mach/system.h | 14 + trunk/arch/arm/mach-gemini/irq.c | 4 +- trunk/arch/arm/mach-h720x/common.c | 18 - .../arch/arm/mach-h720x/include/mach/system.h | 27 + .../include/mach/system.h} | 17 +- trunk/arch/arm/mach-imx/Kconfig | 1 - trunk/arch/arm/mach-imx/clock-imx6q.c | 74 +- trunk/arch/arm/mach-imx/imx51-dt.c | 4 +- trunk/arch/arm/mach-imx/imx53-dt.c | 4 +- trunk/arch/arm/mach-imx/lluart.c | 2 +- trunk/arch/arm/mach-imx/mach-imx6q.c | 3 +- trunk/arch/arm/mach-imx/mach-mx21ads.c | 16 +- trunk/arch/arm/mach-imx/mach-mx27_3ds.c | 108 - trunk/arch/arm/mach-imx/mach-mx31ads.c | 35 +- trunk/arch/arm/mach-imx/mach-mx31moboard.c | 2 +- trunk/arch/arm/mach-imx/mm-imx3.c | 52 +- trunk/arch/arm/mach-imx/mm-imx5.c | 28 +- trunk/arch/arm/mach-imx/pm-imx27.c | 3 +- trunk/arch/arm/mach-imx/pm-imx5.c | 4 +- trunk/arch/arm/mach-integrator/core.c | 70 +- trunk/arch/arm/mach-integrator/impd1.c | 9 +- .../arm/mach-integrator/include/mach/system.h | 33 + .../arch/arm/mach-integrator/integrator_cp.c | 49 +- .../arm/mach-iop13xx/include/mach/system.h | 13 + .../arm/mach-iop32x/include/mach/system.h | 13 + .../arm/mach-iop33x/include/mach/system.h | 13 + .../arm/mach-ixp2000/include/mach/system.h | 14 + trunk/arch/arm/mach-ixp23xx/core.c | 3 - .../arm/mach-ixp23xx/include/mach/system.h | 16 + trunk/arch/arm/mach-ixp4xx/common.c | 6 - .../arm/mach-ixp4xx/include/mach/system.h | 19 + trunk/arch/arm/mach-kirkwood/common.c | 3 +- .../arm/mach-kirkwood/include/mach/system.h | 17 + trunk/arch/arm/mach-kirkwood/mpp.h | 320 +-- .../arm/mach-ks8695/include/mach/system.h | 27 + trunk/arch/arm/mach-lpc32xx/clock.c | 36 - trunk/arch/arm/mach-lpc32xx/common.c | 22 - trunk/arch/arm/mach-lpc32xx/common.h | 1 - .../arch/arm/mach-lpc32xx/include/mach/irqs.h | 2 +- .../arm/mach-lpc32xx/include/mach/system.h | 27 + trunk/arch/arm/mach-lpc32xx/irq.c | 25 +- trunk/arch/arm/mach-lpc32xx/phy3250.c | 33 +- trunk/arch/arm/mach-lpc32xx/serial.c | 20 +- trunk/arch/arm/mach-mmp/aspenite.c | 1 + trunk/arch/arm/mach-mmp/include/mach/pxa910.h | 1 - .../arm/mach-mmp/include/mach/regs-apbc.h | 1 - .../arch/arm/mach-mmp/include/mach/regs-rtc.h | 23 - trunk/arch/arm/mach-mmp/include/mach/system.h | 16 + trunk/arch/arm/mach-mmp/pxa168.c | 1 + trunk/arch/arm/mach-mmp/pxa910.c | 27 - trunk/arch/arm/mach-mmp/tavorevb.c | 1 + trunk/arch/arm/mach-mmp/ttc_dkb.c | 1 - trunk/arch/arm/mach-msm/board-msm8x60.c | 8 +- trunk/arch/arm/mach-msm/idle.S | 36 + trunk/arch/arm/mach-msm/idle.c | 49 - trunk/arch/arm/mach-msm/include/mach/system.h | 1 + trunk/arch/arm/mach-mv78xx0/common.c | 3 +- .../arm/mach-mv78xx0/include/mach/system.h | 17 + trunk/arch/arm/mach-mv78xx0/mpp.h | 226 +- trunk/arch/arm/mach-mxs/clock-mx23.c | 1 - trunk/arch/arm/mach-mxs/clock-mx28.c | 1 - trunk/arch/arm/mach-mxs/devices-mx23.h | 4 - trunk/arch/arm/mach-mxs/devices-mx28.h | 4 - trunk/arch/arm/mach-mxs/devices.c | 8 +- trunk/arch/arm/mach-mxs/devices/Kconfig | 3 - trunk/arch/arm/mach-mxs/devices/Makefile | 1 - trunk/arch/arm/mach-mxs/devices/amba-duart.c | 2 +- .../arm/mach-mxs/devices/platform-gpmi-nand.c | 81 - .../mach-mxs/include/mach/devices-common.h | 10 - trunk/arch/arm/mach-mxs/include/mach/system.h | 25 + trunk/arch/arm/mach-mxs/pm.c | 3 +- trunk/arch/arm/mach-netx/fb.c | 13 +- .../arch/arm/mach-netx/include/mach/system.h | 28 + trunk/arch/arm/mach-nomadik/board-nhk8815.c | 17 +- trunk/arch/arm/mach-nomadik/cpu-8815.c | 9 +- .../arm/mach-nomadik/include/mach/system.h | 32 + trunk/arch/arm/mach-omap1/board-innovator.c | 4 +- .../arch/arm/mach-omap1/include/mach/system.h | 5 + trunk/arch/arm/mach-omap1/pm.c | 19 +- trunk/arch/arm/mach-omap2/Kconfig | 19 +- trunk/arch/arm/mach-omap2/Makefile | 9 +- trunk/arch/arm/mach-omap2/board-4430sdp.c | 35 +- trunk/arch/arm/mach-omap2/board-cm-t35.c | 2 +- trunk/arch/arm/mach-omap2/board-generic.c | 6 +- trunk/arch/arm/mach-omap2/board-n8x0.c | 4 - trunk/arch/arm/mach-omap2/board-omap3evm.c | 25 +- trunk/arch/arm/mach-omap2/board-omap4panda.c | 24 +- .../arch/arm/mach-omap2/board-zoom-display.c | 4 - .../arm/mach-omap2/board-zoom-peripherals.c | 6 +- trunk/arch/arm/mach-omap2/common.h | 1 - trunk/arch/arm/mach-omap2/cpuidle44xx.c | 5 +- trunk/arch/arm/mach-omap2/devices.c | 8 +- trunk/arch/arm/mach-omap2/display.c | 4 + trunk/arch/arm/mach-omap2/emu.c | 26 +- trunk/arch/arm/mach-omap2/gpmc-smsc911x.c | 52 - trunk/arch/arm/mach-omap2/gpmc.c | 6 - trunk/arch/arm/mach-omap2/hsmmc.c | 30 +- .../arch/arm/mach-omap2/include/mach/system.h | 5 + trunk/arch/arm/mach-omap2/io.c | 5 +- trunk/arch/arm/mach-omap2/mailbox.c | 13 +- trunk/arch/arm/mach-omap2/mux.c | 24 +- trunk/arch/arm/mach-omap2/mux.h | 2 +- trunk/arch/arm/mach-omap2/omap-headsmp.S | 1 - trunk/arch/arm/mach-omap2/omap4-common.c | 25 +- trunk/arch/arm/mach-omap2/omap_hwmod.c | 16 +- .../omap_hwmod_2xxx_3xxx_ipblock_data.c | 21 + .../mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 22 - .../arm/mach-omap2/omap_hwmod_3xxx_data.c | 85 +- .../arm/mach-omap2/omap_hwmod_44xx_data.c | 21 +- trunk/arch/arm/mach-omap2/pm.c | 3 - trunk/arch/arm/mach-omap2/pm24xx.c | 12 +- trunk/arch/arm/mach-omap2/pm34xx.c | 6 +- trunk/arch/arm/mach-omap2/pm44xx.c | 8 +- trunk/arch/arm/mach-omap2/prm2xxx_3xxx.c | 1 - trunk/arch/arm/mach-omap2/prm44xx.c | 1 - trunk/arch/arm/mach-omap2/prm_common.c | 1 + trunk/arch/arm/mach-omap2/serial.c | 8 +- .../arch/arm/mach-omap2/smartreflex-class3.c | 1 - trunk/arch/arm/mach-omap2/smartreflex.c | 231 +- trunk/arch/arm/mach-omap2/smartreflex.h | 10 - trunk/arch/arm/mach-omap2/sr_device.c | 11 +- trunk/arch/arm/mach-omap2/timer.c | 2 +- trunk/arch/arm/mach-omap2/usb-host.c | 6 +- trunk/arch/arm/mach-omap2/vc.c | 10 +- .../arm/mach-omap2/voltagedomains3xxx_data.c | 2 - .../arm/mach-omap2/voltagedomains44xx_data.c | 2 - trunk/arch/arm/mach-omap2/vp.c | 5 - trunk/arch/arm/mach-orion5x/common.c | 4 +- .../arm/mach-orion5x/include/mach/system.h | 19 + .../arm/mach-picoxcell/include/mach/system.h | 26 + .../arm/mach-pnx4008/include/mach/system.h | 29 + .../arm/mach-prima2/include/mach/system.h | 17 + trunk/arch/arm/mach-prima2/irq.c | 2 +- trunk/arch/arm/mach-pxa/devices.c | 28 +- trunk/arch/arm/mach-pxa/hx4700.c | 58 +- trunk/arch/arm/mach-pxa/include/mach/system.h | 15 + trunk/arch/arm/mach-pxa/magician.c | 33 +- trunk/arch/arm/mach-pxa/pxa25x.c | 2 +- trunk/arch/arm/mach-pxa/pxa27x.c | 2 +- trunk/arch/arm/mach-pxa/pxa3xx.c | 1 - trunk/arch/arm/mach-pxa/pxa95x.c | 1 - trunk/arch/arm/mach-pxa/saarb.c | 1 + trunk/arch/arm/mach-pxa/sharpsl_pm.c | 3 +- trunk/arch/arm/mach-pxa/spitz_pm.c | 5 +- trunk/arch/arm/mach-realview/core.h | 20 +- .../mach-realview/include/mach/irqs-pb1176.h | 2 +- .../arm/mach-realview/include/mach/system.h | 33 + trunk/arch/arm/mach-realview/realview_eb.c | 78 +- .../arch/arm/mach-realview/realview_pb1176.c | 78 +- .../arch/arm/mach-realview/realview_pb11mp.c | 78 +- trunk/arch/arm/mach-realview/realview_pba8.c | 78 +- trunk/arch/arm/mach-realview/realview_pbx.c | 78 +- trunk/arch/arm/mach-rpc/include/mach/system.h | 13 + trunk/arch/arm/mach-s3c2410/cpu-freq.c | 8 +- trunk/arch/arm/mach-s3c2410/dma.c | 5 +- .../arm/mach-s3c2410/include/mach/system.h | 54 + trunk/arch/arm/mach-s3c2410/mach-h1940.c | 12 +- trunk/arch/arm/mach-s3c2410/pll.c | 2 +- trunk/arch/arm/mach-s3c2410/pm.c | 2 +- trunk/arch/arm/mach-s3c2412/cpu-freq.c | 3 +- trunk/arch/arm/mach-s3c2412/dma.c | 3 +- trunk/arch/arm/mach-s3c2412/irq.c | 2 +- trunk/arch/arm/mach-s3c2412/pm.c | 2 +- trunk/arch/arm/mach-s3c2412/s3c2412.c | 4 +- trunk/arch/arm/mach-s3c2416/clock.c | 6 + trunk/arch/arm/mach-s3c2416/irq.c | 3 +- trunk/arch/arm/mach-s3c2416/mach-smdk2416.c | 8 +- trunk/arch/arm/mach-s3c2416/pm.c | 2 +- trunk/arch/arm/mach-s3c2416/s3c2416.c | 5 +- trunk/arch/arm/mach-s3c2440/clock.c | 2 +- trunk/arch/arm/mach-s3c2440/dma.c | 3 +- trunk/arch/arm/mach-s3c2440/irq.c | 2 +- trunk/arch/arm/mach-s3c2440/mach-gta02.c | 4 +- trunk/arch/arm/mach-s3c2440/mach-rx1950.c | 12 +- trunk/arch/arm/mach-s3c2440/s3c2440-cpufreq.c | 3 +- .../arm/mach-s3c2440/s3c2440-pll-12000000.c | 2 +- .../arm/mach-s3c2440/s3c2440-pll-16934400.c | 3 +- trunk/arch/arm/mach-s3c2440/s3c2442.c | 2 +- trunk/arch/arm/mach-s3c2440/s3c244x-clock.c | 2 +- trunk/arch/arm/mach-s3c2440/s3c244x-irq.c | 2 +- trunk/arch/arm/mach-s3c2443/dma.c | 3 +- trunk/arch/arm/mach-s3c2443/irq.c | 3 +- trunk/arch/arm/mach-s3c2443/s3c2443.c | 2 - trunk/arch/arm/mach-s3c64xx/clock.c | 5 - trunk/arch/arm/mach-s3c64xx/common.c | 2 +- trunk/arch/arm/mach-s3c64xx/common.h | 2 + .../arm/mach-s3c64xx/include/mach/system.h | 19 + trunk/arch/arm/mach-s3c64xx/irq-pm.c | 2 +- trunk/arch/arm/mach-s5p64x0/clock.c | 11 +- trunk/arch/arm/mach-s5p64x0/common.c | 15 +- trunk/arch/arm/mach-s5p64x0/dma.c | 30 +- .../mach-s5p64x0/include/mach/s5p64x0-clock.h | 7 + .../arm/mach-s5p64x0/include/mach/system.h | 21 + trunk/arch/arm/mach-s5p64x0/pm.c | 2 +- trunk/arch/arm/mach-s5pc100/clock.c | 28 +- trunk/arch/arm/mach-s5pc100/common.c | 12 + trunk/arch/arm/mach-s5pc100/dma.c | 46 +- .../arm/mach-s5pc100/include/mach/system.h | 19 + trunk/arch/arm/mach-s5pv210/clock.c | 4 +- trunk/arch/arm/mach-s5pv210/common.c | 12 + trunk/arch/arm/mach-s5pv210/dma.c | 46 +- .../arm/mach-s5pv210/include/mach/system.h | 21 + trunk/arch/arm/mach-s5pv210/mach-goni.c | 2 +- trunk/arch/arm/mach-s5pv210/mach-smdkv210.c | 2 +- trunk/arch/arm/mach-s5pv210/pm.c | 2 +- trunk/arch/arm/mach-sa1100/clock.c | 82 +- trunk/arch/arm/mach-sa1100/generic.c | 8 - .../arm/mach-sa1100/include/mach/system.h | 9 + trunk/arch/arm/mach-shark/core.c | 6 - .../arch/arm/mach-shark/include/mach/system.h | 13 + trunk/arch/arm/mach-shmobile/board-ag5evm.c | 29 +- trunk/arch/arm/mach-shmobile/board-ap4evb.c | 12 +- trunk/arch/arm/mach-shmobile/board-kota2.c | 3 +- trunk/arch/arm/mach-shmobile/board-mackerel.c | 95 +- trunk/arch/arm/mach-shmobile/clock-sh73a0.c | 113 - .../arm/mach-shmobile/include/mach/sh73a0.h | 6 +- .../arm/mach-shmobile/include/mach/system.h | 5 + trunk/arch/arm/mach-shmobile/intc-sh73a0.c | 2 - trunk/arch/arm/mach-shmobile/pfc-r8a7779.c | 2 +- trunk/arch/arm/mach-shmobile/pfc-sh7372.c | 41 - trunk/arch/arm/mach-shmobile/setup-sh7372.c | 2 - trunk/arch/arm/mach-shmobile/smp-sh73a0.c | 2 +- .../arm/mach-spear3xx/include/mach/system.h | 19 + trunk/arch/arm/mach-spear3xx/spear300.c | 14 +- trunk/arch/arm/mach-spear3xx/spear3xx.c | 27 +- .../arm/mach-spear6xx/include/mach/system.h | 19 + trunk/arch/arm/mach-spear6xx/spear6xx.c | 10 +- trunk/arch/arm/mach-tegra/Makefile | 3 +- trunk/arch/arm/mach-tegra/apbio.c | 145 -- trunk/arch/arm/mach-tegra/apbio.h | 39 - .../arch/arm/mach-tegra/board-harmony-power.c | 15 + trunk/arch/arm/mach-tegra/board-harmony.c | 2 +- trunk/arch/arm/mach-tegra/board-paz00.c | 8 +- trunk/arch/arm/mach-tegra/board-paz00.h | 2 +- trunk/arch/arm/mach-tegra/board-seaboard.c | 5 +- trunk/arch/arm/mach-tegra/common.c | 23 +- trunk/arch/arm/mach-tegra/dma.c | 128 +- trunk/arch/arm/mach-tegra/fuse.c | 107 +- trunk/arch/arm/mach-tegra/fuse.h | 34 +- .../arm/mach-tegra/include/mach/debug-macro.S | 88 +- trunk/arch/arm/mach-tegra/include/mach/dma.h | 10 +- .../arm/mach-tegra/include/mach/gpio-tegra.h | 2 + .../arm/mach-tegra/include/mach/irammap.h | 35 - .../arm/mach-tegra/include/mach/system.h} | 26 +- .../arm/mach-tegra/include/mach/uncompress.h | 120 +- trunk/arch/arm/mach-tegra/pmc.c | 76 - trunk/arch/arm/mach-tegra/tegra2_clocks.c | 2 +- trunk/arch/arm/mach-tegra/tegra2_emc.c | 224 +- trunk/arch/arm/mach-tegra/tegra2_emc.h | 11 +- trunk/arch/arm/mach-u300/core.c | 85 +- .../arch/arm/mach-u300/include/mach/system.h | 14 + trunk/arch/arm/mach-ux500/devices-common.c | 13 +- .../arch/arm/mach-ux500/include/mach/system.h | 20 + trunk/arch/arm/mach-versatile/core.c | 77 +- trunk/arch/arm/mach-versatile/core.h | 20 +- .../arm/mach-versatile/include/mach/system.h | 33 + trunk/arch/arm/mach-versatile/versatile_pb.c | 18 +- trunk/arch/arm/mach-vexpress/core.h | 17 + trunk/arch/arm/mach-vexpress/ct-ca9x4.c | 8 +- .../arm/mach-vexpress/include/mach/ct-ca9x4.h | 2 +- .../arm/mach-vexpress/include/mach/system.h | 33 + trunk/arch/arm/mach-vexpress/v2m.c | 20 +- .../arm/mach-vt8500/include/mach/system.h | 5 + trunk/arch/arm/mach-w90x900/dev.c | 1 - .../arm/mach-w90x900/include/mach/system.h | 19 + .../arch/arm/mach-zynq/include/mach/system.h | 23 + trunk/arch/arm/mm/Kconfig | 3 +- trunk/arch/arm/mm/cache-v7.S | 6 - trunk/arch/arm/mm/ioremap.c | 3 +- trunk/arch/arm/plat-mxc/audmux-v2.c | 8 +- .../arm/plat-mxc/devices/platform-ahci-imx.c | 16 +- trunk/arch/arm/plat-mxc/epit.c | 2 +- .../arm/plat-mxc/include/mach/board-mx31ads.h | 33 + .../arm/plat-mxc/include/mach/debug-macro.S | 2 +- trunk/arch/arm/plat-mxc/include/mach/dma.h | 3 +- trunk/arch/arm/plat-mxc/include/mach/system.h | 25 + trunk/arch/arm/plat-mxc/pwm.c | 4 +- trunk/arch/arm/plat-mxc/system.c | 2 +- trunk/arch/arm/plat-mxc/time.c | 2 +- trunk/arch/arm/plat-omap/common.c | 1 - .../arm/plat-omap/include/plat/omap-secure.h | 8 +- .../arm/plat-omap/include/plat/omap_hwmod.h | 2 + .../arch/arm/plat-omap/include/plat/system.h | 15 + trunk/arch/arm/plat-orion/common.c | 9 +- .../arch/arm/plat-orion/include/plat/common.h | 3 +- trunk/arch/arm/plat-orion/mpp.c | 3 +- trunk/arch/arm/plat-s3c24xx/cpu.c | 27 - trunk/arch/arm/plat-s3c24xx/s3c2443-clock.c | 2 +- trunk/arch/arm/plat-s5p/irq-eint.c | 2 +- trunk/arch/arm/plat-s5p/irq-gpioint.c | 2 +- trunk/arch/arm/plat-samsung/devs.c | 17 +- trunk/arch/arm/plat-samsung/dma-ops.c | 2 +- .../arm/plat-samsung/include/plat/dma-pl330.h | 16 - .../arm/plat-samsung/include/plat/regs-rtc.h | 81 +- .../arm/plat-samsung/include/plat/rtc-core.h | 27 - .../arm/plat-samsung/include/plat/sdhci.h | 2 - trunk/arch/arm/plat-samsung/platformdata.c | 2 - .../arch/arm/plat-spear/include/plat/system.h | 26 + trunk/arch/avr32/Kconfig | 1 - .../arch/avr32/mach-at32ap/include/mach/cpu.h | 3 + trunk/arch/c6x/Kconfig | 1 - trunk/arch/c6x/boot/Makefile | 2 +- trunk/arch/c6x/include/asm/irq.h | 245 +- trunk/arch/c6x/kernel/irq.c | 612 ++++- trunk/arch/c6x/platforms/megamod-pic.c | 25 +- trunk/arch/m68k/include/asm/mcf_pgtable.h | 3 +- trunk/arch/m68k/mm/mcfmmu.c | 9 +- trunk/arch/m68k/platform/coldfire/entry.S | 4 +- trunk/arch/microblaze/Kconfig | 1 - trunk/arch/microblaze/include/asm/hardirq.h | 16 + trunk/arch/microblaze/include/asm/irq.h | 42 +- trunk/arch/microblaze/kernel/intc.c | 61 +- trunk/arch/microblaze/kernel/irq.c | 24 +- trunk/arch/microblaze/kernel/setup.c | 23 +- trunk/arch/mips/Kconfig | 2 - trunk/arch/mips/include/asm/irq.h | 5 +- trunk/arch/mips/kernel/prom.c | 14 + trunk/arch/mips/lib/iomap-pci.c | 4 +- trunk/arch/openrisc/include/asm/prom.h | 10 +- trunk/arch/openrisc/include/asm/ptrace.h | 8 +- trunk/arch/openrisc/kernel/init_task.c | 1 - trunk/arch/openrisc/kernel/irq.c | 1 - trunk/arch/openrisc/kernel/ptrace.c | 12 +- trunk/arch/parisc/Makefile | 4 - trunk/arch/powerpc/Kconfig | 1 - trunk/arch/powerpc/configs/ppc64_defconfig | 5 + trunk/arch/powerpc/include/asm/ehv_pic.h | 2 +- trunk/arch/powerpc/include/asm/i8259.h | 2 +- trunk/arch/powerpc/include/asm/irq.h | 247 +- trunk/arch/powerpc/include/asm/mpic.h | 2 +- trunk/arch/powerpc/include/asm/ppc-pci.h | 5 - trunk/arch/powerpc/include/asm/ptrace.h | 20 +- trunk/arch/powerpc/include/asm/xics.h | 2 +- trunk/arch/powerpc/kernel/entry_32.S | 2 +- trunk/arch/powerpc/kernel/entry_64.S | 6 +- trunk/arch/powerpc/kernel/exceptions-64s.S | 2 +- trunk/arch/powerpc/kernel/irq.c | 623 ++++- trunk/arch/powerpc/kernel/perf_event.c | 8 +- trunk/arch/powerpc/kernel/process.c | 6 +- trunk/arch/powerpc/kernel/rtas.c | 5 +- trunk/arch/powerpc/kernel/signal.c | 12 +- trunk/arch/powerpc/kernel/signal.h | 2 +- .../powerpc/platforms/512x/mpc5121_ads_cpld.c | 12 +- trunk/arch/powerpc/platforms/52xx/media5200.c | 15 +- .../arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 16 +- .../arch/powerpc/platforms/52xx/mpc52xx_pic.c | 12 +- .../powerpc/platforms/82xx/pq2ads-pci-pic.c | 14 +- .../platforms/85xx/socrates_fpga_pic.c | 15 +- trunk/arch/powerpc/platforms/86xx/gef_pic.c | 15 +- trunk/arch/powerpc/platforms/cell/axon_msi.c | 29 +- .../powerpc/platforms/cell/beat_interrupt.c | 16 +- trunk/arch/powerpc/platforms/cell/interrupt.c | 16 +- .../arch/powerpc/platforms/cell/spider-pic.c | 14 +- .../platforms/embedded6xx/flipper-pic.c | 24 +- .../powerpc/platforms/embedded6xx/hlwd-pic.c | 29 +- trunk/arch/powerpc/platforms/iseries/irq.c | 11 +- trunk/arch/powerpc/platforms/powermac/pic.c | 26 +- trunk/arch/powerpc/platforms/powermac/smp.c | 9 +- trunk/arch/powerpc/platforms/powernv/pci.c | 22 +- trunk/arch/powerpc/platforms/ps3/interrupt.c | 11 +- trunk/arch/powerpc/platforms/pseries/eeh.c | 4 +- .../arch/powerpc/platforms/pseries/suspend.c | 6 +- trunk/arch/powerpc/platforms/wsp/ics.c | 2 +- trunk/arch/powerpc/platforms/wsp/opb_pic.c | 26 +- trunk/arch/powerpc/platforms/wsp/smp.c | 2 +- trunk/arch/powerpc/platforms/wsp/wsp_pci.c | 8 +- trunk/arch/powerpc/sysdev/cpm1.c | 9 +- trunk/arch/powerpc/sysdev/cpm2_pic.c | 23 +- trunk/arch/powerpc/sysdev/ehv_pic.c | 14 +- trunk/arch/powerpc/sysdev/fsl_msi.c | 10 +- trunk/arch/powerpc/sysdev/fsl_msi.h | 2 +- trunk/arch/powerpc/sysdev/fsl_pci.c | 48 +- trunk/arch/powerpc/sysdev/i8259.c | 15 +- trunk/arch/powerpc/sysdev/ipic.c | 31 +- trunk/arch/powerpc/sysdev/ipic.h | 2 +- trunk/arch/powerpc/sysdev/mpc8xx_pic.c | 11 +- trunk/arch/powerpc/sysdev/mpic.c | 17 +- trunk/arch/powerpc/sysdev/mpic_msi.c | 2 +- trunk/arch/powerpc/sysdev/mv64x60_pic.c | 11 +- trunk/arch/powerpc/sysdev/qe_lib/qe_ic.c | 26 +- trunk/arch/powerpc/sysdev/qe_lib/qe_ic.h | 2 +- trunk/arch/powerpc/sysdev/tsi108_pci.c | 13 +- trunk/arch/powerpc/sysdev/uic.c | 26 +- trunk/arch/powerpc/sysdev/xics/xics-common.c | 25 +- trunk/arch/powerpc/sysdev/xilinx_intc.c | 19 +- trunk/arch/s390/Kconfig | 3 - trunk/arch/s390/include/asm/compat.h | 7 + trunk/arch/s390/kernel/compat_wrapper.S | 2 +- trunk/arch/s390/kernel/crash_dump.c | 1 + trunk/arch/s390/kernel/process.c | 6 +- trunk/arch/s390/kernel/ptrace.c | 2 +- trunk/arch/s390/kernel/setup.c | 2 +- trunk/arch/s390/kernel/signal.c | 1 + trunk/arch/s390/kernel/time.c | 7 +- trunk/arch/s390/mm/fault.c | 1 + trunk/arch/s390/mm/init.c | 30 +- trunk/arch/s390/mm/mmap.c | 2 +- trunk/arch/s390/mm/pgtable.c | 2 +- trunk/arch/sh/Kconfig | 1 - trunk/arch/sh/boards/board-sh7757lcr.c | 20 +- trunk/arch/sh/boards/mach-ap325rxa/setup.c | 1 - trunk/arch/sh/boards/mach-ecovec24/setup.c | 2 - trunk/arch/sh/boards/mach-kfr2r09/setup.c | 1 - trunk/arch/sh/boards/mach-migor/setup.c | 2 - trunk/arch/sh/boards/mach-se/7724/setup.c | 1 - trunk/arch/sh/drivers/pci/pci-sh7780.c | 2 +- trunk/arch/sh/drivers/pci/pci.c | 4 +- trunk/arch/sh/include/asm/device.h | 8 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7724.c | 2 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7757.c | 22 +- trunk/arch/sh/kernel/smp.c | 2 +- trunk/arch/sh/kernel/topology.c | 2 +- trunk/arch/sh/mm/cache-sh2a.c | 2 - trunk/arch/sparc/Kconfig | 1 - trunk/arch/sparc/include/asm/prom.h | 10 +- trunk/arch/sparc/lib/divdi3.S | 16 +- trunk/arch/x86/Kconfig | 2 - trunk/arch/x86/include/asm/cmpxchg.h | 6 +- trunk/arch/x86/include/asm/i387.h | 307 +-- trunk/arch/x86/include/asm/irq_controller.h | 12 + trunk/arch/x86/include/asm/kvm_emulate.h | 16 - trunk/arch/x86/include/asm/perf_event.h | 8 - trunk/arch/x86/include/asm/processor.h | 2 - trunk/arch/x86/include/asm/prom.h | 10 + trunk/arch/x86/include/asm/thread_info.h | 2 + trunk/arch/x86/kernel/cpu/common.c | 5 - trunk/arch/x86/kernel/cpu/intel_cacheinfo.c | 44 +- trunk/arch/x86/kernel/cpu/mcheck/mce_amd.c | 2 - trunk/arch/x86/kernel/cpu/perf_event.h | 8 +- trunk/arch/x86/kernel/cpu/perf_event_amd.c | 37 +- .../arch/x86/kernel/cpu/perf_event_intel_ds.c | 1 + .../x86/kernel/cpu/perf_event_intel_lbr.c | 2 + trunk/arch/x86/kernel/devicetree.c | 101 +- trunk/arch/x86/kernel/dumpstack.c | 3 +- trunk/arch/x86/kernel/dumpstack_64.c | 8 +- trunk/arch/x86/kernel/entry_64.S | 9 +- trunk/arch/x86/kernel/microcode_amd.c | 1 + trunk/arch/x86/kernel/process_32.c | 26 +- trunk/arch/x86/kernel/process_64.c | 30 +- trunk/arch/x86/kernel/reboot.c | 36 +- trunk/arch/x86/kernel/traps.c | 43 +- trunk/arch/x86/kernel/xsave.c | 12 +- trunk/arch/x86/kvm/emulate.c | 51 - trunk/arch/x86/kvm/svm.c | 5 - trunk/arch/x86/kvm/vmx.c | 2 +- trunk/arch/x86/kvm/x86.c | 45 - trunk/arch/x86/mm/fault.c | 4 +- trunk/arch/x86/pci/xen.c | 2 +- trunk/arch/x86/xen/enlighten.c | 6 +- trunk/arch/x86/xen/mmu.c | 8 +- trunk/arch/x86/xen/smp.c | 7 - trunk/arch/xtensa/include/asm/string.h | 3 + trunk/block/blk-cgroup.c | 2 +- trunk/block/blk-core.c | 33 +- trunk/block/blk-ioc.c | 111 +- trunk/block/blk-merge.c | 37 - trunk/block/blk.h | 2 - trunk/block/bsg.c | 3 +- trunk/block/cfq-iosched.c | 24 +- trunk/block/elevator.c | 55 +- trunk/block/partitions/ldm.c | 11 +- trunk/crypto/sha512_generic.c | 83 +- trunk/drivers/acpi/processor_driver.c | 7 + trunk/drivers/amba/bus.c | 105 +- trunk/drivers/ata/pata_at91.c | 48 +- trunk/drivers/atm/solos-pci.c | 4 +- trunk/drivers/base/cpu.c | 21 - trunk/drivers/base/memory.c | 31 +- trunk/drivers/base/node.c | 8 - trunk/drivers/base/power/domain.c | 32 - trunk/drivers/base/regmap/regcache.c | 4 +- trunk/drivers/bcma/main.c | 4 +- trunk/drivers/bcma/scan.c | 19 +- trunk/drivers/block/floppy.c | 17 +- trunk/drivers/block/loop.c | 24 +- trunk/drivers/block/mtip32xx/mtip32xx.c | 11 +- trunk/drivers/block/mtip32xx/mtip32xx.h | 5 + trunk/drivers/block/nvme.c | 2 - trunk/drivers/block/rbd.c | 7 +- trunk/drivers/bluetooth/btusb.c | 4 +- trunk/drivers/cdrom/cdrom.c | 20 +- trunk/drivers/cpuidle/Kconfig | 2 +- trunk/drivers/crypto/mv_cesa.c | 1 - trunk/drivers/devfreq/exynos4_bus.c | 230 +- trunk/drivers/dma/at_hdmac.c | 4 +- trunk/drivers/dma/at_hdmac_regs.h | 17 +- trunk/drivers/dma/dmatest.c | 2 +- trunk/drivers/dma/imx-sdma.c | 6 +- trunk/drivers/dma/shdma.c | 3 +- trunk/drivers/edac/i3200_edac.c | 15 +- trunk/drivers/firewire/ohci.c | 6 +- trunk/drivers/gpio/gpio-lpc32xx.c | 2 +- trunk/drivers/gpio/gpio-ml-ioh.c | 1 - trunk/drivers/gpio/gpio-mpc8xxx.c | 30 +- trunk/drivers/gpio/gpio-pch.c | 1 - trunk/drivers/gpio/gpio-samsung.c | 23 +- trunk/drivers/gpio/gpio-tegra.c | 59 +- trunk/drivers/gpu/drm/drm_ioc32.c | 3 +- .../gpu/drm/exynos/exynos_drm_connector.c | 16 +- .../drivers/gpu/drm/exynos/exynos_drm_core.c | 3 - .../drivers/gpu/drm/exynos/exynos_drm_crtc.c | 6 +- trunk/drivers/gpu/drm/exynos/exynos_drm_drv.c | 26 +- trunk/drivers/gpu/drm/exynos/exynos_drm_drv.h | 4 +- .../gpu/drm/exynos/exynos_drm_encoder.c | 34 - .../gpu/drm/exynos/exynos_drm_encoder.h | 1 - .../drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 70 +- .../drivers/gpu/drm/exynos/exynos_drm_fimd.c | 34 +- trunk/drivers/gpu/drm/exynos/exynos_mixer.c | 19 +- trunk/drivers/gpu/drm/i915/i915_reg.h | 15 - trunk/drivers/gpu/drm/i915/intel_display.c | 45 +- trunk/drivers/gpu/drm/i915/intel_dp.c | 20 +- trunk/drivers/gpu/drm/i915/intel_lvds.c | 8 - trunk/drivers/gpu/drm/i915/intel_ringbuffer.c | 14 +- trunk/drivers/gpu/drm/nouveau/nouveau_bios.h | 5 +- .../drivers/gpu/drm/nouveau/nouveau_display.c | 10 - trunk/drivers/gpu/drm/nouveau/nouveau_drv.c | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_gem.c | 23 +- trunk/drivers/gpu/drm/nouveau/nouveau_mxm.c | 9 - trunk/drivers/gpu/drm/nouveau/nv50_pm.c | 4 +- trunk/drivers/gpu/drm/radeon/atombios_crtc.c | 4 +- trunk/drivers/gpu/drm/radeon/atombios_dp.c | 18 +- trunk/drivers/gpu/drm/radeon/evergreen.c | 2 - trunk/drivers/gpu/drm/radeon/ni.c | 1 - trunk/drivers/gpu/drm/radeon/r100.c | 12 +- trunk/drivers/gpu/drm/radeon/r300.c | 8 +- trunk/drivers/gpu/drm/radeon/r420.c | 8 +- trunk/drivers/gpu/drm/radeon/r520.c | 8 +- trunk/drivers/gpu/drm/radeon/r600.c | 1 - trunk/drivers/gpu/drm/radeon/r600_blit_kms.c | 35 +- trunk/drivers/gpu/drm/radeon/r600_cs.c | 1 - .../drivers/gpu/drm/radeon/radeon_atombios.c | 20 - .../gpu/drm/radeon/radeon_atpx_handler.c | 3 +- .../gpu/drm/radeon/radeon_connectors.c | 25 +- trunk/drivers/gpu/drm/radeon/radeon_cs.c | 4 - trunk/drivers/gpu/drm/radeon/radeon_device.c | 4 - trunk/drivers/gpu/drm/radeon/radeon_fence.c | 4 +- trunk/drivers/gpu/drm/radeon/radeon_gart.c | 2 +- trunk/drivers/gpu/drm/radeon/radeon_i2c.c | 1 - trunk/drivers/gpu/drm/radeon/radeon_ring.c | 7 +- trunk/drivers/gpu/drm/radeon/rs400.c | 8 +- trunk/drivers/gpu/drm/radeon/rs600.c | 12 +- trunk/drivers/gpu/drm/radeon/rs690.c | 8 +- trunk/drivers/gpu/drm/radeon/rv515.c | 8 +- trunk/drivers/gpu/drm/radeon/rv770.c | 1 - trunk/drivers/hid/hid-hyperv.c | 1 - trunk/drivers/hid/hid-wacom.c | 7 +- trunk/drivers/hid/hid-wiimote-core.c | 4 +- trunk/drivers/hid/usbhid/hiddev.c | 4 +- trunk/drivers/hwmon/ads1015.c | 3 +- trunk/drivers/hwmon/f75375s.c | 103 +- trunk/drivers/hwmon/max6639.c | 22 +- trunk/drivers/hwmon/pmbus/max34440.c | 2 +- trunk/drivers/hwmon/w83627ehf.c | 28 +- trunk/drivers/i2c/busses/i2c-imx.c | 4 +- trunk/drivers/i2c/busses/i2c-mxs.c | 13 +- trunk/drivers/i2c/busses/i2c-omap.c | 2 +- trunk/drivers/i2c/busses/i2c-tegra.c | 2 +- trunk/drivers/ide/Makefile | 1 + trunk/drivers/ide/at91_ide.c | 366 +++ trunk/drivers/infiniband/core/ucma.c | 5 +- trunk/drivers/infiniband/core/uverbs_cmd.c | 1 - trunk/drivers/infiniband/core/verbs.c | 2 +- trunk/drivers/infiniband/hw/ipath/ipath_fs.c | 2 +- trunk/drivers/infiniband/hw/mlx4/mad.c | 7 +- trunk/drivers/infiniband/hw/nes/nes.c | 2 +- trunk/drivers/infiniband/hw/nes/nes.h | 2 +- trunk/drivers/infiniband/hw/nes/nes_cm.c | 10 +- trunk/drivers/infiniband/hw/nes/nes_cm.h | 2 +- trunk/drivers/infiniband/hw/nes/nes_context.h | 2 +- trunk/drivers/infiniband/hw/nes/nes_hw.c | 2 +- trunk/drivers/infiniband/hw/nes/nes_hw.h | 2 +- trunk/drivers/infiniband/hw/nes/nes_mgt.c | 2 +- trunk/drivers/infiniband/hw/nes/nes_mgt.h | 2 +- trunk/drivers/infiniband/hw/nes/nes_nic.c | 2 +- trunk/drivers/infiniband/hw/nes/nes_user.h | 2 +- trunk/drivers/infiniband/hw/nes/nes_utils.c | 2 +- trunk/drivers/infiniband/hw/nes/nes_verbs.c | 6 +- trunk/drivers/infiniband/hw/nes/nes_verbs.h | 2 +- trunk/drivers/infiniband/hw/qib/qib_iba6120.c | 2 +- trunk/drivers/infiniband/hw/qib/qib_pcie.c | 2 +- trunk/drivers/infiniband/ulp/ipoib/ipoib.h | 6 +- .../drivers/infiniband/ulp/ipoib/ipoib_main.c | 55 +- .../infiniband/ulp/ipoib/ipoib_multicast.c | 10 +- trunk/drivers/infiniband/ulp/srpt/ib_srpt.c | 17 +- trunk/drivers/infiniband/ulp/srpt/ib_srpt.h | 1 + trunk/drivers/input/evdev.c | 2 +- trunk/drivers/input/keyboard/twl4030_keypad.c | 4 +- trunk/drivers/input/serio/i8042-x86ia64io.h | 7 - trunk/drivers/input/serio/serio_raw.c | 15 +- trunk/drivers/iommu/amd_iommu.c | 3 - trunk/drivers/iommu/msm_iommu.c | 7 +- trunk/drivers/iommu/omap-iommu-debug.c | 59 +- trunk/drivers/iommu/omap-iommu.c | 3 +- trunk/drivers/isdn/i4l/isdn_net.c | 2 +- trunk/drivers/leds/leds-lm3530.c | 4 +- trunk/drivers/macintosh/adb.c | 4 +- trunk/drivers/md/dm-raid.c | 12 +- trunk/drivers/md/md.c | 5 +- trunk/drivers/media/radio/wl128x/Kconfig | 4 +- trunk/drivers/media/rc/imon.c | 26 +- trunk/drivers/media/video/hdpvr/hdpvr-core.c | 18 +- trunk/drivers/media/video/hdpvr/hdpvr-video.c | 46 +- trunk/drivers/media/video/hdpvr/hdpvr.h | 1 - trunk/drivers/media/video/omap3isp/ispccdc.c | 2 +- trunk/drivers/mfd/Kconfig | 3 +- trunk/drivers/mfd/twl-core.c | 19 +- trunk/drivers/mfd/twl4030-power.c | 20 +- trunk/drivers/mfd/twl6040-core.c | 128 +- trunk/drivers/misc/Kconfig | 17 +- .../drivers/misc/c2port/c2port-duramar2150.c | 1 - trunk/drivers/misc/cb710/core.c | 1 - trunk/drivers/misc/cs5535-mfgpt.c | 2 +- trunk/drivers/misc/lkdtm.c | 6 +- trunk/drivers/misc/vmw_balloon.c | 14 +- trunk/drivers/mmc/card/block.c | 1 - trunk/drivers/mmc/core/core.c | 49 +- trunk/drivers/mmc/core/host.h | 21 + trunk/drivers/mmc/core/mmc.c | 26 +- trunk/drivers/mmc/core/sd.c | 22 +- trunk/drivers/mmc/core/sdio.c | 7 +- trunk/drivers/mmc/core/sdio_irq.c | 10 +- trunk/drivers/mmc/host/Kconfig | 1 + trunk/drivers/mmc/host/at91_mci.c | 1 + trunk/drivers/mmc/host/atmel-mci.c | 3 - trunk/drivers/mmc/host/dw_mmc.c | 144 +- trunk/drivers/mmc/host/mmci.c | 2 +- trunk/drivers/mmc/host/of_mmc_spi.c | 4 +- trunk/drivers/mmc/host/sdhci-esdhc-imx.c | 6 +- trunk/drivers/mmc/host/sdhci-of-esdhc.c | 32 - trunk/drivers/mmc/host/sdhci-pci.c | 2 +- trunk/drivers/mmc/host/sdhci-pltfm.c | 10 +- trunk/drivers/mmc/host/sdhci-s3c.c | 6 +- trunk/drivers/mmc/host/sh_mmcif.c | 16 +- trunk/drivers/mmc/host/tmio_mmc.h | 7 +- trunk/drivers/mmc/host/tmio_mmc_dma.c | 12 - trunk/drivers/mmc/host/tmio_mmc_pio.c | 6 +- trunk/drivers/mtd/mtdcore.c | 2 +- trunk/drivers/mtd/nand/atmel_nand.c | 45 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-lib.c | 18 +- trunk/drivers/mtd/nand/nand_base.c | 2 +- trunk/drivers/net/Space.c | 2 - trunk/drivers/net/can/cc770/cc770.c | 4 +- trunk/drivers/net/can/cc770/cc770_isa.c | 16 +- trunk/drivers/net/can/flexcan.c | 7 +- trunk/drivers/net/can/pch_can.c | 3 +- trunk/drivers/net/can/sja1000/peak_pci.c | 23 +- trunk/drivers/net/can/sja1000/sja1000.c | 13 +- trunk/drivers/net/can/ti_hecc.c | 3 +- trunk/drivers/net/can/usb/ems_usb.c | 9 + trunk/drivers/net/ethernet/3com/3c59x.c | 2 +- .../net/ethernet/atheros/atl1c/atl1c_main.c | 4 + trunk/drivers/net/ethernet/broadcom/b44.c | 2 +- .../net/ethernet/broadcom/bcm63xx_enet.c | 2 +- .../net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 3 +- .../net/ethernet/broadcom/bnx2x/bnx2x_main.c | 17 +- .../net/ethernet/broadcom/bnx2x/bnx2x_stats.c | 8 +- trunk/drivers/net/ethernet/broadcom/cnic.c | 6 +- .../net/ethernet/brocade/bna/bnad_ethtool.c | 10 +- trunk/drivers/net/ethernet/cirrus/Kconfig | 19 +- trunk/drivers/net/ethernet/cirrus/cs89x0.c | 148 +- .../net/ethernet/cisco/enic/cq_enet_desc.h | 2 +- .../drivers/net/ethernet/cisco/enic/enic_pp.c | 2 +- .../net/ethernet/emulex/benet/be_ethtool.c | 6 +- trunk/drivers/net/ethernet/freescale/fec.c | 4 +- .../net/ethernet/intel/e1000/e1000_main.c | 10 +- .../drivers/net/ethernet/intel/igb/igb_main.c | 3 +- .../drivers/net/ethernet/intel/igbvf/Makefile | 2 +- .../net/ethernet/intel/igbvf/defines.h | 2 +- .../net/ethernet/intel/igbvf/ethtool.c | 2 +- .../drivers/net/ethernet/intel/igbvf/igbvf.h | 2 +- trunk/drivers/net/ethernet/intel/igbvf/mbx.c | 2 +- trunk/drivers/net/ethernet/intel/igbvf/mbx.h | 2 +- .../drivers/net/ethernet/intel/igbvf/netdev.c | 4 +- trunk/drivers/net/ethernet/intel/igbvf/regs.h | 2 +- trunk/drivers/net/ethernet/intel/igbvf/vf.c | 2 +- trunk/drivers/net/ethernet/intel/igbvf/vf.h | 2 +- .../drivers/net/ethernet/intel/ixgbe/Makefile | 2 +- .../drivers/net/ethernet/intel/ixgbe/ixgbe.h | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_82598.c | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_82599.c | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_common.h | 4 +- .../net/ethernet/intel/ixgbe/ixgbe_dcb.c | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_dcb.h | 2 +- .../ethernet/intel/ixgbe/ixgbe_dcb_82598.c | 2 +- .../ethernet/intel/ixgbe/ixgbe_dcb_82598.h | 2 +- .../ethernet/intel/ixgbe/ixgbe_dcb_82599.c | 2 +- .../ethernet/intel/ixgbe/ixgbe_dcb_82599.h | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 13 +- .../net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 92 +- .../net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_fcoe.h | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_main.c | 22 +- .../net/ethernet/intel/ixgbe/ixgbe_mbx.c | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_mbx.h | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_phy.c | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_phy.h | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_sriov.c | 8 +- .../net/ethernet/intel/ixgbe/ixgbe_sriov.h | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_type.h | 2 +- .../net/ethernet/intel/ixgbe/ixgbe_x540.c | 2 +- .../net/ethernet/intel/ixgbevf/Makefile | 2 +- .../net/ethernet/intel/ixgbevf/defines.h | 2 +- .../net/ethernet/intel/ixgbevf/ethtool.c | 2 +- .../net/ethernet/intel/ixgbevf/ixgbevf.h | 2 +- .../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 12 +- .../drivers/net/ethernet/intel/ixgbevf/mbx.c | 2 +- .../drivers/net/ethernet/intel/ixgbevf/mbx.h | 2 +- .../drivers/net/ethernet/intel/ixgbevf/regs.h | 2 +- trunk/drivers/net/ethernet/intel/ixgbevf/vf.c | 21 +- trunk/drivers/net/ethernet/intel/ixgbevf/vf.h | 2 +- trunk/drivers/net/ethernet/jme.c | 10 +- trunk/drivers/net/ethernet/jme.h | 2 +- trunk/drivers/net/ethernet/marvell/skge.c | 71 +- .../drivers/net/ethernet/mellanox/mlx4/cmd.c | 10 +- .../net/ethernet/mellanox/mlx4/en_netdev.c | 3 +- .../net/ethernet/mellanox/mlx4/en_rx.c | 10 +- trunk/drivers/net/ethernet/mellanox/mlx4/eq.c | 13 +- trunk/drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +- .../drivers/net/ethernet/mellanox/mlx4/main.c | 10 +- .../drivers/net/ethernet/mellanox/mlx4/mcg.c | 16 +- .../drivers/net/ethernet/mellanox/mlx4/mlx4.h | 2 +- .../net/ethernet/mellanox/mlx4/mlx4_en.h | 3 +- trunk/drivers/net/ethernet/mellanox/mlx4/mr.c | 12 +- .../ethernet/mellanox/mlx4/resource_tracker.c | 21 +- trunk/drivers/net/ethernet/micrel/Kconfig | 1 + trunk/drivers/net/ethernet/micrel/ks8851.c | 2 +- .../drivers/net/ethernet/micrel/ks8851_mll.c | 14 +- .../drivers/net/ethernet/octeon/octeon_mgmt.c | 4 +- trunk/drivers/net/ethernet/renesas/sh_eth.c | 4 +- trunk/drivers/net/ethernet/renesas/sh_eth.h | 3 + trunk/drivers/net/ethernet/sfc/rx.c | 4 +- .../net/ethernet/stmicro/stmmac/common.h | 1 - .../net/ethernet/stmicro/stmmac/enh_desc.c | 2 +- .../net/ethernet/stmicro/stmmac/norm_desc.c | 2 +- .../net/ethernet/stmicro/stmmac/stmmac.h | 5 +- .../ethernet/stmicro/stmmac/stmmac_ethtool.c | 7 +- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 205 +- .../net/ethernet/stmicro/stmmac/stmmac_pci.c | 6 +- .../ethernet/stmicro/stmmac/stmmac_platform.c | 23 +- trunk/drivers/net/ethernet/ti/cpmac.c | 4 +- trunk/drivers/net/ethernet/ti/davinci_emac.c | 9 +- trunk/drivers/net/ethernet/ti/davinci_mdio.c | 2 +- trunk/drivers/net/ethernet/toshiba/Kconfig | 2 +- trunk/drivers/net/ethernet/via/via-velocity.c | 3 + .../drivers/net/ethernet/xscale/ixp4xx_eth.c | 3 +- trunk/drivers/net/hyperv/netvsc_drv.c | 18 +- trunk/drivers/net/hyperv/rndis_filter.c | 32 - trunk/drivers/net/phy/icplus.c | 55 +- trunk/drivers/net/phy/mdio-gpio.c | 4 +- trunk/drivers/net/ppp/ppp_generic.c | 23 - trunk/drivers/net/tokenring/Kconfig | 5 +- trunk/drivers/net/usb/cdc_ether.c | 7 - trunk/drivers/net/usb/hso.c | 2 +- trunk/drivers/net/usb/ipheth.c | 5 - trunk/drivers/net/usb/zaurus.c | 12 - trunk/drivers/net/veth.c | 4 +- trunk/drivers/net/vmxnet3/vmxnet3_drv.c | 4 +- trunk/drivers/net/wireless/ath/ath9k/hw.c | 7 +- trunk/drivers/net/wireless/ath/ath9k/init.c | 9 +- trunk/drivers/net/wireless/ath/ath9k/rc.c | 4 +- trunk/drivers/net/wireless/ath/ath9k/recv.c | 8 - .../drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 14 +- .../net/wireless/iwlwifi/iwl-commands.h | 1 - .../net/wireless/iwlwifi/iwl-trans-pcie.c | 1 - trunk/drivers/net/wireless/mwifiex/cfg80211.c | 8 +- trunk/drivers/net/wireless/mwifiex/init.c | 3 +- trunk/drivers/net/wireless/mwifiex/main.c | 12 +- .../drivers/net/wireless/mwifiex/sta_ioctl.c | 8 +- trunk/drivers/net/wireless/rt2x00/rt2800lib.c | 8 +- trunk/drivers/net/wireless/rtlwifi/pci.c | 4 +- trunk/drivers/net/wireless/zd1211rw/zd_mac.c | 8 - trunk/drivers/of/platform.c | 10 +- trunk/drivers/parisc/iommu-helpers.h | 2 - trunk/drivers/pci/iov.c | 3 +- trunk/drivers/pci/probe.c | 5 - trunk/drivers/pci/remove.c | 28 +- trunk/drivers/pci/xen-pcifront.c | 10 +- trunk/drivers/pcmcia/ds.c | 4 +- trunk/drivers/pcmcia/pxa2xx_base.c | 12 +- trunk/drivers/pinctrl/core.c | 2 +- trunk/drivers/platform/x86/ibm_rtl.c | 15 +- trunk/drivers/platform/x86/intel_ips.c | 15 +- trunk/drivers/power/bq27x00_battery.c | 15 +- trunk/drivers/power/charger-manager.c | 4 +- trunk/drivers/power/lp8727_charger.c | 1 - trunk/drivers/regulator/88pm8607.c | 6 +- trunk/drivers/regulator/Kconfig | 8 + trunk/drivers/regulator/Makefile | 1 + trunk/drivers/regulator/bq24022.c | 162 ++ trunk/drivers/regulator/max8649.c | 2 +- .../regulator/mc13xxx-regulator-core.c | 2 - trunk/drivers/rtc/Kconfig | 4 +- trunk/drivers/rtc/rtc-at91sam9.c | 13 +- trunk/drivers/rtc/rtc-s3c.c | 71 +- trunk/drivers/rtc/rtc-sa1100.c | 207 +- trunk/drivers/s390/block/dasd_eckd.c | 2 +- trunk/drivers/s390/block/dasd_ioctl.c | 1 - trunk/drivers/s390/char/con3215.c | 22 +- trunk/drivers/s390/char/fs3270.c | 1 - trunk/drivers/s390/char/vmcp.c | 1 - trunk/drivers/s390/cio/chsc_sch.c | 1 - trunk/drivers/s390/scsi/zfcp_cfdc.c | 1 - .../scsi/device_handler/scsi_dh_rdac.c | 25 +- trunk/drivers/scsi/ipr.c | 24 +- trunk/drivers/scsi/isci/host.c | 4 +- trunk/drivers/scsi/mpt2sas/mpt2sas_base.c | 3 +- trunk/drivers/scsi/osd/osd_uld.c | 4 +- trunk/drivers/scsi/qla2xxx/qla_attr.c | 13 +- trunk/drivers/scsi/qla2xxx/qla_bsg.c | 50 +- trunk/drivers/scsi/qla2xxx/qla_dbg.c | 3 +- trunk/drivers/scsi/qla2xxx/qla_def.h | 1 - trunk/drivers/scsi/qla2xxx/qla_inline.h | 13 - trunk/drivers/scsi/qla2xxx/qla_isr.c | 1 + trunk/drivers/scsi/qla2xxx/qla_mbx.c | 7 +- trunk/drivers/scsi/qla2xxx/qla_nx.c | 15 +- trunk/drivers/scsi/qla2xxx/qla_os.c | 19 +- trunk/drivers/scsi/qla2xxx/qla_version.h | 2 +- trunk/drivers/scsi/qla4xxx/ql4_nx.c | 23 +- trunk/drivers/scsi/scsi_pm.c | 16 - trunk/drivers/scsi/scsi_priv.h | 1 - trunk/drivers/scsi/scsi_scan.c | 4 +- trunk/drivers/sh/clk/cpg.c | 2 +- trunk/drivers/spi/Kconfig | 2 +- trunk/drivers/spi/spi-topcliff-pch.c | 6 +- trunk/drivers/ssb/driver_pcicore.c | 2 +- trunk/drivers/staging/Kconfig | 4 + trunk/drivers/staging/Makefile | 2 + trunk/drivers/staging/android/Kconfig | 5 +- trunk/drivers/staging/android/Makefile | 1 + trunk/drivers/staging/android/android_pmem.h | 93 + trunk/drivers/staging/android/binder.c | 13 +- .../drivers/staging/android/lowmemorykiller.c | 5 +- trunk/drivers/staging/android/pmem.c | 1345 +++++++++++ trunk/drivers/staging/asus_oled/asus_oled.c | 13 +- trunk/drivers/staging/gma500/Kconfig | 33 + trunk/drivers/staging/gma500/Makefile | 52 + trunk/drivers/staging/gma500/TODO | 15 + trunk/drivers/staging/gma500/accel_2d.c | 414 ++++ trunk/drivers/staging/gma500/backlight.c | 49 + trunk/drivers/staging/gma500/cdv_device.c | 350 +++ trunk/drivers/staging/gma500/cdv_device.h | 36 + trunk/drivers/staging/gma500/cdv_intel_crt.c | 326 +++ .../staging/gma500/cdv_intel_display.c | 1508 ++++++++++++ trunk/drivers/staging/gma500/cdv_intel_hdmi.c | 376 +++ trunk/drivers/staging/gma500/cdv_intel_lvds.c | 721 ++++++ trunk/drivers/staging/gma500/displays/hdmi.h | 33 + .../drivers/staging/gma500/displays/pyr_cmd.h | 34 + .../drivers/staging/gma500/displays/pyr_vid.h | 34 + .../drivers/staging/gma500/displays/tmd_cmd.h | 34 + .../drivers/staging/gma500/displays/tmd_vid.h | 34 + .../drivers/staging/gma500/displays/tpo_cmd.h | 35 + .../drivers/staging/gma500/displays/tpo_vid.h | 33 + trunk/drivers/staging/gma500/framebuffer.c | 856 +++++++ trunk/drivers/staging/gma500/framebuffer.h | 48 + trunk/drivers/staging/gma500/gem.c | 292 +++ trunk/drivers/staging/gma500/gem_glue.c | 89 + trunk/drivers/staging/gma500/gem_glue.h | 2 + trunk/drivers/staging/gma500/gtt.c | 553 +++++ trunk/drivers/staging/gma500/gtt.h | 64 + trunk/drivers/staging/gma500/intel_bios.c | 303 +++ trunk/drivers/staging/gma500/intel_bios.h | 430 ++++ trunk/drivers/staging/gma500/intel_i2c.c | 170 ++ trunk/drivers/staging/gma500/intel_opregion.c | 81 + trunk/drivers/staging/gma500/mdfld_device.c | 714 ++++++ trunk/drivers/staging/gma500/mdfld_dsi_dbi.c | 761 ++++++ trunk/drivers/staging/gma500/mdfld_dsi_dbi.h | 173 ++ .../staging/gma500/mdfld_dsi_dbi_dpu.c | 778 +++++++ .../staging/gma500/mdfld_dsi_dbi_dpu.h | 154 ++ trunk/drivers/staging/gma500/mdfld_dsi_dpi.c | 805 +++++++ trunk/drivers/staging/gma500/mdfld_dsi_dpi.h | 78 + .../drivers/staging/gma500/mdfld_dsi_output.c | 1014 ++++++++ .../drivers/staging/gma500/mdfld_dsi_output.h | 138 ++ .../staging/gma500/mdfld_dsi_pkg_sender.c | 1484 ++++++++++++ .../staging/gma500/mdfld_dsi_pkg_sender.h | 184 ++ .../staging/gma500/mdfld_intel_display.c | 1404 +++++++++++ trunk/drivers/staging/gma500/mdfld_msic.h | 31 + trunk/drivers/staging/gma500/mdfld_output.c | 171 ++ trunk/drivers/staging/gma500/mdfld_output.h | 41 + trunk/drivers/staging/gma500/mdfld_pyr_cmd.c | 558 +++++ trunk/drivers/staging/gma500/mdfld_tmd_vid.c | 206 ++ trunk/drivers/staging/gma500/mdfld_tpo_cmd.c | 509 ++++ trunk/drivers/staging/gma500/mdfld_tpo_vid.c | 140 ++ trunk/drivers/staging/gma500/medfield.h | 268 +++ trunk/drivers/staging/gma500/mid_bios.c | 270 +++ trunk/drivers/staging/gma500/mid_bios.h | 21 + trunk/drivers/staging/gma500/mmu.c | 858 +++++++ trunk/drivers/staging/gma500/mrst.h | 252 ++ trunk/drivers/staging/gma500/mrst_crtc.c | 604 +++++ trunk/drivers/staging/gma500/mrst_device.c | 634 +++++ trunk/drivers/staging/gma500/mrst_hdmi.c | 852 +++++++ trunk/drivers/staging/gma500/mrst_hdmi_i2c.c | 328 +++ trunk/drivers/staging/gma500/mrst_lvds.c | 407 ++++ trunk/drivers/staging/gma500/power.c | 318 +++ trunk/drivers/staging/gma500/power.h | 67 + trunk/drivers/staging/gma500/psb_device.c | 321 +++ trunk/drivers/staging/gma500/psb_drm.h | 219 ++ trunk/drivers/staging/gma500/psb_drv.c | 1230 ++++++++++ trunk/drivers/staging/gma500/psb_drv.h | 952 ++++++++ .../staging/gma500/psb_intel_display.c | 1429 ++++++++++++ .../staging/gma500/psb_intel_display.h | 28 + trunk/drivers/staging/gma500/psb_intel_drv.h | 230 ++ trunk/drivers/staging/gma500/psb_intel_lvds.c | 854 +++++++ .../drivers/staging/gma500/psb_intel_modes.c | 77 + trunk/drivers/staging/gma500/psb_intel_reg.h | 1235 ++++++++++ trunk/drivers/staging/gma500/psb_intel_sdvo.c | 1293 +++++++++++ .../staging/gma500/psb_intel_sdvo_regs.h | 338 +++ trunk/drivers/staging/gma500/psb_irq.c | 627 +++++ trunk/drivers/staging/gma500/psb_irq.h | 45 + trunk/drivers/staging/gma500/psb_lid.c | 88 + trunk/drivers/staging/gma500/psb_reg.h | 582 +++++ .../drivers/staging/media/go7007/go7007-usb.c | 1 - trunk/drivers/staging/omapdrm/Makefile | 1 - trunk/drivers/staging/omapdrm/omap_crtc.c | 191 +- trunk/drivers/staging/omapdrm/omap_drv.c | 81 +- trunk/drivers/staging/omapdrm/omap_drv.h | 52 +- trunk/drivers/staging/omapdrm/omap_fb.c | 224 +- trunk/drivers/staging/omapdrm/omap_fbdev.c | 59 +- trunk/drivers/staging/omapdrm/omap_gem.c | 23 +- trunk/drivers/staging/omapdrm/omap_plane.c | 344 --- trunk/drivers/staging/omapdrm/omap_priv.h | 12 +- trunk/drivers/staging/pohmelfs/Kconfig | 20 + trunk/drivers/staging/pohmelfs/Makefile | 3 + trunk/drivers/staging/pohmelfs/config.c | 611 +++++ trunk/drivers/staging/pohmelfs/crypto.c | 878 +++++++ trunk/drivers/staging/pohmelfs/dir.c | 1102 +++++++++ trunk/drivers/staging/pohmelfs/inode.c | 2055 +++++++++++++++++ trunk/drivers/staging/pohmelfs/lock.c | 182 ++ trunk/drivers/staging/pohmelfs/mcache.c | 171 ++ trunk/drivers/staging/pohmelfs/net.c | 1209 ++++++++++ trunk/drivers/staging/pohmelfs/netfs.h | 919 ++++++++ trunk/drivers/staging/pohmelfs/path_entry.c | 120 + trunk/drivers/staging/pohmelfs/trans.c | 706 ++++++ trunk/drivers/staging/rtl8712/drv_types.h | 7 - trunk/drivers/staging/rtl8712/hal_init.c | 62 +- trunk/drivers/staging/rtl8712/os_intfs.c | 14 +- trunk/drivers/staging/rtl8712/rtl8712_hal.h | 1 - .../drivers/staging/rtl8712/rtl871x_sta_mgt.c | 1 - trunk/drivers/staging/rtl8712/usb_intf.c | 10 +- .../staging/tidspbridge/core/tiomap3430.c | 2 + .../staging/tidspbridge/rmgr/drv_interface.c | 58 +- trunk/drivers/staging/usbip/stub_main.c | 4 +- trunk/drivers/staging/zcache/zcache-main.c | 25 +- trunk/drivers/target/iscsi/iscsi_target.c | 39 +- .../target/iscsi/iscsi_target_configfs.c | 1 - .../drivers/target/iscsi/iscsi_target_core.h | 6 +- .../drivers/target/iscsi/iscsi_target_erl1.c | 4 +- .../drivers/target/iscsi/iscsi_target_login.c | 39 +- .../drivers/target/iscsi/iscsi_target_util.c | 11 - trunk/drivers/target/target_core_alua.c | 8 +- trunk/drivers/target/target_core_cdb.c | 51 +- trunk/drivers/target/target_core_configfs.c | 12 +- trunk/drivers/target/target_core_device.c | 28 +- .../target/target_core_fabric_configfs.c | 4 +- trunk/drivers/target/target_core_iblock.c | 11 +- trunk/drivers/target/target_core_internal.h | 2 +- trunk/drivers/target/target_core_pr.c | 43 +- trunk/drivers/target/target_core_pscsi.c | 4 +- trunk/drivers/target/target_core_tpg.c | 3 +- trunk/drivers/target/target_core_transport.c | 124 +- trunk/drivers/target/tcm_fc/tfc_cmd.c | 9 +- trunk/drivers/tty/serial/8250/8250.c | 2 +- .../drivers/tty/serial/{ => 8250}/m32r_sio.c | 0 .../drivers/tty/serial/{ => 8250}/m32r_sio.h | 0 .../tty/serial/{ => 8250}/m32r_sio_reg.h | 0 trunk/drivers/tty/serial/imx.c | 7 +- trunk/drivers/tty/serial/omap-serial.c | 30 +- trunk/drivers/tty/serial/samsung.c | 3 +- trunk/drivers/tty/vt/vt_ioctl.c | 1 + trunk/drivers/usb/core/hcd-pci.c | 5 +- trunk/drivers/usb/core/hcd.c | 6 +- trunk/drivers/usb/core/hub.c | 30 +- trunk/drivers/usb/gadget/Kconfig | 4 +- trunk/drivers/usb/gadget/f_loopback.c | 2 +- trunk/drivers/usb/host/Kconfig | 8 +- trunk/drivers/usb/host/ehci-fsl.c | 11 +- trunk/drivers/usb/host/ehci-fsl.h | 1 - trunk/drivers/usb/host/pci-quirks.c | 17 - trunk/drivers/usb/host/xhci-hub.c | 2 +- trunk/drivers/usb/host/xhci-mem.c | 32 +- trunk/drivers/usb/host/xhci.c | 5 - trunk/drivers/usb/musb/musb_io.h | 3 +- trunk/drivers/usb/otg/Kconfig | 2 +- trunk/drivers/usb/serial/cp210x.c | 2 - trunk/drivers/usb/serial/ftdi_sio.c | 1 - trunk/drivers/usb/serial/ftdi_sio_ids.h | 7 - trunk/drivers/usb/serial/option.c | 40 +- trunk/drivers/usb/serial/qcserial.c | 16 +- trunk/drivers/usb/serial/ti_usb_3410_5052.c | 6 +- trunk/drivers/usb/serial/ti_usb_3410_5052.h | 4 - trunk/drivers/usb/storage/usb.c | 90 +- trunk/drivers/usb/storage/usb.h | 7 +- trunk/drivers/video/atmel_lcdfb.c | 2 +- trunk/drivers/video/fsl-diu-fb.c | 4 +- trunk/drivers/video/intelfb/intelfbdrv.c | 1 + trunk/drivers/video/omap2/displays/Kconfig | 2 +- trunk/drivers/video/omap2/dss/apply.c | 6 - trunk/drivers/video/omap2/dss/dispc.c | 2 +- trunk/drivers/video/omap2/dss/dpi.c | 5 - trunk/drivers/video/omap2/dss/dsi.c | 2 +- trunk/drivers/video/omap2/dss/dss.c | 2 +- trunk/drivers/video/omap2/dss/hdmi.c | 29 +- trunk/drivers/video/omap2/dss/rfbi.c | 2 +- trunk/drivers/video/omap2/dss/ti_hdmi.h | 4 - .../drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 77 +- trunk/drivers/video/omap2/dss/venc.c | 2 +- trunk/drivers/video/pvr2fb.c | 2 +- trunk/drivers/video/via/hw.c | 4 - trunk/drivers/virtio/virtio_balloon.c | 33 +- trunk/drivers/watchdog/Kconfig | 2 +- trunk/drivers/watchdog/booke_wdt.c | 6 +- trunk/drivers/watchdog/hpwdt.c | 5 +- trunk/drivers/watchdog/pnx4008_wdt.c | 2 +- trunk/drivers/watchdog/s3c2410_wdt.c | 57 +- trunk/drivers/xen/cpu_hotplug.c | 3 +- trunk/drivers/xen/xen-pciback/pci_stub.c | 8 +- trunk/drivers/xen/xen-pciback/xenbus.c | 5 +- .../drivers/xen/xenbus/xenbus_dev_frontend.c | 4 - trunk/fs/autofs4/autofs_i.h | 1 - trunk/fs/autofs4/dev-ioctl.c | 1 - trunk/fs/autofs4/expire.c | 2 - trunk/fs/autofs4/inode.c | 2 - trunk/fs/autofs4/waitq.c | 22 +- trunk/fs/binfmt_elf.c | 2 +- trunk/fs/bio.c | 10 +- trunk/fs/btrfs/backref.c | 2 - trunk/fs/btrfs/check-integrity.c | 2 +- trunk/fs/btrfs/compression.c | 2 - trunk/fs/btrfs/ctree.h | 2 +- trunk/fs/btrfs/disk-io.c | 12 - trunk/fs/btrfs/extent-tree.c | 51 +- trunk/fs/btrfs/extent_io.c | 113 +- trunk/fs/btrfs/extent_io.h | 1 - trunk/fs/btrfs/extent_map.h | 4 +- trunk/fs/btrfs/file.c | 29 +- trunk/fs/btrfs/free-space-cache.c | 1 - trunk/fs/btrfs/inode-map.c | 6 +- trunk/fs/btrfs/inode.c | 40 +- trunk/fs/btrfs/ioctl.c | 59 +- trunk/fs/btrfs/scrub.c | 8 +- trunk/fs/btrfs/transaction.c | 16 +- trunk/fs/btrfs/volumes.c | 33 +- trunk/fs/ceph/caps.c | 4 +- trunk/fs/ceph/dir.c | 4 +- trunk/fs/ceph/mds_client.c | 10 +- trunk/fs/ceph/mds_client.h | 7 +- trunk/fs/ceph/xattr.c | 4 +- trunk/fs/cifs/Kconfig | 4 +- trunk/fs/cifs/connect.c | 23 +- trunk/fs/cifs/dir.c | 2 +- trunk/fs/cifs/sess.c | 11 +- trunk/fs/compat.c | 56 +- trunk/fs/dcache.c | 21 +- trunk/fs/direct-io.c | 4 +- trunk/fs/ecryptfs/crypto.c | 68 +- trunk/fs/ecryptfs/ecryptfs_kernel.h | 6 - trunk/fs/ecryptfs/inode.c | 2 - trunk/fs/ecryptfs/keystore.c | 9 +- trunk/fs/ecryptfs/miscdev.c | 2 +- trunk/fs/ecryptfs/mmap.c | 4 +- trunk/fs/ecryptfs/read_write.c | 4 +- trunk/fs/ecryptfs/super.c | 14 +- trunk/fs/eventpoll.c | 30 +- trunk/fs/exec.c | 33 +- trunk/fs/fs-writeback.c | 16 +- trunk/fs/gfs2/glock.c | 14 +- trunk/fs/gfs2/inode.c | 5 +- trunk/fs/gfs2/ops_fstype.c | 5 - trunk/fs/gfs2/rgrp.c | 13 +- trunk/fs/inode.c | 8 +- trunk/fs/ioprio.c | 2 +- trunk/fs/jffs2/erase.c | 2 +- trunk/fs/logfs/dev_mtd.c | 6 + trunk/fs/namei.c | 70 +- trunk/fs/nfs/nfs4proc.c | 130 +- trunk/fs/nfs/nfs4state.c | 2 - trunk/fs/nfs/nfs4xdr.c | 5 +- trunk/fs/nilfs2/ioctl.c | 2 - trunk/fs/ntfs/attrib.c | 6 +- trunk/fs/ntfs/mft.c | 6 +- trunk/fs/ntfs/super.c | 4 +- trunk/fs/ocfs2/namei.c | 2 +- trunk/fs/proc/base.c | 126 +- trunk/fs/quota/quota.c | 24 +- trunk/fs/select.c | 2 +- trunk/fs/signalfd.c | 15 - trunk/fs/super.c | 22 - trunk/fs/xfs/kmem.h | 6 + trunk/fs/xfs/xfs_dquot.c | 127 +- trunk/fs/xfs/xfs_log_recover.c | 8 +- trunk/fs/xfs/xfs_qm.c | 291 ++- trunk/fs/xfs/xfs_qm.h | 14 + trunk/fs/xfs/xfs_qm_stats.c | 4 +- trunk/fs/xfs/xfs_qm_syscalls.c | 4 +- trunk/fs/xfs/xfs_trace.h | 5 +- trunk/fs/xfs/xfs_trans.c | 4 +- trunk/fs/xfs/xfs_trans_dquot.c | 10 +- .../asm-generic/io-64-nonatomic-hi-lo.h | 28 - .../asm-generic/io-64-nonatomic-lo-hi.h | 28 - trunk/include/asm-generic/iomap.h | 2 +- trunk/include/asm-generic/pci_iomap.h | 10 - trunk/include/asm-generic/poll.h | 2 - trunk/include/drm/Kbuild | 1 - trunk/include/drm/exynos_drm.h | 22 +- trunk/include/linux/amba/bus.h | 36 - trunk/include/linux/binfmts.h | 3 +- trunk/include/linux/bitops.h | 20 - trunk/include/linux/blkdev.h | 3 + trunk/include/linux/cdrom.h | 3 +- trunk/include/linux/compat.h | 4 - trunk/include/linux/dcache.h | 21 +- trunk/include/linux/digsig.h | 4 +- trunk/include/linux/elevator.h | 9 +- trunk/include/linux/fs.h | 1 - trunk/include/linux/gpio_keys.h | 2 - trunk/include/linux/hyperv.h | 2 +- trunk/include/linux/if_link.h | 1 - trunk/include/linux/iocontext.h | 5 +- trunk/include/linux/irqdomain.h | 191 +- trunk/include/linux/lp8727.h | 0 trunk/include/linux/mfd/twl6040.h | 2 - trunk/include/linux/mmc/card.h | 4 - trunk/include/linux/mmc/dw_mmc.h | 6 +- trunk/include/linux/mmc/host.h | 20 - trunk/include/linux/mpi.h | 2 + trunk/include/linux/mtd/mtd.h | 6 +- .../include/linux/netfilter_bridge/ebtables.h | 4 +- trunk/include/linux/nfs_xdr.h | 2 +- trunk/include/linux/of_address.h | 33 +- trunk/include/linux/of_irq.h | 4 +- trunk/include/linux/of_platform.h | 12 +- trunk/include/linux/perf_event.h | 1 - trunk/include/linux/pm_domain.h | 12 - trunk/include/linux/pm_qos.h | 14 +- trunk/include/linux/proportions.h | 4 - trunk/include/linux/regset.h | 10 +- trunk/include/linux/regulator/bq24022.h | 24 + trunk/include/linux/rtnetlink.h | 3 - trunk/include/linux/sched.h | 6 - trunk/include/linux/sh_dma.h | 1 - trunk/include/linux/signalfd.h | 5 +- trunk/include/linux/skbuff.h | 10 - trunk/include/linux/syscalls.h | 2 +- trunk/include/linux/usb/ch11.h | 10 +- trunk/include/linux/usb/ch9.h | 2 +- trunk/include/net/bluetooth/bluetooth.h | 2 - trunk/include/net/bluetooth/hci_core.h | 6 +- trunk/include/net/bluetooth/l2cap.h | 12 +- trunk/include/net/flow.h | 10 - trunk/include/net/netfilter/nf_conntrack.h | 2 +- trunk/include/net/netprio_cgroup.h | 48 +- trunk/include/net/route.h | 4 - trunk/include/net/rtnetlink.h | 2 +- trunk/include/net/sch_generic.h | 9 +- trunk/include/net/tcp.h | 14 +- trunk/include/sound/core.h | 2 - trunk/include/target/target_core_backend.h | 4 +- trunk/include/target/target_core_base.h | 1 - trunk/include/target/target_core_fabric.h | 2 +- trunk/include/trace/events/sched.h | 50 + trunk/include/trace/events/writeback.h | 7 +- trunk/include/video/omapdss.h | 5 - trunk/kernel/events/core.c | 123 +- trunk/kernel/events/hw_breakpoint.c | 4 +- trunk/kernel/exit.c | 16 - trunk/kernel/fork.c | 27 +- trunk/kernel/irq/autoprobe.c | 4 +- trunk/kernel/irq/chip.c | 42 +- trunk/kernel/irq/internals.h | 2 +- trunk/kernel/irq/irqdomain.c | 828 +------ trunk/kernel/irq/manage.c | 2 +- trunk/kernel/kprobes.c | 6 +- trunk/kernel/params.c | 3 +- trunk/kernel/pid.c | 4 +- trunk/kernel/power/power.h | 24 +- trunk/kernel/power/process.c | 7 +- trunk/kernel/power/user.c | 6 +- trunk/kernel/relay.c | 10 +- trunk/kernel/sched/core.c | 24 +- trunk/kernel/sched/fair.c | 36 +- trunk/kernel/sched/rt.c | 5 - trunk/kernel/watchdog.c | 2 +- trunk/lib/Kconfig | 7 - trunk/lib/Makefile | 2 - trunk/lib/bug.c | 2 +- trunk/lib/clz_tab.c | 18 - trunk/lib/digsig.c | 52 +- trunk/lib/kstrtox.c | 18 +- trunk/lib/mpi/longlong.h | 44 +- trunk/lib/mpi/mpi-bit.c | 19 + trunk/lib/mpi/mpi-div.c | 5 - trunk/lib/mpi/mpi-pow.c | 2 +- trunk/lib/mpi/mpicoder.c | 91 +- trunk/lib/mpi/mpih-div.c | 4 - trunk/lib/mpi/mpiutil.c | 5 +- trunk/lib/pci_iomap.c | 2 +- trunk/mm/backing-dev.c | 23 +- trunk/mm/compaction.c | 24 +- trunk/mm/filemap.c | 8 +- trunk/mm/filemap_xip.c | 7 +- trunk/mm/huge_memory.c | 4 +- trunk/mm/kmemleak.c | 3 +- trunk/mm/memblock.c | 6 +- trunk/mm/memcontrol.c | 8 +- trunk/mm/migrate.c | 2 +- trunk/mm/nommu.c | 9 +- trunk/mm/page_alloc.c | 1 - trunk/mm/process_vm_access.c | 23 +- trunk/mm/swap.c | 2 +- trunk/net/atm/clip.c | 10 +- trunk/net/bluetooth/af_bluetooth.c | 12 +- trunk/net/bluetooth/hci_conn.c | 4 - trunk/net/bluetooth/hci_core.c | 3 +- trunk/net/bluetooth/l2cap_core.c | 24 +- trunk/net/bluetooth/l2cap_sock.c | 4 +- trunk/net/bluetooth/rfcomm/core.c | 18 +- trunk/net/bluetooth/rfcomm/sock.c | 2 - trunk/net/caif/caif_socket.c | 10 +- trunk/net/caif/cfmuxl.c | 12 +- trunk/net/ceph/ceph_common.c | 2 + trunk/net/ceph/mon_client.c | 13 +- trunk/net/core/dev.c | 10 +- trunk/net/core/ethtool.c | 2 - trunk/net/core/neighbour.c | 2 - trunk/net/core/netpoll.c | 2 +- trunk/net/core/netprio_cgroup.c | 15 +- trunk/net/core/rtnetlink.c | 78 +- trunk/net/core/sock.c | 7 +- trunk/net/ipv4/Kconfig | 2 +- trunk/net/ipv4/arp.c | 3 +- trunk/net/ipv4/ip_gre.c | 10 +- trunk/net/ipv4/ip_options.c | 2 +- trunk/net/ipv4/ping.c | 1 - trunk/net/ipv4/sysctl_net_ipv4.c | 6 + trunk/net/ipv4/tcp.c | 28 +- trunk/net/ipv4/tcp_input.c | 45 +- trunk/net/ipv4/tcp_ipv4.c | 5 - trunk/net/ipv4/tcp_timer.c | 5 +- trunk/net/ipv4/xfrm4_mode_beet.c | 5 +- trunk/net/ipv4/xfrm4_mode_tunnel.c | 6 +- trunk/net/ipv6/ip6mr.c | 4 +- trunk/net/ipv6/ndisc.c | 5 +- trunk/net/ipv6/xfrm6_mode_beet.c | 6 +- trunk/net/ipv6/xfrm6_mode_tunnel.c | 6 +- trunk/net/mac80211/debugfs_sta.c | 4 +- trunk/net/mac80211/main.c | 4 +- trunk/net/mac80211/rate.c | 2 +- trunk/net/mac80211/rate.h | 3 +- trunk/net/mac80211/rx.c | 2 +- trunk/net/mac80211/sta_info.h | 2 - trunk/net/netfilter/ipvs/ip_vs_core.c | 2 +- trunk/net/netfilter/nf_conntrack_core.c | 38 +- trunk/net/netfilter/nf_conntrack_netlink.c | 46 +- trunk/net/netfilter/nf_queue.c | 40 +- trunk/net/netfilter/xt_TEE.c | 5 +- trunk/net/rxrpc/ar-key.c | 4 +- trunk/net/sched/sch_choke.c | 3 +- trunk/net/sched/sch_netem.c | 9 +- trunk/net/sched/sch_sfb.c | 3 +- trunk/net/sched/sch_sfq.c | 5 +- trunk/scripts/checkpatch.pl | 6 - trunk/scripts/coccicheck | 13 +- trunk/scripts/depmod.sh | 6 + trunk/scripts/mod/file2alias.c | 37 +- trunk/scripts/mod/modpost.c | 9 - trunk/scripts/package/builddeb | 12 +- trunk/sound/isa/sb/emu8000_patch.c | 1 + trunk/sound/pci/azt3328.c | 3 +- trunk/sound/pci/hda/hda_codec.c | 14 +- trunk/sound/pci/hda/hda_codec.h | 3 - trunk/sound/pci/hda/hda_jack.c | 24 +- trunk/sound/pci/hda/patch_ca0132.c | 33 +- trunk/sound/pci/hda/patch_cirrus.c | 10 +- trunk/sound/pci/hda/patch_conexant.c | 24 +- trunk/sound/pci/hda/patch_realtek.c | 114 +- trunk/sound/pci/hda/patch_sigmatel.c | 6 +- trunk/sound/pci/hda/patch_via.c | 287 +-- trunk/sound/pci/intel8x0.c | 6 - trunk/sound/pci/oxygen/oxygen_mixer.c | 25 +- trunk/sound/soc/codecs/ak4642.c | 31 +- trunk/sound/soc/codecs/cs42l73.c | 2 +- trunk/sound/soc/codecs/wm5100.c | 12 +- trunk/sound/soc/codecs/wm8962.c | 10 +- trunk/sound/soc/codecs/wm8994.c | 16 +- trunk/sound/soc/codecs/wm8996.c | 2 +- trunk/sound/soc/codecs/wm_hubs.c | 18 +- trunk/sound/soc/imx/imx-ssi.c | 2 +- trunk/sound/soc/samsung/neo1973_wm8753.c | 65 +- trunk/sound/soc/sh/fsi.c | 6 +- trunk/sound/soc/soc-core.c | 11 - trunk/sound/soc/soc-dapm.c | 12 +- trunk/sound/usb/caiaq/audio.c | 5 +- trunk/sound/usb/card.h | 1 - trunk/sound/usb/format.c | 4 +- trunk/sound/usb/quirks-table.h | 8 - trunk/sound/usb/quirks.c | 6 +- trunk/tools/perf/Makefile | 7 +- .../tools/perf/bench/mem-memcpy-x86-64-asm.S | 6 - trunk/tools/perf/builtin-probe.c | 2 + trunk/tools/perf/builtin-top.c | 13 +- trunk/tools/perf/util/event.c | 3 +- trunk/tools/perf/util/evlist.c | 4 - trunk/tools/perf/util/evsel.c | 1 - trunk/tools/perf/util/header.c | 2 +- trunk/tools/perf/util/probe-event.c | 8 +- trunk/tools/perf/util/probe-finder.c | 12 +- trunk/tools/perf/util/symbol.c | 1 + trunk/tools/perf/util/trace-event-parse.c | 3 +- trunk/tools/perf/util/ui/browsers/hists.c | 2 + trunk/tools/perf/util/ui/helpline.c | 1 + trunk/tools/perf/util/util.h | 1 + trunk/tools/testing/ktest/ktest.pl | 8 +- trunk/virt/kvm/kvm_main.c | 2 +- 1449 files changed, 57562 insertions(+), 16214 deletions(-) delete mode 100644 trunk/Documentation/IRQ-domain.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/exynos/power_domain.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/tegra/emc.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt delete mode 100644 trunk/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt create mode 100644 trunk/arch/arm/configs/at91cap9_defconfig create mode 100644 trunk/arch/arm/configs/lpc32xx_defconfig create mode 100644 trunk/arch/arm/mach-at91/at91cap9.c create mode 100644 trunk/arch/arm/mach-at91/at91cap9_devices.c create mode 100644 trunk/arch/arm/mach-at91/board-cap9adk.c create mode 100644 trunk/arch/arm/mach-at91/include/mach/at91cap9.h create mode 100644 trunk/arch/arm/mach-at91/include/mach/at91cap9_matrix.h create mode 100644 trunk/arch/arm/mach-at91/include/mach/system.h create mode 100644 trunk/arch/arm/mach-bcmring/include/mach/system.h create mode 100644 trunk/arch/arm/mach-clps711x/include/mach/system.h create mode 100644 trunk/arch/arm/mach-cns3xxx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-davinci/include/mach/system.h create mode 100644 trunk/arch/arm/mach-dove/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ebsa110/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ep93xx/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-exynos/clock-exynos4.c delete mode 100644 trunk/arch/arm/mach-exynos/clock-exynos4.h create mode 100644 trunk/arch/arm/mach-exynos/clock.c create mode 100644 trunk/arch/arm/mach-exynos/dev-pd.c create mode 100644 trunk/arch/arm/mach-exynos/include/mach/exynos4-clock.h create mode 100644 trunk/arch/arm/mach-exynos/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-exynos/pm_domains.c create mode 100644 trunk/arch/arm/mach-footbridge/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-gemini/idle.c create mode 100644 trunk/arch/arm/mach-h720x/include/mach/system.h rename trunk/arch/arm/{mach-tegra/pmc.h => mach-highbank/include/mach/system.h} (70%) create mode 100644 trunk/arch/arm/mach-integrator/include/mach/system.h create mode 100644 trunk/arch/arm/mach-iop13xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-iop32x/include/mach/system.h create mode 100644 trunk/arch/arm/mach-iop33x/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ixp2000/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ixp23xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ixp4xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-kirkwood/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ks8695/include/mach/system.h create mode 100644 trunk/arch/arm/mach-lpc32xx/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-mmp/include/mach/regs-rtc.h create mode 100644 trunk/arch/arm/mach-mmp/include/mach/system.h create mode 100644 trunk/arch/arm/mach-msm/idle.S delete mode 100644 trunk/arch/arm/mach-msm/idle.c create mode 100644 trunk/arch/arm/mach-mv78xx0/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-mxs/devices/platform-gpmi-nand.c create mode 100644 trunk/arch/arm/mach-mxs/include/mach/system.h create mode 100644 trunk/arch/arm/mach-netx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-nomadik/include/mach/system.h create mode 100644 trunk/arch/arm/mach-omap1/include/mach/system.h create mode 100644 trunk/arch/arm/mach-omap2/include/mach/system.h create mode 100644 trunk/arch/arm/mach-orion5x/include/mach/system.h create mode 100644 trunk/arch/arm/mach-picoxcell/include/mach/system.h create mode 100644 trunk/arch/arm/mach-pnx4008/include/mach/system.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/system.h create mode 100644 trunk/arch/arm/mach-pxa/include/mach/system.h create mode 100644 trunk/arch/arm/mach-realview/include/mach/system.h create mode 100644 trunk/arch/arm/mach-rpc/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s3c2410/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s3c64xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s5p64x0/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s5pc100/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/system.h create mode 100644 trunk/arch/arm/mach-sa1100/include/mach/system.h create mode 100644 trunk/arch/arm/mach-shark/include/mach/system.h create mode 100644 trunk/arch/arm/mach-spear3xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-spear6xx/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-tegra/apbio.c delete mode 100644 trunk/arch/arm/mach-tegra/apbio.h delete mode 100644 trunk/arch/arm/mach-tegra/include/mach/irammap.h rename trunk/{include/linux/platform_data/tegra_emc.h => arch/arm/mach-tegra/include/mach/system.h} (58%) delete mode 100644 trunk/arch/arm/mach-tegra/pmc.c create mode 100644 trunk/arch/arm/mach-u300/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ux500/include/mach/system.h create mode 100644 trunk/arch/arm/mach-versatile/include/mach/system.h create mode 100644 trunk/arch/arm/mach-vexpress/include/mach/system.h create mode 100644 trunk/arch/arm/mach-w90x900/include/mach/system.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/system.h create mode 100644 trunk/arch/arm/plat-mxc/include/mach/board-mx31ads.h create mode 100644 trunk/arch/arm/plat-mxc/include/mach/system.h create mode 100644 trunk/arch/arm/plat-omap/include/plat/system.h delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/rtc-core.h create mode 100644 trunk/arch/arm/plat-spear/include/plat/system.h create mode 100644 trunk/arch/x86/include/asm/irq_controller.h create mode 100644 trunk/drivers/ide/at91_ide.c create mode 100644 trunk/drivers/regulator/bq24022.c create mode 100644 trunk/drivers/staging/android/android_pmem.h create mode 100644 trunk/drivers/staging/android/pmem.c create mode 100644 trunk/drivers/staging/gma500/Kconfig create mode 100644 trunk/drivers/staging/gma500/Makefile create mode 100644 trunk/drivers/staging/gma500/TODO create mode 100644 trunk/drivers/staging/gma500/accel_2d.c create mode 100644 trunk/drivers/staging/gma500/backlight.c create mode 100644 trunk/drivers/staging/gma500/cdv_device.c create mode 100644 trunk/drivers/staging/gma500/cdv_device.h create mode 100644 trunk/drivers/staging/gma500/cdv_intel_crt.c create mode 100644 trunk/drivers/staging/gma500/cdv_intel_display.c create mode 100644 trunk/drivers/staging/gma500/cdv_intel_hdmi.c create mode 100644 trunk/drivers/staging/gma500/cdv_intel_lvds.c create mode 100644 trunk/drivers/staging/gma500/displays/hdmi.h create mode 100644 trunk/drivers/staging/gma500/displays/pyr_cmd.h create mode 100644 trunk/drivers/staging/gma500/displays/pyr_vid.h create mode 100644 trunk/drivers/staging/gma500/displays/tmd_cmd.h create mode 100644 trunk/drivers/staging/gma500/displays/tmd_vid.h create mode 100644 trunk/drivers/staging/gma500/displays/tpo_cmd.h create mode 100644 trunk/drivers/staging/gma500/displays/tpo_vid.h create mode 100644 trunk/drivers/staging/gma500/framebuffer.c create mode 100644 trunk/drivers/staging/gma500/framebuffer.h create mode 100644 trunk/drivers/staging/gma500/gem.c create mode 100644 trunk/drivers/staging/gma500/gem_glue.c create mode 100644 trunk/drivers/staging/gma500/gem_glue.h create mode 100644 trunk/drivers/staging/gma500/gtt.c create mode 100644 trunk/drivers/staging/gma500/gtt.h create mode 100644 trunk/drivers/staging/gma500/intel_bios.c create mode 100644 trunk/drivers/staging/gma500/intel_bios.h create mode 100644 trunk/drivers/staging/gma500/intel_i2c.c create mode 100644 trunk/drivers/staging/gma500/intel_opregion.c create mode 100644 trunk/drivers/staging/gma500/mdfld_device.c create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_dbi.c create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_dbi.h create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_dbi_dpu.c create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_dbi_dpu.h create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_dpi.c create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_dpi.h create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_output.c create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_output.h create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_pkg_sender.c create mode 100644 trunk/drivers/staging/gma500/mdfld_dsi_pkg_sender.h create mode 100644 trunk/drivers/staging/gma500/mdfld_intel_display.c create mode 100644 trunk/drivers/staging/gma500/mdfld_msic.h create mode 100644 trunk/drivers/staging/gma500/mdfld_output.c create mode 100644 trunk/drivers/staging/gma500/mdfld_output.h create mode 100644 trunk/drivers/staging/gma500/mdfld_pyr_cmd.c create mode 100644 trunk/drivers/staging/gma500/mdfld_tmd_vid.c create mode 100644 trunk/drivers/staging/gma500/mdfld_tpo_cmd.c create mode 100644 trunk/drivers/staging/gma500/mdfld_tpo_vid.c create mode 100644 trunk/drivers/staging/gma500/medfield.h create mode 100644 trunk/drivers/staging/gma500/mid_bios.c create mode 100644 trunk/drivers/staging/gma500/mid_bios.h create mode 100644 trunk/drivers/staging/gma500/mmu.c create mode 100644 trunk/drivers/staging/gma500/mrst.h create mode 100644 trunk/drivers/staging/gma500/mrst_crtc.c create mode 100644 trunk/drivers/staging/gma500/mrst_device.c create mode 100644 trunk/drivers/staging/gma500/mrst_hdmi.c create mode 100644 trunk/drivers/staging/gma500/mrst_hdmi_i2c.c create mode 100644 trunk/drivers/staging/gma500/mrst_lvds.c create mode 100644 trunk/drivers/staging/gma500/power.c create mode 100644 trunk/drivers/staging/gma500/power.h create mode 100644 trunk/drivers/staging/gma500/psb_device.c create mode 100644 trunk/drivers/staging/gma500/psb_drm.h create mode 100644 trunk/drivers/staging/gma500/psb_drv.c create mode 100644 trunk/drivers/staging/gma500/psb_drv.h create mode 100644 trunk/drivers/staging/gma500/psb_intel_display.c create mode 100644 trunk/drivers/staging/gma500/psb_intel_display.h create mode 100644 trunk/drivers/staging/gma500/psb_intel_drv.h create mode 100644 trunk/drivers/staging/gma500/psb_intel_lvds.c create mode 100644 trunk/drivers/staging/gma500/psb_intel_modes.c create mode 100644 trunk/drivers/staging/gma500/psb_intel_reg.h create mode 100644 trunk/drivers/staging/gma500/psb_intel_sdvo.c create mode 100644 trunk/drivers/staging/gma500/psb_intel_sdvo_regs.h create mode 100644 trunk/drivers/staging/gma500/psb_irq.c create mode 100644 trunk/drivers/staging/gma500/psb_irq.h create mode 100644 trunk/drivers/staging/gma500/psb_lid.c create mode 100644 trunk/drivers/staging/gma500/psb_reg.h delete mode 100644 trunk/drivers/staging/omapdrm/omap_plane.c create mode 100644 trunk/drivers/staging/pohmelfs/Kconfig create mode 100644 trunk/drivers/staging/pohmelfs/Makefile create mode 100644 trunk/drivers/staging/pohmelfs/config.c create mode 100644 trunk/drivers/staging/pohmelfs/crypto.c create mode 100644 trunk/drivers/staging/pohmelfs/dir.c create mode 100644 trunk/drivers/staging/pohmelfs/inode.c create mode 100644 trunk/drivers/staging/pohmelfs/lock.c create mode 100644 trunk/drivers/staging/pohmelfs/mcache.c create mode 100644 trunk/drivers/staging/pohmelfs/net.c create mode 100644 trunk/drivers/staging/pohmelfs/netfs.h create mode 100644 trunk/drivers/staging/pohmelfs/path_entry.c create mode 100644 trunk/drivers/staging/pohmelfs/trans.c rename trunk/drivers/tty/serial/{ => 8250}/m32r_sio.c (100%) rename trunk/drivers/tty/serial/{ => 8250}/m32r_sio.h (100%) rename trunk/drivers/tty/serial/{ => 8250}/m32r_sio_reg.h (100%) delete mode 100644 trunk/include/asm-generic/io-64-nonatomic-hi-lo.h delete mode 100644 trunk/include/asm-generic/io-64-nonatomic-lo-hi.h mode change 100644 => 100755 trunk/include/linux/lp8727.h create mode 100644 trunk/include/linux/regulator/bq24022.h delete mode 100644 trunk/lib/clz_tab.c diff --git a/[refs] b/[refs] index 29cf74a2cf3d..f213c159ce16 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f6175f228cc8dab421e762158ad40f5614b18941 +refs/heads/master: 4ee1c5716d10e30269b64e393cc4a5bf17afee38 diff --git a/trunk/Documentation/DocBook/device-drivers.tmpl b/trunk/Documentation/DocBook/device-drivers.tmpl index 9c27e5125dd2..2f7fd4360848 100644 --- a/trunk/Documentation/DocBook/device-drivers.tmpl +++ b/trunk/Documentation/DocBook/device-drivers.tmpl @@ -102,12 +102,9 @@ X!Iinclude/linux/kobject.h !Iinclude/linux/device.h Device Drivers Base -!Idrivers/base/init.c !Edrivers/base/driver.c !Edrivers/base/core.c -!Edrivers/base/syscore.c !Edrivers/base/class.c -!Idrivers/base/node.c !Edrivers/base/firmware_class.c !Edrivers/base/transport_class.c -!Edrivers/base/dd.c +!Edrivers/base/sys.c !Iinclude/linux/platform_device.h !Edrivers/base/platform.c !Edrivers/base/bus.c - - Device Drivers DMA Management -!Edrivers/base/dma-buf.c -!Edrivers/base/dma-coherent.c -!Edrivers/base/dma-mapping.c Device Drivers Power Management !Edrivers/base/power/main.c @@ -227,7 +219,7 @@ X!Isound/sound_firmware.c 16x50 UART Driver !Edrivers/tty/serial/serial_core.c -!Edrivers/tty/serial/8250/8250.c +!Edrivers/tty/serial/8250.c diff --git a/trunk/Documentation/IRQ-domain.txt b/trunk/Documentation/IRQ-domain.txt deleted file mode 100644 index 27dcaabfb4db..000000000000 --- a/trunk/Documentation/IRQ-domain.txt +++ /dev/null @@ -1,117 +0,0 @@ -irq_domain interrupt number mapping library - -The current design of the Linux kernel uses a single large number -space where each separate IRQ source is assigned a different number. -This is simple when there is only one interrupt controller, but in -systems with multiple interrupt controllers the kernel must ensure -that each one gets assigned non-overlapping allocations of Linux -IRQ numbers. - -The irq_alloc_desc*() and irq_free_desc*() APIs provide allocation of -irq numbers, but they don't provide any support for reverse mapping of -the controller-local IRQ (hwirq) number into the Linux IRQ number -space. - -The irq_domain library adds mapping between hwirq and IRQ numbers on -top of the irq_alloc_desc*() API. An irq_domain to manage mapping is -preferred over interrupt controller drivers open coding their own -reverse mapping scheme. - -irq_domain also implements translation from Device Tree interrupt -specifiers to hwirq numbers, and can be easily extended to support -other IRQ topology data sources. - -=== irq_domain usage === -An interrupt controller driver creates and registers an irq_domain by -calling one of the irq_domain_add_*() functions (each mapping method -has a different allocator function, more on that later). The function -will return a pointer to the irq_domain on success. The caller must -provide the allocator function with an irq_domain_ops structure with -the .map callback populated as a minimum. - -In most cases, the irq_domain will begin empty without any mappings -between hwirq and IRQ numbers. Mappings are added to the irq_domain -by calling irq_create_mapping() which accepts the irq_domain and a -hwirq number as arguments. If a mapping for the hwirq doesn't already -exist then it will allocate a new Linux irq_desc, associate it with -the hwirq, and call the .map() callback so the driver can perform any -required hardware setup. - -When an interrupt is received, irq_find_mapping() function should -be used to find the Linux IRQ number from the hwirq number. - -If the driver has the Linux IRQ number or the irq_data pointer, and -needs to know the associated hwirq number (such as in the irq_chip -callbacks) then it can be directly obtained from irq_data->hwirq. - -=== Types of irq_domain mappings === -There are several mechanisms available for reverse mapping from hwirq -to Linux irq, and each mechanism uses a different allocation function. -Which reverse map type should be used depends on the use case. Each -of the reverse map types are described below: - -==== Linear ==== -irq_domain_add_linear() - -The linear reverse map maintains a fixed size table indexed by the -hwirq number. When a hwirq is mapped, an irq_desc is allocated for -the hwirq, and the IRQ number is stored in the table. - -The Linear map is a good choice when the maximum number of hwirqs is -fixed and a relatively small number (~ < 256). The advantages of this -map are fixed time lookup for IRQ numbers, and irq_descs are only -allocated for in-use IRQs. The disadvantage is that the table must be -as large as the largest possible hwirq number. - -The majority of drivers should use the linear map. - -==== Tree ==== -irq_domain_add_tree() - -The irq_domain maintains a radix tree map from hwirq numbers to Linux -IRQs. When an hwirq is mapped, an irq_desc is allocated and the -hwirq is used as the lookup key for the radix tree. - -The tree map is a good choice if the hwirq number can be very large -since it doesn't need to allocate a table as large as the largest -hwirq number. The disadvantage is that hwirq to IRQ number lookup is -dependent on how many entries are in the table. - -Very few drivers should need this mapping. At the moment, powerpc -iseries is the only user. - -==== No Map ===- -irq_domain_add_nomap() - -The No Map mapping is to be used when the hwirq number is -programmable in the hardware. In this case it is best to program the -Linux IRQ number into the hardware itself so that no mapping is -required. Calling irq_create_direct_mapping() will allocate a Linux -IRQ number and call the .map() callback so that driver can program the -Linux IRQ number into the hardware. - -Most drivers cannot use this mapping. - -==== Legacy ==== -irq_domain_add_legacy() -irq_domain_add_legacy_isa() - -The Legacy mapping is a special case for drivers that already have a -range of irq_descs allocated for the hwirqs. It is used when the -driver cannot be immediately converted to use the linear mapping. For -example, many embedded system board support files use a set of #defines -for IRQ numbers that are passed to struct device registrations. In that -case the Linux IRQ numbers cannot be dynamically assigned and the legacy -mapping should be used. - -The legacy map assumes a contiguous range of IRQ numbers has already -been allocated for the controller and that the IRQ number can be -calculated by adding a fixed offset to the hwirq number, and -visa-versa. The disadvantage is that it requires the interrupt -controller to manage IRQ allocations and it requires an irq_desc to be -allocated for every hwirq, even if it is unused. - -The legacy map should only be used if fixed IRQ mappings must be -supported. For example, ISA controllers would use the legacy map for -mapping Linux IRQs 0-15 so that existing ISA drivers get the correct IRQ -numbers. diff --git a/trunk/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/trunk/Documentation/devicetree/bindings/arm/exynos/power_domain.txt deleted file mode 100644 index 6528e215c5fe..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/exynos/power_domain.txt +++ /dev/null @@ -1,21 +0,0 @@ -* Samsung Exynos Power Domains - -Exynos processors include support for multiple power domains which are used -to gate power to one or more peripherals on the processor. - -Required Properties: -- compatiable: should be one of the following. - * samsung,exynos4210-pd - for exynos4210 type power domain. -- reg: physical base address of the controller and length of memory mapped - region. - -Optional Properties: -- samsung,exynos4210-pd-off: Specifies that the power domain is in turned-off - state during boot and remains to be turned-off until explicitly turned-on. - -Example: - - lcd0: power-domain-lcd0 { - compatible = "samsung,exynos4210-pd"; - reg = <0x10023C00 0x10>; - }; diff --git a/trunk/Documentation/devicetree/bindings/arm/tegra/emc.txt b/trunk/Documentation/devicetree/bindings/arm/tegra/emc.txt deleted file mode 100644 index 09335f8eee00..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/tegra/emc.txt +++ /dev/null @@ -1,100 +0,0 @@ -Embedded Memory Controller - -Properties: -- name : Should be emc -- #address-cells : Should be 1 -- #size-cells : Should be 0 -- compatible : Should contain "nvidia,tegra20-emc". -- reg : Offset and length of the register set for the device -- nvidia,use-ram-code : If present, the sub-nodes will be addressed - and chosen using the ramcode board selector. If omitted, only one - set of tables can be present and said tables will be used - irrespective of ram-code configuration. - -Child device nodes describe the memory settings for different configurations and clock rates. - -Example: - - emc@7000f400 { - #address-cells = < 1 >; - #size-cells = < 0 >; - compatible = "nvidia,tegra20-emc"; - reg = <0x7000f4000 0x200>; - } - - -Embedded Memory Controller ram-code table - -If the emc node has the nvidia,use-ram-code property present, then the -next level of nodes below the emc table are used to specify which settings -apply for which ram-code settings. - -If the emc node lacks the nvidia,use-ram-code property, this level is omitted -and the tables are stored directly under the emc node (see below). - -Properties: - -- name : Should be emc-tables -- nvidia,ram-code : the binary representation of the ram-code board strappings - for which this node (and children) are valid. - - - -Embedded Memory Controller configuration table - -This is a table containing the EMC register settings for the various -operating speeds of the memory controller. They are always located as -subnodes of the emc controller node. - -There are two ways of specifying which tables to use: - -* The simplest is if there is just one set of tables in the device tree, - and they will always be used (based on which frequency is used). - This is the preferred method, especially when firmware can fill in - this information based on the specific system information and just - pass it on to the kernel. - -* The slightly more complex one is when more than one memory configuration - might exist on the system. The Tegra20 platform handles this during - early boot by selecting one out of possible 4 memory settings based - on a 2-pin "ram code" bootstrap setting on the board. The values of - these strappings can be read through a register in the SoC, and thus - used to select which tables to use. - -Properties: -- name : Should be emc-table -- compatible : Should contain "nvidia,tegra20-emc-table". -- reg : either an opaque enumerator to tell different tables apart, or - the valid frequency for which the table should be used (in kHz). -- clock-frequency : the clock frequency for the EMC at which this - table should be used (in kHz). -- nvidia,emc-registers : a 46 word array of EMC registers to be programmed - for operation at the 'clock-frequency' setting. - The order and contents of the registers are: - RC, RFC, RAS, RP, R2W, W2R, R2P, W2P, RD_RCD, WR_RCD, RRD, REXT, - WDV, QUSE, QRST, QSAFE, RDV, REFRESH, BURST_REFRESH_NUM, PDEX2WR, - PDEX2RD, PCHG2PDEN, ACT2PDEN, AR2PDEN, RW2PDEN, TXSR, TCKE, TFAW, - TRPAB, TCLKSTABLE, TCLKSTOP, TREFBW, QUSE_EXTRA, FBIO_CFG6, ODT_WRITE, - ODT_READ, FBIO_CFG5, CFG_DIG_DLL, DLL_XFORM_DQS, DLL_XFORM_QUSE, - ZCAL_REF_CNT, ZCAL_WAIT_CNT, AUTO_CAL_INTERVAL, CFG_CLKTRIM_0, - CFG_CLKTRIM_1, CFG_CLKTRIM_2 - - emc-table@166000 { - reg = <166000>; - compatible = "nvidia,tegra20-emc-table"; - clock-frequency = < 166000 >; - nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 >; - }; - - emc-table@333000 { - reg = <333000>; - compatible = "nvidia,tegra20-emc-table"; - clock-frequency = < 333000 >; - nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 >; - }; diff --git a/trunk/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt b/trunk/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt deleted file mode 100644 index b5846e21cc2e..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt +++ /dev/null @@ -1,19 +0,0 @@ -NVIDIA Tegra Power Management Controller (PMC) - -Properties: -- name : Should be pmc -- compatible : Should contain "nvidia,tegra-pmc". -- reg : Offset and length of the register set for the device -- nvidia,invert-interrupt : If present, inverts the PMU interrupt signal. - The PMU is an external Power Management Unit, whose interrupt output - signal is fed into the PMC. This signal is optionally inverted, and then - fed into the ARM GIC. The PMC is not involved in the detection or - handling of this interrupt signal, merely its inversion. - -Example: - -pmc@7000f400 { - compatible = "nvidia,tegra20-pmc"; - reg = <0x7000e400 0x400>; - nvidia,invert-interrupt; -}; diff --git a/trunk/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt b/trunk/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt deleted file mode 100644 index 90fa7da525b8..000000000000 --- a/trunk/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt +++ /dev/null @@ -1,30 +0,0 @@ -* NVIDIA Tegra APB DMA controller - -Required properties: -- compatible: Should be "nvidia,-apbdma" -- reg: Should contain DMA registers location and length. This shuld include - all of the per-channel registers. -- interrupts: Should contain all of the per-channel DMA interrupts. - -Examples: - -apbdma: dma@6000a000 { - compatible = "nvidia,tegra20-apbdma"; - reg = <0x6000a000 0x1200>; - interrupts = < 0 136 0x04 - 0 137 0x04 - 0 138 0x04 - 0 139 0x04 - 0 140 0x04 - 0 141 0x04 - 0 142 0x04 - 0 143 0x04 - 0 144 0x04 - 0 145 0x04 - 0 146 0x04 - 0 147 0x04 - 0 148 0x04 - 0 149 0x04 - 0 150 0x04 - 0 151 0x04 >; -}; diff --git a/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt b/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt index 023c9526e5f8..eb4b530d64e1 100644 --- a/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt +++ b/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt @@ -1,40 +1,8 @@ -NVIDIA Tegra GPIO controller +NVIDIA Tegra 2 GPIO controller Required properties: -- compatible : "nvidia,tegra-gpio" -- reg : Physical base address and length of the controller's registers. -- interrupts : The interrupt outputs from the controller. For Tegra20, - there should be 7 interrupts specified, and for Tegra30, there should - be 8 interrupts specified. +- compatible : "nvidia,tegra20-gpio" - #gpio-cells : Should be two. The first cell is the pin number and the second cell is used to specify optional parameters: - bit 0 specifies polarity (0 for normal, 1 for inverted) - gpio-controller : Marks the device node as a GPIO controller. -- #interrupt-cells : Should be 2. - The first cell is the GPIO number. - The second cell is used to specify flags: - bits[3:0] trigger type and level flags: - 1 = low-to-high edge triggered. - 2 = high-to-low edge triggered. - 4 = active high level-sensitive. - 8 = active low level-sensitive. - Valid combinations are 1, 2, 3, 4, 8. -- interrupt-controller : Marks the device node as an interrupt controller. - -Example: - -gpio: gpio@6000d000 { - compatible = "nvidia,tegra20-gpio"; - reg = < 0x6000d000 0x1000 >; - interrupts = < 0 32 0x04 - 0 33 0x04 - 0 34 0x04 - 0 35 0x04 - 0 55 0x04 - 0 87 0x04 - 0 89 0x04 >; - #gpio-cells = <2>; - gpio-controller; - #interrupt-cells = <2>; - interrupt-controller; -}; diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 1bea46a54b1c..a0ffac029a0d 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -510,3 +510,17 @@ Why: The pci_scan_bus_parented() interface creates a new root bus. The convert to using pci_scan_root_bus() so they can supply a list of bus resources when the bus is created. Who: Bjorn Helgaas + +---------------------------- + +What: The CAP9 SoC family will be removed +When: 3.4 +Files: arch/arm/mach-at91/at91cap9.c + arch/arm/mach-at91/at91cap9_devices.c + arch/arm/mach-at91/include/mach/at91cap9.h + arch/arm/mach-at91/include/mach/at91cap9_matrix.h + arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h + arch/arm/mach-at91/board-cap9adk.c +Why: The code is not actively maintained and platforms are now hard to find. +Who: Nicolas Ferre + Jean-Christophe PLAGNIOL-VILLARD diff --git a/trunk/Documentation/input/event-codes.txt b/trunk/Documentation/input/event-codes.txt index 53305bd08182..23fcb05175be 100644 --- a/trunk/Documentation/input/event-codes.txt +++ b/trunk/Documentation/input/event-codes.txt @@ -17,11 +17,11 @@ reports supported by a device are also provided by sysfs in class/input/event*/device/capabilities/, and the properties of a device are provided in class/input/event*/device/properties. -Event types: -=========== -Event types are groupings of codes under a logical input construct. Each -type has a set of applicable codes to be used in generating events. See the -Codes section for details on valid codes for each type. +Types: +========== +Types are groupings of codes under a logical input construct. Each type has a +set of applicable codes to be used in generating events. See the Codes section +for details on valid codes for each type. * EV_SYN: - Used as markers to separate events. Events may be separated in time or in @@ -63,9 +63,9 @@ Codes section for details on valid codes for each type. * EV_FF_STATUS: - Used to receive force feedback device status. -Event codes: -=========== -Event codes define the precise type of event. +Codes: +========== +Codes define the precise type of event. EV_SYN: ---------- @@ -220,56 +220,6 @@ EV_PWR: EV_PWR events are a special type of event used specifically for power mangement. Its usage is not well defined. To be addressed later. -Device properties: -================= -Normally, userspace sets up an input device based on the data it emits, -i.e., the event types. In the case of two devices emitting the same event -types, additional information can be provided in the form of device -properties. - -INPUT_PROP_DIRECT + INPUT_PROP_POINTER: --------------------------------------- -The INPUT_PROP_DIRECT property indicates that device coordinates should be -directly mapped to screen coordinates (not taking into account trivial -transformations, such as scaling, flipping and rotating). Non-direct input -devices require non-trivial transformation, such as absolute to relative -transformation for touchpads. Typical direct input devices: touchscreens, -drawing tablets; non-direct devices: touchpads, mice. - -The INPUT_PROP_POINTER property indicates that the device is not transposed -on the screen and thus requires use of an on-screen pointer to trace user's -movements. Typical pointer devices: touchpads, tablets, mice; non-pointer -device: touchscreen. - -If neither INPUT_PROP_DIRECT or INPUT_PROP_POINTER are set, the property is -considered undefined and the device type should be deduced in the -traditional way, using emitted event types. - -INPUT_PROP_BUTTONPAD: --------------------- -For touchpads where the button is placed beneath the surface, such that -pressing down on the pad causes a button click, this property should be -set. Common in clickpad notebooks and macbooks from 2009 and onwards. - -Originally, the buttonpad property was coded into the bcm5974 driver -version field under the name integrated button. For backwards -compatibility, both methods need to be checked in userspace. - -INPUT_PROP_SEMI_MT: ------------------- -Some touchpads, most common between 2008 and 2011, can detect the presence -of multiple contacts without resolving the individual positions; only the -number of contacts and a rectangular shape is known. For such -touchpads, the semi-mt property should be set. - -Depending on the device, the rectangle may enclose all touches, like a -bounding box, or just some of them, for instance the two most recent -touches. The diversity makes the rectangle of limited use, but some -gestures can normally be extracted from it. - -If INPUT_PROP_SEMI_MT is not set, the device is assumed to be a true MT -device. - Guidelines: ========== The guidelines below ensure proper single-touch and multi-finger functionality. @@ -290,8 +240,6 @@ used to report when a touch is active on the screen. BTN_{MOUSE,LEFT,MIDDLE,RIGHT} must not be reported as the result of touch contact. BTN_TOOL_ events should be reported where possible. -For new hardware, INPUT_PROP_DIRECT should be set. - Trackpads: ---------- Legacy trackpads that only provide relative position information must report @@ -302,8 +250,6 @@ location of the touch. BTN_TOUCH should be used to report when a touch is active on the trackpad. Where multi-finger support is available, BTN_TOOL_ should be used to report the number of touches active on the trackpad. -For new hardware, INPUT_PROP_POINTER should be set. - Tablets: ---------- BTN_TOOL_ events must be reported when a stylus or other tool is active on @@ -314,5 +260,3 @@ button may be used for buttons on the tablet except BTN_{MOUSE,LEFT}. BTN_{0,1,2,etc} are good generic codes for unlabeled buttons. Do not use meaningful buttons, like BTN_FORWARD, unless the button is labeled for that purpose on the device. - -For new hardware, both INPUT_PROP_DIRECT and INPUT_PROP_POINTER should be set. diff --git a/trunk/Documentation/sysctl/kernel.txt b/trunk/Documentation/sysctl/kernel.txt index 6d78841fd416..8c20fbd8b42d 100644 --- a/trunk/Documentation/sysctl/kernel.txt +++ b/trunk/Documentation/sysctl/kernel.txt @@ -601,8 +601,6 @@ can be ORed together: instead of using the one provided by the hardware. 512 - A kernel warning has occurred. 1024 - A module from drivers/staging was loaded. -2048 - The system is working around a severe firmware bug. -4096 - An out-of-tree module has been loaded. ============================================================== diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index f096b0d8e973..a1fce9a3ab20 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -159,7 +159,7 @@ S: Maintained F: drivers/net/ethernet/realtek/r8169.c 8250/16?50 (AND CLONE UARTS) SERIAL DRIVER -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman L: linux-serial@vger.kernel.org W: http://serial.sourceforge.net S: Maintained @@ -269,6 +269,7 @@ S: Orphan F: drivers/platform/x86/wmi.c AD1889 ALSA SOUND DRIVER +M: Kyle McMartin M: Thibaut Varene W: http://wiki.parisc-linux.org/AD1889 L: linux-parisc@vger.kernel.org @@ -788,6 +789,12 @@ F: arch/arm/mach-mx*/ F: arch/arm/mach-imx/ F: arch/arm/plat-mxc/ +ARM/FREESCALE IMX51 +M: Amit Kucheria +L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) +S: Maintained +F: arch/arm/mach-mx5/ + ARM/FREESCALE IMX6 M: Shawn Guo L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) @@ -1776,9 +1783,9 @@ X: net/wireless/wext* CHAR and MISC DRIVERS M: Arnd Bergmann -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git -S: Supported +S: Maintained F: drivers/char/* F: drivers/misc/* @@ -2280,7 +2287,7 @@ F: drivers/acpi/dock.c DOCUMENTATION M: Randy Dunlap L: linux-doc@vger.kernel.org -T: quilt http://xenotime.net/kernel-doc-patches/current/ +T: quilt http://userweb.kernel.org/~rdunlap/kernel-doc-patches/current/ S: Maintained F: Documentation/ @@ -2313,7 +2320,7 @@ F: lib/lru_cache.c F: Documentation/blockdev/drbd/ DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6.git S: Supported F: Documentation/kobject.txt @@ -3046,6 +3053,7 @@ F: drivers/hwspinlock/hwspinlock_* F: include/linux/hwspinlock.h HARMONY SOUND DRIVER +M: Kyle McMartin L: linux-parisc@vger.kernel.org S: Maintained F: sound/parisc/harmony.* @@ -3316,12 +3324,6 @@ S: Maintained F: net/ieee802154/ F: drivers/ieee802154/ -IIO SUBSYSTEM AND DRIVERS -M: Jonathan Cameron -L: linux-iio@vger.kernel.org -S: Maintained -F: drivers/staging/iio/ - IKANOS/ADI EAGLE ADSL USB DRIVER M: Matthieu Castet M: Stanislaw Gruszka @@ -3638,15 +3640,6 @@ S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core F: kernel/irq/ -IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY) -M: Benjamin Herrenschmidt -M: Grant Likely -T: git git://git.secretlab.ca/git/linux-2.6.git irqdomain/next -S: Maintained -F: Documentation/IRQ-domain.txt -F: include/linux/irqdomain.h -F: kernel/irq/irqdomain.c - ISAPNP M: Jaroslav Kysela S: Maintained @@ -3789,7 +3782,7 @@ F: Documentation/kdump/ KERNEL AUTOMOUNTER v4 (AUTOFS4) M: Ian Kent -L: autofs@vger.kernel.org +L: autofs@linux.kernel.org S: Maintained F: fs/autofs4/ @@ -3999,11 +3992,11 @@ M: Rusty Russell L: lguest@lists.ozlabs.org W: http://lguest.ozlabs.org/ S: Odd Fixes -F: arch/x86/include/asm/lguest*.h +F: Documentation/virtual/lguest/ F: arch/x86/lguest/ F: drivers/lguest/ F: include/linux/lguest*.h -F: tools/lguest/ +F: arch/x86/include/asm/lguest*.h LINUX FOR IBM pSERIES (RS/6000) M: Paul Mackerras @@ -4143,7 +4136,7 @@ L: linux-ntfs-dev@lists.sourceforge.net W: http://www.linux-ntfs.org/content/view/19/37/ S: Maintained F: Documentation/ldm.txt -F: block/partitions/ldm.* +F: fs/partitions/ldm.* LogFS M: Joern Engel @@ -4694,7 +4687,7 @@ NTFS FILESYSTEM M: Anton Altaparmakov L: linux-ntfs-dev@lists.sourceforge.net W: http://www.tuxera.com/ -T: git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git S: Supported F: Documentation/filesystems/ntfs.txt F: fs/ntfs/ @@ -5007,8 +5000,9 @@ F: Documentation/blockdev/paride.txt F: drivers/block/paride/ PARISC ARCHITECTURE -M: "James E.J. Bottomley" +M: Kyle McMartin M: Helge Deller +M: "James E.J. Bottomley" L: linux-parisc@vger.kernel.org W: http://www.parisc-linux.org/ Q: http://patchwork.kernel.org/project/linux-parisc/list/ @@ -5639,7 +5633,7 @@ W: http://www.ibm.com/developerworks/linux/linux390/ S: Supported F: arch/s390/ F: drivers/s390/ -F: block/partitions/ibm.c +F: fs/partitions/ibm.c F: Documentation/s390/ F: Documentation/DocBook/s390* @@ -5867,7 +5861,7 @@ S: Maintained F: drivers/mmc/host/sdhci-spear.c SECURITY SUBSYSTEM -M: James Morris +M: James Morris L: linux-security-module@vger.kernel.org (suggested Cc:) T: git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git W: http://security.wiki.kernel.org/ @@ -5880,7 +5874,7 @@ S: Supported SELINUX SECURITY MODULE M: Stephen Smalley -M: James Morris +M: James Morris M: Eric Paris L: selinux@tycho.nsa.gov (subscribers-only, general discussion) W: http://selinuxproject.org @@ -6282,15 +6276,15 @@ S: Maintained F: arch/alpha/kernel/srm_env.c STABLE BRANCH -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman L: stable@vger.kernel.org -S: Supported +S: Maintained STAGING SUBSYSTEM -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git L: devel@driverdev.osuosl.org -S: Supported +S: Maintained F: drivers/staging/ STAGING - AGERE HERMES II and II.5 WIRELESS DRIVERS @@ -6402,6 +6396,11 @@ M: Omar Ramirez Luna S: Odd Fixes F: drivers/staging/tidspbridge/ +STAGING - TRIDENT TVMASTER TMxxxx USB VIDEO CAPTURE DRIVERS +L: linux-media@vger.kernel.org +S: Odd Fixes +F: drivers/staging/tm6000/ + STAGING - USB ENE SM/MS CARD READER DRIVER M: Al Cho S: Odd Fixes @@ -6670,8 +6669,8 @@ S: Maintained K: ^Subject:.*(?i)trivial TTY LAYER -M: Greg Kroah-Hartman -S: Supported +M: Greg Kroah-Hartman +S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git F: drivers/tty/ F: drivers/tty/serial/serial_core.c @@ -6959,7 +6958,7 @@ S: Maintained F: drivers/usb/serial/digi_acceleport.c USB SERIAL DRIVER -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman L: linux-usb@vger.kernel.org S: Supported F: Documentation/usb/usb-serial.txt @@ -6974,8 +6973,9 @@ S: Maintained F: drivers/usb/serial/empeg.c USB SERIAL KEYSPAN DRIVER -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman L: linux-usb@vger.kernel.org +W: http://www.kroah.com/linux/ S: Maintained F: drivers/usb/serial/*keyspan* @@ -7003,7 +7003,7 @@ F: Documentation/video4linux/sn9c102.txt F: drivers/media/video/sn9c102/ USB SUBSYSTEM -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman L: linux-usb@vger.kernel.org W: http://www.linux-usb.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git @@ -7090,7 +7090,7 @@ F: fs/hppfs/ USERSPACE I/O (UIO) M: "Hans J. Koch" -M: Greg Kroah-Hartman +M: Greg Kroah-Hartman S: Maintained F: Documentation/DocBook/uio-howto.tmpl F: drivers/uio/ @@ -7280,7 +7280,7 @@ WATCHDOG DEVICE DRIVERS M: Wim Van Sebroeck L: linux-watchdog@vger.kernel.org W: http://www.linux-watchdog.org/ -T: git git://www.linux-watchdog.org/linux-watchdog.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git S: Maintained F: Documentation/watchdog/ F: drivers/watchdog/ diff --git a/trunk/Makefile b/trunk/Makefile index 66d13c917bc7..e3b23e864a53 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 3 SUBLEVEL = 0 -EXTRAVERSION = -rc6 +EXTRAVERSION = -rc2 NAME = Saber-toothed Squirrel # *DOCUMENTATION* diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index baf6dc6e9a1b..a48aecc17eac 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -324,7 +324,7 @@ config ARCH_AT91 select CLKDEV_LOOKUP help This enables support for systems based on the Atmel AT91RM9200, - AT91SAM9 processors. + AT91SAM9 and AT91CAP9 processors. config ARCH_BCMRING bool "Broadcom BCMRING" @@ -754,7 +754,7 @@ config ARCH_SA1100 select ARCH_HAS_CPUFREQ select CPU_FREQ select GENERIC_CLOCKEVENTS - select CLKDEV_LOOKUP + select HAVE_CLK select HAVE_SCHED_CLOCK select TICK_ONESHOT select ARCH_REQUIRE_GPIOLIB diff --git a/trunk/arch/arm/Kconfig.debug b/trunk/arch/arm/Kconfig.debug index 66ca8014ff3e..e0d236d7ff73 100644 --- a/trunk/arch/arm/Kconfig.debug +++ b/trunk/arch/arm/Kconfig.debug @@ -81,14 +81,47 @@ choice prompt "Kernel low-level debugging port" depends on DEBUG_LL + config DEBUG_LL_UART_NONE + bool "No low-level debugging UART" + help + Say Y here if your platform doesn't provide a UART option + below. This relies on your platform choosing the right UART + definition internally in order for low-level debugging to + work. + + config DEBUG_ICEDCC + bool "Kernel low-level debugging via EmbeddedICE DCC channel" + help + Say Y here if you want the debug print routines to direct + their output to the EmbeddedICE macrocell's DCC channel using + co-processor 14. This is known to work on the ARM9 style ICE + channel and on the XScale with the PEEDI. + + Note that the system will appear to hang during boot if there + is nothing connected to read from the DCC. + config AT91_DEBUG_LL_DBGU0 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl" depends on HAVE_AT91_DBGU0 config AT91_DEBUG_LL_DBGU1 - bool "Kernel low-level debugging on 9263 and 9g45" + bool "Kernel low-level debugging on 9263, 9g45 and cap9" depends on HAVE_AT91_DBGU1 + config DEBUG_FOOTBRIDGE_COM1 + bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1" + depends on FOOTBRIDGE + help + Say Y here if you want the debug print routines to direct + their output to the 8250 at PCI COM1. + + config DEBUG_DC21285_PORT + bool "Kernel low-level debugging messages via footbridge serial port" + depends on FOOTBRIDGE + help + Say Y here if you want the debug print routines to direct + their output to the serial port in the DC21285 (Footbridge). + config DEBUG_CLPS711X_UART1 bool "Kernel low-level debugging messages via UART1" depends on ARCH_CLPS711X @@ -103,20 +136,6 @@ choice Say Y here if you want the debug print routines to direct their output to the second serial port on these devices. - config DEBUG_DC21285_PORT - bool "Kernel low-level debugging messages via footbridge serial port" - depends on FOOTBRIDGE - help - Say Y here if you want the debug print routines to direct - their output to the serial port in the DC21285 (Footbridge). - - config DEBUG_FOOTBRIDGE_COM1 - bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1" - depends on FOOTBRIDGE - help - Say Y here if you want the debug print routines to direct - their output to the 8250 at PCI COM1. - config DEBUG_HIGHBANK_UART bool "Kernel low-level debugging messages via Highbank UART" depends on ARCH_HIGHBANK @@ -180,49 +199,45 @@ choice Say Y here if you want kernel low-level debugging support on i.MX50 or i.MX53. - config DEBUG_IMX6Q_UART4 - bool "i.MX6Q Debug UART4" + config DEBUG_IMX6Q_UART + bool "i.MX6Q Debug UART" depends on SOC_IMX6Q help Say Y here if you want kernel low-level debugging support - on i.MX6Q UART4. + on i.MX6Q. - config DEBUG_MSM_UART1 - bool "Kernel low-level debugging messages via MSM UART1" - depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 + config DEBUG_S3C_UART0 + depends on PLAT_SAMSUNG + bool "Use S3C UART 0 for low-level debug" help Say Y here if you want the debug print routines to direct - their output to the first serial port on MSM devices. + their output to UART 0. The port must have been initialised + by the boot-loader before use. - config DEBUG_MSM_UART2 - bool "Kernel low-level debugging messages via MSM UART2" - depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 - help - Say Y here if you want the debug print routines to direct - their output to the second serial port on MSM devices. + The uncompressor code port configuration is now handled + by CONFIG_S3C_LOWLEVEL_UART_PORT. - config DEBUG_MSM_UART3 - bool "Kernel low-level debugging messages via MSM UART3" - depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 + config DEBUG_S3C_UART1 + depends on PLAT_SAMSUNG + bool "Use S3C UART 1 for low-level debug" help Say Y here if you want the debug print routines to direct - their output to the third serial port on MSM devices. + their output to UART 1. The port must have been initialised + by the boot-loader before use. - config DEBUG_MSM8660_UART - bool "Kernel low-level debugging messages via MSM 8660 UART" - depends on ARCH_MSM8X60 - select MSM_HAS_DEBUG_UART_HS - help - Say Y here if you want the debug print routines to direct - their output to the serial port on MSM 8660 devices. + The uncompressor code port configuration is now handled + by CONFIG_S3C_LOWLEVEL_UART_PORT. - config DEBUG_MSM8960_UART - bool "Kernel low-level debugging messages via MSM 8960 UART" - depends on ARCH_MSM8960 - select MSM_HAS_DEBUG_UART_HS + config DEBUG_S3C_UART2 + depends on PLAT_SAMSUNG + bool "Use S3C UART 2 for low-level debug" help Say Y here if you want the debug print routines to direct - their output to the serial port on MSM 8960 devices. + their output to UART 2. The port must have been initialised + by the boot-loader before use. + + The uncompressor code port configuration is now handled + by CONFIG_S3C_LOWLEVEL_UART_PORT. config DEBUG_REALVIEW_STD_PORT bool "RealView Default UART" @@ -240,57 +255,42 @@ choice their output to the standard serial port on the RealView PB1176 platform. - config DEBUG_S3C_UART0 - depends on PLAT_SAMSUNG - bool "Use S3C UART 0 for low-level debug" + config DEBUG_MSM_UART1 + bool "Kernel low-level debugging messages via MSM UART1" + depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 help Say Y here if you want the debug print routines to direct - their output to UART 0. The port must have been initialised - by the boot-loader before use. - - The uncompressor code port configuration is now handled - by CONFIG_S3C_LOWLEVEL_UART_PORT. + their output to the first serial port on MSM devices. - config DEBUG_S3C_UART1 - depends on PLAT_SAMSUNG - bool "Use S3C UART 1 for low-level debug" + config DEBUG_MSM_UART2 + bool "Kernel low-level debugging messages via MSM UART2" + depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 help Say Y here if you want the debug print routines to direct - their output to UART 1. The port must have been initialised - by the boot-loader before use. - - The uncompressor code port configuration is now handled - by CONFIG_S3C_LOWLEVEL_UART_PORT. + their output to the second serial port on MSM devices. - config DEBUG_S3C_UART2 - depends on PLAT_SAMSUNG - bool "Use S3C UART 2 for low-level debug" + config DEBUG_MSM_UART3 + bool "Kernel low-level debugging messages via MSM UART3" + depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 help Say Y here if you want the debug print routines to direct - their output to UART 2. The port must have been initialised - by the boot-loader before use. - - The uncompressor code port configuration is now handled - by CONFIG_S3C_LOWLEVEL_UART_PORT. + their output to the third serial port on MSM devices. - config DEBUG_LL_UART_NONE - bool "No low-level debugging UART" + config DEBUG_MSM8660_UART + bool "Kernel low-level debugging messages via MSM 8660 UART" + depends on ARCH_MSM8X60 + select MSM_HAS_DEBUG_UART_HS help - Say Y here if your platform doesn't provide a UART option - below. This relies on your platform choosing the right UART - definition internally in order for low-level debugging to - work. + Say Y here if you want the debug print routines to direct + their output to the serial port on MSM 8660 devices. - config DEBUG_ICEDCC - bool "Kernel low-level debugging via EmbeddedICE DCC channel" + config DEBUG_MSM8960_UART + bool "Kernel low-level debugging messages via MSM 8960 UART" + depends on ARCH_MSM8960 + select MSM_HAS_DEBUG_UART_HS help Say Y here if you want the debug print routines to direct - their output to the EmbeddedICE macrocell's DCC channel using - co-processor 14. This is known to work on the ARM9 style ICE - channel and on the XScale with the PEEDI. - - Note that the system will appear to hang during boot if there - is nothing connected to read from the DCC. + their output to the serial port on MSM 8960 devices. endchoice diff --git a/trunk/arch/arm/boot/dts/exynos4210.dtsi b/trunk/arch/arm/boot/dts/exynos4210.dtsi index a1dd2ee83753..63d7578856c1 100644 --- a/trunk/arch/arm/boot/dts/exynos4210.dtsi +++ b/trunk/arch/arm/boot/dts/exynos4210.dtsi @@ -29,7 +29,6 @@ compatible = "arm,cortex-a9-gic"; #interrupt-cells = <3>; interrupt-controller; - cpu-offset = <0x8000>; reg = <0x10490000 0x1000>, <0x10480000 0x100>; }; diff --git a/trunk/arch/arm/boot/dts/tegra-harmony.dts b/trunk/arch/arm/boot/dts/tegra-harmony.dts index 6e8447dc0202..80afa1b70b80 100644 --- a/trunk/arch/arm/boot/dts/tegra-harmony.dts +++ b/trunk/arch/arm/boot/dts/tegra-harmony.dts @@ -10,25 +10,19 @@ reg = < 0x00000000 0x40000000 >; }; - pmc@7000f400 { - nvidia,invert-interrupt; - }; - i2c@7000c000 { clock-frequency = <400000>; - wm8903: wm8903@1a { + codec: wm8903@1a { compatible = "wlf,wm8903"; reg = <0x1a>; - interrupt-parent = <&gpio>; - interrupts = < 187 0x04 >; + interrupts = < 347 >; gpio-controller; #gpio-cells = <2>; - micdet-cfg = <0>; - micdet-delay = <100>; - gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >; + /* 0x8000 = Not configured */ + gpio-cfg = < 0x8000 0x8000 0 0x8000 0x8000 >; }; }; @@ -44,32 +38,13 @@ clock-frequency = <400000>; }; - i2s@70002a00 { - status = "disable"; - }; - sound { - compatible = "nvidia,tegra-audio-wm8903-harmony", - "nvidia,tegra-audio-wm8903"; - nvidia,model = "NVIDIA Tegra Harmony"; - - nvidia,audio-routing = - "Headphone Jack", "HPOUTR", - "Headphone Jack", "HPOUTL", - "Int Spk", "ROP", - "Int Spk", "RON", - "Int Spk", "LOP", - "Int Spk", "LON", - "Mic Jack", "MICBIAS", - "IN1L", "Mic Jack"; - - nvidia,i2s-controller = <&tegra_i2s1>; - nvidia,audio-codec = <&wm8903>; - - nvidia,spkr-en-gpios = <&wm8903 2 0>; - nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ - nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ - nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ + compatible = "nvidia,harmony-sound", "nvidia,tegra-wm8903"; + + spkr-en-gpios = <&codec 2 0>; + hp-det-gpios = <&gpio 178 0>; + int-mic-en-gpios = <&gpio 184 0>; + ext-mic-en-gpios = <&gpio 185 0>; }; serial@70006000 { diff --git a/trunk/arch/arm/boot/dts/tegra-paz00.dts b/trunk/arch/arm/boot/dts/tegra-paz00.dts index e4b552b46fe2..1a1d7023b69b 100644 --- a/trunk/arch/arm/boot/dts/tegra-paz00.dts +++ b/trunk/arch/arm/boot/dts/tegra-paz00.dts @@ -12,13 +12,6 @@ i2c@7000c000 { clock-frequency = <400000>; - - alc5632: alc5632@1e { - compatible = "realtek,alc5632"; - reg = <0x1e>; - gpio-controller; - #gpio-cells = <2>; - }; }; i2c@7000c400 { @@ -44,29 +37,6 @@ clock-frequency = <400000>; }; - i2s@70002a00 { - status = "disable"; - }; - - sound { - compatible = "nvidia,tegra-audio-alc5632-paz00", - "nvidia,tegra-audio-alc5632"; - - nvidia,model = "Compal PAZ00"; - - nvidia,audio-routing = - "Int Spk", "SPKOUT", - "Int Spk", "SPKOUTN", - "Headset Mic", "MICBIAS1", - "MIC1", "Headset Mic", - "Headset Stereophone", "HPR", - "Headset Stereophone", "HPL"; - - nvidia,audio-codec = <&alc5632>; - nvidia,i2s-controller = <&tegra_i2s1>; - nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ - }; - serial@70006000 { clock-frequency = <216000000>; }; @@ -76,11 +46,11 @@ }; serial@70006200 { - clock-frequency = <216000000>; + status = "disable"; }; serial@70006300 { - status = "disable"; + clock-frequency = <216000000>; }; serial@70006400 { @@ -90,7 +60,7 @@ sdhci@c8000000 { cd-gpios = <&gpio 173 0>; /* gpio PV5 */ wp-gpios = <&gpio 57 0>; /* gpio PH1 */ - power-gpios = <&gpio 169 0>; /* gpio PV1 */ + power-gpios = <&gpio 155 0>; /* gpio PT3 */ }; sdhci@c8000200 { diff --git a/trunk/arch/arm/boot/dts/tegra-seaboard.dts b/trunk/arch/arm/boot/dts/tegra-seaboard.dts index 876d5c92ce36..b55a02e34ba7 100644 --- a/trunk/arch/arm/boot/dts/tegra-seaboard.dts +++ b/trunk/arch/arm/boot/dts/tegra-seaboard.dts @@ -13,20 +13,6 @@ i2c@7000c000 { clock-frequency = <400000>; - - wm8903: wm8903@1a { - compatible = "wlf,wm8903"; - reg = <0x1a>; - interrupt-parent = <&gpio>; - interrupts = < 187 0x04 >; - - gpio-controller; - #gpio-cells = <2>; - - micdet-cfg = <0>; - micdet-delay = <100>; - gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >; - }; }; i2c@7000c400 { @@ -46,32 +32,6 @@ }; }; - i2s@70002a00 { - status = "disable"; - }; - - sound { - compatible = "nvidia,tegra-audio-wm8903-seaboard", - "nvidia,tegra-audio-wm8903"; - nvidia,model = "NVIDIA Tegra Seaboard"; - - nvidia,audio-routing = - "Headphone Jack", "HPOUTR", - "Headphone Jack", "HPOUTL", - "Int Spk", "ROP", - "Int Spk", "RON", - "Int Spk", "LOP", - "Int Spk", "LON", - "Mic Jack", "MICBIAS", - "IN1R", "Mic Jack"; - - nvidia,i2s-controller = <&tegra_i2s1>; - nvidia,audio-codec = <&wm8903>; - - nvidia,spkr-en-gpios = <&wm8903 2 0>; - nvidia,hp-det-gpios = <&gpio 185 0>; /* gpio PX1 */ - }; - serial@70006000 { status = "disable"; }; @@ -133,42 +93,4 @@ gpio-key,wakeup; }; }; - - emc@7000f400 { - emc-table@190000 { - reg = < 190000 >; - compatible = "nvidia,tegra20-emc-table"; - clock-frequency = < 190000 >; - nvidia,emc-registers = < 0x0000000c 0x00000026 - 0x00000009 0x00000003 0x00000004 0x00000004 - 0x00000002 0x0000000c 0x00000003 0x00000003 - 0x00000002 0x00000001 0x00000004 0x00000005 - 0x00000004 0x00000009 0x0000000d 0x0000059f - 0x00000000 0x00000003 0x00000003 0x00000003 - 0x00000003 0x00000001 0x0000000b 0x000000c8 - 0x00000003 0x00000007 0x00000004 0x0000000f - 0x00000002 0x00000000 0x00000000 0x00000002 - 0x00000000 0x00000000 0x00000083 0xa06204ae - 0x007dc010 0x00000000 0x00000000 0x00000000 - 0x00000000 0x00000000 0x00000000 0x00000000 >; - }; - - emc-table@380000 { - reg = < 380000 >; - compatible = "nvidia,tegra20-emc-table"; - clock-frequency = < 380000 >; - nvidia,emc-registers = < 0x00000017 0x0000004b - 0x00000012 0x00000006 0x00000004 0x00000005 - 0x00000003 0x0000000c 0x00000006 0x00000006 - 0x00000003 0x00000001 0x00000004 0x00000005 - 0x00000004 0x00000009 0x0000000d 0x00000b5f - 0x00000000 0x00000003 0x00000003 0x00000006 - 0x00000006 0x00000001 0x00000011 0x000000c8 - 0x00000003 0x0000000e 0x00000007 0x0000000f - 0x00000002 0x00000000 0x00000000 0x00000002 - 0x00000000 0x00000000 0x00000083 0xe044048b - 0x007d8010 0x00000000 0x00000000 0x00000000 - 0x00000000 0x00000000 0x00000000 0x00000000 >; - }; - }; }; diff --git a/trunk/arch/arm/boot/dts/tegra-trimslice.dts b/trunk/arch/arm/boot/dts/tegra-trimslice.dts index 252476867b54..3b3ee7db99f3 100644 --- a/trunk/arch/arm/boot/dts/tegra-trimslice.dts +++ b/trunk/arch/arm/boot/dts/tegra-trimslice.dts @@ -26,18 +26,6 @@ status = "disable"; }; - i2s@70002800 { - status = "disable"; - }; - - i2s@70002a00 { - status = "disable"; - }; - - das@70000c00 { - status = "disable"; - }; - serial@70006000 { clock-frequency = < 216000000 >; }; diff --git a/trunk/arch/arm/boot/dts/tegra-ventana.dts b/trunk/arch/arm/boot/dts/tegra-ventana.dts index 2dcff8728e90..c7d3b87f29df 100644 --- a/trunk/arch/arm/boot/dts/tegra-ventana.dts +++ b/trunk/arch/arm/boot/dts/tegra-ventana.dts @@ -12,20 +12,6 @@ i2c@7000c000 { clock-frequency = <400000>; - - wm8903: wm8903@1a { - compatible = "wlf,wm8903"; - reg = <0x1a>; - interrupt-parent = <&gpio>; - interrupts = < 187 0x04 >; - - gpio-controller; - #gpio-cells = <2>; - - micdet-cfg = <0>; - micdet-delay = <100>; - gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >; - }; }; i2c@7000c400 { @@ -40,34 +26,6 @@ clock-frequency = <400000>; }; - i2s@70002a00 { - status = "disable"; - }; - - sound { - compatible = "nvidia,tegra-audio-wm8903-ventana", - "nvidia,tegra-audio-wm8903"; - nvidia,model = "NVIDIA Tegra Ventana"; - - nvidia,audio-routing = - "Headphone Jack", "HPOUTR", - "Headphone Jack", "HPOUTL", - "Int Spk", "ROP", - "Int Spk", "RON", - "Int Spk", "LOP", - "Int Spk", "LON", - "Mic Jack", "MICBIAS", - "IN1L", "Mic Jack"; - - nvidia,i2s-controller = <&tegra_i2s1>; - nvidia,audio-codec = <&wm8903>; - - nvidia,spkr-en-gpios = <&wm8903 2 0>; - nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ - nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ - nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ - }; - serial@70006000 { status = "disable"; }; diff --git a/trunk/arch/arm/boot/dts/tegra20.dtsi b/trunk/arch/arm/boot/dts/tegra20.dtsi index ec1f0101c79c..3da7afd45322 100644 --- a/trunk/arch/arm/boot/dts/tegra20.dtsi +++ b/trunk/arch/arm/boot/dts/tegra20.dtsi @@ -4,11 +4,6 @@ compatible = "nvidia,tegra20"; interrupt-parent = <&intc>; - pmc@7000f400 { - compatible = "nvidia,tegra20-pmc"; - reg = <0x7000e400 0x400>; - }; - intc: interrupt-controller@50041000 { compatible = "arm,cortex-a9-gic"; interrupt-controller; @@ -17,27 +12,6 @@ < 0x50040100 0x0100 >; }; - apbdma: dma@6000a000 { - compatible = "nvidia,tegra20-apbdma"; - reg = <0x6000a000 0x1200>; - interrupts = < 0 104 0x04 - 0 105 0x04 - 0 106 0x04 - 0 107 0x04 - 0 108 0x04 - 0 109 0x04 - 0 110 0x04 - 0 111 0x04 - 0 112 0x04 - 0 113 0x04 - 0 114 0x04 - 0 115 0x04 - 0 116 0x04 - 0 117 0x04 - 0 118 0x04 - 0 119 0x04 >; - }; - i2c@7000c000 { #address-cells = <1>; #size-cells = <0>; @@ -70,18 +44,18 @@ interrupts = < 0 53 0x04 >; }; - tegra_i2s1: i2s@70002800 { + i2s@70002800 { compatible = "nvidia,tegra20-i2s"; reg = <0x70002800 0x200>; interrupts = < 0 13 0x04 >; - nvidia,dma-request-selector = < &apbdma 2 >; + dma-channel = < 2 >; }; - tegra_i2s2: i2s@70002a00 { + i2s@70002a00 { compatible = "nvidia,tegra20-i2s"; reg = <0x70002a00 0x200>; interrupts = < 0 3 0x04 >; - nvidia,dma-request-selector = < &apbdma 1 >; + dma-channel = < 1 >; }; das@70000c00 { @@ -101,8 +75,6 @@ 0 89 0x04 >; #gpio-cells = <2>; gpio-controller; - #interrupt-cells = <2>; - interrupt-controller; }; pinmux: pinmux@70000000 { @@ -148,13 +120,6 @@ interrupts = < 0 91 0x04 >; }; - emc@7000f400 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "nvidia,tegra20-emc"; - reg = <0x7000f400 0x200>; - }; - sdhci@c8000000 { compatible = "nvidia,tegra20-sdhci"; reg = <0xc8000000 0x200>; diff --git a/trunk/arch/arm/boot/dts/tegra30.dtsi b/trunk/arch/arm/boot/dts/tegra30.dtsi index ac4b75cb26c0..ee7db9892e02 100644 --- a/trunk/arch/arm/boot/dts/tegra30.dtsi +++ b/trunk/arch/arm/boot/dts/tegra30.dtsi @@ -4,11 +4,6 @@ compatible = "nvidia,tegra30"; interrupt-parent = <&intc>; - pmc@7000f400 { - compatible = "nvidia,tegra20-pmc", "nvidia,tegra30-pmc"; - reg = <0x7000e400 0x400>; - }; - intc: interrupt-controller@50041000 { compatible = "arm,cortex-a9-gic"; interrupt-controller; @@ -17,43 +12,6 @@ < 0x50040100 0x0100 >; }; - apbdma: dma@6000a000 { - compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma"; - reg = <0x6000a000 0x1400>; - interrupts = < 0 104 0x04 - 0 105 0x04 - 0 106 0x04 - 0 107 0x04 - 0 108 0x04 - 0 109 0x04 - 0 110 0x04 - 0 111 0x04 - 0 112 0x04 - 0 113 0x04 - 0 114 0x04 - 0 115 0x04 - 0 116 0x04 - 0 117 0x04 - 0 118 0x04 - 0 119 0x04 - 0 128 0x04 - 0 129 0x04 - 0 130 0x04 - 0 131 0x04 - 0 132 0x04 - 0 133 0x04 - 0 134 0x04 - 0 135 0x04 - 0 136 0x04 - 0 137 0x04 - 0 138 0x04 - 0 139 0x04 - 0 140 0x04 - 0 141 0x04 - 0 142 0x04 - 0 143 0x04 >; - }; - i2c@7000c000 { #address-cells = <1>; #size-cells = <0>; @@ -97,18 +55,9 @@ gpio: gpio@6000d000 { compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio"; reg = < 0x6000d000 0x1000 >; - interrupts = < 0 32 0x04 - 0 33 0x04 - 0 34 0x04 - 0 35 0x04 - 0 55 0x04 - 0 87 0x04 - 0 89 0x04 - 0 125 0x04 >; + interrupts = < 0 32 0x04 0 33 0x04 0 34 0x04 0 35 0x04 0 55 0x04 0 87 0x04 0 89 0x04 >; #gpio-cells = <2>; gpio-controller; - #interrupt-cells = <2>; - interrupt-controller; }; serial@70006000 { diff --git a/trunk/arch/arm/common/gic.c b/trunk/arch/arm/common/gic.c index f0783be17352..c47d6199b784 100644 --- a/trunk/arch/arm/common/gic.c +++ b/trunk/arch/arm/common/gic.c @@ -51,6 +51,7 @@ union gic_base { }; struct gic_chip_data { + unsigned int irq_offset; union gic_base dist_base; union gic_base cpu_base; #ifdef CONFIG_CPU_PM @@ -60,7 +61,9 @@ struct gic_chip_data { u32 __percpu *saved_ppi_enable; u32 __percpu *saved_ppi_conf; #endif - struct irq_domain *domain; +#ifdef CONFIG_IRQ_DOMAIN + struct irq_domain domain; +#endif unsigned int gic_irqs; #ifdef CONFIG_GIC_NON_BANKED void __iomem *(*get_base)(union gic_base *); @@ -279,7 +282,7 @@ asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) irqnr = irqstat & ~0x1c00; if (likely(irqnr > 15 && irqnr < 1021)) { - irqnr = irq_find_mapping(gic->domain, irqnr); + irqnr = irq_domain_to_irq(&gic->domain, irqnr); handle_IRQ(irqnr, regs); continue; } @@ -311,8 +314,8 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) if (gic_irq == 1023) goto out; - cascade_irq = irq_find_mapping(chip_data->domain, gic_irq); - if (unlikely(gic_irq < 32 || gic_irq > 1020)) + cascade_irq = irq_domain_to_irq(&chip_data->domain, gic_irq); + if (unlikely(gic_irq < 32 || gic_irq > 1020 || cascade_irq >= NR_IRQS)) do_bad_IRQ(cascade_irq, desc); else generic_handle_irq(cascade_irq); @@ -345,9 +348,10 @@ void __init gic_cascade_irq(unsigned int gic_nr, unsigned int irq) static void __init gic_dist_init(struct gic_chip_data *gic) { - unsigned int i; + unsigned int i, irq; u32 cpumask; unsigned int gic_irqs = gic->gic_irqs; + struct irq_domain *domain = &gic->domain; void __iomem *base = gic_data_dist_base(gic); u32 cpu = cpu_logical_map(smp_processor_id()); @@ -382,6 +386,23 @@ static void __init gic_dist_init(struct gic_chip_data *gic) for (i = 32; i < gic_irqs; i += 32) writel_relaxed(0xffffffff, base + GIC_DIST_ENABLE_CLEAR + i * 4 / 32); + /* + * Setup the Linux IRQ subsystem. + */ + irq_domain_for_each_irq(domain, i, irq) { + if (i < 32) { + irq_set_percpu_devid(irq); + irq_set_chip_and_handler(irq, &gic_chip, + handle_percpu_devid_irq); + set_irq_flags(irq, IRQF_VALID | IRQF_NOAUTOEN); + } else { + irq_set_chip_and_handler(irq, &gic_chip, + handle_fasteoi_irq); + set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); + } + irq_set_chip_data(irq, gic); + } + writel_relaxed(1, base + GIC_DIST_CTRL); } @@ -597,27 +618,11 @@ static void __init gic_pm_init(struct gic_chip_data *gic) } #endif -static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, - irq_hw_number_t hw) -{ - if (hw < 32) { - irq_set_percpu_devid(irq); - irq_set_chip_and_handler(irq, &gic_chip, - handle_percpu_devid_irq); - set_irq_flags(irq, IRQF_VALID | IRQF_NOAUTOEN); - } else { - irq_set_chip_and_handler(irq, &gic_chip, - handle_fasteoi_irq); - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); - } - irq_set_chip_data(irq, d->host_data); - return 0; -} - -static int gic_irq_domain_xlate(struct irq_domain *d, - struct device_node *controller, - const u32 *intspec, unsigned int intsize, - unsigned long *out_hwirq, unsigned int *out_type) +#ifdef CONFIG_OF +static int gic_irq_domain_dt_translate(struct irq_domain *d, + struct device_node *controller, + const u32 *intspec, unsigned int intsize, + unsigned long *out_hwirq, unsigned int *out_type) { if (d->of_node != controller) return -EINVAL; @@ -634,23 +639,26 @@ static int gic_irq_domain_xlate(struct irq_domain *d, *out_type = intspec[2] & IRQ_TYPE_SENSE_MASK; return 0; } +#endif const struct irq_domain_ops gic_irq_domain_ops = { - .map = gic_irq_domain_map, - .xlate = gic_irq_domain_xlate, +#ifdef CONFIG_OF + .dt_translate = gic_irq_domain_dt_translate, +#endif }; void __init gic_init_bases(unsigned int gic_nr, int irq_start, void __iomem *dist_base, void __iomem *cpu_base, - u32 percpu_offset, struct device_node *node) + u32 percpu_offset) { - irq_hw_number_t hwirq_base; struct gic_chip_data *gic; - int gic_irqs, irq_base; + struct irq_domain *domain; + int gic_irqs; BUG_ON(gic_nr >= MAX_GIC_NR); gic = &gic_data[gic_nr]; + domain = &gic->domain; #ifdef CONFIG_GIC_NON_BANKED if (percpu_offset) { /* Frankein-GIC without banked registers... */ unsigned int cpu; @@ -686,10 +694,10 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start, * For primary GICs, skip over SGIs. * For secondary GICs, skip over PPIs, too. */ - hwirq_base = 32; + domain->hwirq_base = 32; if (gic_nr == 0) { if ((irq_start & 31) > 0) { - hwirq_base = 16; + domain->hwirq_base = 16; if (irq_start != -1) irq_start = (irq_start & ~31) + 16; } @@ -705,17 +713,17 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start, gic_irqs = 1020; gic->gic_irqs = gic_irqs; - gic_irqs -= hwirq_base; /* calculate # of irqs to allocate */ - irq_base = irq_alloc_descs(irq_start, 16, gic_irqs, numa_node_id()); - if (IS_ERR_VALUE(irq_base)) { + domain->nr_irq = gic_irqs - domain->hwirq_base; + domain->irq_base = irq_alloc_descs(irq_start, 16, domain->nr_irq, + numa_node_id()); + if (IS_ERR_VALUE(domain->irq_base)) { WARN(1, "Cannot allocate irq_descs @ IRQ%d, assuming pre-allocated\n", irq_start); - irq_base = irq_start; + domain->irq_base = irq_start; } - gic->domain = irq_domain_add_legacy(node, gic_irqs, irq_base, - hwirq_base, &gic_irq_domain_ops, gic); - if (WARN_ON(!gic->domain)) - return; + domain->priv = gic; + domain->ops = &gic_irq_domain_ops; + irq_domain_add(domain); gic_chip.flags |= gic_arch_extn.flags; gic_dist_init(gic); @@ -760,6 +768,7 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent) void __iomem *dist_base; u32 percpu_offset; int irq; + struct irq_domain *domain = &gic_data[gic_cnt].domain; if (WARN_ON(!node)) return -ENODEV; @@ -773,7 +782,9 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent) if (of_property_read_u32(node, "cpu-offset", &percpu_offset)) percpu_offset = 0; - gic_init_bases(gic_cnt, -1, dist_base, cpu_base, percpu_offset, node); + domain->of_node = of_node_get(node); + + gic_init_bases(gic_cnt, -1, dist_base, cpu_base, percpu_offset); if (parent) { irq = irq_of_parse_and_map(node, 0); diff --git a/trunk/arch/arm/common/it8152.c b/trunk/arch/arm/common/it8152.c index fb1f1cfce60c..d1bcd7b13ebc 100644 --- a/trunk/arch/arm/common/it8152.c +++ b/trunk/arch/arm/common/it8152.c @@ -320,6 +320,13 @@ int __init it8152_pci_setup(int nr, struct pci_sys_data *sys) return -EBUSY; } +/* + * If we set up a device for bus mastering, we need to check the latency + * timer as we don't have even crappy BIOSes to set it properly. + * The implementation is from arch/i386/pci/i386.c + */ +unsigned int pcibios_max_latency = 255; + /* ITE bridge requires setting latency timer to avoid early bus access termination by PCI bus master devices */ diff --git a/trunk/arch/arm/common/pl330.c b/trunk/arch/arm/common/pl330.c index ff3ad2244824..d8e44a43047c 100644 --- a/trunk/arch/arm/common/pl330.c +++ b/trunk/arch/arm/common/pl330.c @@ -1502,13 +1502,12 @@ int pl330_chan_ctrl(void *ch_id, enum pl330_chan_op op) struct pl330_thread *thrd = ch_id; struct pl330_dmac *pl330; unsigned long flags; - int ret = 0, active; + int ret = 0, active = thrd->req_running; if (!thrd || thrd->free || thrd->dmac->state == DYING) return -EINVAL; pl330 = thrd->dmac; - active = thrd->req_running; spin_lock_irqsave(&pl330->lock, flags); diff --git a/trunk/arch/arm/common/vic.c b/trunk/arch/arm/common/vic.c index 7a66311f3066..dcb004a804c7 100644 --- a/trunk/arch/arm/common/vic.c +++ b/trunk/arch/arm/common/vic.c @@ -56,7 +56,7 @@ struct vic_device { u32 int_enable; u32 soft_int; u32 protect; - struct irq_domain *domain; + struct irq_domain domain; }; /* we cannot allocate memory when VICs are initially registered */ @@ -192,8 +192,14 @@ static void __init vic_register(void __iomem *base, unsigned int irq, v->resume_sources = resume_sources; v->irq = irq; vic_id++; - v->domain = irq_domain_add_legacy(node, 32, irq, 0, - &irq_domain_simple_ops, v); + + v->domain.irq_base = irq; + v->domain.nr_irq = 32; +#ifdef CONFIG_OF_IRQ + v->domain.of_node = of_node_get(node); +#endif /* CONFIG_OF */ + v->domain.ops = &irq_domain_simple_ops; + irq_domain_add(&v->domain); } static void vic_ack_irq(struct irq_data *d) @@ -342,7 +348,7 @@ static void __init vic_init_st(void __iomem *base, unsigned int irq_start, vic_register(base, irq_start, 0, node); } -void __init __vic_init(void __iomem *base, unsigned int irq_start, +static void __init __vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, u32 resume_sources, struct device_node *node) { @@ -438,7 +444,7 @@ static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs) stat = readl_relaxed(vic->base + VIC_IRQ_STATUS); while (stat) { irq = ffs(stat) - 1; - handle_IRQ(irq_find_mapping(vic->domain, irq), regs); + handle_IRQ(irq_domain_to_irq(&vic->domain, irq), regs); stat &= ~(1 << irq); handled = 1; } diff --git a/trunk/arch/arm/configs/at91cap9_defconfig b/trunk/arch/arm/configs/at91cap9_defconfig new file mode 100644 index 000000000000..8826eb218e73 --- /dev/null +++ b/trunk/arch/arm/configs/at91cap9_defconfig @@ -0,0 +1,108 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_BLK_DEV_INITRD=y +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_AT91=y +CONFIG_ARCH_AT91CAP9=y +CONFIG_MACH_AT91CAP9ADK=y +CONFIG_MTD_AT91_DATAFLASH_CARD=y +CONFIG_AT91_PROGRAMMABLE_CLOCKS=y +# CONFIG_ARM_THUMB is not set +CONFIG_AEABI=y +CONFIG_LEDS=y +CONFIG_LEDS_CPU=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/ram0 rw" +CONFIG_FPE_NWFPE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_ATMEL=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_MACB=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=y +# CONFIG_SERIO is not set +CONFIG_SERIAL_ATMEL=y +CONFIG_SERIAL_ATMEL_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_SPI=y +CONFIG_SPI_ATMEL=y +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_NOWAYOUT=y +CONFIG_FB=y +CONFIG_FB_ATMEL=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_CLUT224 is not set +# CONFIG_USB_HID is not set +CONFIG_USB=y +CONFIG_USB_DEVICEFS=y +CONFIG_USB_MON=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_USB_ETH=m +CONFIG_USB_FILE_STORAGE=m +CONFIG_MMC=y +CONFIG_MMC_AT91=m +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_AT91SAM9=y +CONFIG_EXT2_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_CRAMFS=y +CONFIG_NFS_FS=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_ISO8859_1=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_USER=y diff --git a/trunk/arch/arm/configs/imx_v4_v5_defconfig b/trunk/arch/arm/configs/imx_v4_v5_defconfig index d9eddfd77428..a22e93079063 100644 --- a/trunk/arch/arm/configs/imx_v4_v5_defconfig +++ b/trunk/arch/arm/configs/imx_v4_v5_defconfig @@ -45,7 +45,6 @@ CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE_XP=y CONFIG_PM_DEBUG=y CONFIG_NET=y -CONFIG_SMSC911X=y CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_INET=y @@ -79,8 +78,6 @@ CONFIG_MISC_DEVICES=y CONFIG_EEPROM_AT24=y CONFIG_EEPROM_AT25=y CONFIG_NETDEVICES=y -CONFIG_CS89x0=y -CONFIG_CS89x0_PLATFORM=y CONFIG_DM9000=y CONFIG_SMC91X=y CONFIG_SMC911X=y @@ -118,21 +115,6 @@ CONFIG_FB_IMX=y CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=y CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_LCD_L4F00242T03=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_VIDEO_DEV=y -CONFIG_VIDEO_V4L2_COMMON=y -CONFIG_VIDEO_MEDIA=y -CONFIG_VIDEO_V4L2=y -CONFIG_VIDEOBUF_GEN=y -CONFIG_VIDEOBUF_DMA_CONTIG=y -CONFIG_VIDEOBUF2_CORE=y -CONFIG_VIDEO_CAPTURE_DRIVERS=y -CONFIG_V4L_PLATFORM_DRIVERS=y -CONFIG_SOC_CAMERA=y -CONFIG_SOC_CAMERA_OV2640=y -CONFIG_VIDEO_MX2_HOSTSUPPORT=y -CONFIG_VIDEO_MX2=y CONFIG_BACKLIGHT_PWM=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FONTS=y diff --git a/trunk/arch/arm/configs/imx_v6_v7_defconfig b/trunk/arch/arm/configs/imx_v6_v7_defconfig index 6ae457aeea49..3a4fb2e5fc68 100644 --- a/trunk/arch/arm/configs/imx_v6_v7_defconfig +++ b/trunk/arch/arm/configs/imx_v6_v7_defconfig @@ -26,6 +26,7 @@ CONFIG_MACH_ARMADILLO5X0=y CONFIG_MACH_KZM_ARM11_01=y CONFIG_MACH_PCM043=y CONFIG_MACH_MX35_3DS=y +CONFIG_MACH_EUKREA_CPUIMX35=y CONFIG_MACH_VPR200=y CONFIG_MACH_IMX51_DT=y CONFIG_MACH_MX51_3DS=y @@ -81,9 +82,8 @@ CONFIG_PATA_IMX=y CONFIG_NETDEVICES=y # CONFIG_NET_VENDOR_BROADCOM is not set # CONFIG_NET_VENDOR_CHELSIO is not set -CONFIG_CS89x0=y -CONFIG_CS89x0_PLATFORM=y # CONFIG_NET_VENDOR_FARADAY is not set +CONFIG_FEC=y # CONFIG_NET_VENDOR_INTEL is not set # CONFIG_NET_VENDOR_MARVELL is not set # CONFIG_NET_VENDOR_MICREL is not set @@ -126,39 +126,7 @@ CONFIG_WATCHDOG=y CONFIG_IMX2_WDT=y CONFIG_MFD_MC13XXX=y CONFIG_REGULATOR=y -CONFIG_REGULATOR_MC13783=y CONFIG_REGULATOR_MC13892=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_VIDEO_V4L2=y -CONFIG_VIDEO_DEV=y -CONFIG_VIDEO_V4L2_COMMON=y -CONFIG_VIDEOBUF_GEN=y -CONFIG_VIDEOBUF2_CORE=y -CONFIG_VIDEOBUF2_MEMOPS=y -CONFIG_VIDEOBUF2_DMA_CONTIG=y -CONFIG_VIDEO_CAPTURE_DRIVERS=y -CONFIG_V4L_PLATFORM_DRIVERS=y -CONFIG_SOC_CAMERA=y -CONFIG_SOC_CAMERA_OV2640=y -CONFIG_MX3_VIDEO=y -CONFIG_VIDEO_MX3=y -CONFIG_FB=y -CONFIG_FB_MX3=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_LCD_L4F00242T03=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=y -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FONTS=y -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_MXC=y diff --git a/trunk/arch/arm/configs/lpc32xx_defconfig b/trunk/arch/arm/configs/lpc32xx_defconfig new file mode 100644 index 000000000000..fb2088171ca9 --- /dev/null +++ b/trunk/arch/arm/configs/lpc32xx_defconfig @@ -0,0 +1,145 @@ +CONFIG_EXPERIMENTAL=y +CONFIG_SYSVIPC=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_EMBEDDED=y +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_PARTITION_ADVANCED=y +CONFIG_ARCH_LPC32XX=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200n81 root=/dev/ram0" +CONFIG_CPU_IDLE=y +CONFIG_FPE_NWFPE=y +CONFIG_VFP=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_AOUT=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +# CONFIG_WIRELESS is not set +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +# CONFIG_FW_LOADER is not set +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_MUSEUM_IDS=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_CRYPTOLOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=1 +CONFIG_BLK_DEV_RAM_SIZE=16384 +CONFIG_MISC_DEVICES=y +CONFIG_EEPROM_AT25=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_PHYLIB=y +CONFIG_SMSC_PHY=y +# CONFIG_WLAN is not set +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=240 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320 +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_LPC32XX=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_PNX=y +CONFIG_SPI=y +CONFIG_SPI_PL022=y +CONFIG_GPIO_SYSFS=y +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_PNX4008_WATCHDOG=y +CONFIG_FB=y +CONFIG_FB_ARMCLCD=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_SEQUENCER=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_DYNAMIC_MINORS=y +# CONFIG_SND_VERBOSE_PROCFS is not set +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_ARM is not set +# CONFIG_SND_SPI is not set +CONFIG_SND_SOC=y +# CONFIG_HID_SUPPORT is not set +CONFIG_USB=y +CONFIG_USB_STORAGE=y +CONFIG_USB_LIBUSUAL=y +CONFIG_MMC=y +# CONFIG_MMC_BLOCK_BOUNCE is not set +CONFIG_MMC_ARMMMCI=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_LPC32XX=y +CONFIG_EXT2_FS=y +CONFIG_AUTOFS4_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_WBUF_VERIFY=y +CONFIG_CRAMFS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_PREEMPT is not set +CONFIG_DEBUG_INFO=y +# CONFIG_FTRACE is not set +# CONFIG_ARM_UNWIND is not set +CONFIG_DEBUG_LL=y +CONFIG_EARLY_PRINTK=y +CONFIG_CRYPTO_ANSI_CPRNG=y +# CONFIG_CRYPTO_HW is not set +CONFIG_CRC_CCITT=y diff --git a/trunk/arch/arm/configs/magician_defconfig b/trunk/arch/arm/configs/magician_defconfig index a691ef4c6008..443675d317e6 100644 --- a/trunk/arch/arm/configs/magician_defconfig +++ b/trunk/arch/arm/configs/magician_defconfig @@ -101,7 +101,7 @@ CONFIG_MFD_ASIC3=y CONFIG_HTC_EGPIO=y CONFIG_HTC_PASIC3=y CONFIG_REGULATOR=y -CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_BQ24022=y CONFIG_FB=y CONFIG_FB_PXA=y CONFIG_FB_PXA_OVERLAY=y diff --git a/trunk/arch/arm/include/asm/assembler.h b/trunk/arch/arm/include/asm/assembler.h index 23371b17b23e..62f8095d46de 100644 --- a/trunk/arch/arm/include/asm/assembler.h +++ b/trunk/arch/arm/include/asm/assembler.h @@ -137,11 +137,6 @@ disable_irq .endm - .macro save_and_disable_irqs_notrace, oldcpsr - mrs \oldcpsr, cpsr - disable_irq_notrace - .endm - /* * Restore interrupt state previously stored in a register. We don't * guarantee that this will preserve the flags. diff --git a/trunk/arch/arm/include/asm/hardware/gic.h b/trunk/arch/arm/include/asm/hardware/gic.h index 4b1ce6cd477f..4bdfe0018696 100644 --- a/trunk/arch/arm/include/asm/hardware/gic.h +++ b/trunk/arch/arm/include/asm/hardware/gic.h @@ -39,7 +39,7 @@ struct device_node; extern struct irq_chip gic_arch_extn; void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *, - u32 offset, struct device_node *); + u32 offset); int gic_of_init(struct device_node *node, struct device_node *parent); void gic_secondary_init(unsigned int); void gic_handle_irq(struct pt_regs *regs); @@ -49,7 +49,7 @@ void gic_raise_softirq(const struct cpumask *mask, unsigned int irq); static inline void gic_init(unsigned int nr, int start, void __iomem *dist , void __iomem *cpu) { - gic_init_bases(nr, start, dist, cpu, 0, NULL); + gic_init_bases(nr, start, dist, cpu, 0); } #endif diff --git a/trunk/arch/arm/include/asm/hardware/pl330.h b/trunk/arch/arm/include/asm/hardware/pl330.h index c1821385abfa..575fa8186ca0 100644 --- a/trunk/arch/arm/include/asm/hardware/pl330.h +++ b/trunk/arch/arm/include/asm/hardware/pl330.h @@ -41,7 +41,7 @@ enum pl330_dstcachectrl { DCCTRL1, /* Bufferable only */ DCCTRL2, /* Cacheable, but do not allocate */ DCCTRL3, /* Cacheable and bufferable, but do not allocate */ - DINVALID1, /* AWCACHE = 0x1000 */ + DINVALID1 = 8, DINVALID2, DCCTRL6, /* Cacheable write-through, allocate on writes only */ DCCTRL7, /* Cacheable write-back, allocate on writes only */ diff --git a/trunk/arch/arm/include/asm/hardware/vic.h b/trunk/arch/arm/include/asm/hardware/vic.h index e14af1a1a320..f42ebd619590 100644 --- a/trunk/arch/arm/include/asm/hardware/vic.h +++ b/trunk/arch/arm/include/asm/hardware/vic.h @@ -47,8 +47,6 @@ struct device_node; struct pt_regs; -void __vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, - u32 resume_sources, struct device_node *node); void vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, u32 resume_sources); int vic_of_init(struct device_node *node, struct device_node *parent); void vic_handle_irq(struct pt_regs *regs); diff --git a/trunk/arch/arm/include/asm/processor.h b/trunk/arch/arm/include/asm/processor.h index cb8d638924fd..ce280b8d613c 100644 --- a/trunk/arch/arm/include/asm/processor.h +++ b/trunk/arch/arm/include/asm/processor.h @@ -22,7 +22,6 @@ #include #include #include -#include #ifdef __KERNEL__ #define STACK_TOP ((current->personality & ADDR_LIMIT_32BIT) ? \ diff --git a/trunk/arch/arm/include/asm/system.h b/trunk/arch/arm/include/asm/system.h index 424aa458c487..e4c96cc6ec0c 100644 --- a/trunk/arch/arm/include/asm/system.h +++ b/trunk/arch/arm/include/asm/system.h @@ -110,7 +110,6 @@ extern void cpu_init(void); void soft_restart(unsigned long); extern void (*arm_pm_restart)(char str, const char *cmd); -extern void (*arm_pm_idle)(void); #define UDBG_UNDEFINED (1 << 0) #define UDBG_SYSCALL (1 << 1) diff --git a/trunk/arch/arm/include/asm/tlb.h b/trunk/arch/arm/include/asm/tlb.h index 314d4664eae7..5d3ed7e38561 100644 --- a/trunk/arch/arm/include/asm/tlb.h +++ b/trunk/arch/arm/include/asm/tlb.h @@ -198,15 +198,7 @@ static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr) { pgtable_page_dtor(pte); - - /* - * With the classic ARM MMU, a pte page has two corresponding pmd - * entries, each covering 1MB. - */ - addr &= PMD_MASK; - tlb_add_flush(tlb, addr + SZ_1M - PAGE_SIZE); - tlb_add_flush(tlb, addr + SZ_1M); - + tlb_add_flush(tlb, addr); tlb_remove_page(tlb, pte); } diff --git a/trunk/arch/arm/kernel/entry-armv.S b/trunk/arch/arm/kernel/entry-armv.S index be16a48007b4..3a456c6c7005 100644 --- a/trunk/arch/arm/kernel/entry-armv.S +++ b/trunk/arch/arm/kernel/entry-armv.S @@ -790,7 +790,7 @@ __kuser_cmpxchg64: @ 0xffff0f60 smp_dmb arm rsbs r0, r3, #0 @ set returned val and C flag ldmfd sp!, {r4, r5, r6, r7} - usr_ret lr + bx lr #elif !defined(CONFIG_SMP) diff --git a/trunk/arch/arm/kernel/perf_event_v7.c b/trunk/arch/arm/kernel/perf_event_v7.c index 6933244c68f9..460bbbb6b885 100644 --- a/trunk/arch/arm/kernel/perf_event_v7.c +++ b/trunk/arch/arm/kernel/perf_event_v7.c @@ -469,20 +469,6 @@ static const unsigned armv7_a5_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED, }, }, - [C(NODE)] = { - [C(OP_READ)] = { - [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, - [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED, - }, - [C(OP_WRITE)] = { - [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, - [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED, - }, - [C(OP_PREFETCH)] = { - [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, - [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED, - }, - }, }; /* @@ -593,20 +579,6 @@ static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED, }, }, - [C(NODE)] = { - [C(OP_READ)] = { - [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, - [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED, - }, - [C(OP_WRITE)] = { - [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, - [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED, - }, - [C(OP_PREFETCH)] = { - [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, - [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED, - }, - }, }; /* diff --git a/trunk/arch/arm/kernel/process.c b/trunk/arch/arm/kernel/process.c index 008e7ce766a7..971d65c253a9 100644 --- a/trunk/arch/arm/kernel/process.c +++ b/trunk/arch/arm/kernel/process.c @@ -61,6 +61,8 @@ extern void setup_mm_for_reboot(void); static volatile int hlt_counter; +#include + void disable_hlt(void) { hlt_counter++; @@ -179,17 +181,13 @@ void cpu_idle_wait(void) EXPORT_SYMBOL_GPL(cpu_idle_wait); /* - * This is our default idle handler. + * This is our default idle handler. We need to disable + * interrupts here to ensure we don't miss a wakeup call. */ - -void (*arm_pm_idle)(void); - static void default_idle(void) { - if (arm_pm_idle) - arm_pm_idle(); - else - cpu_do_idle(); + if (!need_resched()) + arch_idle(); local_irq_enable(); } @@ -217,10 +215,6 @@ void cpu_idle(void) cpu_die(); #endif - /* - * We need to disable interrupts here - * to ensure we don't miss a wakeup call. - */ local_irq_disable(); #ifdef CONFIG_PL310_ERRATA_769419 wmb(); @@ -228,18 +222,19 @@ void cpu_idle(void) if (hlt_counter) { local_irq_enable(); cpu_relax(); - } else if (!need_resched()) { + } else { stop_critical_timings(); if (cpuidle_idle_call()) pm_idle(); start_critical_timings(); /* - * pm_idle functions must always - * return with IRQs enabled. + * This will eventually be removed - pm_idle + * functions should always return with IRQs + * enabled. */ WARN_ON(irqs_disabled()); - } else local_irq_enable(); + } } leds_event(led_idle_end); rcu_idle_exit(); diff --git a/trunk/arch/arm/kernel/ptrace.c b/trunk/arch/arm/kernel/ptrace.c index ede6443c34d9..e1d5e1929fbd 100644 --- a/trunk/arch/arm/kernel/ptrace.c +++ b/trunk/arch/arm/kernel/ptrace.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include @@ -700,13 +699,10 @@ static int vfp_set(struct task_struct *target, { int ret; struct thread_info *thread = task_thread_info(target); - struct vfp_hard_struct new_vfp; + struct vfp_hard_struct new_vfp = thread->vfpstate.hard; const size_t user_fpregs_offset = offsetof(struct user_vfp, fpregs); const size_t user_fpscr_offset = offsetof(struct user_vfp, fpscr); - vfp_sync_hwstate(thread); - new_vfp = thread->vfpstate.hard; - ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &new_vfp.fpregs, user_fpregs_offset, @@ -727,8 +723,9 @@ static int vfp_set(struct task_struct *target, if (ret) return ret; - vfp_flush_hwstate(thread); + vfp_sync_hwstate(thread); thread->vfpstate.hard = new_vfp; + vfp_flush_hwstate(thread); return 0; } @@ -905,12 +902,6 @@ long arch_ptrace(struct task_struct *child, long request, return ret; } -#ifdef __ARMEB__ -#define AUDIT_ARCH_NR AUDIT_ARCH_ARMEB -#else -#define AUDIT_ARCH_NR AUDIT_ARCH_ARM -#endif - asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno) { unsigned long ip; @@ -925,7 +916,7 @@ asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno) if (!ip) audit_syscall_exit(regs); else - audit_syscall_entry(AUDIT_ARCH_NR, scno, regs->ARM_r0, + audit_syscall_entry(AUDIT_ARCH_ARMEB, scno, regs->ARM_r0, regs->ARM_r1, regs->ARM_r2, regs->ARM_r3); if (!test_thread_flag(TIF_SYSCALL_TRACE)) diff --git a/trunk/arch/arm/kernel/signal.c b/trunk/arch/arm/kernel/signal.c index 9e617bd4a146..0340224cf73c 100644 --- a/trunk/arch/arm/kernel/signal.c +++ b/trunk/arch/arm/kernel/signal.c @@ -227,8 +227,6 @@ static int restore_vfp_context(struct vfp_sigframe __user *frame) if (magic != VFP_MAGIC || size != VFP_STORAGE_SIZE) return -EINVAL; - vfp_flush_hwstate(thread); - /* * Copy the floating point registers. There can be unused * registers see asm/hwcap.h for details. @@ -253,6 +251,9 @@ static int restore_vfp_context(struct vfp_sigframe __user *frame) __get_user_error(h->fpinst, &frame->ufp_exc.fpinst, err); __get_user_error(h->fpinst2, &frame->ufp_exc.fpinst2, err); + if (!err) + vfp_flush_hwstate(thread); + return err ? -EFAULT : 0; } diff --git a/trunk/arch/arm/kernel/smp_twd.c b/trunk/arch/arm/kernel/smp_twd.c index 7a79b24597b2..4285daa077b0 100644 --- a/trunk/arch/arm/kernel/smp_twd.c +++ b/trunk/arch/arm/kernel/smp_twd.c @@ -129,7 +129,7 @@ static struct notifier_block twd_cpufreq_nb = { static int twd_cpufreq_init(void) { - if (twd_evt && *__this_cpu_ptr(twd_evt) && !IS_ERR(twd_clk)) + if (!IS_ERR(twd_clk)) return cpufreq_register_notifier(&twd_cpufreq_nb, CPUFREQ_TRANSITION_NOTIFIER); diff --git a/trunk/arch/arm/kernel/traps.c b/trunk/arch/arm/kernel/traps.c index f84dfe67724f..99a572702509 100644 --- a/trunk/arch/arm/kernel/traps.c +++ b/trunk/arch/arm/kernel/traps.c @@ -266,7 +266,6 @@ void die(const char *str, struct pt_regs *regs, int err) { struct thread_info *thread = current_thread_info(); int ret; - enum bug_trap_type bug_type = BUG_TRAP_TYPE_NONE; oops_enter(); @@ -274,9 +273,7 @@ void die(const char *str, struct pt_regs *regs, int err) console_verbose(); bust_spinlocks(1); if (!user_mode(regs)) - bug_type = report_bug(regs->ARM_pc, regs); - if (bug_type != BUG_TRAP_TYPE_NONE) - str = "Oops - BUG"; + report_bug(regs->ARM_pc, regs); ret = __die(str, err, thread, regs); if (regs && kexec_should_crash(thread->task)) diff --git a/trunk/arch/arm/kernel/vmlinux.lds.S b/trunk/arch/arm/kernel/vmlinux.lds.S index 43a31fb06318..1e19691e0406 100644 --- a/trunk/arch/arm/kernel/vmlinux.lds.S +++ b/trunk/arch/arm/kernel/vmlinux.lds.S @@ -10,7 +10,6 @@ #include #define PROC_INFO \ - . = ALIGN(4); \ VMLINUX_SYMBOL(__proc_info_begin) = .; \ *(.proc.info.init) \ VMLINUX_SYMBOL(__proc_info_end) = .; diff --git a/trunk/arch/arm/mach-at91/Kconfig b/trunk/arch/arm/mach-at91/Kconfig index 0284e66c47f9..71feb00a1e99 100644 --- a/trunk/arch/arm/mach-at91/Kconfig +++ b/trunk/arch/arm/mach-at91/Kconfig @@ -102,6 +102,15 @@ config ARCH_AT91SAM9G45 select HAVE_AT91_DBGU1 select AT91_SAM9G45_RESET +config ARCH_AT91CAP9 + bool "AT91CAP9" + select CPU_ARM926T + select GENERIC_CLOCKEVENTS + select HAVE_FB_ATMEL + select HAVE_NET_MACB + select HAVE_AT91_DBGU1 + select AT91_SAM9G45_RESET + config ARCH_AT91X40 bool "AT91x40" select ARCH_USES_GETTIMEOFFSET @@ -438,6 +447,21 @@ endif # ---------------------------------------------------------- +if ARCH_AT91CAP9 + +comment "AT91CAP9 Board Type" + +config MACH_AT91CAP9ADK + bool "Atmel AT91CAP9A-DK Evaluation Kit" + select HAVE_AT91_DATAFLASH_CARD + help + Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit. + + +endif + +# ---------------------------------------------------------- + if ARCH_AT91X40 comment "AT91X40 Board Type" @@ -520,7 +544,7 @@ config AT91_EARLY_DBGU0 depends on HAVE_AT91_DBGU0 config AT91_EARLY_DBGU1 - bool "DBGU on 9263 and 9g45" + bool "DBGU on 9263, 9g45 and cap9" depends on HAVE_AT91_DBGU1 config AT91_EARLY_USART0 diff --git a/trunk/arch/arm/mach-at91/Makefile b/trunk/arch/arm/mach-at91/Makefile index aeb76f1690d9..705e1fbded39 100644 --- a/trunk/arch/arm/mach-at91/Makefile +++ b/trunk/arch/arm/mach-at91/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263.o at91sam926x_time.o at91sam9263_d obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl.o at91sam926x_time.o at91sam9rl_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45.o at91sam926x_time.o at91sam9g45_devices.o sam9_smc.o +obj-$(CONFIG_ARCH_AT91CAP9) += at91cap9.o at91sam926x_time.o at91cap9_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91X40) += at91x40.o at91x40_time.o # AT91RM9200 board-specific support @@ -80,6 +81,9 @@ obj-$(CONFIG_MACH_AT91SAM9M10G45EK) += board-sam9m10g45ek.o # AT91SAM board with device-tree obj-$(CONFIG_MACH_AT91SAM_DT) += board-dt.o +# AT91CAP9 board-specific support +obj-$(CONFIG_MACH_AT91CAP9ADK) += board-cap9adk.o + # AT91X40 board-specific support obj-$(CONFIG_MACH_AT91EB01) += board-eb01.o diff --git a/trunk/arch/arm/mach-at91/Makefile.boot b/trunk/arch/arm/mach-at91/Makefile.boot index 2fd051eb2449..8ddafadfdc7d 100644 --- a/trunk/arch/arm/mach-at91/Makefile.boot +++ b/trunk/arch/arm/mach-at91/Makefile.boot @@ -3,7 +3,11 @@ # PARAMS_PHYS must be within 4MB of ZRELADDR # INITRD_PHYS must be in RAM -ifeq ($(CONFIG_ARCH_AT91SAM9G45),y) +ifeq ($(CONFIG_ARCH_AT91CAP9),y) + zreladdr-y += 0x70008000 +params_phys-y := 0x70000100 +initrd_phys-y := 0x70410000 +else ifeq ($(CONFIG_ARCH_AT91SAM9G45),y) zreladdr-y += 0x70008000 params_phys-y := 0x70000100 initrd_phys-y := 0x70410000 diff --git a/trunk/arch/arm/mach-at91/at91cap9.c b/trunk/arch/arm/mach-at91/at91cap9.c new file mode 100644 index 000000000000..a42edc25a87e --- /dev/null +++ b/trunk/arch/arm/mach-at91/at91cap9.c @@ -0,0 +1,396 @@ +/* + * arch/arm/mach-at91/at91cap9.c + * + * Copyright (C) 2007 Stelian Pop + * Copyright (C) 2007 Lead Tech Design + * Copyright (C) 2007 Atmel Corporation. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ + +#include + +#include +#include +#include + +#include +#include +#include + +#include "soc.h" +#include "generic.h" +#include "clock.h" +#include "sam9_smc.h" + +/* -------------------------------------------------------------------- + * Clocks + * -------------------------------------------------------------------- */ + +/* + * The peripheral clocks. + */ +static struct clk pioABCD_clk = { + .name = "pioABCD_clk", + .pmc_mask = 1 << AT91CAP9_ID_PIOABCD, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb0_clk = { + .name = "mpb0_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb1_clk = { + .name = "mpb1_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb2_clk = { + .name = "mpb2_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB2, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb3_clk = { + .name = "mpb3_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB3, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb4_clk = { + .name = "mpb4_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB4, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk usart0_clk = { + .name = "usart0_clk", + .pmc_mask = 1 << AT91CAP9_ID_US0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk usart1_clk = { + .name = "usart1_clk", + .pmc_mask = 1 << AT91CAP9_ID_US1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk usart2_clk = { + .name = "usart2_clk", + .pmc_mask = 1 << AT91CAP9_ID_US2, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mmc0_clk = { + .name = "mci0_clk", + .pmc_mask = 1 << AT91CAP9_ID_MCI0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mmc1_clk = { + .name = "mci1_clk", + .pmc_mask = 1 << AT91CAP9_ID_MCI1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk can_clk = { + .name = "can_clk", + .pmc_mask = 1 << AT91CAP9_ID_CAN, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk twi_clk = { + .name = "twi_clk", + .pmc_mask = 1 << AT91CAP9_ID_TWI, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk spi0_clk = { + .name = "spi0_clk", + .pmc_mask = 1 << AT91CAP9_ID_SPI0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk spi1_clk = { + .name = "spi1_clk", + .pmc_mask = 1 << AT91CAP9_ID_SPI1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk ssc0_clk = { + .name = "ssc0_clk", + .pmc_mask = 1 << AT91CAP9_ID_SSC0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk ssc1_clk = { + .name = "ssc1_clk", + .pmc_mask = 1 << AT91CAP9_ID_SSC1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk ac97_clk = { + .name = "ac97_clk", + .pmc_mask = 1 << AT91CAP9_ID_AC97C, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk tcb_clk = { + .name = "tcb_clk", + .pmc_mask = 1 << AT91CAP9_ID_TCB, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk pwm_clk = { + .name = "pwm_clk", + .pmc_mask = 1 << AT91CAP9_ID_PWMC, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk macb_clk = { + .name = "pclk", + .pmc_mask = 1 << AT91CAP9_ID_EMAC, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk aestdes_clk = { + .name = "aestdes_clk", + .pmc_mask = 1 << AT91CAP9_ID_AESTDES, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk adc_clk = { + .name = "adc_clk", + .pmc_mask = 1 << AT91CAP9_ID_ADC, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk isi_clk = { + .name = "isi_clk", + .pmc_mask = 1 << AT91CAP9_ID_ISI, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk lcdc_clk = { + .name = "lcdc_clk", + .pmc_mask = 1 << AT91CAP9_ID_LCDC, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk dma_clk = { + .name = "dma_clk", + .pmc_mask = 1 << AT91CAP9_ID_DMA, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk udphs_clk = { + .name = "udphs_clk", + .pmc_mask = 1 << AT91CAP9_ID_UDPHS, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk ohci_clk = { + .name = "ohci_clk", + .pmc_mask = 1 << AT91CAP9_ID_UHP, + .type = CLK_TYPE_PERIPHERAL, +}; + +static struct clk *periph_clocks[] __initdata = { + &pioABCD_clk, + &mpb0_clk, + &mpb1_clk, + &mpb2_clk, + &mpb3_clk, + &mpb4_clk, + &usart0_clk, + &usart1_clk, + &usart2_clk, + &mmc0_clk, + &mmc1_clk, + &can_clk, + &twi_clk, + &spi0_clk, + &spi1_clk, + &ssc0_clk, + &ssc1_clk, + &ac97_clk, + &tcb_clk, + &pwm_clk, + &macb_clk, + &aestdes_clk, + &adc_clk, + &isi_clk, + &lcdc_clk, + &dma_clk, + &udphs_clk, + &ohci_clk, + // irq0 .. irq1 +}; + +static struct clk_lookup periph_clocks_lookups[] = { + /* One additional fake clock for macb_hclk */ + CLKDEV_CON_ID("hclk", &macb_clk), + CLKDEV_CON_DEV_ID("hclk", "atmel_usba_udc", &utmi_clk), + CLKDEV_CON_DEV_ID("pclk", "atmel_usba_udc", &udphs_clk), + CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.0", &mmc0_clk), + CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.1", &mmc1_clk), + CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.0", &spi0_clk), + CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk), + CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk), + CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), + CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), + /* fake hclk clock */ + CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), + CLKDEV_CON_ID("pioA", &pioABCD_clk), + CLKDEV_CON_ID("pioB", &pioABCD_clk), + CLKDEV_CON_ID("pioC", &pioABCD_clk), + CLKDEV_CON_ID("pioD", &pioABCD_clk), +}; + +static struct clk_lookup usart_clocks_lookups[] = { + CLKDEV_CON_DEV_ID("usart", "atmel_usart.0", &mck), + CLKDEV_CON_DEV_ID("usart", "atmel_usart.1", &usart0_clk), + CLKDEV_CON_DEV_ID("usart", "atmel_usart.2", &usart1_clk), + CLKDEV_CON_DEV_ID("usart", "atmel_usart.3", &usart2_clk), +}; + +/* + * The four programmable clocks. + * You must configure pin multiplexing to bring these signals out. + */ +static struct clk pck0 = { + .name = "pck0", + .pmc_mask = AT91_PMC_PCK0, + .type = CLK_TYPE_PROGRAMMABLE, + .id = 0, +}; +static struct clk pck1 = { + .name = "pck1", + .pmc_mask = AT91_PMC_PCK1, + .type = CLK_TYPE_PROGRAMMABLE, + .id = 1, +}; +static struct clk pck2 = { + .name = "pck2", + .pmc_mask = AT91_PMC_PCK2, + .type = CLK_TYPE_PROGRAMMABLE, + .id = 2, +}; +static struct clk pck3 = { + .name = "pck3", + .pmc_mask = AT91_PMC_PCK3, + .type = CLK_TYPE_PROGRAMMABLE, + .id = 3, +}; + +static void __init at91cap9_register_clocks(void) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(periph_clocks); i++) + clk_register(periph_clocks[i]); + + clkdev_add_table(periph_clocks_lookups, + ARRAY_SIZE(periph_clocks_lookups)); + clkdev_add_table(usart_clocks_lookups, + ARRAY_SIZE(usart_clocks_lookups)); + + clk_register(&pck0); + clk_register(&pck1); + clk_register(&pck2); + clk_register(&pck3); +} + +static struct clk_lookup console_clock_lookup; + +void __init at91cap9_set_console_clock(int id) +{ + if (id >= ARRAY_SIZE(usart_clocks_lookups)) + return; + + console_clock_lookup.con_id = "usart"; + console_clock_lookup.clk = usart_clocks_lookups[id].clk; + clkdev_add(&console_clock_lookup); +} + +/* -------------------------------------------------------------------- + * GPIO + * -------------------------------------------------------------------- */ + +static struct at91_gpio_bank at91cap9_gpio[] __initdata = { + { + .id = AT91CAP9_ID_PIOABCD, + .regbase = AT91CAP9_BASE_PIOA, + }, { + .id = AT91CAP9_ID_PIOABCD, + .regbase = AT91CAP9_BASE_PIOB, + }, { + .id = AT91CAP9_ID_PIOABCD, + .regbase = AT91CAP9_BASE_PIOC, + }, { + .id = AT91CAP9_ID_PIOABCD, + .regbase = AT91CAP9_BASE_PIOD, + } +}; + +/* -------------------------------------------------------------------- + * AT91CAP9 processor initialization + * -------------------------------------------------------------------- */ + +static void __init at91cap9_map_io(void) +{ + at91_init_sram(0, AT91CAP9_SRAM_BASE, AT91CAP9_SRAM_SIZE); +} + +static void __init at91cap9_ioremap_registers(void) +{ + at91_ioremap_shdwc(AT91CAP9_BASE_SHDWC); + at91_ioremap_rstc(AT91CAP9_BASE_RSTC); + at91sam926x_ioremap_pit(AT91CAP9_BASE_PIT); + at91sam9_ioremap_smc(0, AT91CAP9_BASE_SMC); +} + +static void __init at91cap9_initialize(void) +{ + arm_pm_restart = at91sam9g45_restart; + at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1); + + /* Register GPIO subsystem */ + at91_gpio_init(at91cap9_gpio, 4); + + /* Remember the silicon revision */ + if (cpu_is_at91cap9_revB()) + system_rev = 0xB; + else if (cpu_is_at91cap9_revC()) + system_rev = 0xC; +} + +/* -------------------------------------------------------------------- + * Interrupt initialization + * -------------------------------------------------------------------- */ + +/* + * The default interrupt priority levels (0 = lowest, 7 = highest). + */ +static unsigned int at91cap9_default_irq_priority[NR_AIC_IRQS] __initdata = { + 7, /* Advanced Interrupt Controller (FIQ) */ + 7, /* System Peripherals */ + 1, /* Parallel IO Controller A, B, C and D */ + 0, /* MP Block Peripheral 0 */ + 0, /* MP Block Peripheral 1 */ + 0, /* MP Block Peripheral 2 */ + 0, /* MP Block Peripheral 3 */ + 0, /* MP Block Peripheral 4 */ + 5, /* USART 0 */ + 5, /* USART 1 */ + 5, /* USART 2 */ + 0, /* Multimedia Card Interface 0 */ + 0, /* Multimedia Card Interface 1 */ + 3, /* CAN */ + 6, /* Two-Wire Interface */ + 5, /* Serial Peripheral Interface 0 */ + 5, /* Serial Peripheral Interface 1 */ + 4, /* Serial Synchronous Controller 0 */ + 4, /* Serial Synchronous Controller 1 */ + 5, /* AC97 Controller */ + 0, /* Timer Counter 0, 1 and 2 */ + 0, /* Pulse Width Modulation Controller */ + 3, /* Ethernet */ + 0, /* Advanced Encryption Standard, Triple DES*/ + 0, /* Analog-to-Digital Converter */ + 0, /* Image Sensor Interface */ + 3, /* LCD Controller */ + 0, /* DMA Controller */ + 2, /* USB Device Port */ + 2, /* USB Host port */ + 0, /* Advanced Interrupt Controller (IRQ0) */ + 0, /* Advanced Interrupt Controller (IRQ1) */ +}; + +struct at91_init_soc __initdata at91cap9_soc = { + .map_io = at91cap9_map_io, + .default_irq_priority = at91cap9_default_irq_priority, + .ioremap_registers = at91cap9_ioremap_registers, + .register_clocks = at91cap9_register_clocks, + .init = at91cap9_initialize, +}; diff --git a/trunk/arch/arm/mach-at91/at91cap9_devices.c b/trunk/arch/arm/mach-at91/at91cap9_devices.c new file mode 100644 index 000000000000..d298fb7cb210 --- /dev/null +++ b/trunk/arch/arm/mach-at91/at91cap9_devices.c @@ -0,0 +1,1273 @@ +/* + * arch/arm/mach-at91/at91cap9_devices.c + * + * Copyright (C) 2007 Stelian Pop + * Copyright (C) 2007 Lead Tech Design + * Copyright (C) 2007 Atmel Corporation. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ +#include +#include +#include + +#include +#include +#include +#include + +#include