From bfc0d8eec6ace37e2d544fad58a38f820914cbf3 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 24 May 2011 12:06:02 -0700 Subject: [PATCH] --- yaml --- r: 250558 b: refs/heads/master c: 0d66cba1ac3ad38614077443d604d6a09cec99de h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/CREDITS | 2 +- .../obsolete/sysfs-driver-hid-roccat-koneplus | 10 + trunk/Documentation/ABI/testing/sysfs-bus-pci | 9 + .../testing/sysfs-driver-hid-roccat-koneplus | 19 +- trunk/Documentation/DocBook/.gitignore | 1 + trunk/Documentation/DocBook/dvb/dvbapi.xml | 8 + .../Documentation/DocBook/dvb/dvbproperty.xml | 405 +- .../Documentation/DocBook/dvb/frontend.h.xml | 20 +- .../Documentation/DocBook/media-entities.tmpl | 2 + .../Documentation/DocBook/v4l/pixfmt-m420.xml | 147 + .../Documentation/DocBook/v4l/pixfmt-y10b.xml | 43 + trunk/Documentation/DocBook/v4l/pixfmt.xml | 2 + .../DocBook/v4l/subdev-formats.xml | 46 + .../Documentation/DocBook/v4l/videodev2.h.xml | 4 + trunk/Documentation/HOWTO | 2 +- trunk/Documentation/SubmittingPatches | 9 +- .../bindings/powerpc/nintendo/wii.txt | 2 +- trunk/Documentation/dontdiff | 58 +- .../feature-removal-schedule.txt | 25 +- trunk/Documentation/filesystems/ubifs.txt | 26 +- trunk/Documentation/{usb => hid}/hiddev.txt | 0 trunk/Documentation/hid/hidraw.txt | 119 + trunk/Documentation/hwmon/adm1275 | 60 + trunk/Documentation/hwmon/coretemp | 21 +- trunk/Documentation/hwmon/max16065 | 98 + trunk/Documentation/hwmon/max6642 | 21 + trunk/Documentation/hwmon/pkgtemp | 36 - trunk/Documentation/hwmon/sht15 | 74 + trunk/Documentation/hwmon/ucd9000 | 110 + trunk/Documentation/hwmon/ucd9200 | 112 + trunk/Documentation/input/elantech.txt | 123 +- trunk/Documentation/input/rotary-encoder.txt | 13 + trunk/Documentation/ioctl/ioctl-number.txt | 2 +- trunk/Documentation/kernel-parameters.txt | 4 + trunk/Documentation/pti/pti_intel_mid.txt | 99 + .../sound/alsa/ALSA-Configuration.txt | 7 + .../sound/alsa/HD-Audio-Models.txt | 2 +- trunk/Documentation/stable_api_nonsense.txt | 2 +- trunk/Documentation/sysctl/fs.txt | 7 - trunk/Documentation/sysctl/vm.txt | 4 +- trunk/Documentation/timers/timers-howto.txt | 2 +- trunk/Documentation/usb/callbacks.txt | 8 +- trunk/Documentation/usb/linux-cdc-acm.inf | 4 +- trunk/Documentation/usb/linux.inf | 6 +- trunk/Documentation/vgaarbiter.txt | 20 +- .../Documentation/video4linux/CARDLIST.em28xx | 2 +- trunk/Documentation/video4linux/Zoran | 1 - trunk/Documentation/video4linux/gspca.txt | 1 + trunk/Documentation/video4linux/uvcvideo.txt | 239 + trunk/Documentation/virtual/kvm/api.txt | 34 +- trunk/MAINTAINERS | 24 +- trunk/arch/Kconfig | 3 - trunk/arch/alpha/kernel/vmlinux.lds.S | 2 +- trunk/arch/arm/Kconfig | 89 +- trunk/arch/arm/Makefile | 7 +- trunk/arch/arm/boot/compressed/Makefile | 17 +- trunk/arch/arm/boot/compressed/decompress.c | 4 +- trunk/arch/arm/boot/compressed/head.S | 46 +- trunk/arch/arm/boot/compressed/misc.c | 24 +- trunk/arch/arm/common/gic.c | 84 +- trunk/arch/arm/common/sa1111.c | 8 - trunk/arch/arm/common/timer-sp.c | 82 +- trunk/arch/arm/configs/dove_defconfig | 12 +- trunk/arch/arm/configs/mx1_defconfig | 1 + trunk/arch/arm/configs/mx51_defconfig | 2 +- trunk/arch/arm/configs/mxs_defconfig | 129 + trunk/arch/arm/configs/ns9xxx_defconfig | 56 - trunk/arch/arm/configs/realview-smp_defconfig | 2 +- trunk/arch/arm/configs/realview_defconfig | 2 +- trunk/arch/arm/configs/spear300_defconfig | 51 - trunk/arch/arm/configs/spear310_defconfig | 52 - ...{spear320_defconfig => spear3xx_defconfig} | 5 +- ...{spear600_defconfig => spear6xx_defconfig} | 2 +- trunk/arch/arm/configs/stmp378x_defconfig | 128 - trunk/arch/arm/configs/stmp37xx_defconfig | 108 - trunk/arch/arm/configs/versatile_defconfig | 2 +- trunk/arch/arm/include/asm/dma.h | 4 +- trunk/arch/arm/include/asm/elf.h | 1 + trunk/arch/arm/include/asm/futex.h | 137 +- .../arch/arm/include/asm/hardware/timer-sp.h | 4 +- trunk/arch/arm/include/asm/memory.h | 10 +- trunk/arch/arm/include/asm/ptrace.h | 6 + trunk/arch/arm/include/asm/sizes.h | 42 +- trunk/arch/arm/include/asm/smp.h | 6 +- trunk/arch/arm/include/asm/spinlock.h | 2 + trunk/arch/arm/kernel/perf_event.c | 5 - trunk/arch/arm/kernel/ptrace.c | 348 +- trunk/arch/arm/kernel/setup.c | 13 +- trunk/arch/arm/kernel/smp.c | 7 + trunk/arch/arm/kernel/vmlinux.lds.S | 2 +- trunk/arch/arm/mach-at91/at91cap9_devices.c | 2 +- .../arch/arm/mach-at91/at91sam9g45_devices.c | 2 +- trunk/arch/arm/mach-at91/at91sam9rl_devices.c | 2 +- trunk/arch/arm/mach-bcmring/arch.c | 1 + trunk/arch/arm/mach-bcmring/core.c | 227 +- trunk/arch/arm/mach-bcmring/core.h | 1 + .../arm/mach-davinci/include/mach/memory.h | 18 +- .../mach-davinci/include/mach/uncompress.h | 5 +- trunk/arch/arm/mach-davinci/irq.c | 93 +- trunk/arch/arm/mach-dove/common.c | 616 +- trunk/arch/arm/mach-dove/mpp.c | 134 +- trunk/arch/arm/mach-dove/mpp.h | 362 +- trunk/arch/arm/mach-ep93xx/gpio.c | 24 - trunk/arch/arm/mach-exynos4/Kconfig | 1 + trunk/arch/arm/mach-exynos4/Makefile | 2 + trunk/arch/arm/mach-exynos4/cpu.c | 7 +- .../arch/arm/mach-exynos4/include/mach/map.h | 4 + .../arm/mach-exynos4/include/mach/regs-pmu.h | 3 + .../mach-exynos4/include/mach/regs-usb-phy.h | 64 + .../arch/arm/mach-exynos4/include/mach/smp.h | 19 - trunk/arch/arm/mach-exynos4/irq-combiner.c | 6 +- trunk/arch/arm/mach-exynos4/mach-nuri.c | 16 + trunk/arch/arm/mach-exynos4/platsmp.c | 5 +- trunk/arch/arm/mach-exynos4/usb-phy.c | 136 + .../arm/mach-gemini/include/mach/uncompress.h | 2 +- .../arch/arm/mach-h720x/include/mach/memory.h | 3 +- trunk/arch/arm/mach-imx/Kconfig | 286 + trunk/arch/arm/mach-imx/Makefile | 38 +- trunk/arch/arm/mach-imx/Makefile.boot | 4 + trunk/arch/arm/mach-imx/cache-l2x0.c | 56 + .../arm/{mach-mx3 => mach-imx}/clock-imx31.c | 3 +- .../arm/{mach-mx3 => mach-imx}/clock-imx35.c | 1 - .../{mach-mx3/cpu.c => mach-imx/cpu-imx31.c} | 38 +- trunk/arch/arm/mach-imx/cpu-imx35.c | 44 + .../crm_regs.h => mach-imx/crmregs-imx31.h} | 0 trunk/arch/arm/mach-imx/devices-imx1.h | 8 +- trunk/arch/arm/mach-imx/devices-imx21.h | 22 +- trunk/arch/arm/mach-imx/devices-imx25.h | 35 +- trunk/arch/arm/mach-imx/devices-imx27.h | 30 +- .../{mach-mx3 => mach-imx}/devices-imx31.h | 36 +- .../{mach-mx3 => mach-imx}/devices-imx35.h | 37 +- .../arm/{mach-mx3 => mach-imx}/ehci-imx31.c | 1 - .../arm/{mach-mx3 => mach-imx}/ehci-imx35.c | 1 - .../arm/mach-imx/eukrea_mbimx27-baseboard.c | 1 - .../arm/mach-imx/eukrea_mbimxsd25-baseboard.c | 17 +- .../eukrea_mbimxsd35-baseboard.c} | 29 +- .../arm/{mach-mx3 => mach-imx}/iomux-imx31.c | 0 trunk/arch/arm/mach-imx/mach-apf9328.c | 144 + .../mach-armadillo5x0.c | 29 +- .../arm/{mach-mx3 => mach-imx}/mach-bug.c | 1 - trunk/arch/arm/mach-imx/mach-cpuimx27.c | 1 - .../{mach-mx3 => mach-imx}/mach-cpuimx35.c | 2 - .../arch/arm/mach-imx/mach-eukrea_cpuimx25.c | 2 - .../arm/mach-imx/mach-imx27_visstrim_m10.c | 14 +- .../mach-kzm_arm11_01.c | 1 - trunk/arch/arm/mach-imx/mach-mx1ads.c | 1 - trunk/arch/arm/mach-imx/mach-mx21ads.c | 1 - trunk/arch/arm/mach-imx/mach-mx25_3ds.c | 13 +- trunk/arch/arm/mach-imx/mach-mx27ads.c | 1 - .../{mach-mx3 => mach-imx}/mach-mx31_3ds.c | 50 +- .../arm/{mach-mx3 => mach-imx}/mach-mx31ads.c | 1 - .../{mach-mx3 => mach-imx}/mach-mx31lilly.c | 1 - .../{mach-mx3 => mach-imx}/mach-mx31lite.c | 1 - .../{mach-mx3 => mach-imx}/mach-mx31moboard.c | 75 +- .../{mach-mx3 => mach-imx}/mach-mx35_3ds.c | 1 - trunk/arch/arm/mach-imx/mach-mxt_td60.c | 1 - trunk/arch/arm/mach-imx/mach-pca100.c | 1 - .../arm/{mach-mx3 => mach-imx}/mach-pcm037.c | 65 +- .../{mach-mx3 => mach-imx}/mach-pcm037_eet.c | 17 +- trunk/arch/arm/mach-imx/mach-pcm038.c | 1 - .../arm/{mach-mx3 => mach-imx}/mach-pcm043.c | 17 +- .../arm/{mach-mx3 => mach-imx}/mach-qong.c | 15 +- .../arm/{mach-mx3 => mach-imx}/mach-vpr200.c | 25 +- trunk/arch/arm/mach-imx/mm-imx31.c | 66 + trunk/arch/arm/mach-imx/mm-imx35.c | 63 + .../arm/{mach-mx3 => mach-imx}/mx31lilly-db.c | 13 +- .../arm/{mach-mx3 => mach-imx}/mx31lite-db.c | 3 +- .../mx31moboard-devboard.c | 1 - .../mx31moboard-marxbot.c | 2 - .../mx31moboard-smartbot.c | 1 - .../arch/arm/{mach-mx3 => mach-imx}/pcm037.h | 0 trunk/arch/arm/mach-integrator/Kconfig | 1 + .../arch/arm/mach-integrator/integrator_ap.c | 34 +- .../arch/arm/mach-integrator/integrator_cp.c | 24 +- .../arm/mach-iop32x/include/mach/uncompress.h | 2 +- .../arm/mach-iop33x/include/mach/uncompress.h | 2 +- trunk/arch/arm/mach-ixp4xx/common-pci.c | 23 - trunk/arch/arm/mach-ixp4xx/common.c | 16 +- .../arm/mach-ixp4xx/include/mach/memory.h | 12 +- .../arm/mach-ixp4xx/include/mach/uncompress.h | 2 +- trunk/arch/arm/mach-kirkwood/common.c | 601 +- .../arm/mach-kirkwood/include/mach/irqs.h | 1 + trunk/arch/arm/mach-kirkwood/mpp.c | 58 +- trunk/arch/arm/mach-kirkwood/mpp.h | 6 - trunk/arch/arm/mach-loki/common.c | 190 +- trunk/arch/arm/mach-lpc32xx/timer.c | 17 +- .../arm/mach-mmp/include/mach/uncompress.h | 2 +- trunk/arch/arm/mach-msm/gpio-v2.c | 10 +- .../arm/mach-msm/include/mach/msm_iomap.h | 2 +- trunk/arch/arm/mach-msm/include/mach/smp.h | 23 - trunk/arch/arm/mach-msm/platsmp.c | 4 +- trunk/arch/arm/mach-mv78xx0/common.c | 570 +- trunk/arch/arm/mach-mv78xx0/mpp.c | 58 +- trunk/arch/arm/mach-mv78xx0/mpp.h | 6 - trunk/arch/arm/mach-mx3/Kconfig | 257 - trunk/arch/arm/mach-mx3/Makefile | 26 - trunk/arch/arm/mach-mx3/Makefile.boot | 3 - trunk/arch/arm/mach-mx3/devices.c | 115 - trunk/arch/arm/mach-mx3/devices.h | 4 - trunk/arch/arm/mach-mx3/mm.c | 141 - trunk/arch/arm/mach-mx5/Kconfig | 58 +- trunk/arch/arm/mach-mx5/board-cpuimx51.c | 2 - trunk/arch/arm/mach-mx5/board-cpuimx51sd.c | 2 - trunk/arch/arm/mach-mx5/board-mx50_rdp.c | 1 - trunk/arch/arm/mach-mx5/board-mx51_babbage.c | 18 +- trunk/arch/arm/mach-mx5/board-mx51_efikamx.c | 5 +- trunk/arch/arm/mach-mx5/board-mx51_efikasb.c | 5 +- trunk/arch/arm/mach-mx5/board-mx53_evk.c | 2 - trunk/arch/arm/mach-mx5/board-mx53_loco.c | 2 - trunk/arch/arm/mach-mx5/board-mx53_smd.c | 30 +- trunk/arch/arm/mach-mx5/clock-mx51-mx53.c | 1 + trunk/arch/arm/mach-mx5/cpu.c | 23 + trunk/arch/arm/mach-mx5/devices-imx50.h | 6 +- trunk/arch/arm/mach-mx5/devices-imx51.h | 25 +- trunk/arch/arm/mach-mx5/devices-imx53.h | 13 +- .../arm/mach-mx5/eukrea_mbimx51-baseboard.c | 2 - .../arm/mach-mx5/eukrea_mbimxsd-baseboard.c | 16 +- trunk/arch/arm/mach-mx5/mx51_efika.c | 3 - trunk/arch/arm/mach-mxc91231/Kconfig | 11 - trunk/arch/arm/mach-mxc91231/Makefile | 2 - trunk/arch/arm/mach-mxc91231/Makefile.boot | 3 - trunk/arch/arm/mach-mxc91231/clock.c | 640 - trunk/arch/arm/mach-mxc91231/crm_regs.h | 394 - trunk/arch/arm/mach-mxc91231/devices.c | 251 - trunk/arch/arm/mach-mxc91231/devices.h | 13 - trunk/arch/arm/mach-mxc91231/iomux.c | 177 - trunk/arch/arm/mach-mxc91231/magx-zn5.c | 62 - trunk/arch/arm/mach-mxc91231/mm.c | 62 - trunk/arch/arm/mach-mxc91231/system.c | 51 - trunk/arch/arm/mach-mxs/Kconfig | 12 +- trunk/arch/arm/mach-mxs/Makefile | 1 + trunk/arch/arm/mach-mxs/clock-mx23.c | 2 + trunk/arch/arm/mach-mxs/devices-mx28.h | 2 +- .../arm/mach-mxs/devices/platform-mxs-i2c.c | 5 +- .../mach-mxs/include/mach/devices-common.h | 5 +- trunk/arch/arm/mach-mxs/include/mach/mx23.h | 2 +- .../arm/mach-mxs/include/mach/uncompress.h | 2 +- trunk/arch/arm/mach-mxs/mach-mx23evk.c | 2 +- trunk/arch/arm/mach-mxs/mach-mx28evk.c | 4 +- trunk/arch/arm/mach-mxs/mach-stmp378x_devb.c | 120 + trunk/arch/arm/mach-mxs/timer.c | 20 +- trunk/arch/arm/mach-netx/time.c | 16 +- trunk/arch/arm/mach-ns9xxx/Kconfig | 40 - trunk/arch/arm/mach-ns9xxx/Makefile | 12 - trunk/arch/arm/mach-ns9xxx/Makefile.boot | 2 - trunk/arch/arm/mach-ns9xxx/board-a9m9750dev.c | 156 - trunk/arch/arm/mach-ns9xxx/board-a9m9750dev.h | 15 - trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.c | 17 - trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.h | 13 - trunk/arch/arm/mach-ns9xxx/clock.c | 215 - trunk/arch/arm/mach-ns9xxx/clock.h | 35 - trunk/arch/arm/mach-ns9xxx/generic.c | 19 - trunk/arch/arm/mach-ns9xxx/generic.h | 16 - trunk/arch/arm/mach-ns9xxx/gpio-ns9360.c | 118 - trunk/arch/arm/mach-ns9xxx/gpio-ns9360.h | 13 - trunk/arch/arm/mach-ns9xxx/gpio.c | 147 - .../arch/arm/mach-ns9xxx/include/mach/board.h | 40 - .../mach-ns9xxx/include/mach/debug-macro.S | 21 - .../mach-ns9xxx/include/mach/entry-macro.S | 28 - .../arch/arm/mach-ns9xxx/include/mach/gpio.h | 47 - .../arm/mach-ns9xxx/include/mach/hardware.h | 77 - trunk/arch/arm/mach-ns9xxx/include/mach/io.h | 20 - .../arch/arm/mach-ns9xxx/include/mach/irqs.h | 86 - .../arm/mach-ns9xxx/include/mach/memory.h | 24 - .../arm/mach-ns9xxx/include/mach/module.h | 55 - .../include/mach/processor-ns9360.h | 32 - .../arm/mach-ns9xxx/include/mach/processor.h | 42 - .../arm/mach-ns9xxx/include/mach/regs-bbu.h | 45 - .../include/mach/regs-board-a9m9750dev.h | 24 - .../arm/mach-ns9xxx/include/mach/regs-mem.h | 135 - .../include/mach/regs-sys-common.h | 31 - .../include/mach/regs-sys-ns9360.h | 148 - .../arm/mach-ns9xxx/include/mach/system.h | 35 - .../arch/arm/mach-ns9xxx/include/mach/timex.h | 20 - .../arm/mach-ns9xxx/include/mach/uncompress.h | 164 - .../arm/mach-ns9xxx/include/mach/vmalloc.h | 16 - trunk/arch/arm/mach-ns9xxx/irq.c | 74 - trunk/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c | 43 - trunk/arch/arm/mach-ns9xxx/mach-cc9p9360js.c | 31 - trunk/arch/arm/mach-ns9xxx/plat-serial8250.c | 70 - trunk/arch/arm/mach-ns9xxx/processor-ns9360.c | 53 - trunk/arch/arm/mach-ns9xxx/time-ns9360.c | 181 - .../arm/mach-nuc93x/include/mach/uncompress.h | 2 +- trunk/arch/arm/mach-omap1/flash.c | 2 +- trunk/arch/arm/mach-omap1/time.c | 69 +- trunk/arch/arm/mach-omap2/control.h | 2 +- .../mach-omap2/include/mach/omap4-common.h | 7 + trunk/arch/arm/mach-omap2/irq.c | 97 +- trunk/arch/arm/mach-omap2/omap-smp.c | 5 +- trunk/arch/arm/mach-orion5x/common.c | 478 +- trunk/arch/arm/mach-orion5x/d2net-setup.c | 44 +- trunk/arch/arm/mach-orion5x/db88f5281-setup.c | 44 +- trunk/arch/arm/mach-orion5x/dns323-setup.c | 132 +- trunk/arch/arm/mach-orion5x/edmini_v2-setup.c | 44 +- .../arch/arm/mach-orion5x/kurobox_pro-setup.c | 44 +- trunk/arch/arm/mach-orion5x/ls-chl-setup.c | 44 +- trunk/arch/arm/mach-orion5x/ls_hgl-setup.c | 44 +- trunk/arch/arm/mach-orion5x/lsmini-setup.c | 44 +- trunk/arch/arm/mach-orion5x/mpp.c | 150 +- trunk/arch/arm/mach-orion5x/mpp.h | 191 +- trunk/arch/arm/mach-orion5x/mss2-setup.c | 44 +- trunk/arch/arm/mach-orion5x/mv2120-setup.c | 44 +- trunk/arch/arm/mach-orion5x/net2big-setup.c | 44 +- .../arm/mach-orion5x/rd88f5181l-fxo-setup.c | 44 +- .../arm/mach-orion5x/rd88f5181l-ge-setup.c | 44 +- trunk/arch/arm/mach-orion5x/rd88f5182-setup.c | 44 +- .../arm/mach-orion5x/rd88f6183ap-ge-setup.c | 1 - .../arm/mach-orion5x/terastation_pro2-setup.c | 44 +- trunk/arch/arm/mach-orion5x/ts209-setup.c | 44 +- trunk/arch/arm/mach-orion5x/ts409-setup.c | 44 +- trunk/arch/arm/mach-orion5x/ts78xx-setup.c | 44 +- trunk/arch/arm/mach-orion5x/wnr854t-setup.c | 44 +- .../arch/arm/mach-orion5x/wrt350n-v2-setup.c | 44 +- trunk/arch/arm/mach-pxa/cm-x2xx-pci.c | 27 - trunk/arch/arm/mach-pxa/hx4700.c | 2 +- trunk/arch/arm/mach-pxa/include/mach/memory.h | 10 +- .../arm/mach-pxa/include/mach/uncompress.h | 6 +- trunk/arch/arm/mach-pxa/magician.c | 2 +- trunk/arch/arm/mach-pxa/time.c | 17 +- trunk/arch/arm/mach-realview/core.c | 63 +- .../arm/mach-realview/include/mach/memory.h | 9 +- .../arch/arm/mach-realview/include/mach/smp.h | 14 - trunk/arch/arm/mach-realview/platsmp.c | 3 + .../arm/mach-rpc/include/mach/uncompress.h | 12 +- .../arch/arm/mach-s3c2410/include/mach/map.h | 4 + .../include/mach/regs-s3c2443-clock.h | 25 + trunk/arch/arm/mach-s3c2410/nor-simtec.c | 2 +- trunk/arch/arm/mach-s3c2416/mach-smdk2416.c | 27 + trunk/arch/arm/mach-s3c64xx/irq.c | 7 +- .../mach-s5p64x0/include/mach/uncompress.h | 6 +- .../arm/mach-sa1100/include/mach/memory.h | 12 +- trunk/arch/arm/mach-sa1100/time.c | 24 +- .../arch/arm/mach-shark/include/mach/memory.h | 20 +- .../arch/arm/mach-shmobile/include/mach/smp.h | 16 - trunk/arch/arm/mach-shmobile/platsmp.c | 3 + trunk/arch/arm/mach-spear3xx/Kconfig | 30 +- trunk/arch/arm/mach-spear3xx/Kconfig300 | 17 - trunk/arch/arm/mach-spear3xx/Kconfig310 | 17 - trunk/arch/arm/mach-spear3xx/Kconfig320 | 17 - trunk/arch/arm/mach-spear3xx/clock.c | 74 +- .../arm/mach-spear3xx/include/mach/generic.h | 205 +- .../arm/mach-spear3xx/include/mach/irqs.h | 206 +- .../arm/mach-spear3xx/include/mach/spear300.h | 26 +- .../arm/mach-spear3xx/include/mach/spear310.h | 44 +- .../arm/mach-spear3xx/include/mach/spear320.h | 48 +- trunk/arch/arm/mach-spear3xx/spear300.c | 163 +- trunk/arch/arm/mach-spear3xx/spear300_evb.c | 32 +- trunk/arch/arm/mach-spear3xx/spear310.c | 149 +- trunk/arch/arm/mach-spear3xx/spear310_evb.c | 45 +- trunk/arch/arm/mach-spear3xx/spear320.c | 251 +- trunk/arch/arm/mach-spear3xx/spear320_evb.c | 40 +- trunk/arch/arm/mach-spear3xx/spear3xx.c | 132 +- trunk/arch/arm/mach-spear6xx/Kconfig | 15 +- trunk/arch/arm/mach-spear6xx/Kconfig600 | 17 - trunk/arch/arm/mach-spear6xx/clock.c | 4 +- .../arm/mach-spear6xx/include/mach/generic.h | 2 +- trunk/arch/arm/mach-spear6xx/spear6xx.c | 2 +- trunk/arch/arm/mach-stmp378x/Makefile | 2 - trunk/arch/arm/mach-stmp378x/Makefile.boot | 3 - .../mach-stmp378x/include/mach/entry-macro.S | 35 - .../arm/mach-stmp378x/include/mach/irqs.h | 95 - .../arm/mach-stmp378x/include/mach/pins.h | 151 - .../mach-stmp378x/include/mach/regs-apbh.h | 101 - .../mach-stmp378x/include/mach/regs-apbx.h | 119 - .../mach-stmp378x/include/mach/regs-audioin.h | 63 - .../include/mach/regs-audioout.h | 104 - .../arm/mach-stmp378x/include/mach/regs-bch.h | 56 - .../mach-stmp378x/include/mach/regs-clkctrl.h | 88 - .../arm/mach-stmp378x/include/mach/regs-dcp.h | 87 - .../mach-stmp378x/include/mach/regs-digctl.h | 38 - .../mach-stmp378x/include/mach/regs-dram.h | 27 - .../arm/mach-stmp378x/include/mach/regs-dri.h | 45 - .../mach-stmp378x/include/mach/regs-ecc8.h | 39 - .../arm/mach-stmp378x/include/mach/regs-emi.h | 25 - .../mach-stmp378x/include/mach/regs-gpmi.h | 78 - .../arm/mach-stmp378x/include/mach/regs-i2c.h | 55 - .../mach-stmp378x/include/mach/regs-icoll.h | 45 - .../arm/mach-stmp378x/include/mach/regs-ir.h | 23 - .../mach-stmp378x/include/mach/regs-lcdif.h | 195 - .../mach-stmp378x/include/mach/regs-lradc.h | 99 - .../mach-stmp378x/include/mach/regs-ocotp.h | 40 - .../mach-stmp378x/include/mach/regs-pinctrl.h | 90 - .../mach-stmp378x/include/mach/regs-power.h | 63 - .../arm/mach-stmp378x/include/mach/regs-pwm.h | 53 - .../arm/mach-stmp378x/include/mach/regs-pxp.h | 140 - .../arm/mach-stmp378x/include/mach/regs-rtc.h | 59 - .../mach-stmp378x/include/mach/regs-saif.h | 21 - .../mach-stmp378x/include/mach/regs-spdif.h | 49 - .../arm/mach-stmp378x/include/mach/regs-ssp.h | 102 - .../mach-stmp378x/include/mach/regs-sydma.h | 23 - .../mach-stmp378x/include/mach/regs-timrot.h | 68 - .../mach-stmp378x/include/mach/regs-tvenc.h | 67 - .../mach-stmp378x/include/mach/regs-uartapp.h | 87 - .../mach-stmp378x/include/mach/regs-uartdbg.h | 268 - .../mach-stmp378x/include/mach/regs-usbctrl.h | 40 - .../mach-stmp378x/include/mach/regs-usbphy.h | 37 - trunk/arch/arm/mach-stmp378x/stmp378x.c | 299 - trunk/arch/arm/mach-stmp378x/stmp378x.h | 25 - trunk/arch/arm/mach-stmp378x/stmp378x_devb.c | 332 - trunk/arch/arm/mach-stmp37xx/Makefile | 2 - trunk/arch/arm/mach-stmp37xx/Makefile.boot | 3 - .../mach-stmp37xx/include/mach/entry-macro.S | 37 - .../arm/mach-stmp37xx/include/mach/irqs.h | 99 - .../arm/mach-stmp37xx/include/mach/pins.h | 147 - .../mach-stmp37xx/include/mach/regs-apbh.h | 97 - .../mach-stmp37xx/include/mach/regs-apbx.h | 113 - .../mach-stmp37xx/include/mach/regs-audioin.h | 61 - .../include/mach/regs-audioout.h | 111 - .../mach-stmp37xx/include/mach/regs-clkctrl.h | 72 - .../mach-stmp37xx/include/mach/regs-digctl.h | 24 - .../mach-stmp37xx/include/mach/regs-ecc8.h | 37 - .../mach-stmp37xx/include/mach/regs-gpmi.h | 63 - .../arm/mach-stmp37xx/include/mach/regs-i2c.h | 55 - .../mach-stmp37xx/include/mach/regs-icoll.h | 43 - .../mach-stmp37xx/include/mach/regs-lcdif.h | 89 - .../mach-stmp37xx/include/mach/regs-lradc.h | 97 - .../mach-stmp37xx/include/mach/regs-pinctrl.h | 88 - .../mach-stmp37xx/include/mach/regs-power.h | 56 - .../arm/mach-stmp37xx/include/mach/regs-pwm.h | 51 - .../arm/mach-stmp37xx/include/mach/regs-rtc.h | 57 - .../arm/mach-stmp37xx/include/mach/regs-ssp.h | 101 - .../mach-stmp37xx/include/mach/regs-timrot.h | 49 - .../mach-stmp37xx/include/mach/regs-uartapp.h | 85 - .../mach-stmp37xx/include/mach/regs-uartdbg.h | 268 - .../mach-stmp37xx/include/mach/regs-usbctl.h | 22 - .../mach-stmp37xx/include/mach/regs-usbctrl.h | 22 - .../mach-stmp37xx/include/mach/regs-usbphy.h | 37 - trunk/arch/arm/mach-stmp37xx/stmp37xx.c | 219 - trunk/arch/arm/mach-stmp37xx/stmp37xx.h | 24 - trunk/arch/arm/mach-stmp37xx/stmp37xx_devb.c | 99 - trunk/arch/arm/mach-tcc8k/time.c | 16 +- trunk/arch/arm/mach-tegra/Kconfig | 3 + trunk/arch/arm/mach-tegra/Makefile | 2 +- trunk/arch/arm/mach-tegra/board-harmony.c | 7 +- trunk/arch/arm/mach-tegra/gpio.c | 9 +- trunk/arch/arm/mach-tegra/include/mach/kbc.h | 4 +- .../arm/mach-tegra/include/mach/legacy_irq.h | 35 - trunk/arch/arm/mach-tegra/include/mach/smp.h | 14 - .../{harmony_audio.h => tegra_wm8903_pdata.h} | 5 +- trunk/arch/arm/mach-tegra/irq.c | 174 +- trunk/arch/arm/mach-tegra/legacy_irq.c | 215 - trunk/arch/arm/mach-tegra/platsmp.c | 3 + trunk/arch/arm/mach-tegra/tegra2_clocks.c | 2 +- trunk/arch/arm/mach-tegra/timer.c | 16 +- trunk/arch/arm/mach-u300/timer.c | 18 +- trunk/arch/arm/mach-ux500/include/mach/smp.h | 24 - .../arm/mach-ux500/include/mach/uncompress.h | 2 +- trunk/arch/arm/mach-ux500/mbox-db5500.c | 6 +- trunk/arch/arm/mach-ux500/platsmp.c | 8 +- trunk/arch/arm/mach-versatile/core.c | 44 +- trunk/arch/arm/mach-vexpress/ct-ca9x4.c | 19 +- .../arch/arm/mach-vexpress/include/mach/smp.h | 13 - trunk/arch/arm/mach-vexpress/v2m.c | 39 +- .../mach-w90x900/include/mach/uncompress.h | 2 +- trunk/arch/arm/mach-w90x900/time.c | 17 +- trunk/arch/arm/mm/flush.c | 7 +- trunk/arch/arm/mm/init.c | 23 +- trunk/arch/arm/mm/proc-v6.S | 34 - trunk/arch/arm/plat-iop/time.c | 1 - trunk/arch/arm/plat-mxc/Kconfig | 28 +- trunk/arch/arm/plat-mxc/cpufreq.c | 4 +- trunk/arch/arm/plat-mxc/devices/Kconfig | 7 +- trunk/arch/arm/plat-mxc/devices/Makefile | 2 + .../arm/plat-mxc/devices/platform-ipu-core.c | 129 + .../arm/plat-mxc/devices/platform-mxc_rtc.c | 40 + .../arm/plat-mxc/devices/platform-spi_imx.c | 2 +- trunk/arch/arm/plat-mxc/epit.c | 18 +- trunk/arch/arm/plat-mxc/include/mach/common.h | 8 +- .../arm/plat-mxc/include/mach/debug-macro.S | 7 - .../plat-mxc/include/mach/devices-common.h | 27 + .../arch/arm/plat-mxc/include/mach/hardware.h | 17 +- trunk/arch/arm/plat-mxc/include/mach/io.h | 23 +- .../arm/plat-mxc/include/mach/iomux-mx25.h | 3 + .../plat-mxc/include/mach/iomux-mxc91231.h | 283 - trunk/arch/arm/plat-mxc/include/mach/irqs.h | 2 - trunk/arch/arm/plat-mxc/include/mach/memory.h | 3 - trunk/arch/arm/plat-mxc/include/mach/mx27.h | 4 +- trunk/arch/arm/plat-mxc/include/mach/mx53.h | 13 - trunk/arch/arm/plat-mxc/include/mach/mxc.h | 22 +- .../arch/arm/plat-mxc/include/mach/mxc91231.h | 256 - trunk/arch/arm/plat-mxc/include/mach/system.h | 6 - trunk/arch/arm/plat-mxc/include/mach/timex.h | 2 - .../arm/plat-mxc/include/mach/uncompress.h | 2 +- trunk/arch/arm/plat-mxc/system.c | 6 - trunk/arch/arm/plat-mxc/time.c | 40 +- trunk/arch/arm/plat-nomadik/Kconfig | 1 + trunk/arch/arm/plat-nomadik/gpio.c | 12 +- trunk/arch/arm/plat-nomadik/timer.c | 31 +- trunk/arch/arm/plat-omap/Kconfig | 2 + trunk/arch/arm/plat-omap/gpio.c | 7 +- trunk/arch/arm/plat-omap/include/plat/flash.h | 2 +- trunk/arch/arm/plat-omap/include/plat/smp.h | 36 - .../arm/plat-omap/include/plat/uncompress.h | 4 +- trunk/arch/arm/plat-orion/Makefile | 2 +- trunk/arch/arm/plat-orion/common.c | 957 ++ trunk/arch/arm/plat-orion/gpio.c | 112 +- .../arch/arm/plat-orion/include/plat/common.h | 117 + trunk/arch/arm/plat-orion/include/plat/gpio.h | 1 - trunk/arch/arm/plat-orion/include/plat/mpp.h | 34 + trunk/arch/arm/plat-orion/irq.c | 49 +- trunk/arch/arm/plat-orion/mpp.c | 78 + trunk/arch/arm/plat-orion/time.c | 21 +- trunk/arch/arm/plat-s3c24xx/devs.c | 41 + .../arch/arm/plat-s3c24xx/include/plat/udc.h | 17 + trunk/arch/arm/plat-s5p/Kconfig | 5 + trunk/arch/arm/plat-s5p/Makefile | 1 + trunk/arch/arm/plat-s5p/dev-ehci.c | 57 + trunk/arch/arm/plat-s5p/include/plat/ehci.h | 21 + .../arch/arm/plat-s5p/include/plat/map-s5p.h | 2 +- .../arch/arm/plat-s5p/include/plat/usb-phy.h | 22 + trunk/arch/arm/plat-s5p/irq-gpioint.c | 116 +- trunk/arch/arm/plat-s5p/irq.c | 6 +- trunk/arch/arm/plat-s5p/s5p-time.c | 58 +- trunk/arch/arm/plat-samsung/Kconfig | 1 + .../arch/arm/plat-samsung/include/plat/devs.h | 3 + .../plat-samsung/include/plat/irq-vic-timer.h | 2 +- .../plat-samsung/include/plat/uncompress.h | 4 +- trunk/arch/arm/plat-samsung/irq-uart.c | 83 +- trunk/arch/arm/plat-samsung/irq-vic-timer.c | 69 +- trunk/arch/arm/plat-spear/clock.c | 5 + .../arch/arm/plat-spear/include/plat/clock.h | 1 + trunk/arch/arm/plat-spear/time.c | 16 +- trunk/arch/arm/plat-stmp3xxx/Kconfig | 37 - trunk/arch/arm/plat-stmp3xxx/Makefile | 5 - trunk/arch/arm/plat-stmp3xxx/clock.c | 1134 -- trunk/arch/arm/plat-stmp3xxx/clock.h | 61 - trunk/arch/arm/plat-stmp3xxx/core.c | 128 - trunk/arch/arm/plat-stmp3xxx/devices.c | 389 - trunk/arch/arm/plat-stmp3xxx/dma.c | 464 - .../arm/plat-stmp3xxx/include/mach/clkdev.h | 18 - .../arm/plat-stmp3xxx/include/mach/cputype.h | 33 - .../plat-stmp3xxx/include/mach/debug-macro.S | 39 - .../arch/arm/plat-stmp3xxx/include/mach/dma.h | 153 - .../arm/plat-stmp3xxx/include/mach/gpio.h | 28 - .../arm/plat-stmp3xxx/include/mach/gpmi.h | 12 - .../arm/plat-stmp3xxx/include/mach/hardware.h | 32 - .../arch/arm/plat-stmp3xxx/include/mach/io.h | 25 - .../arm/plat-stmp3xxx/include/mach/memory.h | 22 - .../arch/arm/plat-stmp3xxx/include/mach/mmc.h | 14 - .../arm/plat-stmp3xxx/include/mach/pinmux.h | 157 - .../arm/plat-stmp3xxx/include/mach/pins.h | 30 - .../arm/plat-stmp3xxx/include/mach/platform.h | 68 - .../arm/plat-stmp3xxx/include/mach/stmp3xxx.h | 54 - .../arm/plat-stmp3xxx/include/mach/system.h | 49 - .../arm/plat-stmp3xxx/include/mach/timex.h | 20 - .../plat-stmp3xxx/include/mach/uncompress.h | 53 - .../arm/plat-stmp3xxx/include/mach/vmalloc.h | 12 - trunk/arch/arm/plat-stmp3xxx/irq.c | 50 - trunk/arch/arm/plat-stmp3xxx/pinmux.c | 550 - trunk/arch/arm/plat-stmp3xxx/timer.c | 186 - trunk/arch/arm/plat-versatile/platsmp.c | 3 +- trunk/arch/arm/tools/mach-types | 142 +- trunk/arch/blackfin/kernel/vmlinux.lds.S | 2 +- trunk/arch/cris/arch-v32/mach-fs/Makefile | 2 +- trunk/arch/cris/kernel/vmlinux.lds.S | 2 +- trunk/arch/frv/kernel/vmlinux.lds.S | 2 +- trunk/arch/ia64/hp/common/sba_iommu.c | 2 +- trunk/arch/ia64/kvm/vti.h | 26 +- trunk/arch/m32r/kernel/vmlinux.lds.S | 2 +- trunk/arch/m68k/Kconfig | 1 + trunk/arch/m68k/include/asm/MC68EZ328.h | 2 +- trunk/arch/m68k/include/asm/MC68VZ328.h | 2 +- trunk/arch/m68k/include/asm/bitops_no.h | 18 +- trunk/arch/m68k/include/asm/io_no.h | 8 +- trunk/arch/m68k/kernel/asm-offsets.c | 106 +- trunk/arch/m68k/kernel/asm-offsets_mm.c | 100 - trunk/arch/m68k/kernel/asm-offsets_no.c | 76 - trunk/arch/m68k/kernel/entry_no.S | 1 - trunk/arch/m68k/kernel/irq.c | 28 - trunk/arch/m68k/kernel/m68k_ksyms.c | 36 +- trunk/arch/m68k/kernel/m68k_ksyms_mm.c | 16 - trunk/arch/m68k/kernel/m68k_ksyms_no.c | 78 - trunk/arch/m68k/kernel/process_no.c | 2 + trunk/arch/m68k/kernel/sys_m68k.c | 581 +- trunk/arch/m68k/kernel/sys_m68k_mm.c | 546 - trunk/arch/m68k/kernel/sys_m68k_no.c | 94 - trunk/arch/m68k/kernel/syscalltable.S | 1 - trunk/arch/m68k/lib/Makefile | 13 +- trunk/arch/m68k/lib/Makefile_mm | 6 - trunk/arch/m68k/lib/Makefile_no | 7 - trunk/arch/m68k/lib/checksum.c | 5 - trunk/arch/m68k/lib/checksum_no.c | 3 + trunk/arch/m68k/lib/memcpy.c | 128 +- trunk/arch/m68k/lib/memmove.c | 2 - trunk/arch/m68k/lib/memset.c | 114 +- trunk/arch/m68k/lib/muldi3.c | 99 +- trunk/arch/m68k/lib/muldi3_mm.c | 63 - trunk/arch/m68k/lib/muldi3_no.c | 86 - trunk/arch/m68k/lib/string.c | 223 - trunk/arch/m68k/mm/Makefile | 14 +- trunk/arch/m68k/mm/Makefile_mm | 8 - trunk/arch/m68k/mm/Makefile_no | 5 - trunk/arch/m68k/mm/init_no.c | 51 +- trunk/arch/m68k/mm/kmap.c | 368 +- trunk/arch/m68k/mm/kmap_mm.c | 367 - trunk/arch/m68k/mm/kmap_no.c | 45 - trunk/arch/m68k/platform/68328/entry.S | 7 +- trunk/arch/m68k/platform/68360/entry.S | 7 +- trunk/arch/m68k/platform/coldfire/dma.c | 3 + trunk/arch/m68k/platform/coldfire/entry.S | 11 +- trunk/arch/m68k/platform/coldfire/head.S | 1 - trunk/arch/mips/ath79/Kconfig | 5 + trunk/arch/mips/fw/arc/cmdline.c | 2 +- trunk/arch/mips/fw/arc/env.c | 2 +- trunk/arch/mips/fw/arc/identify.c | 2 +- trunk/arch/mips/fw/arc/init.c | 2 +- trunk/arch/mips/fw/arc/misc.c | 2 +- trunk/arch/mips/fw/arc/salone.c | 2 +- trunk/arch/mips/fw/arc/time.c | 2 +- trunk/arch/mips/fw/arc/tree.c | 2 +- trunk/arch/mips/include/asm/asmmacro-32.h | 2 +- trunk/arch/mips/include/asm/asmmacro-64.h | 2 +- trunk/arch/mips/include/asm/cpu.h | 2 +- trunk/arch/mips/include/asm/r4kcache.h | 2 +- trunk/arch/mips/include/asm/sgialib.h | 2 +- trunk/arch/mips/include/asm/sgiarcs.h | 2 +- trunk/arch/mips/kernel/octeon_switch.S | 2 +- trunk/arch/mips/kernel/r2300_fpu.S | 2 +- trunk/arch/mips/kernel/r2300_switch.S | 2 +- trunk/arch/mips/kernel/r4k_fpu.S | 2 +- trunk/arch/mips/kernel/r4k_switch.S | 2 +- trunk/arch/mips/kernel/r6000_fpu.S | 2 +- trunk/arch/mips/kernel/vmlinux.lds.S | 2 +- trunk/arch/mips/mm/c-r3k.c | 2 +- trunk/arch/mips/mm/c-r4k.c | 2 +- trunk/arch/mips/mm/c-tx39.c | 2 +- trunk/arch/mips/mm/sc-ip22.c | 2 +- trunk/arch/mips/mm/sc-r5k.c | 2 +- trunk/arch/mips/mm/tlb-r3k.c | 2 +- trunk/arch/mips/mm/tlb-r4k.c | 2 +- trunk/arch/mips/mm/tlb-r8k.c | 2 +- trunk/arch/mips/sgi-ip22/ip22-hpc.c | 2 +- trunk/arch/mips/sgi-ip22/ip22-int.c | 2 +- trunk/arch/mips/sgi-ip22/ip22-mc.c | 2 +- trunk/arch/mips/sgi-ip22/ip22-setup.c | 2 +- trunk/arch/mn10300/kernel/vmlinux.lds.S | 2 +- trunk/arch/parisc/kernel/vmlinux.lds.S | 2 +- trunk/arch/powerpc/include/asm/kvm.h | 184 + trunk/arch/powerpc/include/asm/kvm_44x.h | 1 - trunk/arch/powerpc/include/asm/kvm_e500.h | 2 + trunk/arch/powerpc/include/asm/kvm_host.h | 5 + trunk/arch/powerpc/include/asm/kvm_ppc.h | 9 + .../arch/powerpc/include/asm/pte-hash64-64k.h | 2 +- trunk/arch/powerpc/kernel/asm-offsets.c | 1 + trunk/arch/powerpc/kernel/kgdb.c | 2 +- trunk/arch/powerpc/kernel/vmlinux.lds.S | 2 +- trunk/arch/powerpc/kvm/44x.c | 10 + trunk/arch/powerpc/kvm/44x_emulate.c | 2 - trunk/arch/powerpc/kvm/booke.c | 154 +- trunk/arch/powerpc/kvm/booke_interrupts.S | 1 - trunk/arch/powerpc/kvm/e500.c | 76 + trunk/arch/powerpc/kvm/e500_emulate.c | 7 +- trunk/arch/powerpc/kvm/e500_tlb.c | 13 +- trunk/arch/powerpc/kvm/emulate.c | 15 +- trunk/arch/powerpc/kvm/powerpc.c | 21 + trunk/arch/powerpc/kvm/timing.c | 31 +- trunk/arch/s390/hypfs/hypfs.h | 2 +- trunk/arch/s390/kernel/vmlinux.lds.S | 2 +- trunk/arch/sh/Kconfig | 1 + trunk/arch/sh/boards/mach-ecovec24/setup.c | 18 +- trunk/arch/sh/configs/ecovec24_defconfig | 2 +- trunk/arch/sh/configs/sh7757lcr_defconfig | 2 +- trunk/arch/sh/drivers/pci/fixups-se7751.c | 2 +- trunk/arch/sh/include/asm/stacktrace.h | 3 - trunk/arch/sh/include/asm/unistd_32.h | 3 +- trunk/arch/sh/include/asm/unistd_64.h | 3 +- trunk/arch/sh/kernel/cpu/Makefile | 4 +- .../arch/sh/kernel/cpu/shmobile/pm_runtime.c | 6 +- trunk/arch/sh/kernel/dumpstack.c | 15 - trunk/arch/sh/kernel/module.c | 2 + trunk/arch/sh/kernel/perf_callchain.c | 12 - trunk/arch/sh/kernel/stacktrace.c | 13 - trunk/arch/sh/kernel/syscalls_32.S | 1 + trunk/arch/sh/kernel/syscalls_64.S | 1 + trunk/arch/sh/kernel/vmlinux.lds.S | 2 +- trunk/arch/sh/oprofile/backtrace.c | 13 - trunk/arch/sparc/kernel/vmlinux.lds.S | 2 +- trunk/arch/tile/kernel/vmlinux.lds.S | 2 +- trunk/arch/um/Kconfig.x86 | 4 +- trunk/arch/um/drivers/mmapper_kern.c | 2 +- trunk/arch/um/include/asm/common.lds.S | 2 +- trunk/arch/x86/include/asm/apic.h | 29 +- trunk/arch/x86/include/asm/io_apic.h | 28 +- trunk/arch/x86/include/asm/kvm_emulate.h | 193 +- trunk/arch/x86/include/asm/kvm_host.h | 55 +- trunk/arch/x86/include/asm/linkage.h | 5 - trunk/arch/x86/include/asm/msr-index.h | 1 + trunk/arch/x86/include/asm/pci.h | 2 - trunk/arch/x86/include/asm/percpu.h | 7 +- trunk/arch/x86/include/asm/x2apic.h | 62 + trunk/arch/x86/kernel/acpi/boot.c | 8 +- trunk/arch/x86/kernel/amd_iommu.c | 5 +- trunk/arch/x86/kernel/apic/Makefile | 17 +- trunk/arch/x86/kernel/apic/apic.c | 48 +- trunk/arch/x86/kernel/apic/apic_flat_64.c | 26 +- trunk/arch/x86/kernel/apic/bigsmp_32.c | 12 +- trunk/arch/x86/kernel/apic/es7000_32.c | 10 +- trunk/arch/x86/kernel/apic/hw_nmi.c | 4 +- trunk/arch/x86/kernel/apic/io_apic.c | 309 +- trunk/arch/x86/kernel/apic/numaq_32.c | 6 +- trunk/arch/x86/kernel/apic/probe_32.c | 117 +- trunk/arch/x86/kernel/apic/probe_64.c | 61 +- trunk/arch/x86/kernel/apic/summit_32.c | 4 +- trunk/arch/x86/kernel/apic/x2apic_cluster.c | 222 +- trunk/arch/x86/kernel/apic/x2apic_phys.c | 115 +- trunk/arch/x86/kernel/apic/x2apic_uv_x.c | 13 +- trunk/arch/x86/kernel/cpu/amd.c | 9 +- trunk/arch/x86/kernel/devicetree.c | 6 +- trunk/arch/x86/kernel/mpparse.c | 2 +- trunk/arch/x86/kernel/pci-dma.c | 64 - trunk/arch/x86/kernel/ptrace.c | 4 +- trunk/arch/x86/kernel/setup.c | 1 - trunk/arch/x86/kernel/test_nx.c | 2 +- trunk/arch/x86/kernel/vmlinux.lds.S | 9 +- trunk/arch/x86/kvm/emulate.c | 1806 ++- trunk/arch/x86/kvm/i8254.h | 2 - trunk/arch/x86/kvm/irq.h | 2 - trunk/arch/x86/kvm/mmu.c | 16 +- trunk/arch/x86/kvm/paging_tmpl.h | 83 +- trunk/arch/x86/kvm/svm.c | 585 +- trunk/arch/x86/kvm/vmx.c | 228 +- trunk/arch/x86/kvm/x86.c | 570 +- trunk/arch/x86/kvm/x86.h | 2 +- trunk/arch/x86/mm/pf_in.c | 14 +- trunk/arch/x86/pci/direct.c | 17 +- trunk/arch/x86/pci/irq.c | 4 +- trunk/arch/x86/pci/mmconfig-shared.c | 10 + trunk/arch/x86/xen/pci-swiotlb-xen.c | 2 +- trunk/arch/xtensa/configs/s6105_defconfig | 1 - trunk/arch/xtensa/kernel/vmlinux.lds.S | 2 +- trunk/drivers/Makefile | 5 +- trunk/drivers/acpi/acpica/utresrc.c | 2 +- trunk/drivers/acpi/pci_root.c | 14 +- trunk/drivers/acpi/video.c | 2 +- trunk/drivers/base/memory.c | 9 +- trunk/drivers/bluetooth/hci_ldisc.c | 19 +- trunk/drivers/char/apm-emulation.c | 5 - trunk/drivers/clocksource/Kconfig | 3 + trunk/drivers/clocksource/Makefile | 1 + trunk/drivers/clocksource/mmio.c | 73 + trunk/drivers/clocksource/sh_cmt.c | 31 +- trunk/drivers/clocksource/sh_tmu.c | 31 +- trunk/drivers/dma/dmatest.c | 6 +- trunk/drivers/dma/dw_dmac.c | 2 +- trunk/drivers/dma/shdma.c | 188 +- trunk/drivers/dma/shdma.h | 1 + trunk/drivers/firmware/efivars.c | 2 +- trunk/drivers/firmware/iscsi_ibft.c | 4 +- trunk/drivers/gpio/ab8500-gpio.c | 7 +- trunk/drivers/gpio/langwell_gpio.c | 2 +- trunk/drivers/gpu/drm/radeon/radeon_fence.c | 2 +- trunk/drivers/gpu/drm/radeon/radeon_ring.c | 2 +- trunk/drivers/gpu/drm/ttm/ttm_object.c | 2 +- trunk/drivers/hid/Kconfig | 42 +- trunk/drivers/hid/Makefile | 4 - trunk/drivers/hid/hid-3m-pct.c | 305 - trunk/drivers/hid/hid-cando.c | 276 - trunk/drivers/hid/hid-core.c | 35 +- trunk/drivers/hid/hid-ids.h | 53 +- trunk/drivers/hid/hid-input.c | 60 +- trunk/drivers/hid/hid-lg.c | 2 + trunk/drivers/hid/hid-lgff.c | 3 + trunk/drivers/hid/hid-magicmouse.c | 10 +- trunk/drivers/hid/hid-mosart.c | 296 - trunk/drivers/hid/hid-multitouch.c | 264 +- trunk/drivers/hid/hid-picolcd.c | 4 +- trunk/drivers/hid/hid-roccat-koneplus.c | 82 +- trunk/drivers/hid/hid-roccat-koneplus.h | 11 +- trunk/drivers/hid/hid-sony.c | 2 + trunk/drivers/hid/hid-stantum.c | 286 - trunk/drivers/hid/hidraw.c | 30 +- trunk/drivers/hid/usbhid/hid-quirks.c | 2 + trunk/drivers/hid/usbhid/hiddev.c | 34 +- trunk/drivers/hwmon/Kconfig | 66 +- trunk/drivers/hwmon/Makefile | 6 +- trunk/drivers/hwmon/adm1275.c | 121 + trunk/drivers/hwmon/coretemp.c | 740 +- trunk/drivers/hwmon/max16065.c | 717 + trunk/drivers/hwmon/max34440.c | 6 +- trunk/drivers/hwmon/max6642.c | 356 + trunk/drivers/hwmon/max8688.c | 4 +- trunk/drivers/hwmon/pkgtemp.c | 444 - trunk/drivers/hwmon/pmbus.h | 10 +- trunk/drivers/hwmon/pmbus_core.c | 970 +- trunk/drivers/hwmon/sht15.c | 747 +- trunk/drivers/hwmon/ucd9000.c | 278 + trunk/drivers/hwmon/ucd9200.c | 210 + trunk/drivers/i2c/busses/i2c-gpio.c | 2 +- trunk/drivers/i2c/busses/i2c-i801.c | 1 + trunk/drivers/i2c/busses/i2c-sh_mobile.c | 1 + trunk/drivers/input/evdev.c | 19 +- trunk/drivers/input/input-polldev.c | 56 +- trunk/drivers/input/input.c | 1 - trunk/drivers/input/joydev.c | 1 - trunk/drivers/input/keyboard/Kconfig | 22 + trunk/drivers/input/keyboard/Makefile | 2 + trunk/drivers/input/keyboard/adp5589-keys.c | 771 + trunk/drivers/input/keyboard/gpio_keys.c | 11 +- .../drivers/input/keyboard/mpr121_touchkey.c | 339 + trunk/drivers/input/keyboard/omap-keypad.c | 6 +- trunk/drivers/input/keyboard/qt1070.c | 1 + trunk/drivers/input/keyboard/sh_keysc.c | 53 +- trunk/drivers/input/keyboard/tegra-kbc.c | 60 +- trunk/drivers/input/misc/ad714x.c | 129 +- trunk/drivers/input/misc/ati_remote2.c | 9 +- trunk/drivers/input/misc/rotary_encoder.c | 119 +- trunk/drivers/input/misc/twl4030-pwrbutton.c | 2 +- trunk/drivers/input/mouse/elantech.c | 72 +- trunk/drivers/input/mouse/elantech.h | 6 + trunk/drivers/input/mousedev.c | 1 - trunk/drivers/input/serio/serport.c | 10 +- trunk/drivers/input/touchscreen/Kconfig | 12 + trunk/drivers/input/touchscreen/Makefile | 1 + trunk/drivers/input/touchscreen/ads7846.c | 26 +- .../drivers/input/touchscreen/atmel_mxt_ts.c | 92 +- .../drivers/input/touchscreen/atmel_tsadcc.c | 2 +- .../input/touchscreen/h3600_ts_input.c | 8 +- trunk/drivers/input/touchscreen/max11801_ts.c | 272 + trunk/drivers/input/touchscreen/tsc2007.c | 26 +- trunk/drivers/isdn/gigaset/ser-gigaset.c | 8 +- trunk/drivers/leds/leds-mc13783.c | 2 +- trunk/drivers/macintosh/therm_pm72.c | 4 +- trunk/drivers/md/raid5.c | 2 +- trunk/drivers/media/common/saa7146_core.c | 7 +- trunk/drivers/media/common/tuners/Kconfig | 8 + trunk/drivers/media/common/tuners/Makefile | 1 + trunk/drivers/media/common/tuners/mxl5005s.c | 2 + trunk/drivers/media/common/tuners/tda18212.c | 265 + trunk/drivers/media/common/tuners/tda18212.h | 48 + .../media/common/tuners/tda18212_priv.h | 44 + .../drivers/media/common/tuners/tda18271-fe.c | 4 + trunk/drivers/media/common/tuners/xc5000.c | 32 +- trunk/drivers/media/dvb/b2c2/flexcop-pci.c | 4 +- trunk/drivers/media/dvb/bt8xx/bt878.c | 2 +- trunk/drivers/media/dvb/dvb-core/dvb_demux.c | 117 +- .../drivers/media/dvb/dvb-core/dvb_frontend.c | 365 +- .../drivers/media/dvb/dvb-core/dvb_frontend.h | 3 + trunk/drivers/media/dvb/dvb-usb/Kconfig | 5 + trunk/drivers/media/dvb/dvb-usb/a800.c | 17 +- trunk/drivers/media/dvb/dvb-usb/anysee.c | 620 +- trunk/drivers/media/dvb/dvb-usb/anysee.h | 23 +- trunk/drivers/media/dvb/dvb-usb/au6610.c | 22 +- trunk/drivers/media/dvb/dvb-usb/ce6230.c | 11 +- trunk/drivers/media/dvb/dvb-usb/dib0700.h | 5 +- .../drivers/media/dvb/dvb-usb/dib0700_core.c | 220 +- .../media/dvb/dvb-usb/dib0700_devices.c | 8 +- .../drivers/media/dvb/dvb-usb/dibusb-common.c | 2 +- trunk/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | 31 +- trunk/drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 1 + trunk/drivers/media/dvb/dvb-usb/dw2102.c | 12 +- trunk/drivers/media/dvb/dvb-usb/ec168.c | 18 +- trunk/drivers/media/dvb/dvb-usb/friio.c | 23 +- trunk/drivers/media/dvb/dvb-usb/lmedm04.c | 165 +- trunk/drivers/media/dvb/dvb-usb/lmedm04.h | 5 +- trunk/drivers/media/dvb/dvb-usb/m920x.c | 49 +- trunk/drivers/media/dvb/dvb-usb/nova-t-usb2.c | 2 +- trunk/drivers/media/dvb/dvb-usb/opera1.c | 33 +- trunk/drivers/media/dvb/dvb-usb/vp702x-fe.c | 80 +- trunk/drivers/media/dvb/dvb-usb/vp702x.c | 213 +- trunk/drivers/media/dvb/dvb-usb/vp702x.h | 7 + trunk/drivers/media/dvb/dvb-usb/vp7045.c | 47 +- trunk/drivers/media/dvb/frontends/Kconfig | 19 +- trunk/drivers/media/dvb/frontends/Makefile | 6 +- .../drivers/media/dvb/frontends/bsbe1-d01a.h | 146 + trunk/drivers/media/dvb/frontends/bsru6.h | 2 +- trunk/drivers/media/dvb/frontends/cx24116.c | 21 +- trunk/drivers/media/dvb/frontends/cx24116.h | 3 + trunk/drivers/media/dvb/frontends/cxd2820r.h | 118 + .../drivers/media/dvb/frontends/cxd2820r_c.c | 338 + .../media/dvb/frontends/cxd2820r_core.c | 915 ++ .../media/dvb/frontends/cxd2820r_priv.h | 166 + .../drivers/media/dvb/frontends/cxd2820r_t.c | 449 + .../drivers/media/dvb/frontends/cxd2820r_t2.c | 423 + trunk/drivers/media/dvb/frontends/dib0070.c | 40 +- trunk/drivers/media/dvb/frontends/dib0090.c | 71 +- trunk/drivers/media/dvb/frontends/dib7000m.c | 49 +- trunk/drivers/media/dvb/frontends/dib7000p.c | 72 +- trunk/drivers/media/dvb/frontends/dib8000.c | 126 +- trunk/drivers/media/dvb/frontends/dib9000.c | 176 +- .../media/dvb/frontends/dibx000_common.c | 109 +- .../media/dvb/frontends/dibx000_common.h | 5 + trunk/drivers/media/dvb/frontends/drx397xD.c | 1511 -- trunk/drivers/media/dvb/frontends/drx397xD.h | 130 - .../drivers/media/dvb/frontends/drx397xD_fw.h | 40 - trunk/drivers/media/dvb/frontends/drxd.h | 61 + trunk/drivers/media/dvb/frontends/drxd_firm.c | 929 ++ trunk/drivers/media/dvb/frontends/drxd_firm.h | 115 + trunk/drivers/media/dvb/frontends/drxd_hard.c | 3001 ++++ .../media/dvb/frontends/drxd_map_firm.h | 1013 ++ trunk/drivers/media/dvb/frontends/eds1547.h | 2 +- trunk/drivers/media/dvb/frontends/ix2505v.c | 10 +- trunk/drivers/media/dvb/frontends/stv0288.c | 2 +- trunk/drivers/media/dvb/frontends/stv0299.c | 10 +- trunk/drivers/media/dvb/frontends/z0194a.h | 2 +- trunk/drivers/media/dvb/mantis/hopper_cards.c | 2 +- trunk/drivers/media/dvb/mantis/mantis_cards.c | 2 +- trunk/drivers/media/dvb/mantis/mantis_pci.c | 5 +- .../drivers/media/dvb/mantis/mantis_vp1033.c | 2 +- trunk/drivers/media/dvb/pt1/pt1.c | 5 +- trunk/drivers/media/dvb/siano/smsusb.c | 3 +- trunk/drivers/media/dvb/ttpci/Kconfig | 2 + trunk/drivers/media/dvb/ttpci/budget-ci.c | 21 + .../media/dvb/ttusb-budget/dvb-ttusb-budget.c | 60 +- trunk/drivers/media/radio/Kconfig | 15 - trunk/drivers/media/radio/Makefile | 1 - trunk/drivers/media/radio/radio-maestro.c | 452 - .../media/radio/si470x/radio-si470x-common.c | 60 +- .../media/radio/si470x/radio-si470x-i2c.c | 63 +- .../drivers/media/radio/si470x/radio-si470x.h | 4 +- trunk/drivers/media/radio/wl128x/fmdrv.h | 2 - trunk/drivers/media/rc/Kconfig | 11 + trunk/drivers/media/rc/Makefile | 1 + trunk/drivers/media/rc/imon.c | 36 +- trunk/drivers/media/rc/ite-cir.c | 60 +- trunk/drivers/media/rc/keymaps/Makefile | 1 + .../media/rc/keymaps/rc-avermedia-cardbus.c | 2 +- trunk/drivers/media/rc/keymaps/rc-imon-mce.c | 2 +- trunk/drivers/media/rc/keymaps/rc-imon-pad.c | 6 +- .../rc/keymaps/rc-kworld-plus-tv-analog.c | 2 +- trunk/drivers/media/rc/keymaps/rc-rc6-mce.c | 4 +- trunk/drivers/media/rc/keymaps/rc-tivo.c | 98 + trunk/drivers/media/rc/keymaps/rc-winfast.c | 4 +- trunk/drivers/media/rc/mceusb.c | 34 +- trunk/drivers/media/rc/nuvoton-cir.c | 75 +- trunk/drivers/media/rc/nuvoton-cir.h | 17 +- trunk/drivers/media/rc/rc-loopback.c | 6 + trunk/drivers/media/rc/rc-main.c | 54 +- trunk/drivers/media/rc/redrat3.c | 1344 ++ trunk/drivers/media/rc/winbond-cir.c | 447 +- trunk/drivers/media/video/Kconfig | 149 +- trunk/drivers/media/video/Makefile | 2 + trunk/drivers/media/video/bt8xx/bttv-driver.c | 2 +- trunk/drivers/media/video/cpia2/cpia2_v4l.c | 2 +- trunk/drivers/media/video/cx18/Kconfig | 4 + trunk/drivers/media/video/cx18/cx18-cards.c | 18 +- trunk/drivers/media/video/cx18/cx18-cards.h | 2 +- trunk/drivers/media/video/cx18/cx18-driver.c | 27 +- trunk/drivers/media/video/cx18/cx18-driver.h | 25 + trunk/drivers/media/video/cx18/cx18-fileops.c | 70 + trunk/drivers/media/video/cx18/cx18-fileops.h | 2 + trunk/drivers/media/video/cx18/cx18-ioctl.c | 144 +- trunk/drivers/media/video/cx18/cx18-mailbox.c | 58 + trunk/drivers/media/video/cx18/cx18-streams.c | 177 +- trunk/drivers/media/video/cx18/cx18-version.h | 2 +- trunk/drivers/media/video/cx18/cx23418.h | 6 + .../media/video/cx231xx/cx231xx-cards.c | 67 + .../drivers/media/video/cx231xx/cx231xx-dvb.c | 1 + trunk/drivers/media/video/cx231xx/cx231xx.h | 2 + .../media/video/cx23885/cx23885-cards.c | 1 + .../media/video/cx23885/cx23885-core.c | 2 +- .../drivers/media/video/cx88/cx88-blackbird.c | 41 +- trunk/drivers/media/video/cx88/cx88-dvb.c | 2 + trunk/drivers/media/video/cx88/cx88-mpeg.c | 42 +- trunk/drivers/media/video/cx88/cx88-video.c | 7 +- trunk/drivers/media/video/cx88/cx88.h | 11 +- trunk/drivers/media/video/em28xx/Kconfig | 2 + .../drivers/media/video/em28xx/em28xx-cards.c | 49 +- .../drivers/media/video/em28xx/em28xx-core.c | 9 +- trunk/drivers/media/video/em28xx/em28xx-dvb.c | 160 +- trunk/drivers/media/video/em28xx/em28xx-i2c.c | 2 +- trunk/drivers/media/video/em28xx/em28xx-reg.h | 1 + trunk/drivers/media/video/em28xx/em28xx.h | 3 +- trunk/drivers/media/video/fsl-viu.c | 56 +- trunk/drivers/media/video/gspca/Kconfig | 9 + trunk/drivers/media/video/gspca/Makefile | 2 + trunk/drivers/media/video/gspca/cpia1.c | 6 +- trunk/drivers/media/video/gspca/gl860/gl860.c | 15 +- trunk/drivers/media/video/gspca/gspca.c | 4 +- trunk/drivers/media/video/gspca/gspca.h | 6 +- trunk/drivers/media/video/gspca/jeilinj.c | 581 +- trunk/drivers/media/video/gspca/kinect.c | 429 + trunk/drivers/media/video/gspca/spca508.c | 5 +- trunk/drivers/media/video/gspca/stk014.c | 15 +- .../video/gspca/stv06xx/stv06xx_pb0100.c | 2 + trunk/drivers/media/video/gspca/sunplus.c | 99 +- trunk/drivers/media/video/gspca/t613.c | 17 +- trunk/drivers/media/video/gspca/zc3xx.c | 47 +- trunk/drivers/media/video/ivtv/ivtv-driver.c | 4 +- trunk/drivers/media/video/msp3400-driver.c | 2 +- trunk/drivers/media/video/mt9m111.c | 14 +- trunk/drivers/media/video/mt9v022.c | 2 +- trunk/drivers/media/video/mt9v032.c | 773 + trunk/drivers/media/video/mx3_camera.c | 60 +- trunk/drivers/media/video/omap1_camera.c | 43 +- .../drivers/media/video/pvrusb2/pvrusb2-std.c | 10 +- trunk/drivers/media/video/pwc/pwc-if.c | 2 +- trunk/drivers/media/video/pwc/pwc-v4l.c | 23 +- trunk/drivers/media/video/pxa_camera.c | 8 +- trunk/drivers/media/video/s2255drv.c | 27 +- trunk/drivers/media/video/s5p-fimc/Makefile | 6 +- .../drivers/media/video/s5p-fimc/mipi-csis.c | 724 + .../drivers/media/video/s5p-fimc/mipi-csis.h | 22 + .../media/video/saa7134/saa7134-cards.c | 125 + .../media/video/saa7134/saa7134-core.c | 2 +- .../drivers/media/video/saa7134/saa7134-dvb.c | 34 + .../media/video/saa7134/saa7134-input.c | 8 + trunk/drivers/media/video/saa7134/saa7134.h | 3 + .../media/video/saa7164/saa7164-core.c | 2 +- .../media/video/saa7164/saa7164-encoder.c | 2 +- .../drivers/media/video/saa7164/saa7164-vbi.c | 2 +- .../media/video/sh_mobile_ceu_camera.c | 148 +- trunk/drivers/media/video/soc_camera.c | 29 +- trunk/drivers/media/video/soc_mediabus.c | 265 +- trunk/drivers/media/video/tveeprom.c | 32 +- .../media/video/usbvision/usbvision-cards.c | 33 +- .../media/video/usbvision/usbvision-cards.h | 2 + .../media/video/usbvision/usbvision-core.c | 165 +- .../media/video/usbvision/usbvision-i2c.c | 2 +- .../media/video/usbvision/usbvision-video.c | 8 +- .../drivers/media/video/usbvision/usbvision.h | 6 + trunk/drivers/media/video/uvc/uvc_ctrl.c | 367 +- trunk/drivers/media/video/uvc/uvc_driver.c | 28 + trunk/drivers/media/video/uvc/uvc_queue.c | 34 +- trunk/drivers/media/video/uvc/uvc_v4l2.c | 68 +- trunk/drivers/media/video/uvc/uvcvideo.h | 64 +- trunk/drivers/media/video/v4l2-dev.c | 18 + trunk/drivers/media/video/via-camera.c | 1 + trunk/drivers/media/video/zoran/zoran_card.c | 10 +- trunk/drivers/message/fusion/mptbase.c | 22 +- trunk/drivers/message/i2o/README.ioctl | 2 +- trunk/drivers/misc/Kconfig | 25 +- trunk/drivers/misc/Makefile | 1 + trunk/drivers/misc/bh1780gli.c | 8 +- trunk/drivers/misc/cs5535-mfgpt.c | 4 +- trunk/drivers/misc/ibmasm/ibmasmfs.c | 2 +- trunk/drivers/misc/pch_phub.c | 153 +- trunk/drivers/misc/pti.c | 980 ++ trunk/drivers/misc/spear13xx_pcie_gadget.c | 4 +- trunk/drivers/misc/ti-st/st_core.c | 6 +- trunk/drivers/mmc/host/atmel-mci.c | 2 +- trunk/drivers/mmc/host/mmci.c | 6 +- trunk/drivers/mmc/host/mmci.h | 41 +- trunk/drivers/mtd/Kconfig | 3 +- trunk/drivers/mtd/maps/Makefile | 1 - trunk/drivers/mtd/maps/integrator-flash.c | 309 - trunk/drivers/mtd/maps/physmap.c | 28 +- trunk/drivers/mtd/maps/pismo.c | 40 +- trunk/drivers/mtd/ubi/cdev.c | 14 +- trunk/drivers/mtd/ubi/debug.c | 21 +- trunk/drivers/mtd/ubi/debug.h | 161 +- trunk/drivers/mtd/ubi/io.c | 6 +- trunk/drivers/mtd/ubi/scan.c | 2 +- trunk/drivers/mtd/ubi/ubi-media.h | 6 +- trunk/drivers/mtd/ubi/ubi.h | 4 +- trunk/drivers/mtd/ubi/wl.c | 3 +- trunk/drivers/net/atlx/atl1.c | 5 +- trunk/drivers/net/bnx2x/bnx2x_cmn.c | 4 +- trunk/drivers/net/bnx2x/bnx2x_cmn.h | 2 +- trunk/drivers/net/bnx2x/bnx2x_main.c | 72 +- trunk/drivers/net/bonding/bond_main.c | 4 +- trunk/drivers/net/caif/caif_serial.c | 6 +- trunk/drivers/net/can/pch_can.c | 2 +- trunk/drivers/net/can/slcan.c | 9 +- trunk/drivers/net/can/softing/softing_main.c | 2 +- trunk/drivers/net/e1000e/netdev.c | 2 +- trunk/drivers/net/hamradio/6pack.c | 8 +- trunk/drivers/net/hamradio/mkiss.c | 11 +- trunk/drivers/net/irda/ali-ircc.c | 2 +- trunk/drivers/net/irda/irtty-sir.c | 16 +- trunk/drivers/net/macb.c | 2 +- trunk/drivers/net/macvlan.c | 6 +- trunk/drivers/net/netconsole.c | 26 +- trunk/drivers/net/ppp_async.c | 6 +- trunk/drivers/net/ppp_synctty.c | 6 +- trunk/drivers/net/rionet.c | 4 +- trunk/drivers/net/s2io.c | 2 +- trunk/drivers/net/sgiseeq.c | 2 +- trunk/drivers/net/sgiseeq.h | 2 +- trunk/drivers/net/slip.c | 11 +- trunk/drivers/net/ucc_geth_ethtool.c | 2 +- trunk/drivers/net/usb/usbnet.c | 2 +- trunk/drivers/net/wan/pc300_drv.c | 2 +- trunk/drivers/net/wan/x25_asy.c | 7 +- trunk/drivers/net/wireless/airo.c | 27 +- .../net/wireless/ath/ath9k/ar9003_eeprom.c | 8 +- trunk/drivers/net/wireless/b43/b43.h | 4 +- trunk/drivers/net/wireless/ipw2x00/ipw2200.c | 2 +- .../net/wireless/iwlegacy/iwl-4965-calib.c | 4 +- .../net/wireless/iwlwifi/iwl-agn-calib.c | 4 +- trunk/drivers/net/wireless/iwlwifi/iwl-agn.c | 2 +- trunk/drivers/net/wireless/rtlwifi/core.c | 2 +- .../net/wireless/rtlwifi/rtl8192ce/hw.c | 4 +- trunk/drivers/parport/parport_pc.c | 2 +- trunk/drivers/pci/access.c | 18 +- trunk/drivers/pci/bus.c | 6 - trunk/drivers/pci/hotplug/acpiphp_glue.c | 7 + trunk/drivers/pci/hotplug/pcihp_slot.c | 45 + trunk/drivers/pci/pci-sysfs.c | 62 + trunk/drivers/pci/pci.c | 419 +- trunk/drivers/pci/pci.h | 3 +- trunk/drivers/pci/pcie/aer/aer_inject.c | 2 +- trunk/drivers/pci/pcie/aer/aerdrv.h | 9 - trunk/drivers/pci/pcie/aspm.c | 21 +- trunk/drivers/pci/probe.c | 43 +- trunk/drivers/pci/quirks.c | 21 +- trunk/drivers/pci/remove.c | 2 - trunk/drivers/pci/setup-bus.c | 125 +- trunk/drivers/platform/x86/Kconfig | 2 +- trunk/drivers/power/intel_mid_battery.c | 2 +- trunk/drivers/regulator/max8998.c | 4 +- trunk/drivers/regulator/mc13783-regulator.c | 2 +- .../scsi/aic7xxx/aicasm/aicasm_symbol.c | 2 +- .../scsi/aic7xxx/aicasm/aicasm_symbol.h | 2 +- trunk/drivers/scsi/be2iscsi/be_main.c | 4 +- trunk/drivers/scsi/constants.c | 2 +- trunk/drivers/scsi/esp_scsi.c | 2 +- trunk/drivers/scsi/lpfc/lpfc_attr.c | 2 +- trunk/drivers/scsi/lpfc/lpfc_bsg.c | 2 +- trunk/drivers/scsi/lpfc/lpfc_hw.h | 2 +- trunk/drivers/scsi/lpfc/lpfc_sli.c | 2 +- trunk/drivers/scsi/nsp32_debug.c | 2 +- trunk/drivers/scsi/pcmcia/nsp_debug.c | 2 +- trunk/drivers/scsi/pm8001/pm8001_init.c | 2 +- trunk/drivers/scsi/qla2xxx/qla_isr.c | 4 +- trunk/drivers/scsi/qla4xxx/ql4_mbx.c | 2 +- trunk/drivers/scsi/sgiwd93.c | 2 +- trunk/drivers/sh/clk/cpg.c | 2 +- trunk/drivers/sh/intc/virq.c | 5 + trunk/drivers/spi/atmel_spi.c | 2 +- trunk/drivers/spi/coldfire_qspi.c | 1 + trunk/drivers/staging/Kconfig | 8 +- trunk/drivers/staging/Makefile | 9 +- trunk/drivers/staging/ath6kl/Kconfig | 6 - trunk/drivers/staging/ath6kl/Makefile | 39 +- .../staging/ath6kl/bmi/include/bmi_internal.h | 3 +- trunk/drivers/staging/ath6kl/bmi/src/bmi.c | 8 +- .../sdio/linux_sdio/include/hif_internal.h | 1 - .../ath6kl/hif/sdio/linux_sdio/src/hif.c | 382 +- .../hif/sdio/linux_sdio/src/hif_scatter.c | 10 +- .../drivers/staging/ath6kl/htc2/AR6000/ar6k.c | 5 +- .../drivers/staging/ath6kl/htc2/AR6000/ar6k.h | 3 - .../staging/ath6kl/htc2/AR6000/ar6k_events.c | 3 +- .../staging/ath6kl/htc2/AR6000/ar6k_gmbox.c | 1 - .../ath6kl/htc2/AR6000/ar6k_gmbox_hciuart.c | 3 +- trunk/drivers/staging/ath6kl/htc2/htc.c | 10 +- .../staging/ath6kl/htc2/htc_internal.h | 9 - trunk/drivers/staging/ath6kl/htc2/htc_recv.c | 6 - trunk/drivers/staging/ath6kl/htc2/htc_send.c | 5 - .../drivers/staging/ath6kl/include/a_config.h | 22 - .../drivers/staging/ath6kl/include/a_debug.h | 29 - trunk/drivers/staging/ath6kl/include/a_drv.h | 22 - .../staging/ath6kl/include/a_drv_api.h | 28 - .../drivers/staging/ath6kl/include/a_osapi.h | 29 - .../drivers/staging/ath6kl/include/a_types.h | 58 - .../staging/ath6kl/include/ar6000_api.h | 22 - .../staging/ath6kl/include/athendpack.h | 52 - .../staging/ath6kl/include/athstartpack.h | 55 - trunk/drivers/staging/ath6kl/include/bmi.h | 1 - .../include/common/AR6002/AR6002_regdump.h | 60 - .../common/AR6002/hw2.0/hw/analog_intf_reg.h | 64 - .../common/AR6002/hw2.0/hw/analog_reg.h | 1932 --- .../include/common/AR6002/hw2.0/hw/apb_map.h | 13 - .../include/common/AR6002/hw2.0/hw/gpio_reg.h | 977 -- .../common/AR6002/hw2.0/hw/mbox_host_reg.h | 386 - .../include/common/AR6002/hw2.0/hw/mbox_reg.h | 481 - .../include/common/AR6002/hw2.0/hw/rtc_reg.h | 1163 -- .../include/common/AR6002/hw2.0/hw/si_reg.h | 186 - .../include/common/AR6002/hw2.0/hw/uart_reg.h | 327 - .../include/common/AR6002/hw2.0/hw/vmc_reg.h | 76 - .../AR6002/hw4.0/hw/analog_intf_ares_reg.h | 3291 ---- .../hw4.0/hw/analog_intf_athr_wlan_reg.h | 3674 ----- .../common/AR6002/hw4.0/hw/analog_intf_reg.h | 37 - .../include/common/AR6002/hw4.0/hw/apb_map.h | 8 - .../common/AR6002/hw4.0/hw/bb_lc_reg.h | 7076 --------- .../common/AR6002/hw4.0/hw/efuse_reg.h | 108 - .../AR6002/hw4.0/hw/gpio_athr_wlan_reg.h | 1253 -- .../include/common/AR6002/hw4.0/hw/gpio_reg.h | 1094 -- .../common/AR6002/hw4.0/hw/mac_dma_reg.h | 605 - .../common/AR6002/hw4.0/hw/mac_pcu_reg.h | 3065 ---- .../common/AR6002/hw4.0/hw/mbox_host_reg.h | 13 - .../include/common/AR6002/hw4.0/hw/mbox_reg.h | 8 - .../AR6002/hw4.0/hw/mbox_wlan_host_reg.h | 51 - .../common/AR6002/hw4.0/hw/mbox_wlan_reg.h | 49 - .../include/common/AR6002/hw4.0/hw/rdma_reg.h | 564 - .../include/common/AR6002/hw4.0/hw/rtc_reg.h | 788 - .../common/AR6002/hw4.0/hw/rtc_wlan_reg.h | 1903 --- .../include/common/AR6002/hw4.0/hw/si_reg.h | 209 - .../include/common/AR6002/hw4.0/hw/uart_reg.h | 220 - .../common/AR6002/hw4.0/hw/umbox_reg.h | 37 - .../common/AR6002/hw4.0/hw/umbox_wlan_reg.h | 322 - .../include/common/AR6002/hw4.0/hw/vmc_reg.h | 167 - .../common/AR6002/hw4.0/hw/vmc_wlan_reg.h | 195 - .../staging/ath6kl/include/common/a_hci.h | 682 - .../staging/ath6kl/include/common/bmi_msg.h | 8 - .../ath6kl/include/common/btcoexGpio.h | 86 - .../staging/ath6kl/include/common/dbglog.h | 8 - .../ath6kl/include/common/dset_internal.h | 63 - .../staging/ath6kl/include/common/dsetid.h | 134 - .../ath6kl/include/common/epping_test.h | 9 - .../staging/ath6kl/include/common/gmboxif.h | 8 - .../staging/ath6kl/include/common/gpio.h | 45 - .../staging/ath6kl/include/common/gpio_reg.h | 9 + .../staging/ath6kl/include/common/htc.h | 9 - .../staging/ath6kl/include/common/ini_dset.h | 82 - .../staging/ath6kl/include/common/regDb.h | 29 - .../staging/ath6kl/include/common/regdump.h | 59 - .../include/common/regulatory/reg_dbschema.h | 237 - .../include/common/regulatory/reg_dbvalues.h | 504 - .../staging/ath6kl/include/common/targaddrs.h | 234 +- .../staging/ath6kl/include/common/wlan_dset.h | 33 - .../staging/ath6kl/include/common/wmi.h | 135 +- .../staging/ath6kl/include/common/wmi_thin.h | 347 - .../staging/ath6kl/include/common/wmix.h | 8 - .../staging/ath6kl/include/common_drv.h | 4 - .../drivers/staging/ath6kl/include/gpio_api.h | 59 - trunk/drivers/staging/ath6kl/include/hif.h | 3 +- .../staging/ath6kl/include/target_reg_table.h | 244 - .../staging/ath6kl/miscdrv/ar3kconfig.c | 23 +- .../ath6kl/miscdrv/ar3kps/ar3kpsconfig.c | 22 +- .../ath6kl/miscdrv/ar3kps/ar3kpsparser.c | 28 +- .../ath6kl/miscdrv/ar3kps/ar3kpsparser.h | 6 - .../staging/ath6kl/miscdrv/common_drv.c | 126 +- .../staging/ath6kl/miscdrv/credit_dist.c | 1 - .../staging/ath6kl/os/linux/ar6000_android.c | 388 - .../staging/ath6kl/os/linux/ar6000_drv.c | 793 +- .../staging/ath6kl/os/linux/ar6000_pm.c | 77 - .../staging/ath6kl/os/linux/ar6k_pal.c | 479 - .../staging/ath6kl/os/linux/cfg80211.c | 340 +- .../drivers/staging/ath6kl/os/linux/eeprom.c | 574 - .../ath6kl/os/linux/export_hci_transport.c | 1 - .../staging/ath6kl/os/linux/hci_bridge.c | 5 +- .../ath6kl/os/linux/include/ar6000_drv.h | 152 +- .../ath6kl/os/linux/include/ar6xapi_linux.h | 8 - .../ath6kl/os/linux/include/athdrv_linux.h | 4 +- .../ath6kl/os/linux/include/athtypes_linux.h | 51 - .../ath6kl/os/linux/include/config_linux.h | 7 - .../ath6kl/os/linux/include/osapi_linux.h | 49 +- .../ath6kl/os/linux/include/wlan_config.h | 10 - .../os/linux/include/wmi_filter_linux.h | 2 +- trunk/drivers/staging/ath6kl/os/linux/ioctl.c | 4767 ------ .../drivers/staging/ath6kl/os/linux/netbuf.c | 1 - .../staging/ath6kl/os/linux/wireless_ext.c | 2723 ---- .../drivers/staging/ath6kl/reorder/rcv_aggr.c | 15 +- .../staging/ath6kl/wlan/include/ieee80211.h | 4 - .../staging/ath6kl/wlan/src/wlan_node.c | 11 +- .../ath6kl/wlan/src/wlan_recv_beacon.c | 1 - .../staging/ath6kl/wlan/src/wlan_utils.c | 1 - trunk/drivers/staging/ath6kl/wmi/wmi.c | 248 +- trunk/drivers/staging/brcm80211/Kconfig | 21 +- trunk/drivers/staging/brcm80211/Makefile | 1 + trunk/drivers/staging/brcm80211/README | 102 +- trunk/drivers/staging/brcm80211/TODO | 56 +- .../staging/brcm80211/brcmfmac/Makefile | 13 +- .../drivers/staging/brcm80211/brcmfmac/README | 35 - .../siutils_priv.h => brcmfmac/bcmchip.h} | 33 +- .../staging/brcm80211/brcmfmac/bcmsdh.c | 38 +- .../staging/brcm80211/brcmfmac/bcmsdh_linux.c | 10 +- .../staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c | 55 +- .../brcm80211/brcmfmac/bcmsdh_sdmmc_linux.c | 7 +- .../staging/brcm80211/brcmfmac/bcmutils.c | 1 - .../staging/brcm80211/brcmfmac/bcmwifi.c | 1 - .../drivers/staging/brcm80211/brcmfmac/dhd.h | 32 +- .../staging/brcm80211/brcmfmac/dhd_cdc.c | 16 +- .../staging/brcm80211/brcmfmac/dhd_common.c | 50 +- .../staging/brcm80211/brcmfmac/dhd_linux.c | 121 +- .../staging/brcm80211/brcmfmac/dhd_sdio.c | 1132 +- .../staging/brcm80211/brcmfmac/hndpmu.c | 1 - .../staging/brcm80211/brcmfmac/sbutils.c | 1 - .../staging/brcm80211/brcmfmac/siutils.c | 1 - .../staging/brcm80211/brcmfmac/wl_cfg80211.c | 1624 +- .../staging/brcm80211/brcmfmac/wl_cfg80211.h | 75 +- .../staging/brcm80211/brcmfmac/wl_iw.c | 161 +- .../staging/brcm80211/brcmsmac/Makefile | 22 +- .../{util/siutils.c => brcmsmac/aiutils.c} | 1646 +- .../staging/brcm80211/brcmsmac/aiutils.h | 546 + .../brcm80211/{util => brcmsmac}/bcmotp.c | 127 +- .../staging/brcm80211/brcmsmac/bcmsrom.c | 714 + .../{util => brcmsmac}/bcmsrom_tbl.h | 70 - .../drivers/staging/brcm80211/brcmsmac/d11.h | 2 + .../brcm80211/{util => brcmsmac}/hnddma.c | 110 +- .../brcm80211/{util => brcmsmac}/nicpci.c | 77 +- .../nvram/nvram_ro.c => brcmsmac/nvram.c} | 94 +- .../brcm80211/brcmsmac/phy/wlc_phy_cmn.c | 182 +- .../brcm80211/brcmsmac/phy/wlc_phy_hal.h | 5 +- .../brcm80211/brcmsmac/phy/wlc_phy_int.h | 4 +- .../brcm80211/brcmsmac/phy/wlc_phy_lcn.c | 51 +- .../brcm80211/brcmsmac/phy/wlc_phy_n.c | 173 +- .../brcm80211/brcmsmac/phy/wlc_phy_qmath.c | 296 + .../qmath.h => brcmsmac/phy/wlc_phy_qmath.h} | 38 - .../staging/brcm80211/brcmsmac/wl_dbg.h | 24 +- .../staging/brcm80211/brcmsmac/wl_export.h | 1 + .../staging/brcm80211/brcmsmac/wl_mac80211.c | 469 +- .../staging/brcm80211/brcmsmac/wl_mac80211.h | 5 +- .../staging/brcm80211/brcmsmac/wlc_alloc.c | 74 +- .../staging/brcm80211/brcmsmac/wlc_alloc.h | 2 - .../staging/brcm80211/brcmsmac/wlc_ampdu.c | 362 +- .../staging/brcm80211/brcmsmac/wlc_ampdu.h | 3 - .../staging/brcm80211/brcmsmac/wlc_antsel.c | 15 +- .../staging/brcm80211/brcmsmac/wlc_bmac.c | 692 +- .../staging/brcm80211/brcmsmac/wlc_bmac.h | 6 - .../staging/brcm80211/brcmsmac/wlc_bsscfg.h | 3 - .../staging/brcm80211/brcmsmac/wlc_channel.c | 73 +- .../staging/brcm80211/brcmsmac/wlc_key.h | 10 +- .../staging/brcm80211/brcmsmac/wlc_main.c | 1869 +-- .../staging/brcm80211/brcmsmac/wlc_main.h | 41 +- .../staging/brcm80211/brcmsmac/wlc_phy_shim.c | 9 +- .../{util/hndpmu.c => brcmsmac/wlc_pmu.c} | 3192 ++-- .../{include/hndpmu.h => brcmsmac/wlc_pmu.h} | 54 +- .../staging/brcm80211/brcmsmac/wlc_pub.h | 52 +- .../staging/brcm80211/brcmsmac/wlc_rate.c | 20 +- .../staging/brcm80211/brcmsmac/wlc_rate.h | 15 +- .../staging/brcm80211/brcmsmac/wlc_scb.h | 2 - .../staging/brcm80211/brcmsmac/wlc_stf.c | 62 +- .../drivers/staging/brcm80211/include/aidmp.h | 6 +- .../staging/brcm80211/include/bcmdefs.h | 12 - .../staging/brcm80211/include/bcmdevs.h | 72 +- .../staging/brcm80211/include/bcmnvram.h | 29 +- .../staging/brcm80211/include/bcmsdpcm.h | 3 +- .../staging/brcm80211/include/bcmsrom_fmt.h | 2 +- .../staging/brcm80211/include/bcmutils.h | 189 +- .../staging/brcm80211/include/bcmwifi.h | 6 +- .../staging/brcm80211/include/hnddma.h | 19 + .../brcm80211/{util => include}/pci_core.h | 0 .../staging/brcm80211/include/pcicfg.h | 510 +- .../staging/brcm80211/include/sbchipc.h | 6 +- .../staging/brcm80211/include/siutils.h | 361 - .../staging/brcm80211/include/wlioctl.h | 349 +- trunk/drivers/staging/brcm80211/util/Makefile | 29 + .../drivers/staging/brcm80211/util/aiutils.c | 705 - .../drivers/staging/brcm80211/util/bcmsrom.c | 2088 --- .../drivers/staging/brcm80211/util/bcmutils.c | 484 +- .../drivers/staging/brcm80211/util/bcmwifi.c | 13 +- trunk/drivers/staging/brcm80211/util/qmath.c | 681 - .../drivers/staging/brcm80211/util/sbpcmcia.h | 217 - .../drivers/staging/brcm80211/util/sbsocram.h | 175 - .../drivers/staging/brcm80211/util/sbutils.c | 476 - .../comedi/drivers/addi-data/APCI1710_Ssi.c | 16 +- .../comedi/drivers/addi-data/addi_common.c | 61 +- .../comedi/drivers/addi-data/addi_common.h | 17 +- .../comedi/drivers/addi-data/addi_eeprom.c | 36 +- .../comedi/drivers/addi-data/hwdrv_apci16xx.c | 10 +- .../comedi/drivers/addi-data/hwdrv_apci3120.c | 27 +- .../comedi/drivers/addi-data/hwdrv_apci3xxx.c | 24 +- .../staging/comedi/drivers/adl_pci9118.c | 4 +- .../staging/comedi/drivers/adv_pci_dio.c | 3 +- .../staging/comedi/drivers/cb_pcidda.c | 2 +- .../staging/comedi/drivers/cb_pcimdas.c | 2 +- .../drivers/staging/comedi/drivers/jr3_pci.c | 27 +- .../drivers/staging/comedi/drivers/ni_660x.c | 2 +- .../staging/comedi/drivers/ni_mio_common.c | 6 +- trunk/drivers/staging/comedi/drivers/ni_tio.c | 6 +- trunk/drivers/staging/comedi/drivers/pcl724.c | 2 +- trunk/drivers/staging/comedi/drivers/pcl818.c | 2 +- .../drivers/staging/comedi/drivers/pcm3724.c | 2 +- trunk/drivers/staging/comedi/drivers/usbdux.c | 2 +- .../drivers/staging/comedi/drivers/vmk80xx.c | 343 +- .../staging/cptm1217/clearpad_tm1217.c | 5 +- .../drivers/staging/crystalhd/bc_dts_types.h | 1 - .../staging/crystalhd/crystalhd_misc.c | 4 +- trunk/drivers/staging/cx25821/cx25821-video.c | 3 +- trunk/drivers/staging/easycap/easycap_main.c | 479 +- trunk/drivers/staging/echo/echo.c | 26 +- .../staging/ft1000/ft1000-usb/ft1000_hw.c | 158 +- .../staging/ft1000/ft1000-usb/ft1000_usb.h | 19 - trunk/drivers/staging/gma500/Makefile | 15 +- trunk/drivers/staging/gma500/mrst.h | 217 + trunk/drivers/staging/gma500/mrst_crtc.c | 619 + trunk/drivers/staging/gma500/mrst_lvds.c | 371 + trunk/drivers/staging/gma500/psb_2d.c | 9 +- trunk/drivers/staging/gma500/psb_bl.c | 118 +- trunk/drivers/staging/gma500/psb_buffer.c | 450 - trunk/drivers/staging/gma500/psb_drm.h | 122 - trunk/drivers/staging/gma500/psb_drv.c | 765 +- trunk/drivers/staging/gma500/psb_drv.h | 462 +- trunk/drivers/staging/gma500/psb_fb.c | 365 +- trunk/drivers/staging/gma500/psb_fb.h | 16 +- trunk/drivers/staging/gma500/psb_fence.c | 122 - trunk/drivers/staging/gma500/psb_gem.c | 320 + trunk/drivers/staging/gma500/psb_gtt.c | 1263 +- trunk/drivers/staging/gma500/psb_gtt.h | 84 +- .../staging/gma500/psb_intel_display.c | 147 +- trunk/drivers/staging/gma500/psb_intel_drv.h | 13 +- trunk/drivers/staging/gma500/psb_intel_lvds.c | 50 +- trunk/drivers/staging/gma500/psb_intel_sdvo.c | 4 +- trunk/drivers/staging/gma500/psb_irq.c | 178 +- .../staging/gma500/{psb_reset.c => psb_lid.c} | 0 trunk/drivers/staging/gma500/psb_mmu.c | 61 - trunk/drivers/staging/gma500/psb_powermgmt.c | 755 +- trunk/drivers/staging/gma500/psb_powermgmt.h | 55 +- trunk/drivers/staging/gma500/psb_pvr_glue.c | 73 - trunk/drivers/staging/gma500/psb_pvr_glue.h | 25 - trunk/drivers/staging/gma500/psb_sgx.c | 238 - trunk/drivers/staging/gma500/psb_sgx.h | 32 - trunk/drivers/staging/gma500/psb_ttm_fence.c | 605 - .../staging/gma500/psb_ttm_fence_api.h | 272 - .../staging/gma500/psb_ttm_fence_driver.h | 302 - .../staging/gma500/psb_ttm_fence_user.c | 237 - .../staging/gma500/psb_ttm_fence_user.h | 140 - trunk/drivers/staging/gma500/psb_ttm_glue.c | 349 - .../staging/gma500/psb_ttm_placement_user.c | 628 - .../staging/gma500/psb_ttm_placement_user.h | 252 - .../staging/gma500/psb_ttm_userobj_api.h | 85 - trunk/drivers/staging/hv/Kconfig | 4 +- trunk/drivers/staging/hv/Makefile | 2 +- trunk/drivers/staging/hv/blkvsc.c | 102 - trunk/drivers/staging/hv/blkvsc_drv.c | 1477 +- trunk/drivers/staging/hv/channel.c | 230 +- trunk/drivers/staging/hv/channel.h | 112 - trunk/drivers/staging/hv/channel_mgmt.c | 201 +- trunk/drivers/staging/hv/channel_mgmt.h | 320 - trunk/drivers/staging/hv/connection.c | 108 +- trunk/drivers/staging/hv/hv.c | 111 +- trunk/drivers/staging/hv/hv.h | 140 - trunk/drivers/staging/hv/hv_api.h | 910 -- trunk/drivers/staging/hv/hv_kvp.c | 20 +- trunk/drivers/staging/hv/hv_mouse.c | 502 +- trunk/drivers/staging/hv/hv_timesource.c | 3 +- trunk/drivers/staging/hv/hv_util.c | 81 +- trunk/drivers/staging/hv/hyperv.h | 944 ++ .../staging/hv/{rndis.h => hyperv_net.h} | 422 +- .../hv/{vstorage.h => hyperv_storage.h} | 144 +- trunk/drivers/staging/hv/hyperv_vmbus.h | 631 + trunk/drivers/staging/hv/logging.h | 98 - trunk/drivers/staging/hv/netvsc.c | 987 +- trunk/drivers/staging/hv/netvsc.h | 332 - trunk/drivers/staging/hv/netvsc_api.h | 116 - trunk/drivers/staging/hv/netvsc_drv.c | 190 +- trunk/drivers/staging/hv/ring_buffer.c | 526 +- trunk/drivers/staging/hv/ring_buffer.h | 102 - trunk/drivers/staging/hv/rndis_filter.c | 187 +- trunk/drivers/staging/hv/rndis_filter.h | 55 - trunk/drivers/staging/hv/storvsc.c | 547 +- trunk/drivers/staging/hv/storvsc_api.h | 110 - trunk/drivers/staging/hv/storvsc_drv.c | 1015 +- trunk/drivers/staging/hv/utils.h | 120 - trunk/drivers/staging/hv/version_info.h | 48 - trunk/drivers/staging/hv/vmbus.h | 51 - trunk/drivers/staging/hv/vmbus_api.h | 139 - .../staging/hv/vmbus_channel_interface.h | 89 - trunk/drivers/staging/hv/vmbus_drv.c | 1098 +- .../drivers/staging/hv/vmbus_packet_format.h | 161 - trunk/drivers/staging/hv/vmbus_private.h | 134 - .../staging/iio/Documentation/device.txt | 78 +- .../iio/Documentation/generic_buffer.c | 95 +- .../staging/iio/Documentation/iio_utils.h | 20 +- .../staging/iio/Documentation/overview.txt | 19 +- .../staging/iio/Documentation/ring.txt | 44 +- .../staging/iio/Documentation/sysfs-bus-iio | 13 + .../iio/Documentation/sysfs-bus-iio-light | 13 + .../Documentation/sysfs-bus-iio-light-tsl2583 | 20 + .../staging/iio/Documentation/trigger.txt | 16 +- .../staging/iio/Documentation/userspace.txt | 12 - trunk/drivers/staging/iio/Kconfig | 15 +- trunk/drivers/staging/iio/accel/adis16201.h | 9 +- .../staging/iio/accel/adis16201_core.c | 489 +- .../staging/iio/accel/adis16201_ring.c | 146 +- .../staging/iio/accel/adis16201_trigger.c | 82 +- trunk/drivers/staging/iio/accel/adis16203.h | 18 +- .../staging/iio/accel/adis16203_core.c | 411 +- .../staging/iio/accel/adis16203_ring.c | 123 +- .../staging/iio/accel/adis16203_trigger.c | 83 +- trunk/drivers/staging/iio/accel/adis16204.h | 18 +- .../staging/iio/accel/adis16204_core.c | 434 +- .../staging/iio/accel/adis16204_ring.c | 126 +- .../staging/iio/accel/adis16204_trigger.c | 83 +- trunk/drivers/staging/iio/accel/adis16209.h | 6 +- .../staging/iio/accel/adis16209_core.c | 468 +- .../staging/iio/accel/adis16209_ring.c | 143 +- .../staging/iio/accel/adis16209_trigger.c | 77 +- .../staging/iio/accel/adis16220_core.c | 13 +- trunk/drivers/staging/iio/accel/adis16240.h | 7 +- .../staging/iio/accel/adis16240_core.c | 390 +- .../staging/iio/accel/adis16240_ring.c | 131 +- .../staging/iio/accel/adis16240_trigger.c | 78 +- trunk/drivers/staging/iio/accel/kxsd9.c | 14 +- trunk/drivers/staging/iio/accel/lis3l02dq.h | 46 +- .../staging/iio/accel/lis3l02dq_core.c | 844 +- .../staging/iio/accel/lis3l02dq_ring.c | 504 +- trunk/drivers/staging/iio/accel/sca3000.h | 76 +- .../drivers/staging/iio/accel/sca3000_core.c | 955 +- .../drivers/staging/iio/accel/sca3000_ring.c | 269 +- trunk/drivers/staging/iio/adc/Kconfig | 60 +- trunk/drivers/staging/iio/adc/Makefile | 1 + trunk/drivers/staging/iio/adc/ad7150.c | 178 +- trunk/drivers/staging/iio/adc/ad7152.c | 33 +- trunk/drivers/staging/iio/adc/ad7291.c | 502 +- trunk/drivers/staging/iio/adc/ad7298.h | 12 +- trunk/drivers/staging/iio/adc/ad7298_core.c | 242 +- trunk/drivers/staging/iio/adc/ad7298_ring.c | 134 +- trunk/drivers/staging/iio/adc/ad7314.c | 35 +- trunk/drivers/staging/iio/adc/ad7476.h | 7 +- trunk/drivers/staging/iio/adc/ad7476_core.c | 173 +- trunk/drivers/staging/iio/adc/ad7476_ring.c | 127 +- trunk/drivers/staging/iio/adc/ad7606.h | 20 +- trunk/drivers/staging/iio/adc/ad7606_core.c | 300 +- trunk/drivers/staging/iio/adc/ad7606_par.c | 30 +- trunk/drivers/staging/iio/adc/ad7606_ring.c | 152 +- trunk/drivers/staging/iio/adc/ad7606_spi.c | 24 +- trunk/drivers/staging/iio/adc/ad7745.c | 121 +- trunk/drivers/staging/iio/adc/ad7780.c | 301 + trunk/drivers/staging/iio/adc/ad7780.h | 30 + trunk/drivers/staging/iio/adc/ad7816.c | 111 +- trunk/drivers/staging/iio/adc/ad7887.h | 17 +- trunk/drivers/staging/iio/adc/ad7887_core.c | 200 +- trunk/drivers/staging/iio/adc/ad7887_ring.c | 156 +- trunk/drivers/staging/iio/adc/ad799x.h | 33 +- trunk/drivers/staging/iio/adc/ad799x_core.c | 859 +- trunk/drivers/staging/iio/adc/ad799x_ring.c | 93 +- trunk/drivers/staging/iio/adc/adt7310.c | 206 +- trunk/drivers/staging/iio/adc/adt7410.c | 201 +- trunk/drivers/staging/iio/adc/adt75.c | 180 +- trunk/drivers/staging/iio/adc/max1363.h | 93 +- trunk/drivers/staging/iio/adc/max1363_core.c | 1945 +-- trunk/drivers/staging/iio/adc/max1363_ring.c | 109 +- trunk/drivers/staging/iio/addac/adt7316.c | 502 +- trunk/drivers/staging/iio/chrdev.h | 44 +- trunk/drivers/staging/iio/dac/Kconfig | 21 + trunk/drivers/staging/iio/dac/Makefile | 2 + trunk/drivers/staging/iio/dac/ad5446.c | 30 +- trunk/drivers/staging/iio/dac/ad5446.h | 1 + trunk/drivers/staging/iio/dac/ad5504.c | 404 + trunk/drivers/staging/iio/dac/ad5504.h | 70 + trunk/drivers/staging/iio/dac/ad5624r_spi.c | 23 +- trunk/drivers/staging/iio/dac/ad5791.c | 444 + trunk/drivers/staging/iio/dac/ad5791.h | 116 + trunk/drivers/staging/iio/dac/max517.c | 17 +- trunk/drivers/staging/iio/dds/Kconfig | 4 +- trunk/drivers/staging/iio/dds/ad5930.c | 14 +- trunk/drivers/staging/iio/dds/ad9832.c | 23 +- trunk/drivers/staging/iio/dds/ad9834.c | 54 +- trunk/drivers/staging/iio/dds/ad9834.h | 8 +- trunk/drivers/staging/iio/dds/ad9850.c | 12 +- trunk/drivers/staging/iio/dds/ad9852.c | 12 +- trunk/drivers/staging/iio/dds/ad9910.c | 12 +- trunk/drivers/staging/iio/dds/ad9951.c | 12 +- trunk/drivers/staging/iio/gyro/Kconfig | 10 + trunk/drivers/staging/iio/gyro/Makefile | 3 + .../drivers/staging/iio/gyro/adis16060_core.c | 10 +- .../drivers/staging/iio/gyro/adis16080_core.c | 13 +- .../drivers/staging/iio/gyro/adis16130_core.c | 14 +- trunk/drivers/staging/iio/gyro/adis16260.h | 7 +- .../drivers/staging/iio/gyro/adis16260_core.c | 477 +- .../drivers/staging/iio/gyro/adis16260_ring.c | 124 +- .../staging/iio/gyro/adis16260_trigger.c | 85 +- trunk/drivers/staging/iio/gyro/adxrs450.h | 58 + .../drivers/staging/iio/gyro/adxrs450_core.c | 455 + trunk/drivers/staging/iio/gyro/gyro.h | 3 + trunk/drivers/staging/iio/iio.h | 356 +- trunk/drivers/staging/iio/imu/Kconfig | 26 +- trunk/drivers/staging/iio/imu/Makefile | 8 - trunk/drivers/staging/iio/imu/adis16300.h | 184 - .../drivers/staging/iio/imu/adis16300_core.c | 756 - .../drivers/staging/iio/imu/adis16300_ring.c | 238 - .../staging/iio/imu/adis16300_trigger.c | 125 - trunk/drivers/staging/iio/imu/adis16350.h | 177 - .../drivers/staging/iio/imu/adis16350_core.c | 757 - .../drivers/staging/iio/imu/adis16350_ring.c | 236 - .../staging/iio/imu/adis16350_trigger.c | 125 - trunk/drivers/staging/iio/imu/adis16400.h | 38 +- .../drivers/staging/iio/imu/adis16400_core.c | 731 +- .../drivers/staging/iio/imu/adis16400_ring.c | 235 +- .../staging/iio/imu/adis16400_trigger.c | 100 +- trunk/drivers/staging/iio/industrialio-core.c | 943 +- trunk/drivers/staging/iio/industrialio-ring.c | 587 +- .../staging/iio/industrialio-trigger.c | 299 +- trunk/drivers/staging/iio/kfifo_buf.c | 63 +- trunk/drivers/staging/iio/kfifo_buf.h | 40 +- trunk/drivers/staging/iio/light/Kconfig | 28 +- trunk/drivers/staging/iio/light/Makefile | 1 + trunk/drivers/staging/iio/light/isl29018.c | 23 +- trunk/drivers/staging/iio/light/tsl2563.c | 427 +- trunk/drivers/staging/iio/light/tsl2583.c | 964 ++ .../drivers/staging/iio/magnetometer/ak8975.c | 130 +- .../staging/iio/magnetometer/hmc5843.c | 10 +- trunk/drivers/staging/iio/meter/ade7753.c | 14 +- trunk/drivers/staging/iio/meter/ade7754.c | 14 +- trunk/drivers/staging/iio/meter/ade7758.h | 71 +- .../drivers/staging/iio/meter/ade7758_core.c | 366 +- .../drivers/staging/iio/meter/ade7758_ring.c | 281 +- .../staging/iio/meter/ade7758_trigger.c | 95 +- trunk/drivers/staging/iio/meter/ade7759.c | 15 +- trunk/drivers/staging/iio/meter/ade7854.c | 10 +- trunk/drivers/staging/iio/resolver/ad2s120x.c | 13 +- trunk/drivers/staging/iio/resolver/ad2s1210.c | 12 +- trunk/drivers/staging/iio/resolver/ad2s90.c | 12 +- trunk/drivers/staging/iio/ring_generic.h | 293 +- trunk/drivers/staging/iio/ring_sw.c | 205 +- trunk/drivers/staging/iio/ring_sw.h | 196 +- trunk/drivers/staging/iio/sysfs.h | 184 +- trunk/drivers/staging/iio/trigger.h | 116 +- trunk/drivers/staging/iio/trigger/Kconfig | 1 + .../staging/iio/trigger/iio-trig-bfin-timer.c | 22 +- .../staging/iio/trigger/iio-trig-gpio.c | 25 +- .../iio/trigger/iio-trig-periodic-rtc.c | 24 +- .../staging/iio/trigger/iio-trig-sysfs.c | 169 +- trunk/drivers/staging/intel_sst/intel_sst.c | 129 +- trunk/drivers/staging/intel_sst/intel_sst.h | 33 +- .../intel_sst/intel_sst_app_interface.c | 45 +- .../staging/intel_sst/intel_sst_common.h | 9 +- .../intel_sst/intel_sst_drv_interface.c | 25 +- .../drivers/staging/intel_sst/intel_sst_dsp.c | 14 +- .../staging/intel_sst/intel_sst_fw_ipc.h | 7 + .../staging/intel_sst/intel_sst_ioctl.h | 8 + .../drivers/staging/intel_sst/intel_sst_ipc.c | 74 +- .../drivers/staging/intel_sst/intel_sst_pvt.c | 2 +- .../staging/intel_sst/intel_sst_stream.c | 15 +- .../intel_sst/intel_sst_stream_encoded.c | 8 +- trunk/drivers/staging/intel_sst/intelmid.c | 475 +- trunk/drivers/staging/intel_sst/intelmid.h | 38 +- .../staging/intel_sst/intelmid_adc_control.h | 193 + .../drivers/staging/intel_sst/intelmid_ctrl.c | 304 +- .../staging/intel_sst/intelmid_msic_control.c | 833 +- .../drivers/staging/intel_sst/intelmid_pvt.c | 1 - .../staging/intel_sst/intelmid_snd_control.h | 9 + .../staging/intel_sst/intelmid_v0_control.c | 109 +- .../staging/intel_sst/intelmid_v1_control.c | 141 +- .../staging/intel_sst/intelmid_v2_control.c | 219 +- trunk/drivers/staging/intel_sst/jack.h | 10 - trunk/drivers/staging/keucr/common.h | 2 + trunk/drivers/staging/keucr/init.c | 3 - trunk/drivers/staging/keucr/init.h | 10 +- trunk/drivers/staging/keucr/ms.c | 698 +- trunk/drivers/staging/keucr/ms.h | 338 +- trunk/drivers/staging/keucr/msscsi.c | 250 +- trunk/drivers/staging/keucr/scsiglue.c | 192 +- trunk/drivers/staging/keucr/smcommon.h | 2 +- trunk/drivers/staging/keucr/smil.h | 309 +- trunk/drivers/staging/keucr/smilecc.c | 314 +- trunk/drivers/staging/keucr/smilmain.c | 144 +- trunk/drivers/staging/keucr/smilsub.c | 66 +- trunk/drivers/staging/keucr/smscsi.c | 2 - trunk/drivers/staging/keucr/transport.c | 531 +- trunk/drivers/staging/keucr/transport.h | 84 +- trunk/drivers/staging/keucr/usb.c | 95 +- trunk/drivers/staging/line6/driver.c | 2 - trunk/drivers/staging/lirc/lirc_parallel.c | 27 +- trunk/drivers/staging/lirc/lirc_sasem.c | 13 +- trunk/drivers/staging/lirc/lirc_serial.c | 2 +- trunk/drivers/staging/lirc/lirc_sir.c | 30 +- trunk/drivers/staging/mei/Kconfig | 28 + trunk/drivers/staging/mei/Makefile | 11 + trunk/drivers/staging/mei/TODO | 17 + trunk/drivers/staging/mei/hw.h | 333 + trunk/drivers/staging/mei/init.c | 770 + trunk/drivers/staging/mei/interface.c | 447 + trunk/drivers/staging/mei/interface.h | 62 + trunk/drivers/staging/mei/interrupt.c | 1624 ++ trunk/drivers/staging/mei/iorw.c | 604 + trunk/drivers/staging/mei/main.c | 1349 ++ trunk/drivers/staging/mei/mei.h | 105 + trunk/drivers/staging/mei/mei.txt | 189 + trunk/drivers/staging/mei/mei_dev.h | 422 + trunk/drivers/staging/mei/mei_version.h | 31 + trunk/drivers/staging/mei/wd.c | 183 + trunk/drivers/staging/nvec/Kconfig | 27 + trunk/drivers/staging/nvec/Makefile | 4 + trunk/drivers/staging/nvec/README | 14 + trunk/drivers/staging/nvec/TODO | 8 + trunk/drivers/staging/nvec/nvec-keytable.h | 266 + trunk/drivers/staging/nvec/nvec.c | 468 + trunk/drivers/staging/nvec/nvec.h | 110 + trunk/drivers/staging/nvec/nvec_kbd.c | 122 + trunk/drivers/staging/nvec/nvec_power.c | 418 + trunk/drivers/staging/nvec/nvec_ps2.c | 103 + trunk/drivers/staging/octeon/ethernet-mdio.c | 2 - .../staging/olpc_dcon/olpc_dcon_xo_1.c | 2 +- .../staging/olpc_dcon/olpc_dcon_xo_1_5.c | 22 +- trunk/drivers/staging/rt2860/Kconfig | 10 - trunk/drivers/staging/rt2860/Makefile | 52 - trunk/drivers/staging/rt2860/TODO | 16 - trunk/drivers/staging/rt2860/ap.h | 68 - trunk/drivers/staging/rt2860/chip/mac_pci.h | 355 - trunk/drivers/staging/rt2860/chip/mac_usb.h | 345 - trunk/drivers/staging/rt2860/chip/rt2860.h | 54 - trunk/drivers/staging/rt2860/chip/rt2870.h | 46 - trunk/drivers/staging/rt2860/chip/rt3070.h | 67 - trunk/drivers/staging/rt2860/chip/rt3090.h | 72 - trunk/drivers/staging/rt2860/chip/rt30xx.h | 47 - trunk/drivers/staging/rt2860/chip/rtmp_mac.h | 1308 -- trunk/drivers/staging/rt2860/chip/rtmp_phy.h | 516 - trunk/drivers/staging/rt2860/chips/rt3070.c | 169 - trunk/drivers/staging/rt2860/chips/rt3090.c | 121 - trunk/drivers/staging/rt2860/chips/rt30xx.c | 516 - trunk/drivers/staging/rt2860/chlist.h | 113 - trunk/drivers/staging/rt2860/common/action.c | 606 - trunk/drivers/staging/rt2860/common/action.h | 56 - .../drivers/staging/rt2860/common/ba_action.c | 1650 -- trunk/drivers/staging/rt2860/common/cmm_aes.c | 1311 -- .../drivers/staging/rt2860/common/cmm_asic.c | 2565 --- trunk/drivers/staging/rt2860/common/cmm_cfg.c | 258 - .../drivers/staging/rt2860/common/cmm_data.c | 2361 --- .../staging/rt2860/common/cmm_data_pci.c | 1096 -- .../staging/rt2860/common/cmm_data_usb.c | 951 -- .../drivers/staging/rt2860/common/cmm_info.c | 955 -- .../staging/rt2860/common/cmm_mac_pci.c | 1661 -- .../staging/rt2860/common/cmm_mac_usb.c | 1162 -- .../staging/rt2860/common/cmm_sanity.c | 1205 -- .../drivers/staging/rt2860/common/cmm_sync.c | 718 - .../drivers/staging/rt2860/common/cmm_tkip.c | 833 - trunk/drivers/staging/rt2860/common/cmm_wep.c | 473 - trunk/drivers/staging/rt2860/common/cmm_wpa.c | 3010 ---- .../staging/rt2860/common/crypt_hmac.c | 187 - .../drivers/staging/rt2860/common/crypt_md5.c | 339 - .../staging/rt2860/common/crypt_sha2.c | 269 - trunk/drivers/staging/rt2860/common/dfs.c | 68 - .../drivers/staging/rt2860/common/ee_efuse.c | 351 - trunk/drivers/staging/rt2860/common/ee_prom.c | 197 - trunk/drivers/staging/rt2860/common/eeprom.c | 91 - trunk/drivers/staging/rt2860/common/mlme.c | 6068 ------- .../staging/rt2860/common/rt_channel.c | 1705 -- trunk/drivers/staging/rt2860/common/rt_rf.c | 187 - .../drivers/staging/rt2860/common/rtmp_init.c | 3536 ----- .../drivers/staging/rt2860/common/rtmp_mcu.c | 336 - .../staging/rt2860/common/rtmp_timer.c | 302 - .../drivers/staging/rt2860/common/spectrum.c | 2205 --- trunk/drivers/staging/rt2860/crypt_hmac.h | 65 - trunk/drivers/staging/rt2860/crypt_md5.h | 73 - trunk/drivers/staging/rt2860/crypt_sha2.h | 73 - trunk/drivers/staging/rt2860/dfs.h | 39 - trunk/drivers/staging/rt2860/eeprom.h | 67 - trunk/drivers/staging/rt2860/iface/rtmp_pci.h | 80 - trunk/drivers/staging/rt2860/iface/rtmp_usb.h | 196 - trunk/drivers/staging/rt2860/mlme.h | 1050 -- trunk/drivers/staging/rt2860/oid.h | 779 - trunk/drivers/staging/rt2860/pci_main_dev.c | 1192 -- trunk/drivers/staging/rt2860/rt_config.h | 71 - trunk/drivers/staging/rt2860/rt_linux.c | 1367 -- trunk/drivers/staging/rt2860/rt_linux.h | 835 - trunk/drivers/staging/rt2860/rt_main_dev.c | 736 - trunk/drivers/staging/rt2860/rt_pci_rbus.c | 837 - trunk/drivers/staging/rt2860/rt_usb.c | 794 - trunk/drivers/staging/rt2860/rtmp.h | 4332 ----- trunk/drivers/staging/rt2860/rtmp_chip.h | 258 - trunk/drivers/staging/rt2860/rtmp_ckipmic.h | 63 - trunk/drivers/staging/rt2860/rtmp_def.h | 1427 -- trunk/drivers/staging/rt2860/rtmp_dot11.h | 100 - trunk/drivers/staging/rt2860/rtmp_iface.h | 75 - trunk/drivers/staging/rt2860/rtmp_mcu.h | 49 - trunk/drivers/staging/rt2860/rtmp_os.h | 90 - trunk/drivers/staging/rt2860/rtmp_timer.h | 148 - trunk/drivers/staging/rt2860/rtmp_type.h | 89 - trunk/drivers/staging/rt2860/rtusb_io.h | 185 - trunk/drivers/staging/rt2860/spectrum.h | 189 - trunk/drivers/staging/rt2860/spectrum_def.h | 202 - trunk/drivers/staging/rt2860/sta/assoc.c | 1602 -- trunk/drivers/staging/rt2860/sta/auth.c | 517 - trunk/drivers/staging/rt2860/sta/auth_rsp.c | 142 - trunk/drivers/staging/rt2860/sta/connect.c | 2613 --- trunk/drivers/staging/rt2860/sta/rtmp_data.c | 2552 --- trunk/drivers/staging/rt2860/sta/sanity.c | 362 - trunk/drivers/staging/rt2860/sta/sync.c | 1968 --- trunk/drivers/staging/rt2860/sta/wpa.c | 374 - trunk/drivers/staging/rt2860/sta_ioctl.c | 2912 ---- trunk/drivers/staging/rt2860/usb_main_dev.c | 927 -- trunk/drivers/staging/rt2860/wpa.h | 390 - trunk/drivers/staging/rt2870/Kconfig | 9 - trunk/drivers/staging/rt2870/Makefile | 55 - trunk/drivers/staging/rt2870/TODO | 17 - trunk/drivers/staging/rt2870/aironet.h | 1 - trunk/drivers/staging/rt2870/ap.h | 1 - trunk/drivers/staging/rt2870/chips/rt3070.c | 1 - trunk/drivers/staging/rt2870/chips/rt30xx.c | 1 - trunk/drivers/staging/rt2870/chlist.h | 1 - trunk/drivers/staging/rt2870/common/acction.c | 1 - trunk/drivers/staging/rt2870/common/action.c | 1 - trunk/drivers/staging/rt2870/common/action.h | 1 - .../drivers/staging/rt2870/common/ba_action.c | 1 - trunk/drivers/staging/rt2870/common/cmm_aes.c | 1 - .../drivers/staging/rt2870/common/cmm_asic.c | 1 - trunk/drivers/staging/rt2870/common/cmm_cfg.c | 1 - .../drivers/staging/rt2870/common/cmm_data.c | 1 - .../staging/rt2870/common/cmm_data_usb.c | 1 - .../drivers/staging/rt2870/common/cmm_info.c | 1 - .../staging/rt2870/common/cmm_mac_usb.c | 1 - .../staging/rt2870/common/cmm_profile.c | 1 - .../staging/rt2870/common/cmm_sanity.c | 1 - .../drivers/staging/rt2870/common/cmm_sync.c | 1 - .../drivers/staging/rt2870/common/cmm_tkip.c | 1 - trunk/drivers/staging/rt2870/common/cmm_wep.c | 1 - trunk/drivers/staging/rt2870/common/cmm_wpa.c | 1 - .../staging/rt2870/common/crypt_hmac.c | 1 - .../drivers/staging/rt2870/common/crypt_md5.c | 1 - .../staging/rt2870/common/crypt_sha2.c | 1 - trunk/drivers/staging/rt2870/common/dfs.c | 1 - .../drivers/staging/rt2870/common/ee_efuse.c | 1 - trunk/drivers/staging/rt2870/common/eeprom.c | 1 - trunk/drivers/staging/rt2870/common/md5.c | 1 - trunk/drivers/staging/rt2870/common/mlme.c | 1 - .../staging/rt2870/common/rt_channel.c | 1 - trunk/drivers/staging/rt2870/common/rt_rf.c | 1 - .../drivers/staging/rt2870/common/rtmp_init.c | 1 - .../drivers/staging/rt2870/common/rtmp_mcu.c | 1 - .../staging/rt2870/common/rtmp_timer.c | 1 - .../drivers/staging/rt2870/common/rtmp_tkip.c | 1 - .../drivers/staging/rt2870/common/rtmp_wep.c | 1 - .../staging/rt2870/common/rtusb_bulk.c | 1232 -- .../staging/rt2870/common/rtusb_data.c | 262 - .../drivers/staging/rt2870/common/rtusb_io.c | 2104 --- .../drivers/staging/rt2870/common/spectrum.c | 1 - trunk/drivers/staging/rt2870/dfs.h | 1 - trunk/drivers/staging/rt2870/md5.h | 1 - trunk/drivers/staging/rt2870/mlme.h | 1 - trunk/drivers/staging/rt2870/oid.h | 1 - trunk/drivers/staging/rt2870/rt28xx.h | 1 - trunk/drivers/staging/rt2870/rt_config.h | 1 - trunk/drivers/staging/rt2870/rt_linux.c | 1 - trunk/drivers/staging/rt2870/rt_linux.h | 1 - trunk/drivers/staging/rt2870/rt_main_dev.c | 1 - trunk/drivers/staging/rt2870/rt_profile.c | 1 - trunk/drivers/staging/rt2870/rt_usb.c | 1 - trunk/drivers/staging/rt2870/rtmp.h | 1 - trunk/drivers/staging/rt2870/rtmp_ckipmic.h | 1 - trunk/drivers/staging/rt2870/rtmp_def.h | 1 - trunk/drivers/staging/rt2870/rtmp_type.h | 1 - trunk/drivers/staging/rt2870/spectrum.h | 1 - trunk/drivers/staging/rt2870/spectrum_def.h | 1 - trunk/drivers/staging/rt2870/sta/aironet.c | 1 - trunk/drivers/staging/rt2870/sta/assoc.c | 1 - trunk/drivers/staging/rt2870/sta/auth.c | 1 - trunk/drivers/staging/rt2870/sta/auth_rsp.c | 1 - trunk/drivers/staging/rt2870/sta/connect.c | 1 - trunk/drivers/staging/rt2870/sta/rtmp_data.c | 1 - trunk/drivers/staging/rt2870/sta/sanity.c | 1 - trunk/drivers/staging/rt2870/sta/sync.c | 1 - trunk/drivers/staging/rt2870/sta/wpa.c | 1 - trunk/drivers/staging/rt2870/sta_ioctl.c | 1 - trunk/drivers/staging/rt2870/usb_main_dev.c | 1 - trunk/drivers/staging/rt2870/wpa.h | 1 - trunk/drivers/staging/rtl8712/ieee80211.h | 26 +- trunk/drivers/staging/rtl8712/if_ether.h | 4 +- trunk/drivers/staging/rtl8712/ip.h | 34 +- trunk/drivers/staging/rtl8712/mlme_osdep.h | 4 +- trunk/drivers/staging/rtl8712/osdep_service.h | 3 +- trunk/drivers/staging/rtl8712/recv_osdep.h | 4 +- trunk/drivers/staging/rtl8712/rtl8712_event.h | 25 +- trunk/drivers/staging/rtl8712/rtl8712_hal.h | 100 +- trunk/drivers/staging/rtl8712/rtl8712_led.c | 2 +- trunk/drivers/staging/rtl8712/rtl8712_recv.c | 2 +- trunk/drivers/staging/rtl8712/rtl8712_recv.h | 2 +- trunk/drivers/staging/rtl8712/rtl8712_xmit.h | 11 +- trunk/drivers/staging/rtl8712/rtl871x_cmd.c | 7 +- trunk/drivers/staging/rtl8712/rtl871x_cmd.h | 26 +- trunk/drivers/staging/rtl8712/rtl871x_event.h | 12 +- trunk/drivers/staging/rtl8712/rtl871x_io.c | 6 +- .../staging/rtl8712/rtl871x_ioctl_linux.c | 9 +- .../staging/rtl8712/rtl871x_ioctl_rtl.c | 2 +- .../staging/rtl8712/rtl871x_ioctl_set.c | 5 +- .../staging/rtl8712/rtl871x_ioctl_set.h | 16 +- trunk/drivers/staging/rtl8712/rtl871x_mp.c | 8 +- .../staging/rtl8712/rtl871x_mp_ioctl.h | 10 +- trunk/drivers/staging/rtl8712/rtl871x_recv.c | 16 +- trunk/drivers/staging/rtl8712/rtl871x_recv.h | 4 +- trunk/drivers/staging/rtl8712/rtl871x_rf.h | 2 +- .../staging/rtl8712/rtl871x_security.h | 51 +- trunk/drivers/staging/rtl8712/rtl871x_xmit.c | 3 +- trunk/drivers/staging/rtl8712/rtl871x_xmit.h | 3 +- trunk/drivers/staging/rtl8712/wifi.h | 63 +- trunk/drivers/staging/rtl8712/wlan_bssdef.h | 212 +- trunk/drivers/staging/rts_pstor/ms.c | 52 +- trunk/drivers/staging/rts_pstor/rtsx.c | 4 +- trunk/drivers/staging/rts_pstor/rtsx.h | 3 - trunk/drivers/staging/rts_pstor/sd.c | 1 + trunk/drivers/staging/rts_pstor/spi.c | 34 +- trunk/drivers/staging/rts_pstor/xd.c | 4 +- trunk/drivers/staging/sbe-2t3e3/dc.c | 33 +- trunk/drivers/staging/sep/sep_driver.c | 9 +- trunk/drivers/staging/sm7xx/TODO | 2 - trunk/drivers/staging/sm7xx/smtcfb.c | 215 +- trunk/drivers/staging/sm7xx/smtcfb.h | 7 +- trunk/drivers/staging/tm6000/CARDLIST | 16 + trunk/drivers/staging/tm6000/tm6000-alsa.c | 3 - trunk/drivers/staging/tm6000/tm6000-cards.c | 381 +- trunk/drivers/staging/tm6000/tm6000-core.c | 109 +- trunk/drivers/staging/tm6000/tm6000-i2c.c | 33 +- trunk/drivers/staging/tm6000/tm6000-stds.c | 923 +- .../drivers/staging/tm6000/tm6000-usb-isoc.h | 2 +- trunk/drivers/staging/tm6000/tm6000-video.c | 212 +- trunk/drivers/staging/tm6000/tm6000.h | 46 +- trunk/drivers/staging/tty/istallion.c | 2 +- trunk/drivers/staging/usbip/Kconfig | 52 +- trunk/drivers/staging/usbip/Makefile | 15 +- trunk/drivers/staging/usbip/stub.h | 33 +- trunk/drivers/staging/usbip/stub_dev.c | 97 +- trunk/drivers/staging/usbip/stub_main.c | 51 +- trunk/drivers/staging/usbip/stub_rx.c | 68 +- trunk/drivers/staging/usbip/stub_tx.c | 81 +- trunk/drivers/staging/usbip/usbip_common.c | 333 +- trunk/drivers/staging/usbip/usbip_common.h | 139 +- trunk/drivers/staging/usbip/usbip_event.c | 20 +- trunk/drivers/staging/usbip/userspace/AUTHORS | 2 + trunk/drivers/staging/usbip/userspace/COPYING | 340 + trunk/drivers/staging/usbip/userspace/INSTALL | 237 + .../staging/usbip/userspace/Makefile.am | 11 + trunk/drivers/staging/usbip/userspace/README | 215 + .../staging/usbip/userspace/autogen.sh | 9 + .../staging/usbip/userspace/cleanup.sh | 10 + .../staging/usbip/userspace/configure.ac | 114 + .../staging/usbip/userspace/doc/usbip.8 | 71 + .../usbip/userspace/doc/usbip_bind_driver.8 | 42 + .../staging/usbip/userspace/doc/usbipd.8 | 62 + .../usbip/userspace/libsrc/Makefile.am | 7 + .../staging/usbip/userspace/libsrc/names.c | 793 + .../staging/usbip/userspace/libsrc/names.h | 57 + .../usbip/userspace/libsrc/stub_driver.c | 391 + .../usbip/userspace/libsrc/stub_driver.h | 36 + .../staging/usbip/userspace/libsrc/usbip.h | 19 + .../usbip/userspace/libsrc/usbip_common.c | 282 + .../usbip/userspace/libsrc/usbip_common.h | 149 + .../usbip/userspace/libsrc/vhci_driver.c | 506 + .../usbip/userspace/libsrc/vhci_driver.h | 61 + .../staging/usbip/userspace/src/Makefile.am | 10 + .../staging/usbip/userspace/src/bind-driver.c | 643 + .../staging/usbip/userspace/src/usbip.c | 723 + .../usbip/userspace/src/usbip_network.c | 251 + .../usbip/userspace/src/usbip_network.h | 198 + .../staging/usbip/userspace/src/usbipd.c | 570 + .../staging/usbip/userspace/src/utils.c | 255 + .../staging/usbip/userspace/src/utils.h | 38 + trunk/drivers/staging/usbip/userspace/usb.ids | 13209 ++++++++++++++++ trunk/drivers/staging/usbip/vhci.h | 38 +- trunk/drivers/staging/usbip/vhci_hcd.c | 284 +- trunk/drivers/staging/usbip/vhci_rx.c | 74 +- trunk/drivers/staging/usbip/vhci_sysfs.c | 33 +- trunk/drivers/staging/usbip/vhci_tx.c | 44 +- trunk/drivers/staging/vt6655/bssdb.c | 8 +- trunk/drivers/staging/vt6655/device.h | 2 +- trunk/drivers/staging/vt6655/device_main.c | 14 +- trunk/drivers/staging/vt6655/dpc.c | 10 +- trunk/drivers/staging/vt6655/ioctl.c | 44 +- trunk/drivers/staging/vt6655/power.c | 2 +- trunk/drivers/staging/vt6655/rxtx.c | 4 +- trunk/drivers/staging/vt6655/wcmd.c | 14 +- trunk/drivers/staging/vt6655/wmgr.c | 46 +- trunk/drivers/staging/vt6655/wpactl.c | 10 +- trunk/drivers/staging/vt6656/bssdb.c | 8 +- trunk/drivers/staging/vt6656/dpc.c | 10 +- trunk/drivers/staging/vt6656/ioctl.c | 44 +- trunk/drivers/staging/vt6656/main_usb.c | 7 +- trunk/drivers/staging/vt6656/rxtx.c | 4 +- trunk/drivers/staging/vt6656/wcmd.c | 8 +- trunk/drivers/staging/vt6656/wmgr.c | 48 +- trunk/drivers/staging/vt6656/wpactl.c | 10 +- .../arch/arm/mach-omap2/cyashalomap_kernel.c | 2 +- .../astoria/block/cyasblkdev_block.c | 2 +- trunk/drivers/staging/winbond/mto.c | 10 - .../drivers/staging/winbond/phy_calibration.c | 8 +- trunk/drivers/staging/winbond/wb35tx.c | 3 +- trunk/drivers/staging/xgifb/XGI_main.h | 792 +- trunk/drivers/staging/xgifb/XGI_main_26.c | 1259 +- trunk/drivers/staging/xgifb/XGIfb.h | 142 +- trunk/drivers/staging/xgifb/vb_def.h | 1269 +- trunk/drivers/staging/xgifb/vb_ext.c | 138 +- trunk/drivers/staging/xgifb/vb_ext.h | 25 +- trunk/drivers/staging/xgifb/vb_init.c | 527 +- trunk/drivers/staging/xgifb/vb_init.h | 7 +- trunk/drivers/staging/xgifb/vb_setmode.c | 1885 ++- trunk/drivers/staging/xgifb/vb_setmode.h | 97 +- trunk/drivers/staging/xgifb/vb_struct.h | 823 +- trunk/drivers/staging/xgifb/vb_table.h | 8147 +++++----- trunk/drivers/staging/xgifb/vb_util.c | 2 +- trunk/drivers/staging/xgifb/vgatypes.h | 113 +- trunk/drivers/target/target_core_alua.c | 4 +- trunk/drivers/target/target_core_transport.c | 2 +- trunk/drivers/tty/Kconfig | 31 + trunk/drivers/tty/Makefile | 2 + trunk/drivers/tty/amiserial.c | 2 - trunk/drivers/tty/cyclades.c | 5 +- trunk/drivers/tty/ipwireless/Makefile | 2 - trunk/drivers/tty/moxa.c | 18 +- trunk/drivers/tty/n_gsm.c | 43 +- trunk/drivers/tty/n_hdlc.c | 18 +- trunk/drivers/tty/n_r3964.c | 10 +- trunk/drivers/tty/n_tracerouter.c | 243 + trunk/drivers/tty/n_tracesink.c | 238 + trunk/drivers/tty/n_tracesink.h | 36 + trunk/drivers/tty/n_tty.c | 61 +- trunk/drivers/tty/nozomi.c | 29 +- trunk/drivers/tty/pty.c | 35 +- trunk/drivers/tty/rocket.c | 47 - trunk/drivers/tty/serial/21285.c | 2 - trunk/drivers/tty/serial/8250.c | 44 +- trunk/drivers/tty/serial/8250.h | 3 +- trunk/drivers/tty/serial/8250_accent.c | 2 - trunk/drivers/tty/serial/8250_boca.c | 2 - trunk/drivers/tty/serial/8250_exar_st16c554.c | 2 - trunk/drivers/tty/serial/8250_fourport.c | 2 - trunk/drivers/tty/serial/8250_hub6.c | 2 - trunk/drivers/tty/serial/8250_mca.c | 2 - trunk/drivers/tty/serial/8250_pci.c | 53 +- trunk/drivers/tty/serial/8250_pnp.c | 2 - trunk/drivers/tty/serial/Kconfig | 27 +- trunk/drivers/tty/serial/Makefile | 1 + trunk/drivers/tty/serial/altera_uart.c | 26 +- trunk/drivers/tty/serial/amba-pl010.c | 2 - trunk/drivers/tty/serial/amba-pl011.c | 2 - trunk/drivers/tty/serial/atmel_serial.c | 2 - trunk/drivers/tty/serial/bfin_sport_uart.c | 3 +- trunk/drivers/tty/serial/clps711x.c | 2 - trunk/drivers/tty/serial/cpm_uart/cpm_uart.h | 2 - .../tty/serial/cpm_uart/cpm_uart_core.c | 2 - .../tty/serial/cpm_uart/cpm_uart_cpm1.c | 2 - .../tty/serial/cpm_uart/cpm_uart_cpm1.h | 2 - .../tty/serial/cpm_uart/cpm_uart_cpm2.c | 2 - .../tty/serial/cpm_uart/cpm_uart_cpm2.h | 2 - trunk/drivers/tty/serial/ifx6x60.c | 2 - trunk/drivers/tty/serial/imx.c | 2 - trunk/drivers/tty/serial/mfd.c | 4 +- trunk/drivers/tty/serial/mrst_max3110.c | 2 +- trunk/drivers/tty/serial/msm_serial.c | 2 +- trunk/drivers/tty/serial/msm_serial.h | 2 - trunk/drivers/tty/serial/msm_smd_tty.c | 3 +- trunk/drivers/tty/serial/netx-serial.c | 2 - trunk/drivers/tty/serial/pch_uart.c | 8 + trunk/drivers/tty/serial/pmac_zilog.c | 2 - trunk/drivers/tty/serial/pxa.c | 2 - trunk/drivers/tty/serial/s3c2400.c | 3 +- trunk/drivers/tty/serial/s3c2410.c | 3 +- trunk/drivers/tty/serial/s3c2412.c | 3 +- trunk/drivers/tty/serial/s3c2440.c | 3 +- trunk/drivers/tty/serial/s3c24a0.c | 3 +- trunk/drivers/tty/serial/s3c6400.c | 3 +- trunk/drivers/tty/serial/s5pv210.c | 3 +- trunk/drivers/tty/serial/sa1100.c | 2 - trunk/drivers/tty/serial/samsung.c | 3 +- trunk/drivers/tty/serial/samsung.h | 3 +- trunk/drivers/tty/serial/sb1250-duart.c | 2 - trunk/drivers/tty/serial/serial_core.c | 90 +- trunk/drivers/tty/serial/serial_ks8695.c | 2 - trunk/drivers/tty/serial/serial_txx9.c | 2 - trunk/drivers/tty/serial/sh-sci.c | 18 +- trunk/drivers/tty/serial/sh-sci.h | 16 +- trunk/drivers/tty/serial/vt8500_serial.c | 2 - trunk/drivers/tty/serial/xilinx_uartps.c | 1113 ++ trunk/drivers/tty/synclink.c | 2 - trunk/drivers/tty/tty_buffer.c | 15 +- trunk/drivers/tty/tty_io.c | 53 +- trunk/drivers/tty/tty_ioctl.c | 4 +- trunk/drivers/tty/tty_ldisc.c | 13 + trunk/drivers/tty/tty_mutex.c | 3 - trunk/drivers/tty/vt/keyboard.c | 2 - trunk/drivers/tty/vt/selection.c | 5 +- trunk/drivers/tty/vt/vc_screen.c | 2 - trunk/drivers/tty/vt/vt.c | 13 +- trunk/drivers/tty/vt/vt_ioctl.c | 25 +- trunk/drivers/usb/Kconfig | 4 + trunk/drivers/usb/Makefile | 6 + trunk/drivers/usb/class/cdc-acm.c | 479 +- trunk/drivers/usb/class/cdc-acm.h | 24 +- trunk/drivers/usb/class/cdc-wdm.c | 14 + trunk/drivers/usb/core/config.c | 2 +- trunk/drivers/usb/core/devices.c | 22 +- trunk/drivers/usb/core/file.c | 8 - trunk/drivers/usb/core/hcd.c | 6 +- trunk/drivers/usb/core/hub.c | 131 +- trunk/drivers/usb/core/sysfs.c | 13 +- trunk/drivers/usb/core/usb.c | 3 +- trunk/drivers/usb/core/usb.h | 2 +- trunk/drivers/usb/early/ehci-dbgp.c | 5 +- trunk/drivers/usb/gadget/Kconfig | 35 + trunk/drivers/usb/gadget/Makefile | 1 + trunk/drivers/usb/gadget/at91_udc.c | 2 +- trunk/drivers/usb/gadget/atmel_usba_udc.c | 2 +- trunk/drivers/usb/gadget/ci13xxx_udc.c | 75 +- trunk/drivers/usb/gadget/composite.c | 62 +- trunk/drivers/usb/gadget/dbgp.c | 14 +- trunk/drivers/usb/gadget/dummy_hcd.c | 21 +- trunk/drivers/usb/gadget/f_audio.c | 2 +- trunk/drivers/usb/gadget/f_mass_storage.c | 68 +- trunk/drivers/usb/gadget/f_rndis.c | 3 +- trunk/drivers/usb/gadget/file_storage.c | 55 +- trunk/drivers/usb/gadget/fsl_qe_udc.h | 2 +- trunk/drivers/usb/gadget/fsl_udc_core.c | 438 +- trunk/drivers/usb/gadget/fsl_usb2_udc.h | 6 + trunk/drivers/usb/gadget/gadget_chips.h | 17 + trunk/drivers/usb/gadget/printer.c | 2 + trunk/drivers/usb/gadget/s3c-hsotg.c | 235 +- trunk/drivers/usb/gadget/s3c-hsudc.c | 1349 ++ trunk/drivers/usb/gadget/storage_common.c | 18 +- trunk/drivers/usb/host/Kconfig | 57 +- trunk/drivers/usb/host/ehci-ath79.c | 202 + trunk/drivers/usb/host/ehci-atmel.c | 2 +- trunk/drivers/usb/host/ehci-au1xxx.c | 12 +- trunk/drivers/usb/host/ehci-cns3xxx.c | 2 +- trunk/drivers/usb/host/ehci-dbg.c | 2 +- trunk/drivers/usb/host/ehci-fsl.c | 221 +- trunk/drivers/usb/host/ehci-fsl.h | 4 + trunk/drivers/usb/host/ehci-grlib.c | 242 + trunk/drivers/usb/host/ehci-hcd.c | 21 +- trunk/drivers/usb/host/ehci-hub.c | 10 +- trunk/drivers/usb/host/ehci-ixp4xx.c | 2 +- trunk/drivers/usb/host/ehci-msm.c | 2 +- trunk/drivers/usb/host/ehci-mxc.c | 2 +- trunk/drivers/usb/host/ehci-octeon.c | 2 +- trunk/drivers/usb/host/ehci-omap.c | 2 +- trunk/drivers/usb/host/ehci-orion.c | 2 +- trunk/drivers/usb/host/ehci-pci.c | 2 +- trunk/drivers/usb/host/ehci-pmcmsp.c | 2 +- trunk/drivers/usb/host/ehci-ppc-of.c | 2 +- trunk/drivers/usb/host/ehci-ps3.c | 2 +- trunk/drivers/usb/host/ehci-q.c | 5 + trunk/drivers/usb/host/ehci-s5p.c | 202 + trunk/drivers/usb/host/ehci-sched.c | 22 +- trunk/drivers/usb/host/ehci-sh.c | 2 +- trunk/drivers/usb/host/ehci-spear.c | 2 +- trunk/drivers/usb/host/ehci-tegra.c | 74 +- trunk/drivers/usb/host/ehci-vt8500.c | 3 +- trunk/drivers/usb/host/ehci-w90x900.c | 2 +- trunk/drivers/usb/host/ehci-xilinx-of.c | 2 +- trunk/drivers/usb/host/ehci.h | 13 + trunk/drivers/usb/host/imx21-dbg.c | 2 +- trunk/drivers/usb/host/isp116x-hcd.c | 1 + trunk/drivers/usb/host/isp1760-hcd.c | 1638 +- trunk/drivers/usb/host/isp1760-hcd.h | 78 +- trunk/drivers/usb/host/octeon2-common.c | 45 +- trunk/drivers/usb/host/ohci-ath79.c | 151 + trunk/drivers/usb/host/ohci-hcd.c | 9 +- trunk/drivers/usb/host/ohci-pci.c | 12 +- trunk/drivers/usb/host/ohci-s3c2410.c | 58 +- trunk/drivers/usb/host/oxu210hp-hcd.c | 6 +- trunk/drivers/usb/host/pci-quirks.c | 151 +- trunk/drivers/usb/host/sl811-hcd.c | 8 +- trunk/drivers/usb/host/u132-hcd.c | 3 +- trunk/drivers/usb/host/uhci-debug.c | 88 +- trunk/drivers/usb/host/uhci-grlib.c | 208 + trunk/drivers/usb/host/uhci-hcd.c | 465 +- trunk/drivers/usb/host/uhci-hcd.h | 248 +- trunk/drivers/usb/host/uhci-hub.c | 41 +- trunk/drivers/usb/host/uhci-pci.c | 301 + trunk/drivers/usb/host/uhci-q.c | 131 +- trunk/drivers/usb/host/xhci-dbg.c | 51 +- trunk/drivers/usb/host/xhci-hub.c | 231 +- trunk/drivers/usb/host/xhci-mem.c | 144 +- trunk/drivers/usb/host/xhci-pci.c | 1 + trunk/drivers/usb/host/xhci-ring.c | 509 +- trunk/drivers/usb/host/xhci.c | 145 +- trunk/drivers/usb/host/xhci.h | 145 +- trunk/drivers/usb/misc/ftdi-elan.c | 3 +- trunk/drivers/usb/misc/ldusb.c | 52 +- trunk/drivers/usb/misc/usbtest.c | 133 +- trunk/drivers/usb/musb/Kconfig | 35 +- trunk/drivers/usb/musb/Makefile | 7 +- trunk/drivers/usb/musb/am35x.c | 17 +- trunk/drivers/usb/musb/blackfin.c | 16 +- trunk/drivers/usb/musb/cppi_dma.c | 34 +- trunk/drivers/usb/musb/da8xx.c | 21 +- trunk/drivers/usb/musb/davinci.c | 13 +- trunk/drivers/usb/musb/musb_core.c | 151 +- trunk/drivers/usb/musb/musb_debug.h | 14 - trunk/drivers/usb/musb/musb_gadget.c | 178 +- trunk/drivers/usb/musb/musb_gadget_ep0.c | 22 +- trunk/drivers/usb/musb/musb_host.c | 157 +- trunk/drivers/usb/musb/musb_virthub.c | 25 +- trunk/drivers/usb/musb/musbhsdma.c | 11 +- trunk/drivers/usb/musb/omap2430.c | 25 +- trunk/drivers/usb/musb/tusb6010.c | 62 +- trunk/drivers/usb/musb/tusb6010_omap.c | 32 +- trunk/drivers/usb/musb/ux500_dma.c | 422 + trunk/drivers/usb/otg/Kconfig | 8 + trunk/drivers/usb/otg/Makefile | 2 + trunk/drivers/usb/otg/fsl_otg.c | 1169 ++ trunk/drivers/usb/otg/fsl_otg.h | 406 + trunk/drivers/usb/otg/gpio_vbus.c | 14 +- trunk/drivers/usb/otg/isp1301_omap.c | 26 +- trunk/drivers/usb/otg/langwell_otg.c | 40 +- trunk/drivers/usb/otg/msm_otg.c | 671 +- trunk/drivers/usb/otg/otg.c | 35 + trunk/drivers/usb/otg/otg_fsm.c | 349 + trunk/drivers/usb/otg/otg_fsm.h | 154 + trunk/drivers/usb/otg/twl4030-usb.c | 9 +- trunk/drivers/usb/otg/twl6030-usb.c | 17 +- trunk/drivers/usb/renesas_usbhs/Kconfig | 16 + trunk/drivers/usb/renesas_usbhs/Makefile | 9 + trunk/drivers/usb/renesas_usbhs/common.c | 437 + trunk/drivers/usb/renesas_usbhs/common.h | 230 + trunk/drivers/usb/renesas_usbhs/mod.c | 328 + trunk/drivers/usb/renesas_usbhs/mod.h | 137 + trunk/drivers/usb/renesas_usbhs/mod_gadget.c | 1384 ++ trunk/drivers/usb/renesas_usbhs/pipe.c | 874 + trunk/drivers/usb/renesas_usbhs/pipe.h | 104 + trunk/drivers/usb/serial/Kconfig | 9 - trunk/drivers/usb/serial/Makefile | 1 - trunk/drivers/usb/serial/cp210x.c | 6 +- trunk/drivers/usb/serial/ftdi_sio.c | 1 + trunk/drivers/usb/serial/ftdi_sio_ids.h | 5 + trunk/drivers/usb/serial/garmin_gps.c | 20 +- trunk/drivers/usb/serial/moto_modem.c | 1 + trunk/drivers/usb/serial/opticon.c | 7 +- trunk/drivers/usb/serial/option.c | 10 +- trunk/drivers/usb/serial/sam-ba.c | 206 - trunk/drivers/usb/storage/ene_ub6250.c | 4 +- trunk/drivers/usb/storage/unusual_realtek.h | 10 +- trunk/drivers/usb/storage/usb.c | 9 +- trunk/drivers/video/Kconfig | 5 +- trunk/drivers/video/backlight/ltv350qv.c | 2 +- trunk/drivers/video/console/newport_con.c | 2 +- trunk/drivers/video/imxfb.c | 28 +- trunk/drivers/video/msm/mddi.c | 2 +- trunk/drivers/video/mxsfb.c | 2 +- trunk/drivers/watchdog/bcm63xx_wdt.c | 2 +- trunk/drivers/xen/evtchn.c | 2 +- trunk/drivers/xen/swiotlb-xen.c | 2 +- trunk/fs/block_dev.c | 17 +- trunk/fs/btrfs/relocation.c | 2 +- trunk/fs/compat.c | 235 - trunk/fs/exec.c | 126 +- trunk/fs/fat/cache.c | 7 + trunk/fs/fat/dir.c | 32 +- trunk/fs/fat/fat.h | 15 +- trunk/fs/fat/fatent.c | 4 +- trunk/fs/fat/inode.c | 74 +- trunk/fs/fat/misc.c | 44 +- trunk/fs/fat/namei_msdos.c | 4 +- trunk/fs/fat/namei_vfat.c | 4 +- trunk/fs/freevxfs/vxfs_inode.c | 2 +- trunk/fs/gfs2/bmap.c | 2 + trunk/fs/gfs2/log.c | 29 +- trunk/fs/gfs2/rgrp.c | 4 + trunk/fs/logfs/readwrite.c | 2 +- trunk/fs/nfsd/stats.c | 2 +- trunk/fs/ocfs2/refcounttree.c | 2 +- trunk/fs/partitions/ldm.c | 2 +- trunk/fs/squashfs/Kconfig | 4 +- trunk/fs/squashfs/cache.c | 2 +- trunk/fs/timerfd.c | 102 +- trunk/fs/ubifs/budget.c | 104 +- trunk/fs/ubifs/commit.c | 2 +- trunk/fs/ubifs/debug.c | 167 +- trunk/fs/ubifs/debug.h | 178 +- trunk/fs/ubifs/dir.c | 4 +- trunk/fs/ubifs/file.c | 28 +- trunk/fs/ubifs/find.c | 10 +- trunk/fs/ubifs/gc.c | 71 +- trunk/fs/ubifs/io.c | 33 +- trunk/fs/ubifs/journal.c | 29 +- trunk/fs/ubifs/log.c | 28 +- trunk/fs/ubifs/lprops.c | 115 +- trunk/fs/ubifs/lpt_commit.c | 55 +- trunk/fs/ubifs/master.c | 8 +- trunk/fs/ubifs/misc.h | 17 + trunk/fs/ubifs/orphan.c | 3 +- trunk/fs/ubifs/recovery.c | 354 +- trunk/fs/ubifs/replay.c | 468 +- trunk/fs/ubifs/sb.c | 153 +- trunk/fs/ubifs/super.c | 46 +- trunk/fs/ubifs/tnc.c | 10 +- trunk/fs/ubifs/tnc_commit.c | 18 +- trunk/fs/ubifs/ubifs-media.h | 30 +- trunk/fs/ubifs/ubifs.h | 86 +- trunk/fs/ubifs/xattr.c | 8 +- trunk/fs/ufs/inode.c | 2 +- trunk/fs/xfs/linux-2.6/xfs_buf.c | 22 +- trunk/fs/xfs/linux-2.6/xfs_buf.h | 1 + trunk/fs/xfs/linux-2.6/xfs_ioctl32.c | 3 +- trunk/fs/xfs/linux-2.6/xfs_ioctl32.h | 1 + trunk/fs/xfs/linux-2.6/xfs_linux.h | 1 + trunk/fs/xfs/linux-2.6/xfs_message.c | 20 +- trunk/fs/xfs/linux-2.6/xfs_message.h | 7 +- trunk/fs/xfs/linux-2.6/xfs_super.c | 4 - trunk/fs/xfs/linux-2.6/xfs_sync.c | 10 + trunk/fs/xfs/linux-2.6/xfs_trace.h | 76 +- trunk/fs/xfs/xfs_ag.h | 1 - trunk/fs/xfs/xfs_alloc.c | 844 +- trunk/fs/xfs/xfs_alloc.h | 15 +- trunk/fs/xfs/xfs_alloc_btree.c | 13 +- trunk/fs/xfs/xfs_dfrag.c | 6 +- trunk/fs/xfs/xfs_inode.c | 4 +- trunk/fs/xfs/xfs_inode_item.c | 1 - trunk/fs/xfs/xfs_log.c | 15 +- trunk/fs/xfs/xfs_log.h | 2 - trunk/fs/xfs/xfs_log_cil.c | 5 +- trunk/fs/xfs/xfs_log_priv.h | 2 + trunk/fs/xfs/xfs_log_recover.c | 75 +- trunk/fs/xfs/xfs_mount.c | 4 +- trunk/fs/xfs/xfs_trans.c | 6 +- trunk/fs/xfs/xfs_types.h | 2 - trunk/include/asm-generic/vmlinux.lds.h | 61 +- trunk/include/linux/Kbuild | 1 + trunk/include/linux/binfmts.h | 4 - trunk/include/linux/clocksource.h | 8 + trunk/include/linux/dvb/frontend.h | 20 +- trunk/include/linux/dvb/version.h | 2 +- trunk/include/linux/elf.h | 1 + trunk/include/linux/filter.h | 7 +- trunk/include/linux/fsl_devices.h | 16 + trunk/include/linux/gpio_keys.h | 8 +- trunk/include/linux/hrtimer.h | 33 +- trunk/include/linux/i2c/mpr121_touchkey.h | 20 + trunk/include/linux/i2c/tsc2007.h | 7 + trunk/include/linux/input/ad714x.h | 3 +- trunk/include/linux/input/adp5589.h | 213 + trunk/include/linux/kvm.h | 6 + trunk/include/linux/kvm_host.h | 31 +- trunk/include/linux/leds-regulator.h | 2 +- trunk/include/linux/linkage.h | 4 - trunk/include/linux/mfd/wm8994/pdata.h | 49 + trunk/include/linux/mtd/physmap.h | 4 +- trunk/include/linux/mtd/ubi.h | 4 +- trunk/include/linux/nmi.h | 7 +- trunk/include/linux/notifier.h | 3 +- trunk/include/linux/pci-aspm.h | 1 + trunk/include/linux/pci.h | 49 +- trunk/include/linux/pci_ids.h | 2 + trunk/include/linux/pci_regs.h | 17 + trunk/include/linux/posix-clock.h | 2 +- trunk/include/linux/pti.h | 42 + trunk/include/linux/rotary_encoder.h | 1 + trunk/include/linux/sched.h | 35 +- trunk/include/linux/serial_core.h | 6 +- trunk/include/linux/serial_reg.h | 2 + trunk/include/linux/sht15.h | 18 +- trunk/include/linux/skbuff.h | 2 +- trunk/include/linux/slub_def.h | 8 +- trunk/include/linux/spi/ads7846.h | 3 +- trunk/include/linux/thread_info.h | 2 +- trunk/include/linux/timerfd.h | 3 +- trunk/include/linux/tty.h | 4 + trunk/include/linux/tty_ldisc.h | 9 +- trunk/include/linux/usb.h | 6 +- trunk/include/linux/usb/ch9.h | 2 +- trunk/include/linux/usb/composite.h | 16 +- trunk/include/linux/usb/ehci_def.h | 15 +- trunk/include/linux/usb/gadget.h | 4 +- trunk/include/linux/usb/msm_hsusb.h | 79 +- trunk/include/linux/usb/msm_hsusb_hw.h | 2 + trunk/include/linux/usb/otg.h | 6 + trunk/include/linux/usb/renesas_usbhs.h | 156 + trunk/include/linux/uvcvideo.h | 69 + trunk/include/linux/v4l2-mediabus.h | 3 + trunk/include/linux/videodev2.h | 4 + trunk/include/media/mt9v032.h | 12 + trunk/include/media/rc-core.h | 7 +- trunk/include/media/rc-map.h | 1 + trunk/include/media/soc_camera.h | 15 +- trunk/include/media/soc_camera_platform.h | 50 + trunk/include/media/soc_mediabus.h | 25 +- trunk/include/media/v4l2-dev.h | 2 + trunk/include/mtd/ubi-user.h | 40 +- trunk/include/net/caif/caif_layer.h | 36 +- trunk/include/net/genetlink.h | 2 +- trunk/include/net/netlink.h | 2 +- trunk/include/sound/ak4641.h | 26 + trunk/include/sound/control.h | 1 + trunk/include/sound/max98095.h | 54 + trunk/include/sound/soc-dapm.h | 80 +- trunk/include/sound/soc.h | 32 +- trunk/include/sound/tea575x-tuner.h | 26 +- trunk/include/sound/tlv320dac33-plat.h | 2 +- trunk/include/sound/tpa6130a2-plat.h | 2 +- trunk/include/sound/wm8915.h | 55 + trunk/include/sound/wm8962.h | 22 + trunk/include/video/newport.h | 2 +- trunk/kernel/Kconfig.locks | 2 +- trunk/kernel/auditsc.c | 27 +- trunk/kernel/hrtimer.c | 162 +- trunk/kernel/module.c | 4 +- trunk/kernel/pm_qos_params.c | 2 +- trunk/kernel/posix-cpu-timers.c | 4 +- trunk/kernel/posix-timers.c | 2 +- trunk/kernel/profile.c | 6 +- trunk/kernel/sched.c | 39 +- trunk/kernel/sched_fair.c | 52 +- trunk/kernel/sysctl.c | 12 +- trunk/kernel/time/alarmtimer.c | 16 +- trunk/kernel/time/tick-broadcast.c | 16 +- trunk/kernel/time/timekeeping.c | 17 +- trunk/kernel/watchdog.c | 52 +- trunk/kernel/workqueue.c | 4 +- trunk/lib/Kconfig.debug | 3 +- trunk/lib/vsprintf.c | 9 +- trunk/mm/hugetlb.c | 2 +- trunk/mm/page_alloc.c | 2 +- trunk/mm/percpu.c | 6 +- trunk/mm/slub.c | 165 +- trunk/net/bluetooth/hidp/hidp.h | 2 +- trunk/net/bridge/br_if.c | 3 + trunk/net/caif/caif_dev.c | 7 +- trunk/net/caif/caif_socket.c | 13 +- trunk/net/caif/cfcnfg.c | 44 +- trunk/net/caif/cfctrl.c | 44 +- trunk/net/caif/cfmuxl.c | 49 +- trunk/net/core/dev.c | 4 +- trunk/net/core/pktgen.c | 22 +- trunk/net/core/rtnetlink.c | 2 + trunk/net/ipv4/route.c | 1 + trunk/net/netfilter/ipset/ip_set_bitmap_ip.c | 2 +- trunk/net/sched/sch_generic.c | 17 +- trunk/net/sunrpc/addr.c | 2 +- .../net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +- trunk/samples/Kconfig | 6 + trunk/samples/Makefile | 2 +- trunk/samples/hidraw/Makefile | 10 + trunk/samples/hidraw/hid-example.c | 178 + trunk/scripts/checkstack.pl | 2 +- trunk/security/selinux/selinuxfs.c | 8 +- trunk/sound/core/control.c | 64 + trunk/sound/core/init.c | 2 +- trunk/sound/core/pcm_lib.c | 14 +- trunk/sound/firewire/Kconfig | 11 + trunk/sound/firewire/Makefile | 2 + trunk/sound/firewire/isight.c | 755 + trunk/sound/firewire/iso-resources.c | 5 + trunk/sound/firewire/packets-buffer.c | 2 + trunk/sound/i2c/other/Makefile | 2 +- trunk/sound/i2c/other/tea575x-tuner.c | 153 +- trunk/sound/oss/Kconfig | 4 - trunk/sound/oss/Makefile | 1 - trunk/sound/oss/ac97_codec.c | 1203 -- trunk/sound/oss/au1550_ac97.c | 2147 --- trunk/sound/pci/Kconfig | 27 +- trunk/sound/pci/Makefile | 1 + trunk/sound/pci/asihpi/asihpi.c | 328 +- trunk/sound/pci/asihpi/hpi6000.c | 39 +- trunk/sound/pci/asihpi/hpi6205.c | 95 +- trunk/sound/pci/asihpi/hpi_internal.h | 19 +- trunk/sound/pci/asihpi/hpicmn.c | 10 +- trunk/sound/pci/asihpi/hpicmn.h | 2 + trunk/sound/pci/asihpi/hpifunc.c | 27 - trunk/sound/pci/asihpi/hpimsgx.c | 31 +- trunk/sound/pci/asihpi/hpioctl.c | 63 +- trunk/sound/pci/au88x0/au8810.h | 2 +- trunk/sound/pci/au88x0/au8820.h | 2 +- trunk/sound/pci/au88x0/au8830.h | 2 +- trunk/sound/pci/au88x0/au88x0_pcm.c | 13 +- trunk/sound/pci/emu10k1/emufx.c | 5 + trunk/sound/pci/emu10k1/emumixer.c | 10 +- trunk/sound/pci/es1968.c | 78 + trunk/sound/pci/fm801.c | 371 +- trunk/sound/pci/hda/hda_codec.c | 97 +- trunk/sound/pci/hda/hda_codec.h | 4 +- trunk/sound/pci/hda/hda_intel.c | 38 +- trunk/sound/pci/hda/hda_local.h | 16 +- trunk/sound/pci/hda/patch_analog.c | 345 +- trunk/sound/pci/hda/patch_ca0110.c | 16 +- trunk/sound/pci/hda/patch_cirrus.c | 52 +- trunk/sound/pci/hda/patch_cmedia.c | 40 +- trunk/sound/pci/hda/patch_conexant.c | 1085 +- trunk/sound/pci/hda/patch_hdmi.c | 39 +- trunk/sound/pci/hda/patch_realtek.c | 3721 +++-- trunk/sound/pci/hda/patch_si3054.c | 11 +- trunk/sound/pci/hda/patch_sigmatel.c | 431 +- trunk/sound/pci/hda/patch_via.c | 1526 +- trunk/sound/pci/intel8x0m.c | 4 +- trunk/sound/pci/lola/Makefile | 4 + trunk/sound/pci/lola/lola.c | 791 + trunk/sound/pci/lola/lola.h | 527 + trunk/sound/pci/lola/lola_clock.c | 323 + trunk/sound/pci/lola/lola_mixer.c | 839 + trunk/sound/pci/lola/lola_pcm.c | 706 + trunk/sound/pci/lola/lola_proc.c | 222 + trunk/sound/ppc/tumbler.c | 2 +- trunk/sound/soc/atmel/sam9g20_wm8731.c | 2 +- trunk/sound/soc/au1x/db1200.c | 2 +- trunk/sound/soc/blackfin/bf5xx-ac97-pcm.c | 13 +- trunk/sound/soc/blackfin/bf5xx-ac97.c | 166 +- trunk/sound/soc/blackfin/bf5xx-ad1836.c | 42 +- trunk/sound/soc/blackfin/bf5xx-ad193x.c | 56 +- trunk/sound/soc/blackfin/bf5xx-ad1980.c | 45 +- trunk/sound/soc/blackfin/bf5xx-ad73311.c | 42 +- trunk/sound/soc/blackfin/bf5xx-i2s-pcm.c | 23 +- trunk/sound/soc/blackfin/bf5xx-i2s.c | 172 +- trunk/sound/soc/blackfin/bf5xx-sport.c | 159 +- trunk/sound/soc/blackfin/bf5xx-sport.h | 16 +- trunk/sound/soc/blackfin/bf5xx-ssm2602.c | 42 +- trunk/sound/soc/blackfin/bf5xx-tdm-pcm.c | 23 +- trunk/sound/soc/blackfin/bf5xx-tdm.c | 110 +- trunk/sound/soc/codecs/88pm860x-codec.c | 2 +- trunk/sound/soc/codecs/Kconfig | 20 +- trunk/sound/soc/codecs/Makefile | 10 +- trunk/sound/soc/codecs/ad193x.c | 23 +- trunk/sound/soc/codecs/ad1980.c | 2 +- trunk/sound/soc/codecs/ad73311.c | 2 +- trunk/sound/soc/codecs/ak4535.c | 19 +- trunk/sound/soc/codecs/ak4641.c | 664 + trunk/sound/soc/codecs/ak4641.h | 47 + trunk/sound/soc/codecs/ak4671.c | 18 +- trunk/sound/soc/codecs/cx20442.c | 26 +- trunk/sound/soc/codecs/dmic.c | 26 +- trunk/sound/soc/codecs/jz4740.c | 18 +- trunk/sound/soc/codecs/max98088.c | 87 +- trunk/sound/soc/codecs/max98088.h | 13 + trunk/sound/soc/codecs/max98095.c | 2396 +++ trunk/sound/soc/codecs/max98095.h | 299 + trunk/sound/soc/codecs/sn95031.c | 17 +- trunk/sound/soc/codecs/spdif_transciever.c | 8 +- trunk/sound/soc/codecs/ssm2602.c | 464 +- trunk/sound/soc/codecs/ssm2602.h | 6 - trunk/sound/soc/codecs/tlv320aic23.c | 19 +- trunk/sound/soc/codecs/tlv320aic3x.c | 3 +- trunk/sound/soc/codecs/tlv320dac33.c | 17 +- trunk/sound/soc/codecs/tlv320dac33.h | 2 +- trunk/sound/soc/codecs/tpa6130a2.c | 4 +- trunk/sound/soc/codecs/tpa6130a2.h | 2 +- trunk/sound/soc/codecs/twl6040.c | 6 +- trunk/sound/soc/codecs/wm1250-ev1.c | 108 + trunk/sound/soc/codecs/wm8711.c | 18 +- trunk/sound/soc/codecs/wm8728.c | 18 +- trunk/sound/soc/codecs/wm8731.c | 22 +- trunk/sound/soc/codecs/wm8903.c | 44 +- trunk/sound/soc/codecs/wm8915.c | 2931 ++++ trunk/sound/soc/codecs/wm8915.h | 3717 +++++ trunk/sound/soc/codecs/wm8958-dsp2.c | 1051 ++ trunk/sound/soc/codecs/wm8962.c | 63 +- trunk/sound/soc/codecs/wm8993.c | 3 +- trunk/sound/soc/codecs/wm8994.c | 395 +- trunk/sound/soc/codecs/wm8994.h | 97 + trunk/sound/soc/codecs/wm8995.c | 4 +- trunk/sound/soc/codecs/wm9705.c | 18 +- trunk/sound/soc/codecs/wm9712.c | 18 +- trunk/sound/soc/codecs/wm9713.c | 19 +- trunk/sound/soc/codecs/wm_hubs.c | 24 +- trunk/sound/soc/davinci/davinci-mcasp.c | 2 + trunk/sound/soc/imx/imx-ssi.c | 6 - trunk/sound/soc/jz4740/qi_lb60.c | 46 +- trunk/sound/soc/mid-x86/sst_platform.c | 4 + trunk/sound/soc/omap/omap-mcbsp.c | 6 +- trunk/sound/soc/omap/omap-mcbsp.h | 2 +- trunk/sound/soc/omap/omap-pcm.c | 7 +- trunk/sound/soc/omap/omap-pcm.h | 2 +- trunk/sound/soc/omap/rx51.c | 2 +- trunk/sound/soc/pxa/Kconfig | 9 + trunk/sound/soc/pxa/Makefile | 2 + trunk/sound/soc/pxa/corgi.c | 2 +- trunk/sound/soc/pxa/hx4700.c | 255 + trunk/sound/soc/pxa/poodle.c | 2 +- trunk/sound/soc/pxa/spitz.c | 41 +- trunk/sound/soc/samsung/Kconfig | 15 + trunk/sound/soc/samsung/Makefile | 4 + trunk/sound/soc/samsung/goni_wm8994.c | 1 - trunk/sound/soc/samsung/neo1973_wm8753.c | 1 - trunk/sound/soc/samsung/smdk_wm8580pcm.c | 206 + trunk/sound/soc/samsung/speyside.c | 332 + trunk/sound/soc/sh/fsi.c | 188 +- trunk/sound/soc/soc-cache.c | 612 +- trunk/sound/soc/soc-core.c | 191 +- trunk/sound/soc/soc-dapm.c | 611 +- trunk/sound/soc/soc-jack.c | 2 +- trunk/sound/soc/soc-utils.c | 53 + trunk/sound/soc/tegra/Kconfig | 38 +- trunk/sound/soc/tegra/Makefile | 14 +- trunk/sound/soc/tegra/harmony.c | 394 - trunk/sound/soc/tegra/tegra_asoc_utils.c | 9 +- trunk/sound/soc/tegra/tegra_asoc_utils.h | 2 +- trunk/sound/soc/tegra/tegra_i2s.c | 2 +- trunk/sound/soc/tegra/tegra_wm8903.c | 475 + trunk/sound/soc/tegra/trimslice.c | 228 + trunk/sound/usb/6fire/control.c | 105 + trunk/sound/usb/6fire/control.h | 17 + trunk/sound/usb/6fire/firmware.c | 73 +- trunk/sound/usb/6fire/pcm.c | 97 +- trunk/sound/usb/Kconfig | 10 +- trunk/sound/usb/clock.c | 11 +- trunk/sound/usb/debug.h | 2 +- trunk/sound/usb/format.c | 1 + trunk/sound/usb/mixer.c | 10 +- trunk/sound/usb/mixer_quirks.c | 12 + trunk/sound/usb/quirks-table.h | 47 +- trunk/sound/usb/quirks.c | 1 + trunk/tools/perf/builtin-test.c | 9 +- trunk/tools/perf/builtin-top.c | 7 +- trunk/tools/perf/util/event.c | 46 +- trunk/tools/perf/util/event.h | 12 +- trunk/tools/perf/util/evlist.c | 31 + trunk/tools/perf/util/evlist.h | 3 + trunk/tools/perf/util/evsel.c | 32 +- trunk/tools/perf/util/header.c | 31 - trunk/tools/perf/util/header.h | 2 - trunk/tools/perf/util/include/linux/list.h | 2 + trunk/tools/perf/util/python.c | 13 +- trunk/tools/perf/util/session.c | 50 +- trunk/tools/perf/util/session.h | 2 + trunk/tools/perf/util/ui/browsers/annotate.c | 1 - trunk/tools/power/x86/turbostat/turbostat.c | 2 +- trunk/tools/testing/ktest/ktest.pl | 156 +- trunk/tools/testing/ktest/sample.conf | 93 + trunk/virt/kvm/assigned-dev.c | 18 +- trunk/virt/kvm/ioapic.c | 2 +- trunk/virt/kvm/kvm_main.c | 26 +- 2568 files changed, 152252 insertions(+), 223946 deletions(-) create mode 100644 trunk/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus create mode 100644 trunk/Documentation/DocBook/v4l/pixfmt-m420.xml create mode 100644 trunk/Documentation/DocBook/v4l/pixfmt-y10b.xml rename trunk/Documentation/{usb => hid}/hiddev.txt (100%) create mode 100644 trunk/Documentation/hid/hidraw.txt create mode 100644 trunk/Documentation/hwmon/adm1275 create mode 100644 trunk/Documentation/hwmon/max16065 create mode 100644 trunk/Documentation/hwmon/max6642 delete mode 100644 trunk/Documentation/hwmon/pkgtemp create mode 100644 trunk/Documentation/hwmon/sht15 create mode 100644 trunk/Documentation/hwmon/ucd9000 create mode 100644 trunk/Documentation/hwmon/ucd9200 create mode 100644 trunk/Documentation/pti/pti_intel_mid.txt create mode 100644 trunk/Documentation/video4linux/uvcvideo.txt create mode 100644 trunk/arch/arm/configs/mxs_defconfig delete mode 100644 trunk/arch/arm/configs/ns9xxx_defconfig delete mode 100644 trunk/arch/arm/configs/spear300_defconfig delete mode 100644 trunk/arch/arm/configs/spear310_defconfig rename trunk/arch/arm/configs/{spear320_defconfig => spear3xx_defconfig} (93%) rename trunk/arch/arm/configs/{spear600_defconfig => spear6xx_defconfig} (97%) delete mode 100644 trunk/arch/arm/configs/stmp378x_defconfig delete mode 100644 trunk/arch/arm/configs/stmp37xx_defconfig create mode 100644 trunk/arch/arm/mach-exynos4/include/mach/regs-usb-phy.h delete mode 100644 trunk/arch/arm/mach-exynos4/include/mach/smp.h create mode 100644 trunk/arch/arm/mach-exynos4/usb-phy.c create mode 100644 trunk/arch/arm/mach-imx/cache-l2x0.c rename trunk/arch/arm/{mach-mx3 => mach-imx}/clock-imx31.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/clock-imx35.c (99%) rename trunk/arch/arm/{mach-mx3/cpu.c => mach-imx/cpu-imx31.c} (72%) create mode 100644 trunk/arch/arm/mach-imx/cpu-imx35.c rename trunk/arch/arm/{mach-mx3/crm_regs.h => mach-imx/crmregs-imx31.h} (100%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/devices-imx31.h (67%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/devices-imx35.h (69%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/ehci-imx31.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/ehci-imx35.c (99%) rename trunk/arch/arm/{mach-mx3/eukrea_mbimxsd-baseboard.c => mach-imx/eukrea_mbimxsd35-baseboard.c} (92%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/iomux-imx31.c (100%) create mode 100644 trunk/arch/arm/mach-imx/mach-apf9328.c rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-armadillo5x0.c (95%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-bug.c (98%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-cpuimx35.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-kzm_arm11_01.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-mx31_3ds.c (96%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-mx31ads.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-mx31lilly.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-mx31lite.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-mx31moboard.c (92%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-mx35_3ds.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-pcm037.c (94%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-pcm037_eet.c (92%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-pcm043.c (97%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-qong.c (95%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mach-vpr200.c (94%) create mode 100644 trunk/arch/arm/mach-imx/mm-imx31.c create mode 100644 trunk/arch/arm/mach-imx/mm-imx35.c rename trunk/arch/arm/{mach-mx3 => mach-imx}/mx31lilly-db.c (95%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mx31lite-db.c (98%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mx31moboard-devboard.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mx31moboard-marxbot.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/mx31moboard-smartbot.c (99%) rename trunk/arch/arm/{mach-mx3 => mach-imx}/pcm037.h (100%) delete mode 100644 trunk/arch/arm/mach-msm/include/mach/smp.h delete mode 100644 trunk/arch/arm/mach-mx3/Kconfig delete mode 100644 trunk/arch/arm/mach-mx3/Makefile delete mode 100644 trunk/arch/arm/mach-mx3/Makefile.boot delete mode 100644 trunk/arch/arm/mach-mx3/devices.c delete mode 100644 trunk/arch/arm/mach-mx3/devices.h delete mode 100644 trunk/arch/arm/mach-mx3/mm.c delete mode 100644 trunk/arch/arm/mach-mxc91231/Kconfig delete mode 100644 trunk/arch/arm/mach-mxc91231/Makefile delete mode 100644 trunk/arch/arm/mach-mxc91231/Makefile.boot delete mode 100644 trunk/arch/arm/mach-mxc91231/clock.c delete mode 100644 trunk/arch/arm/mach-mxc91231/crm_regs.h delete mode 100644 trunk/arch/arm/mach-mxc91231/devices.c delete mode 100644 trunk/arch/arm/mach-mxc91231/devices.h delete mode 100644 trunk/arch/arm/mach-mxc91231/iomux.c delete mode 100644 trunk/arch/arm/mach-mxc91231/magx-zn5.c delete mode 100644 trunk/arch/arm/mach-mxc91231/mm.c delete mode 100644 trunk/arch/arm/mach-mxc91231/system.c create mode 100644 trunk/arch/arm/mach-mxs/mach-stmp378x_devb.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/Kconfig delete mode 100644 trunk/arch/arm/mach-ns9xxx/Makefile delete mode 100644 trunk/arch/arm/mach-ns9xxx/Makefile.boot delete mode 100644 trunk/arch/arm/mach-ns9xxx/board-a9m9750dev.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/board-a9m9750dev.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/clock.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/clock.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/generic.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/generic.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/gpio-ns9360.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/gpio-ns9360.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/gpio.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/board.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/debug-macro.S delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/entry-macro.S delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/gpio.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/hardware.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/io.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/irqs.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/memory.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/module.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/processor-ns9360.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/processor.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/regs-bbu.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/regs-board-a9m9750dev.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/regs-mem.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/regs-sys-common.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/regs-sys-ns9360.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/timex.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/uncompress.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/include/mach/vmalloc.h delete mode 100644 trunk/arch/arm/mach-ns9xxx/irq.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/mach-cc9p9360js.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/plat-serial8250.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/processor-ns9360.c delete mode 100644 trunk/arch/arm/mach-ns9xxx/time-ns9360.c delete mode 100644 trunk/arch/arm/mach-realview/include/mach/smp.h delete mode 100644 trunk/arch/arm/mach-shmobile/include/mach/smp.h delete mode 100644 trunk/arch/arm/mach-spear3xx/Kconfig300 delete mode 100644 trunk/arch/arm/mach-spear3xx/Kconfig310 delete mode 100644 trunk/arch/arm/mach-spear3xx/Kconfig320 delete mode 100644 trunk/arch/arm/mach-spear6xx/Kconfig600 delete mode 100644 trunk/arch/arm/mach-stmp378x/Makefile delete mode 100644 trunk/arch/arm/mach-stmp378x/Makefile.boot delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/entry-macro.S delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/irqs.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/pins.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-apbh.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-apbx.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-audioin.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-audioout.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-bch.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-clkctrl.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-dcp.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-digctl.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-dram.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-dri.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-ecc8.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-emi.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-gpmi.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-i2c.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-icoll.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-ir.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-lcdif.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-lradc.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-ocotp.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-pinctrl.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-power.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-pwm.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-pxp.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-rtc.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-saif.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-spdif.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-ssp.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-sydma.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-timrot.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-tvenc.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-uartapp.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-uartdbg.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-usbctrl.h delete mode 100644 trunk/arch/arm/mach-stmp378x/include/mach/regs-usbphy.h delete mode 100644 trunk/arch/arm/mach-stmp378x/stmp378x.c delete mode 100644 trunk/arch/arm/mach-stmp378x/stmp378x.h delete mode 100644 trunk/arch/arm/mach-stmp378x/stmp378x_devb.c delete mode 100644 trunk/arch/arm/mach-stmp37xx/Makefile delete mode 100644 trunk/arch/arm/mach-stmp37xx/Makefile.boot delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/entry-macro.S delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/irqs.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/pins.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-apbh.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-apbx.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-audioin.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-audioout.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-clkctrl.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-digctl.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-ecc8.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-gpmi.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-i2c.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-icoll.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-lcdif.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-lradc.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-pinctrl.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-power.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-pwm.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-rtc.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-ssp.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-timrot.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-uartapp.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-uartdbg.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-usbctl.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-usbctrl.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/include/mach/regs-usbphy.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/stmp37xx.c delete mode 100644 trunk/arch/arm/mach-stmp37xx/stmp37xx.h delete mode 100644 trunk/arch/arm/mach-stmp37xx/stmp37xx_devb.c delete mode 100644 trunk/arch/arm/mach-tegra/include/mach/legacy_irq.h delete mode 100644 trunk/arch/arm/mach-tegra/include/mach/smp.h rename trunk/arch/arm/mach-tegra/include/mach/{harmony_audio.h => tegra_wm8903_pdata.h} (83%) delete mode 100644 trunk/arch/arm/mach-tegra/legacy_irq.c delete mode 100644 trunk/arch/arm/mach-ux500/include/mach/smp.h delete mode 100644 trunk/arch/arm/mach-vexpress/include/mach/smp.h create mode 100644 trunk/arch/arm/plat-mxc/devices/platform-ipu-core.c create mode 100644 trunk/arch/arm/plat-mxc/devices/platform-mxc_rtc.c delete mode 100644 trunk/arch/arm/plat-mxc/include/mach/iomux-mxc91231.h delete mode 100644 trunk/arch/arm/plat-mxc/include/mach/mxc91231.h delete mode 100644 trunk/arch/arm/plat-omap/include/plat/smp.h create mode 100644 trunk/arch/arm/plat-orion/common.c create mode 100644 trunk/arch/arm/plat-orion/include/plat/common.h create mode 100644 trunk/arch/arm/plat-orion/include/plat/mpp.h create mode 100644 trunk/arch/arm/plat-orion/mpp.c create mode 100644 trunk/arch/arm/plat-s5p/dev-ehci.c create mode 100644 trunk/arch/arm/plat-s5p/include/plat/ehci.h create mode 100644 trunk/arch/arm/plat-s5p/include/plat/usb-phy.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/Kconfig delete mode 100644 trunk/arch/arm/plat-stmp3xxx/Makefile delete mode 100644 trunk/arch/arm/plat-stmp3xxx/clock.c delete mode 100644 trunk/arch/arm/plat-stmp3xxx/clock.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/core.c delete mode 100644 trunk/arch/arm/plat-stmp3xxx/devices.c delete mode 100644 trunk/arch/arm/plat-stmp3xxx/dma.c delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/cputype.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/debug-macro.S delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/dma.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/gpio.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/gpmi.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/hardware.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/io.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/memory.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/mmc.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/pinmux.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/pins.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/platform.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/stmp3xxx.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/system.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/timex.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/uncompress.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/include/mach/vmalloc.h delete mode 100644 trunk/arch/arm/plat-stmp3xxx/irq.c delete mode 100644 trunk/arch/arm/plat-stmp3xxx/pinmux.c delete mode 100644 trunk/arch/arm/plat-stmp3xxx/timer.c delete mode 100644 trunk/arch/m68k/kernel/asm-offsets_mm.c delete mode 100644 trunk/arch/m68k/kernel/asm-offsets_no.c delete mode 100644 trunk/arch/m68k/kernel/m68k_ksyms_mm.c delete mode 100644 trunk/arch/m68k/kernel/m68k_ksyms_no.c delete mode 100644 trunk/arch/m68k/kernel/sys_m68k_mm.c delete mode 100644 trunk/arch/m68k/kernel/sys_m68k_no.c delete mode 100644 trunk/arch/m68k/lib/Makefile_mm delete mode 100644 trunk/arch/m68k/lib/Makefile_no delete mode 100644 trunk/arch/m68k/lib/checksum.c delete mode 100644 trunk/arch/m68k/lib/muldi3_mm.c delete mode 100644 trunk/arch/m68k/lib/muldi3_no.c delete mode 100644 trunk/arch/m68k/mm/Makefile_mm delete mode 100644 trunk/arch/m68k/mm/Makefile_no delete mode 100644 trunk/arch/m68k/mm/kmap_mm.c delete mode 100644 trunk/arch/m68k/mm/kmap_no.c create mode 100644 trunk/arch/x86/include/asm/x2apic.h create mode 100644 trunk/drivers/clocksource/mmio.c delete mode 100644 trunk/drivers/hid/hid-3m-pct.c delete mode 100644 trunk/drivers/hid/hid-cando.c delete mode 100644 trunk/drivers/hid/hid-mosart.c delete mode 100644 trunk/drivers/hid/hid-stantum.c create mode 100644 trunk/drivers/hwmon/adm1275.c create mode 100644 trunk/drivers/hwmon/max16065.c create mode 100644 trunk/drivers/hwmon/max6642.c delete mode 100644 trunk/drivers/hwmon/pkgtemp.c create mode 100644 trunk/drivers/hwmon/ucd9000.c create mode 100644 trunk/drivers/hwmon/ucd9200.c create mode 100644 trunk/drivers/input/keyboard/adp5589-keys.c create mode 100644 trunk/drivers/input/keyboard/mpr121_touchkey.c create mode 100644 trunk/drivers/input/touchscreen/max11801_ts.c create mode 100644 trunk/drivers/media/common/tuners/tda18212.c create mode 100644 trunk/drivers/media/common/tuners/tda18212.h create mode 100644 trunk/drivers/media/common/tuners/tda18212_priv.h create mode 100644 trunk/drivers/media/dvb/frontends/bsbe1-d01a.h create mode 100644 trunk/drivers/media/dvb/frontends/cxd2820r.h create mode 100644 trunk/drivers/media/dvb/frontends/cxd2820r_c.c create mode 100644 trunk/drivers/media/dvb/frontends/cxd2820r_core.c create mode 100644 trunk/drivers/media/dvb/frontends/cxd2820r_priv.h create mode 100644 trunk/drivers/media/dvb/frontends/cxd2820r_t.c create mode 100644 trunk/drivers/media/dvb/frontends/cxd2820r_t2.c delete mode 100644 trunk/drivers/media/dvb/frontends/drx397xD.c delete mode 100644 trunk/drivers/media/dvb/frontends/drx397xD.h delete mode 100644 trunk/drivers/media/dvb/frontends/drx397xD_fw.h create mode 100644 trunk/drivers/media/dvb/frontends/drxd.h create mode 100644 trunk/drivers/media/dvb/frontends/drxd_firm.c create mode 100644 trunk/drivers/media/dvb/frontends/drxd_firm.h create mode 100644 trunk/drivers/media/dvb/frontends/drxd_hard.c create mode 100644 trunk/drivers/media/dvb/frontends/drxd_map_firm.h delete mode 100644 trunk/drivers/media/radio/radio-maestro.c create mode 100644 trunk/drivers/media/rc/keymaps/rc-tivo.c create mode 100644 trunk/drivers/media/rc/redrat3.c create mode 100644 trunk/drivers/media/video/gspca/kinect.c create mode 100644 trunk/drivers/media/video/mt9v032.c create mode 100644 trunk/drivers/media/video/s5p-fimc/mipi-csis.c create mode 100644 trunk/drivers/media/video/s5p-fimc/mipi-csis.h create mode 100644 trunk/drivers/misc/pti.c delete mode 100644 trunk/drivers/mtd/maps/integrator-flash.c delete mode 100644 trunk/drivers/staging/ath6kl/include/a_types.h delete mode 100644 trunk/drivers/staging/ath6kl/include/athendpack.h delete mode 100644 trunk/drivers/staging/ath6kl/include/athstartpack.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/AR6002_regdump.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/analog_intf_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/analog_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/apb_map.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/gpio_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/mbox_host_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/mbox_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/rtc_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/si_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/uart_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw2.0/hw/vmc_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/analog_intf_ares_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/analog_intf_athr_wlan_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/analog_intf_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/bb_lc_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/efuse_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/gpio_athr_wlan_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/gpio_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/mac_dma_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/mac_pcu_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/rdma_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/si_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/umbox_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/umbox_wlan_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/vmc_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/AR6002/hw4.0/hw/vmc_wlan_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/a_hci.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/btcoexGpio.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/dset_internal.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/dsetid.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/gpio.h create mode 100644 trunk/drivers/staging/ath6kl/include/common/gpio_reg.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/ini_dset.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/regDb.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/regdump.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/regulatory/reg_dbschema.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/regulatory/reg_dbvalues.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/wlan_dset.h delete mode 100644 trunk/drivers/staging/ath6kl/include/common/wmi_thin.h delete mode 100644 trunk/drivers/staging/ath6kl/include/gpio_api.h delete mode 100644 trunk/drivers/staging/ath6kl/include/target_reg_table.h delete mode 100644 trunk/drivers/staging/ath6kl/os/linux/ar6000_android.c delete mode 100644 trunk/drivers/staging/ath6kl/os/linux/ar6k_pal.c delete mode 100644 trunk/drivers/staging/ath6kl/os/linux/eeprom.c delete mode 100644 trunk/drivers/staging/ath6kl/os/linux/include/athtypes_linux.h delete mode 100644 trunk/drivers/staging/ath6kl/os/linux/ioctl.c delete mode 100644 trunk/drivers/staging/ath6kl/os/linux/wireless_ext.c rename trunk/drivers/staging/brcm80211/{util/siutils_priv.h => brcmfmac/bcmchip.h} (52%) delete mode 100644 trunk/drivers/staging/brcm80211/brcmfmac/bcmutils.c delete mode 100644 trunk/drivers/staging/brcm80211/brcmfmac/bcmwifi.c delete mode 100644 trunk/drivers/staging/brcm80211/brcmfmac/hndpmu.c delete mode 100644 trunk/drivers/staging/brcm80211/brcmfmac/sbutils.c delete mode 100644 trunk/drivers/staging/brcm80211/brcmfmac/siutils.c rename trunk/drivers/staging/brcm80211/{util/siutils.c => brcmsmac/aiutils.c} (55%) create mode 100644 trunk/drivers/staging/brcm80211/brcmsmac/aiutils.h rename trunk/drivers/staging/brcm80211/{util => brcmsmac}/bcmotp.c (90%) create mode 100644 trunk/drivers/staging/brcm80211/brcmsmac/bcmsrom.c rename trunk/drivers/staging/brcm80211/{util => brcmsmac}/bcmsrom_tbl.h (89%) rename trunk/drivers/staging/brcm80211/{util => brcmsmac}/hnddma.c (94%) rename trunk/drivers/staging/brcm80211/{util => brcmsmac}/nicpci.c (92%) rename trunk/drivers/staging/brcm80211/{util/nvram/nvram_ro.c => brcmsmac/nvram.c} (76%) create mode 100644 trunk/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_qmath.c rename trunk/drivers/staging/brcm80211/{include/qmath.h => brcmsmac/phy/wlc_phy_qmath.h} (63%) rename trunk/drivers/staging/brcm80211/{util/hndpmu.c => brcmsmac/wlc_pmu.c} (67%) rename trunk/drivers/staging/brcm80211/{include/hndpmu.h => brcmsmac/wlc_pmu.h} (77%) rename trunk/drivers/staging/brcm80211/{util => include}/pci_core.h (100%) delete mode 100644 trunk/drivers/staging/brcm80211/include/siutils.h create mode 100644 trunk/drivers/staging/brcm80211/util/Makefile delete mode 100644 trunk/drivers/staging/brcm80211/util/aiutils.c delete mode 100644 trunk/drivers/staging/brcm80211/util/bcmsrom.c delete mode 100644 trunk/drivers/staging/brcm80211/util/qmath.c delete mode 100644 trunk/drivers/staging/brcm80211/util/sbpcmcia.h delete mode 100644 trunk/drivers/staging/brcm80211/util/sbsocram.h delete mode 100644 trunk/drivers/staging/brcm80211/util/sbutils.c create mode 100644 trunk/drivers/staging/gma500/mrst.h create mode 100644 trunk/drivers/staging/gma500/mrst_crtc.c create mode 100644 trunk/drivers/staging/gma500/mrst_lvds.c delete mode 100644 trunk/drivers/staging/gma500/psb_buffer.c delete mode 100644 trunk/drivers/staging/gma500/psb_fence.c create mode 100644 trunk/drivers/staging/gma500/psb_gem.c rename trunk/drivers/staging/gma500/{psb_reset.c => psb_lid.c} (100%) delete mode 100644 trunk/drivers/staging/gma500/psb_pvr_glue.c delete mode 100644 trunk/drivers/staging/gma500/psb_pvr_glue.h delete mode 100644 trunk/drivers/staging/gma500/psb_sgx.c delete mode 100644 trunk/drivers/staging/gma500/psb_sgx.h delete mode 100644 trunk/drivers/staging/gma500/psb_ttm_fence.c delete mode 100644 trunk/drivers/staging/gma500/psb_ttm_fence_api.h delete mode 100644 trunk/drivers/staging/gma500/psb_ttm_fence_driver.h delete mode 100644 trunk/drivers/staging/gma500/psb_ttm_fence_user.c delete mode 100644 trunk/drivers/staging/gma500/psb_ttm_fence_user.h delete mode 100644 trunk/drivers/staging/gma500/psb_ttm_glue.c delete mode 100644 trunk/drivers/staging/gma500/psb_ttm_placement_user.c delete mode 100644 trunk/drivers/staging/gma500/psb_ttm_placement_user.h delete mode 100644 trunk/drivers/staging/gma500/psb_ttm_userobj_api.h delete mode 100644 trunk/drivers/staging/hv/blkvsc.c delete mode 100644 trunk/drivers/staging/hv/channel.h delete mode 100644 trunk/drivers/staging/hv/channel_mgmt.h delete mode 100644 trunk/drivers/staging/hv/hv.h delete mode 100644 trunk/drivers/staging/hv/hv_api.h create mode 100644 trunk/drivers/staging/hv/hyperv.h rename trunk/drivers/staging/hv/{rndis.h => hyperv_net.h} (65%) rename trunk/drivers/staging/hv/{vstorage.h => hyperv_storage.h} (63%) create mode 100644 trunk/drivers/staging/hv/hyperv_vmbus.h delete mode 100644 trunk/drivers/staging/hv/logging.h delete mode 100644 trunk/drivers/staging/hv/netvsc.h delete mode 100644 trunk/drivers/staging/hv/netvsc_api.h delete mode 100644 trunk/drivers/staging/hv/ring_buffer.h delete mode 100644 trunk/drivers/staging/hv/rndis_filter.h delete mode 100644 trunk/drivers/staging/hv/storvsc_api.h delete mode 100644 trunk/drivers/staging/hv/utils.h delete mode 100644 trunk/drivers/staging/hv/version_info.h delete mode 100644 trunk/drivers/staging/hv/vmbus.h delete mode 100644 trunk/drivers/staging/hv/vmbus_api.h delete mode 100644 trunk/drivers/staging/hv/vmbus_channel_interface.h delete mode 100644 trunk/drivers/staging/hv/vmbus_packet_format.h delete mode 100644 trunk/drivers/staging/hv/vmbus_private.h create mode 100644 trunk/drivers/staging/iio/Documentation/sysfs-bus-iio-light-tsl2583 delete mode 100644 trunk/drivers/staging/iio/Documentation/userspace.txt create mode 100644 trunk/drivers/staging/iio/adc/ad7780.c create mode 100644 trunk/drivers/staging/iio/adc/ad7780.h create mode 100644 trunk/drivers/staging/iio/dac/ad5504.c create mode 100644 trunk/drivers/staging/iio/dac/ad5504.h create mode 100644 trunk/drivers/staging/iio/dac/ad5791.c create mode 100644 trunk/drivers/staging/iio/dac/ad5791.h create mode 100644 trunk/drivers/staging/iio/gyro/adxrs450.h create mode 100644 trunk/drivers/staging/iio/gyro/adxrs450_core.c delete mode 100644 trunk/drivers/staging/iio/imu/adis16300.h delete mode 100644 trunk/drivers/staging/iio/imu/adis16300_core.c delete mode 100644 trunk/drivers/staging/iio/imu/adis16300_ring.c delete mode 100644 trunk/drivers/staging/iio/imu/adis16300_trigger.c delete mode 100644 trunk/drivers/staging/iio/imu/adis16350.h delete mode 100644 trunk/drivers/staging/iio/imu/adis16350_core.c delete mode 100644 trunk/drivers/staging/iio/imu/adis16350_ring.c delete mode 100644 trunk/drivers/staging/iio/imu/adis16350_trigger.c create mode 100644 trunk/drivers/staging/iio/light/tsl2583.c create mode 100644 trunk/drivers/staging/intel_sst/intelmid_adc_control.h delete mode 100644 trunk/drivers/staging/intel_sst/jack.h create mode 100644 trunk/drivers/staging/mei/Kconfig create mode 100644 trunk/drivers/staging/mei/Makefile create mode 100644 trunk/drivers/staging/mei/TODO create mode 100644 trunk/drivers/staging/mei/hw.h create mode 100644 trunk/drivers/staging/mei/init.c create mode 100644 trunk/drivers/staging/mei/interface.c create mode 100644 trunk/drivers/staging/mei/interface.h create mode 100644 trunk/drivers/staging/mei/interrupt.c create mode 100644 trunk/drivers/staging/mei/iorw.c create mode 100644 trunk/drivers/staging/mei/main.c create mode 100644 trunk/drivers/staging/mei/mei.h create mode 100644 trunk/drivers/staging/mei/mei.txt create mode 100644 trunk/drivers/staging/mei/mei_dev.h create mode 100644 trunk/drivers/staging/mei/mei_version.h create mode 100644 trunk/drivers/staging/mei/wd.c create mode 100644 trunk/drivers/staging/nvec/Kconfig create mode 100644 trunk/drivers/staging/nvec/Makefile create mode 100644 trunk/drivers/staging/nvec/README create mode 100644 trunk/drivers/staging/nvec/TODO create mode 100644 trunk/drivers/staging/nvec/nvec-keytable.h create mode 100644 trunk/drivers/staging/nvec/nvec.c create mode 100644 trunk/drivers/staging/nvec/nvec.h create mode 100644 trunk/drivers/staging/nvec/nvec_kbd.c create mode 100644 trunk/drivers/staging/nvec/nvec_power.c create mode 100644 trunk/drivers/staging/nvec/nvec_ps2.c delete mode 100644 trunk/drivers/staging/rt2860/Kconfig delete mode 100644 trunk/drivers/staging/rt2860/Makefile delete mode 100644 trunk/drivers/staging/rt2860/TODO delete mode 100644 trunk/drivers/staging/rt2860/ap.h delete mode 100644 trunk/drivers/staging/rt2860/chip/mac_pci.h delete mode 100644 trunk/drivers/staging/rt2860/chip/mac_usb.h delete mode 100644 trunk/drivers/staging/rt2860/chip/rt2860.h delete mode 100644 trunk/drivers/staging/rt2860/chip/rt2870.h delete mode 100644 trunk/drivers/staging/rt2860/chip/rt3070.h delete mode 100644 trunk/drivers/staging/rt2860/chip/rt3090.h delete mode 100644 trunk/drivers/staging/rt2860/chip/rt30xx.h delete mode 100644 trunk/drivers/staging/rt2860/chip/rtmp_mac.h delete mode 100644 trunk/drivers/staging/rt2860/chip/rtmp_phy.h delete mode 100644 trunk/drivers/staging/rt2860/chips/rt3070.c delete mode 100644 trunk/drivers/staging/rt2860/chips/rt3090.c delete mode 100644 trunk/drivers/staging/rt2860/chips/rt30xx.c delete mode 100644 trunk/drivers/staging/rt2860/chlist.h delete mode 100644 trunk/drivers/staging/rt2860/common/action.c delete mode 100644 trunk/drivers/staging/rt2860/common/action.h delete mode 100644 trunk/drivers/staging/rt2860/common/ba_action.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_aes.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_asic.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_cfg.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_data.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_data_pci.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_data_usb.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_info.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_mac_pci.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_mac_usb.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_sanity.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_sync.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_tkip.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_wep.c delete mode 100644 trunk/drivers/staging/rt2860/common/cmm_wpa.c delete mode 100644 trunk/drivers/staging/rt2860/common/crypt_hmac.c delete mode 100644 trunk/drivers/staging/rt2860/common/crypt_md5.c delete mode 100644 trunk/drivers/staging/rt2860/common/crypt_sha2.c delete mode 100644 trunk/drivers/staging/rt2860/common/dfs.c delete mode 100644 trunk/drivers/staging/rt2860/common/ee_efuse.c delete mode 100644 trunk/drivers/staging/rt2860/common/ee_prom.c delete mode 100644 trunk/drivers/staging/rt2860/common/eeprom.c delete mode 100644 trunk/drivers/staging/rt2860/common/mlme.c delete mode 100644 trunk/drivers/staging/rt2860/common/rt_channel.c delete mode 100644 trunk/drivers/staging/rt2860/common/rt_rf.c delete mode 100644 trunk/drivers/staging/rt2860/common/rtmp_init.c delete mode 100644 trunk/drivers/staging/rt2860/common/rtmp_mcu.c delete mode 100644 trunk/drivers/staging/rt2860/common/rtmp_timer.c delete mode 100644 trunk/drivers/staging/rt2860/common/spectrum.c delete mode 100644 trunk/drivers/staging/rt2860/crypt_hmac.h delete mode 100644 trunk/drivers/staging/rt2860/crypt_md5.h delete mode 100644 trunk/drivers/staging/rt2860/crypt_sha2.h delete mode 100644 trunk/drivers/staging/rt2860/dfs.h delete mode 100644 trunk/drivers/staging/rt2860/eeprom.h delete mode 100644 trunk/drivers/staging/rt2860/iface/rtmp_pci.h delete mode 100644 trunk/drivers/staging/rt2860/iface/rtmp_usb.h delete mode 100644 trunk/drivers/staging/rt2860/mlme.h delete mode 100644 trunk/drivers/staging/rt2860/oid.h delete mode 100644 trunk/drivers/staging/rt2860/pci_main_dev.c delete mode 100644 trunk/drivers/staging/rt2860/rt_config.h delete mode 100644 trunk/drivers/staging/rt2860/rt_linux.c delete mode 100644 trunk/drivers/staging/rt2860/rt_linux.h delete mode 100644 trunk/drivers/staging/rt2860/rt_main_dev.c delete mode 100644 trunk/drivers/staging/rt2860/rt_pci_rbus.c delete mode 100644 trunk/drivers/staging/rt2860/rt_usb.c delete mode 100644 trunk/drivers/staging/rt2860/rtmp.h delete mode 100644 trunk/drivers/staging/rt2860/rtmp_chip.h delete mode 100644 trunk/drivers/staging/rt2860/rtmp_ckipmic.h delete mode 100644 trunk/drivers/staging/rt2860/rtmp_def.h delete mode 100644 trunk/drivers/staging/rt2860/rtmp_dot11.h delete mode 100644 trunk/drivers/staging/rt2860/rtmp_iface.h delete mode 100644 trunk/drivers/staging/rt2860/rtmp_mcu.h delete mode 100644 trunk/drivers/staging/rt2860/rtmp_os.h delete mode 100644 trunk/drivers/staging/rt2860/rtmp_timer.h delete mode 100644 trunk/drivers/staging/rt2860/rtmp_type.h delete mode 100644 trunk/drivers/staging/rt2860/rtusb_io.h delete mode 100644 trunk/drivers/staging/rt2860/spectrum.h delete mode 100644 trunk/drivers/staging/rt2860/spectrum_def.h delete mode 100644 trunk/drivers/staging/rt2860/sta/assoc.c delete mode 100644 trunk/drivers/staging/rt2860/sta/auth.c delete mode 100644 trunk/drivers/staging/rt2860/sta/auth_rsp.c delete mode 100644 trunk/drivers/staging/rt2860/sta/connect.c delete mode 100644 trunk/drivers/staging/rt2860/sta/rtmp_data.c delete mode 100644 trunk/drivers/staging/rt2860/sta/sanity.c delete mode 100644 trunk/drivers/staging/rt2860/sta/sync.c delete mode 100644 trunk/drivers/staging/rt2860/sta/wpa.c delete mode 100644 trunk/drivers/staging/rt2860/sta_ioctl.c delete mode 100644 trunk/drivers/staging/rt2860/usb_main_dev.c delete mode 100644 trunk/drivers/staging/rt2860/wpa.h delete mode 100644 trunk/drivers/staging/rt2870/Kconfig delete mode 100644 trunk/drivers/staging/rt2870/Makefile delete mode 100644 trunk/drivers/staging/rt2870/TODO delete mode 100644 trunk/drivers/staging/rt2870/aironet.h delete mode 100644 trunk/drivers/staging/rt2870/ap.h delete mode 100644 trunk/drivers/staging/rt2870/chips/rt3070.c delete mode 100644 trunk/drivers/staging/rt2870/chips/rt30xx.c delete mode 100644 trunk/drivers/staging/rt2870/chlist.h delete mode 100644 trunk/drivers/staging/rt2870/common/acction.c delete mode 100644 trunk/drivers/staging/rt2870/common/action.c delete mode 100644 trunk/drivers/staging/rt2870/common/action.h delete mode 100644 trunk/drivers/staging/rt2870/common/ba_action.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_aes.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_asic.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_cfg.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_data.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_data_usb.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_info.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_mac_usb.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_profile.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_sanity.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_sync.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_tkip.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_wep.c delete mode 100644 trunk/drivers/staging/rt2870/common/cmm_wpa.c delete mode 100644 trunk/drivers/staging/rt2870/common/crypt_hmac.c delete mode 100644 trunk/drivers/staging/rt2870/common/crypt_md5.c delete mode 100644 trunk/drivers/staging/rt2870/common/crypt_sha2.c delete mode 100644 trunk/drivers/staging/rt2870/common/dfs.c delete mode 100644 trunk/drivers/staging/rt2870/common/ee_efuse.c delete mode 100644 trunk/drivers/staging/rt2870/common/eeprom.c delete mode 100644 trunk/drivers/staging/rt2870/common/md5.c delete mode 100644 trunk/drivers/staging/rt2870/common/mlme.c delete mode 100644 trunk/drivers/staging/rt2870/common/rt_channel.c delete mode 100644 trunk/drivers/staging/rt2870/common/rt_rf.c delete mode 100644 trunk/drivers/staging/rt2870/common/rtmp_init.c delete mode 100644 trunk/drivers/staging/rt2870/common/rtmp_mcu.c delete mode 100644 trunk/drivers/staging/rt2870/common/rtmp_timer.c delete mode 100644 trunk/drivers/staging/rt2870/common/rtmp_tkip.c delete mode 100644 trunk/drivers/staging/rt2870/common/rtmp_wep.c delete mode 100644 trunk/drivers/staging/rt2870/common/rtusb_bulk.c delete mode 100644 trunk/drivers/staging/rt2870/common/rtusb_data.c delete mode 100644 trunk/drivers/staging/rt2870/common/rtusb_io.c delete mode 100644 trunk/drivers/staging/rt2870/common/spectrum.c delete mode 100644 trunk/drivers/staging/rt2870/dfs.h delete mode 100644 trunk/drivers/staging/rt2870/md5.h delete mode 100644 trunk/drivers/staging/rt2870/mlme.h delete mode 100644 trunk/drivers/staging/rt2870/oid.h delete mode 100644 trunk/drivers/staging/rt2870/rt28xx.h delete mode 100644 trunk/drivers/staging/rt2870/rt_config.h delete mode 100644 trunk/drivers/staging/rt2870/rt_linux.c delete mode 100644 trunk/drivers/staging/rt2870/rt_linux.h delete mode 100644 trunk/drivers/staging/rt2870/rt_main_dev.c delete mode 100644 trunk/drivers/staging/rt2870/rt_profile.c delete mode 100644 trunk/drivers/staging/rt2870/rt_usb.c delete mode 100644 trunk/drivers/staging/rt2870/rtmp.h delete mode 100644 trunk/drivers/staging/rt2870/rtmp_ckipmic.h delete mode 100644 trunk/drivers/staging/rt2870/rtmp_def.h delete mode 100644 trunk/drivers/staging/rt2870/rtmp_type.h delete mode 100644 trunk/drivers/staging/rt2870/spectrum.h delete mode 100644 trunk/drivers/staging/rt2870/spectrum_def.h delete mode 100644 trunk/drivers/staging/rt2870/sta/aironet.c delete mode 100644 trunk/drivers/staging/rt2870/sta/assoc.c delete mode 100644 trunk/drivers/staging/rt2870/sta/auth.c delete mode 100644 trunk/drivers/staging/rt2870/sta/auth_rsp.c delete mode 100644 trunk/drivers/staging/rt2870/sta/connect.c delete mode 100644 trunk/drivers/staging/rt2870/sta/rtmp_data.c delete mode 100644 trunk/drivers/staging/rt2870/sta/sanity.c delete mode 100644 trunk/drivers/staging/rt2870/sta/sync.c delete mode 100644 trunk/drivers/staging/rt2870/sta/wpa.c delete mode 100644 trunk/drivers/staging/rt2870/sta_ioctl.c delete mode 100644 trunk/drivers/staging/rt2870/usb_main_dev.c delete mode 100644 trunk/drivers/staging/rt2870/wpa.h create mode 100644 trunk/drivers/staging/tm6000/CARDLIST create mode 100644 trunk/drivers/staging/usbip/userspace/AUTHORS create mode 100644 trunk/drivers/staging/usbip/userspace/COPYING create mode 100644 trunk/drivers/staging/usbip/userspace/INSTALL create mode 100644 trunk/drivers/staging/usbip/userspace/Makefile.am create mode 100644 trunk/drivers/staging/usbip/userspace/README create mode 100755 trunk/drivers/staging/usbip/userspace/autogen.sh create mode 100755 trunk/drivers/staging/usbip/userspace/cleanup.sh create mode 100644 trunk/drivers/staging/usbip/userspace/configure.ac create mode 100644 trunk/drivers/staging/usbip/userspace/doc/usbip.8 create mode 100644 trunk/drivers/staging/usbip/userspace/doc/usbip_bind_driver.8 create mode 100644 trunk/drivers/staging/usbip/userspace/doc/usbipd.8 create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/Makefile.am create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/names.c create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/names.h create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/stub_driver.c create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/stub_driver.h create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/usbip.h create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/usbip_common.c create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/usbip_common.h create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/vhci_driver.c create mode 100644 trunk/drivers/staging/usbip/userspace/libsrc/vhci_driver.h create mode 100644 trunk/drivers/staging/usbip/userspace/src/Makefile.am create mode 100644 trunk/drivers/staging/usbip/userspace/src/bind-driver.c create mode 100644 trunk/drivers/staging/usbip/userspace/src/usbip.c create mode 100644 trunk/drivers/staging/usbip/userspace/src/usbip_network.c create mode 100644 trunk/drivers/staging/usbip/userspace/src/usbip_network.h create mode 100644 trunk/drivers/staging/usbip/userspace/src/usbipd.c create mode 100644 trunk/drivers/staging/usbip/userspace/src/utils.c create mode 100644 trunk/drivers/staging/usbip/userspace/src/utils.h create mode 100644 trunk/drivers/staging/usbip/userspace/usb.ids create mode 100644 trunk/drivers/tty/n_tracerouter.c create mode 100644 trunk/drivers/tty/n_tracesink.c create mode 100644 trunk/drivers/tty/n_tracesink.h create mode 100644 trunk/drivers/tty/serial/xilinx_uartps.c create mode 100644 trunk/drivers/usb/gadget/s3c-hsudc.c create mode 100644 trunk/drivers/usb/host/ehci-ath79.c create mode 100644 trunk/drivers/usb/host/ehci-grlib.c create mode 100644 trunk/drivers/usb/host/ehci-s5p.c create mode 100644 trunk/drivers/usb/host/ohci-ath79.c create mode 100644 trunk/drivers/usb/host/uhci-grlib.c create mode 100644 trunk/drivers/usb/host/uhci-pci.c create mode 100644 trunk/drivers/usb/musb/ux500_dma.c create mode 100644 trunk/drivers/usb/otg/fsl_otg.c create mode 100644 trunk/drivers/usb/otg/fsl_otg.h create mode 100644 trunk/drivers/usb/otg/otg_fsm.c create mode 100644 trunk/drivers/usb/otg/otg_fsm.h create mode 100644 trunk/drivers/usb/renesas_usbhs/Kconfig create mode 100644 trunk/drivers/usb/renesas_usbhs/Makefile create mode 100644 trunk/drivers/usb/renesas_usbhs/common.c create mode 100644 trunk/drivers/usb/renesas_usbhs/common.h create mode 100644 trunk/drivers/usb/renesas_usbhs/mod.c create mode 100644 trunk/drivers/usb/renesas_usbhs/mod.h create mode 100644 trunk/drivers/usb/renesas_usbhs/mod_gadget.c create mode 100644 trunk/drivers/usb/renesas_usbhs/pipe.c create mode 100644 trunk/drivers/usb/renesas_usbhs/pipe.h delete mode 100644 trunk/drivers/usb/serial/sam-ba.c create mode 100644 trunk/include/linux/i2c/mpr121_touchkey.h create mode 100644 trunk/include/linux/input/adp5589.h create mode 100644 trunk/include/linux/pti.h create mode 100644 trunk/include/linux/usb/renesas_usbhs.h create mode 100644 trunk/include/linux/uvcvideo.h create mode 100644 trunk/include/media/mt9v032.h create mode 100644 trunk/include/sound/ak4641.h create mode 100644 trunk/include/sound/max98095.h create mode 100644 trunk/include/sound/wm8915.h create mode 100644 trunk/samples/hidraw/Makefile create mode 100644 trunk/samples/hidraw/hid-example.c create mode 100644 trunk/sound/firewire/isight.c delete mode 100644 trunk/sound/oss/ac97_codec.c delete mode 100644 trunk/sound/oss/au1550_ac97.c create mode 100644 trunk/sound/pci/lola/Makefile create mode 100644 trunk/sound/pci/lola/lola.c create mode 100644 trunk/sound/pci/lola/lola.h create mode 100644 trunk/sound/pci/lola/lola_clock.c create mode 100644 trunk/sound/pci/lola/lola_mixer.c create mode 100644 trunk/sound/pci/lola/lola_pcm.c create mode 100644 trunk/sound/pci/lola/lola_proc.c create mode 100644 trunk/sound/soc/codecs/ak4641.c create mode 100644 trunk/sound/soc/codecs/ak4641.h create mode 100644 trunk/sound/soc/codecs/max98095.c create mode 100644 trunk/sound/soc/codecs/max98095.h create mode 100644 trunk/sound/soc/codecs/wm1250-ev1.c create mode 100644 trunk/sound/soc/codecs/wm8915.c create mode 100644 trunk/sound/soc/codecs/wm8915.h create mode 100644 trunk/sound/soc/codecs/wm8958-dsp2.c create mode 100644 trunk/sound/soc/pxa/hx4700.c create mode 100644 trunk/sound/soc/samsung/smdk_wm8580pcm.c create mode 100644 trunk/sound/soc/samsung/speyside.c delete mode 100644 trunk/sound/soc/tegra/harmony.c create mode 100644 trunk/sound/soc/tegra/tegra_wm8903.c create mode 100644 trunk/sound/soc/tegra/trimslice.c diff --git a/[refs] b/[refs] index d58f8c0dd6a0..82c6863393c2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5bd418784a2764a8d9de177a5462bfc008fd334a +refs/heads/master: 0d66cba1ac3ad38614077443d604d6a09cec99de diff --git a/trunk/CREDITS b/trunk/CREDITS index dca6abcead6b..95c469c610bc 100644 --- a/trunk/CREDITS +++ b/trunk/CREDITS @@ -328,7 +328,7 @@ S: Haifa, Israel N: Johannes Berg E: johannes@sipsolutions.net W: http://johannes.sipsolutions.net/ -P: 1024D/9AB78CA5 AD02 0176 4E29 C137 1DF6 08D2 FC44 CF86 9AB7 8CA5 +P: 4096R/7BF9099A C0EB C440 F6DA 091C 884D 8532 E0F3 73F3 7BF9 099A D: powerpc & 802.11 hacker N: Stephen R. van den Berg (AKA BuGless) diff --git a/trunk/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus b/trunk/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus new file mode 100644 index 000000000000..c2a270b45b03 --- /dev/null +++ b/trunk/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus @@ -0,0 +1,10 @@ +What: /sys/bus/usb/devices/-:./::./koneplus/roccatkoneplus/startup_profile +Date: October 2010 +Contact: Stefan Achatz +Description: The integer value of this attribute ranges from 0-4. + When read, this attribute returns the number of the actual + profile. This value is persistent, so its equivalent to the + profile that's active when the mouse is powered on next time. + When written, this file sets the number of the startup profile + and the mouse activates this profile immediately. + Please use actual_profile, it does the same thing. diff --git a/trunk/Documentation/ABI/testing/sysfs-bus-pci b/trunk/Documentation/ABI/testing/sysfs-bus-pci index 36bf454ba855..349ecf26ce10 100644 --- a/trunk/Documentation/ABI/testing/sysfs-bus-pci +++ b/trunk/Documentation/ABI/testing/sysfs-bus-pci @@ -74,6 +74,15 @@ Description: hot-remove the PCI device and any of its children. Depends on CONFIG_HOTPLUG. +What: /sys/bus/pci/devices/.../pci_bus/.../rescan +Date: May 2011 +Contact: Linux PCI developers +Description: + Writing a non-zero value to this attribute will + force a rescan of the bus and all child buses, + and re-discover devices removed earlier from this + part of the device tree. Depends on CONFIG_HOTPLUG. + What: /sys/bus/pci/devices/.../rescan Date: January 2009 Contact: Linux PCI developers diff --git a/trunk/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus b/trunk/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus index 326e05452da7..c1b53b8bc2ae 100644 --- a/trunk/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus +++ b/trunk/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus @@ -1,9 +1,12 @@ What: /sys/bus/usb/devices/-:./::./koneplus/roccatkoneplus/actual_profile Date: October 2010 Contact: Stefan Achatz -Description: When read, this file returns the number of the actual profile in - range 0-4. - This file is readonly. +Description: The integer value of this attribute ranges from 0-4. + When read, this attribute returns the number of the actual + profile. This value is persistent, so its equivalent to the + profile that's active when the mouse is powered on next time. + When written, this file sets the number of the startup profile + and the mouse activates this profile immediately. Users: http://roccat.sourceforge.net What: /sys/bus/usb/devices/-:./::./koneplus/roccatkoneplus/firmware_version @@ -89,16 +92,6 @@ Description: The mouse has a tracking- and a distance-control-unit. These This file is writeonly. Users: http://roccat.sourceforge.net -What: /sys/bus/usb/devices/-:./::./koneplus/roccatkoneplus/startup_profile -Date: October 2010 -Contact: Stefan Achatz -Description: The integer value of this attribute ranges from 0-4. - When read, this attribute returns the number of the profile - that's active when the mouse is powered on. - When written, this file sets the number of the startup profile - and the mouse activates this profile immediately. -Users: http://roccat.sourceforge.net - What: /sys/bus/usb/devices/-:./::./koneplus/roccatkoneplus/tcu Date: October 2010 Contact: Stefan Achatz diff --git a/trunk/Documentation/DocBook/.gitignore b/trunk/Documentation/DocBook/.gitignore index c6def352fe39..679034cbd686 100644 --- a/trunk/Documentation/DocBook/.gitignore +++ b/trunk/Documentation/DocBook/.gitignore @@ -8,3 +8,4 @@ *.dvi *.log *.out +media/ diff --git a/trunk/Documentation/DocBook/dvb/dvbapi.xml b/trunk/Documentation/DocBook/dvb/dvbapi.xml index ad8678d48916..9fad86ce7f5e 100644 --- a/trunk/Documentation/DocBook/dvb/dvbapi.xml +++ b/trunk/Documentation/DocBook/dvb/dvbapi.xml @@ -34,6 +34,14 @@ + + 2.0.4 + 2011-05-06 + mcc + + Add more information about DVB APIv5, better describing the frontend GET/SET props ioctl's. + + 2.0.3 2010-07-03 diff --git a/trunk/Documentation/DocBook/dvb/dvbproperty.xml b/trunk/Documentation/DocBook/dvb/dvbproperty.xml index 97f397e2fb3a..52d5e3c7cf6c 100644 --- a/trunk/Documentation/DocBook/dvb/dvbproperty.xml +++ b/trunk/Documentation/DocBook/dvb/dvbproperty.xml @@ -1,6 +1,327 @@ -
+
FE_GET_PROPERTY/FE_SET_PROPERTY + +/* Reserved fields should be set to 0 */ +struct dtv_property { + __u32 cmd; + union { + __u32 data; + struct { + __u8 data[32]; + __u32 len; + __u32 reserved1[3]; + void *reserved2; + } buffer; + } u; + int result; +} __attribute__ ((packed)); + +/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ +#define DTV_IOCTL_MAX_MSGS 64 + +struct dtv_properties { + __u32 num; + struct dtv_property *props; +}; + + +
+FE_GET_PROPERTY +DESCRIPTION + + +This ioctl call returns one or more frontend properties. This call only + requires read-only access to the device. + + +SYNOPSIS + + +int ioctl(int fd, int request = FE_GET_PROPERTY, + dtv_properties ⋆props); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int num + +Equals FE_GET_PROPERTY for this command. + + +struct dtv_property *props + +Points to the location where the front-end property commands are stored. + + +ERRORS + + EINVAL + Invalid parameter(s) received or number of parameters out of the range. + + ENOMEM + Out of memory. + + EFAULT + Failure while copying data from/to userspace. + + EOPNOTSUPP + Property type not supported. + +
+ +
+FE_SET_PROPERTY +DESCRIPTION + + +This ioctl call sets one or more frontend properties. This call only + requires read-only access to the device. + + +SYNOPSIS + + +int ioctl(int fd, int request = FE_SET_PROPERTY, + dtv_properties ⋆props); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int num + +Equals FE_SET_PROPERTY for this command. + + +struct dtv_property *props + +Points to the location where the front-end property commands are stored. + + +ERRORS + + + EINVAL + Invalid parameter(s) received or number of parameters out of the range. + + ENOMEM + Out of memory. + + EFAULT + Failure while copying data from/to userspace. + + EOPNOTSUPP + Property type not supported. + +
+ + +On FE_GET_PROPERTY/FE_SET_PROPERTY, +the actual action is determined by the dtv_property cmd/data pairs. With one single ioctl, is possible to +get/set up to 64 properties. The actual meaning of each property is described on the next sections. + + +The Available frontend property types are: + +#define DTV_UNDEFINED 0 +#define DTV_TUNE 1 +#define DTV_CLEAR 2 +#define DTV_FREQUENCY 3 +#define DTV_MODULATION 4 +#define DTV_BANDWIDTH_HZ 5 +#define DTV_INVERSION 6 +#define DTV_DISEQC_MASTER 7 +#define DTV_SYMBOL_RATE 8 +#define DTV_INNER_FEC 9 +#define DTV_VOLTAGE 10 +#define DTV_TONE 11 +#define DTV_PILOT 12 +#define DTV_ROLLOFF 13 +#define DTV_DISEQC_SLAVE_REPLY 14 +#define DTV_FE_CAPABILITY_COUNT 15 +#define DTV_FE_CAPABILITY 16 +#define DTV_DELIVERY_SYSTEM 17 +#define DTV_ISDBT_PARTIAL_RECEPTION 18 +#define DTV_ISDBT_SOUND_BROADCASTING 19 +#define DTV_ISDBT_SB_SUBCHANNEL_ID 20 +#define DTV_ISDBT_SB_SEGMENT_IDX 21 +#define DTV_ISDBT_SB_SEGMENT_COUNT 22 +#define DTV_ISDBT_LAYERA_FEC 23 +#define DTV_ISDBT_LAYERA_MODULATION 24 +#define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25 +#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26 +#define DTV_ISDBT_LAYERB_FEC 27 +#define DTV_ISDBT_LAYERB_MODULATION 28 +#define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29 +#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30 +#define DTV_ISDBT_LAYERC_FEC 31 +#define DTV_ISDBT_LAYERC_MODULATION 32 +#define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33 +#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34 +#define DTV_API_VERSION 35 +#define DTV_CODE_RATE_HP 36 +#define DTV_CODE_RATE_LP 37 +#define DTV_GUARD_INTERVAL 38 +#define DTV_TRANSMISSION_MODE 39 +#define DTV_HIERARCHY 40 +#define DTV_ISDBT_LAYER_ENABLED 41 +#define DTV_ISDBS_TS_ID 42 + + +
+ Parameters that are common to all Digital TV standards +
+ <constant>DTV_FREQUENCY</constant> + + Central frequency of the channel, in HZ. + + Notes: + 1)For ISDB-T, the channels are usually transmitted with an offset of 143kHz. + E.g. a valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of + the channel which is 6MHz. + + 2)As in ISDB-Tsb the channel consists of only one or three segments the + frequency step is 429kHz, 3*429 respectively. As for ISDB-T the + central frequency of the channel is expected. +
+ +
+ <constant>DTV_BANDWIDTH_HZ</constant> + + Bandwidth for the channel, in HZ. + + Possible values: + 1712000, + 5000000, + 6000000, + 7000000, + 8000000, + 10000000. + + + Notes: + + 1) For ISDB-T it should be always 6000000Hz (6MHz) + 2) For ISDB-Tsb it can vary depending on the number of connected segments + 3) Bandwidth doesn't apply for DVB-C transmissions, as the bandwidth + for DVB-C depends on the symbol rate + 4) Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from + other parameters (DTV_ISDBT_SB_SEGMENT_IDX, + DTV_ISDBT_SB_SEGMENT_COUNT). + 5) DVB-T supports 6, 7 and 8MHz. + 6) In addition, DVB-T2 supports 1.172, 5 and 10MHz. +
+ +
+ <constant>DTV_DELIVERY_SYSTEM</constant> + + Specifies the type of Delivery system + + Possible values: + +typedef enum fe_delivery_system { + SYS_UNDEFINED, + SYS_DVBC_ANNEX_AC, + SYS_DVBC_ANNEX_B, + SYS_DVBT, + SYS_DSS, + SYS_DVBS, + SYS_DVBS2, + SYS_DVBH, + SYS_ISDBT, + SYS_ISDBS, + SYS_ISDBC, + SYS_ATSC, + SYS_ATSCMH, + SYS_DMBTH, + SYS_CMMB, + SYS_DAB, + SYS_DVBT2, +} fe_delivery_system_t; + + +
+ +
+ <constant>DTV_TRANSMISSION_MODE</constant> + + Specifies the number of carriers used by the standard + + Possible values are: + +typedef enum fe_transmit_mode { + TRANSMISSION_MODE_2K, + TRANSMISSION_MODE_8K, + TRANSMISSION_MODE_AUTO, + TRANSMISSION_MODE_4K, + TRANSMISSION_MODE_1K, + TRANSMISSION_MODE_16K, + TRANSMISSION_MODE_32K, +} fe_transmit_mode_t; + + + Notes: + 1) ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called + 'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K + + 2) If DTV_TRANSMISSION_MODE is set the TRANSMISSION_MODE_AUTO the + hardware will try to find the correct FFT-size (if capable) and will + use TMCC to fill in the missing parameters. + 3) DVB-T specifies 2K and 8K as valid sizes. + 4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K. +
+ +
+ <constant>DTV_GUARD_INTERVAL</constant> + + Possible values are: + +typedef enum fe_guard_interval { + GUARD_INTERVAL_1_32, + GUARD_INTERVAL_1_16, + GUARD_INTERVAL_1_8, + GUARD_INTERVAL_1_4, + GUARD_INTERVAL_AUTO, + GUARD_INTERVAL_1_128, + GUARD_INTERVAL_19_128, + GUARD_INTERVAL_19_256, +} fe_guard_interval_t; + + + Notes: + 1) If DTV_GUARD_INTERVAL is set the GUARD_INTERVAL_AUTO the hardware will + try to find the correct guard interval (if capable) and will use TMCC to fill + in the missing parameters. + 2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present +
+
+
ISDB-T frontend This section describes shortly what are the possible parameters in the Linux @@ -32,73 +353,6 @@ Parameters used by ISDB-T and ISDB-Tsb. -
- Parameters that are common with DVB-T and ATSC - -
- <constant>DTV_FREQUENCY</constant> - - Central frequency of the channel. - - For ISDB-T the channels are usually transmitted with an offset of 143kHz. E.g. a - valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of - the channel which is 6MHz. - - As in ISDB-Tsb the channel consists of only one or three segments the - frequency step is 429kHz, 3*429 respectively. As for ISDB-T the - central frequency of the channel is expected. -
- -
- <constant>DTV_BANDWIDTH_HZ</constant> (optional) - - Possible values: - - For ISDB-T it should be always 6000000Hz (6MHz) - For ISDB-Tsb it can vary depending on the number of connected segments - - Note: Hardware specific values might be given here, but standard - applications should not bother to set a value to this field as - standard demods are ignoring it anyway. - - Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from - other parameters (DTV_ISDBT_SB_SEGMENT_IDX, - DTV_ISDBT_SB_SEGMENT_COUNT). -
- -
- <constant>DTV_DELIVERY_SYSTEM</constant> - - Possible values: SYS_ISDBT -
- -
- <constant>DTV_TRANSMISSION_MODE</constant> - - ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called - 'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K - - Possible values: TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, - TRANSMISSION_MODE_AUTO, TRANSMISSION_MODE_4K - - If DTV_TRANSMISSION_MODE is set the TRANSMISSION_MODE_AUTO the - hardware will try to find the correct FFT-size (if capable) and will - use TMCC to fill in the missing parameters. - - TRANSMISSION_MODE_4K is added at the same time as the other new parameters. -
- -
- <constant>DTV_GUARD_INTERVAL</constant> - - Possible values: GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, - GUARD_INTERVAL_1_4, GUARD_INTERVAL_AUTO - - If DTV_GUARD_INTERVAL is set the GUARD_INTERVAL_AUTO the hardware will - try to find the correct guard interval (if capable) and will use TMCC to fill - in the missing parameters. -
-
ISDB-T only parameters @@ -314,5 +568,20 @@
+
+ DVB-T2 parameters + + This section covers parameters that apply only to the DVB-T2 delivery method. DVB-T2 + support is currently in the early stages development so expect this section to grow + and become more detailed with time. + +
+ <constant>DTV_DVBT2_PLP_ID</constant> + + DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of + many data types via a single multiplex. The API will soon support this + at which point this section will be expanded. +
+
diff --git a/trunk/Documentation/DocBook/dvb/frontend.h.xml b/trunk/Documentation/DocBook/dvb/frontend.h.xml index d08e0d401418..d792f789ad3b 100644 --- a/trunk/Documentation/DocBook/dvb/frontend.h.xml +++ b/trunk/Documentation/DocBook/dvb/frontend.h.xml @@ -176,14 +176,20 @@ typedef enum fe_transmit_mode { TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, TRANSMISSION_MODE_AUTO, - TRANSMISSION_MODE_4K + TRANSMISSION_MODE_4K, + TRANSMISSION_MODE_1K, + TRANSMISSION_MODE_16K, + TRANSMISSION_MODE_32K, } fe_transmit_mode_t; typedef enum fe_bandwidth { BANDWIDTH_8_MHZ, BANDWIDTH_7_MHZ, BANDWIDTH_6_MHZ, - BANDWIDTH_AUTO + BANDWIDTH_AUTO, + BANDWIDTH_5_MHZ, + BANDWIDTH_10_MHZ, + BANDWIDTH_1_712_MHZ, } fe_bandwidth_t; @@ -192,7 +198,10 @@ typedef enum fe_guard_interval { GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, GUARD_INTERVAL_1_4, - GUARD_INTERVAL_AUTO + GUARD_INTERVAL_AUTO, + GUARD_INTERVAL_1_128, + GUARD_INTERVAL_19_128, + GUARD_INTERVAL_19_256, } fe_guard_interval_t; @@ -306,7 +315,9 @@ struct dvb_frontend_event { #define DTV_ISDBS_TS_ID 42 -#define DTV_MAX_COMMAND DTV_ISDBS_TS_ID +#define DTV_DVBT2_PLP_ID 43 + +#define DTV_MAX_COMMAND DTV_DVBT2_PLP_ID typedef enum fe_pilot { PILOT_ON, @@ -338,6 +349,7 @@ typedef enum fe_delivery_system { SYS_DMBTH, SYS_CMMB, SYS_DAB, + SYS_DVBT2, } fe_delivery_system_t; struct dtv_cmds_h { diff --git a/trunk/Documentation/DocBook/media-entities.tmpl b/trunk/Documentation/DocBook/media-entities.tmpl index fea63b45471a..c8abb23ef1e7 100644 --- a/trunk/Documentation/DocBook/media-entities.tmpl +++ b/trunk/Documentation/DocBook/media-entities.tmpl @@ -270,6 +270,7 @@ + @@ -295,6 +296,7 @@ + diff --git a/trunk/Documentation/DocBook/v4l/pixfmt-m420.xml b/trunk/Documentation/DocBook/v4l/pixfmt-m420.xml new file mode 100644 index 000000000000..ce4bc019e5c0 --- /dev/null +++ b/trunk/Documentation/DocBook/v4l/pixfmt-m420.xml @@ -0,0 +1,147 @@ + + + V4L2_PIX_FMT_M420 ('M420') + &manvol; + + + V4L2_PIX_FMT_M420 + Format with ½ horizontal and vertical chroma + resolution, also known as YUV 4:2:0. Hybrid plane line-interleaved + layout. + + + Description + + M420 is a YUV format with ½ horizontal and vertical chroma + subsampling (YUV 4:2:0). Pixels are organized as interleaved luma and + chroma planes. Two lines of luma data are followed by one line of chroma + data. + The luma plane has one byte per pixel. The chroma plane contains + interleaved CbCr pixels subsampled by ½ in the horizontal and + vertical directions. Each CbCr pair belongs to four pixels. For example, +Cb0/Cr0 belongs to +Y'00, Y'01, +Y'10, Y'11. + + All line lengths are identical: if the Y lines include pad bytes + so do the CbCr lines. + + + <constant>V4L2_PIX_FMT_M420</constant> 4 × 4 +pixel image + + + Byte Order. + Each cell is one byte. + + + + + + start + 0: + Y'00 + Y'01 + Y'02 + Y'03 + + + start + 4: + Y'10 + Y'11 + Y'12 + Y'13 + + + start + 8: + Cb00 + Cr00 + Cb01 + Cr01 + + + start + 16: + Y'20 + Y'21 + Y'22 + Y'23 + + + start + 20: + Y'30 + Y'31 + Y'32 + Y'33 + + + start + 24: + Cb10 + Cr10 + Cb11 + Cr11 + + + + + + + + + Color Sample Location. + + + + + + + 01 + 23 + + + 0 + YY + YY + + + + C + C + + + 1 + YY + YY + + + + + + 2 + YY + YY + + + + C + C + + + 3 + YY + YY + + + + + + + + + + + diff --git a/trunk/Documentation/DocBook/v4l/pixfmt-y10b.xml b/trunk/Documentation/DocBook/v4l/pixfmt-y10b.xml new file mode 100644 index 000000000000..adb0ad808c93 --- /dev/null +++ b/trunk/Documentation/DocBook/v4l/pixfmt-y10b.xml @@ -0,0 +1,43 @@ + + + V4L2_PIX_FMT_Y10BPACK ('Y10B') + &manvol; + + + V4L2_PIX_FMT_Y10BPACK + Grey-scale image as a bit-packed array + + + Description + + This is a packed grey-scale image format with a depth of 10 bits per + pixel. Pixels are stored in a bit-packed array of 10bit bits per pixel, + with no padding between them and with the most significant bits coming + first from the left. + + + <constant>V4L2_PIX_FMT_Y10BPACK</constant> 4 pixel data stream taking 5 bytes + + + Bit-packed representation + pixels cross the byte boundary and have a ratio of 5 bytes for each 4 + pixels. + + + + + + Y'00[9:2] + Y'00[1:0]Y'01[9:4] + Y'01[3:0]Y'02[9:6] + Y'02[5:0]Y'03[9:8] + Y'03[7:0] + + + + + + + + + diff --git a/trunk/Documentation/DocBook/v4l/pixfmt.xml b/trunk/Documentation/DocBook/v4l/pixfmt.xml index 40af4beb48b9..dbfe3b08435f 100644 --- a/trunk/Documentation/DocBook/v4l/pixfmt.xml +++ b/trunk/Documentation/DocBook/v4l/pixfmt.xml @@ -697,6 +697,7 @@ information. &sub-grey; &sub-y10; &sub-y12; + &sub-y10b; &sub-y16; &sub-yuyv; &sub-uyvy; @@ -712,6 +713,7 @@ information. &sub-nv12m; &sub-nv12mt; &sub-nv16; + &sub-m420;
diff --git a/trunk/Documentation/DocBook/v4l/subdev-formats.xml b/trunk/Documentation/DocBook/v4l/subdev-formats.xml index d7ccd25edcc1..a26b10c07857 100644 --- a/trunk/Documentation/DocBook/v4l/subdev-formats.xml +++ b/trunk/Documentation/DocBook/v4l/subdev-formats.xml @@ -2522,5 +2522,51 @@
+ +
+ JPEG Compressed Formats + + Those data formats consist of an ordered sequence of 8-bit bytes + obtained from JPEG compression process. Additionally to the + _JPEG prefix the format code is made of + the following information. + + The number of bus samples per entropy encoded byte. + The bus width. + + + For instance, for a JPEG baseline process and an 8-bit bus width + the format will be named V4L2_MBUS_FMT_JPEG_1X8. + + + + The following table lists existing JPEG compressed formats. + + + JPEG Formats + + + + + + + Identifier + Code + Remarks + + + + + V4L2_MBUS_FMT_JPEG_1X8 + 0x4001 + Besides of its usage for the parallel bus this format is + recommended for transmission of JPEG data over MIPI CSI bus + using the User Defined 8-bit Data types. + + + + +
+
diff --git a/trunk/Documentation/DocBook/v4l/videodev2.h.xml b/trunk/Documentation/DocBook/v4l/videodev2.h.xml index 2b796a2ee98a..c50536a4f596 100644 --- a/trunk/Documentation/DocBook/v4l/videodev2.h.xml +++ b/trunk/Documentation/DocBook/v4l/videodev2.h.xml @@ -311,6 +311,9 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ +/* Grey bit-packed formats */ +#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ + /* Palette formats */ #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ @@ -333,6 +336,7 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ #define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ +#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */ /* two planes -- one Y, one Cr + Cb interleaved */ #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ diff --git a/trunk/Documentation/HOWTO b/trunk/Documentation/HOWTO index 365bda9a0d94..81bc1a9ab9d8 100644 --- a/trunk/Documentation/HOWTO +++ b/trunk/Documentation/HOWTO @@ -209,7 +209,7 @@ tools. One such tool that is particularly recommended is the Linux Cross-Reference project, which is able to present source code in a self-referential, indexed webpage format. An excellent up-to-date repository of the kernel code may be found at: - http://users.sosdg.org/~qiyong/lxr/ + http://lxr.linux.no/+trees The development process diff --git a/trunk/Documentation/SubmittingPatches b/trunk/Documentation/SubmittingPatches index e439cd0d3375..569f3532e138 100644 --- a/trunk/Documentation/SubmittingPatches +++ b/trunk/Documentation/SubmittingPatches @@ -714,10 +714,11 @@ Jeff Garzik, "Linux kernel patch submission format". Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer". - - - - + + + + + NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! diff --git a/trunk/Documentation/devicetree/bindings/powerpc/nintendo/wii.txt b/trunk/Documentation/devicetree/bindings/powerpc/nintendo/wii.txt index a7e155a023b8..36afa322b04b 100644 --- a/trunk/Documentation/devicetree/bindings/powerpc/nintendo/wii.txt +++ b/trunk/Documentation/devicetree/bindings/powerpc/nintendo/wii.txt @@ -127,7 +127,7 @@ Nintendo Wii device tree - reg : should contain the SDHCI registers location and length - interrupts : should contain the SDHCI interrupt -1.j) The Inter-Processsor Communication (IPC) node +1.j) The Inter-Processor Communication (IPC) node Represent the Inter-Processor Communication interface. This interface enables communications between the Broadway and the Starlet processors. diff --git a/trunk/Documentation/dontdiff b/trunk/Documentation/dontdiff index 470d3dba1a69..dfa6fc6e4b28 100644 --- a/trunk/Documentation/dontdiff +++ b/trunk/Documentation/dontdiff @@ -1,6 +1,8 @@ *.a *.aux *.bin +*.bz2 +*.cis *.cpio *.csp *.dsp @@ -8,6 +10,8 @@ *.elf *.eps *.fw +*.gcno +*.gcov *.gen.S *.gif *.grep @@ -19,14 +23,20 @@ *.ko *.log *.lst +*.lzma +*.lzo +*.mo *.moc *.mod.c *.o *.o.* +*.order *.orig *.out +*.patch *.pdf *.png +*.pot *.ps *.rej *.s @@ -39,16 +49,22 @@ *.tex *.ver *.xml +*.xz *_MODULES *_vga16.c *~ +\#*# *.9 -*.9.gz .* +.*.d .mm 53c700_d.h CVS ChangeSet +GPATH +GRTAGS +GSYMS +GTAGS Image Kerntypes Module.markers @@ -57,15 +73,14 @@ PENDING SCCS System.map* TAGS +aconf +af_names.h aic7*reg.h* aic7*reg_print.c* aic7*seq.h* aicasm aicdb.h* -altivec1.c -altivec2.c -altivec4.c -altivec8.c +altivec*.c asm-offsets.h asm_offsets.h autoconf.h* @@ -80,6 +95,7 @@ btfixupprep build bvmlinux bzImage* +capability_names.h capflags.c classlist.h* comp*.log @@ -88,7 +104,8 @@ conf config config-* config_data.h* -config_data.gz* +config.mak +config.mak.autogen conmakehash consolemap_deftbl.c* cpustr.h @@ -96,7 +113,9 @@ crc32table.h* cscope.* defkeymap.c devlist.h* +dnotify_test docproc +dslm elf2ecoff elfconfig.h* evergreen_reg_safe.h @@ -105,6 +124,7 @@ flask.h fore200e_mkfirm fore200e_pca_fw.c* gconf +gconf.glade.h gen-devlist gen_crc32table gen_init_cpio @@ -112,11 +132,12 @@ generated genheaders genksyms *_gray256.c +hpet_example +hugepage-mmap +hugepage-shm ihex2fw ikconfig.h* inat-tables.c -initramfs_data.cpio -initramfs_data.cpio.gz initramfs_list int16.c int1.c @@ -133,15 +154,19 @@ kxgettext lkc_defs.h lex.c lex.*.c +linux logo_*.c logo_*_clut224.c logo_*_mono.c lxdialog +mach mach-types mach-types.h machtypes.h map +map_hugetlb maui_boot.h +media mconf miboot* mk_elfconfig @@ -150,23 +175,29 @@ mkbugboot mkcpustr mkdep mkprep +mkregtable mktables mktree modpost modules.builtin modules.order modversions.h* +nconf ncscope.* offset.h offsets.h oui.c* +page-types parse.c parse.h patches* pca200e.bin pca200e_ecd.bin2 -piggy.gz +perf.data +perf.data.old +perf-archive piggyback +piggy.gzip piggy.S pnmtologo ppc_defs.h* @@ -177,10 +208,9 @@ r200_reg_safe.h r300_reg_safe.h r420_reg_safe.h r600_reg_safe.h -raid6altivec*.c -raid6int*.c -raid6tables.c +recordmcount relocs +rlim_names.h rn50_reg_safe.h rs600_reg_safe.h rv515_reg_safe.h @@ -194,6 +224,7 @@ split-include syscalltab.h tables.c tags +test_get_len tftpboot.img timeconst.h times.h* @@ -210,10 +241,13 @@ vdso32.so.dbg vdso64.lds vdso64.so.dbg version.h* +vmImage vmlinux vmlinux-* vmlinux.aout +vmlinux.bin.all vmlinux.lds +vmlinuz voffset.h vsyscall.lds vsyscall_32.lds diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 4cba260e3059..95788ad2506c 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -215,7 +215,7 @@ Who: Zhang Rui What: CONFIG_ACPI_PROCFS_POWER When: 2.6.39 Why: sysfs I/F for ACPI power devices, including AC and Battery, - has been working in upstream kenrel since 2.6.24, Sep 2007. + has been working in upstream kernel since 2.6.24, Sep 2007. In 2.6.37, we make the sysfs I/F always built in and this option disabled by default. Remove this option and the ACPI power procfs interface in 2.6.39. @@ -551,3 +551,26 @@ Why: These legacy callbacks should no longer be used as i2c-core offers Who: Jean Delvare ---------------------------- + +What: Support for UVCIOC_CTRL_ADD in the uvcvideo driver +When: 2.6.42 +Why: The information passed to the driver by this ioctl is now queried + dynamically from the device. +Who: Laurent Pinchart + +---------------------------- + +What: Support for UVCIOC_CTRL_MAP_OLD in the uvcvideo driver +When: 2.6.42 +Why: Used only by applications compiled against older driver versions. + Superseded by UVCIOC_CTRL_MAP which supports V4L2 menu controls. +Who: Laurent Pinchart + +---------------------------- + +What: Support for UVCIOC_CTRL_GET and UVCIOC_CTRL_SET in the uvcvideo driver +When: 2.6.42 +Why: Superseded by the UVCIOC_CTRL_QUERY ioctl. +Who: Laurent Pinchart + +---------------------------- diff --git a/trunk/Documentation/filesystems/ubifs.txt b/trunk/Documentation/filesystems/ubifs.txt index d7b13b01e980..8e4fab639d9c 100644 --- a/trunk/Documentation/filesystems/ubifs.txt +++ b/trunk/Documentation/filesystems/ubifs.txt @@ -115,28 +115,8 @@ ubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs Module Parameters for Debugging =============================== -When UBIFS has been compiled with debugging enabled, there are 3 module +When UBIFS has been compiled with debugging enabled, there are 2 module parameters that are available to control aspects of testing and debugging. -The parameters are unsigned integers where each bit controls an option. -The parameters are: - -debug_msgs Selects which debug messages to display, as follows: - - Message Type Flag value - - General messages 1 - Journal messages 2 - Mount messages 4 - Commit messages 8 - LEB search messages 16 - Budgeting messages 32 - Garbage collection messages 64 - Tree Node Cache (TNC) messages 128 - LEB properties (lprops) messages 256 - Input/output messages 512 - Log messages 1024 - Scan messages 2048 - Recovery messages 4096 debug_chks Selects extra checks that UBIFS can do while running: @@ -154,11 +134,9 @@ debug_tsts Selects a mode of testing, as follows: Test mode Flag value - Force in-the-gaps method 2 Failure mode for recovery testing 4 -For example, set debug_msgs to 5 to display General messages and Mount -messages. +For example, set debug_chks to 3 to enable general and TNC checks. References diff --git a/trunk/Documentation/usb/hiddev.txt b/trunk/Documentation/hid/hiddev.txt similarity index 100% rename from trunk/Documentation/usb/hiddev.txt rename to trunk/Documentation/hid/hiddev.txt diff --git a/trunk/Documentation/hid/hidraw.txt b/trunk/Documentation/hid/hidraw.txt new file mode 100644 index 000000000000..029e6cb9a7e8 --- /dev/null +++ b/trunk/Documentation/hid/hidraw.txt @@ -0,0 +1,119 @@ + HIDRAW - Raw Access to USB and Bluetooth Human Interface Devices + ================================================================== + +The hidraw driver provides a raw interface to USB and Bluetooth Human +Interface Devices (HIDs). It differs from hiddev in that reports sent and +received are not parsed by the HID parser, but are sent to and received from +the device unmodified. + +Hidraw should be used if the userspace application knows exactly how to +communicate with the hardware device, and is able to construct the HID +reports manually. This is often the case when making userspace drivers for +custom HID devices. + +Hidraw is also useful for communicating with non-conformant HID devices +which send and receive data in a way that is inconsistent with their report +descriptors. Because hiddev parses reports which are sent and received +through it, checking them against the device's report descriptor, such +communication with these non-conformant devices is impossible using hiddev. +Hidraw is the only alternative, short of writing a custom kernel driver, for +these non-conformant devices. + +A benefit of hidraw is that its use by userspace applications is independent +of the underlying hardware type. Currently, Hidraw is implemented for USB +and Bluetooth. In the future, as new hardware bus types are developed which +use the HID specification, hidraw will be expanded to add support for these +new bus types. + +Hidraw uses a dynamic major number, meaning that udev should be relied on to +create hidraw device nodes. Udev will typically create the device nodes +directly under /dev (eg: /dev/hidraw0). As this location is distribution- +and udev rule-dependent, applications should use libudev to locate hidraw +devices attached to the system. There is a tutorial on libudev with a +working example at: + http://www.signal11.us/oss/udev/ + +The HIDRAW API +--------------- + +read() +------- +read() will read a queued report received from the HID device. On USB +devices, the reports read using read() are the reports sent from the device +on the INTERRUPT IN endpoint. By default, read() will block until there is +a report available to be read. read() can be made non-blocking, by passing +the O_NONBLOCK flag to open(), or by setting the O_NONBLOCK flag using +fcntl(). + +On a device which uses numbered reports, the first byte of the returned data +will be the report number; the report data follows, beginning in the second +byte. For devices which do not use numbered reports, the report data +will begin at the first byte. + +write() +-------- +The write() function will write a report to the device. For USB devices, if +the device has an INTERRUPT OUT endpoint, the report will be sent on that +endpoint. If it does not, the report will be sent over the control endpoint, +using a SET_REPORT transfer. + +The first byte of the buffer passed to write() should be set to the report +number. If the device does not use numbered reports, the first byte should +be set to 0. The report data itself should begin at the second byte. + +ioctl() +-------- +Hidraw supports the following ioctls: + +HIDIOCGRDESCSIZE: Get Report Descriptor Size +This ioctl will get the size of the device's report descriptor. + +HIDIOCGRDESC: Get Report Descriptor +This ioctl returns the device's report descriptor using a +hidraw_report_descriptor struct. Make sure to set the size field of the +hidraw_report_descriptor struct to the size returned from HIDIOCGRDESCSIZE. + +HIDIOCGRAWINFO: Get Raw Info +This ioctl will return a hidraw_devinfo struct containing the bus type, the +vendor ID (VID), and product ID (PID) of the device. The bus type can be one +of: + BUS_USB + BUS_HIL + BUS_BLUETOOTH + BUS_VIRTUAL +which are defined in linux/input.h. + +HIDIOCGRAWNAME(len): Get Raw Name +This ioctl returns a string containing the vendor and product strings of +the device. The returned string is Unicode, UTF-8 encoded. + +HIDIOCGRAWPHYS(len): Get Physical Address +This ioctl returns a string representing the physical address of the device. +For USB devices, the string contains the physical path to the device (the +USB controller, hubs, ports, etc). For Bluetooth devices, the string +contains the hardware (MAC) address of the device. + +HIDIOCSFEATURE(len): Send a Feature Report +This ioctl will send a feature report to the device. Per the HID +specification, feature reports are always sent using the control endpoint. +Set the first byte of the supplied buffer to the report number. For devices +which do not use numbered reports, set the first byte to 0. The report data +begins in the second byte. Make sure to set len accordingly, to one more +than the length of the report (to account for the report number). + +HIDIOCGFEATURE(len): Get a Feature Report +This ioctl will request a feature report from the device using the control +endpoint. The first byte of the supplied buffer should be set to the report +number of the requested report. For devices which do not use numbered +reports, set the first byte to 0. The report will be returned starting at +the first byte of the buffer (ie: the report number is not returned). + +Example +--------- +In samples/, find hid-example.c, which shows examples of read(), write(), +and all the ioctls for hidraw. The code may be used by anyone for any +purpose, and can serve as a starting point for developing applications using +hidraw. + +Document by: + Alan Ott , Signal 11 Software diff --git a/trunk/Documentation/hwmon/adm1275 b/trunk/Documentation/hwmon/adm1275 new file mode 100644 index 000000000000..6a3a6476cf20 --- /dev/null +++ b/trunk/Documentation/hwmon/adm1275 @@ -0,0 +1,60 @@ +Kernel driver adm1275 +===================== + +Supported chips: + * Analog Devices ADM1275 + Prefix: 'adm1275' + Addresses scanned: - + Datasheet: www.analog.com/static/imported-files/data_sheets/ADM1275.pdf + +Author: Guenter Roeck + + +Description +----------- + +This driver supports hardware montoring for Analog Devices ADM1275 Hot-Swap +Controller and Digital Power Monitor. + +The ADM1275 is a hot-swap controller that allows a circuit board to be removed +from or inserted into a live backplane. It also features current and voltage +readback via an integrated 12-bit analog-to-digital converter (ADC), accessed +using a PMBus. interface. + +The driver is a client driver to the core PMBus driver. Please see +Documentation/hwmon/pmbus for details on PMBus client drivers. + + +Usage Notes +----------- + +This driver does not auto-detect devices. You will have to instantiate the +devices explicitly. Please see Documentation/i2c/instantiating-devices for +details. + + +Platform data support +--------------------- + +The driver supports standard PMBus driver platform data. Please see +Documentation/hwmon/pmbus for details. + + +Sysfs entries +------------- + +The following attributes are supported. Limits are read-write; all other +attributes are read-only. + +in1_label "vin1" or "vout1" depending on chip variant and + configuration. +in1_input Measured voltage. From READ_VOUT register. +in1_min Minumum Voltage. From VOUT_UV_WARN_LIMIT register. +in1_max Maximum voltage. From VOUT_OV_WARN_LIMIT register. +in1_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status. +in1_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status. + +curr1_label "iout1" +curr1_input Measured current. From READ_IOUT register. +curr1_max Maximum current. From IOUT_OC_WARN_LIMIT register. +curr1_max_alarm Current high alarm. From IOUT_OC_WARN_LIMIT register. diff --git a/trunk/Documentation/hwmon/coretemp b/trunk/Documentation/hwmon/coretemp index 25568f844804..f85e913a3401 100644 --- a/trunk/Documentation/hwmon/coretemp +++ b/trunk/Documentation/hwmon/coretemp @@ -15,8 +15,13 @@ Author: Rudolf Marek Description ----------- +This driver permits reading the DTS (Digital Temperature Sensor) embedded +inside Intel CPUs. This driver can read both the per-core and per-package +temperature using the appropriate sensors. The per-package sensor is new; +as of now, it is present only in the SandyBridge platform. The driver will +show the temperature of all cores inside a package under a single device +directory inside hwmon. -This driver permits reading temperature sensor embedded inside Intel Core CPU. Temperature is measured in degrees Celsius and measurement resolution is 1 degree C. Valid temperatures are from 0 to TjMax degrees C, because the actual value of temperature register is in fact a delta from TjMax. @@ -27,13 +32,15 @@ mechanism will perform actions to forcibly cool down the processor. Alarm may be raised, if the temperature grows enough (more than TjMax) to trigger the Out-Of-Spec bit. Following table summarizes the exported sysfs files: -temp1_input - Core temperature (in millidegrees Celsius). -temp1_max - All cooling devices should be turned on (on Core2). -temp1_crit - Maximum junction temperature (in millidegrees Celsius). -temp1_crit_alarm - Set when Out-of-spec bit is set, never clears. +All Sysfs entries are named with their core_id (represented here by 'X'). +tempX_input - Core temperature (in millidegrees Celsius). +tempX_max - All cooling devices should be turned on (on Core2). +tempX_crit - Maximum junction temperature (in millidegrees Celsius). +tempX_crit_alarm - Set when Out-of-spec bit is set, never clears. Correct CPU operation is no longer guaranteed. -temp1_label - Contains string "Core X", where X is processor - number. +tempX_label - Contains string "Core X", where X is processor + number. For Package temp, this will be "Physical id Y", + where Y is the package number. The TjMax temperature is set to 85 degrees C if undocumented model specific register (UMSR) 0xee has bit 30 set. If not the TjMax is 100 degrees C as diff --git a/trunk/Documentation/hwmon/max16065 b/trunk/Documentation/hwmon/max16065 new file mode 100644 index 000000000000..44b4f61e04f9 --- /dev/null +++ b/trunk/Documentation/hwmon/max16065 @@ -0,0 +1,98 @@ +Kernel driver max16065 +====================== + +Supported chips: + * Maxim MAX16065, MAX16066 + Prefixes: 'max16065', 'max16066' + Addresses scanned: - + Datasheet: + http://datasheets.maxim-ic.com/en/ds/MAX16065-MAX16066.pdf + * Maxim MAX16067 + Prefix: 'max16067' + Addresses scanned: - + Datasheet: + http://datasheets.maxim-ic.com/en/ds/MAX16067.pdf + * Maxim MAX16068 + Prefix: 'max16068' + Addresses scanned: - + Datasheet: + http://datasheets.maxim-ic.com/en/ds/MAX16068.pdf + * Maxim MAX16070/MAX16071 + Prefixes: 'max16070', 'max16071' + Addresses scanned: - + Datasheet: + http://datasheets.maxim-ic.com/en/ds/MAX16070-MAX16071.pdf + + +Author: Guenter Roeck + + +Description +----------- + +[From datasheets] The MAX16065/MAX16066 flash-configurable system managers +monitor and sequence multiple system voltages. The MAX16065/MAX16066 can also +accurately monitor (+/-2.5%) one current channel using a dedicated high-side +current-sense amplifier. The MAX16065 manages up to twelve system voltages +simultaneously, and the MAX16066 manages up to eight supply voltages. + +The MAX16067 flash-configurable system manager monitors and sequences multiple +system voltages. The MAX16067 manages up to six system voltages simultaneously. + +The MAX16068 flash-configurable system manager monitors and manages up to six +system voltages simultaneously. + +The MAX16070/MAX16071 flash-configurable system monitors supervise multiple +system voltages. The MAX16070/MAX16071 can also accurately monitor (+/-2.5%) +one current channel using a dedicated high-side current-sense amplifier. The +MAX16070 monitors up to twelve system voltages simultaneously, and the MAX16071 +monitors up to eight supply voltages. + +Each monitored channel has its own low and high critical limits. MAX16065, +MAX16066, MAX16070, and MAX16071 support an additional limit which is +configurable as either low or high secondary limit. MAX16065, MAX16066, +MAX16070, and MAX16071 also support supply current monitoring. + + +Usage Notes +----------- + +This driver does not probe for devices, since there is no register which +can be safely used to identify the chip. You will have to instantiate +the devices explicitly. Please see Documentation/i2c/instantiating-devices for +details. + + +Sysfs entries +------------- + +in[0-11]_input Input voltage measurements. + +in12_input Voltage on CSP (Current Sense Positive) pin. + Only if the chip supports current sensing and if + current sensing is enabled. + +in[0-11]_min Low warning limit. + Supported on MAX16065, MAX16066, MAX16070, and MAX16071 + only. + +in[0-11]_max High warning limit. + Supported on MAX16065, MAX16066, MAX16070, and MAX16071 + only. + + Either low or high warning limits are supported + (depending on chip configuration), but not both. + +in[0-11]_lcrit Low critical limit. + +in[0-11]_crit High critical limit. + +in[0-11]_alarm Input voltage alarm. + +curr1_input Current sense input; only if the chip supports current + sensing and if current sensing is enabled. + Displayed current assumes 0.001 Ohm current sense + resistor. + +curr1_alarm Overcurrent alarm; only if the chip supports current + sensing and if current sensing is enabled. diff --git a/trunk/Documentation/hwmon/max6642 b/trunk/Documentation/hwmon/max6642 new file mode 100644 index 000000000000..afbd3e4942e2 --- /dev/null +++ b/trunk/Documentation/hwmon/max6642 @@ -0,0 +1,21 @@ +Kernel driver max6642 +===================== + +Supported chips: + * Maxim MAX6642 + Prefix: 'max6642' + Addresses scanned: I2C 0x48-0x4f + Datasheet: Publicly available at the Maxim website + http://datasheets.maxim-ic.com/en/ds/MAX6642.pdf + +Authors: + Per Dalen + +Description +----------- + +The MAX6642 is a digital temperature sensor. It senses its own temperature as +well as the temperature on one external diode. + +All temperature values are given in degrees Celsius. Resolution +is 0.25 degree for the local temperature and for the remote temperature. diff --git a/trunk/Documentation/hwmon/pkgtemp b/trunk/Documentation/hwmon/pkgtemp deleted file mode 100644 index c8e1fb0fadd3..000000000000 --- a/trunk/Documentation/hwmon/pkgtemp +++ /dev/null @@ -1,36 +0,0 @@ -Kernel driver pkgtemp -====================== - -Supported chips: - * Intel family - Prefix: 'pkgtemp' - CPUID: - Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual - Volume 3A: System Programming Guide - -Author: Fenghua Yu - -Description ------------ - -This driver permits reading package level temperature sensor embedded inside -Intel CPU package. The sensors can be in core, uncore, memory controller, or -other components in a package. The feature is first implemented in Intel Sandy -Bridge platform. - -Temperature is measured in degrees Celsius and measurement resolution is -1 degree C. Valid temperatures are from 0 to TjMax degrees C, because the actual -value of temperature register is in fact a delta from TjMax. - -Temperature known as TjMax is the maximum junction temperature of package. -We get this from MSR_IA32_TEMPERATURE_TARGET. If the MSR is not accessible, -we define TjMax as 100 degrees Celsius. At this temperature, protection -mechanism will perform actions to forcibly cool down the package. Alarm -may be raised, if the temperature grows enough (more than TjMax) to trigger -the Out-Of-Spec bit. Following table summarizes the exported sysfs files: - -temp1_input - Package temperature (in millidegrees Celsius). -temp1_max - All cooling devices should be turned on. -temp1_crit - Maximum junction temperature (in millidegrees Celsius). -temp1_crit_alarm - Set when Out-of-spec bit is set, never clears. - Correct CPU operation is no longer guaranteed. diff --git a/trunk/Documentation/hwmon/sht15 b/trunk/Documentation/hwmon/sht15 new file mode 100644 index 000000000000..02850bdfac18 --- /dev/null +++ b/trunk/Documentation/hwmon/sht15 @@ -0,0 +1,74 @@ +Kernel driver sht15 +=================== + +Authors: + * Wouter Horre + * Jonathan Cameron + * Vivien Didelot + * Jerome Oufella + +Supported chips: + * Sensirion SHT10 + Prefix: 'sht10' + + * Sensirion SHT11 + Prefix: 'sht11' + + * Sensirion SHT15 + Prefix: 'sht15' + + * Sensirion SHT71 + Prefix: 'sht71' + + * Sensirion SHT75 + Prefix: 'sht75' + +Datasheet: Publicly available at the Sensirion website +http://www.sensirion.ch/en/pdf/product_information/Datasheet-humidity-sensor-SHT1x.pdf + +Description +----------- + +The SHT10, SHT11, SHT15, SHT71, and SHT75 are humidity and temperature +sensors. + +The devices communicate using two GPIO lines. + +Supported resolutions for the measurements are 14 bits for temperature and 12 +bits for humidity, or 12 bits for temperature and 8 bits for humidity. + +The humidity calibration coefficients are programmed into an OTP memory on the +chip. These coefficients are used to internally calibrate the signals from the +sensors. Disabling the reload of those coefficients allows saving 10ms for each +measurement and decrease power consumption, while loosing on precision. + +Some options may be set directly in the sht15_platform_data structure +or via sysfs attributes. + +Notes: + * The regulator supply name is set to "vcc". + * If a CRC validation fails, a soft reset command is sent, which resets + status register to its hardware default value, but the driver will try to + restore the previous device configuration. + +Platform data +------------- + +* checksum: + set it to true to enable CRC validation of the readings (default to false). +* no_otp_reload: + flag to indicate not to reload from OTP (default to false). +* low_resolution: + flag to indicate the temp/humidity resolution to use (default to false). + +Sysfs interface +--------------- + +* temp1_input: temperature input +* humidity1_input: humidity input +* heater_enable: write 1 in this attribute to enable the on-chip heater, + 0 to disable it. Be careful not to enable the heater + for too long. +* temp1_fault: if 1, this means that the voltage is low (below 2.47V) and + measurement may be invalid. +* humidity1_fault: same as temp1_fault. diff --git a/trunk/Documentation/hwmon/ucd9000 b/trunk/Documentation/hwmon/ucd9000 new file mode 100644 index 000000000000..40ca6db50c48 --- /dev/null +++ b/trunk/Documentation/hwmon/ucd9000 @@ -0,0 +1,110 @@ +Kernel driver ucd9000 +===================== + +Supported chips: + * TI UCD90120, UCD90124, UCD9090, and UCD90910 + Prefixes: 'ucd90120', 'ucd90124', 'ucd9090', 'ucd90910' + Addresses scanned: - + Datasheets: + http://focus.ti.com/lit/ds/symlink/ucd90120.pdf + http://focus.ti.com/lit/ds/symlink/ucd90124.pdf + http://focus.ti.com/lit/ds/symlink/ucd9090.pdf + http://focus.ti.com/lit/ds/symlink/ucd90910.pdf + +Author: Guenter Roeck + + +Description +----------- + +From datasheets: + +The UCD90120 Power Supply Sequencer and System Health Monitor monitors and +sequences up to 12 independent voltage rails. The device integrates a 12-bit +ADC with a 2.5V internal reference for monitoring up to 13 power supply voltage, +current, or temperature inputs. + +The UCD90124 is a 12-rail PMBus/I2C addressable power-supply sequencer and +system-health monitor. The device integrates a 12-bit ADC for monitoring up to +13 power-supply voltage, current, or temperature inputs. Twenty-six GPIO pins +can be used for power supply enables, power-on reset signals, external +interrupts, cascading, or other system functions. Twelve of these pins offer PWM +functionality. Using these pins, the UCD90124 offers support for fan control, +margining, and general-purpose PWM functions. + +The UCD9090 is a 10-rail PMBus/I2C addressable power-supply sequencer and +monitor. The device integrates a 12-bit ADC for monitoring up to 10 power-supply +voltage inputs. Twenty-three GPIO pins can be used for power supply enables, +power-on reset signals, external interrupts, cascading, or other system +functions. Ten of these pins offer PWM functionality. Using these pins, the +UCD9090 offers support for margining, and general-purpose PWM functions. + +The UCD90910 is a ten-rail I2C / PMBus addressable power-supply sequencer and +system-health monitor. The device integrates a 12-bit ADC for monitoring up to +13 power-supply voltage, current, or temperature inputs. + +This driver is a client driver to the core PMBus driver. Please see +Documentation/hwmon/pmbus for details on PMBus client drivers. + + +Usage Notes +----------- + +This driver does not auto-detect devices. You will have to instantiate the +devices explicitly. Please see Documentation/i2c/instantiating-devices for +details. + + +Platform data support +--------------------- + +The driver supports standard PMBus driver platform data. Please see +Documentation/hwmon/pmbus for details. + + +Sysfs entries +------------- + +The following attributes are supported. Limits are read-write; all other +attributes are read-only. + +in[1-12]_label "vout[1-12]". +in[1-12]_input Measured voltage. From READ_VOUT register. +in[1-12]_min Minumum Voltage. From VOUT_UV_WARN_LIMIT register. +in[1-12]_max Maximum voltage. From VOUT_OV_WARN_LIMIT register. +in[1-12]_lcrit Critical minumum Voltage. VOUT_UV_FAULT_LIMIT register. +in[1-12]_crit Critical maximum voltage. From VOUT_OV_FAULT_LIMIT register. +in[1-12]_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status. +in[1-12]_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status. +in[1-12]_lcrit_alarm Voltage critical low alarm. From VOLTAGE_UV_FAULT status. +in[1-12]_crit_alarm Voltage critical high alarm. From VOLTAGE_OV_FAULT status. + +curr[1-12]_label "iout[1-12]". +curr[1-12]_input Measured current. From READ_IOUT register. +curr[1-12]_max Maximum current. From IOUT_OC_WARN_LIMIT register. +curr[1-12]_lcrit Critical minumum output current. From IOUT_UC_FAULT_LIMIT + register. +curr[1-12]_crit Critical maximum current. From IOUT_OC_FAULT_LIMIT register. +curr[1-12]_max_alarm Current high alarm. From IOUT_OC_WARNING status. +curr[1-12]_crit_alarm Current critical high alarm. From IOUT_OC_FAULT status. + + For each attribute index, either voltage or current is + reported, but not both. If voltage or current is + reported depends on the chip configuration. + +temp[1-2]_input Measured temperatures. From READ_TEMPERATURE_1 and + READ_TEMPERATURE_2 registers. +temp[1-2]_max Maximum temperature. From OT_WARN_LIMIT register. +temp[1-2]_crit Critical high temperature. From OT_FAULT_LIMIT register. +temp[1-2]_max_alarm Temperature high alarm. +temp[1-2]_crit_alarm Temperature critical high alarm. + +fan[1-4]_input Fan RPM. +fan[1-4]_alarm Fan alarm. +fan[1-4]_fault Fan fault. + + Fan attributes are only available on chips supporting + fan control (UCD90124, UCD90910). Attribute files are + created only for enabled fans. + Note that even though UCD90910 supports up to 10 fans, + only up to four fans are currently supported. diff --git a/trunk/Documentation/hwmon/ucd9200 b/trunk/Documentation/hwmon/ucd9200 new file mode 100644 index 000000000000..3c58607f72fe --- /dev/null +++ b/trunk/Documentation/hwmon/ucd9200 @@ -0,0 +1,112 @@ +Kernel driver ucd9200 +===================== + +Supported chips: + * TI UCD9220, UCD9222, UCD9224, UCD9240, UCD9244, UCD9246, and UCD9248 + Prefixes: 'ucd9220', 'ucd9222', 'ucd9224', 'ucd9240', 'ucd9244', 'ucd9246', + 'ucd9248' + Addresses scanned: - + Datasheets: + http://focus.ti.com/lit/ds/symlink/ucd9220.pdf + http://focus.ti.com/lit/ds/symlink/ucd9222.pdf + http://focus.ti.com/lit/ds/symlink/ucd9224.pdf + http://focus.ti.com/lit/ds/symlink/ucd9240.pdf + http://focus.ti.com/lit/ds/symlink/ucd9244.pdf + http://focus.ti.com/lit/ds/symlink/ucd9246.pdf + http://focus.ti.com/lit/ds/symlink/ucd9248.pdf + +Author: Guenter Roeck + + +Description +----------- + +[From datasheets] UCD9220, UCD9222, UCD9224, UCD9240, UCD9244, UCD9246, and +UCD9248 are multi-rail, multi-phase synchronous buck digital PWM controllers +designed for non-isolated DC/DC power applications. The devices integrate +dedicated circuitry for DC/DC loop management with flash memory and a serial +interface to support configuration, monitoring and management. + +This driver is a client driver to the core PMBus driver. Please see +Documentation/hwmon/pmbus for details on PMBus client drivers. + + +Usage Notes +----------- + +This driver does not auto-detect devices. You will have to instantiate the +devices explicitly. Please see Documentation/i2c/instantiating-devices for +details. + + +Platform data support +--------------------- + +The driver supports standard PMBus driver platform data. Please see +Documentation/hwmon/pmbus for details. + + +Sysfs entries +------------- + +The following attributes are supported. Limits are read-write; all other +attributes are read-only. + +in1_label "vin". +in1_input Measured voltage. From READ_VIN register. +in1_min Minumum Voltage. From VIN_UV_WARN_LIMIT register. +in1_max Maximum voltage. From VIN_OV_WARN_LIMIT register. +in1_lcrit Critical minumum Voltage. VIN_UV_FAULT_LIMIT register. +in1_crit Critical maximum voltage. From VIN_OV_FAULT_LIMIT register. +in1_min_alarm Voltage low alarm. From VIN_UV_WARNING status. +in1_max_alarm Voltage high alarm. From VIN_OV_WARNING status. +in1_lcrit_alarm Voltage critical low alarm. From VIN_UV_FAULT status. +in1_crit_alarm Voltage critical high alarm. From VIN_OV_FAULT status. + +in[2-5]_label "vout[1-4]". +in[2-5]_input Measured voltage. From READ_VOUT register. +in[2-5]_min Minumum Voltage. From VOUT_UV_WARN_LIMIT register. +in[2-5]_max Maximum voltage. From VOUT_OV_WARN_LIMIT register. +in[2-5]_lcrit Critical minumum Voltage. VOUT_UV_FAULT_LIMIT register. +in[2-5]_crit Critical maximum voltage. From VOUT_OV_FAULT_LIMIT register. +in[2-5]_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status. +in[2-5]_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status. +in[2-5]_lcrit_alarm Voltage critical low alarm. From VOLTAGE_UV_FAULT status. +in[2-5]_crit_alarm Voltage critical high alarm. From VOLTAGE_OV_FAULT status. + +curr1_label "iin". +curr1_input Measured current. From READ_IIN register. + +curr[2-5]_label "iout[1-4]". +curr[2-5]_input Measured current. From READ_IOUT register. +curr[2-5]_max Maximum current. From IOUT_OC_WARN_LIMIT register. +curr[2-5]_lcrit Critical minumum output current. From IOUT_UC_FAULT_LIMIT + register. +curr[2-5]_crit Critical maximum current. From IOUT_OC_FAULT_LIMIT register. +curr[2-5]_max_alarm Current high alarm. From IOUT_OC_WARNING status. +curr[2-5]_crit_alarm Current critical high alarm. From IOUT_OC_FAULT status. + +power1_input Measured input power. From READ_PIN register. +power1_label "pin" + +power[2-5]_input Measured output power. From READ_POUT register. +power[2-5]_label "pout[1-4]" + + The number of output voltage, current, and power + attribute sets is determined by the number of enabled + rails. See chip datasheets for details. + +temp[1-5]_input Measured temperatures. From READ_TEMPERATURE_1 and + READ_TEMPERATURE_2 registers. + temp1 is the chip internal temperature. temp[2-5] are + rail temperatures. temp[2-5] attributes are only + created for enabled rails. See chip datasheets for + details. +temp[1-5]_max Maximum temperature. From OT_WARN_LIMIT register. +temp[1-5]_crit Critical high temperature. From OT_FAULT_LIMIT register. +temp[1-5]_max_alarm Temperature high alarm. +temp[1-5]_crit_alarm Temperature critical high alarm. + +fan1_input Fan RPM. ucd9240 only. +fan1_alarm Fan alarm. ucd9240 only. +fan1_fault Fan fault. ucd9240 only. diff --git a/trunk/Documentation/input/elantech.txt b/trunk/Documentation/input/elantech.txt index 56941ae1f5db..db798af5ef98 100644 --- a/trunk/Documentation/input/elantech.txt +++ b/trunk/Documentation/input/elantech.txt @@ -34,7 +34,8 @@ Contents Currently the Linux Elantech touchpad driver is aware of two different hardware versions unimaginatively called version 1 and version 2. Version 1 is found in "older" laptops and uses 4 bytes per packet. Version 2 seems to -be introduced with the EeePC and uses 6 bytes per packet. +be introduced with the EeePC and uses 6 bytes per packet, and provides +additional features such as position of two fingers, and width of the touch. The driver tries to support both hardware versions and should be compatible with the Xorg Synaptics touchpad driver and its graphical configuration @@ -94,18 +95,44 @@ Currently the Linux Elantech touchpad driver provides two extra knobs under can check these bits and reject any packet that appears corrupted. Using this knob you can bypass that check. - It is not known yet whether hardware version 2 provides the same parity - bits. Hence checking is disabled by default. Currently even turning it on - will do nothing. - + Hardware version 2 does not provide the same parity bits. Only some basic + data consistency checking can be done. For now checking is disabled by + default. Currently even turning it on will do nothing. ///////////////////////////////////////////////////////////////////////////// +3. Differentiating hardware versions + ================================= + +To detect the hardware version, read the version number as param[0].param[1].param[2] + + 4 bytes version: (after the arrow is the name given in the Dell-provided driver) + 02.00.22 => EF013 + 02.06.00 => EF019 +In the wild, there appear to be more versions, such as 00.01.64, 01.00.21, +02.00.00, 02.00.04, 02.00.06. + + 6 bytes: + 02.00.30 => EF113 + 02.08.00 => EF023 + 02.08.XX => EF123 + 02.0B.00 => EF215 + 04.01.XX => Scroll_EF051 + 04.02.XX => EF051 +In the wild, there appear to be more versions, such as 04.03.01, 04.04.11. There +appears to be almost no difference, except for EF113, which does not report +pressure/width and has different data consistency checks. + +Probably all the versions with param[0] <= 01 can be considered as +4 bytes/firmware 1. The versions < 02.08.00, with the exception of 02.00.30, as +4 bytes/firmware 2. Everything >= 02.08.00 can be considered as 6 bytes. + +///////////////////////////////////////////////////////////////////////////// -3. Hardware version 1 +4. Hardware version 1 ================== -3.1 Registers +4.1 Registers ~~~~~~~~~ By echoing a hexadecimal value to a register it contents can be altered. @@ -168,7 +195,7 @@ For example: smart edge activation area width? -3.2 Native relative mode 4 byte packet format +4.2 Native relative mode 4 byte packet format ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ byte 0: @@ -226,9 +253,13 @@ byte 3: positive = down -3.3 Native absolute mode 4 byte packet format +4.3 Native absolute mode 4 byte packet format ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +EF013 and EF019 have a special behaviour (due to a bug in the firmware?), and +when 1 finger is touching, the first 2 position reports must be discarded. +This counting is reset whenever a different number of fingers is reported. + byte 0: firmware version 1.x: @@ -279,11 +310,11 @@ byte 3: ///////////////////////////////////////////////////////////////////////////// -4. Hardware version 2 +5. Hardware version 2 ================== -4.1 Registers +5.1 Registers ~~~~~~~~~ By echoing a hexadecimal value to a register it contents can be altered. @@ -316,16 +347,41 @@ For example: 0x7f = never i.e. tap again to release) -4.2 Native absolute mode 6 byte packet format +5.2 Native absolute mode 6 byte packet format ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -4.2.1 One finger touch +5.2.1 Parity checking and packet re-synchronization +There is no parity checking, however some consistency checks can be performed. + +For instance for EF113: + SA1= packet[0]; + A1 = packet[1]; + B1 = packet[2]; + SB1= packet[3]; + C1 = packet[4]; + D1 = packet[5]; + if( (((SA1 & 0x3C) != 0x3C) && ((SA1 & 0xC0) != 0x80)) || // check Byte 1 + (((SA1 & 0x0C) != 0x0C) && ((SA1 & 0xC0) == 0x80)) || // check Byte 1 (one finger pressed) + (((SA1 & 0xC0) != 0x80) && (( A1 & 0xF0) != 0x00)) || // check Byte 2 + (((SB1 & 0x3E) != 0x38) && ((SA1 & 0xC0) != 0x80)) || // check Byte 4 + (((SB1 & 0x0E) != 0x08) && ((SA1 & 0xC0) == 0x80)) || // check Byte 4 (one finger pressed) + (((SA1 & 0xC0) != 0x80) && (( C1 & 0xF0) != 0x00)) ) // check Byte 5 + // error detected + +For all the other ones, there are just a few constant bits: + if( ((packet[0] & 0x0C) != 0x04) || + ((packet[3] & 0x0f) != 0x02) ) + // error detected + + +In case an error is detected, all the packets are shifted by one (and packet[0] is discarded). + +5.2.1 One/Three finger touch ~~~~~~~~~~~~~~~~ byte 0: bit 7 6 5 4 3 2 1 0 - n1 n0 . . . . R L + n1 n0 w3 w2 . . R L L, R = 1 when Left, Right mouse button pressed n1..n0 = numbers of fingers on touchpad @@ -333,24 +389,40 @@ byte 0: byte 1: bit 7 6 5 4 3 2 1 0 - . . . . . x10 x9 x8 + p7 p6 p5 p4 . x10 x9 x8 byte 2: bit 7 6 5 4 3 2 1 0 - x7 x6 x5 x4 x4 x2 x1 x0 + x7 x6 x5 x4 x3 x2 x1 x0 x10..x0 = absolute x value (horizontal) byte 3: bit 7 6 5 4 3 2 1 0 - . . . . . . . . + n4 vf w1 w0 . . . b2 + + n4 = set if more than 3 fingers (only in 3 fingers mode) + vf = a kind of flag ? (only on EF123, 0 when finger is over one + of the buttons, 1 otherwise) + w3..w0 = width of the finger touch (not EF113) + b2 (on EF113 only, 0 otherwise), b2.R.L indicates one button pressed: + 0 = none + 1 = Left + 2 = Right + 3 = Middle (Left and Right) + 4 = Forward + 5 = Back + 6 = Another one + 7 = Another one byte 4: bit 7 6 5 4 3 2 1 0 - . . . . . . y9 y8 + p3 p1 p2 p0 . . y9 y8 + + p7..p0 = pressure (not EF113) byte 5: @@ -363,6 +435,11 @@ byte 5: 4.2.2 Two finger touch ~~~~~~~~~~~~~~~~ +Note that the two pairs of coordinates are not exactly the coordinates of the +two fingers, but only the pair of the lower-left and upper-right coordinates. +So the actual fingers might be situated on the other diagonal of the square +defined by these two points. + byte 0: bit 7 6 5 4 3 2 1 0 @@ -376,14 +453,14 @@ byte 1: bit 7 6 5 4 3 2 1 0 ax7 ax6 ax5 ax4 ax3 ax2 ax1 ax0 - ax8..ax0 = first finger absolute x value + ax8..ax0 = lower-left finger absolute x value byte 2: bit 7 6 5 4 3 2 1 0 ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 - ay8..ay0 = first finger absolute y value + ay8..ay0 = lower-left finger absolute y value byte 3: @@ -395,11 +472,11 @@ byte 4: bit 7 6 5 4 3 2 1 0 bx7 bx6 bx5 bx4 bx3 bx2 bx1 bx0 - bx8..bx0 = second finger absolute x value + bx8..bx0 = upper-right finger absolute x value byte 5: bit 7 6 5 4 3 2 1 0 by7 by8 by5 by4 by3 by2 by1 by0 - by8..by0 = second finger absolute y value + by8..by0 = upper-right finger absolute y value diff --git a/trunk/Documentation/input/rotary-encoder.txt b/trunk/Documentation/input/rotary-encoder.txt index 943e8f6f2b15..92e68bce13a4 100644 --- a/trunk/Documentation/input/rotary-encoder.txt +++ b/trunk/Documentation/input/rotary-encoder.txt @@ -9,6 +9,9 @@ peripherals with two wires. The outputs are phase-shifted by 90 degrees and by triggering on falling and rising edges, the turn direction can be determined. +Some encoders have both outputs low in stable states, whereas others also have +a stable state with both outputs high (half-period mode). + The phase diagram of these two outputs look like this: _____ _____ _____ @@ -26,6 +29,8 @@ The phase diagram of these two outputs look like this: |<-------->| one step + |<-->| + one step (half-period mode) For more information, please see http://en.wikipedia.org/wiki/Rotary_encoder @@ -34,6 +39,13 @@ For more information, please see 1. Events / state machine ------------------------- +In half-period mode, state a) and c) above are used to determine the +rotational direction based on the last stable state. Events are reported in +states b) and d) given that the new stable state is different from the last +(i.e. the rotation was not reversed half-way). + +Otherwise, the following apply: + a) Rising edge on channel A, channel B in low state This state is used to recognize a clockwise turn @@ -96,6 +108,7 @@ static struct rotary_encoder_platform_data my_rotary_encoder_info = { .gpio_b = GPIO_ROTARY_B, .inverted_a = 0, .inverted_b = 0, + .half_period = false, }; static struct platform_device rotary_encoder_device = { diff --git a/trunk/Documentation/ioctl/ioctl-number.txt b/trunk/Documentation/ioctl/ioctl-number.txt index a0a5d82b6b0b..2d1ad12e2b3e 100644 --- a/trunk/Documentation/ioctl/ioctl-number.txt +++ b/trunk/Documentation/ioctl/ioctl-number.txt @@ -166,7 +166,6 @@ Code Seq#(hex) Include File Comments 'T' all arch/x86/include/asm/ioctls.h conflict! 'T' C0-DF linux/if_tun.h conflict! 'U' all sound/asound.h conflict! -'U' 00-0F drivers/media/video/uvc/uvcvideo.h conflict! 'U' 00-CF linux/uinput.h conflict! 'U' 00-EF linux/usbdevice_fs.h 'U' C0-CF drivers/bluetooth/hci_uart.h @@ -259,6 +258,7 @@ Code Seq#(hex) Include File Comments 't' 80-8F linux/isdn_ppp.h 't' 90 linux/toshiba.h 'u' 00-1F linux/smb_fs.h gone +'u' 20-3F linux/uvcvideo.h USB video class host driver 'v' 00-1F linux/ext2_fs.h conflict! 'v' 00-1F linux/fs.h conflict! 'v' 00-0F linux/sonypi.h conflict! diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index c603ef7b0568..7c6624e7a5cb 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -2585,6 +2585,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. bytes of sense data); c = FIX_CAPACITY (decrease the reported device capacity by one sector); + d = NO_READ_DISC_INFO (don't use + READ_DISC_INFO command); + e = NO_READ_CAPACITY_16 (don't use + READ_CAPACITY_16 command); h = CAPACITY_HEURISTICS (decrease the reported device capacity by one sector if the number is odd); diff --git a/trunk/Documentation/pti/pti_intel_mid.txt b/trunk/Documentation/pti/pti_intel_mid.txt new file mode 100644 index 000000000000..e7a5b6d1f7a9 --- /dev/null +++ b/trunk/Documentation/pti/pti_intel_mid.txt @@ -0,0 +1,99 @@ +The Intel MID PTI project is HW implemented in Intel Atom +system-on-a-chip designs based on the Parallel Trace +Interface for MIPI P1149.7 cJTAG standard. The kernel solution +for this platform involves the following files: + +./include/linux/pti.h +./drivers/.../n_tracesink.h +./drivers/.../n_tracerouter.c +./drivers/.../n_tracesink.c +./drivers/.../pti.c + +pti.c is the driver that enables various debugging features +popular on platforms from certain mobile manufacturers. +n_tracerouter.c and n_tracesink.c allow extra system information to +be collected and routed to the pti driver, such as trace +debugging data from a modem. Although n_tracerouter +and n_tracesink are a part of the complete PTI solution, +these two line disciplines can work separately from +pti.c and route any data stream from one /dev/tty node +to another /dev/tty node via kernel-space. This provides +a stable, reliable connection that will not break unless +the user-space application shuts down (plus avoids +kernel->user->kernel context switch overheads of routing +data). + +An example debugging usage for this driver system: + *Hook /dev/ttyPTI0 to syslogd. Opening this port will also start + a console device to further capture debugging messages to PTI. + *Hook /dev/ttyPTI1 to modem debugging data to write to PTI HW. + This is where n_tracerouter and n_tracesink are used. + *Hook /dev/pti to a user-level debugging application for writing + to PTI HW. + *Use mipi_* Kernel Driver API in other device drivers for + debugging to PTI by first requesting a PTI write address via + mipi_request_masterchannel(1). + +Below is example pseudo-code on how a 'privileged' application +can hook up n_tracerouter and n_tracesink to any tty on +a system. 'Privileged' means the application has enough +privileges to successfully manipulate the ldisc drivers +but is not just blindly executing as 'root'. Keep in mind +the use of ioctl(,TIOCSETD,) is not specific to the n_tracerouter +and n_tracesink line discpline drivers but is a generic +operation for a program to use a line discpline driver +on a tty port other than the default n_tty. + +/////////// To hook up n_tracerouter and n_tracesink ///////// + +// Note that n_tracerouter depends on n_tracesink. +#include +#define ONE_TTY "/dev/ttyOne" +#define TWO_TTY "/dev/ttyTwo" + +// needed global to hand onto ldisc connection +static int g_fd_source = -1; +static int g_fd_sink = -1; + +// these two vars used to grab LDISC values from loaded ldisc drivers +// in OS. Look at /proc/tty/ldiscs to get the right numbers from +// the ldiscs loaded in the system. +int source_ldisc_num, sink_ldisc_num = -1; +int retval; + +g_fd_source = open(ONE_TTY, O_RDWR); // must be R/W +g_fd_sink = open(TWO_TTY, O_RDWR); // must be R/W + +if (g_fd_source <= 0) || (g_fd_sink <= 0) { + // doubt you'll want to use these exact error lines of code + printf("Error on open(). errno: %d\n",errno); + return errno; +} + +retval = ioctl(g_fd_sink, TIOCSETD, &sink_ldisc_num); +if (retval < 0) { + printf("Error on ioctl(). errno: %d\n", errno); + return errno; +} + +retval = ioctl(g_fd_source, TIOCSETD, &source_ldisc_num); +if (retval < 0) { + printf("Error on ioctl(). errno: %d\n", errno); + return errno; +} + +/////////// To disconnect n_tracerouter and n_tracesink //////// + +// First make sure data through the ldiscs has stopped. + +// Second, disconnect ldiscs. This provides a +// little cleaner shutdown on tty stack. +sink_ldisc_num = 0; +source_ldisc_num = 0; +ioctl(g_fd_uart, TIOCSETD, &sink_ldisc_num); +ioctl(g_fd_gadget, TIOCSETD, &source_ldisc_num); + +// Three, program closes connection, and cleanup: +close(g_fd_uart); +close(g_fd_gadget); +g_fd_uart = g_fd_gadget = NULL; diff --git a/trunk/Documentation/sound/alsa/ALSA-Configuration.txt b/trunk/Documentation/sound/alsa/ALSA-Configuration.txt index 9822afb6313c..89757012c7ff 100644 --- a/trunk/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/trunk/Documentation/sound/alsa/ALSA-Configuration.txt @@ -1230,6 +1230,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. This module supports multiple cards. The driver requires the firmware loader support on kernel. + Module snd-lola + --------------- + + Module for Digigram Lola PCI-e boards + + This module supports multiple cards. + Module snd-lx6464es ------------------- diff --git a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt index 0caf77e59be4..d70c93bdcadf 100644 --- a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt @@ -94,7 +94,7 @@ ALC662/663/272 3stack-dig 3-stack (2-channel) with SPDIF 3stack-6ch 3-stack (6-channel) 3stack-6ch-dig 3-stack (6-channel) with SPDIF - 6stack-dig 6-stack with SPDIF + 5stack-dig 5-stack with SPDIF lenovo-101e Lenovo laptop eeepc-p701 ASUS Eeepc P701 eeepc-ep20 ASUS Eeepc EP20 diff --git a/trunk/Documentation/stable_api_nonsense.txt b/trunk/Documentation/stable_api_nonsense.txt index 847b342b7b20..db3be892afb2 100644 --- a/trunk/Documentation/stable_api_nonsense.txt +++ b/trunk/Documentation/stable_api_nonsense.txt @@ -122,7 +122,7 @@ operating system to suffer. In both of these instances, all developers agreed that these were important changes that needed to be made, and they were made, with -relatively little pain. If Linux had to ensure that it preserve a +relatively little pain. If Linux had to ensure that it will preserve a stable source interface, a new interface would have been created, and the older, broken one would have had to be maintained over time, leading to extra work for the USB developers. Since all Linux USB developers do diff --git a/trunk/Documentation/sysctl/fs.txt b/trunk/Documentation/sysctl/fs.txt index 4af0614147ef..88fd7f5c8dcd 100644 --- a/trunk/Documentation/sysctl/fs.txt +++ b/trunk/Documentation/sysctl/fs.txt @@ -231,13 +231,6 @@ its creation). This directory contains configuration options for the epoll(7) interface. -max_user_instances ------------------- - -This is the maximum number of epoll file descriptors that a single user can -have open at a given time. The default value is 128, and should be enough -for normal users. - max_user_watches ---------------- diff --git a/trunk/Documentation/sysctl/vm.txt b/trunk/Documentation/sysctl/vm.txt index 30289fab86eb..96f0ee825bed 100644 --- a/trunk/Documentation/sysctl/vm.txt +++ b/trunk/Documentation/sysctl/vm.txt @@ -481,10 +481,10 @@ the DMA zone. Type(A) is called as "Node" order. Type (B) is "Zone" order. "Node order" orders the zonelists by node, then by zone within each node. -Specify "[Nn]ode" for zone order +Specify "[Nn]ode" for node order "Zone Order" orders the zonelists by zone type, then by node within each -zone. Specify "[Zz]one"for zode order. +zone. Specify "[Zz]one" for zone order. Specify "[Dd]efault" to request automatic configuration. Autoconfiguration will select "node" order in following case. diff --git a/trunk/Documentation/timers/timers-howto.txt b/trunk/Documentation/timers/timers-howto.txt index c9ef29d2ede3..038f8c77a076 100644 --- a/trunk/Documentation/timers/timers-howto.txt +++ b/trunk/Documentation/timers/timers-howto.txt @@ -24,7 +24,7 @@ ATOMIC CONTEXT: ndelay(unsigned long nsecs) udelay(unsigned long usecs) - mdelay(unsgined long msecs) + mdelay(unsigned long msecs) udelay is the generally preferred API; ndelay-level precision may not actually exist on many non-PC devices. diff --git a/trunk/Documentation/usb/callbacks.txt b/trunk/Documentation/usb/callbacks.txt index bfb36b34b79e..9e85846bdb98 100644 --- a/trunk/Documentation/usb/callbacks.txt +++ b/trunk/Documentation/usb/callbacks.txt @@ -95,9 +95,11 @@ pre_reset int (*pre_reset)(struct usb_interface *intf); -Another driver or user space is triggering a reset on the device which -contains the interface passed as an argument. Cease IO and save any -device state you need to restore. +A driver or user space is triggering a reset on the device which +contains the interface passed as an argument. Cease IO, wait for all +outstanding URBs to complete, and save any device state you need to +restore. No more URBs may be submitted until the post_reset method +is called. If you need to allocate memory here, use GFP_NOIO or GFP_ATOMIC, if you are in atomic context. diff --git a/trunk/Documentation/usb/linux-cdc-acm.inf b/trunk/Documentation/usb/linux-cdc-acm.inf index 612e7220fb29..37a02ce54841 100644 --- a/trunk/Documentation/usb/linux-cdc-acm.inf +++ b/trunk/Documentation/usb/linux-cdc-acm.inf @@ -90,10 +90,10 @@ ServiceBinary=%12%\USBSER.sys [SourceDisksFiles] [SourceDisksNames] [DeviceList] -%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02 +%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02 [DeviceList.NTamd64] -%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02 +%DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02 ;------------------------------------------------------------------------------ diff --git a/trunk/Documentation/usb/linux.inf b/trunk/Documentation/usb/linux.inf index 4dee95851224..4ffa715b0ae8 100644 --- a/trunk/Documentation/usb/linux.inf +++ b/trunk/Documentation/usb/linux.inf @@ -18,15 +18,15 @@ DriverVer = 06/21/2006,6.0.6000.16384 ; Decoration for x86 architecture [LinuxDevices.NTx86] -%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 +%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ; Decoration for x64 architecture [LinuxDevices.NTamd64] -%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 +%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ; Decoration for ia64 architecture [LinuxDevices.NTia64] -%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 +%LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ;@@@ This is the common setting for setup [ControlFlags] diff --git a/trunk/Documentation/vgaarbiter.txt b/trunk/Documentation/vgaarbiter.txt index 43a9b0694fdd..b7d401e0eae9 100644 --- a/trunk/Documentation/vgaarbiter.txt +++ b/trunk/Documentation/vgaarbiter.txt @@ -14,11 +14,10 @@ the legacy VGA arbitration task (besides other bus management tasks) when more than one legacy device co-exists on the same machine. But the problem happens when these devices are trying to be accessed by different userspace clients (e.g. two server in parallel). Their address assignments conflict. Moreover, -ideally, being an userspace application, it is not the role of the the X -server to control bus resources. Therefore an arbitration scheme outside of -the X server is needed to control the sharing of these resources. This -document introduces the operation of the VGA arbiter implemented for Linux -kernel. +ideally, being a userspace application, it is not the role of the X server to +control bus resources. Therefore an arbitration scheme outside of the X server +is needed to control the sharing of these resources. This document introduces +the operation of the VGA arbiter implemented for the Linux kernel. ---------------------------------------------------------------------------- @@ -39,7 +38,7 @@ I.1 vgaarb The vgaarb is a module of the Linux Kernel. When it is initially loaded, it scans all PCI devices and adds the VGA ones inside the arbitration. The arbiter then enables/disables the decoding on different devices of the VGA -legacy instructions. Device which do not want/need to use the arbiter may +legacy instructions. Devices which do not want/need to use the arbiter may explicitly tell it by calling vga_set_legacy_decoding(). The kernel exports a char device interface (/dev/vga_arbiter) to the clients, @@ -95,8 +94,8 @@ In the case of devices hot-{un,}plugged, there is a hook - pci_notify() - to notify them being added/removed in the system and automatically added/removed in the arbiter. -There's also a in-kernel API of the arbiter in the case of DRM, vgacon and -others which may use the arbiter. +There is also an in-kernel API of the arbiter in case DRM, vgacon, or other +drivers want to use it. I.2 libpciaccess @@ -117,9 +116,8 @@ Besides it, in pci_system were added: struct pci_device *vga_default_dev; -The vga_count is usually need to keep informed how many cards are being -arbitrated, so for instance if there's only one then it can totally escape the -scheme. +The vga_count is used to track how many cards are being arbitrated, so for +instance, if there is only one card, then it can completely escape arbitration. These functions below acquire VGA resources for the given card and mark those diff --git a/trunk/Documentation/video4linux/CARDLIST.em28xx b/trunk/Documentation/video4linux/CARDLIST.em28xx index 31b485723bc5..9aae449440dc 100644 --- a/trunk/Documentation/video4linux/CARDLIST.em28xx +++ b/trunk/Documentation/video4linux/CARDLIST.em28xx @@ -54,7 +54,7 @@ 53 -> Pinnacle Hybrid Pro (em2881) 54 -> Kworld VS-DVB-T 323UR (em2882) [eb1a:e323] 55 -> Terratec Cinnergy Hybrid T USB XS (em2882) (em2882) [0ccd:005e,0ccd:0042] - 56 -> Pinnacle Hybrid Pro (2) (em2882) [2304:0226] + 56 -> Pinnacle Hybrid Pro (330e) (em2882) [2304:0226] 57 -> Kworld PlusTV HD Hybrid 330 (em2883) [eb1a:a316] 58 -> Compro VideoMate ForYou/Stereo (em2820/em2840) [185b:2041] 60 -> Hauppauge WinTV HVR 850 (em2883) [2040:651f] diff --git a/trunk/Documentation/video4linux/Zoran b/trunk/Documentation/video4linux/Zoran index c40e3bab08fa..9ed629d4874b 100644 --- a/trunk/Documentation/video4linux/Zoran +++ b/trunk/Documentation/video4linux/Zoran @@ -130,7 +130,6 @@ Card number: 4 Note: No module for the mse3000 is available yet Note: No module for the vpx3224 is available yet -Note: use encoder=X or decoder=X for non-default i2c chips =========================== diff --git a/trunk/Documentation/video4linux/gspca.txt b/trunk/Documentation/video4linux/gspca.txt index 5c542e60f51d..5bfa9a777d26 100644 --- a/trunk/Documentation/video4linux/gspca.txt +++ b/trunk/Documentation/video4linux/gspca.txt @@ -275,6 +275,7 @@ pac7302 093a:2629 Genious iSlim 300 pac7302 093a:262a Webcam 300k pac7302 093a:262c Philips SPC 230 NC jeilinj 0979:0280 Sakar 57379 +jeilinj 0979:0280 Sportscam DV15 zc3xx 0ac8:0302 Z-star Vimicro zc0302 vc032x 0ac8:0321 Vimicro generic vc0321 vc032x 0ac8:0323 Vimicro Vc0323 diff --git a/trunk/Documentation/video4linux/uvcvideo.txt b/trunk/Documentation/video4linux/uvcvideo.txt new file mode 100644 index 000000000000..848d620dcc5c --- /dev/null +++ b/trunk/Documentation/video4linux/uvcvideo.txt @@ -0,0 +1,239 @@ +Linux USB Video Class (UVC) driver +================================== + +This file documents some driver-specific aspects of the UVC driver, such as +driver-specific ioctls and implementation notes. + +Questions and remarks can be sent to the Linux UVC development mailing list at +linux-uvc-devel@lists.berlios.de. + + +Extension Unit (XU) support +--------------------------- + +1. Introduction + +The UVC specification allows for vendor-specific extensions through extension +units (XUs). The Linux UVC driver supports extension unit controls (XU controls) +through two separate mechanisms: + + - through mappings of XU controls to V4L2 controls + - through a driver-specific ioctl interface + +The first one allows generic V4L2 applications to use XU controls by mapping +certain XU controls onto V4L2 controls, which then show up during ordinary +control enumeration. + +The second mechanism requires uvcvideo-specific knowledge for the application to +access XU controls but exposes the entire UVC XU concept to user space for +maximum flexibility. + +Both mechanisms complement each other and are described in more detail below. + + +2. Control mappings + +The UVC driver provides an API for user space applications to define so-called +control mappings at runtime. These allow for individual XU controls or byte +ranges thereof to be mapped to new V4L2 controls. Such controls appear and +function exactly like normal V4L2 controls (i.e. the stock controls, such as +brightness, contrast, etc.). However, reading or writing of such a V4L2 controls +triggers a read or write of the associated XU control. + +The ioctl used to create these control mappings is called UVCIOC_CTRL_MAP. +Previous driver versions (before 0.2.0) required another ioctl to be used +beforehand (UVCIOC_CTRL_ADD) to pass XU control information to the UVC driver. +This is no longer necessary as newer uvcvideo versions query the information +directly from the device. + +For details on the UVCIOC_CTRL_MAP ioctl please refer to the section titled +"IOCTL reference" below. + + +3. Driver specific XU control interface + +For applications that need to access XU controls directly, e.g. for testing +purposes, firmware upload, or accessing binary controls, a second mechanism to +access XU controls is provided in the form of a driver-specific ioctl, namely +UVCIOC_CTRL_QUERY. + +A call to this ioctl allows applications to send queries to the UVC driver that +directly map to the low-level UVC control requests. + +In order to make such a request the UVC unit ID of the control's extension unit +and the control selector need to be known. This information either needs to be +hardcoded in the application or queried using other ways such as by parsing the +UVC descriptor or, if available, using the media controller API to enumerate a +device's entities. + +Unless the control size is already known it is necessary to first make a +UVC_GET_LEN requests in order to be able to allocate a sufficiently large buffer +and set the buffer size to the correct value. Similarly, to find out whether +UVC_GET_CUR or UVC_SET_CUR are valid requests for a given control, a +UVC_GET_INFO request should be made. The bits 0 (GET supported) and 1 (SET +supported) of the resulting byte indicate which requests are valid. + +With the addition of the UVCIOC_CTRL_QUERY ioctl the UVCIOC_CTRL_GET and +UVCIOC_CTRL_SET ioctls have become obsolete since their functionality is a +subset of the former ioctl. For the time being they are still supported but +application developers are encouraged to use UVCIOC_CTRL_QUERY instead. + +For details on the UVCIOC_CTRL_QUERY ioctl please refer to the section titled +"IOCTL reference" below. + + +4. Security + +The API doesn't currently provide a fine-grained access control facility. The +UVCIOC_CTRL_ADD and UVCIOC_CTRL_MAP ioctls require super user permissions. + +Suggestions on how to improve this are welcome. + + +5. Debugging + +In order to debug problems related to XU controls or controls in general it is +recommended to enable the UVC_TRACE_CONTROL bit in the module parameter 'trace'. +This causes extra output to be written into the system log. + + +6. IOCTL reference + +---- UVCIOC_CTRL_MAP - Map a UVC control to a V4L2 control ---- + +Argument: struct uvc_xu_control_mapping + +Description: + This ioctl creates a mapping between a UVC control or part of a UVC + control and a V4L2 control. Once mappings are defined, userspace + applications can access vendor-defined UVC control through the V4L2 + control API. + + To create a mapping, applications fill the uvc_xu_control_mapping + structure with information about an existing UVC control defined with + UVCIOC_CTRL_ADD and a new V4L2 control. + + A UVC control can be mapped to several V4L2 controls. For instance, + a UVC pan/tilt control could be mapped to separate pan and tilt V4L2 + controls. The UVC control is divided into non overlapping fields using + the 'size' and 'offset' fields and are then independantly mapped to + V4L2 control. + + For signed integer V4L2 controls the data_type field should be set to + UVC_CTRL_DATA_TYPE_SIGNED. Other values are currently ignored. + +Return value: + On success 0 is returned. On error -1 is returned and errno is set + appropriately. + + ENOMEM + Not enough memory to perform the operation. + EPERM + Insufficient privileges (super user privileges are required). + EINVAL + No such UVC control. + EOVERFLOW + The requested offset and size would overflow the UVC control. + EEXIST + Mapping already exists. + +Data types: + * struct uvc_xu_control_mapping + + __u32 id V4L2 control identifier + __u8 name[32] V4L2 control name + __u8 entity[16] UVC extension unit GUID + __u8 selector UVC control selector + __u8 size V4L2 control size (in bits) + __u8 offset V4L2 control offset (in bits) + enum v4l2_ctrl_type + v4l2_type V4L2 control type + enum uvc_control_data_type + data_type UVC control data type + struct uvc_menu_info + *menu_info Array of menu entries (for menu controls only) + __u32 menu_count Number of menu entries (for menu controls only) + + * struct uvc_menu_info + + __u32 value Menu entry value used by the device + __u8 name[32] Menu entry name + + + * enum uvc_control_data_type + + UVC_CTRL_DATA_TYPE_RAW Raw control (byte array) + UVC_CTRL_DATA_TYPE_SIGNED Signed integer + UVC_CTRL_DATA_TYPE_UNSIGNED Unsigned integer + UVC_CTRL_DATA_TYPE_BOOLEAN Boolean + UVC_CTRL_DATA_TYPE_ENUM Enumeration + UVC_CTRL_DATA_TYPE_BITMASK Bitmask + + +---- UVCIOC_CTRL_QUERY - Query a UVC XU control ---- + +Argument: struct uvc_xu_control_query + +Description: + This ioctl queries a UVC XU control identified by its extension unit ID + and control selector. + + There are a number of different queries available that closely + correspond to the low-level control requests described in the UVC + specification. These requests are: + + UVC_GET_CUR + Obtain the current value of the control. + UVC_GET_MIN + Obtain the minimum value of the control. + UVC_GET_MAX + Obtain the maximum value of the control. + UVC_GET_DEF + Obtain the default value of the control. + UVC_GET_RES + Query the resolution of the control, i.e. the step size of the + allowed control values. + UVC_GET_LEN + Query the size of the control in bytes. + UVC_GET_INFO + Query the control information bitmap, which indicates whether + get/set requests are supported. + UVC_SET_CUR + Update the value of the control. + + Applications must set the 'size' field to the correct length for the + control. Exceptions are the UVC_GET_LEN and UVC_GET_INFO queries, for + which the size must be set to 2 and 1, respectively. The 'data' field + must point to a valid writable buffer big enough to hold the indicated + number of data bytes. + + Data is copied directly from the device without any driver-side + processing. Applications are responsible for data buffer formatting, + including little-endian/big-endian conversion. This is particularly + important for the result of the UVC_GET_LEN requests, which is always + returned as a little-endian 16-bit integer by the device. + +Return value: + On success 0 is returned. On error -1 is returned and errno is set + appropriately. + + ENOENT + The device does not support the given control or the specified + extension unit could not be found. + ENOBUFS + The specified buffer size is incorrect (too big or too small). + EINVAL + An invalid request code was passed. + EBADRQC + The given request is not supported by the given control. + EFAULT + The data pointer references an inaccessible memory area. + +Data types: + * struct uvc_xu_control_query + + __u8 unit Extension unit ID + __u8 selector Control selector + __u8 query Request code to send to the device + __u16 size Control data size (in bytes) + __u8 *data Control value diff --git a/trunk/Documentation/virtual/kvm/api.txt b/trunk/Documentation/virtual/kvm/api.txt index 9bef4e4cec50..42542eb802ca 100644 --- a/trunk/Documentation/virtual/kvm/api.txt +++ b/trunk/Documentation/virtual/kvm/api.txt @@ -175,7 +175,10 @@ Parameters: vcpu id (apic id on x86) Returns: vcpu fd on success, -1 on error This API adds a vcpu to a virtual machine. The vcpu id is a small integer -in the range [0, max_vcpus). +in the range [0, max_vcpus). You can use KVM_CAP_NR_VCPUS of the +KVM_CHECK_EXTENSION ioctl() to determine the value for max_vcpus at run-time. +If the KVM_CAP_NR_VCPUS does not exist, you should assume that max_vcpus is 4 +cpus max. 4.8 KVM_GET_DIRTY_LOG (vm ioctl) @@ -261,7 +264,7 @@ See KVM_GET_REGS for the data structure. 4.13 KVM_GET_SREGS Capability: basic -Architectures: x86 +Architectures: x86, ppc Type: vcpu ioctl Parameters: struct kvm_sregs (out) Returns: 0 on success, -1 on error @@ -279,6 +282,8 @@ struct kvm_sregs { __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; }; +/* ppc -- see arch/powerpc/include/asm/kvm.h */ + interrupt_bitmap is a bitmap of pending external interrupts. At most one bit may be set. This interrupt has been acknowledged by the APIC but not yet injected into the cpu core. @@ -286,7 +291,7 @@ but not yet injected into the cpu core. 4.14 KVM_SET_SREGS Capability: basic -Architectures: x86 +Architectures: x86, ppc Type: vcpu ioctl Parameters: struct kvm_sregs (in) Returns: 0 on success, -1 on error @@ -1263,6 +1268,29 @@ struct kvm_assigned_msix_entry { __u16 padding[3]; }; +4.54 KVM_SET_TSC_KHZ + +Capability: KVM_CAP_TSC_CONTROL +Architectures: x86 +Type: vcpu ioctl +Parameters: virtual tsc_khz +Returns: 0 on success, -1 on error + +Specifies the tsc frequency for the virtual machine. The unit of the +frequency is KHz. + +4.55 KVM_GET_TSC_KHZ + +Capability: KVM_CAP_GET_TSC_KHZ +Architectures: x86 +Type: vcpu ioctl +Parameters: none +Returns: virtual tsc-khz on success, negative value on error + +Returns the tsc frequency of the guest. The unit of the return value is +KHz. If the host has unstable tsc this ioctl returns -EIO instead as an +error. + 5. The kvm_run structure Application code obtains a pointer to the kvm_run structure by diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 49a0bf3a5b97..0b415248ae25 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -548,10 +548,11 @@ S: Maintained F: sound/aoa/ APM DRIVER -L: linux-laptop@vger.kernel.org -S: Orphan +M: Jiri Kosina +S: Odd fixes F: arch/x86/kernel/apm_32.c F: include/linux/apm_bios.h +F: drivers/char/apm-emulation.c APPLE BCM5974 MULTITOUCH DRIVER M: Henrik Rydberg @@ -729,7 +730,7 @@ ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6) M: Daniel Ribeiro M: Stefan Schmidt M: Harald Welte -L: openezx-devel@lists.openezx.org (subscribers-only) +L: openezx-devel@lists.openezx.org (moderated for non-subscribers) W: http://www.openezx.org/ S: Maintained T: topgit git://git.openezx.org/openezx.git @@ -4252,7 +4253,7 @@ F: include/linux/isicom.h MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER M: Felipe Balbi L: linux-usb@vger.kernel.org -T: git git://gitorious.org/usb/usb.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git S: Maintained F: drivers/usb/musb/ @@ -4269,6 +4270,13 @@ M: Tim Hockin S: Maintained F: drivers/net/natsemi.c +NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER +M: Daniel Mack +S: Maintained +L: alsa-devel@alsa-project.org +W: http://www.native-instruments.com +F: sound/usb/caiaq/ + NCP FILESYSTEM M: Petr Vandrovec S: Odd Fixes @@ -4580,6 +4588,7 @@ M: Felipe Balbi M: David Brownell L: linux-usb@vger.kernel.org L: linux-omap@vger.kernel.org +T: git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git S: Maintained F: drivers/usb/*/*omap* F: arch/arm/*omap*/usb* @@ -5868,7 +5877,7 @@ F: include/sound/ F: sound/ SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC) -M: Liam Girdwood +M: Liam Girdwood M: Mark Brown T: git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git L: alsa-devel@alsa-project.org (moderated for non-subscribers) @@ -6119,7 +6128,7 @@ F: drivers/mmc/host/tifm_sd.c F: include/linux/tifm.h TI TWL4030 SERIES SOC CODEC DRIVER -M: Peter Ujfalusi +M: Peter Ujfalusi L: alsa-devel@alsa-project.org (moderated for non-subscribers) S: Maintained F: sound/soc/codecs/twl4030* @@ -6222,6 +6231,7 @@ TRIVIAL PATCHES M: Jiri Kosina T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git S: Maintained +K: ^Subject:.*(?i)trivial TTY LAYER M: Greg Kroah-Hartman @@ -6763,7 +6773,7 @@ F: drivers/scsi/vmw_pvscsi.c F: drivers/scsi/vmw_pvscsi.h VOLTAGE AND CURRENT REGULATOR FRAMEWORK -M: Liam Girdwood +M: Liam Girdwood M: Mark Brown W: http://opensource.wolfsonmicro.com/node/15 W: http://www.slimlogic.co.uk/?p=48 diff --git a/trunk/arch/Kconfig b/trunk/arch/Kconfig index f78c2be4242b..8d24bacaa61e 100644 --- a/trunk/arch/Kconfig +++ b/trunk/arch/Kconfig @@ -144,9 +144,6 @@ config HAVE_CLK config HAVE_DMA_API_DEBUG bool -config HAVE_DEFAULT_NO_SPIN_MUTEXES - bool - config HAVE_HW_BREAKPOINT bool depends on PERF_EVENTS diff --git a/trunk/arch/alpha/kernel/vmlinux.lds.S b/trunk/arch/alpha/kernel/vmlinux.lds.S index 3d890a98a08b..f937ad123852 100644 --- a/trunk/arch/alpha/kernel/vmlinux.lds.S +++ b/trunk/arch/alpha/kernel/vmlinux.lds.S @@ -39,7 +39,7 @@ SECTIONS __init_begin = ALIGN(PAGE_SIZE); INIT_TEXT_SECTION(PAGE_SIZE) INIT_DATA_SECTION(16) - PERCPU(L1_CACHE_BYTES, PAGE_SIZE) + PERCPU_SECTION(L1_CACHE_BYTES) /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page needed for the THREAD_SIZE aligned init_task gets freed after init */ . = ALIGN(THREAD_SIZE); diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 377a7a595b08..7275009686e6 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -197,15 +197,21 @@ config ARM_PATCH_PHYS_VIRT depends on !XIP_KERNEL && MMU depends on !ARCH_REALVIEW || !SPARSEMEM help - Patch phys-to-virt translation functions at runtime according to - the position of the kernel in system memory. + Patch phys-to-virt and virt-to-phys translation functions at + boot and module load time according to the position of the + kernel in system memory. - This can only be used with non-XIP with MMU kernels where - the base of physical memory is at a 16MB boundary. + This can only be used with non-XIP MMU kernels where the base + of physical memory is at a 16MB boundary, or theoretically 64K + for the MSM machine class. config ARM_PATCH_PHYS_VIRT_16BIT def_bool y depends on ARM_PATCH_PHYS_VIRT && ARCH_MSM + help + This option extends the physical to virtual translation patching + to allow physical memory down to a theoretical minimum of 64K + boundaries. source "init/Kconfig" @@ -297,6 +303,7 @@ config ARCH_BCMRING depends on MMU select CPU_V6 select ARM_AMBA + select ARM_TIMER_SP804 select CLKDEV_LOOKUP select GENERIC_CLOCKEVENTS select ARCH_WANT_OPTIONAL_GPIOLIB @@ -366,6 +373,7 @@ config ARCH_MXC select GENERIC_CLOCKEVENTS select ARCH_REQUIRE_GPIOLIB select CLKDEV_LOOKUP + select CLKSRC_MMIO select HAVE_SCHED_CLOCK help Support for Freescale MXC/iMX-based family of processors @@ -375,21 +383,13 @@ config ARCH_MXS select GENERIC_CLOCKEVENTS select ARCH_REQUIRE_GPIOLIB select CLKDEV_LOOKUP + select CLKSRC_MMIO help Support for Freescale MXS-based family of processors -config ARCH_STMP3XXX - bool "Freescale STMP3xxx" - select CPU_ARM926T - select CLKDEV_LOOKUP - select ARCH_REQUIRE_GPIOLIB - select GENERIC_CLOCKEVENTS - select USB_ARCH_HAS_EHCI - help - Support for systems based on the Freescale 3xxx CPUs. - config ARCH_NETX bool "Hilscher NetX based" + select CLKSRC_MMIO select CPU_ARM926T select ARM_VIC select GENERIC_CLOCKEVENTS @@ -457,6 +457,7 @@ config ARCH_IXP2000 config ARCH_IXP4XX bool "IXP4xx-based" depends on MMU + select CLKSRC_MMIO select CPU_XSCALE select GENERIC_GPIO select GENERIC_CLOCKEVENTS @@ -468,7 +469,7 @@ config ARCH_IXP4XX config ARCH_DOVE bool "Marvell Dove" - select CPU_V6K + select CPU_V7 select PCI select ARCH_REQUIRE_GPIOLIB select GENERIC_CLOCKEVENTS @@ -497,6 +498,7 @@ config ARCH_LOKI config ARCH_LPC32XX bool "NXP LPC32XX" + select CLKSRC_MMIO select CPU_ARM926T select ARCH_REQUIRE_GPIOLIB select HAVE_IDE @@ -554,23 +556,12 @@ config ARCH_KS8695 Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based System-on-Chip devices. -config ARCH_NS9XXX - bool "NetSilicon NS9xxx" - select CPU_ARM926T - select GENERIC_GPIO - select GENERIC_CLOCKEVENTS - select HAVE_CLK - help - Say Y here if you intend to run this kernel on a NetSilicon NS9xxx - System. - - - config ARCH_W90X900 bool "Nuvoton W90X900 CPU" select CPU_ARM926T select ARCH_REQUIRE_GPIOLIB select CLKDEV_LOOKUP + select CLKSRC_MMIO select GENERIC_CLOCKEVENTS help Support for Nuvoton (Winbond logic dept.) ARM9 processor, @@ -592,6 +583,7 @@ config ARCH_NUC93X config ARCH_TEGRA bool "NVIDIA Tegra" select CLKDEV_LOOKUP + select CLKSRC_MMIO select GENERIC_TIME select GENERIC_CLOCKEVENTS select GENERIC_GPIO @@ -617,6 +609,7 @@ config ARCH_PXA select ARCH_MTD_XIP select ARCH_HAS_CPUFREQ select CLKDEV_LOOKUP + select CLKSRC_MMIO select ARCH_REQUIRE_GPIOLIB select GENERIC_CLOCKEVENTS select HAVE_SCHED_CLOCK @@ -667,6 +660,7 @@ config ARCH_RPC config ARCH_SA1100 bool "SA1100-based" + select CLKSRC_MMIO select CPU_SA1100 select ISA select ARCH_SPARSEMEM_ENABLE @@ -803,6 +797,7 @@ config ARCH_SHARK config ARCH_TCC_926 bool "Telechips TCC ARM926-based systems" + select CLKSRC_MMIO select CPU_ARM926T select HAVE_CLK select CLKDEV_LOOKUP @@ -813,6 +808,7 @@ config ARCH_TCC_926 config ARCH_U300 bool "ST-Ericsson U300 Series" depends on MMU + select CLKSRC_MMIO select CPU_ARM926T select HAVE_SCHED_CLOCK select HAVE_TCM @@ -854,6 +850,7 @@ config ARCH_DAVINCI select HAVE_IDE select CLKDEV_LOOKUP select GENERIC_ALLOCATOR + select GENERIC_IRQ_CHIP select ARCH_HAS_HOLES_MEMORYMODEL help Support for TI's DaVinci platform. @@ -874,6 +871,7 @@ config PLAT_SPEAR select ARM_AMBA select ARCH_REQUIRE_GPIOLIB select CLKDEV_LOOKUP + select CLKSRC_MMIO select GENERIC_CLOCKEVENTS select HAVE_CLK help @@ -951,8 +949,6 @@ source "arch/arm/mach-netx/Kconfig" source "arch/arm/mach-nomadik/Kconfig" source "arch/arm/plat-nomadik/Kconfig" -source "arch/arm/mach-ns9xxx/Kconfig" - source "arch/arm/mach-nuc93x/Kconfig" source "arch/arm/plat-omap/Kconfig" @@ -1005,8 +1001,6 @@ source "arch/arm/mach-exynos4/Kconfig" source "arch/arm/mach-shmobile/Kconfig" -source "arch/arm/plat-stmp3xxx/Kconfig" - source "arch/arm/mach-tegra/Kconfig" source "arch/arm/mach-u300/Kconfig" @@ -1033,6 +1027,8 @@ config PLAT_IOP config PLAT_ORION bool + select CLKSRC_MMIO + select GENERIC_IRQ_CHIP select HAVE_SCHED_CLOCK config PLAT_PXA @@ -1043,6 +1039,7 @@ config PLAT_VERSATILE config ARM_TIMER_SP804 bool + select CLKSRC_MMIO source arch/arm/mm/Kconfig @@ -1318,8 +1315,7 @@ menu "Kernel Features" source "kernel/time/Kconfig" config SMP - bool "Symmetric Multi-Processing (EXPERIMENTAL)" - depends on EXPERIMENTAL + bool "Symmetric Multi-Processing" depends on CPU_V6K || CPU_V7 depends on GENERIC_CLOCKEVENTS depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \ @@ -1521,8 +1517,8 @@ config ARCH_SELECT_MEMORY_MODEL def_bool ARCH_SPARSEMEM_ENABLE config HIGHMEM - bool "High Memory Support (EXPERIMENTAL)" - depends on MMU && EXPERIMENTAL + bool "High Memory Support" + depends on MMU help The address space of ARM processors is only 4 Gigabytes large and it has to accommodate user address space, kernel address @@ -1742,16 +1738,31 @@ config CMDLINE time by entering them here. As a minimum, you should specify the memory size and the root device (e.g., mem=64M root=/dev/nfs). +choice + prompt "Kernel command line type" if CMDLINE != "" + default CMDLINE_FROM_BOOTLOADER + +config CMDLINE_FROM_BOOTLOADER + bool "Use bootloader kernel arguments if available" + help + Uses the command-line options passed by the boot loader. If + the boot loader doesn't provide any, the default kernel command + string provided in CMDLINE will be used. + +config CMDLINE_EXTEND + bool "Extend bootloader kernel arguments" + help + The command-line arguments provided by the boot loader will be + appended to the default kernel command string. + config CMDLINE_FORCE bool "Always use the default kernel command string" - depends on CMDLINE != "" help Always use the default kernel command string, even if the boot loader passes other arguments to the kernel. This is useful if you cannot or don't want to change the command-line options your boot loader passes to the kernel. - - If unsure, say N. +endchoice config XIP_KERNEL bool "Kernel Execute-In-Place from ROM" @@ -2010,7 +2021,7 @@ menu "Power management options" source "kernel/power/Kconfig" config ARCH_SUSPEND_POSSIBLE - depends on !ARCH_S5P64X0 && !ARCH_S5P6442 + depends on !ARCH_S5P64X0 && !ARCH_S5P6442 && !ARCH_S5PC100 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE def_bool y diff --git a/trunk/arch/arm/Makefile b/trunk/arch/arm/Makefile index c7d321a3d95d..25750bcb3397 100644 --- a/trunk/arch/arm/Makefile +++ b/trunk/arch/arm/Makefile @@ -158,13 +158,11 @@ machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 machine-$(CONFIG_ARCH_MX1) := imx machine-$(CONFIG_ARCH_MX2) := imx machine-$(CONFIG_ARCH_MX25) := imx -machine-$(CONFIG_ARCH_MX3) := mx3 +machine-$(CONFIG_ARCH_MX3) := imx machine-$(CONFIG_ARCH_MX5) := mx5 -machine-$(CONFIG_ARCH_MXC91231) := mxc91231 machine-$(CONFIG_ARCH_MXS) := mxs machine-$(CONFIG_ARCH_NETX) := netx machine-$(CONFIG_ARCH_NOMADIK) := nomadik -machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx machine-$(CONFIG_ARCH_OMAP1) := omap1 machine-$(CONFIG_ARCH_OMAP2) := omap2 machine-$(CONFIG_ARCH_OMAP3) := omap2 @@ -185,8 +183,6 @@ machine-$(CONFIG_ARCH_EXYNOS4) := exynos4 machine-$(CONFIG_ARCH_SA1100) := sa1100 machine-$(CONFIG_ARCH_SHARK) := shark machine-$(CONFIG_ARCH_SHMOBILE) := shmobile -machine-$(CONFIG_ARCH_STMP378X) := stmp378x -machine-$(CONFIG_ARCH_STMP37XX) := stmp37xx machine-$(CONFIG_ARCH_TCC8K) := tcc8k machine-$(CONFIG_ARCH_TEGRA) := tegra machine-$(CONFIG_ARCH_U300) := u300 @@ -207,7 +203,6 @@ machine-$(CONFIG_MACH_SPEAR600) := spear6xx plat-$(CONFIG_ARCH_MXC) := mxc plat-$(CONFIG_ARCH_OMAP) := omap plat-$(CONFIG_ARCH_S3C64XX) := samsung -plat-$(CONFIG_ARCH_STMP3XXX) := stmp3xxx plat-$(CONFIG_ARCH_TCC_926) := tcc plat-$(CONFIG_PLAT_IOP) := iop plat-$(CONFIG_PLAT_NOMADIK) := nomadik diff --git a/trunk/arch/arm/boot/compressed/Makefile b/trunk/arch/arm/boot/compressed/Makefile index 0c6852d93506..23aad0722303 100644 --- a/trunk/arch/arm/boot/compressed/Makefile +++ b/trunk/arch/arm/boot/compressed/Makefile @@ -98,8 +98,6 @@ endif ccflags-y := -fpic -fno-builtin asflags-y := -Wa,-march=all -# Provide size of uncompressed kernel to the decompressor via a linker symbol. -LDFLAGS_vmlinux = --defsym _image_size=$(shell stat -c "%s" $(obj)/../Image) # Supply ZRELADDR to the decompressor via a linker symbol. ifneq ($(CONFIG_AUTO_ZRELADDR),y) LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR) @@ -122,10 +120,23 @@ lib1funcs = $(obj)/lib1funcs.o $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE $(call cmd,shipped) +# We need to prevent any GOTOFF relocs being used with references +# to symbols in the .bss section since we cannot relocate them +# independently from the rest at run time. This can be achieved by +# ensuring that no private .bss symbols exist, as global symbols +# always have a GOT entry which is what we need. +# The .data section is already discarded by the linker script so no need +# to bother about it here. +check_for_bad_syms = \ +bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \ +[ -z "$$bad_syms" ] || \ + ( echo "following symbols must have non local/private scope:" >&2; \ + echo "$$bad_syms" >&2; rm -f $@; false ) + $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \ $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE $(call if_changed,ld) - @: + @$(check_for_bad_syms) $(obj)/piggy.$(suffix_y): $(obj)/../Image FORCE $(call if_changed,$(suffix_y)) diff --git a/trunk/arch/arm/boot/compressed/decompress.c b/trunk/arch/arm/boot/compressed/decompress.c index 4c72a97bc3e1..07be5a2f8302 100644 --- a/trunk/arch/arm/boot/compressed/decompress.c +++ b/trunk/arch/arm/boot/compressed/decompress.c @@ -44,7 +44,7 @@ extern void error(char *); #include "../../../../lib/decompress_unlzma.c" #endif -void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)) +int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)) { - decompress(input, len, NULL, NULL, output, NULL, error); + return decompress(input, len, NULL, NULL, output, NULL, error); } diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index 49f5b2eaaa87..f9da41921c52 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -179,7 +179,7 @@ not_angel: bl cache_on restart: adr r0, LC0 - ldmia r0, {r1, r2, r3, r6, r9, r11, r12} + ldmia r0, {r1, r2, r3, r6, r10, r11, r12} ldr sp, [r0, #28] /* @@ -188,6 +188,20 @@ restart: adr r0, LC0 */ sub r0, r0, r1 @ calculate the delta offset add r6, r6, r0 @ _edata + add r10, r10, r0 @ inflated kernel size location + + /* + * The kernel build system appends the size of the + * decompressed kernel at the end of the compressed data + * in little-endian form. + */ + ldrb r9, [r10, #0] + ldrb lr, [r10, #1] + orr r9, r9, lr, lsl #8 + ldrb lr, [r10, #2] + ldrb r10, [r10, #3] + orr r9, r9, lr, lsl #16 + orr r9, r9, r10, lsl #24 #ifndef CONFIG_ZBOOT_ROM /* malloc space is above the relocated stack (64k max) */ @@ -347,10 +361,10 @@ LC0: .word LC0 @ r1 .word __bss_start @ r2 .word _end @ r3 .word _edata @ r6 - .word _image_size @ r9 + .word input_data_end - 4 @ r10 (inflated size location) .word _got_start @ r11 .word _got_end @ ip - .word user_stack_end @ sp + .word .L_user_stack_end @ sp .size LC0, . - LC0 #ifdef CONFIG_ARCH_RPC @@ -459,7 +473,11 @@ __setup_mmu: sub r3, r4, #16384 @ Page directory size orr r1, r1, #3 << 10 add r2, r3, #16384 1: cmp r1, r9 @ if virt > start of RAM +#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH + orrhs r1, r1, #0x08 @ set cacheable +#else orrhs r1, r1, #0x0c @ set cacheable, bufferable +#endif cmp r1, r10 @ if virt > end of RAM bichs r1, r1, #0x0c @ clear cacheable, bufferable str r1, [r0], #4 @ 1:1 mapping @@ -484,6 +502,12 @@ __setup_mmu: sub r3, r4, #16384 @ Page directory size mov pc, lr ENDPROC(__setup_mmu) +__arm926ejs_mmu_cache_on: +#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH + mov r0, #4 @ put dcache in WT mode + mcr p15, 7, r0, c15, c0, 0 +#endif + __armv4_mmu_cache_on: mov r12, lr #ifdef CONFIG_MMU @@ -665,6 +689,12 @@ proc_types: W(b) __armv4_mpu_cache_off W(b) __armv4_mpu_cache_flush + .word 0x41069260 @ ARM926EJ-S (v5TEJ) + .word 0xff0ffff0 + b __arm926ejs_mmu_cache_on + b __armv4_mmu_cache_off + b __armv5tej_mmu_cache_flush + .word 0x00007000 @ ARM7 IDs .word 0x0000f000 mov pc, lr @@ -747,12 +777,6 @@ proc_types: W(b) __armv4_mmu_cache_off W(b) __armv6_mmu_cache_flush - .word 0x560f5810 @ Marvell PJ4 ARMv6 - .word 0xff0ffff0 - W(b) __armv4_mmu_cache_on - W(b) __armv4_mmu_cache_off - W(b) __armv6_mmu_cache_flush - .word 0x000f0000 @ new CPU Id .word 0x000f0000 W(b) __armv7_mmu_cache_on @@ -1078,5 +1102,5 @@ reloc_code_end: .align .section ".stack", "aw", %nobits -user_stack: .space 4096 -user_stack_end: +.L_user_stack: .space 4096 +.L_user_stack_end: diff --git a/trunk/arch/arm/boot/compressed/misc.c b/trunk/arch/arm/boot/compressed/misc.c index 2df38263124c..832d37236c59 100644 --- a/trunk/arch/arm/boot/compressed/misc.c +++ b/trunk/arch/arm/boot/compressed/misc.c @@ -26,8 +26,6 @@ unsigned int __machine_arch_type; #include #include -#include - static void putstr(const char *ptr); extern void error(char *x); @@ -139,13 +137,12 @@ void *memcpy(void *__dest, __const void *__src, size_t __n) } /* - * gzip delarations + * gzip declarations */ extern char input_data[]; extern char input_data_end[]; unsigned char *output_data; -unsigned long output_ptr; unsigned long free_mem_ptr; unsigned long free_mem_end_ptr; @@ -170,15 +167,15 @@ asmlinkage void __div0(void) error("Attempting division by 0!"); } -extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)); +extern int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)); -unsigned long +void decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, unsigned long free_mem_ptr_end_p, int arch_id) { - unsigned char *tmp; + int ret; output_data = (unsigned char *)output_start; free_mem_ptr = free_mem_ptr_p; @@ -187,12 +184,11 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, arch_decomp_setup(); - tmp = (unsigned char *) (((unsigned long)input_data_end) - 4); - output_ptr = get_unaligned_le32(tmp); - putstr("Uncompressing Linux..."); - do_decompress(input_data, input_data_end - input_data, - output_data, error); - putstr(" done, booting the kernel.\n"); - return output_ptr; + ret = do_decompress(input_data, input_data_end - input_data, + output_data, error); + if (ret) + error("decompressor returned an error"); + else + putstr(" done, booting the kernel.\n"); } diff --git a/trunk/arch/arm/common/gic.c b/trunk/arch/arm/common/gic.c index f70ec7dadebb..4ddd0a6ac7ff 100644 --- a/trunk/arch/arm/common/gic.c +++ b/trunk/arch/arm/common/gic.c @@ -49,7 +49,7 @@ struct gic_chip_data { * Default make them NULL. */ struct irq_chip gic_arch_extn = { - .irq_ack = NULL, + .irq_eoi = NULL, .irq_mask = NULL, .irq_unmask = NULL, .irq_retrigger = NULL, @@ -84,21 +84,12 @@ static inline unsigned int gic_irq(struct irq_data *d) /* * Routines to acknowledge, disable and enable interrupts */ -static void gic_ack_irq(struct irq_data *d) -{ - spin_lock(&irq_controller_lock); - if (gic_arch_extn.irq_ack) - gic_arch_extn.irq_ack(d); - writel(gic_irq(d), gic_cpu_base(d) + GIC_CPU_EOI); - spin_unlock(&irq_controller_lock); -} - static void gic_mask_irq(struct irq_data *d) { u32 mask = 1 << (d->irq % 32); spin_lock(&irq_controller_lock); - writel(mask, gic_dist_base(d) + GIC_DIST_ENABLE_CLEAR + (gic_irq(d) / 32) * 4); + writel_relaxed(mask, gic_dist_base(d) + GIC_DIST_ENABLE_CLEAR + (gic_irq(d) / 32) * 4); if (gic_arch_extn.irq_mask) gic_arch_extn.irq_mask(d); spin_unlock(&irq_controller_lock); @@ -111,10 +102,21 @@ static void gic_unmask_irq(struct irq_data *d) spin_lock(&irq_controller_lock); if (gic_arch_extn.irq_unmask) gic_arch_extn.irq_unmask(d); - writel(mask, gic_dist_base(d) + GIC_DIST_ENABLE_SET + (gic_irq(d) / 32) * 4); + writel_relaxed(mask, gic_dist_base(d) + GIC_DIST_ENABLE_SET + (gic_irq(d) / 32) * 4); spin_unlock(&irq_controller_lock); } +static void gic_eoi_irq(struct irq_data *d) +{ + if (gic_arch_extn.irq_eoi) { + spin_lock(&irq_controller_lock); + gic_arch_extn.irq_eoi(d); + spin_unlock(&irq_controller_lock); + } + + writel_relaxed(gic_irq(d), gic_cpu_base(d) + GIC_CPU_EOI); +} + static int gic_set_type(struct irq_data *d, unsigned int type) { void __iomem *base = gic_dist_base(d); @@ -138,7 +140,7 @@ static int gic_set_type(struct irq_data *d, unsigned int type) if (gic_arch_extn.irq_set_type) gic_arch_extn.irq_set_type(d, type); - val = readl(base + GIC_DIST_CONFIG + confoff); + val = readl_relaxed(base + GIC_DIST_CONFIG + confoff); if (type == IRQ_TYPE_LEVEL_HIGH) val &= ~confmask; else if (type == IRQ_TYPE_EDGE_RISING) @@ -148,15 +150,15 @@ static int gic_set_type(struct irq_data *d, unsigned int type) * As recommended by the spec, disable the interrupt before changing * the configuration */ - if (readl(base + GIC_DIST_ENABLE_SET + enableoff) & enablemask) { - writel(enablemask, base + GIC_DIST_ENABLE_CLEAR + enableoff); + if (readl_relaxed(base + GIC_DIST_ENABLE_SET + enableoff) & enablemask) { + writel_relaxed(enablemask, base + GIC_DIST_ENABLE_CLEAR + enableoff); enabled = true; } - writel(val, base + GIC_DIST_CONFIG + confoff); + writel_relaxed(val, base + GIC_DIST_CONFIG + confoff); if (enabled) - writel(enablemask, base + GIC_DIST_ENABLE_SET + enableoff); + writel_relaxed(enablemask, base + GIC_DIST_ENABLE_SET + enableoff); spin_unlock(&irq_controller_lock); @@ -188,8 +190,8 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val, spin_lock(&irq_controller_lock); d->node = cpu; - val = readl(reg) & ~mask; - writel(val | bit, reg); + val = readl_relaxed(reg) & ~mask; + writel_relaxed(val | bit, reg); spin_unlock(&irq_controller_lock); return 0; @@ -218,11 +220,10 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) unsigned int cascade_irq, gic_irq; unsigned long status; - /* primary controller ack'ing */ - chip->irq_ack(&desc->irq_data); + chained_irq_enter(chip, desc); spin_lock(&irq_controller_lock); - status = readl(chip_data->cpu_base + GIC_CPU_INTACK); + status = readl_relaxed(chip_data->cpu_base + GIC_CPU_INTACK); spin_unlock(&irq_controller_lock); gic_irq = (status & 0x3ff); @@ -236,15 +237,14 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) generic_handle_irq(cascade_irq); out: - /* primary controller unmasking */ - chip->irq_unmask(&desc->irq_data); + chained_irq_exit(chip, desc); } static struct irq_chip gic_chip = { .name = "GIC", - .irq_ack = gic_ack_irq, .irq_mask = gic_mask_irq, .irq_unmask = gic_unmask_irq, + .irq_eoi = gic_eoi_irq, .irq_set_type = gic_set_type, .irq_retrigger = gic_retrigger, #ifdef CONFIG_SMP @@ -272,13 +272,13 @@ static void __init gic_dist_init(struct gic_chip_data *gic, cpumask |= cpumask << 8; cpumask |= cpumask << 16; - writel(0, base + GIC_DIST_CTRL); + writel_relaxed(0, base + GIC_DIST_CTRL); /* * Find out how many interrupts are supported. * The GIC only supports up to 1020 interrupt sources. */ - gic_irqs = readl(base + GIC_DIST_CTR) & 0x1f; + gic_irqs = readl_relaxed(base + GIC_DIST_CTR) & 0x1f; gic_irqs = (gic_irqs + 1) * 32; if (gic_irqs > 1020) gic_irqs = 1020; @@ -287,26 +287,26 @@ static void __init gic_dist_init(struct gic_chip_data *gic, * Set all global interrupts to be level triggered, active low. */ for (i = 32; i < gic_irqs; i += 16) - writel(0, base + GIC_DIST_CONFIG + i * 4 / 16); + writel_relaxed(0, base + GIC_DIST_CONFIG + i * 4 / 16); /* * Set all global interrupts to this CPU only. */ for (i = 32; i < gic_irqs; i += 4) - writel(cpumask, base + GIC_DIST_TARGET + i * 4 / 4); + writel_relaxed(cpumask, base + GIC_DIST_TARGET + i * 4 / 4); /* * Set priority on all global interrupts. */ for (i = 32; i < gic_irqs; i += 4) - writel(0xa0a0a0a0, base + GIC_DIST_PRI + i * 4 / 4); + writel_relaxed(0xa0a0a0a0, base + GIC_DIST_PRI + i * 4 / 4); /* * Disable all interrupts. Leave the PPI and SGIs alone * as these enables are banked registers. */ for (i = 32; i < gic_irqs; i += 32) - writel(0xffffffff, base + GIC_DIST_ENABLE_CLEAR + i * 4 / 32); + writel_relaxed(0xffffffff, base + GIC_DIST_ENABLE_CLEAR + i * 4 / 32); /* * Limit number of interrupts registered to the platform maximum @@ -319,12 +319,12 @@ static void __init gic_dist_init(struct gic_chip_data *gic, * Setup the Linux IRQ subsystem. */ for (i = irq_start; i < irq_limit; i++) { - irq_set_chip_and_handler(i, &gic_chip, handle_level_irq); + irq_set_chip_and_handler(i, &gic_chip, handle_fasteoi_irq); irq_set_chip_data(i, gic); set_irq_flags(i, IRQF_VALID | IRQF_PROBE); } - writel(1, base + GIC_DIST_CTRL); + writel_relaxed(1, base + GIC_DIST_CTRL); } static void __cpuinit gic_cpu_init(struct gic_chip_data *gic) @@ -337,17 +337,17 @@ static void __cpuinit gic_cpu_init(struct gic_chip_data *gic) * Deal with the banked PPI and SGI interrupts - disable all * PPI interrupts, ensure all SGI interrupts are enabled. */ - writel(0xffff0000, dist_base + GIC_DIST_ENABLE_CLEAR); - writel(0x0000ffff, dist_base + GIC_DIST_ENABLE_SET); + writel_relaxed(0xffff0000, dist_base + GIC_DIST_ENABLE_CLEAR); + writel_relaxed(0x0000ffff, dist_base + GIC_DIST_ENABLE_SET); /* * Set priority on PPI and SGI interrupts */ for (i = 0; i < 32; i += 4) - writel(0xa0a0a0a0, dist_base + GIC_DIST_PRI + i * 4 / 4); + writel_relaxed(0xa0a0a0a0, dist_base + GIC_DIST_PRI + i * 4 / 4); - writel(0xf0, base + GIC_CPU_PRIMASK); - writel(1, base + GIC_CPU_CTRL); + writel_relaxed(0xf0, base + GIC_CPU_PRIMASK); + writel_relaxed(1, base + GIC_CPU_CTRL); } void __init gic_init(unsigned int gic_nr, unsigned int irq_start, @@ -391,7 +391,13 @@ void gic_raise_softirq(const struct cpumask *mask, unsigned int irq) { unsigned long map = *cpus_addr(*mask); + /* + * Ensure that stores to Normal memory are visible to the + * other CPUs before issuing the IPI. + */ + dsb(); + /* this always happens on GIC0 */ - writel(map << 16 | irq, gic_data[0].dist_base + GIC_DIST_SOFTINT); + writel_relaxed(map << 16 | irq, gic_data[0].dist_base + GIC_DIST_SOFTINT); } #endif diff --git a/trunk/arch/arm/common/sa1111.c b/trunk/arch/arm/common/sa1111.c index a12b33c0dc42..9c49a46a2b7a 100644 --- a/trunk/arch/arm/common/sa1111.c +++ b/trunk/arch/arm/common/sa1111.c @@ -185,14 +185,6 @@ static struct sa1111_dev_info sa1111_devices[] = { }, }; -void __init sa1111_adjust_zones(unsigned long *size, unsigned long *holes) -{ - unsigned int sz = SZ_1M >> PAGE_SHIFT; - - size[1] = size[0] - sz; - size[0] = sz; -} - /* * SA1111 interrupt support. Since clearing an IRQ while there are * active IRQs causes the interrupt output to pulse, the upper levels diff --git a/trunk/arch/arm/common/timer-sp.c b/trunk/arch/arm/common/timer-sp.c index 6ef3342153b9..41df47875122 100644 --- a/trunk/arch/arm/common/timer-sp.c +++ b/trunk/arch/arm/common/timer-sp.c @@ -18,53 +18,67 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include #include #include +#include #include #include #include #include -/* - * These timers are currently always setup to be clocked at 1MHz. - */ -#define TIMER_FREQ_KHZ (1000) -#define TIMER_RELOAD (TIMER_FREQ_KHZ * 1000 / HZ) +static long __init sp804_get_clock_rate(const char *name) +{ + struct clk *clk; + long rate; + int err; + + clk = clk_get_sys("sp804", name); + if (IS_ERR(clk)) { + pr_err("sp804: %s clock not found: %d\n", name, + (int)PTR_ERR(clk)); + return PTR_ERR(clk); + } -static void __iomem *clksrc_base; + err = clk_enable(clk); + if (err) { + pr_err("sp804: %s clock failed to enable: %d\n", name, err); + clk_put(clk); + return err; + } -static cycle_t sp804_read(struct clocksource *cs) -{ - return ~readl(clksrc_base + TIMER_VALUE); -} + rate = clk_get_rate(clk); + if (rate < 0) { + pr_err("sp804: %s clock failed to get rate: %ld\n", name, rate); + clk_disable(clk); + clk_put(clk); + } -static struct clocksource clocksource_sp804 = { - .name = "timer3", - .rating = 200, - .read = sp804_read, - .mask = CLOCKSOURCE_MASK(32), - .flags = CLOCK_SOURCE_IS_CONTINUOUS, -}; + return rate; +} -void __init sp804_clocksource_init(void __iomem *base) +void __init sp804_clocksource_init(void __iomem *base, const char *name) { - struct clocksource *cs = &clocksource_sp804; + long rate = sp804_get_clock_rate(name); - clksrc_base = base; + if (rate < 0) + return; /* setup timer 0 as free-running clocksource */ - writel(0, clksrc_base + TIMER_CTRL); - writel(0xffffffff, clksrc_base + TIMER_LOAD); - writel(0xffffffff, clksrc_base + TIMER_VALUE); + writel(0, base + TIMER_CTRL); + writel(0xffffffff, base + TIMER_LOAD); + writel(0xffffffff, base + TIMER_VALUE); writel(TIMER_CTRL_32BIT | TIMER_CTRL_ENABLE | TIMER_CTRL_PERIODIC, - clksrc_base + TIMER_CTRL); + base + TIMER_CTRL); - clocksource_register_khz(cs, TIMER_FREQ_KHZ); + clocksource_mmio_init(base + TIMER_VALUE, name, + rate, 200, 32, clocksource_mmio_readl_down); } static void __iomem *clkevt_base; +static unsigned long clkevt_reload; /* * IRQ handler for the timer @@ -90,7 +104,7 @@ static void sp804_set_mode(enum clock_event_mode mode, switch (mode) { case CLOCK_EVT_MODE_PERIODIC: - writel(TIMER_RELOAD, clkevt_base + TIMER_LOAD); + writel(clkevt_reload, clkevt_base + TIMER_LOAD); ctrl |= TIMER_CTRL_PERIODIC | TIMER_CTRL_ENABLE; break; @@ -120,7 +134,6 @@ static int sp804_set_next_event(unsigned long next, } static struct clock_event_device sp804_clockevent = { - .name = "timer0", .shift = 32, .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, .set_mode = sp804_set_mode, @@ -136,17 +149,24 @@ static struct irqaction sp804_timer_irq = { .dev_id = &sp804_clockevent, }; -void __init sp804_clockevents_init(void __iomem *base, unsigned int timer_irq) +void __init sp804_clockevents_init(void __iomem *base, unsigned int irq, + const char *name) { struct clock_event_device *evt = &sp804_clockevent; + long rate = sp804_get_clock_rate(name); + + if (rate < 0) + return; clkevt_base = base; + clkevt_reload = DIV_ROUND_CLOSEST(rate, HZ); - evt->irq = timer_irq; - evt->mult = div_sc(TIMER_FREQ_KHZ, NSEC_PER_MSEC, evt->shift); + evt->name = name; + evt->irq = irq; + evt->mult = div_sc(rate, NSEC_PER_SEC, evt->shift); evt->max_delta_ns = clockevent_delta2ns(0xffffffff, evt); evt->min_delta_ns = clockevent_delta2ns(0xf, evt); - setup_irq(timer_irq, &sp804_timer_irq); + setup_irq(irq, &sp804_timer_irq); clockevents_register_device(evt); } diff --git a/trunk/arch/arm/configs/dove_defconfig b/trunk/arch/arm/configs/dove_defconfig index 54bf5eec8016..40db34cf2771 100644 --- a/trunk/arch/arm/configs/dove_defconfig +++ b/trunk/arch/arm/configs/dove_defconfig @@ -8,8 +8,6 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set CONFIG_ARCH_DOVE=y CONFIG_MACH_DOVE_DB=y -CONFIG_CPU_V6=y -CONFIG_CPU_32v6K=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_AEABI=y @@ -44,7 +42,6 @@ CONFIG_MTD_UBI=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=1 -# CONFIG_MISC_DEVICES is not set # CONFIG_SCSI_PROC_FS is not set CONFIG_BLK_DEV_SD=y # CONFIG_SCSI_LOWLEVEL is not set @@ -59,12 +56,12 @@ CONFIG_INPUT_EVDEV=y # CONFIG_KEYBOARD_ATKBD is not set # CONFIG_MOUSE_PS2 is not set # CONFIG_SERIO is not set +CONFIG_LEGACY_PTY_COUNT=16 # CONFIG_DEVKMEM is not set CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y # CONFIG_SERIAL_8250_PCI is not set CONFIG_SERIAL_8250_RUNTIME_UARTS=2 -CONFIG_LEGACY_PTY_COUNT=16 # CONFIG_HW_RANDOM is not set CONFIG_I2C=y CONFIG_I2C_CHARDEV=y @@ -72,12 +69,10 @@ CONFIG_I2C_MV64XXX=y CONFIG_SPI=y CONFIG_SPI_ORION=y # CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set CONFIG_USB=y CONFIG_USB_DEVICEFS=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_STORAGE=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_MV=y @@ -86,7 +81,6 @@ CONFIG_MV_XOR=y CONFIG_EXT2_FS=y CONFIG_EXT3_FS=y # CONFIG_EXT3_FS_XATTR is not set -CONFIG_INOTIFY=y CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_UDF_FS=m @@ -110,23 +104,19 @@ CONFIG_DEBUG_KERNEL=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_DEBUG_INFO=y -# CONFIG_RCU_CPU_STALL_DETECTOR is not set CONFIG_SYSCTL_SYSCALL_CHECK=y CONFIG_DEBUG_USER=y CONFIG_DEBUG_ERRORS=y CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_MD4=y -CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_BLOWFISH=y -CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_TEA=y CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_DEFLATE=y diff --git a/trunk/arch/arm/configs/mx1_defconfig b/trunk/arch/arm/configs/mx1_defconfig index b39b5ced8a10..c9436d0bf593 100644 --- a/trunk/arch/arm/configs/mx1_defconfig +++ b/trunk/arch/arm/configs/mx1_defconfig @@ -15,6 +15,7 @@ CONFIG_ARCH_MXC=y CONFIG_ARCH_MX1=y CONFIG_ARCH_MX1ADS=y CONFIG_MACH_SCB9328=y +CONFIG_MACH_APF9328=y CONFIG_MXC_IRQ_PRIOR=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y diff --git a/trunk/arch/arm/configs/mx51_defconfig b/trunk/arch/arm/configs/mx51_defconfig index e3c903281f70..0ace16cba9b5 100644 --- a/trunk/arch/arm/configs/mx51_defconfig +++ b/trunk/arch/arm/configs/mx51_defconfig @@ -13,7 +13,7 @@ CONFIG_MODULE_SRCVERSION_ALL=y # CONFIG_LBDAF is not set # CONFIG_BLK_DEV_BSG is not set CONFIG_ARCH_MXC=y -CONFIG_ARCH_MX5=y +CONFIG_ARCH_MX51=y CONFIG_MACH_MX51_BABBAGE=y CONFIG_MACH_MX51_3DS=y CONFIG_MACH_EUKREA_CPUIMX51=y diff --git a/trunk/arch/arm/configs/mxs_defconfig b/trunk/arch/arm/configs/mxs_defconfig new file mode 100644 index 000000000000..2bf224310fb4 --- /dev/null +++ b/trunk/arch/arm/configs/mxs_defconfig @@ -0,0 +1,129 @@ +CONFIG_EXPERIMENTAL=y +CONFIG_SYSVIPC=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +CONFIG_PERF_EVENTS=y +# CONFIG_COMPAT_BRK is not set +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_BLK_DEV_INTEGRITY=y +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_MXS=y +CONFIG_MACH_STMP378X_DEVB=y +CONFIG_MACH_TX28=y +# CONFIG_ARM_THUMB is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_AEABI=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_AUTO_ZRELADDR=y +CONFIG_FPE_NWFPE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_SYN_COOKIES=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m +CONFIG_CAN_DEV=m +CONFIG_CAN_FLEXCAN=m +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +# CONFIG_BLK_DEV is not set +CONFIG_NETDEVICES=y +CONFIG_NET_ETHERNET=y +CONFIG_ENC28J60=y +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_WLAN is not set +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_TSC2007=m +# CONFIG_SERIO is not set +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=m +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MXS=m +CONFIG_SPI=y +CONFIG_SPI_GPIO=m +CONFIG_DEBUG_GPIO=y +CONFIG_GPIO_SYSFS=y +# CONFIG_HWMON is not set +# CONFIG_MFD_SUPPORT is not set +CONFIG_DISPLAY_SUPPORT=m +# CONFIG_HID_SUPPORT is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_MMC=y +CONFIG_MMC_MXS=y +CONFIG_RTC_CLASS=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_DMADEVICES=y +CONFIG_MXS_DMA=y +CONFIG_EXT3_FS=y +# CONFIG_DNOTIFY is not set +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +CONFIG_CACHEFILES=m +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_PRINTK_TIME=y +CONFIG_FRAME_WARN=2048 +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_KERNEL=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_DETECT_HUNG_TASK=y +CONFIG_TIMER_STATS=y +CONFIG_PROVE_LOCKING=y +CONFIG_DEBUG_SPINLOCK_SLEEP=y +CONFIG_DEBUG_INFO=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_STRICT_DEVMEM=y +CONFIG_DEBUG_USER=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_CRC32C=m +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_HW is not set +CONFIG_CRC_ITU_T=m +CONFIG_CRC7=m diff --git a/trunk/arch/arm/configs/ns9xxx_defconfig b/trunk/arch/arm/configs/ns9xxx_defconfig deleted file mode 100644 index 1f528a002983..000000000000 --- a/trunk/arch/arm/configs/ns9xxx_defconfig +++ /dev/null @@ -1,56 +0,0 @@ -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -CONFIG_ARCH_NS9XXX=y -CONFIG_MACH_CC9P9360DEV=y -CONFIG_MACH_CC9P9360JS=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_FPE_NWFPE=y -CONFIG_NET=y -CONFIG_PACKET=m -CONFIG_INET=y -CONFIG_IP_PNP=y -CONFIG_SYN_COOKIES=y -CONFIG_MTD=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLOCK=m -CONFIG_MTD_CFI=m -CONFIG_MTD_JEDECPROBE=m -CONFIG_MTD_CFI_AMDSTD=m -CONFIG_MTD_PHYSMAP=m -CONFIG_BLK_DEV_LOOP=m -CONFIG_NETDEVICES=y -CONFIG_NET_ETHERNET=y -# CONFIG_SERIO_SERPORT is not set -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -# CONFIG_LEGACY_PTYS is not set -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=m -CONFIG_I2C_GPIO=m -# CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set -# CONFIG_USB_SUPPORT is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_RTC_CLASS=m -CONFIG_EXT2_FS=m -CONFIG_TMPFS=y -CONFIG_JFFS2_FS=m -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y -# CONFIG_ENABLE_MUST_CHECK is not set -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_USER=y -CONFIG_DEBUG_ERRORS=y diff --git a/trunk/arch/arm/configs/realview-smp_defconfig b/trunk/arch/arm/configs/realview-smp_defconfig index 5ca7a61f7c01..abe61bf379d2 100644 --- a/trunk/arch/arm/configs/realview-smp_defconfig +++ b/trunk/arch/arm/configs/realview-smp_defconfig @@ -38,7 +38,7 @@ CONFIG_MTD_BLOCK=y CONFIG_MTD_CFI=y CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_ARM_INTEGRATOR=y +CONFIG_MTD_PHYSMAP=y CONFIG_ARM_CHARLCD=y CONFIG_NETDEVICES=y CONFIG_SMSC_PHY=y diff --git a/trunk/arch/arm/configs/realview_defconfig b/trunk/arch/arm/configs/realview_defconfig index fcaa60328051..7079cbe898a8 100644 --- a/trunk/arch/arm/configs/realview_defconfig +++ b/trunk/arch/arm/configs/realview_defconfig @@ -37,7 +37,7 @@ CONFIG_MTD_BLOCK=y CONFIG_MTD_CFI=y CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_CFI_AMDSTD=y -CONFIG_MTD_ARM_INTEGRATOR=y +CONFIG_MTD_PHYSMAP=y CONFIG_ARM_CHARLCD=y CONFIG_NETDEVICES=y CONFIG_SMSC_PHY=y diff --git a/trunk/arch/arm/configs/spear300_defconfig b/trunk/arch/arm/configs/spear300_defconfig deleted file mode 100644 index cf29f3e56922..000000000000 --- a/trunk/arch/arm/configs/spear300_defconfig +++ /dev/null @@ -1,51 +0,0 @@ -CONFIG_EXPERIMENTAL=y -CONFIG_SYSVIPC=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_KALLSYMS_EXTRA_PASS=y -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODVERSIONS=y -CONFIG_PLAT_SPEAR=y -CONFIG_BINFMT_MISC=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=16384 -CONFIG_INPUT_FF_MEMLESS=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -# CONFIG_LEGACY_PTYS is not set -# CONFIG_HW_RANDOM is not set -CONFIG_RAW_DRIVER=y -CONFIG_MAX_RAW_DEVS=8192 -CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_PL061=y -# CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set -# CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set -CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_SECURITY=y -CONFIG_EXT3_FS=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_AUTOFS4_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_IOCHARSET="ascii" -CONFIG_TMPFS=y -CONFIG_PARTITION_ADVANCED=y -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="utf8" -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_ASCII=m -CONFIG_MAGIC_SYSRQ=y -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_DEBUG_SPINLOCK_SLEEP=y -CONFIG_DEBUG_INFO=y -# CONFIG_CRC32 is not set diff --git a/trunk/arch/arm/configs/spear310_defconfig b/trunk/arch/arm/configs/spear310_defconfig deleted file mode 100644 index 824e44418b18..000000000000 --- a/trunk/arch/arm/configs/spear310_defconfig +++ /dev/null @@ -1,52 +0,0 @@ -CONFIG_EXPERIMENTAL=y -CONFIG_SYSVIPC=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_KALLSYMS_EXTRA_PASS=y -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODVERSIONS=y -CONFIG_PLAT_SPEAR=y -CONFIG_MACH_SPEAR310=y -CONFIG_BINFMT_MISC=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=16384 -CONFIG_INPUT_FF_MEMLESS=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -# CONFIG_LEGACY_PTYS is not set -# CONFIG_HW_RANDOM is not set -CONFIG_RAW_DRIVER=y -CONFIG_MAX_RAW_DEVS=8192 -CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_PL061=y -# CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set -# CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set -CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_SECURITY=y -CONFIG_EXT3_FS=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_AUTOFS4_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_IOCHARSET="ascii" -CONFIG_TMPFS=y -CONFIG_PARTITION_ADVANCED=y -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="utf8" -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_ASCII=m -CONFIG_MAGIC_SYSRQ=y -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_DEBUG_SPINLOCK_SLEEP=y -CONFIG_DEBUG_INFO=y -# CONFIG_CRC32 is not set diff --git a/trunk/arch/arm/configs/spear320_defconfig b/trunk/arch/arm/configs/spear3xx_defconfig similarity index 93% rename from trunk/arch/arm/configs/spear320_defconfig rename to trunk/arch/arm/configs/spear3xx_defconfig index 842f7f3c512a..fea7e1f026a3 100644 --- a/trunk/arch/arm/configs/spear320_defconfig +++ b/trunk/arch/arm/configs/spear3xx_defconfig @@ -7,7 +7,9 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_PLAT_SPEAR=y -CONFIG_MACH_SPEAR320=y +CONFIG_BOARD_SPEAR300_EVB=y +CONFIG_BOARD_SPEAR310_EVB=y +CONFIG_BOARD_SPEAR320_EVB=y CONFIG_BINFMT_MISC=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_BLK_DEV_RAM=y @@ -25,7 +27,6 @@ CONFIG_MAX_RAW_DEVS=8192 CONFIG_GPIO_SYSFS=y CONFIG_GPIO_PL061=y # CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set # CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set CONFIG_EXT2_FS=y diff --git a/trunk/arch/arm/configs/spear600_defconfig b/trunk/arch/arm/configs/spear6xx_defconfig similarity index 97% rename from trunk/arch/arm/configs/spear600_defconfig rename to trunk/arch/arm/configs/spear6xx_defconfig index 6777c11f63e7..cef2e836afd2 100644 --- a/trunk/arch/arm/configs/spear600_defconfig +++ b/trunk/arch/arm/configs/spear6xx_defconfig @@ -8,6 +8,7 @@ CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_PLAT_SPEAR=y CONFIG_ARCH_SPEAR6XX=y +CONFIG_BOARD_SPEAR600_EVB=y CONFIG_BINFMT_MISC=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_BLK_DEV_RAM=y @@ -22,7 +23,6 @@ CONFIG_MAX_RAW_DEVS=8192 CONFIG_GPIO_SYSFS=y CONFIG_GPIO_PL061=y # CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set # CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set CONFIG_EXT2_FS=y diff --git a/trunk/arch/arm/configs/stmp378x_defconfig b/trunk/arch/arm/configs/stmp378x_defconfig deleted file mode 100644 index 1079c2b6eb3a..000000000000 --- a/trunk/arch/arm/configs/stmp378x_defconfig +++ /dev/null @@ -1,128 +0,0 @@ -CONFIG_EXPERIMENTAL=y -CONFIG_LOCALVERSION="-default" -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_SYSFS_DEPRECATED_V2=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_EXPERT=y -CONFIG_SLAB=y -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_MODVERSIONS=y -CONFIG_MODULE_SRCVERSION_ALL=y -# CONFIG_BLK_DEV_BSG is not set -CONFIG_ARCH_STMP3XXX=y -CONFIG_ARCH_STMP378X=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_PREEMPT=y -CONFIG_AEABI=y -CONFIG_HIGHMEM=y -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttySDBG0,115200 mem=32M" -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_SYN_COOKIES=y -# CONFIG_INET_LRO is not set -# CONFIG_IPV6 is not set -CONFIG_NET_SCHED=y -# CONFIG_WIRELESS is not set -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_STANDALONE is not set -CONFIG_MTD=y -CONFIG_MTD_CHAR=y -CONFIG_MTD_NAND=y -CONFIG_MTD_UBI=y -CONFIG_MTD_UBI_GLUEBI=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_CRYPTOLOOP=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=4 -CONFIG_BLK_DEV_RAM_SIZE=6144 -# CONFIG_MISC_DEVICES is not set -CONFIG_SCSI=y -CONFIG_BLK_DEV_SD=y -CONFIG_CHR_DEV_SG=y -# CONFIG_SCSI_LOWLEVEL is not set -CONFIG_INPUT_POLLDEV=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=320 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 -CONFIG_INPUT_EVDEV=y -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_INPUT_MISC=y -# CONFIG_SERIO_SERPORT is not set -CONFIG_VT_HW_CONSOLE_BINDING=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_HW_RANDOM=y -CONFIG_DEBUG_GPIO=y -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_FB=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_VGA_CONSOLE is not set -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_LOGO=y -# CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set -# CONFIG_DNOTIFY is not set -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=m -# CONFIG_MISC_FILESYSTEMS is not set -# CONFIG_NETWORK_FILESYSTEMS is not set -# CONFIG_ENABLE_MUST_CHECK is not set -CONFIG_STRIP_ASM_SYMS=y -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_SHIRQ=y -# CONFIG_SCHED_DEBUG is not set -CONFIG_DEBUG_OBJECTS=y -CONFIG_DEBUG_OBJECTS_SELFTEST=y -CONFIG_DEBUG_OBJECTS_FREE=y -CONFIG_DEBUG_OBJECTS_TIMERS=y -CONFIG_DEBUG_SLAB=y -CONFIG_DEBUG_SLAB_LEAK=y -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_PROVE_LOCKING=y -CONFIG_DEBUG_SPINLOCK_SLEEP=y -CONFIG_DEBUG_KOBJECT=y -# CONFIG_DEBUG_BUGVERBOSE is not set -CONFIG_DEBUG_INFO=y -# CONFIG_RCU_CPU_STALL_DETECTOR is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y -CONFIG_BOOT_TRACER=y -CONFIG_STACK_TRACER=y -CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_KEYS=y -CONFIG_KEYS_DEBUG_PROC_KEYS=y -CONFIG_SECURITY=y -CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_LZO=y -# CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRC_CCITT=m -CONFIG_CRC16=y diff --git a/trunk/arch/arm/configs/stmp37xx_defconfig b/trunk/arch/arm/configs/stmp37xx_defconfig deleted file mode 100644 index 564a5cc44085..000000000000 --- a/trunk/arch/arm/configs/stmp37xx_defconfig +++ /dev/null @@ -1,108 +0,0 @@ -CONFIG_EXPERIMENTAL=y -CONFIG_LOCALVERSION="-default" -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_SYSFS_DEPRECATED_V2=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_EXPERT=y -CONFIG_SLAB=y -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_MODVERSIONS=y -CONFIG_MODULE_SRCVERSION_ALL=y -# CONFIG_BLK_DEV_BSG is not set -CONFIG_ARCH_STMP3XXX=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_PREEMPT=y -CONFIG_AEABI=y -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttySDBG0,115200 mem=32M lcd_panel=lms350 rdinit=/bin/sh ignore_loglevel" -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_SYN_COOKIES=y -# CONFIG_INET_LRO is not set -# CONFIG_IPV6 is not set -CONFIG_NET_SCHED=y -# CONFIG_WIRELESS is not set -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_STANDALONE is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_CRYPTOLOOP=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=4 -CONFIG_BLK_DEV_RAM_SIZE=6144 -# CONFIG_MISC_DEVICES is not set -CONFIG_SCSI=y -CONFIG_BLK_DEV_SD=y -CONFIG_CHR_DEV_SG=y -# CONFIG_SCSI_LOWLEVEL is not set -CONFIG_INPUT_POLLDEV=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=320 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 -CONFIG_INPUT_EVDEV=y -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_INPUT_MOUSE is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_INPUT_MISC=y -# CONFIG_SERIO_SERPORT is not set -CONFIG_VT_HW_CONSOLE_BINDING=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_HW_RANDOM=y -CONFIG_DEBUG_GPIO=y -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_FB=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_VGA_CONSOLE is not set -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_LOGO=y -# CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set -# CONFIG_DNOTIFY is not set -CONFIG_TMPFS=y -CONFIG_CONFIGFS_FS=m -# CONFIG_MISC_FILESYSTEMS is not set -# CONFIG_NETWORK_FILESYSTEMS is not set -# CONFIG_ENABLE_MUST_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_BUGVERBOSE is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y -CONFIG_BOOT_TRACER=y -CONFIG_STACK_TRACER=y -CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_DEBUG_LL=y -CONFIG_KEYS=y -CONFIG_KEYS_DEBUG_PROC_KEYS=y -CONFIG_SECURITY=y -CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_LZO=y -# CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRC_CCITT=m -CONFIG_CRC16=y diff --git a/trunk/arch/arm/configs/versatile_defconfig b/trunk/arch/arm/configs/versatile_defconfig index 0ce710f47500..cdd4d2bd3962 100644 --- a/trunk/arch/arm/configs/versatile_defconfig +++ b/trunk/arch/arm/configs/versatile_defconfig @@ -32,7 +32,7 @@ CONFIG_MTD_BLOCK=y CONFIG_MTD_CFI=y CONFIG_MTD_CFI_ADV_OPTIONS=y CONFIG_MTD_CFI_INTELEXT=y -CONFIG_MTD_ARM_INTEGRATOR=y +CONFIG_MTD_PHYSMAP=y CONFIG_BLK_DEV_RAM=y CONFIG_EEPROM_LEGACY=m CONFIG_NETDEVICES=y diff --git a/trunk/arch/arm/include/asm/dma.h b/trunk/arch/arm/include/asm/dma.h index ca51143f97f1..42005542932b 100644 --- a/trunk/arch/arm/include/asm/dma.h +++ b/trunk/arch/arm/include/asm/dma.h @@ -6,8 +6,10 @@ /* * This is the maximum virtual address which can be DMA'd from. */ -#ifndef MAX_DMA_ADDRESS +#ifndef ARM_DMA_ZONE_SIZE #define MAX_DMA_ADDRESS 0xffffffff +#else +#define MAX_DMA_ADDRESS (PAGE_OFFSET + ARM_DMA_ZONE_SIZE) #endif #ifdef CONFIG_ISA_DMA_API diff --git a/trunk/arch/arm/include/asm/elf.h b/trunk/arch/arm/include/asm/elf.h index c3cd8755e648..0e9ce8d9686e 100644 --- a/trunk/arch/arm/include/asm/elf.h +++ b/trunk/arch/arm/include/asm/elf.h @@ -108,6 +108,7 @@ struct task_struct; int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs); #define ELF_CORE_COPY_TASK_REGS dump_task_regs +#define CORE_DUMP_USE_REGSET #define ELF_EXEC_PAGESIZE 4096 /* This is the location that an ET_DYN program is loaded if exec'ed. Typical diff --git a/trunk/arch/arm/include/asm/futex.h b/trunk/arch/arm/include/asm/futex.h index 199a6b6de7f4..8c73900da9ed 100644 --- a/trunk/arch/arm/include/asm/futex.h +++ b/trunk/arch/arm/include/asm/futex.h @@ -3,16 +3,74 @@ #ifdef __KERNEL__ +#if defined(CONFIG_CPU_USE_DOMAINS) && defined(CONFIG_SMP) +/* ARM doesn't provide unprivileged exclusive memory accessors */ +#include +#else + +#include +#include +#include + +#define __futex_atomic_ex_table(err_reg) \ + "3:\n" \ + " .pushsection __ex_table,\"a\"\n" \ + " .align 3\n" \ + " .long 1b, 4f, 2b, 4f\n" \ + " .popsection\n" \ + " .pushsection .fixup,\"ax\"\n" \ + "4: mov %0, " err_reg "\n" \ + " b 3b\n" \ + " .popsection" + #ifdef CONFIG_SMP -#include +#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ + smp_mb(); \ + __asm__ __volatile__( \ + "1: ldrex %1, [%2]\n" \ + " " insn "\n" \ + "2: strex %1, %0, [%2]\n" \ + " teq %1, #0\n" \ + " bne 1b\n" \ + " mov %0, #0\n" \ + __futex_atomic_ex_table("%4") \ + : "=&r" (ret), "=&r" (oldval) \ + : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \ + : "cc", "memory") + +static inline int +futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, + u32 oldval, u32 newval) +{ + int ret; + u32 val; + + if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32))) + return -EFAULT; + + smp_mb(); + __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n" + "1: ldrex %1, [%4]\n" + " teq %1, %2\n" + " ite eq @ explicit IT needed for the 2b label\n" + "2: strexeq %0, %3, [%4]\n" + " movne %0, #0\n" + " teq %0, #0\n" + " bne 1b\n" + __futex_atomic_ex_table("%5") + : "=&r" (ret), "=&r" (val) + : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT) + : "cc", "memory"); + smp_mb(); + + *uval = val; + return ret; +} #else /* !SMP, we can work around lack of atomic ops by disabling preemption */ -#include #include -#include -#include #include #define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ @@ -21,19 +79,37 @@ " " insn "\n" \ "2: " T(str) " %0, [%2]\n" \ " mov %0, #0\n" \ - "3:\n" \ - " .pushsection __ex_table,\"a\"\n" \ - " .align 3\n" \ - " .long 1b, 4f, 2b, 4f\n" \ - " .popsection\n" \ - " .pushsection .fixup,\"ax\"\n" \ - "4: mov %0, %4\n" \ - " b 3b\n" \ - " .popsection" \ + __futex_atomic_ex_table("%4") \ : "=&r" (ret), "=&r" (oldval) \ : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \ : "cc", "memory") +static inline int +futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, + u32 oldval, u32 newval) +{ + int ret = 0; + u32 val; + + if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32))) + return -EFAULT; + + __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n" + "1: " T(ldr) " %1, [%4]\n" + " teq %1, %2\n" + " it eq @ explicit IT needed for the 2b label\n" + "2: " T(streq) " %3, [%4]\n" + __futex_atomic_ex_table("%5") + : "+r" (ret), "=&r" (val) + : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT) + : "cc", "memory"); + + *uval = val; + return ret; +} + +#endif /* !SMP */ + static inline int futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr) { @@ -87,39 +163,6 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr) return ret; } -static inline int -futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, - u32 oldval, u32 newval) -{ - int ret = 0; - u32 val; - - if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32))) - return -EFAULT; - - __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n" - "1: " T(ldr) " %1, [%4]\n" - " teq %1, %2\n" - " it eq @ explicit IT needed for the 2b label\n" - "2: " T(streq) " %3, [%4]\n" - "3:\n" - " .pushsection __ex_table,\"a\"\n" - " .align 3\n" - " .long 1b, 4f, 2b, 4f\n" - " .popsection\n" - " .pushsection .fixup,\"ax\"\n" - "4: mov %0, %5\n" - " b 3b\n" - " .popsection" - : "+r" (ret), "=&r" (val) - : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT) - : "cc", "memory"); - - *uval = val; - return ret; -} - -#endif /* !SMP */ - +#endif /* !(CPU_USE_DOMAINS && SMP) */ #endif /* __KERNEL__ */ #endif /* _ASM_ARM_FUTEX_H */ diff --git a/trunk/arch/arm/include/asm/hardware/timer-sp.h b/trunk/arch/arm/include/asm/hardware/timer-sp.h index 21e75e30d497..4384d81eee79 100644 --- a/trunk/arch/arm/include/asm/hardware/timer-sp.h +++ b/trunk/arch/arm/include/asm/hardware/timer-sp.h @@ -1,2 +1,2 @@ -void sp804_clocksource_init(void __iomem *); -void sp804_clockevents_init(void __iomem *, unsigned int); +void sp804_clocksource_init(void __iomem *, const char *); +void sp804_clockevents_init(void __iomem *, unsigned int, const char *); diff --git a/trunk/arch/arm/include/asm/memory.h b/trunk/arch/arm/include/asm/memory.h index 431077c5a867..af44a8fb3480 100644 --- a/trunk/arch/arm/include/asm/memory.h +++ b/trunk/arch/arm/include/asm/memory.h @@ -209,14 +209,10 @@ static inline unsigned long __phys_to_virt(unsigned long x) * allocations. This must be the smallest DMA mask in the system, * so a successful GFP_DMA allocation will always satisfy this. */ -#ifndef ISA_DMA_THRESHOLD +#ifndef ARM_DMA_ZONE_SIZE #define ISA_DMA_THRESHOLD (0xffffffffULL) -#endif - -#ifndef arch_adjust_zones -#define arch_adjust_zones(size,holes) do { } while (0) -#elif !defined(CONFIG_ZONE_DMA) -#error "custom arch_adjust_zones() requires CONFIG_ZONE_DMA" +#else +#define ISA_DMA_THRESHOLD (PHYS_OFFSET + ARM_DMA_ZONE_SIZE - 1) #endif /* diff --git a/trunk/arch/arm/include/asm/ptrace.h b/trunk/arch/arm/include/asm/ptrace.h index a8ff22b2a391..312d10877bd7 100644 --- a/trunk/arch/arm/include/asm/ptrace.h +++ b/trunk/arch/arm/include/asm/ptrace.h @@ -128,6 +128,12 @@ struct pt_regs { #define ARM_r0 uregs[0] #define ARM_ORIG_r0 uregs[17] +/* + * The size of the user-visible VFP state as seen by PTRACE_GET/SETVFPREGS + * and core dumps. + */ +#define ARM_VFPREGS_SIZE ( 32 * 8 /*fpregs*/ + 4 /*fpscr*/ ) + #ifdef __KERNEL__ #define user_mode(regs) \ diff --git a/trunk/arch/arm/include/asm/sizes.h b/trunk/arch/arm/include/asm/sizes.h index 316bb2b2be3d..154b89b81d3e 100644 --- a/trunk/arch/arm/include/asm/sizes.h +++ b/trunk/arch/arm/include/asm/sizes.h @@ -16,44 +16,6 @@ /* Size definitions * Copyright (C) ARM Limited 1998. All rights reserved. */ +#include -#ifndef __sizes_h -#define __sizes_h 1 - -/* handy sizes */ -#define SZ_16 0x00000010 -#define SZ_32 0x00000020 -#define SZ_64 0x00000040 -#define SZ_128 0x00000080 -#define SZ_256 0x00000100 -#define SZ_512 0x00000200 - -#define SZ_1K 0x00000400 -#define SZ_2K 0x00000800 -#define SZ_4K 0x00001000 -#define SZ_8K 0x00002000 -#define SZ_16K 0x00004000 -#define SZ_32K 0x00008000 -#define SZ_64K 0x00010000 -#define SZ_128K 0x00020000 -#define SZ_256K 0x00040000 -#define SZ_512K 0x00080000 - -#define SZ_1M 0x00100000 -#define SZ_2M 0x00200000 -#define SZ_4M 0x00400000 -#define SZ_8M 0x00800000 -#define SZ_16M 0x01000000 -#define SZ_32M 0x02000000 -#define SZ_48M 0x03000000 -#define SZ_64M 0x04000000 -#define SZ_128M 0x08000000 -#define SZ_256M 0x10000000 -#define SZ_512M 0x20000000 - -#define SZ_1G 0x40000000 -#define SZ_2G 0x80000000 - -#endif - -/* END */ +#define SZ_48M (SZ_32M + SZ_16M) diff --git a/trunk/arch/arm/include/asm/smp.h b/trunk/arch/arm/include/asm/smp.h index 96ed521f2408..a87664f54f93 100644 --- a/trunk/arch/arm/include/asm/smp.h +++ b/trunk/arch/arm/include/asm/smp.h @@ -14,8 +14,6 @@ #include #include -#include - #ifndef CONFIG_SMP # error " included in non-SMP build" #endif @@ -47,9 +45,9 @@ extern void smp_init_cpus(void); /* - * Raise an IPI cross call on CPUs in callmap. + * Provide a function to raise an IPI cross call on CPUs in callmap. */ -extern void smp_cross_call(const struct cpumask *mask, int ipi); +extern void set_smp_cross_call(void (*)(const struct cpumask *, unsigned int)); /* * Boot a secondary CPU, and assign it the specified idle task. diff --git a/trunk/arch/arm/include/asm/spinlock.h b/trunk/arch/arm/include/asm/spinlock.h index fdd3820edff8..65fa3c88095c 100644 --- a/trunk/arch/arm/include/asm/spinlock.h +++ b/trunk/arch/arm/include/asm/spinlock.h @@ -5,6 +5,8 @@ #error SMP not supported on pre-ARMv6 CPUs #endif +#include + /* * sev and wfe are ARMv6K extensions. Uniprocessor ARMv6 may not have the K * extensions, so when running on UP, we have to patch these instructions away. diff --git a/trunk/arch/arm/kernel/perf_event.c b/trunk/arch/arm/kernel/perf_event.c index 139e3c827369..d53c0abc4dd3 100644 --- a/trunk/arch/arm/kernel/perf_event.c +++ b/trunk/arch/arm/kernel/perf_event.c @@ -560,11 +560,6 @@ static int armpmu_event_init(struct perf_event *event) event->destroy = hw_perf_event_destroy; if (!atomic_inc_not_zero(&active_events)) { - if (atomic_read(&active_events) > armpmu->num_events) { - atomic_dec(&active_events); - return -ENOSPC; - } - mutex_lock(&pmu_reserve_mutex); if (atomic_read(&active_events) == 0) { err = armpmu_reserve_hardware(); diff --git a/trunk/arch/arm/kernel/ptrace.c b/trunk/arch/arm/kernel/ptrace.c index 8182f45ca493..97260060bf26 100644 --- a/trunk/arch/arm/kernel/ptrace.c +++ b/trunk/arch/arm/kernel/ptrace.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -308,58 +309,6 @@ static int ptrace_write_user(struct task_struct *tsk, unsigned long off, return put_user_reg(tsk, off >> 2, val); } -/* - * Get all user integer registers. - */ -static int ptrace_getregs(struct task_struct *tsk, void __user *uregs) -{ - struct pt_regs *regs = task_pt_regs(tsk); - - return copy_to_user(uregs, regs, sizeof(struct pt_regs)) ? -EFAULT : 0; -} - -/* - * Set all user integer registers. - */ -static int ptrace_setregs(struct task_struct *tsk, void __user *uregs) -{ - struct pt_regs newregs; - int ret; - - ret = -EFAULT; - if (copy_from_user(&newregs, uregs, sizeof(struct pt_regs)) == 0) { - struct pt_regs *regs = task_pt_regs(tsk); - - ret = -EINVAL; - if (valid_user_regs(&newregs)) { - *regs = newregs; - ret = 0; - } - } - - return ret; -} - -/* - * Get the child FPU state. - */ -static int ptrace_getfpregs(struct task_struct *tsk, void __user *ufp) -{ - return copy_to_user(ufp, &task_thread_info(tsk)->fpstate, - sizeof(struct user_fp)) ? -EFAULT : 0; -} - -/* - * Set the child FPU state. - */ -static int ptrace_setfpregs(struct task_struct *tsk, void __user *ufp) -{ - struct thread_info *thread = task_thread_info(tsk); - thread->used_cp[1] = thread->used_cp[2] = 1; - return copy_from_user(&thread->fpstate, ufp, - sizeof(struct user_fp)) ? -EFAULT : 0; -} - #ifdef CONFIG_IWMMXT /* @@ -418,56 +367,6 @@ static int ptrace_setcrunchregs(struct task_struct *tsk, void __user *ufp) } #endif -#ifdef CONFIG_VFP -/* - * Get the child VFP state. - */ -static int ptrace_getvfpregs(struct task_struct *tsk, void __user *data) -{ - struct thread_info *thread = task_thread_info(tsk); - union vfp_state *vfp = &thread->vfpstate; - struct user_vfp __user *ufp = data; - - vfp_sync_hwstate(thread); - - /* copy the floating point registers */ - if (copy_to_user(&ufp->fpregs, &vfp->hard.fpregs, - sizeof(vfp->hard.fpregs))) - return -EFAULT; - - /* copy the status and control register */ - if (put_user(vfp->hard.fpscr, &ufp->fpscr)) - return -EFAULT; - - return 0; -} - -/* - * Set the child VFP state. - */ -static int ptrace_setvfpregs(struct task_struct *tsk, void __user *data) -{ - struct thread_info *thread = task_thread_info(tsk); - union vfp_state *vfp = &thread->vfpstate; - struct user_vfp __user *ufp = data; - - vfp_sync_hwstate(thread); - - /* copy the floating point registers */ - if (copy_from_user(&vfp->hard.fpregs, &ufp->fpregs, - sizeof(vfp->hard.fpregs))) - return -EFAULT; - - /* copy the status and control register */ - if (get_user(vfp->hard.fpscr, &ufp->fpscr)) - return -EFAULT; - - vfp_flush_hwstate(thread); - - return 0; -} -#endif - #ifdef CONFIG_HAVE_HW_BREAKPOINT /* * Convert a virtual register number into an index for a thread_info @@ -694,6 +593,219 @@ static int ptrace_sethbpregs(struct task_struct *tsk, long num, } #endif +/* regset get/set implementations */ + +static int gpr_get(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + void *kbuf, void __user *ubuf) +{ + struct pt_regs *regs = task_pt_regs(target); + + return user_regset_copyout(&pos, &count, &kbuf, &ubuf, + regs, + 0, sizeof(*regs)); +} + +static int gpr_set(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + const void *kbuf, const void __user *ubuf) +{ + int ret; + struct pt_regs newregs; + + ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, + &newregs, + 0, sizeof(newregs)); + if (ret) + return ret; + + if (!valid_user_regs(&newregs)) + return -EINVAL; + + *task_pt_regs(target) = newregs; + return 0; +} + +static int fpa_get(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + void *kbuf, void __user *ubuf) +{ + return user_regset_copyout(&pos, &count, &kbuf, &ubuf, + &task_thread_info(target)->fpstate, + 0, sizeof(struct user_fp)); +} + +static int fpa_set(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + const void *kbuf, const void __user *ubuf) +{ + struct thread_info *thread = task_thread_info(target); + + thread->used_cp[1] = thread->used_cp[2] = 1; + + return user_regset_copyin(&pos, &count, &kbuf, &ubuf, + &thread->fpstate, + 0, sizeof(struct user_fp)); +} + +#ifdef CONFIG_VFP +/* + * VFP register get/set implementations. + * + * With respect to the kernel, struct user_fp is divided into three chunks: + * 16 or 32 real VFP registers (d0-d15 or d0-31) + * These are transferred to/from the real registers in the task's + * vfp_hard_struct. The number of registers depends on the kernel + * configuration. + * + * 16 or 0 fake VFP registers (d16-d31 or empty) + * i.e., the user_vfp structure has space for 32 registers even if + * the kernel doesn't have them all. + * + * vfp_get() reads this chunk as zero where applicable + * vfp_set() ignores this chunk + * + * 1 word for the FPSCR + * + * The bounds-checking logic built into user_regset_copyout and friends + * means that we can make a simple sequence of calls to map the relevant data + * to/from the specified slice of the user regset structure. + */ +static int vfp_get(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + void *kbuf, void __user *ubuf) +{ + int ret; + struct thread_info *thread = task_thread_info(target); + struct vfp_hard_struct const *vfp = &thread->vfpstate.hard; + const size_t user_fpregs_offset = offsetof(struct user_vfp, fpregs); + const size_t user_fpscr_offset = offsetof(struct user_vfp, fpscr); + + vfp_sync_hwstate(thread); + + ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf, + &vfp->fpregs, + user_fpregs_offset, + user_fpregs_offset + sizeof(vfp->fpregs)); + if (ret) + return ret; + + ret = user_regset_copyout_zero(&pos, &count, &kbuf, &ubuf, + user_fpregs_offset + sizeof(vfp->fpregs), + user_fpscr_offset); + if (ret) + return ret; + + return user_regset_copyout(&pos, &count, &kbuf, &ubuf, + &vfp->fpscr, + user_fpscr_offset, + user_fpscr_offset + sizeof(vfp->fpscr)); +} + +/* + * For vfp_set() a read-modify-write is done on the VFP registers, + * in order to avoid writing back a half-modified set of registers on + * failure. + */ +static int vfp_set(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + const void *kbuf, const void __user *ubuf) +{ + int ret; + struct thread_info *thread = task_thread_info(target); + struct vfp_hard_struct new_vfp = thread->vfpstate.hard; + const size_t user_fpregs_offset = offsetof(struct user_vfp, fpregs); + const size_t user_fpscr_offset = offsetof(struct user_vfp, fpscr); + + ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, + &new_vfp.fpregs, + user_fpregs_offset, + user_fpregs_offset + sizeof(new_vfp.fpregs)); + if (ret) + return ret; + + ret = user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf, + user_fpregs_offset + sizeof(new_vfp.fpregs), + user_fpscr_offset); + if (ret) + return ret; + + ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, + &new_vfp.fpscr, + user_fpscr_offset, + user_fpscr_offset + sizeof(new_vfp.fpscr)); + if (ret) + return ret; + + vfp_sync_hwstate(thread); + thread->vfpstate.hard = new_vfp; + vfp_flush_hwstate(thread); + + return 0; +} +#endif /* CONFIG_VFP */ + +enum arm_regset { + REGSET_GPR, + REGSET_FPR, +#ifdef CONFIG_VFP + REGSET_VFP, +#endif +}; + +static const struct user_regset arm_regsets[] = { + [REGSET_GPR] = { + .core_note_type = NT_PRSTATUS, + .n = ELF_NGREG, + .size = sizeof(u32), + .align = sizeof(u32), + .get = gpr_get, + .set = gpr_set + }, + [REGSET_FPR] = { + /* + * For the FPA regs in fpstate, the real fields are a mixture + * of sizes, so pretend that the registers are word-sized: + */ + .core_note_type = NT_PRFPREG, + .n = sizeof(struct user_fp) / sizeof(u32), + .size = sizeof(u32), + .align = sizeof(u32), + .get = fpa_get, + .set = fpa_set + }, +#ifdef CONFIG_VFP + [REGSET_VFP] = { + /* + * Pretend that the VFP regs are word-sized, since the FPSCR is + * a single word dangling at the end of struct user_vfp: + */ + .core_note_type = NT_ARM_VFP, + .n = ARM_VFPREGS_SIZE / sizeof(u32), + .size = sizeof(u32), + .align = sizeof(u32), + .get = vfp_get, + .set = vfp_set + }, +#endif /* CONFIG_VFP */ +}; + +static const struct user_regset_view user_arm_view = { + .name = "arm", .e_machine = ELF_ARCH, .ei_osabi = ELF_OSABI, + .regsets = arm_regsets, .n = ARRAY_SIZE(arm_regsets) +}; + +const struct user_regset_view *task_user_regset_view(struct task_struct *task) +{ + return &user_arm_view; +} + long arch_ptrace(struct task_struct *child, long request, unsigned long addr, unsigned long data) { @@ -710,19 +822,31 @@ long arch_ptrace(struct task_struct *child, long request, break; case PTRACE_GETREGS: - ret = ptrace_getregs(child, datap); + ret = copy_regset_to_user(child, + &user_arm_view, REGSET_GPR, + 0, sizeof(struct pt_regs), + datap); break; case PTRACE_SETREGS: - ret = ptrace_setregs(child, datap); + ret = copy_regset_from_user(child, + &user_arm_view, REGSET_GPR, + 0, sizeof(struct pt_regs), + datap); break; case PTRACE_GETFPREGS: - ret = ptrace_getfpregs(child, datap); + ret = copy_regset_to_user(child, + &user_arm_view, REGSET_FPR, + 0, sizeof(union fp_state), + datap); break; - + case PTRACE_SETFPREGS: - ret = ptrace_setfpregs(child, datap); + ret = copy_regset_from_user(child, + &user_arm_view, REGSET_FPR, + 0, sizeof(union fp_state), + datap); break; #ifdef CONFIG_IWMMXT @@ -757,11 +881,17 @@ long arch_ptrace(struct task_struct *child, long request, #ifdef CONFIG_VFP case PTRACE_GETVFPREGS: - ret = ptrace_getvfpregs(child, datap); + ret = copy_regset_to_user(child, + &user_arm_view, REGSET_VFP, + 0, ARM_VFPREGS_SIZE, + datap); break; case PTRACE_SETVFPREGS: - ret = ptrace_setvfpregs(child, datap); + ret = copy_regset_from_user(child, + &user_arm_view, REGSET_VFP, + 0, ARM_VFPREGS_SIZE, + datap); break; #endif diff --git a/trunk/arch/arm/kernel/setup.c b/trunk/arch/arm/kernel/setup.c index 006c1e884eaf..6dce209a623b 100644 --- a/trunk/arch/arm/kernel/setup.c +++ b/trunk/arch/arm/kernel/setup.c @@ -672,11 +672,16 @@ __tagtable(ATAG_REVISION, parse_tag_revision); static int __init parse_tag_cmdline(const struct tag *tag) { -#ifndef CONFIG_CMDLINE_FORCE - strlcpy(default_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE); -#else +#if defined(CONFIG_CMDLINE_EXTEND) + strlcat(default_command_line, " ", COMMAND_LINE_SIZE); + strlcat(default_command_line, tag->u.cmdline.cmdline, + COMMAND_LINE_SIZE); +#elif defined(CONFIG_CMDLINE_FORCE) pr_warning("Ignoring tag cmdline (using the default kernel command line)\n"); -#endif /* CONFIG_CMDLINE_FORCE */ +#else + strlcpy(default_command_line, tag->u.cmdline.cmdline, + COMMAND_LINE_SIZE); +#endif return 0; } diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index 007a0a950e75..d439a8f4c078 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -376,6 +376,13 @@ void __init smp_prepare_cpus(unsigned int max_cpus) } } +static void (*smp_cross_call)(const struct cpumask *, unsigned int); + +void __init set_smp_cross_call(void (*fn)(const struct cpumask *, unsigned int)) +{ + smp_cross_call = fn; +} + void arch_send_call_function_ipi_mask(const struct cpumask *mask) { smp_cross_call(mask, IPI_CALL_FUNC); diff --git a/trunk/arch/arm/kernel/vmlinux.lds.S b/trunk/arch/arm/kernel/vmlinux.lds.S index b4348e62ef06..e5287f21badc 100644 --- a/trunk/arch/arm/kernel/vmlinux.lds.S +++ b/trunk/arch/arm/kernel/vmlinux.lds.S @@ -82,7 +82,7 @@ SECTIONS #endif } - PERCPU(32, PAGE_SIZE) + PERCPU_SECTION(32) #ifndef CONFIG_XIP_KERNEL . = ALIGN(PAGE_SIZE); diff --git a/trunk/arch/arm/mach-at91/at91cap9_devices.c b/trunk/arch/arm/mach-at91/at91cap9_devices.c index 9ffbf3a2dfea..21020ceb2f3a 100644 --- a/trunk/arch/arm/mach-at91/at91cap9_devices.c +++ b/trunk/arch/arm/mach-at91/at91cap9_devices.c @@ -171,7 +171,7 @@ void __init at91_add_device_usba(struct usba_platform_data *data) */ usba_udc_data.pdata.vbus_pin = -EINVAL; usba_udc_data.pdata.num_ep = ARRAY_SIZE(usba_udc_ep); - memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));; + memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep)); if (data && data->vbus_pin > 0) { at91_set_gpio_input(data->vbus_pin, 0); diff --git a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c index 1e8f275c17f6..5e9f8a4c38df 100644 --- a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c @@ -256,7 +256,7 @@ void __init at91_add_device_usba(struct usba_platform_data *data) { usba_udc_data.pdata.vbus_pin = -EINVAL; usba_udc_data.pdata.num_ep = ARRAY_SIZE(usba_udc_ep); - memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));; + memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep)); if (data && data->vbus_pin > 0) { at91_set_gpio_input(data->vbus_pin, 0); diff --git a/trunk/arch/arm/mach-at91/at91sam9rl_devices.c b/trunk/arch/arm/mach-at91/at91sam9rl_devices.c index 53aaa94df75a..c49262bddd85 100644 --- a/trunk/arch/arm/mach-at91/at91sam9rl_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9rl_devices.c @@ -145,7 +145,7 @@ void __init at91_add_device_usba(struct usba_platform_data *data) */ usba_udc_data.pdata.vbus_pin = -EINVAL; usba_udc_data.pdata.num_ep = ARRAY_SIZE(usba_udc_ep); - memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));; + memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep)); if (data && data->vbus_pin > 0) { at91_set_gpio_input(data->vbus_pin, 0); diff --git a/trunk/arch/arm/mach-bcmring/arch.c b/trunk/arch/arm/mach-bcmring/arch.c index 73eb066d2329..a604b9ebb501 100644 --- a/trunk/arch/arm/mach-bcmring/arch.c +++ b/trunk/arch/arm/mach-bcmring/arch.c @@ -169,6 +169,7 @@ MACHINE_START(BCMRING, "BCMRING") /* Maintainer: Broadcom Corporation */ .fixup = bcmring_fixup, .map_io = bcmring_map_io, + .init_early = bcmring_init_early, .init_irq = bcmring_init_irq, .timer = &bcmring_timer, .init_machine = bcmring_init_machine diff --git a/trunk/arch/arm/mach-bcmring/core.c b/trunk/arch/arm/mach-bcmring/core.c index 8fc2035759fb..43eadbcc29ed 100644 --- a/trunk/arch/arm/mach-bcmring/core.c +++ b/trunk/arch/arm/mach-bcmring/core.c @@ -28,8 +28,6 @@ #include #include #include -#include -#include #include #include @@ -37,6 +35,7 @@ #include #include #include +#include #include #include @@ -97,6 +96,35 @@ static struct clk dummy_apb_pclk = { .mode = CLK_MODE_XTAL, }; +/* Timer 0 - 25 MHz, Timer3 at bus clock rate, typically 150-166 MHz */ +#if defined(CONFIG_ARCH_FPGA11107) +/* fpga cpu/bus are currently 30 times slower so scale frequency as well to */ +/* slow down Linux's sense of time */ +#define TIMER0_FREQUENCY_MHZ (tmrHw_LOW_FREQUENCY_MHZ * 30) +#define TIMER1_FREQUENCY_MHZ (tmrHw_LOW_FREQUENCY_MHZ * 30) +#define TIMER3_FREQUENCY_MHZ (tmrHw_HIGH_FREQUENCY_MHZ * 30) +#define TIMER3_FREQUENCY_KHZ (tmrHw_HIGH_FREQUENCY_HZ / 1000 * 30) +#else +#define TIMER0_FREQUENCY_MHZ tmrHw_LOW_FREQUENCY_MHZ +#define TIMER1_FREQUENCY_MHZ tmrHw_LOW_FREQUENCY_MHZ +#define TIMER3_FREQUENCY_MHZ tmrHw_HIGH_FREQUENCY_MHZ +#define TIMER3_FREQUENCY_KHZ (tmrHw_HIGH_FREQUENCY_HZ / 1000) +#endif + +static struct clk sp804_timer012_clk = { + .name = "sp804-timer-0,1,2", + .type = CLK_TYPE_PRIMARY, + .mode = CLK_MODE_XTAL, + .rate_hz = TIMER1_FREQUENCY_MHZ * 1000000, +}; + +static struct clk sp804_timer3_clk = { + .name = "sp804-timer-3", + .type = CLK_TYPE_PRIMARY, + .mode = CLK_MODE_XTAL, + .rate_hz = TIMER3_FREQUENCY_KHZ * 1000, +}; + static struct clk_lookup lookups[] = { { /* Bus clock */ .con_id = "apb_pclk", @@ -107,6 +135,18 @@ static struct clk_lookup lookups[] = { }, { /* UART1 */ .dev_id = "uartb", .clk = &uart_clk, + }, { /* SP804 timer 0 */ + .dev_id = "sp804", + .con_id = "timer0", + .clk = &sp804_timer012_clk, + }, { /* SP804 timer 1 */ + .dev_id = "sp804", + .con_id = "timer1", + .clk = &sp804_timer012_clk, + }, { /* SP804 timer 3 */ + .dev_id = "sp804", + .con_id = "timer3", + .clk = &sp804_timer3_clk, } }; @@ -151,8 +191,6 @@ void __init bcmring_amba_init(void) chipcHw_busInterfaceClockEnable(bus_clock); - clkdev_add_table(lookups, ARRAY_SIZE(lookups)); - for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; amba_device_register(d, &iomem_resource); @@ -162,170 +200,18 @@ void __init bcmring_amba_init(void) /* * Where is the timer (VA)? */ -#define TIMER0_VA_BASE MM_IO_BASE_TMR -#define TIMER1_VA_BASE (MM_IO_BASE_TMR + 0x20) -#define TIMER2_VA_BASE (MM_IO_BASE_TMR + 0x40) -#define TIMER3_VA_BASE (MM_IO_BASE_TMR + 0x60) - -/* Timer 0 - 25 MHz, Timer3 at bus clock rate, typically 150-166 MHz */ -#if defined(CONFIG_ARCH_FPGA11107) -/* fpga cpu/bus are currently 30 times slower so scale frequency as well to */ -/* slow down Linux's sense of time */ -#define TIMER0_FREQUENCY_MHZ (tmrHw_LOW_FREQUENCY_MHZ * 30) -#define TIMER1_FREQUENCY_MHZ (tmrHw_LOW_FREQUENCY_MHZ * 30) -#define TIMER3_FREQUENCY_MHZ (tmrHw_HIGH_FREQUENCY_MHZ * 30) -#define TIMER3_FREQUENCY_KHZ (tmrHw_HIGH_FREQUENCY_HZ / 1000 * 30) -#else -#define TIMER0_FREQUENCY_MHZ tmrHw_LOW_FREQUENCY_MHZ -#define TIMER1_FREQUENCY_MHZ tmrHw_LOW_FREQUENCY_MHZ -#define TIMER3_FREQUENCY_MHZ tmrHw_HIGH_FREQUENCY_MHZ -#define TIMER3_FREQUENCY_KHZ (tmrHw_HIGH_FREQUENCY_HZ / 1000) -#endif - -#define TICKS_PER_uSEC TIMER0_FREQUENCY_MHZ - -/* - * These are useconds NOT ticks. - * - */ -#define mSEC_1 1000 -#define mSEC_5 (mSEC_1 * 5) -#define mSEC_10 (mSEC_1 * 10) -#define mSEC_25 (mSEC_1 * 25) -#define SEC_1 (mSEC_1 * 1000) - -/* - * How long is the timer interval? - */ -#define TIMER_INTERVAL (TICKS_PER_uSEC * mSEC_10) -#if TIMER_INTERVAL >= 0x100000 -#define TIMER_RELOAD (TIMER_INTERVAL >> 8) -#define TIMER_DIVISOR (TIMER_CTRL_DIV256) -#define TICKS2USECS(x) (256 * (x) / TICKS_PER_uSEC) -#elif TIMER_INTERVAL >= 0x10000 -#define TIMER_RELOAD (TIMER_INTERVAL >> 4) /* Divide by 16 */ -#define TIMER_DIVISOR (TIMER_CTRL_DIV16) -#define TICKS2USECS(x) (16 * (x) / TICKS_PER_uSEC) -#else -#define TIMER_RELOAD (TIMER_INTERVAL) -#define TIMER_DIVISOR (TIMER_CTRL_DIV1) -#define TICKS2USECS(x) ((x) / TICKS_PER_uSEC) -#endif - -static void timer_set_mode(enum clock_event_mode mode, - struct clock_event_device *clk) -{ - unsigned long ctrl; - - switch (mode) { - case CLOCK_EVT_MODE_PERIODIC: - writel(TIMER_RELOAD, TIMER0_VA_BASE + TIMER_LOAD); - - ctrl = TIMER_CTRL_PERIODIC; - ctrl |= - TIMER_DIVISOR | TIMER_CTRL_32BIT | TIMER_CTRL_IE | - TIMER_CTRL_ENABLE; - break; - case CLOCK_EVT_MODE_ONESHOT: - /* period set, and timer enabled in 'next_event' hook */ - ctrl = TIMER_CTRL_ONESHOT; - ctrl |= TIMER_DIVISOR | TIMER_CTRL_32BIT | TIMER_CTRL_IE; - break; - case CLOCK_EVT_MODE_UNUSED: - case CLOCK_EVT_MODE_SHUTDOWN: - default: - ctrl = 0; - } - - writel(ctrl, TIMER0_VA_BASE + TIMER_CTRL); -} - -static int timer_set_next_event(unsigned long evt, - struct clock_event_device *unused) -{ - unsigned long ctrl = readl(TIMER0_VA_BASE + TIMER_CTRL); - - writel(evt, TIMER0_VA_BASE + TIMER_LOAD); - writel(ctrl | TIMER_CTRL_ENABLE, TIMER0_VA_BASE + TIMER_CTRL); - - return 0; -} - -static struct clock_event_device timer0_clockevent = { - .name = "timer0", - .shift = 32, - .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, - .set_mode = timer_set_mode, - .set_next_event = timer_set_next_event, -}; - -/* - * IRQ handler for the timer - */ -static irqreturn_t bcmring_timer_interrupt(int irq, void *dev_id) -{ - struct clock_event_device *evt = &timer0_clockevent; - - writel(1, TIMER0_VA_BASE + TIMER_INTCLR); - - evt->event_handler(evt); - - return IRQ_HANDLED; -} - -static struct irqaction bcmring_timer_irq = { - .name = "bcmring Timer Tick", - .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, - .handler = bcmring_timer_interrupt, -}; - -static cycle_t bcmring_get_cycles_timer1(struct clocksource *cs) -{ - return ~readl(TIMER1_VA_BASE + TIMER_VALUE); -} - -static cycle_t bcmring_get_cycles_timer3(struct clocksource *cs) -{ - return ~readl(TIMER3_VA_BASE + TIMER_VALUE); -} - -static struct clocksource clocksource_bcmring_timer1 = { - .name = "timer1", - .rating = 200, - .read = bcmring_get_cycles_timer1, - .mask = CLOCKSOURCE_MASK(32), - .flags = CLOCK_SOURCE_IS_CONTINUOUS, -}; - -static struct clocksource clocksource_bcmring_timer3 = { - .name = "timer3", - .rating = 100, - .read = bcmring_get_cycles_timer3, - .mask = CLOCKSOURCE_MASK(32), - .flags = CLOCK_SOURCE_IS_CONTINUOUS, -}; +#define TIMER0_VA_BASE ((void __iomem *)MM_IO_BASE_TMR) +#define TIMER1_VA_BASE ((void __iomem *)(MM_IO_BASE_TMR + 0x20)) +#define TIMER2_VA_BASE ((void __iomem *)(MM_IO_BASE_TMR + 0x40)) +#define TIMER3_VA_BASE ((void __iomem *)(MM_IO_BASE_TMR + 0x60)) static int __init bcmring_clocksource_init(void) { /* setup timer1 as free-running clocksource */ - writel(0, TIMER1_VA_BASE + TIMER_CTRL); - writel(0xffffffff, TIMER1_VA_BASE + TIMER_LOAD); - writel(0xffffffff, TIMER1_VA_BASE + TIMER_VALUE); - writel(TIMER_CTRL_32BIT | TIMER_CTRL_ENABLE | TIMER_CTRL_PERIODIC, - TIMER1_VA_BASE + TIMER_CTRL); - - clocksource_register_khz(&clocksource_bcmring_timer1, - TIMER1_FREQUENCY_MHZ * 1000); + sp804_clocksource_init(TIMER1_VA_BASE, "timer1"); /* setup timer3 as free-running clocksource */ - writel(0, TIMER3_VA_BASE + TIMER_CTRL); - writel(0xffffffff, TIMER3_VA_BASE + TIMER_LOAD); - writel(0xffffffff, TIMER3_VA_BASE + TIMER_VALUE); - writel(TIMER_CTRL_32BIT | TIMER_CTRL_ENABLE | TIMER_CTRL_PERIODIC, - TIMER3_VA_BASE + TIMER_CTRL); - - clocksource_register_khz(&clocksource_bcmring_timer3, - TIMER3_FREQUENCY_KHZ); + sp804_clocksource_init(TIMER3_VA_BASE, "timer3"); return 0; } @@ -347,21 +233,16 @@ void __init bcmring_init_timer(void) /* * Make irqs happen for the system timer */ - setup_irq(IRQ_TIMER0, &bcmring_timer_irq); - bcmring_clocksource_init(); - timer0_clockevent.mult = - div_sc(1000000, NSEC_PER_SEC, timer0_clockevent.shift); - timer0_clockevent.max_delta_ns = - clockevent_delta2ns(0xffffffff, &timer0_clockevent); - timer0_clockevent.min_delta_ns = - clockevent_delta2ns(0xf, &timer0_clockevent); - - timer0_clockevent.cpumask = cpumask_of(0); - clockevents_register_device(&timer0_clockevent); + sp804_clockevents_register(TIMER0_VA_BASE, IRQ_TIMER0, "timer0"); } struct sys_timer bcmring_timer = { .init = bcmring_init_timer, }; + +void __init bcmring_init_early(void) +{ + clkdev_add_table(lookups, ARRAY_SIZE(lookups)); +} diff --git a/trunk/arch/arm/mach-bcmring/core.h b/trunk/arch/arm/mach-bcmring/core.h index b197ba48e36e..e0e02c48f9b1 100644 --- a/trunk/arch/arm/mach-bcmring/core.h +++ b/trunk/arch/arm/mach-bcmring/core.h @@ -25,6 +25,7 @@ void __init bcmring_amba_init(void); void __init bcmring_map_io(void); void __init bcmring_init_irq(void); +void __init bcmring_init_early(void); extern struct sys_timer bcmring_timer; #endif diff --git a/trunk/arch/arm/mach-davinci/include/mach/memory.h b/trunk/arch/arm/mach-davinci/include/mach/memory.h index 78822723f382..491249ef209c 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/memory.h +++ b/trunk/arch/arm/mach-davinci/include/mach/memory.h @@ -41,27 +41,11 @@ */ #define CONSISTENT_DMA_SIZE (14<<20) -#ifndef __ASSEMBLY__ /* * Restrict DMA-able region to workaround silicon bug. The bug * restricts buffers available for DMA to video hardware to be * below 128M */ -static inline void -__arch_adjust_zones(unsigned long *size, unsigned long *holes) -{ - unsigned int sz = (128<<20) >> PAGE_SHIFT; - - size[1] = size[0] - sz; - size[0] = sz; -} - -#define arch_adjust_zones(zone_size, holes) \ - if ((meminfo.bank[0].size >> 20) > 128) __arch_adjust_zones(zone_size, holes) - -#define ISA_DMA_THRESHOLD (PHYS_OFFSET + (128<<20) - 1) -#define MAX_DMA_ADDRESS (PAGE_OFFSET + (128<<20)) - -#endif +#define ARM_DMA_ZONE_SIZE SZ_128M #endif /* __ASM_ARCH_MEMORY_H */ diff --git a/trunk/arch/arm/mach-davinci/include/mach/uncompress.h b/trunk/arch/arm/mach-davinci/include/mach/uncompress.h index 47723e8d75a4..78d80683cdc2 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/uncompress.h +++ b/trunk/arch/arm/mach-davinci/include/mach/uncompress.h @@ -25,8 +25,7 @@ #include -static u32 *uart; -static u32 *uart_info = (u32 *)(DAVINCI_UART_INFO); +u32 *uart; /* PORT_16C550A, in polled non-fifo mode */ static void putc(char c) @@ -44,6 +43,8 @@ static inline void flush(void) static inline void set_uart_info(u32 phys, void * __iomem virt) { + u32 *uart_info = (u32 *)(DAVINCI_UART_INFO); + uart = (u32 *)phys; uart_info[0] = phys; uart_info[1] = (u32)virt; diff --git a/trunk/arch/arm/mach-davinci/irq.c b/trunk/arch/arm/mach-davinci/irq.c index e6269a6e0014..bfe68ec4e1a6 100644 --- a/trunk/arch/arm/mach-davinci/irq.c +++ b/trunk/arch/arm/mach-davinci/irq.c @@ -29,8 +29,6 @@ #include #include -#define IRQ_BIT(irq) ((irq) & 0x1f) - #define FIQ_REG0_OFFSET 0x0000 #define FIQ_REG1_OFFSET 0x0004 #define IRQ_REG0_OFFSET 0x0008 @@ -42,78 +40,33 @@ #define IRQ_INTPRI0_REG_OFFSET 0x0030 #define IRQ_INTPRI7_REG_OFFSET 0x004C -static inline unsigned int davinci_irq_readl(int offset) -{ - return __raw_readl(davinci_intc_base + offset); -} - static inline void davinci_irq_writel(unsigned long value, int offset) { __raw_writel(value, davinci_intc_base + offset); } -/* Disable interrupt */ -static void davinci_mask_irq(struct irq_data *d) +static __init void +davinci_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num) { - unsigned int mask; - u32 l; - - mask = 1 << IRQ_BIT(d->irq); - - if (d->irq > 31) { - l = davinci_irq_readl(IRQ_ENT_REG1_OFFSET); - l &= ~mask; - davinci_irq_writel(l, IRQ_ENT_REG1_OFFSET); - } else { - l = davinci_irq_readl(IRQ_ENT_REG0_OFFSET); - l &= ~mask; - davinci_irq_writel(l, IRQ_ENT_REG0_OFFSET); - } -} - -/* Enable interrupt */ -static void davinci_unmask_irq(struct irq_data *d) -{ - unsigned int mask; - u32 l; - - mask = 1 << IRQ_BIT(d->irq); - - if (d->irq > 31) { - l = davinci_irq_readl(IRQ_ENT_REG1_OFFSET); - l |= mask; - davinci_irq_writel(l, IRQ_ENT_REG1_OFFSET); - } else { - l = davinci_irq_readl(IRQ_ENT_REG0_OFFSET); - l |= mask; - davinci_irq_writel(l, IRQ_ENT_REG0_OFFSET); - } + struct irq_chip_generic *gc; + struct irq_chip_type *ct; + + gc = irq_alloc_generic_chip("AINTC", 1, irq_start, base, handle_edge_irq); + ct = gc->chip_types; + ct->chip.irq_ack = irq_gc_ack; + ct->chip.irq_mask = irq_gc_mask_clr_bit; + ct->chip.irq_unmask = irq_gc_mask_set_bit; + + ct->regs.ack = IRQ_REG0_OFFSET; + ct->regs.mask = IRQ_ENT_REG0_OFFSET; + irq_setup_generic_chip(gc, IRQ_MSK(num), IRQ_GC_INIT_MASK_CACHE, + IRQ_NOREQUEST | IRQ_NOPROBE, 0); } -/* EOI interrupt */ -static void davinci_ack_irq(struct irq_data *d) -{ - unsigned int mask; - - mask = 1 << IRQ_BIT(d->irq); - - if (d->irq > 31) - davinci_irq_writel(mask, IRQ_REG1_OFFSET); - else - davinci_irq_writel(mask, IRQ_REG0_OFFSET); -} - -static struct irq_chip davinci_irq_chip_0 = { - .name = "AINTC", - .irq_ack = davinci_ack_irq, - .irq_mask = davinci_mask_irq, - .irq_unmask = davinci_unmask_irq, -}; - /* ARM Interrupt Controller Initialization */ void __init davinci_irq_init(void) { - unsigned i; + unsigned i, j; const u8 *davinci_def_priorities = davinci_soc_info.intc_irq_prios; davinci_intc_type = DAVINCI_INTC_TYPE_AINTC; @@ -144,7 +97,6 @@ void __init davinci_irq_init(void) davinci_irq_writel(~0x0, IRQ_REG1_OFFSET); for (i = IRQ_INTPRI0_REG_OFFSET; i <= IRQ_INTPRI7_REG_OFFSET; i += 4) { - unsigned j; u32 pri; for (j = 0, pri = 0; j < 32; j += 4, davinci_def_priorities++) @@ -152,13 +104,8 @@ void __init davinci_irq_init(void) davinci_irq_writel(pri, i); } - /* set up genirq dispatch for ARM INTC */ - for (i = 0; i < davinci_soc_info.intc_irq_num; i++) { - irq_set_chip(i, &davinci_irq_chip_0); - set_irq_flags(i, IRQF_VALID | IRQF_PROBE); - if (i != IRQ_TINT1_TINT34) - irq_set_handler(i, handle_edge_irq); - else - irq_set_handler(i, handle_level_irq); - } + for (i = 0, j = 0; i < davinci_soc_info.intc_irq_num; i += 32, j += 0x04) + davinci_alloc_gc(davinci_intc_base + j, i, 32); + + irq_set_handler(IRQ_TINT1_TINT34, handle_level_irq); } diff --git a/trunk/arch/arm/mach-dove/common.c b/trunk/arch/arm/mach-dove/common.c index e06a88f1f81d..5ed51b84c1b2 100644 --- a/trunk/arch/arm/mach-dove/common.c +++ b/trunk/arch/arm/mach-dove/common.c @@ -16,10 +16,8 @@ #include #include #include -#include -#include #include -#include +#include #include #include #include @@ -32,11 +30,12 @@ #include #include #include -#include -#include #include +#include #include "common.h" +static int get_tclk(void); + /***************************************************************************** * I/O Address Mapping ****************************************************************************/ @@ -69,464 +68,107 @@ void __init dove_map_io(void) iotable_init(dove_io_desc, ARRAY_SIZE(dove_io_desc)); } -/***************************************************************************** - * EHCI - ****************************************************************************/ -static struct orion_ehci_data dove_ehci_data = { - .dram = &dove_mbus_dram_info, - .phy_version = EHCI_PHY_NA, -}; - -static u64 ehci_dmamask = DMA_BIT_MASK(32); - /***************************************************************************** * EHCI0 ****************************************************************************/ -static struct resource dove_ehci0_resources[] = { - { - .start = DOVE_USB0_PHYS_BASE, - .end = DOVE_USB0_PHYS_BASE + SZ_4K - 1, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_DOVE_USB0, - .end = IRQ_DOVE_USB0, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_ehci0 = { - .name = "orion-ehci", - .id = 0, - .dev = { - .dma_mask = &ehci_dmamask, - .coherent_dma_mask = DMA_BIT_MASK(32), - .platform_data = &dove_ehci_data, - }, - .resource = dove_ehci0_resources, - .num_resources = ARRAY_SIZE(dove_ehci0_resources), -}; - void __init dove_ehci0_init(void) { - platform_device_register(&dove_ehci0); + orion_ehci_init(&dove_mbus_dram_info, + DOVE_USB0_PHYS_BASE, IRQ_DOVE_USB0); } /***************************************************************************** * EHCI1 ****************************************************************************/ -static struct resource dove_ehci1_resources[] = { - { - .start = DOVE_USB1_PHYS_BASE, - .end = DOVE_USB1_PHYS_BASE + SZ_4K - 1, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_DOVE_USB1, - .end = IRQ_DOVE_USB1, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_ehci1 = { - .name = "orion-ehci", - .id = 1, - .dev = { - .dma_mask = &ehci_dmamask, - .coherent_dma_mask = DMA_BIT_MASK(32), - .platform_data = &dove_ehci_data, - }, - .resource = dove_ehci1_resources, - .num_resources = ARRAY_SIZE(dove_ehci1_resources), -}; - void __init dove_ehci1_init(void) { - platform_device_register(&dove_ehci1); + orion_ehci_1_init(&dove_mbus_dram_info, + DOVE_USB1_PHYS_BASE, IRQ_DOVE_USB1); } /***************************************************************************** * GE00 ****************************************************************************/ -struct mv643xx_eth_shared_platform_data dove_ge00_shared_data = { - .t_clk = 0, - .dram = &dove_mbus_dram_info, -}; - -static struct resource dove_ge00_shared_resources[] = { - { - .name = "ge00 base", - .start = DOVE_GE00_PHYS_BASE + 0x2000, - .end = DOVE_GE00_PHYS_BASE + SZ_16K - 1, - .flags = IORESOURCE_MEM, - }, -}; - -static struct platform_device dove_ge00_shared = { - .name = MV643XX_ETH_SHARED_NAME, - .id = 0, - .dev = { - .platform_data = &dove_ge00_shared_data, - }, - .num_resources = 1, - .resource = dove_ge00_shared_resources, -}; - -static struct resource dove_ge00_resources[] = { - { - .name = "ge00 irq", - .start = IRQ_DOVE_GE00_SUM, - .end = IRQ_DOVE_GE00_SUM, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_ge00 = { - .name = MV643XX_ETH_NAME, - .id = 0, - .num_resources = 1, - .resource = dove_ge00_resources, - .dev = { - .coherent_dma_mask = 0xffffffff, - }, -}; - void __init dove_ge00_init(struct mv643xx_eth_platform_data *eth_data) { - eth_data->shared = &dove_ge00_shared; - dove_ge00.dev.platform_data = eth_data; - - platform_device_register(&dove_ge00_shared); - platform_device_register(&dove_ge00); + orion_ge00_init(eth_data, &dove_mbus_dram_info, + DOVE_GE00_PHYS_BASE, IRQ_DOVE_GE00_SUM, + 0, get_tclk()); } /***************************************************************************** * SoC RTC ****************************************************************************/ -static struct resource dove_rtc_resource[] = { - { - .start = DOVE_RTC_PHYS_BASE, - .end = DOVE_RTC_PHYS_BASE + 32 - 1, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_DOVE_RTC, - .flags = IORESOURCE_IRQ, - } -}; - void __init dove_rtc_init(void) { - platform_device_register_simple("rtc-mv", -1, dove_rtc_resource, 2); + orion_rtc_init(DOVE_RTC_PHYS_BASE, IRQ_DOVE_RTC); } /***************************************************************************** * SATA ****************************************************************************/ -static struct resource dove_sata_resources[] = { - { - .name = "sata base", - .start = DOVE_SATA_PHYS_BASE, - .end = DOVE_SATA_PHYS_BASE + 0x5000 - 1, - .flags = IORESOURCE_MEM, - }, { - .name = "sata irq", - .start = IRQ_DOVE_SATA, - .end = IRQ_DOVE_SATA, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_sata = { - .name = "sata_mv", - .id = 0, - .dev = { - .coherent_dma_mask = DMA_BIT_MASK(32), - }, - .num_resources = ARRAY_SIZE(dove_sata_resources), - .resource = dove_sata_resources, -}; - void __init dove_sata_init(struct mv_sata_platform_data *sata_data) { - sata_data->dram = &dove_mbus_dram_info; - dove_sata.dev.platform_data = sata_data; - platform_device_register(&dove_sata); + orion_sata_init(sata_data, &dove_mbus_dram_info, + DOVE_SATA_PHYS_BASE, IRQ_DOVE_SATA); + } /***************************************************************************** * UART0 ****************************************************************************/ -static struct plat_serial8250_port dove_uart0_data[] = { - { - .mapbase = DOVE_UART0_PHYS_BASE, - .membase = (char *)DOVE_UART0_VIRT_BASE, - .irq = IRQ_DOVE_UART_0, - .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = 0, - }, { - }, -}; - -static struct resource dove_uart0_resources[] = { - { - .start = DOVE_UART0_PHYS_BASE, - .end = DOVE_UART0_PHYS_BASE + SZ_256 - 1, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_DOVE_UART_0, - .end = IRQ_DOVE_UART_0, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_uart0 = { - .name = "serial8250", - .id = 0, - .dev = { - .platform_data = dove_uart0_data, - }, - .resource = dove_uart0_resources, - .num_resources = ARRAY_SIZE(dove_uart0_resources), -}; - void __init dove_uart0_init(void) { - platform_device_register(&dove_uart0); + orion_uart0_init(DOVE_UART0_VIRT_BASE, DOVE_UART0_PHYS_BASE, + IRQ_DOVE_UART_0, get_tclk()); } /***************************************************************************** * UART1 ****************************************************************************/ -static struct plat_serial8250_port dove_uart1_data[] = { - { - .mapbase = DOVE_UART1_PHYS_BASE, - .membase = (char *)DOVE_UART1_VIRT_BASE, - .irq = IRQ_DOVE_UART_1, - .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = 0, - }, { - }, -}; - -static struct resource dove_uart1_resources[] = { - { - .start = DOVE_UART1_PHYS_BASE, - .end = DOVE_UART1_PHYS_BASE + SZ_256 - 1, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_DOVE_UART_1, - .end = IRQ_DOVE_UART_1, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_uart1 = { - .name = "serial8250", - .id = 1, - .dev = { - .platform_data = dove_uart1_data, - }, - .resource = dove_uart1_resources, - .num_resources = ARRAY_SIZE(dove_uart1_resources), -}; - void __init dove_uart1_init(void) { - platform_device_register(&dove_uart1); + orion_uart1_init(DOVE_UART1_VIRT_BASE, DOVE_UART1_PHYS_BASE, + IRQ_DOVE_UART_1, get_tclk()); } /***************************************************************************** * UART2 ****************************************************************************/ -static struct plat_serial8250_port dove_uart2_data[] = { - { - .mapbase = DOVE_UART2_PHYS_BASE, - .membase = (char *)DOVE_UART2_VIRT_BASE, - .irq = IRQ_DOVE_UART_2, - .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = 0, - }, { - }, -}; - -static struct resource dove_uart2_resources[] = { - { - .start = DOVE_UART2_PHYS_BASE, - .end = DOVE_UART2_PHYS_BASE + SZ_256 - 1, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_DOVE_UART_2, - .end = IRQ_DOVE_UART_2, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_uart2 = { - .name = "serial8250", - .id = 2, - .dev = { - .platform_data = dove_uart2_data, - }, - .resource = dove_uart2_resources, - .num_resources = ARRAY_SIZE(dove_uart2_resources), -}; - void __init dove_uart2_init(void) { - platform_device_register(&dove_uart2); + orion_uart2_init(DOVE_UART2_VIRT_BASE, DOVE_UART2_PHYS_BASE, + IRQ_DOVE_UART_2, get_tclk()); } /***************************************************************************** * UART3 ****************************************************************************/ -static struct plat_serial8250_port dove_uart3_data[] = { - { - .mapbase = DOVE_UART3_PHYS_BASE, - .membase = (char *)DOVE_UART3_VIRT_BASE, - .irq = IRQ_DOVE_UART_3, - .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = 0, - }, { - }, -}; - -static struct resource dove_uart3_resources[] = { - { - .start = DOVE_UART3_PHYS_BASE, - .end = DOVE_UART3_PHYS_BASE + SZ_256 - 1, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_DOVE_UART_3, - .end = IRQ_DOVE_UART_3, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_uart3 = { - .name = "serial8250", - .id = 3, - .dev = { - .platform_data = dove_uart3_data, - }, - .resource = dove_uart3_resources, - .num_resources = ARRAY_SIZE(dove_uart3_resources), -}; - void __init dove_uart3_init(void) { - platform_device_register(&dove_uart3); + orion_uart3_init(DOVE_UART3_VIRT_BASE, DOVE_UART3_PHYS_BASE, + IRQ_DOVE_UART_3, get_tclk()); } /***************************************************************************** - * SPI0 + * SPI ****************************************************************************/ -static struct orion_spi_info dove_spi0_data = { - .tclk = 0, -}; - -static struct resource dove_spi0_resources[] = { - { - .start = DOVE_SPI0_PHYS_BASE, - .end = DOVE_SPI0_PHYS_BASE + SZ_512 - 1, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_DOVE_SPI0, - .end = IRQ_DOVE_SPI0, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_spi0 = { - .name = "orion_spi", - .id = 0, - .resource = dove_spi0_resources, - .dev = { - .platform_data = &dove_spi0_data, - }, - .num_resources = ARRAY_SIZE(dove_spi0_resources), -}; - void __init dove_spi0_init(void) { - platform_device_register(&dove_spi0); + orion_spi_init(DOVE_SPI0_PHYS_BASE, get_tclk()); } -/***************************************************************************** - * SPI1 - ****************************************************************************/ -static struct orion_spi_info dove_spi1_data = { - .tclk = 0, -}; - -static struct resource dove_spi1_resources[] = { - { - .start = DOVE_SPI1_PHYS_BASE, - .end = DOVE_SPI1_PHYS_BASE + SZ_512 - 1, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_DOVE_SPI1, - .end = IRQ_DOVE_SPI1, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_spi1 = { - .name = "orion_spi", - .id = 1, - .resource = dove_spi1_resources, - .dev = { - .platform_data = &dove_spi1_data, - }, - .num_resources = ARRAY_SIZE(dove_spi1_resources), -}; - void __init dove_spi1_init(void) { - platform_device_register(&dove_spi1); + orion_spi_init(DOVE_SPI1_PHYS_BASE, get_tclk()); } /***************************************************************************** * I2C ****************************************************************************/ -static struct mv64xxx_i2c_pdata dove_i2c_data = { - .freq_m = 10, /* assumes 166 MHz TCLK gets 94.3kHz */ - .freq_n = 3, - .timeout = 1000, /* Default timeout of 1 second */ -}; - -static struct resource dove_i2c_resources[] = { - { - .name = "i2c base", - .start = DOVE_I2C_PHYS_BASE, - .end = DOVE_I2C_PHYS_BASE + 0x20 - 1, - .flags = IORESOURCE_MEM, - }, { - .name = "i2c irq", - .start = IRQ_DOVE_I2C, - .end = IRQ_DOVE_I2C, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device dove_i2c = { - .name = MV64XXX_I2C_CTLR_NAME, - .id = 0, - .num_resources = ARRAY_SIZE(dove_i2c_resources), - .resource = dove_i2c_resources, - .dev = { - .platform_data = &dove_i2c_data, - }, -}; - void __init dove_i2c_init(void) { - platform_device_register(&dove_i2c); + orion_i2c_init(DOVE_I2C_PHYS_BASE, IRQ_DOVE_I2C, 10); } /***************************************************************************** @@ -553,209 +195,23 @@ struct sys_timer dove_timer = { .init = dove_timer_init, }; -/***************************************************************************** - * XOR - ****************************************************************************/ -static struct mv_xor_platform_shared_data dove_xor_shared_data = { - .dram = &dove_mbus_dram_info, -}; - /***************************************************************************** * XOR 0 ****************************************************************************/ -static u64 dove_xor0_dmamask = DMA_BIT_MASK(32); - -static struct resource dove_xor0_shared_resources[] = { - { - .name = "xor 0 low", - .start = DOVE_XOR0_PHYS_BASE, - .end = DOVE_XOR0_PHYS_BASE + 0xff, - .flags = IORESOURCE_MEM, - }, { - .name = "xor 0 high", - .start = DOVE_XOR0_HIGH_PHYS_BASE, - .end = DOVE_XOR0_HIGH_PHYS_BASE + 0xff, - .flags = IORESOURCE_MEM, - }, -}; - -static struct platform_device dove_xor0_shared = { - .name = MV_XOR_SHARED_NAME, - .id = 0, - .dev = { - .platform_data = &dove_xor_shared_data, - }, - .num_resources = ARRAY_SIZE(dove_xor0_shared_resources), - .resource = dove_xor0_shared_resources, -}; - -static struct resource dove_xor00_resources[] = { - [0] = { - .start = IRQ_DOVE_XOR_00, - .end = IRQ_DOVE_XOR_00, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct mv_xor_platform_data dove_xor00_data = { - .shared = &dove_xor0_shared, - .hw_id = 0, - .pool_size = PAGE_SIZE, -}; - -static struct platform_device dove_xor00_channel = { - .name = MV_XOR_NAME, - .id = 0, - .num_resources = ARRAY_SIZE(dove_xor00_resources), - .resource = dove_xor00_resources, - .dev = { - .dma_mask = &dove_xor0_dmamask, - .coherent_dma_mask = DMA_BIT_MASK(64), - .platform_data = &dove_xor00_data, - }, -}; - -static struct resource dove_xor01_resources[] = { - [0] = { - .start = IRQ_DOVE_XOR_01, - .end = IRQ_DOVE_XOR_01, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct mv_xor_platform_data dove_xor01_data = { - .shared = &dove_xor0_shared, - .hw_id = 1, - .pool_size = PAGE_SIZE, -}; - -static struct platform_device dove_xor01_channel = { - .name = MV_XOR_NAME, - .id = 1, - .num_resources = ARRAY_SIZE(dove_xor01_resources), - .resource = dove_xor01_resources, - .dev = { - .dma_mask = &dove_xor0_dmamask, - .coherent_dma_mask = DMA_BIT_MASK(64), - .platform_data = &dove_xor01_data, - }, -}; - void __init dove_xor0_init(void) { - platform_device_register(&dove_xor0_shared); - - /* - * two engines can't do memset simultaneously, this limitation - * satisfied by removing memset support from one of the engines. - */ - dma_cap_set(DMA_MEMCPY, dove_xor00_data.cap_mask); - dma_cap_set(DMA_XOR, dove_xor00_data.cap_mask); - platform_device_register(&dove_xor00_channel); - - dma_cap_set(DMA_MEMCPY, dove_xor01_data.cap_mask); - dma_cap_set(DMA_MEMSET, dove_xor01_data.cap_mask); - dma_cap_set(DMA_XOR, dove_xor01_data.cap_mask); - platform_device_register(&dove_xor01_channel); + orion_xor0_init(&dove_mbus_dram_info, + DOVE_XOR0_PHYS_BASE, DOVE_XOR0_HIGH_PHYS_BASE, + IRQ_DOVE_XOR_00, IRQ_DOVE_XOR_01); } /***************************************************************************** * XOR 1 ****************************************************************************/ -static u64 dove_xor1_dmamask = DMA_BIT_MASK(32); - -static struct resource dove_xor1_shared_resources[] = { - { - .name = "xor 0 low", - .start = DOVE_XOR1_PHYS_BASE, - .end = DOVE_XOR1_PHYS_BASE + 0xff, - .flags = IORESOURCE_MEM, - }, { - .name = "xor 0 high", - .start = DOVE_XOR1_HIGH_PHYS_BASE, - .end = DOVE_XOR1_HIGH_PHYS_BASE + 0xff, - .flags = IORESOURCE_MEM, - }, -}; - -static struct platform_device dove_xor1_shared = { - .name = MV_XOR_SHARED_NAME, - .id = 1, - .dev = { - .platform_data = &dove_xor_shared_data, - }, - .num_resources = ARRAY_SIZE(dove_xor1_shared_resources), - .resource = dove_xor1_shared_resources, -}; - -static struct resource dove_xor10_resources[] = { - [0] = { - .start = IRQ_DOVE_XOR_10, - .end = IRQ_DOVE_XOR_10, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct mv_xor_platform_data dove_xor10_data = { - .shared = &dove_xor1_shared, - .hw_id = 0, - .pool_size = PAGE_SIZE, -}; - -static struct platform_device dove_xor10_channel = { - .name = MV_XOR_NAME, - .id = 2, - .num_resources = ARRAY_SIZE(dove_xor10_resources), - .resource = dove_xor10_resources, - .dev = { - .dma_mask = &dove_xor1_dmamask, - .coherent_dma_mask = DMA_BIT_MASK(64), - .platform_data = &dove_xor10_data, - }, -}; - -static struct resource dove_xor11_resources[] = { - [0] = { - .start = IRQ_DOVE_XOR_11, - .end = IRQ_DOVE_XOR_11, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct mv_xor_platform_data dove_xor11_data = { - .shared = &dove_xor1_shared, - .hw_id = 1, - .pool_size = PAGE_SIZE, -}; - -static struct platform_device dove_xor11_channel = { - .name = MV_XOR_NAME, - .id = 3, - .num_resources = ARRAY_SIZE(dove_xor11_resources), - .resource = dove_xor11_resources, - .dev = { - .dma_mask = &dove_xor1_dmamask, - .coherent_dma_mask = DMA_BIT_MASK(64), - .platform_data = &dove_xor11_data, - }, -}; - void __init dove_xor1_init(void) { - platform_device_register(&dove_xor1_shared); - - /* - * two engines can't do memset simultaneously, this limitation - * satisfied by removing memset support from one of the engines. - */ - dma_cap_set(DMA_MEMCPY, dove_xor10_data.cap_mask); - dma_cap_set(DMA_XOR, dove_xor10_data.cap_mask); - platform_device_register(&dove_xor10_channel); - - dma_cap_set(DMA_MEMCPY, dove_xor11_data.cap_mask); - dma_cap_set(DMA_MEMSET, dove_xor11_data.cap_mask); - dma_cap_set(DMA_XOR, dove_xor11_data.cap_mask); - platform_device_register(&dove_xor11_channel); + orion_xor1_init(DOVE_XOR1_PHYS_BASE, DOVE_XOR1_HIGH_PHYS_BASE, + IRQ_DOVE_XOR_10, IRQ_DOVE_XOR_11); } /***************************************************************************** @@ -833,14 +289,6 @@ void __init dove_init(void) #endif dove_setup_cpu_mbus(); - dove_ge00_shared_data.t_clk = tclk; - dove_uart0_data[0].uartclk = tclk; - dove_uart1_data[0].uartclk = tclk; - dove_uart2_data[0].uartclk = tclk; - dove_uart3_data[0].uartclk = tclk; - dove_spi0_data.tclk = tclk; - dove_spi1_data.tclk = tclk; - /* internal devices that every board has */ dove_rtc_init(); dove_xor0_init(); diff --git a/trunk/arch/arm/mach-dove/mpp.c b/trunk/arch/arm/mach-dove/mpp.c index c66c76346904..51e0e411c9cb 100644 --- a/trunk/arch/arm/mach-dove/mpp.c +++ b/trunk/arch/arm/mach-dove/mpp.c @@ -11,24 +11,17 @@ #include #include #include - +#include #include - #include "mpp.h" -#define MPP_NR_REGS 4 -#define MPP_CTRL(i) ((i) == 3 ? \ - DOVE_MPP_CTRL4_VIRT_BASE : \ - DOVE_MPP_VIRT_BASE + (i) * 4) -#define PMU_SIG_REGS 2 -#define PMU_SIG_CTRL(i) (DOVE_PMU_SIG_CTRL + (i) * 4) - struct dove_mpp_grp { int start; int end; }; -static struct dove_mpp_grp dove_mpp_grp[] = { +/* Map a group to a range of GPIO pins in that group */ +static const struct dove_mpp_grp dove_mpp_grp[] = { [MPP_24_39] = { .start = 24, .end = 39, @@ -38,8 +31,8 @@ static struct dove_mpp_grp dove_mpp_grp[] = { .end = 45, }, [MPP_46_51] = { - .start = 40, - .end = 45, + .start = 46, + .end = 51, }, [MPP_58_61] = { .start = 58, @@ -51,6 +44,8 @@ static struct dove_mpp_grp dove_mpp_grp[] = { }, }; +/* Enable gpio for a range of pins. mode should be a combination of + GPIO_OUTPUT_OK | GPIO_INPUT_OK */ static void dove_mpp_gpio_mode(int start, int end, int gpio_mode) { int i; @@ -59,24 +54,17 @@ static void dove_mpp_gpio_mode(int start, int end, int gpio_mode) orion_gpio_set_valid(i, gpio_mode); } +/* Dump all the extra MPP registers. The platform code will dump the + registers for pins 0-23. */ static void dove_mpp_dump_regs(void) { -#ifdef DEBUG - int i; + pr_debug("PMU_CTRL4_CTRL: %08x\n", + readl(DOVE_MPP_CTRL4_VIRT_BASE)); - pr_debug("MPP_CTRL regs:"); - for (i = 0; i < MPP_NR_REGS; i++) - printk(" %08x", readl(MPP_CTRL(i))); - printk("\n"); + pr_debug("PMU_MPP_GENERAL_CTRL: %08x\n", + readl(DOVE_PMU_MPP_GENERAL_CTRL)); - pr_debug("PMU_SIG_CTRL regs:"); - for (i = 0; i < PMU_SIG_REGS; i++) - printk(" %08x", readl(PMU_SIG_CTRL(i))); - printk("\n"); - - pr_debug("PMU_MPP_GENERAL_CTRL: %08x\n", readl(DOVE_PMU_MPP_GENERAL_CTRL)); pr_debug("MPP_GENERAL: %08x\n", readl(DOVE_MPP_GENERAL_VIRT_BASE)); -#endif } static void dove_mpp_cfg_nfc(int sel) @@ -92,7 +80,7 @@ static void dove_mpp_cfg_nfc(int sel) static void dove_mpp_cfg_au1(int sel) { - u32 mpp_ctrl4 = readl(DOVE_MPP_CTRL4_VIRT_BASE); + u32 mpp_ctrl4 = readl(DOVE_MPP_CTRL4_VIRT_BASE); u32 ssp_ctrl1 = readl(DOVE_SSP_CTRL_STATUS_1); u32 mpp_gen_ctrl = readl(DOVE_MPP_GENERAL_VIRT_BASE); u32 global_cfg_2 = readl(DOVE_GLOBAL_CONFIG_2); @@ -128,82 +116,46 @@ static void dove_mpp_cfg_au1(int sel) writel(global_cfg_2, DOVE_GLOBAL_CONFIG_2); } -static void dove_mpp_conf_grp(int num, int sel, u32 *mpp_ctrl) -{ - int start = dove_mpp_grp[num].start; - int end = dove_mpp_grp[num].end; - int gpio_mode = sel ? GPIO_OUTPUT_OK | GPIO_INPUT_OK : 0; - - *mpp_ctrl &= ~(0x1 << num); - *mpp_ctrl |= sel << num; - - dove_mpp_gpio_mode(start, end, gpio_mode); -} - -void __init dove_mpp_conf(unsigned int *mpp_list) +/* Configure the group registers, enabling GPIO if sel indicates the + pin is to be used for GPIO */ +static void dove_mpp_conf_grp(unsigned int *mpp_grp_list) { - u32 mpp_ctrl[MPP_NR_REGS]; - u32 pmu_mpp_ctrl = 0; - u32 pmu_sig_ctrl[PMU_SIG_REGS]; - int i; - - for (i = 0; i < MPP_NR_REGS; i++) - mpp_ctrl[i] = readl(MPP_CTRL(i)); - - for (i = 0; i < PMU_SIG_REGS; i++) - pmu_sig_ctrl[i] = readl(PMU_SIG_CTRL(i)); - - pmu_mpp_ctrl = readl(DOVE_PMU_MPP_GENERAL_CTRL); + u32 mpp_ctrl4 = readl(DOVE_MPP_CTRL4_VIRT_BASE); + int gpio_mode; - dove_mpp_dump_regs(); - - for ( ; *mpp_list != MPP_END; mpp_list++) { - unsigned int num = MPP_NUM(*mpp_list); - unsigned int sel = MPP_SEL(*mpp_list); - int shift, gpio_mode; - - if (num > MPP_MAX) { - pr_err("dove: invalid MPP number (%u)\n", num); - continue; - } - - if (*mpp_list & MPP_NFC_MASK) { - dove_mpp_cfg_nfc(sel); - continue; - } + for ( ; *mpp_grp_list; mpp_grp_list++) { + unsigned int num = MPP_NUM(*mpp_grp_list); + unsigned int sel = MPP_SEL(*mpp_grp_list); - if (*mpp_list & MPP_AU1_MASK) { - dove_mpp_cfg_au1(sel); + if (num > MPP_GRP_MAX) { + pr_err("dove: invalid MPP GRP number (%u)\n", num); continue; } - if (*mpp_list & MPP_GRP_MASK) { - dove_mpp_conf_grp(num, sel, &mpp_ctrl[3]); - continue; - } - - shift = (num & 7) << 2; - if (*mpp_list & MPP_PMU_MASK) { - pmu_mpp_ctrl |= (0x1 << num); - pmu_sig_ctrl[num / 8] &= ~(0xf << shift); - pmu_sig_ctrl[num / 8] |= 0xf << shift; - gpio_mode = 0; - } else { - mpp_ctrl[num / 8] &= ~(0xf << shift); - mpp_ctrl[num / 8] |= sel << shift; - gpio_mode = GPIO_OUTPUT_OK | GPIO_INPUT_OK; - } + mpp_ctrl4 &= ~(0x1 << num); + mpp_ctrl4 |= sel << num; - orion_gpio_set_valid(num, gpio_mode); + gpio_mode = sel ? GPIO_OUTPUT_OK | GPIO_INPUT_OK : 0; + dove_mpp_gpio_mode(dove_mpp_grp[num].start, + dove_mpp_grp[num].end, gpio_mode); } + writel(mpp_ctrl4, DOVE_MPP_CTRL4_VIRT_BASE); +} - for (i = 0; i < MPP_NR_REGS; i++) - writel(mpp_ctrl[i], MPP_CTRL(i)); +/* Configure the various MPP pins on Dove */ +void __init dove_mpp_conf(unsigned int *mpp_list, + unsigned int *mpp_grp_list, + unsigned int grp_au1_52_57, + unsigned int grp_nfc_64_71) +{ + dove_mpp_dump_regs(); - for (i = 0; i < PMU_SIG_REGS; i++) - writel(pmu_sig_ctrl[i], PMU_SIG_CTRL(i)); + /* Use platform code for pins 0-23 */ + orion_mpp_conf(mpp_list, 0, MPP_MAX, DOVE_MPP_VIRT_BASE); - writel(pmu_mpp_ctrl, DOVE_PMU_MPP_GENERAL_CTRL); + dove_mpp_conf_grp(mpp_grp_list); + dove_mpp_cfg_au1(grp_au1_52_57); + dove_mpp_cfg_nfc(grp_nfc_64_71); dove_mpp_dump_regs(); } diff --git a/trunk/arch/arm/mach-dove/mpp.h b/trunk/arch/arm/mach-dove/mpp.h index 2a43ce413b15..fbec7c52bfac 100644 --- a/trunk/arch/arm/mach-dove/mpp.h +++ b/trunk/arch/arm/mach-dove/mpp.h @@ -1,178 +1,150 @@ #ifndef __ARCH_DOVE_MPP_CODED_H #define __ARCH_DOVE_MPP_CODED_H -#define MPP(_num, _mode, _pmu, _grp, _au1, _nfc) ( \ -/* MPP/group number */ ((_num) & 0xff) | \ -/* MPP select value */ (((_mode) & 0xf) << 8) | \ -/* MPP PMU */ ((!!(_pmu)) << 12) | \ -/* group flag */ ((!!(_grp)) << 13) | \ -/* AU1 flag */ ((!!(_au1)) << 14) | \ -/* NFCE flag */ ((!!(_nfc)) << 15)) - -#define MPP_MAX 71 - -#define MPP_NUM(x) ((x) & 0xff) -#define MPP_SEL(x) (((x) >> 8) & 0xf) - -#define MPP_PMU_MASK MPP(0, 0x0, 1, 0, 0, 0) -#define MPP_GRP_MASK MPP(0, 0x0, 0, 1, 0, 0) -#define MPP_AU1_MASK MPP(0, 0x0, 0, 0, 1, 0) -#define MPP_NFC_MASK MPP(0, 0x0, 0, 0, 0, 1) - -#define MPP_END MPP(0xff, 0xf, 1, 1, 1, 1) - -#define MPP_PMU_DRIVE_0 0x1 -#define MPP_PMU_DRIVE_1 0x2 -#define MPP_PMU_SDI 0x3 -#define MPP_PMU_CPU_PWRDWN 0x4 -#define MPP_PMU_STBY_PWRDWN 0x5 -#define MPP_PMU_CORE_PWR_GOOD 0x8 -#define MPP_PMU_BAT_FAULT 0xa -#define MPP_PMU_EXT0_WU 0xb -#define MPP_PMU_EXT1_WU 0xc -#define MPP_PMU_EXT2_WU 0xd -#define MPP_PMU_BLINK 0xe -#define MPP_PMU(_num, _mode) MPP((_num), MPP_PMU_##_mode, 1, 0, 0, 0) - -#define MPP_PIN(_num, _mode) MPP((_num), (_mode), 0, 0, 0, 0) -#define MPP_GRP(_grp, _mode) MPP((_grp), (_mode), 0, 1, 0, 0) -#define MPP_GRP_AU1(_mode) MPP(0, (_mode), 0, 0, 1, 0) -#define MPP_GRP_NFC(_mode) MPP(0, (_mode), 0, 0, 0, 1) - -#define MPP0_GPIO0 MPP_PIN(0, 0x0) -#define MPP0_UA2_RTSn MPP_PIN(0, 0x2) -#define MPP0_SDIO0_CD MPP_PIN(0, 0x3) -#define MPP0_LCD0_PWM MPP_PIN(0, 0xf) - -#define MPP1_GPIO1 MPP_PIN(1, 0x0) -#define MPP1_UA2_CTSn MPP_PIN(1, 0x2) -#define MPP1_SDIO0_WP MPP_PIN(1, 0x3) -#define MPP1_LCD1_PWM MPP_PIN(1, 0xf) - -#define MPP2_GPIO2 MPP_PIN(2, 0x0) -#define MPP2_SATA_PRESENT MPP_PIN(2, 0x1) -#define MPP2_UA2_TXD MPP_PIN(2, 0x2) -#define MPP2_SDIO0_BUS_POWER MPP_PIN(2, 0x3) -#define MPP2_UA_RTSn1 MPP_PIN(2, 0x4) - -#define MPP3_GPIO3 MPP_PIN(3, 0x0) -#define MPP3_SATA_ACT MPP_PIN(3, 0x1) -#define MPP3_UA2_RXD MPP_PIN(3, 0x2) -#define MPP3_SDIO0_LED_CTRL MPP_PIN(3, 0x3) -#define MPP3_UA_CTSn1 MPP_PIN(3, 0x4) -#define MPP3_SPI_LCD_CS1 MPP_PIN(3, 0xf) - -#define MPP4_GPIO4 MPP_PIN(4, 0x0) -#define MPP4_UA3_RTSn MPP_PIN(4, 0x2) -#define MPP4_SDIO1_CD MPP_PIN(4, 0x3) -#define MPP4_SPI_1_MISO MPP_PIN(4, 0x4) - -#define MPP5_GPIO5 MPP_PIN(5, 0x0) -#define MPP5_UA3_CTSn MPP_PIN(5, 0x2) -#define MPP5_SDIO1_WP MPP_PIN(5, 0x3) -#define MPP5_SPI_1_CS MPP_PIN(5, 0x4) - -#define MPP6_GPIO6 MPP_PIN(6, 0x0) -#define MPP6_UA3_TXD MPP_PIN(6, 0x2) -#define MPP6_SDIO1_BUS_POWER MPP_PIN(6, 0x3) -#define MPP6_SPI_1_MOSI MPP_PIN(6, 0x4) - -#define MPP7_GPIO7 MPP_PIN(7, 0x0) -#define MPP7_UA3_RXD MPP_PIN(7, 0x2) -#define MPP7_SDIO1_LED_CTRL MPP_PIN(7, 0x3) -#define MPP7_SPI_1_SCK MPP_PIN(7, 0x4) - -#define MPP8_GPIO8 MPP_PIN(8, 0x0) -#define MPP8_WD_RST_OUT MPP_PIN(8, 0x1) - -#define MPP9_GPIO9 MPP_PIN(9, 0x0) -#define MPP9_PEX1_CLKREQn MPP_PIN(9, 0x5) - -#define MPP10_GPIO10 MPP_PIN(10, 0x0) -#define MPP10_SSP_SCLK MPP_PIN(10, 0x5) - -#define MPP11_GPIO11 MPP_PIN(11, 0x0) -#define MPP11_SATA_PRESENT MPP_PIN(11, 0x1) -#define MPP11_SATA_ACT MPP_PIN(11, 0x2) -#define MPP11_SDIO0_LED_CTRL MPP_PIN(11, 0x3) -#define MPP11_SDIO1_LED_CTRL MPP_PIN(11, 0x4) -#define MPP11_PEX0_CLKREQn MPP_PIN(11, 0x5) - -#define MPP12_GPIO12 MPP_PIN(12, 0x0) -#define MPP12_SATA_ACT MPP_PIN(12, 0x1) -#define MPP12_UA2_RTSn MPP_PIN(12, 0x2) -#define MPP12_AD0_I2S_EXT_MCLK MPP_PIN(12, 0x3) -#define MPP12_SDIO1_CD MPP_PIN(12, 0x4) - -#define MPP13_GPIO13 MPP_PIN(13, 0x0) -#define MPP13_UA2_CTSn MPP_PIN(13, 0x2) -#define MPP13_AD1_I2S_EXT_MCLK MPP_PIN(13, 0x3) -#define MPP13_SDIO1WP MPP_PIN(13, 0x4) -#define MPP13_SSP_EXTCLK MPP_PIN(13, 0x5) - -#define MPP14_GPIO14 MPP_PIN(14, 0x0) -#define MPP14_UA2_TXD MPP_PIN(14, 0x2) -#define MPP14_SDIO1_BUS_POWER MPP_PIN(14, 0x4) -#define MPP14_SSP_RXD MPP_PIN(14, 0x5) - -#define MPP15_GPIO15 MPP_PIN(15, 0x0) -#define MPP15_UA2_RXD MPP_PIN(15, 0x2) -#define MPP15_SDIO1_LED_CTRL MPP_PIN(15, 0x4) -#define MPP15_SSP_SFRM MPP_PIN(15, 0x5) - -#define MPP16_GPIO16 MPP_PIN(16, 0x0) -#define MPP16_UA3_RTSn MPP_PIN(16, 0x2) -#define MPP16_SDIO0_CD MPP_PIN(16, 0x3) -#define MPP16_SPI_LCD_CS1 MPP_PIN(16, 0x4) -#define MPP16_AC97_SDATA_IN1 MPP_PIN(16, 0x5) - -#define MPP17_GPIO17 MPP_PIN(17, 0x0) -#define MPP17_AC97_SYSCLK_OUT MPP_PIN(17, 0x1) -#define MPP17_UA3_CTSn MPP_PIN(17, 0x2) -#define MPP17_SDIO0_WP MPP_PIN(17, 0x3) -#define MPP17_TW_SDA2 MPP_PIN(17, 0x4) -#define MPP17_AC97_SDATA_IN2 MPP_PIN(17, 0x5) - -#define MPP18_GPIO18 MPP_PIN(18, 0x0) -#define MPP18_UA3_TXD MPP_PIN(18, 0x2) -#define MPP18_SDIO0_BUS_POWER MPP_PIN(18, 0x3) -#define MPP18_LCD0_PWM MPP_PIN(18, 0x4) -#define MPP18_AC_SDATA_IN3 MPP_PIN(18, 0x5) - -#define MPP19_GPIO19 MPP_PIN(19, 0x0) -#define MPP19_UA3_RXD MPP_PIN(19, 0x2) -#define MPP19_SDIO0_LED_CTRL MPP_PIN(19, 0x3) -#define MPP19_TW_SCK2 MPP_PIN(19, 0x4) - -#define MPP20_GPIO20 MPP_PIN(20, 0x0) -#define MPP20_AC97_SYSCLK_OUT MPP_PIN(20, 0x1) -#define MPP20_SPI_LCD_MISO MPP_PIN(20, 0x2) -#define MPP20_SDIO1_CD MPP_PIN(20, 0x3) -#define MPP20_SDIO0_CD MPP_PIN(20, 0x5) -#define MPP20_SPI_1_MISO MPP_PIN(20, 0x6) - -#define MPP21_GPIO21 MPP_PIN(21, 0x0) -#define MPP21_UA1_RTSn MPP_PIN(21, 0x1) -#define MPP21_SPI_LCD_CS0 MPP_PIN(21, 0x2) -#define MPP21_SDIO1_WP MPP_PIN(21, 0x3) -#define MPP21_SSP_SFRM MPP_PIN(21, 0x4) -#define MPP21_SDIO0_WP MPP_PIN(21, 0x5) -#define MPP21_SPI_1_CS MPP_PIN(21, 0x6) - -#define MPP22_GPIO22 MPP_PIN(22, 0x0) -#define MPP22_UA1_CTSn MPP_PIN(22, 0x1) -#define MPP22_SPI_LCD_MOSI MPP_PIN(22, 0x2) -#define MPP22_SDIO1_BUS_POWER MPP_PIN(22, 0x3) -#define MPP22_SSP_TXD MPP_PIN(22, 0x4) -#define MPP22_SDIO0_BUS_POWER MPP_PIN(22, 0x5) -#define MPP22_SPI_1_MOSI MPP_PIN(22, 0x6) - -#define MPP23_GPIO23 MPP_PIN(23, 0x0) -#define MPP23_SPI_LCD_SCK MPP_PIN(23, 0x2) -#define MPP23_SDIO1_LED_CTRL MPP_PIN(23, 0x3) -#define MPP23_SSP_SCLK MPP_PIN(23, 0x4) -#define MPP23_SDIO0_LED_CTRL MPP_PIN(23, 0x5) -#define MPP23_SPI_1_SCK MPP_PIN(23, 0x6) +#define MPP(_num, _sel, _in, _out) ( \ + /* MPP number */ ((_num) & 0xff) | \ + /* MPP select value */ (((_sel) & 0xf) << 8) | \ + /* may be input signal */ ((!!(_in)) << 12) | \ + /* may be output signal */ ((!!(_out)) << 13)) + +#define MPP0_GPIO0 MPP(0, 0x0, 1, 1) +#define MPP0_UA2_RTSn MPP(0, 0x2, 0, 0) +#define MPP0_SDIO0_CD MPP(0, 0x3, 0, 0) +#define MPP0_LCD0_PWM MPP(0, 0xf, 0, 0) + +#define MPP1_GPIO1 MPP(1, 0x0, 1, 1) +#define MPP1_UA2_CTSn MPP(1, 0x2, 0, 0) +#define MPP1_SDIO0_WP MPP(1, 0x3, 0, 0) +#define MPP1_LCD1_PWM MPP(1, 0xf, 0, 0) + +#define MPP2_GPIO2 MPP(2, 0x0, 1, 1) +#define MPP2_SATA_PRESENT MPP(2, 0x1, 0, 0) +#define MPP2_UA2_TXD MPP(2, 0x2, 0, 0) +#define MPP2_SDIO0_BUS_POWER MPP(2, 0x3, 0, 0) +#define MPP2_UA_RTSn1 MPP(2, 0x4, 0, 0) + +#define MPP3_GPIO3 MPP(3, 0x0, 1, 1) +#define MPP3_SATA_ACT MPP(3, 0x1, 0, 0) +#define MPP3_UA2_RXD MPP(3, 0x2, 0, 0) +#define MPP3_SDIO0_LED_CTRL MPP(3, 0x3, 0, 0) +#define MPP3_UA_CTSn1 MPP(3, 0x4, 0, 0) +#define MPP3_SPI_LCD_CS1 MPP(3, 0xf, 0, 0) + +#define MPP4_GPIO4 MPP(4, 0x0, 1, 1) +#define MPP4_UA3_RTSn MPP(4, 0x2, 0, 0) +#define MPP4_SDIO1_CD MPP(4, 0x3, 0, 0) +#define MPP4_SPI_1_MISO MPP(4, 0x4, 0, 0) + +#define MPP5_GPIO5 MPP(5, 0x0, 1, 1) +#define MPP5_UA3_CTSn MPP(5, 0x2, 0, 0) +#define MPP5_SDIO1_WP MPP(5, 0x3, 0, 0) +#define MPP5_SPI_1_CS MPP(5, 0x4, 0, 0) + +#define MPP6_GPIO6 MPP(6, 0x0, 1, 1) +#define MPP6_UA3_TXD MPP(6, 0x2, 0, 0) +#define MPP6_SDIO1_BUS_POWER MPP(6, 0x3, 0, 0) +#define MPP6_SPI_1_MOSI MPP(6, 0x4, 0, 0) + +#define MPP7_GPIO7 MPP(7, 0x0, 1, 1) +#define MPP7_UA3_RXD MPP(7, 0x2, 0, 0) +#define MPP7_SDIO1_LED_CTRL MPP(7, 0x3, 0, 0) +#define MPP7_SPI_1_SCK MPP(7, 0x4, 0, 0) + +#define MPP8_GPIO8 MPP(8, 0x0, 1, 1) +#define MPP8_WD_RST_OUT MPP(8, 0x1, 0, 0) + +#define MPP9_GPIO9 MPP(9, 0x0, 1, 1) +#define MPP9_PEX1_CLKREQn MPP(9, 0x5, 0, 0) + +#define MPP10_GPIO10 MPP(10, 0x0, 1, 1) +#define MPP10_SSP_SCLK MPP(10, 0x5, 0, 0) + +#define MPP11_GPIO11 MPP(11, 0x0, 1, 1) +#define MPP11_SATA_PRESENT MPP(11, 0x1, 0, 0) +#define MPP11_SATA_ACT MPP(11, 0x2, 0, 0) +#define MPP11_SDIO0_LED_CTRL MPP(11, 0x3, 0, 0) +#define MPP11_SDIO1_LED_CTRL MPP(11, 0x4, 0, 0) +#define MPP11_PEX0_CLKREQn MPP(11, 0x5, 0, 0) + +#define MPP12_GPIO12 MPP(12, 0x0, 1, 1) +#define MPP12_SATA_ACT MPP(12, 0x1, 0, 0) +#define MPP12_UA2_RTSn MPP(12, 0x2, 0, 0) +#define MPP12_AD0_I2S_EXT_MCLK MPP(12, 0x3, 0, 0) +#define MPP12_SDIO1_CD MPP(12, 0x4, 0, 0) + +#define MPP13_GPIO13 MPP(13, 0x0, 1, 1) +#define MPP13_UA2_CTSn MPP(13, 0x2, 0, 0) +#define MPP13_AD1_I2S_EXT_MCLK MPP(13, 0x3, 0, 0) +#define MPP13_SDIO1WP MPP(13, 0x4, 0, 0) +#define MPP13_SSP_EXTCLK MPP(13, 0x5, 0, 0) + +#define MPP14_GPIO14 MPP(14, 0x0, 1, 1) +#define MPP14_UA2_TXD MPP(14, 0x2, 0, 0) +#define MPP14_SDIO1_BUS_POWER MPP(14, 0x4, 0, 0) +#define MPP14_SSP_RXD MPP(14, 0x5, 0, 0) + +#define MPP15_GPIO15 MPP(15, 0x0, 1, 1) +#define MPP15_UA2_RXD MPP(15, 0x2, 0, 0) +#define MPP15_SDIO1_LED_CTRL MPP(15, 0x4, 0, 0) +#define MPP15_SSP_SFRM MPP(15, 0x5, 0, 0) + +#define MPP16_GPIO16 MPP(16, 0x0, 1, 1) +#define MPP16_UA3_RTSn MPP(16, 0x2, 0, 0) +#define MPP16_SDIO0_CD MPP(16, 0x3, 0, 0) +#define MPP16_SPI_LCD_CS1 MPP(16, 0x4, 0, 0) +#define MPP16_AC97_SDATA_IN1 MPP(16, 0x5, 0, 0) + +#define MPP17_GPIO17 MPP(17, 0x0, 1, 1) +#define MPP17_AC97_SYSCLK_OUT MPP(17, 0x1, 0, 0) +#define MPP17_UA3_CTSn MPP(17, 0x2, 0, 0) +#define MPP17_SDIO0_WP MPP(17, 0x3, 0, 0) +#define MPP17_TW_SDA2 MPP(17, 0x4, 0, 0) +#define MPP17_AC97_SDATA_IN2 MPP(17, 0x5, 0, 0) + +#define MPP18_GPIO18 MPP(18, 0x0, 1, 1) +#define MPP18_UA3_TXD MPP(18, 0x2, 0, 0) +#define MPP18_SDIO0_BUS_POWER MPP(18, 0x3, 0, 0) +#define MPP18_LCD0_PWM MPP(18, 0x4, 0, 0) +#define MPP18_AC_SDATA_IN3 MPP(18, 0x5, 0, 0) + +#define MPP19_GPIO19 MPP(19, 0x0, 1, 1) +#define MPP19_UA3_RXD MPP(19, 0x2, 0, 0) +#define MPP19_SDIO0_LED_CTRL MPP(19, 0x3, 0, 0) +#define MPP19_TW_SCK2 MPP(19, 0x4, 0, 0) + +#define MPP20_GPIO20 MPP(20, 0x0, 1, 1) +#define MPP20_AC97_SYSCLK_OUT MPP(20, 0x1, 0, 0) +#define MPP20_SPI_LCD_MISO MPP(20, 0x2, 0, 0) +#define MPP20_SDIO1_CD MPP(20, 0x3, 0, 0) +#define MPP20_SDIO0_CD MPP(20, 0x5, 0, 0) +#define MPP20_SPI_1_MISO MPP(20, 0x6, 0, 0) + +#define MPP21_GPIO21 MPP(21, 0x0, 1, 1) +#define MPP21_UA1_RTSn MPP(21, 0x1, 0, 0) +#define MPP21_SPI_LCD_CS0 MPP(21, 0x2, 0, 0) +#define MPP21_SDIO1_WP MPP(21, 0x3, 0, 0) +#define MPP21_SSP_SFRM MPP(21, 0x4, 0, 0) +#define MPP21_SDIO0_WP MPP(21, 0x5, 0, 0) +#define MPP21_SPI_1_CS MPP(21, 0x6, 0, 0) + +#define MPP22_GPIO22 MPP(22, 0x0, 1, 1) +#define MPP22_UA1_CTSn MPP(22, 0x1, 0, 0) +#define MPP22_SPI_LCD_MOSI MPP(22, 0x2, 0, 0) +#define MPP22_SDIO1_BUS_POWER MPP(22, 0x3, 0, 0) +#define MPP22_SSP_TXD MPP(22, 0x4, 0, 0) +#define MPP22_SDIO0_BUS_POWER MPP(22, 0x5, 0, 0) +#define MPP22_SPI_1_MOSI MPP(22, 0x6, 0, 0) + +#define MPP23_GPIO23 MPP(23, 0x0, 1, 1) +#define MPP23_SPI_LCD_SCK MPP(23, 0x2, 0, 0) +#define MPP23_SDIO1_LED_CTRL MPP(23, 0x3, 0, 0) +#define MPP23_SSP_SCLK MPP(23, 0x4, 0, 0) +#define MPP23_SDIO0_LED_CTRL MPP(23, 0x5, 0, 0) +#define MPP23_SPI_1_SCK MPP(23, 0x6, 0, 0) + +#define MPP_MAX 23 + +#define MPP_GRP(_grp, _mode) MPP((_grp), (_mode), 0, 0) /* for MPP groups _num is a group index */ enum dove_mpp_grp_idx { @@ -181,40 +153,44 @@ enum dove_mpp_grp_idx { MPP_46_51 = 1, MPP_58_61 = 5, MPP_62_63 = 4, + MPP_GRP_MAX = 5, }; -#define MPP24_39_GPIO MPP_GRP(MPP_24_39, 0x1) -#define MPP24_39_CAM MPP_GRP(MPP_24_39, 0x0) +#define MPP_GRP_24_39_GPIO MPP_GRP(MPP_24_39, 0x1) +#define MPP_GRP_24_39_CAM MPP_GRP(MPP_24_39, 0x0) -#define MPP40_45_GPIO MPP_GRP(MPP_40_45, 0x1) -#define MPP40_45_SD0 MPP_GRP(MPP_40_45, 0x0) +#define MPP_GRP_40_45_GPIO MPP_GRP(MPP_40_45, 0x1) +#define MPP_GRP_40_45_SD0 MPP_GRP(MPP_40_45, 0x0) -#define MPP46_51_GPIO MPP_GRP(MPP_46_51, 0x1) -#define MPP46_51_SD1 MPP_GRP(MPP_46_51, 0x0) +#define MPP_GRP_46_51_GPIO MPP_GRP(MPP_46_51, 0x1) +#define MPP_GRP_46_51_SD1 MPP_GRP(MPP_46_51, 0x0) -#define MPP58_61_GPIO MPP_GRP(MPP_58_61, 0x1) -#define MPP58_61_SPI MPP_GRP(MPP_58_61, 0x0) +#define MPP_GRP_58_61_GPIO MPP_GRP(MPP_58_61, 0x1) +#define MPP_GRP_58_61_SPI MPP_GRP(MPP_58_61, 0x0) -#define MPP62_63_GPIO MPP_GRP(MPP_62_63, 0x1) -#define MPP62_63_UA1 MPP_GRP(MPP_62_63, 0x0) +#define MPP_GRP_62_63_GPIO MPP_GRP(MPP_62_63, 0x1) +#define MPP_GRP_62_63_UA1 MPP_GRP(MPP_62_63, 0x0) /* The MPP[64:71] control differs from other groups */ -#define MPP64_71_GPO MPP_GRP_NFC(0x1) -#define MPP64_71_NFC MPP_GRP_NFC(0x0) +#define MPP_GRP_NFC_64_71_GPO 0x1 +#define MPP_GRP_NFC_64_71_NFC 0x0 /* * The MPP[52:57] functionality is encoded by 4 bits in different * registers. The _num field in this case encodes those bits in * correspodence with Table 135 of 88AP510 Functional specification */ -#define MPP52_57_AU1 MPP_GRP_AU1(0x0) -#define MPP52_57_AU1_GPIO57 MPP_GRP_AU1(0x2) -#define MPP52_57_GPIO MPP_GRP_AU1(0xa) -#define MPP52_57_TW_GPIO MPP_GRP_AU1(0xb) -#define MPP52_57_AU1_SSP MPP_GRP_AU1(0xc) -#define MPP52_57_SSP_GPIO MPP_GRP_AU1(0xe) -#define MPP52_57_SSP_TW MPP_GRP_AU1(0xf) - -void dove_mpp_conf(unsigned int *mpp_list); +#define MPP_GRP_AU1_52_57_AU1 0x0 +#define MPP_GRP_AU1_52_57_AU1_GPIO57 0x2 +#define MPP_GRP_AU1_52_57_GPIO 0xa +#define MPP_GRP_AU1_52_57_TW_GPIO 0xb +#define MPP_GRP_AU1_52_57_AU1_SSP 0xc +#define MPP_GRP_AU1_52_57_SSP_GPIO 0xe +#define MPP_GRP_AU1_52_57_SSP_TW 0xf + +void dove_mpp_conf(unsigned int *mpp_list, + unsigned int *mpp_grp_list, + unsigned int grp_au1_52_57, + unsigned int grp_nfc_64_71); #endif /* __ARCH_DOVE_MPP_CODED_H */ diff --git a/trunk/arch/arm/mach-ep93xx/gpio.c b/trunk/arch/arm/mach-ep93xx/gpio.c index a5a9ff70b198..415dce37b88c 100644 --- a/trunk/arch/arm/mach-ep93xx/gpio.c +++ b/trunk/arch/arm/mach-ep93xx/gpio.c @@ -356,29 +356,6 @@ static int ep93xx_gpio_set_debounce(struct gpio_chip *chip, return 0; } -static void ep93xx_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) -{ - struct ep93xx_gpio_chip *ep93xx_chip = to_ep93xx_gpio_chip(chip); - u8 data_reg, data_dir_reg; - int gpio, i; - - data_reg = __raw_readb(ep93xx_chip->data_reg); - data_dir_reg = __raw_readb(ep93xx_chip->data_dir_reg); - - gpio = ep93xx_chip->chip.base; - for (i = 0; i < chip->ngpio; i++, gpio++) { - int is_out = data_dir_reg & (1 << i); - int irq = gpio_to_irq(gpio); - - seq_printf(s, " %s%d gpio-%-3d (%-12s) %s %s %s\n", - chip->label, i, gpio, - gpiochip_is_requested(chip, i) ? : "", - is_out ? "out" : "in ", - (data_reg & (1<< i)) ? "hi" : "lo", - (!is_out && irq>= 0) ? "(interrupt)" : ""); - } -} - #define EP93XX_GPIO_BANK(name, dr, ddr, base_gpio) \ { \ .chip = { \ @@ -387,7 +364,6 @@ static void ep93xx_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) .direction_output = ep93xx_gpio_direction_output, \ .get = ep93xx_gpio_get, \ .set = ep93xx_gpio_set, \ - .dbg_show = ep93xx_gpio_dbg_show, \ .base = base_gpio, \ .ngpio = 8, \ }, \ diff --git a/trunk/arch/arm/mach-exynos4/Kconfig b/trunk/arch/arm/mach-exynos4/Kconfig index e849f67be47d..805196207ce8 100644 --- a/trunk/arch/arm/mach-exynos4/Kconfig +++ b/trunk/arch/arm/mach-exynos4/Kconfig @@ -170,6 +170,7 @@ config MACH_NURI select S3C_DEV_HSMMC3 select S3C_DEV_I2C1 select S3C_DEV_I2C5 + select S5P_DEV_USB_EHCI select EXYNOS4_SETUP_I2C1 select EXYNOS4_SETUP_I2C5 select EXYNOS4_SETUP_SDHCI diff --git a/trunk/arch/arm/mach-exynos4/Makefile b/trunk/arch/arm/mach-exynos4/Makefile index 9be104f63c0b..777897551e42 100644 --- a/trunk/arch/arm/mach-exynos4/Makefile +++ b/trunk/arch/arm/mach-exynos4/Makefile @@ -54,3 +54,5 @@ obj-$(CONFIG_EXYNOS4_SETUP_I2C7) += setup-i2c7.o obj-$(CONFIG_EXYNOS4_SETUP_KEYPAD) += setup-keypad.o obj-$(CONFIG_EXYNOS4_SETUP_SDHCI) += setup-sdhci.o obj-$(CONFIG_EXYNOS4_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o + +obj-$(CONFIG_USB_SUPPORT) += usb-phy.o diff --git a/trunk/arch/arm/mach-exynos4/cpu.c b/trunk/arch/arm/mach-exynos4/cpu.c index 793011391943..08813a6f66b1 100644 --- a/trunk/arch/arm/mach-exynos4/cpu.c +++ b/trunk/arch/arm/mach-exynos4/cpu.c @@ -97,7 +97,12 @@ static struct map_desc exynos4_iodesc[] __initdata = { .pfn = __phys_to_pfn(EXYNOS4_PA_SROMC), .length = SZ_4K, .type = MT_DEVICE, - }, + }, { + .virtual = (unsigned long)S5P_VA_USB_HSPHY, + .pfn = __phys_to_pfn(EXYNOS4_PA_HSPHY), + .length = SZ_4K, + .type = MT_DEVICE, + } }; static void exynos4_idle(void) diff --git a/trunk/arch/arm/mach-exynos4/include/mach/map.h b/trunk/arch/arm/mach-exynos4/include/mach/map.h index 6330b73b9ea7..0009e77a05fc 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/map.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/map.h @@ -101,6 +101,9 @@ #define EXYNOS4_PA_SROMC 0x12570000 +#define EXYNOS4_PA_EHCI 0x12580000 +#define EXYNOS4_PA_HSPHY 0x125B0000 + #define EXYNOS4_PA_UART 0x13800000 #define EXYNOS4_PA_IIC(x) (0x13860000 + ((x) * 0x10000)) @@ -143,6 +146,7 @@ #define S5P_PA_SROMC EXYNOS4_PA_SROMC #define S5P_PA_SYSCON EXYNOS4_PA_SYSCON #define S5P_PA_TIMER EXYNOS4_PA_TIMER +#define S5P_PA_EHCI EXYNOS4_PA_EHCI #define SAMSUNG_PA_KEYPAD EXYNOS4_PA_KEYPAD diff --git a/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h b/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h index 62b0014d05e0..a9643371f8e7 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h @@ -33,6 +33,9 @@ #define S5P_EINT_WAKEUP_MASK S5P_PMUREG(0x0604) #define S5P_WAKEUP_MASK S5P_PMUREG(0x0608) +#define S5P_USBHOST_PHY_CONTROL S5P_PMUREG(0x0708) +#define S5P_USBHOST_PHY_ENABLE (1 << 0) + #define S5P_MIPI_DPHY_CONTROL(n) S5P_PMUREG(0x0710 + (n) * 4) #define S5P_MIPI_DPHY_ENABLE (1 << 0) #define S5P_MIPI_DPHY_SRESETN (1 << 1) diff --git a/trunk/arch/arm/mach-exynos4/include/mach/regs-usb-phy.h b/trunk/arch/arm/mach-exynos4/include/mach/regs-usb-phy.h new file mode 100644 index 000000000000..703118d5173c --- /dev/null +++ b/trunk/arch/arm/mach-exynos4/include/mach/regs-usb-phy.h @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2011 Samsung Electronics Co.Ltd + * Author: Joonyoung Shim + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ + +#ifndef __PLAT_S5P_REGS_USB_PHY_H +#define __PLAT_S5P_REGS_USB_PHY_H + +#define EXYNOS4_HSOTG_PHYREG(x) ((x) + S5P_VA_USB_HSPHY) + +#define EXYNOS4_PHYPWR EXYNOS4_HSOTG_PHYREG(0x00) +#define PHY1_HSIC_NORMAL_MASK (0xf << 9) +#define PHY1_HSIC1_SLEEP (1 << 12) +#define PHY1_HSIC1_FORCE_SUSPEND (1 << 11) +#define PHY1_HSIC0_SLEEP (1 << 10) +#define PHY1_HSIC0_FORCE_SUSPEND (1 << 9) + +#define PHY1_STD_NORMAL_MASK (0x7 << 6) +#define PHY1_STD_SLEEP (1 << 8) +#define PHY1_STD_ANALOG_POWERDOWN (1 << 7) +#define PHY1_STD_FORCE_SUSPEND (1 << 6) + +#define PHY0_NORMAL_MASK (0x39 << 0) +#define PHY0_SLEEP (1 << 5) +#define PHY0_OTG_DISABLE (1 << 4) +#define PHY0_ANALOG_POWERDOWN (1 << 3) +#define PHY0_FORCE_SUSPEND (1 << 0) + +#define EXYNOS4_PHYCLK EXYNOS4_HSOTG_PHYREG(0x04) +#define PHY1_COMMON_ON_N (1 << 7) +#define PHY0_COMMON_ON_N (1 << 4) +#define PHY0_ID_PULLUP (1 << 2) +#define CLKSEL_MASK (0x3 << 0) +#define CLKSEL_SHIFT (0) +#define CLKSEL_48M (0x0 << 0) +#define CLKSEL_12M (0x2 << 0) +#define CLKSEL_24M (0x3 << 0) + +#define EXYNOS4_RSTCON EXYNOS4_HSOTG_PHYREG(0x08) +#define HOST_LINK_PORT_SWRST_MASK (0xf << 6) +#define HOST_LINK_PORT2_SWRST (1 << 9) +#define HOST_LINK_PORT1_SWRST (1 << 8) +#define HOST_LINK_PORT0_SWRST (1 << 7) +#define HOST_LINK_ALL_SWRST (1 << 6) + +#define PHY1_SWRST_MASK (0x7 << 3) +#define PHY1_HSIC_SWRST (1 << 5) +#define PHY1_STD_SWRST (1 << 4) +#define PHY1_ALL_SWRST (1 << 3) + +#define PHY0_SWRST_MASK (0x7 << 0) +#define PHY0_PHYLINK_SWRST (1 << 2) +#define PHY0_HLINK_SWRST (1 << 1) +#define PHY0_SWRST (1 << 0) + +#define EXYNOS4_PHY1CON EXYNOS4_HSOTG_PHYREG(0x34) +#define FPENABLEN (1 << 0) + +#endif /* __PLAT_S5P_REGS_USB_PHY_H */ diff --git a/trunk/arch/arm/mach-exynos4/include/mach/smp.h b/trunk/arch/arm/mach-exynos4/include/mach/smp.h deleted file mode 100644 index a463dcebcfd3..000000000000 --- a/trunk/arch/arm/mach-exynos4/include/mach/smp.h +++ /dev/null @@ -1,19 +0,0 @@ -/* linux/arch/arm/mach-exynos4/include/mach/smp.h - * - * Cloned from arch/arm/mach-realview/include/mach/smp.h -*/ - -#ifndef ASM_ARCH_SMP_H -#define ASM_ARCH_SMP_H __FILE__ - -#include - -/* - * We use IRQ1 as the IPI - */ -static inline void smp_cross_call(const struct cpumask *mask, int ipi) -{ - gic_raise_softirq(mask, ipi); -} - -#endif diff --git a/trunk/arch/arm/mach-exynos4/irq-combiner.c b/trunk/arch/arm/mach-exynos4/irq-combiner.c index f488b66d6806..5a2758ab055e 100644 --- a/trunk/arch/arm/mach-exynos4/irq-combiner.c +++ b/trunk/arch/arm/mach-exynos4/irq-combiner.c @@ -59,8 +59,7 @@ static void combiner_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) unsigned int cascade_irq, combiner_irq; unsigned long status; - /* primary controller ack'ing */ - chip->irq_ack(&desc->irq_data); + chained_irq_enter(chip, desc); spin_lock(&irq_controller_lock); status = __raw_readl(chip_data->base + COMBINER_INT_STATUS); @@ -79,8 +78,7 @@ static void combiner_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) generic_handle_irq(cascade_irq); out: - /* primary controller unmasking */ - chip->irq_unmask(&desc->irq_data); + chained_irq_exit(chip, desc); } static struct irq_chip combiner_chip = { diff --git a/trunk/arch/arm/mach-exynos4/mach-nuri.c b/trunk/arch/arm/mach-exynos4/mach-nuri.c index b79ad010d194..bb5d12f43af8 100644 --- a/trunk/arch/arm/mach-exynos4/mach-nuri.c +++ b/trunk/arch/arm/mach-exynos4/mach-nuri.c @@ -30,6 +30,8 @@ #include #include #include +#include +#include #include @@ -262,6 +264,16 @@ static struct i2c_board_info i2c5_devs[] __initdata = { /* max8997, To be updated */ }; +/* USB EHCI */ +static struct s5p_ehci_platdata nuri_ehci_pdata; + +static void __init nuri_ehci_init(void) +{ + struct s5p_ehci_platdata *pdata = &nuri_ehci_pdata; + + s5p_ehci_set_platdata(pdata); +} + static struct platform_device *nuri_devices[] __initdata = { /* Samsung Platform Devices */ &emmc_fixed_voltage, @@ -270,6 +282,7 @@ static struct platform_device *nuri_devices[] __initdata = { &s3c_device_hsmmc3, &s3c_device_wdt, &s3c_device_timer[0], + &s5p_device_ehci, /* NURI Devices */ &nuri_gpio_keys, @@ -291,6 +304,9 @@ static void __init nuri_machine_init(void) i2c_register_board_info(1, i2c1_devs, ARRAY_SIZE(i2c1_devs)); i2c_register_board_info(5, i2c5_devs, ARRAY_SIZE(i2c5_devs)); + nuri_ehci_init(); + clk_xusbxti.rate = 24000000; + /* Last */ platform_add_devices(nuri_devices, ARRAY_SIZE(nuri_devices)); } diff --git a/trunk/arch/arm/mach-exynos4/platsmp.c b/trunk/arch/arm/mach-exynos4/platsmp.c index 6d35878ec1aa..c5e65a02be8d 100644 --- a/trunk/arch/arm/mach-exynos4/platsmp.c +++ b/trunk/arch/arm/mach-exynos4/platsmp.c @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -104,7 +105,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) * the boot monitor to read the system wide flags register, * and branch to the address found there. */ - smp_cross_call(cpumask_of(cpu), 1); + gic_raise_softirq(cpumask_of(cpu), 1); timeout = jiffies + (1 * HZ); while (time_before(jiffies, timeout)) { @@ -147,6 +148,8 @@ void __init smp_init_cpus(void) for (i = 0; i < ncores; i++) set_cpu_possible(i, true); + + set_smp_cross_call(gic_raise_softirq); } void __init platform_smp_prepare_cpus(unsigned int max_cpus) diff --git a/trunk/arch/arm/mach-exynos4/usb-phy.c b/trunk/arch/arm/mach-exynos4/usb-phy.c new file mode 100644 index 000000000000..0883c1b824b9 --- /dev/null +++ b/trunk/arch/arm/mach-exynos4/usb-phy.c @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2011 Samsung Electronics Co.Ltd + * Author: Joonyoung Shim + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int exynos4_usb_phy1_init(struct platform_device *pdev) +{ + struct clk *otg_clk; + struct clk *xusbxti_clk; + u32 phyclk; + u32 rstcon; + int err; + + otg_clk = clk_get(&pdev->dev, "otg"); + if (IS_ERR(otg_clk)) { + dev_err(&pdev->dev, "Failed to get otg clock\n"); + return PTR_ERR(otg_clk); + } + + err = clk_enable(otg_clk); + if (err) { + clk_put(otg_clk); + return err; + } + + writel(readl(S5P_USBHOST_PHY_CONTROL) | S5P_USBHOST_PHY_ENABLE, + S5P_USBHOST_PHY_CONTROL); + + /* set clock frequency for PLL */ + phyclk = readl(EXYNOS4_PHYCLK) & ~CLKSEL_MASK; + + xusbxti_clk = clk_get(&pdev->dev, "xusbxti"); + if (xusbxti_clk && !IS_ERR(xusbxti_clk)) { + switch (clk_get_rate(xusbxti_clk)) { + case 12 * MHZ: + phyclk |= CLKSEL_12M; + break; + case 24 * MHZ: + phyclk |= CLKSEL_24M; + break; + default: + case 48 * MHZ: + /* default reference clock */ + break; + } + clk_put(xusbxti_clk); + } + + writel(phyclk, EXYNOS4_PHYCLK); + + /* floating prevention logic: disable */ + writel((readl(EXYNOS4_PHY1CON) | FPENABLEN), EXYNOS4_PHY1CON); + + /* set to normal HSIC 0 and 1 of PHY1 */ + writel((readl(EXYNOS4_PHYPWR) & ~PHY1_HSIC_NORMAL_MASK), + EXYNOS4_PHYPWR); + + /* set to normal standard USB of PHY1 */ + writel((readl(EXYNOS4_PHYPWR) & ~PHY1_STD_NORMAL_MASK), EXYNOS4_PHYPWR); + + /* reset all ports of both PHY and Link */ + rstcon = readl(EXYNOS4_RSTCON) | HOST_LINK_PORT_SWRST_MASK | + PHY1_SWRST_MASK; + writel(rstcon, EXYNOS4_RSTCON); + udelay(10); + + rstcon &= ~(HOST_LINK_PORT_SWRST_MASK | PHY1_SWRST_MASK); + writel(rstcon, EXYNOS4_RSTCON); + udelay(50); + + clk_disable(otg_clk); + clk_put(otg_clk); + + return 0; +} + +static int exynos4_usb_phy1_exit(struct platform_device *pdev) +{ + struct clk *otg_clk; + int err; + + otg_clk = clk_get(&pdev->dev, "otg"); + if (IS_ERR(otg_clk)) { + dev_err(&pdev->dev, "Failed to get otg clock\n"); + return PTR_ERR(otg_clk); + } + + err = clk_enable(otg_clk); + if (err) { + clk_put(otg_clk); + return err; + } + + writel((readl(EXYNOS4_PHYPWR) | PHY1_STD_ANALOG_POWERDOWN), + EXYNOS4_PHYPWR); + + writel(readl(S5P_USBHOST_PHY_CONTROL) & ~S5P_USBHOST_PHY_ENABLE, + S5P_USBHOST_PHY_CONTROL); + + clk_disable(otg_clk); + clk_put(otg_clk); + + return 0; +} + +int s5p_usb_phy_init(struct platform_device *pdev, int type) +{ + if (type == S5P_USB_PHY_HOST) + return exynos4_usb_phy1_init(pdev); + + return -EINVAL; +} + +int s5p_usb_phy_exit(struct platform_device *pdev, int type) +{ + if (type == S5P_USB_PHY_HOST) + return exynos4_usb_phy1_exit(pdev); + + return -EINVAL; +} diff --git a/trunk/arch/arm/mach-gemini/include/mach/uncompress.h b/trunk/arch/arm/mach-gemini/include/mach/uncompress.h index 5483f61a8061..0efa26247235 100644 --- a/trunk/arch/arm/mach-gemini/include/mach/uncompress.h +++ b/trunk/arch/arm/mach-gemini/include/mach/uncompress.h @@ -16,7 +16,7 @@ #include #include -static volatile unsigned long *UART = (unsigned long *)GEMINI_UART_BASE; +static volatile unsigned long * const UART = (unsigned long *)GEMINI_UART_BASE; /* * The following code assumes the serial port has already been diff --git a/trunk/arch/arm/mach-h720x/include/mach/memory.h b/trunk/arch/arm/mach-h720x/include/mach/memory.h index 9d3687651462..b0b3baec9acf 100644 --- a/trunk/arch/arm/mach-h720x/include/mach/memory.h +++ b/trunk/arch/arm/mach-h720x/include/mach/memory.h @@ -13,7 +13,6 @@ * There should not be more than (0xd0000000 - 0xc0000000) * bytes of RAM. */ -#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_256M - 1) -#define MAX_DMA_ADDRESS (PAGE_OFFSET + SZ_256M) +#define ARM_DMA_ZONE_SIZE SZ_256M #endif diff --git a/trunk/arch/arm/mach-imx/Kconfig b/trunk/arch/arm/mach-imx/Kconfig index 56b930a13443..59c97a331136 100644 --- a/trunk/arch/arm/mach-imx/Kconfig +++ b/trunk/arch/arm/mach-imx/Kconfig @@ -1,5 +1,15 @@ config IMX_HAVE_DMA_V1 bool +# +# ARCH_MX31 and ARCH_MX35 are left for compatibility +# Some usages assume that having one of them implies not having (e.g.) ARCH_MX2. +# To easily distinguish good and reviewed from unreviewed usages new (and IMHO +# more sensible) names are used: SOC_IMX31 and SOC_IMX35 +config ARCH_MX31 + bool + +config ARCH_MX35 + bool config SOC_IMX1 bool @@ -31,6 +41,24 @@ config SOC_IMX27 select IMX_HAVE_IOMUX_V1 select MXC_AVIC +config SOC_IMX31 + bool + select CPU_V6 + select IMX_HAVE_PLATFORM_MXC_RNGA + select ARCH_MXC_AUDMUX_V2 + select ARCH_MX31 + select MXC_AVIC + +config SOC_IMX35 + bool + select CPU_V6 + select ARCH_MXC_IOMUX_V3 + select ARCH_MXC_AUDMUX_V2 + select HAVE_EPIT + select ARCH_MX35 + select MXC_AVIC + + if ARCH_MX1 comment "MX1 platforms:" @@ -40,6 +68,7 @@ config MACH_MXLADS config ARCH_MX1ADS bool "MX1ADS platform" select MACH_MXLADS + select SOC_IMX1 select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_IMX_UART help @@ -51,6 +80,13 @@ config MACH_SCB9328 help Say Y here if you are using a Synertronixx scb9328 board +config MACH_APF9328 + bool "APF9328" + select SOC_IMX1 + select IMX_HAVE_PLATFORM_IMX_UART + help + Say Yes here if you are using the Armadeus APF9328 development board + endif if ARCH_MX2 @@ -129,6 +165,7 @@ choice config MACH_EUKREA_MBIMXSD25_BASEBOARD bool "Eukrea MBIMXSD development board" + select IMX_HAVE_PLATFORM_GPIO_KEYS select IMX_HAVE_PLATFORM_IMX_SSI help This adds board specific devices that can be found on Eukrea's @@ -254,6 +291,7 @@ config MACH_MX27_3DS config MACH_IMX27_VISSTRIM_M10 bool "Vista Silicon i.MX27 Visstrim_m10" select SOC_IMX27 + select IMX_HAVE_PLATFORM_GPIO_KEYS select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_IMX_SSI select IMX_HAVE_PLATFORM_IMX_UART @@ -314,3 +352,251 @@ config MACH_IMX27IPCAM configurations for the board and its peripherals. endif + +if ARCH_MX3 + +comment "MX31 platforms:" + +config MACH_MX31ADS + bool "Support MX31ADS platforms" + select SOC_IMX31 + select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_SSI + select IMX_HAVE_PLATFORM_IMX_UART + default y + help + Include support for MX31ADS platform. This includes specific + configurations for the board and its peripherals. + +config MACH_MX31ADS_WM1133_EV1 + bool "Support Wolfson Microelectronics 1133-EV1 module" + depends on MACH_MX31ADS + depends on MFD_WM8350_I2C + depends on REGULATOR_WM8350 + select MFD_WM8350_CONFIG_MODE_0 + select MFD_WM8352_CONFIG_MODE_0 + help + Include support for the Wolfson Microelectronics 1133-EV1 PMU + and audio module for the MX31ADS platform. + +config MACH_MX31LILLY + bool "Support MX31 LILLY-1131 platforms (INCO startec)" + select SOC_IMX31 + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_IPU_CORE + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_MMC + select IMX_HAVE_PLATFORM_SPI_IMX + select MXC_ULPI if USB_ULPI + help + Include support for mx31 based LILLY1131 modules. This includes + specific configurations for the board and its peripherals. + +config MACH_MX31LITE + bool "Support MX31 LITEKIT (LogicPD)" + select SOC_IMX31 + select MXC_ULPI if USB_ULPI + select IMX_HAVE_PLATFORM_IMX2_WDT + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_MMC + select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_MXC_RTC + select IMX_HAVE_PLATFORM_SPI_IMX + help + Include support for MX31 LITEKIT platform. This includes specific + configurations for the board and its peripherals. + +config MACH_PCM037 + bool "Support Phytec pcm037 (i.MX31) platforms" + select SOC_IMX31 + select IMX_HAVE_PLATFORM_FSL_USB2_UDC + select IMX_HAVE_PLATFORM_IMX2_WDT + select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_IPU_CORE + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_MMC + select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_MXC_W1 + select MXC_ULPI if USB_ULPI + help + Include support for Phytec pcm037 platform. This includes + specific configurations for the board and its peripherals. + +config MACH_PCM037_EET + bool "Support pcm037 EET board extensions" + depends on MACH_PCM037 + select IMX_HAVE_PLATFORM_GPIO_KEYS + select IMX_HAVE_PLATFORM_SPI_IMX + help + Add support for PCM037 EET baseboard extensions. If you are using the + OLED display with EET, use "video=mx3fb:CMEL-OLED" kernel + command-line parameter. + +config MACH_MX31_3DS + bool "Support MX31PDK (3DS)" + select SOC_IMX31 + select MXC_DEBUG_BOARD + select IMX_HAVE_PLATFORM_FSL_USB2_UDC + select IMX_HAVE_PLATFORM_IMX2_WDT + select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_KEYPAD + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_IPU_CORE + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_SPI_IMX + select MXC_ULPI if USB_ULPI + help + Include support for MX31PDK (3DS) platform. This includes specific + configurations for the board and its peripherals. + +config MACH_MX31_3DS_MXC_NAND_USE_BBT + bool "Make the MXC NAND driver use the in flash Bad Block Table" + depends on MACH_MX31_3DS + depends on MTD_NAND_MXC + help + Enable this if you want that the MXC NAND driver uses the in flash + Bad Block Table to know what blocks are bad instead of scanning the + entire flash looking for bad block markers. + +config MACH_MX31MOBOARD + bool "Support mx31moboard platforms (EPFL Mobots group)" + select SOC_IMX31 + select IMX_HAVE_PLATFORM_FSL_USB2_UDC + select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_IPU_CORE + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_MMC + select IMX_HAVE_PLATFORM_SPI_IMX + select MXC_ULPI if USB_ULPI + help + Include support for mx31moboard platform. This includes specific + configurations for the board and its peripherals. + +config MACH_QONG + bool "Support Dave/DENX QongEVB-LITE platform" + select SOC_IMX31 + select IMX_HAVE_PLATFORM_IMX_UART + help + Include support for Dave/DENX QongEVB-LITE platform. This includes + specific configurations for the board and its peripherals. + +config MACH_ARMADILLO5X0 + bool "Support Atmark Armadillo-500 Development Base Board" + select SOC_IMX31 + select IMX_HAVE_PLATFORM_GPIO_KEYS + select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_IPU_CORE + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_MMC + select IMX_HAVE_PLATFORM_MXC_NAND + select MXC_ULPI if USB_ULPI + help + Include support for Atmark Armadillo-500 platform. This includes + specific configurations for the board and its peripherals. + +config MACH_KZM_ARM11_01 + bool "Support KZM-ARM11-01(Kyoto Microcomputer)" + select SOC_IMX31 + select IMX_HAVE_PLATFORM_IMX_UART + help + Include support for KZM-ARM11-01. This includes specific + configurations for the board and its peripherals. + +config MACH_BUG + bool "Support Buglabs BUGBase platform" + select SOC_IMX31 + select IMX_HAVE_PLATFORM_IMX_UART + default y + help + Include support for BUGBase 1.3 platform. This includes specific + configurations for the board and its peripherals. + +comment "MX35 platforms:" + +config MACH_PCM043 + bool "Support Phytec pcm043 (i.MX35) platforms" + select SOC_IMX35 + select IMX_HAVE_PLATFORM_FLEXCAN + select IMX_HAVE_PLATFORM_FSL_USB2_UDC + select IMX_HAVE_PLATFORM_IMX2_WDT + select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_SSI + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_IPU_CORE + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX + select MXC_ULPI if USB_ULPI + help + Include support for Phytec pcm043 platform. This includes + specific configurations for the board and its peripherals. + +config MACH_MX35_3DS + bool "Support MX35PDK platform" + select SOC_IMX35 + select MXC_DEBUG_BOARD + select IMX_HAVE_PLATFORM_FSL_USB2_UDC + select IMX_HAVE_PLATFORM_IMX2_WDT + select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX + help + Include support for MX35PDK platform. This includes specific + configurations for the board and its peripherals. + +config MACH_EUKREA_CPUIMX35 + bool "Support Eukrea CPUIMX35 Platform" + select SOC_IMX35 + select IMX_HAVE_PLATFORM_FLEXCAN + select IMX_HAVE_PLATFORM_FSL_USB2_UDC + select IMX_HAVE_PLATFORM_IMX2_WDT + select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX + select MXC_ULPI if USB_ULPI + help + Include support for Eukrea CPUIMX35 platform. This includes + specific configurations for the board and its peripherals. + +choice + prompt "Baseboard" + depends on MACH_EUKREA_CPUIMX35 + default MACH_EUKREA_MBIMXSD35_BASEBOARD + +config MACH_EUKREA_MBIMXSD35_BASEBOARD + bool "Eukrea MBIMXSD development board" + select IMX_HAVE_PLATFORM_GPIO_KEYS + select IMX_HAVE_PLATFORM_IMX_SSI + select IMX_HAVE_PLATFORM_IPU_CORE + help + This adds board specific devices that can be found on Eukrea's + MBIMXSD evaluation board. + +endchoice + +config MACH_VPR200 + bool "Support VPR200 platform" + select SOC_IMX35 + select IMX_HAVE_PLATFORM_FSL_USB2_UDC + select IMX_HAVE_PLATFORM_GPIO_KEYS + select IMX_HAVE_PLATFORM_IMX2_WDT + select IMX_HAVE_PLATFORM_IMX_UART + select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IPU_CORE + select IMX_HAVE_PLATFORM_MXC_EHCI + select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX + help + Include support for VPR200 platform. This includes specific + configurations for the board and its peripherals. + +endif diff --git a/trunk/arch/arm/mach-imx/Makefile b/trunk/arch/arm/mach-imx/Makefile index b85794d27991..e9eb36dad888 100644 --- a/trunk/arch/arm/mach-imx/Makefile +++ b/trunk/arch/arm/mach-imx/Makefile @@ -1,9 +1,3 @@ -# -# Makefile for the linux kernel. -# - -# Object file lists. - obj-$(CONFIG_IMX_HAVE_DMA_V1) += dma-v1.o obj-$(CONFIG_ARCH_MX1) += clock-imx1.o mm-imx1.o @@ -14,18 +8,27 @@ obj-$(CONFIG_ARCH_MX25) += clock-imx25.o mm-imx25.o ehci-imx25.o obj-$(CONFIG_MACH_MX27) += cpu-imx27.o pm-imx27.o obj-$(CONFIG_MACH_MX27) += clock-imx27.o mm-imx27.o ehci-imx27.o +obj-$(CONFIG_SOC_IMX31) += mm-imx31.o cpu-imx31.o clock-imx31.o iomux-imx31.o ehci-imx31.o +obj-$(CONFIG_SOC_IMX35) += mm-imx35.o cpu-imx35.o clock-imx35.o ehci-imx35.o +obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o + # Support for CMOS sensor interface -obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o +obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o +# i.MX1 based machines obj-$(CONFIG_ARCH_MX1ADS) += mach-mx1ads.o obj-$(CONFIG_MACH_SCB9328) += mach-scb9328.o +obj-$(CONFIG_MACH_APF9328) += mach-apf9328.o +# i.MX21 based machines obj-$(CONFIG_MACH_MX21ADS) += mach-mx21ads.o +# i.MX25 based machines obj-$(CONFIG_MACH_MX25_3DS) += mach-mx25_3ds.o obj-$(CONFIG_MACH_EUKREA_CPUIMX25) += mach-eukrea_cpuimx25.o obj-$(CONFIG_MACH_EUKREA_MBIMXSD25_BASEBOARD) += eukrea_mbimxsd25-baseboard.o +# i.MX27 based machines obj-$(CONFIG_MACH_MX27ADS) += mach-mx27ads.o obj-$(CONFIG_MACH_PCM038) += mach-pcm038.o obj-$(CONFIG_MACH_PCM970_BASEBOARD) += pcm970-baseboard.o @@ -37,3 +40,24 @@ obj-$(CONFIG_MACH_EUKREA_MBIMX27_BASEBOARD) += eukrea_mbimx27-baseboard.o obj-$(CONFIG_MACH_PCA100) += mach-pca100.o obj-$(CONFIG_MACH_MXT_TD60) += mach-mxt_td60.o obj-$(CONFIG_MACH_IMX27IPCAM) += mach-imx27ipcam.o + +# i.MX31 based machines +obj-$(CONFIG_MACH_MX31ADS) += mach-mx31ads.o +obj-$(CONFIG_MACH_MX31LILLY) += mach-mx31lilly.o mx31lilly-db.o +obj-$(CONFIG_MACH_MX31LITE) += mach-mx31lite.o mx31lite-db.o +obj-$(CONFIG_MACH_PCM037) += mach-pcm037.o +obj-$(CONFIG_MACH_PCM037_EET) += mach-pcm037_eet.o +obj-$(CONFIG_MACH_MX31_3DS) += mach-mx31_3ds.o +obj-$(CONFIG_MACH_MX31MOBOARD) += mach-mx31moboard.o mx31moboard-devboard.o \ + mx31moboard-marxbot.o mx31moboard-smartbot.o +obj-$(CONFIG_MACH_QONG) += mach-qong.o +obj-$(CONFIG_MACH_ARMADILLO5X0) += mach-armadillo5x0.o +obj-$(CONFIG_MACH_KZM_ARM11_01) += mach-kzm_arm11_01.o +obj-$(CONFIG_MACH_BUG) += mach-bug.o + +# i.MX35 based machines +obj-$(CONFIG_MACH_PCM043) += mach-pcm043.o +obj-$(CONFIG_MACH_MX35_3DS) += mach-mx35_3ds.o +obj-$(CONFIG_MACH_EUKREA_CPUIMX35) += mach-cpuimx35.o +obj-$(CONFIG_MACH_EUKREA_MBIMXSD35_BASEBOARD) += eukrea_mbimxsd35-baseboard.o +obj-$(CONFIG_MACH_VPR200) += mach-vpr200.o diff --git a/trunk/arch/arm/mach-imx/Makefile.boot b/trunk/arch/arm/mach-imx/Makefile.boot index 3953d60bff0b..ebee18b3884c 100644 --- a/trunk/arch/arm/mach-imx/Makefile.boot +++ b/trunk/arch/arm/mach-imx/Makefile.boot @@ -13,3 +13,7 @@ initrd_phys-$(CONFIG_ARCH_MX25) := 0x80800000 zreladdr-$(CONFIG_MACH_MX27) := 0xA0008000 params_phys-$(CONFIG_MACH_MX27) := 0xA0000100 initrd_phys-$(CONFIG_MACH_MX27) := 0xA0800000 + +zreladdr-$(CONFIG_ARCH_MX3) := 0x80008000 +params_phys-$(CONFIG_ARCH_MX3) := 0x80000100 +initrd_phys-$(CONFIG_ARCH_MX3) := 0x80800000 diff --git a/trunk/arch/arm/mach-imx/cache-l2x0.c b/trunk/arch/arm/mach-imx/cache-l2x0.c new file mode 100644 index 000000000000..69d1322add3c --- /dev/null +++ b/trunk/arch/arm/mach-imx/cache-l2x0.c @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2009-2010 Pengutronix + * Sascha Hauer + * Juergen Beisert + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License version 2 as published by the + * Free Software Foundation. + */ + +#include +#include +#include + +#include + +#include + +static int mxc_init_l2x0(void) +{ + void __iomem *l2x0_base; + void __iomem *clkctl_base; + + if (!cpu_is_mx31() && !cpu_is_mx35()) + return 0; + +/* + * First of all, we must repair broken chip settings. There are some + * i.MX35 CPUs in the wild, comming with bogus L2 cache settings. These + * misconfigured CPUs will run amok immediately when the L2 cache gets enabled. + * Workaraound is to setup the correct register setting prior enabling the + * L2 cache. This should not hurt already working CPUs, as they are using the + * same value. + */ +#define L2_MEM_VAL 0x10 + + clkctl_base = ioremap(MX35_CLKCTL_BASE_ADDR, 4096); + if (clkctl_base != NULL) { + writel(0x00000515, clkctl_base + L2_MEM_VAL); + iounmap(clkctl_base); + } else { + pr_err("L2 cache: Cannot fix timing. Trying to continue without\n"); + } + + l2x0_base = ioremap(MX3x_L2CC_BASE_ADDR, 4096); + if (IS_ERR(l2x0_base)) { + printk(KERN_ERR "remapping L2 cache area failed with %ld\n", + PTR_ERR(l2x0_base)); + return 0; + } + + l2x0_init(l2x0_base, 0x00030024, 0x00000000); + + return 0; +} +arch_initcall(mxc_init_l2x0); diff --git a/trunk/arch/arm/mach-mx3/clock-imx31.c b/trunk/arch/arm/mach-imx/clock-imx31.c similarity index 99% rename from trunk/arch/arm/mach-mx3/clock-imx31.c rename to trunk/arch/arm/mach-imx/clock-imx31.c index d423cac8cab7..25f343fca2b9 100644 --- a/trunk/arch/arm/mach-mx3/clock-imx31.c +++ b/trunk/arch/arm/mach-imx/clock-imx31.c @@ -32,7 +32,7 @@ #include #include -#include "crm_regs.h" +#include "crmregs-imx31.h" #define PRE_DIV_MIN_FREQ 10000000 /* Minimum Frequency after Predivider */ @@ -627,4 +627,3 @@ int __init mx31_clocks_init(unsigned long fref) return 0; } - diff --git a/trunk/arch/arm/mach-mx3/clock-imx35.c b/trunk/arch/arm/mach-imx/clock-imx35.c similarity index 99% rename from trunk/arch/arm/mach-mx3/clock-imx35.c rename to trunk/arch/arm/mach-imx/clock-imx35.c index 448a038cd1ec..5a4cc1ea405b 100644 --- a/trunk/arch/arm/mach-mx3/clock-imx35.c +++ b/trunk/arch/arm/mach-imx/clock-imx35.c @@ -547,4 +547,3 @@ int __init mx35_clocks_init() return 0; } - diff --git a/trunk/arch/arm/mach-mx3/cpu.c b/trunk/arch/arm/mach-imx/cpu-imx31.c similarity index 72% rename from trunk/arch/arm/mach-mx3/cpu.c rename to trunk/arch/arm/mach-imx/cpu-imx31.c index d1d339576fdf..a3780700a882 100644 --- a/trunk/arch/arm/mach-mx3/cpu.c +++ b/trunk/arch/arm/mach-imx/cpu-imx31.c @@ -1,5 +1,5 @@ /* - * MX3 CPU type detection + * MX31 CPU type detection * * Copyright (c) 2009 Daniel Mack * @@ -17,14 +17,12 @@ unsigned int mx31_cpu_rev; EXPORT_SYMBOL(mx31_cpu_rev); -struct mx3_cpu_type { +static struct { u8 srev; const char *name; const char *v; unsigned int rev; -}; - -static struct mx3_cpu_type mx31_cpu_type[] __initdata = { +} mx31_cpu_type[] __initdata = { { .srev = 0x00, .name = "i.MX31(L)", .v = "1.0", .rev = IMX_CHIP_REVISION_1_0 }, { .srev = 0x10, .name = "i.MX31", .v = "1.1", .rev = IMX_CHIP_REVISION_1_1 }, { .srev = 0x11, .name = "i.MX31L", .v = "1.1", .rev = IMX_CHIP_REVISION_1_1 }, @@ -57,33 +55,3 @@ void __init mx31_read_cpu_rev(void) printk(KERN_WARNING "Unknown CPU identifier. srev = %02x\n", srev); } - -unsigned int mx35_cpu_rev; -EXPORT_SYMBOL(mx35_cpu_rev); - -void __init mx35_read_cpu_rev(void) -{ - u32 rev; - char *srev; - - rev = __raw_readl(MX35_IO_ADDRESS(MX35_IIM_BASE_ADDR + MXC_IIMSREV)); - switch (rev) { - case 0x00: - mx35_cpu_rev = IMX_CHIP_REVISION_1_0; - srev = "1.0"; - break; - case 0x10: - mx35_cpu_rev = IMX_CHIP_REVISION_2_0; - srev = "2.0"; - break; - case 0x11: - mx35_cpu_rev = IMX_CHIP_REVISION_2_1; - srev = "2.1"; - break; - default: - mx35_cpu_rev = IMX_CHIP_REVISION_UNKNOWN; - srev = "unknown"; - } - - printk(KERN_INFO "CPU identified as i.MX35, silicon rev %s\n", srev); -} diff --git a/trunk/arch/arm/mach-imx/cpu-imx35.c b/trunk/arch/arm/mach-imx/cpu-imx35.c new file mode 100644 index 000000000000..6637cd819ecb --- /dev/null +++ b/trunk/arch/arm/mach-imx/cpu-imx35.c @@ -0,0 +1,44 @@ +/* + * MX35 CPU type detection + * + * Copyright (c) 2009 Daniel Mack + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ +#include +#include +#include +#include + +unsigned int mx35_cpu_rev; +EXPORT_SYMBOL(mx35_cpu_rev); + +void __init mx35_read_cpu_rev(void) +{ + u32 rev; + char *srev; + + rev = __raw_readl(MX35_IO_ADDRESS(MX35_IIM_BASE_ADDR + MXC_IIMSREV)); + switch (rev) { + case 0x00: + mx35_cpu_rev = IMX_CHIP_REVISION_1_0; + srev = "1.0"; + break; + case 0x10: + mx35_cpu_rev = IMX_CHIP_REVISION_2_0; + srev = "2.0"; + break; + case 0x11: + mx35_cpu_rev = IMX_CHIP_REVISION_2_1; + srev = "2.1"; + break; + default: + mx35_cpu_rev = IMX_CHIP_REVISION_UNKNOWN; + srev = "unknown"; + } + + printk(KERN_INFO "CPU identified as i.MX35, silicon rev %s\n", srev); +} diff --git a/trunk/arch/arm/mach-mx3/crm_regs.h b/trunk/arch/arm/mach-imx/crmregs-imx31.h similarity index 100% rename from trunk/arch/arm/mach-mx3/crm_regs.h rename to trunk/arch/arm/mach-imx/crmregs-imx31.h diff --git a/trunk/arch/arm/mach-imx/devices-imx1.h b/trunk/arch/arm/mach-imx/devices-imx1.h index da593657ff3f..3aad1e70de96 100644 --- a/trunk/arch/arm/mach-imx/devices-imx1.h +++ b/trunk/arch/arm/mach-imx/devices-imx1.h @@ -9,21 +9,21 @@ #include #include -extern const struct imx_imx_fb_data imx1_imx_fb_data __initconst; +extern const struct imx_imx_fb_data imx1_imx_fb_data; #define imx1_add_imx_fb(pdata) \ imx_add_imx_fb(&imx1_imx_fb_data, pdata) -extern const struct imx_imx_i2c_data imx1_imx_i2c_data __initconst; +extern const struct imx_imx_i2c_data imx1_imx_i2c_data; #define imx1_add_imx_i2c(pdata) \ imx_add_imx_i2c(&imx1_imx_i2c_data, pdata) -extern const struct imx_imx_uart_3irq_data imx1_imx_uart_data[] __initconst; +extern const struct imx_imx_uart_3irq_data imx1_imx_uart_data[]; #define imx1_add_imx_uart(id, pdata) \ imx_add_imx_uart_3irq(&imx1_imx_uart_data[id], pdata) #define imx1_add_imx_uart0(pdata) imx1_add_imx_uart(0, pdata) #define imx1_add_imx_uart1(pdata) imx1_add_imx_uart(1, pdata) -extern const struct imx_spi_imx_data imx1_cspi_data[] __initconst; +extern const struct imx_spi_imx_data imx1_cspi_data[]; #define imx1_add_cspi(id, pdata) \ imx_add_spi_imx(&imx1_cspi_data[id], pdata) diff --git a/trunk/arch/arm/mach-imx/devices-imx21.h b/trunk/arch/arm/mach-imx/devices-imx21.h index 16744d2d9b81..2628e0c474dc 100644 --- a/trunk/arch/arm/mach-imx/devices-imx21.h +++ b/trunk/arch/arm/mach-imx/devices-imx21.h @@ -9,31 +9,31 @@ #include #include -extern const struct imx_imx21_hcd_data imx21_imx21_hcd_data __initconst; +extern const struct imx_imx21_hcd_data imx21_imx21_hcd_data; #define imx21_add_imx21_hcd(pdata) \ imx_add_imx21_hcd(&imx21_imx21_hcd_data, pdata) -extern const struct imx_imx2_wdt_data imx21_imx2_wdt_data __initconst; +extern const struct imx_imx2_wdt_data imx21_imx2_wdt_data; #define imx21_add_imx2_wdt(pdata) \ imx_add_imx2_wdt(&imx21_imx2_wdt_data) -extern const struct imx_imx_fb_data imx21_imx_fb_data __initconst; +extern const struct imx_imx_fb_data imx21_imx_fb_data; #define imx21_add_imx_fb(pdata) \ imx_add_imx_fb(&imx21_imx_fb_data, pdata) -extern const struct imx_imx_i2c_data imx21_imx_i2c_data __initconst; +extern const struct imx_imx_i2c_data imx21_imx_i2c_data; #define imx21_add_imx_i2c(pdata) \ imx_add_imx_i2c(&imx21_imx_i2c_data, pdata) -extern const struct imx_imx_keypad_data imx21_imx_keypad_data __initconst; +extern const struct imx_imx_keypad_data imx21_imx_keypad_data; #define imx21_add_imx_keypad(pdata) \ imx_add_imx_keypad(&imx21_imx_keypad_data, pdata) -extern const struct imx_imx_ssi_data imx21_imx_ssi_data[] __initconst; +extern const struct imx_imx_ssi_data imx21_imx_ssi_data[]; #define imx21_add_imx_ssi(id, pdata) \ imx_add_imx_ssi(&imx21_imx_ssi_data[id], pdata) -extern const struct imx_imx_uart_1irq_data imx21_imx_uart_data[] __initconst; +extern const struct imx_imx_uart_1irq_data imx21_imx_uart_data[]; #define imx21_add_imx_uart(id, pdata) \ imx_add_imx_uart_1irq(&imx21_imx_uart_data[id], pdata) #define imx21_add_imx_uart0(pdata) imx21_add_imx_uart(0, pdata) @@ -41,19 +41,19 @@ extern const struct imx_imx_uart_1irq_data imx21_imx_uart_data[] __initconst; #define imx21_add_imx_uart2(pdata) imx21_add_imx_uart(2, pdata) #define imx21_add_imx_uart3(pdata) imx21_add_imx_uart(3, pdata) -extern const struct imx_mxc_mmc_data imx21_mxc_mmc_data[] __initconst; +extern const struct imx_mxc_mmc_data imx21_mxc_mmc_data[]; #define imx21_add_mxc_mmc(id, pdata) \ imx_add_mxc_mmc(&imx21_mxc_mmc_data[id], pdata) -extern const struct imx_mxc_nand_data imx21_mxc_nand_data __initconst; +extern const struct imx_mxc_nand_data imx21_mxc_nand_data; #define imx21_add_mxc_nand(pdata) \ imx_add_mxc_nand(&imx21_mxc_nand_data, pdata) -extern const struct imx_mxc_w1_data imx21_mxc_w1_data __initconst; +extern const struct imx_mxc_w1_data imx21_mxc_w1_data; #define imx21_add_mxc_w1(pdata) \ imx_add_mxc_w1(&imx21_mxc_w1_data) -extern const struct imx_spi_imx_data imx21_cspi_data[] __initconst; +extern const struct imx_spi_imx_data imx21_cspi_data[]; #define imx21_add_cspi(id, pdata) \ imx_add_spi_imx(&imx21_cspi_data[id], pdata) #define imx21_add_spi_imx0(pdata) imx21_add_cspi(0, pdata) diff --git a/trunk/arch/arm/mach-imx/devices-imx25.h b/trunk/arch/arm/mach-imx/devices-imx25.h index b591d72f6037..efa0761c508d 100644 --- a/trunk/arch/arm/mach-imx/devices-imx25.h +++ b/trunk/arch/arm/mach-imx/devices-imx25.h @@ -9,48 +9,48 @@ #include #include -extern const struct imx_fec_data imx25_fec_data __initconst; +extern const struct imx_fec_data imx25_fec_data; #define imx25_add_fec(pdata) \ imx_add_fec(&imx25_fec_data, pdata) -extern const struct imx_flexcan_data imx25_flexcan_data[] __initconst; +extern const struct imx_flexcan_data imx25_flexcan_data[]; #define imx25_add_flexcan(id, pdata) \ imx_add_flexcan(&imx25_flexcan_data[id], pdata) #define imx25_add_flexcan0(pdata) imx25_add_flexcan(0, pdata) #define imx25_add_flexcan1(pdata) imx25_add_flexcan(1, pdata) -extern const struct imx_fsl_usb2_udc_data imx25_fsl_usb2_udc_data __initconst; +extern const struct imx_fsl_usb2_udc_data imx25_fsl_usb2_udc_data; #define imx25_add_fsl_usb2_udc(pdata) \ imx_add_fsl_usb2_udc(&imx25_fsl_usb2_udc_data, pdata) -extern struct imx_imxdi_rtc_data imx25_imxdi_rtc_data __initconst; +extern struct imx_imxdi_rtc_data imx25_imxdi_rtc_data; #define imx25_add_imxdi_rtc(pdata) \ imx_add_imxdi_rtc(&imx25_imxdi_rtc_data) -extern const struct imx_imx2_wdt_data imx25_imx2_wdt_data __initconst; +extern const struct imx_imx2_wdt_data imx25_imx2_wdt_data; #define imx25_add_imx2_wdt(pdata) \ imx_add_imx2_wdt(&imx25_imx2_wdt_data) -extern const struct imx_imx_fb_data imx25_imx_fb_data __initconst; +extern const struct imx_imx_fb_data imx25_imx_fb_data; #define imx25_add_imx_fb(pdata) \ imx_add_imx_fb(&imx25_imx_fb_data, pdata) -extern const struct imx_imx_i2c_data imx25_imx_i2c_data[] __initconst; +extern const struct imx_imx_i2c_data imx25_imx_i2c_data[]; #define imx25_add_imx_i2c(id, pdata) \ imx_add_imx_i2c(&imx25_imx_i2c_data[id], pdata) #define imx25_add_imx_i2c0(pdata) imx25_add_imx_i2c(0, pdata) #define imx25_add_imx_i2c1(pdata) imx25_add_imx_i2c(1, pdata) #define imx25_add_imx_i2c2(pdata) imx25_add_imx_i2c(2, pdata) -extern const struct imx_imx_keypad_data imx25_imx_keypad_data __initconst; +extern const struct imx_imx_keypad_data imx25_imx_keypad_data; #define imx25_add_imx_keypad(pdata) \ imx_add_imx_keypad(&imx25_imx_keypad_data, pdata) -extern const struct imx_imx_ssi_data imx25_imx_ssi_data[] __initconst; +extern const struct imx_imx_ssi_data imx25_imx_ssi_data[]; #define imx25_add_imx_ssi(id, pdata) \ imx_add_imx_ssi(&imx25_imx_ssi_data[id], pdata) -extern const struct imx_imx_uart_1irq_data imx25_imx_uart_data[] __initconst; +extern const struct imx_imx_uart_1irq_data imx25_imx_uart_data[]; #define imx25_add_imx_uart(id, pdata) \ imx_add_imx_uart_1irq(&imx25_imx_uart_data[id], pdata) #define imx25_add_imx_uart0(pdata) imx25_add_imx_uart(0, pdata) @@ -59,33 +59,32 @@ extern const struct imx_imx_uart_1irq_data imx25_imx_uart_data[] __initconst; #define imx25_add_imx_uart3(pdata) imx25_add_imx_uart(3, pdata) #define imx25_add_imx_uart4(pdata) imx25_add_imx_uart(4, pdata) -extern const struct imx_mx2_camera_data imx25_mx2_camera_data __initconst; +extern const struct imx_mx2_camera_data imx25_mx2_camera_data; #define imx25_add_mx2_camera(pdata) \ imx_add_mx2_camera(&imx25_mx2_camera_data, pdata) -extern const struct imx_mxc_ehci_data imx25_mxc_ehci_otg_data __initconst; +extern const struct imx_mxc_ehci_data imx25_mxc_ehci_otg_data; #define imx25_add_mxc_ehci_otg(pdata) \ imx_add_mxc_ehci(&imx25_mxc_ehci_otg_data, pdata) -extern const struct imx_mxc_ehci_data imx25_mxc_ehci_hs_data __initconst; +extern const struct imx_mxc_ehci_data imx25_mxc_ehci_hs_data; #define imx25_add_mxc_ehci_hs(pdata) \ imx_add_mxc_ehci(&imx25_mxc_ehci_hs_data, pdata) -extern const struct imx_mxc_nand_data imx25_mxc_nand_data __initconst; +extern const struct imx_mxc_nand_data imx25_mxc_nand_data; #define imx25_add_mxc_nand(pdata) \ imx_add_mxc_nand(&imx25_mxc_nand_data, pdata) -extern const struct imx_sdhci_esdhc_imx_data -imx25_sdhci_esdhc_imx_data[] __initconst; +extern const struct imx_sdhci_esdhc_imx_data imx25_sdhci_esdhc_imx_data[]; #define imx25_add_sdhci_esdhc_imx(id, pdata) \ imx_add_sdhci_esdhc_imx(&imx25_sdhci_esdhc_imx_data[id], pdata) -extern const struct imx_spi_imx_data imx25_cspi_data[] __initconst; +extern const struct imx_spi_imx_data imx25_cspi_data[]; #define imx25_add_spi_imx(id, pdata) \ imx_add_spi_imx(&imx25_cspi_data[id], pdata) #define imx25_add_spi_imx0(pdata) imx25_add_spi_imx(0, pdata) #define imx25_add_spi_imx1(pdata) imx25_add_spi_imx(1, pdata) #define imx25_add_spi_imx2(pdata) imx25_add_spi_imx(2, pdata) -extern struct imx_mxc_pwm_data imx25_mxc_pwm_data[] __initconst; +extern struct imx_mxc_pwm_data imx25_mxc_pwm_data[]; #define imx25_add_mxc_pwm(id) \ imx_add_mxc_pwm(&imx25_mxc_pwm_data[id]) diff --git a/trunk/arch/arm/mach-imx/devices-imx27.h b/trunk/arch/arm/mach-imx/devices-imx27.h index f1272d4b5a33..7f97a3cdd41d 100644 --- a/trunk/arch/arm/mach-imx/devices-imx27.h +++ b/trunk/arch/arm/mach-imx/devices-imx27.h @@ -9,35 +9,35 @@ #include #include -extern const struct imx_fec_data imx27_fec_data __initconst; +extern const struct imx_fec_data imx27_fec_data; #define imx27_add_fec(pdata) \ imx_add_fec(&imx27_fec_data, pdata) -extern const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data __initconst; +extern const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data; #define imx27_add_fsl_usb2_udc(pdata) \ imx_add_fsl_usb2_udc(&imx27_fsl_usb2_udc_data, pdata) -extern const struct imx_imx2_wdt_data imx27_imx2_wdt_data __initconst; +extern const struct imx_imx2_wdt_data imx27_imx2_wdt_data; #define imx27_add_imx2_wdt(pdata) \ imx_add_imx2_wdt(&imx27_imx2_wdt_data) -extern const struct imx_imx_fb_data imx27_imx_fb_data __initconst; +extern const struct imx_imx_fb_data imx27_imx_fb_data; #define imx27_add_imx_fb(pdata) \ imx_add_imx_fb(&imx27_imx_fb_data, pdata) -extern const struct imx_imx_i2c_data imx27_imx_i2c_data[] __initconst; +extern const struct imx_imx_i2c_data imx27_imx_i2c_data[]; #define imx27_add_imx_i2c(id, pdata) \ imx_add_imx_i2c(&imx27_imx_i2c_data[id], pdata) -extern const struct imx_imx_keypad_data imx27_imx_keypad_data __initconst; +extern const struct imx_imx_keypad_data imx27_imx_keypad_data; #define imx27_add_imx_keypad(pdata) \ imx_add_imx_keypad(&imx27_imx_keypad_data, pdata) -extern const struct imx_imx_ssi_data imx27_imx_ssi_data[] __initconst; +extern const struct imx_imx_ssi_data imx27_imx_ssi_data[]; #define imx27_add_imx_ssi(id, pdata) \ imx_add_imx_ssi(&imx27_imx_ssi_data[id], pdata) -extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[] __initconst; +extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[]; #define imx27_add_imx_uart(id, pdata) \ imx_add_imx_uart_1irq(&imx27_imx_uart_data[id], pdata) #define imx27_add_imx_uart0(pdata) imx27_add_imx_uart(0, pdata) @@ -47,30 +47,30 @@ extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[] __initconst; #define imx27_add_imx_uart4(pdata) imx27_add_imx_uart(4, pdata) #define imx27_add_imx_uart5(pdata) imx27_add_imx_uart(5, pdata) -extern const struct imx_mx2_camera_data imx27_mx2_camera_data __initconst; +extern const struct imx_mx2_camera_data imx27_mx2_camera_data; #define imx27_add_mx2_camera(pdata) \ imx_add_mx2_camera(&imx27_mx2_camera_data, pdata) -extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data __initconst; +extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data; #define imx27_add_mxc_ehci_otg(pdata) \ imx_add_mxc_ehci(&imx27_mxc_ehci_otg_data, pdata) -extern const struct imx_mxc_ehci_data imx27_mxc_ehci_hs_data[] __initconst; +extern const struct imx_mxc_ehci_data imx27_mxc_ehci_hs_data[]; #define imx27_add_mxc_ehci_hs(id, pdata) \ imx_add_mxc_ehci(&imx27_mxc_ehci_hs_data[id - 1], pdata) -extern const struct imx_mxc_mmc_data imx27_mxc_mmc_data[] __initconst; +extern const struct imx_mxc_mmc_data imx27_mxc_mmc_data[]; #define imx27_add_mxc_mmc(id, pdata) \ imx_add_mxc_mmc(&imx27_mxc_mmc_data[id], pdata) -extern const struct imx_mxc_nand_data imx27_mxc_nand_data __initconst; +extern const struct imx_mxc_nand_data imx27_mxc_nand_data; #define imx27_add_mxc_nand(pdata) \ imx_add_mxc_nand(&imx27_mxc_nand_data, pdata) -extern const struct imx_mxc_w1_data imx27_mxc_w1_data __initconst; +extern const struct imx_mxc_w1_data imx27_mxc_w1_data; #define imx27_add_mxc_w1(pdata) \ imx_add_mxc_w1(&imx27_mxc_w1_data) -extern const struct imx_spi_imx_data imx27_cspi_data[] __initconst; +extern const struct imx_spi_imx_data imx27_cspi_data[]; #define imx27_add_cspi(id, pdata) \ imx_add_spi_imx(&imx27_cspi_data[id], pdata) #define imx27_add_spi_imx0(pdata) imx27_add_cspi(0, pdata) diff --git a/trunk/arch/arm/mach-mx3/devices-imx31.h b/trunk/arch/arm/mach-imx/devices-imx31.h similarity index 67% rename from trunk/arch/arm/mach-mx3/devices-imx31.h rename to trunk/arch/arm/mach-imx/devices-imx31.h index 40f4e848a671..dbe940d9c53a 100644 --- a/trunk/arch/arm/mach-mx3/devices-imx31.h +++ b/trunk/arch/arm/mach-imx/devices-imx31.h @@ -9,30 +9,30 @@ #include #include -extern const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data __initconst; +extern const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data; #define imx31_add_fsl_usb2_udc(pdata) \ imx_add_fsl_usb2_udc(&imx31_fsl_usb2_udc_data, pdata) -extern const struct imx_imx2_wdt_data imx31_imx2_wdt_data __initconst; +extern const struct imx_imx2_wdt_data imx31_imx2_wdt_data; #define imx31_add_imx2_wdt(pdata) \ imx_add_imx2_wdt(&imx31_imx2_wdt_data) -extern const struct imx_imx_i2c_data imx31_imx_i2c_data[] __initconst; +extern const struct imx_imx_i2c_data imx31_imx_i2c_data[]; #define imx31_add_imx_i2c(id, pdata) \ imx_add_imx_i2c(&imx31_imx_i2c_data[id], pdata) #define imx31_add_imx_i2c0(pdata) imx31_add_imx_i2c(0, pdata) #define imx31_add_imx_i2c1(pdata) imx31_add_imx_i2c(1, pdata) #define imx31_add_imx_i2c2(pdata) imx31_add_imx_i2c(2, pdata) -extern const struct imx_imx_keypad_data imx31_imx_keypad_data __initconst; +extern const struct imx_imx_keypad_data imx31_imx_keypad_data; #define imx31_add_imx_keypad(pdata) \ imx_add_imx_keypad(&imx31_imx_keypad_data, pdata) -extern const struct imx_imx_ssi_data imx31_imx_ssi_data[] __initconst; +extern const struct imx_imx_ssi_data imx31_imx_ssi_data[]; #define imx31_add_imx_ssi(id, pdata) \ imx_add_imx_ssi(&imx31_imx_ssi_data[id], pdata) -extern const struct imx_imx_uart_1irq_data imx31_imx_uart_data[] __initconst; +extern const struct imx_imx_uart_1irq_data imx31_imx_uart_data[]; #define imx31_add_imx_uart(id, pdata) \ imx_add_imx_uart_1irq(&imx31_imx_uart_data[id], pdata) #define imx31_add_imx_uart0(pdata) imx31_add_imx_uart(0, pdata) @@ -41,26 +41,38 @@ extern const struct imx_imx_uart_1irq_data imx31_imx_uart_data[] __initconst; #define imx31_add_imx_uart3(pdata) imx31_add_imx_uart(3, pdata) #define imx31_add_imx_uart4(pdata) imx31_add_imx_uart(4, pdata) -extern const struct imx_mxc_ehci_data imx31_mxc_ehci_otg_data __initconst; +extern const struct imx_ipu_core_data imx31_ipu_core_data; +#define imx31_add_ipu_core(pdata) \ + imx_add_ipu_core(&imx31_ipu_core_data, pdata) +#define imx31_alloc_mx3_camera(pdata) \ + imx_alloc_mx3_camera(&imx31_ipu_core_data, pdata) +#define imx31_add_mx3_sdc_fb(pdata) \ + imx_add_mx3_sdc_fb(&imx31_ipu_core_data, pdata) + +extern const struct imx_mxc_ehci_data imx31_mxc_ehci_otg_data; #define imx31_add_mxc_ehci_otg(pdata) \ imx_add_mxc_ehci(&imx31_mxc_ehci_otg_data, pdata) -extern const struct imx_mxc_ehci_data imx31_mxc_ehci_hs_data[] __initconst; +extern const struct imx_mxc_ehci_data imx31_mxc_ehci_hs_data[]; #define imx31_add_mxc_ehci_hs(id, pdata) \ imx_add_mxc_ehci(&imx31_mxc_ehci_hs_data[id - 1], pdata) -extern const struct imx_mxc_mmc_data imx31_mxc_mmc_data[] __initconst; +extern const struct imx_mxc_mmc_data imx31_mxc_mmc_data[]; #define imx31_add_mxc_mmc(id, pdata) \ imx_add_mxc_mmc(&imx31_mxc_mmc_data[id], pdata) -extern const struct imx_mxc_nand_data imx31_mxc_nand_data __initconst; +extern const struct imx_mxc_nand_data imx31_mxc_nand_data; #define imx31_add_mxc_nand(pdata) \ imx_add_mxc_nand(&imx31_mxc_nand_data, pdata) -extern const struct imx_mxc_w1_data imx31_mxc_w1_data __initconst; +extern const struct imx_mxc_rtc_data imx31_mxc_rtc_data; +#define imx31_add_mxc_rtc(pdata) \ + imx_add_mxc_rtc(&imx31_mxc_rtc_data) + +extern const struct imx_mxc_w1_data imx31_mxc_w1_data; #define imx31_add_mxc_w1(pdata) \ imx_add_mxc_w1(&imx31_mxc_w1_data) -extern const struct imx_spi_imx_data imx31_cspi_data[] __initconst; +extern const struct imx_spi_imx_data imx31_cspi_data[]; #define imx31_add_cspi(id, pdata) \ imx_add_spi_imx(&imx31_cspi_data[id], pdata) #define imx31_add_spi_imx0(pdata) imx31_add_cspi(0, pdata) diff --git a/trunk/arch/arm/mach-mx3/devices-imx35.h b/trunk/arch/arm/mach-imx/devices-imx35.h similarity index 69% rename from trunk/arch/arm/mach-mx3/devices-imx35.h rename to trunk/arch/arm/mach-imx/devices-imx35.h index d545d86cc202..234cbd3c18af 100644 --- a/trunk/arch/arm/mach-mx3/devices-imx35.h +++ b/trunk/arch/arm/mach-imx/devices-imx35.h @@ -9,67 +9,74 @@ #include #include -extern const struct imx_fec_data imx35_fec_data __initconst; +extern const struct imx_fec_data imx35_fec_data; #define imx35_add_fec(pdata) \ imx_add_fec(&imx35_fec_data, pdata) -extern const struct imx_fsl_usb2_udc_data imx35_fsl_usb2_udc_data __initconst; +extern const struct imx_fsl_usb2_udc_data imx35_fsl_usb2_udc_data; #define imx35_add_fsl_usb2_udc(pdata) \ imx_add_fsl_usb2_udc(&imx35_fsl_usb2_udc_data, pdata) -extern const struct imx_flexcan_data imx35_flexcan_data[] __initconst; +extern const struct imx_flexcan_data imx35_flexcan_data[]; #define imx35_add_flexcan(id, pdata) \ imx_add_flexcan(&imx35_flexcan_data[id], pdata) #define imx35_add_flexcan0(pdata) imx35_add_flexcan(0, pdata) #define imx35_add_flexcan1(pdata) imx35_add_flexcan(1, pdata) -extern const struct imx_imx2_wdt_data imx35_imx2_wdt_data __initconst; +extern const struct imx_imx2_wdt_data imx35_imx2_wdt_data; #define imx35_add_imx2_wdt(pdata) \ imx_add_imx2_wdt(&imx35_imx2_wdt_data) -extern const struct imx_imx_i2c_data imx35_imx_i2c_data[] __initconst; +extern const struct imx_imx_i2c_data imx35_imx_i2c_data[]; #define imx35_add_imx_i2c(id, pdata) \ imx_add_imx_i2c(&imx35_imx_i2c_data[id], pdata) #define imx35_add_imx_i2c0(pdata) imx35_add_imx_i2c(0, pdata) #define imx35_add_imx_i2c1(pdata) imx35_add_imx_i2c(1, pdata) #define imx35_add_imx_i2c2(pdata) imx35_add_imx_i2c(2, pdata) -extern const struct imx_imx_keypad_data imx35_imx_keypad_data __initconst; +extern const struct imx_imx_keypad_data imx35_imx_keypad_data; #define imx35_add_imx_keypad(pdata) \ imx_add_imx_keypad(&imx35_imx_keypad_data, pdata) -extern const struct imx_imx_ssi_data imx35_imx_ssi_data[] __initconst; +extern const struct imx_imx_ssi_data imx35_imx_ssi_data[]; #define imx35_add_imx_ssi(id, pdata) \ imx_add_imx_ssi(&imx35_imx_ssi_data[id], pdata) -extern const struct imx_imx_uart_1irq_data imx35_imx_uart_data[] __initconst; +extern const struct imx_imx_uart_1irq_data imx35_imx_uart_data[]; #define imx35_add_imx_uart(id, pdata) \ imx_add_imx_uart_1irq(&imx35_imx_uart_data[id], pdata) #define imx35_add_imx_uart0(pdata) imx35_add_imx_uart(0, pdata) #define imx35_add_imx_uart1(pdata) imx35_add_imx_uart(1, pdata) #define imx35_add_imx_uart2(pdata) imx35_add_imx_uart(2, pdata) -extern const struct imx_mxc_ehci_data imx35_mxc_ehci_otg_data __initconst; +extern const struct imx_ipu_core_data imx35_ipu_core_data; +#define imx35_add_ipu_core(pdata) \ + imx_add_ipu_core(&imx35_ipu_core_data, pdata) +#define imx35_alloc_mx3_camera(pdata) \ + imx_alloc_mx3_camera(&imx35_ipu_core_data, pdata) +#define imx35_add_mx3_sdc_fb(pdata) \ + imx_add_mx3_sdc_fb(&imx35_ipu_core_data, pdata) + +extern const struct imx_mxc_ehci_data imx35_mxc_ehci_otg_data; #define imx35_add_mxc_ehci_otg(pdata) \ imx_add_mxc_ehci(&imx35_mxc_ehci_otg_data, pdata) -extern const struct imx_mxc_ehci_data imx35_mxc_ehci_hs_data __initconst; +extern const struct imx_mxc_ehci_data imx35_mxc_ehci_hs_data; #define imx35_add_mxc_ehci_hs(pdata) \ imx_add_mxc_ehci(&imx35_mxc_ehci_hs_data, pdata) -extern const struct imx_mxc_nand_data imx35_mxc_nand_data __initconst; +extern const struct imx_mxc_nand_data imx35_mxc_nand_data; #define imx35_add_mxc_nand(pdata) \ imx_add_mxc_nand(&imx35_mxc_nand_data, pdata) -extern const struct imx_mxc_w1_data imx35_mxc_w1_data __initconst; +extern const struct imx_mxc_w1_data imx35_mxc_w1_data; #define imx35_add_mxc_w1(pdata) \ imx_add_mxc_w1(&imx35_mxc_w1_data) -extern const struct imx_sdhci_esdhc_imx_data -imx35_sdhci_esdhc_imx_data[] __initconst; +extern const struct imx_sdhci_esdhc_imx_data imx35_sdhci_esdhc_imx_data[]; #define imx35_add_sdhci_esdhc_imx(id, pdata) \ imx_add_sdhci_esdhc_imx(&imx35_sdhci_esdhc_imx_data[id], pdata) -extern const struct imx_spi_imx_data imx35_cspi_data[] __initconst; +extern const struct imx_spi_imx_data imx35_cspi_data[]; #define imx35_add_cspi(id, pdata) \ imx_add_spi_imx(&imx35_cspi_data[id], pdata) #define imx35_add_spi_imx0(pdata) imx35_add_cspi(0, pdata) diff --git a/trunk/arch/arm/mach-mx3/ehci-imx31.c b/trunk/arch/arm/mach-imx/ehci-imx31.c similarity index 99% rename from trunk/arch/arm/mach-mx3/ehci-imx31.c rename to trunk/arch/arm/mach-imx/ehci-imx31.c index 314a983ac614..faad0f15ac7f 100644 --- a/trunk/arch/arm/mach-mx3/ehci-imx31.c +++ b/trunk/arch/arm/mach-imx/ehci-imx31.c @@ -80,4 +80,3 @@ int mx31_initialize_usb_hw(int port, unsigned int flags) return 0; } - diff --git a/trunk/arch/arm/mach-mx3/ehci-imx35.c b/trunk/arch/arm/mach-imx/ehci-imx35.c similarity index 99% rename from trunk/arch/arm/mach-mx3/ehci-imx35.c rename to trunk/arch/arm/mach-imx/ehci-imx35.c index 33983a478c6b..001ec3971f5d 100644 --- a/trunk/arch/arm/mach-mx3/ehci-imx35.c +++ b/trunk/arch/arm/mach-imx/ehci-imx35.c @@ -77,4 +77,3 @@ int mx35_initialize_usb_hw(int port, unsigned int flags) return 0; } - diff --git a/trunk/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c b/trunk/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c index fa5288018ba7..5911281da5f5 100644 --- a/trunk/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c +++ b/trunk/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c @@ -32,7 +32,6 @@ #include #include #include -#include #include #include "devices-imx27.h" diff --git a/trunk/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c b/trunk/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c index 6269053505f7..f9ef04acdab1 100644 --- a/trunk/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c +++ b/trunk/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include