From 7f0bfc6e7a6b587e127d80e0815af2ae7109d126 Mon Sep 17 00:00:00 2001 From: Nicolas Ferre Date: Thu, 7 Feb 2013 18:07:38 +0100 Subject: [PATCH] --- yaml --- r: 355320 b: refs/heads/master c: b65adbec2d92769242e0ffe742630d88e68f7f22 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/MAINTAINERS | 1 - trunk/arch/arm/Kconfig | 16 +- trunk/arch/arm/Kconfig.debug | 10 +- trunk/arch/arm/Makefile | 4 +- trunk/arch/arm/boot/compressed/decompress.c | 2 + trunk/arch/arm/common/Kconfig | 23 + trunk/arch/arm/common/Makefile | 2 + .../irq-gic.c => arch/arm/common/gic.c} | 59 +- .../irq-vic.c => arch/arm/common/vic.c} | 95 +- trunk/arch/arm/configs/at91sam9263_defconfig | 1 - trunk/arch/arm/configs/imx_v6_v7_defconfig | 1 + .../arm/include/asm/hardware/gic.h} | 15 +- .../arm/include/asm/hardware/vic.h} | 25 +- trunk/arch/arm/include/asm/mach/arch.h | 3 +- trunk/arch/arm/include/asm/mach/irq.h | 1 - trunk/arch/arm/include/asm/mach/time.h | 30 + trunk/arch/arm/include/debug/imx.S | 2 +- trunk/arch/arm/kernel/irq.c | 10 - trunk/arch/arm/kernel/smp.c | 3 +- trunk/arch/arm/kernel/smp_twd.c | 1 + trunk/arch/arm/kernel/time.c | 53 +- trunk/arch/arm/mach-at91/Kconfig | 6 - trunk/arch/arm/mach-at91/Makefile | 1 - trunk/arch/arm/mach-at91/at91rm9200_time.c | 12 +- trunk/arch/arm/mach-at91/at91sam926x_time.c | 53 +- trunk/arch/arm/mach-at91/at91x40_time.c | 13 +- trunk/arch/arm/mach-at91/board-1arm.c | 2 +- trunk/arch/arm/mach-at91/board-afeb-9260v1.c | 2 +- trunk/arch/arm/mach-at91/board-cam60.c | 2 +- trunk/arch/arm/mach-at91/board-carmeva.c | 2 +- trunk/arch/arm/mach-at91/board-cpu9krea.c | 2 +- trunk/arch/arm/mach-at91/board-cpuat91.c | 2 +- trunk/arch/arm/mach-at91/board-csb337.c | 2 +- trunk/arch/arm/mach-at91/board-csb637.c | 2 +- trunk/arch/arm/mach-at91/board-dt.c | 2 +- trunk/arch/arm/mach-at91/board-eb01.c | 2 +- trunk/arch/arm/mach-at91/board-eb9200.c | 2 +- trunk/arch/arm/mach-at91/board-ecbat91.c | 2 +- trunk/arch/arm/mach-at91/board-eco920.c | 2 +- trunk/arch/arm/mach-at91/board-flexibity.c | 2 +- trunk/arch/arm/mach-at91/board-foxg20.c | 2 +- trunk/arch/arm/mach-at91/board-gsia18s.c | 2 +- trunk/arch/arm/mach-at91/board-kafa.c | 2 +- trunk/arch/arm/mach-at91/board-kb9202.c | 2 +- trunk/arch/arm/mach-at91/board-neocore926.c | 387 ------- trunk/arch/arm/mach-at91/board-pcontrol-g20.c | 2 +- trunk/arch/arm/mach-at91/board-picotux200.c | 2 +- trunk/arch/arm/mach-at91/board-qil-a9260.c | 2 +- trunk/arch/arm/mach-at91/board-rm9200-dt.c | 2 +- trunk/arch/arm/mach-at91/board-rm9200dk.c | 2 +- trunk/arch/arm/mach-at91/board-rm9200ek.c | 2 +- trunk/arch/arm/mach-at91/board-rsi-ews.c | 2 +- trunk/arch/arm/mach-at91/board-sam9-l9260.c | 2 +- trunk/arch/arm/mach-at91/board-sam9260ek.c | 2 +- trunk/arch/arm/mach-at91/board-sam9261ek.c | 2 +- trunk/arch/arm/mach-at91/board-sam9263ek.c | 2 +- trunk/arch/arm/mach-at91/board-sam9g20ek.c | 4 +- trunk/arch/arm/mach-at91/board-sam9m10g45ek.c | 2 +- trunk/arch/arm/mach-at91/board-sam9rlek.c | 2 +- trunk/arch/arm/mach-at91/board-snapper9260.c | 2 +- trunk/arch/arm/mach-at91/board-stamp9g20.c | 4 +- trunk/arch/arm/mach-at91/board-usb-a926x.c | 6 +- trunk/arch/arm/mach-at91/board-yl-9200.c | 2 +- trunk/arch/arm/mach-at91/generic.h | 7 +- .../arm/mach-at91/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-bcm/Kconfig | 1 + trunk/arch/arm/mach-bcm/board_bcm.c | 22 +- trunk/arch/arm/mach-bcm2835/bcm2835.c | 4 +- .../mach-bcm2835/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-clps711x/board-autcpu12.c | 2 +- trunk/arch/arm/mach-clps711x/board-cdb89712.c | 2 +- trunk/arch/arm/mach-clps711x/board-clep7312.c | 2 +- trunk/arch/arm/mach-clps711x/board-edb7211.c | 2 +- trunk/arch/arm/mach-clps711x/board-fortunet.c | 2 +- trunk/arch/arm/mach-clps711x/board-p720t.c | 2 +- trunk/arch/arm/mach-clps711x/common.c | 6 +- trunk/arch/arm/mach-clps711x/common.h | 4 +- .../mach-clps711x/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-cns3xxx/cns3420vb.c | 4 +- trunk/arch/arm/mach-cns3xxx/core.c | 21 +- trunk/arch/arm/mach-cns3xxx/core.h | 2 +- .../mach-cns3xxx/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-davinci/board-da830-evm.c | 2 +- trunk/arch/arm/mach-davinci/board-da850-evm.c | 2 +- trunk/arch/arm/mach-davinci/board-dm355-evm.c | 2 +- .../arm/mach-davinci/board-dm355-leopard.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 | 4 +- .../arm/mach-davinci/board-mityomapl138.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 +- .../arm/mach-davinci/board-tnetv107x-evm.c | 2 +- trunk/arch/arm/mach-davinci/da8xx-dt.c | 2 +- .../arm/mach-davinci/include/mach/common.h | 4 +- .../mach-davinci/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-davinci/time.c | 7 +- trunk/arch/arm/mach-dove/cm-a510.c | 2 +- trunk/arch/arm/mach-dove/common.c | 37 +- trunk/arch/arm/mach-dove/common.h | 2 +- trunk/arch/arm/mach-dove/dove-db-setup.c | 2 +- .../arm/mach-dove/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-ebsa110/core.c | 15 +- .../mach-ebsa110/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-ep93xx/adssphere.c | 4 +- trunk/arch/arm/mach-ep93xx/core.c | 38 +- trunk/arch/arm/mach-ep93xx/edb93xx.c | 25 +- trunk/arch/arm/mach-ep93xx/gesbc9312.c | 4 +- .../arm/mach-ep93xx/include/mach/platform.h | 2 +- .../arm/mach-ep93xx/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-ep93xx/micro9.c | 13 +- trunk/arch/arm/mach-ep93xx/simone.c | 4 +- trunk/arch/arm/mach-ep93xx/snappercl15.c | 4 +- trunk/arch/arm/mach-ep93xx/ts72xx.c | 4 +- trunk/arch/arm/mach-ep93xx/vision_ep9307.c | 4 +- trunk/arch/arm/mach-exynos/common.c | 11 +- trunk/arch/arm/mach-exynos/common.h | 22 +- trunk/arch/arm/mach-exynos/cpuidle.c | 3 +- trunk/arch/arm/mach-exynos/dev-audio.c | 3 +- .../arm/mach-exynos/include/mach/cpufreq.h} | 3 +- trunk/arch/arm/mach-exynos/include/mach/pmu.h | 34 + .../arm/mach-exynos/include/mach/regs-audss.h | 18 + .../arm/mach-exynos/include/mach/regs-irq.h | 2 +- trunk/arch/arm/mach-exynos/mach-armlex4210.c | 4 +- trunk/arch/arm/mach-exynos/mach-exynos4-dt.c | 4 +- trunk/arch/arm/mach-exynos/mach-exynos5-dt.c | 4 +- trunk/arch/arm/mach-exynos/mach-nuri.c | 4 +- trunk/arch/arm/mach-exynos/mach-origen.c | 4 +- trunk/arch/arm/mach-exynos/mach-smdk4x12.c | 7 +- trunk/arch/arm/mach-exynos/mach-smdkv310.c | 7 +- .../arm/mach-exynos/mach-universal_c210.c | 4 +- trunk/arch/arm/mach-exynos/mct.c | 25 +- trunk/arch/arm/mach-exynos/platsmp.c | 6 +- trunk/arch/arm/mach-exynos/pm.c | 3 +- trunk/arch/arm/mach-exynos/pmu.c | 3 +- trunk/arch/arm/mach-footbridge/cats-hw.c | 2 +- trunk/arch/arm/mach-footbridge/common.h | 4 +- .../arch/arm/mach-footbridge/dc21285-timer.c | 12 +- trunk/arch/arm/mach-footbridge/ebsa285.c | 2 +- .../mach-footbridge/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-footbridge/isa-timer.c | 6 +- trunk/arch/arm/mach-footbridge/netwinder-hw.c | 2 +- trunk/arch/arm/mach-footbridge/personal.c | 2 +- trunk/arch/arm/mach-gemini/board-nas4220b.c | 6 +- trunk/arch/arm/mach-gemini/board-rut1xx.c | 6 +- trunk/arch/arm/mach-gemini/board-wbd111.c | 6 +- trunk/arch/arm/mach-gemini/board-wbd222.c | 6 +- .../arm/mach-gemini/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-h720x/common.c | 6 +- trunk/arch/arm/mach-h720x/common.h | 6 +- trunk/arch/arm/mach-h720x/cpu-h7201.c | 9 +- trunk/arch/arm/mach-h720x/cpu-h7202.c | 9 +- trunk/arch/arm/mach-h720x/h7201-eval.c | 2 +- trunk/arch/arm/mach-h720x/h7202-eval.c | 2 +- .../arm/mach-h720x/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-highbank/highbank.c | 17 +- trunk/arch/arm/mach-highbank/platsmp.c | 6 +- trunk/arch/arm/mach-imx/Kconfig | 36 + trunk/arch/arm/mach-imx/Makefile | 3 + trunk/arch/arm/mach-imx/Makefile.boot | 4 + trunk/arch/arm/mach-imx/clk-imx6q.c | 2 + trunk/arch/arm/mach-imx/common.h | 12 + trunk/arch/arm/mach-imx/cpu-imx5.c | 39 + trunk/arch/arm/mach-imx/devices-imx50.h | 33 + trunk/arch/arm/mach-imx/devices/Kconfig | 2 +- .../arch/arm/mach-imx/devices/platform-fec.c | 6 + .../arm/mach-imx/devices/platform-imx-i2c.c | 10 + .../arm/mach-imx/devices/platform-imx-uart.c | 12 + trunk/arch/arm/mach-imx/epit.c | 15 +- trunk/arch/arm/mach-imx/gpc.c | 2 +- trunk/arch/arm/mach-imx/hardware.h | 6 + trunk/arch/arm/mach-imx/imx25-dt.c | 11 +- trunk/arch/arm/mach-imx/imx27-dt.c | 16 +- trunk/arch/arm/mach-imx/imx31-dt.c | 16 +- trunk/arch/arm/mach-imx/imx51-dt.c | 16 +- trunk/arch/arm/mach-imx/iomux-mx50.h | 977 ++++++++++++++++++ trunk/arch/arm/mach-imx/lluart.c | 47 + trunk/arch/arm/mach-imx/mach-apf9328.c | 6 +- trunk/arch/arm/mach-imx/mach-armadillo5x0.c | 6 +- trunk/arch/arm/mach-imx/mach-bug.c | 6 +- trunk/arch/arm/mach-imx/mach-cpuimx27.c | 6 +- trunk/arch/arm/mach-imx/mach-cpuimx35.c | 6 +- trunk/arch/arm/mach-imx/mach-cpuimx51sd.c | 6 +- .../arch/arm/mach-imx/mach-eukrea_cpuimx25.c | 6 +- .../arm/mach-imx/mach-imx27_visstrim_m10.c | 6 +- trunk/arch/arm/mach-imx/mach-imx27ipcam.c | 6 +- trunk/arch/arm/mach-imx/mach-imx27lite.c | 6 +- trunk/arch/arm/mach-imx/mach-imx53.c | 16 +- trunk/arch/arm/mach-imx/mach-imx6q.c | 20 +- trunk/arch/arm/mach-imx/mach-kzm_arm11_01.c | 6 +- trunk/arch/arm/mach-imx/mach-mx1ads.c | 8 +- trunk/arch/arm/mach-imx/mach-mx21ads.c | 6 +- trunk/arch/arm/mach-imx/mach-mx25_3ds.c | 6 +- trunk/arch/arm/mach-imx/mach-mx27_3ds.c | 6 +- trunk/arch/arm/mach-imx/mach-mx27ads.c | 6 +- trunk/arch/arm/mach-imx/mach-mx31_3ds.c | 6 +- trunk/arch/arm/mach-imx/mach-mx31ads.c | 6 +- trunk/arch/arm/mach-imx/mach-mx31lilly.c | 6 +- trunk/arch/arm/mach-imx/mach-mx31lite.c | 6 +- trunk/arch/arm/mach-imx/mach-mx31moboard.c | 6 +- trunk/arch/arm/mach-imx/mach-mx35_3ds.c | 6 +- trunk/arch/arm/mach-imx/mach-mx50_rdp.c | 225 ++++ trunk/arch/arm/mach-imx/mach-mx51_3ds.c | 178 ++++ trunk/arch/arm/mach-imx/mach-mx51_babbage.c | 6 +- trunk/arch/arm/mach-imx/mach-mxt_td60.c | 6 +- trunk/arch/arm/mach-imx/mach-pca100.c | 6 +- trunk/arch/arm/mach-imx/mach-pcm037.c | 6 +- trunk/arch/arm/mach-imx/mach-pcm038.c | 6 +- trunk/arch/arm/mach-imx/mach-pcm043.c | 6 +- trunk/arch/arm/mach-imx/mach-qong.c | 6 +- trunk/arch/arm/mach-imx/mach-scb9328.c | 6 +- trunk/arch/arm/mach-imx/mach-vpr200.c | 6 +- trunk/arch/arm/mach-imx/mm-imx5.c | 48 + trunk/arch/arm/mach-imx/mx50.h | 290 ++++++ trunk/arch/arm/mach-imx/mxc.h | 13 + trunk/arch/arm/mach-imx/platsmp.c | 4 +- trunk/arch/arm/mach-imx/pm-imx5.c | 7 +- trunk/arch/arm/mach-imx/time.c | 15 +- .../mach-integrator/include/mach/uncompress.h | 2 + .../arch/arm/mach-integrator/integrator_ap.c | 16 +- .../arch/arm/mach-integrator/integrator_cp.c | 16 +- .../mach-iop13xx/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-iop13xx/iq81340mc.c | 6 +- trunk/arch/arm/mach-iop13xx/iq81340sc.c | 6 +- trunk/arch/arm/mach-iop32x/em7210.c | 6 +- trunk/arch/arm/mach-iop32x/glantank.c | 6 +- .../arm/mach-iop32x/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-iop32x/iq31244.c | 8 +- trunk/arch/arm/mach-iop32x/iq80321.c | 6 +- trunk/arch/arm/mach-iop32x/n2100.c | 6 +- .../arm/mach-iop33x/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-iop33x/iq80331.c | 6 +- trunk/arch/arm/mach-iop33x/iq80332.c | 6 +- trunk/arch/arm/mach-ixp4xx/avila-setup.c | 4 +- trunk/arch/arm/mach-ixp4xx/common.c | 15 +- trunk/arch/arm/mach-ixp4xx/coyote-setup.c | 4 +- trunk/arch/arm/mach-ixp4xx/dsmg600-setup.c | 6 +- trunk/arch/arm/mach-ixp4xx/fsg-setup.c | 2 +- .../arch/arm/mach-ixp4xx/gateway7001-setup.c | 2 +- trunk/arch/arm/mach-ixp4xx/goramo_mlr.c | 2 +- trunk/arch/arm/mach-ixp4xx/gtwx5715-setup.c | 2 +- .../arm/mach-ixp4xx/include/mach/platform.h | 3 + .../arm/mach-ixp4xx/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-ixp4xx/ixdp425-setup.c | 8 +- trunk/arch/arm/mach-ixp4xx/nas100d-setup.c | 2 +- trunk/arch/arm/mach-ixp4xx/nslu2-setup.c | 6 +- trunk/arch/arm/mach-ixp4xx/omixp-setup.c | 6 +- trunk/arch/arm/mach-ixp4xx/vulcan-setup.c | 2 +- trunk/arch/arm/mach-ixp4xx/wg302v2-setup.c | 2 +- trunk/arch/arm/mach-kirkwood/board-dt.c | 2 +- trunk/arch/arm/mach-kirkwood/board-ib62x0.c | 1 + trunk/arch/arm/mach-kirkwood/board-mplcec4.c | 1 + trunk/arch/arm/mach-kirkwood/board-nsa310.c | 9 +- trunk/arch/arm/mach-kirkwood/common.c | 6 +- trunk/arch/arm/mach-kirkwood/common.h | 2 +- trunk/arch/arm/mach-kirkwood/d2net_v2-setup.c | 2 +- .../arm/mach-kirkwood/db88f6281-bp-setup.c | 2 +- trunk/arch/arm/mach-kirkwood/dockstar-setup.c | 3 +- trunk/arch/arm/mach-kirkwood/guruplug-setup.c | 2 +- .../mach-kirkwood/include/mach/uncompress.h | 1 + .../arm/mach-kirkwood/mv88f6281gtw_ge-setup.c | 2 +- .../arm/mach-kirkwood/netspace_v2-setup.c | 6 +- .../arch/arm/mach-kirkwood/netxbig_v2-setup.c | 4 +- trunk/arch/arm/mach-kirkwood/openrd-setup.c | 6 +- .../arm/mach-kirkwood/rd88f6192-nas-setup.c | 2 +- .../arch/arm/mach-kirkwood/rd88f6281-setup.c | 2 +- .../arch/arm/mach-kirkwood/sheevaplug-setup.c | 4 +- trunk/arch/arm/mach-kirkwood/t5325-setup.c | 2 +- trunk/arch/arm/mach-kirkwood/ts219-setup.c | 2 +- trunk/arch/arm/mach-kirkwood/ts41x-setup.c | 2 +- trunk/arch/arm/mach-ks8695/board-acs5k.c | 2 +- trunk/arch/arm/mach-ks8695/board-dsm320.c | 2 +- trunk/arch/arm/mach-ks8695/board-micrel.c | 2 +- trunk/arch/arm/mach-ks8695/board-og.c | 10 +- trunk/arch/arm/mach-ks8695/board-sg.c | 6 +- trunk/arch/arm/mach-ks8695/generic.h | 2 +- .../arm/mach-ks8695/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-ks8695/time.c | 6 +- trunk/arch/arm/mach-lpc32xx/common.h | 2 +- .../mach-lpc32xx/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-lpc32xx/phy3250.c | 2 +- trunk/arch/arm/mach-lpc32xx/timer.c | 16 +- trunk/arch/arm/mach-mmp/aspenite.c | 4 +- trunk/arch/arm/mach-mmp/avengers_lite.c | 2 +- trunk/arch/arm/mach-mmp/brownstone.c | 2 +- trunk/arch/arm/mach-mmp/common.h | 2 + trunk/arch/arm/mach-mmp/flint.c | 2 +- trunk/arch/arm/mach-mmp/gplugd.c | 2 +- trunk/arch/arm/mach-mmp/include/mach/mmp2.h | 4 +- trunk/arch/arm/mach-mmp/include/mach/pxa168.h | 4 +- trunk/arch/arm/mach-mmp/include/mach/pxa910.h | 4 +- .../arm/mach-mmp/include/mach/uncompress.h | 6 + trunk/arch/arm/mach-mmp/jasper.c | 2 +- trunk/arch/arm/mach-mmp/mmp-dt.c | 8 +- trunk/arch/arm/mach-mmp/mmp2-dt.c | 6 +- trunk/arch/arm/mach-mmp/mmp2.c | 6 +- trunk/arch/arm/mach-mmp/pxa168.c | 6 +- trunk/arch/arm/mach-mmp/pxa910.c | 6 +- trunk/arch/arm/mach-mmp/tavorevb.c | 2 +- trunk/arch/arm/mach-mmp/teton_bga.c | 2 +- trunk/arch/arm/mach-mmp/time.c | 7 +- trunk/arch/arm/mach-mmp/ttc_dkb.c | 2 +- trunk/arch/arm/mach-msm/board-dt-8660.c | 18 +- trunk/arch/arm/mach-msm/board-dt-8960.c | 18 +- trunk/arch/arm/mach-msm/board-halibut.c | 2 +- trunk/arch/arm/mach-msm/board-mahimahi.c | 4 +- trunk/arch/arm/mach-msm/board-msm7x30.c | 6 +- trunk/arch/arm/mach-msm/board-qsd8x50.c | 4 +- trunk/arch/arm/mach-msm/board-sapphire.c | 4 +- trunk/arch/arm/mach-msm/board-trout.c | 2 +- trunk/arch/arm/mach-msm/common.h | 8 +- .../arm/mach-msm/include/mach/uncompress.h | 4 + trunk/arch/arm/mach-msm/platsmp.c | 6 +- trunk/arch/arm/mach-msm/timer.c | 31 +- .../arch/arm/mach-mv78xx0/buffalo-wxl-setup.c | 2 +- trunk/arch/arm/mach-mv78xx0/common.c | 6 +- trunk/arch/arm/mach-mv78xx0/common.h | 2 +- .../arch/arm/mach-mv78xx0/db78x00-bp-setup.c | 2 +- .../mach-mv78xx0/include/mach/uncompress.h | 1 + .../arm/mach-mv78xx0/rd78x00-masa-setup.c | 2 +- trunk/arch/arm/mach-mvebu/armada-370-xp.c | 6 +- .../arm/mach-mxs/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-mxs/mach-mxs.c | 12 +- trunk/arch/arm/mach-mxs/timer.c | 24 +- trunk/arch/arm/mach-netx/generic.c | 2 +- trunk/arch/arm/mach-netx/generic.h | 3 +- .../arm/mach-netx/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-netx/nxdb500.c | 4 +- trunk/arch/arm/mach-netx/nxdkn.c | 4 +- trunk/arch/arm/mach-netx/nxeb500hmi.c | 4 +- trunk/arch/arm/mach-netx/time.c | 16 +- trunk/arch/arm/mach-nomadik/board-nhk8815.c | 8 +- trunk/arch/arm/mach-nomadik/cpu-8815.c | 2 +- .../mach-nomadik/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-omap1/board-ams-delta.c | 2 +- trunk/arch/arm/mach-omap1/board-fsample.c | 2 +- trunk/arch/arm/mach-omap1/board-generic.c | 2 +- trunk/arch/arm/mach-omap1/board-h2.c | 2 +- trunk/arch/arm/mach-omap1/board-h3.c | 2 +- trunk/arch/arm/mach-omap1/board-htcherald.c | 2 +- trunk/arch/arm/mach-omap1/board-innovator.c | 2 +- trunk/arch/arm/mach-omap1/board-nokia770.c | 2 +- trunk/arch/arm/mach-omap1/board-osk.c | 2 +- trunk/arch/arm/mach-omap1/board-palmte.c | 2 +- trunk/arch/arm/mach-omap1/board-palmtt.c | 2 +- trunk/arch/arm/mach-omap1/board-palmz71.c | 2 +- trunk/arch/arm/mach-omap1/board-perseus2.c | 2 +- trunk/arch/arm/mach-omap1/board-sx1.c | 2 +- trunk/arch/arm/mach-omap1/board-voiceblue.c | 2 +- trunk/arch/arm/mach-omap1/common.h | 2 +- .../arm/mach-omap1/include/mach/uncompress.h | 5 + trunk/arch/arm/mach-omap1/time.c | 17 +- trunk/arch/arm/mach-omap1/timer32k.c | 12 +- trunk/arch/arm/mach-omap2/board-2430sdp.c | 2 +- trunk/arch/arm/mach-omap2/board-3430sdp.c | 2 +- trunk/arch/arm/mach-omap2/board-3630sdp.c | 2 +- trunk/arch/arm/mach-omap2/board-4430sdp.c | 5 +- trunk/arch/arm/mach-omap2/board-am3517crane.c | 2 +- trunk/arch/arm/mach-omap2/board-am3517evm.c | 2 +- trunk/arch/arm/mach-omap2/board-apollon.c | 2 +- trunk/arch/arm/mach-omap2/board-cm-t35.c | 4 +- trunk/arch/arm/mach-omap2/board-cm-t3517.c | 2 +- trunk/arch/arm/mach-omap2/board-devkit8000.c | 2 +- trunk/arch/arm/mach-omap2/board-generic.c | 17 +- trunk/arch/arm/mach-omap2/board-h4.c | 2 +- trunk/arch/arm/mach-omap2/board-igep0020.c | 4 +- trunk/arch/arm/mach-omap2/board-ldp.c | 2 +- trunk/arch/arm/mach-omap2/board-n8x0.c | 6 +- trunk/arch/arm/mach-omap2/board-omap3beagle.c | 2 +- trunk/arch/arm/mach-omap2/board-omap3evm.c | 2 +- trunk/arch/arm/mach-omap2/board-omap3logic.c | 4 +- .../arch/arm/mach-omap2/board-omap3pandora.c | 2 +- .../arch/arm/mach-omap2/board-omap3stalker.c | 2 +- .../arm/mach-omap2/board-omap3touchbook.c | 2 +- trunk/arch/arm/mach-omap2/board-omap4panda.c | 5 +- trunk/arch/arm/mach-omap2/board-overo.c | 2 +- trunk/arch/arm/mach-omap2/board-rm680.c | 4 +- trunk/arch/arm/mach-omap2/board-rx51.c | 2 +- trunk/arch/arm/mach-omap2/board-ti8168evm.c | 4 +- trunk/arch/arm/mach-omap2/board-zoom.c | 4 +- trunk/arch/arm/mach-omap2/common.h | 14 +- .../arm/mach-omap2/include/mach/uncompress.h | 5 + trunk/arch/arm/mach-omap2/omap-smp.c | 6 +- trunk/arch/arm/mach-omap2/omap-wakeupgen.c | 3 +- trunk/arch/arm/mach-omap2/omap4-common.c | 11 +- trunk/arch/arm/mach-omap2/timer.c | 35 +- trunk/arch/arm/mach-orion5x/board-dt.c | 2 +- trunk/arch/arm/mach-orion5x/common.c | 6 +- trunk/arch/arm/mach-orion5x/common.h | 2 +- trunk/arch/arm/mach-orion5x/d2net-setup.c | 4 +- trunk/arch/arm/mach-orion5x/db88f5281-setup.c | 2 +- trunk/arch/arm/mach-orion5x/dns323-setup.c | 2 +- .../mach-orion5x/include/mach/uncompress.h | 1 + .../arch/arm/mach-orion5x/kurobox_pro-setup.c | 4 +- trunk/arch/arm/mach-orion5x/ls-chl-setup.c | 2 +- trunk/arch/arm/mach-orion5x/ls_hgl-setup.c | 2 +- trunk/arch/arm/mach-orion5x/lsmini-setup.c | 2 +- trunk/arch/arm/mach-orion5x/mss2-setup.c | 2 +- trunk/arch/arm/mach-orion5x/mv2120-setup.c | 2 +- trunk/arch/arm/mach-orion5x/net2big-setup.c | 2 +- .../arm/mach-orion5x/rd88f5181l-fxo-setup.c | 2 +- .../arm/mach-orion5x/rd88f5181l-ge-setup.c | 2 +- trunk/arch/arm/mach-orion5x/rd88f5182-setup.c | 2 +- .../arm/mach-orion5x/rd88f6183ap-ge-setup.c | 2 +- .../arm/mach-orion5x/terastation_pro2-setup.c | 2 +- trunk/arch/arm/mach-orion5x/ts209-setup.c | 2 +- trunk/arch/arm/mach-orion5x/ts409-setup.c | 2 +- trunk/arch/arm/mach-orion5x/ts78xx-setup.c | 2 +- trunk/arch/arm/mach-orion5x/wnr854t-setup.c | 2 +- .../arch/arm/mach-orion5x/wrt350n-v2-setup.c | 2 +- trunk/arch/arm/mach-picoxcell/Kconfig | 1 + trunk/arch/arm/mach-picoxcell/common.c | 17 +- trunk/arch/arm/mach-picoxcell/common.h | 2 +- trunk/arch/arm/mach-prima2/common.c | 2 +- trunk/arch/arm/mach-prima2/common.h | 2 +- .../arm/mach-prima2/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-prima2/timer.c | 18 +- trunk/arch/arm/mach-pxa/balloon3.c | 2 +- trunk/arch/arm/mach-pxa/capc7117.c | 2 +- trunk/arch/arm/mach-pxa/cm-x2xx.c | 2 +- trunk/arch/arm/mach-pxa/cm-x300.c | 2 +- trunk/arch/arm/mach-pxa/colibri-pxa270.c | 4 +- trunk/arch/arm/mach-pxa/colibri-pxa300.c | 2 +- trunk/arch/arm/mach-pxa/colibri-pxa320.c | 2 +- trunk/arch/arm/mach-pxa/corgi.c | 6 +- trunk/arch/arm/mach-pxa/csb726.c | 2 +- trunk/arch/arm/mach-pxa/em-x270.c | 4 +- trunk/arch/arm/mach-pxa/eseries.c | 12 +- trunk/arch/arm/mach-pxa/ezx.c | 12 +- trunk/arch/arm/mach-pxa/generic.h | 3 +- trunk/arch/arm/mach-pxa/gumstix.c | 2 +- trunk/arch/arm/mach-pxa/h5000.c | 2 +- trunk/arch/arm/mach-pxa/himalaya.c | 2 +- trunk/arch/arm/mach-pxa/hx4700.c | 2 +- trunk/arch/arm/mach-pxa/icontrol.c | 2 +- trunk/arch/arm/mach-pxa/idp.c | 2 +- .../arch/arm/mach-pxa/include/mach/palmtreo.h | 5 +- trunk/arch/arm/mach-pxa/include/mach/smemc.h | 1 - .../arm/mach-pxa/include/mach/uncompress.h | 5 + trunk/arch/arm/mach-pxa/littleton.c | 2 +- trunk/arch/arm/mach-pxa/lpd270.c | 2 +- trunk/arch/arm/mach-pxa/lubbock.c | 2 +- trunk/arch/arm/mach-pxa/magician.c | 2 +- trunk/arch/arm/mach-pxa/mainstone.c | 2 +- trunk/arch/arm/mach-pxa/mioa701.c | 2 +- trunk/arch/arm/mach-pxa/mp900.c | 2 +- trunk/arch/arm/mach-pxa/palmld.c | 2 +- trunk/arch/arm/mach-pxa/palmt5.c | 2 +- trunk/arch/arm/mach-pxa/palmtc.c | 2 +- trunk/arch/arm/mach-pxa/palmte2.c | 2 +- trunk/arch/arm/mach-pxa/palmtreo.c | 74 +- trunk/arch/arm/mach-pxa/palmtx.c | 2 +- trunk/arch/arm/mach-pxa/palmz72.c | 2 +- trunk/arch/arm/mach-pxa/pcm027.c | 2 +- trunk/arch/arm/mach-pxa/poodle.c | 2 +- trunk/arch/arm/mach-pxa/pxa-dt.c | 2 +- trunk/arch/arm/mach-pxa/raumfeld.c | 6 +- trunk/arch/arm/mach-pxa/saar.c | 2 +- trunk/arch/arm/mach-pxa/smemc.c | 15 +- trunk/arch/arm/mach-pxa/spitz.c | 10 +- trunk/arch/arm/mach-pxa/stargate2.c | 4 +- trunk/arch/arm/mach-pxa/tavorevb.c | 2 +- trunk/arch/arm/mach-pxa/time.c | 76 +- trunk/arch/arm/mach-pxa/tosa.c | 2 +- trunk/arch/arm/mach-pxa/trizeps4.c | 4 +- trunk/arch/arm/mach-pxa/viper.c | 2 +- trunk/arch/arm/mach-pxa/vpac270.c | 2 +- trunk/arch/arm/mach-pxa/xcep.c | 2 +- trunk/arch/arm/mach-pxa/z2.c | 2 +- trunk/arch/arm/mach-pxa/zeus.c | 2 +- trunk/arch/arm/mach-pxa/zylonite.c | 2 +- trunk/arch/arm/mach-realview/core.c | 1 + .../mach-realview/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-realview/platsmp.c | 3 + trunk/arch/arm/mach-realview/realview_eb.c | 9 +- .../arch/arm/mach-realview/realview_pb1176.c | 9 +- .../arch/arm/mach-realview/realview_pb11mp.c | 9 +- trunk/arch/arm/mach-realview/realview_pba8.c | 9 +- trunk/arch/arm/mach-realview/realview_pbx.c | 9 +- .../arm/mach-rpc/include/mach/uncompress.h | 5 + trunk/arch/arm/mach-rpc/riscpc.c | 4 +- trunk/arch/arm/mach-rpc/time.c | 13 +- trunk/arch/arm/mach-s3c2410/Kconfig | 20 + trunk/arch/arm/mach-s3c2410/Makefile | 14 + .../cpu-freq.c} | 7 +- .../pll-s3c2410.c => mach-s3c2410/pll.c} | 5 +- trunk/arch/arm/mach-s3c2412/Kconfig | 13 + trunk/arch/arm/mach-s3c2412/Makefile | 12 + .../cpu-freq.c} | 9 +- trunk/arch/arm/mach-s3c2412/gpio.c | 62 ++ trunk/arch/arm/mach-s3c2440/Kconfig | 37 + trunk/arch/arm/mach-s3c2440/Makefile | 17 + trunk/arch/arm/mach-s3c2440/dsc.c | 54 + .../s3c2440-cpufreq.c} | 4 +- .../s3c2440-pll-12000000.c} | 5 +- .../s3c2440-pll-16934400.c} | 5 +- trunk/arch/arm/mach-s3c24xx/Kconfig | 160 --- trunk/arch/arm/mach-s3c24xx/Makefile | 24 +- trunk/arch/arm/mach-s3c24xx/anubis.h | 53 - trunk/arch/arm/mach-s3c24xx/bast-ide.c | 18 +- trunk/arch/arm/mach-s3c24xx/bast-irq.c | 19 +- trunk/arch/arm/mach-s3c24xx/bast.h | 197 ---- trunk/arch/arm/mach-s3c24xx/common.h | 2 - trunk/arch/arm/mach-s3c24xx/dma-s3c2410.c | 1 + trunk/arch/arm/mach-s3c24xx/dma-s3c2412.c | 1 + trunk/arch/arm/mach-s3c24xx/dma-s3c2440.c | 1 + trunk/arch/arm/mach-s3c24xx/dma-s3c2443.c | 1 + trunk/arch/arm/mach-s3c24xx/h1940-bluetooth.c | 6 +- .../mach-s3c24xx/include/mach/anubis-cpld.h | 25 + .../mach-s3c24xx/include/mach/anubis-irq.h | 21 + .../mach-s3c24xx/include/mach/anubis-map.h | 38 + .../arm/mach-s3c24xx/include/mach/bast-cpld.h | 53 + .../arm/mach-s3c24xx/include/mach/bast-irq.h | 29 + .../arm/mach-s3c24xx/include/mach/bast-map.h | 146 +++ .../arm/mach-s3c24xx/include/mach/gpio-fns.h | 1 + .../arm/mach-s3c24xx/include/mach/gpio-nrs.h | 97 ++ .../mach-s3c24xx/include/mach/gpio-track.h | 33 + .../arch/arm/mach-s3c24xx/include/mach/gpio.h | 87 +- .../mach-s3c24xx/{ => include/mach}/gta02.h | 14 +- .../{h1940.h => include/mach/h1940-latch.h} | 22 +- .../arm/mach-s3c24xx/include/mach/h1940.h | 24 + .../arm/mach-s3c24xx/include/mach/hardware.h | 6 + .../arch/arm/mach-s3c24xx/include/mach/idle.h | 24 + .../mach-s3c24xx/include/mach/osiris-cpld.h | 30 + .../{osiris.h => include/mach/osiris-map.h} | 23 +- .../{otom.h => include/mach/otom-map.h} | 20 +- .../{ => include/mach}/regs-dsc.h | 0 .../arm/mach-s3c24xx/include/mach/regs-gpio.h | 2 + .../arm/mach-s3c24xx/include/mach/regs-mem.h | 202 ++++ .../mach-s3c24xx/include/mach/regs-power.h | 40 + .../include/mach/regs-s3c2412-mem.h | 48 + .../mach-s3c24xx/include/mach/regs-s3c2412.h | 23 + .../include/mach/regs-s3c2416-mem.h | 30 + .../mach-s3c24xx/include/mach/regs-s3c2416.h | 24 + .../mach-s3c24xx/include/mach/vr1000-cpld.h | 18 + .../mach-s3c24xx/include/mach/vr1000-irq.h | 26 + .../mach-s3c24xx/include/mach/vr1000-map.h | 110 ++ trunk/arch/arm/mach-s3c24xx/irq-pm.c | 41 +- trunk/arch/arm/mach-s3c24xx/irq-s3c2412.c | 3 +- trunk/arch/arm/mach-s3c24xx/irq-s3c2416.c | 348 +++++++ trunk/arch/arm/mach-s3c24xx/irq-s3c2443.c | 281 +++++ trunk/arch/arm/mach-s3c24xx/irq.c | 822 --------------- trunk/arch/arm/mach-s3c24xx/mach-amlm5900.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-anubis.c | 16 +- trunk/arch/arm/mach-s3c24xx/mach-at2440evb.c | 4 +- trunk/arch/arm/mach-s3c24xx/mach-bast.c | 53 +- trunk/arch/arm/mach-s3c24xx/mach-gta02.c | 60 +- trunk/arch/arm/mach-s3c24xx/mach-h1940.c | 39 +- trunk/arch/arm/mach-s3c24xx/mach-jive.c | 6 +- trunk/arch/arm/mach-s3c24xx/mach-mini2440.c | 3 +- trunk/arch/arm/mach-s3c24xx/mach-n30.c | 4 +- trunk/arch/arm/mach-s3c24xx/mach-nexcoder.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-osiris.c | 29 +- trunk/arch/arm/mach-s3c24xx/mach-otom.c | 22 +- trunk/arch/arm/mach-s3c24xx/mach-qt2410.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-rx1950.c | 33 +- trunk/arch/arm/mach-s3c24xx/mach-rx3715.c | 18 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2410.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2413.c | 7 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2416.c | 5 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2440.c | 3 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2443.c | 5 +- trunk/arch/arm/mach-s3c24xx/mach-tct_hammer.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-vr1000.c | 39 +- trunk/arch/arm/mach-s3c24xx/mach-vstms.c | 3 +- trunk/arch/arm/mach-s3c24xx/pm-s3c2410.c | 6 +- trunk/arch/arm/mach-s3c24xx/pm-s3c2412.c | 8 +- trunk/arch/arm/mach-s3c24xx/pm-s3c2416.c | 3 +- trunk/arch/arm/mach-s3c24xx/pm.c | 3 +- trunk/arch/arm/mach-s3c24xx/regs-mem.h | 54 - trunk/arch/arm/mach-s3c24xx/s3c2410.c | 4 +- trunk/arch/arm/mach-s3c24xx/s3c2412-power.h | 37 - trunk/arch/arm/mach-s3c24xx/s3c2412.c | 32 +- trunk/arch/arm/mach-s3c24xx/s3c2412.h | 26 - trunk/arch/arm/mach-s3c24xx/s3c2416.c | 4 +- trunk/arch/arm/mach-s3c24xx/s3c2440.c | 4 +- trunk/arch/arm/mach-s3c24xx/s3c2442.c | 4 +- trunk/arch/arm/mach-s3c24xx/s3c244x.c | 3 +- trunk/arch/arm/mach-s3c24xx/simtec-audio.c | 5 +- trunk/arch/arm/mach-s3c24xx/simtec-nor.c | 3 +- trunk/arch/arm/mach-s3c24xx/simtec-pm.c | 3 +- trunk/arch/arm/mach-s3c24xx/simtec-usb.c | 8 +- trunk/arch/arm/mach-s3c24xx/sleep-s3c2410.S | 3 +- trunk/arch/arm/mach-s3c24xx/sleep.S | 1 + trunk/arch/arm/mach-s3c24xx/vr1000.h | 118 --- trunk/arch/arm/mach-s3c64xx/clock.c | 3 +- trunk/arch/arm/mach-s3c64xx/common.c | 2 +- trunk/arch/arm/mach-s3c64xx/cpuidle.c | 4 +- trunk/arch/arm/mach-s3c64xx/dma.c | 4 +- .../{ => include/mach}/crag6410.h | 0 .../{ => include/mach}/regs-gpio-memport.h | 9 +- .../arm/mach-s3c64xx/include/mach/regs-irq.h | 1 + .../{ => include/mach}/regs-modem.h | 11 +- .../{ => include/mach}/regs-srom.h | 11 +- .../arm/mach-s3c64xx/include/mach/regs-sys.h | 31 + .../{ => include/mach}/regs-syscon-power.h | 9 +- .../arch/arm/mach-s3c64xx/include/mach/tick.h | 2 - trunk/arch/arm/mach-s3c64xx/mach-anw6410.c | 6 +- .../arm/mach-s3c64xx/mach-crag6410-module.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-crag6410.c | 13 +- trunk/arch/arm/mach-s3c64xx/mach-hmt.c | 4 +- trunk/arch/arm/mach-s3c64xx/mach-mini6410.c | 8 +- trunk/arch/arm/mach-s3c64xx/mach-ncp.c | 4 +- trunk/arch/arm/mach-s3c64xx/mach-real6410.c | 8 +- trunk/arch/arm/mach-s3c64xx/mach-smartq.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-smartq5.c | 4 +- trunk/arch/arm/mach-s3c64xx/mach-smartq7.c | 4 +- trunk/arch/arm/mach-s3c64xx/mach-smdk6400.c | 4 +- trunk/arch/arm/mach-s3c64xx/mach-smdk6410.c | 10 +- trunk/arch/arm/mach-s3c64xx/pm.c | 9 +- trunk/arch/arm/mach-s3c64xx/regs-sys.h | 30 - trunk/arch/arm/mach-s3c64xx/setup-usb-phy.c | 3 +- trunk/arch/arm/mach-s5p64x0/clock-s5p6440.c | 2 +- trunk/arch/arm/mach-s5p64x0/clock-s5p6450.c | 2 +- trunk/arch/arm/mach-s5p64x0/gpiolib.c | 508 +++++++++ .../arm/mach-s5p64x0/{ => include/mach}/i2c.h | 3 +- .../arm/mach-s5p64x0/include/mach/regs-irq.h | 1 + .../{clock.h => include/mach/s5p64x0-clock.h} | 9 +- .../arch/arm/mach-s5p64x0/include/mach/tick.h | 29 + .../mach-s5p64x0/include/mach/uncompress.h | 28 + trunk/arch/arm/mach-s5p64x0/mach-smdk6440.c | 6 +- trunk/arch/arm/mach-s5p64x0/mach-smdk6450.c | 6 +- trunk/arch/arm/mach-s5p64x0/setup-i2c0.c | 2 +- trunk/arch/arm/mach-s5p64x0/setup-i2c1.c | 2 +- .../arm/mach-s5pc100/include/mach/regs-irq.h | 1 + .../arch/arm/mach-s5pc100/include/mach/tick.h | 2 - trunk/arch/arm/mach-s5pc100/mach-smdkc100.c | 4 +- trunk/arch/arm/mach-s5pv210/dev-audio.c | 3 +- .../mach-s5pv210/include/mach/regs-audss.h | 18 + .../arm/mach-s5pv210/include/mach/regs-irq.h | 1 + .../arm/mach-s5pv210/include/mach/regs-sys.h | 15 + .../arch/arm/mach-s5pv210/include/mach/tick.h | 26 + trunk/arch/arm/mach-s5pv210/mach-aquila.c | 4 +- trunk/arch/arm/mach-s5pv210/mach-goni.c | 4 +- trunk/arch/arm/mach-s5pv210/mach-smdkc110.c | 4 +- trunk/arch/arm/mach-s5pv210/mach-smdkv210.c | 4 +- trunk/arch/arm/mach-s5pv210/mach-torbreck.c | 4 +- trunk/arch/arm/mach-s5pv210/setup-usb-phy.c | 7 +- trunk/arch/arm/mach-sa1100/assabet.c | 2 +- trunk/arch/arm/mach-sa1100/badge4.c | 2 +- trunk/arch/arm/mach-sa1100/cerf.c | 2 +- trunk/arch/arm/mach-sa1100/collie.c | 2 +- trunk/arch/arm/mach-sa1100/generic.h | 4 +- trunk/arch/arm/mach-sa1100/h3100.c | 2 +- trunk/arch/arm/mach-sa1100/h3600.c | 2 +- trunk/arch/arm/mach-sa1100/hackkit.c | 2 +- .../arm/mach-sa1100/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-sa1100/jornada720.c | 2 +- trunk/arch/arm/mach-sa1100/lart.c | 2 +- trunk/arch/arm/mach-sa1100/nanoengine.c | 2 +- trunk/arch/arm/mach-sa1100/pleb.c | 2 +- trunk/arch/arm/mach-sa1100/shannon.c | 2 +- trunk/arch/arm/mach-sa1100/simpad.c | 2 +- trunk/arch/arm/mach-sa1100/time.c | 72 +- trunk/arch/arm/mach-shark/core.c | 6 +- .../arm/mach-shark/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-shmobile/board-ag5evm.c | 5 +- trunk/arch/arm/mach-shmobile/board-ap4evb.c | 2 +- .../arm/mach-shmobile/board-armadillo800eva.c | 5 +- trunk/arch/arm/mach-shmobile/board-bonito.c | 5 +- trunk/arch/arm/mach-shmobile/board-kota2.c | 5 +- trunk/arch/arm/mach-shmobile/board-kzm9d.c | 4 +- trunk/arch/arm/mach-shmobile/board-kzm9g.c | 5 +- trunk/arch/arm/mach-shmobile/board-mackerel.c | 2 +- trunk/arch/arm/mach-shmobile/board-marzen.c | 4 +- .../arm/mach-shmobile/include/mach/common.h | 5 +- .../mach-shmobile/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-shmobile/intc-r8a7779.c | 2 +- trunk/arch/arm/mach-shmobile/intc-sh73a0.c | 2 +- trunk/arch/arm/mach-shmobile/platsmp.c | 3 + trunk/arch/arm/mach-shmobile/setup-emev2.c | 19 +- trunk/arch/arm/mach-shmobile/setup-r8a7740.c | 11 +- trunk/arch/arm/mach-shmobile/setup-r8a7779.c | 5 +- trunk/arch/arm/mach-shmobile/setup-sh7372.c | 7 +- trunk/arch/arm/mach-shmobile/setup-sh73a0.c | 5 +- trunk/arch/arm/mach-shmobile/smp-emev2.c | 4 +- trunk/arch/arm/mach-shmobile/smp-r8a7779.c | 2 +- trunk/arch/arm/mach-shmobile/smp-sh73a0.c | 2 +- trunk/arch/arm/mach-shmobile/timer.c | 6 +- trunk/arch/arm/mach-socfpga/platsmp.c | 4 +- trunk/arch/arm/mach-socfpga/socfpga.c | 16 +- .../arm/mach-spear13xx/include/mach/generic.h | 3 +- trunk/arch/arm/mach-spear13xx/platsmp.c | 4 +- trunk/arch/arm/mach-spear13xx/spear1310.c | 7 +- trunk/arch/arm/mach-spear13xx/spear1340.c | 7 +- trunk/arch/arm/mach-spear13xx/spear13xx.c | 19 +- .../arm/mach-spear3xx/include/mach/generic.h | 3 +- trunk/arch/arm/mach-spear3xx/spear300.c | 7 +- trunk/arch/arm/mach-spear3xx/spear310.c | 7 +- trunk/arch/arm/mach-spear3xx/spear320.c | 7 +- trunk/arch/arm/mach-spear3xx/spear3xx.c | 22 +- trunk/arch/arm/mach-spear6xx/spear6xx.c | 24 +- trunk/arch/arm/mach-sunxi/sunxi.c | 23 +- trunk/arch/arm/mach-tegra/Kconfig | 4 +- trunk/arch/arm/mach-tegra/Makefile | 6 +- trunk/arch/arm/mach-tegra/apbio.c | 2 +- trunk/arch/arm/mach-tegra/board-dt-tegra20.c | 16 +- trunk/arch/arm/mach-tegra/board-dt-tegra30.c | 7 +- trunk/arch/arm/mach-tegra/board.h | 1 + trunk/arch/arm/mach-tegra/common.c | 13 +- trunk/arch/arm/mach-tegra/common.h | 1 - trunk/arch/arm/mach-tegra/cpu-tegra.c | 40 +- trunk/arch/arm/mach-tegra/cpuidle-tegra30.c | 6 +- trunk/arch/arm/mach-tegra/flowctrl.c | 4 +- trunk/arch/arm/mach-tegra/headsmp.S | 221 ++++ trunk/arch/arm/mach-tegra/hotplug.c | 21 +- .../arm/mach-tegra/include/mach/uncompress.h | 4 + trunk/arch/arm/mach-tegra/irq.c | 3 +- trunk/arch/arm/mach-tegra/platsmp.c | 47 +- trunk/arch/arm/mach-tegra/pm.c | 4 +- trunk/arch/arm/mach-tegra/reset-handler.S | 239 ----- trunk/arch/arm/mach-tegra/reset.c | 2 +- trunk/arch/arm/mach-tegra/sleep-tegra20.S | 3 + trunk/arch/arm/mach-tegra/sleep-tegra30.S | 3 + trunk/arch/arm/mach-tegra/sleep.S | 4 +- trunk/arch/arm/mach-tegra/sleep.h | 1 - .../arch/arm/mach-tegra/tegra30_clocks_data.c | 6 +- .../arm/mach-tegra/timer.c} | 21 +- trunk/arch/arm/mach-u300/core.c | 5 +- .../arm/mach-u300/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-u300/timer.c | 10 +- trunk/arch/arm/mach-u300/timer.h | 2 +- trunk/arch/arm/mach-ux500/board-mop500-uib.c | 1 - trunk/arch/arm/mach-ux500/board-mop500.c | 13 +- trunk/arch/arm/mach-ux500/cache-l2x0.c | 3 +- trunk/arch/arm/mach-ux500/cpu-db8500.c | 6 +- trunk/arch/arm/mach-ux500/cpu.c | 11 +- trunk/arch/arm/mach-ux500/id.c | 2 - .../arm/mach-ux500/include/mach/hardware.h | 1 + .../arm/mach-ux500/{ => include/mach}/id.h | 21 +- .../arch/arm/mach-ux500/include/mach/setup.h | 3 +- .../arm/mach-ux500/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-ux500/platsmp.c | 9 +- trunk/arch/arm/mach-ux500/timer.c | 15 +- trunk/arch/arm/mach-versatile/core.c | 9 +- trunk/arch/arm/mach-versatile/core.h | 2 +- .../mach-versatile/include/mach/uncompress.h | 1 + trunk/arch/arm/mach-versatile/versatile_ab.c | 4 +- trunk/arch/arm/mach-versatile/versatile_dt.c | 4 +- trunk/arch/arm/mach-versatile/versatile_pb.c | 4 +- trunk/arch/arm/mach-vexpress/ct-ca9x4.c | 4 +- trunk/arch/arm/mach-vexpress/platsmp.c | 3 + trunk/arch/arm/mach-vexpress/v2m.c | 28 +- trunk/arch/arm/mach-vt8500/Kconfig | 3 +- trunk/arch/arm/mach-vt8500/Makefile | 2 +- trunk/arch/arm/mach-vt8500/common.h | 1 + .../arm/mach-vt8500/include/mach/uncompress.h | 1 + .../arm/mach-vt8500/timer.c} | 12 +- trunk/arch/arm/mach-vt8500/vt8500.c | 7 +- .../mach-w90x900/include/mach/uncompress.h | 2 + trunk/arch/arm/mach-w90x900/mach-nuc910evb.c | 2 +- trunk/arch/arm/mach-w90x900/mach-nuc950evb.c | 2 +- trunk/arch/arm/mach-w90x900/mach-nuc960evb.c | 2 +- trunk/arch/arm/mach-w90x900/nuc9xx.h | 3 +- trunk/arch/arm/mach-w90x900/time.c | 16 +- trunk/arch/arm/mach-zynq/common.c | 29 +- trunk/arch/arm/mach-zynq/common.h | 2 +- trunk/arch/arm/mach-zynq/timer.c | 150 +-- trunk/arch/arm/plat-iop/time.c | 9 +- trunk/arch/arm/plat-orion/time.c | 6 +- trunk/arch/arm/plat-s3c24xx/Kconfig | 116 +++ trunk/arch/arm/plat-s3c24xx/Makefile | 27 + .../clock-dclk.c | 3 +- .../cpu-freq-debugfs.c} | 3 +- .../cpufreq.c => plat-s3c24xx/cpu-freq.c} | 3 +- .../arm/{mach-s3c24xx => plat-s3c24xx}/dma.c | 3 +- trunk/arch/arm/plat-s3c24xx/irq.c | 676 ++++++++++++ .../s3c2410-clock.c} | 3 +- .../s3c2410-cpufreq-utils.c} | 6 +- .../s3c2410-iotiming.c} | 6 +- .../s3c2412-iotiming.c} | 7 +- .../arch/arm/plat-samsung/include/plat/cpu.h | 3 +- .../arm/plat-samsung/include/plat/gpio-core.h | 13 +- .../arm/plat-samsung/include/plat/gpio-fns.h | 1 + trunk/arch/arm/plat-samsung/include/plat/pm.h | 6 + .../arm/plat-samsung/include/plat/s3c2416.h | 1 - .../arm/plat-samsung/include/plat/s3c2443.h | 2 - .../arm/plat-samsung/include/plat/s5p-time.h | 2 +- .../plat-samsung/include/plat/uncompress.h | 28 + trunk/arch/arm/plat-samsung/s5p-irq-eint.c | 3 +- trunk/arch/arm/plat-samsung/s5p-irq.c | 3 +- trunk/arch/arm/plat-samsung/s5p-time.c | 15 +- trunk/arch/arm/plat-samsung/time.c | 20 +- .../arm/plat-spear/include/plat/uncompress.h | 1 + trunk/arch/arm/plat-spear/time.c | 8 +- trunk/arch/arm/plat-versatile/platsmp.c | 4 +- trunk/arch/blackfin/kernel/time.c | 6 +- trunk/arch/cris/arch-v10/kernel/time.c | 10 +- trunk/arch/cris/kernel/time.c | 11 + trunk/arch/m32r/kernel/time.c | 4 +- trunk/arch/m68k/amiga/config.c | 10 +- trunk/arch/m68k/apollo/config.c | 9 +- trunk/arch/m68k/atari/config.c | 4 +- trunk/arch/m68k/atari/time.c | 6 +- trunk/arch/m68k/bvme6000/config.c | 10 +- trunk/arch/m68k/hp300/config.c | 2 +- trunk/arch/m68k/hp300/time.c | 4 +- trunk/arch/m68k/hp300/time.h | 2 +- trunk/arch/m68k/include/asm/machdep.h | 2 +- trunk/arch/m68k/kernel/setup_mm.c | 1 + trunk/arch/m68k/kernel/time.c | 15 +- trunk/arch/m68k/mac/config.c | 4 +- trunk/arch/m68k/mac/via.c | 4 +- trunk/arch/m68k/mvme147/config.c | 8 +- trunk/arch/m68k/mvme16x/config.c | 8 +- trunk/arch/m68k/q40/config.c | 8 +- trunk/arch/m68k/sun3/config.c | 4 +- trunk/arch/m68k/sun3/intersil.c | 4 +- trunk/arch/m68k/sun3x/config.c | 2 +- trunk/arch/m68k/sun3x/time.c | 2 +- trunk/arch/m68k/sun3x/time.h | 2 +- trunk/drivers/clocksource/Kconfig | 6 - trunk/drivers/clocksource/Makefile | 3 - trunk/drivers/clocksource/bcm2835_timer.c | 9 +- trunk/drivers/clocksource/clksrc-of.c | 35 - trunk/drivers/clocksource/cs5535-clockevt.c | 11 +- trunk/drivers/clocksource/dw_apb_timer_of.c | 6 +- trunk/drivers/clocksource/nomadik-mtu.c | 33 +- trunk/drivers/clocksource/sunxi_timer.c | 17 +- trunk/drivers/clocksource/tcb_clksrc.c | 7 +- trunk/drivers/cpufreq/db8500-cpufreq.c | 3 + trunk/drivers/cpufreq/exynos-cpufreq.c | 4 +- trunk/drivers/cpufreq/exynos4210-cpufreq.c | 3 +- trunk/drivers/cpufreq/exynos4x12-cpufreq.c | 3 +- trunk/drivers/cpufreq/exynos5250-cpufreq.c | 3 +- trunk/drivers/gpio/gpio-samsung.c | 1 + trunk/drivers/irqchip/Kconfig | 27 - trunk/drivers/irqchip/Makefile | 6 +- trunk/drivers/irqchip/irqchip.c | 30 - trunk/drivers/irqchip/irqchip.h | 29 - trunk/drivers/irqchip/spear-shirq.c | 5 - trunk/drivers/mfd/db8500-prcmu.c | 19 +- trunk/include/asm-generic/vmlinux.lds.h | 22 +- trunk/include/linux/bcm2835_timer.h | 22 + trunk/include/linux/clocksource.h | 11 - trunk/include/linux/dw_apb_timer.h | 2 +- trunk/include/linux/irqchip.h | 16 - trunk/include/linux/mfd/db8500-prcmu.h | 6 + trunk/include/linux/mfd/dbx500-prcmu.h | 81 ++ trunk/include/linux/sunxi_timer.h | 2 +- trunk/include/linux/time.h | 4 +- trunk/kernel/time/clockevents.c | 1 - trunk/kernel/time/timekeeping.c | 26 +- trunk/sound/soc/samsung/h1940_uda1380.c | 13 +- trunk/sound/soc/samsung/neo1973_wm8753.c | 8 +- 847 files changed, 8764 insertions(+), 4365 deletions(-) rename trunk/{drivers/irqchip/irq-gic.c => arch/arm/common/gic.c} (97%) rename trunk/{drivers/irqchip/irq-vic.c => arch/arm/common/vic.c} (92%) rename trunk/{include/linux/irqchip/arm-gic.h => arch/arm/include/asm/hardware/gic.h} (77%) rename trunk/{include/linux/irqchip/arm-vic.h => arch/arm/include/asm/hardware/vic.h} (63%) delete mode 100644 trunk/arch/arm/mach-at91/board-neocore926.c rename trunk/{drivers/cpufreq/exynos-cpufreq.h => arch/arm/mach-exynos/include/mach/cpufreq.h} (94%) create mode 100644 trunk/arch/arm/mach-exynos/include/mach/pmu.h create mode 100644 trunk/arch/arm/mach-exynos/include/mach/regs-audss.h create mode 100644 trunk/arch/arm/mach-imx/devices-imx50.h create mode 100644 trunk/arch/arm/mach-imx/iomux-mx50.h create mode 100644 trunk/arch/arm/mach-imx/lluart.c create mode 100644 trunk/arch/arm/mach-imx/mach-mx50_rdp.c create mode 100644 trunk/arch/arm/mach-imx/mach-mx51_3ds.c create mode 100644 trunk/arch/arm/mach-imx/mx50.h create mode 100644 trunk/arch/arm/mach-s3c2410/Kconfig create mode 100644 trunk/arch/arm/mach-s3c2410/Makefile rename trunk/arch/arm/{mach-s3c24xx/cpufreq-s3c2410.c => mach-s3c2410/cpu-freq.c} (98%) rename trunk/arch/arm/{mach-s3c24xx/pll-s3c2410.c => mach-s3c2410/pll.c} (99%) create mode 100644 trunk/arch/arm/mach-s3c2412/Kconfig create mode 100644 trunk/arch/arm/mach-s3c2412/Makefile rename trunk/arch/arm/{mach-s3c24xx/cpufreq-s3c2412.c => mach-s3c2412/cpu-freq.c} (98%) create mode 100644 trunk/arch/arm/mach-s3c2412/gpio.c create mode 100644 trunk/arch/arm/mach-s3c2440/Kconfig create mode 100644 trunk/arch/arm/mach-s3c2440/Makefile create mode 100644 trunk/arch/arm/mach-s3c2440/dsc.c rename trunk/arch/arm/{mach-s3c24xx/cpufreq-s3c2440.c => mach-s3c2440/s3c2440-cpufreq.c} (99%) rename trunk/arch/arm/{mach-s3c24xx/pll-s3c2440-12000000.c => mach-s3c2440/s3c2440-pll-12000000.c} (98%) rename trunk/arch/arm/{mach-s3c24xx/pll-s3c2440-16934400.c => mach-s3c2440/s3c2440-pll-16934400.c} (99%) delete mode 100644 trunk/arch/arm/mach-s3c24xx/anubis.h delete mode 100644 trunk/arch/arm/mach-s3c24xx/bast.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/anubis-cpld.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/anubis-irq.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/anubis-map.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/bast-cpld.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/bast-irq.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/bast-map.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/gpio-fns.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/gpio-nrs.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/gpio-track.h rename trunk/arch/arm/mach-s3c24xx/{ => include/mach}/gta02.h (53%) rename trunk/arch/arm/mach-s3c24xx/{h1940.h => include/mach/h1940-latch.h} (70%) create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/h1940.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/idle.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/osiris-cpld.h rename trunk/arch/arm/mach-s3c24xx/{osiris.h => include/mach/osiris-map.h} (69%) rename trunk/arch/arm/mach-s3c24xx/{otom.h => include/mach/otom-map.h} (50%) rename trunk/arch/arm/mach-s3c24xx/{ => include/mach}/regs-dsc.h (100%) create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/regs-mem.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/regs-power.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/regs-s3c2412-mem.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/regs-s3c2412.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/regs-s3c2416-mem.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/regs-s3c2416.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/vr1000-cpld.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/vr1000-irq.h create mode 100644 trunk/arch/arm/mach-s3c24xx/include/mach/vr1000-map.h create mode 100644 trunk/arch/arm/mach-s3c24xx/irq-s3c2416.c create mode 100644 trunk/arch/arm/mach-s3c24xx/irq-s3c2443.c delete mode 100644 trunk/arch/arm/mach-s3c24xx/irq.c delete mode 100644 trunk/arch/arm/mach-s3c24xx/regs-mem.h delete mode 100644 trunk/arch/arm/mach-s3c24xx/s3c2412-power.h delete mode 100644 trunk/arch/arm/mach-s3c24xx/s3c2412.h delete mode 100644 trunk/arch/arm/mach-s3c24xx/vr1000.h rename trunk/arch/arm/mach-s3c64xx/{ => include/mach}/crag6410.h (100%) rename trunk/arch/arm/mach-s3c64xx/{ => include/mach}/regs-gpio-memport.h (71%) rename trunk/arch/arm/mach-s3c64xx/{ => include/mach}/regs-modem.h (78%) rename trunk/arch/arm/mach-s3c64xx/{ => include/mach}/regs-srom.h (90%) create mode 100644 trunk/arch/arm/mach-s3c64xx/include/mach/regs-sys.h rename trunk/arch/arm/mach-s3c64xx/{ => include/mach}/regs-syscon-power.h (95%) delete mode 100644 trunk/arch/arm/mach-s3c64xx/regs-sys.h create mode 100644 trunk/arch/arm/mach-s5p64x0/gpiolib.c rename trunk/arch/arm/mach-s5p64x0/{ => include/mach}/i2c.h (91%) rename trunk/arch/arm/mach-s5p64x0/{clock.h => include/mach/s5p64x0-clock.h} (87%) create mode 100644 trunk/arch/arm/mach-s5p64x0/include/mach/tick.h create mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/regs-audss.h create mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/regs-sys.h create mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/tick.h delete mode 100644 trunk/arch/arm/mach-tegra/reset-handler.S rename trunk/{drivers/clocksource/tegra20_timer.c => arch/arm/mach-tegra/timer.c} (93%) rename trunk/arch/arm/mach-ux500/{ => include/mach}/id.h (85%) rename trunk/{drivers/clocksource/vt8500_timer.c => arch/arm/mach-vt8500/timer.c} (93%) create mode 100644 trunk/arch/arm/plat-s3c24xx/Kconfig create mode 100644 trunk/arch/arm/plat-s3c24xx/Makefile rename trunk/arch/arm/{mach-s3c24xx => plat-s3c24xx}/clock-dclk.c (98%) rename trunk/arch/arm/{mach-s3c24xx/cpufreq-debugfs.c => plat-s3c24xx/cpu-freq-debugfs.c} (98%) rename trunk/arch/arm/{mach-s3c24xx/cpufreq.c => plat-s3c24xx/cpu-freq.c} (99%) rename trunk/arch/arm/{mach-s3c24xx => plat-s3c24xx}/dma.c (99%) create mode 100644 trunk/arch/arm/plat-s3c24xx/irq.c rename trunk/arch/arm/{mach-s3c24xx/clock-s3c2410.c => plat-s3c24xx/s3c2410-clock.c} (99%) rename trunk/arch/arm/{mach-s3c24xx/cpufreq-utils.c => plat-s3c24xx/s3c2410-cpufreq-utils.c} (95%) rename trunk/arch/arm/{mach-s3c24xx/iotiming-s3c2410.c => plat-s3c24xx/s3c2410-iotiming.c} (99%) rename trunk/arch/arm/{mach-s3c24xx/iotiming-s3c2412.c => plat-s3c24xx/s3c2412-iotiming.c} (98%) create mode 100644 trunk/arch/arm/plat-samsung/include/plat/gpio-fns.h delete mode 100644 trunk/drivers/clocksource/clksrc-of.c delete mode 100644 trunk/drivers/irqchip/irqchip.c delete mode 100644 trunk/drivers/irqchip/irqchip.h create mode 100644 trunk/include/linux/bcm2835_timer.h delete mode 100644 trunk/include/linux/irqchip.h diff --git a/[refs] b/[refs] index 80948898a4ee..0fb169ab5712 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 94c16ea6ea75f8f5de92d10a647155ccf0d05436 +refs/heads/master: b65adbec2d92769242e0ffe742630d88e68f7f22 diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 43dbae19838b..212c255b9347 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -4216,7 +4216,6 @@ M: Thomas Gleixner S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core F: kernel/irq/ -F: drivers/irqchip/ IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY) M: Benjamin Herrenschmidt diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 42e263a8d353..67874b82a4ed 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -344,10 +344,10 @@ config ARCH_BCM2835 select ARM_ERRATA_411920 select ARM_TIMER_SP804 select CLKDEV_LOOKUP - select CLKSRC_OF select COMMON_CLK select CPU_V6 select GENERIC_CLOCKEVENTS + select GENERIC_GPIO select MULTI_IRQ_HANDLER select PINCTRL select PINCTRL_BCM2835 @@ -642,9 +642,9 @@ config ARCH_TEGRA select ARCH_HAS_CPUFREQ select CLKDEV_LOOKUP select CLKSRC_MMIO - select CLKSRC_OF select COMMON_CLK select GENERIC_CLOCKEVENTS + select GENERIC_GPIO select HAVE_CLK select HAVE_SMP select MIGHT_HAVE_CACHE_L2X0 @@ -744,6 +744,7 @@ config ARCH_S3C24XX select ARCH_HAS_CPUFREQ select ARCH_USES_GETTIMEOFFSET select CLKDEV_LOOKUP + select GENERIC_GPIO select HAVE_CLK select HAVE_S3C2410_I2C if I2C select HAVE_S3C2410_WATCHDOG if WATCHDOG @@ -786,6 +787,7 @@ config ARCH_S5P64X0 select CLKSRC_MMIO select CPU_V6 select GENERIC_CLOCKEVENTS + select GENERIC_GPIO select HAVE_CLK select HAVE_S3C2410_I2C if I2C select HAVE_S3C2410_WATCHDOG if WATCHDOG @@ -800,6 +802,7 @@ config ARCH_S5PC100 select ARCH_USES_GETTIMEOFFSET select CLKDEV_LOOKUP select CPU_V7 + select GENERIC_GPIO select HAVE_CLK select HAVE_S3C2410_I2C if I2C select HAVE_S3C2410_WATCHDOG if WATCHDOG @@ -817,6 +820,7 @@ config ARCH_S5PV210 select CLKSRC_MMIO select CPU_V7 select GENERIC_CLOCKEVENTS + select GENERIC_GPIO select HAVE_CLK select HAVE_S3C2410_I2C if I2C select HAVE_S3C2410_WATCHDOG if WATCHDOG @@ -834,6 +838,7 @@ config ARCH_EXYNOS select CLKDEV_LOOKUP select CPU_V7 select GENERIC_CLOCKEVENTS + select GENERIC_GPIO select HAVE_CLK select HAVE_S3C2410_I2C if I2C select HAVE_S3C2410_WATCHDOG if WATCHDOG @@ -868,6 +873,7 @@ config ARCH_U300 select COMMON_CLK select CPU_ARM926T select GENERIC_CLOCKEVENTS + select GENERIC_GPIO select HAVE_TCM select SPARSE_IRQ help @@ -951,6 +957,7 @@ config ARCH_VT8500_SINGLE select COMMON_CLK select CPU_ARM926T select GENERIC_CLOCKEVENTS + select GENERIC_GPIO select HAVE_CLK select MULTI_IRQ_HANDLER select SPARSE_IRQ @@ -1079,12 +1086,17 @@ source "arch/arm/mach-realview/Kconfig" source "arch/arm/mach-sa1100/Kconfig" source "arch/arm/plat-samsung/Kconfig" +source "arch/arm/plat-s3c24xx/Kconfig" source "arch/arm/mach-socfpga/Kconfig" source "arch/arm/plat-spear/Kconfig" source "arch/arm/mach-s3c24xx/Kconfig" +if ARCH_S3C24XX +source "arch/arm/mach-s3c2412/Kconfig" +source "arch/arm/mach-s3c2440/Kconfig" +endif if ARCH_S3C64XX source "arch/arm/mach-s3c64xx/Kconfig" diff --git a/trunk/arch/arm/Kconfig.debug b/trunk/arch/arm/Kconfig.debug index 1dceb8e31618..661030d6bc6c 100644 --- a/trunk/arch/arm/Kconfig.debug +++ b/trunk/arch/arm/Kconfig.debug @@ -219,12 +219,12 @@ choice Say Y here if you want kernel low-level debugging support on i.MX51. - config DEBUG_IMX53_UART - bool "i.MX53 Debug UART" - depends on SOC_IMX53 + config DEBUG_IMX50_IMX53_UART + bool "i.MX50 and i.MX53 Debug UART" + depends on SOC_IMX50 || SOC_IMX53 help Say Y here if you want kernel low-level debugging support - on i.MX53. + on i.MX50 or i.MX53. config DEBUG_IMX6Q_UART bool "i.MX6Q Debug UART" @@ -497,7 +497,7 @@ config DEBUG_LL_INCLUDE DEBUG_IMX21_IMX27_UART || \ DEBUG_IMX31_IMX35_UART || \ DEBUG_IMX51_UART || \ - DEBUG_IMX53_UART ||\ + DEBUG_IMX50_IMX53_UART ||\ DEBUG_IMX6Q_UART default "debug/highbank.S" if DEBUG_HIGHBANK_UART default "debug/mvebu.S" if DEBUG_MVEBU_UART diff --git a/trunk/arch/arm/Makefile b/trunk/arch/arm/Makefile index a554f759c72f..30c443c406f3 100644 --- a/trunk/arch/arm/Makefile +++ b/trunk/arch/arm/Makefile @@ -173,7 +173,7 @@ machine-$(CONFIG_ARCH_PRIMA2) += prima2 machine-$(CONFIG_ARCH_PXA) += pxa machine-$(CONFIG_ARCH_REALVIEW) += realview machine-$(CONFIG_ARCH_RPC) += rpc -machine-$(CONFIG_ARCH_S3C24XX) += s3c24xx +machine-$(CONFIG_ARCH_S3C24XX) += s3c24xx s3c2412 s3c2440 machine-$(CONFIG_ARCH_S3C64XX) += s3c64xx machine-$(CONFIG_ARCH_S5P64X0) += s5p64x0 machine-$(CONFIG_ARCH_S5PC100) += s5pc100 @@ -204,7 +204,7 @@ plat-$(CONFIG_ARCH_S3C64XX) += samsung plat-$(CONFIG_PLAT_IOP) += iop plat-$(CONFIG_PLAT_ORION) += orion plat-$(CONFIG_PLAT_PXA) += pxa -plat-$(CONFIG_PLAT_S3C24XX) += samsung +plat-$(CONFIG_PLAT_S3C24XX) += s3c24xx samsung plat-$(CONFIG_PLAT_S5P) += samsung plat-$(CONFIG_PLAT_SPEAR) += spear plat-$(CONFIG_PLAT_VERSATILE) += versatile diff --git a/trunk/arch/arm/boot/compressed/decompress.c b/trunk/arch/arm/boot/compressed/decompress.c index 24b0475cb8bf..9deb56a702ce 100644 --- a/trunk/arch/arm/boot/compressed/decompress.c +++ b/trunk/arch/arm/boot/compressed/decompress.c @@ -13,6 +13,8 @@ extern void error(char *); #define STATIC static #define STATIC_RW_DATA /* non-static please */ +#define ARCH_HAS_DECOMP_WDOG + /* Diagnostic functions */ #ifdef DEBUG # define Assert(cond,msg) {if(!(cond)) error(msg);} diff --git a/trunk/arch/arm/common/Kconfig b/trunk/arch/arm/common/Kconfig index 9353184d730d..45ceeb0e93e0 100644 --- a/trunk/arch/arm/common/Kconfig +++ b/trunk/arch/arm/common/Kconfig @@ -1,3 +1,26 @@ +config ARM_GIC + bool + select IRQ_DOMAIN + select MULTI_IRQ_HANDLER + +config GIC_NON_BANKED + bool + +config ARM_VIC + bool + select IRQ_DOMAIN + select MULTI_IRQ_HANDLER + +config ARM_VIC_NR + int + default 4 if ARCH_S5PV210 + default 3 if ARCH_S5PC100 + default 2 + depends on ARM_VIC + help + The maximum number of VICs available in the system, for + power management. + config ICST bool diff --git a/trunk/arch/arm/common/Makefile b/trunk/arch/arm/common/Makefile index dc8dd0de5c0f..e8a4e58f1b82 100644 --- a/trunk/arch/arm/common/Makefile +++ b/trunk/arch/arm/common/Makefile @@ -2,6 +2,8 @@ # Makefile for the linux kernel. # +obj-$(CONFIG_ARM_GIC) += gic.o +obj-$(CONFIG_ARM_VIC) += vic.o obj-$(CONFIG_ICST) += icst.o obj-$(CONFIG_SA1111) += sa1111.o obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o diff --git a/trunk/drivers/irqchip/irq-gic.c b/trunk/arch/arm/common/gic.c similarity index 97% rename from trunk/drivers/irqchip/irq-gic.c rename to trunk/arch/arm/common/gic.c index 69d9a395d54c..36ae03a3f5d1 100644 --- a/trunk/drivers/irqchip/irq-gic.c +++ b/trunk/arch/arm/common/gic.c @@ -38,14 +38,12 @@ #include #include #include -#include #include #include #include #include - -#include "irqchip.h" +#include union gic_base { void __iomem *common_base; @@ -278,7 +276,7 @@ static int gic_set_wake(struct irq_data *d, unsigned int on) #define gic_set_wake NULL #endif -static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) +asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) { u32 irqstat, irqnr; struct gic_chip_data *gic = &gic_data[0]; @@ -619,27 +617,6 @@ static void __init gic_pm_init(struct gic_chip_data *gic) } #endif -#ifdef CONFIG_SMP -void gic_raise_softirq(const struct cpumask *mask, unsigned int irq) -{ - int cpu; - unsigned long map = 0; - - /* Convert our logical CPU mask into a physical one. */ - for_each_cpu(cpu, mask) - map |= 1 << cpu_logical_map(cpu); - - /* - * Ensure that stores to Normal memory are visible to the - * other CPUs before issuing the IPI. - */ - dsb(); - - /* this always happens on GIC0 */ - writel_relaxed(map << 16 | irq, gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT); -} -#endif - static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hw) { @@ -766,12 +743,6 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start, if (WARN_ON(!gic->domain)) return; -#ifdef CONFIG_SMP - set_smp_cross_call(gic_raise_softirq); -#endif - - set_handle_irq(gic_handle_irq); - gic_chip.flags |= gic_arch_extn.flags; gic_dist_init(gic); gic_cpu_init(gic); @@ -785,6 +756,27 @@ void __cpuinit gic_secondary_init(unsigned int gic_nr) gic_cpu_init(&gic_data[gic_nr]); } +#ifdef CONFIG_SMP +void gic_raise_softirq(const struct cpumask *mask, unsigned int irq) +{ + int cpu; + unsigned long map = 0; + + /* Convert our logical CPU mask into a physical one. */ + for_each_cpu(cpu, mask) + map |= gic_cpu_map[cpu]; + + /* + * Ensure that stores to Normal memory are visible to the + * other CPUs before issuing the IPI. + */ + dsb(); + + /* this always happens on GIC0 */ + writel_relaxed(map << 16 | irq, gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT); +} +#endif + #ifdef CONFIG_OF static int gic_cnt __initdata = 0; @@ -816,9 +808,4 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent) gic_cnt++; return 0; } -IRQCHIP_DECLARE(cortex_a15_gic, "arm,cortex-a15-gic", gic_of_init); -IRQCHIP_DECLARE(cortex_a9_gic, "arm,cortex-a9-gic", gic_of_init); -IRQCHIP_DECLARE(msm_8660_qgic, "qcom,msm-8660-qgic", gic_of_init); -IRQCHIP_DECLARE(msm_qgic2, "qcom,msm-qgic2", gic_of_init); - #endif diff --git a/trunk/drivers/irqchip/irq-vic.c b/trunk/arch/arm/common/vic.c similarity index 92% rename from trunk/drivers/irqchip/irq-vic.c rename to trunk/arch/arm/common/vic.c index 3cf97aaebe40..8f324b99416e 100644 --- a/trunk/drivers/irqchip/irq-vic.c +++ b/trunk/arch/arm/common/vic.c @@ -30,29 +30,10 @@ #include #include #include -#include #include #include - -#include "irqchip.h" - -#define VIC_IRQ_STATUS 0x00 -#define VIC_FIQ_STATUS 0x04 -#define VIC_INT_SELECT 0x0c /* 1 = FIQ, 0 = IRQ */ -#define VIC_INT_SOFT 0x18 -#define VIC_INT_SOFT_CLEAR 0x1c -#define VIC_PROTECT 0x20 -#define VIC_PL190_VECT_ADDR 0x30 /* PL190 only */ -#define VIC_PL190_DEF_VECT_ADDR 0x34 /* PL190 only */ - -#define VIC_VECT_ADDR0 0x100 /* 0 to 15 (0..31 PL192) */ -#define VIC_VECT_CNTL0 0x200 /* 0 to 15 (0..31 PL192) */ -#define VIC_ITCR 0x300 /* VIC test control register */ - -#define VIC_VECT_CNTL_ENABLE (1 << 5) - -#define VIC_PL192_VECT_ADDR 0xF00 +#include /** * struct vic_device - VIC PM device @@ -85,8 +66,6 @@ static struct vic_device vic_devices[CONFIG_ARM_VIC_NR]; static int vic_id; -static void vic_handle_irq(struct pt_regs *regs); - /** * vic_init2 - common initialisation code * @base: Base of the VIC. @@ -203,40 +182,6 @@ static int vic_irqdomain_map(struct irq_domain *d, unsigned int irq, return 0; } -/* - * Handle each interrupt in a single VIC. Returns non-zero if we've - * handled at least one interrupt. This reads the status register - * before handling each interrupt, which is necessary given that - * handle_IRQ may briefly re-enable interrupts for soft IRQ handling. - */ -static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs) -{ - u32 stat, irq; - int handled = 0; - - while ((stat = readl_relaxed(vic->base + VIC_IRQ_STATUS))) { - irq = ffs(stat) - 1; - handle_IRQ(irq_find_mapping(vic->domain, irq), regs); - handled = 1; - } - - return handled; -} - -/* - * Keep iterating over all registered VIC's until there are no pending - * interrupts. - */ -static asmlinkage void __exception_irq_entry vic_handle_irq(struct pt_regs *regs) -{ - int i, handled; - - do { - for (i = 0, handled = 0; i < vic_id; ++i) - handled |= handle_one_vic(&vic_devices[i], regs); - } while (handled); -} - static struct irq_domain_ops vic_irqdomain_ops = { .map = vic_irqdomain_map, .xlate = irq_domain_xlate_onetwocell, @@ -273,7 +218,6 @@ static void __init vic_register(void __iomem *base, unsigned int irq, v->valid_sources = valid_sources; v->resume_sources = resume_sources; v->irq = irq; - set_handle_irq(vic_handle_irq); vic_id++; v->domain = irq_domain_add_simple(node, fls(valid_sources), irq, &vic_irqdomain_ops, v); @@ -483,7 +427,38 @@ int __init vic_of_init(struct device_node *node, struct device_node *parent) return 0; } -IRQCHIP_DECLARE(arm_pl190_vic, "arm,pl190-vic", vic_of_init); -IRQCHIP_DECLARE(arm_pl192_vic, "arm,pl192-vic", vic_of_init); -IRQCHIP_DECLARE(arm_versatile_vic, "arm,versatile-vic", vic_of_init); #endif /* CONFIG OF */ + +/* + * Handle each interrupt in a single VIC. Returns non-zero if we've + * handled at least one interrupt. This reads the status register + * before handling each interrupt, which is necessary given that + * handle_IRQ may briefly re-enable interrupts for soft IRQ handling. + */ +static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs) +{ + u32 stat, irq; + int handled = 0; + + while ((stat = readl_relaxed(vic->base + VIC_IRQ_STATUS))) { + irq = ffs(stat) - 1; + handle_IRQ(irq_find_mapping(vic->domain, irq), regs); + handled = 1; + } + + return handled; +} + +/* + * Keep iterating over all registered VIC's until there are no pending + * interrupts. + */ +asmlinkage void __exception_irq_entry vic_handle_irq(struct pt_regs *regs) +{ + int i, handled; + + do { + for (i = 0, handled = 0; i < vic_id; ++i) + handled |= handle_one_vic(&vic_devices[i], regs); + } while (handled); +} diff --git a/trunk/arch/arm/configs/at91sam9263_defconfig b/trunk/arch/arm/configs/at91sam9263_defconfig index c5212f43eee6..36fed66bd4b5 100644 --- a/trunk/arch/arm/configs/at91sam9263_defconfig +++ b/trunk/arch/arm/configs/at91sam9263_defconfig @@ -18,7 +18,6 @@ CONFIG_ARCH_AT91=y CONFIG_ARCH_AT91SAM9263=y CONFIG_MACH_AT91SAM9263EK=y CONFIG_MACH_USB_A9263=y -CONFIG_MACH_NEOCORE926=y CONFIG_MTD_AT91_DATAFLASH_CARD=y # CONFIG_ARM_THUMB is not set CONFIG_AEABI=y diff --git a/trunk/arch/arm/configs/imx_v6_v7_defconfig b/trunk/arch/arm/configs/imx_v6_v7_defconfig index 6dddbf877b0c..69667133321f 100644 --- a/trunk/arch/arm/configs/imx_v6_v7_defconfig +++ b/trunk/arch/arm/configs/imx_v6_v7_defconfig @@ -32,6 +32,7 @@ CONFIG_MACH_PCM043=y CONFIG_MACH_MX35_3DS=y CONFIG_MACH_VPR200=y CONFIG_MACH_IMX51_DT=y +CONFIG_MACH_MX51_3DS=y CONFIG_MACH_EUKREA_CPUIMX51SD=y CONFIG_SOC_IMX53=y CONFIG_SOC_IMX6Q=y diff --git a/trunk/include/linux/irqchip/arm-gic.h b/trunk/arch/arm/include/asm/hardware/gic.h similarity index 77% rename from trunk/include/linux/irqchip/arm-gic.h rename to trunk/arch/arm/include/asm/hardware/gic.h index a67ca55e6f4e..4b1ce6cd477f 100644 --- a/trunk/include/linux/irqchip/arm-gic.h +++ b/trunk/arch/arm/include/asm/hardware/gic.h @@ -1,5 +1,5 @@ /* - * include/linux/irqchip/arm-gic.h + * arch/arm/include/asm/hardware/gic.h * * Copyright (C) 2002 ARM Limited, All Rights Reserved. * @@ -7,8 +7,10 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ -#ifndef __LINUX_IRQCHIP_ARM_GIC_H -#define __LINUX_IRQCHIP_ARM_GIC_H +#ifndef __ASM_ARM_HARDWARE_GIC_H +#define __ASM_ARM_HARDWARE_GIC_H + +#include #define GIC_CPU_CTRL 0x00 #define GIC_CPU_PRIMASK 0x04 @@ -30,14 +32,19 @@ #define GIC_DIST_CONFIG 0xc00 #define GIC_DIST_SOFTINT 0xf00 +#ifndef __ASSEMBLY__ +#include 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 *); +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); void gic_cascade_irq(unsigned int gic_nr, unsigned int irq); +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) @@ -46,3 +53,5 @@ static inline void gic_init(unsigned int nr, int start, } #endif + +#endif diff --git a/trunk/include/linux/irqchip/arm-vic.h b/trunk/arch/arm/include/asm/hardware/vic.h similarity index 63% rename from trunk/include/linux/irqchip/arm-vic.h rename to trunk/arch/arm/include/asm/hardware/vic.h index e3c82dc95756..2bebad36fc83 100644 --- a/trunk/include/linux/irqchip/arm-vic.h +++ b/trunk/arch/arm/include/asm/hardware/vic.h @@ -20,11 +20,29 @@ #ifndef __ASM_ARM_HARDWARE_VIC_H #define __ASM_ARM_HARDWARE_VIC_H -#include - +#define VIC_IRQ_STATUS 0x00 +#define VIC_FIQ_STATUS 0x04 #define VIC_RAW_STATUS 0x08 +#define VIC_INT_SELECT 0x0c /* 1 = FIQ, 0 = IRQ */ #define VIC_INT_ENABLE 0x10 /* 1 = enable, 0 = disable */ #define VIC_INT_ENABLE_CLEAR 0x14 +#define VIC_INT_SOFT 0x18 +#define VIC_INT_SOFT_CLEAR 0x1c +#define VIC_PROTECT 0x20 +#define VIC_PL190_VECT_ADDR 0x30 /* PL190 only */ +#define VIC_PL190_DEF_VECT_ADDR 0x34 /* PL190 only */ + +#define VIC_VECT_ADDR0 0x100 /* 0 to 15 (0..31 PL192) */ +#define VIC_VECT_CNTL0 0x200 /* 0 to 15 (0..31 PL192) */ +#define VIC_ITCR 0x300 /* VIC test control register */ + +#define VIC_VECT_CNTL_ENABLE (1 << 5) + +#define VIC_PL192_VECT_ADDR 0xF00 + +#ifndef __ASSEMBLY__ +#include +#include struct device_node; struct pt_regs; @@ -32,5 +50,8 @@ struct pt_regs; void __vic_init(void __iomem *base, 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); +#endif /* __ASSEMBLY__ */ #endif diff --git a/trunk/arch/arm/include/asm/mach/arch.h b/trunk/arch/arm/include/asm/mach/arch.h index 308ad7d6f98b..917d4fcfd9b4 100644 --- a/trunk/arch/arm/include/asm/mach/arch.h +++ b/trunk/arch/arm/include/asm/mach/arch.h @@ -12,6 +12,7 @@ struct tag; struct meminfo; +struct sys_timer; struct pt_regs; struct smp_operations; #ifdef CONFIG_SMP @@ -47,7 +48,7 @@ struct machine_desc { void (*map_io)(void);/* IO mapping function */ void (*init_early)(void); void (*init_irq)(void); - void (*init_time)(void); + struct sys_timer *timer; /* system tick timer */ void (*init_machine)(void); void (*init_late)(void); #ifdef CONFIG_MULTI_IRQ_HANDLER diff --git a/trunk/arch/arm/include/asm/mach/irq.h b/trunk/arch/arm/include/asm/mach/irq.h index 18c883023339..15cb035309f7 100644 --- a/trunk/arch/arm/include/asm/mach/irq.h +++ b/trunk/arch/arm/include/asm/mach/irq.h @@ -22,7 +22,6 @@ extern int show_fiq_list(struct seq_file *, int); #ifdef CONFIG_MULTI_IRQ_HANDLER extern void (*handle_arch_irq)(struct pt_regs *); -extern void set_handle_irq(void (*handle_irq)(struct pt_regs *)); #endif /* diff --git a/trunk/arch/arm/include/asm/mach/time.h b/trunk/arch/arm/include/asm/mach/time.h index 90c12e1e695c..6ca945f534ab 100644 --- a/trunk/arch/arm/include/asm/mach/time.h +++ b/trunk/arch/arm/include/asm/mach/time.h @@ -10,6 +10,36 @@ #ifndef __ASM_ARM_MACH_TIME_H #define __ASM_ARM_MACH_TIME_H +/* + * This is our kernel timer structure. + * + * - init + * Initialise the kernels jiffy timer source, claim interrupt + * using setup_irq. This is called early on during initialisation + * while interrupts are still disabled on the local CPU. + * - suspend + * Suspend the kernel jiffy timer source, if necessary. This + * is called with interrupts disabled, after all normal devices + * have been suspended. If no action is required, set this to + * NULL. + * - resume + * Resume the kernel jiffy timer source, if necessary. This + * is called with interrupts disabled before any normal devices + * are resumed. If no action is required, set this to NULL. + * - offset + * Return the timer offset in microseconds since the last timer + * interrupt. Note: this must take account of any unprocessed + * timer interrupt which may be pending. + */ +struct sys_timer { + void (*init)(void); + void (*suspend)(void); + void (*resume)(void); +#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET + unsigned long (*offset)(void); +#endif +}; + extern void timer_tick(void); struct timespec; diff --git a/trunk/arch/arm/include/debug/imx.S b/trunk/arch/arm/include/debug/imx.S index c6f294cf18f0..0c4e17d4d359 100644 --- a/trunk/arch/arm/include/debug/imx.S +++ b/trunk/arch/arm/include/debug/imx.S @@ -34,7 +34,7 @@ #define UART_PADDR 0x43f90000 #elif defined (CONFIG_DEBUG_IMX51_UART) #define UART_PADDR 0x73fbc000 -#elif defined (CONFIG_DEBUG_IMX53_UART) +#elif defined (CONFIG_DEBUG_IMX50_IMX53_UART) #define UART_PADDR 0x53fbc000 #elif defined (CONFIG_DEBUG_IMX6Q_UART) #define UART_PADDR IMX6Q_DEBUG_UART_BASE diff --git a/trunk/arch/arm/kernel/irq.c b/trunk/arch/arm/kernel/irq.c index 8e4ef4c83a74..896165096d6a 100644 --- a/trunk/arch/arm/kernel/irq.c +++ b/trunk/arch/arm/kernel/irq.c @@ -117,16 +117,6 @@ void __init init_IRQ(void) machine_desc->init_irq(); } -#ifdef CONFIG_MULTI_IRQ_HANDLER -void __init set_handle_irq(void (*handle_irq)(struct pt_regs *)) -{ - if (handle_arch_irq) - return; - - handle_arch_irq = handle_irq; -} -#endif - #ifdef CONFIG_SPARSE_IRQ int __init arch_probe_nr_irqs(void) { diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index 3fc96db2a4b6..84f4cbf652e5 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -416,8 +416,7 @@ static void (*smp_cross_call)(const struct cpumask *, unsigned int); void __init set_smp_cross_call(void (*fn)(const struct cpumask *, unsigned int)) { - if (!smp_cross_call) - smp_cross_call = fn; + smp_cross_call = fn; } void arch_send_call_function_ipi_mask(const struct cpumask *mask) diff --git a/trunk/arch/arm/kernel/smp_twd.c b/trunk/arch/arm/kernel/smp_twd.c index dc9bb0146665..49f335d301ba 100644 --- a/trunk/arch/arm/kernel/smp_twd.c +++ b/trunk/arch/arm/kernel/smp_twd.c @@ -24,6 +24,7 @@ #include #include +#include /* set up by the platform code */ static void __iomem *twd_base; diff --git a/trunk/arch/arm/kernel/time.c b/trunk/arch/arm/kernel/time.c index 955d92d265e5..09be0c3c9069 100644 --- a/trunk/arch/arm/kernel/time.c +++ b/trunk/arch/arm/kernel/time.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -30,6 +31,11 @@ #include #include +/* + * Our system timer. + */ +static struct sys_timer *system_timer; + #if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE) || \ defined(CONFIG_NVRAM) || defined(CONFIG_NVRAM_MODULE) /* this needs a better home */ @@ -63,6 +69,16 @@ unsigned long profile_pc(struct pt_regs *regs) EXPORT_SYMBOL(profile_pc); #endif +#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET +u32 arch_gettimeoffset(void) +{ + if (system_timer->offset != NULL) + return system_timer->offset() * 1000; + + return 0; +} +#endif /* CONFIG_ARCH_USES_GETTIMEOFFSET */ + #ifndef CONFIG_GENERIC_CLOCKEVENTS /* * Kernel system timer support. @@ -113,8 +129,43 @@ int __init register_persistent_clock(clock_access_fn read_boot, return -EINVAL; } +#if defined(CONFIG_PM) && !defined(CONFIG_GENERIC_CLOCKEVENTS) +static int timer_suspend(void) +{ + if (system_timer->suspend) + system_timer->suspend(); + + return 0; +} + +static void timer_resume(void) +{ + if (system_timer->resume) + system_timer->resume(); +} +#else +#define timer_suspend NULL +#define timer_resume NULL +#endif + +static struct syscore_ops timer_syscore_ops = { + .suspend = timer_suspend, + .resume = timer_resume, +}; + +static int __init timer_init_syscore_ops(void) +{ + register_syscore_ops(&timer_syscore_ops); + + return 0; +} + +device_initcall(timer_init_syscore_ops); + void __init time_init(void) { - machine_desc->init_time(); + system_timer = machine_desc->timer; + system_timer->init(); sched_clock_postinit(); } + diff --git a/trunk/arch/arm/mach-at91/Kconfig b/trunk/arch/arm/mach-at91/Kconfig index 958358c91afd..6071f4c3d654 100644 --- a/trunk/arch/arm/mach-at91/Kconfig +++ b/trunk/arch/arm/mach-at91/Kconfig @@ -352,12 +352,6 @@ config MACH_USB_A9263 Select this if you are using a Calao Systems USB-A9263. -config MACH_NEOCORE926 - bool "Adeneo NEOCORE926" - select HAVE_AT91_DATAFLASH_CARD - help - Select this if you are using the Adeneo Neocore 926 board. - endif # ---------------------------------------------------------- diff --git a/trunk/arch/arm/mach-at91/Makefile b/trunk/arch/arm/mach-at91/Makefile index b38a1dcb79b8..39218ca6d8e8 100644 --- a/trunk/arch/arm/mach-at91/Makefile +++ b/trunk/arch/arm/mach-at91/Makefile @@ -66,7 +66,6 @@ obj-$(CONFIG_MACH_AT91SAM9G10EK) += board-sam9261ek.o # AT91SAM9263 board-specific support obj-$(CONFIG_MACH_AT91SAM9263EK) += board-sam9263ek.o obj-$(CONFIG_MACH_USB_A9263) += board-usb-a926x.o -obj-$(CONFIG_MACH_NEOCORE926) += board-neocore926.o # AT91SAM9RL board-specific support obj-$(CONFIG_MACH_AT91SAM9RLEK) += board-sam9rlek.o diff --git a/trunk/arch/arm/mach-at91/at91rm9200_time.c b/trunk/arch/arm/mach-at91/at91rm9200_time.c index 2acdff4c1dfe..cafe98836c8a 100644 --- a/trunk/arch/arm/mach-at91/at91rm9200_time.c +++ b/trunk/arch/arm/mach-at91/at91rm9200_time.c @@ -174,6 +174,7 @@ clkevt32k_next_event(unsigned long delta, struct clock_event_device *dev) static struct clock_event_device clkevt = { .name = "at91_tick", .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, + .shift = 32, .rating = 150, .set_next_event = clkevt32k_next_event, .set_mode = clkevt32k_mode, @@ -264,10 +265,17 @@ void __init at91rm9200_timer_init(void) at91_st_write(AT91_ST_RTMR, 1); /* Setup timer clockevent, with minimum of two ticks (important!!) */ + clkevt.mult = div_sc(AT91_SLOW_CLOCK, NSEC_PER_SEC, clkevt.shift); + clkevt.max_delta_ns = clockevent_delta2ns(AT91_ST_ALMV, &clkevt); + clkevt.min_delta_ns = clockevent_delta2ns(2, &clkevt) + 1; clkevt.cpumask = cpumask_of(0); - clockevents_config_and_register(&clkevt, AT91_SLOW_CLOCK, - 2, AT91_ST_ALMV); + clockevents_register_device(&clkevt); /* register clocksource */ clocksource_register_hz(&clk32k, AT91_SLOW_CLOCK); } + +struct sys_timer at91rm9200_timer = { + .init = at91rm9200_timer_init, +}; + diff --git a/trunk/arch/arm/mach-at91/at91sam926x_time.c b/trunk/arch/arm/mach-at91/at91sam926x_time.c index 3a4bc2e1a65e..358412f1f5f8 100644 --- a/trunk/arch/arm/mach-at91/at91sam926x_time.c +++ b/trunk/arch/arm/mach-at91/at91sam926x_time.c @@ -104,38 +104,12 @@ pit_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *dev) } } -static void at91sam926x_pit_suspend(struct clock_event_device *cedev) -{ - /* Disable timer */ - pit_write(AT91_PIT_MR, 0); -} - -static void at91sam926x_pit_reset(void) -{ - /* Disable timer and irqs */ - pit_write(AT91_PIT_MR, 0); - - /* Clear any pending interrupts, wait for PIT to stop counting */ - while (PIT_CPIV(pit_read(AT91_PIT_PIVR)) != 0) - cpu_relax(); - - /* Start PIT but don't enable IRQ */ - pit_write(AT91_PIT_MR, (pit_cycle - 1) | AT91_PIT_PITEN); -} - -static void at91sam926x_pit_resume(struct clock_event_device *cedev) -{ - at91sam926x_pit_reset(); -} - static struct clock_event_device pit_clkevt = { .name = "pit", .features = CLOCK_EVT_FEAT_PERIODIC, .shift = 32, .rating = 100, .set_mode = pit_clkevt_mode, - .suspend = at91sam926x_pit_suspend, - .resume = at91sam926x_pit_resume, }; @@ -176,6 +150,19 @@ static struct irqaction at91sam926x_pit_irq = { .irq = NR_IRQS_LEGACY + AT91_ID_SYS, }; +static void at91sam926x_pit_reset(void) +{ + /* Disable timer and irqs */ + pit_write(AT91_PIT_MR, 0); + + /* Clear any pending interrupts, wait for PIT to stop counting */ + while (PIT_CPIV(pit_read(AT91_PIT_PIVR)) != 0) + cpu_relax(); + + /* Start PIT but don't enable IRQ */ + pit_write(AT91_PIT_MR, (pit_cycle - 1) | AT91_PIT_PITEN); +} + #ifdef CONFIG_OF static struct of_device_id pit_timer_ids[] = { { .compatible = "atmel,at91sam9260-pit" }, @@ -224,7 +211,7 @@ static int __init of_at91sam926x_pit_init(void) /* * Set up both clocksource and clockevent support. */ -void __init at91sam926x_pit_init(void) +static void __init at91sam926x_pit_init(void) { unsigned long pit_rate; unsigned bits; @@ -263,6 +250,12 @@ void __init at91sam926x_pit_init(void) clockevents_register_device(&pit_clkevt); } +static void at91sam926x_pit_suspend(void) +{ + /* Disable timer */ + pit_write(AT91_PIT_MR, 0); +} + void __init at91sam926x_ioremap_pit(u32 addr) { #if defined(CONFIG_OF) @@ -279,3 +272,9 @@ void __init at91sam926x_ioremap_pit(u32 addr) if (!pit_base_addr) panic("Impossible to ioremap PIT\n"); } + +struct sys_timer at91sam926x_timer = { + .init = at91sam926x_pit_init, + .suspend = at91sam926x_pit_suspend, + .resume = at91sam926x_pit_reset, +}; diff --git a/trunk/arch/arm/mach-at91/at91x40_time.c b/trunk/arch/arm/mach-at91/at91x40_time.c index 0c07a4459cb2..0e57e440c061 100644 --- a/trunk/arch/arm/mach-at91/at91x40_time.c +++ b/trunk/arch/arm/mach-at91/at91x40_time.c @@ -42,10 +42,9 @@ #define AT91_TC_CLK1BASE 0x40 #define AT91_TC_CLK2BASE 0x80 -static u32 at91x40_gettimeoffset(void) +static unsigned long at91x40_gettimeoffset(void) { - return (at91_tc_read(AT91_TC_CLK1BASE + AT91_TC_CV) * 1000000 / - (AT91X40_MASTER_CLOCK / 128)) * 1000; + return (at91_tc_read(AT91_TC_CLK1BASE + AT91_TC_CV) * 1000000 / (AT91X40_MASTER_CLOCK / 128)); } static irqreturn_t at91x40_timer_interrupt(int irq, void *dev_id) @@ -65,8 +64,6 @@ void __init at91x40_timer_init(void) { unsigned int v; - arch_gettimeoffset = at91x40_gettimeoffset; - at91_tc_write(AT91_TC_BCR, 0); v = at91_tc_read(AT91_TC_BMR); v = (v & ~AT91_TC_TC1XC1S) | AT91_TC_TC1XC1S_NONE; @@ -82,3 +79,9 @@ void __init at91x40_timer_init(void) at91_tc_write(AT91_TC_CLK1BASE + AT91_TC_CCR, (AT91_TC_SWTRG | AT91_TC_CLKEN)); } + +struct sys_timer at91x40_timer = { + .init = at91x40_timer_init, + .offset = at91x40_gettimeoffset, +}; + diff --git a/trunk/arch/arm/mach-at91/board-1arm.c b/trunk/arch/arm/mach-at91/board-1arm.c index 35ab632bbf68..b99b5752cc10 100644 --- a/trunk/arch/arm/mach-at91/board-1arm.c +++ b/trunk/arch/arm/mach-at91/board-1arm.c @@ -90,7 +90,7 @@ static void __init onearm_board_init(void) MACHINE_START(ONEARM, "Ajeco 1ARM single board computer") /* Maintainer: Lennert Buytenhek */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = onearm_init_early, diff --git a/trunk/arch/arm/mach-at91/board-afeb-9260v1.c b/trunk/arch/arm/mach-at91/board-afeb-9260v1.c index f95e31cda4b3..854b97974287 100644 --- a/trunk/arch/arm/mach-at91/board-afeb-9260v1.c +++ b/trunk/arch/arm/mach-at91/board-afeb-9260v1.c @@ -210,7 +210,7 @@ static void __init afeb9260_board_init(void) MACHINE_START(AFEB9260, "Custom afeb9260 board") /* Maintainer: Sergey Lapin */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = afeb9260_init_early, diff --git a/trunk/arch/arm/mach-at91/board-cam60.c b/trunk/arch/arm/mach-at91/board-cam60.c index ade948b82662..28a18ce6d914 100644 --- a/trunk/arch/arm/mach-at91/board-cam60.c +++ b/trunk/arch/arm/mach-at91/board-cam60.c @@ -187,7 +187,7 @@ static void __init cam60_board_init(void) MACHINE_START(CAM60, "KwikByte CAM60") /* Maintainer: KwikByte */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = cam60_init_early, diff --git a/trunk/arch/arm/mach-at91/board-carmeva.c b/trunk/arch/arm/mach-at91/board-carmeva.c index 92983050a9bd..c17bb533a949 100644 --- a/trunk/arch/arm/mach-at91/board-carmeva.c +++ b/trunk/arch/arm/mach-at91/board-carmeva.c @@ -157,7 +157,7 @@ static void __init carmeva_board_init(void) MACHINE_START(CARMEVA, "Carmeva") /* Maintainer: Conitec Datasystems */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = carmeva_init_early, diff --git a/trunk/arch/arm/mach-at91/board-cpu9krea.c b/trunk/arch/arm/mach-at91/board-cpu9krea.c index 008527efdbcf..847432441ecc 100644 --- a/trunk/arch/arm/mach-at91/board-cpu9krea.c +++ b/trunk/arch/arm/mach-at91/board-cpu9krea.c @@ -374,7 +374,7 @@ MACHINE_START(CPUAT9260, "Eukrea CPU9260") MACHINE_START(CPUAT9G20, "Eukrea CPU9G20") #endif /* Maintainer: Eric Benard - EUKREA Electromatique */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = cpu9krea_init_early, diff --git a/trunk/arch/arm/mach-at91/board-cpuat91.c b/trunk/arch/arm/mach-at91/board-cpuat91.c index 42f1353a4baf..2a7af7868747 100644 --- a/trunk/arch/arm/mach-at91/board-cpuat91.c +++ b/trunk/arch/arm/mach-at91/board-cpuat91.c @@ -178,7 +178,7 @@ static void __init cpuat91_board_init(void) MACHINE_START(CPUAT91, "Eukrea") /* Maintainer: Eric Benard - EUKREA Electromatique */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = cpuat91_init_early, diff --git a/trunk/arch/arm/mach-at91/board-csb337.c b/trunk/arch/arm/mach-at91/board-csb337.c index e5fde215225b..48a531e05be3 100644 --- a/trunk/arch/arm/mach-at91/board-csb337.c +++ b/trunk/arch/arm/mach-at91/board-csb337.c @@ -251,7 +251,7 @@ static void __init csb337_board_init(void) MACHINE_START(CSB337, "Cogent CSB337") /* Maintainer: Bill Gatliff */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = csb337_init_early, diff --git a/trunk/arch/arm/mach-at91/board-csb637.c b/trunk/arch/arm/mach-at91/board-csb637.c index fdf11061c577..ec0f3abd504b 100644 --- a/trunk/arch/arm/mach-at91/board-csb637.c +++ b/trunk/arch/arm/mach-at91/board-csb637.c @@ -132,7 +132,7 @@ static void __init csb637_board_init(void) MACHINE_START(CSB637, "Cogent CSB637") /* Maintainer: Bill Gatliff */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = csb637_init_early, diff --git a/trunk/arch/arm/mach-at91/board-dt.c b/trunk/arch/arm/mach-at91/board-dt.c index 8db30132abed..881170ce61dd 100644 --- a/trunk/arch/arm/mach-at91/board-dt.c +++ b/trunk/arch/arm/mach-at91/board-dt.c @@ -49,7 +49,7 @@ static const char *at91_dt_board_compat[] __initdata = { DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM (Device Tree)") /* Maintainer: Atmel */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = at91_dt_initialize, diff --git a/trunk/arch/arm/mach-at91/board-eb01.c b/trunk/arch/arm/mach-at91/board-eb01.c index becf0a6a289e..b489388a6f84 100644 --- a/trunk/arch/arm/mach-at91/board-eb01.c +++ b/trunk/arch/arm/mach-at91/board-eb01.c @@ -44,7 +44,7 @@ static void __init at91eb01_init_early(void) MACHINE_START(AT91EB01, "Atmel AT91 EB01") /* Maintainer: Greg Ungerer */ - .init_time = at91x40_timer_init, + .timer = &at91x40_timer, .handle_irq = at91_aic_handle_irq, .init_early = at91eb01_init_early, .init_irq = at91eb01_init_irq, diff --git a/trunk/arch/arm/mach-at91/board-eb9200.c b/trunk/arch/arm/mach-at91/board-eb9200.c index f9be8161bbfa..9f5e71c95f05 100644 --- a/trunk/arch/arm/mach-at91/board-eb9200.c +++ b/trunk/arch/arm/mach-at91/board-eb9200.c @@ -116,7 +116,7 @@ static void __init eb9200_board_init(void) } MACHINE_START(ATEB9200, "Embest ATEB9200") - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = eb9200_init_early, diff --git a/trunk/arch/arm/mach-at91/board-ecbat91.c b/trunk/arch/arm/mach-at91/board-ecbat91.c index b2fcd71262ba..ef69e0ebe949 100644 --- a/trunk/arch/arm/mach-at91/board-ecbat91.c +++ b/trunk/arch/arm/mach-at91/board-ecbat91.c @@ -181,7 +181,7 @@ static void __init ecb_at91board_init(void) MACHINE_START(ECBAT91, "emQbit's ECB_AT91") /* Maintainer: emQbit.com */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ecb_at91init_early, diff --git a/trunk/arch/arm/mach-at91/board-eco920.c b/trunk/arch/arm/mach-at91/board-eco920.c index 77de410efc90..50f3d3795c05 100644 --- a/trunk/arch/arm/mach-at91/board-eco920.c +++ b/trunk/arch/arm/mach-at91/board-eco920.c @@ -149,7 +149,7 @@ static void __init eco920_board_init(void) MACHINE_START(ECO920, "eco920") /* Maintainer: Sascha Hauer */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = eco920_init_early, diff --git a/trunk/arch/arm/mach-at91/board-flexibity.c b/trunk/arch/arm/mach-at91/board-flexibity.c index 737c08563628..5d44eba0f20f 100644 --- a/trunk/arch/arm/mach-at91/board-flexibity.c +++ b/trunk/arch/arm/mach-at91/board-flexibity.c @@ -159,7 +159,7 @@ static void __init flexibity_board_init(void) MACHINE_START(FLEXIBITY, "Flexibity Connect") /* Maintainer: Maxim Osipov */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = flexibity_init_early, diff --git a/trunk/arch/arm/mach-at91/board-foxg20.c b/trunk/arch/arm/mach-at91/board-foxg20.c index 2ea7059b840b..191d37c16bab 100644 --- a/trunk/arch/arm/mach-at91/board-foxg20.c +++ b/trunk/arch/arm/mach-at91/board-foxg20.c @@ -261,7 +261,7 @@ static void __init foxg20_board_init(void) MACHINE_START(ACMENETUSFOXG20, "Acme Systems srl FOX Board G20") /* Maintainer: Sergio Tanzilli */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = foxg20_init_early, diff --git a/trunk/arch/arm/mach-at91/board-gsia18s.c b/trunk/arch/arm/mach-at91/board-gsia18s.c index c1d61d247790..23a2fa17ab29 100644 --- a/trunk/arch/arm/mach-at91/board-gsia18s.c +++ b/trunk/arch/arm/mach-at91/board-gsia18s.c @@ -574,7 +574,7 @@ static void __init gsia18s_board_init(void) } MACHINE_START(GSIA18S, "GS_IA18_S") - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = gsia18s_init_early, diff --git a/trunk/arch/arm/mach-at91/board-kafa.c b/trunk/arch/arm/mach-at91/board-kafa.c index 88e2f5d2d16d..9a43d1e1a037 100644 --- a/trunk/arch/arm/mach-at91/board-kafa.c +++ b/trunk/arch/arm/mach-at91/board-kafa.c @@ -103,7 +103,7 @@ static void __init kafa_board_init(void) MACHINE_START(KAFA, "Sperry-Sun KAFA") /* Maintainer: Sergei Sharonov */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = kafa_init_early, diff --git a/trunk/arch/arm/mach-at91/board-kb9202.c b/trunk/arch/arm/mach-at91/board-kb9202.c index 0c519d9ebffc..f168bec2369f 100644 --- a/trunk/arch/arm/mach-at91/board-kb9202.c +++ b/trunk/arch/arm/mach-at91/board-kb9202.c @@ -149,7 +149,7 @@ static void __init kb9202_board_init(void) MACHINE_START(KB9200, "KB920x") /* Maintainer: KwikByte, Inc. */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = kb9202_init_early, diff --git a/trunk/arch/arm/mach-at91/board-neocore926.c b/trunk/arch/arm/mach-at91/board-neocore926.c deleted file mode 100644 index 5b4760fe53de..000000000000 --- a/trunk/arch/arm/mach-at91/board-neocore926.c +++ /dev/null @@ -1,387 +0,0 @@ -/* - * linux/arch/arm/mach-at91/board-neocore926.c - * - * Copyright (C) 2005 SAN People - * Copyright (C) 2007 Atmel Corporation - * Copyright (C) 2008 ADENEO. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include