From fd32c67e9e33600e860aeea5d667933d61972330 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Fri, 4 Jan 2013 10:35:06 +0100 Subject: [PATCH] --- yaml --- r: 355423 b: refs/heads/master c: 9f575d9741ff28b6661f639d63b4f465c19889c4 h: refs/heads/master i: 355421: 5e107a58f2ea2fd46840cfcf3257ae53b04224c3 355419: e56551890eb62092521fad1e3fde59c0ef202819 355415: 1a78dafeb4d53ac824c0435fe6b08af3300daf04 355407: 0c8a3cd4aff03e1c3fe9d54534dfaca3c3d60370 355391: f3da6bc99524b68606358c8de575cc2680e779cc v: v3 --- [refs] | 2 +- .../DocBook/media/v4l/driver.xml | 6 +- trunk/Documentation/PCI/pci-iov-howto.txt | 6 +- trunk/Documentation/PCI/pci.txt | 20 + trunk/Documentation/acpi/enumeration.txt | 2 +- .../devicetree/bindings/clock/imx23-clock.txt | 5 + .../devicetree/bindings/clock/imx25-clock.txt | 4 + .../devicetree/bindings/clock/imx28-clock.txt | 5 + .../devicetree/bindings/clock/imx6q-clock.txt | 4 + .../bindings/gpio/gpio-poweroff.txt | 20 +- .../bindings/pinctrl/pinctrl-sirf.txt | 47 -- trunk/Documentation/i2c/instantiating-devices | 2 +- trunk/Documentation/networking/ip-sysctl.txt | 16 +- trunk/Documentation/power/runtime_pm.txt | 9 +- trunk/Documentation/rpmsg.txt | 4 +- trunk/Documentation/spi/spi-summary | 4 +- trunk/Documentation/sysctl/kernel.txt | 32 - .../video4linux/v4l2-framework.txt | 3 +- .../zh_CN/video4linux/v4l2-framework.txt | 3 +- trunk/MAINTAINERS | 210 ++--- trunk/Makefile | 2 +- trunk/arch/alpha/include/asm/parport.h | 4 +- trunk/arch/alpha/kernel/pci.c | 12 +- trunk/arch/alpha/kernel/smp.c | 6 +- trunk/arch/alpha/kernel/sys_titan.c | 2 +- trunk/arch/arm/Kconfig | 7 +- trunk/arch/arm/boot/dts/armada-370-xp.dtsi | 6 +- .../arch/arm/boot/dts/armada-xp-mv78230.dtsi | 9 +- .../arch/arm/boot/dts/armada-xp-mv78260.dtsi | 8 - .../arch/arm/boot/dts/armada-xp-mv78460.dtsi | 8 - trunk/arch/arm/boot/dts/armada-xp.dtsi | 14 +- trunk/arch/arm/boot/dts/dbx5x0.dtsi | 4 +- trunk/arch/arm/boot/dts/dove.dtsi | 1 - trunk/arch/arm/boot/dts/ecx-2000.dts | 4 - .../arch/arm/boot/dts/exynos4210-smdkv310.dts | 2 +- trunk/arch/arm/boot/dts/exynos5250.dtsi | 2 +- .../arch/arm/boot/dts/exynos5440-ssdk5440.dts | 2 +- trunk/arch/arm/boot/dts/highbank.dts | 20 +- trunk/arch/arm/boot/dts/imx23-olinuxino.dts | 8 +- trunk/arch/arm/boot/dts/imx31-bug.dts | 2 +- trunk/arch/arm/boot/dts/imx53.dtsi | 2 +- trunk/arch/arm/boot/dts/kirkwood-6282.dtsi | 1 - trunk/arch/arm/boot/dts/kirkwood-topkick.dts | 17 - trunk/arch/arm/boot/dts/kirkwood.dtsi | 1 - trunk/arch/arm/common/Kconfig | 23 + trunk/arch/arm/common/Makefile | 2 + .../irq-gic.c => arch/arm/common/gic.c} | 59 +- trunk/arch/arm/common/sa1111.c | 5 +- trunk/arch/arm/common/scoop.c | 6 +- .../irq-vic.c => arch/arm/common/vic.c} | 104 +-- trunk/arch/arm/configs/mvebu_defconfig | 4 +- .../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/kernel/bios32.c | 18 +- trunk/arch/arm/kernel/etm.c | 4 +- trunk/arch/arm/kernel/irq.c | 10 - trunk/arch/arm/kernel/perf_event_cpu.c | 10 +- trunk/arch/arm/kernel/perf_event_v6.c | 4 +- trunk/arch/arm/kernel/perf_event_v7.c | 12 +- trunk/arch/arm/kernel/perf_event_xscale.c | 4 +- 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/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 | 2 +- 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 +- trunk/arch/arm/mach-bcm/board_bcm.c | 22 +- trunk/arch/arm/mach-bcm2835/bcm2835.c | 2 +- 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 +- trunk/arch/arm/mach-cns3xxx/cns3420vb.c | 4 +- trunk/arch/arm/mach-cns3xxx/core.c | 21 +- trunk/arch/arm/mach-cns3xxx/core.h | 2 +- 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 | 6 +- .../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/cdce949.c | 4 +- trunk/arch/arm/mach-davinci/da8xx-dt.c | 2 +- .../arm/mach-davinci/include/mach/common.h | 4 +- trunk/arch/arm/mach-davinci/time.c | 7 +- trunk/arch/arm/mach-dove/cm-a510.c | 2 +- trunk/arch/arm/mach-dove/common.c | 8 +- trunk/arch/arm/mach-dove/common.h | 2 +- trunk/arch/arm/mach-dove/dove-db-setup.c | 2 +- trunk/arch/arm/mach-dove/pcie.c | 2 +- trunk/arch/arm/mach-ebsa110/core.c | 15 +- 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 +- 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/Kconfig | 2 - trunk/arch/arm/mach-exynos/common.c | 17 +- trunk/arch/arm/mach-exynos/common.h | 2 +- .../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-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 +- 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 +- 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 +- trunk/arch/arm/mach-highbank/highbank.c | 19 +- trunk/arch/arm/mach-highbank/hotplug.c | 2 +- trunk/arch/arm/mach-highbank/platsmp.c | 18 +- trunk/arch/arm/mach-highbank/pm.c | 19 +- trunk/arch/arm/mach-highbank/sysregs.h | 23 +- trunk/arch/arm/mach-highbank/system.c | 4 +- trunk/arch/arm/mach-imx/Kconfig | 2 + trunk/arch/arm/mach-imx/common.h | 1 + trunk/arch/arm/mach-imx/cpufreq.c | 2 +- trunk/arch/arm/mach-imx/epit.c | 15 +- trunk/arch/arm/mach-imx/gpc.c | 2 +- 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 | 11 +- trunk/arch/arm/mach-imx/imx51-dt.c | 16 +- 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 | 16 +- 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 | 6 +- trunk/arch/arm/mach-imx/mach-mx51_3ds.c | 6 +- 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/mmdc.c | 2 +- trunk/arch/arm/mach-imx/platsmp.c | 4 +- trunk/arch/arm/mach-imx/time.c | 15 +- .../arch/arm/mach-integrator/integrator_ap.c | 16 +- .../arch/arm/mach-integrator/integrator_cp.c | 16 +- trunk/arch/arm/mach-iop13xx/iq81340mc.c | 6 +- trunk/arch/arm/mach-iop13xx/iq81340sc.c | 6 +- trunk/arch/arm/mach-iop13xx/pci.c | 2 +- trunk/arch/arm/mach-iop32x/em7210.c | 6 +- trunk/arch/arm/mach-iop32x/glantank.c | 6 +- trunk/arch/arm/mach-iop32x/iq31244.c | 8 +- trunk/arch/arm/mach-iop32x/iq80321.c | 6 +- trunk/arch/arm/mach-iop32x/n2100.c | 6 +- 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 + 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 | 6 +- .../arm/mach-kirkwood/board-usi_topkick.c | 4 + 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 | 2 +- trunk/arch/arm/mach-kirkwood/guruplug-setup.c | 2 +- .../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 +- trunk/arch/arm/mach-kirkwood/pcie.c | 2 +- .../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 | 4 +- 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 +- trunk/arch/arm/mach-ks8695/time.c | 6 +- trunk/arch/arm/mach-lpc32xx/common.h | 2 +- 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 +- 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/sram.c | 4 +- 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 +- trunk/arch/arm/mach-msm/platsmp.c | 6 +- trunk/arch/arm/mach-msm/proc_comm.c | 2 +- trunk/arch/arm/mach-msm/smd.c | 2 +- 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 +- trunk/arch/arm/mach-mv78xx0/pcie.c | 2 +- .../arm/mach-mv78xx0/rd78x00-masa-setup.c | 2 +- trunk/arch/arm/mach-mvebu/armada-370-xp.c | 6 +- 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 +- 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 | 9 +- trunk/arch/arm/mach-nomadik/cpu-8815.c | 2 +- .../arch/arm/mach-nomadik/include/mach/irqs.h | 78 +- trunk/arch/arm/mach-omap1/board-ams-delta.c | 4 +- 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 +- trunk/arch/arm/mach-omap1/mailbox.c | 6 +- trunk/arch/arm/mach-omap1/time.c | 17 +- trunk/arch/arm/mach-omap1/timer32k.c | 12 +- trunk/arch/arm/mach-omap1/usb.c | 8 +- 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/cclock3xxx_data.c | 2 - trunk/arch/arm/mach-omap2/common.h | 14 +- trunk/arch/arm/mach-omap2/gpmc.c | 12 +- trunk/arch/arm/mach-omap2/mailbox.c | 6 +- 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 +- .../arm/mach-omap2/omap_hwmod_33xx_data.c | 6 +- trunk/arch/arm/mach-omap2/prm2xxx.c | 88 +- trunk/arch/arm/mach-omap2/prm2xxx_3xxx.c | 22 + trunk/arch/arm/mach-omap2/prm3xxx.c | 28 +- trunk/arch/arm/mach-omap2/prm44xx.c | 6 +- trunk/arch/arm/mach-omap2/prm44xx.h | 4 +- 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 +- .../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 +- trunk/arch/arm/mach-orion5x/pci.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/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 +- trunk/arch/arm/mach-prima2/pm.c | 2 +- trunk/arch/arm/mach-prima2/rtciobrg.c | 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/corgi_pm.c | 2 +- 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 +- 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 | 4 +- 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/sharpsl_pm.c | 4 +- trunk/arch/arm/mach-pxa/spitz.c | 6 +- trunk/arch/arm/mach-pxa/spitz_pm.c | 2 +- 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-bt.c | 4 +- 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 + 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 +- trunk/arch/arm/mach-rpc/riscpc.c | 4 +- trunk/arch/arm/mach-rpc/time.c | 13 +- trunk/arch/arm/mach-s3c24xx/h1940-bluetooth.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-amlm5900.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-anubis.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-at2440evb.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-bast.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-gta02.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-h1940.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-jive.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-mini2440.c | 2 +- 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-dvs.c | 6 +- trunk/arch/arm/mach-s3c24xx/mach-osiris.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-otom.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-qt2410.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-rx1950.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-rx3715.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2410.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2413.c | 6 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2416.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2440.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-smdk2443.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-tct_hammer.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-vr1000.c | 2 +- trunk/arch/arm/mach-s3c24xx/mach-vstms.c | 2 +- trunk/arch/arm/mach-s3c64xx/common.c | 2 +- .../arm/mach-s3c64xx/include/mach/regs-irq.h | 1 + .../arch/arm/mach-s3c64xx/include/mach/tick.h | 2 - trunk/arch/arm/mach-s3c64xx/mach-anw6410.c | 4 +- .../arm/mach-s3c64xx/mach-crag6410-module.c | 6 +- trunk/arch/arm/mach-s3c64xx/mach-crag6410.c | 72 +- trunk/arch/arm/mach-s3c64xx/mach-hmt.c | 4 +- trunk/arch/arm/mach-s3c64xx/mach-mini6410.c | 4 +- trunk/arch/arm/mach-s3c64xx/mach-ncp.c | 4 +- trunk/arch/arm/mach-s3c64xx/mach-real6410.c | 4 +- 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 | 4 +- .../arm/mach-s5p64x0/include/mach/regs-irq.h | 1 + .../arch/arm/mach-s5p64x0/include/mach/tick.h | 29 + trunk/arch/arm/mach-s5p64x0/mach-smdk6440.c | 4 +- trunk/arch/arm/mach-s5p64x0/mach-smdk6450.c | 4 +- .../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 +- .../arm/mach-s5pv210/include/mach/regs-irq.h | 1 + .../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-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 +- trunk/arch/arm/mach-sa1100/jornada720.c | 2 +- trunk/arch/arm/mach-sa1100/jornada720_ssp.c | 2 +- trunk/arch/arm/mach-sa1100/lart.c | 2 +- trunk/arch/arm/mach-sa1100/nanoengine.c | 2 +- trunk/arch/arm/mach-sa1100/neponset.c | 8 +- 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 +- 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 +- 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 | 4 +- trunk/arch/arm/mach-tegra/board-dt-tegra20.c | 5 +- trunk/arch/arm/mach-tegra/board-dt-tegra30.c | 4 +- trunk/arch/arm/mach-tegra/board.h | 2 +- trunk/arch/arm/mach-tegra/common.c | 10 +- trunk/arch/arm/mach-tegra/irq.c | 3 +- trunk/arch/arm/mach-tegra/pcie.c | 6 +- trunk/arch/arm/mach-tegra/platsmp.c | 4 +- trunk/arch/arm/mach-tegra/tegra2_emc.c | 6 +- trunk/arch/arm/mach-tegra/timer.c | 14 +- trunk/arch/arm/mach-u300/core.c | 7 +- trunk/arch/arm/mach-u300/dma_channels.h | 60 -- trunk/arch/arm/mach-u300/dummyspichip.c | 6 +- .../arm/mach-u300/include/mach/coh901318.h | 16 - trunk/arch/arm/mach-u300/spi.c | 2 +- trunk/arch/arm/mach-u300/timer.c | 10 +- trunk/arch/arm/mach-u300/timer.h | 2 +- trunk/arch/arm/mach-ux500/board-mop500.c | 13 +- trunk/arch/arm/mach-ux500/cpu-db8500.c | 7 +- trunk/arch/arm/mach-ux500/cpu.c | 10 +- .../arch/arm/mach-ux500/include/mach/setup.h | 3 +- trunk/arch/arm/mach-ux500/platsmp.c | 6 +- trunk/arch/arm/mach-ux500/timer.c | 13 +- trunk/arch/arm/mach-versatile/core.c | 9 +- trunk/arch/arm/mach-versatile/core.h | 2 +- .../arm/mach-versatile/include/mach/irqs.h | 6 +- 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/Kconfig | 1 + 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 | 1 - trunk/arch/arm/mach-vt8500/Makefile | 2 +- trunk/arch/arm/mach-vt8500/common.h | 1 + .../arm/mach-vt8500/timer.c} | 9 +- trunk/arch/arm/mach-vt8500/vt8500.c | 7 +- 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 | 26 +- trunk/arch/arm/mm/cache-l2x0.c | 34 +- trunk/arch/arm/mm/proc-v7.S | 4 +- trunk/arch/arm/plat-iop/time.c | 9 +- trunk/arch/arm/plat-omap/counter_32k.c | 2 - trunk/arch/arm/plat-omap/dma.c | 6 +- trunk/arch/arm/plat-omap/dmtimer.c | 6 +- trunk/arch/arm/plat-omap/sram.c | 2 - trunk/arch/arm/plat-orion/time.c | 6 +- trunk/arch/arm/plat-pxa/ssp.c | 6 +- trunk/arch/arm/plat-samsung/adc.c | 4 +- .../arch/arm/plat-samsung/include/plat/cpu.h | 5 +- .../arm/plat-samsung/include/plat/s5p-time.h | 2 +- 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 +- trunk/arch/arm/plat-spear/time.c | 8 +- trunk/arch/arm/plat-versatile/platsmp.c | 4 +- trunk/arch/arm64/Kconfig | 6 +- trunk/arch/arm64/include/asm/compat.h | 1 - trunk/arch/arm64/kernel/perf_event.c | 2 +- trunk/arch/avr32/lib/delay.c | 2 +- trunk/arch/blackfin/kernel/time.c | 6 +- trunk/arch/blackfin/mach-common/dpmc.c | 6 +- trunk/arch/cris/arch-v10/kernel/time.c | 10 +- trunk/arch/cris/arch-v32/drivers/pci/bios.c | 2 +- trunk/arch/cris/arch-v32/kernel/smp.c | 2 +- trunk/arch/cris/kernel/time.c | 11 + trunk/arch/frv/kernel/setup.c | 2 +- trunk/arch/frv/mb93090-mb00/pci-vdk.c | 6 +- trunk/arch/ia64/include/asm/acpi.h | 2 +- trunk/arch/ia64/include/asm/iosapic.h | 11 +- trunk/arch/ia64/include/asm/parport.h | 5 +- trunk/arch/ia64/include/asm/smp.h | 2 +- trunk/arch/ia64/include/asm/unistd.h | 2 +- trunk/arch/ia64/include/uapi/asm/unistd.h | 1 - trunk/arch/ia64/kernel/acpi.c | 6 +- trunk/arch/ia64/kernel/entry.S | 1 - trunk/arch/ia64/kernel/iosapic.c | 19 +- trunk/arch/ia64/kernel/smpboot.c | 11 +- trunk/arch/ia64/kernel/time.c | 3 +- trunk/arch/ia64/mm/init.c | 5 +- trunk/arch/ia64/mm/tlb.c | 3 +- trunk/arch/ia64/pci/fixup.c | 2 +- trunk/arch/ia64/pci/pci.c | 31 +- trunk/arch/ia64/sn/kernel/io_common.c | 3 +- trunk/arch/ia64/sn/kernel/sn2/sn_hwperf.c | 2 +- trunk/arch/ia64/xen/irq_xen.c | 5 +- trunk/arch/m32r/kernel/smpboot.c | 2 +- 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/emu/nfeth.c | 2 +- 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/include/asm/parport.h | 4 +- trunk/arch/m68k/kernel/pcibios.c | 4 +- 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/arch/microblaze/configs/mmu_defconfig | 52 +- trunk/arch/microblaze/configs/nommu_defconfig | 73 +- trunk/arch/microblaze/include/asm/highmem.h | 2 +- trunk/arch/microblaze/include/asm/uaccess.h | 2 +- trunk/arch/microblaze/include/asm/unistd.h | 2 + .../arch/microblaze/include/uapi/asm/unistd.h | 3 +- trunk/arch/microblaze/kernel/syscall_table.S | 1 - trunk/arch/microblaze/pci/pci-common.c | 39 +- trunk/arch/mips/Kconfig | 4 +- trunk/arch/mips/alchemy/common/time.c | 25 +- trunk/arch/mips/cavium-octeon/serial.c | 2 +- trunk/arch/mips/include/asm/page.h | 9 +- trunk/arch/mips/include/asm/pci.h | 4 +- trunk/arch/mips/include/asm/thread_info.h | 9 +- trunk/arch/mips/include/uapi/asm/unistd.h | 15 +- trunk/arch/mips/kernel/asm-offsets.c | 3 - trunk/arch/mips/kernel/genex.S | 5 +- trunk/arch/mips/kernel/head.S | 1 + trunk/arch/mips/kernel/octeon_switch.S | 1 + trunk/arch/mips/kernel/perf_event_mipsxx.c | 38 + trunk/arch/mips/kernel/r2300_switch.S | 1 + trunk/arch/mips/kernel/r4k_switch.S | 1 + trunk/arch/mips/kernel/relocate_kernel.S | 3 +- trunk/arch/mips/kernel/scall32-o32.S | 1 - trunk/arch/mips/kernel/scall64-64.S | 1 - trunk/arch/mips/kernel/scall64-n32.S | 1 - trunk/arch/mips/kernel/scall64-o32.S | 1 - trunk/arch/mips/kernel/smp.c | 2 +- trunk/arch/mips/kernel/vmlinux.lds.S | 3 +- trunk/arch/mips/lantiq/xway/dma.c | 2 +- trunk/arch/mips/lantiq/xway/gptu.c | 2 +- trunk/arch/mips/lantiq/xway/xrx200_phy_fw.c | 2 +- trunk/arch/mips/mm/ioremap.c | 6 - trunk/arch/mips/mm/tlbex-fault.S | 1 + trunk/arch/mips/mm/tlbex.c | 16 + trunk/arch/mips/mti-sead3/sead3-i2c-drv.c | 6 +- .../arch/mips/mti-sead3/sead3-pic32-i2c-drv.c | 8 +- trunk/arch/mips/pci/fixup-cobalt.c | 8 +- trunk/arch/mips/pci/fixup-emma2rh.c | 4 +- trunk/arch/mips/pci/fixup-fuloong2e.c | 12 +- trunk/arch/mips/pci/fixup-lemote2f.c | 12 +- trunk/arch/mips/pci/fixup-malta.c | 10 +- trunk/arch/mips/pci/fixup-rc32434.c | 6 +- trunk/arch/mips/pci/fixup-sb1250.c | 6 +- trunk/arch/mips/pci/ops-bcm63xx.c | 2 +- trunk/arch/mips/pci/ops-tx4927.c | 6 +- trunk/arch/mips/pci/pci-alchemy.c | 2 +- trunk/arch/mips/pci/pci-ip27.c | 4 +- trunk/arch/mips/pci/pci-lantiq.c | 4 +- trunk/arch/mips/pci/pci.c | 9 +- trunk/arch/mips/power/hibernate.S | 3 +- trunk/arch/mips/sni/setup.c | 2 +- trunk/arch/mips/txx9/generic/pci.c | 11 +- trunk/arch/mn10300/kernel/smp.c | 4 +- trunk/arch/mn10300/unit-asb2305/pci.c | 6 +- trunk/arch/openrisc/lib/delay.c | 2 +- trunk/arch/parisc/include/asm/parport.h | 2 +- trunk/arch/parisc/kernel/hardware.c | 7 +- trunk/arch/powerpc/include/asm/eeh.h | 6 +- .../arch/powerpc/include/asm/io-workarounds.h | 4 +- trunk/arch/powerpc/include/asm/parport.h | 2 +- trunk/arch/powerpc/include/asm/smp.h | 4 +- trunk/arch/powerpc/include/asm/vio.h | 2 +- trunk/arch/powerpc/kernel/io-workarounds.c | 9 +- trunk/arch/powerpc/kernel/isa-bridge.c | 12 +- trunk/arch/powerpc/kernel/of_platform.c | 2 +- trunk/arch/powerpc/kernel/pci-common.c | 28 +- trunk/arch/powerpc/kernel/pci_32.c | 2 +- trunk/arch/powerpc/kernel/pci_64.c | 6 +- trunk/arch/powerpc/kernel/pci_dn.c | 4 +- trunk/arch/powerpc/kernel/pci_of_scan.c | 12 +- trunk/arch/powerpc/kernel/rtas_pci.c | 4 +- trunk/arch/powerpc/kernel/smp-tbsync.c | 8 +- trunk/arch/powerpc/kernel/smp.c | 8 +- trunk/arch/powerpc/kernel/time.c | 5 + trunk/arch/powerpc/kernel/vio.c | 4 +- trunk/arch/powerpc/mm/tlb_hash64.c | 4 + .../powerpc/platforms/40x/ppc40x_simple.c | 3 +- trunk/arch/powerpc/platforms/44x/currituck.c | 2 +- .../arch/powerpc/platforms/44x/virtex_ml510.c | 2 +- .../arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 6 +- .../powerpc/platforms/52xx/mpc52xx_lpbfifo.c | 8 +- trunk/arch/powerpc/platforms/82xx/ep8248e.c | 2 +- .../powerpc/platforms/83xx/mcu_mpc8349emitx.c | 9 +- .../arch/powerpc/platforms/85xx/corenet_ds.c | 2 +- .../arch/powerpc/platforms/85xx/mpc85xx_cds.c | 2 +- trunk/arch/powerpc/platforms/85xx/tqm85xx.c | 2 +- trunk/arch/powerpc/platforms/86xx/gef_ppc9a.c | 2 +- .../arch/powerpc/platforms/86xx/gef_sbc310.c | 2 +- .../arch/powerpc/platforms/86xx/gef_sbc610.c | 2 +- trunk/arch/powerpc/platforms/cell/setup.c | 2 +- trunk/arch/powerpc/platforms/cell/smp.c | 6 +- trunk/arch/powerpc/platforms/chrp/pci.c | 2 +- trunk/arch/powerpc/platforms/chrp/smp.c | 4 +- trunk/arch/powerpc/platforms/fsl_uli1575.c | 20 +- trunk/arch/powerpc/platforms/maple/pci.c | 4 +- .../arch/powerpc/platforms/pasemi/gpio_mdio.c | 2 +- trunk/arch/powerpc/platforms/pasemi/pasemi.h | 4 +- trunk/arch/powerpc/platforms/pasemi/setup.c | 4 +- trunk/arch/powerpc/platforms/powermac/pci.c | 6 +- trunk/arch/powerpc/platforms/powermac/smp.c | 8 +- .../arch/powerpc/platforms/powernv/pci-ioda.c | 48 +- .../powerpc/platforms/powernv/pci-p5ioc2.c | 4 +- trunk/arch/powerpc/platforms/powernv/pci.c | 11 +- trunk/arch/powerpc/platforms/powernv/smp.c | 2 +- trunk/arch/powerpc/platforms/ps3/repository.c | 2 +- .../arch/powerpc/platforms/pseries/eeh_dev.c | 4 +- trunk/arch/powerpc/platforms/pseries/eeh_pe.c | 2 +- .../powerpc/platforms/pseries/pci_dlpar.c | 2 +- trunk/arch/powerpc/platforms/pseries/smp.c | 6 +- trunk/arch/powerpc/platforms/wsp/scom_smp.c | 3 +- trunk/arch/powerpc/platforms/wsp/smp.c | 4 +- trunk/arch/powerpc/platforms/wsp/wsp.h | 2 +- trunk/arch/powerpc/platforms/wsp/wsp_pci.c | 2 +- trunk/arch/powerpc/sysdev/bestcomm/bestcomm.c | 7 +- trunk/arch/powerpc/sysdev/fsl_85xx_l2ctlr.c | 6 +- trunk/arch/powerpc/sysdev/fsl_ifc.c | 4 +- trunk/arch/powerpc/sysdev/fsl_lbc.c | 6 +- trunk/arch/powerpc/sysdev/fsl_msi.c | 7 +- trunk/arch/powerpc/sysdev/fsl_pci.c | 4 +- trunk/arch/powerpc/sysdev/fsl_rio.c | 2 +- trunk/arch/powerpc/sysdev/mpic.c | 2 +- trunk/arch/powerpc/sysdev/mpic_msgr.c | 2 +- trunk/arch/powerpc/sysdev/mv64x60_pci.c | 2 +- trunk/arch/powerpc/sysdev/ppc4xx_msi.c | 2 +- trunk/arch/s390/kernel/smp.c | 7 +- trunk/arch/s390/pci/pci.c | 2 +- trunk/arch/score/mm/cache.c | 2 +- trunk/arch/sh/drivers/pci/fixups-dreamcast.c | 2 +- trunk/arch/sh/drivers/pci/pci.c | 6 +- trunk/arch/sh/drivers/pci/pcie-sh7786.c | 2 +- trunk/arch/sparc/include/asm/parport.h | 6 +- trunk/arch/sparc/include/asm/timer_64.h | 2 +- trunk/arch/sparc/kernel/apc.c | 4 +- trunk/arch/sparc/kernel/auxio_64.c | 2 +- trunk/arch/sparc/kernel/central.c | 6 +- trunk/arch/sparc/kernel/chmc.c | 34 +- trunk/arch/sparc/kernel/ds.c | 5 +- trunk/arch/sparc/kernel/ldc.c | 2 +- trunk/arch/sparc/kernel/leon_pci.c | 2 +- trunk/arch/sparc/kernel/leon_pci_grpci2.c | 2 +- trunk/arch/sparc/kernel/pci.c | 33 +- trunk/arch/sparc/kernel/pci_fire.c | 6 +- trunk/arch/sparc/kernel/pci_psycho.c | 11 +- trunk/arch/sparc/kernel/pci_sabre.c | 8 +- trunk/arch/sparc/kernel/pci_schizo.c | 15 +- trunk/arch/sparc/kernel/pci_sun4v.c | 15 +- trunk/arch/sparc/kernel/pcic.c | 5 +- trunk/arch/sparc/kernel/pmc.c | 2 +- trunk/arch/sparc/kernel/power.c | 4 +- trunk/arch/sparc/kernel/smp_64.c | 4 +- trunk/arch/sparc/kernel/time_32.c | 2 +- trunk/arch/sparc/kernel/time_64.c | 10 +- trunk/arch/sparc/mm/init_64.c | 6 +- trunk/arch/tile/include/asm/pci.h | 2 +- trunk/arch/tile/kernel/pci.c | 23 +- trunk/arch/tile/kernel/pci_gx.c | 33 +- trunk/arch/unicore32/kernel/pci.c | 2 +- trunk/arch/x86/include/asm/parport.h | 4 +- trunk/arch/x86/include/asm/pci_x86.h | 7 +- .../x86/kernel/cpu/perf_event_intel_uncore.c | 6 +- trunk/arch/x86/kernel/pci-dma.c | 2 +- trunk/arch/x86/kernel/quirks.c | 4 +- trunk/arch/x86/lib/delay.c | 2 +- trunk/arch/x86/pci/acpi.c | 11 +- trunk/arch/x86/pci/bus_numa.c | 4 +- trunk/arch/x86/pci/common.c | 26 +- trunk/arch/x86/pci/fixup.c | 30 +- trunk/arch/x86/pci/legacy.c | 4 +- trunk/arch/x86/pci/mmconfig-shared.c | 21 +- trunk/arch/x86/pci/mmconfig_32.c | 2 +- trunk/arch/x86/pci/mmconfig_64.c | 4 +- trunk/arch/x86/pci/mrst.c | 6 +- trunk/arch/x86/pci/numaq_32.c | 2 +- trunk/arch/x86/pci/pcbios.c | 4 +- trunk/arch/x86/platform/mrst/mrst.c | 2 +- trunk/arch/x86/platform/olpc/olpc-xo1-pm.c | 8 +- trunk/arch/x86/platform/olpc/olpc-xo1-sci.c | 18 +- trunk/arch/x86/platform/scx200/scx200_32.c | 6 +- trunk/drivers/acpi/acpi_memhotplug.c | 18 + trunk/drivers/acpi/acpica/Makefile | 2 +- trunk/drivers/acpi/acpica/utclib.c | 749 ++++++++++++++++++ trunk/drivers/acpi/apei/erst-dbg.c | 11 +- trunk/drivers/acpi/device_pm.c | 3 +- trunk/drivers/acpi/glue.c | 9 +- trunk/drivers/acpi/power.c | 11 +- trunk/drivers/acpi/scan.c | 2 +- trunk/drivers/amba/bus.c | 4 + trunk/drivers/amba/tegra-ahb.c | 4 +- trunk/drivers/ata/ahci_platform.c | 2 +- trunk/drivers/ata/ata_piix.c | 17 +- trunk/drivers/ata/pata_arasan_cf.c | 6 +- trunk/drivers/ata/pata_at91.c | 6 +- trunk/drivers/ata/pata_bf54x.c | 6 +- trunk/drivers/ata/pata_cs5520.c | 2 +- trunk/drivers/ata/pata_ep93xx.c | 6 +- trunk/drivers/ata/pata_icside.c | 21 +- trunk/drivers/ata/pata_imx.c | 6 +- trunk/drivers/ata/pata_ixp4xx_cf.c | 2 +- trunk/drivers/ata/pata_macio.c | 33 +- trunk/drivers/ata/pata_mpc52xx.c | 10 +- trunk/drivers/ata/pata_octeon_cf.c | 2 +- trunk/drivers/ata/pata_of_platform.c | 2 +- trunk/drivers/ata/pata_palmld.c | 6 +- trunk/drivers/ata/pata_pdc2027x.c | 3 +- trunk/drivers/ata/pata_platform.c | 11 +- trunk/drivers/ata/pata_pxa.c | 6 +- trunk/drivers/ata/pata_rb532_cf.c | 6 +- trunk/drivers/ata/pata_rdc.c | 3 +- trunk/drivers/ata/pata_sch.c | 3 +- trunk/drivers/ata/pata_sil680.c | 3 +- trunk/drivers/ata/sata_highbank.c | 2 +- trunk/drivers/ata/sata_mv.c | 8 +- trunk/drivers/ata/sata_vsc.c | 7 +- trunk/drivers/atm/ambassador.c | 53 +- trunk/drivers/atm/eni.c | 18 +- trunk/drivers/atm/firestream.c | 32 +- trunk/drivers/atm/fore200e.c | 70 +- trunk/drivers/atm/he.c | 36 +- trunk/drivers/atm/horizon.c | 12 +- trunk/drivers/atm/idt77252.c | 16 +- trunk/drivers/atm/iphase.c | 11 +- trunk/drivers/atm/lanai.c | 28 +- trunk/drivers/atm/nicstar.c | 18 +- trunk/drivers/atm/solos-pci.c | 2 +- trunk/drivers/atm/zatm.c | 31 +- trunk/drivers/auxdisplay/cfag12864bfb.c | 10 +- trunk/drivers/base/power/main.c | 9 +- trunk/drivers/base/power/qos.c | 10 +- trunk/drivers/bcma/Kconfig | 3 +- trunk/drivers/bcma/bcma_private.h | 6 +- trunk/drivers/bcma/driver_chipcommon_sflash.c | 2 +- trunk/drivers/bcma/driver_gmac_cmn.c | 2 +- trunk/drivers/bcma/driver_pci.c | 4 +- trunk/drivers/bcma/driver_pci_host.c | 13 +- trunk/drivers/bcma/host_pci.c | 8 +- trunk/drivers/bcma/main.c | 2 +- trunk/drivers/block/cciss.c | 90 ++- trunk/drivers/block/cpqarray.c | 16 +- trunk/drivers/block/nvme.c | 17 +- trunk/drivers/block/ps3disk.c | 2 +- trunk/drivers/block/ps3vram.c | 4 +- trunk/drivers/block/sunvdc.c | 9 +- trunk/drivers/block/swim.c | 11 +- trunk/drivers/block/swim3.c | 3 +- trunk/drivers/block/umem.c | 3 +- trunk/drivers/block/virtio_blk.c | 13 +- trunk/drivers/block/xsysace.c | 19 +- trunk/drivers/bus/omap-ocp2scp.c | 6 +- trunk/drivers/bus/omap_l3_noc.c | 6 +- trunk/drivers/cdrom/gdrom.c | 18 +- trunk/drivers/char/agp/ali-agp.c | 3 +- trunk/drivers/char/agp/amd-k7-agp.c | 4 +- trunk/drivers/char/agp/amd64-agp.c | 15 +- trunk/drivers/char/agp/ati-agp.c | 3 +- trunk/drivers/char/agp/efficeon-agp.c | 4 +- trunk/drivers/char/agp/i460-agp.c | 6 +- trunk/drivers/char/agp/intel-agp.c | 6 +- trunk/drivers/char/agp/nvidia-agp.c | 4 +- trunk/drivers/char/agp/sgi-agp.c | 2 +- trunk/drivers/char/agp/sis-agp.c | 5 +- trunk/drivers/char/agp/sworks-agp.c | 4 +- trunk/drivers/char/agp/uninorth-agp.c | 4 +- trunk/drivers/char/agp/via-agp.c | 3 +- trunk/drivers/char/hw_random/atmel-rng.c | 2 +- trunk/drivers/char/hw_random/bcm63xx-rng.c | 4 +- trunk/drivers/char/hw_random/exynos-rng.c | 4 +- trunk/drivers/char/hw_random/n2-drv.c | 6 +- trunk/drivers/char/hw_random/octeon-rng.c | 2 +- trunk/drivers/char/hw_random/omap-rng.c | 2 +- trunk/drivers/char/hw_random/pasemi-rng.c | 2 +- trunk/drivers/char/hw_random/picoxcell-rng.c | 2 +- trunk/drivers/char/hw_random/ppc4xx-rng.c | 2 +- trunk/drivers/char/hw_random/timeriomem-rng.c | 4 +- trunk/drivers/char/hw_random/virtio-rng.c | 2 +- trunk/drivers/char/ipmi/ipmi_si_intf.c | 6 +- trunk/drivers/char/virtio_console.c | 6 +- trunk/drivers/clk/clk-twl6040.c | 6 +- trunk/drivers/clk/mvebu/clk-gating-ctrl.c | 2 +- trunk/drivers/clk/ux500/abx500-clk.c | 2 +- trunk/drivers/clocksource/Kconfig | 6 - trunk/drivers/clocksource/Makefile | 2 - trunk/drivers/clocksource/acpi_pm.c | 6 +- trunk/drivers/clocksource/bcm2835_timer.c | 6 +- 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/em_sti.c | 8 +- trunk/drivers/clocksource/nomadik-mtu.c | 44 +- trunk/drivers/clocksource/sh_cmt.c | 6 +- trunk/drivers/clocksource/sh_mtu2.c | 6 +- trunk/drivers/clocksource/sh_tmu.c | 6 +- trunk/drivers/clocksource/sunxi_timer.c | 17 +- trunk/drivers/clocksource/tcb_clksrc.c | 7 +- trunk/drivers/connector/connector.c | 4 +- trunk/drivers/cpufreq/Kconfig | 5 - trunk/drivers/cpufreq/Makefile | 7 +- trunk/drivers/cpufreq/cpufreq_stats.c | 11 +- .../{dbx500-cpufreq.c => db8500-cpufreq.c} | 101 ++- trunk/drivers/cpufreq/longhaul.c | 10 +- trunk/drivers/cpuidle/coupled.c | 2 +- trunk/drivers/cpuidle/cpuidle.c | 2 +- trunk/drivers/cpuidle/driver.c | 8 +- trunk/drivers/cpuidle/governors/menu.c | 2 +- trunk/drivers/crypto/atmel-aes.c | 6 +- trunk/drivers/crypto/atmel-sha.c | 6 +- trunk/drivers/crypto/atmel-tdes.c | 6 +- trunk/drivers/crypto/bfin_crc.c | 6 +- trunk/drivers/crypto/caam/ctrl.c | 2 +- trunk/drivers/crypto/geode-aes.c | 8 +- trunk/drivers/crypto/hifn_795x.c | 6 +- trunk/drivers/crypto/mv_cesa.c | 2 +- trunk/drivers/crypto/n2_core.c | 46 +- trunk/drivers/crypto/nx/nx.c | 7 +- trunk/drivers/crypto/omap-sham.c | 4 +- trunk/drivers/crypto/picoxcell_crypto.c | 6 +- trunk/drivers/crypto/tegra-aes.c | 6 +- trunk/drivers/devfreq/exynos4_bus.c | 6 +- trunk/drivers/dma/coh901318.c | 1 + trunk/drivers/dma/dw_dmac.c | 2 +- trunk/drivers/dma/edma.c | 2 +- trunk/drivers/dma/intel_mid_dma.c | 2 +- trunk/drivers/dma/ioat/dca.c | 9 +- trunk/drivers/dma/ioat/dma.c | 12 +- trunk/drivers/dma/ioat/dma.h | 13 +- trunk/drivers/dma/ioat/dma_v2.c | 2 +- trunk/drivers/dma/ioat/dma_v2.h | 8 +- trunk/drivers/dma/ioat/dma_v3.c | 8 +- trunk/drivers/dma/ioat/pci.c | 9 +- trunk/drivers/dma/iop-adma.c | 2 +- trunk/drivers/dma/mmp_pdma.c | 2 +- trunk/drivers/dma/mmp_tdma.c | 2 +- trunk/drivers/dma/mpc512x_dma.c | 2 +- trunk/drivers/dma/mv_xor.c | 9 +- trunk/drivers/dma/pch_dma.c | 2 +- trunk/drivers/dma/pl330.c | 2 +- trunk/drivers/dma/ppc4xx/adma.c | 4 +- trunk/drivers/dma/sa11x0-dma.c | 2 +- trunk/drivers/dma/sh/shdma.c | 2 +- trunk/drivers/dma/sirf-dma.c | 2 +- trunk/drivers/dma/tegra20-apb-dma.c | 6 +- trunk/drivers/dma/timb_dma.c | 2 +- trunk/drivers/edac/Kconfig | 8 +- trunk/drivers/edac/amd64_edac.c | 8 +- trunk/drivers/edac/amd76x_edac.c | 8 +- trunk/drivers/edac/cell_edac.c | 8 +- trunk/drivers/edac/cpc925_edac.c | 2 +- trunk/drivers/edac/e752x_edac.c | 7 +- trunk/drivers/edac/e7xxx_edac.c | 7 +- trunk/drivers/edac/edac_mc_sysfs.c | 19 +- trunk/drivers/edac/highbank_l2_edac.c | 2 +- trunk/drivers/edac/highbank_mc_edac.c | 6 +- trunk/drivers/edac/i3000_edac.c | 7 +- trunk/drivers/edac/i3200_edac.c | 7 +- trunk/drivers/edac/i5000_edac.c | 7 +- trunk/drivers/edac/i5100_edac.c | 24 +- trunk/drivers/edac/i5400_edac.c | 7 +- trunk/drivers/edac/i7300_edac.c | 9 +- trunk/drivers/edac/i7core_edac.c | 7 +- trunk/drivers/edac/i82443bxgx_edac.c | 8 +- trunk/drivers/edac/i82860_edac.c | 8 +- trunk/drivers/edac/i82875p_edac.c | 8 +- trunk/drivers/edac/i82975x_edac.c | 8 +- trunk/drivers/edac/mpc85xx_edac.c | 8 +- trunk/drivers/edac/mv64x60_edac.c | 10 +- trunk/drivers/edac/octeon_edac-l2c.c | 2 +- trunk/drivers/edac/octeon_edac-lmc.c | 2 +- trunk/drivers/edac/octeon_edac-pc.c | 2 +- trunk/drivers/edac/octeon_edac-pci.c | 2 +- trunk/drivers/edac/pasemi_edac.c | 8 +- trunk/drivers/edac/ppc4xx_edac.c | 27 +- trunk/drivers/edac/r82600_edac.c | 8 +- trunk/drivers/edac/sb_edac.c | 7 +- trunk/drivers/edac/tile_edac.c | 8 +- trunk/drivers/edac/x38_edac.c | 7 +- trunk/drivers/firmware/dcdbas.c | 6 +- trunk/drivers/gpio/gpio-da9055.c | 8 +- trunk/drivers/gpio/gpio-ts5500.c | 6 +- trunk/drivers/gpio/gpio-viperboard.c | 6 +- trunk/drivers/gpu/drm/ast/ast_drv.c | 3 +- trunk/drivers/gpu/drm/cirrus/cirrus_drv.c | 4 +- trunk/drivers/gpu/drm/exynos/exynos_ddc.c | 2 +- trunk/drivers/gpu/drm/exynos/exynos_drm_buf.c | 79 +- trunk/drivers/gpu/drm/exynos/exynos_drm_buf.h | 22 +- .../gpu/drm/exynos/exynos_drm_connector.c | 22 +- .../gpu/drm/exynos/exynos_drm_connector.h | 22 +- .../drivers/gpu/drm/exynos/exynos_drm_core.c | 22 +- .../drivers/gpu/drm/exynos/exynos_drm_crtc.c | 52 +- .../drivers/gpu/drm/exynos/exynos_drm_crtc.h | 23 +- .../gpu/drm/exynos/exynos_drm_dmabuf.c | 29 +- .../gpu/drm/exynos/exynos_drm_dmabuf.h | 22 +- trunk/drivers/gpu/drm/exynos/exynos_drm_drv.c | 24 +- trunk/drivers/gpu/drm/exynos/exynos_drm_drv.h | 22 +- .../gpu/drm/exynos/exynos_drm_encoder.c | 22 +- .../gpu/drm/exynos/exynos_drm_encoder.h | 22 +- trunk/drivers/gpu/drm/exynos/exynos_drm_fb.c | 22 +- trunk/drivers/gpu/drm/exynos/exynos_drm_fb.h | 22 +- .../drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 44 +- .../drivers/gpu/drm/exynos/exynos_drm_fbdev.h | 22 +- .../drivers/gpu/drm/exynos/exynos_drm_fimc.c | 130 ++- .../drivers/gpu/drm/exynos/exynos_drm_fimc.h | 22 +- .../drivers/gpu/drm/exynos/exynos_drm_fimd.c | 38 +- trunk/drivers/gpu/drm/exynos/exynos_drm_g2d.c | 6 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gem.c | 22 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gem.h | 22 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.c | 62 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.h | 22 +- .../drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 6 +- .../drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 22 +- .../drivers/gpu/drm/exynos/exynos_drm_iommu.c | 22 +- .../drivers/gpu/drm/exynos/exynos_drm_iommu.h | 22 +- trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.c | 28 +- trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.h | 26 +- .../gpu/drm/exynos/exynos_drm_rotator.c | 34 +- .../gpu/drm/exynos/exynos_drm_rotator.h | 22 +- .../drivers/gpu/drm/exynos/exynos_drm_vidi.c | 36 +- .../drivers/gpu/drm/exynos/exynos_drm_vidi.h | 22 +- trunk/drivers/gpu/drm/exynos/exynos_hdmi.c | 8 +- trunk/drivers/gpu/drm/exynos/exynos_hdmi.h | 22 +- trunk/drivers/gpu/drm/exynos/exynos_hdmiphy.c | 2 +- trunk/drivers/gpu/drm/exynos/exynos_mixer.c | 45 +- .../gpu/drm/gma500/tc35876x-dsi-lvds.c | 4 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 3 +- trunk/drivers/gpu/drm/i915/i915_gem_dmabuf.c | 5 - trunk/drivers/gpu/drm/mgag200/mgag200_drv.c | 3 +- trunk/drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_drm.c | 4 +- trunk/drivers/gpu/drm/nouveau/nouveau_pm.c | 4 +- trunk/drivers/gpu/drm/nouveau/nouveau_prime.c | 1 - trunk/drivers/gpu/drm/radeon/evergreen.c | 86 +- trunk/drivers/gpu/drm/radeon/evergreend.h | 14 +- trunk/drivers/gpu/drm/radeon/ni.c | 106 +-- trunk/drivers/gpu/drm/radeon/nid.h | 3 +- trunk/drivers/gpu/drm/radeon/r600.c | 99 +-- trunk/drivers/gpu/drm/radeon/r600_cs.c | 31 +- trunk/drivers/gpu/drm/radeon/radeon.h | 5 - trunk/drivers/gpu/drm/radeon/radeon_asic.c | 4 +- trunk/drivers/gpu/drm/radeon/radeon_asic.h | 4 - trunk/drivers/gpu/drm/radeon/radeon_combios.c | 51 -- .../gpu/drm/radeon/radeon_connectors.c | 10 +- trunk/drivers/gpu/drm/radeon/radeon_device.c | 28 - trunk/drivers/gpu/drm/radeon/radeon_display.c | 13 +- trunk/drivers/gpu/drm/radeon/radeon_drv.c | 4 +- trunk/drivers/gpu/drm/radeon/radeon_i2c.c | 10 +- trunk/drivers/gpu/drm/radeon/radeon_mode.h | 5 +- trunk/drivers/gpu/drm/radeon/radeon_prime.c | 1 - trunk/drivers/gpu/drm/radeon/radeon_ring.c | 24 +- trunk/drivers/gpu/drm/radeon/rv770.c | 74 -- trunk/drivers/gpu/drm/radeon/si.c | 78 +- trunk/drivers/gpu/drm/radeon/sid.h | 18 - .../drivers/gpu/drm/shmobile/shmob_drm_drv.c | 10 +- trunk/drivers/gpu/drm/ttm/ttm_bo_util.c | 4 +- trunk/drivers/hid/i2c-hid/i2c-hid.c | 12 +- trunk/drivers/hsi/clients/hsi_char.c | 8 +- trunk/drivers/hwmon/vexpress.c | 4 +- trunk/drivers/ide/aec62xx.c | 8 +- trunk/drivers/ide/alim15x3.c | 10 +- trunk/drivers/ide/amd74xx.c | 4 +- trunk/drivers/ide/atiixp.c | 4 +- trunk/drivers/ide/cmd64x.c | 4 +- trunk/drivers/ide/cs5520.c | 4 +- trunk/drivers/ide/cs5530.c | 6 +- trunk/drivers/ide/cs5535.c | 5 +- trunk/drivers/ide/cy82c693.c | 11 +- trunk/drivers/ide/delkin_cb.c | 5 +- trunk/drivers/ide/hpt366.c | 42 +- trunk/drivers/ide/icside.c | 15 +- trunk/drivers/ide/ide-pci-generic.c | 4 +- trunk/drivers/ide/ide_platform.c | 14 +- trunk/drivers/ide/it8172.c | 5 +- trunk/drivers/ide/it8213.c | 4 +- trunk/drivers/ide/it821x.c | 10 +- trunk/drivers/ide/jmicron.c | 4 +- trunk/drivers/ide/ns87415.c | 8 +- trunk/drivers/ide/opti621.c | 4 +- trunk/drivers/ide/palm_bk3710.c | 7 +- trunk/drivers/ide/pdc202xx_new.c | 10 +- trunk/drivers/ide/pdc202xx_old.c | 8 +- trunk/drivers/ide/piix.c | 8 +- trunk/drivers/ide/pmac.c | 16 +- trunk/drivers/ide/rapide.c | 7 +- trunk/drivers/ide/rz1000.c | 6 +- trunk/drivers/ide/sc1200.c | 4 +- trunk/drivers/ide/scc_pata.c | 20 +- trunk/drivers/ide/serverworks.c | 4 +- trunk/drivers/ide/sgiioc4.c | 13 +- trunk/drivers/ide/siimage.c | 13 +- trunk/drivers/ide/sis5513.c | 10 +- trunk/drivers/ide/sl82c105.c | 4 +- trunk/drivers/ide/slc90e66.c | 5 +- trunk/drivers/ide/tc86c001.c | 12 +- trunk/drivers/ide/triflex.c | 5 +- trunk/drivers/ide/trm290.c | 6 +- trunk/drivers/ide/via82cxxx.c | 8 +- trunk/drivers/idle/intel_idle.c | 2 +- trunk/drivers/iio/accel/hid-sensor-accel-3d.c | 4 +- trunk/drivers/iio/adc/ad7266.c | 8 +- trunk/drivers/iio/adc/ad7298.c | 6 +- trunk/drivers/iio/adc/ad7476.c | 6 +- trunk/drivers/iio/adc/ad7791.c | 10 +- trunk/drivers/iio/adc/ad7887.c | 6 +- trunk/drivers/iio/adc/at91_adc.c | 6 +- trunk/drivers/iio/adc/lp8788_adc.c | 6 +- trunk/drivers/iio/adc/max1363.c | 10 +- trunk/drivers/iio/adc/ti_am335x_adc.c | 6 +- trunk/drivers/iio/adc/viperboard_adc.c | 6 +- trunk/drivers/iio/amplifiers/ad8366.c | 6 +- trunk/drivers/iio/dac/ad5064.c | 18 +- trunk/drivers/iio/dac/ad5360.c | 8 +- trunk/drivers/iio/dac/ad5380.c | 22 +- trunk/drivers/iio/dac/ad5421.c | 6 +- trunk/drivers/iio/dac/ad5446.c | 18 +- trunk/drivers/iio/dac/ad5449.c | 6 +- trunk/drivers/iio/dac/ad5504.c | 6 +- trunk/drivers/iio/dac/ad5624r_spi.c | 6 +- trunk/drivers/iio/dac/ad5686.c | 6 +- trunk/drivers/iio/dac/ad5755.c | 16 +- trunk/drivers/iio/dac/ad5764.c | 6 +- trunk/drivers/iio/dac/ad5791.c | 6 +- trunk/drivers/iio/dac/max517.c | 6 +- trunk/drivers/iio/dac/mcp4725.c | 8 +- trunk/drivers/iio/frequency/ad9523.c | 6 +- trunk/drivers/iio/frequency/adf4350.c | 6 +- trunk/drivers/iio/gyro/hid-sensor-gyro-3d.c | 4 +- trunk/drivers/iio/light/adjd_s311.c | 8 +- trunk/drivers/iio/light/hid-sensor-als.c | 4 +- trunk/drivers/iio/light/lm3533-als.c | 19 +- trunk/drivers/iio/light/vcnl4000.c | 8 +- .../iio/magnetometer/hid-sensor-magn-3d.c | 4 +- trunk/drivers/infiniband/hw/amso1100/c2.c | 7 +- trunk/drivers/infiniband/hw/amso1100/c2.h | 8 +- trunk/drivers/infiniband/hw/amso1100/c2_pd.c | 4 +- trunk/drivers/infiniband/hw/amso1100/c2_qp.c | 4 +- .../drivers/infiniband/hw/amso1100/c2_rnic.c | 4 +- trunk/drivers/infiniband/hw/ehca/ehca_main.c | 6 +- .../infiniband/hw/ipath/ipath_driver.c | 12 +- .../drivers/infiniband/hw/mthca/mthca_main.c | 9 +- trunk/drivers/infiniband/hw/nes/nes.c | 6 +- trunk/drivers/infiniband/hw/qib/qib_init.c | 12 +- trunk/drivers/input/keyboard/gpio_keys.c | 13 +- .../drivers/input/keyboard/gpio_keys_polled.c | 13 +- trunk/drivers/input/keyboard/tca8418_keypad.c | 2 +- trunk/drivers/input/mouse/sentelic.c | 2 +- trunk/drivers/iommu/intel-iommu.c | 4 +- trunk/drivers/iommu/omap-iommu.c | 6 +- trunk/drivers/iommu/tegra-gart.c | 4 +- trunk/drivers/iommu/tegra-smmu.c | 4 +- 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/isdn/hardware/avm/b1pci.c | 8 +- trunk/drivers/isdn/hardware/avm/c4.c | 3 +- trunk/drivers/isdn/hardware/avm/t1pci.c | 3 +- trunk/drivers/isdn/hardware/eicon/divasmain.c | 9 +- trunk/drivers/isdn/hardware/mISDN/avmfritz.c | 10 +- trunk/drivers/isdn/hardware/mISDN/hfcmulti.c | 6 +- trunk/drivers/isdn/hardware/mISDN/hfcpci.c | 6 +- .../isdn/hardware/mISDN/mISDNinfineon.c | 16 +- trunk/drivers/isdn/hardware/mISDN/netjet.c | 10 +- trunk/drivers/isdn/hardware/mISDN/speedfax.c | 14 +- trunk/drivers/isdn/hardware/mISDN/w6692.c | 6 +- trunk/drivers/isdn/hisax/amd7930_fn.c | 3 +- trunk/drivers/isdn/hisax/asuscom.c | 9 +- trunk/drivers/isdn/hisax/avm_a1.c | 3 +- trunk/drivers/isdn/hisax/avm_a1p.c | 2 +- trunk/drivers/isdn/hisax/avm_pci.c | 17 +- trunk/drivers/isdn/hisax/avma1_cs.c | 12 +- trunk/drivers/isdn/hisax/bkm_a4t.c | 16 +- trunk/drivers/isdn/hisax/bkm_a8.c | 18 +- trunk/drivers/isdn/hisax/config.c | 26 +- trunk/drivers/isdn/hisax/diva.c | 31 +- trunk/drivers/isdn/hisax/elsa.c | 31 +- trunk/drivers/isdn/hisax/elsa_cs.c | 12 +- trunk/drivers/isdn/hisax/enternow_pci.c | 14 +- trunk/drivers/isdn/hisax/gazel.c | 11 +- trunk/drivers/isdn/hisax/hfc4s8s_l1.c | 16 +- trunk/drivers/isdn/hisax/hfc_pci.c | 4 +- trunk/drivers/isdn/hisax/hfc_sx.c | 9 +- trunk/drivers/isdn/hisax/hfcscard.c | 9 +- trunk/drivers/isdn/hisax/hisax_fcpcipnp.c | 22 +- trunk/drivers/isdn/hisax/icc.c | 3 +- trunk/drivers/isdn/hisax/isac.c | 7 +- trunk/drivers/isdn/hisax/isurf.c | 5 +- trunk/drivers/isdn/hisax/ix1_micro.c | 9 +- trunk/drivers/isdn/hisax/mic.c | 3 +- trunk/drivers/isdn/hisax/niccy.c | 6 +- trunk/drivers/isdn/hisax/nj_s.c | 14 +- trunk/drivers/isdn/hisax/nj_u.c | 14 +- trunk/drivers/isdn/hisax/s0box.c | 3 +- trunk/drivers/isdn/hisax/saphir.c | 3 +- trunk/drivers/isdn/hisax/sedlbauer.c | 23 +- trunk/drivers/isdn/hisax/sedlbauer_cs.c | 12 +- trunk/drivers/isdn/hisax/sportster.c | 6 +- trunk/drivers/isdn/hisax/teleint.c | 3 +- trunk/drivers/isdn/hisax/teles0.c | 3 +- trunk/drivers/isdn/hisax/teles3.c | 9 +- trunk/drivers/isdn/hisax/teles_cs.c | 12 +- trunk/drivers/isdn/hisax/telespci.c | 5 +- trunk/drivers/isdn/hisax/w6692.c | 5 +- trunk/drivers/isdn/hysdn/hysdn_init.c | 8 +- trunk/drivers/isdn/mISDN/core.c | 4 + trunk/drivers/macintosh/macio_asic.c | 6 +- trunk/drivers/macintosh/mediabay.c | 3 +- trunk/drivers/macintosh/rack-meter.c | 12 +- .../macintosh/windfarm_ad7417_sensor.c | 18 +- .../drivers/macintosh/windfarm_fcu_controls.c | 21 +- trunk/drivers/macintosh/windfarm_pm112.c | 4 +- trunk/drivers/macintosh/windfarm_pm121.c | 4 +- trunk/drivers/macintosh/windfarm_pm72.c | 2 +- trunk/drivers/macintosh/windfarm_pm81.c | 4 +- trunk/drivers/macintosh/windfarm_pm91.c | 4 +- trunk/drivers/macintosh/windfarm_rm31.c | 2 +- trunk/drivers/media/i2c/adv7180.c | 8 +- trunk/drivers/media/i2c/adv7183.c | 2 +- trunk/drivers/media/i2c/as3645a.c | 10 +- trunk/drivers/media/i2c/m5mols/m5mols_core.c | 8 +- trunk/drivers/media/i2c/vs6624.c | 6 +- trunk/drivers/media/mmc/siano/smssdio.c | 4 +- trunk/drivers/media/pci/bt8xx/bt878.c | 11 +- trunk/drivers/media/pci/bt8xx/bttv-cards.c | 34 +- trunk/drivers/media/pci/bt8xx/bttv-driver.c | 9 +- trunk/drivers/media/pci/bt8xx/bttv-i2c.c | 6 +- trunk/drivers/media/pci/bt8xx/bttv-input.c | 4 +- trunk/drivers/media/pci/bt8xx/dvb-bt8xx.c | 7 +- trunk/drivers/media/pci/cx18/cx18-driver.c | 14 +- .../drivers/media/pci/cx23885/cx23885-core.c | 8 +- .../drivers/media/pci/cx25821/cx25821-core.c | 8 +- trunk/drivers/media/pci/cx88/cx88-alsa.c | 19 +- trunk/drivers/media/pci/cx88/cx88-mpeg.c | 8 +- trunk/drivers/media/pci/cx88/cx88-video.c | 8 +- .../media/pci/ddbridge/ddbridge-core.c | 9 +- trunk/drivers/media/pci/dm1105/dm1105.c | 20 +- trunk/drivers/media/pci/ivtv/ivtv-driver.c | 9 +- trunk/drivers/media/pci/mantis/hopper_cards.c | 9 +- trunk/drivers/media/pci/mantis/mantis_cards.c | 9 +- trunk/drivers/media/pci/mantis/mantis_dvb.c | 4 +- trunk/drivers/media/pci/mantis/mantis_i2c.c | 2 +- trunk/drivers/media/pci/mantis/mantis_pci.c | 2 +- trunk/drivers/media/pci/meye/meye.c | 7 +- trunk/drivers/media/pci/ngene/ngene-cards.c | 4 +- trunk/drivers/media/pci/ngene/ngene-core.c | 5 +- trunk/drivers/media/pci/ngene/ngene.h | 5 +- trunk/drivers/media/pci/pluto2/pluto2.c | 25 +- trunk/drivers/media/pci/pt1/pt1.c | 7 +- .../drivers/media/pci/saa7134/saa7134-core.c | 10 +- trunk/drivers/media/pci/saa7134/saa7134.h | 2 +- .../drivers/media/pci/saa7164/saa7164-core.c | 8 +- trunk/drivers/media/pci/sta2x11/sta2x11_vip.c | 8 +- trunk/drivers/media/pci/ttpci/av7110.c | 8 +- trunk/drivers/media/pci/ttpci/av7110_ir.c | 4 +- trunk/drivers/media/pci/zoran/zoran_card.c | 20 +- trunk/drivers/media/pci/zoran/zoran_driver.c | 2 +- .../media/platform/blackfin/bfin_capture.c | 6 +- trunk/drivers/media/platform/coda.c | 4 +- .../media/platform/davinci/dm355_ccdc.c | 4 +- .../media/platform/davinci/dm644x_ccdc.c | 4 +- trunk/drivers/media/platform/davinci/isif.c | 4 +- trunk/drivers/media/platform/davinci/vpbe.c | 2 +- .../media/platform/davinci/vpbe_display.c | 15 +- .../media/platform/davinci/vpfe_capture.c | 6 +- trunk/drivers/media/platform/davinci/vpif.c | 6 +- trunk/drivers/media/platform/davinci/vpss.c | 6 +- .../media/platform/exynos-gsc/gsc-core.c | 4 +- trunk/drivers/media/platform/fsl-viu.c | 6 +- trunk/drivers/media/platform/omap24xxcam.c | 2 +- trunk/drivers/media/platform/omap3isp/isp.c | 6 +- .../media/platform/s3c-camif/camif-core.c | 4 +- .../media/platform/s5p-fimc/fimc-core.c | 4 +- .../media/platform/s5p-fimc/fimc-lite.c | 6 +- .../media/platform/s5p-fimc/fimc-mdevice.c | 4 +- .../media/platform/s5p-fimc/mipi-csis.c | 6 +- .../drivers/media/platform/s5p-mfc/s5p_mfc.c | 4 +- .../drivers/media/platform/s5p-tv/hdmi_drv.c | 6 +- .../media/platform/s5p-tv/hdmiphy_drv.c | 8 +- trunk/drivers/media/platform/s5p-tv/mixer.h | 2 +- .../drivers/media/platform/s5p-tv/mixer_drv.c | 18 +- .../media/platform/s5p-tv/mixer_video.c | 4 +- trunk/drivers/media/platform/s5p-tv/sdo_drv.c | 6 +- .../media/platform/s5p-tv/sii9234_drv.c | 8 +- trunk/drivers/media/platform/sh_vou.c | 6 +- .../media/platform/soc_camera/atmel-isi.c | 6 +- .../media/platform/soc_camera/mx2_camera.c | 8 +- .../media/platform/soc_camera/mx3_camera.c | 6 +- .../media/platform/soc_camera/pxa_camera.c | 6 +- .../soc_camera/sh_mobile_ceu_camera.c | 6 +- .../platform/soc_camera/sh_mobile_csi2.c | 6 +- .../media/platform/soc_camera/soc_camera.c | 6 +- trunk/drivers/media/platform/timblogiw.c | 12 +- trunk/drivers/media/platform/via-camera.c | 6 +- trunk/drivers/media/radio/radio-maxiradio.c | 7 +- trunk/drivers/media/radio/radio-sf16fmi.c | 2 +- trunk/drivers/media/radio/radio-sf16fmr2.c | 19 +- trunk/drivers/media/radio/radio-tea5764.c | 8 +- trunk/drivers/media/radio/radio-timb.c | 6 +- trunk/drivers/media/radio/radio-wl1273.c | 4 +- trunk/drivers/media/radio/saa7706h.c | 8 +- .../media/radio/si470x/radio-si470x-i2c.c | 8 +- trunk/drivers/media/radio/tef6862.c | 8 +- trunk/drivers/media/rc/ene_ir.c | 2 +- trunk/drivers/media/rc/fintek-cir.c | 4 +- trunk/drivers/media/rc/gpio-ir-recv.c | 6 +- trunk/drivers/media/rc/iguanair.c | 8 +- trunk/drivers/media/rc/imon.c | 8 +- trunk/drivers/media/rc/ir-rx51.c | 2 +- trunk/drivers/media/rc/ite-cir.c | 4 +- trunk/drivers/media/rc/mceusb.c | 8 +- trunk/drivers/media/rc/nuvoton-cir.c | 4 +- trunk/drivers/media/rc/redrat3.c | 8 +- trunk/drivers/media/rc/streamzap.c | 4 +- trunk/drivers/media/rc/ttusbir.c | 8 +- trunk/drivers/media/rc/winbond-cir.c | 6 +- trunk/drivers/media/usb/gspca/spca506.c | 3 +- trunk/drivers/media/usb/siano/smsusb.c | 2 +- .../media/usb/usbvision/usbvision-video.c | 10 +- trunk/drivers/memory/tegra20-mc.c | 4 +- trunk/drivers/memory/tegra30-mc.c | 4 +- trunk/drivers/message/fusion/mptfc.c | 7 +- trunk/drivers/message/fusion/mptsas.c | 4 +- trunk/drivers/message/fusion/mptspi.c | 2 +- trunk/drivers/message/i2o/pci.c | 11 +- trunk/drivers/mfd/db8500-prcmu.c | 6 +- trunk/drivers/mfd/max8997.c | 2 +- trunk/drivers/mfd/retu-mfd.c | 5 +- trunk/drivers/mfd/rtsx_pcr.c | 8 +- trunk/drivers/mfd/sta2x11-mfd.c | 8 +- trunk/drivers/mfd/stmpe.c | 15 +- trunk/drivers/mfd/ti_am335x_tscadc.c | 6 +- trunk/drivers/mfd/tps80031.c | 11 +- trunk/drivers/mfd/twl6040.c | 8 +- trunk/drivers/mfd/vexpress-sysreg.c | 2 +- trunk/drivers/mmc/host/dw_mmc-pci.c | 2 +- trunk/drivers/mmc/host/dw_mmc-pltfm.c | 2 +- trunk/drivers/mmc/host/sdhci-acpi.c | 6 +- trunk/drivers/mmc/host/wmt-sdmmc.c | 4 +- trunk/drivers/mtd/devices/mtd_dataflash.c | 10 +- trunk/drivers/mtd/devices/spear_smi.c | 4 +- trunk/drivers/mtd/maps/esb2rom.c | 2 +- trunk/drivers/mtd/maps/intel_vr_nor.c | 3 +- trunk/drivers/mtd/maps/pci.c | 6 +- trunk/drivers/mtd/maps/physmap_of.c | 2 +- trunk/drivers/mtd/maps/pismo.c | 15 +- trunk/drivers/mtd/maps/scb2_flash.c | 10 +- trunk/drivers/mtd/nand/atmel_nand.c | 6 +- trunk/drivers/mtd/nand/bcm47xxnflash/main.c | 4 +- trunk/drivers/mtd/nand/fsl_upm.c | 4 +- trunk/drivers/mtd/nand/fsmc_nand.c | 4 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 7 +- trunk/drivers/mtd/nand/jz4740_nand.c | 3 +- trunk/drivers/net/ethernet/nvidia/forcedeth.c | 35 - trunk/drivers/net/usb/qmi_wwan.c | 1 - trunk/drivers/net/vxlan.c | 1 - trunk/drivers/net/wireless/ath/ath9k/Kconfig | 5 +- .../net/wireless/ath/ath9k/ar9003_hw.c | 2 +- trunk/drivers/net/wireless/ath/carl9170/fw.c | 6 +- .../wireless/brcm80211/brcmfmac/wl_cfg80211.c | 5 +- .../net/wireless/brcm80211/brcmsmac/debug.h | 1 - .../wireless/brcm80211/brcmsmac/phy/phy_lcn.c | 4 +- trunk/drivers/net/wireless/p54/p54usb.c | 4 - trunk/drivers/net/wireless/rtlwifi/pci.c | 6 - .../net/wireless/rtlwifi/rtl8192ce/trx.c | 11 - .../net/wireless/rtlwifi/rtl8192de/trx.c | 10 - .../net/wireless/rtlwifi/rtl8192se/trx.c | 13 +- .../net/wireless/rtlwifi/rtl8723ae/trx.c | 10 - trunk/drivers/net/wireless/rtlwifi/usb.c | 8 +- trunk/drivers/net/xen-netfront.c | 27 +- trunk/drivers/nfc/pn544/i2c.c | 8 +- trunk/drivers/parisc/dino.c | 2 +- trunk/drivers/parisc/lba_pci.c | 2 +- trunk/drivers/parport/parport_gsc.c | 23 +- trunk/drivers/parport/parport_pc.c | 55 +- trunk/drivers/parport/parport_serial.c | 21 +- trunk/drivers/parport/parport_sunbpp.c | 6 +- trunk/drivers/pinctrl/core.c | 2 +- .../pinctrl/mvebu/pinctrl-armada-370.c | 8 +- .../drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 8 +- trunk/drivers/pinctrl/mvebu/pinctrl-dove.c | 15 +- .../drivers/pinctrl/mvebu/pinctrl-kirkwood.c | 8 +- trunk/drivers/pinctrl/mvebu/pinctrl-mvebu.c | 11 +- trunk/drivers/pinctrl/pinctrl-at91.c | 39 +- trunk/drivers/pinctrl/pinctrl-bcm2835.c | 2 +- trunk/drivers/pinctrl/pinctrl-exynos5440.c | 2 +- trunk/drivers/pinctrl/pinctrl-imx.c | 19 +- trunk/drivers/pinctrl/pinctrl-imx23.c | 2 +- trunk/drivers/pinctrl/pinctrl-imx28.c | 2 +- trunk/drivers/pinctrl/pinctrl-imx35.c | 2 +- trunk/drivers/pinctrl/pinctrl-imx51.c | 2 +- trunk/drivers/pinctrl/pinctrl-imx53.c | 4 +- trunk/drivers/pinctrl/pinctrl-imx6q.c | 2 +- trunk/drivers/pinctrl/pinctrl-mmp2.c | 2 +- trunk/drivers/pinctrl/pinctrl-mxs.c | 14 +- .../drivers/pinctrl/pinctrl-nomadik-db8500.c | 3 +- .../drivers/pinctrl/pinctrl-nomadik-db8540.c | 3 +- .../drivers/pinctrl/pinctrl-nomadik-stn8815.c | 3 +- trunk/drivers/pinctrl/pinctrl-nomadik.c | 15 +- trunk/drivers/pinctrl/pinctrl-pxa168.c | 2 +- trunk/drivers/pinctrl/pinctrl-pxa910.c | 2 +- trunk/drivers/pinctrl/pinctrl-samsung.c | 26 +- trunk/drivers/pinctrl/pinctrl-single.c | 9 +- trunk/drivers/pinctrl/pinctrl-sirf.c | 52 +- trunk/drivers/pinctrl/pinctrl-tegra.c | 2 +- trunk/drivers/pinctrl/pinctrl-tegra20.c | 2 +- trunk/drivers/pinctrl/pinctrl-tegra30.c | 2 +- trunk/drivers/pinctrl/pinctrl-u300.c | 2 +- trunk/drivers/pinctrl/pinctrl-xway.c | 2 +- trunk/drivers/pinctrl/spear/pinctrl-plgpio.c | 5 +- trunk/drivers/pinctrl/spear/pinctrl-spear.c | 11 +- trunk/drivers/pinctrl/spear/pinctrl-spear.h | 11 +- .../drivers/pinctrl/spear/pinctrl-spear1310.c | 2 +- .../drivers/pinctrl/spear/pinctrl-spear1340.c | 2 +- .../drivers/pinctrl/spear/pinctrl-spear300.c | 2 +- .../drivers/pinctrl/spear/pinctrl-spear310.c | 2 +- .../drivers/pinctrl/spear/pinctrl-spear320.c | 2 +- trunk/drivers/platform/x86/acer-wmi.c | 8 +- trunk/drivers/platform/x86/acerhdf.c | 2 +- trunk/drivers/platform/x86/amilo-rfkill.c | 4 +- trunk/drivers/platform/x86/apple-gmux.c | 7 +- trunk/drivers/platform/x86/asus-laptop.c | 6 +- trunk/drivers/platform/x86/compal-laptop.c | 10 +- trunk/drivers/platform/x86/dell-laptop.c | 4 +- trunk/drivers/platform/x86/eeepc-laptop.c | 6 +- trunk/drivers/platform/x86/fujitsu-tablet.c | 17 +- trunk/drivers/platform/x86/hp-wmi.c | 8 +- trunk/drivers/platform/x86/ideapad-laptop.c | 13 +- .../drivers/platform/x86/intel_mid_powerbtn.c | 6 +- .../drivers/platform/x86/intel_mid_thermal.c | 2 +- trunk/drivers/platform/x86/intel_oaktrail.c | 6 +- trunk/drivers/platform/x86/intel_pmic_gpio.c | 2 +- trunk/drivers/platform/x86/samsung-q10.c | 6 +- trunk/drivers/platform/x86/tc1100-wmi.c | 4 +- trunk/drivers/platform/x86/thinkpad_acpi.c | 4 +- trunk/drivers/platform/x86/toshiba_acpi.c | 13 +- trunk/drivers/platform/x86/xo1-rfkill.c | 6 +- trunk/drivers/pnp/interface.c | 105 +-- trunk/drivers/pnp/manager.c | 25 +- trunk/drivers/power/ab8500_bmdata.c | 6 +- trunk/drivers/power/olpc_battery.c | 2 +- trunk/drivers/power/reset/gpio-poweroff.c | 39 +- trunk/drivers/power/rx51_battery.c | 6 +- trunk/drivers/pps/clients/pps-gpio.c | 2 +- trunk/drivers/ps3/ps3-lpm.c | 2 +- trunk/drivers/ps3/ps3-sys-manager.c | 2 +- trunk/drivers/ps3/ps3av.c | 2 +- trunk/drivers/regulator/anatop-regulator.c | 2 +- trunk/drivers/regulator/da9055-regulator.c | 12 +- trunk/drivers/regulator/fixed.c | 2 +- trunk/drivers/regulator/gpio-regulator.c | 2 +- trunk/drivers/regulator/max8973-regulator.c | 12 +- trunk/drivers/regulator/palmas-regulator.c | 2 +- trunk/drivers/regulator/twl-regulator.c | 2 +- trunk/drivers/remoteproc/omap_remoteproc.c | 6 +- trunk/drivers/rpmsg/virtio_rpmsg_bus.c | 4 +- trunk/drivers/rtc/Kconfig | 8 - trunk/drivers/rtc/Makefile | 1 - trunk/drivers/rtc/rtc-88pm80x.c | 6 +- trunk/drivers/rtc/rtc-88pm860x.c | 10 +- trunk/drivers/rtc/rtc-ab8500.c | 6 +- trunk/drivers/rtc/rtc-at91sam9.c | 6 +- trunk/drivers/rtc/rtc-au1xxx.c | 6 +- trunk/drivers/rtc/rtc-bfin.c | 6 +- trunk/drivers/rtc/rtc-bq32k.c | 4 +- trunk/drivers/rtc/rtc-bq4802.c | 6 +- trunk/drivers/rtc/rtc-cmos.c | 9 +- trunk/drivers/rtc/rtc-da9052.c | 6 +- trunk/drivers/rtc/rtc-davinci.c | 4 +- trunk/drivers/rtc/rtc-dm355evm.c | 6 +- trunk/drivers/rtc/rtc-ds1286.c | 6 +- trunk/drivers/rtc/rtc-ds1302.c | 4 +- trunk/drivers/rtc/rtc-ds1305.c | 6 +- trunk/drivers/rtc/rtc-ds1307.c | 8 +- trunk/drivers/rtc/rtc-ds1374.c | 4 +- trunk/drivers/rtc/rtc-ds1390.c | 6 +- trunk/drivers/rtc/rtc-ds1511.c | 8 +- trunk/drivers/rtc/rtc-ds1553.c | 6 +- trunk/drivers/rtc/rtc-ds1742.c | 6 +- trunk/drivers/rtc/rtc-ds3232.c | 8 +- trunk/drivers/rtc/rtc-ds3234.c | 6 +- trunk/drivers/rtc/rtc-ep93xx.c | 6 +- trunk/drivers/rtc/rtc-fm3130.c | 8 +- trunk/drivers/rtc/rtc-imxdi.c | 4 +- trunk/drivers/rtc/rtc-jz4740.c | 6 +- trunk/drivers/rtc/rtc-lpc32xx.c | 6 +- trunk/drivers/rtc/rtc-ls1x.c | 6 +- trunk/drivers/rtc/rtc-m41t93.c | 6 +- trunk/drivers/rtc/rtc-m41t94.c | 6 +- trunk/drivers/rtc/rtc-m48t35.c | 6 +- trunk/drivers/rtc/rtc-m48t59.c | 6 +- trunk/drivers/rtc/rtc-m48t86.c | 6 +- trunk/drivers/rtc/rtc-max6902.c | 6 +- trunk/drivers/rtc/rtc-max8907.c | 6 +- trunk/drivers/rtc/rtc-max8925.c | 6 +- trunk/drivers/rtc/rtc-max8998.c | 6 +- trunk/drivers/rtc/rtc-mpc5121.c | 8 +- trunk/drivers/rtc/rtc-mrst.c | 12 +- trunk/drivers/rtc/rtc-mv.c | 2 +- trunk/drivers/rtc/rtc-mxc.c | 6 +- trunk/drivers/rtc/rtc-nuc900.c | 6 +- trunk/drivers/rtc/rtc-pcap.c | 6 +- trunk/drivers/rtc/rtc-pcf2123.c | 6 +- trunk/drivers/rtc/rtc-pcf50633.c | 6 +- trunk/drivers/rtc/rtc-pcf8563.c | 2 +- trunk/drivers/rtc/rtc-pcf8583.c | 4 +- trunk/drivers/rtc/rtc-pm8xxx.c | 6 +- trunk/drivers/rtc/rtc-puv3.c | 6 +- trunk/drivers/rtc/rtc-r9701.c | 6 +- trunk/drivers/rtc/rtc-rc5t583.c | 6 +- trunk/drivers/rtc/rtc-rs5c313.c | 4 +- trunk/drivers/rtc/rtc-rs5c348.c | 6 +- trunk/drivers/rtc/rtc-rv3029c2.c | 8 +- trunk/drivers/rtc/rtc-rx8025.c | 8 +- trunk/drivers/rtc/rtc-rx8581.c | 8 +- trunk/drivers/rtc/rtc-s3c.c | 6 +- trunk/drivers/rtc/rtc-snvs.c | 8 +- trunk/drivers/rtc/rtc-spear.c | 6 +- trunk/drivers/rtc/rtc-stk17ta8.c | 6 +- trunk/drivers/rtc/rtc-tegra.c | 13 +- trunk/drivers/rtc/rtc-test.c | 4 +- trunk/drivers/rtc/rtc-tile.c | 6 +- trunk/drivers/rtc/rtc-tps6586x.c | 356 --------- trunk/drivers/rtc/rtc-tps65910.c | 6 +- trunk/drivers/rtc/rtc-twl.c | 6 +- trunk/drivers/rtc/rtc-vr41xx.c | 6 +- trunk/drivers/rtc/rtc-vt8500.c | 17 +- trunk/drivers/rtc/rtc-wm831x.c | 4 +- trunk/drivers/rtc/rtc-wm8350.c | 4 +- trunk/drivers/sbus/char/bbc_i2c.c | 6 +- trunk/drivers/sbus/char/display7seg.c | 6 +- trunk/drivers/sbus/char/envctrl.c | 6 +- trunk/drivers/sbus/char/flash.c | 6 +- trunk/drivers/sbus/char/uctrl.c | 6 +- trunk/drivers/scsi/3w-9xxx.c | 4 +- trunk/drivers/scsi/3w-sas.c | 4 +- trunk/drivers/scsi/3w-xxxx.c | 4 +- trunk/drivers/scsi/BusLogic.c | 2 +- trunk/drivers/scsi/NCR5380.c | 2 +- trunk/drivers/scsi/NCR_D700.c | 12 +- trunk/drivers/scsi/NCR_Q720.c | 2 +- trunk/drivers/scsi/a100u2w.c | 8 +- trunk/drivers/scsi/a2091.c | 9 +- trunk/drivers/scsi/aacraid/linit.c | 15 +- trunk/drivers/scsi/advansys.c | 152 ++-- trunk/drivers/scsi/aha152x.c | 2 +- trunk/drivers/scsi/aha1740.c | 4 +- trunk/drivers/scsi/aic94xx/aic94xx_init.c | 23 +- trunk/drivers/scsi/arm/acornscsi.c | 7 +- trunk/drivers/scsi/arm/arxescsi.c | 7 +- trunk/drivers/scsi/arm/cumana_1.c | 8 +- trunk/drivers/scsi/arm/cumana_2.c | 8 +- trunk/drivers/scsi/arm/eesox.c | 7 +- trunk/drivers/scsi/arm/oak.c | 7 +- trunk/drivers/scsi/arm/powertec.c | 8 +- trunk/drivers/scsi/atp870u.c | 2 +- trunk/drivers/scsi/be2iscsi/be_main.c | 4 +- trunk/drivers/scsi/bfa/bfad.c | 2 +- trunk/drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 2 +- trunk/drivers/scsi/bnx2i/bnx2i_init.c | 2 +- trunk/drivers/scsi/bvme6000_scsi.c | 6 +- trunk/drivers/scsi/csiostor/csio_init.c | 17 +- trunk/drivers/scsi/dc395x.c | 51 +- trunk/drivers/scsi/dmx3191d.c | 8 +- trunk/drivers/scsi/fdomain.c | 2 +- trunk/drivers/scsi/fnic/fnic_main.c | 7 +- trunk/drivers/scsi/g_NCR5380.c | 2 +- trunk/drivers/scsi/gdth.c | 17 +- trunk/drivers/scsi/gvp11.c | 11 +- trunk/drivers/scsi/hpsa.c | 92 ++- trunk/drivers/scsi/hptiop.c | 3 +- trunk/drivers/scsi/ibmvscsi/ibmvfc.c | 2 +- trunk/drivers/scsi/ibmvscsi/ibmvscsi.c | 2 +- trunk/drivers/scsi/ibmvscsi/ibmvstgt.c | 2 +- trunk/drivers/scsi/initio.c | 2 +- trunk/drivers/scsi/ipr.c | 32 +- trunk/drivers/scsi/ips.c | 10 +- trunk/drivers/scsi/isci/init.c | 8 +- trunk/drivers/scsi/jazz_esp.c | 6 +- trunk/drivers/scsi/lasi700.c | 2 +- trunk/drivers/scsi/lpfc/lpfc_init.c | 14 +- trunk/drivers/scsi/mac_esp.c | 6 +- trunk/drivers/scsi/megaraid.c | 6 +- trunk/drivers/scsi/megaraid/megaraid_mbox.c | 6 +- .../drivers/scsi/megaraid/megaraid_sas_base.c | 8 +- trunk/drivers/scsi/mpt2sas/mpt2sas_scsih.c | 4 +- trunk/drivers/scsi/mpt3sas/mpt3sas_scsih.c | 5 +- trunk/drivers/scsi/mvme16x_scsi.c | 8 +- trunk/drivers/scsi/mvsas/mv_64xx.c | 8 +- trunk/drivers/scsi/mvsas/mv_94xx.c | 7 +- trunk/drivers/scsi/mvsas/mv_chips.h | 2 +- trunk/drivers/scsi/mvsas/mv_init.c | 19 +- trunk/drivers/scsi/mvsas/mv_sas.c | 4 +- trunk/drivers/scsi/mvsas/mv_sas.h | 4 +- trunk/drivers/scsi/mvumi.c | 5 +- trunk/drivers/scsi/nsp32.c | 16 +- trunk/drivers/scsi/pm8001/pm8001_hwi.c | 36 +- trunk/drivers/scsi/pm8001/pm8001_init.c | 28 +- trunk/drivers/scsi/pmcraid.c | 31 +- trunk/drivers/scsi/ps3rom.c | 2 +- trunk/drivers/scsi/qla1280.c | 8 +- trunk/drivers/scsi/qla2xxx/qla_os.c | 2 +- trunk/drivers/scsi/qla4xxx/ql4_os.c | 6 +- trunk/drivers/scsi/qlogicfas.c | 2 +- trunk/drivers/scsi/qlogicpti.c | 20 +- trunk/drivers/scsi/sgiwd93.c | 4 +- trunk/drivers/scsi/sim710.c | 11 +- trunk/drivers/scsi/sni_53c710.c | 4 +- trunk/drivers/scsi/stex.c | 5 +- trunk/drivers/scsi/sun3x_esp.c | 6 +- trunk/drivers/scsi/sun_esp.c | 30 +- trunk/drivers/scsi/sym53c416.c | 2 +- trunk/drivers/scsi/sym53c8xx_2/sym_glue.c | 23 +- trunk/drivers/scsi/tmscsim.c | 23 +- trunk/drivers/scsi/ufs/ufshcd.c | 5 +- trunk/drivers/scsi/virtio_scsi.c | 6 +- trunk/drivers/scsi/vmw_pvscsi.c | 9 +- trunk/drivers/scsi/zalon.c | 2 +- trunk/drivers/scsi/zorro7xx.c | 12 +- trunk/drivers/sh/pfc/gpio.c | 6 +- trunk/drivers/sh/pfc/pinctrl.c | 20 +- trunk/drivers/sn/ioc3.c | 14 +- trunk/drivers/ssb/Kconfig | 3 +- trunk/drivers/ssb/driver_gige.c | 14 +- trunk/drivers/ssb/driver_pcicore.c | 10 +- trunk/drivers/ssb/main.c | 27 +- trunk/drivers/ssb/pcihost_wrapper.c | 6 +- .../drivers/staging/omapdrm/omap_gem_dmabuf.c | 5 - trunk/drivers/thermal/exynos_thermal.c | 6 +- trunk/drivers/usb/host/ehci-orion.c | 2 +- trunk/drivers/video/acornfb.c | 22 +- trunk/drivers/video/arcfb.c | 10 +- trunk/drivers/video/arkfb.c | 10 +- trunk/drivers/video/asiliantfb.c | 18 +- trunk/drivers/video/aty/aty128fb.c | 57 +- trunk/drivers/video/aty/atyfb_base.c | 84 +- trunk/drivers/video/aty/mach64_ct.c | 6 +- trunk/drivers/video/aty/mach64_cursor.c | 2 +- trunk/drivers/video/aty/radeon_base.c | 20 +- trunk/drivers/video/aty/radeon_monitor.c | 24 +- trunk/drivers/video/au1100fb.c | 6 +- trunk/drivers/video/au1200fb.c | 6 +- trunk/drivers/video/auo_k1900fb.c | 6 +- trunk/drivers/video/auo_k1901fb.c | 6 +- trunk/drivers/video/auo_k190x.c | 6 +- trunk/drivers/video/bf537-lq035.c | 18 +- trunk/drivers/video/bf54x-lq043fb.c | 6 +- trunk/drivers/video/bfin-lq035q1-fb.c | 14 +- trunk/drivers/video/bfin-t350mcqb-fb.c | 6 +- trunk/drivers/video/bfin_adv7393fb.c | 10 +- trunk/drivers/video/broadsheetfb.c | 16 +- trunk/drivers/video/bw2.c | 23 +- trunk/drivers/video/carminefb.c | 16 +- trunk/drivers/video/cg14.c | 12 +- trunk/drivers/video/cg3.c | 26 +- trunk/drivers/video/cg6.c | 12 +- trunk/drivers/video/chipsfb.c | 13 +- trunk/drivers/video/cirrusfb.c | 44 +- trunk/drivers/video/clps711xfb.c | 8 +- trunk/drivers/video/cobalt_lcdfb.c | 8 +- trunk/drivers/video/console/sticore.c | 83 +- trunk/drivers/video/cyber2000fb.c | 23 +- trunk/drivers/video/da8xx-fb.c | 10 +- trunk/drivers/video/dnfb.c | 6 +- trunk/drivers/video/efifb.c | 4 +- trunk/drivers/video/ep93xx-fb.c | 8 +- trunk/drivers/video/exynos/exynos_dp_core.c | 6 +- trunk/drivers/video/exynos/exynos_mipi_dsi.c | 4 +- trunk/drivers/video/ffb.c | 6 +- trunk/drivers/video/fm2fb.c | 14 +- trunk/drivers/video/fsl-diu-fb.c | 6 +- trunk/drivers/video/gbefb.c | 24 +- trunk/drivers/video/geode/gx1fb_core.c | 14 +- trunk/drivers/video/geode/gxfb_core.c | 20 +- trunk/drivers/video/geode/lxfb_core.c | 20 +- trunk/drivers/video/grvga.c | 12 +- trunk/drivers/video/gxt4500.c | 13 +- trunk/drivers/video/hecubafb.c | 10 +- trunk/drivers/video/hgafb.c | 12 +- trunk/drivers/video/hitfb.c | 10 +- trunk/drivers/video/hpfb.c | 9 +- trunk/drivers/video/i740fb.c | 15 +- trunk/drivers/video/i810/i810_main.c | 72 +- trunk/drivers/video/i810/i810_main.h | 2 +- trunk/drivers/video/igafb.c | 2 +- trunk/drivers/video/imsttfb.c | 17 +- trunk/drivers/video/imxfb.c | 4 +- trunk/drivers/video/intelfb/intelfbdrv.c | 29 +- trunk/drivers/video/jz4740_fb.c | 8 +- trunk/drivers/video/kyro/fbdev.c | 21 +- trunk/drivers/video/leo.c | 6 +- trunk/drivers/video/mb862xx/mb862xxfbdrv.c | 20 +- trunk/drivers/video/mbx/mbxdebugfs.c | 4 +- trunk/drivers/video/mbx/mbxfb.c | 18 +- trunk/drivers/video/metronomefb.c | 22 +- trunk/drivers/video/msm/mddi.c | 9 +- trunk/drivers/video/mxsfb.c | 15 +- trunk/drivers/video/neofb.c | 26 +- trunk/drivers/video/nuc900fb.c | 4 +- trunk/drivers/video/nvidia/nvidia.c | 49 +- trunk/drivers/video/omap/lcd_mipid.c | 2 +- .../video/omap2/displays/panel-acx565akm.c | 2 +- .../omap2/displays/panel-lgphilips-lb035q02.c | 6 +- .../drivers/video/omap2/displays/panel-n8x0.c | 2 +- .../omap2/displays/panel-nec-nl8048hl11-01b.c | 2 +- .../omap2/displays/panel-tpo-td043mtea1.c | 4 +- trunk/drivers/video/p9100.c | 6 +- trunk/drivers/video/platinumfb.c | 11 +- trunk/drivers/video/pm2fb.c | 17 +- trunk/drivers/video/pm3fb.c | 17 +- trunk/drivers/video/pmag-ba-fb.c | 6 +- trunk/drivers/video/pmagb-b-fb.c | 12 +- trunk/drivers/video/ps3fb.c | 4 +- trunk/drivers/video/pvr2fb.c | 28 +- trunk/drivers/video/pxa168fb.c | 8 +- trunk/drivers/video/pxa3xx-gcu.c | 8 +- trunk/drivers/video/pxafb.c | 33 +- trunk/drivers/video/q40fb.c | 6 +- trunk/drivers/video/riva/fbdev.c | 45 +- trunk/drivers/video/riva/rivafb-i2c.c | 9 +- trunk/drivers/video/s1d13xxxfb.c | 10 +- trunk/drivers/video/s3c-fb.c | 15 +- trunk/drivers/video/s3c2410fb.c | 16 +- trunk/drivers/video/s3fb.c | 16 +- trunk/drivers/video/sa1100fb.c | 8 +- trunk/drivers/video/savage/savagefb_driver.c | 23 +- trunk/drivers/video/sgivwfb.c | 12 +- trunk/drivers/video/sh7760fb.c | 6 +- trunk/drivers/video/sh_mipi_dsi.c | 4 +- trunk/drivers/video/sh_mobile_lcdcfb.c | 18 +- trunk/drivers/video/sh_mobile_meram.c | 2 +- trunk/drivers/video/sis/sis_main.c | 140 ++-- trunk/drivers/video/sis/sis_main.h | 20 +- trunk/drivers/video/skeletonfb.c | 17 +- trunk/drivers/video/sm501fb.c | 16 +- trunk/drivers/video/ssd1307fb.c | 11 +- trunk/drivers/video/sstfb.c | 33 +- trunk/drivers/video/sunxvr1000.c | 10 +- trunk/drivers/video/sunxvr2500.c | 12 +- trunk/drivers/video/sunxvr500.c | 12 +- trunk/drivers/video/tcx.c | 6 +- trunk/drivers/video/tdfxfb.c | 30 +- trunk/drivers/video/tgafb.c | 45 +- trunk/drivers/video/tmiofb.c | 8 +- trunk/drivers/video/tridentfb.c | 28 +- trunk/drivers/video/uvesafb.c | 74 +- trunk/drivers/video/vermilion/vermilion.c | 7 +- trunk/drivers/video/vfb.c | 6 +- trunk/drivers/video/vga16fb.c | 10 +- trunk/drivers/video/via/dvi.c | 10 +- trunk/drivers/video/via/dvi.h | 4 +- trunk/drivers/video/via/hw.c | 16 +- trunk/drivers/video/via/hw.h | 4 +- trunk/drivers/video/via/lcd.c | 10 +- trunk/drivers/video/via/lcd.h | 6 +- trunk/drivers/video/via/via-core.c | 19 +- trunk/drivers/video/via/via-gpio.c | 2 +- trunk/drivers/video/via/viafbdev.c | 12 +- trunk/drivers/video/vt8500lcdfb.c | 6 +- trunk/drivers/video/vt8623fb.c | 8 +- trunk/drivers/video/w100fb.c | 10 +- trunk/drivers/video/wm8505fb.c | 6 +- trunk/drivers/video/wmt_ge_rops.c | 6 +- trunk/drivers/video/xen-fbfront.c | 7 +- trunk/drivers/video/xilinxfb.c | 8 +- trunk/drivers/virtio/virtio_balloon.c | 4 +- trunk/drivers/virtio/virtio_mmio.c | 6 +- trunk/drivers/virtio/virtio_pci.c | 8 +- trunk/drivers/vlynq/vlynq.c | 6 +- trunk/drivers/w1/masters/mxc_w1.c | 2 +- trunk/drivers/xen/grant-table.c | 2 +- trunk/drivers/xen/platform-pci.c | 6 +- trunk/drivers/xen/xen-pciback/pci_stub.c | 13 +- trunk/drivers/zorro/zorro-driver.c | 4 + trunk/fs/cifs/cifsfs.c | 1 + trunk/fs/cifs/cifsglob.h | 2 +- trunk/fs/cifs/file.c | 141 ++-- trunk/fs/cifs/smb1ops.c | 8 - trunk/fs/cifs/smb2ops.c | 2 - trunk/fs/cifs/transport.c | 6 +- trunk/fs/ext4/Kconfig | 2 - trunk/fs/ext4/namei.c | 3 +- trunk/fs/f2fs/data.c | 1 - trunk/fs/f2fs/dir.c | 16 +- trunk/fs/f2fs/f2fs.h | 2 +- trunk/fs/f2fs/file.c | 10 +- trunk/fs/f2fs/gc.c | 34 +- trunk/fs/f2fs/hash.c | 18 +- trunk/fs/f2fs/inode.c | 1 - trunk/fs/f2fs/namei.c | 34 +- trunk/fs/f2fs/node.c | 37 +- trunk/fs/f2fs/recovery.c | 10 +- trunk/fs/f2fs/segment.c | 46 +- trunk/fs/f2fs/segment.h | 15 +- trunk/fs/f2fs/super.c | 15 +- trunk/fs/f2fs/xattr.c | 5 +- trunk/fs/file.c | 2 +- trunk/fs/gfs2/lock_dlm.c | 1 - trunk/fs/gfs2/rgrp.c | 35 +- trunk/fs/nfs/callback_proc.c | 2 +- trunk/fs/nfs/dir.c | 16 +- trunk/fs/nfs/nfs4proc.c | 18 +- trunk/fs/nfs/pnfs.c | 2 +- trunk/fs/nfs/read.c | 10 +- trunk/fs/nfs/super.c | 2 +- trunk/fs/nfs/write.c | 10 +- trunk/fs/pstore/ram.c | 14 +- trunk/fs/pstore/ram_core.c | 9 +- trunk/fs/splice.c | 4 +- trunk/include/asm-generic/parport.h | 4 +- trunk/include/asm-generic/tlb.h | 9 - trunk/include/asm-generic/vmlinux.lds.h | 22 +- trunk/include/drm/exynos_drm.h | 22 +- trunk/include/linux/ata_platform.h | 12 +- trunk/include/linux/bcm2835_timer.h | 2 +- .../include/linux/bcma/bcma_driver_gmac_cmn.h | 2 +- trunk/include/linux/bcma/bcma_driver_pci.h | 2 +- trunk/include/linux/clocksource.h | 9 - trunk/include/linux/cred.h | 1 + trunk/include/linux/dw_apb_timer.h | 2 +- trunk/include/linux/ipc_namespace.h | 1 - trunk/include/linux/irqchip.h | 16 - trunk/include/linux/mmzone.h | 8 + trunk/include/linux/msg.h | 6 +- trunk/include/linux/namei.h | 1 - .../linux/platform_data/dma-coh901318.h | 72 ++ trunk/include/linux/pstore_ram.h | 5 +- trunk/include/linux/sunxi_timer.h | 2 +- trunk/include/linux/time.h | 4 +- trunk/include/linux/vt8500_timer.h | 22 - trunk/include/net/netns/conntrack.h | 1 - trunk/include/net/netns/x_tables.h | 1 - trunk/include/uapi/drm/exynos_drm.h | 24 +- trunk/include/uapi/linux/msg.h | 1 - trunk/ipc/compat.c | 46 +- trunk/ipc/ipc_sysctl.c | 32 - trunk/ipc/msg.c | 123 +-- trunk/ipc/msgutil.c | 43 - trunk/ipc/util.c | 16 +- trunk/ipc/util.h | 2 - trunk/kernel/printk.c | 5 +- trunk/kernel/signal.c | 9 +- trunk/kernel/time/clockevents.c | 1 - trunk/kernel/time/timekeeping.c | 26 +- trunk/lib/Kconfig.debug | 2 +- trunk/mm/memory.c | 13 - trunk/mm/page_alloc.c | 27 + trunk/mm/page_isolation.c | 26 +- trunk/mm/vmscan.c | 4 +- trunk/net/bridge/br_multicast.c | 2 + trunk/net/bridge/br_netlink.c | 13 +- trunk/net/bridge/br_private.h | 6 - trunk/net/ipv4/devinet.c | 2 +- trunk/net/ipv4/ipconfig.c | 8 +- trunk/net/ipv4/netfilter/ipt_REJECT.c | 1 - trunk/net/ipv4/netfilter/iptable_nat.c | 15 +- trunk/net/ipv6/netfilter/ip6t_NPT.c | 33 +- trunk/net/ipv6/netfilter/ip6t_REJECT.c | 1 - trunk/net/ipv6/netfilter/ip6table_nat.c | 15 +- .../netfilter/nf_conntrack_l3proto_ipv6.c | 4 +- trunk/net/ipv6/netfilter/nf_conntrack_reasm.c | 5 +- trunk/net/mac802154/wpan.c | 2 +- trunk/net/netfilter/Kconfig | 7 - trunk/net/netfilter/nf_conntrack_core.c | 2 - trunk/net/netfilter/nf_conntrack_netlink.c | 2 +- trunk/net/netfilter/nfnetlink_log.c | 16 +- trunk/net/netfilter/xt_CT.c | 58 +- trunk/net/netfilter/xt_hashlimit.c | 54 +- trunk/net/netfilter/xt_recent.c | 43 +- trunk/net/sctp/Kconfig | 2 +- trunk/net/sunrpc/clnt.c | 5 + trunk/net/sunrpc/sched.c | 27 +- trunk/samples/rpmsg/rpmsg_client_sample.c | 4 +- trunk/scripts/kernel-doc | 1 + trunk/security/integrity/ima/ima.h | 1 - trunk/security/integrity/ima/ima_main.c | 12 +- trunk/security/integrity/ima/ima_policy.c | 3 +- trunk/sound/oss/pas2_card.c | 5 - trunk/sound/pci/au88x0/au88x0_synth.c | 2 +- trunk/sound/pci/hda/hda_codec.c | 2 +- trunk/sound/pci/hda/patch_realtek.c | 30 - trunk/sound/usb/midi.c | 4 + trunk/sound/usb/quirks-table.h | 24 +- trunk/sound/usb/quirks.c | 16 +- trunk/sound/usb/usbaudio.h | 1 + trunk/tools/testing/selftests/ipc/Makefile | 25 - trunk/tools/testing/selftests/ipc/msgque.c | 246 ------ 2006 files changed, 10315 insertions(+), 9495 deletions(-) delete mode 100644 trunk/Documentation/devicetree/bindings/pinctrl/pinctrl-sirf.txt 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} (90%) 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%) create mode 100644 trunk/arch/arm/mach-s5p64x0/include/mach/tick.h create mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/tick.h delete mode 100644 trunk/arch/arm/mach-u300/dma_channels.h rename trunk/{drivers/clocksource/vt8500_timer.c => arch/arm/mach-vt8500/timer.c} (94%) create mode 100644 trunk/drivers/acpi/acpica/utclib.c delete mode 100644 trunk/drivers/clocksource/clksrc-of.c rename trunk/drivers/cpufreq/{dbx500-cpufreq.c => db8500-cpufreq.c} (62%) delete mode 100644 trunk/drivers/irqchip/irqchip.c delete mode 100644 trunk/drivers/irqchip/irqchip.h delete mode 100644 trunk/drivers/rtc/rtc-tps6586x.c delete mode 100644 trunk/include/linux/irqchip.h create mode 100644 trunk/include/linux/platform_data/dma-coh901318.h delete mode 100644 trunk/include/linux/vt8500_timer.h delete mode 100644 trunk/tools/testing/selftests/ipc/Makefile delete mode 100644 trunk/tools/testing/selftests/ipc/msgque.c diff --git a/[refs] b/[refs] index 9b11f043f571..393cb1e05fc6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7bcdd8d5e31db4f49ae52580e86723c376ee0999 +refs/heads/master: 9f575d9741ff28b6661f639d63b4f465c19889c4 diff --git a/trunk/Documentation/DocBook/media/v4l/driver.xml b/trunk/Documentation/DocBook/media/v4l/driver.xml index 7c6638bacedb..eacafe312cd2 100644 --- a/trunk/Documentation/DocBook/media/v4l/driver.xml +++ b/trunk/Documentation/DocBook/media/v4l/driver.xml @@ -116,7 +116,7 @@ my_suspend (struct pci_dev * pci_dev, return 0; /* a negative value on error, 0 on success. */ } -static void +static void __devexit my_remove (struct pci_dev * pci_dev) { my_device *my = pci_get_drvdata (pci_dev); @@ -124,7 +124,7 @@ my_remove (struct pci_dev * pci_dev) /* Describe me. */ } -static int +static int __devinit my_probe (struct pci_dev * pci_dev, const struct pci_device_id * pci_id) { @@ -157,7 +157,7 @@ my_pci_driver = { .id_table = my_pci_device_ids, .probe = my_probe, - .remove = my_remove, + .remove = __devexit_p (my_remove), /* Power management functions. */ .suspend = my_suspend, diff --git a/trunk/Documentation/PCI/pci-iov-howto.txt b/trunk/Documentation/PCI/pci-iov-howto.txt index 86551cc72e03..cfaca7e69893 100644 --- a/trunk/Documentation/PCI/pci-iov-howto.txt +++ b/trunk/Documentation/PCI/pci-iov-howto.txt @@ -76,7 +76,7 @@ To notify SR-IOV core of Virtual Function Migration: Following piece of code illustrates the usage of the SR-IOV API. -static int dev_probe(struct pci_dev *dev, const struct pci_device_id *id) +static int __devinit dev_probe(struct pci_dev *dev, const struct pci_device_id *id) { pci_enable_sriov(dev, NR_VIRTFN); @@ -85,7 +85,7 @@ static int dev_probe(struct pci_dev *dev, const struct pci_device_id *id) return 0; } -static void dev_remove(struct pci_dev *dev) +static void __devexit dev_remove(struct pci_dev *dev) { pci_disable_sriov(dev); @@ -131,7 +131,7 @@ static struct pci_driver dev_driver = { .name = "SR-IOV Physical Function driver", .id_table = dev_id_table, .probe = dev_probe, - .remove = dev_remove, + .remove = __devexit_p(dev_remove), .suspend = dev_suspend, .resume = dev_resume, .shutdown = dev_shutdown, diff --git a/trunk/Documentation/PCI/pci.txt b/trunk/Documentation/PCI/pci.txt index bccf602a87f5..aa09e5476bba 100644 --- a/trunk/Documentation/PCI/pci.txt +++ b/trunk/Documentation/PCI/pci.txt @@ -183,6 +183,12 @@ Please mark the initialization and cleanup functions where appropriate initializes. __exit Exit code. Ignored for non-modular drivers. + + __devinit Device initialization code. + Identical to __init if the kernel is not compiled + with CONFIG_HOTPLUG, normal function otherwise. + __devexit The same for __exit. + Tips on when/where to use the above attributes: o The module_init()/module_exit() functions (and all initialization functions called _only_ from these) @@ -190,6 +196,20 @@ Tips on when/where to use the above attributes: o Do not mark the struct pci_driver. + o The ID table array should be marked __devinitconst; this is done + automatically if the table is declared with DEFINE_PCI_DEVICE_TABLE(). + + o The probe() and remove() functions should be marked __devinit + and __devexit respectively. All initialization functions + exclusively called by the probe() routine, can be marked __devinit. + Ditto for remove() and __devexit. + + o If mydriver_remove() is marked with __devexit(), then all address + references to mydriver_remove must use __devexit_p(mydriver_remove) + (in the struct pci_driver declaration for example). + __devexit_p() will generate the function name _or_ NULL if the + function will be discarded. For an example, see drivers/net/tg3.c. + o Do NOT mark a function if you are not sure which mark to use. Better to not mark the function than mark the function wrong. diff --git a/trunk/Documentation/acpi/enumeration.txt b/trunk/Documentation/acpi/enumeration.txt index 54469bc81b1c..4f27785ca0c8 100644 --- a/trunk/Documentation/acpi/enumeration.txt +++ b/trunk/Documentation/acpi/enumeration.txt @@ -185,7 +185,7 @@ input driver: .acpi_match_table ACPI_PTR(mpu3050_acpi_match), }, .probe = mpu3050_probe, - .remove = mpu3050_remove, + .remove = __devexit_p(mpu3050_remove), .id_table = mpu3050_ids, }; diff --git a/trunk/Documentation/devicetree/bindings/clock/imx23-clock.txt b/trunk/Documentation/devicetree/bindings/clock/imx23-clock.txt index 5083c0b834b2..baadbb11fe98 100644 --- a/trunk/Documentation/devicetree/bindings/clock/imx23-clock.txt +++ b/trunk/Documentation/devicetree/bindings/clock/imx23-clock.txt @@ -60,6 +60,11 @@ clks: clkctrl@80040000 { compatible = "fsl,imx23-clkctrl"; reg = <0x80040000 0x2000>; #clock-cells = <1>; + clock-output-names = + ... + "uart", /* 32 */ + ... + "end_of_list"; }; auart0: serial@8006c000 { diff --git a/trunk/Documentation/devicetree/bindings/clock/imx25-clock.txt b/trunk/Documentation/devicetree/bindings/clock/imx25-clock.txt index db4f2f05c4d0..c2a3525ecb4e 100644 --- a/trunk/Documentation/devicetree/bindings/clock/imx25-clock.txt +++ b/trunk/Documentation/devicetree/bindings/clock/imx25-clock.txt @@ -146,6 +146,10 @@ clks: ccm@53f80000 { compatible = "fsl,imx25-ccm"; reg = <0x53f80000 0x4000>; interrupts = <31>; + clock-output-names = ... + "uart_ipg", + "uart_serial", + ...; }; uart1: serial@43f90000 { diff --git a/trunk/Documentation/devicetree/bindings/clock/imx28-clock.txt b/trunk/Documentation/devicetree/bindings/clock/imx28-clock.txt index e6587af62ff0..52a49a4a50b3 100644 --- a/trunk/Documentation/devicetree/bindings/clock/imx28-clock.txt +++ b/trunk/Documentation/devicetree/bindings/clock/imx28-clock.txt @@ -83,6 +83,11 @@ clks: clkctrl@80040000 { compatible = "fsl,imx28-clkctrl"; reg = <0x80040000 0x2000>; #clock-cells = <1>; + clock-output-names = + ... + "uart", /* 45 */ + ... + "end_of_list"; }; auart0: serial@8006a000 { diff --git a/trunk/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/trunk/Documentation/devicetree/bindings/clock/imx6q-clock.txt index f73fdf595568..d77b4e68dc42 100644 --- a/trunk/Documentation/devicetree/bindings/clock/imx6q-clock.txt +++ b/trunk/Documentation/devicetree/bindings/clock/imx6q-clock.txt @@ -211,6 +211,10 @@ clks: ccm@020c4000 { reg = <0x020c4000 0x4000>; interrupts = <0 87 0x04 0 88 0x04>; #clock-cells = <1>; + clock-output-names = ... + "uart_ipg", + "uart_serial", + ...; }; uart1: serial@02020000 { diff --git a/trunk/Documentation/devicetree/bindings/gpio/gpio-poweroff.txt b/trunk/Documentation/devicetree/bindings/gpio/gpio-poweroff.txt index d4eab9227ea4..558cdf3c9abc 100644 --- a/trunk/Documentation/devicetree/bindings/gpio/gpio-poweroff.txt +++ b/trunk/Documentation/devicetree/bindings/gpio/gpio-poweroff.txt @@ -1,19 +1,4 @@ -Driver a GPIO line that can be used to turn the power off. - -The driver supports both level triggered and edge triggered power off. -At driver load time, the driver will request the given gpio line and -install a pm_power_off handler. If the optional properties 'input' is -not found, the GPIO line will be driven in the inactive -state. Otherwise its configured as an input. - -When the pm_power_off is called, the gpio is configured as an output, -and drive active, so triggering a level triggered power off -condition. This will also cause an inactive->active edge condition, so -triggering positive edge triggered power off. After a delay of 100ms, -the GPIO is set to inactive, thus causing an active->inactive edge, -triggering negative edge triggered power off. After another 100ms -delay the GPIO is driver active again. If the power is still on and -the CPU still running after a 3000ms delay, a WARN_ON(1) is emitted. +GPIO line that should be set high/low to power off a device Required properties: - compatible : should be "gpio-poweroff". @@ -28,9 +13,10 @@ Optional properties: property is not specified, the GPIO is initialized as an output in its inactive state. + Examples: gpio-poweroff { compatible = "gpio-poweroff"; - gpios = <&gpio 4 0>; + gpios = <&gpio 4 0>; /* GPIO 4 Active Low */ }; diff --git a/trunk/Documentation/devicetree/bindings/pinctrl/pinctrl-sirf.txt b/trunk/Documentation/devicetree/bindings/pinctrl/pinctrl-sirf.txt deleted file mode 100644 index c596a6ad3285..000000000000 --- a/trunk/Documentation/devicetree/bindings/pinctrl/pinctrl-sirf.txt +++ /dev/null @@ -1,47 +0,0 @@ -CSR SiRFprimaII pinmux controller - -Required properties: -- compatible : "sirf,prima2-pinctrl" -- reg : Address range of the pinctrl registers -- interrupts : Interrupts used by every GPIO group -- gpio-controller : Indicates this device is a GPIO controller -- interrupt-controller : Marks the device node as an interrupt controller -Optional properties: -- sirf,pullups : if n-th bit of m-th bank is set, set a pullup on GPIO-n of bank m -- sirf,pulldowns : if n-th bit of m-th bank is set, set a pulldown on GPIO-n of bank m - -Please refer to pinctrl-bindings.txt in this directory for details of the common -pinctrl bindings used by client devices. - -SiRFprimaII's pinmux nodes act as a container for an abitrary number of subnodes. -Each of these subnodes represents some desired configuration for a group of pins. - -Required subnode-properties: -- sirf,pins : An array of strings. Each string contains the name of a group. -- sirf,function: A string containing the name of the function to mux to the - group. - - Valid values for group and function names can be found from looking at the - group and function arrays in driver files: - drivers/pinctrl/pinctrl-sirf.c - -For example, pinctrl might have subnodes like the following: - uart2_pins_a: uart2@0 { - uart { - sirf,pins = "uart2grp"; - sirf,function = "uart2"; - }; - }; - uart2_noflow_pins_a: uart2@1 { - uart { - sirf,pins = "uart2_nostreamctrlgrp"; - sirf,function = "uart2_nostreamctrl"; - }; - }; - -For a specific board, if it wants to use uart2 without hardware flow control, -it can add the following to its board-specific .dts file. -uart2: uart@0xb0070000 { - pinctrl-names = "default"; - pinctrl-0 = <&uart2_noflow_pins_a>; -} diff --git a/trunk/Documentation/i2c/instantiating-devices b/trunk/Documentation/i2c/instantiating-devices index 22182660dda7..abf63615ee05 100644 --- a/trunk/Documentation/i2c/instantiating-devices +++ b/trunk/Documentation/i2c/instantiating-devices @@ -91,7 +91,7 @@ Example (from the nxp OHCI driver): static const unsigned short normal_i2c[] = { 0x2c, 0x2d, I2C_CLIENT_END }; -static int usb_hcd_nxp_probe(struct platform_device *pdev) +static int __devinit usb_hcd_nxp_probe(struct platform_device *pdev) { (...) struct i2c_adapter *i2c_adap; diff --git a/trunk/Documentation/networking/ip-sysctl.txt b/trunk/Documentation/networking/ip-sysctl.txt index dbca66182089..dd52d516cb89 100644 --- a/trunk/Documentation/networking/ip-sysctl.txt +++ b/trunk/Documentation/networking/ip-sysctl.txt @@ -36,7 +36,7 @@ neigh/default/unres_qlen_bytes - INTEGER The maximum number of bytes which may be used by packets queued for each unresolved address by other network layers. (added in linux 3.3) - Setting negative value is meaningless and will return error. + Seting negative value is meaningless and will retrun error. Default: 65536 Bytes(64KB) neigh/default/unres_qlen - INTEGER @@ -215,7 +215,7 @@ tcp_ecn - INTEGER Possible values are: 0 Disable ECN. Neither initiate nor accept ECN. 1 Always request ECN on outgoing connection attempts. - 2 Enable ECN when requested by incoming connections + 2 Enable ECN when requested by incomming connections but do not request ECN on outgoing connections. Default: 2 @@ -503,7 +503,7 @@ tcp_fastopen - INTEGER tcp_syn_retries - INTEGER Number of times initial SYNs for an active TCP connection attempt will be retransmitted. Should not be higher than 255. Default value - is 6, which corresponds to 63seconds till the last retransmission + is 6, which corresponds to 63seconds till the last restransmission with the current initial RTO of 1second. With this the final timeout for an active TCP connection attempt will happen after 127seconds. @@ -1331,12 +1331,6 @@ force_tllao - BOOLEAN race condition where the sender deletes the cached link-layer address prior to receiving a response to a previous solicitation." -ndisc_notify - BOOLEAN - Define mode for notification of address and device changes. - 0 - (default): do nothing - 1 - Generate unsolicited neighbour advertisements when device is brought - up or hardware address changes. - icmp/*: ratelimit - INTEGER Limit the maximal rates for sending ICMPv6 packets. @@ -1536,7 +1530,7 @@ cookie_hmac_alg - STRING * sha1 * none Ability to assign md5 or sha1 as the selected alg is predicated on the - configuration of those algorithms at build time (CONFIG_CRYPTO_MD5 and + configuarion of those algorithms at build time (CONFIG_CRYPTO_MD5 and CONFIG_CRYPTO_SHA1). Default: Dependent on configuration. MD5 if available, else SHA1 if @@ -1554,7 +1548,7 @@ rcvbuf_policy - INTEGER blocking. 1: rcvbuf space is per association - 0: rcvbuf space is per socket + 0: recbuf space is per socket Default: 0 diff --git a/trunk/Documentation/power/runtime_pm.txt b/trunk/Documentation/power/runtime_pm.txt index 03591a750f99..4abe83e1045a 100644 --- a/trunk/Documentation/power/runtime_pm.txt +++ b/trunk/Documentation/power/runtime_pm.txt @@ -642,13 +642,12 @@ out the following operations: * During system suspend it calls pm_runtime_get_noresume() and pm_runtime_barrier() for every device right before executing the subsystem-level .suspend() callback for it. In addition to that it calls - __pm_runtime_disable() with 'false' as the second argument for every device - right before executing the subsystem-level .suspend_late() callback for it. + pm_runtime_disable() for every device right after executing the + subsystem-level .suspend() callback for it. * During system resume it calls pm_runtime_enable() and pm_runtime_put_sync() - for every device right after executing the subsystem-level .resume_early() - callback and right after executing the subsystem-level .resume() callback - for it, respectively. + for every device right before and right after executing the subsystem-level + .resume() callback for it, respectively. 7. Generic subsystem callbacks diff --git a/trunk/Documentation/rpmsg.txt b/trunk/Documentation/rpmsg.txt index f7edc3aa1e92..409d9f964c5b 100644 --- a/trunk/Documentation/rpmsg.txt +++ b/trunk/Documentation/rpmsg.txt @@ -236,7 +236,7 @@ static int rpmsg_sample_probe(struct rpmsg_channel *rpdev) return 0; } -static void rpmsg_sample_remove(struct rpmsg_channel *rpdev) +static void __devexit rpmsg_sample_remove(struct rpmsg_channel *rpdev) { dev_info(&rpdev->dev, "rpmsg sample client driver is removed\n"); } @@ -253,7 +253,7 @@ static struct rpmsg_driver rpmsg_sample_client = { .id_table = rpmsg_driver_sample_id_table, .probe = rpmsg_sample_probe, .callback = rpmsg_sample_cb, - .remove = rpmsg_sample_remove, + .remove = __devexit_p(rpmsg_sample_remove), }; static int __init init(void) diff --git a/trunk/Documentation/spi/spi-summary b/trunk/Documentation/spi/spi-summary index 2331eb214146..7312ec14dd89 100644 --- a/trunk/Documentation/spi/spi-summary +++ b/trunk/Documentation/spi/spi-summary @@ -345,7 +345,7 @@ SPI protocol drivers somewhat resemble platform device drivers: }, .probe = CHIP_probe, - .remove = CHIP_remove, + .remove = __devexit_p(CHIP_remove), .suspend = CHIP_suspend, .resume = CHIP_resume, }; @@ -355,7 +355,7 @@ device whose board_info gave a modalias of "CHIP". Your probe() code might look like this unless you're creating a device which is managing a bus (appearing under /sys/class/spi_master). - static int CHIP_probe(struct spi_device *spi) + static int __devinit CHIP_probe(struct spi_device *spi) { struct CHIP *chip; struct CHIP_platform_data *pdata; diff --git a/trunk/Documentation/sysctl/kernel.txt b/trunk/Documentation/sysctl/kernel.txt index ccd42589e124..2907ba6c3607 100644 --- a/trunk/Documentation/sysctl/kernel.txt +++ b/trunk/Documentation/sysctl/kernel.txt @@ -38,7 +38,6 @@ show up in /proc/sys/kernel: - l2cr [ PPC only ] - modprobe ==> Documentation/debugging-modules.txt - modules_disabled -- msg_next_id [ sysv ipc ] - msgmax - msgmnb - msgmni @@ -63,9 +62,7 @@ show up in /proc/sys/kernel: - rtsig-max - rtsig-nr - sem -- sem_next_id [ sysv ipc ] - sg-big-buff [ generic SCSI device (sg) ] -- shm_next_id [ sysv ipc ] - shm_rmid_forced - shmall - shmmax [ sysv ipc ] @@ -323,22 +320,6 @@ to false. ============================================================== -msg_next_id, sem_next_id, and shm_next_id: - -These three toggles allows to specify desired id for next allocated IPC -object: message, semaphore or shared memory respectively. - -By default they are equal to -1, which means generic allocation logic. -Possible values to set are in range {0..INT_MAX}. - -Notes: -1) kernel doesn't guarantee, that new object will have desired id. So, -it's up to userspace, how to handle an object with "wrong" id. -2) Toggle with non-default value will be set back to -1 by kernel after -successful IPC object allocation. - -============================================================== - nmi_watchdog: Enables/Disables the NMI watchdog on x86 systems. When the value is @@ -561,19 +542,6 @@ are doing anyway :) ============================================================== -shmall: - -This parameter sets the total amount of shared memory pages that -can be used system wide. Hence, SHMALL should always be at least -ceil(shmmax/PAGE_SIZE). - -If you are not sure what the default PAGE_SIZE is on your Linux -system, you can run the following command: - -# getconf PAGE_SIZE - -============================================================== - shmmax: This value can be used to query and set the run time limit diff --git a/trunk/Documentation/video4linux/v4l2-framework.txt b/trunk/Documentation/video4linux/v4l2-framework.txt index b89567ad04b7..32bfe926e8d7 100644 --- a/trunk/Documentation/video4linux/v4l2-framework.txt +++ b/trunk/Documentation/video4linux/v4l2-framework.txt @@ -174,7 +174,8 @@ The recommended approach is as follows: static atomic_t drv_instance = ATOMIC_INIT(0); -static int drv_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id) +static int __devinit drv_probe(struct pci_dev *pdev, + const struct pci_device_id *pci_id) { ... state->instance = atomic_inc_return(&drv_instance) - 1; diff --git a/trunk/Documentation/zh_CN/video4linux/v4l2-framework.txt b/trunk/Documentation/zh_CN/video4linux/v4l2-framework.txt index 44c1d934c4e3..3e74f13af426 100644 --- a/trunk/Documentation/zh_CN/video4linux/v4l2-framework.txt +++ b/trunk/Documentation/zh_CN/video4linux/v4l2-framework.txt @@ -182,7 +182,8 @@ int iterate(void *p) static atomic_t drv_instance = ATOMIC_INIT(0); -static int drv_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id) +static int __devinit drv_probe(struct pci_dev *pdev, + const struct pci_device_id *pci_id) { ... state->instance = atomic_inc_return(&drv_instance) - 1; diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index b4dea6cee2a9..fa309ab7ccbf 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -449,7 +449,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git S: Maintained F: drivers/char/agp/ F: include/linux/agp* -F: include/uapi/linux/agp* AHA152X SCSI DRIVER M: "Juergen E. Fischer" @@ -590,7 +589,6 @@ M: Jiri Kosina S: Odd fixes F: arch/x86/kernel/apm_32.c F: include/linux/apm_bios.h -F: include/uapi/linux/apm_bios.h F: drivers/char/apm-emulation.c APPLE BCM5974 MULTITOUCH DRIVER @@ -1007,6 +1005,7 @@ F: drivers/mmc/host/msm_sdcc.c F: drivers/mmc/host/msm_sdcc.h F: drivers/tty/serial/msm_serial.h F: drivers/tty/serial/msm_serial.c +F: drivers/platform/msm/ F: drivers/*/pm8???-* F: include/linux/mfd/pm8xxx/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm.git @@ -1070,6 +1069,7 @@ M: Russell King L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) W: http://www.arm.linux.org.uk/ S: Maintained +F: arch/arm/common/time-acorn.c F: arch/arm/include/asm/hardware/entry-macro-iomd.S F: arch/arm/include/asm/hardware/ioc.h F: arch/arm/include/asm/hardware/iomd.h @@ -1094,6 +1094,7 @@ W: http://www.fluff.org/ben/linux/ S: Maintained F: arch/arm/plat-samsung/ F: arch/arm/plat-s3c24xx/ +F: arch/arm/plat-s5p/ F: arch/arm/mach-s3c24*/ F: arch/arm/mach-s3c64xx/ F: drivers/*/*s3c2410* @@ -1124,6 +1125,7 @@ M: Sylwester Nawrocki L: linux-arm-kernel@lists.infradead.org L: linux-media@vger.kernel.org S: Maintained +F: arch/arm/plat-s5p/dev-fimc* F: arch/arm/plat-samsung/include/plat/*fimc* F: drivers/media/platform/s5p-fimc/ @@ -1134,7 +1136,7 @@ M: Jeongtae Park L: linux-arm-kernel@lists.infradead.org L: linux-media@vger.kernel.org S: Maintained -F: arch/arm/plat-samsung/s5p-dev-mfc.c +F: arch/arm/plat-s5p/dev-mfc.c F: drivers/media/platform/s5p-mfc/ ARM/SAMSUNG S5P SERIES TV SUBSYSTEM SUPPORT @@ -1252,7 +1254,7 @@ F: drivers/video/vt8500lcdfb.* F: drivers/video/wm8505fb* F: drivers/video/wmt_ge_rops.* F: drivers/tty/serial/vt8500_serial.c -F: drivers/rtc/rtc-vt8500.c +F: drivers/rtc/rtc-vt8500-c F: drivers/mmc/host/wmt-sdmmc.c ARM/ZIPIT Z2 SUPPORT @@ -1386,7 +1388,6 @@ W: http://linux-atm.sourceforge.net S: Maintained F: drivers/atm/ F: include/linux/atm* -F: include/uapi/linux/atm* ATMEL AT91 / AT32 MCI DRIVER M: Ludovic Desroches @@ -1405,13 +1406,13 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Supported F: drivers/dma/at_hdmac.c F: drivers/dma/at_hdmac_regs.h -F: include/linux/platform_data/dma-atmel.h +F: arch/arm/mach-at91/include/mach/at_hdmac.h ATMEL ISI DRIVER M: Josh Wu L: linux-media@vger.kernel.org S: Supported -F: drivers/media/platform/soc_camera/atmel-isi.c +F: drivers/media/platform/atmel-isi.c F: include/media/atmel-isi.h ATMEL LCDFB DRIVER @@ -1466,7 +1467,6 @@ W: http://people.redhat.com/sgrubb/audit/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current.git S: Maintained F: include/linux/audit.h -F: include/uapi/linux/audit.h F: kernel/audit* AUXILIARY DISPLAY DRIVERS @@ -1497,7 +1497,7 @@ M: Ralf Baechle L: linux-hams@vger.kernel.org W: http://www.linux-ax25.org/ S: Maintained -F: include/uapi/linux/ax25.h +F: include/linux/ax25.h F: include/net/ax25.h F: net/ax25/ @@ -1558,7 +1558,7 @@ M: "Tigran A. Aivazian" S: Maintained F: Documentation/filesystems/bfs.txt F: fs/bfs/ -F: include/uapi/linux/bfs_fs.h +F: include/linux/bfs_fs.h BLACKFIN ARCHITECTURE M: Mike Frysinger @@ -1655,7 +1655,7 @@ L: netdev@vger.kernel.org W: http://sourceforge.net/projects/bonding/ S: Supported F: drivers/net/bonding/ -F: include/uapi/linux/if_bonding.h +F: include/linux/if_bonding.h BROADCOM B44 10/100 ETHERNET DRIVER M: Gary Zambrano @@ -1734,7 +1734,6 @@ L: linux-scsi@vger.kernel.org S: Supported F: block/bsg.c F: include/linux/bsg.h -F: include/uapi/linux/bsg.h BT87X AUDIO DRIVER M: Clemens Ladisch @@ -1805,7 +1804,7 @@ L: netdev@vger.kernel.org S: Supported F: Documentation/networking/caif/ F: drivers/net/caif/ -F: include/uapi/linux/caif/ +F: include/linux/caif/ F: include/net/caif/ F: net/caif/ @@ -1826,11 +1825,11 @@ W: http://gitorious.org/linux-can T: git git://gitorious.org/linux-can/linux-can-next.git S: Maintained F: net/can/ +F: include/linux/can.h F: include/linux/can/core.h -F: include/uapi/linux/can.h -F: include/uapi/linux/can/bcm.h -F: include/uapi/linux/can/raw.h -F: include/uapi/linux/can/gw.h +F: include/linux/can/bcm.h +F: include/linux/can/raw.h +F: include/linux/can/gw.h CAN NETWORK DRIVERS M: Wolfgang Grandegger @@ -1841,16 +1840,15 @@ T: git git://gitorious.org/linux-can/linux-can-next.git S: Maintained F: drivers/net/can/ F: include/linux/can/dev.h +F: include/linux/can/error.h +F: include/linux/can/netlink.h F: include/linux/can/platform/ -F: include/uapi/linux/can/error.h -F: include/uapi/linux/can/netlink.h CAPABILITIES M: Serge Hallyn L: linux-security-module@vger.kernel.org S: Supported F: include/linux/capability.h -F: include/uapi/linux/capability.h F: security/capability.c F: security/commoncap.c F: kernel/capability.c @@ -1863,7 +1861,6 @@ W: http://www.ibm.com/developerworks/power/cell/ S: Supported F: arch/powerpc/include/asm/cell*.h F: arch/powerpc/include/asm/spu*.h -F: arch/powerpc/include/uapi/asm/spu*.h F: arch/powerpc/oprofile/*cell* F: arch/powerpc/platforms/cell/ @@ -1912,7 +1909,7 @@ W: http://wireless.kernel.org/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git S: Maintained -F: include/uapi/linux/nl80211.h +F: include/linux/nl80211.h F: include/net/cfg80211.h F: net/wireless/* X: net/wireless/wext* @@ -2015,7 +2012,6 @@ S: Maintained F: Documentation/filesystems/coda.txt F: fs/coda/ F: include/linux/coda*.h -F: include/uapi/linux/coda*.h COMMON CLK FRAMEWORK M: Mike Turquette @@ -2270,7 +2266,6 @@ W: http://www.cyclades.com/ S: Orphan F: drivers/tty/cyclades.c F: include/linux/cyclades.h -F: include/uapi/linux/cyclades.h CYCLADES PC300 DRIVER W: http://www.cyclades.com/ @@ -2328,7 +2323,6 @@ L: dccp@vger.kernel.org W: http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp S: Maintained F: include/linux/dccp.h -F: include/uapi/linux/dccp.h F: include/linux/tfrc.h F: net/dccp/ @@ -2355,7 +2349,7 @@ M: Massimo Dal Zotto W: http://www.debian.org/~dz/i8k/ S: Maintained F: drivers/char/i8k.c -F: include/uapi/linux/i8k.h +F: include/linux/i8k.h DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas) M: Doug Warzecha @@ -2428,7 +2422,6 @@ S: Maintained F: Documentation/filesystems/quota.txt F: fs/quota/ F: include/linux/quota*.h -F: include/uapi/linux/quota*.h DISPLAYLINK USB 2.0 FRAMEBUFFER DRIVER (UDLFB) M: Bernie Thompson @@ -2535,7 +2528,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git S: Maintained F: drivers/gpu/drm/ F: include/drm/ -F: include/uapi/drm/ INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets) M: Daniel Vetter @@ -2545,7 +2537,6 @@ T: git git://people.freedesktop.org/~danvet/drm-intel S: Supported F: drivers/gpu/drm/i915 F: include/drm/i915* -F: include/uapi/drm/i915* DRM DRIVERS FOR EXYNOS M: Inki Dae @@ -2557,7 +2548,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git S: Supported F: drivers/gpu/drm/exynos F: include/drm/exynos* -F: include/uapi/drm/exynos* DRM DRIVERS FOR NVIDIA TEGRA M: Thierry Reding @@ -2632,7 +2622,7 @@ W: http://github.com/mkrufky Q: http://patchwork.linuxtv.org/project/linux-media/list/ T: git git://linuxtv.org/media_tree.git S: Maintained -F: drivers/media/usb/dvb-usb/cxusb* +F: drivers/media/usb/dvb-usb-v2/cxusb* DVB_USB_CYPRESS_FIRMWARE MEDIA DRIVER M: Antti Palosaari @@ -2732,7 +2722,6 @@ L: netfilter-devel@vger.kernel.org W: http://ebtables.sourceforge.net/ S: Maintained F: include/linux/netfilter_bridge/ebt_*.h -F: include/uapi/linux/netfilter_bridge/ebt_*.h F: net/bridge/netfilter/ebt*.c EC100 MEDIA DRIVER @@ -2944,6 +2933,12 @@ M: Maxim Levitsky S: Maintained F: drivers/media/rc/ene_ir.* +EPSON 1355 FRAMEBUFFER DRIVER +M: Christopher Hoover +M: Christopher Hoover +S: Maintained +F: drivers/video/epson1355fb.c + EPSON S1D13XXX FRAMEBUFFER DRIVER M: Kristoffer Ericson S: Maintained @@ -3056,7 +3051,6 @@ M: Eric Paris S: Maintained F: fs/notify/fanotify/ F: include/linux/fanotify.h -F: include/uapi/linux/fanotify.h FARSYNC SYNCHRONOUS DRIVER M: Kevin Curtis @@ -3080,7 +3074,6 @@ F: drivers/scsi/fcoe/ F: include/scsi/fc/ F: include/scsi/libfc.h F: include/scsi/libfcoe.h -F: include/uapi/scsi/fc/ FILE LOCKING (flock() and fcntl()/lockf()) M: Matthew Wilcox @@ -3088,8 +3081,6 @@ L: linux-fsdevel@vger.kernel.org S: Maintained F: include/linux/fcntl.h F: include/linux/fs.h -F: include/uapi/linux/fcntl.h -F: include/uapi/linux/fs.h F: fs/fcntl.c F: fs/locks.c @@ -3179,8 +3170,6 @@ F: Documentation/devicetree/bindings/fb/ F: drivers/video/ F: include/video/ F: include/linux/fb.h -F: include/uapi/video/ -F: include/uapi/linux/fb.h FREESCALE DIU FRAMEBUFFER DRIVER M: Timur Tabi @@ -3207,7 +3196,7 @@ M: Sascha Hauer L: linux-fbdev@vger.kernel.org L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained -F: include/linux/platform_data/video-imxfb.h +F: arch/arm/plat-mxc/include/mach/imxfb.h F: drivers/video/imxfb.c FREESCALE SOC FS_ENET DRIVER @@ -3284,16 +3273,6 @@ F: Documentation/filesystems/caching/ F: fs/fscache/ F: include/linux/fscache*.h -F2FS FILE SYSTEM -M: Jaegeuk Kim -L: linux-f2fs-devel@lists.sourceforge.net -W: http://en.wikipedia.org/wiki/F2FS -T: git git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git -S: Maintained -F: Documentation/filesystems/f2fs.txt -F: fs/f2fs/ -F: include/linux/f2fs_fs.h - FUJITSU FR-V (FRV) PORT M: David Howells S: Maintained @@ -3325,7 +3304,7 @@ L: fuse-devel@lists.sourceforge.net W: http://fuse.sourceforge.net/ S: Maintained F: fs/fuse/ -F: include/uapi/linux/fuse.h +F: include/linux/fuse.h FUTURE DOMAIN TMC-16x0 SCSI DRIVER (16-bit) M: Rik Faith @@ -3372,7 +3351,6 @@ L: linux-arch@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git S: Maintained F: include/asm-generic -F: include/uapi/asm-generic GENERIC UIO DRIVER FOR PCI DEVICES M: "Michael S. Tsirkin" @@ -3389,7 +3367,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw.git S: Supported F: Documentation/filesystems/gfs2*.txt F: fs/gfs2/ -F: include/uapi/linux/gfs2_ondisk.h +F: include/linux/gfs2_ondisk.h GIGASET ISDN DRIVERS M: Hansjoerg Lipp @@ -3399,7 +3377,7 @@ W: http://gigaset307x.sourceforge.net/ S: Maintained F: Documentation/isdn/README.gigaset F: drivers/isdn/gigaset/ -F: include/uapi/linux/gigaset_dev.h +F: include/linux/gigaset_dev.h GPIO SUBSYSTEM M: Grant Likely @@ -3556,7 +3534,6 @@ S: Supported F: Documentation/scsi/hpsa.txt F: drivers/scsi/hpsa*.[ch] F: include/linux/cciss*.h -F: include/uapi/linux/cciss*.h HEWLETT-PACKARD SMART CISS RAID DRIVER (cciss) M: Mike Miller @@ -3565,7 +3542,6 @@ S: Supported F: Documentation/blockdev/cciss.txt F: drivers/block/cciss* F: include/linux/cciss_ioctl.h -F: include/uapi/linux/cciss_ioctl.h HFS FILESYSTEM L: linux-fsdevel@vger.kernel.org @@ -3600,7 +3576,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git S: Maintained F: drivers/hid/ F: include/linux/hid* -F: include/uapi/linux/hid* HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS M: Thomas Gleixner @@ -3632,7 +3607,7 @@ M: Jes Sorensen L: linux-hippi@sunsite.dk S: Maintained F: include/linux/hippidevice.h -F: include/uapi/linux/if_hippi.h +F: include/linux/if_hippi.h F: net/802/hippi.c F: drivers/net/hippi/ @@ -3660,7 +3635,6 @@ S: Maintained F: Documentation/timers/hpet.txt F: drivers/char/hpet.c F: include/linux/hpet.h -F: include/uapi/linux/hpet.h HPET: x86 M: "Venkatesh Pallipadi (Venki)" @@ -3761,8 +3735,6 @@ F: Documentation/i2c/ F: drivers/i2c/ F: include/linux/i2c.h F: include/linux/i2c-*.h -F: include/uapi/linux/i2c.h -F: include/uapi/linux/i2c-*.h I2C-TAOS-EVM DRIVER M: Jean Delvare @@ -3878,7 +3850,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git S: Maintained F: net/ieee802154/ F: net/mac802154/ -F: drivers/net/ieee802154/ +F: drivers/ieee802154/ IGUANAWORKS USB IR TRANSCEIVER M: Sean Young @@ -3929,7 +3901,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git S: Supported F: Documentation/infiniband/ F: drivers/infiniband/ -F: include/uapi/linux/if_infiniband.h +F: include/linux/if_infiniband.h INOTIFY M: John McCutchan @@ -3939,7 +3911,6 @@ S: Maintained F: Documentation/filesystems/inotify.txt F: fs/notify/inotify/ F: include/linux/inotify.h -F: include/uapi/linux/inotify.h INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS M: Dmitry Torokhov @@ -3950,7 +3921,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git S: Maintained F: drivers/input/ F: include/linux/input.h -F: include/uapi/linux/input.h F: include/linux/input/ INPUT MULTITOUCH (MT) PROTOCOL @@ -3971,6 +3941,7 @@ L: linux-scsi@vger.kernel.org T: git git://git.code.sf.net/p/intel-sas/isci S: Supported F: drivers/scsi/isci/ +F: firmware/isci/ INTEL IDLE DRIVER M: Len Brown @@ -4065,6 +4036,12 @@ F: Documentation/networking/ixgbe.txt F: Documentation/networking/ixgbevf.txt F: drivers/net/ethernet/intel/ +INTEL MRST PMU DRIVER +M: Len Brown +L: linux-pm@vger.kernel.org +S: Supported +F: arch/x86/platform/mrst/pmu.* + INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT M: Stanislav Yakovlev L: linux-wireless@vger.kernel.org @@ -4093,7 +4070,7 @@ S: Supported W: http://linuxwimax.org F: Documentation/wimax/README.i2400m F: drivers/net/wimax/i2400m/ -F: include/uapi/linux/wimax/i2400m.h +F: include/linux/wimax/i2400m.h INTEL WIRELESS 3945ABG/BG, 4965AGN (iwlegacy) M: Stanislaw Gruszka @@ -4115,9 +4092,9 @@ INTEL MANAGEMENT ENGINE (mei) M: Tomas Winkler L: linux-kernel@vger.kernel.org S: Supported -F: include/uapi/linux/mei.h +F: include/linux/mei.h F: drivers/misc/mei/* -F: Documentation/misc-devices/mei/* +F: Documentation/mei/* IOC3 ETHERNET DRIVER M: Ralf Baechle @@ -4157,7 +4134,6 @@ S: Supported F: Documentation/IPMI.txt F: drivers/char/ipmi/ F: include/linux/ipmi* -F: include/uapi/linux/ipmi* IPS SCSI RAID DRIVER M: Adaptec OEM Raid Solutions @@ -4175,7 +4151,7 @@ L: lvs-devel@vger.kernel.org S: Maintained F: Documentation/networking/ipvs-sysctl.txt F: include/net/ip_vs.h -F: include/uapi/linux/ip_vs.h +F: include/linux/ip_vs.h F: net/netfilter/ipvs/ IPWIRELESS DRIVER @@ -4188,8 +4164,8 @@ IPX NETWORK LAYER M: Arnaldo Carvalho de Melo L: netdev@vger.kernel.org S: Maintained +F: include/linux/ipx.h F: include/net/ipx.h -F: include/uapi/linux/ipx.h F: net/ipx/ IRDA SUBSYSTEM @@ -4209,7 +4185,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 @@ -4253,8 +4228,6 @@ F: Documentation/isdn/ F: drivers/isdn/ F: include/linux/isdn.h F: include/linux/isdn/ -F: include/uapi/linux/isdn.h -F: include/uapi/linux/isdn/ ISDN SUBSYSTEM (Eicon active card driver) M: Armin Schindler @@ -4295,7 +4268,7 @@ W: http://www.ivtvdriver.org S: Maintained F: Documentation/video4linux/*.ivtv F: drivers/media/pci/ivtv/ -F: include/uapi/linux/ivtv* +F: include/linux/ivtv* IX2505V MEDIA DRIVER M: Malcolm Priestley @@ -4333,7 +4306,7 @@ L: linux-mtd@lists.infradead.org W: http://www.linux-mtd.infradead.org/doc/jffs2.html S: Maintained F: fs/jffs2/ -F: include/uapi/linux/jffs2.h +F: include/linux/jffs2.h JOURNALLING LAYER FOR BLOCK DEVICES (JBD) M: Andrew Morton @@ -4416,13 +4389,11 @@ W: http://nfs.sourceforge.net/ S: Supported F: fs/nfsd/ F: include/linux/nfsd/ -F: include/uapi/linux/nfsd/ F: fs/lockd/ F: fs/nfs_common/ F: net/sunrpc/ F: include/linux/lockd/ F: include/linux/sunrpc/ -F: include/uapi/linux/sunrpc/ KERNEL VIRTUAL MACHINE (KVM) M: Marcelo Tosatti @@ -4434,7 +4405,6 @@ F: Documentation/*/kvm.txt F: arch/*/kvm/ F: arch/*/include/asm/kvm* F: include/linux/kvm* -F: include/uapi/linux/kvm* F: virt/kvm/ KERNEL VIRTUAL MACHINE (KVM) FOR AMD-V @@ -4481,7 +4451,6 @@ W: http://kernel.org/pub/linux/utils/kernel/kexec/ L: kexec@lists.infradead.org S: Maintained F: include/linux/kexec.h -F: include/uapi/linux/kexec.h F: kernel/kexec.c KEYS/KEYRINGS: @@ -4723,7 +4692,6 @@ LLC (802.2) M: Arnaldo Carvalho de Melo S: Maintained F: include/linux/llc.h -F: include/uapi/linux/llc.h F: include/net/llc* F: net/llc/ @@ -4944,7 +4912,7 @@ MATROX FRAMEBUFFER DRIVER L: linux-fbdev@vger.kernel.org S: Orphan F: drivers/video/matrox/matroxfb_* -F: include/uapi/linux/matroxfb.h +F: include/linux/matroxfb.h MAX16065 HARDWARE MONITOR DRIVER M: Guenter Roeck @@ -5026,7 +4994,7 @@ T: git git://git.infradead.org/mtd-2.6.git S: Maintained F: drivers/mtd/ F: include/linux/mtd/ -F: include/uapi/mtd/ +F: include/mtd/ MICROBLAZE ARCHITECTURE M: Michal Simek @@ -5064,6 +5032,12 @@ F: Documentation/video4linux/meye.txt F: drivers/media/pci/meye/ F: include/uapi/linux/meye.h +MOTOROLA IMX MMC/SD HOST CONTROLLER INTERFACE DRIVER +M: Pavel Pisa +L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) +S: Maintained +F: drivers/mmc/host/imxmmc.* + MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD M: Jiri Slaby S: Maintained @@ -5102,7 +5076,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git S: Maintained F: drivers/mmc/ F: include/linux/mmc/ -F: include/uapi/linux/mmc/ MULTIMEDIA CARD (MMC) ETC. OVER SPI S: Orphan @@ -5203,8 +5176,6 @@ S: Supported F: include/linux/netfilter* F: include/linux/netfilter/ F: include/net/netfilter/ -F: include/uapi/linux/netfilter* -F: include/uapi/linux/netfilter/ F: net/*/netfilter.c F: net/*/netfilter/ F: net/netfilter/ @@ -5223,8 +5194,8 @@ M: Ralf Baechle L: linux-hams@vger.kernel.org W: http://www.linux-ax25.org/ S: Maintained +F: include/linux/netrom.h F: include/net/netrom.h -F: include/uapi/linux/netrom.h F: net/netrom/ NETWORK BLOCK DEVICE (NBD) @@ -5233,7 +5204,6 @@ S: Maintained F: Documentation/blockdev/nbd.txt F: drivers/block/nbd.c F: include/linux/nbd.h -F: include/uapi/linux/nbd.h NETWORK DROP MONITOR M: Neil Horman @@ -5255,9 +5225,6 @@ F: include/net/ F: include/linux/in.h F: include/linux/net.h F: include/linux/netdevice.h -F: include/uapi/linux/in.h -F: include/uapi/linux/net.h -F: include/uapi/linux/netdevice.h NETWORKING [IPv4/IPv6] M: "David S. Miller" @@ -5303,7 +5270,6 @@ F: net/rfkill/ F: net/wireless/ F: include/net/ieee80211* F: include/linux/wireless.h -F: include/uapi/linux/wireless.h F: include/net/iw_handler.h F: drivers/net/wireless/ @@ -5323,8 +5289,6 @@ F: include/linux/fcdevice.h F: include/linux/fddidevice.h F: include/linux/hippidevice.h F: include/linux/inetdevice.h -F: include/uapi/linux/if_* -F: include/uapi/linux/netdevice.h NETXEN (1/10) GbE SUPPORT M: Sony Chacko @@ -5342,8 +5306,8 @@ L: linux-wireless@vger.kernel.org L: linux-nfc@lists.01.org (moderated for non-subscribers) S: Maintained F: net/nfc/ +F: include/linux/nfc.h F: include/net/nfc/ -F: include/uapi/linux/nfc.h F: drivers/nfc/ F: include/linux/platform_data/pn544.h @@ -5360,8 +5324,6 @@ F: net/sunrpc/ F: include/linux/lockd/ F: include/linux/nfs* F: include/linux/sunrpc/ -F: include/uapi/linux/nfs* -F: include/uapi/linux/sunrpc/ NI5010 NETWORK DRIVER M: Jan-Pascal van Best @@ -5551,7 +5513,6 @@ M: Harald Welte S: Maintained F: drivers/char/pcmcia/cm4000_cs.c F: include/linux/cm4000_cs.h -F: include/uapi/linux/cm4000_cs.h OMNIKEY CARDMAN 4040 DRIVER M: Harald Welte @@ -5710,7 +5671,7 @@ S: Orphan F: drivers/parport/ F: include/linux/parport*.h F: drivers/char/ppdev.c -F: include/uapi/linux/ppdev.h +F: include/linux/ppdev.h PARAVIRT_OPS INTERFACE M: Jeremy Fitzhardinge @@ -5851,11 +5812,11 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core S: Supported F: kernel/events/* F: include/linux/perf_event.h -F: include/uapi/linux/perf_event.h F: arch/*/kernel/perf_event*.c F: arch/*/kernel/*/perf_event*.c F: arch/*/kernel/*/*/perf_event*.c F: arch/*/include/asm/perf_event.h +F: arch/*/lib/perf_event*.c F: arch/*/kernel/perf_callchain.c F: tools/perf/ @@ -5864,7 +5825,6 @@ M: Christoph Hellwig L: linux-abi-devel@lists.sourceforge.net S: Maintained F: include/linux/personality.h -F: include/uapi/linux/personality.h PHONET PROTOCOL M: Remi Denis-Courmont @@ -5872,7 +5832,6 @@ S: Supported F: Documentation/networking/phonet.txt F: include/linux/phonet.h F: include/net/phonet/ -F: include/uapi/linux/phonet.h F: net/phonet/ PHRAM MTD DRIVER @@ -5921,7 +5880,6 @@ M: Jiri Kosina S: Maintained F: drivers/block/pktcdvd.c F: include/linux/pktcdvd.h -F: include/uapi/linux/pktcdvd.h PKUNITY SOC DRIVERS M: Guan Xuetao @@ -5996,7 +5954,7 @@ PPP OVER ATM (RFC 2364) M: Mitchell Blank Jr S: Maintained F: net/atm/pppoatm.c -F: include/uapi/linux/atmppp.h +F: include/linux/atmppp.h PPP OVER ETHERNET M: Michal Ostrowski @@ -6009,7 +5967,6 @@ M: James Chapman S: Maintained F: net/l2tp/l2tp_ppp.c F: include/linux/if_pppol2tp.h -F: include/uapi/linux/if_pppol2tp.h PPS SUPPORT M: Rodolfo Giometti @@ -6107,7 +6064,6 @@ F: include/asm-generic/syscall.h F: include/linux/ptrace.h F: include/linux/regset.h F: include/linux/tracehook.h -F: include/uapi/linux/ptrace.h F: kernel/ptrace.c PVRUSB2 VIDEO4LINUX DRIVER @@ -6136,6 +6092,7 @@ T: git git://gitorious.org/linux-pwm/linux-pwm.git F: Documentation/pwm.txt F: Documentation/devicetree/bindings/pwm/ F: include/linux/pwm.h +F: include/linux/of_pwm.h F: drivers/pwm/ F: drivers/video/backlight/pwm_bl.c F: include/linux/pwm_backlight.h @@ -6231,8 +6188,8 @@ M: Anders Larsen W: http://www.alarsen.net/linux/qnx4fs/ S: Maintained F: fs/qnx4/ -F: include/uapi/linux/qnx4_fs.h -F: include/uapi/linux/qnxtypes.h +F: include/linux/qnx4_fs.h +F: include/linux/qnxtypes.h QT1010 MEDIA DRIVER M: Antti Palosaari @@ -6266,7 +6223,7 @@ M: Benjamin Herrenschmidt L: linux-fbdev@vger.kernel.org S: Maintained F: drivers/video/aty/radeon* -F: include/uapi/linux/radeonfb.h +F: include/linux/radeonfb.h RADIOSHARK RADIO DRIVER M: Hans de Goede @@ -6367,7 +6324,6 @@ S: Maintained F: Documentation/rtc.txt F: drivers/rtc/ F: include/linux/rtc.h -F: include/uapi/linux/rtc.h REISERFS FILE SYSTEM L: reiserfs-devel@vger.kernel.org @@ -6422,8 +6378,8 @@ M: Ralf Baechle L: linux-hams@vger.kernel.org W: http://www.linux-ax25.org/ S: Maintained +F: include/linux/rose.h F: include/net/rose.h -F: include/uapi/linux/rose.h F: net/rose/ RTL2830 MEDIA DRIVER @@ -6600,8 +6556,6 @@ S: Supported F: include/linux/clocksource.h F: include/linux/time.h F: include/linux/timex.h -F: include/uapi/linux/time.h -F: include/uapi/linux/timex.h F: kernel/time/clocksource.c F: kernel/time/time*.c F: kernel/time/ntp.c @@ -6626,7 +6580,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core S: Maintained F: kernel/sched/ F: include/linux/sched.h -F: include/uapi/linux/sched.h SCORE ARCHITECTURE M: Chen Liqin @@ -6780,7 +6733,7 @@ SENSABLE PHANTOM M: Jiri Slaby S: Maintained F: drivers/misc/phantom.c -F: include/uapi/linux/phantom.h +F: include/linux/phantom.h SERIAL ATA (SATA) SUBSYSTEM M: Jeff Garzik @@ -7038,7 +6991,6 @@ L: linux-raid@vger.kernel.org S: Supported F: drivers/md/ F: include/linux/raid/ -F: include/uapi/linux/raid/ SONIC NETWORK DRIVER M: Thomas Bogendoerfer @@ -7079,7 +7031,6 @@ T: git git://git.alsa-project.org/alsa-kernel.git S: Maintained F: Documentation/sound/ F: include/sound/ -F: include/uapi/sound/ F: sound/ SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC) @@ -7180,7 +7131,6 @@ S: Maintained F: Documentation/spi/ F: drivers/spi/ F: include/linux/spi/ -F: include/uapi/linux/spi/ SPIDERNET NETWORK DRIVER for CELL M: Ishizaki Kou @@ -7317,7 +7267,7 @@ F: drivers/staging/rtl8712/ STAGING - SILICON MOTION SM7XX FRAME BUFFER DRIVER M: Teddy Wang S: Odd Fixes -F: drivers/staging/sm7xxfb/ +F: drivers/staging/sm7xx/ STAGING - SOFTLOGIC 6x10 MPEG CODEC M: Ben Collins @@ -7443,8 +7393,8 @@ TC CLASSIFIER M: Jamal Hadi Salim L: netdev@vger.kernel.org S: Maintained +F: include/linux/pkt_cls.h F: include/net/pkt_cls.h -F: include/uapi/linux/pkt_cls.h F: net/sched/ TCP LOW PRIORITY MODULE @@ -7536,7 +7486,6 @@ L: netdev@vger.kernel.org S: Supported F: drivers/net/team/ F: include/linux/if_team.h -F: include/uapi/linux/if_team.h TECHNOTREND USB IR RECEIVER M: Sean Young @@ -7635,7 +7584,7 @@ L: netdev@vger.kernel.org (core kernel code) L: tipc-discussion@lists.sourceforge.net (user apps, general discussion) W: http://tipc.sourceforge.net/ S: Maintained -F: include/uapi/linux/tipc*.h +F: include/linux/tipc*.h F: net/tipc/ TILE ARCHITECTURE @@ -7685,7 +7634,6 @@ W: http://www.buzzard.org.uk/toshiba/ S: Maintained F: drivers/char/toshiba.c F: include/linux/toshiba.h -F: include/uapi/linux/toshiba.h TMIO MMC DRIVER M: Guennadi Liakhovetski @@ -7753,9 +7701,6 @@ F: drivers/tty/serial/serial_core.c F: include/linux/serial_core.h F: include/linux/serial.h F: include/linux/tty.h -F: include/uapi/linux/serial_core.h -F: include/uapi/linux/serial.h -F: include/uapi/linux/tty.h TUA9001 MEDIA DRIVER M: Antti Palosaari @@ -7835,7 +7780,7 @@ M: David Herrmann L: linux-input@vger.kernel.org S: Maintained F: drivers/hid/uhid.c -F: include/uapi/linux/uhid.h +F: include/linux/uhid.h ULTRA-WIDEBAND (UWB) SUBSYSTEM: L: linux-usb@vger.kernel.org @@ -7864,7 +7809,6 @@ S: Maintained F: Documentation/cdrom/ F: drivers/cdrom/cdrom.c F: include/linux/cdrom.h -F: include/uapi/linux/cdrom.h UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER M: Vinayak Holikatti @@ -7882,7 +7826,7 @@ T: git git://git.infradead.org/ubi-2.6.git S: Maintained F: drivers/mtd/ubi/ F: include/linux/mtd/ubi.h -F: include/uapi/mtd/ubi-user.h +F: include/mtd/ubi-user.h UNSORTED BLOCK IMAGES (UBI) Fastmap M: Richard Weinberger @@ -7916,7 +7860,7 @@ M: Oliver Neukum L: linux-usb@vger.kernel.org S: Maintained F: drivers/net/usb/cdc_*.c -F: include/uapi/linux/usb/cdc.h +F: include/linux/usb/cdc.h USB CYPRESS C67X00 DRIVER M: Peter Korsgaard @@ -8237,7 +8181,6 @@ S: Maintained F: Documentation/vfio.txt F: drivers/vfio/ F: include/linux/vfio.h -F: include/uapi/linux/vfio.h VIDEOBUF2 FRAMEWORK M: Pawel Osciak @@ -8254,7 +8197,6 @@ L: virtualization@lists.linux-foundation.org S: Maintained F: drivers/char/virtio_console.c F: include/linux/virtio_console.h -F: include/uapi/linux/virtio_console.h VIRTIO CORE, NET AND BLOCK DRIVERS M: Rusty Russell @@ -8273,7 +8215,7 @@ L: virtualization@lists.linux-foundation.org L: netdev@vger.kernel.org S: Maintained F: drivers/vhost/ -F: include/uapi/linux/vhost.h +F: include/linux/vhost.h VIA RHINE NETWORK DRIVER M: Roger Luethi @@ -8413,7 +8355,6 @@ S: Maintained F: Documentation/watchdog/ F: drivers/watchdog/ F: include/linux/watchdog.h -F: include/uapi/linux/watchdog.h WD7000 SCSI DRIVER M: Miroslav Zagorac @@ -8439,9 +8380,9 @@ L: wimax@linuxwimax.org S: Supported W: http://linuxwimax.org F: Documentation/wimax/README.wimax +F: include/linux/wimax.h F: include/linux/wimax/debug.h F: include/net/wimax.h -F: include/uapi/linux/wimax.h F: net/wimax/ WISTRON LAPTOP BUTTON DRIVER @@ -8559,7 +8500,6 @@ F: drivers/*/xen-*front.c F: drivers/xen/ F: arch/x86/include/asm/xen/ F: include/xen/ -F: include/uapi/xen/ XEN HYPERVISOR ARM M: Stefano Stabellini diff --git a/trunk/Makefile b/trunk/Makefile index a1667c4bcce5..80c5694b29fd 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 8 SUBLEVEL = 0 -EXTRAVERSION = -rc3 +EXTRAVERSION = -rc2 NAME = Terrified Chipmunk # *DOCUMENTATION* diff --git a/trunk/arch/alpha/include/asm/parport.h b/trunk/arch/alpha/include/asm/parport.h index 6abd0af11f13..c5ee7cbb2fcd 100644 --- a/trunk/arch/alpha/include/asm/parport.h +++ b/trunk/arch/alpha/include/asm/parport.h @@ -9,8 +9,8 @@ #ifndef _ASM_AXP_PARPORT_H #define _ASM_AXP_PARPORT_H 1 -static int parport_pc_find_isa_ports (int autoirq, int autodma); -static int parport_pc_find_nonpci_ports (int autoirq, int autodma) +static int __devinit parport_pc_find_isa_ports (int autoirq, int autodma); +static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma) { return parport_pc_find_isa_ports (autoirq, autodma); } diff --git a/trunk/arch/alpha/kernel/pci.c b/trunk/arch/alpha/kernel/pci.c index edb4e0097b75..ef757147cbf9 100644 --- a/trunk/arch/alpha/kernel/pci.c +++ b/trunk/arch/alpha/kernel/pci.c @@ -59,13 +59,13 @@ struct pci_controller *pci_isa_hose; * Quirks. */ -static void quirk_isa_bridge(struct pci_dev *dev) +static void __devinit quirk_isa_bridge(struct pci_dev *dev) { dev->class = PCI_CLASS_BRIDGE_ISA << 8; } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82378, quirk_isa_bridge); -static void quirk_cypress(struct pci_dev *dev) +static void __devinit quirk_cypress(struct pci_dev *dev) { /* The Notorious Cy82C693 chip. */ @@ -104,7 +104,7 @@ static void quirk_cypress(struct pci_dev *dev) DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, quirk_cypress); /* Called for each device after PCI setup is done. */ -static void pcibios_fixup_final(struct pci_dev *dev) +static void __devinit pcibios_fixup_final(struct pci_dev *dev) { unsigned int class = dev->class >> 8; @@ -198,7 +198,8 @@ subsys_initcall(pcibios_init); #ifdef ALPHA_RESTORE_SRM_SETUP static struct pdev_srm_saved_conf *srm_saved_configs; -void pdev_save_srm_config(struct pci_dev *dev) +void __devinit +pdev_save_srm_config(struct pci_dev *dev) { struct pdev_srm_saved_conf *tmp; static int printed = 0; @@ -240,7 +241,8 @@ pci_restore_srm_config(void) } #endif -void pcibios_fixup_bus(struct pci_bus *bus) +void __devinit +pcibios_fixup_bus(struct pci_bus *bus) { struct pci_dev *dev = bus->self; diff --git a/trunk/arch/alpha/kernel/smp.c b/trunk/arch/alpha/kernel/smp.c index 9603bc234b47..a41ad90a97a6 100644 --- a/trunk/arch/alpha/kernel/smp.c +++ b/trunk/arch/alpha/kernel/smp.c @@ -68,7 +68,7 @@ enum ipi_message_type { }; /* Set to a secondary's cpuid when it comes online. */ -static int smp_secondary_alive = 0; +static int smp_secondary_alive __devinitdata = 0; int smp_num_probed; /* Internal processor count */ int smp_num_cpus = 1; /* Number that came online. */ @@ -172,7 +172,7 @@ smp_callin(void) } /* Wait until hwrpb->txrdy is clear for cpu. Return -1 on timeout. */ -static int +static int __devinit wait_for_txrdy (unsigned long cpumask) { unsigned long timeout; @@ -468,7 +468,7 @@ smp_prepare_cpus(unsigned int max_cpus) smp_num_cpus = smp_num_probed; } -void +void __devinit smp_prepare_boot_cpu(void) { } diff --git a/trunk/arch/alpha/kernel/sys_titan.c b/trunk/arch/alpha/kernel/sys_titan.c index 5cf4a481b8c5..2533db280d9b 100644 --- a/trunk/arch/alpha/kernel/sys_titan.c +++ b/trunk/arch/alpha/kernel/sys_titan.c @@ -303,7 +303,7 @@ titan_late_init(void) } -static int +static int __devinit titan_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) { u8 intline; diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 67874b82a4ed..f95ba14ae3d0 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -371,6 +371,7 @@ config ARCH_CNS3XXX config ARCH_CLPS711X bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" select ARCH_REQUIRE_GPIOLIB + select ARCH_USES_GETTIMEOFFSET select AUTO_ZRELADDR select CLKDEV_LOOKUP select COMMON_CLK @@ -1229,7 +1230,6 @@ config ARM_ERRATA_430973 config ARM_ERRATA_458693 bool "ARM errata: Processor deadlock when a false hazard is created" depends on CPU_V7 - depends on !ARCH_MULTIPLATFORM help This option enables the workaround for the 458693 Cortex-A8 (r2p0) erratum. For very specific sequences of memory operations, it is @@ -1243,7 +1243,6 @@ config ARM_ERRATA_458693 config ARM_ERRATA_460075 bool "ARM errata: Data written to the L2 cache can be overwritten with stale data" depends on CPU_V7 - depends on !ARCH_MULTIPLATFORM help This option enables the workaround for the 460075 Cortex-A8 (r2p0) erratum. Any asynchronous access to the L2 cache may encounter a @@ -1256,7 +1255,6 @@ config ARM_ERRATA_460075 config ARM_ERRATA_742230 bool "ARM errata: DMB operation may be faulty" depends on CPU_V7 && SMP - depends on !ARCH_MULTIPLATFORM help This option enables the workaround for the 742230 Cortex-A9 (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction @@ -1269,7 +1267,6 @@ config ARM_ERRATA_742230 config ARM_ERRATA_742231 bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption" depends on CPU_V7 && SMP - depends on !ARCH_MULTIPLATFORM help This option enables the workaround for the 742231 Cortex-A9 (r2p0..r2p2) erratum. Under certain conditions, specific to the @@ -1320,7 +1317,6 @@ config PL310_ERRATA_727915 config ARM_ERRATA_743622 bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption" depends on CPU_V7 - depends on !ARCH_MULTIPLATFORM help This option enables the workaround for the 743622 Cortex-A9 (r2p*) erratum. Under very rare conditions, a faulty @@ -1334,7 +1330,6 @@ config ARM_ERRATA_743622 config ARM_ERRATA_751472 bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation" depends on CPU_V7 - depends on !ARCH_MULTIPLATFORM help This option enables the workaround for the 751472 Cortex-A9 (prior to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the diff --git a/trunk/arch/arm/boot/dts/armada-370-xp.dtsi b/trunk/arch/arm/boot/dts/armada-370-xp.dtsi index 4c0abe85405f..cf6c48a09eac 100644 --- a/trunk/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/trunk/arch/arm/boot/dts/armada-370-xp.dtsi @@ -50,19 +50,17 @@ ranges; serial@d0012000 { - compatible = "snps,dw-apb-uart"; + compatible = "ns16550"; reg = <0xd0012000 0x100>; reg-shift = <2>; interrupts = <41>; - reg-io-width = <4>; status = "disabled"; }; serial@d0012100 { - compatible = "snps,dw-apb-uart"; + compatible = "ns16550"; reg = <0xd0012100 0x100>; reg-shift = <2>; interrupts = <42>; - reg-io-width = <4>; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi index 271855a6e224..c45c7b4dc352 100644 --- a/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi +++ b/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi @@ -34,14 +34,7 @@ reg = <0>; clocks = <&cpuclk 0>; }; - - cpu@1 { - device_type = "cpu"; - compatible = "marvell,sheeva-v7"; - reg = <1>; - clocks = <&cpuclk 1>; - }; - }; + } soc { pinctrl { diff --git a/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi index 1c1937dbce73..a2aee5707377 100644 --- a/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi +++ b/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi @@ -85,13 +85,5 @@ #interrupts-cells = <2>; interrupts = <24>; }; - - ethernet@d0034000 { - compatible = "marvell,armada-370-neta"; - reg = <0xd0034000 0x2500>; - interrupts = <14>; - clocks = <&gateclk 1>; - status = "disabled"; - }; }; }; diff --git a/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi index 4905cf3a5ef8..da03a129243a 100644 --- a/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi +++ b/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi @@ -100,13 +100,5 @@ #interrupts-cells = <2>; interrupts = <24>; }; - - ethernet@d0034000 { - compatible = "marvell,armada-370-neta"; - reg = <0xd0034000 0x2500>; - interrupts = <14>; - clocks = <&gateclk 1>; - status = "disabled"; - }; }; }; diff --git a/trunk/arch/arm/boot/dts/armada-xp.dtsi b/trunk/arch/arm/boot/dts/armada-xp.dtsi index 2e37ef101c90..367aa3f94912 100644 --- a/trunk/arch/arm/boot/dts/armada-xp.dtsi +++ b/trunk/arch/arm/boot/dts/armada-xp.dtsi @@ -42,19 +42,17 @@ soc { serial@d0012200 { - compatible = "snps,dw-apb-uart"; + compatible = "ns16550"; reg = <0xd0012200 0x100>; reg-shift = <2>; interrupts = <43>; - reg-io-width = <4>; status = "disabled"; }; serial@d0012300 { - compatible = "snps,dw-apb-uart"; + compatible = "ns16550"; reg = <0xd0012300 0x100>; reg-shift = <2>; interrupts = <44>; - reg-io-width = <4>; status = "disabled"; }; @@ -95,6 +93,14 @@ status = "disabled"; }; + ethernet@d0034000 { + compatible = "marvell,armada-370-neta"; + reg = <0xd0034000 0x2500>; + interrupts = <14>; + clocks = <&gateclk 1>; + status = "disabled"; + }; + xor@d0060900 { compatible = "marvell,orion-xor"; reg = <0xd0060900 0x100 diff --git a/trunk/arch/arm/boot/dts/dbx5x0.dtsi b/trunk/arch/arm/boot/dts/dbx5x0.dtsi index 63f2fbcfe819..2efd9c891bc9 100644 --- a/trunk/arch/arm/boot/dts/dbx5x0.dtsi +++ b/trunk/arch/arm/boot/dts/dbx5x0.dtsi @@ -170,9 +170,7 @@ gpio-bank = <8>; }; - pinctrl@80157000 { - // This is actually the PRCMU base address - reg = <0x80157000 0x2000>; + pinctrl { compatible = "stericsson,nmk_pinctrl"; }; diff --git a/trunk/arch/arm/boot/dts/dove.dtsi b/trunk/arch/arm/boot/dts/dove.dtsi index 42eac1ff3cc8..f3f7e9d8adca 100644 --- a/trunk/arch/arm/boot/dts/dove.dtsi +++ b/trunk/arch/arm/boot/dts/dove.dtsi @@ -117,7 +117,6 @@ pinctrl: pinctrl@d0200 { compatible = "marvell,dove-pinctrl"; reg = <0xd0200 0x10>; - clocks = <&gate_clk 22>; }; spi0: spi@10600 { diff --git a/trunk/arch/arm/boot/dts/ecx-2000.dts b/trunk/arch/arm/boot/dts/ecx-2000.dts index 139b40cc3a23..46477ac1de99 100644 --- a/trunk/arch/arm/boot/dts/ecx-2000.dts +++ b/trunk/arch/arm/boot/dts/ecx-2000.dts @@ -32,7 +32,6 @@ cpu@0 { compatible = "arm,cortex-a15"; - device_type = "cpu"; reg = <0>; clocks = <&a9pll>; clock-names = "cpu"; @@ -40,7 +39,6 @@ cpu@1 { compatible = "arm,cortex-a15"; - device_type = "cpu"; reg = <1>; clocks = <&a9pll>; clock-names = "cpu"; @@ -48,7 +46,6 @@ cpu@2 { compatible = "arm,cortex-a15"; - device_type = "cpu"; reg = <2>; clocks = <&a9pll>; clock-names = "cpu"; @@ -56,7 +53,6 @@ cpu@3 { compatible = "arm,cortex-a15"; - device_type = "cpu"; reg = <3>; clocks = <&a9pll>; clock-names = "cpu"; diff --git a/trunk/arch/arm/boot/dts/exynos4210-smdkv310.dts b/trunk/arch/arm/boot/dts/exynos4210-smdkv310.dts index f63490707f3a..9b23a8255e39 100644 --- a/trunk/arch/arm/boot/dts/exynos4210-smdkv310.dts +++ b/trunk/arch/arm/boot/dts/exynos4210-smdkv310.dts @@ -26,7 +26,7 @@ }; chosen { - bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; + bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; }; sdhci@12530000 { diff --git a/trunk/arch/arm/boot/dts/exynos5250.dtsi b/trunk/arch/arm/boot/dts/exynos5250.dtsi index 3acf594ea60b..2e3b6efaf1a2 100644 --- a/trunk/arch/arm/boot/dts/exynos5250.dtsi +++ b/trunk/arch/arm/boot/dts/exynos5250.dtsi @@ -574,7 +574,7 @@ hdmi { compatible = "samsung,exynos5-hdmi"; - reg = <0x14530000 0x70000>; + reg = <0x14530000 0x100000>; interrupts = <0 95 0>; }; diff --git a/trunk/arch/arm/boot/dts/exynos5440-ssdk5440.dts b/trunk/arch/arm/boot/dts/exynos5440-ssdk5440.dts index 81e2c964a900..921c83cf694f 100644 --- a/trunk/arch/arm/boot/dts/exynos5440-ssdk5440.dts +++ b/trunk/arch/arm/boot/dts/exynos5440-ssdk5440.dts @@ -21,7 +21,7 @@ }; chosen { - bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x81000000,8M console=ttySAC0,115200 init=/linuxrc"; + bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x81000000,8M console=ttySAC2,115200 init=/linuxrc"; }; spi { diff --git a/trunk/arch/arm/boot/dts/highbank.dts b/trunk/arch/arm/boot/dts/highbank.dts index 5927a8df5625..a9ae5d32e80d 100644 --- a/trunk/arch/arm/boot/dts/highbank.dts +++ b/trunk/arch/arm/boot/dts/highbank.dts @@ -30,37 +30,33 @@ #address-cells = <1>; #size-cells = <0>; - cpu@900 { + cpu@0 { compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x900>; + reg = <0>; next-level-cache = <&L2>; clocks = <&a9pll>; clock-names = "cpu"; }; - cpu@901 { + cpu@1 { compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x901>; + reg = <1>; next-level-cache = <&L2>; clocks = <&a9pll>; clock-names = "cpu"; }; - cpu@902 { + cpu@2 { compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x902>; + reg = <2>; next-level-cache = <&L2>; clocks = <&a9pll>; clock-names = "cpu"; }; - cpu@903 { + cpu@3 { compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x903>; + reg = <3>; next-level-cache = <&L2>; clocks = <&a9pll>; clock-names = "cpu"; diff --git a/trunk/arch/arm/boot/dts/imx23-olinuxino.dts b/trunk/arch/arm/boot/dts/imx23-olinuxino.dts index e7484e4ea659..7c43b8e70b9f 100644 --- a/trunk/arch/arm/boot/dts/imx23-olinuxino.dts +++ b/trunk/arch/arm/boot/dts/imx23-olinuxino.dts @@ -39,17 +39,17 @@ hog_pins_a: hog@0 { reg = <0>; fsl,pinmux-ids = < - 0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */ + 0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */ >; fsl,drive-strength = <0>; fsl,voltage = <1>; fsl,pull-up = <0>; }; - led_pin_gpio2_1: led_gpio2_1@0 { + led_pin_gpio0_17: led_gpio0_17@0 { reg = <0>; fsl,pinmux-ids = < - 0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */ + 0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */ >; fsl,drive-strength = <0>; fsl,voltage = <1>; @@ -110,7 +110,7 @@ leds { compatible = "gpio-leds"; pinctrl-names = "default"; - pinctrl-0 = <&led_pin_gpio2_1>; + pinctrl-0 = <&led_pin_gpio0_17>; user { label = "green"; diff --git a/trunk/arch/arm/boot/dts/imx31-bug.dts b/trunk/arch/arm/boot/dts/imx31-bug.dts index 7f67402328d3..24731cb78e8e 100644 --- a/trunk/arch/arm/boot/dts/imx31-bug.dts +++ b/trunk/arch/arm/boot/dts/imx31-bug.dts @@ -14,7 +14,7 @@ / { model = "Buglabs i.MX31 Bug 1.x"; - compatible = "buglabs,imx31-bug", "fsl,imx31"; + compatible = "fsl,imx31-bug", "fsl,imx31"; memory { reg = <0x80000000 0x8000000>; /* 128M */ diff --git a/trunk/arch/arm/boot/dts/imx53.dtsi b/trunk/arch/arm/boot/dts/imx53.dtsi index edc3f1eb6699..552aed4ff982 100644 --- a/trunk/arch/arm/boot/dts/imx53.dtsi +++ b/trunk/arch/arm/boot/dts/imx53.dtsi @@ -492,7 +492,7 @@ compatible = "fsl,imx53-flexcan", "fsl,p1010-flexcan"; reg = <0x53fcc000 0x4000>; interrupts = <83>; - clocks = <&clks 87>, <&clks 86>; + clocks = <&clks 158>, <&clks 157>; clock-names = "ipg", "per"; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-6282.dtsi b/trunk/arch/arm/boot/dts/kirkwood-6282.dtsi index 4ccea2130a6c..9ae2004d5675 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-6282.dtsi +++ b/trunk/arch/arm/boot/dts/kirkwood-6282.dtsi @@ -39,7 +39,6 @@ #size-cells = <0>; interrupts = <32>; clock-frequency = <100000>; - clocks = <&gate_clk 7>; status = "disabled"; }; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-topkick.dts b/trunk/arch/arm/boot/dts/kirkwood-topkick.dts index cd15452a52a6..c0de5a7f660d 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-topkick.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-topkick.dts @@ -82,21 +82,4 @@ gpios = <&gpio1 16 1>; }; }; - regulators { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <0>; - - sata0_power: regulator@1 { - compatible = "regulator-fixed"; - reg = <1>; - regulator-name = "SATA0 Power"; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - enable-active-high; - regulator-always-on; - regulator-boot-on; - gpio = <&gpio1 4 0>; - }; - }; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood.dtsi b/trunk/arch/arm/boot/dts/kirkwood.dtsi index 110d6cbb795b..7735cee4a9c6 100644 --- a/trunk/arch/arm/boot/dts/kirkwood.dtsi +++ b/trunk/arch/arm/boot/dts/kirkwood.dtsi @@ -144,7 +144,6 @@ compatible = "marvell,orion-ehci"; reg = <0x50000 0x1000>; interrupts = <19>; - clocks = <&gate_clk 3>; status = "okay"; }; 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/arch/arm/common/sa1111.c b/trunk/arch/arm/common/sa1111.c index e57d7e5bf96a..9173d112ea01 100644 --- a/trunk/arch/arm/common/sa1111.c +++ b/trunk/arch/arm/common/sa1111.c @@ -686,7 +686,8 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, * %-EINVAL no platform data passed * %0 successful. */ -static int __sa1111_probe(struct device *me, struct resource *mem, int irq) +static int __devinit +__sa1111_probe(struct device *me, struct resource *mem, int irq) { struct sa1111_platform_data *pd = me->platform_data; struct sa1111 *sachip; @@ -1010,7 +1011,7 @@ static int sa1111_resume(struct platform_device *dev) #define sa1111_resume NULL #endif -static int sa1111_probe(struct platform_device *pdev) +static int __devinit sa1111_probe(struct platform_device *pdev) { struct resource *mem; int irq; diff --git a/trunk/arch/arm/common/scoop.c b/trunk/arch/arm/common/scoop.c index a5c3dc38aa18..0c616d5fcb0f 100644 --- a/trunk/arch/arm/common/scoop.c +++ b/trunk/arch/arm/common/scoop.c @@ -176,7 +176,7 @@ static int scoop_resume(struct platform_device *dev) #define scoop_resume NULL #endif -static int scoop_probe(struct platform_device *pdev) +static int __devinit scoop_probe(struct platform_device *pdev) { struct scoop_dev *devptr; struct scoop_config *inf; @@ -243,7 +243,7 @@ static int scoop_probe(struct platform_device *pdev) return ret; } -static int scoop_remove(struct platform_device *pdev) +static int __devexit scoop_remove(struct platform_device *pdev) { struct scoop_dev *sdev = platform_get_drvdata(pdev); int ret; @@ -268,7 +268,7 @@ static int scoop_remove(struct platform_device *pdev) static struct platform_driver scoop_driver = { .probe = scoop_probe, - .remove = scoop_remove, + .remove = __devexit_p(scoop_remove), .suspend = scoop_suspend, .resume = scoop_resume, .driver = { diff --git a/trunk/drivers/irqchip/irq-vic.c b/trunk/arch/arm/common/vic.c similarity index 90% rename from trunk/drivers/irqchip/irq-vic.c rename to trunk/arch/arm/common/vic.c index 3cf97aaebe40..e4df17ca90c7 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, @@ -261,7 +206,6 @@ static void __init vic_register(void __iomem *base, unsigned int irq, struct device_node *node) { struct vic_device *v; - int i; if (vic_id >= ARRAY_SIZE(vic_devices)) { printk(KERN_ERR "%s: too few VICs, increase CONFIG_ARM_VIC_NR\n", __func__); @@ -273,14 +217,9 @@ 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); - /* create an IRQ mapping for each valid IRQ */ - for (i = 0; i < fls(valid_sources); i++) - if (valid_sources & (1 << i)) - irq_create_mapping(v->domain, i); } static void vic_ack_irq(struct irq_data *d) @@ -477,13 +416,44 @@ int __init vic_of_init(struct device_node *node, struct device_node *parent) return -EIO; /* - * Passing 0 as first IRQ makes the simple domain allocate descriptors + * Passing -1 as first IRQ makes the simple domain allocate descriptors */ - __vic_init(regs, 0, ~0, ~0, node); + __vic_init(regs, -1, ~0, ~0, node); 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/mvebu_defconfig b/trunk/arch/arm/configs/mvebu_defconfig index b5bc96cb65a7..a702fb345c01 100644 --- a/trunk/arch/arm/configs/mvebu_defconfig +++ b/trunk/arch/arm/configs/mvebu_defconfig @@ -33,7 +33,9 @@ CONFIG_MVNETA=y CONFIG_MARVELL_PHY=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_I2C=y +CONFIG_I2C_MV64XXX=y CONFIG_GPIOLIB=y CONFIG_GPIO_SYSFS=y # CONFIG_USB_SUPPORT is not set 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/kernel/bios32.c b/trunk/arch/arm/kernel/bios32.c index 379cf3292390..9b722612553d 100644 --- a/trunk/arch/arm/kernel/bios32.c +++ b/trunk/arch/arm/kernel/bios32.c @@ -78,7 +78,7 @@ void pcibios_report_status(u_int status_mask, int warn) * Bug 3 is responsible for the sound DMA grinding to a halt. We now * live with bug 2. */ -static void pci_fixup_83c553(struct pci_dev *dev) +static void __devinit pci_fixup_83c553(struct pci_dev *dev) { /* * Set memory region to start at address 0, and enable IO @@ -130,7 +130,7 @@ static void pci_fixup_83c553(struct pci_dev *dev) } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_83C553, pci_fixup_83c553); -static void pci_fixup_unassign(struct pci_dev *dev) +static void __devinit pci_fixup_unassign(struct pci_dev *dev) { dev->resource[0].end -= dev->resource[0].start; dev->resource[0].start = 0; @@ -142,7 +142,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND2, PCI_DEVICE_ID_WINBOND2_89C940F, * if it is the host bridge by marking it as such. These resources are of * no consequence to the PCI layer (they are handled elsewhere). */ -static void pci_fixup_dec21285(struct pci_dev *dev) +static void __devinit pci_fixup_dec21285(struct pci_dev *dev) { int i; @@ -161,7 +161,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285, pci_fixup_d /* * PCI IDE controllers use non-standard I/O port decoding, respect it. */ -static void pci_fixup_ide_bases(struct pci_dev *dev) +static void __devinit pci_fixup_ide_bases(struct pci_dev *dev) { struct resource *r; int i; @@ -182,7 +182,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases); /* * Put the DEC21142 to sleep */ -static void pci_fixup_dec21142(struct pci_dev *dev) +static void __devinit pci_fixup_dec21142(struct pci_dev *dev) { pci_write_config_dword(dev, 0x40, 0x80000000); } @@ -204,7 +204,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142, pci_fixup_d * functional. However, The CY82C693U _does not work_ in bus * master mode without locking the PCI bus solid. */ -static void pci_fixup_cy82c693(struct pci_dev *dev) +static void __devinit pci_fixup_cy82c693(struct pci_dev *dev) { if ((dev->class >> 8) == PCI_CLASS_STORAGE_IDE) { u32 base0, base1; @@ -254,7 +254,7 @@ static void pci_fixup_cy82c693(struct pci_dev *dev) } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693); -static void pci_fixup_it8152(struct pci_dev *dev) +static void __devinit pci_fixup_it8152(struct pci_dev *dev) { int i; /* fixup for ITE 8152 devices */ @@ -361,7 +361,9 @@ void pcibios_fixup_bus(struct pci_bus *bus) printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n", bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis"); } +#ifdef CONFIG_HOTPLUG EXPORT_SYMBOL(pcibios_fixup_bus); +#endif /* * Swizzle the device pin each time we cross a bridge. If a platform does @@ -378,7 +380,7 @@ EXPORT_SYMBOL(pcibios_fixup_bus); * PCI standard swizzle is implemented on plug-in cards and Cardbus based * PCI extenders, so it can not be ignored. */ -static u8 pcibios_swizzle(struct pci_dev *dev, u8 *pin) +static u8 __devinit pcibios_swizzle(struct pci_dev *dev, u8 *pin) { struct pci_sys_data *sys = dev->sysdata; int slot, oldpin = *pin; diff --git a/trunk/arch/arm/kernel/etm.c b/trunk/arch/arm/kernel/etm.c index 9b6de8c988f3..36d20bd50120 100644 --- a/trunk/arch/arm/kernel/etm.c +++ b/trunk/arch/arm/kernel/etm.c @@ -339,7 +339,7 @@ static struct miscdevice etb_miscdev = { .fops = &etb_fops, }; -static int etb_probe(struct amba_device *dev, const struct amba_id *id) +static int __devinit etb_probe(struct amba_device *dev, const struct amba_id *id) { struct tracectx *t = &tracer; int ret = 0; @@ -531,7 +531,7 @@ static ssize_t trace_mode_store(struct kobject *kobj, static struct kobj_attribute trace_mode_attr = __ATTR(trace_mode, 0644, trace_mode_show, trace_mode_store); -static int etm_probe(struct amba_device *dev, const struct amba_id *id) +static int __devinit etm_probe(struct amba_device *dev, const struct amba_id *id) { struct tracectx *t = &tracer; int ret = 0; 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/perf_event_cpu.c b/trunk/arch/arm/kernel/perf_event_cpu.c index 5f6620684e25..9a4f6307a016 100644 --- a/trunk/arch/arm/kernel/perf_event_cpu.c +++ b/trunk/arch/arm/kernel/perf_event_cpu.c @@ -132,7 +132,7 @@ static int cpu_pmu_request_irq(struct arm_pmu *cpu_pmu, irq_handler_t handler) return 0; } -static void cpu_pmu_init(struct arm_pmu *cpu_pmu) +static void __devinit cpu_pmu_init(struct arm_pmu *cpu_pmu) { int cpu; for_each_possible_cpu(cpu) { @@ -178,7 +178,7 @@ static struct notifier_block __cpuinitdata cpu_pmu_hotplug_notifier = { /* * PMU platform driver and devicetree bindings. */ -static struct of_device_id cpu_pmu_of_device_ids[] = { +static struct of_device_id __devinitdata cpu_pmu_of_device_ids[] = { {.compatible = "arm,cortex-a15-pmu", .data = armv7_a15_pmu_init}, {.compatible = "arm,cortex-a9-pmu", .data = armv7_a9_pmu_init}, {.compatible = "arm,cortex-a8-pmu", .data = armv7_a8_pmu_init}, @@ -190,7 +190,7 @@ static struct of_device_id cpu_pmu_of_device_ids[] = { {}, }; -static struct platform_device_id cpu_pmu_plat_device_ids[] = { +static struct platform_device_id __devinitdata cpu_pmu_plat_device_ids[] = { {.name = "arm-pmu"}, {}, }; @@ -198,7 +198,7 @@ static struct platform_device_id cpu_pmu_plat_device_ids[] = { /* * CPU PMU identification and probing. */ -static int probe_current_pmu(struct arm_pmu *pmu) +static int __devinit probe_current_pmu(struct arm_pmu *pmu) { int cpu = get_cpu(); unsigned long cpuid = read_cpuid_id(); @@ -252,7 +252,7 @@ static int probe_current_pmu(struct arm_pmu *pmu) return ret; } -static int cpu_pmu_device_probe(struct platform_device *pdev) +static int __devinit cpu_pmu_device_probe(struct platform_device *pdev) { const struct of_device_id *of_id; int (*init_fn)(struct arm_pmu *); diff --git a/trunk/arch/arm/kernel/perf_event_v6.c b/trunk/arch/arm/kernel/perf_event_v6.c index 041d0526a288..f3e22ff8b6a2 100644 --- a/trunk/arch/arm/kernel/perf_event_v6.c +++ b/trunk/arch/arm/kernel/perf_event_v6.c @@ -653,7 +653,7 @@ static int armv6_map_event(struct perf_event *event) &armv6_perf_cache_map, 0xFF); } -static int armv6pmu_init(struct arm_pmu *cpu_pmu) +static int __devinit armv6pmu_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name = "v6"; cpu_pmu->handle_irq = armv6pmu_handle_irq; @@ -685,7 +685,7 @@ static int armv6mpcore_map_event(struct perf_event *event) &armv6mpcore_perf_cache_map, 0xFF); } -static int armv6mpcore_pmu_init(struct arm_pmu *cpu_pmu) +static int __devinit armv6mpcore_pmu_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name = "v6mpcore"; cpu_pmu->handle_irq = armv6pmu_handle_irq; diff --git a/trunk/arch/arm/kernel/perf_event_v7.c b/trunk/arch/arm/kernel/perf_event_v7.c index 4fbc757d9cff..7d0cce85d17e 100644 --- a/trunk/arch/arm/kernel/perf_event_v7.c +++ b/trunk/arch/arm/kernel/perf_event_v7.c @@ -1226,7 +1226,7 @@ static void armv7pmu_init(struct arm_pmu *cpu_pmu) cpu_pmu->max_period = (1LLU << 32) - 1; }; -static u32 armv7_read_num_pmnc_events(void) +static u32 __devinit armv7_read_num_pmnc_events(void) { u32 nb_cnt; @@ -1237,7 +1237,7 @@ static u32 armv7_read_num_pmnc_events(void) return nb_cnt + 1; } -static int armv7_a8_pmu_init(struct arm_pmu *cpu_pmu) +static int __devinit armv7_a8_pmu_init(struct arm_pmu *cpu_pmu) { armv7pmu_init(cpu_pmu); cpu_pmu->name = "ARMv7 Cortex-A8"; @@ -1246,7 +1246,7 @@ static int armv7_a8_pmu_init(struct arm_pmu *cpu_pmu) return 0; } -static int armv7_a9_pmu_init(struct arm_pmu *cpu_pmu) +static int __devinit armv7_a9_pmu_init(struct arm_pmu *cpu_pmu) { armv7pmu_init(cpu_pmu); cpu_pmu->name = "ARMv7 Cortex-A9"; @@ -1255,7 +1255,7 @@ static int armv7_a9_pmu_init(struct arm_pmu *cpu_pmu) return 0; } -static int armv7_a5_pmu_init(struct arm_pmu *cpu_pmu) +static int __devinit armv7_a5_pmu_init(struct arm_pmu *cpu_pmu) { armv7pmu_init(cpu_pmu); cpu_pmu->name = "ARMv7 Cortex-A5"; @@ -1264,7 +1264,7 @@ static int armv7_a5_pmu_init(struct arm_pmu *cpu_pmu) return 0; } -static int armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) +static int __devinit armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) { armv7pmu_init(cpu_pmu); cpu_pmu->name = "ARMv7 Cortex-A15"; @@ -1274,7 +1274,7 @@ static int armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) return 0; } -static int armv7_a7_pmu_init(struct arm_pmu *cpu_pmu) +static int __devinit armv7_a7_pmu_init(struct arm_pmu *cpu_pmu) { armv7pmu_init(cpu_pmu); cpu_pmu->name = "ARMv7 Cortex-A7"; diff --git a/trunk/arch/arm/kernel/perf_event_xscale.c b/trunk/arch/arm/kernel/perf_event_xscale.c index 2b0fe30ec12e..0c8265e53d5f 100644 --- a/trunk/arch/arm/kernel/perf_event_xscale.c +++ b/trunk/arch/arm/kernel/perf_event_xscale.c @@ -440,7 +440,7 @@ static int xscale_map_event(struct perf_event *event) &xscale_perf_cache_map, 0xFF); } -static int xscale1pmu_init(struct arm_pmu *cpu_pmu) +static int __devinit xscale1pmu_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name = "xscale1"; cpu_pmu->handle_irq = xscale1pmu_handle_irq; @@ -810,7 +810,7 @@ static inline void xscale2pmu_write_counter(struct perf_event *event, u32 val) } } -static int xscale2pmu_init(struct arm_pmu *cpu_pmu) +static int __devinit xscale2pmu_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name = "xscale2"; cpu_pmu->handle_irq = xscale2pmu_handle_irq; 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/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 index 5b4760fe53de..bc7a1c4a1f6a 100644 --- a/trunk/arch/arm/mach-at91/board-neocore926.c +++ b/trunk/arch/arm/mach-at91/board-neocore926.c @@ -378,7 +378,7 @@ static void __init neocore926_board_init(void) MACHINE_START(NEOCORE926, "ADENEO NEOCORE 926") /* Maintainer: ADENEO */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = neocore926_init_early, diff --git a/trunk/arch/arm/mach-at91/board-pcontrol-g20.c b/trunk/arch/arm/mach-at91/board-pcontrol-g20.c index 65c0d6b5ecba..0299554495dd 100644 --- a/trunk/arch/arm/mach-at91/board-pcontrol-g20.c +++ b/trunk/arch/arm/mach-at91/board-pcontrol-g20.c @@ -217,7 +217,7 @@ static void __init pcontrol_g20_board_init(void) MACHINE_START(PCONTROL_G20, "PControl G20") /* Maintainer: pgsellmann@portner-elektronik.at */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = pcontrol_g20_init_early, diff --git a/trunk/arch/arm/mach-at91/board-picotux200.c b/trunk/arch/arm/mach-at91/board-picotux200.c index ab2b2ec36c14..4938f1cd5e13 100644 --- a/trunk/arch/arm/mach-at91/board-picotux200.c +++ b/trunk/arch/arm/mach-at91/board-picotux200.c @@ -119,7 +119,7 @@ static void __init picotux200_board_init(void) MACHINE_START(PICOTUX2XX, "picotux 200") /* Maintainer: Kleinhenz Elektronik GmbH */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = picotux200_init_early, diff --git a/trunk/arch/arm/mach-at91/board-qil-a9260.c b/trunk/arch/arm/mach-at91/board-qil-a9260.c index aa3bc9b0f150..33b1628467ea 100644 --- a/trunk/arch/arm/mach-at91/board-qil-a9260.c +++ b/trunk/arch/arm/mach-at91/board-qil-a9260.c @@ -257,7 +257,7 @@ static void __init ek_board_init(void) MACHINE_START(QIL_A9260, "CALAO QIL_A9260") /* Maintainer: calao-systems */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-rm9200-dt.c b/trunk/arch/arm/mach-at91/board-rm9200-dt.c index 3fcb6623a33e..5f9ce3da3fde 100644 --- a/trunk/arch/arm/mach-at91/board-rm9200-dt.c +++ b/trunk/arch/arm/mach-at91/board-rm9200-dt.c @@ -47,7 +47,7 @@ static const char *at91rm9200_dt_board_compat[] __initdata = { }; DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200 (Device Tree)") - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = at91rm9200_dt_initialize, diff --git a/trunk/arch/arm/mach-at91/board-rm9200dk.c b/trunk/arch/arm/mach-at91/board-rm9200dk.c index 690541b18cbc..9e5061bef0d0 100644 --- a/trunk/arch/arm/mach-at91/board-rm9200dk.c +++ b/trunk/arch/arm/mach-at91/board-rm9200dk.c @@ -219,7 +219,7 @@ static void __init dk_board_init(void) MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK") /* Maintainer: SAN People/Atmel */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = dk_init_early, diff --git a/trunk/arch/arm/mach-at91/board-rm9200ek.c b/trunk/arch/arm/mach-at91/board-rm9200ek.c index 8b17dadc1aba..58277dbc718f 100644 --- a/trunk/arch/arm/mach-at91/board-rm9200ek.c +++ b/trunk/arch/arm/mach-at91/board-rm9200ek.c @@ -186,7 +186,7 @@ static void __init ek_board_init(void) MACHINE_START(AT91RM9200EK, "Atmel AT91RM9200-EK") /* Maintainer: SAN People/Atmel */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-rsi-ews.c b/trunk/arch/arm/mach-at91/board-rsi-ews.c index f6d7f1958c7e..2e8b8339a206 100644 --- a/trunk/arch/arm/mach-at91/board-rsi-ews.c +++ b/trunk/arch/arm/mach-at91/board-rsi-ews.c @@ -222,7 +222,7 @@ static void __init rsi_ews_board_init(void) MACHINE_START(RSI_EWS, "RSI EWS") /* Maintainer: Josef Holzmayr */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = rsi_ews_init_early, diff --git a/trunk/arch/arm/mach-at91/board-sam9-l9260.c b/trunk/arch/arm/mach-at91/board-sam9-l9260.c index 43ee4dc43b50..b75fbf6003a1 100644 --- a/trunk/arch/arm/mach-at91/board-sam9-l9260.c +++ b/trunk/arch/arm/mach-at91/board-sam9-l9260.c @@ -218,7 +218,7 @@ static void __init ek_board_init(void) MACHINE_START(SAM9_L9260, "Olimex SAM9-L9260") /* Maintainer: Olimex */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-sam9260ek.c b/trunk/arch/arm/mach-at91/board-sam9260ek.c index 0b153c87521d..f0135cd1d858 100644 --- a/trunk/arch/arm/mach-at91/board-sam9260ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9260ek.c @@ -343,7 +343,7 @@ static void __init ek_board_init(void) MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK") /* Maintainer: Atmel */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-sam9261ek.c b/trunk/arch/arm/mach-at91/board-sam9261ek.c index b446645c7727..13ebaa8e4100 100644 --- a/trunk/arch/arm/mach-at91/board-sam9261ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9261ek.c @@ -612,7 +612,7 @@ MACHINE_START(AT91SAM9261EK, "Atmel AT91SAM9261-EK") MACHINE_START(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK") #endif /* Maintainer: Atmel */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-sam9263ek.c b/trunk/arch/arm/mach-at91/board-sam9263ek.c index 3284df05df14..89b9608742a7 100644 --- a/trunk/arch/arm/mach-at91/board-sam9263ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9263ek.c @@ -443,7 +443,7 @@ static void __init ek_board_init(void) MACHINE_START(AT91SAM9263EK, "Atmel AT91SAM9263-EK") /* Maintainer: Atmel */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-sam9g20ek.c b/trunk/arch/arm/mach-at91/board-sam9g20ek.c index f9cd1f2c7146..1b7dd9f688d3 100644 --- a/trunk/arch/arm/mach-at91/board-sam9g20ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9g20ek.c @@ -409,7 +409,7 @@ static void __init ek_board_init(void) MACHINE_START(AT91SAM9G20EK, "Atmel AT91SAM9G20-EK") /* Maintainer: Atmel */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, @@ -419,7 +419,7 @@ MACHINE_END MACHINE_START(AT91SAM9G20EK_2MMC, "Atmel AT91SAM9G20-EK 2 MMC Slot Mod") /* Maintainer: Atmel */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-sam9m10g45ek.c b/trunk/arch/arm/mach-at91/board-sam9m10g45ek.c index 2a94896a1375..e4cc375e3a32 100644 --- a/trunk/arch/arm/mach-at91/board-sam9m10g45ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9m10g45ek.c @@ -502,7 +502,7 @@ static void __init ek_board_init(void) MACHINE_START(AT91SAM9M10G45EK, "Atmel AT91SAM9M10G45-EK") /* Maintainer: Atmel */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-sam9rlek.c b/trunk/arch/arm/mach-at91/board-sam9rlek.c index aa265dcf2128..377a1097afa7 100644 --- a/trunk/arch/arm/mach-at91/board-sam9rlek.c +++ b/trunk/arch/arm/mach-at91/board-sam9rlek.c @@ -320,7 +320,7 @@ static void __init ek_board_init(void) MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK") /* Maintainer: Atmel */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-snapper9260.c b/trunk/arch/arm/mach-at91/board-snapper9260.c index 3aaa9784cf0e..98771500ddb9 100644 --- a/trunk/arch/arm/mach-at91/board-snapper9260.c +++ b/trunk/arch/arm/mach-at91/board-snapper9260.c @@ -177,7 +177,7 @@ static void __init snapper9260_board_init(void) } MACHINE_START(SNAPPER_9260, "Bluewater Systems Snapper 9260/9G20 module") - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = snapper9260_init_early, diff --git a/trunk/arch/arm/mach-at91/board-stamp9g20.c b/trunk/arch/arm/mach-at91/board-stamp9g20.c index a033b8df9fb2..48a962b61fa3 100644 --- a/trunk/arch/arm/mach-at91/board-stamp9g20.c +++ b/trunk/arch/arm/mach-at91/board-stamp9g20.c @@ -272,7 +272,7 @@ static void __init stamp9g20evb_board_init(void) MACHINE_START(PORTUXG20, "taskit PortuxG20") /* Maintainer: taskit GmbH */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = stamp9g20_init_early, @@ -282,7 +282,7 @@ MACHINE_END MACHINE_START(STAMP9G20, "taskit Stamp9G20") /* Maintainer: taskit GmbH */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = stamp9g20_init_early, diff --git a/trunk/arch/arm/mach-at91/board-usb-a926x.c b/trunk/arch/arm/mach-at91/board-usb-a926x.c index 2487d944a1bc..c1060f96e589 100644 --- a/trunk/arch/arm/mach-at91/board-usb-a926x.c +++ b/trunk/arch/arm/mach-at91/board-usb-a926x.c @@ -355,7 +355,7 @@ static void __init ek_board_init(void) MACHINE_START(USB_A9263, "CALAO USB_A9263") /* Maintainer: calao-systems */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, @@ -365,7 +365,7 @@ MACHINE_END MACHINE_START(USB_A9260, "CALAO USB_A9260") /* Maintainer: calao-systems */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, @@ -375,7 +375,7 @@ MACHINE_END MACHINE_START(USB_A9G20, "CALAO USB_A92G0") /* Maintainer: Jean-Christophe PLAGNIOL-VILLARD */ - .init_time = at91sam926x_pit_init, + .timer = &at91sam926x_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = ek_init_early, diff --git a/trunk/arch/arm/mach-at91/board-yl-9200.c b/trunk/arch/arm/mach-at91/board-yl-9200.c index be083771df2e..8673aebcb85d 100644 --- a/trunk/arch/arm/mach-at91/board-yl-9200.c +++ b/trunk/arch/arm/mach-at91/board-yl-9200.c @@ -587,7 +587,7 @@ static void __init yl9200_board_init(void) MACHINE_START(YL9200, "uCdragon YL-9200") /* Maintainer: S.Birtles */ - .init_time = at91rm9200_timer_init, + .timer = &at91rm9200_timer, .map_io = at91_map_io, .handle_irq = at91_aic_handle_irq, .init_early = yl9200_init_early, diff --git a/trunk/arch/arm/mach-at91/generic.h b/trunk/arch/arm/mach-at91/generic.h index 78ab06548658..fc593d615e7d 100644 --- a/trunk/arch/arm/mach-at91/generic.h +++ b/trunk/arch/arm/mach-at91/generic.h @@ -36,11 +36,12 @@ extern int __init at91_aic5_of_init(struct device_node *node, /* Timer */ +struct sys_timer; extern void at91rm9200_ioremap_st(u32 addr); -extern void at91rm9200_timer_init(void); +extern struct sys_timer at91rm9200_timer; extern void at91sam926x_ioremap_pit(u32 addr); -extern void at91sam926x_pit_init(void); -extern void at91x40_timer_init(void); +extern struct sys_timer at91sam926x_timer; +extern struct sys_timer at91x40_timer; /* Clocks */ #ifdef CONFIG_AT91_PMC_UNIT diff --git a/trunk/arch/arm/mach-bcm/board_bcm.c b/trunk/arch/arm/mach-bcm/board_bcm.c index f0f9abafad29..3a62f1b1cabc 100644 --- a/trunk/arch/arm/mach-bcm/board_bcm.c +++ b/trunk/arch/arm/mach-bcm/board_bcm.c @@ -11,19 +11,34 @@ * GNU General Public License for more details. */ +#include #include #include #include #include -#include #include +#include + #include +static const struct of_device_id irq_match[] = { + {.compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, + {} +}; + static void timer_init(void) { } +static struct sys_timer timer = { + .init = timer_init, +}; + +static void __init init_irq(void) +{ + of_irq_init(irq_match); +} static void __init board_init(void) { @@ -34,8 +49,9 @@ static void __init board_init(void) static const char * const bcm11351_dt_compat[] = { "bcm,bcm11351", NULL, }; DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor") - .init_irq = irqchip_init, - .init_time = timer_init, + .init_irq = init_irq, + .timer = &timer, .init_machine = board_init, .dt_compat = bcm11351_dt_compat, + .handle_irq = gic_handle_irq, MACHINE_END diff --git a/trunk/arch/arm/mach-bcm2835/bcm2835.c b/trunk/arch/arm/mach-bcm2835/bcm2835.c index 176d2d24782d..f0d739f4b7a3 100644 --- a/trunk/arch/arm/mach-bcm2835/bcm2835.c +++ b/trunk/arch/arm/mach-bcm2835/bcm2835.c @@ -104,7 +104,7 @@ DT_MACHINE_START(BCM2835, "BCM2835") .init_irq = bcm2835_init_irq, .handle_irq = bcm2835_handle_irq, .init_machine = bcm2835_init, - .init_time = bcm2835_timer_init, + .timer = &bcm2835_timer, .restart = bcm2835_restart, .dt_compat = bcm2835_compat MACHINE_END diff --git a/trunk/arch/arm/mach-clps711x/board-autcpu12.c b/trunk/arch/arm/mach-clps711x/board-autcpu12.c index f38584709df7..3fbf43f72589 100644 --- a/trunk/arch/arm/mach-clps711x/board-autcpu12.c +++ b/trunk/arch/arm/mach-clps711x/board-autcpu12.c @@ -170,7 +170,7 @@ MACHINE_START(AUTCPU12, "autronix autcpu12") .nr_irqs = CLPS711X_NR_IRQS, .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, - .init_time = clps711x_timer_init, + .timer = &clps711x_timer, .init_machine = autcpu12_init, .init_late = autcpu12_init_late, .handle_irq = clps711x_handle_irq, diff --git a/trunk/arch/arm/mach-clps711x/board-cdb89712.c b/trunk/arch/arm/mach-clps711x/board-cdb89712.c index baab7da33c9b..60900ddf97c9 100644 --- a/trunk/arch/arm/mach-clps711x/board-cdb89712.c +++ b/trunk/arch/arm/mach-clps711x/board-cdb89712.c @@ -140,7 +140,7 @@ MACHINE_START(CDB89712, "Cirrus-CDB89712") .nr_irqs = CLPS711X_NR_IRQS, .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, - .init_time = clps711x_timer_init, + .timer = &clps711x_timer, .init_machine = cdb89712_init, .handle_irq = clps711x_handle_irq, .restart = clps711x_restart, diff --git a/trunk/arch/arm/mach-clps711x/board-clep7312.c b/trunk/arch/arm/mach-clps711x/board-clep7312.c index 014aa3c19a03..0b32a487183b 100644 --- a/trunk/arch/arm/mach-clps711x/board-clep7312.c +++ b/trunk/arch/arm/mach-clps711x/board-clep7312.c @@ -40,7 +40,7 @@ MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312") .fixup = fixup_clep7312, .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, - .init_time = clps711x_timer_init, + .timer = &clps711x_timer, .handle_irq = clps711x_handle_irq, .restart = clps711x_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-clps711x/board-edb7211.c b/trunk/arch/arm/mach-clps711x/board-edb7211.c index 5f928e9ed2ef..71aa5cf2c0d3 100644 --- a/trunk/arch/arm/mach-clps711x/board-edb7211.c +++ b/trunk/arch/arm/mach-clps711x/board-edb7211.c @@ -173,7 +173,7 @@ MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)") .reserve = edb7211_reserve, .map_io = edb7211_map_io, .init_irq = clps711x_init_irq, - .init_time = clps711x_timer_init, + .timer = &clps711x_timer, .init_machine = edb7211_init, .handle_irq = clps711x_handle_irq, .restart = clps711x_restart, diff --git a/trunk/arch/arm/mach-clps711x/board-fortunet.c b/trunk/arch/arm/mach-clps711x/board-fortunet.c index c5675efc8c6a..7d0125580366 100644 --- a/trunk/arch/arm/mach-clps711x/board-fortunet.c +++ b/trunk/arch/arm/mach-clps711x/board-fortunet.c @@ -78,7 +78,7 @@ MACHINE_START(FORTUNET, "ARM-FortuNet") .fixup = fortunet_fixup, .map_io = clps711x_map_io, .init_irq = clps711x_init_irq, - .init_time = clps711x_timer_init, + .timer = &clps711x_timer, .handle_irq = clps711x_handle_irq, .restart = clps711x_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-clps711x/board-p720t.c b/trunk/arch/arm/mach-clps711x/board-p720t.c index 8d3ee6771135..1518fc83babd 100644 --- a/trunk/arch/arm/mach-clps711x/board-p720t.c +++ b/trunk/arch/arm/mach-clps711x/board-p720t.c @@ -224,7 +224,7 @@ MACHINE_START(P720T, "ARM-Prospector720T") .map_io = p720t_map_io, .init_early = p720t_init_early, .init_irq = clps711x_init_irq, - .init_time = clps711x_timer_init, + .timer = &clps711x_timer, .init_machine = p720t_init, .init_late = p720t_init_late, .handle_irq = clps711x_handle_irq, diff --git a/trunk/arch/arm/mach-clps711x/common.c b/trunk/arch/arm/mach-clps711x/common.c index 20ff50f3ccf0..e046439573ee 100644 --- a/trunk/arch/arm/mach-clps711x/common.c +++ b/trunk/arch/arm/mach-clps711x/common.c @@ -282,7 +282,7 @@ static void add_fixed_clk(struct clk *clk, const char *name, int rate) clk_register_clkdev(clk, name, NULL); } -void __init clps711x_timer_init(void) +static void __init clps711x_timer_init(void) { int osc, ext, pll, cpu, bus, timl, timh, uart, spi; u32 tmp; @@ -345,6 +345,10 @@ void __init clps711x_timer_init(void) setup_irq(IRQ_TC2OI, &clps711x_timer_irq); } +struct sys_timer clps711x_timer = { + .init = clps711x_timer_init, +}; + void clps711x_restart(char mode, const char *cmd) { soft_restart(0); diff --git a/trunk/arch/arm/mach-clps711x/common.h b/trunk/arch/arm/mach-clps711x/common.h index f84a7292c70e..b7c0c75c90c0 100644 --- a/trunk/arch/arm/mach-clps711x/common.h +++ b/trunk/arch/arm/mach-clps711x/common.h @@ -8,8 +8,10 @@ #define CLPS711X_NR_GPIO (4 * 8 + 3) #define CLPS711X_GPIO(prt, bit) ((prt) * 8 + (bit)) +struct sys_timer; + extern void clps711x_map_io(void); extern void clps711x_init_irq(void); -extern void clps711x_timer_init(void); extern void clps711x_handle_irq(struct pt_regs *regs); extern void clps711x_restart(char mode, const char *cmd); +extern struct sys_timer clps711x_timer; diff --git a/trunk/arch/arm/mach-cns3xxx/cns3420vb.c b/trunk/arch/arm/mach-cns3xxx/cns3420vb.c index a71867e1d8d6..ae305397003c 100644 --- a/trunk/arch/arm/mach-cns3xxx/cns3420vb.c +++ b/trunk/arch/arm/mach-cns3xxx/cns3420vb.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -249,7 +250,8 @@ MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board") .atag_offset = 0x100, .map_io = cns3420_map_io, .init_irq = cns3xxx_init_irq, - .init_time = cns3xxx_timer_init, + .timer = &cns3xxx_timer, + .handle_irq = gic_handle_irq, .init_machine = cns3420_init, .restart = cns3xxx_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-cns3xxx/core.c b/trunk/arch/arm/mach-cns3xxx/core.c index e698f26cc0cb..031805b1428d 100644 --- a/trunk/arch/arm/mach-cns3xxx/core.c +++ b/trunk/arch/arm/mach-cns3xxx/core.c @@ -12,10 +12,10 @@ #include #include #include -#include #include #include #include +#include #include #include #include "core.h" @@ -134,6 +134,7 @@ static int cns3xxx_timer_set_next_event(unsigned long evt, static struct clock_event_device cns3xxx_tmr1_clockevent = { .name = "cns3xxx timer1", + .shift = 8, .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, .set_mode = cns3xxx_timer_set_mode, .set_next_event = cns3xxx_timer_set_next_event, @@ -144,9 +145,15 @@ static struct clock_event_device cns3xxx_tmr1_clockevent = { static void __init cns3xxx_clockevents_init(unsigned int timer_irq) { cns3xxx_tmr1_clockevent.irq = timer_irq; - clockevents_config_and_register(&cns3xxx_tmr1_clockevent, - (cns3xxx_cpu_clock() >> 3) * 1000000, - 0xf, 0xffffffff); + cns3xxx_tmr1_clockevent.mult = + div_sc((cns3xxx_cpu_clock() >> 3) * 1000000, NSEC_PER_SEC, + cns3xxx_tmr1_clockevent.shift); + cns3xxx_tmr1_clockevent.max_delta_ns = + clockevent_delta2ns(0xffffffff, &cns3xxx_tmr1_clockevent); + cns3xxx_tmr1_clockevent.min_delta_ns = + clockevent_delta2ns(0xf, &cns3xxx_tmr1_clockevent); + + clockevents_register_device(&cns3xxx_tmr1_clockevent); } /* @@ -228,13 +235,17 @@ static void __init __cns3xxx_timer_init(unsigned int timer_irq) cns3xxx_clockevents_init(timer_irq); } -void __init cns3xxx_timer_init(void) +static void __init cns3xxx_timer_init(void) { cns3xxx_tmr1 = IOMEM(CNS3XXX_TIMER1_2_3_BASE_VIRT); __cns3xxx_timer_init(IRQ_CNS3XXX_TIMER0); } +struct sys_timer cns3xxx_timer = { + .init = cns3xxx_timer_init, +}; + #ifdef CONFIG_CACHE_L2X0 void __init cns3xxx_l2x0_init(void) diff --git a/trunk/arch/arm/mach-cns3xxx/core.h b/trunk/arch/arm/mach-cns3xxx/core.h index b23b17b4da10..4894b8c17151 100644 --- a/trunk/arch/arm/mach-cns3xxx/core.h +++ b/trunk/arch/arm/mach-cns3xxx/core.h @@ -11,7 +11,7 @@ #ifndef __CNS3XXX_CORE_H #define __CNS3XXX_CORE_H -extern void cns3xxx_timer_init(void); +extern struct sys_timer cns3xxx_timer; #ifdef CONFIG_CACHE_L2X0 void __init cns3xxx_l2x0_init(void); diff --git a/trunk/arch/arm/mach-davinci/board-da830-evm.c b/trunk/arch/arm/mach-davinci/board-da830-evm.c index e3742716cbaa..95b5e102ceb1 100644 --- a/trunk/arch/arm/mach-davinci/board-da830-evm.c +++ b/trunk/arch/arm/mach-davinci/board-da830-evm.c @@ -679,7 +679,7 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") .atag_offset = 0x100, .map_io = da830_evm_map_io, .init_irq = cp_intc_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = da830_evm_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-da850-evm.c b/trunk/arch/arm/mach-davinci/board-da850-evm.c index 3b3356097bb0..0299915575a8 100644 --- a/trunk/arch/arm/mach-davinci/board-da850-evm.c +++ b/trunk/arch/arm/mach-davinci/board-da850-evm.c @@ -1599,7 +1599,7 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") .atag_offset = 0x100, .map_io = da850_evm_map_io, .init_irq = cp_intc_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = da850_evm_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-dm355-evm.c b/trunk/arch/arm/mach-davinci/board-dm355-evm.c index 147b8e1a4407..cdf8d0746e79 100644 --- a/trunk/arch/arm/mach-davinci/board-dm355-evm.c +++ b/trunk/arch/arm/mach-davinci/board-dm355-evm.c @@ -355,7 +355,7 @@ MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") .atag_offset = 0x100, .map_io = dm355_evm_map_io, .init_irq = davinci_irq_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = dm355_evm_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-dm355-leopard.c b/trunk/arch/arm/mach-davinci/board-dm355-leopard.c index dff4ddc5ef81..d41954507fc2 100644 --- a/trunk/arch/arm/mach-davinci/board-dm355-leopard.c +++ b/trunk/arch/arm/mach-davinci/board-dm355-leopard.c @@ -274,7 +274,7 @@ MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") .atag_offset = 0x100, .map_io = dm355_leopard_map_io, .init_irq = davinci_irq_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = dm355_leopard_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-dm365-evm.c b/trunk/arch/arm/mach-davinci/board-dm365-evm.c index c2d4958a0cb6..5d49c75388ca 100644 --- a/trunk/arch/arm/mach-davinci/board-dm365-evm.c +++ b/trunk/arch/arm/mach-davinci/board-dm365-evm.c @@ -616,7 +616,7 @@ MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") .atag_offset = 0x100, .map_io = dm365_evm_map_io, .init_irq = davinci_irq_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = dm365_evm_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-dm644x-evm.c b/trunk/arch/arm/mach-davinci/board-dm644x-evm.c index e4a16f98e6a2..f5e018de7fa5 100644 --- a/trunk/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/trunk/arch/arm/mach-davinci/board-dm644x-evm.c @@ -825,7 +825,7 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") .atag_offset = 0x100, .map_io = davinci_evm_map_io, .init_irq = davinci_irq_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = davinci_evm_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-dm646x-evm.c b/trunk/arch/arm/mach-davinci/board-dm646x-evm.c index de7adff324dc..9211e8800c79 100644 --- a/trunk/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/trunk/arch/arm/mach-davinci/board-dm646x-evm.c @@ -358,7 +358,7 @@ static int cpld_video_probe(struct i2c_client *client, return 0; } -static int cpld_video_remove(struct i2c_client *client) +static int __devexit cpld_video_remove(struct i2c_client *client) { cpld_client = NULL; return 0; @@ -818,7 +818,7 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") .atag_offset = 0x100, .map_io = davinci_map_io, .init_irq = davinci_irq_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = evm_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, @@ -829,7 +829,7 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") .atag_offset = 0x100, .map_io = davinci_map_io, .init_irq = davinci_irq_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = evm_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-mityomapl138.c b/trunk/arch/arm/mach-davinci/board-mityomapl138.c index b0df578bf744..43e4a0d663fa 100644 --- a/trunk/arch/arm/mach-davinci/board-mityomapl138.c +++ b/trunk/arch/arm/mach-davinci/board-mityomapl138.c @@ -570,7 +570,7 @@ MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") .atag_offset = 0x100, .map_io = mityomapl138_map_io, .init_irq = cp_intc_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = mityomapl138_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-neuros-osd2.c b/trunk/arch/arm/mach-davinci/board-neuros-osd2.c index 1c98107527fa..3e3e3afebf88 100644 --- a/trunk/arch/arm/mach-davinci/board-neuros-osd2.c +++ b/trunk/arch/arm/mach-davinci/board-neuros-osd2.c @@ -237,7 +237,7 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2") .atag_offset = 0x100, .map_io = davinci_ntosd2_map_io, .init_irq = davinci_irq_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = davinci_ntosd2_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-omapl138-hawk.c b/trunk/arch/arm/mach-davinci/board-omapl138-hawk.c index deb3922612b9..dc1208e9e664 100644 --- a/trunk/arch/arm/mach-davinci/board-omapl138-hawk.c +++ b/trunk/arch/arm/mach-davinci/board-omapl138-hawk.c @@ -341,7 +341,7 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") .atag_offset = 0x100, .map_io = omapl138_hawk_map_io, .init_irq = cp_intc_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = omapl138_hawk_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-sffsdr.c b/trunk/arch/arm/mach-davinci/board-sffsdr.c index 739be7e738fe..6957787fa7f3 100644 --- a/trunk/arch/arm/mach-davinci/board-sffsdr.c +++ b/trunk/arch/arm/mach-davinci/board-sffsdr.c @@ -155,7 +155,7 @@ MACHINE_START(SFFSDR, "Lyrtech SFFSDR") .atag_offset = 0x100, .map_io = davinci_sffsdr_map_io, .init_irq = davinci_irq_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = davinci_sffsdr_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/board-tnetv107x-evm.c b/trunk/arch/arm/mach-davinci/board-tnetv107x-evm.c index 4f416023d4e2..be3099733b1f 100644 --- a/trunk/arch/arm/mach-davinci/board-tnetv107x-evm.c +++ b/trunk/arch/arm/mach-davinci/board-tnetv107x-evm.c @@ -280,7 +280,7 @@ MACHINE_START(TNETV107X, "TNETV107X EVM") .atag_offset = 0x100, .map_io = tnetv107x_init, .init_irq = cp_intc_init, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = tnetv107x_evm_board_init, .init_late = davinci_init_late, .dma_zone_size = SZ_128M, diff --git a/trunk/arch/arm/mach-davinci/cdce949.c b/trunk/arch/arm/mach-davinci/cdce949.c index abafb92031c0..f2232ca6d070 100644 --- a/trunk/arch/arm/mach-davinci/cdce949.c +++ b/trunk/arch/arm/mach-davinci/cdce949.c @@ -256,7 +256,7 @@ static int cdce_probe(struct i2c_client *client, return 0; } -static int cdce_remove(struct i2c_client *client) +static int __devexit cdce_remove(struct i2c_client *client) { cdce_i2c_client = NULL; return 0; @@ -274,7 +274,7 @@ static struct i2c_driver cdce_driver = { .name = "cdce949", }, .probe = cdce_probe, - .remove = cdce_remove, + .remove = __devexit_p(cdce_remove), .id_table = cdce_id, }; diff --git a/trunk/arch/arm/mach-davinci/da8xx-dt.c b/trunk/arch/arm/mach-davinci/da8xx-dt.c index 9a7c76efc8f8..37c27af18fa0 100644 --- a/trunk/arch/arm/mach-davinci/da8xx-dt.c +++ b/trunk/arch/arm/mach-davinci/da8xx-dt.c @@ -56,7 +56,7 @@ static const char *da850_boards_compat[] __initdata = { DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x") .map_io = da850_init, .init_irq = da8xx_init_irq, - .init_time = davinci_timer_init, + .timer = &davinci_timer, .init_machine = da850_init_machine, .dt_compat = da850_boards_compat, .init_late = davinci_init_late, diff --git a/trunk/arch/arm/mach-davinci/include/mach/common.h b/trunk/arch/arm/mach-davinci/include/mach/common.h index b124b77c90c5..046c7238a3d6 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/common.h +++ b/trunk/arch/arm/mach-davinci/include/mach/common.h @@ -15,7 +15,9 @@ #include #include -extern void davinci_timer_init(void); +struct sys_timer; + +extern struct sys_timer davinci_timer; extern void davinci_irq_init(void); extern void __iomem *davinci_intc_base; diff --git a/trunk/arch/arm/mach-davinci/time.c b/trunk/arch/arm/mach-davinci/time.c index bad361ec1666..9847938785ca 100644 --- a/trunk/arch/arm/mach-davinci/time.c +++ b/trunk/arch/arm/mach-davinci/time.c @@ -337,7 +337,7 @@ static struct clock_event_device clockevent_davinci = { }; -void __init davinci_timer_init(void) +static void __init davinci_timer_init(void) { struct clk *timer_clk; struct davinci_soc_info *soc_info = &davinci_soc_info; @@ -410,6 +410,11 @@ void __init davinci_timer_init(void) timer32_config(&timers[i]); } +struct sys_timer davinci_timer = { + .init = davinci_timer_init, +}; + + /* reset board using watchdog timer */ void davinci_watchdog_reset(struct platform_device *pdev) { diff --git a/trunk/arch/arm/mach-dove/cm-a510.c b/trunk/arch/arm/mach-dove/cm-a510.c index 0dc39cf30fdd..792b4e2e24f1 100644 --- a/trunk/arch/arm/mach-dove/cm-a510.c +++ b/trunk/arch/arm/mach-dove/cm-a510.c @@ -92,6 +92,6 @@ MACHINE_START(CM_A510, "Compulab CM-A510 Board") .map_io = dove_map_io, .init_early = dove_init_early, .init_irq = dove_init_irq, - .init_time = dove_timer_init, + .timer = &dove_timer, .restart = dove_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-dove/common.c b/trunk/arch/arm/mach-dove/common.c index 0c7911b3e155..89f4f993cd03 100644 --- a/trunk/arch/arm/mach-dove/common.c +++ b/trunk/arch/arm/mach-dove/common.c @@ -242,13 +242,17 @@ static int __init dove_find_tclk(void) return 166666667; } -void __init dove_timer_init(void) +static void __init dove_timer_init(void) { dove_tclk = dove_find_tclk(); orion_time_init(BRIDGE_VIRT_BASE, BRIDGE_INT_TIMER1_CLR, IRQ_DOVE_BRIDGE, dove_tclk); } +struct sys_timer dove_timer = { + .init = dove_timer_init, +}; + /***************************************************************************** * Cryptographic Engines and Security Accelerator (CESA) ****************************************************************************/ @@ -450,7 +454,7 @@ DT_MACHINE_START(DOVE_DT, "Marvell Dove (Flattened Device Tree)") .map_io = dove_map_io, .init_early = dove_init_early, .init_irq = orion_dt_init_irq, - .init_time = dove_timer_init, + .timer = &dove_timer, .init_machine = dove_dt_init, .restart = dove_restart, .dt_compat = dove_dt_board_compat, diff --git a/trunk/arch/arm/mach-dove/common.h b/trunk/arch/arm/mach-dove/common.h index ee59fba4c6d1..1a233404b735 100644 --- a/trunk/arch/arm/mach-dove/common.h +++ b/trunk/arch/arm/mach-dove/common.h @@ -14,7 +14,7 @@ struct mv643xx_eth_platform_data; struct mv_sata_platform_data; -extern void dove_timer_init(void); +extern struct sys_timer dove_timer; /* * Basic Dove init functions used early by machine-setup. diff --git a/trunk/arch/arm/mach-dove/dove-db-setup.c b/trunk/arch/arm/mach-dove/dove-db-setup.c index 76e26f949c27..bc2867f11346 100644 --- a/trunk/arch/arm/mach-dove/dove-db-setup.c +++ b/trunk/arch/arm/mach-dove/dove-db-setup.c @@ -98,6 +98,6 @@ MACHINE_START(DOVE_DB, "Marvell DB-MV88AP510-BP Development Board") .map_io = dove_map_io, .init_early = dove_init_early, .init_irq = dove_init_irq, - .init_time = dove_timer_init, + .timer = &dove_timer, .restart = dove_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-dove/pcie.c b/trunk/arch/arm/mach-dove/pcie.c index 8a275f297522..0ef4435b1657 100644 --- a/trunk/arch/arm/mach-dove/pcie.c +++ b/trunk/arch/arm/mach-dove/pcie.c @@ -135,7 +135,7 @@ static struct pci_ops pcie_ops = { .write = pcie_wr_conf, }; -static void rc_pci_fixup(struct pci_dev *dev) +static void __devinit rc_pci_fixup(struct pci_dev *dev) { /* * Prevent enumeration of root complex. diff --git a/trunk/arch/arm/mach-ebsa110/core.c b/trunk/arch/arm/mach-ebsa110/core.c index b13cc74114db..f0fe6b5350e2 100644 --- a/trunk/arch/arm/mach-ebsa110/core.c +++ b/trunk/arch/arm/mach-ebsa110/core.c @@ -158,7 +158,7 @@ static void __init ebsa110_init_early(void) * interrupt, then the PIT counter will roll over (ie, be negative). * This actually works out to be convenient. */ -static u32 ebsa110_gettimeoffset(void) +static unsigned long ebsa110_gettimeoffset(void) { unsigned long offset, count; @@ -181,7 +181,7 @@ static u32 ebsa110_gettimeoffset(void) */ offset = offset * (1000000 / HZ) / COUNT; - return offset * 1000; + return offset; } static irqreturn_t @@ -213,10 +213,8 @@ static struct irqaction ebsa110_timer_irq = { /* * Set up timer interrupt. */ -void __init ebsa110_timer_init(void) +static void __init ebsa110_timer_init(void) { - arch_gettimeoffset = ebsa110_gettimeoffset; - /* * Timer 1, mode 2, LSB/MSB */ @@ -227,6 +225,11 @@ void __init ebsa110_timer_init(void) setup_irq(IRQ_EBSA110_TIMER0, &ebsa110_timer_irq); } +static struct sys_timer ebsa110_timer = { + .init = ebsa110_timer_init, + .offset = ebsa110_gettimeoffset, +}; + static struct plat_serial8250_port serial_platform_data[] = { { .iobase = 0x3f8, @@ -325,6 +328,6 @@ MACHINE_START(EBSA110, "EBSA110") .map_io = ebsa110_map_io, .init_early = ebsa110_init_early, .init_irq = ebsa110_init_irq, - .init_time = ebsa110_timer_init, + .timer = &ebsa110_timer, .restart = ebsa110_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-ep93xx/adssphere.c b/trunk/arch/arm/mach-ep93xx/adssphere.c index bda6c3a5c923..41383bf03d4b 100644 --- a/trunk/arch/arm/mach-ep93xx/adssphere.c +++ b/trunk/arch/arm/mach-ep93xx/adssphere.c @@ -17,6 +17,7 @@ #include +#include #include #include @@ -38,7 +39,8 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = adssphere_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --git a/trunk/arch/arm/mach-ep93xx/core.c b/trunk/arch/arm/mach-ep93xx/core.c index c49ed3dc1aea..e85bf17f2d2a 100644 --- a/trunk/arch/arm/mach-ep93xx/core.c +++ b/trunk/arch/arm/mach-ep93xx/core.c @@ -34,7 +34,6 @@ #include #include #include -#include #include #include @@ -45,6 +44,8 @@ #include #include +#include + #include "soc.h" /************************************************************************* @@ -139,29 +140,11 @@ static struct irqaction ep93xx_timer_irq = { .handler = ep93xx_timer_interrupt, }; -static u32 ep93xx_gettimeoffset(void) -{ - int offset; - - offset = __raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time; - - /* - * Timer 4 is based on a 983.04 kHz reference clock, - * so dividing by 983040 gives the fraction of a second, - * so dividing by 0.983040 converts to uS. - * Refactor the calculation to avoid overflow. - * Finally, multiply by 1000 to give nS. - */ - return (offset + (53 * offset / 3072)) * 1000; -} - -void __init ep93xx_timer_init(void) +static void __init ep93xx_timer_init(void) { u32 tmode = EP93XX_TIMER123_CONTROL_MODE | EP93XX_TIMER123_CONTROL_CLKSEL; - arch_gettimeoffset = ep93xx_gettimeoffset; - /* Enable periodic HZ timer. */ __raw_writel(tmode, EP93XX_TIMER1_CONTROL); __raw_writel(TIMER1_RELOAD, EP93XX_TIMER1_LOAD); @@ -175,6 +158,21 @@ void __init ep93xx_timer_init(void) setup_irq(IRQ_EP93XX_TIMER1, &ep93xx_timer_irq); } +static unsigned long ep93xx_gettimeoffset(void) +{ + int offset; + + offset = __raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time; + + /* Calculate (1000000 / 983040) * offset. */ + return offset + (53 * offset / 3072); +} + +struct sys_timer ep93xx_timer = { + .init = ep93xx_timer_init, + .offset = ep93xx_gettimeoffset, +}; + /************************************************************************* * EP93xx IRQ handling diff --git a/trunk/arch/arm/mach-ep93xx/edb93xx.c b/trunk/arch/arm/mach-ep93xx/edb93xx.c index 27b14ae92c7e..b8f53d57a299 100644 --- a/trunk/arch/arm/mach-ep93xx/edb93xx.c +++ b/trunk/arch/arm/mach-ep93xx/edb93xx.c @@ -39,6 +39,7 @@ #include #include +#include #include #include @@ -275,7 +276,8 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -288,7 +290,8 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -301,7 +304,8 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -314,7 +318,8 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -327,7 +332,8 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -340,7 +346,8 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -353,7 +360,8 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -366,7 +374,8 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --git a/trunk/arch/arm/mach-ep93xx/gesbc9312.c b/trunk/arch/arm/mach-ep93xx/gesbc9312.c index 0cca5b183309..7fd705b5efe4 100644 --- a/trunk/arch/arm/mach-ep93xx/gesbc9312.c +++ b/trunk/arch/arm/mach-ep93xx/gesbc9312.c @@ -17,6 +17,7 @@ #include +#include #include #include @@ -38,7 +39,8 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = gesbc9312_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --git a/trunk/arch/arm/mach-ep93xx/include/mach/platform.h b/trunk/arch/arm/mach-ep93xx/include/mach/platform.h index a14e1b37beff..33a5122c6dc8 100644 --- a/trunk/arch/arm/mach-ep93xx/include/mach/platform.h +++ b/trunk/arch/arm/mach-ep93xx/include/mach/platform.h @@ -53,7 +53,7 @@ int ep93xx_ide_acquire_gpio(struct platform_device *pdev); void ep93xx_ide_release_gpio(struct platform_device *pdev); void ep93xx_init_devices(void); -extern void ep93xx_timer_init(void); +extern struct sys_timer ep93xx_timer; void ep93xx_restart(char, const char *); void ep93xx_init_late(void); diff --git a/trunk/arch/arm/mach-ep93xx/micro9.c b/trunk/arch/arm/mach-ep93xx/micro9.c index 373583c29825..3d7cdab725b2 100644 --- a/trunk/arch/arm/mach-ep93xx/micro9.c +++ b/trunk/arch/arm/mach-ep93xx/micro9.c @@ -18,6 +18,7 @@ #include +#include #include #include @@ -81,7 +82,8 @@ MACHINE_START(MICRO9, "Contec Micro9-High") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -94,7 +96,8 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -107,7 +110,8 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, @@ -120,7 +124,8 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --git a/trunk/arch/arm/mach-ep93xx/simone.c b/trunk/arch/arm/mach-ep93xx/simone.c index 36f22c1a31fe..0eb3f17a6fa2 100644 --- a/trunk/arch/arm/mach-ep93xx/simone.c +++ b/trunk/arch/arm/mach-ep93xx/simone.c @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -82,7 +83,8 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = simone_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --git a/trunk/arch/arm/mach-ep93xx/snappercl15.c b/trunk/arch/arm/mach-ep93xx/snappercl15.c index aa86f86638dd..50043eef1cf2 100644 --- a/trunk/arch/arm/mach-ep93xx/snappercl15.c +++ b/trunk/arch/arm/mach-ep93xx/snappercl15.c @@ -31,6 +31,7 @@ #include #include +#include #include #include @@ -175,7 +176,8 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = snappercl15_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --git a/trunk/arch/arm/mach-ep93xx/ts72xx.c b/trunk/arch/arm/mach-ep93xx/ts72xx.c index 61f4b5dc4d7d..3c4c233391dc 100644 --- a/trunk/arch/arm/mach-ep93xx/ts72xx.c +++ b/trunk/arch/arm/mach-ep93xx/ts72xx.c @@ -22,6 +22,7 @@ #include +#include #include #include #include @@ -245,7 +246,8 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") .atag_offset = 0x100, .map_io = ts72xx_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = ts72xx_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --git a/trunk/arch/arm/mach-ep93xx/vision_ep9307.c b/trunk/arch/arm/mach-ep93xx/vision_ep9307.c index 605956fd07a2..ba92e25e3016 100644 --- a/trunk/arch/arm/mach-ep93xx/vision_ep9307.c +++ b/trunk/arch/arm/mach-ep93xx/vision_ep9307.c @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -363,7 +364,8 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307") .atag_offset = 0x100, .map_io = vision_map_io, .init_irq = ep93xx_init_irq, - .init_time = ep93xx_timer_init, + .handle_irq = vic_handle_irq, + .timer = &ep93xx_timer, .init_machine = vision_init_machine, .init_late = ep93xx_init_late, .restart = ep93xx_restart, diff --git a/trunk/arch/arm/mach-exynos/Kconfig b/trunk/arch/arm/mach-exynos/Kconfig index e103c290bc9e..91d5b6f1d5af 100644 --- a/trunk/arch/arm/mach-exynos/Kconfig +++ b/trunk/arch/arm/mach-exynos/Kconfig @@ -74,8 +74,6 @@ config SOC_EXYNOS5440 depends on ARCH_EXYNOS5 select ARM_ARCH_TIMER select AUTO_ZRELADDR - select PINCTRL - select PINCTRL_EXYNOS5440 help Enable EXYNOS5440 SoC support diff --git a/trunk/arch/arm/mach-exynos/common.c b/trunk/arch/arm/mach-exynos/common.c index 4ea80bc4ef9b..d6d0dc651089 100644 --- a/trunk/arch/arm/mach-exynos/common.c +++ b/trunk/arch/arm/mach-exynos/common.c @@ -22,13 +22,12 @@ #include #include #include -#include #include -#include #include #include #include +#include #include #include #include @@ -425,18 +424,11 @@ static void __init exynos5_init_clocks(int xtal) { printk(KERN_DEBUG "%s: initializing clocks\n", __func__); - /* EXYNOS5440 can support only common clock framework */ - - if (soc_is_exynos5440()) - return; - -#ifdef CONFIG_SOC_EXYNOS5250 s3c24xx_register_baseclocks(xtal); s5p_register_clocks(xtal); exynos5_register_clocks(); exynos5_setup_clocks(); -#endif } #define COMBINER_ENABLE_SET 0x0 @@ -645,6 +637,8 @@ static int __init combiner_of_init(struct device_node *np, } static const struct of_device_id exynos_dt_irq_match[] = { + { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, + { .compatible = "arm,cortex-a15-gic", .data = gic_of_init, }, { .compatible = "samsung,exynos4210-combiner", .data = combiner_of_init, }, {}, @@ -660,10 +654,8 @@ void __init exynos4_init_irq(void) if (!of_have_populated_dt()) gic_init_bases(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU, gic_bank_offset, NULL); #ifdef CONFIG_OF - else { - irqchip_init(); + else of_irq_init(exynos_dt_irq_match); - } #endif if (!of_have_populated_dt()) @@ -680,7 +672,6 @@ void __init exynos4_init_irq(void) void __init exynos5_init_irq(void) { #ifdef CONFIG_OF - irqchip_init(); of_irq_init(exynos_dt_irq_match); #endif /* diff --git a/trunk/arch/arm/mach-exynos/common.h b/trunk/arch/arm/mach-exynos/common.h index 12f2f1117e99..04744f9c120f 100644 --- a/trunk/arch/arm/mach-exynos/common.h +++ b/trunk/arch/arm/mach-exynos/common.h @@ -12,7 +12,7 @@ #ifndef __ARCH_ARM_MACH_EXYNOS_COMMON_H #define __ARCH_ARM_MACH_EXYNOS_COMMON_H -extern void exynos4_timer_init(void); +extern struct sys_timer exynos4_timer; struct map_desc; void exynos_init_io(struct map_desc *mach_desc, int size); diff --git a/trunk/arch/arm/mach-exynos/include/mach/regs-irq.h b/trunk/arch/arm/mach-exynos/include/mach/regs-irq.h index f2b50506b9f6..9c7b4bfd546f 100644 --- a/trunk/arch/arm/mach-exynos/include/mach/regs-irq.h +++ b/trunk/arch/arm/mach-exynos/include/mach/regs-irq.h @@ -13,7 +13,7 @@ #ifndef __ASM_ARCH_REGS_IRQ_H #define __ASM_ARCH_REGS_IRQ_H __FILE__ -#include +#include #include #endif /* __ASM_ARCH_REGS_IRQ_H */ diff --git a/trunk/arch/arm/mach-exynos/mach-armlex4210.c b/trunk/arch/arm/mach-exynos/mach-armlex4210.c index 685f29173afa..b938f9fc1dd1 100644 --- a/trunk/arch/arm/mach-exynos/mach-armlex4210.c +++ b/trunk/arch/arm/mach-exynos/mach-armlex4210.c @@ -16,6 +16,7 @@ #include #include +#include #include #include @@ -200,8 +201,9 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = armlex4210_map_io, + .handle_irq = gic_handle_irq, .init_machine = armlex4210_machine_init, .init_late = exynos_init_late, - .init_time = exynos4_timer_init, + .timer = &exynos4_timer, .restart = exynos4_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-exynos/mach-exynos4-dt.c b/trunk/arch/arm/mach-exynos/mach-exynos4-dt.c index 112d10e53d20..92757ff817ae 100644 --- a/trunk/arch/arm/mach-exynos/mach-exynos4-dt.c +++ b/trunk/arch/arm/mach-exynos/mach-exynos4-dt.c @@ -15,6 +15,7 @@ #include #include +#include #include #include @@ -106,9 +107,10 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = exynos4_dt_map_io, + .handle_irq = gic_handle_irq, .init_machine = exynos4_dt_machine_init, .init_late = exynos_init_late, - .init_time = exynos4_timer_init, + .timer = &exynos4_timer, .dt_compat = exynos4_dt_compat, .restart = exynos4_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c index 0deeecffa3ae..e99d3d8f2bcf 100644 --- a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c @@ -16,6 +16,7 @@ #include #include +#include #include #include @@ -178,9 +179,10 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") .init_irq = exynos5_init_irq, .smp = smp_ops(exynos_smp_ops), .map_io = exynos5_dt_map_io, + .handle_irq = gic_handle_irq, .init_machine = exynos5_dt_machine_init, .init_late = exynos_init_late, - .init_time = exynos4_timer_init, + .timer = &exynos4_timer, .dt_compat = exynos5_dt_compat, .restart = exynos5_restart, .reserve = exynos5_reserve, diff --git a/trunk/arch/arm/mach-exynos/mach-nuri.c b/trunk/arch/arm/mach-exynos/mach-nuri.c index b8b3fbf0bae7..27d4ed8b116e 100644 --- a/trunk/arch/arm/mach-exynos/mach-nuri.c +++ b/trunk/arch/arm/mach-exynos/mach-nuri.c @@ -39,6 +39,7 @@ #include #include +#include #include #include @@ -1378,9 +1379,10 @@ MACHINE_START(NURI, "NURI") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = nuri_map_io, + .handle_irq = gic_handle_irq, .init_machine = nuri_machine_init, .init_late = exynos_init_late, - .init_time = exynos4_timer_init, + .timer = &exynos4_timer, .reserve = &nuri_reserve, .restart = exynos4_restart, MACHINE_END diff --git a/trunk/arch/arm/mach-exynos/mach-origen.c b/trunk/arch/arm/mach-exynos/mach-origen.c index 579d2d171daa..5e34b9c16196 100644 --- a/trunk/arch/arm/mach-exynos/mach-origen.c +++ b/trunk/arch/arm/mach-exynos/mach-origen.c @@ -29,6 +29,7 @@ #include #include +#include #include #include