History

Merge tag 'v3.4-rc3' into staging/for_v3.5

* tag 'v3.4-rc3': (3755 commits) Linux 3.4-rc3 x86-32: fix up strncpy_from_user() sign error ARM: 7386/1: jump_label: fixup for rename to static_key ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic MMU ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus PCI: Fix regression in pci_restore_state(), v3 SCSI: Fix error handling when no ULD is attached ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors ARM: dts: remove blank interrupt-parent properties ARM: EXYNOS: Fix Kconfig dependencies for device tree enabled machine files do not export kernel's NULL #define to userspace ARM: EXYNOS: Remove broken config values for touchscren for NURI board ARM: EXYNOS: set fix xusbxti clock for NURI and Universal210 boards ARM: EXYNOS: fix regulator name for NURI board ARM: SAMSUNG: make SAMSUNG_PM_DEBUG select DEBUG_LL cpufreq: OMAP: fix build errors: depends on ARCH_OMAP2PLUS sparc64: Eliminate obsolete __handle_softirq() function sparc64: Fix bootup crash on sun4v. ARM: msm: Fix section mismatches in proc_comm.c ...

Mauro Carvalho Chehab committed 14 years ago

Commit d5aeee82 parents 32898a1 e816b575693 files · +147011 −72971Browse files

Unified · Split

4404 files
  1. Documentation/ABI/stable/sysfs-driver-usb-usbtmc +8 −8
  2. Documentation/ABI/testing/debugfs-olpc +16 −0
  3. Documentation/ABI/testing/sysfs-block-dm +25 −0
  4. Documentation/ABI/testing/sysfs-block-rssd +18 −0
  5. Documentation/ABI/testing/sysfs-bus-event_source-devices-format +14 −0
  6. Documentation/ABI/testing/sysfs-bus-rpmsg +75 −0
  7. Documentation/ABI/testing/sysfs-cfq-target-latency +8 −0
  8. Documentation/ABI/testing/sysfs-driver-samsung-laptop +18 −0
  9. Documentation/ABI/testing/sysfs-firmware-acpi +20 −0
  10. Documentation/CodingStyle +29 −0
  11. Documentation/DMA-attributes.txt +18 −0
  12. Documentation/DocBook/device-drivers.tmpl +17 −0
  13. Documentation/Makefile +1 −1
  14. Documentation/acpi/apei/einj.txt +8 −0
  15. Documentation/aoe/aoe.txt +1 −1
  16. Documentation/aoe/autoload.sh +2 −2
  17. Documentation/blockdev/floppy.txt +1 −1
  18. Documentation/cgroups/cpusets.txt +1 −1
  19. Documentation/cgroups/memory.txt +2 −3
  20. Documentation/clk.txt +233 −0
  21. Documentation/cpu-hotplug.txt +11 −11
  22. Documentation/cpuidle/sysfs.txt +5 −0
  23. Documentation/device-mapper/thin-provisioning.txt +50 −15
  24. Documentation/device-mapper/verity.txt +194 −0
  25. Documentation/devicetree/bindings/arm/atmel-aic.txt +38 −0
  26. Documentation/devicetree/bindings/arm/atmel-at91.txt +92 −0
  27. Documentation/devicetree/bindings/arm/atmel-pmc.txt +11 −0
  28. Documentation/devicetree/bindings/arm/fsl.txt +22 −0
  29. Documentation/devicetree/bindings/arm/mrvl.txt +6 −0
  30. Documentation/devicetree/bindings/arm/omap/intc.txt +27 −0
  31. Documentation/devicetree/bindings/arm/spear.txt +8 −0
  32. Documentation/devicetree/bindings/arm/tegra/emc.txt +100 −0
  33. Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt +19 −0
  34. Documentation/devicetree/bindings/arm/twd.txt +48 −0
  35. Documentation/devicetree/bindings/arm/vexpress.txt +146 −0
  36. Documentation/devicetree/bindings/dma/tegra20-apbdma.txt +30 −0
  37. Documentation/devicetree/bindings/gpio/gpio-omap.txt +36 −0
  38. Documentation/devicetree/bindings/gpio/gpio-twl4030.txt +23 −0
  39. Documentation/devicetree/bindings/gpio/gpio_atmel.txt +20 −0
  40. Documentation/devicetree/bindings/gpio/gpio_i2c.txt +32 −0
  41. Documentation/devicetree/bindings/gpio/gpio_nvidia.txt +34 −2
  42. Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +23 −0
  43. Documentation/devicetree/bindings/gpio/sodaville.txt +48 −0
  44. Documentation/devicetree/bindings/i2c/mrvl-i2c.txt +37 −0
  45. Documentation/devicetree/bindings/i2c/sirf-i2c.txt +19 −0
  46. Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt +33 −0
  47. Documentation/devicetree/bindings/mtd/arm-versatile.txt +2 −2
  48. Documentation/devicetree/bindings/mtd/atmel-dataflash.txt +3 −0
  49. Documentation/devicetree/bindings/mtd/atmel-nand.txt +41 −0
  50. Documentation/devicetree/bindings/mtd/fsl-upm-nand.txt +4 −0
  51. Documentation/devicetree/bindings/mtd/fsmc-nand.txt +33 −0
  52. Documentation/devicetree/bindings/mtd/gpio-control-nand.txt +3 −0
  53. Documentation/devicetree/bindings/mtd/mtd-physmap.txt +2 −21
  54. Documentation/devicetree/bindings/mtd/nand.txt +7 −0
  55. Documentation/devicetree/bindings/mtd/partition.txt +38 −0
  56. Documentation/devicetree/bindings/mtd/spear_smi.txt +31 −0
  57. Documentation/devicetree/bindings/power_supply/max17042_battery.txt +18 −0
  58. Documentation/devicetree/bindings/regulator/anatop-regulator.txt +29 −0
  59. Documentation/devicetree/bindings/rtc/sa1100-rtc.txt +17 −0
  60. Documentation/devicetree/bindings/serial/mrvl-serial.txt +4 −0
  61. Documentation/devicetree/bindings/usb/atmel-usb.txt +49 −0
  62. Documentation/devicetree/bindings/usb/tegra-usb.txt +13 −0
  63. Documentation/devicetree/usage-model.txt +412 −0
  64. Documentation/dma-buf-sharing.txt +117 −3
  65. Documentation/dontdiff +0 −1
  66. Documentation/edac.txt +2 −2
  67. Documentation/fb/intel810.txt +1 −1
  68. Documentation/fb/intelfb.txt +1 −1
  69. Documentation/feature-removal-schedule.txt +18 −22
  70. Documentation/filesystems/ext4.txt +0 −8
  71. Documentation/filesystems/files.txt +2 −2
  72. Documentation/filesystems/vfs.txt +1 −1
  73. Documentation/gpio.txt +35 −5
  74. Documentation/hwmon/k10temp +1 −1
  75. Documentation/hwmon/lm90 +4 −0
  76. Documentation/hwmon/mc13783-adc +37 −13
  77. Documentation/hwmon/mcp3021 +22 −0
  78. Documentation/i2c/busses/i2c-i801 +1 −0
  79. Documentation/i2c/busses/scx200_acb +1 −1
  80. Documentation/ide/ide.txt +1 −1
  81. Documentation/input/input.txt +2 −2
  82. Documentation/ioctl/ioctl-number.txt +1 −0
  83. Documentation/isdn/README.gigaset +7 −9
  84. Documentation/kbuild/kconfig.txt +3 −5
  85. Documentation/kernel-parameters.txt +20 −4
  86. Documentation/laptops/asus-laptop.txt +1 −1
  87. Documentation/laptops/sony-laptop.txt +5 −0
  88. Documentation/laptops/sonypi.txt +1 −1
  89. Documentation/mono.txt +4 −4
  90. Documentation/networking/baycom.txt +1 −1
  91. Documentation/networking/bonding.txt +19 −27
  92. Documentation/networking/dl2k.txt +6 −5
  93. Documentation/networking/driver.txt +15 −16
  94. Documentation/networking/e100.txt +3 −3
  95. Documentation/networking/ip-sysctl.txt +2 −9
  96. Documentation/networking/ipv6.txt +3 −3
  97. Documentation/networking/ixgb.txt +3 −3
  98. Documentation/networking/ltpc.txt +1 −1
  99. Documentation/networking/netdevices.txt +12 −13
  100. Documentation/networking/vortex.txt +3 −3
  101. Documentation/parport.txt +6 −7
  102. Documentation/remoteproc.txt +322 −0
  103. Documentation/rpmsg.txt +293 −0
  104. Documentation/s390/3270.txt +10 −11
  105. Documentation/scsi/00-INDEX +2 −0
  106. Documentation/scsi/aic79xx.txt +1 −1
  107. Documentation/scsi/aic7xxx.txt +1 −1
  108. Documentation/scsi/osst.txt +1 −1
  109. Documentation/scsi/st.txt +4 −0
  110. Documentation/scsi/ufs.txt +133 −0
  111. Documentation/serial/computone.txt +4 −4
  112. Documentation/serial/rocket.txt +1 −1
  113. Documentation/serial/stallion.txt +2 −2
  114. Documentation/sound/alsa/ALSA-Configuration.txt +5 −5
  115. Documentation/sound/alsa/Audiophile-Usb.txt +2 −2
  116. Documentation/sound/alsa/HD-Audio-Models.txt +3 −1
  117. Documentation/sound/alsa/MIXART.txt +3 −3
  118. Documentation/sound/alsa/OSS-Emulation.txt +1 −1
  119. Documentation/sound/oss/AudioExcelDSP16 +5 −5
  120. Documentation/sound/oss/CMI8330 +2 −3
  121. Documentation/sound/oss/Introduction +5 −5
  122. Documentation/sound/oss/Opti +2 −6
  123. Documentation/sound/oss/PAS16 +2 −2
  124. Documentation/sound/oss/README.modules +5 −5
  125. Documentation/sysrq.txt +2 −3
  126. Documentation/usb/URB.txt +22 −0
  127. Documentation/usb/power-management.txt +2 −1
  128. Documentation/usb/usbmon.txt +3 −3
  129. Documentation/video4linux/CQcam.txt +2 −12
  130. Documentation/video4linux/Zoran +1 −1
  131. Documentation/video4linux/bttv/Modules.conf +1 −1
  132. Documentation/video4linux/meye.txt +1 −1
  133. Documentation/virtual/kvm/api.txt +258 −1
  134. Documentation/virtual/kvm/ppc-pv.txt +2 −22
  135. Documentation/vm/Makefile +0 −8
  136. Documentation/watchdog/00-INDEX +0 −19
  137. Documentation/watchdog/convert_drivers_to_kernel_api.txt +4 −0
  138. Documentation/watchdog/watchdog-kernel-api.txt +7 −4
  139. MAINTAINERS +78 −54
  140. Makefile +3 −3
  141. arch/Kconfig +3 −0
  142. arch/alpha/boot/bootp.c +0 −1
  143. arch/alpha/boot/bootpz.c +0 −1
  144. arch/alpha/boot/head.S +0 −1
  145. arch/alpha/boot/main.c +0 −1
  146. arch/alpha/include/asm/atomic.h +1 −1
  147. arch/alpha/include/asm/auxvec.h +2 −0
  148. arch/alpha/include/asm/cmpxchg.h +71 −0
  149. arch/alpha/include/asm/core_lca.h +1 −1
  150. arch/alpha/include/asm/core_mcpcia.h +1 −0
  151. arch/alpha/include/asm/core_t2.h +0 −1
  152. arch/alpha/include/asm/dma-mapping.h +12 −6
  153. arch/alpha/include/asm/elf.h +1 −0
  154. arch/alpha/include/asm/exec.h +6 −0
  155. arch/alpha/include/asm/fpu.h +2 −0
  156. arch/alpha/include/asm/io.h +0 −1
  157. arch/alpha/include/asm/irqflags.h +1 −1
  158. arch/alpha/include/asm/mce.h +83 −0
  159. arch/alpha/include/asm/mman.h +4 −0
  160. arch/alpha/include/asm/mmu_context.h +0 −1
  161. arch/alpha/include/asm/pal.h +112 −0
  162. arch/alpha/include/asm/pci.h +1 −6
  163. arch/alpha/include/asm/pgtable.h +1 −0
  164. arch/alpha/include/asm/posix_types.h +5 −108
  165. arch/alpha/include/asm/setup.h +36 −0
  166. arch/alpha/include/asm/special_insns.h +41 −0
  167. arch/alpha/include/asm/spinlock.h +0 −1
  168. arch/alpha/include/asm/switch_to.h +14 −0
  169. arch/alpha/include/asm/system.h +0 −354
  170. arch/alpha/include/asm/xchg.h +2 −2
  171. arch/alpha/kernel/core_apecs.c +1 −0
  172. arch/alpha/kernel/core_cia.c +1 −0
  173. arch/alpha/kernel/core_t2.c +1 −0
  174. arch/alpha/kernel/err_impl.h +2 −0
  175. arch/alpha/kernel/head.S +2 −4
  176. arch/alpha/kernel/irq.c +0 −1
  177. arch/alpha/kernel/irq_alpha.c +1 −0
  178. arch/alpha/kernel/osf_sys.c +0 −1
  179. arch/alpha/kernel/pci-noop.c +6 −4
  180. arch/alpha/kernel/pci.c +11 −75
  181. arch/alpha/kernel/pci_impl.h +0 −3
  182. arch/alpha/kernel/pci_iommu.c +6 −4
  183. arch/alpha/kernel/process.c +0 −1
  184. arch/alpha/kernel/ptrace.c +0 −1
  185. arch/alpha/kernel/setup.c +0 −1
  186. arch/alpha/kernel/signal.c +10 −21
  187. arch/alpha/kernel/smp.c +1 −1
  188. arch/alpha/kernel/sys_alcor.c +0 −1
  189. arch/alpha/kernel/sys_cabriolet.c +0 −1
  190. arch/alpha/kernel/sys_dp264.c +0 −1
  191. arch/alpha/kernel/sys_eb64p.c +0 −1
  192. arch/alpha/kernel/sys_eiger.c +0 −1
  193. arch/alpha/kernel/sys_jensen.c +0 −1
  194. arch/alpha/kernel/sys_marvel.c +2 −2
  195. arch/alpha/kernel/sys_miata.c +0 −1
  196. arch/alpha/kernel/sys_mikasa.c +1 −1
  197. arch/alpha/kernel/sys_nautilus.c +0 −1
  198. arch/alpha/kernel/sys_noritake.c +1 −1
  199. arch/alpha/kernel/sys_rawhide.c +0 −1
  200. arch/alpha/kernel/sys_ruffian.c +0 −1
  201. arch/alpha/kernel/sys_rx164.c +0 −1
  202. arch/alpha/kernel/sys_sable.c +0 −1
  203. arch/alpha/kernel/sys_sio.c +0 −1
  204. arch/alpha/kernel/sys_sx164.c +1 −1
  205. arch/alpha/kernel/sys_takara.c +0 −1
  206. arch/alpha/kernel/sys_titan.c +2 −2
  207. arch/alpha/kernel/sys_wildfire.c +0 −1
  208. arch/alpha/kernel/traps.c +1 −0
  209. arch/alpha/kernel/vmlinux.lds.S +2 −0
  210. arch/alpha/lib/stacktrace.c +0 −1
  211. arch/alpha/mm/fault.c +0 −1
  212. arch/alpha/mm/init.c +1 −1
  213. arch/alpha/oprofile/common.c +0 −1
  214. arch/alpha/oprofile/op_model_ev4.c +0 −1
  215. arch/alpha/oprofile/op_model_ev5.c +0 −1
  216. arch/alpha/oprofile/op_model_ev6.c +0 −1
  217. arch/alpha/oprofile/op_model_ev67.c +0 −1
  218. arch/arm/Kconfig +60 −36
  219. arch/arm/Kconfig.debug +98 −82
  220. arch/arm/Makefile +3 −1
  221. arch/arm/boot/Makefile +9 −14
  222. arch/arm/boot/compressed/.gitignore +2 −0
  223. arch/arm/boot/compressed/Makefile +12 −3
  224. arch/arm/boot/compressed/atags_to_fdt.c +2 −0
  225. arch/arm/boot/compressed/decompress.c +6 −0
  226. arch/arm/boot/compressed/head.S +2 −2
  227. arch/arm/boot/compressed/piggy.xzkern.S +6 −0
  228. arch/arm/boot/dts/am3517_mt_ventoux.dts +27 −0
  229. arch/arm/boot/dts/at91sam9g20.dtsi +123 −11
  230. arch/arm/boot/dts/at91sam9g25ek.dts +49 −0
  231. arch/arm/boot/dts/at91sam9g45.dtsi +144 −10
  232. arch/arm/boot/dts/at91sam9m10g45ek.dts +118 −2
  233. arch/arm/boot/dts/at91sam9x5.dtsi +263 −0
  234. arch/arm/boot/dts/at91sam9x5cm.dtsi +74 −0
  235. arch/arm/boot/dts/db8500.dtsi +274 −0
  236. arch/arm/boot/dts/exynos5250-smdk5250.dts +26 −0
  237. arch/arm/boot/dts/exynos5250.dtsi +413 −0
  238. arch/arm/boot/dts/highbank.dts +4 −5
  239. arch/arm/boot/dts/imx27-phytec-phycore.dts +76 −0
  240. arch/arm/boot/dts/imx27.dtsi +217 −0
  241. arch/arm/boot/dts/imx51-babbage.dts +89 −2
  242. arch/arm/boot/dts/imx6q-arm2.dts +14 −0
  243. arch/arm/boot/dts/imx6q-sabrelite.dts +34 −0
  244. arch/arm/boot/dts/imx6q.dtsi +3 −3
  245. arch/arm/boot/dts/kirkwood-dreamplug.dts +24 −0
  246. arch/arm/boot/dts/kirkwood.dtsi +36 −0
  247. arch/arm/boot/dts/omap3-beagle.dts +0 −9
  248. arch/arm/boot/dts/omap3-evm.dts +20 −0
  249. arch/arm/boot/dts/omap3.dtsi +29 −6
  250. arch/arm/boot/dts/omap4-panda.dts +0 −9
  251. arch/arm/boot/dts/omap4-sdp.dts +0 −9
  252. arch/arm/boot/dts/omap4.dtsi +33 −5
  253. arch/arm/boot/dts/pxa168-aspenite.dts +38 −0
  254. arch/arm/boot/dts/pxa168.dtsi +98 −0
  255. arch/arm/boot/dts/snowball.dts +139 −0
  256. arch/arm/boot/dts/spear600-evb.dts +47 −0
  257. arch/arm/boot/dts/spear600.dtsi +174 −0
  258. arch/arm/boot/dts/tegra-cardhu.dts +34 −0
  259. arch/arm/boot/dts/tegra-harmony.dts +35 −10
  260. arch/arm/boot/dts/tegra-paz00.dts +57 −0
  261. arch/arm/boot/dts/tegra-seaboard.dts +79 −0
  262. arch/arm/boot/dts/tegra-trimslice.dts +12 −0
  263. arch/arm/boot/dts/tegra-ventana.dts +42 −0
  264. arch/arm/boot/dts/tegra20.dtsi +46 −4
  265. arch/arm/boot/dts/tegra30.dtsi +60 −1
  266. arch/arm/boot/dts/usb_a9g20-dab-mmx.dtsi +96 −0
  267. arch/arm/boot/dts/usb_a9g20.dts +97 −2
  268. arch/arm/boot/dts/vexpress-v2m-rs1.dtsi +201 −0
  269. arch/arm/boot/dts/vexpress-v2m.dtsi +200 −0
  270. arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts +157 −0
  271. arch/arm/boot/dts/vexpress-v2p-ca5s.dts +162 −0
  272. arch/arm/boot/dts/vexpress-v2p-ca9.dts +192 −0
  273. arch/arm/common/Kconfig +0 −6
  274. arch/arm/common/Makefile +0 −2
  275. arch/arm/common/gic.c +6 −7
  276. arch/arm/common/it8152.c +2 −2
  277. arch/arm/common/pl330.c +0 −1960
  278. arch/arm/common/sa1111.c +185 −96
  279. arch/arm/common/timer-sp.c +16 −1
  280. arch/arm/common/via82c505.c +0 −1
  281. arch/arm/common/vic.c +4 −5
  282. arch/arm/configs/at91cap9_defconfig +0 −108
  283. arch/arm/configs/at91sam9g20_defconfig +3 −0
  284. arch/arm/configs/imx_v4_v5_defconfig +19 −0
  285. arch/arm/configs/imx_v6_v7_defconfig +36 −3
  286. arch/arm/configs/integrator_defconfig +8 −0
  287. arch/arm/configs/lpc32xx_defconfig +145 −0
  288. arch/arm/configs/magician_defconfig +1 −1
  289. arch/arm/configs/mini2440_defconfig +1 −1
  290. arch/arm/configs/mxs_defconfig +17 −3
  291. arch/arm/configs/s3c2410_defconfig +18 −39
  292. arch/arm/configs/tct_hammer_defconfig +1 −1
  293. arch/arm/configs/tegra_defconfig +22 −11
  294. arch/arm/configs/u8500_defconfig +1 −0
  295. arch/arm/include/asm/assembler.h +2 −0
  296. arch/arm/include/asm/atomic.h +3 −1
  297. arch/arm/include/asm/barrier.h +69 −0
  298. arch/arm/include/asm/bitops.h +1 −1
  299. arch/arm/include/asm/bug.h +30 −0
  300. arch/arm/include/asm/cmpxchg.h +295 −0
  301. arch/arm/include/asm/compiler.h +15 −0
  302. arch/arm/include/asm/cp15.h +87 −0
  303. arch/arm/include/asm/cpuidle.h +29 −0
  304. arch/arm/include/asm/div64.h +1 −1
  305. arch/arm/include/asm/dma.h +0 −1
  306. arch/arm/include/asm/domain.h +4 −0
  307. arch/arm/include/asm/elf.h +0 −4
  308. arch/arm/include/asm/exec.h +6 −0
  309. arch/arm/include/asm/hardware/arm_timer.h +5 −0
  310. arch/arm/include/asm/hardware/cache-l2x0.h +3 −3
  311. arch/arm/include/asm/hardware/entry-macro-iomd.S +0 −8
  312. arch/arm/include/asm/hardware/iop3xx.h +3 −0
  313. arch/arm/include/asm/hardware/iop_adma.h +0 −2
  314. arch/arm/include/asm/hardware/it8152.h +3 −0
  315. arch/arm/include/asm/hardware/pl330.h +0 −217
  316. arch/arm/include/asm/hardware/sa1111.h +23 −133
  317. arch/arm/include/asm/hardware/timer-sp.h +14 −1
  318. arch/arm/include/asm/io.h +34 −39
  319. arch/arm/include/asm/irq.h +6 −2
  320. arch/arm/include/asm/jump_label.h +41 −0
  321. arch/arm/include/asm/localtimer.h +7 −30
  322. arch/arm/include/asm/mc146818rtc.h +3 −1
  323. arch/arm/include/asm/memory.h +2 −0
  324. arch/arm/include/asm/mmu.h +7 −0
  325. arch/arm/include/asm/mmu_context.h +1 −28
  326. arch/arm/include/asm/opcodes.h +59 −0
  327. arch/arm/include/asm/page.h +2 −0
  328. arch/arm/include/asm/pci.h +0 −8
  329. arch/arm/include/asm/perf_event.h +1 −0
  330. arch/arm/include/asm/posix_types.h +9 −46
  331. arch/arm/include/asm/processor.h +2 −2
  332. arch/arm/include/asm/prom.h +0 −2
  333. arch/arm/include/asm/smp_twd.h +21 −4
  334. arch/arm/include/asm/switch_to.h +18 −0
  335. arch/arm/include/asm/system.h +8 −543
  336. arch/arm/include/asm/system_info.h +27 −0
  337. arch/arm/include/asm/system_misc.h +29 −0
  338. arch/arm/include/asm/tlbflush.h +58 −78
  339. arch/arm/include/asm/traps.h +1 −1
  340. arch/arm/include/asm/uaccess.h +1 −1
  341. arch/arm/kernel/Makefile +9 −11
  342. arch/arm/kernel/armksyms.c +0 −1
  343. arch/arm/kernel/bios32.c +7 −69
  344. arch/arm/kernel/cpuidle.c +21 −0
  345. arch/arm/kernel/debug.S +25 −1
  346. arch/arm/kernel/elf.c +1 −0
  347. arch/arm/kernel/entry-armv.S +4 −2
  348. arch/arm/kernel/entry-common.S +7 −1
  349. arch/arm/kernel/fiq.c +1 −1
  350. arch/arm/kernel/ftrace.c +28 −72
  351. arch/arm/kernel/head-nommu.S +1 −1
  352. arch/arm/kernel/head.S +5 −5
  353. arch/arm/kernel/hw_breakpoint.c +0 −1
  354. arch/arm/kernel/insn.c +62 −0
  355. arch/arm/kernel/insn.h +29 −0
  356. arch/arm/kernel/irq.c +1 −5
  357. arch/arm/kernel/jump_label.c +39 −0
  358. arch/arm/kernel/kprobes-common.c +1 −0
  359. arch/arm/kernel/kprobes.c +25 −63
  360. arch/arm/kernel/machine_kexec.c +26 −1
  361. arch/arm/kernel/patch.c +75 −0
  362. arch/arm/kernel/patch.h +7 −0
  363. arch/arm/kernel/perf_event.c +3 −0
  364. arch/arm/kernel/perf_event_v7.c +145 −0
  365. arch/arm/kernel/process.c +43 −22
  366. arch/arm/kernel/ptrace.c +3 −2
  367. arch/arm/kernel/sched_clock.c +18 −0
  368. arch/arm/kernel/setup.c +18 −3
  369. arch/arm/kernel/signal.c +8 −16
  370. arch/arm/kernel/sleep.S +0 −1
  371. arch/arm/kernel/smp.c +29 −17
  372. arch/arm/kernel/smp_tlb.c +5 −15
  373. arch/arm/kernel/smp_twd.c +105 −24
  374. arch/arm/kernel/tcm.c +1 −0
  375. arch/arm/kernel/thumbee.c +1 −0
  376. arch/arm/kernel/time.c +0 −4
  377. arch/arm/kernel/traps.c +12 −9
  378. arch/arm/mach-at91/Kconfig +6 −27
  379. arch/arm/mach-at91/Makefile +1 −4
  380. arch/arm/mach-at91/Makefile.boot +8 −6
  381. arch/arm/mach-at91/at91cap9.c +0 −396
  382. arch/arm/mach-at91/at91cap9_devices.c +0 −1273
  383. arch/arm/mach-at91/at91rm9200.c +15 −2
  384. arch/arm/mach-at91/at91rm9200_devices.c +7 −7
  385. arch/arm/mach-at91/at91rm9200_time.c +23 −14
  386. arch/arm/mach-at91/at91sam9260.c +18 −8
  387. arch/arm/mach-at91/at91sam9260_devices.c +53 −9
  388. arch/arm/mach-at91/at91sam9261.c +5 −0
  389. arch/arm/mach-at91/at91sam9261_devices.c +30 −4
  390. arch/arm/mach-at91/at91sam9263.c +6 −0
  391. arch/arm/mach-at91/at91sam9263_devices.c +67 −11
  392. arch/arm/mach-at91/at91sam926x_time.c +66 −2
  393. arch/arm/mach-at91/at91sam9_alt_reset.S +5 −7
  394. arch/arm/mach-at91/at91sam9g45.c +10 −0
  395. arch/arm/mach-at91/at91sam9g45_devices.c +148 −10
  396. arch/arm/mach-at91/at91sam9g45_reset.S +5 −7
  397. arch/arm/mach-at91/at91sam9rl.c +5 −0
  398. arch/arm/mach-at91/at91sam9rl_devices.c +30 −4
  399. arch/arm/mach-at91/at91sam9x5.c +361 −0
  400. arch/arm/mach-at91/at91x40.c +13 −0
  401. arch/arm/mach-at91/at91x40_time.c +17 −11
  402. arch/arm/mach-at91/board-afeb-9260v1.c +1 −0
  403. arch/arm/mach-at91/board-cam60.c +1 −0
  404. arch/arm/mach-at91/board-cap9adk.c +0 −396
  405. arch/arm/mach-at91/board-cpu9krea.c +4 −2
  406. arch/arm/mach-at91/board-cpuat91.c +1 −0
  407. arch/arm/mach-at91/board-dt.c +9 −67
  408. arch/arm/mach-at91/board-eco920.c +3 −2
  409. arch/arm/mach-at91/board-flexibity.c +11 −1
  410. arch/arm/mach-at91/board-kb9202.c +2 −0
  411. arch/arm/mach-at91/board-neocore926.c +1 −0
  412. arch/arm/mach-at91/board-picotux200.c +1 −0
  413. arch/arm/mach-at91/board-qil-a9260.c +2 −0
  414. arch/arm/mach-at91/board-rm9200dk.c +3 −0
  415. arch/arm/mach-at91/board-rm9200ek.c +1 −0
  416. arch/arm/mach-at91/board-sam9-l9260.c +1 −0
  417. arch/arm/mach-at91/board-sam9260ek.c +2 −0
  418. arch/arm/mach-at91/board-sam9261ek.c +2 −0
  419. arch/arm/mach-at91/board-sam9263ek.c +3 −0
  420. arch/arm/mach-at91/board-sam9g20ek.c +2 −0
  421. arch/arm/mach-at91/board-sam9m10g45ek.c +81 −2
  422. arch/arm/mach-at91/board-sam9rlek.c +2 −0
  423. arch/arm/mach-at91/board-snapper9260.c +8 −3
  424. arch/arm/mach-at91/board-stamp9g20.c +1 −0
  425. arch/arm/mach-at91/board-usb-a926x.c +2 −0
  426. arch/arm/mach-at91/board-yl-9200.c +3 −1
  427. arch/arm/mach-at91/clock.c +165 −59
  428. arch/arm/mach-at91/cpuidle.c +19 −45
  429. arch/arm/mach-at91/generic.h +18 −1
  430. arch/arm/mach-at91/gpio.c +541 −84
  431. arch/arm/mach-at91/include/mach/at91_matrix.h +23 −0
  432. arch/arm/mach-at91/include/mach/at91_pio.h +25 −0
  433. arch/arm/mach-at91/include/mach/at91_pmc.h +81 −37
  434. arch/arm/mach-at91/include/mach/at91_ramc.h +32 −0
  435. arch/arm/mach-at91/include/mach/at91_shdwc.h +3 −1
  436. arch/arm/mach-at91/include/mach/at91_st.h +22 −10
  437. arch/arm/mach-at91/include/mach/at91cap9.h +0 −122
  438. arch/arm/mach-at91/include/mach/at91cap9_matrix.h +0 −137
  439. arch/arm/mach-at91/include/mach/at91rm9200.h +3 −7
  440. arch/arm/mach-at91/include/mach/at91rm9200_mc.h +7 −51
  441. arch/arm/mach-at91/include/mach/at91rm9200_sdramc.h +63 −0
  442. arch/arm/mach-at91/include/mach/at91sam9260.h +8 −6
  443. arch/arm/mach-at91/include/mach/at91sam9260_matrix.h +18 −18
  444. arch/arm/mach-at91/include/mach/at91sam9261.h +4 −6
  445. arch/arm/mach-at91/include/mach/at91sam9261_matrix.h +9 −9
  446. arch/arm/mach-at91/include/mach/at91sam9263.h +5 −7
  447. arch/arm/mach-at91/include/mach/at91sam9263_matrix.h +37 −37
  448. arch/arm/mach-at91/include/mach/at91sam9_ddrsdr.h +0 −16
  449. arch/arm/mach-at91/include/mach/at91sam9_sdramc.h +0 −6
  450. arch/arm/mach-at91/include/mach/at91sam9g45.h +5 −7
  451. arch/arm/mach-at91/include/mach/at91sam9g45_matrix.h +42 −42
  452. arch/arm/mach-at91/include/mach/at91sam9rl.h +3 −4
  453. arch/arm/mach-at91/include/mach/at91sam9rl_matrix.h +21 −21
  454. arch/arm/mach-at91/include/mach/at91sam9x5.h +74 −0
  455. arch/arm/mach-at91/include/mach/at91sam9x5_matrix.h +53 −0
  456. arch/arm/mach-at91/include/mach/at91x40.h +9 −9
  457. arch/arm/mach-at91/include/mach/at_hdmac.h +0 −15
  458. arch/arm/mach-at91/include/mach/board.h +11 −19
  459. arch/arm/mach-at91/include/mach/cpu.h +0 −21
  460. arch/arm/mach-at91/include/mach/entry-macro.S +0 −6
  461. arch/arm/mach-at91/include/mach/gpio.h +5 −12
  462. arch/arm/mach-at91/include/mach/hardware.h +5 −4
  463. arch/arm/mach-at91/include/mach/io.h +1 −23
  464. arch/arm/mach-at91/include/mach/system.h +0 −50
  465. arch/arm/mach-at91/include/mach/system_rev.h +2 −0
  466. arch/arm/mach-at91/include/mach/uncompress.h +1 −0
  467. arch/arm/mach-at91/irq.c +103 −29
  468. arch/arm/mach-at91/pm.c +17 −24
  469. arch/arm/mach-at91/pm.h +49 −47
  470. arch/arm/mach-at91/pm_slowclock.S +141 −134
  471. arch/arm/mach-at91/setup.c +168 −17
  472. arch/arm/mach-at91/soc.h +0 −5
  473. arch/arm/mach-bcmring/core.c +2 −21
  474. arch/arm/mach-bcmring/include/mach/entry-macro.S +0 −6
  475. arch/arm/mach-bcmring/include/mach/system.h +0 −28
  476. arch/arm/mach-clps711x/common.c +17 −0
  477. arch/arm/mach-clps711x/edb7211-mm.c +1 −0
  478. arch/arm/mach-clps711x/include/mach/entry-macro.S +0 −6
  479. arch/arm/mach-clps711x/include/mach/io.h +0 −36
  480. arch/arm/mach-clps711x/include/mach/system.h +0 −35
  481. arch/arm/mach-clps711x/include/mach/uncompress.h +0 −1
  482. arch/arm/mach-clps711x/p720t-leds.c +0 −1
  483. arch/arm/mach-cns3xxx/core.c +4 −4
  484. arch/arm/mach-cns3xxx/devices.c +1 −1
  485. arch/arm/mach-cns3xxx/include/mach/entry-macro.S +0 −15
  486. arch/arm/mach-cns3xxx/include/mach/io.h +0 −17
  487. arch/arm/mach-cns3xxx/include/mach/system.h +0 −25
  488. arch/arm/mach-cns3xxx/pcie.c +2 −2
  489. arch/arm/mach-davinci/board-da850-evm.c +1 −0
  490. arch/arm/mach-davinci/board-dm355-evm.c +2 −1
  491. arch/arm/mach-davinci/board-dm355-leopard.c +2 −1
  492. arch/arm/mach-davinci/board-dm365-evm.c +2 −1
  493. arch/arm/mach-davinci/board-dm644x-evm.c +121 −14
  494. arch/arm/mach-davinci/board-dm646x-evm.c +11 −21
  495. arch/arm/mach-davinci/board-neuros-osd2.c +2 −1
  496. arch/arm/mach-davinci/board-sffsdr.c +2 −1
  497. arch/arm/mach-davinci/cpufreq.c +1 −1
  498. arch/arm/mach-davinci/cpuidle.c +34 −49
  499. arch/arm/mach-davinci/da850.c +1 −1
  500. arch/arm/mach-davinci/davinci.h +102 −0
  501. arch/arm/mach-davinci/devices.c +21 −11
  502. arch/arm/mach-davinci/dm355.c +2 −1
  503. arch/arm/mach-davinci/dm365.c +18 −1
  504. arch/arm/mach-davinci/dm644x.c +173 −20
  505. arch/arm/mach-davinci/dm646x.c +13 −8
  506. arch/arm/mach-davinci/dma.c +1 −5
  507. arch/arm/mach-davinci/include/mach/dm355.h +0 −32
  508. arch/arm/mach-davinci/include/mach/dm365.h +1 −52
  509. arch/arm/mach-davinci/include/mach/dm644x.h +0 −47
  510. arch/arm/mach-davinci/include/mach/dm646x.h +1 −41
  511. arch/arm/mach-davinci/include/mach/edma.h +5 −0
  512. arch/arm/mach-davinci/include/mach/entry-macro.S +0 −7
  513. arch/arm/mach-davinci/include/mach/hardware.h +0 −8
  514. arch/arm/mach-davinci/include/mach/io.h +0 −24
  515. arch/arm/mach-davinci/include/mach/system.h +0 −21
  516. arch/arm/mach-davinci/include/mach/uncompress.h +2 −0
  517. arch/arm/mach-davinci/time.c +10 −18
  518. arch/arm/mach-dove/addr-map.c +1 −0
  519. arch/arm/mach-dove/include/mach/entry-macro.S +0 −6
  520. arch/arm/mach-dove/include/mach/io.h +0 −1
  521. arch/arm/mach-dove/include/mach/system.h +0 −17
  522. arch/arm/mach-dove/pcie.c +2 −2
  523. arch/arm/mach-ebsa110/core.c +46 −9
  524. arch/arm/mach-ebsa110/core.h +41 −0
  525. arch/arm/mach-ebsa110/include/mach/entry-macro.S +0 −6
  526. arch/arm/mach-ebsa110/include/mach/hardware.h +0 −39
  527. arch/arm/mach-ebsa110/include/mach/io.h +0 −9
  528. arch/arm/mach-ebsa110/include/mach/system.h +0 −37
  529. arch/arm/mach-ebsa110/io.c +20 −0
  530. arch/arm/mach-ebsa110/leds.c +2 −1
  531. arch/arm/mach-ep93xx/Makefile +3 −0
  532. arch/arm/mach-ep93xx/adssphere.c +1 −0
  533. arch/arm/mach-ep93xx/clock.c +1 −0
  534. arch/arm/mach-ep93xx/core.c +39 −42
  535. arch/arm/mach-ep93xx/crunch-bits.S +0 −0
  536. arch/arm/mach-ep93xx/crunch.c +3 −1
  537. arch/arm/mach-ep93xx/dma.c +2 −0
  538. arch/arm/mach-ep93xx/edb93xx.c +1 −0
  539. arch/arm/mach-ep93xx/gesbc9312.c +1 −0
  540. arch/arm/mach-ep93xx/include/mach/entry-macro.S +0 −17
  541. arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h +1 −190
  542. arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h +10 −0
  543. arch/arm/mach-ep93xx/include/mach/hardware.h +0 −1
  544. arch/arm/mach-ep93xx/include/mach/io.h +0 −22
  545. arch/arm/mach-ep93xx/include/mach/platform.h +0 −14
  546. arch/arm/mach-ep93xx/include/mach/system.h +0 −7
  547. arch/arm/mach-ep93xx/micro9.c +1 −0
  548. arch/arm/mach-ep93xx/simone.c +2 −0
  549. arch/arm/mach-ep93xx/snappercl15.c +2 −0
  550. arch/arm/mach-ep93xx/soc.h +213 −0
  551. arch/arm/mach-ep93xx/ts72xx.c +1 −0
  552. arch/arm/mach-ep93xx/vision_ep9307.c +2 −0
  553. arch/arm/mach-exynos/Kconfig +38 −6
  554. arch/arm/mach-exynos/Makefile +6 −2
  555. arch/arm/mach-exynos/clock-exynos4.c +1581 −0
  556. arch/arm/mach-exynos/clock-exynos4.h +30 −0
  557. arch/arm/mach-exynos/clock-exynos4210.c +23 −25
  558. arch/arm/mach-exynos/clock-exynos4212.c +15 −17
  559. arch/arm/mach-exynos/clock-exynos5.c +1247 −0
  560. arch/arm/mach-exynos/clock.c +0 −1564
  561. arch/arm/mach-exynos/common.c +401 −132
  562. arch/arm/mach-exynos/common.h +27 −13
  563. arch/arm/mach-exynos/cpuidle.c +147 −4
  564. arch/arm/mach-exynos/dev-ahci.c +2 −2
  565. arch/arm/mach-exynos/dev-audio.c +2 −2
  566. arch/arm/mach-exynos/dev-uart.c +78 −0
  567. arch/arm/mach-exynos/dma.c +114 −41
  568. arch/arm/mach-exynos/hotplug.c +1 −0
  569. arch/arm/mach-exynos/include/mach/cpufreq.h +2 −0
  570. arch/arm/mach-exynos/include/mach/debug-macro.S +6 −2
  571. arch/arm/mach-exynos/include/mach/entry-macro.S +0 −16
  572. arch/arm/mach-exynos/include/mach/exynos4-clock.h +0 −43
  573. arch/arm/mach-exynos/include/mach/gpio.h +188 −51
  574. arch/arm/mach-exynos/include/mach/io.h +0 −26
  575. arch/arm/mach-exynos/include/mach/irqs.h +445 −152
  576. arch/arm/mach-exynos/include/mach/map.h +47 −12
  577. arch/arm/mach-exynos/include/mach/pmu.h +2 −0
  578. arch/arm/mach-exynos/include/mach/regs-clock.h +302 −182
  579. arch/arm/mach-exynos/include/mach/regs-gpio.h +9 −11
  580. arch/arm/mach-exynos/include/mach/regs-pmu.h +1 −0
  581. arch/arm/mach-exynos/include/mach/system.h +0 −20
  582. arch/arm/mach-exynos/include/mach/uncompress.h +27 −5
  583. arch/arm/mach-exynos/mach-exynos4-dt.c +4 −4
  584. arch/arm/mach-exynos/mach-exynos5-dt.c +78 −0
  585. arch/arm/mach-exynos/mach-nuri.c +82 −53
  586. arch/arm/mach-exynos/mach-origen.c +38 −1
  587. arch/arm/mach-exynos/mach-smdkv310.c +3 −0
  588. arch/arm/mach-exynos/mach-universal_c210.c +82 −13
  589. arch/arm/mach-exynos/mct.c +36 −26
  590. arch/arm/mach-exynos/platsmp.c +6 −3
  591. arch/arm/mach-exynos/pm.c +20 −35
  592. arch/arm/mach-exynos/pm_domains.c +6 −0
  593. arch/arm/mach-exynos/setup-i2c0.c +6 −3
  594. arch/arm/mach-footbridge/common.c +1 −0
  595. arch/arm/mach-footbridge/dc21285-timer.c +1 −0
  596. arch/arm/mach-footbridge/dc21285.c +5 −4
  597. arch/arm/mach-footbridge/ebsa285-leds.c +0 −1
  598. arch/arm/mach-footbridge/include/mach/entry-macro.S +0 −6
  599. arch/arm/mach-footbridge/include/mach/io.h +0 −13
  600. arch/arm/mach-footbridge/include/mach/system.h +0 −13
  601. arch/arm/mach-footbridge/netwinder-hw.c +1 −0
  602. arch/arm/mach-footbridge/netwinder-leds.c +0 −1
  603. arch/arm/mach-gemini/Makefile +1 −1
  604. arch/arm/mach-gemini/idle.c +29 −0
  605. arch/arm/mach-gemini/include/mach/entry-macro.S +0 −6
  606. arch/arm/mach-gemini/include/mach/io.h +0 −18
  607. arch/arm/mach-gemini/include/mach/system.h +0 −14
  608. arch/arm/mach-gemini/irq.c +2 −2
  609. arch/arm/mach-h720x/common.c +19 −0
  610. arch/arm/mach-h720x/include/mach/entry-macro.S +0 −6
  611. arch/arm/mach-h720x/include/mach/io.h +0 −22
  612. arch/arm/mach-h720x/include/mach/system.h +0 −27
  613. arch/arm/mach-highbank/Makefile +0 −1
  614. arch/arm/mach-highbank/highbank.c +4 −2
  615. arch/arm/mach-highbank/include/mach/entry-macro.S +0 −5
  616. arch/arm/mach-highbank/include/mach/io.h +0 −7
  617. arch/arm/mach-highbank/include/mach/irqs.h +0 −6
  618. arch/arm/mach-highbank/include/mach/memory.h +0 −1
  619. arch/arm/mach-highbank/localtimer.c +0 −40
  620. arch/arm/mach-imx/Kconfig +13 −7
  621. arch/arm/mach-imx/Makefile +3 −5
  622. arch/arm/mach-imx/Makefile.boot +3 −0
  623. arch/arm/mach-imx/clock-imx27.c +19 −0
  624. arch/arm/mach-imx/clock-imx31.c +1 −1
  625. arch/arm/mach-imx/clock-imx35.c +76 −92
  626. arch/arm/mach-imx/clock-imx6q.c +73 −1
  627. arch/arm/mach-imx/cpu-imx5.c +0 −36
  628. arch/arm/mach-imx/cpu_op-mx51.c +1 −0
  629. arch/arm/mach-imx/crmregs-imx3.h +15 −1
  630. arch/arm/mach-imx/dma-v1.c +0 −846
  631. arch/arm/mach-imx/imx27-dt.c +89 −0
  632. arch/arm/mach-imx/imx51-dt.c +1 −0
  633. arch/arm/mach-imx/imx53-dt.c +1 −0
  634. arch/arm/mach-imx/include/mach/dma-v1.h +0 −103
  635. arch/arm/mach-imx/lluart.c +1 −1
  636. arch/arm/mach-imx/localtimer.c +0 −35
  637. arch/arm/mach-imx/mach-armadillo5x0.c +10 −1
  638. arch/arm/mach-imx/mach-imx27_visstrim_m10.c +137 −2
  639. arch/arm/mach-imx/mach-imx6q.c +4 −0
  640. arch/arm/mach-imx/mach-kzm_arm11_01.c +9 −0
  641. arch/arm/mach-imx/mach-mx21ads.c +15 −1
  642. arch/arm/mach-imx/mach-mx27_3ds.c +108 −0
  643. arch/arm/mach-imx/mach-mx31ads.c +32 −3
  644. arch/arm/mach-imx/mach-mx31lilly.c +9 −0
  645. arch/arm/mach-imx/mach-mx31lite.c +9 −0
  646. arch/arm/mach-imx/mach-mx31moboard.c +4 −2
  647. arch/arm/mach-imx/mach-mx35_3ds.c +216 −0
  648. arch/arm/mach-imx/mach-mx51_efikamx.c +1 −0
  649. arch/arm/mach-imx/mach-mx51_efikasb.c +1 −0
  650. arch/arm/mach-imx/mach-mx53_ard.c +8 −0
  651. arch/arm/mach-imx/mach-pcm038.c +1 −1
  652. arch/arm/mach-imx/mm-imx3.c +43 −33
  653. arch/arm/mach-imx/mm-imx5.c +22 −17
  654. arch/arm/mach-imx/pm-imx27.c +1 −2
  655. arch/arm/mach-imx/pm-imx3.c +37 −0
  656. arch/arm/mach-imx/pm-imx5.c +2 −2
  657. arch/arm/mach-integrator/core.c +15 −59
  658. arch/arm/mach-integrator/impd1.c +3 −6
  659. arch/arm/mach-integrator/include/mach/entry-macro.S +0 −6
  660. arch/arm/mach-integrator/include/mach/io.h +0 −1
  661. arch/arm/mach-integrator/include/mach/irqs.h +2 −1
  662. arch/arm/mach-integrator/include/mach/system.h +0 −33
  663. arch/arm/mach-integrator/integrator_ap.c +9 −1
  664. arch/arm/mach-integrator/integrator_cp.c +11 −41
  665. arch/arm/mach-integrator/leds.c +0 −1
  666. arch/arm/mach-integrator/pci.c +2 −2
  667. arch/arm/mach-integrator/pci_v3.c +6 −5
  668. arch/arm/mach-iop13xx/include/mach/entry-macro.S +0 −3
  669. arch/arm/mach-iop13xx/include/mach/io.h +0 −13
  670. arch/arm/mach-iop13xx/include/mach/iop13xx.h +1 −0
  671. arch/arm/mach-iop13xx/include/mach/system.h +0 −13
  672. arch/arm/mach-iop13xx/io.c +12 −8
  673. arch/arm/mach-iop13xx/iq81340mc.c +1 −0
  674. arch/arm/mach-iop13xx/iq81340sc.c +1 −0
  675. arch/arm/mach-iop13xx/pci.c +2 −2
  676. arch/arm/mach-iop13xx/pci.h +6 −0
  677. arch/arm/mach-iop32x/include/mach/entry-macro.S +0 −3
  678. arch/arm/mach-iop32x/include/mach/io.h +0 −1
  679. arch/arm/mach-iop33x/include/mach/entry-macro.S +0 −3
  680. arch/arm/mach-iop33x/include/mach/io.h +0 −1
  681. arch/arm/mach-iop33x/include/mach/system.h +0 −13
  682. arch/arm/mach-iop33x/uart.c +0 −1
  683. arch/arm/mach-ixp2000/core.c +0 −1
  684. arch/arm/mach-ixp2000/enp2611.c +0 −1
  685. arch/arm/mach-ixp2000/include/mach/entry-macro.S +0 −6
  686. arch/arm/mach-ixp2000/include/mach/io.h +0 −1
  687. arch/arm/mach-ixp2000/include/mach/system.h +0 −14
  688. arch/arm/mach-ixp2000/ixdp2400.c +2 −3
  689. arch/arm/mach-ixp2000/ixdp2800.c +2 −3
  690. arch/arm/mach-ixp2000/ixdp2x00.c +2 −3
  691. arch/arm/mach-ixp2000/ixdp2x01.c +0 −1
  692. arch/arm/mach-ixp2000/pci.c +4 −3
  693. arch/arm/mach-ixp23xx/core.c +4 −1
  694. arch/arm/mach-ixp23xx/espresso.c +0 −1
  695. arch/arm/mach-ixp23xx/include/mach/entry-macro.S +0 −6
  696. arch/arm/mach-ixp23xx/include/mach/io.h +0 −1
  697. arch/arm/mach-ixp23xx/include/mach/system.h +0 −16
  698. arch/arm/mach-ixp23xx/ixdp2351.c +0 −1
  699. arch/arm/mach-ixp23xx/pci.c +4 −3
  700. arch/arm/mach-ixp23xx/roadrunner.c +0 −1
  701. arch/arm/mach-ixp4xx/avila-setup.c +2 −0
  702. arch/arm/mach-ixp4xx/common-pci.c +2 −3
  703. arch/arm/mach-ixp4xx/common.c +40 −0
  704. arch/arm/mach-ixp4xx/coyote-setup.c +2 −0
  705. arch/arm/mach-ixp4xx/dsmg600-setup.c +1 −0
  706. arch/arm/mach-ixp4xx/fsg-setup.c +1 −0
  707. arch/arm/mach-ixp4xx/gateway7001-setup.c +1 −0
  708. arch/arm/mach-ixp4xx/goramo_mlr.c +1 −1
  709. arch/arm/mach-ixp4xx/gtwx5715-setup.c +1 −0
  710. arch/arm/mach-ixp4xx/include/mach/entry-macro.S +0 −6
  711. arch/arm/mach-ixp4xx/include/mach/hardware.h +0 −2
  712. arch/arm/mach-ixp4xx/include/mach/io.h +1 −23
  713. arch/arm/mach-ixp4xx/include/mach/platform.h +1 −0
  714. arch/arm/mach-ixp4xx/include/mach/system.h +0 −19
  715. arch/arm/mach-ixp4xx/ixdp425-setup.c +4 −0
  716. arch/arm/mach-ixp4xx/nas100d-setup.c +1 −0
  717. arch/arm/mach-ixp4xx/nslu2-setup.c +1 −0
  718. arch/arm/mach-ixp4xx/omixp-setup.c +3 −0
  719. arch/arm/mach-ixp4xx/vulcan-setup.c +1 −0
  720. arch/arm/mach-ixp4xx/wg302v2-setup.c +1 −0
  721. arch/arm/mach-kirkwood/Kconfig +14 −0
  722. arch/arm/mach-kirkwood/Makefile +2 −0
  723. arch/arm/mach-kirkwood/Makefile.boot +2 −0
  724. arch/arm/mach-kirkwood/board-dreamplug.c +152 −0
  725. arch/arm/mach-kirkwood/board-dt.c +75 −0
  726. arch/arm/mach-kirkwood/common.c +5 −6
  727. arch/arm/mach-kirkwood/common.h +15 −0
  728. arch/arm/mach-kirkwood/cpuidle.c +21 −51
  729. arch/arm/mach-kirkwood/include/mach/entry-macro.S +0 −6
  730. arch/arm/mach-kirkwood/include/mach/io.h +0 −2
  731. arch/arm/mach-kirkwood/include/mach/system.h +0 −17
  732. arch/arm/mach-kirkwood/pcie.c +2 −2
  733. arch/arm/mach-ks8695/include/mach/entry-macro.S +0 −6
  734. arch/arm/mach-ks8695/include/mach/io.h +0 −19
  735. arch/arm/mach-ks8695/include/mach/system.h +0 −27
  736. arch/arm/mach-ks8695/pci.c +2 −2
  737. arch/arm/mach-ks8695/time.c +1 −0
  738. arch/arm/mach-lpc32xx/Kconfig +25 −0
  739. arch/arm/mach-lpc32xx/clock.c +120 −65
  740. arch/arm/mach-lpc32xx/common.c +69 −0
  741. arch/arm/mach-lpc32xx/common.h +4 −2
  742. arch/arm/mach-lpc32xx/include/mach/board.h +5 −8
  743. arch/arm/mach-lpc32xx/include/mach/entry-macro.S +0 −6
  744. arch/arm/mach-lpc32xx/include/mach/io.h +0 −27
  745. arch/arm/mach-lpc32xx/include/mach/platform.h +27 −24
  746. arch/arm/mach-lpc32xx/irq.c +4 −0
  747. arch/arm/mach-lpc32xx/phy3250.c +10 −28
  748. arch/arm/mach-lpc32xx/pm.c +1 −1
  749. arch/arm/mach-lpc32xx/timer.c +24 −24
  750. arch/arm/mach-mmp/Kconfig +10 −0
  751. arch/arm/mach-mmp/Makefile +1 −0
  752. arch/arm/mach-mmp/aspenite.c +3 −2
  753. arch/arm/mach-mmp/avengers_lite.c +1 −0
  754. arch/arm/mach-mmp/brownstone.c +2 −2
  755. arch/arm/mach-mmp/common.c +1 −0
  756. arch/arm/mach-mmp/flint.c +2 −1
  757. arch/arm/mach-mmp/gplugd.c +1 −1
  758. arch/arm/mach-mmp/include/mach/addr-map.h +0 −6
  759. arch/arm/mach-mmp/include/mach/entry-macro.S +0 −6
  760. arch/arm/mach-mmp/include/mach/io.h +0 −21
  761. arch/arm/mach-mmp/include/mach/irqs.h +1 −2
  762. arch/arm/mach-mmp/include/mach/pxa910.h +1 −0
  763. arch/arm/mach-mmp/include/mach/regs-apbc.h +1 −0
  764. arch/arm/mach-mmp/include/mach/regs-rtc.h +23 −0
  765. arch/arm/mach-mmp/include/mach/system.h +0 −16
  766. arch/arm/mach-mmp/irq-mmp2.c +1 −0
  767. arch/arm/mach-mmp/jasper.c +3 −2
  768. arch/arm/mach-mmp/mmp-dt.c +75 −0
  769. arch/arm/mach-mmp/mmp2.c +1 −0
  770. arch/arm/mach-mmp/pxa168.c +4 −0
  771. arch/arm/mach-mmp/pxa910.c +28 −0
  772. arch/arm/mach-mmp/tavorevb.c +1 −0
  773. arch/arm/mach-mmp/teton_bga.c +2 −1
  774. arch/arm/mach-mmp/ttc_dkb.c +3 −2
  775. arch/arm/mach-msm/board-halibut.c +6 −3
  776. arch/arm/mach-msm/board-sapphire.c +0 −1
  777. arch/arm/mach-msm/board-trout-panel.c +1 −0
  778. arch/arm/mach-msm/board-trout.c +7 −0
  779. arch/arm/mach-msm/idle.S +0 −36
  780. arch/arm/mach-msm/idle.c +49 −0
  781. arch/arm/mach-msm/include/mach/entry-macro.S +0 −6
  782. arch/arm/mach-msm/include/mach/io.h +0 −36
  783. arch/arm/mach-msm/include/mach/msm_iomap-7x00.h +6 −6
  784. arch/arm/mach-msm/include/mach/msm_iomap-7x30.h +4 −0
  785. arch/arm/mach-msm/include/mach/msm_iomap-8960.h +4 −0
  786. arch/arm/mach-msm/include/mach/msm_iomap-8x50.h +4 −0
  787. arch/arm/mach-msm/include/mach/msm_iomap-8x60.h +4 −0
  788. arch/arm/mach-msm/include/mach/msm_iomap.h +0 −6
  789. arch/arm/mach-msm/include/mach/system.h +0 −1
  790. arch/arm/mach-msm/include/mach/uncompress.h +1 −0
  791. arch/arm/mach-msm/io.c +3 −5
  792. arch/arm/mach-msm/proc_comm.c +1 −1
  793. arch/arm/mach-msm/smd_debug.c +1 −7
  794. arch/arm/mach-msm/timer.c +54 −37
  795. arch/arm/mach-mv78xx0/include/mach/entry-macro.S +0 −6
  796. arch/arm/mach-mv78xx0/include/mach/io.h +0 −2
  797. arch/arm/mach-mv78xx0/include/mach/system.h +0 −17
  798. arch/arm/mach-mv78xx0/pcie.c +2 −2
  799. arch/arm/mach-mxs/Kconfig +16 −0
  800. arch/arm/mach-mxs/Makefile +1 −0
  801. arch/arm/mach-mxs/clock-mx23.c +6 −29
  802. arch/arm/mach-mxs/clock-mx28.c +15 −43
  803. arch/arm/mach-mxs/devices-mx23.h +4 −0
  804. arch/arm/mach-mxs/devices-mx28.h +4 −0
  805. arch/arm/mach-mxs/devices.c +5 −3
  806. arch/arm/mach-mxs/devices/Kconfig +3 −0
  807. arch/arm/mach-mxs/devices/Makefile +1 −0
  808. arch/arm/mach-mxs/devices/amba-duart.c +1 −1
  809. arch/arm/mach-mxs/devices/platform-gpmi-nand.c +81 −0
  810. arch/arm/mach-mxs/devices/platform-mxs-mmc.c +2 −0
  811. arch/arm/mach-mxs/include/mach/common.h +2 −0
  812. arch/arm/mach-mxs/include/mach/devices-common.h +10 −0
  813. arch/arm/mach-mxs/include/mach/digctl.h +1 −0
  814. arch/arm/mach-mxs/include/mach/entry-macro.S +0 −6
  815. arch/arm/mach-mxs/include/mach/hardware.h +0 −6
  816. arch/arm/mach-mxs/include/mach/io.h +0 −22
  817. arch/arm/mach-mxs/include/mach/mxs.h +16 −13
  818. arch/arm/mach-mxs/include/mach/system.h +0 −25
  819. arch/arm/mach-mxs/include/mach/uncompress.h +6 −7
  820. arch/arm/mach-mxs/mach-apx4devkit.c +260 −0
  821. arch/arm/mach-mxs/mach-m28evk.c +2 −5
  822. arch/arm/mach-mxs/mach-mx28evk.c +18 −62
  823. arch/arm/mach-mxs/pm.c +1 −2
  824. arch/arm/mach-mxs/system.c +17 −1
  825. arch/arm/mach-netx/fb.c +1 −12
  826. arch/arm/mach-netx/generic.c +1 −1
  827. arch/arm/mach-netx/include/mach/entry-macro.S +0 −26
  828. arch/arm/mach-netx/include/mach/hardware.h +1 −1
  829. arch/arm/mach-netx/include/mach/netx-regs.h +8 −8
  830. arch/arm/mach-netx/include/mach/system.h +0 −28
  831. arch/arm/mach-nomadik/board-nhk8815.c +6 −18
  832. arch/arm/mach-nomadik/cpu-8815.c +2 −7
  833. arch/arm/mach-nomadik/include/mach/entry-macro.S +0 −13
  834. arch/arm/mach-nomadik/include/mach/io.h +0 −22
  835. arch/arm/mach-nomadik/include/mach/setup.h +0 −19
  836. arch/arm/mach-nomadik/include/mach/system.h +0 −32
  837. arch/arm/mach-omap1/Kconfig +4 −0
  838. arch/arm/mach-omap1/ams-delta-fiq-handler.S +3 −1
  839. arch/arm/mach-omap1/ams-delta-fiq.c +1 −0
  840. arch/arm/mach-omap1/board-ams-delta.c +274 −48
  841. arch/arm/mach-omap1/board-fsample.c +5 −2
  842. arch/arm/mach-omap1/board-h2.c +7 −7
  843. arch/arm/mach-omap1/board-h3.c +8 −9
  844. arch/arm/mach-omap1/board-htcherald.c +5 −6
  845. arch/arm/mach-omap1/board-innovator.c +7 −4
  846. arch/arm/mach-omap1/board-nokia770.c +5 −3
  847. arch/arm/mach-omap1/board-osk.c +9 −10
  848. arch/arm/mach-omap1/board-palmte.c +4 −2
  849. arch/arm/mach-omap1/board-palmtt.c +6 −5
  850. arch/arm/mach-omap1/board-palmz71.c +6 −5
  851. arch/arm/mach-omap1/board-perseus2.c +5 −2
  852. arch/arm/mach-omap1/board-sx1.c +4 −2
  853. arch/arm/mach-omap1/board-voiceblue.c +11 −11
  854. arch/arm/mach-omap1/clock.c +4 −1
  855. arch/arm/mach-omap1/clock_data.c +4 −1
  856. arch/arm/mach-omap1/common.h +1 −0
  857. arch/arm/mach-omap1/devices.c +4 −4
  858. arch/arm/mach-omap1/dma.c +1 −1
  859. arch/arm/mach-omap1/flash.c +9 −15
  860. arch/arm/mach-omap1/fpga.c +4 −1
  861. arch/arm/mach-omap1/gpio15xx.c +4 −3
  862. arch/arm/mach-omap1/gpio16xx.c +39 −8
  863. arch/arm/mach-omap1/gpio7xx.c +4 −10
  864. arch/arm/mach-omap1/id.c +4 −0
  865. arch/arm/mach-omap1/include/mach/entry-macro.S +2 −7
  866. arch/arm/mach-omap1/include/mach/hardware.h +36 −0
  867. arch/arm/mach-omap1/include/mach/io.h +41 −1
  868. arch/arm/mach-omap1/include/mach/memory.h +2 −1
  869. arch/arm/mach-omap1/include/mach/system.h +0 −5
  870. arch/arm/mach-omap1/io.c +4 −1
  871. arch/arm/mach-omap1/iomap.h +36 −0
  872. arch/arm/mach-omap1/irq.c +3 −1
  873. arch/arm/mach-omap1/lcd_dma.c +2 −1
  874. arch/arm/mach-omap1/leds-h2p2-debug.c +0 −1
  875. arch/arm/mach-omap1/leds-innovator.c +0 −1
  876. arch/arm/mach-omap1/leds-osk.c +0 −1
  877. arch/arm/mach-omap1/mcbsp.c +4 −1
  878. arch/arm/mach-omap1/mux.c +0 −1
  879. arch/arm/mach-omap1/pm.c +8 −16
  880. arch/arm/mach-omap1/reset.c +2 −1
  881. arch/arm/mach-omap1/sleep.S +3 −1
  882. arch/arm/mach-omap1/sram.S +4 −1
  883. arch/arm/mach-omap1/time.c +2 −2
  884. arch/arm/mach-omap1/timer32k.c +5 −3
  885. arch/arm/mach-omap2/Kconfig +4 −4
  886. arch/arm/mach-omap2/Makefile +7 −6
  887. arch/arm/mach-omap2/am35xx-emac.c +117 −0
  888. arch/arm/mach-omap2/am35xx-emac.h +15 −0
  889. arch/arm/mach-omap2/board-2430sdp.c +2 −2
  890. arch/arm/mach-omap2/board-3430sdp.c +4 −1
  891. arch/arm/mach-omap2/board-4430sdp.c +14 −10
  892. arch/arm/mach-omap2/board-am3517evm.c +3 −116
  893. arch/arm/mach-omap2/board-apollon.c +2 −2
  894. arch/arm/mach-omap2/board-cm-t35.c +19 −3
  895. arch/arm/mach-omap2/board-cm-t3517.c +2 −0
  896. arch/arm/mach-omap2/board-devkit8000.c +4 −2
  897. arch/arm/mach-omap2/board-flash.c +1 −1
  898. arch/arm/mach-omap2/board-generic.c +52 −59
  899. arch/arm/mach-omap2/board-h4.c +1 −1
  900. arch/arm/mach-omap2/board-igep0020.c +11 −1
  901. arch/arm/mach-omap2/board-ldp.c +8 −2
  902. arch/arm/mach-omap2/board-n8x0.c +4 −5
  903. arch/arm/mach-omap2/board-omap3beagle.c +7 −3
  904. arch/arm/mach-omap2/board-omap3evm.c +12 −12
  905. arch/arm/mach-omap2/board-omap3logic.c +10 −1
  906. arch/arm/mach-omap2/board-omap3pandora.c +20 −6
  907. arch/arm/mach-omap2/board-omap3stalker.c +16 −15
  908. arch/arm/mach-omap2/board-omap3touchbook.c +11 −7
  909. arch/arm/mach-omap2/board-omap4panda.c +18 −11
  910. arch/arm/mach-omap2/board-overo.c +9 −2
  911. arch/arm/mach-omap2/board-rm680.c +14 −2
  912. arch/arm/mach-omap2/board-rx51-peripherals.c +18 −16
  913. arch/arm/mach-omap2/board-zoom-debugboard.c +11 −1
  914. arch/arm/mach-omap2/board-zoom-display.c +4 −1
  915. arch/arm/mach-omap2/board-zoom-peripherals.c +7 −3
  916. arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c +1 −80
  917. arch/arm/mach-omap2/clkt_clksel.c +1 −0
  918. arch/arm/mach-omap2/clkt_dpll.c +1 −0
  919. arch/arm/mach-omap2/clock.c +0 −5
  920. arch/arm/mach-omap2/clock.h +0 −8
  921. arch/arm/mach-omap2/clock2420_data.c +3 −0
  922. arch/arm/mach-omap2/clock2430.c +2 −0
  923. arch/arm/mach-omap2/clock2430_data.c +2 −0
  924. arch/arm/mach-omap2/clock2xxx.c +1 −0
  925. arch/arm/mach-omap2/clock3xxx.c +1 −0
  926. arch/arm/mach-omap2/clock3xxx_data.c +15 −7
  927. arch/arm/mach-omap2/clock44xx_data.c +7 −2
  928. arch/arm/mach-omap2/clockdomains44xx_data.c +1 −1
  929. arch/arm/mach-omap2/cm2xxx_3xxx.c +3 −1
  930. arch/arm/mach-omap2/cm44xx.c +1 −1
  931. arch/arm/mach-omap2/cminst44xx.c +1 −1
  932. arch/arm/mach-omap2/common-board-devices.c +6 −5
  933. arch/arm/mach-omap2/common.c +3 −2
  934. arch/arm/mach-omap2/common.h +19 −0
  935. arch/arm/mach-omap2/control.c +3 −1
  936. arch/arm/mach-omap2/control.h +5 −1
  937. arch/arm/mach-omap2/cpuidle34xx.c +17 −25
  938. arch/arm/mach-omap2/cpuidle44xx.c +3 −18
  939. arch/arm/mach-omap2/devices.c +9 −8
  940. arch/arm/mach-omap2/display.c +3 −2
  941. arch/arm/mach-omap2/dma.c +1 −1
  942. arch/arm/mach-omap2/emu.c +6 −24
  943. arch/arm/mach-omap2/gpio.c +31 −7
  944. arch/arm/mach-omap2/gpmc-nand.c +1 −0
  945. arch/arm/mach-omap2/gpmc-onenand.c +1 −0
  946. arch/arm/mach-omap2/gpmc-smsc911x.c +2 −60
  947. arch/arm/mach-omap2/gpmc.c +2 −0
  948. arch/arm/mach-omap2/hsmmc.c +102 −29
  949. arch/arm/mach-omap2/hsmmc.h +11 −3
  950. arch/arm/mach-omap2/id.c +80 −108
  951. arch/arm/mach-omap2/include/mach/barriers.h +2 −0
  952. arch/arm/mach-omap2/include/mach/entry-macro.S +0 −18
  953. arch/arm/mach-omap2/include/mach/io.h +0 −5
  954. arch/arm/mach-omap2/include/mach/system.h +0 −5
  955. arch/arm/mach-omap2/io.c +16 −52
  956. arch/arm/mach-omap2/iomap.h +3 −83
  957. arch/arm/mach-omap2/irq.c +54 −11
  958. arch/arm/mach-omap2/mcbsp.c +1 −1
  959. arch/arm/mach-omap2/mux.c +8 −9
  960. arch/arm/mach-omap2/mux.h +1 −1
  961. arch/arm/mach-omap2/omap-hotplug.c +1 −1
  962. arch/arm/mach-omap2/omap-mpuss-lowpower.c +1 −4
  963. arch/arm/mach-omap2/omap-smp.c +2 −1
  964. arch/arm/mach-omap2/omap-wakeupgen.c +28 −25
  965. arch/arm/mach-omap2/omap_hwmod.c +43 −53
  966. arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +27 −4
  967. arch/arm/mach-omap2/omap_hwmod_44xx_data.c +44 −4
  968. arch/arm/mach-omap2/opp.c +2 −2
  969. arch/arm/mach-omap2/opp2420_data.c +2 −0
  970. arch/arm/mach-omap2/opp2430_data.c +2 −0
  971. arch/arm/mach-omap2/pm-debug.c +3 −3
  972. arch/arm/mach-omap2/pm.c +103 −24
  973. arch/arm/mach-omap2/pm.h +2 −1
  974. arch/arm/mach-omap2/pm24xx.c +12 −93
  975. arch/arm/mach-omap2/pm34xx.c +26 −107
  976. arch/arm/mach-omap2/pm44xx.c +15 −61
  977. arch/arm/mach-omap2/powerdomain-common.c +1 −0
  978. arch/arm/mach-omap2/powerdomain.c +7 −1
  979. arch/arm/mach-omap2/powerdomain2xxx_3xxx.c +1 −0
  980. arch/arm/mach-omap2/powerdomain44xx.c +1 −0
  981. arch/arm/mach-omap2/powerdomains3xxx_data.c +1 −0
  982. arch/arm/mach-omap2/prcm_mpu44xx.c +1 −1
  983. arch/arm/mach-omap2/prm44xx.c +13 −11
  984. arch/arm/mach-omap2/prm_common.c +1 −2
  985. arch/arm/mach-omap2/prminst44xx.c +1 −1
  986. arch/arm/mach-omap2/sdram-nokia.c +0 −1
  987. arch/arm/mach-omap2/sdrc2xxx.c +4 −2
  988. arch/arm/mach-omap2/serial.c +0 −4
  989. arch/arm/mach-omap2/sleep24xx.S +0 −1
  990. arch/arm/mach-omap2/sleep34xx.S +4 −1
  991. arch/arm/mach-omap2/sleep44xx.S +0 −1
  992. arch/arm/mach-omap2/smartreflex-class3.c +1 −0
  993. arch/arm/mach-omap2/smartreflex.c +169 −60
  994. arch/arm/mach-omap2/smartreflex.h +10 −0
  995. arch/arm/mach-omap2/sr_device.c +8 −5
  996. arch/arm/mach-omap2/sram242x.S +3 −1
  997. arch/arm/mach-omap2/sram243x.S +3 −1
  998. arch/arm/mach-omap2/sram34xx.S +3 −2
  999. arch/arm/mach-omap2/timer-mpu.c +0 −39
  1000. arch/arm/mach-omap2/timer.c +17 −5
  1001. arch/arm/mach-omap2/usb-host.c +6 −4
  1002. arch/arm/mach-omap2/vc.c +1 −0
  1003. arch/arm/mach-omap2/vp.c +2 −2
  1004. arch/arm/mach-orion5x/common.c +1 −0
  1005. arch/arm/mach-orion5x/common.h +9 −0
  1006. arch/arm/mach-orion5x/dns323-setup.c +1 −0
  1007. arch/arm/mach-orion5x/include/mach/entry-macro.S +0 −6
  1008. arch/arm/mach-orion5x/include/mach/io.h +0 −33
  1009. arch/arm/mach-orion5x/include/mach/system.h +0 −19
  1010. arch/arm/mach-orion5x/ls-chl-setup.c +0 −1
  1011. arch/arm/mach-orion5x/ls_hgl-setup.c +0 −1
  1012. arch/arm/mach-orion5x/lsmini-setup.c +0 −1
  1013. arch/arm/mach-orion5x/pci.c +7 −8
  1014. arch/arm/mach-orion5x/tsx09-common.c +1 −0
  1015. arch/arm/mach-picoxcell/include/mach/entry-macro.S +0 −16
  1016. arch/arm/mach-picoxcell/include/mach/io.h +0 −22
  1017. arch/arm/mach-picoxcell/include/mach/irqs.h +0 −20
  1018. arch/arm/mach-picoxcell/include/mach/system.h +0 −26
  1019. arch/arm/mach-pnx4008/core.c +1 −1
  1020. arch/arm/mach-pnx4008/dma.c +0 −1
  1021. arch/arm/mach-pnx4008/include/mach/entry-macro.S +0 −6
  1022. arch/arm/mach-pnx4008/include/mach/io.h +0 −21
  1023. arch/arm/mach-pnx4008/include/mach/system.h +0 −29
  1024. arch/arm/mach-pnx4008/irq.c +0 −1
  1025. arch/arm/mach-pnx4008/time.c +0 −1
  1026. arch/arm/mach-prima2/include/mach/entry-macro.S +0 −7
  1027. arch/arm/mach-prima2/include/mach/io.h +0 −16
  1028. arch/arm/mach-prima2/include/mach/system.h +0 −17
  1029. arch/arm/mach-prima2/timer.c +7 −14
  1030. arch/arm/mach-pxa/Kconfig +2 −0
  1031. arch/arm/mach-pxa/capc7117.c +1 −0
  1032. arch/arm/mach-pxa/clock-pxa2xx.c +1 −0
  1033. arch/arm/mach-pxa/cm-x300.c +2 −1
  1034. arch/arm/mach-pxa/colibri-pxa270.c +2 −0
  1035. arch/arm/mach-pxa/colibri-pxa300.c +1 −0
  1036. arch/arm/mach-pxa/colibri-pxa320.c +1 −0
  1037. arch/arm/mach-pxa/colibri-pxa3xx.c +1 −0
  1038. arch/arm/mach-pxa/corgi.c +3 −1
  1039. arch/arm/mach-pxa/corgi_pm.c +1 −0
  1040. arch/arm/mach-pxa/cpufreq-pxa3xx.c +1 −0
  1041. arch/arm/mach-pxa/csb726.c +1 −0
  1042. arch/arm/mach-pxa/devices.c +24 −5
  1043. arch/arm/mach-pxa/em-x270.c +7 −5
  1044. arch/arm/mach-pxa/generic.c +0 −1
  1045. arch/arm/mach-pxa/gumstix.c +1 −0
  1046. arch/arm/mach-pxa/h5000.c +1 −0
  1047. arch/arm/mach-pxa/himalaya.c +1 −0
  1048. arch/arm/mach-pxa/hx4700.c +50 −29
  1049. arch/arm/mach-pxa/icontrol.c +1 −0
  1050. arch/arm/mach-pxa/idp.c +1 −0
  1051. arch/arm/mach-pxa/include/mach/balloon3.h +0 −1
  1052. arch/arm/mach-pxa/include/mach/entry-macro.S +0 −15
  1053. arch/arm/mach-pxa/include/mach/hardware.h +0 −6
  1054. arch/arm/mach-pxa/include/mach/io.h +0 −3
  1055. arch/arm/mach-pxa/include/mach/irqs.h +1 −1
  1056. arch/arm/mach-pxa/include/mach/mainstone.h +2 −0
  1057. arch/arm/mach-pxa/include/mach/mfp-pxa27x.h +2 −0
  1058. arch/arm/mach-pxa/include/mach/system.h +0 −15
  1059. arch/arm/mach-pxa/leds-idp.c +0 −1
  1060. arch/arm/mach-pxa/leds-lubbock.c +0 −1
  1061. arch/arm/mach-pxa/leds-mainstone.c +0 −1
  1062. arch/arm/mach-pxa/lubbock.c +1 −0
  1063. arch/arm/mach-pxa/magician.c +28 −8
  1064. arch/arm/mach-pxa/mfp-pxa2xx.c +1 −0
  1065. arch/arm/mach-pxa/mioa701.c +1 −0
  1066. arch/arm/mach-pxa/mp900.c +1 −0
  1067. arch/arm/mach-pxa/palmld.c +1 −0
  1068. arch/arm/mach-pxa/palmt5.c +1 −0
  1069. arch/arm/mach-pxa/palmtc.c +1 −0
  1070. arch/arm/mach-pxa/palmte2.c +1 −0
  1071. arch/arm/mach-pxa/palmtreo.c +2 −0
  1072. arch/arm/mach-pxa/palmtx.c +1 −0
  1073. arch/arm/mach-pxa/palmz72.c +1 −0
  1074. arch/arm/mach-pxa/poodle.c +0 −1
  1075. arch/arm/mach-pxa/pxa2xx.c +1 −0
  1076. arch/arm/mach-pxa/pxa300.c +1 −0
  1077. arch/arm/mach-pxa/pxa320.c +1 −0
  1078. arch/arm/mach-pxa/pxa3xx.c +2 −0
  1079. arch/arm/mach-pxa/pxa95x.c +1 −0
  1080. arch/arm/mach-pxa/raumfeld.c +5 −0
  1081. arch/arm/mach-pxa/reset.c +1 −0
  1082. arch/arm/mach-pxa/saar.c +1 −0
  1083. arch/arm/mach-pxa/sharpsl_pm.c +1 −0
  1084. arch/arm/mach-pxa/spitz.c +3 −0
  1085. arch/arm/mach-pxa/stargate2.c +2 −1
  1086. arch/arm/mach-pxa/tavorevb.c +1 −0
  1087. arch/arm/mach-pxa/time.c +1 −0
  1088. arch/arm/mach-pxa/trizeps4.c +2 −0
  1089. arch/arm/mach-pxa/viper.c +2 −0
  1090. arch/arm/mach-pxa/vpac270.c +1 −0
  1091. arch/arm/mach-pxa/xcep.c +1 −0
  1092. arch/arm/mach-pxa/z2.c +1 −0
  1093. arch/arm/mach-pxa/zeus.c +1 −0
  1094. arch/arm/mach-realview/core.c +0 −1
  1095. arch/arm/mach-realview/core.h +5 −15
  1096. arch/arm/mach-realview/hotplug.c +1 −0
  1097. arch/arm/mach-realview/include/mach/entry-macro.S +0 −16
  1098. arch/arm/mach-realview/include/mach/hardware.h +1 −1
  1099. arch/arm/mach-realview/include/mach/io.h +0 −28
  1100. arch/arm/mach-realview/include/mach/irqs-eb.h +13 −10
  1101. arch/arm/mach-realview/include/mach/irqs-pb1176.h +1 −1
  1102. arch/arm/mach-realview/include/mach/system.h +0 −33
  1103. arch/arm/mach-realview/realview_eb.c +60 −45
  1104. arch/arm/mach-realview/realview_pb1176.c +39 −39
  1105. arch/arm/mach-realview/realview_pb11mp.c +56 −43
  1106. arch/arm/mach-realview/realview_pba8.c +39 −39
  1107. arch/arm/mach-realview/realview_pbx.c +55 −43
  1108. arch/arm/mach-rpc/Makefile +1 −1
  1109. arch/arm/mach-rpc/ecard.c +20 −114
  1110. arch/arm/mach-rpc/ecard.h +0 −0
  1111. arch/arm/mach-rpc/fiq.S +16 −0
  1112. arch/arm/mach-rpc/include/mach/entry-macro.S +0 −4
  1113. arch/arm/mach-rpc/include/mach/hardware.h +0 −6
  1114. arch/arm/mach-rpc/include/mach/io.h +0 −5
  1115. arch/arm/mach-rpc/include/mach/irqs.h +0 −2
  1116. arch/arm/mach-rpc/include/mach/system.h +0 −13
  1117. arch/arm/mach-rpc/irq.c +6 −0
  1118. arch/arm/mach-rpc/riscpc.c +16 −30
  1119. arch/arm/mach-rpc/time.c +1 −1
  1120. arch/arm/mach-s3c2410/Kconfig +0 −154
  1121. arch/arm/mach-s3c2410/Makefile +0 −26
  1122. arch/arm/mach-s3c2410/include/mach/system.h +0 −54
  1123. arch/arm/mach-s3c2410/usb-simtec.h +0 −16
  1124. arch/arm/mach-s3c2412/Kconfig +0 −85
  1125. arch/arm/mach-s3c2412/Makefile +0 −12
  1126. arch/arm/mach-s3c2416/Kconfig +0 −60
  1127. arch/arm/mach-s3c2416/Makefile +0 −22
  1128. arch/arm/mach-s3c2440/Kconfig +0 −165
  1129. arch/arm/mach-s3c2440/Makefile +1 −25
  1130. arch/arm/mach-s3c2440/common.h +0 −17
  1131. arch/arm/mach-s3c2443/Kconfig +0 −32
  1132. arch/arm/mach-s3c2443/Makefile +0 −20
  1133. arch/arm/mach-s3c24xx/Kconfig +538 −0
  1134. arch/arm/mach-s3c24xx/Makefile +95 −0
  1135. arch/arm/mach-s3c24xx/Makefile.boot +0 −0
  1136. arch/arm/mach-s3c24xx/bast-ide.c +0 −0
  1137. arch/arm/mach-s3c24xx/bast-irq.c +0 −0
  1138. arch/arm/mach-s3c24xx/clock-s3c2412.c +0 −0
  1139. arch/arm/mach-s3c24xx/clock-s3c2416.c +0 −7
  1140. arch/arm/mach-s3c24xx/clock-s3c2440.c +0 −0
  1141. arch/arm/mach-s3c24xx/clock-s3c2443.c +0 −7
  1142. arch/arm/mach-s3c24xx/clock-s3c244x.c +0 −0
  1143. arch/arm/mach-s3c24xx/common-s3c2443.c +62 −28
  1144. arch/arm/mach-s3c24xx/common-smdk.c +0 −0
  1145. arch/arm/mach-s3c24xx/common.h +6 −5
  1146. arch/arm/mach-s3c24xx/dma-s3c2410.c +0 −0
  1147. arch/arm/mach-s3c24xx/dma-s3c2412.c +0 −0
  1148. arch/arm/mach-s3c24xx/dma-s3c2440.c +0 −0
  1149. arch/arm/mach-s3c24xx/dma-s3c2443.c +24 −6
  1150. arch/arm/mach-s3c24xx/h1940-bluetooth.c +0 −0
  1151. arch/arm/mach-s3c24xx/include/mach/anubis-cpld.h +0 −0
  1152. arch/arm/mach-s3c24xx/include/mach/anubis-irq.h +0 −0
  1153. arch/arm/mach-s3c24xx/include/mach/anubis-map.h +0 −0
  1154. arch/arm/mach-s3c24xx/include/mach/bast-cpld.h +0 −0
  1155. arch/arm/mach-s3c24xx/include/mach/bast-irq.h +0 −0
  1156. arch/arm/mach-s3c24xx/include/mach/bast-map.h +0 −0
  1157. arch/arm/mach-s3c24xx/include/mach/bast-pmu.h +0 −0
  1158. arch/arm/mach-s3c24xx/include/mach/debug-macro.S +0 −0
  1159. arch/arm/mach-s3c24xx/include/mach/dma.h +0 −0
  1160. arch/arm/mach-s3c24xx/include/mach/entry-macro.S +0 −8
  1161. arch/arm/mach-s3c24xx/include/mach/fb.h +0 −0
  1162. arch/arm/mach-s3c24xx/include/mach/gpio-fns.h +0 −0
  1163. arch/arm/mach-s3c24xx/include/mach/gpio-nrs.h +0 −0
  1164. arch/arm/mach-s3c24xx/include/mach/gpio-track.h +0 −0
  1165. arch/arm/mach-s3c24xx/include/mach/gpio.h +0 −0
  1166. arch/arm/mach-s3c24xx/include/mach/gta02.h +0 −0
  1167. arch/arm/mach-s3c24xx/include/mach/h1940-latch.h +0 −0
  1168. arch/arm/mach-s3c24xx/include/mach/h1940.h +0 −0
  1169. arch/arm/mach-s3c24xx/include/mach/hardware.h +0 −0
  1170. arch/arm/mach-s3c24xx/include/mach/idle.h +0 −0
  1171. arch/arm/mach-s3c24xx/include/mach/io.h +0 −5
  1172. arch/arm/mach-s3c24xx/include/mach/irqs.h +0 −0
  1173. arch/arm/mach-s3c24xx/include/mach/leds-gpio.h +0 −0
  1174. arch/arm/mach-s3c24xx/include/mach/map.h +0 −0
  1175. arch/arm/mach-s3c24xx/include/mach/osiris-cpld.h +0 −0
  1176. arch/arm/mach-s3c24xx/include/mach/osiris-map.h +0 −0
  1177. arch/arm/mach-s3c24xx/include/mach/otom-map.h +0 −0
  1178. arch/arm/mach-s3c24xx/include/mach/pm-core.h +0 −0
  1179. arch/arm/mach-s3c24xx/include/mach/regs-clock.h +0 −0
  1180. arch/arm/mach-s3c24xx/include/mach/regs-dsc.h +0 −0
  1181. arch/arm/mach-s3c24xx/include/mach/regs-gpio.h +0 −0
  1182. arch/arm/mach-s3c24xx/include/mach/regs-gpioj.h +0 −0
  1183. arch/arm/mach-s3c24xx/include/mach/regs-irq.h +0 −0
  1184. arch/arm/mach-s3c24xx/include/mach/regs-lcd.h +0 −0
  1185. arch/arm/mach-s3c24xx/include/mach/regs-mem.h +0 −0
  1186. arch/arm/mach-s3c24xx/include/mach/regs-power.h +0 −0
  1187. arch/arm/mach-s3c24xx/include/mach/regs-s3c2412-mem.h +0 −0
  1188. arch/arm/mach-s3c24xx/include/mach/regs-s3c2412.h +0 −0
  1189. arch/arm/mach-s3c24xx/include/mach/regs-s3c2416-mem.h +0 −0
  1190. arch/arm/mach-s3c24xx/include/mach/regs-s3c2416.h +0 −0
  1191. arch/arm/mach-s3c24xx/include/mach/regs-s3c2443-clock.h +0 −0
  1192. arch/arm/mach-s3c24xx/include/mach/regs-sdi.h +0 −0
  1193. arch/arm/mach-s3c24xx/include/mach/tick.h +0 −0
  1194. arch/arm/mach-s3c24xx/include/mach/timex.h +0 −0
  1195. arch/arm/mach-s3c24xx/include/mach/uncompress.h +0 −0
  1196. arch/arm/mach-s3c24xx/include/mach/vr1000-cpld.h +0 −0
  1197. arch/arm/mach-s3c24xx/include/mach/vr1000-irq.h +0 −0
  1198. arch/arm/mach-s3c24xx/include/mach/vr1000-map.h +0 −0
  1199. arch/arm/mach-s3c24xx/irq-s3c2412.c +0 −0
  1200. arch/arm/mach-s3c24xx/irq-s3c2416.c +0 −0
  1201. arch/arm/mach-s3c24xx/irq-s3c2440.c +0 −0
  1202. arch/arm/mach-s3c24xx/irq-s3c2443.c +0 −0
  1203. arch/arm/mach-s3c24xx/irq-s3c244x.c +0 −0
  1204. arch/arm/mach-s3c24xx/mach-amlm5900.c +0 −0
  1205. arch/arm/mach-s3c24xx/mach-anubis.c +1 −0
  1206. arch/arm/mach-s3c24xx/mach-at2440evb.c +0 −0
  1207. arch/arm/mach-s3c24xx/mach-bast.c +1 −2
  1208. arch/arm/mach-s3c24xx/mach-gta02.c +3 −3
  1209. arch/arm/mach-s3c24xx/mach-h1940.c +6 −6
  1210. arch/arm/mach-s3c24xx/mach-jive.c +0 −0
  1211. arch/arm/mach-s3c24xx/mach-mini2440.c +0 −0
  1212. arch/arm/mach-s3c24xx/mach-n30.c +0 −0
  1213. arch/arm/mach-s3c24xx/mach-nexcoder.c +0 −0
  1214. arch/arm/mach-s3c24xx/mach-osiris-dvs.c +0 −0
  1215. arch/arm/mach-s3c24xx/mach-osiris.c +0 −0
  1216. arch/arm/mach-s3c24xx/mach-otom.c +0 −0
  1217. arch/arm/mach-s3c24xx/mach-qt2410.c +0 −0
  1218. arch/arm/mach-s3c24xx/mach-rx1950.c +6 −6
  1219. arch/arm/mach-s3c24xx/mach-rx3715.c +0 −0
  1220. arch/arm/mach-s3c24xx/mach-smdk2410.c +0 −0
  1221. arch/arm/mach-s3c24xx/mach-smdk2413.c +0 −0
  1222. arch/arm/mach-s3c24xx/mach-smdk2416.c +4 −4
  1223. arch/arm/mach-s3c24xx/mach-smdk2440.c +0 −0
  1224. arch/arm/mach-s3c24xx/mach-smdk2443.c +0 −0
  1225. arch/arm/mach-s3c24xx/mach-tct_hammer.c +0 −0
  1226. arch/arm/mach-s3c24xx/mach-vr1000.c +1 −2
  1227. arch/arm/mach-s3c24xx/mach-vstms.c +0 −0
  1228. arch/arm/mach-s3c24xx/pm-h1940.S +0 −0
  1229. arch/arm/mach-s3c24xx/pm-s3c2410.c +0 −0
  1230. arch/arm/mach-s3c24xx/pm-s3c2412.c +0 −0
  1231. arch/arm/mach-s3c24xx/pm-s3c2416.c +0 −0
  1232. arch/arm/mach-s3c24xx/s3c2410.c +1 −0
  1233. arch/arm/mach-s3c24xx/s3c2412.c +2 −3
  1234. arch/arm/mach-s3c24xx/s3c2416.c +3 −3
  1235. arch/arm/mach-s3c24xx/s3c2440.c +0 −0
  1236. arch/arm/mach-s3c24xx/s3c2442.c +0 −0
  1237. arch/arm/mach-s3c24xx/s3c2443.c +3 −0
  1238. arch/arm/mach-s3c24xx/s3c244x.c +1 −0
  1239. arch/arm/mach-s3c24xx/setup-i2c.c +0 −0
  1240. arch/arm/mach-s3c24xx/setup-sdhci-gpio.c +0 −0
  1241. arch/arm/mach-s3c24xx/setup-ts.c +0 −0
  1242. arch/arm/mach-s3c24xx/simtec-audio.c +2 −0
  1243. arch/arm/mach-s3c24xx/simtec-nor.c +1 −4
  1244. arch/arm/mach-s3c24xx/simtec-pm.c +0 −0
  1245. arch/arm/mach-s3c24xx/simtec-usb.c +1 −1
  1246. arch/arm/mach-s3c24xx/simtec.h +8 −1
  1247. arch/arm/mach-s3c24xx/sleep-s3c2410.S +0 −0
  1248. arch/arm/mach-s3c24xx/sleep-s3c2412.S +0 −0
  1249. arch/arm/mach-s3c64xx/Kconfig +9 −0
  1250. arch/arm/mach-s3c64xx/Makefile +2 −0
  1251. arch/arm/mach-s3c64xx/clock.c +111 −10
  1252. arch/arm/mach-s3c64xx/common.c +1 −0
  1253. arch/arm/mach-s3c64xx/common.h +0 −2
  1254. arch/arm/mach-s3c64xx/cpuidle.c +91 −0
  1255. arch/arm/mach-s3c64xx/include/mach/entry-macro.S +0 −19
  1256. arch/arm/mach-s3c64xx/include/mach/io.h +0 −18
  1257. arch/arm/mach-s3c64xx/include/mach/system.h +0 −19
  1258. arch/arm/mach-s3c64xx/irq-pm.c +1 −1
  1259. arch/arm/mach-s3c64xx/mach-crag6410-module.c +42 −3
  1260. arch/arm/mach-s3c64xx/mach-crag6410.c +70 −1
  1261. arch/arm/mach-s3c64xx/mach-smartq.c +3 −0
  1262. arch/arm/mach-s3c64xx/mach-smdk6410.c +4 −0
  1263. arch/arm/mach-s3c64xx/setup-usb-phy.c +90 −0
  1264. arch/arm/mach-s5p64x0/clock.c +6 −5
  1265. arch/arm/mach-s5p64x0/common.c +7 −9
  1266. arch/arm/mach-s5p64x0/dma.c +9 −21
  1267. arch/arm/mach-s5p64x0/include/mach/entry-macro.S +0 −17
  1268. arch/arm/mach-s5p64x0/include/mach/io.h +0 −25
  1269. arch/arm/mach-s5p64x0/include/mach/s5p64x0-clock.h +0 −7
  1270. arch/arm/mach-s5p64x0/include/mach/system.h +0 −21
  1271. arch/arm/mach-s5pc100/clock.c +14 −14
  1272. arch/arm/mach-s5pc100/common.c +1 −12
  1273. arch/arm/mach-s5pc100/dma.c +10 −36
  1274. arch/arm/mach-s5pc100/include/mach/entry-macro.S +0 −6
  1275. arch/arm/mach-s5pc100/include/mach/io.h +0 −18
  1276. arch/arm/mach-s5pc100/include/mach/system.h +0 −19
  1277. arch/arm/mach-s5pv210/Kconfig +15 −0
  1278. arch/arm/mach-s5pv210/Makefile +1 −0
  1279. arch/arm/mach-s5pv210/clock.c +5 −0
  1280. arch/arm/mach-s5pv210/common.c +0 −12
  1281. arch/arm/mach-s5pv210/dma.c +10 −38
  1282. arch/arm/mach-s5pv210/include/mach/entry-macro.S +0 −17
  1283. arch/arm/mach-s5pv210/include/mach/io.h +0 −26
  1284. arch/arm/mach-s5pv210/include/mach/map.h +4 −0
  1285. arch/arm/mach-s5pv210/include/mach/regs-sys.h +0 −4
  1286. arch/arm/mach-s5pv210/include/mach/system.h +0 −21
  1287. arch/arm/mach-s5pv210/mach-aquila.c +3 −2
  1288. arch/arm/mach-s5pv210/mach-goni.c +3 −3
  1289. arch/arm/mach-s5pv210/mach-smdkc110.c +14 −0
  1290. arch/arm/mach-s5pv210/mach-smdkv210.c +16 −1
  1291. arch/arm/mach-s5pv210/setup-usb-phy.c +90 −0
  1292. arch/arm/mach-sa1100/Makefile +1 −1
  1293. arch/arm/mach-sa1100/assabet.c +140 −54
  1294. arch/arm/mach-sa1100/badge4.c +21 −21
  1295. arch/arm/mach-sa1100/cerf.c +6 −11
  1296. arch/arm/mach-sa1100/clock.c +47 −35
  1297. arch/arm/mach-sa1100/collie.c +37 −22
  1298. arch/arm/mach-sa1100/dma.c +0 −348
  1299. arch/arm/mach-sa1100/generic.c +73 −88
  1300. arch/arm/mach-sa1100/generic.h +4 −3
  1301. arch/arm/mach-sa1100/h3100.c +23 −2
  1302. arch/arm/mach-sa1100/h3600.c +32 −2
  1303. arch/arm/mach-sa1100/h3xxx.c +3 −10
  1304. arch/arm/mach-sa1100/hackkit.c +6 −7
  1305. arch/arm/mach-sa1100/include/mach/SA-1100.h +2 −227
  1306. arch/arm/mach-sa1100/include/mach/assabet.h +6 −9
  1307. arch/arm/mach-sa1100/include/mach/cerf.h +5 −10
  1308. arch/arm/mach-sa1100/include/mach/collie.h +2 −1
  1309. arch/arm/mach-sa1100/include/mach/dma.h +0 −117
  1310. arch/arm/mach-sa1100/include/mach/entry-macro.S +0 −6
  1311. arch/arm/mach-sa1100/include/mach/io.h +0 −20
  1312. arch/arm/mach-sa1100/include/mach/irqs.h +12 −15
  1313. arch/arm/mach-sa1100/include/mach/mcp.h +1 −1
  1314. arch/arm/mach-sa1100/include/mach/nanoengine.h +6 −6
  1315. arch/arm/mach-sa1100/include/mach/neponset.h +4 −48
  1316. arch/arm/mach-sa1100/include/mach/shannon.h +5 −9
  1317. arch/arm/mach-sa1100/include/mach/simpad.h +2 −4
  1318. arch/arm/mach-sa1100/include/mach/system.h +0 −9
  1319. arch/arm/mach-sa1100/irq.c +3 −5
  1320. arch/arm/mach-sa1100/jornada720.c +12 −34
  1321. arch/arm/mach-sa1100/lart.c +82 −0
  1322. arch/arm/mach-sa1100/leds-assabet.c +0 −1
  1323. arch/arm/mach-sa1100/leds-badge4.c +0 −1
  1324. arch/arm/mach-sa1100/leds-cerf.c +0 −1
  1325. arch/arm/mach-sa1100/leds-hackkit.c +0 −1
  1326. arch/arm/mach-sa1100/leds-lart.c +0 −1
  1327. arch/arm/mach-sa1100/nanoengine.c +4 −9
  1328. arch/arm/mach-sa1100/neponset.c +319 −230
  1329. arch/arm/mach-sa1100/pci-nanoengine.c +7 −9
  1330. arch/arm/mach-sa1100/pleb.c +5 −20
  1331. arch/arm/mach-sa1100/pm.c +0 −1
  1332. arch/arm/mach-sa1100/shannon.c +22 −5
  1333. arch/arm/mach-sa1100/simpad.c +12 −12
  1334. arch/arm/mach-sa1100/sleep.S +22 −15
  1335. arch/arm/mach-sa1100/ssp.c +1 −1
  1336. arch/arm/mach-sa1100/time.c +1 −0
  1337. arch/arm/mach-shark/core.c +7 −0
  1338. arch/arm/mach-shark/include/mach/entry-macro.S +0 −6
  1339. arch/arm/mach-shark/include/mach/io.h +0 −2
  1340. arch/arm/mach-shark/include/mach/system.h +0 −13
  1341. arch/arm/mach-shark/leds.c +0 −1
  1342. arch/arm/mach-shmobile/Kconfig +4 −0
  1343. arch/arm/mach-shmobile/Makefile +0 −1
  1344. arch/arm/mach-shmobile/board-ag5evm.c +5 −37
  1345. arch/arm/mach-shmobile/board-ap4evb.c +6 −37
  1346. arch/arm/mach-shmobile/board-bonito.c +14 −33
  1347. arch/arm/mach-shmobile/board-g3evm.c +4 −35
  1348. arch/arm/mach-shmobile/board-g4evm.c +4 −35
  1349. arch/arm/mach-shmobile/board-kota2.c +5 −36
  1350. arch/arm/mach-shmobile/board-mackerel.c +78 −42
  1351. arch/arm/mach-shmobile/board-marzen.c +4 −59
  1352. arch/arm/mach-shmobile/clock-r8a7740.c +4 −4
  1353. arch/arm/mach-shmobile/clock-r8a7779.c +2 −2
  1354. arch/arm/mach-shmobile/clock-sh7367.c +4 −4
  1355. arch/arm/mach-shmobile/clock-sh7372.c +8 −6
  1356. arch/arm/mach-shmobile/clock-sh7377.c +4 −4
  1357. arch/arm/mach-shmobile/clock-sh73a0.c +7 −7
  1358. arch/arm/mach-shmobile/clock.c +1 −1
  1359. arch/arm/mach-shmobile/cpuidle.c +7 −25
  1360. arch/arm/mach-shmobile/include/mach/common.h +10 −1
  1361. arch/arm/mach-shmobile/include/mach/entry-macro.S +0 −22
  1362. arch/arm/mach-shmobile/include/mach/io.h +0 −9
  1363. arch/arm/mach-shmobile/include/mach/irqs.h +1 −5
  1364. arch/arm/mach-shmobile/include/mach/system.h +1 −4
  1365. arch/arm/mach-shmobile/intc-r8a7740.c +1 −0
  1366. arch/arm/mach-shmobile/intc-r8a7779.c +2 −2
  1367. arch/arm/mach-shmobile/intc-sh7367.c +1 −0
  1368. arch/arm/mach-shmobile/intc-sh7372.c +1 −0
  1369. arch/arm/mach-shmobile/intc-sh7377.c +1 −0
  1370. arch/arm/mach-shmobile/intc-sh73a0.c +3 −2
  1371. arch/arm/mach-shmobile/localtimer.c +0 −26
  1372. arch/arm/mach-shmobile/platsmp.c +0 −1
  1373. arch/arm/mach-shmobile/pm-r8a7779.c +0 −1
  1374. arch/arm/mach-shmobile/pm-sh7372.c +0 −1
  1375. arch/arm/mach-shmobile/setup-r8a7740.c +46 −0
  1376. arch/arm/mach-shmobile/setup-r8a7779.c +55 −0
  1377. arch/arm/mach-shmobile/setup-sh7367.c +33 −0
  1378. arch/arm/mach-shmobile/setup-sh7372.c +40 −0
  1379. arch/arm/mach-shmobile/setup-sh7377.c +33 −0
  1380. arch/arm/mach-shmobile/setup-sh73a0.c +33 −0
  1381. arch/arm/mach-shmobile/smp-r8a7779.c +5 −7
  1382. arch/arm/mach-shmobile/smp-sh73a0.c +13 −15
  1383. arch/arm/mach-shmobile/suspend.c +1 −1
  1384. arch/arm/mach-shmobile/timer.c +15 −1
  1385. arch/arm/mach-spear3xx/clock.c +1 −0
  1386. arch/arm/mach-spear3xx/include/mach/entry-macro.S +0 −18
  1387. arch/arm/mach-spear3xx/include/mach/io.h +0 −19
  1388. arch/arm/mach-spear3xx/include/mach/system.h +0 −19
  1389. arch/arm/mach-spear3xx/spear300.c +2 −12
  1390. arch/arm/mach-spear3xx/spear3xx.c +4 −23
  1391. arch/arm/mach-spear6xx/Kconfig +4 −3
  1392. arch/arm/mach-spear6xx/Makefile +0 −6
  1393. arch/arm/mach-spear6xx/clock.c +8 −7
  1394. arch/arm/mach-spear6xx/include/mach/entry-macro.S +0 −18
  1395. arch/arm/mach-spear6xx/include/mach/io.h +0 −20
  1396. arch/arm/mach-spear6xx/include/mach/system.h +0 −19
  1397. arch/arm/mach-spear6xx/spear600.c +0 −25
  1398. arch/arm/mach-spear6xx/spear600_evb.c +0 −54
  1399. arch/arm/mach-spear6xx/spear6xx.c +36 −96
  1400. arch/arm/mach-tegra/Kconfig +16 −2
  1401. arch/arm/mach-tegra/Makefile +8 −2
  1402. arch/arm/mach-tegra/apbio.c +145 −0
  1403. arch/arm/mach-tegra/apbio.h +39 −0
  1404. arch/arm/mach-tegra/board-dt-tegra20.c +4 −8
  1405. arch/arm/mach-tegra/board-dt-tegra30.c +24 −2
  1406. arch/arm/mach-tegra/board-harmony-pinmux.c +3 −3
  1407. arch/arm/mach-tegra/board-harmony-power.c +2 −16
  1408. arch/arm/mach-tegra/board-harmony.c +1 −1
  1409. arch/arm/mach-tegra/board-seaboard.c +3 −2
  1410. arch/arm/mach-tegra/clock.c +22 −0
  1411. arch/arm/mach-tegra/clock.h +15 −0
  1412. arch/arm/mach-tegra/common.c +25 −1
  1413. arch/arm/mach-tegra/cpu-tegra.c +0 −1
  1414. arch/arm/mach-tegra/cpuidle.c +107 −0
  1415. arch/arm/mach-tegra/devices.c +3 −4
  1416. arch/arm/mach-tegra/devices.h +5 −0
  1417. arch/arm/mach-tegra/dma.c +77 −51
  1418. arch/arm/mach-tegra/flowctrl.c +62 −0
  1419. arch/arm/mach-tegra/flowctrl.h +42 −0
  1420. arch/arm/mach-tegra/fuse.c +79 −34
  1421. arch/arm/mach-tegra/fuse.h +33 −5
  1422. arch/arm/mach-tegra/headsmp.S +159 −8
  1423. arch/arm/mach-tegra/hotplug.c +1 −0
  1424. arch/arm/mach-tegra/include/mach/clk.h +10 −0
  1425. arch/arm/mach-tegra/include/mach/debug-macro.S +77 −12
  1426. arch/arm/mach-tegra/include/mach/gpio-tegra.h +0 −2
  1427. arch/arm/mach-tegra/include/mach/io.h +0 −49
  1428. arch/arm/mach-tegra/include/mach/iomap.h +48 −0
  1429. arch/arm/mach-tegra/include/mach/irammap.h +35 −0
  1430. arch/arm/mach-tegra/include/mach/irqs.h +4 −3
  1431. arch/arm/mach-tegra/include/mach/powergate.h +14 −1
  1432. arch/arm/mach-tegra/include/mach/smmu.h +63 −0
  1433. arch/arm/mach-tegra/include/mach/uncompress.h +109 −11
  1434. arch/arm/mach-tegra/io.c +1 −0
  1435. arch/arm/mach-tegra/irq.c +16 −4
  1436. arch/arm/mach-tegra/localtimer.c +0 −26
  1437. arch/arm/mach-tegra/pcie.c +15 −7
  1438. arch/arm/mach-tegra/platsmp.c +96 −41
  1439. arch/arm/mach-tegra/pmc.c +76 −0
  1440. arch/arm/mach-tegra/pmc.h +8 −9
  1441. arch/arm/mach-tegra/powergate.c +47 −6
  1442. arch/arm/mach-tegra/reset.c +84 −0
  1443. arch/arm/mach-tegra/reset.h +50 −0
  1444. arch/arm/mach-tegra/sleep.S +93 −0
  1445. arch/arm/mach-tegra/tegra2_clocks.c +26 −6
  1446. arch/arm/mach-tegra/tegra2_emc.c +201 −23
  1447. arch/arm/mach-tegra/tegra2_emc.h +4 −7
  1448. arch/arm/mach-tegra/tegra30_clocks.c +3099 −0
  1449. arch/arm/mach-tegra/timer.c +17 −5
  1450. arch/arm/mach-tegra/usb_phy.c +11 −0
  1451. arch/arm/mach-u300/Makefile +0 −1
  1452. arch/arm/mach-u300/core.c +34 −81
  1453. arch/arm/mach-u300/include/mach/entry-macro.S +0 −16
  1454. arch/arm/mach-u300/include/mach/io.h +0 −20
  1455. arch/arm/mach-u300/include/mach/system.h +0 −14
  1456. arch/arm/mach-u300/include/mach/u300-regs.h +5 −6
  1457. arch/arm/mach-u300/mmc.c +0 −52
  1458. arch/arm/mach-u300/mmc.h +0 −18
  1459. arch/arm/mach-ux500/Kconfig +33 −18
  1460. arch/arm/mach-ux500/Makefile +1 −2
  1461. arch/arm/mach-ux500/Makefile.boot +1 −0
  1462. arch/arm/mach-ux500/board-mop500-pins.c +1 −0
  1463. arch/arm/mach-ux500/board-mop500-regulators.c +28 −0
  1464. arch/arm/mach-ux500/board-mop500-sdi.c +24 −28
  1465. arch/arm/mach-ux500/board-mop500-u8500uib.c +0 −1
  1466. arch/arm/mach-ux500/board-mop500.c +144 −29
  1467. arch/arm/mach-ux500/board-mop500.h +5 −5
  1468. arch/arm/mach-ux500/board-u5500-sdi.c +2 −2
  1469. arch/arm/mach-ux500/board-u5500.c +17 −10
  1470. arch/arm/mach-ux500/cache-l2x0.c +6 −1
  1471. arch/arm/mach-ux500/clock.c +7 −0
  1472. arch/arm/mach-ux500/clock.h +1 −0
  1473. arch/arm/mach-ux500/cpu-db5500.c +29 −7
  1474. arch/arm/mach-ux500/cpu-db8500.c +36 −8
  1475. arch/arm/mach-ux500/cpu.c +88 −2
  1476. arch/arm/mach-ux500/devices-common.c +20 −72
  1477. arch/arm/mach-ux500/devices-common.h +46 −37
  1478. arch/arm/mach-ux500/devices-db5500.h +68 −48
  1479. arch/arm/mach-ux500/devices-db8500.c +6 −0
  1480. arch/arm/mach-ux500/devices-db8500.h +101 −75
  1481. arch/arm/mach-ux500/dma-db5500.c +2 −1
  1482. arch/arm/mach-ux500/include/mach/db8500-regs.h +3 −0
  1483. arch/arm/mach-ux500/include/mach/entry-macro.S +0 −18
  1484. arch/arm/mach-ux500/include/mach/hardware.h +3 −1
  1485. arch/arm/mach-ux500/include/mach/io.h +0 −22
  1486. arch/arm/mach-ux500/include/mach/irqs-board-mop500.h +1 −1
  1487. arch/arm/mach-ux500/include/mach/irqs.h +1 −1
  1488. arch/arm/mach-ux500/include/mach/setup.h +5 −6
  1489. arch/arm/mach-ux500/include/mach/system.h +0 −20
  1490. arch/arm/mach-ux500/include/mach/usb.h +2 −2
  1491. arch/arm/mach-ux500/localtimer.c +0 −29
  1492. arch/arm/mach-ux500/timer.c +34 −10
  1493. arch/arm/mach-ux500/usb.c +5 −2
  1494. arch/arm/mach-versatile/core.c +35 −36
  1495. arch/arm/mach-versatile/core.h +5 −15
  1496. arch/arm/mach-versatile/include/mach/entry-macro.S +0 −15
  1497. arch/arm/mach-versatile/include/mach/io.h +0 −28
  1498. arch/arm/mach-versatile/include/mach/system.h +0 −33
  1499. arch/arm/mach-versatile/pci.c +5 −6
  1500. arch/arm/mach-versatile/versatile_pb.c +9 −9
  1501. arch/arm/mach-vexpress/Kconfig +44 −3
  1502. arch/arm/mach-vexpress/Makefile.boot +6 −0
  1503. arch/arm/mach-vexpress/core.h +6 −18
  1504. arch/arm/mach-vexpress/ct-ca9x4.c +33 −42
  1505. arch/arm/mach-vexpress/hotplug.c +1 −1
  1506. arch/arm/mach-vexpress/include/mach/ct-ca9x4.h +1 −4
  1507. arch/arm/mach-vexpress/include/mach/debug-macro.S +26 −4
  1508. arch/arm/mach-vexpress/include/mach/entry-macro.S +0 −5
  1509. arch/arm/mach-vexpress/include/mach/io.h +0 −26
  1510. arch/arm/mach-vexpress/include/mach/irqs.h +1 −1
  1511. arch/arm/mach-vexpress/include/mach/motherboard.h +31 −27
  1512. arch/arm/mach-vexpress/include/mach/system.h +0 −33
  1513. arch/arm/mach-vexpress/include/mach/uncompress.h +21 −1
  1514. arch/arm/mach-vexpress/platsmp.c +154 −6
  1515. arch/arm/mach-vexpress/v2m.c +267 −34
  1516. arch/arm/mach-vt8500/include/mach/entry-macro.S +0 −6
  1517. arch/arm/mach-vt8500/include/mach/io.h +0 −26
  1518. arch/arm/mach-vt8500/include/mach/system.h +0 −5
  1519. arch/arm/mach-w90x900/cpu.c +1 −0
  1520. arch/arm/mach-w90x900/dev.c +2 −0
  1521. arch/arm/mach-w90x900/include/mach/entry-macro.S +0 −8
  1522. arch/arm/mach-w90x900/include/mach/io.h +0 −30
  1523. arch/arm/mach-w90x900/include/mach/system.h +0 −19
  1524. arch/arm/mach-zynq/include/mach/entry-macro.S +0 −27
  1525. arch/arm/mach-zynq/include/mach/io.h +0 −33
  1526. arch/arm/mach-zynq/include/mach/system.h +0 −23
  1527. arch/arm/mm/Kconfig +1 −1
  1528. arch/arm/mm/alignment.c +2 −1
  1529. arch/arm/mm/cache-feroceon-l2.c +1 −0
  1530. arch/arm/mm/cache-l2x0.c +11 −11
  1531. arch/arm/mm/cache-tauros2.c +1 −0
  1532. arch/arm/mm/cache-xsc3l2.c +1 −1
  1533. arch/arm/mm/copypage-v4mc.c +2 −7
  1534. arch/arm/mm/copypage-v6.c +6 −14
  1535. arch/arm/mm/copypage-xscale.c +1 −8
  1536. arch/arm/mm/dma-mapping.c +13 −7
  1537. arch/arm/mm/fault.c +5 −3
  1538. arch/arm/mm/flush.c +5 −10
  1539. arch/arm/mm/highmem.c +8 −13
  1540. arch/arm/mm/idmap.c +1 −0
  1541. arch/arm/mm/init.c +4 −0
  1542. arch/arm/mm/iomap.c +0 −3
  1543. arch/arm/mm/ioremap.c +16 −3
  1544. arch/arm/mm/mm.h +25 −1
  1545. arch/arm/mm/mmu.c +7 −2
  1546. arch/arm/mm/nommu.c +8 −2
  1547. arch/arm/mm/pgd.c +1 −0
  1548. arch/arm/mm/proc-fa526.S +0 −1
  1549. arch/arm/mm/proc-v7.S +12 −0
  1550. arch/arm/mm/vmregion.c +75 −1
  1551. arch/arm/mm/vmregion.h +4 −1
  1552. arch/arm/net/Makefile +3 −0
  1553. arch/arm/net/bpf_jit_32.c +915 −0
  1554. arch/arm/net/bpf_jit_32.h +190 −0
  1555. arch/arm/nwfpe/fpa11.c +0 −1
  1556. arch/arm/plat-iop/i2c.c +0 −1
  1557. arch/arm/plat-iop/pci.c +2 −3
  1558. arch/arm/plat-iop/restart.c +1 −0
  1559. arch/arm/plat-mxc/3ds_debugboard.c +1 −1
  1560. arch/arm/plat-mxc/avic.c +1 −1
  1561. arch/arm/plat-mxc/cpu.c +24 −0
  1562. arch/arm/plat-mxc/devices/platform-ahci-imx.c +8 −8
  1563. arch/arm/plat-mxc/epit.c +1 −1
  1564. arch/arm/plat-mxc/include/mach/board-mx31ads.h +0 −33
  1565. arch/arm/plat-mxc/include/mach/common.h +10 −0
  1566. arch/arm/plat-mxc/include/mach/debug-macro.S +1 −1
  1567. arch/arm/plat-mxc/include/mach/dma.h +1 −2
  1568. arch/arm/plat-mxc/include/mach/entry-macro.S +0 −16
  1569. arch/arm/plat-mxc/include/mach/hardware.h +2 −5
  1570. arch/arm/plat-mxc/include/mach/io.h +0 −39
  1571. arch/arm/plat-mxc/include/mach/iomux-mx25.h +21 −21
  1572. arch/arm/plat-mxc/include/mach/system.h +0 −25
  1573. arch/arm/plat-mxc/pwm.c +2 −2
  1574. arch/arm/plat-mxc/system.c +2 −2
  1575. arch/arm/plat-mxc/time.c +1 −1
  1576. arch/arm/plat-nomadik/Kconfig +0 −1
  1577. arch/arm/plat-nomadik/include/plat/mtu.h +1 −3
  1578. arch/arm/plat-nomadik/include/plat/ste_dma40.h +1 −2
  1579. arch/arm/plat-nomadik/timer.c +8 −25
  1580. arch/arm/plat-omap/Kconfig +4 −0
  1581. arch/arm/plat-omap/clock.c +3 −29
  1582. arch/arm/plat-omap/counter_32k.c +1 −0
  1583. arch/arm/plat-omap/debug-leds.c +0 −1
  1584. arch/arm/plat-omap/dma.c +3 −2
  1585. arch/arm/plat-omap/dmtimer.c +18 −3
  1586. arch/arm/plat-omap/include/plat/board-ams-delta.h +22 −27
  1587. arch/arm/plat-omap/include/plat/clock.h +0 −10
  1588. arch/arm/plat-omap/include/plat/cpu.h +6 −3
  1589. arch/arm/plat-omap/include/plat/gpio.h +20 −35
  1590. arch/arm/plat-omap/include/plat/keypad.h +2 −0
  1591. arch/arm/plat-omap/include/plat/mcspi.h +0 −3
  1592. arch/arm/plat-omap/include/plat/mmc.h +0 −2
  1593. arch/arm/plat-omap/include/plat/omap_device.h +8 −1
  1594. arch/arm/plat-omap/include/plat/omap_hwmod.h +6 −8
  1595. arch/arm/plat-omap/include/plat/remoteproc.h +57 −0
  1596. arch/arm/plat-omap/include/plat/sdrc.h +0 −1
  1597. arch/arm/plat-omap/include/plat/serial.h +0 −1
  1598. arch/arm/plat-omap/include/plat/sram.h +1 −0
  1599. arch/arm/plat-omap/include/plat/system.h +0 −15
  1600. arch/arm/plat-omap/include/plat/tc.h +0 −17
  1601. arch/arm/plat-omap/include/plat/uncompress.h +1 −0
  1602. arch/arm/plat-omap/include/plat/usb.h +40 −0
  1603. arch/arm/plat-omap/mailbox.c +1 −1
  1604. arch/arm/plat-omap/mux.c +4 −1
  1605. arch/arm/plat-omap/omap-pm-noop.c +1 −1
  1606. arch/arm/plat-omap/omap_device.c +14 −32
  1607. arch/arm/plat-omap/sram.c +16 −7
  1608. arch/arm/plat-omap/usb.c +4 −0
  1609. arch/arm/plat-orion/common.c +6 −1
  1610. arch/arm/plat-orion/include/plat/audio.h +0 −1
  1611. arch/arm/plat-pxa/dma.c +0 −1
  1612. arch/arm/plat-s3c24xx/Kconfig +4 −53
  1613. arch/arm/plat-s3c24xx/Makefile +1 −18
  1614. arch/arm/plat-s3c24xx/cpu.c +29 −0
  1615. arch/arm/plat-s3c24xx/dma.c +0 −1
  1616. arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c +0 −36
  1617. arch/arm/plat-s3c24xx/spi-bus1-gpd8_9_10.c +0 −38
  1618. arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c +0 −36
  1619. arch/arm/plat-s5p/Kconfig +16 −2
  1620. arch/arm/plat-s5p/Makefile +2 −1
  1621. arch/arm/plat-s5p/clock.c +36 −0
  1622. arch/arm/plat-s5p/irq-eint.c +1 −1
  1623. arch/arm/plat-s5p/irq-gpioint.c +1 −1
  1624. arch/arm/plat-s5p/irq-pm.c +19 −6
  1625. arch/arm/plat-s5p/sleep.S +38 −6
  1626. arch/arm/plat-samsung/Kconfig +3 −2
  1627. arch/arm/plat-samsung/clock.c +8 −4
  1628. arch/arm/plat-samsung/cpu.c +0 −1
  1629. arch/arm/plat-samsung/dev-backlight.c +3 −1
  1630. arch/arm/plat-samsung/devs.c +65 −16
  1631. arch/arm/plat-samsung/dma-ops.c +3 −3
  1632. arch/arm/plat-samsung/include/plat/audio-simtec.h +0 −3
  1633. arch/arm/plat-samsung/include/plat/clock.h +21 −1
  1634. arch/arm/plat-samsung/include/plat/cpu.h +10 −0
  1635. arch/arm/plat-samsung/include/plat/devs.h +4 −0
  1636. arch/arm/plat-samsung/include/plat/dma-pl330.h +16 −0
  1637. arch/arm/plat-samsung/include/plat/regs-dma.h +1 −1
  1638. arch/arm/plat-samsung/include/plat/regs-rtc.h +42 −39
  1639. arch/arm/plat-samsung/include/plat/regs-usb-hsotg-phy.h +4 −3
  1640. arch/arm/plat-samsung/include/plat/rtc-core.h +27 −0
  1641. arch/arm/plat-samsung/include/plat/s3c2410.h +0 −2
  1642. arch/arm/plat-samsung/include/plat/s3c2443.h +0 −20
  1643. arch/arm/plat-samsung/include/plat/s5p-clock.h +6 −0
  1644. arch/arm/plat-samsung/include/plat/sdhci.h +2 −0
  1645. arch/arm/plat-samsung/include/plat/udc-hs.h +5 −0
  1646. arch/arm/plat-samsung/include/plat/uncompress.h +2 −0
  1647. arch/arm/plat-samsung/irq-vic-timer.c +16 −0
  1648. arch/arm/plat-samsung/platformdata.c +2 −0
  1649. arch/arm/plat-samsung/time.c +0 −1
  1650. arch/arm/plat-spear/include/plat/hardware.h +0 −6
  1651. arch/arm/plat-spear/include/plat/io.h +0 −22
  1652. arch/arm/plat-spear/include/plat/keyboard.h +0 −7
  1653. arch/arm/plat-spear/include/plat/system.h +0 −26
  1654. arch/arm/plat-spear/restart.c +1 −0
  1655. arch/arm/plat-versatile/Kconfig +1 −2
  1656. arch/arm/plat-versatile/Makefile +0 −1
  1657. arch/arm/plat-versatile/localtimer.c +0 −27
  1658. arch/arm/vfp/vfpmodule.c +2 −0
  1659. arch/avr32/boards/atngw100/setup.c +1 −0
  1660. arch/avr32/boards/atstk1000/atstk1002.c +1 −0
  1661. arch/avr32/boot/images/Makefile +3 −6
  1662. arch/avr32/include/asm/atomic.h +1 −1
  1663. arch/avr32/include/asm/barrier.h +29 −0
  1664. arch/avr32/include/asm/bitops.h +0 −1
  1665. arch/avr32/include/asm/bug.h +5 −0
  1666. arch/avr32/include/asm/cmpxchg.h +9 −70
  1667. arch/avr32/include/asm/exec.h +7 −7
  1668. arch/avr32/include/asm/io.h +1 −0
  1669. arch/avr32/include/asm/posix_types.h +11 −96
  1670. arch/avr32/include/asm/switch_to.h +46 −0
  1671. arch/avr32/mach-at32ap/at32ap700x.c +0 −15
  1672. arch/avr32/mach-at32ap/cpufreq.c +0 −1
  1673. arch/avr32/mach-at32ap/include/mach/atmel-mci.h +0 −7
  1674. arch/avr32/mach-at32ap/include/mach/board.h +1 −12
  1675. arch/avr32/mach-at32ap/include/mach/cpu.h +0 −3
  1676. arch/avr32/oprofile/op_model_avr32.c +0 −1
  1677. arch/blackfin/Kconfig +1 −1
  1678. arch/blackfin/boot/Makefile +8 −11
  1679. arch/blackfin/configs/BF527-EZKIT_defconfig +1 −0
  1680. arch/blackfin/include/asm/cmpxchg.h +2 −1
  1681. arch/blackfin/include/asm/gpio.h +12 −2
  1682. arch/blackfin/include/asm/system.h +0 −5
  1683. arch/blackfin/kernel/setup.c +4 −3
  1684. arch/c6x/Kconfig +1 −1
  1685. arch/c6x/include/asm/Kbuild +0 −1
  1686. arch/c6x/include/asm/barrier.h +27 −0
  1687. arch/c6x/include/asm/bitops.h +0 −1
  1688. arch/c6x/include/asm/bug.h +23 −0
  1689. arch/c6x/include/asm/cmpxchg.h +68 −0
  1690. arch/c6x/include/asm/exec.h +6 −0
  1691. arch/c6x/include/asm/irq.h +0 −4
  1692. arch/c6x/include/asm/processor.h +9 −0
  1693. arch/c6x/include/asm/setup.h +1 −0
  1694. arch/c6x/include/asm/special_insns.h +63 −0
  1695. arch/c6x/include/asm/switch_to.h +33 −0
  1696. arch/c6x/include/asm/system.h +0 −168
  1697. arch/c6x/kernel/irq.c +1 −13
  1698. arch/c6x/kernel/setup.c +1 −0
  1699. arch/c6x/kernel/signal.c +3 −13
  1700. arch/c6x/kernel/soc.c +0 −1
  1701. arch/c6x/kernel/time.c +1 −0
  1702. arch/c6x/kernel/traps.c +1 −0
  1703. arch/c6x/platforms/timer64.c +1 −0
  1704. arch/cris/arch-v10/drivers/ds1302.c +0 −1
  1705. arch/cris/arch-v10/drivers/gpio.c +0 −1
  1706. arch/cris/arch-v10/drivers/i2c.c +0 −1
  1707. arch/cris/arch-v10/drivers/pcf8563.c +0 −1
  1708. arch/cris/arch-v10/drivers/sync_serial.c +0 −1
  1709. arch/cris/arch-v10/kernel/debugport.c +0 −1
  1710. arch/cris/arch-v10/kernel/dma.c +1 −0
  1711. arch/cris/arch-v10/kernel/io_interface_mux.c +1 −0
  1712. arch/cris/arch-v10/kernel/process.c +1 −0
  1713. arch/cris/arch-v10/kernel/ptrace.c +0 −1
  1714. arch/cris/arch-v10/kernel/setup.c +1 −0
  1715. arch/cris/arch-v10/kernel/signal.c +1 −0
  1716. arch/cris/arch-v10/kernel/traps.c +1 −0
  1717. arch/cris/arch-v32/drivers/i2c.c +0 −1
  1718. arch/cris/arch-v32/drivers/mach-a3/gpio.c +0 −1
  1719. arch/cris/arch-v32/drivers/mach-fs/gpio.c +0 −1
  1720. arch/cris/arch-v32/kernel/debugport.c +0 −1
  1721. arch/cris/arch-v32/kernel/fasttimer.c +0 −1
  1722. arch/cris/arch-v32/kernel/ptrace.c +0 −1
  1723. arch/cris/arch-v32/mach-a3/dma.c +0 −1
  1724. arch/cris/arch-v32/mach-fs/dma.c +0 −1
  1725. arch/cris/include/arch-v10/arch/elf.h +2 −0
  1726. arch/cris/include/arch-v32/arch/elf.h +2 −0
  1727. arch/cris/include/arch-v32/arch/system.h +0 −10
  1728. arch/cris/include/asm/atomic.h +1 −1
  1729. arch/cris/include/asm/barrier.h +25 −0
  1730. arch/cris/include/asm/bitops.h +0 −1
  1731. arch/cris/include/asm/cmpxchg.h +8 −44
  1732. arch/cris/include/asm/exec.h +6 −0
  1733. arch/cris/include/asm/posix_types.h +10 −40
  1734. arch/cris/include/asm/processor.h +10 −1
  1735. arch/cris/include/asm/switch_to.h +12 −0
  1736. arch/cris/kernel/irq.c +1 −0
  1737. arch/cris/kernel/process.c +0 −1
  1738. arch/cris/kernel/ptrace.c +0 −1
  1739. arch/cris/kernel/setup.c +1 −0
  1740. arch/cris/kernel/traps.c +1 −0
  1741. arch/cris/mm/fault.c +1 −0
  1742. arch/frv/include/asm/atomic.h +1 −56
  1743. arch/frv/include/asm/barrier.h +29 −0
  1744. arch/frv/include/asm/bug.h +2 −0
  1745. arch/frv/include/asm/cmpxchg.h +56 −42
  1746. arch/frv/include/asm/exec.h +17 −0
  1747. arch/frv/include/asm/posix_types.h +10 −43
  1748. arch/frv/include/asm/switch_to.h +35 −0
  1749. arch/frv/kernel/debug-stub.c +0 −1
  1750. arch/frv/kernel/gdb-io.c +0 −1
  1751. arch/frv/kernel/gdb-stub.c +0 −1
  1752. arch/frv/kernel/irq-mb93091.c +0 −1
  1753. arch/frv/kernel/irq-mb93093.c +0 −1
  1754. arch/frv/kernel/irq-mb93493.c +0 −1
  1755. arch/frv/kernel/irq.c +0 −1
  1756. arch/frv/kernel/process.c +0 −1
  1757. arch/frv/kernel/ptrace.c +0 −1
  1758. arch/frv/kernel/traps.c +0 −1
  1759. arch/frv/mb93090-mb00/pci-dma.c +1 −0
  1760. arch/frv/mm/fault.c +0 −1
  1761. arch/frv/mm/init.c +0 −1
  1762. arch/frv/mm/kmap.c +0 −1
  1763. arch/h8300/include/asm/atomic.h +1 −3
  1764. arch/h8300/include/asm/barrier.h +27 −0
  1765. arch/h8300/include/asm/bitops.h +0 −1
  1766. arch/h8300/include/asm/bug.h +4 −0
  1767. arch/h8300/include/asm/cmpxchg.h +60 −0
  1768. arch/h8300/include/asm/exec.h +6 −0
  1769. arch/h8300/include/asm/posix_types.h +9 −40
  1770. arch/h8300/include/asm/processor.h +5 −0
  1771. arch/h8300/include/asm/switch_to.h +50 −0
  1772. arch/h8300/include/asm/system.h +0 −140
  1773. arch/h8300/kernel/irq.c +0 −1
  1774. arch/h8300/kernel/process.c +0 −1
  1775. arch/h8300/kernel/ptrace.c +0 −1
  1776. arch/h8300/kernel/traps.c +0 −1
  1777. arch/h8300/mm/fault.c +0 −1
  1778. arch/h8300/mm/init.c +0 −1
  1779. arch/h8300/mm/kmap.c +0 −1
  1780. arch/h8300/mm/memory.c +0 −1
  1781. arch/hexagon/include/asm/atomic.h +1 −0
  1782. arch/hexagon/include/asm/barrier.h +41 −0
  1783. arch/hexagon/include/asm/bitops.h +0 −1
  1784. arch/hexagon/include/asm/cmpxchg.h +5 −41
  1785. arch/hexagon/include/asm/dma-mapping.h +12 −6
  1786. arch/hexagon/include/asm/exec.h +12 −12
  1787. arch/hexagon/include/asm/switch_to.h +34 −0
  1788. arch/hexagon/kernel/dma.c +5 −4
  1789. arch/hexagon/kernel/ptrace.c +0 −1
  1790. arch/hexagon/kernel/signal.c +2 −10
  1791. arch/hexagon/kernel/smp.c +4 −5
  1792. arch/hexagon/kernel/vdso.c +1 −2
  1793. arch/hexagon/kernel/vm_events.c +0 −1
  1794. arch/ia64/dig/setup.c +1 −1
  1795. arch/ia64/hp/common/sba_iommu.c +6 −6
  1796. arch/ia64/hp/sim/boot/bootloader.c +0 −1
  1797. arch/ia64/hp/sim/boot/fw-emu.c +1 −0
  1798. arch/ia64/hp/sim/simeth.c +0 −1
  1799. arch/ia64/include/asm/acpi.h +0 −1
  1800. arch/ia64/include/asm/atomic.h +0 −1
  1801. arch/ia64/include/asm/auxvec.h +2 −0
  1802. arch/ia64/include/asm/barrier.h +68 −0
  1803. arch/ia64/include/asm/cmpxchg.h +147 −0
  1804. arch/ia64/include/asm/dma-mapping.h +12 −6
  1805. arch/ia64/include/asm/exec.h +14 −0
  1806. arch/ia64/include/asm/futex.h +0 −1
  1807. arch/ia64/include/asm/intrinsics.h +1 −113
  1808. arch/ia64/include/asm/io.h +0 −1
  1809. arch/ia64/include/asm/irqflags.h +2 −0
  1810. arch/ia64/include/asm/kexec.h +1 −0
  1811. arch/ia64/include/asm/kvm.h +4 −0
  1812. arch/ia64/include/asm/kvm_host.h +3 −0
  1813. arch/ia64/include/asm/mca_asm.h +2 −0
  1814. arch/ia64/include/asm/page.h +10 −0
  1815. arch/ia64/include/asm/pci.h +8 −6
  1816. arch/ia64/include/asm/pgtable.h +0 −1
  1817. arch/ia64/include/asm/posix_types.h +3 −118
  1818. arch/ia64/include/asm/processor.h +8 −0
  1819. arch/ia64/include/asm/sal.h +0 −1
  1820. arch/ia64/include/asm/setup.h +18 −0
  1821. arch/ia64/include/asm/sn/pda.h +0 −1
  1822. arch/ia64/include/asm/spinlock.h +0 −1
  1823. arch/ia64/include/asm/switch_to.h +87 −0
  1824. arch/ia64/include/asm/system.h +0 −203
  1825. arch/ia64/include/asm/uv/uv.h +0 −1
  1826. arch/ia64/kernel/acpi.c +8 −9
  1827. arch/ia64/kernel/asm-offsets.c +2 −2
  1828. arch/ia64/kernel/efi.c +1 −0
  1829. arch/ia64/kernel/fsys.S +1 −2
  1830. arch/ia64/kernel/fsyscall_gtod_data.h +1 −1
  1831. arch/ia64/kernel/gate.S +2 −1
  1832. arch/ia64/kernel/gate.lds.S +1 −2
  1833. arch/ia64/kernel/head.S +0 −1
  1834. arch/ia64/kernel/iosapic.c +0 −1
  1835. arch/ia64/kernel/irq_ia64.c +4 −5
  1836. arch/ia64/kernel/ivt.S +0 −1
  1837. arch/ia64/kernel/machine_kexec.c +1 −1
  1838. arch/ia64/kernel/machvec.c +0 −1
  1839. arch/ia64/kernel/mca.c +6 −3
  1840. arch/ia64/kernel/mca_drv.c +0 −1
  1841. arch/ia64/kernel/msi_ia64.c +2 −2
  1842. arch/ia64/kernel/patch.c +0 −1
  1843. arch/ia64/kernel/pci-dma.c +0 −1
  1844. arch/ia64/kernel/pci-swiotlb.c +11 −3
  1845. arch/ia64/kernel/perfmon.c +0 −1
  1846. arch/ia64/kernel/process.c +1 −0
  1847. arch/ia64/kernel/ptrace.c +0 −1
  1848. arch/ia64/kernel/setup.c +1 −2
  1849. arch/ia64/kernel/smp.c +1 −2
  1850. arch/ia64/kernel/smpboot.c +7 −13
  1851. arch/ia64/kernel/time.c +3 −8
  1852. arch/ia64/kernel/topology.c +2 −1
  1853. arch/ia64/kernel/traps.c +1 −0
  1854. arch/ia64/kernel/uncached.c +0 −1
  1855. arch/ia64/kernel/unwind.c +0 −1
  1856. arch/ia64/kernel/vmlinux.lds.S +0 −1
  1857. arch/ia64/kvm/kvm-ia64.c +24 −1
  1858. arch/ia64/mm/fault.c +0 −1
  1859. arch/ia64/mm/init.c +0 −1
  1860. arch/ia64/oprofile/backtrace.c +0 −1
  1861. arch/ia64/pci/pci.c +2 −54
  1862. arch/ia64/sn/kernel/huberror.c +2 −0
  1863. arch/ia64/sn/kernel/io_common.c +1 −0
  1864. arch/ia64/sn/kernel/io_init.c +11 −5
  1865. arch/ia64/sn/kernel/irq.c +2 −0
  1866. arch/ia64/sn/kernel/setup.c +1 −1
  1867. arch/ia64/sn/kernel/sn2/prominfo_proc.c +0 −1
  1868. arch/ia64/sn/kernel/sn2/sn2_smp.c +0 −1
  1869. arch/ia64/sn/kernel/sn2/sn_hwperf.c +1 −0
  1870. arch/ia64/sn/kernel/sn2/timer.c +0 −1
  1871. arch/ia64/sn/kernel/tiocx.c +6 −2
  1872. arch/ia64/sn/pci/pci_dma.c +5 −4
  1873. arch/ia64/sn/pci/pcibr/pcibr_provider.c +1 −0
  1874. arch/ia64/sn/pci/tioca_provider.c +1 −0
  1875. arch/ia64/sn/pci/tioce_provider.c +1 −0
  1876. arch/ia64/xen/xensetup.S +0 −1
  1877. arch/m32r/include/asm/atomic.h +2 −1
  1878. arch/m32r/include/asm/barrier.h +94 −0
  1879. arch/m32r/include/asm/bitops.h +2 −1
  1880. arch/m32r/include/asm/cmpxchg.h +221 −0
  1881. arch/m32r/include/asm/dcache_clear.h +29 −0
  1882. arch/m32r/include/asm/exec.h +14 −0
  1883. arch/m32r/include/asm/local.h +0 −1
  1884. arch/m32r/include/asm/posix_types.h +9 −99
  1885. arch/m32r/include/asm/spinlock.h +1 −0
  1886. arch/m32r/include/asm/switch_to.h +51 −0
  1887. arch/m32r/include/asm/system.h +0 −367
  1888. arch/m32r/kernel/ptrace.c +0 −1
  1889. arch/m32r/kernel/traps.c +0 −1
  1890. arch/m32r/mm/fault-nommu.c +0 −1
  1891. arch/m32r/mm/fault.c +0 −1
  1892. arch/m32r/platforms/m32104ut/setup.c +0 −1
  1893. arch/m32r/platforms/m32700ut/setup.c +0 −1
  1894. arch/m32r/platforms/mappi/setup.c +0 −1
  1895. arch/m32r/platforms/mappi2/setup.c +0 −1
  1896. arch/m32r/platforms/mappi3/setup.c +0 −1
  1897. arch/m32r/platforms/oaks32r/setup.c +0 −1
  1898. arch/m32r/platforms/opsput/setup.c +0 −1
  1899. arch/m32r/platforms/usrv/setup.c +0 −1
  1900. arch/m68k/amiga/amisound.c +0 −1
  1901. arch/m68k/amiga/config.c +0 −1
  1902. arch/m68k/apollo/config.c +0 −1
  1903. arch/m68k/atari/ataints.c +0 −1
  1904. arch/m68k/atari/atasound.c +0 −1
  1905. arch/m68k/atari/config.c +0 −1
  1906. arch/m68k/bvme6000/config.c +0 −1
  1907. arch/m68k/bvme6000/rtc.c +0 −1
  1908. arch/m68k/hp300/time.c +0 −1
  1909. arch/m68k/include/asm/atomic.h +2 −1
  1910. arch/m68k/include/asm/barrier.h +20 −0
  1911. arch/m68k/include/asm/cmpxchg.h +21 −73
  1912. arch/m68k/include/asm/exec.h +6 −0
  1913. arch/m68k/include/asm/posix_types.h +10 −43
  1914. arch/m68k/include/asm/sun3xflop.h +0 −1
  1915. arch/m68k/include/asm/switch_to.h +41 −0
  1916. arch/m68k/kernel/ints.c +0 −1
  1917. arch/m68k/kernel/irq.c +0 −1
  1918. arch/m68k/kernel/process.c +0 −1
  1919. arch/m68k/kernel/ptrace.c +0 −1
  1920. arch/m68k/kernel/traps.c +0 −1
  1921. arch/m68k/kernel/vectors.c +0 −1
  1922. arch/m68k/mac/config.c +3 −1
  1923. arch/m68k/mac/misc.c +0 −1
  1924. arch/m68k/mm/fault.c +0 −1
  1925. arch/m68k/mm/init_mm.c +0 −1
  1926. arch/m68k/mm/init_no.c +0 −1
  1927. arch/m68k/mm/kmap.c +0 −1
  1928. arch/m68k/mm/memory.c +0 −1
  1929. arch/m68k/mm/motorola.c +0 −1
  1930. arch/m68k/mm/sun3mmu.c +0 −1
  1931. arch/m68k/mvme147/config.c +0 −1
  1932. arch/m68k/mvme16x/config.c +0 −1
  1933. arch/m68k/mvme16x/rtc.c +0 −1
  1934. arch/m68k/platform/68328/config.c +0 −1
  1935. arch/m68k/platform/68328/timers.c +0 −1
  1936. arch/m68k/platform/68360/config.c +0 −1
  1937. arch/m68k/platform/68EZ328/config.c +0 −1
  1938. arch/m68k/platform/68VZ328/config.c +0 −1
  1939. arch/m68k/q40/config.c +3 −1
  1940. arch/m68k/q40/q40ints.c +0 −1
  1941. arch/m68k/sun3/intersil.c +0 −1
  1942. arch/m68k/sun3/mmu_emu.c +0 −1
  1943. arch/m68k/sun3/prom/console.c +0 −1
  1944. arch/m68k/sun3x/config.c +0 −1
  1945. arch/m68k/sun3x/time.c +0 −1
  1946. arch/microblaze/Kconfig +21 −12
  1947. arch/microblaze/boot/Makefile +4 −8
  1948. arch/microblaze/include/asm/atomic.h +1 −0
  1949. arch/microblaze/include/asm/barrier.h +27 −0
  1950. arch/microblaze/include/asm/cmpxchg.h +42 −0
  1951. arch/microblaze/include/asm/dma-mapping.h +12 −6
  1952. arch/microblaze/include/asm/exec.h +14 −0
  1953. arch/microblaze/include/asm/fixmap.h +109 −0
  1954. arch/microblaze/include/asm/futex.h +1 −1
  1955. arch/microblaze/include/asm/highmem.h +96 −0
  1956. arch/microblaze/include/asm/mmu.h +12 −0
  1957. arch/microblaze/include/asm/page.h +3 −1
  1958. arch/microblaze/include/asm/pci-bridge.h +0 −1
  1959. arch/microblaze/include/asm/pci.h +0 −8
  1960. arch/microblaze/include/asm/pgtable.h +1 −2
  1961. arch/microblaze/include/asm/processor.h +10 −1
  1962. arch/microblaze/include/asm/setup.h +8 −1
  1963. arch/microblaze/include/asm/switch_to.h +24 −0
  1964. arch/microblaze/include/asm/system.h +0 −97
  1965. arch/microblaze/include/asm/uaccess.h +1 −1
  1966. arch/microblaze/kernel/cpu/cpuinfo.c +2 −0
  1967. arch/microblaze/kernel/cpu/pvr.c +0 −1
  1968. arch/microblaze/kernel/dma.c +6 −4
  1969. arch/microblaze/kernel/early_printk.c +17 −1
  1970. arch/microblaze/kernel/head.S +114 −15
  1971. arch/microblaze/kernel/hw_exception_handler.S +10 −3
  1972. arch/microblaze/kernel/intc.c +2 −2
  1973. arch/microblaze/kernel/microblaze_ksyms.c +0 −1
  1974. arch/microblaze/kernel/misc.S +9 −4
  1975. arch/microblaze/kernel/process.c +0 −1
  1976. arch/microblaze/kernel/prom.c +0 −1
  1977. arch/microblaze/kernel/setup.c +25 −2
  1978. arch/microblaze/kernel/timer.c +3 −4
  1979. arch/microblaze/kernel/traps.c +0 −1
  1980. arch/microblaze/kernel/unwind.c +1 −0
  1981. arch/microblaze/kernel/vmlinux.lds.S +1 −1
  1982. arch/microblaze/lib/memcpy.c +0 −1
  1983. arch/microblaze/lib/uaccess_old.S +62 −36
  1984. arch/microblaze/mm/Makefile +1 −0
  1985. arch/microblaze/mm/fault.c +0 −1
  1986. arch/microblaze/mm/highmem.c +88 −0
  1987. arch/microblaze/mm/init.c +184 −40
  1988. arch/microblaze/mm/pgtable.c +13 −7
  1989. arch/microblaze/pci/pci-common.c +12 −105
  1990. arch/mips/Kconfig +1 −0
  1991. arch/mips/cavium-octeon/dma-octeon.c +6 −6
  1992. arch/mips/cavium-octeon/flash_setup.c +1 −1
  1993. arch/mips/cavium-octeon/setup.c +0 −1
  1994. arch/mips/cavium-octeon/smp.c +3 −3
  1995. arch/mips/configs/db1300_defconfig +1 −1
  1996. arch/mips/dec/ecc-berr.c +0 −1
  1997. arch/mips/dec/kn01-berr.c +0 −1
  1998. arch/mips/dec/kn02xa-berr.c +0 −1
  1999. arch/mips/dec/wbflush.c +1 −1
  2000. arch/mips/emma/markeins/irq.c +0 −1
  2001. arch/mips/fw/arc/cmdline.c +1 −0
  2002. arch/mips/fw/arc/identify.c +1 −0
  2003. arch/mips/fw/arc/misc.c +0 −1
  2004. arch/mips/include/asm/atomic.h +1 −1
  2005. arch/mips/include/asm/barrier.h +2 −0
  2006. arch/mips/include/asm/cmpxchg.h +124 −0
  2007. arch/mips/include/asm/dma-mapping.h +12 −6
  2008. arch/mips/include/asm/dma.h +0 −1
  2009. arch/mips/include/asm/exec.h +17 −0
  2010. arch/mips/include/asm/mach-au1x00/au1000_dma.h +0 −1
  2011. arch/mips/include/asm/mman.h +4 −0
  2012. arch/mips/include/asm/pci.h +1 −8
  2013. arch/mips/include/asm/posix_types.h +7 −114
  2014. arch/mips/include/asm/processor.h +6 −1
  2015. arch/mips/include/asm/setup.h +11 −0
  2016. arch/mips/include/asm/switch_to.h +85 −0
  2017. arch/mips/include/asm/system.h +0 −235
  2018. arch/mips/include/asm/txx9/jmr3927.h +0 −1
  2019. arch/mips/kernel/cpu-bugs64.c +1 −1
  2020. arch/mips/kernel/cpu-probe.c +0 −1
  2021. arch/mips/kernel/irq-rm7000.c +0 −1
  2022. arch/mips/kernel/irq-rm9000.c +0 −1
  2023. arch/mips/kernel/irq.c +0 −1
  2024. arch/mips/kernel/irq_cpu.c +0 −1
  2025. arch/mips/kernel/kspd.c +1 −1
  2026. arch/mips/kernel/mips-mt-fpaff.c +1 −1
  2027. arch/mips/kernel/mips-mt.c +0 −1
  2028. arch/mips/kernel/proc.c +1 −1
  2029. arch/mips/kernel/process.c +0 −1
  2030. arch/mips/kernel/ptrace.c +0 −1
  2031. arch/mips/kernel/ptrace32.c +0 −1
  2032. arch/mips/kernel/rtlx.c +0 −1
  2033. arch/mips/kernel/setup.c +0 −1
  2034. arch/mips/kernel/signal.c +1 −0
  2035. arch/mips/kernel/signal32.c +1 −1
  2036. arch/mips/kernel/signal_n32.c +0 −1
  2037. arch/mips/kernel/smp-bmips.c +1 −2
  2038. arch/mips/kernel/smp-cmp.c +0 −1
  2039. arch/mips/kernel/smp-mt.c +0 −1
  2040. arch/mips/kernel/smp.c +13 −16
  2041. arch/mips/kernel/smtc-proc.c +0 −1
  2042. arch/mips/kernel/smtc.c +1 −2
  2043. arch/mips/kernel/spram.c +0 −1
  2044. arch/mips/kernel/syscall.c +1 −0
  2045. arch/mips/kernel/traps.c +0 −1
  2046. arch/mips/kernel/unaligned.c +0 −1
  2047. arch/mips/kernel/vdso.c +1 −2
  2048. arch/mips/kernel/vpe.c +0 −1
  2049. arch/mips/lasat/reset.c +0 −1
  2050. arch/mips/math-emu/dsemul.c +0 −1
  2051. arch/mips/mipssim/sim_smtc.c +0 −1
  2052. arch/mips/mipssim/sim_time.c +1 −0
  2053. arch/mips/mm/c-octeon.c +3 −4
  2054. arch/mips/mm/c-r3k.c +0 −1
  2055. arch/mips/mm/c-r4k.c +0 −1
  2056. arch/mips/mm/c-tx39.c +0 −1
  2057. arch/mips/mm/dma-default.c +4 −4
  2058. arch/mips/mm/fault.c +0 −1
  2059. arch/mips/mm/page.c +0 −1
  2060. arch/mips/mm/sc-ip22.c +0 −1
  2061. arch/mips/mm/sc-mips.c +0 −1
  2062. arch/mips/mm/sc-r5k.c +0 −1
  2063. arch/mips/mm/tlb-r3k.c +0 −1
  2064. arch/mips/mm/tlb-r4k.c +0 −1
  2065. arch/mips/mm/tlb-r8k.c +0 −1
  2066. arch/mips/mm/tlbex.c +1 −0
  2067. arch/mips/mti-malta/malta-init.c +0 −1
  2068. arch/mips/mti-malta/malta-int.c +1 −0
  2069. arch/mips/mti-malta/malta-time.c +1 −0
  2070. arch/mips/netlogic/common/irq.c +0 −1
  2071. arch/mips/netlogic/common/smp.c +3 −3
  2072. arch/mips/pci/fixup-cobalt.c +0 −61
  2073. arch/mips/pci/pci-bcm1480.c +1 −1
  2074. arch/mips/pci/pci-ip27.c +1 −1
  2075. arch/mips/pci/pci-lantiq.c +2 −1
  2076. arch/mips/pci/pci-sb1250.c +1 −1
  2077. arch/mips/pci/pci-xlr.c +1 −1
  2078. arch/mips/pci/pci.c +9 −77
  2079. arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c +0 −1
  2080. arch/mips/pmc-sierra/msp71xx/msp_irq_per.c +0 −1
  2081. arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c +0 −1
  2082. arch/mips/pmc-sierra/yosemite/irq.c +0 −1
  2083. arch/mips/pmc-sierra/yosemite/prom.c +0 −1
  2084. arch/mips/pmc-sierra/yosemite/smp.c +4 −4
  2085. arch/mips/pnx833x/common/interrupts.c +1 −0
  2086. arch/mips/powertv/asic/asic_int.c +1 −0
  2087. arch/mips/powertv/asic/irq_asic.c +0 −1
  2088. arch/mips/powertv/init.c +0 −1
  2089. arch/mips/rb532/irq.c +0 −1
  2090. arch/mips/sgi-ip22/ip22-berr.c +0 −1
  2091. arch/mips/sgi-ip22/ip22-reset.c +0 −1
  2092. arch/mips/sgi-ip22/ip28-berr.c +0 −1
  2093. arch/mips/sgi-ip27/ip27-irq.c +0 −1
  2094. arch/mips/sgi-ip27/ip27-reset.c +0 −1
  2095. arch/mips/sgi-ip27/ip27-smp.c +1 −1
  2096. arch/mips/sgi-ip32/ip32-irq.c +0 −1
  2097. arch/mips/sgi-ip32/ip32-reset.c +0 −1
  2098. arch/mips/sibyte/bcm1480/irq.c +0 −1
  2099. arch/mips/sibyte/bcm1480/smp.c +3 −4
  2100. arch/mips/sibyte/common/sb_tbprof.c +0 −1
  2101. arch/mips/sibyte/sb1250/bus_watcher.c +0 −1
  2102. arch/mips/sibyte/sb1250/irq.c +0 −1
  2103. arch/mips/sibyte/sb1250/smp.c +3 −4
  2104. arch/mips/sni/reset.c +0 −1
  2105. arch/mips/vr41xx/common/irq.c +0 −1
  2106. arch/mips/vr41xx/common/pmu.c +0 −1
  2107. arch/mn10300/include/asm/atomic.h +3 −106
  2108. arch/mn10300/include/asm/barrier.h +37 −0
  2109. arch/mn10300/include/asm/cmpxchg.h +115 −0
  2110. arch/mn10300/include/asm/dma.h +0 −1
  2111. arch/mn10300/include/asm/exec.h +16 −0
  2112. arch/mn10300/include/asm/pci.h +0 −16
  2113. arch/mn10300/include/asm/posix_types.h +11 −100
  2114. arch/mn10300/include/asm/switch_to.h +49 −0
  2115. arch/mn10300/include/asm/system.h +0 −102
  2116. arch/mn10300/kernel/entry.S +0 −1
  2117. arch/mn10300/kernel/fpu.c +0 −1
  2118. arch/mn10300/kernel/gdb-io-serial.c +0 −1
  2119. arch/mn10300/kernel/gdb-io-ttysm.c +0 −1
  2120. arch/mn10300/kernel/gdb-stub.c +0 −1
  2121. arch/mn10300/kernel/mn10300-serial.c +0 −1
  2122. arch/mn10300/kernel/mn10300-watchdog.c +0 −1
  2123. arch/mn10300/kernel/process.c +0 −1
  2124. arch/mn10300/kernel/ptrace.c +0 −1
  2125. arch/mn10300/kernel/setup.c +0 −1
  2126. arch/mn10300/kernel/smp-low.S +1 −1
  2127. arch/mn10300/kernel/smp.c +0 −1
  2128. arch/mn10300/kernel/traps.c +0 −1
  2129. arch/mn10300/lib/bitops.c +0 −1
  2130. arch/mn10300/mm/fault.c +0 −1
  2131. arch/mn10300/mm/init.c +0 −1
  2132. arch/mn10300/mm/misalignment.c +0 −1
  2133. arch/mn10300/mm/pgtable.c +0 −1
  2134. arch/mn10300/mm/tlb-smp.c +0 −1
  2135. arch/mn10300/proc-mn2ws0050/proc-init.c +0 −1
  2136. arch/mn10300/unit-asb2305/pci.c +9 −53
  2137. arch/openrisc/Kconfig +1 −0
  2138. arch/openrisc/include/asm/Kbuild +3 −0
  2139. arch/openrisc/include/asm/page.h +1 −5
  2140. arch/openrisc/include/asm/processor.h +2 −2
  2141. arch/openrisc/include/asm/ptrace.h +5 −1
  2142. arch/openrisc/include/asm/syscall.h +2 −5
  2143. arch/openrisc/include/asm/system.h +0 −35
  2144. arch/openrisc/include/asm/uaccess.h +0 −1
  2145. arch/openrisc/kernel/entry.S +8 −8
  2146. arch/openrisc/kernel/head.S +16 −1
  2147. arch/openrisc/kernel/idle.c +0 −1
  2148. arch/openrisc/kernel/process.c +0 −1
  2149. arch/openrisc/kernel/prom.c +0 −1
  2150. arch/openrisc/kernel/ptrace.c +2 −3
  2151. arch/openrisc/kernel/setup.c +9 −10
  2152. arch/openrisc/kernel/signal.c +20 −27
  2153. arch/openrisc/kernel/time.c +5 −8
  2154. arch/openrisc/kernel/traps.c +5 −5
  2155. arch/openrisc/mm/init.c +1 −3
  2156. arch/openrisc/mm/tlb.c +0 −1
  2157. arch/parisc/include/asm/atomic.h +1 −107
  2158. arch/parisc/include/asm/barrier.h +35 −0
  2159. arch/parisc/include/asm/cmpxchg.h +116 −0
  2160. arch/parisc/include/asm/delay.h +1 −1
  2161. arch/parisc/include/asm/dma.h +0 −1
  2162. arch/parisc/include/asm/exec.h +6 −0
  2163. arch/parisc/include/asm/futex.h +27 −4
  2164. arch/parisc/include/asm/ldcw.h +48 −0
  2165. arch/parisc/include/asm/mman.h +4 −0
  2166. arch/parisc/include/asm/pci.h +0 −38
  2167. arch/parisc/include/asm/posix_types.h +9 −110
  2168. arch/parisc/include/asm/processor.h +1 −1
  2169. arch/parisc/include/asm/psw.h +41 −0
  2170. arch/parisc/include/asm/special_insns.h +40 −0
  2171. arch/parisc/include/asm/spinlock.h +0 −1
  2172. arch/parisc/include/asm/switch_to.h +12 −0
  2173. arch/parisc/include/asm/system.h +0 −165
  2174. arch/parisc/include/asm/thread_info.h +1 −0
  2175. arch/parisc/include/asm/timex.h +0 −1
  2176. arch/parisc/include/asm/uaccess.h +0 −1
  2177. arch/parisc/kernel/cache.c +0 −1
  2178. arch/parisc/kernel/firmware.c +0 −1
  2179. arch/parisc/kernel/pci.c +0 −53
  2180. arch/parisc/kernel/ptrace.c +0 −1
  2181. arch/parisc/kernel/smp.c +1 −3
  2182. arch/parisc/kernel/traps.c +0 −1
  2183. arch/parisc/lib/bitops.c +0 −1
  2184. arch/parisc/math-emu/fpudispatch.c +1 −0
  2185. arch/powerpc/Kconfig +1 −1
  2186. arch/powerpc/Kconfig.debug +0 −10
  2187. arch/powerpc/boot/.gitignore +0 −1
  2188. arch/powerpc/boot/dts/p1020mbg-pc.dtsi +151 −0
  2189. arch/powerpc/boot/dts/p1020mbg-pc_32b.dts +89 −0
  2190. arch/powerpc/boot/dts/p1020mbg-pc_36b.dts +89 −0
  2191. arch/powerpc/boot/dts/p1020utm-pc.dtsi +140 −0
  2192. arch/powerpc/boot/dts/p1020utm-pc_32b.dts +89 −0
  2193. arch/powerpc/boot/dts/p1020utm-pc_36b.dts +89 −0
  2194. arch/powerpc/boot/dts/p2041rdb.dts +0 −3
  2195. arch/powerpc/boot/dts/p3041ds.dts +0 −4
  2196. arch/powerpc/boot/dts/p3060qds.dts +0 −2
  2197. arch/powerpc/boot/dts/p4080ds.dts +0 −3
  2198. arch/powerpc/boot/dts/p5020ds.dts +0 −4
  2199. arch/powerpc/configs/85xx/p1023rds_defconfig +1 −1
  2200. arch/powerpc/configs/chroma_defconfig +1 −1
  2201. arch/powerpc/configs/corenet32_smp_defconfig +1 −0
  2202. arch/powerpc/configs/corenet64_smp_defconfig +3 −1
  2203. arch/powerpc/configs/mpc85xx_defconfig +2 −1
  2204. arch/powerpc/configs/mpc85xx_smp_defconfig +2 −1
  2205. arch/powerpc/configs/ppc64_defconfig +1 −1
  2206. arch/powerpc/configs/pseries_defconfig +1 −1
  2207. arch/powerpc/include/asm/atomic.h +2 −6
  2208. arch/powerpc/include/asm/auxvec.h +2 −0
  2209. arch/powerpc/include/asm/barrier.h +68 −0
  2210. arch/powerpc/include/asm/bug.h +11 −0
  2211. arch/powerpc/include/asm/cache.h +16 −0
  2212. arch/powerpc/include/asm/cmpxchg.h +309 −0
  2213. arch/powerpc/include/asm/debug.h +56 −0
  2214. arch/powerpc/include/asm/dma-mapping.h +16 −8
  2215. arch/powerpc/include/asm/dma.h +0 −1
  2216. arch/powerpc/include/asm/epapr_hcalls.h +6 −1
  2217. arch/powerpc/include/asm/exec.h +9 −0
  2218. arch/powerpc/include/asm/fsl_guts.h +5 −21
  2219. arch/powerpc/include/asm/hw_breakpoint.h +1 −1
  2220. arch/powerpc/include/asm/iommu.h +0 −1
  2221. arch/powerpc/include/asm/irq.h +0 −8
  2222. arch/powerpc/include/asm/kvm.h +40 −6
  2223. arch/powerpc/include/asm/kvm_book3s.h +81 −17
  2224. arch/powerpc/include/asm/kvm_book3s_32.h +5 −1
  2225. arch/powerpc/include/asm/kvm_book3s_64.h +179 −1
  2226. arch/powerpc/include/asm/kvm_e500.h +32 −20
  2227. arch/powerpc/include/asm/kvm_host.h +75 −15
  2228. arch/powerpc/include/asm/kvm_para.h +39 −2
  2229. arch/powerpc/include/asm/kvm_ppc.h +18 −7
  2230. arch/powerpc/include/asm/machdep.h +1 −3
  2231. arch/powerpc/include/asm/mmu-book3e.h +4 −2
  2232. arch/powerpc/include/asm/mmu-hash64.h +1 −13
  2233. arch/powerpc/include/asm/pci-bridge.h +8 −8
  2234. arch/powerpc/include/asm/pci.h +1 −8
  2235. arch/powerpc/include/asm/perf_event_server.h +2 −0
  2236. arch/powerpc/include/asm/posix_types.h +9 −109
  2237. arch/powerpc/include/asm/ppc-opcode.h +3 −1
  2238. arch/powerpc/include/asm/ppc-pci.h +0 −2
  2239. arch/powerpc/include/asm/processor.h +30 −0
  2240. arch/powerpc/include/asm/reg.h +5 −0
  2241. arch/powerpc/include/asm/reg_booke.h +5 −0
  2242. arch/powerpc/include/asm/rtas.h +35 −1
  2243. arch/powerpc/include/asm/runlatch.h +45 −0
  2244. arch/powerpc/include/asm/setup.h +23 −1
  2245. arch/powerpc/include/asm/smp.h +0 −1
  2246. arch/powerpc/include/asm/switch_to.h +65 −0
  2247. arch/powerpc/include/asm/system.h +0 −592
  2248. arch/powerpc/include/asm/udbg.h +0 −1
  2249. arch/powerpc/include/asm/vio.h +9 −1
  2250. arch/powerpc/kernel/align.c +1 −1
  2251. arch/powerpc/kernel/asm-offsets.c +12 −4
  2252. arch/powerpc/kernel/cputable.c +1 −0
  2253. arch/powerpc/kernel/crash.c +1 −1
  2254. arch/powerpc/kernel/dma-iommu.c +6 −4
  2255. arch/powerpc/kernel/dma-swiotlb.c +2 −2
  2256. arch/powerpc/kernel/dma.c +6 −4
  2257. arch/powerpc/kernel/entry_32.S +21 −18
  2258. arch/powerpc/kernel/exceptions-64s.S +4 −4
  2259. arch/powerpc/kernel/fadump.c +2 −0
  2260. arch/powerpc/kernel/ibmebus.c +6 −4
  2261. arch/powerpc/kernel/idle.c +1 −1
  2262. arch/powerpc/kernel/irq.c +5 −11
  2263. arch/powerpc/kernel/kgdb.c +1 −0
  2264. arch/powerpc/kernel/kprobes.c +0 −1
  2265. arch/powerpc/kernel/kvm.c +261 −46
  2266. arch/powerpc/kernel/kvm_emul.S +84 −28
  2267. arch/powerpc/kernel/lparcfg.c +0 −1
  2268. arch/powerpc/kernel/pci-common.c +9 −77
  2269. arch/powerpc/kernel/pci_32.c +3 −3
  2270. arch/powerpc/kernel/pci_64.c +1 −6
  2271. arch/powerpc/kernel/pci_of_scan.c +8 −4
  2272. arch/powerpc/kernel/pmc.c +1 −0
  2273. arch/powerpc/kernel/ppc_ksyms.c +1 −1
  2274. arch/powerpc/kernel/process.c +5 −3
  2275. arch/powerpc/kernel/prom.c +0 −1
  2276. arch/powerpc/kernel/prom_init.c +1 −2
  2277. arch/powerpc/kernel/ptrace.c +1 −1
  2278. arch/powerpc/kernel/ptrace32.c +1 −1
  2279. arch/powerpc/kernel/rtas.c +34 −1
  2280. arch/powerpc/kernel/rtas_pci.c +7 −3
  2281. arch/powerpc/kernel/setup-common.c +0 −1
  2282. arch/powerpc/kernel/setup_32.c +0 −1
  2283. arch/powerpc/kernel/setup_64.c +1 −2
  2284. arch/powerpc/kernel/signal.c +1 −0
  2285. arch/powerpc/kernel/signal_32.c +1 −0
  2286. arch/powerpc/kernel/signal_64.c +1 −0
  2287. arch/powerpc/kernel/smp.c +1 −1
  2288. arch/powerpc/kernel/softemu8xx.c +0 −1
  2289. arch/powerpc/kernel/swsusp.c +1 −1
  2290. arch/powerpc/kernel/swsusp_64.c +0 −1
  2291. arch/powerpc/kernel/sys_ppc32.c +1 −0
  2292. arch/powerpc/kernel/sysfs.c +0 −1
  2293. arch/powerpc/kernel/traps.c +2 −1
  2294. arch/powerpc/kernel/udbg.c +0 −3
  2295. arch/powerpc/kernel/vdso.c +4 −11
  2296. arch/powerpc/kernel/vio.c +16 −10
  2297. arch/powerpc/kvm/Kconfig +1 −0
  2298. arch/powerpc/kvm/book3s.c +13 −44
  2299. arch/powerpc/kvm/book3s_32_mmu_host.c +15 −6
  2300. arch/powerpc/kvm/book3s_64_mmu_host.c +43 −23
  2301. arch/powerpc/kvm/book3s_64_mmu_hv.c +881 −38
  2302. arch/powerpc/kvm/book3s_emulate.c +7 −2
  2303. arch/powerpc/kvm/book3s_hv.c +293 −173
  2304. arch/powerpc/kvm/book3s_hv_builtin.c +144 −70
  2305. arch/powerpc/kvm/book3s_hv_interrupts.S +6 −2
  2306. arch/powerpc/kvm/book3s_hv_rm_mmu.c +657 −178
  2307. arch/powerpc/kvm/book3s_hv_rmhandlers.S +154 −22
  2308. arch/powerpc/kvm/book3s_interrupts.S +7 −0
  2309. arch/powerpc/kvm/book3s_paired_singles.c +7 −3
  2310. arch/powerpc/kvm/book3s_pr.c +153 −27
  2311. arch/powerpc/kvm/booke.c +106 −44
  2312. arch/powerpc/kvm/booke.h +4 −0
  2313. arch/powerpc/kvm/booke_emulate.c +14 −9
  2314. arch/powerpc/kvm/booke_interrupts.S +18 −7
  2315. arch/powerpc/kvm/e500.c +16 −16
  2316. arch/powerpc/kvm/e500_emulate.c +23 −15
  2317. arch/powerpc/kvm/e500_tlb.c +545 −230
  2318. arch/powerpc/kvm/e500_tlb.h +29 −51
  2319. arch/powerpc/kvm/emulate.c +32 −29
  2320. arch/powerpc/kvm/powerpc.c +113 −35
  2321. arch/powerpc/kvm/trace.h +61 −1
  2322. arch/powerpc/lib/alloc.c +1 −1
  2323. arch/powerpc/lib/copyuser_power7_vmx.c +1 −0
  2324. arch/powerpc/mm/44x_mmu.c +0 −1
  2325. arch/powerpc/mm/fault.c +1 −1
  2326. arch/powerpc/mm/hash_utils_64.c +0 −1
  2327. arch/powerpc/mm/hugetlbpage.c +4 −1
  2328. arch/powerpc/mm/init_32.c +0 −1
  2329. arch/powerpc/mm/init_64.c +0 −1
  2330. arch/powerpc/mm/numa.c +1 −1
  2331. arch/powerpc/mm/pgtable_32.c +1 −0
  2332. arch/powerpc/mm/pgtable_64.c +0 −1
  2333. arch/powerpc/oprofile/common.c +0 −1
  2334. arch/powerpc/oprofile/op_model_7450.c +0 −1
  2335. arch/powerpc/oprofile/op_model_cell.c +0 −1
  2336. arch/powerpc/oprofile/op_model_fsl_emb.c +0 −1
  2337. arch/powerpc/oprofile/op_model_power4.c +0 −1
  2338. arch/powerpc/oprofile/op_model_rs64.c +0 −1
  2339. arch/powerpc/perf/core-book3s.c +41 −5
  2340. arch/powerpc/perf/power4-pmu.c +1 −0
  2341. arch/powerpc/perf/ppc970-pmu.c +1 −0
  2342. arch/powerpc/platforms/52xx/lite5200_pm.c +1 −0
  2343. arch/powerpc/platforms/52xx/mpc52xx_pci.c +1 −1
  2344. arch/powerpc/platforms/82xx/pq2.c +0 −1
  2345. arch/powerpc/platforms/83xx/km83xx.c +0 −1
  2346. arch/powerpc/platforms/83xx/mpc832x_mds.c +0 −1
  2347. arch/powerpc/platforms/83xx/mpc834x_itx.c +0 −1
  2348. arch/powerpc/platforms/83xx/mpc834x_mds.c +0 −1
  2349. arch/powerpc/platforms/83xx/mpc836x_mds.c +0 −1
  2350. arch/powerpc/platforms/83xx/sbc834x.c +0 −1
  2351. arch/powerpc/platforms/83xx/suspend.c +1 −0
  2352. arch/powerpc/platforms/85xx/corenet_ds.c +0 −1
  2353. arch/powerpc/platforms/85xx/ge_imp3a.c +0 −1
  2354. arch/powerpc/platforms/85xx/ksi8560.c +0 −1
  2355. arch/powerpc/platforms/85xx/mpc8536_ds.c +0 −1
  2356. arch/powerpc/platforms/85xx/mpc85xx_ads.c +0 −1
  2357. arch/powerpc/platforms/85xx/mpc85xx_cds.c +0 −1
  2358. arch/powerpc/platforms/85xx/mpc85xx_ds.c +0 −1
  2359. arch/powerpc/platforms/85xx/mpc85xx_mds.c +1 −2
  2360. arch/powerpc/platforms/85xx/mpc85xx_rdb.c +1 −2
  2361. arch/powerpc/platforms/85xx/p1010rdb.c +0 −1
  2362. arch/powerpc/platforms/85xx/p1022_ds.c +2 −2
  2363. arch/powerpc/platforms/85xx/p1023_rds.c +0 −1
  2364. arch/powerpc/platforms/85xx/p2041_rdb.c +0 −1
  2365. arch/powerpc/platforms/85xx/p3041_ds.c +0 −1
  2366. arch/powerpc/platforms/85xx/p4080_ds.c +0 −1
  2367. arch/powerpc/platforms/85xx/p5020_ds.c +0 −1
  2368. arch/powerpc/platforms/85xx/sbc8548.c +0 −1
  2369. arch/powerpc/platforms/85xx/sbc8560.c +0 −1
  2370. arch/powerpc/platforms/85xx/socrates.c +0 −1
  2371. arch/powerpc/platforms/85xx/stx_gp3.c +0 −1
  2372. arch/powerpc/platforms/85xx/tqm85xx.c +0 −1
  2373. arch/powerpc/platforms/85xx/xes_mpc85xx.c +0 −1
  2374. arch/powerpc/platforms/86xx/gef_ppc9a.c +0 −1
  2375. arch/powerpc/platforms/86xx/gef_sbc310.c +0 −1
  2376. arch/powerpc/platforms/86xx/gef_sbc610.c +0 −1
  2377. arch/powerpc/platforms/86xx/mpc8610_hpcd.c +1 −2
  2378. arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +0 −1
  2379. arch/powerpc/platforms/86xx/pic.c +0 −1
  2380. arch/powerpc/platforms/86xx/sbc8641d.c +0 −1
  2381. arch/powerpc/platforms/8xx/mpc86xads_setup.c +0 −1
  2382. arch/powerpc/platforms/8xx/mpc885ads_setup.c +0 −1
  2383. arch/powerpc/platforms/8xx/tqm8xx_setup.c +0 −1
  2384. arch/powerpc/platforms/cell/axon_msi.c +1 −1
  2385. arch/powerpc/platforms/cell/beat_htab.c +0 −2
  2386. arch/powerpc/platforms/cell/beat_interrupt.c +1 −1
  2387. arch/powerpc/platforms/cell/iommu.c +9 −7
  2388. arch/powerpc/platforms/cell/qpace_setup.c +1 −1
  2389. arch/powerpc/platforms/cell/setup.c +1 −1
  2390. arch/powerpc/platforms/cell/smp.c +0 −1
  2391. arch/powerpc/platforms/cell/spufs/coredump.c +1 −1
  2392. arch/powerpc/platforms/embedded6xx/c2k.c +0 −1
  2393. arch/powerpc/platforms/embedded6xx/holly.c +0 −1
  2394. arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c +0 −1
  2395. arch/powerpc/platforms/embedded6xx/prpmc2800.c +0 −1
  2396. arch/powerpc/platforms/embedded6xx/storcenter.c +0 −1
  2397. arch/powerpc/platforms/fsl_uli1575.c +0 −1
  2398. arch/powerpc/platforms/maple/pci.c +1 −1
  2399. arch/powerpc/platforms/maple/setup.c +0 −1
  2400. arch/powerpc/platforms/maple/time.c +0 −1
  2401. arch/powerpc/platforms/pasemi/pci.c +0 −3
  2402. arch/powerpc/platforms/pasemi/setup.c +1 −1
  2403. arch/powerpc/platforms/powermac/bootx_init.c +1 −0
  2404. arch/powerpc/platforms/powermac/cpufreq_32.c +1 −1
  2405. arch/powerpc/platforms/powermac/nvram.c +0 −1
  2406. arch/powerpc/platforms/powermac/pci.c +0 −3
  2407. arch/powerpc/platforms/powermac/setup.c +0 −1
  2408. arch/powerpc/platforms/powermac/smp.c +1 −1
  2409. arch/powerpc/platforms/powermac/time.c +0 −1
  2410. arch/powerpc/platforms/powernv/pci-ioda.c +2 −3
  2411. arch/powerpc/platforms/powernv/pci.c +1 −4
  2412. arch/powerpc/platforms/powernv/smp.c +0 −1
  2413. arch/powerpc/platforms/ps3/interrupt.c +1 −2
  2414. arch/powerpc/platforms/ps3/mm.c +1 −0
  2415. arch/powerpc/platforms/ps3/system-bus.c +7 −6
  2416. arch/powerpc/platforms/pseries/dtl.c +1 −1
  2417. arch/powerpc/platforms/pseries/eeh.c +5 −14
  2418. arch/powerpc/platforms/pseries/eeh_dev.c +1 −1
  2419. arch/powerpc/platforms/pseries/eeh_event.c +2 −2
  2420. arch/powerpc/platforms/pseries/hotplug-cpu.c +0 −1
  2421. arch/powerpc/platforms/pseries/io_event_irq.c +2 −66
  2422. arch/powerpc/platforms/pseries/iommu.c +13 −16
  2423. arch/powerpc/platforms/pseries/pci_dlpar.c +1 −1
  2424. arch/powerpc/platforms/pseries/processor_idle.c +1 −1
  2425. arch/powerpc/platforms/pseries/ras.c +128 −67
  2426. arch/powerpc/platforms/pseries/setup.c +3 −0
  2427. arch/powerpc/platforms/pseries/smp.c +0 −1
  2428. arch/powerpc/platforms/wsp/chroma.c +0 −1
  2429. arch/powerpc/platforms/wsp/psr2.c +0 −1
  2430. arch/powerpc/platforms/wsp/wsp_pci.c +1 −1
  2431. arch/powerpc/sysdev/cpm_common.c +0 −1
  2432. arch/powerpc/sysdev/fsl_soc.c +0 −1
  2433. arch/powerpc/sysdev/msi_bitmap.c +1 −0
  2434. arch/powerpc/sysdev/qe_lib/qe.c +20 −2
  2435. arch/powerpc/sysdev/tsi108_dev.c +0 −1
  2436. arch/powerpc/xmon/ppc-opc.c +1 −0
  2437. arch/powerpc/xmon/spu-opc.c +1 −0
  2438. arch/powerpc/xmon/xmon.c +1 −0
  2439. arch/s390/Kconfig +2 −0
  2440. arch/s390/crypto/crypt_s390.h +1 −0
  2441. arch/s390/include/asm/atomic.h +1 −1
  2442. arch/s390/include/asm/barrier.h +35 −0
  2443. arch/s390/include/asm/cpu_mf.h +97 −0
  2444. arch/s390/include/asm/ctl_reg.h +76 −0
  2445. arch/s390/include/asm/elf.h +0 −1
  2446. arch/s390/include/asm/exec.h +12 −0
  2447. arch/s390/include/asm/facility.h +63 −0
  2448. arch/s390/include/asm/irq.h +2 −0
  2449. arch/s390/include/asm/kvm.h +11 −0
  2450. arch/s390/include/asm/kvm_host.h +7 −5
  2451. arch/s390/include/asm/mmu.h +16 −0
  2452. arch/s390/include/asm/mmu_context.h +1 −0
  2453. arch/s390/include/asm/perf_event.h +10 −2
  2454. arch/s390/include/asm/posix_types.h +10 −60
  2455. arch/s390/include/asm/processor.h +24 −0
  2456. arch/s390/include/asm/setup.h +14 −0
  2457. arch/s390/include/asm/smp.h +1 −1
  2458. arch/s390/include/asm/switch_to.h +100 −0
  2459. arch/s390/include/asm/system.h +0 −315
  2460. arch/s390/include/asm/uaccess.h +6 −0
  2461. arch/s390/kernel/Makefile +1 −0
  2462. arch/s390/kernel/asm-offsets.c +0 −1
  2463. arch/s390/kernel/compat_signal.c +1 −0
  2464. arch/s390/kernel/cpcmd.c +0 −1
  2465. arch/s390/kernel/dis.c +0 −1
  2466. arch/s390/kernel/early.c +1 −1
  2467. arch/s390/kernel/irq.c +23 −0
  2468. arch/s390/kernel/lgr.c +1 −1
  2469. arch/s390/kernel/machine_kexec.c +0 −1
  2470. arch/s390/kernel/os_info.c +0 −1
  2471. arch/s390/kernel/perf_cpum_cf.c +690 −0
  2472. arch/s390/kernel/perf_event.c +124 −0
  2473. arch/s390/kernel/process.c +1 −1
  2474. arch/s390/kernel/ptrace.c +1 −1
  2475. arch/s390/kernel/setup.c +1 −1
  2476. arch/s390/kernel/signal.c +1 −0
  2477. arch/s390/kernel/smp.c +2 −0
  2478. arch/s390/kernel/suspend.c +1 −1
  2479. arch/s390/kernel/traps.c +0 −1
  2480. arch/s390/kernel/vdso.c +3 −9
  2481. arch/s390/kvm/Kconfig +9 −0
  2482. arch/s390/kvm/diag.c +3 −3
  2483. arch/s390/kvm/intercept.c +14 −10
  2484. arch/s390/kvm/interrupt.c +1 −2
  2485. arch/s390/kvm/kvm-s390.c +184 −39
  2486. arch/s390/kvm/kvm-s390.h +18 −0
  2487. arch/s390/kvm/priv.c +13 −14
  2488. arch/s390/kvm/sigp.c +46 −11
  2489. arch/s390/mm/fault.c +1 −1
  2490. arch/s390/mm/init.c +1 −1
  2491. arch/s390/mm/maccess.c +1 −1
  2492. arch/s390/mm/mmap.c +0 −2
  2493. arch/s390/mm/pgtable.c +0 −1
  2494. arch/s390/oprofile/hwsampler.c +23 −29
  2495. arch/score/include/asm/atomic.h +1 −0
  2496. arch/score/include/asm/barrier.h +16 −0
  2497. arch/score/include/asm/bitops.h +0 −1
  2498. arch/score/include/asm/bug.h +11 −0
  2499. arch/score/include/asm/cmpxchg.h +49 −0
  2500. arch/score/include/asm/exec.h +6 −0
  2501. arch/score/include/asm/switch_to.h +13 −0
  2502. arch/score/include/asm/system.h +0 −90
  2503. arch/sh/Kconfig +5 −1
  2504. arch/sh/Kconfig.debug +1 −0
  2505. arch/sh/boards/board-sh7785lcr.c +1 −0
  2506. arch/sh/boards/mach-ecovec24/setup.c +63 −41
  2507. arch/sh/boards/mach-highlander/setup.c +1 −1
  2508. arch/sh/boards/mach-hp6xx/pm.c +1 −0
  2509. arch/sh/boards/mach-microdev/irq.c +0 −1
  2510. arch/sh/boards/mach-sdk7786/setup.c +1 −1
  2511. arch/sh/boot/Makefile +2 −6
  2512. arch/sh/drivers/dma/dma-g2.c +2 −2
  2513. arch/sh/drivers/dma/dma-sysfs.c +1 −1
  2514. arch/sh/drivers/dma/dmabrg.c +2 −2
  2515. arch/sh/drivers/pci/pci-sh7780.c +12 −3
  2516. arch/sh/drivers/pci/pci.c +11 −64
  2517. arch/sh/include/asm/atomic-irq.h +2 −0
  2518. arch/sh/include/asm/atomic.h +1 −1
  2519. arch/sh/include/asm/auxvec.h +2 −0
  2520. arch/sh/include/asm/barrier.h +54 −0
  2521. arch/sh/include/asm/bitops.h +0 −1
  2522. arch/sh/include/asm/bl_bit.h +10 −0
  2523. arch/sh/include/asm/bl_bit_32.h +33 −0
  2524. arch/sh/include/asm/bl_bit_64.h +40 −0
  2525. arch/sh/include/asm/bug.h +5 −0
  2526. arch/sh/include/asm/cache_insns.h +11 −0
  2527. arch/sh/include/asm/cache_insns_32.h +21 −0
  2528. arch/sh/include/asm/cache_insns_64.h +23 −0
  2529. arch/sh/include/asm/clock.h +1 −1
  2530. arch/sh/include/asm/cmpxchg-irq.h +2 −0
  2531. arch/sh/include/asm/cmpxchg.h +70 −0
  2532. arch/sh/include/asm/dma-mapping.h +18 −10
  2533. arch/sh/include/asm/exec.h +10 −0
  2534. arch/sh/include/asm/futex-irq.h +0 −1
  2535. arch/sh/include/asm/io.h +10 −16
  2536. arch/sh/include/asm/irq.h +0 −11
  2537. arch/sh/include/asm/pci.h +0 −6
  2538. arch/sh/include/asm/posix_types_32.h +0 −5
  2539. arch/sh/include/asm/posix_types_64.h +0 −4
  2540. arch/sh/include/asm/processor.h +15 −0
  2541. arch/sh/include/asm/ptrace.h +0 −1
  2542. arch/sh/include/asm/setup.h +1 −0
  2543. arch/sh/include/asm/switch_to.h +19 −0
  2544. arch/sh/include/asm/switch_to_32.h +3 −105
  2545. arch/sh/include/asm/switch_to_64.h +35 −0
  2546. arch/sh/include/asm/system.h +0 −184
  2547. arch/sh/include/asm/system_64.h +0 −79
  2548. arch/sh/include/asm/traps.h +21 −0
  2549. arch/sh/include/asm/traps_32.h +68 −0
  2550. arch/sh/include/asm/traps_64.h +24 −0
  2551. arch/sh/include/asm/uaccess.h +14 −0
  2552. arch/sh/include/asm/unistd.h +37 −0
  2553. arch/sh/include/asm/unistd_32.h +32 −70
  2554. arch/sh/include/asm/unistd_64.h +34 −72
  2555. arch/sh/include/cpu-sh4/cpu/dma-register.h +8 −24
  2556. arch/sh/include/mach-common/mach/mangle-port.h +49 −0
  2557. arch/sh/kernel/cpu/fpu.c +1 −0
  2558. arch/sh/kernel/cpu/init.c +1 −1
  2559. arch/sh/kernel/cpu/irq/imask.c +0 −1
  2560. arch/sh/kernel/cpu/sh2/clock-sh7619.c +6 −6
  2561. arch/sh/kernel/cpu/sh2a/clock-sh7201.c +6 −6
  2562. arch/sh/kernel/cpu/sh2a/clock-sh7203.c +6 −6
  2563. arch/sh/kernel/cpu/sh2a/clock-sh7206.c +6 −6
  2564. arch/sh/kernel/cpu/sh2a/fpu.c +1 −0
  2565. arch/sh/kernel/cpu/sh2a/opcode_helper.c +0 −1
  2566. arch/sh/kernel/cpu/sh3/clock-sh3.c +6 −6
  2567. arch/sh/kernel/cpu/sh3/clock-sh7705.c +6 −6
  2568. arch/sh/kernel/cpu/sh3/clock-sh7706.c +6 −6
  2569. arch/sh/kernel/cpu/sh3/clock-sh7709.c +6 −6
  2570. arch/sh/kernel/cpu/sh3/clock-sh7710.c +6 −6
  2571. arch/sh/kernel/cpu/sh3/clock-sh7712.c +5 −5
  2572. arch/sh/kernel/cpu/sh4/clock-sh4-202.c +3 −3
  2573. arch/sh/kernel/cpu/sh4/clock-sh4.c +6 −6
  2574. arch/sh/kernel/cpu/sh4/fpu.c +1 −1
  2575. arch/sh/kernel/cpu/sh4a/clock-sh7343.c +2 −2
  2576. arch/sh/kernel/cpu/sh4a/clock-sh7366.c +2 −2
  2577. arch/sh/kernel/cpu/sh4a/clock-sh7722.c +2 −2
  2578. arch/sh/kernel/cpu/sh4a/clock-sh7723.c +2 −2
  2579. arch/sh/kernel/cpu/sh4a/clock-sh7724.c +3 −3
  2580. arch/sh/kernel/cpu/sh4a/clock-sh7757.c +2 −2
  2581. arch/sh/kernel/cpu/sh4a/clock-sh7763.c +7 −7
  2582. arch/sh/kernel/cpu/sh4a/clock-sh7770.c +6 −6
  2583. arch/sh/kernel/cpu/sh4a/clock-sh7780.c +7 −7
  2584. arch/sh/kernel/cpu/sh4a/clock-sh7785.c +1 −1
  2585. arch/sh/kernel/cpu/sh4a/clock-sh7786.c +1 −1
  2586. arch/sh/kernel/cpu/sh4a/clock-shx3.c +1 −1
  2587. arch/sh/kernel/cpu/sh4a/setup-sh7757.c +20 −0
  2588. arch/sh/kernel/cpu/sh5/clock-sh5.c +6 −6
  2589. arch/sh/kernel/cpu/shmobile/cpuidle.c +3 −7
  2590. arch/sh/kernel/cpu/shmobile/pm.c +1 −0
  2591. arch/sh/kernel/cpufreq.c +82 −39
  2592. arch/sh/kernel/dma-nommu.c +2 −2
  2593. arch/sh/kernel/hw_breakpoint.c +1 −0
  2594. arch/sh/kernel/idle.c +2 −2
  2595. arch/sh/kernel/io_trapped.c +0 −1
  2596. arch/sh/kernel/kgdb.c +1 −0
  2597. arch/sh/kernel/process_32.c +1 −1
  2598. arch/sh/kernel/process_64.c +1 −0
  2599. arch/sh/kernel/ptrace_32.c +0 −1
  2600. arch/sh/kernel/ptrace_64.c +1 −1
  2601. arch/sh/kernel/reboot.c +1 −1
  2602. arch/sh/kernel/signal_32.c +10 −26
  2603. arch/sh/kernel/signal_64.c +10 −30
  2604. arch/sh/kernel/smp.c +1 −1
  2605. arch/sh/kernel/syscalls_32.S +4 −4
  2606. arch/sh/kernel/syscalls_64.S +4 −4
  2607. arch/sh/kernel/traps.c +1 −1
  2608. arch/sh/kernel/traps_32.c +2 −1
  2609. arch/sh/kernel/traps_64.c +0 −1
  2610. arch/sh/kernel/vsyscall/vsyscall-sigreturn.S +35 −0
  2611. arch/sh/kernel/vsyscall/vsyscall-trapa.S +10 −13
  2612. arch/sh/kernel/vsyscall/vsyscall.c +1 −2
  2613. arch/sh/math-emu/math.c +0 −1
  2614. arch/sh/mm/cache-sh4.c +1 −0
  2615. arch/sh/mm/consistent.c +4 −2
  2616. arch/sh/mm/fault_32.c +1 −1
  2617. arch/sh/mm/fault_64.c +0 −1
  2618. arch/sh/mm/flush-sh4.c +2 −0
  2619. arch/sh/mm/pmb.c +0 −1
  2620. arch/sh/mm/sram.c +1 −0
  2621. arch/sh/mm/tlb-pteaex.c +0 −1
  2622. arch/sh/mm/tlb-sh3.c +0 −1
  2623. arch/sh/mm/tlb-sh4.c +0 −1
  2624. arch/sh/mm/tlbflush_64.c +0 −1
  2625. arch/sparc/Kconfig +1 −0
  2626. arch/sparc/boot/Makefile +3 −6
  2627. arch/sparc/include/asm/atomic_32.h +1 −1
  2628. arch/sparc/include/asm/atomic_64.h +1 −2
  2629. arch/sparc/include/asm/auxio_32.h +0 −1
  2630. arch/sparc/include/asm/barrier.h +8 −0
  2631. arch/sparc/include/asm/barrier_32.h +15 −0
  2632. arch/sparc/include/asm/barrier_64.h +56 −0
  2633. arch/sparc/include/asm/bug.h +3 −0
  2634. arch/sparc/include/asm/cacheflush_32.h +9 −0
  2635. arch/sparc/include/asm/cacheflush_64.h +10 −0
  2636. arch/sparc/include/asm/cmpxchg.h +8 −0
  2637. arch/sparc/include/asm/cmpxchg_32.h +112 −0
  2638. arch/sparc/include/asm/cmpxchg_64.h +145 −0
  2639. arch/sparc/include/asm/cpu_type.h +34 −0
  2640. arch/sparc/include/asm/dma-mapping.h +12 −6
  2641. arch/sparc/include/asm/exec.h +6 −0
  2642. arch/sparc/include/asm/floppy_32.h +0 −1
  2643. arch/sparc/include/asm/futex_64.h +0 −1
  2644. arch/sparc/include/asm/io_32.h +0 −1
  2645. arch/sparc/include/asm/io_64.h +0 −1
  2646. arch/sparc/include/asm/irqflags_32.h +1 −0
  2647. arch/sparc/include/asm/mmu_context_64.h +0 −1
  2648. arch/sparc/include/asm/ns87303.h +0 −1
  2649. arch/sparc/include/asm/pci_32.h +0 −8
  2650. arch/sparc/include/asm/pci_64.h +0 −8
  2651. arch/sparc/include/asm/perfctr.h +23 −0
  2652. arch/sparc/include/asm/pgtable_32.h +1 −1
  2653. arch/sparc/include/asm/pgtable_64.h +2 −3
  2654. arch/sparc/include/asm/posix_types.h +17 −116
  2655. arch/sparc/include/asm/processor.h +3 −0
  2656. arch/sparc/include/asm/processor_64.h +3 −0
  2657. arch/sparc/include/asm/ptrace.h +4 −3
  2658. arch/sparc/include/asm/setup.h +16 −0
  2659. arch/sparc/include/asm/switch_to.h +8 −0
  2660. arch/sparc/include/asm/switch_to_32.h +106 −0
  2661. arch/sparc/include/asm/switch_to_64.h +72 −0
  2662. arch/sparc/include/asm/system.h +0 −8
  2663. arch/sparc/include/asm/system_32.h +0 −284
  2664. arch/sparc/include/asm/system_64.h +0 −331
  2665. arch/sparc/include/asm/timer_32.h +2 −1
  2666. arch/sparc/include/asm/uaccess_64.h +0 −1
  2667. arch/sparc/include/asm/vga.h +1 −0
  2668. arch/sparc/include/asm/vio.h +8 −1
  2669. arch/sparc/kernel/auxio_32.c +1 −0
  2670. arch/sparc/kernel/devices.c +1 −1
  2671. arch/sparc/kernel/ds.c +2 −5
  2672. arch/sparc/kernel/iommu.c +6 −4
  2673. arch/sparc/kernel/ioport.c +10 −8
  2674. arch/sparc/kernel/irq.h +1 −0
  2675. arch/sparc/kernel/irq_64.c +0 −1
  2676. arch/sparc/kernel/jump_label.c +2 −0
  2677. arch/sparc/kernel/kgdb_32.c +1 −0
  2678. arch/sparc/kernel/kgdb_64.c +1 −0
  2679. arch/sparc/kernel/leon_kernel.c +3 −3
  2680. arch/sparc/kernel/leon_pci.c +7 −53
  2681. arch/sparc/kernel/module.c +1 −0
  2682. arch/sparc/kernel/muldiv.c +0 −1
  2683. arch/sparc/kernel/nmi.c +1 −0
  2684. arch/sparc/kernel/pci.c +29 −77
  2685. arch/sparc/kernel/pci_sun4v.c +5 −4
  2686. arch/sparc/kernel/pcr.c +1 −0
  2687. arch/sparc/kernel/perf_event.c +2 −0
  2688. arch/sparc/kernel/process_32.c +1 −1
  2689. arch/sparc/kernel/process_64.c +0 −1
  2690. arch/sparc/kernel/ptrace_32.c +1 −1
  2691. arch/sparc/kernel/ptrace_64.c +0 −1
  2692. arch/sparc/kernel/reboot.c +1 −1
  2693. arch/sparc/kernel/rtrap_64.S +0 −7
  2694. arch/sparc/kernel/setup_32.c +1 −1
  2695. arch/sparc/kernel/setup_64.c +1 −1
  2696. arch/sparc/kernel/signal32.c +1 −0
  2697. arch/sparc/kernel/signal_32.c +1 −0
  2698. arch/sparc/kernel/signal_64.c +2 −0
  2699. arch/sparc/kernel/sigutil_32.c +1 −0
  2700. arch/sparc/kernel/sigutil_64.c +1 −0
  2701. arch/sparc/kernel/sparc_ksyms_64.c +1 −1
  2702. arch/sparc/kernel/sun4d_smp.c +1 −0
  2703. arch/sparc/kernel/sun4m_smp.c +1 −0
  2704. arch/sparc/kernel/time_32.c +0 −1
  2705. arch/sparc/kernel/traps_32.c +0 −1
  2706. arch/sparc/kernel/traps_64.c +1 −1
  2707. arch/sparc/kernel/unaligned_32.c +0 −1
  2708. arch/sparc/kernel/unaligned_64.c +1 −1
  2709. arch/sparc/kernel/vio.c +6 −2
  2710. arch/sparc/kernel/visemul.c +1 −1
  2711. arch/sparc/math-emu/math_64.c +1 −0
  2712. arch/sparc/mm/btfixup.c +0 −1
  2713. arch/sparc/mm/fault_32.c +30 −8
  2714. arch/sparc/mm/fault_64.c +30 −7
  2715. arch/sparc/mm/init_32.c +0 −1
  2716. arch/sparc/mm/init_64.c +0 −1
  2717. arch/sparc/mm/init_64.h +0 −2
  2718. arch/sparc/mm/loadmmu.c +0 −1
  2719. arch/sparc/mm/tsb.c +0 −1
  2720. arch/sparc/prom/console_32.c +0 −1
  2721. arch/sparc/prom/console_64.c +0 −1
  2722. arch/sparc/prom/misc_32.c +0 −1
  2723. arch/sparc/prom/misc_64.c +0 −1
  2724. arch/sparc/prom/p1275.c +0 −1
  2725. arch/sparc/prom/ranges.c +0 −1
  2726. arch/tile/Kconfig +6 −2
  2727. arch/tile/Makefile +2 −3
  2728. arch/tile/include/arch/spr_def.h +2 −2
  2729. arch/tile/include/asm/atomic.h +3 −49
  2730. arch/tile/include/asm/atomic_32.h +2 −1
  2731. arch/tile/include/asm/atomic_64.h +1 −0
  2732. arch/tile/include/asm/barrier.h +4 −117
  2733. arch/tile/include/asm/bitops_32.h +0 −1
  2734. arch/tile/include/asm/bitops_64.h +4 −5
  2735. arch/tile/include/asm/cacheflush.h +10 −1
  2736. arch/tile/include/asm/cmpxchg.h +73 −0
  2737. arch/tile/include/asm/compat.h +0 −11
  2738. arch/tile/include/asm/exec.h +20 −0
  2739. arch/tile/include/asm/irq.h +1 −1
  2740. arch/tile/include/asm/pgtable.h +0 −1
  2741. arch/tile/include/asm/setup.h +22 −0
  2742. arch/tile/include/asm/smp.h +0 −7
  2743. arch/tile/include/asm/spinlock_32.h +0 −1
  2744. arch/tile/include/asm/spinlock_64.h +1 −1
  2745. arch/tile/include/asm/stack.h +0 −1
  2746. arch/tile/include/asm/switch_to.h +76 −0
  2747. arch/tile/include/asm/timex.h +2 −0
  2748. arch/tile/include/asm/traps.h +5 −1
  2749. arch/tile/include/asm/unaligned.h +15 −0
  2750. arch/tile/kernel/compat.c +0 −43
  2751. arch/tile/kernel/early_printk.c +1 −0
  2752. arch/tile/kernel/entry.S +2 −0
  2753. arch/tile/kernel/intvec_32.S +20 −4
  2754. arch/tile/kernel/intvec_64.S +46 −6
  2755. arch/tile/kernel/module.c +2 −0
  2756. arch/tile/kernel/proc.c +2 −3
  2757. arch/tile/kernel/process.c +4 −2
  2758. arch/tile/kernel/regs_32.S +1 −1
  2759. arch/tile/kernel/regs_64.S +1 −1
  2760. arch/tile/kernel/setup.c +21 −15
  2761. arch/tile/kernel/single_step.c +20 −12
  2762. arch/tile/kernel/smp.c +7 −20
  2763. arch/tile/kernel/smpboot.c +2 −0
  2764. arch/tile/kernel/stack.c +113 −119
  2765. arch/tile/kernel/traps.c +13 −3
  2766. arch/tile/lib/Makefile +1 −0
  2767. arch/tile/lib/cacheflush.c +27 −3
  2768. arch/tile/lib/memcpy_user_64.c +7 −1
  2769. arch/tile/lib/spinlock_common.h +1 −1
  2770. arch/tile/mm/elf.c +2 −7
  2771. arch/tile/mm/fault.c +16 −7
  2772. arch/tile/mm/homecache.c +1 −0
  2773. arch/tile/mm/init.c +15 −12
  2774. arch/tile/mm/pgtable.c +24 −15
  2775. arch/um/Kconfig.common +1 −0
  2776. arch/um/Makefile +3 −2
  2777. arch/um/defconfig +471 −184
  2778. arch/um/drivers/chan.h +9 −9
  2779. arch/um/drivers/chan_kern.c +88 −110
  2780. arch/um/drivers/chan_user.h +0 −2
  2781. arch/um/drivers/cow.h +0 −35
  2782. arch/um/drivers/cow_user.c +21 −22
  2783. arch/um/drivers/line.c +115 −143
  2784. arch/um/drivers/line.h +11 −18
  2785. arch/um/drivers/mconsole_kern.c +2 −1
  2786. arch/um/drivers/net_kern.c +1 −1
  2787. arch/um/drivers/port_kern.c +2 −2
  2788. arch/um/drivers/random.c +1 −1
  2789. arch/um/drivers/ssl.c +21 −20
  2790. arch/um/drivers/stdio_console.c +23 −23
  2791. arch/um/drivers/ubd.h +0 −0
  2792. arch/um/drivers/ubd_kern.c +16 −30
  2793. arch/um/drivers/ubd_user.c +3 −5
  2794. arch/um/drivers/xterm_kern.c +1 −1
  2795. arch/um/include/asm/Kbuild +2 −1
  2796. arch/um/include/asm/asm-offsets.h +0 −1
  2797. arch/um/include/asm/auxvec.h +0 −4
  2798. arch/um/include/asm/current.h +0 −13
  2799. arch/um/include/asm/delay.h +0 −18
  2800. arch/um/include/asm/fixmap.h +0 −1
  2801. arch/um/include/asm/io.h +0 −57
  2802. arch/um/include/asm/mutex.h +0 −9
  2803. arch/um/include/asm/param.h +0 −20
  2804. arch/um/include/asm/pci.h +0 −6
  2805. arch/um/include/asm/pgalloc.h +1 −2
  2806. arch/um/include/asm/pgtable.h +2 −0
  2807. arch/um/include/asm/ptrace-generic.h +0 −1
  2808. arch/um/include/shared/common-offsets.h +0 −2
  2809. arch/um/include/shared/kern_util.h +1 −1
  2810. arch/um/kernel/Makefile +4 −3
  2811. arch/um/kernel/process.c +3 −7
  2812. arch/um/kernel/sigio.c +1 −1
  2813. arch/um/kernel/skas/mmu.c +0 −1
  2814. arch/um/kernel/skas/process.c +1 −1
  2815. arch/um/kernel/smp.c +4 −5
  2816. arch/um/kernel/time.c +1 −1
  2817. arch/um/os-Linux/Makefile +0 −2
  2818. arch/um/os-Linux/user_syms.c +1 −1
  2819. arch/um/scripts/Makefile.rules +3 −4
  2820. arch/unicore32/boot/Makefile +2 −10
  2821. arch/unicore32/include/asm/Kbuild +0 −1
  2822. arch/unicore32/include/asm/barrier.h +28 −0
  2823. arch/unicore32/include/asm/bug.h +27 −0
  2824. arch/unicore32/include/asm/cmpxchg.h +61 −0
  2825. arch/unicore32/include/asm/dma-mapping.h +12 −6
  2826. arch/unicore32/include/asm/exec.h +15 −0
  2827. arch/unicore32/include/asm/hwdef-copro.h +48 −0
  2828. arch/unicore32/include/asm/io.h +0 −1
  2829. arch/unicore32/include/asm/pci.h +1 −0
  2830. arch/unicore32/include/asm/switch_to.h +30 −0
  2831. arch/unicore32/include/asm/system.h +0 −161
  2832. arch/unicore32/include/asm/uaccess.h +0 −1
  2833. arch/unicore32/kernel/dma.c +0 −1
  2834. arch/unicore32/kernel/head.S +1 −1
  2835. arch/unicore32/kernel/hibernate.c +0 −1
  2836. arch/unicore32/kernel/irq.c +0 −1
  2837. arch/unicore32/kernel/ksyms.c +0 −1
  2838. arch/unicore32/kernel/pci.c +2 −3
  2839. arch/unicore32/kernel/process.c +1 −2
  2840. arch/unicore32/kernel/setup.h +3 −0
  2841. arch/unicore32/kernel/traps.c +0 −1
  2842. arch/unicore32/mm/alignment.c +2 −0
  2843. arch/unicore32/mm/dma-swiotlb.c +16 −2
  2844. arch/unicore32/mm/fault.c +0 −1
  2845. arch/unicore32/mm/flush.c +0 −1
  2846. arch/unicore32/mm/mm.h +5 −0
  2847. arch/x86/Kconfig +25 −5
  2848. arch/x86/Makefile +17 −0
  2849. arch/x86/Makefile.um +3 −4
  2850. arch/x86/boot/Makefile +3 −3
  2851. arch/x86/configs/i386_defconfig +22 −42
  2852. arch/x86/configs/x86_64_defconfig +23 −44
  2853. arch/x86/ia32/ia32_aout.c +0 −1
  2854. arch/x86/ia32/ia32_signal.c +11 −13
  2855. arch/x86/ia32/sys_ia32.c +0 −40
  2856. arch/x86/include/asm/Kbuild +2 −0
  2857. arch/x86/include/asm/apic.h +1 −2
  2858. arch/x86/include/asm/auxvec.h +7 −0
  2859. arch/x86/include/asm/barrier.h +6 −25
  2860. arch/x86/include/asm/bug.h +4 −0
  2861. arch/x86/include/asm/cacheflush.h +1 −0
  2862. arch/x86/include/asm/cmpxchg.h +2 −2
  2863. arch/x86/include/asm/compat.h +36 −4
  2864. arch/x86/include/asm/debugreg.h +67 −0
  2865. arch/x86/include/asm/dma-mapping.h +16 −10
  2866. arch/x86/include/asm/elf.h +25 −7
  2867. arch/x86/include/asm/exec.h +1 −0
  2868. arch/x86/include/asm/futex.h +0 −1
  2869. arch/x86/include/asm/i387.h +0 −1
  2870. arch/x86/include/asm/ia32.h +18 −0
  2871. arch/x86/include/asm/idle.h +1 −0
  2872. arch/x86/include/asm/io_apic.h +9 −0
  2873. arch/x86/include/asm/kvm.h +4 −0
  2874. arch/x86/include/asm/kvm_emulate.h +2 −1
  2875. arch/x86/include/asm/kvm_host.h +45 −18
  2876. arch/x86/include/asm/local.h +0 −1
  2877. arch/x86/include/asm/mc146818rtc.h +0 −1
  2878. arch/x86/include/asm/mtrr.h +18 −10
  2879. arch/x86/include/asm/page_types.h +0 −1
  2880. arch/x86/include/asm/paravirt.h +1 −0
  2881. arch/x86/include/asm/perf_event.h +1 −0
  2882. arch/x86/include/asm/posix_types.h +3 −1
  2883. arch/x86/include/asm/posix_types_32.h +9 −66
  2884. arch/x86/include/asm/posix_types_64.h +3 −103
  2885. arch/x86/include/asm/posix_types_x32.h +19 −0
  2886. arch/x86/include/asm/processor.h +29 −67
  2887. arch/x86/include/asm/ptrace.h +0 −1
  2888. arch/x86/include/asm/segment.h +56 −2
  2889. arch/x86/include/asm/sigcontext.h +30 −27
  2890. arch/x86/include/asm/sigframe.h +13 −0
  2891. arch/x86/include/asm/sighandling.h +24 −0
  2892. arch/x86/include/asm/special_insns.h +199 −0
  2893. arch/x86/include/asm/stackprotector.h +0 −1
  2894. arch/x86/include/asm/switch_to.h +129 −0
  2895. arch/x86/include/asm/sys_ia32.h +5 −2
  2896. arch/x86/include/asm/syscall.h +3 −2
  2897. arch/x86/include/asm/system.h +0 −523
  2898. arch/x86/include/asm/thread_info.h +17 −1
  2899. arch/x86/include/asm/tlbflush.h +1 −1
  2900. arch/x86/include/asm/traps.h +25 −0
  2901. arch/x86/include/asm/tsc.h +2 −2
  2902. arch/x86/include/asm/uaccess.h +2 −0
  2903. arch/x86/include/asm/uaccess_32.h +0 −5
  2904. arch/x86/include/asm/uaccess_64.h +0 −4
  2905. arch/x86/include/asm/unistd.h +14 −1
  2906. arch/x86/include/asm/vgtod.h +10 −7
  2907. arch/x86/include/asm/virtext.h +0 −1
  2908. arch/x86/include/asm/word-at-a-time.h +46 −0
  2909. arch/x86/include/asm/x2apic.h +5 −0
  2910. arch/x86/include/asm/x86_init.h +6 −0
  2911. arch/x86/kernel/acpi/boot.c +3 −2
  2912. arch/x86/kernel/acpi/cstate.c +1 −0
  2913. arch/x86/kernel/amd_gart_64.c +6 −5
  2914. arch/x86/kernel/apic/apic.c +9 −4
  2915. arch/x86/kernel/apic/apic_numachip.c +1 −2
  2916. arch/x86/kernel/apic/io_apic.c +112 −47
  2917. arch/x86/kernel/apic/x2apic_cluster.c +1 −1
  2918. arch/x86/kernel/apic/x2apic_phys.c +1 −1
  2919. arch/x86/kernel/apic/x2apic_uv_x.c +6 −1
  2920. arch/x86/kernel/apm_32.c +0 −1
  2921. arch/x86/kernel/asm-offsets_64.c +6 −0
  2922. arch/x86/kernel/cpu/common.c +2 −1
  2923. arch/x86/kernel/cpu/mcheck/p5.c +0 −1
  2924. arch/x86/kernel/cpu/mcheck/therm_throt.c +0 −1
  2925. arch/x86/kernel/cpu/mcheck/winchip.c +0 −1
  2926. arch/x86/kernel/cpu/mtrr/generic.c +0 −1
  2927. arch/x86/kernel/cpu/mtrr/if.c +6 −4
  2928. arch/x86/kernel/cpu/perf_event.c +19 −2
  2929. arch/x86/kernel/cpu/perf_event.h +1 −0
  2930. arch/x86/kernel/cpu/perf_event_amd.c +18 −0
  2931. arch/x86/kernel/cpu/perf_event_intel.c +36 −0
  2932. arch/x86/kernel/cpu/perf_event_p4.c +13 −0
  2933. arch/x86/kernel/cpu/perf_event_p6.c +19 −0
  2934. arch/x86/kernel/cpuid.c +0 −1
  2935. arch/x86/kernel/dumpstack.c +6 −3
  2936. arch/x86/kernel/entry_32.S +10 −7
  2937. arch/x86/kernel/entry_64.S +44 −0
  2938. arch/x86/kernel/i8259.c +0 −1
  2939. arch/x86/kernel/irq.c +6 −1
  2940. arch/x86/kernel/irqinit.c +1 −2
  2941. arch/x86/kernel/kdebugfs.c +1 −8
  2942. arch/x86/kernel/kgdb.c +60 −1
  2943. arch/x86/kernel/kvm.c +4 −0
  2944. arch/x86/kernel/kvmclock.c +12 −3
  2945. arch/x86/kernel/ldt.c +0 −1
  2946. arch/x86/kernel/machine_kexec_32.c +0 −1
  2947. arch/x86/kernel/mca_32.c +0 −1
  2948. arch/x86/kernel/module.c +0 −1
  2949. arch/x86/kernel/msr.c +0 −1
  2950. arch/x86/kernel/paravirt.c +2 −0
  2951. arch/x86/kernel/pci-calgary_64.c +5 −5
  2952. arch/x86/kernel/pci-dma.c +5 −3
  2953. arch/x86/kernel/pci-nommu.c +3 −3
  2954. arch/x86/kernel/pci-swiotlb.c +13 −4
  2955. arch/x86/kernel/process.c +107 −18
  2956. arch/x86/kernel/process_32.c +1 −59
  2957. arch/x86/kernel/process_64.c +22 −114
  2958. arch/x86/kernel/ptrace.c +101 −2
  2959. arch/x86/kernel/setup.c +1 −11
  2960. arch/x86/kernel/signal.c +123 −17
  2961. arch/x86/kernel/smpboot.c +4 −6
  2962. arch/x86/kernel/sys_x86_64.c +3 −3
  2963. arch/x86/kernel/syscall_64.c +8 −0
  2964. arch/x86/kernel/tboot.c +6 −3
  2965. arch/x86/kernel/tce_64.c +1 −0
  2966. arch/x86/kernel/tls.c +2 −3
  2967. arch/x86/kernel/traps.c +70 −64
  2968. arch/x86/kernel/tsc.c +12 −2
  2969. arch/x86/kernel/vm86_32.c +1 −1
  2970. arch/x86/kernel/vsyscall_64.c +16 −17
  2971. arch/x86/kernel/x86_init.c +4 −1
  2972. arch/x86/kvm/cpuid.c +1 −1
  2973. arch/x86/kvm/cpuid.h +8 −0
  2974. arch/x86/kvm/emulate.c +97 −15
  2975. arch/x86/kvm/i8259.c +1 −0
  2976. arch/x86/kvm/lapic.c +2 −2
  2977. arch/x86/kvm/mmu.c +38 −47
  2978. arch/x86/kvm/mmu_audit.c +2 −2
  2979. arch/x86/kvm/pmu.c +8 −4
  2980. arch/x86/kvm/svm.c +104 −15
  2981. arch/x86/kvm/vmx.c +24 −31
  2982. arch/x86/kvm/x86.c +313 −90
  2983. arch/x86/lib/usercopy.c +103 −0
  2984. arch/x86/lib/usercopy_32.c +0 −87
  2985. arch/x86/lib/usercopy_64.c +0 −49
  2986. arch/x86/math-emu/fpu_entry.c +3 −2
  2987. arch/x86/mm/fault.c +5 −5
  2988. arch/x86/mm/init.c +0 −1
  2989. arch/x86/mm/init_32.c +0 −1
  2990. arch/x86/mm/init_64.c +0 −1
  2991. arch/x86/mm/kmemcheck/selftest.c +1 −0
  2992. arch/x86/mm/pgtable_32.c +0 −1
  2993. arch/x86/mm/srat.c +1 −1
  2994. arch/x86/net/bpf_jit.S +91 −31
  2995. arch/x86/net/bpf_jit_comp.c +25 −18
  2996. arch/x86/oprofile/backtrace.c +1 −1
  2997. arch/x86/pci/acpi.c +6 −1
  2998. arch/x86/pci/fixup.c +5 −7
  2999. arch/x86/pci/i386.c +84 −1
  3000. arch/x86/pci/mrst.c +38 −2
  3001. arch/x86/platform/ce4100/falconfalls.dts +5 −2
  3002. arch/x86/platform/geode/Makefile +1 −0
  3003. arch/x86/platform/geode/geos.c +128 −0
  3004. arch/x86/platform/olpc/olpc.c +97 −0
  3005. arch/x86/power/cpu.c +2 −2
  3006. arch/x86/power/hibernate_32.c +0 −1
  3007. arch/x86/syscalls/Makefile +17 −5
  3008. arch/x86/syscalls/syscall_32.tbl +2 −2
  3009. arch/x86/syscalls/syscall_64.tbl +306 −273
  3010. arch/x86/um/Kconfig +2 −2
  3011. arch/x86/um/asm/barrier.h +75 −0
  3012. arch/x86/um/asm/processor.h +10 −0
  3013. arch/x86/um/asm/processor_32.h +0 −10
  3014. arch/x86/um/asm/processor_64.h +0 −10
  3015. arch/x86/um/bugs_32.c +1 −3
  3016. arch/x86/um/mem_32.c +0 −8
  3017. arch/x86/um/sys_call_table_64.c +3 −0
  3018. arch/x86/um/user-offsets.c +2 −0
  3019. arch/x86/um/vdso/vma.c +1 −2
  3020. arch/x86/vdso/.gitignore +2 −0
  3021. arch/x86/vdso/Makefile +45 −1
  3022. arch/x86/vdso/vclock_gettime.c +67 −68
  3023. arch/x86/vdso/vdso32-setup.c +7 −15
  3024. arch/x86/vdso/vdsox32.S +22 −0
  3025. arch/x86/vdso/vdsox32.lds.S +28 −0
  3026. arch/x86/vdso/vma.c +71 −10
  3027. arch/x86/xen/enlighten.c +1 −1
  3028. arch/x86/xen/mmu.c +3 −1
  3029. arch/x86/xen/pci-swiotlb-xen.c +2 −2
  3030. arch/x86/xen/setup.c +2 −0
  3031. arch/x86/xen/smp.c +7 −1
  3032. arch/xtensa/configs/iss_defconfig +1 −1
  3033. arch/xtensa/include/asm/atomic.h +1 −1
  3034. arch/xtensa/include/asm/barrier.h +29 −0
  3035. arch/xtensa/include/asm/bitops.h +0 −1
  3036. arch/xtensa/include/asm/cmpxchg.h +7 −60
  3037. arch/xtensa/include/asm/exec.h +14 −0
  3038. arch/xtensa/include/asm/mman.h +4 −0
  3039. arch/xtensa/include/asm/posix_types.h +7 −90
  3040. arch/xtensa/include/asm/setup.h +2 −0
  3041. arch/xtensa/include/asm/switch_to.h +22 −0
  3042. arch/xtensa/include/asm/uaccess.h +2 −0
  3043. arch/xtensa/kernel/pci.c +1 −16
  3044. arch/xtensa/kernel/process.c +0 −1
  3045. arch/xtensa/kernel/ptrace.c +0 −1
  3046. arch/xtensa/kernel/setup.c +0 −1
  3047. arch/xtensa/kernel/traps.c +19 −0
  3048. arch/xtensa/mm/fault.c +0 −1
  3049. arch/xtensa/mm/tlb.c +0 −1
  3050. block/blk-core.c +3 −2
  3051. block/blk-throttle.c +1 −1
  3052. block/cfq-iosched.c +8 −2
  3053. crypto/Kconfig +3 −3
  3054. crypto/ablkcipher.c +2 −2
  3055. crypto/aead.c +2 −2
  3056. crypto/crypto_user.c +79 −1
  3057. crypto/pcrypt.c +4 −4
  3058. drivers/Kconfig +6 −0
  3059. drivers/Makefile +3 −0
  3060. drivers/acpi/Kconfig +9 −0
  3061. drivers/acpi/Makefile +1 −0
  3062. drivers/acpi/acpica/Makefile +3 −1
  3063. drivers/acpi/acpica/accommon.h +0 −1
  3064. drivers/acpi/acpica/acdebug.h +5 −3
  3065. drivers/acpi/acpica/acevents.h +11 −10
  3066. drivers/acpi/acpica/acglobal.h +10 −1
  3067. drivers/acpi/acpica/achware.h +20 −12
  3068. drivers/acpi/acpica/aclocal.h +1 −0
  3069. drivers/acpi/acpica/acmacros.h +6 −0
  3070. drivers/acpi/acpica/acnamesp.h +3 −2
  3071. drivers/acpi/acpica/actables.h +5 −0
  3072. drivers/acpi/acpica/evevent.c +3 −1
  3073. drivers/acpi/acpica/evglock.c +3 −1
  3074. drivers/acpi/acpica/evgpe.c +3 −1
  3075. drivers/acpi/acpica/evgpeblk.c +3 −1
  3076. drivers/acpi/acpica/evgpeinit.c +3 −1
  3077. drivers/acpi/acpica/evgpeutil.c +3 −0
  3078. drivers/acpi/acpica/evmisc.c +16 −10
  3079. drivers/acpi/acpica/evsci.c +3 −1
  3080. drivers/acpi/acpica/evxface.c +220 −216
  3081. drivers/acpi/acpica/evxfevnt.c +2 −0
  3082. drivers/acpi/acpica/evxfgpe.c +2 −0
  3083. drivers/acpi/acpica/hwacpi.c +3 −0
  3084. drivers/acpi/acpica/hwesleep.c +247 −0
  3085. drivers/acpi/acpica/hwgpe.c +3 −1
  3086. drivers/acpi/acpica/hwregs.c +13 −3
  3087. drivers/acpi/acpica/hwsleep.c +73 −328
  3088. drivers/acpi/acpica/hwtimer.c +2 −0
  3089. drivers/acpi/acpica/hwxface.c +14 −36
  3090. drivers/acpi/acpica/hwxfsleep.c +431 −0
  3091. drivers/acpi/acpica/nsdump.c +14 −1
  3092. drivers/acpi/acpica/nsdumpdv.c +1 −1
  3093. drivers/acpi/acpica/nspredef.c +2 −2
  3094. drivers/acpi/acpica/nsrepair.c +58 −101
  3095. drivers/acpi/acpica/nsutils.c +1 −1
  3096. drivers/acpi/acpica/tbfadt.c +4 −4
  3097. drivers/acpi/acpica/tbinstal.c +97 −20
  3098. drivers/acpi/acpica/tbutils.c +52 −43
  3099. drivers/acpi/acpica/utdecode.c +18 −16
  3100. drivers/acpi/acpica/utglobal.c +8 −1
  3101. drivers/acpi/acpica/utinit.c +32 −5
  3102. drivers/acpi/acpica/utxface.c +5 −1
  3103. drivers/acpi/apei/apei-base.c +40 −21
  3104. drivers/acpi/apei/cper.c +2 −0
  3105. drivers/acpi/apei/einj.c +13 −4
  3106. drivers/acpi/apei/erst.c +1 −1
  3107. drivers/acpi/bgrt.c +175 −0
  3108. drivers/acpi/bus.c +1 −0
  3109. drivers/acpi/ec.c +14 −4
  3110. drivers/acpi/ec_sys.c +1 −7
  3111. drivers/acpi/nvs.c +2 −2
  3112. drivers/acpi/osl.c +38 −86
  3113. drivers/acpi/power.c +164 −2
  3114. drivers/acpi/processor_driver.c +48 −15
  3115. drivers/acpi/processor_idle.c +32 −2
  3116. drivers/acpi/processor_thermal.c +37 −8
  3117. drivers/acpi/processor_throttling.c +2 −3
  3118. drivers/acpi/reboot.c +1 −2
  3119. drivers/acpi/scan.c +8 −4
  3120. drivers/acpi/sleep.c +68 −8
  3121. drivers/acpi/thermal.c +4 −4
  3122. drivers/acpi/video.c +31 −19
  3123. drivers/acpi/video_detect.c +1 −1
  3124. drivers/amba/bus.c +80 −67
  3125. drivers/atm/eni.c +0 −1
  3126. drivers/atm/firestream.c +0 −1
  3127. drivers/atm/horizon.c +0 −1
  3128. drivers/atm/idt77105.c +0 −1
  3129. drivers/atm/iphase.c +0 −1
  3130. drivers/atm/suni.c +0 −1
  3131. drivers/atm/zatm.c +0 −1
  3132. drivers/base/dma-buf.c +141 −24
  3133. drivers/base/firmware_class.c +108 −100
  3134. drivers/base/power/clock_ops.c +1 −0
  3135. drivers/base/power/common.c +1 −0
  3136. drivers/base/power/opp.c +1 −0
  3137. drivers/base/power/runtime.c +2 −1
  3138. drivers/base/regmap/regcache-lzo.c +1 −0
  3139. drivers/base/regmap/regcache-rbtree.c +9 −2
  3140. drivers/base/regmap/regcache.c +2 −0
  3141. drivers/base/regmap/regmap-debugfs.c +4 −9
  3142. drivers/base/regmap/regmap-irq.c +1 −0
  3143. drivers/base/soc.c +1 −3
  3144. drivers/bcma/Kconfig +1 −1
  3145. drivers/bcma/driver_pci_host.c +1 −0
  3146. drivers/block/cciss_scsi.c +2 −1
  3147. drivers/block/drbd/drbd_nl.c +1 −1
  3148. drivers/block/floppy.c +0 −37
  3149. drivers/block/hd.c +0 −1
  3150. drivers/block/mtip32xx/Kconfig +1 −1
  3151. drivers/block/mtip32xx/mtip32xx.c +664 −196
  3152. drivers/block/mtip32xx/mtip32xx.h +45 −13
  3153. drivers/block/nbd.c +148 −148
  3154. drivers/block/rbd.c +448 −282
  3155. drivers/block/rbd_types.h +0 −4
  3156. drivers/block/sunvdc.c +1 −4
  3157. drivers/block/virtio_blk.c +1 −0
  3158. drivers/block/xd.c +0 −1
  3159. drivers/block/xen-blkback/blkback.c +13 −37
  3160. drivers/block/xen-blkback/common.h +0 −6
  3161. drivers/block/xen-blkback/xenbus.c +32 −57
  3162. drivers/block/xen-blkfront.c +23 −21
  3163. drivers/bluetooth/ath3k.c +4 −0
  3164. drivers/bluetooth/bt3c_cs.c +0 −1
  3165. drivers/bluetooth/btmrvl_debugfs.c +10 −16
  3166. drivers/bluetooth/btuart_cs.c +0 −1
  3167. drivers/bluetooth/btusb.c +4 −1
  3168. drivers/bluetooth/dtl1_cs.c +0 −1
  3169. drivers/bluetooth/hci_ldisc.c +1 −1
  3170. drivers/char/agp/intel-agp.h +1 −0
  3171. drivers/char/agp/intel-gtt.c +2 −1
  3172. drivers/char/apm-emulation.c +1 −2
  3173. drivers/char/ds1302.c +0 −1
  3174. drivers/char/efirtc.c +0 −1
  3175. drivers/char/genrtc.c +0 −1
  3176. drivers/char/hpet.c +2 −3
  3177. drivers/char/hw_random/nomadik-rng.c +1 −12
  3178. drivers/char/hw_random/omap-rng.c +2 −0
  3179. drivers/char/ipmi/ipmi_devintf.c +0 −1
  3180. drivers/char/ipmi/ipmi_kcs_sm.c +2 −2
  3181. drivers/char/ipmi/ipmi_msghandler.c +131 −112
  3182. drivers/char/ipmi/ipmi_si_intf.c +26 −47
  3183. drivers/char/ipmi/ipmi_watchdog.c +14 −11
  3184. drivers/char/lp.c +1 −5
  3185. drivers/char/mbcs.c +0 −1
  3186. drivers/char/mspec.c +0 −1
  3187. drivers/char/mwave/3780i.c +0 −1
  3188. drivers/char/nvram.c +0 −1
  3189. drivers/char/nwflash.c +0 −1
  3190. drivers/char/pcmcia/synclink_cs.c +0 −1
  3191. drivers/char/random.c +8 −3
  3192. drivers/char/rtc.c +0 −1
  3193. drivers/char/sonypi.c +0 −1
  3194. drivers/char/tile-srom.c +6 −6
  3195. drivers/char/virtio_console.c +1 −7
  3196. drivers/char/xilinx_hwicap/xilinx_hwicap.c +0 −1
  3197. drivers/clk/Kconfig +37 −0
  3198. drivers/clk/Makefile +2 −0
  3199. drivers/clk/clk-divider.c +200 −0
  3200. drivers/clk/clk-fixed-rate.c +82 −0
  3201. drivers/clk/clk-gate.c +150 −0
  3202. drivers/clk/clk-mux.c +116 −0
  3203. drivers/clk/clk.c +1461 −0
  3204. drivers/clocksource/Kconfig +0 −1
  3205. drivers/clocksource/acpi_pm.c +8 −16
  3206. drivers/clocksource/tcb_clksrc.c +62 −28
  3207. drivers/cpufreq/Kconfig.arm +41 −2
  3208. drivers/cpufreq/Makefile +4 −1
  3209. drivers/cpufreq/cpufreq.c +24 −0
  3210. drivers/cpufreq/cpufreq_ondemand.c +57 −1
  3211. drivers/cpufreq/db8500-cpufreq.c +6 −9
  3212. drivers/cpufreq/exynos-cpufreq.c +6 −0
  3213. drivers/cpufreq/exynos4210-cpufreq.c +35 −35
  3214. drivers/cpufreq/exynos4x12-cpufreq.c +536 −0
  3215. drivers/cpufreq/exynos5250-cpufreq.c +347 −0
  3216. drivers/cpufreq/omap-cpufreq.c +67 −6
  3217. drivers/cpufreq/powernow-k7.c +0 −1
  3218. drivers/cpufreq/s3c2416-cpufreq.c +542 −0
  3219. drivers/cpufreq/s3c64xx-cpufreq.c +0 −7
  3220. drivers/cpuidle/cpuidle.c +92 −8
  3221. drivers/cpuidle/driver.c +1 −1
  3222. drivers/cpuidle/governors/menu.c +5 −2
  3223. drivers/cpuidle/sysfs.c +40 −0
  3224. drivers/devfreq/exynos4_bus.c +115 −115
  3225. drivers/dma/Kconfig +10 −2
  3226. drivers/dma/Makefile +1 −0
  3227. drivers/dma/amba-pl08x.c +16 −30
  3228. drivers/dma/at_hdmac.c +59 −52
  3229. drivers/dma/at_hdmac_regs.h +32 −2
  3230. drivers/dma/coh901318.c +12 −38
  3231. drivers/dma/dmaengine.c +18 −4
  3232. drivers/dma/dmaengine.h +89 −0
  3233. drivers/dma/dw_dmac.c +128 −100
  3234. drivers/dma/dw_dmac_regs.h +15 −1
  3235. drivers/dma/ep93xx_dma.c +10 −21
  3236. drivers/dma/fsldma.c +10 −18
  3237. drivers/dma/fsldma.h +0 −1
  3238. drivers/dma/imx-dma.c +820 −131
  3239. drivers/dma/imx-sdma.c +88 −100
  3240. drivers/dma/intel_mid_dma.c +15 −31
  3241. drivers/dma/intel_mid_dma_regs.h +0 −2
  3242. drivers/dma/ioat/dma.c +18 −19
  3243. drivers/dma/ioat/dma.h +3 −26
  3244. drivers/dma/ioat/dma_v2.c +11 −14
  3245. drivers/dma/ioat/dma_v2.h +2 −2
  3246. drivers/dma/ioat/dma_v3.c +52 −9
  3247. drivers/dma/iop-adma.c +15 −41
  3248. drivers/dma/ipu/ipu_idmac.c +8 −17
  3249. drivers/dma/mpc512x_dma.c +8 −17
  3250. drivers/dma/mv_xor.c +7 −27
  3251. drivers/dma/mv_xor.h +0 −3
  3252. drivers/dma/mxs-dma.c +37 −23
  3253. drivers/dma/pch_dma.c +9 −28
  3254. drivers/dma/pl330.c +2189 −129
  3255. drivers/dma/ppc4xx/adma.c +9 −40
  3256. drivers/dma/ppc4xx/adma.h +0 −2
  3257. drivers/dma/sa11x0-dma.c +1109 −0
  3258. drivers/dma/shdma.c +11 −22
  3259. drivers/dma/shdma.h +0 −1
  3260. drivers/dma/sirf-dma.c +9 −18
  3261. drivers/dma/ste_dma40.c +13 −28
  3262. drivers/dma/timb_dma.c +11 −26
  3263. drivers/dma/txx9dmac.c +10 −33
  3264. drivers/dma/txx9dmac.h +0 −1
  3265. drivers/edac/Kconfig +1 −1
  3266. drivers/edac/amd64_edac.c +36 −14
  3267. drivers/edac/amd76x_edac.c +1 −1
  3268. drivers/edac/e752x_edac.c +1 −1
  3269. drivers/edac/e7xxx_edac.c +1 −1
  3270. drivers/edac/edac_mc.c +3 −3
  3271. drivers/edac/edac_mc_sysfs.c +2 −2
  3272. drivers/edac/edac_stub.c +1 −0
  3273. drivers/edac/i3000_edac.c +1 −1
  3274. drivers/edac/i3200_edac.c +1 −1
  3275. drivers/edac/i5000_edac.c +1 −1
  3276. drivers/edac/i5100_edac.c +6 −9
  3277. drivers/edac/i5400_edac.c +39 −17
  3278. drivers/edac/i7300_edac.c +1 −1
  3279. drivers/edac/i7core_edac.c +1 −1
  3280. drivers/edac/i82443bxgx_edac.c +1 −1
  3281. drivers/edac/i82860_edac.c +1 −1
  3282. drivers/edac/i82875p_edac.c +1 −1
  3283. drivers/edac/i82975x_edac.c +1 −1
  3284. drivers/edac/mce_amd.c +66 −148
  3285. drivers/edac/mce_amd.h +6 −7
  3286. drivers/edac/mce_amd_inj.c +1 −0
  3287. drivers/edac/ppc4xx_edac.c +2 −2
  3288. drivers/edac/r82600_edac.c +1 −1
  3289. drivers/edac/sb_edac.c +32 −22
  3290. drivers/edac/tile_edac.c +4 −0
  3291. drivers/edac/x38_edac.c +1 −1
  3292. drivers/firewire/core-cdev.c +0 −1
  3293. drivers/firewire/core-device.c +0 −1
  3294. drivers/firewire/core-topology.c +0 −1
  3295. drivers/firewire/ohci.c +0 −1
  3296. drivers/firewire/sbp2.c +0 −1
  3297. drivers/gpio/Kconfig +14 −0
  3298. drivers/gpio/Makefile +2 −0
  3299. drivers/gpio/gpio-adp5588.c +1 −1
  3300. drivers/gpio/gpio-davinci.c +16 −10
  3301. drivers/gpio/gpio-ep93xx.c +0 −15
  3302. drivers/gpio/gpio-lpc32xx.c +18 −1
  3303. drivers/gpio/gpio-mc9s08dz60.c +161 −0
  3304. drivers/gpio/gpio-omap.c +630 −683
  3305. drivers/gpio/gpio-pl061.c +6 −1
  3306. drivers/gpio/gpio-pxa.c +2 −0
  3307. drivers/gpio/gpio-sa1100.c +1 −0
  3308. drivers/gpio/gpio-samsung.c +445 −42
  3309. drivers/gpio/gpio-sodaville.c +299 −0
  3310. drivers/gpio/gpio-stmpe.c +26 −17
  3311. drivers/gpio/gpio-tegra.c +93 −29
  3312. drivers/gpio/gpio-tps65910.c +18 −2
  3313. drivers/gpio/gpio-twl4030.c +67 −44
  3314. drivers/gpio/gpiolib.c +91 −7
  3315. drivers/gpu/drm/Kconfig +1 −0
  3316. drivers/gpu/drm/Makefile +1 −1
  3317. drivers/gpu/drm/drm_drv.c +4 −0
  3318. drivers/gpu/drm/drm_fb_helper.c +6 −2
  3319. drivers/gpu/drm/drm_fops.c +7 −0
  3320. drivers/gpu/drm/drm_gem.c +9 −0
  3321. drivers/gpu/drm/drm_prime.c +304 −0
  3322. drivers/gpu/drm/exynos/exynos_drm_buf.c +14 −33
  3323. drivers/gpu/drm/exynos/exynos_drm_core.c +8 −6
  3324. drivers/gpu/drm/exynos/exynos_drm_drv.h +5 −5
  3325. drivers/gpu/drm/exynos/exynos_drm_fimd.c +12 −8
  3326. drivers/gpu/drm/exynos/exynos_drm_gem.c +36 −9
  3327. drivers/gpu/drm/exynos/exynos_drm_gem.h +2 −0
  3328. drivers/gpu/drm/exynos/exynos_drm_hdmi.c +48 −59
  3329. drivers/gpu/drm/exynos/exynos_drm_hdmi.h +9 −14
  3330. drivers/gpu/drm/exynos/exynos_drm_plane.c +4 −0
  3331. drivers/gpu/drm/exynos/exynos_drm_vidi.c +12 −8
  3332. drivers/gpu/drm/exynos/exynos_hdmi.c +20 −22
  3333. drivers/gpu/drm/exynos/exynos_mixer.c +19 −21
  3334. drivers/gpu/drm/gma500/mdfld_dsi_output.c +4 −1
  3335. drivers/gpu/drm/i915/i915_debugfs.c +3 −11
  3336. drivers/gpu/drm/i915/i915_dma.c +19 −2
  3337. drivers/gpu/drm/i915/i915_drv.c +18 −4
  3338. drivers/gpu/drm/i915/i915_drv.h +22 −1
  3339. drivers/gpu/drm/i915/i915_gem.c +32 −7
  3340. drivers/gpu/drm/i915/i915_gem_execbuffer.c +1 −1
  3341. drivers/gpu/drm/i915/i915_gem_gtt.c +0 −9
  3342. drivers/gpu/drm/i915/i915_reg.h +4 −0
  3343. drivers/gpu/drm/i915/intel_bios.c +22 −1
  3344. drivers/gpu/drm/i915/intel_display.c +78 −28
  3345. drivers/gpu/drm/i915/intel_dp.c +35 −14
  3346. drivers/gpu/drm/i915/intel_drv.h +1 −1
  3347. drivers/gpu/drm/i915/intel_fb.c +10 −0
  3348. drivers/gpu/drm/i915/intel_i2c.c +1 −1
  3349. drivers/gpu/drm/i915/intel_lvds.c +8 −0
  3350. drivers/gpu/drm/i915/intel_ringbuffer.c +2 −2
  3351. drivers/gpu/drm/i915/intel_sprite.c +3 −1
  3352. drivers/gpu/drm/nouveau/Kconfig +1 −0
  3353. drivers/gpu/drm/nouveau/nouveau_bios.c +3 −2
  3354. drivers/gpu/drm/nouveau/nouveau_channel.c +5 −5
  3355. drivers/gpu/drm/nouveau/nouveau_connector.c +6 −3
  3356. drivers/gpu/drm/nouveau/nouveau_dma.h +2 −2
  3357. drivers/gpu/drm/nouveau/nouveau_i2c.c +3 −3
  3358. drivers/gpu/drm/nouveau/nouveau_state.c +2 −2
  3359. drivers/gpu/drm/radeon/atom.c +14 −1
  3360. drivers/gpu/drm/radeon/atom.h +1 −0
  3361. drivers/gpu/drm/radeon/atombios_crtc.c +5 −3
  3362. drivers/gpu/drm/radeon/atombios_dp.c +3 −0
  3363. drivers/gpu/drm/radeon/atombios_encoders.c +6 −2
  3364. drivers/gpu/drm/radeon/cayman_blit_shaders.c +1 −0
  3365. drivers/gpu/drm/radeon/evergreen_blit_shaders.c +1 −0
  3366. drivers/gpu/drm/radeon/evergreen_cs.c +96 −2
  3367. drivers/gpu/drm/radeon/evergreend.h +8 −0
  3368. drivers/gpu/drm/radeon/r100.c +1 −1
  3369. drivers/gpu/drm/radeon/r600.c +1 −1
  3370. drivers/gpu/drm/radeon/r600_blit_shaders.c +1 −0
  3371. drivers/gpu/drm/radeon/r600_cp.c +3 −3
  3372. drivers/gpu/drm/radeon/r600_cs.c +273 −118
  3373. drivers/gpu/drm/radeon/r600d.h +8 −0
  3374. drivers/gpu/drm/radeon/radeon_clocks.c +12 −12
  3375. drivers/gpu/drm/radeon/radeon_combios.c +4 −4
  3376. drivers/gpu/drm/radeon/radeon_i2c.c +4 −0
  3377. drivers/gpu/drm/radeon/radeon_legacy_encoders.c +6 −6
  3378. drivers/gpu/drm/radeon/radeon_object.c +12 −1
  3379. drivers/gpu/drm/radeon/reg_srcs/cayman +0 −1
  3380. drivers/gpu/drm/radeon/reg_srcs/evergreen +0 −1
  3381. drivers/gpu/drm/radeon/reg_srcs/r600 +0 −1
  3382. drivers/gpu/drm/radeon/si_blit_shaders.c +1 −0
  3383. drivers/gpu/drm/savage/savage_state.c +3 −3
  3384. drivers/gpu/drm/udl/udl_drv.c +1 −1
  3385. drivers/gpu/drm/udl/udl_drv.h +1 −0
  3386. drivers/gpu/drm/udl/udl_gem.c +14 −0
  3387. drivers/hid/hid-picolcd.c +2 −14
  3388. drivers/hid/hid-wiimote-debug.c +1 −7
  3389. drivers/hsi/Kconfig +19 −0
  3390. drivers/hsi/Makefile +6 −0
  3391. drivers/hsi/clients/Kconfig +13 −0
  3392. drivers/hsi/clients/Makefile +5 −0
  3393. drivers/hsi/clients/hsi_char.c +802 −0
  3394. drivers/hsi/hsi.c +494 −0
  3395. drivers/hsi/hsi_boardinfo.c +62 −0
  3396. drivers/hsi/hsi_core.h +35 −0
  3397. drivers/hwmon/Kconfig +24 −11
  3398. drivers/hwmon/Makefile +1 −0
  3399. drivers/hwmon/acpi_power_meter.c +3 −0
  3400. drivers/hwmon/ad7314.c +1 −0
  3401. drivers/hwmon/adm1031.c +8 −12
  3402. drivers/hwmon/f75375s.c +2 −0
  3403. drivers/hwmon/fam15h_power.c +5 −5
  3404. drivers/hwmon/fschmd.c +2 −2
  3405. drivers/hwmon/k10temp.c +4 −0
  3406. drivers/hwmon/lm63.c +337 −249
  3407. drivers/hwmon/lm90.c +65 −33
  3408. drivers/hwmon/max6639.c +11 −4
  3409. drivers/hwmon/mc13783-adc.c +79 −26
  3410. drivers/hwmon/mcp3021.c +171 −0
  3411. drivers/hwmon/pmbus/pmbus_core.c +8 −9
  3412. drivers/hwmon/smsc47b397.c +8 −6
  3413. drivers/hwmon/smsc47m1.c +10 −9
  3414. drivers/hwmon/w83627ehf.c +9 −9
  3415. drivers/hwmon/w83793.c +2 −2
  3416. drivers/hwmon/w83795.c +86 −46
  3417. drivers/i2c/algos/i2c-algo-bit.c +3 −2
  3418. drivers/i2c/algos/i2c-algo-pca.c +2 −1
  3419. drivers/i2c/algos/i2c-algo-pcf.c +2 −1
  3420. drivers/i2c/algos/i2c-algo-pcf.h +2 −1
  3421. drivers/i2c/busses/Kconfig +33 −12
  3422. drivers/i2c/busses/Makefile +3 −1
  3423. drivers/i2c/busses/i2c-acorn.c +0 −1
  3424. drivers/i2c/busses/i2c-designware-pcidrv.c +0 −1
  3425. drivers/i2c/busses/i2c-designware-platdrv.c +1 −1
  3426. drivers/i2c/busses/i2c-eg20t.c +21 −23
  3427. drivers/i2c/busses/i2c-gpio.c +76 −22
  3428. drivers/i2c/busses/i2c-i801.c +15 −12
  3429. drivers/i2c/busses/i2c-imx.c +2 −7
  3430. drivers/i2c/busses/i2c-isch.c +5 −5
  3431. drivers/i2c/busses/i2c-mpc.c +49 −14
  3432. drivers/i2c/busses/i2c-pxa.c +74 −21
  3433. drivers/i2c/busses/i2c-s3c2410.c +11 −3
  3434. drivers/i2c/busses/i2c-sirf.c +459 −0
  3435. drivers/i2c/busses/i2c-tegra.c +0 −1
  3436. drivers/i2c/busses/i2c-versatile.c +10 −0
  3437. drivers/i2c/busses/i2c-xlr.c +278 −0
  3438. drivers/i2c/i2c-boardinfo.c +2 −1
  3439. drivers/i2c/i2c-core.c +2 −1
  3440. drivers/i2c/i2c-core.h +2 −1
  3441. drivers/i2c/i2c-dev.c +2 −1
  3442. drivers/i2c/i2c-smbus.c +2 −1
  3443. drivers/i2c/muxes/pca9541.c +1 −12
  3444. drivers/i2c/muxes/pca954x.c +1 −12
  3445. drivers/ide/ide-cs.c +0 −1
  3446. drivers/ide/qd65xx.c +0 −1
  3447. drivers/idle/i7300_idle.c +1 −7
  3448. drivers/infiniband/core/sysfs.c +5 −4
  3449. drivers/infiniband/hw/ehca/ehca_reqs.c +0 −1
  3450. drivers/infiniband/hw/mlx4/main.c +5 −0
  3451. drivers/infiniband/ulp/srpt/ib_srpt.c +1 −0
  3452. drivers/input/input-compat.c +2 −2
  3453. drivers/input/input-compat.h +1 −1
  3454. drivers/input/joydev.c +0 −1
  3455. drivers/input/joystick/amijoy.c +3 −1
  3456. drivers/input/keyboard/gpio_keys.c +169 −90
  3457. drivers/input/keyboard/jornada720_kbd.c +1 −0
  3458. drivers/input/keyboard/tegra-kbc.c +1 −0
  3459. drivers/input/misc/88pm860x_onkey.c +26 −0
  3460. drivers/input/misc/da9052_onkey.c +2 −1
  3461. drivers/input/mouse/amimouse.c +0 −1
  3462. drivers/input/mouse/atarimouse.c +0 −1
  3463. drivers/input/mouse/elantech.c +8 −2
  3464. drivers/input/mouse/gpio_mouse.c +1 −1
  3465. drivers/input/mouse/sentelic.c +232 −70
  3466. drivers/input/mouse/sentelic.h +33 −2
  3467. drivers/input/mouse/trackpoint.c +8 −6
  3468. drivers/input/serio/ambakmi.c +1 −12
  3469. drivers/input/serio/ams_delta_serio.c +35 −21
  3470. drivers/input/serio/hp_sdc.c +0 −1
  3471. drivers/input/serio/maceps2.c +0 −1
  3472. drivers/input/serio/rpckbd.c +37 −8
  3473. drivers/input/serio/sa1111ps2.c +42 −18
  3474. drivers/input/tablet/Kconfig +1 −0
  3475. drivers/input/tablet/wacom.h +9 −0
  3476. drivers/input/tablet/wacom_sys.c +200 −31
  3477. drivers/input/tablet/wacom_wac.c +48 −1
  3478. drivers/input/tablet/wacom_wac.h +6 −0
  3479. drivers/input/touchscreen/Kconfig +1 −1
  3480. drivers/input/touchscreen/jornada720_ts.c +1 −0
  3481. drivers/input/touchscreen/mc13783_ts.c +10 −1
  3482. drivers/input/touchscreen/tps6507x-ts.c +1 −3
  3483. drivers/iommu/Kconfig +20 −0
  3484. drivers/iommu/Makefile +2 −0
  3485. drivers/iommu/amd_iommu.c +6 −4
  3486. drivers/iommu/amd_iommu_init.c +123 −64
  3487. drivers/iommu/amd_iommu_v2.c +13 −1
  3488. drivers/iommu/intel-iommu.c +5 −4
  3489. drivers/iommu/omap-iommu-debug.c +2 −8
  3490. drivers/iommu/tegra-gart.c +451 −0
  3491. drivers/iommu/tegra-smmu.c +1034 −0
  3492. drivers/isdn/gigaset/interface.c +1 −1
  3493. drivers/isdn/hardware/avm/avm_cs.c +0 −1
  3494. drivers/isdn/hardware/mISDN/avmfritz.c +1 −1
  3495. drivers/isdn/hardware/mISDN/hfcpci.c +1 −1
  3496. drivers/isdn/hardware/mISDN/hfcsusb.c +1 −1
  3497. drivers/isdn/hardware/mISDN/mISDNipac.c +1 −1
  3498. drivers/isdn/hardware/mISDN/mISDNisar.c +1 −1
  3499. drivers/isdn/hardware/mISDN/netjet.c +1 −1
  3500. drivers/isdn/hardware/mISDN/w6692.c +1 −1
  3501. drivers/isdn/hisax/avma1_cs.c +0 −1
  3502. drivers/isdn/hisax/elsa_cs.c +0 −1
  3503. drivers/isdn/hisax/sedlbauer_cs.c +0 −1
  3504. drivers/isdn/hisax/teles_cs.c +0 −1
  3505. drivers/isdn/i4l/isdn_bsdcomp.c +0 −1
  3506. drivers/isdn/pcbit/layer2.c +0 −1
  3507. drivers/leds/Kconfig +1 −8
  3508. drivers/leds/Makefile +0 −1
  3509. drivers/leds/leds-88pm860x.c +23 −0
  3510. drivers/leds/leds-ams-delta.c +0 −126
  3511. drivers/macintosh/macio-adb.c +0 −1
  3512. drivers/macintosh/therm_adt746x.c +0 −1
  3513. drivers/macintosh/therm_pm72.c +0 −1
  3514. drivers/macintosh/therm_windtunnel.c +0 −1
  3515. drivers/macintosh/via-cuda.c +0 −1
  3516. drivers/macintosh/via-macii.c +0 −1
  3517. drivers/macintosh/via-pmu.c +0 −1
  3518. drivers/macintosh/via-pmu68k.c +0 −1
  3519. drivers/macintosh/windfarm_lm75_sensor.c +0 −1
  3520. drivers/macintosh/windfarm_pm121.c +0 −1
  3521. drivers/macintosh/windfarm_pm81.c +0 −1
  3522. drivers/macintosh/windfarm_pm91.c +0 −1
  3523. drivers/macintosh/windfarm_smu_controls.c +0 −1
  3524. drivers/macintosh/windfarm_smu_sensors.c +0 −1
  3525. drivers/md/Kconfig +24 −4
  3526. drivers/md/Makefile +1 −0
  3527. drivers/md/bitmap.c +2 −3
  3528. drivers/md/dm-bufio.c +82 −26
  3529. drivers/md/dm-bufio.h +8 −0
  3530. drivers/md/dm-crypt.c +25 −21
  3531. drivers/md/dm-delay.c +5 −4
  3532. drivers/md/dm-exception-store.c +1 −1
  3533. drivers/md/dm-flakey.c +2 −1
  3534. drivers/md/dm-ioctl.c +3 −2
  3535. drivers/md/dm-linear.c +2 −1
  3536. drivers/md/dm-log.c +2 −1
  3537. drivers/md/dm-mpath.c +36 −16
  3538. drivers/md/dm-queue-length.c +2 −1
  3539. drivers/md/dm-raid.c +51 −2
  3540. drivers/md/dm-raid1.c +8 −4
  3541. drivers/md/dm-round-robin.c +2 −1
  3542. drivers/md/dm-service-time.c +3 −2
  3543. drivers/md/dm-stripe.c +2 −1
  3544. drivers/md/dm-table.c +5 −4
  3545. drivers/md/dm-thin-metadata.c +4 −1
  3546. drivers/md/dm-thin-metadata.h +13 −0
  3547. drivers/md/dm-thin.c +508 −172
  3548. drivers/md/dm-verity.c +913 −0
  3549. drivers/md/dm.c +1 −0
  3550. drivers/md/linear.c +8 −1
  3551. drivers/md/persistent-data/dm-btree-internal.h +2 −5
  3552. drivers/md/persistent-data/dm-btree-remove.c +113 −89
  3553. drivers/md/persistent-data/dm-btree.c +13 −14
  3554. drivers/md/persistent-data/dm-space-map-common.c +0 −3
  3555. drivers/md/raid0.c +25 −2
  3556. drivers/md/raid1.c +11 −5
  3557. drivers/md/raid10.c +3 −3
  3558. drivers/md/raid5.c +32 −27
  3559. drivers/media/dvb/dvb-core/dmxdev.c +0 −1
  3560. drivers/media/dvb/dvb-core/dvb_frontend.c +11 −1
  3561. drivers/media/dvb/dvb-usb/it913x.c +40 −14
  3562. drivers/media/dvb/firewire/firedtv-fw.c +0 −1
  3563. drivers/media/dvb/ttpci/av7110.c +0 −1
  3564. drivers/media/media-devnode.c +0 −1
  3565. drivers/media/video/davinci/vpbe_osd.c +0 −1
  3566. drivers/media/video/davinci/vpbe_venc.c +0 −1
  3567. drivers/media/video/ivtv/ivtv-driver.h +0 −1
  3568. drivers/media/video/ivtv/ivtv-ioctl.c +2 −2
  3569. drivers/media/video/mx3_camera.c +1 −1
  3570. drivers/media/video/timblogiw.c +1 −1
  3571. drivers/media/video/uvc/uvc_video.c +32 −18
  3572. drivers/media/video/v4l2-common.c +0 −1
  3573. drivers/media/video/v4l2-dev.c +0 −1
  3574. drivers/message/fusion/mptbase.c +1 −1
  3575. drivers/message/i2o/i2o_scsi.c +0 −1
  3576. drivers/mfd/88pm860x-core.c +106 −4
  3577. drivers/mfd/88pm860x-i2c.c +25 −0
  3578. drivers/mfd/Kconfig +55 −4
  3579. drivers/mfd/Makefile +4 −0
  3580. drivers/mfd/aat2870-core.c +1 −8
  3581. drivers/mfd/ab3100-core.c +1 −7
  3582. drivers/mfd/ab8500-core.c +285 −90
  3583. drivers/mfd/ab8500-i2c.c +27 −3
  3584. drivers/mfd/anatop-mfd.c +137 −0
  3585. drivers/mfd/asic3.c +6 −0
  3586. drivers/mfd/da9052-core.c +0 −3
  3587. drivers/mfd/da9052-i2c.c +7 −4
  3588. drivers/mfd/da9052-spi.c +6 −3
  3589. drivers/mfd/db8500-prcmu.c +887 −334
  3590. drivers/mfd/dbx500-prcmu-regs.h +88 −42
  3591. drivers/mfd/mc13xxx-core.c +9 −2
  3592. drivers/mfd/mcp-core.c +14 −37
  3593. drivers/mfd/mcp-sa11x0.c +127 −72
  3594. drivers/mfd/mfd-core.c +1 −1
  3595. drivers/mfd/omap-usb-host.c +3 −4
  3596. drivers/mfd/pcf50633-core.c +1 −7
  3597. drivers/mfd/pcf50633-gpio.c +1 −26
  3598. drivers/mfd/pcf50633-irq.c +1 −6
  3599. drivers/mfd/rc5t583-irq.c +408 −0
  3600. drivers/mfd/rc5t583.c +386 −0
  3601. drivers/mfd/s5m-core.c +45 −13
  3602. drivers/mfd/s5m-irq.c +11 −3
  3603. drivers/mfd/sm501.c +1 −9
  3604. drivers/mfd/stmpe.c +96 −38
  3605. drivers/mfd/tps65090.c +387 −0
  3606. drivers/mfd/tps65217.c +242 −0
  3607. drivers/mfd/tps65910-irq.c +11 −0
  3608. drivers/mfd/tps65910.c +46 −77
  3609. drivers/mfd/twl-core.c +69 −84
  3610. drivers/mfd/twl-core.h +2 −2
  3611. drivers/mfd/twl4030-irq.c +60 −47
  3612. drivers/mfd/twl6030-irq.c +54 −32
  3613. drivers/mfd/ucb1x00-assabet.c +39 −7
  3614. drivers/mfd/ucb1x00-core.c +233 −200
  3615. drivers/mfd/ucb1x00-ts.c +31 −8
  3616. drivers/mfd/wm831x-spi.c +1 −1
  3617. drivers/mfd/wm8400-core.c +1 −2
  3618. drivers/mfd/wm8994-core.c +1 −1
  3619. drivers/mfd/wm8994-regmap.c +3 −18
  3620. drivers/misc/atmel_tclib.c +54 −10
  3621. drivers/misc/ibmasm/ibmasmfs.c +1 −7
  3622. drivers/misc/kgdbts.c +115 −45
  3623. drivers/misc/sgi-gru/gru_instructions.h +1 −0
  3624. drivers/misc/sgi-xp/xp.h +0 −1
  3625. drivers/mmc/card/block.c +17 −32
  3626. drivers/mmc/core/bus.c +15 −2
  3627. drivers/mmc/core/cd-gpio.c +9 −4
  3628. drivers/mmc/core/core.c +64 −198
  3629. drivers/mmc/core/host.c +0 −1
  3630. drivers/mmc/core/host.h +0 −1
  3631. drivers/mmc/core/mmc.c +54 −31
  3632. drivers/mmc/core/mmc_ops.c +8 −4
  3633. drivers/mmc/core/sdio_bus.c +9 −3
  3634. drivers/mmc/host/Kconfig +26 −1
  3635. drivers/mmc/host/Makefile +2 −0
  3636. drivers/mmc/host/at91_mci.c +0 −1
  3637. drivers/mmc/host/atmel-mci-regs.h +1 −0
  3638. drivers/mmc/host/atmel-mci.c +52 −26
  3639. drivers/mmc/host/davinci_mmc.c +55 −11
  3640. drivers/mmc/host/dw_mmc-pci.c +158 −0
  3641. drivers/mmc/host/dw_mmc-pltfm.c +134 −0
  3642. drivers/mmc/host/dw_mmc.c +152 −128
  3643. drivers/mmc/host/dw_mmc.h +7 −0
  3644. drivers/mmc/host/mmci.c +126 −58
  3645. drivers/mmc/host/mmci.h +3 −12
  3646. drivers/mmc/host/mxcmmc.c +4 −1
  3647. drivers/mmc/host/mxs-mmc.c +7 −7
  3648. drivers/mmc/host/omap_hsmmc.c +195 −279
  3649. drivers/mmc/host/sdhci-dove.c +1 −0
  3650. drivers/mmc/host/sdhci-esdhc-imx.c +3 −3
  3651. drivers/mmc/host/sdhci-of-esdhc.c +35 −2
  3652. drivers/mmc/host/sdhci-pci.c +40 −1
  3653. drivers/mmc/host/sdhci-s3c.c +127 −36
  3654. drivers/mmc/host/sdhci-spear.c +2 −7
  3655. drivers/mmc/host/sdhci-tegra.c +87 −14
  3656. drivers/mmc/host/sdhci.c +32 −11
  3657. drivers/mmc/host/sdhci.h +2 −0
  3658. drivers/mmc/host/sh_mmcif.c +6 −13
  3659. drivers/mmc/host/sh_mobile_sdhi.c +24 −5
  3660. drivers/mmc/host/tmio_mmc.h +4 −5
  3661. drivers/mmc/host/tmio_mmc_dma.c +2 −2
  3662. drivers/mmc/host/tmio_mmc_pio.c +52 −56
  3663. drivers/mtd/Kconfig +1 −4
  3664. drivers/mtd/chips/cfi_cmdset_0001.c +41 −42
  3665. drivers/mtd/chips/cfi_cmdset_0002.c +252 −31
  3666. drivers/mtd/chips/cfi_cmdset_0020.c +9 −24
  3667. drivers/mtd/chips/cfi_util.c +0 −6
  3668. drivers/mtd/chips/fwh_lock.h +2 −2
  3669. drivers/mtd/chips/map_absent.c +4 −6
  3670. drivers/mtd/chips/map_ram.c +5 −9
  3671. drivers/mtd/chips/map_rom.c +6 −7
  3672. drivers/mtd/devices/Kconfig +8 −0
  3673. drivers/mtd/devices/Makefile +1 −0
  3674. drivers/mtd/devices/block2mtd.c +6 −22
  3675. drivers/mtd/devices/doc2000.c +7 −18
  3676. drivers/mtd/devices/doc2001.c +7 −15
  3677. drivers/mtd/devices/doc2001plus.c +7 −15
  3678. drivers/mtd/devices/docg3.c +115 −86
  3679. drivers/mtd/devices/docg3.h +18 −2
  3680. drivers/mtd/devices/lart.c +4 −13
  3681. drivers/mtd/devices/m25p80.c +6 −50
  3682. drivers/mtd/devices/ms02-nv.c +2 −10
  3683. drivers/mtd/devices/mtd_dataflash.c +9 −41
  3684. drivers/mtd/devices/mtdram.c +8 −27
  3685. drivers/mtd/devices/phram.c +37 −39
  3686. drivers/mtd/devices/pmc551.c +47 −53
  3687. drivers/mtd/devices/slram.c +8 −34
  3688. drivers/mtd/devices/spear_smi.c +1147 −0
  3689. drivers/mtd/devices/sst25l.c +8 −38
  3690. drivers/mtd/inftlcore.c +1 −1
  3691. drivers/mtd/lpddr/lpddr_cmds.c +17 −20
  3692. drivers/mtd/maps/Kconfig +1 −0
  3693. drivers/mtd/maps/bfin-async-flash.c +2 −2
  3694. drivers/mtd/maps/dc21285.c +1 −1
  3695. drivers/mtd/maps/gpio-addr-flash.c +2 −2
  3696. drivers/mtd/maps/h720x-flash.c +2 −2
  3697. drivers/mtd/maps/impa7.c +1 −1
  3698. drivers/mtd/maps/intel_vr_nor.c +1 −1
  3699. drivers/mtd/maps/ixp2000.c +1 −1
  3700. drivers/mtd/maps/ixp4xx.c +4 −1
  3701. drivers/mtd/maps/l440gx.c +9 −5
  3702. drivers/mtd/maps/lantiq-flash.c +4 −2
  3703. drivers/mtd/maps/latch-addr-flash.c +3 −2
  3704. drivers/mtd/maps/pcmciamtd.c +12 −2
  3705. drivers/mtd/maps/physmap.c +21 −3
  3706. drivers/mtd/maps/plat-ram.c +3 −2
  3707. drivers/mtd/maps/pxa2xx-flash.c +2 −1
  3708. drivers/mtd/maps/rbtx4939-flash.c +2 −2
  3709. drivers/mtd/maps/sa1100-flash.c +15 −115
  3710. drivers/mtd/maps/solutionengine.c +2 −2
  3711. drivers/mtd/maps/uclinux.c +1 −1
  3712. drivers/mtd/maps/vmu-flash.c +3 −11
  3713. drivers/mtd/maps/wr_sbc82xx_flash.c +1 −1
  3714. drivers/mtd/mtd_blkdevs.c +1 −0
  3715. drivers/mtd/mtdblock.c +6 −2
  3716. drivers/mtd/mtdchar.c +28 −49
  3717. drivers/mtd/mtdconcat.c +24 −82
  3718. drivers/mtd/mtdcore.c +263 −8
  3719. drivers/mtd/mtdoops.c +4 −5
  3720. drivers/mtd/mtdpart.c +84 −116
  3721. drivers/mtd/nand/Kconfig +23 −2
  3722. drivers/mtd/nand/Makefile +1 −0
  3723. drivers/mtd/nand/alauda.c +5 −4
  3724. drivers/mtd/nand/ams-delta.c +52 −22
  3725. drivers/mtd/nand/atmel_nand.c +99 −38
  3726. drivers/mtd/nand/bcm_umi_nand.c +9 −2
  3727. drivers/mtd/nand/bf5xx_nand.c +2 −0
  3728. drivers/mtd/nand/cafe_nand.c +2 −1
  3729. drivers/mtd/nand/cmx270_nand.c +1 −1
  3730. drivers/mtd/nand/cs553x_nand.c +3 −1
  3731. drivers/mtd/nand/davinci_nand.c +3 −2
  3732. drivers/mtd/nand/denali.c +3 −0
  3733. drivers/mtd/nand/diskonchip.c +1 −0
  3734. drivers/mtd/nand/docg4.c +1377 −0
  3735. drivers/mtd/nand/fsl_elbc_nand.c +6 −0
  3736. drivers/mtd/nand/fsmc_nand.c +675 −249
  3737. drivers/mtd/nand/gpmi-nand/gpmi-lib.c +25 −18
  3738. drivers/mtd/nand/gpmi-nand/gpmi-nand.c +7 −7
  3739. drivers/mtd/nand/gpmi-nand/gpmi-nand.h +1 −1
  3740. drivers/mtd/nand/h1910.c +2 −2
  3741. drivers/mtd/nand/jz4740_nand.c +8 −3
  3742. drivers/mtd/nand/mxc_nand.c +9 −2
  3743. drivers/mtd/nand/nand_base.c +99 −95
  3744. drivers/mtd/nand/ndfc.c +1 −0
  3745. drivers/mtd/nand/omap2.c +3 −2
  3746. drivers/mtd/nand/orion_nand.c +2 −2
  3747. drivers/mtd/nand/plat_nand.c +3 −2
  3748. drivers/mtd/nand/ppchameleonevb.c +8 −10
  3749. drivers/mtd/nand/pxa3xx_nand.c +4 −2
  3750. drivers/mtd/nand/r852.c +1 −0
  3751. drivers/mtd/nand/rtc_from4.c +1 −0
  3752. drivers/mtd/nand/s3c2410.c +3 −2
  3753. drivers/mtd/nand/sh_flctl.c +78 −28
  3754. drivers/mtd/nand/sharpsl.c +3 −2
  3755. drivers/mtd/nand/tmio_nand.c +4 −3
  3756. drivers/mtd/nand/txx9ndfmc.c +2 −1
  3757. drivers/mtd/nftlcore.c +0 −7
  3758. drivers/mtd/onenand/Kconfig +1 −0
  3759. drivers/mtd/onenand/generic.c +3 −3
  3760. drivers/mtd/onenand/omap2.c +3 −3
  3761. drivers/mtd/onenand/onenand_base.c +22 −46
  3762. drivers/mtd/onenand/samsung.c +3 −3
  3763. drivers/mtd/redboot.c +2 −4
  3764. drivers/mtd/sm_ftl.c +1 −1
  3765. drivers/mtd/ubi/debug.c +1 −9
  3766. drivers/mtd/ubi/gluebi.c +5 −24
  3767. drivers/net/Space.c +2 −0
  3768. drivers/net/appletalk/cops.c +0 −1
  3769. drivers/net/appletalk/ltpc.c +0 −1
  3770. drivers/net/arcnet/com20020_cs.c +0 −1
  3771. drivers/net/bonding/bond_main.c +58 −11
  3772. drivers/net/caif/caif_spi.c +2 −8
  3773. drivers/net/can/slcan.c +0 −1
  3774. drivers/net/cris/eth_v10.c +0 −1
  3775. drivers/net/eql.c +4 −3
  3776. drivers/net/ethernet/3com/3c574_cs.c +0 −1
  3777. drivers/net/ethernet/3com/3c589_cs.c +0 −1
  3778. drivers/net/ethernet/8390/3c503.c +0 −1
  3779. drivers/net/ethernet/8390/ac3200.c +0 −1
  3780. drivers/net/ethernet/8390/apne.c +0 −1
  3781. drivers/net/ethernet/8390/ax88796.c +0 −1
  3782. drivers/net/ethernet/8390/axnet_cs.c +0 −1
  3783. drivers/net/ethernet/8390/e2100.c +0 −1
  3784. drivers/net/ethernet/8390/es3210.c +0 −1
  3785. drivers/net/ethernet/8390/etherh.c +1 −1
  3786. drivers/net/ethernet/8390/hp-plus.c +0 −1
  3787. drivers/net/ethernet/8390/hp.c +0 −1
  3788. drivers/net/ethernet/8390/lib8390.c +0 −1
  3789. drivers/net/ethernet/8390/lne390.c +0 −1
  3790. drivers/net/ethernet/8390/mac8390.c +0 −1
  3791. drivers/net/ethernet/8390/ne-h8300.c +0 −1
  3792. drivers/net/ethernet/8390/ne.c +0 −1
  3793. drivers/net/ethernet/8390/ne2.c +0 −1
  3794. drivers/net/ethernet/8390/ne2k-pci.c +0 −1
  3795. drivers/net/ethernet/8390/ne3210.c +0 −1
  3796. drivers/net/ethernet/8390/pcnet_cs.c +0 −1
  3797. drivers/net/ethernet/8390/smc-mca.c +0 −1
  3798. drivers/net/ethernet/8390/smc-ultra.c +0 −1
  3799. drivers/net/ethernet/8390/smc-ultra32.c +0 −1
  3800. drivers/net/ethernet/8390/stnic.c +0 −1
  3801. drivers/net/ethernet/8390/wd.c +0 −1
  3802. drivers/net/ethernet/8390/zorro8390.c +0 −1
  3803. drivers/net/ethernet/alteon/acenic.c +0 −1
  3804. drivers/net/ethernet/amd/7990.c +0 −1
  3805. drivers/net/ethernet/amd/am79c961a.c +0 −1
  3806. drivers/net/ethernet/amd/amd8111e.c +0 −1
  3807. drivers/net/ethernet/amd/declance.c +0 −1
  3808. drivers/net/ethernet/amd/hplance.c +0 −1
  3809. drivers/net/ethernet/amd/mvme147.c +0 −1
  3810. drivers/net/ethernet/amd/nmclan_cs.c +0 −1
  3811. drivers/net/ethernet/amd/sunlance.c +0 −1
  3812. drivers/net/ethernet/broadcom/bnx2x/bnx2x.h +7 −0
  3813. drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +24 −17
  3814. drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h +3 −0
  3815. drivers/net/ethernet/broadcom/bnx2x/bnx2x_fw_defs.h +55 −55
  3816. drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h +3 −0
  3817. drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c +112 −36
  3818. drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.h +2 −0
  3819. drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +374 −90
  3820. drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h +12 −0
  3821. drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c +1 −1
  3822. drivers/net/ethernet/broadcom/tg3.c +3 −2
  3823. drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +1 −8
  3824. drivers/net/ethernet/cirrus/Kconfig +11 −8
  3825. drivers/net/ethernet/cirrus/cs89x0.c +122 −27
  3826. drivers/net/ethernet/cirrus/mac89x0.c +0 −1
  3827. drivers/net/ethernet/dlink/de600.c +0 −1
  3828. drivers/net/ethernet/dlink/de620.c +0 −1
  3829. drivers/net/ethernet/freescale/fsl_pq_mdio.c +6 −6
  3830. drivers/net/ethernet/freescale/gianfar.c +7 −32
  3831. drivers/net/ethernet/freescale/gianfar.h +1 −1
  3832. drivers/net/ethernet/freescale/ucc_geth.c +4 −2
  3833. drivers/net/ethernet/fujitsu/at1700.c +0 −1
  3834. drivers/net/ethernet/fujitsu/eth16i.c +0 −1
  3835. drivers/net/ethernet/fujitsu/fmvj18x_cs.c +0 −1
  3836. drivers/net/ethernet/i825xx/3c507.c +0 −1
  3837. drivers/net/ethernet/i825xx/3c527.c +0 −1
  3838. drivers/net/ethernet/i825xx/eepro.c +0 −1
  3839. drivers/net/ethernet/i825xx/eexpress.c +0 −1
  3840. drivers/net/ethernet/i825xx/ether1.c +0 −1
  3841. drivers/net/ethernet/i825xx/znet.c +0 −1
  3842. drivers/net/ethernet/ibm/ibmveth.c +2 −5
  3843. drivers/net/ethernet/intel/e1000/e1000_main.c +25 −15
  3844. drivers/net/ethernet/intel/e1000e/e1000.h +6 −0
  3845. drivers/net/ethernet/intel/e1000e/netdev.c +32 −1
  3846. drivers/net/ethernet/intel/igb/igb_main.c +6 −1
  3847. drivers/net/ethernet/intel/igbvf/netdev.c +6 −1
  3848. drivers/net/ethernet/intel/ixgb/ixgb_main.c +3 −3
  3849. drivers/net/ethernet/intel/ixgbe/ixgbe.h +1 −1
  3850. drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c +80 −84
  3851. drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +8 −5
  3852. drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +5 −2
  3853. drivers/net/ethernet/korina.c +0 −1
  3854. drivers/net/ethernet/marvell/mv643xx_eth.c +0 −1
  3855. drivers/net/ethernet/marvell/pxa168_eth.c +0 −1
  3856. drivers/net/ethernet/marvell/sky2.c +15 −3
  3857. drivers/net/ethernet/mellanox/mlx4/mlx4_en.h +3 −2
  3858. drivers/net/ethernet/micrel/ks8842.c +2 −2
  3859. drivers/net/ethernet/natsemi/jazzsonic.c +0 −1
  3860. drivers/net/ethernet/natsemi/macsonic.c +0 −1
  3861. drivers/net/ethernet/natsemi/ns83820.c +0 −1
  3862. drivers/net/ethernet/neterion/s2io.c +0 −1
  3863. drivers/net/ethernet/nvidia/forcedeth.c +0 −1
  3864. drivers/net/ethernet/nxp/lpc_eth.c +1 −1
  3865. drivers/net/ethernet/qlogic/qlcnic/qlcnic.h +2 −2
  3866. drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +3 −1
  3867. drivers/net/ethernet/realtek/atp.c +0 −1
  3868. drivers/net/ethernet/realtek/r8169.c +3 −1
  3869. drivers/net/ethernet/renesas/Kconfig +3 −2
  3870. drivers/net/ethernet/renesas/sh_eth.c +18 −4
  3871. drivers/net/ethernet/renesas/sh_eth.h +10 −5
  3872. drivers/net/ethernet/seeq/ether3.c +0 −1
  3873. drivers/net/ethernet/seeq/seeq8005.c +0 −1
  3874. drivers/net/ethernet/sfc/mtd.c +5 −5
  3875. drivers/net/ethernet/smsc/smc91c92_cs.c +0 −1
  3876. drivers/net/ethernet/smsc/smc91x.c +1 −1
  3877. drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +4 −2
  3878. drivers/net/ethernet/sun/cassini.c +0 −1
  3879. drivers/net/ethernet/sun/sunbmac.c +0 −1
  3880. drivers/net/ethernet/sun/sungem.c +0 −1
  3881. drivers/net/ethernet/sun/sunhme.c +0 −1
  3882. drivers/net/ethernet/sun/sunqe.c +0 −1
  3883. drivers/net/ethernet/sun/sunvnet.c +1 −4
  3884. drivers/net/ethernet/tile/tilepro.c +51 −26
  3885. drivers/net/ethernet/tundra/tsi108_eth.c +0 −1
  3886. drivers/net/ethernet/via/via-rhine.c +7 −5
  3887. drivers/net/ethernet/xircom/xirc2ps_cs.c +0 −1
  3888. drivers/net/hamradio/6pack.c +0 −1
  3889. drivers/net/hamradio/baycom_par.c +0 −1
  3890. drivers/net/hamradio/bpqether.c +0 −1
  3891. drivers/net/hamradio/mkiss.c +0 −1
  3892. drivers/net/hamradio/scc.c +0 −1
  3893. drivers/net/hamradio/yam.c +0 −1
  3894. drivers/net/hippi/rrunner.c +0 −1
  3895. drivers/net/irda/Kconfig +1 −1
  3896. drivers/net/irda/donauboe.c +0 −1
  3897. drivers/net/irda/sa1100_ir.c +533 −424
  3898. drivers/net/loopback.c +0 −1
  3899. drivers/net/phy/icplus.c +2 −1
  3900. drivers/net/plip/plip.c +0 −1
  3901. drivers/net/ppp/ppp_generic.c +9 −5
  3902. drivers/net/rionet.c +6 −5
  3903. drivers/net/slip/slhc.c +0 −1
  3904. drivers/net/slip/slip.c +0 −1
  3905. drivers/net/tokenring/3c359.c +0 −1
  3906. drivers/net/tokenring/abyss.c +0 −1
  3907. drivers/net/tokenring/ibmtr_cs.c +0 −1
  3908. drivers/net/tokenring/lanstreamer.c +0 −1
  3909. drivers/net/tokenring/madgemc.c +0 −1
  3910. drivers/net/tokenring/olympic.c +0 −1
  3911. drivers/net/tokenring/proteon.c +0 −1
  3912. drivers/net/tokenring/skisa.c +0 −1
  3913. drivers/net/tokenring/smctr.c +0 −1
  3914. drivers/net/tokenring/tms380tr.c +0 −1
  3915. drivers/net/tokenring/tmspci.c +0 −1
  3916. drivers/net/tun.c +0 −1
  3917. drivers/net/usb/cdc-phonet.c +4 −2
  3918. drivers/net/usb/cdc_eem.c +1 −0
  3919. drivers/net/usb/qmi_wwan.c +36 −0
  3920. drivers/net/usb/rtl8150.c +0 −26
  3921. drivers/net/usb/zaurus.c +5 −0
  3922. drivers/net/virtio_net.c +4 −3
  3923. drivers/net/wan/Kconfig +2 −2
  3924. drivers/net/wan/dlci.c +0 −1
  3925. drivers/net/wan/dscc4.c +0 −1
  3926. drivers/net/wan/hd64570.c +0 −1
  3927. drivers/net/wan/hd64572.c +0 −1
  3928. drivers/net/wan/lapbether.c +0 −1
  3929. drivers/net/wan/sdla.c +0 −1
  3930. drivers/net/wan/x25_asy.c +0 −1
  3931. drivers/net/wimax/i2400m/debugfs.c +2 −13
  3932. drivers/net/wimax/i2400m/netdev.c +2 −1
  3933. drivers/net/wimax/i2400m/usb.c +18 −0
  3934. drivers/net/wireless/airo.c +0 −1
  3935. drivers/net/wireless/airo_cs.c +0 −1
  3936. drivers/net/wireless/ath/ath5k/debug.c +8 −15
  3937. drivers/net/wireless/ath/ath6kl/debug.c +18 −24
  3938. drivers/net/wireless/ath/ath9k/calib.c +2 −3
  3939. drivers/net/wireless/ath/ath9k/debug.c +16 −21
  3940. drivers/net/wireless/ath/ath9k/dfs_debug.c +1 −8
  3941. drivers/net/wireless/ath/ath9k/htc_drv_debug.c +10 −16
  3942. drivers/net/wireless/ath/ath9k/init.c +1 −1
  3943. drivers/net/wireless/ath/ath9k/main.c +5 −7
  3944. drivers/net/wireless/ath/ath9k/rc.c +1 −7
  3945. drivers/net/wireless/ath/ath9k/recv.c +2 −2
  3946. drivers/net/wireless/ath/carl9170/debug.c +1 −6
  3947. drivers/net/wireless/atmel.c +0 −1
  3948. drivers/net/wireless/atmel_cs.c +0 −1
  3949. drivers/net/wireless/b43/debugfs.c +1 −7
  3950. drivers/net/wireless/b43legacy/debugfs.c +1 −7
  3951. drivers/net/wireless/ipw2x00/ipw2200.c +2 −2
  3952. drivers/net/wireless/iwlegacy/3945-mac.c +0 −2
  3953. drivers/net/wireless/iwlegacy/3945-rs.c +1 −7
  3954. drivers/net/wireless/iwlegacy/3945.c +2 −1
  3955. drivers/net/wireless/iwlegacy/4965-mac.c +2 −3
  3956. drivers/net/wireless/iwlegacy/4965-rs.c +3 −9
  3957. drivers/net/wireless/iwlegacy/common.c +18 −13
  3958. drivers/net/wireless/iwlegacy/debug.c +3 −9
  3959. drivers/net/wireless/iwlwifi/iwl-agn-rs.c +3 −8
  3960. drivers/net/wireless/iwlwifi/iwl-agn-rx.c +1 −1
  3961. drivers/net/wireless/iwlwifi/iwl-debugfs.c +3 −9
  3962. drivers/net/wireless/iwlwifi/iwl-trans-pcie.c +3 −9
  3963. drivers/net/wireless/iwmc3200wifi/debugfs.c +4 −10
  3964. drivers/net/wireless/iwmc3200wifi/sdio.c +1 −8
  3965. drivers/net/wireless/libertas/debugfs.c +2 −8
  3966. drivers/net/wireless/mwifiex/debugfs.c +3 −15
  3967. drivers/net/wireless/orinoco/main.c +8 −0
  3968. drivers/net/wireless/prism54/islpci_mgt.c +0 −1
  3969. drivers/net/wireless/ray_cs.c +0 −1
  3970. drivers/net/wireless/rt2x00/rt2800usb.c +8 −2
  3971. drivers/net/wireless/rt2x00/rt2x00dev.c +1 −5
  3972. drivers/net/wireless/rtlwifi/base.c +4 −1
  3973. drivers/net/wireless/rtlwifi/pci.c +6 −1
  3974. drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c +1 −1
  3975. drivers/net/wireless/rtlwifi/rtl8192de/phy.c +1 −1
  3976. drivers/net/wireless/rtlwifi/rtl8192de/sw.c +0 −6
  3977. drivers/net/wireless/rtlwifi/usb.c +16 −18
  3978. drivers/net/wireless/rtlwifi/wifi.h +5 −1
  3979. drivers/net/wireless/wl1251/debugfs.c +4 −10
  3980. drivers/net/wireless/wl12xx/debugfs.c +16 −22
  3981. drivers/net/wireless/wl3501_cs.c +0 −1
  3982. drivers/net/xen-netfront.c +4 −0
  3983. drivers/nubus/nubus.c +0 −1
  3984. drivers/of/Kconfig +4 −0
  3985. drivers/of/Makefile +1 −0
  3986. drivers/of/gpio.c +7 −6
  3987. drivers/of/of_mtd.c +85 −0
  3988. drivers/of/platform.c +3 −3
  3989. drivers/oprofile/oprofilefs.c +3 −11
  3990. drivers/parisc/dino.c +6 −22
  3991. drivers/parisc/iosapic.c +0 −1
  3992. drivers/parisc/lba_pci.c +6 −26
  3993. drivers/pci/Kconfig +13 −0
  3994. drivers/pci/bus.c +19 −11
  3995. drivers/pci/hotplug/acpiphp_glue.c +15 −18
  3996. drivers/pci/hotplug/cpci_hotplug_pci.c +1 −1
  3997. drivers/pci/hotplug/cpcihp_generic.c +1 −1
  3998. drivers/pci/hotplug/cpqphp_pci.c +1 −1
  3999. drivers/pci/hotplug/fakephp.c +1 −1
  4000. drivers/pci/hotplug/ibmphp_core.c +1 −1
  4001. drivers/pci/hotplug/ibmphp_ebda.c +4 −2
  4002. drivers/pci/hotplug/pciehp_hpc.c +109 −24
  4003. drivers/pci/hotplug/pciehp_pci.c +1 −1
  4004. drivers/pci/hotplug/rpadlpar_core.c +1 −1
  4005. drivers/pci/hotplug/sgi_hotplug.c +1 −1
  4006. drivers/pci/hotplug/shpchp_pci.c +1 −1
  4007. drivers/pci/iov.c +9 −3
  4008. drivers/pci/pci-acpi.c +3 −37
  4009. drivers/pci/pci-driver.c +10 −0
  4010. drivers/pci/pci-sysfs.c +5 −2
  4011. drivers/pci/pci.c +138 −15
  4012. drivers/pci/pci.h +5 −5
  4013. drivers/pci/pcie/Kconfig +25 −0
  4014. drivers/pci/pcie/aspm.c +18 −3
  4015. drivers/pci/pcie/portdrv.h +12 −0
  4016. drivers/pci/pcie/portdrv_core.c +14 −2
  4017. drivers/pci/probe.c +216 −82
  4018. drivers/pci/quirks.c +90 −92
  4019. drivers/pci/remove.c +19 −8
  4020. drivers/pci/setup-bus.c +459 −201
  4021. drivers/pci/setup-res.c +33 −61
  4022. drivers/pci/xen-pcifront.c +3 −2
  4023. drivers/pcmcia/Kconfig +7 −1
  4024. drivers/pcmcia/Makefile +7 −7
  4025. drivers/pcmcia/at91_cf.c +29 −28
  4026. drivers/pcmcia/bcm63xx_pcmcia.c +1 −1
  4027. drivers/pcmcia/bfin_cf_pcmcia.c +1 −12
  4028. drivers/pcmcia/cardbus.c +1 −1
  4029. drivers/pcmcia/cs.c +0 −1
  4030. drivers/pcmcia/db1xxx_ss.c +3 −14
  4031. drivers/pcmcia/electra_cf.c +1 −11
  4032. drivers/pcmcia/i82092.c +3 −9
  4033. drivers/pcmcia/i82365.c +0 −1
  4034. drivers/pcmcia/m32r_cfc.c +0 −1
  4035. drivers/pcmcia/m32r_pcc.c +0 −1
  4036. drivers/pcmcia/m8xx_pcmcia.c +1 −13
  4037. drivers/pcmcia/pd6729.c +2 −8
  4038. drivers/pcmcia/pxa2xx_balloon3.c +5 −17
  4039. drivers/pcmcia/pxa2xx_base.c +1 −5
  4040. drivers/pcmcia/pxa2xx_cm_x255.c +12 −27
  4041. drivers/pcmcia/pxa2xx_cm_x270.c +4 −19
  4042. drivers/pcmcia/pxa2xx_colibri.c +2 −19
  4043. drivers/pcmcia/pxa2xx_e740.c +12 −59
  4044. drivers/pcmcia/pxa2xx_mainstone.c +14 −17
  4045. drivers/pcmcia/pxa2xx_palmld.c +2 −6
  4046. drivers/pcmcia/pxa2xx_palmtc.c +2 −6
  4047. drivers/pcmcia/pxa2xx_palmtx.c +2 −6
  4048. drivers/pcmcia/pxa2xx_sharpsl.c +2 −28
  4049. drivers/pcmcia/pxa2xx_stargate2.c +5 −29
  4050. drivers/pcmcia/pxa2xx_trizeps4.c +5 −57
  4051. drivers/pcmcia/pxa2xx_viper.c +7 −45
  4052. drivers/pcmcia/pxa2xx_vpac270.c +8 −46
  4053. drivers/pcmcia/sa1100_assabet.c +15 −50
  4054. drivers/pcmcia/sa1100_cerf.c +18 −34
  4055. drivers/pcmcia/sa1100_h3600.c +14 −80
  4056. drivers/pcmcia/sa1100_nanoengine.c +23 −109
  4057. drivers/pcmcia/sa1100_shannon.c +17 −39
  4058. drivers/pcmcia/sa1100_simpad.c +8 −19
  4059. drivers/pcmcia/sa1111_badge4.c +1 −2
  4060. drivers/pcmcia/sa1111_generic.c +62 −49
  4061. drivers/pcmcia/sa1111_generic.h +0 −1
  4062. drivers/pcmcia/sa1111_jornada720.c +1 −7
  4063. drivers/pcmcia/sa1111_lubbock.c +0 −1
  4064. drivers/pcmcia/sa1111_neponset.c +2 −16
  4065. drivers/pcmcia/sa11xx_base.c +1 −5
  4066. drivers/pcmcia/soc_common.c +127 −67
  4067. drivers/pcmcia/soc_common.h +12 −11
  4068. drivers/pcmcia/socket_sysfs.c +0 −1
  4069. drivers/pcmcia/tcic.c +0 −1
  4070. drivers/pcmcia/vrc4173_cardu.c +2 −5
  4071. drivers/pcmcia/xxs1500_ss.c +1 −13
  4072. drivers/pcmcia/yenta_socket.c +1 −1
  4073. drivers/platform/x86/Kconfig +28 −43
  4074. drivers/platform/x86/Makefile +5 −1
  4075. drivers/platform/x86/acer-wmi.c +106 −46
  4076. drivers/platform/x86/acerhdf.c +8 −11
  4077. drivers/platform/x86/amilo-rfkill.c +4 −1
  4078. drivers/platform/x86/apple-gmux.c +244 −0
  4079. drivers/platform/x86/asus-laptop.c +186 −87
  4080. drivers/platform/x86/asus-nb-wmi.c +10 −2
  4081. drivers/platform/x86/asus-wmi.c +53 −17
  4082. drivers/platform/x86/asus-wmi.h +11 −3
  4083. drivers/platform/x86/asus_acpi.c +0 −1513
  4084. drivers/platform/x86/compal-laptop.c +1 −13
  4085. drivers/platform/x86/dell-laptop.c +29 −5
  4086. drivers/platform/x86/eeepc-laptop.c +11 −4
  4087. drivers/platform/x86/eeepc-wmi.c +82 −26
  4088. drivers/platform/x86/hdaps.c +2 −2
  4089. drivers/platform/x86/intel_ips.c +2 −11
  4090. drivers/platform/x86/intel_mid_powerbtn.c +1 −11
  4091. drivers/platform/x86/intel_mid_thermal.c +2 −12
  4092. drivers/platform/x86/intel_oaktrail.c +1 −1
  4093. drivers/platform/x86/samsung-laptop.c +1217 −554
  4094. drivers/platform/x86/sony-laptop.c +9 −6
  4095. drivers/platform/x86/thinkpad_acpi.c +1 −1
  4096. drivers/platform/x86/toshiba_acpi.c +213 −41
  4097. drivers/platform/x86/xo1-rfkill.c +1 −12
  4098. drivers/pnp/pnpacpi/core.c +6 −1
  4099. drivers/pnp/pnpbios/bioscalls.c +0 −1
  4100. drivers/pnp/pnpbios/core.c +0 −1
  4101. drivers/power/Kconfig +20 −1
  4102. drivers/power/Makefile +2 −0
  4103. drivers/power/ab8500_btemp.c +1124 −0
  4104. drivers/power/ab8500_charger.c +2789 −0
  4105. drivers/power/ab8500_fg.c +2637 −0
  4106. drivers/power/abx500_chargalg.c +1921 −0
  4107. drivers/power/apm_power.c +1 −0
  4108. drivers/power/charger-manager.c +29 −38
  4109. drivers/power/da9052-battery.c +3 −12
  4110. drivers/power/ds2782_battery.c +1 −12
  4111. drivers/power/isp1704_charger.c +1 −0
  4112. drivers/power/lp8727_charger.c +67 −64
  4113. drivers/power/max17040_battery.c +1 −12
  4114. drivers/power/max17042_battery.c +477 −31
  4115. drivers/power/max8998_charger.c +0 −1
  4116. drivers/power/power_supply.h +4 −0
  4117. drivers/power/power_supply_leds.c +1 −0
  4118. drivers/power/power_supply_sysfs.c +1 −0
  4119. drivers/power/sbs-battery.c +1 −12
  4120. drivers/power/smb347-charger.c +1294 −0
  4121. drivers/power/z2_battery.c +1 −13
  4122. drivers/regulator/Kconfig +0 −8
  4123. drivers/regulator/Makefile +0 −1
  4124. drivers/regulator/anatop-regulator.c +6 −5
  4125. drivers/regulator/bq24022.c +0 −162
  4126. drivers/regulator/core.c +2 −2
  4127. drivers/regulator/fixed-helper.c +1 −2
  4128. drivers/regulator/mc13892-regulator.c +5 −5
  4129. drivers/regulator/s5m8767.c +7 −7
  4130. drivers/regulator/tps6586x-regulator.c +5 −0
  4131. drivers/regulator/wm831x-dcdc.c +6 −3
  4132. drivers/regulator/wm831x-isink.c +1 −1
  4133. drivers/regulator/wm831x-ldo.c +2 −5
  4134. drivers/regulator/wm8350-regulator.c +17 −17
  4135. drivers/remoteproc/Kconfig +28 −0
  4136. drivers/remoteproc/Makefile +9 −0
  4137. drivers/remoteproc/omap_remoteproc.c +229 −0
  4138. drivers/remoteproc/omap_remoteproc.h +69 −0
  4139. drivers/remoteproc/remoteproc_core.c +1586 −0
  4140. drivers/remoteproc/remoteproc_debugfs.c +172 −0
  4141. drivers/remoteproc/remoteproc_internal.h +44 −0
  4142. drivers/remoteproc/remoteproc_virtio.c +289 −0
  4143. drivers/rpmsg/Kconfig +10 −0
  4144. drivers/rpmsg/Makefile +1 −0
  4145. drivers/rpmsg/virtio_rpmsg_bus.c +1054 −0
  4146. drivers/rtc/Kconfig +20 −3
  4147. drivers/rtc/Makefile +2 −0
  4148. drivers/rtc/interface.c +5 −0
  4149. drivers/rtc/rtc-88pm860x.c +29 −2
  4150. drivers/rtc/rtc-at91sam9.c +29 −58
  4151. drivers/rtc/rtc-bq32k.c +1 −11
  4152. drivers/rtc/rtc-cmos.c +1 −1
  4153. drivers/rtc/rtc-coh901331.c +1 −1
  4154. drivers/rtc/rtc-da9052.c +293 −0
  4155. drivers/rtc/rtc-davinci.c +1 −1
  4156. drivers/rtc/rtc-ds1305.c +1 −11
  4157. drivers/rtc/rtc-ds1307.c +94 −88
  4158. drivers/rtc/rtc-ds1374.c +1 −12
  4159. drivers/rtc/rtc-ds1390.c +1 −11
  4160. drivers/rtc/rtc-ds1511.c +1 −1
  4161. drivers/rtc/rtc-ds1553.c +1 −1
  4162. drivers/rtc/rtc-ds1672.c +1 −12
  4163. drivers/rtc/rtc-ds3232.c +1 −12
  4164. drivers/rtc/rtc-ds3234.c +1 −11
  4165. drivers/rtc/rtc-efi.c +0 −1
  4166. drivers/rtc/rtc-em3027.c +1 −12
  4167. drivers/rtc/rtc-fm3130.c +1 −11
  4168. drivers/rtc/rtc-isl12022.c +1 −12
  4169. drivers/rtc/rtc-isl1208.c +1 −14
  4170. drivers/rtc/rtc-lpc32xx.c +1 −1
  4171. drivers/rtc/rtc-ls1x.c +210 −0
  4172. drivers/rtc/rtc-m41t80.c +1 −12
  4173. drivers/rtc/rtc-m41t93.c +1 −11
  4174. drivers/rtc/rtc-m41t94.c +1 −13
  4175. drivers/rtc/rtc-max6900.c +1 −12
  4176. drivers/rtc/rtc-max6902.c +1 −11
  4177. drivers/rtc/rtc-max8925.c +16 −5
  4178. drivers/rtc/rtc-mpc5121.c +4 −2
  4179. drivers/rtc/rtc-mrst.c +1 −1
  4180. drivers/rtc/rtc-mv.c +10 −1
  4181. drivers/rtc/rtc-nuc900.c +1 −1
  4182. drivers/rtc/rtc-omap.c +2 −2
  4183. drivers/rtc/rtc-pcf2123.c +1 −12
  4184. drivers/rtc/rtc-pcf8563.c +1 −12
  4185. drivers/rtc/rtc-pcf8583.c +1 −12
  4186. drivers/rtc/rtc-pl030.c +2 −13
  4187. drivers/rtc/rtc-pl031.c +3 −15
  4188. drivers/rtc/rtc-pm8xxx.c +1 −1
  4189. drivers/rtc/rtc-pxa.c +2 −2
  4190. drivers/rtc/rtc-r9701.c +23 −11
  4191. drivers/rtc/rtc-rs5c348.c +1 −12
  4192. drivers/rtc/rtc-rs5c372.c +1 −12
  4193. drivers/rtc/rtc-rv3029c2.c +1 −12
  4194. drivers/rtc/rtc-rx8025.c +1 −12
  4195. drivers/rtc/rtc-rx8581.c +1 −12
  4196. drivers/rtc/rtc-s35390a.c +1 −12
  4197. drivers/rtc/rtc-s3c.c +73 −15
  4198. drivers/rtc/rtc-sa1100.c +107 −105
  4199. drivers/rtc/rtc-sh.c +4 −4
  4200. drivers/rtc/rtc-spear.c +57 −43
  4201. drivers/rtc/rtc-stk17ta8.c +1 −1
  4202. drivers/rtc/rtc-twl.c +52 −19
  4203. drivers/rtc/rtc-tx4939.c +1 −1
  4204. drivers/rtc/rtc-vr41xx.c +2 −2
  4205. drivers/rtc/rtc-x1205.c +1 −12
  4206. drivers/s390/char/sclp_cmd.c +1 −0
  4207. drivers/s390/cio/crw.c +1 −0
  4208. drivers/s390/cio/qdio_main.c +0 −1
  4209. drivers/s390/cio/qdio_setup.c +2 −1
  4210. drivers/s390/crypto/ap_bus.c +1 −1
  4211. drivers/sbus/char/flash.c +0 −1
  4212. drivers/sbus/char/openprom.c +0 −1
  4213. drivers/sbus/char/uctrl.c +0 −1
  4214. drivers/scsi/53c700.c +0 −1
  4215. drivers/scsi/BusLogic.c +0 −1
  4216. drivers/scsi/Kconfig +1 −0
  4217. drivers/scsi/Makefile +1 −0
  4218. drivers/scsi/advansys.c +0 −1
  4219. drivers/scsi/aha152x.c +0 −1
  4220. drivers/scsi/aha1542.c +0 −1
  4221. drivers/scsi/aha1740.c +0 −1
  4222. drivers/scsi/aic7xxx/aic79xx_osm.c +4 −4
  4223. drivers/scsi/aic7xxx/aic7xxx_osm.c +4 −4
  4224. drivers/scsi/arcmsr/arcmsr_hba.c +0 −1
  4225. drivers/scsi/arm/acornscsi.c +0 −1
  4226. drivers/scsi/arm/arxescsi.c +1 −1
  4227. drivers/scsi/arm/cumana_1.c +0 −1
  4228. drivers/scsi/arm/fas216.c +2 −2
  4229. drivers/scsi/arm/fas216.h +0 −4
  4230. drivers/scsi/arm/oak.c +0 −1
  4231. drivers/scsi/atp870u.c +2 −3
  4232. drivers/scsi/bfa/bfa.h +4 −5
  4233. drivers/scsi/bfa/bfa_core.c +484 −209
  4234. drivers/scsi/bfa/bfa_defs_svc.h +1 −1
  4235. drivers/scsi/bfa/bfa_fcs_lport.c +2 −0
  4236. drivers/scsi/bfa/bfa_fcs_rport.c +4 −1
  4237. drivers/scsi/bfa/bfa_ioc.c +71 −117
  4238. drivers/scsi/bfa/bfa_ioc.h +16 −1
  4239. drivers/scsi/bfa/bfa_ioc_ct.c +106 −45
  4240. drivers/scsi/bfa/bfa_svc.c +19 −50
  4241. drivers/scsi/bfa/bfa_svc.h +0 −4
  4242. drivers/scsi/bfa/bfad_attr.c +43 −4
  4243. drivers/scsi/bfa/bfad_bsg.c +11 −51
  4244. drivers/scsi/bfa/bfad_bsg.h +0 −2
  4245. drivers/scsi/bfa/bfad_drv.h +1 −1
  4246. drivers/scsi/bfa/bfi_ms.h +11 −6
  4247. drivers/scsi/bfa/bfi_reg.h +6 −0
  4248. drivers/scsi/bnx2fc/bnx2fc_fcoe.c +2 −2
  4249. drivers/scsi/dtc.c +0 −1
  4250. drivers/scsi/fcoe/fcoe.c +35 −48
  4251. drivers/scsi/fcoe/fcoe_ctlr.c +28 −10
  4252. drivers/scsi/fd_mcs.c +0 −1
  4253. drivers/scsi/fdomain.c +0 −1
  4254. drivers/scsi/g_NCR5380.c +0 −1
  4255. drivers/scsi/gdth.c +0 −1
  4256. drivers/scsi/ibmmca.c +0 −1
  4257. drivers/scsi/ibmvscsi/ibmvfc.c +2 −5
  4258. drivers/scsi/ibmvscsi/ibmvscsi.c +2 −5
  4259. drivers/scsi/ibmvscsi/ibmvstgt.c +1 −4
  4260. drivers/scsi/in2000.c +0 −1
  4261. drivers/scsi/ipr.c +46 −27
  4262. drivers/scsi/ipr.h +10 −6
  4263. drivers/scsi/libfc/fc_exch.c +12 −2
  4264. drivers/scsi/libfc/fc_lport.c +9 −1
  4265. drivers/scsi/lpfc/Makefile +3 −1
  4266. drivers/scsi/lpfc/lpfc.h +7 −1
  4267. drivers/scsi/lpfc/lpfc_attr.c +2 −2
  4268. drivers/scsi/lpfc/lpfc_debugfs.c +66 −23
  4269. drivers/scsi/lpfc/lpfc_els.c +13 −4
  4270. drivers/scsi/lpfc/lpfc_hbadisc.c +15 −9
  4271. drivers/scsi/lpfc/lpfc_hw4.h +7 −1
  4272. drivers/scsi/lpfc/lpfc_init.c +22 −19
  4273. drivers/scsi/lpfc/lpfc_nportdisc.c +7 −3
  4274. drivers/scsi/lpfc/lpfc_scsi.c +295 −193
  4275. drivers/scsi/lpfc/lpfc_scsi.h +11 −2
  4276. drivers/scsi/lpfc/lpfc_sli.c +39 −23
  4277. drivers/scsi/lpfc/lpfc_version.h +2 −2
  4278. drivers/scsi/mac53c94.c +0 −1
  4279. drivers/scsi/mac_scsi.c +0 −1
  4280. drivers/scsi/mesh.c +0 −1
  4281. drivers/scsi/mpt2sas/mpt2sas_base.c +3 −5
  4282. drivers/scsi/mpt2sas/mpt2sas_ctl.c +1 −3
  4283. drivers/scsi/ncr53c8xx.c +0 −1
  4284. drivers/scsi/nsp32.c +0 −1
  4285. drivers/scsi/osst.c +0 −1
  4286. drivers/scsi/pas16.c +0 −1
  4287. drivers/scsi/pm8001/pm8001_hwi.c +10 −8
  4288. drivers/scsi/qla1280.c +0 −1
  4289. drivers/scsi/qla4xxx/ql4_isr.c +2 −2
  4290. drivers/scsi/qla4xxx/ql4_os.c +4 −6
  4291. drivers/scsi/qla4xxx/ql4_version.h +1 −1
  4292. drivers/scsi/qlogicpti.c +0 −1
  4293. drivers/scsi/scsi_debug.c +20 −7
  4294. drivers/scsi/scsi_error.c +1 −1
  4295. drivers/scsi/scsi_transport_iscsi.c +4 −4
  4296. drivers/scsi/sd.c +10 −5
  4297. drivers/scsi/st.c +18 −4
  4298. drivers/scsi/st.h +1 −0
  4299. drivers/scsi/sun3_scsi.c +0 −1
  4300. drivers/scsi/sun3_scsi_vme.c +0 −1
  4301. drivers/scsi/sym53c416.c +0 −1
  4302. drivers/scsi/t128.c +0 −1
  4303. drivers/scsi/u14-34f.c +0 −1
  4304. drivers/scsi/ufs/Kconfig +49 −0
  4305. drivers/scsi/ufs/Makefile +2 −0
  4306. drivers/scsi/ufs/ufs.h +207 −0
  4307. drivers/scsi/ufs/ufshcd.c +1978 −0
  4308. drivers/scsi/ufs/ufshci.h +376 −0
  4309. drivers/scsi/ultrastor.c +0 −1
  4310. drivers/scsi/vmw_pvscsi.c +64 −1
  4311. drivers/scsi/vmw_pvscsi.h +85 −24
  4312. drivers/scsi/wd7000.c +0 −1
  4313. drivers/sh/clk/cpg.c +8 −8
  4314. drivers/sh/intc/balancing.c +1 −1
  4315. drivers/sh/intc/chip.c +8 −29
  4316. drivers/sh/intc/core.c +10 −3
  4317. drivers/sh/intc/handle.c +3 −4
  4318. drivers/sh/intc/internals.h +8 −1
  4319. drivers/sh/intc/virq.c +1 −1
  4320. drivers/spi/Kconfig +1 −1
  4321. drivers/spi/spi-davinci.c +3 −3
  4322. drivers/spi/spi-dw-mid.c +5 −2
  4323. drivers/spi/spi-dw.c +1 −7
  4324. drivers/spi/spi-ep93xx.c +2 −2
  4325. drivers/spi/spi-fsl-spi.c +3 −1
  4326. drivers/spi/spi-imx.c +8 −4
  4327. drivers/spi/spi-omap-uwire.c +0 −1
  4328. drivers/spi/spi-orion.c +0 −5
  4329. drivers/spi/spi-pl022.c +4 −4
  4330. drivers/spi/spi-s3c24xx.c +1 −1
  4331. drivers/spi/spi-topcliff-pch.c +2 −2
  4332. drivers/staging/android/Kconfig +2 −1
  4333. drivers/staging/android/binder.c +6 −7
  4334. drivers/staging/android/lowmemorykiller.c +7 −41
  4335. drivers/staging/android/persistent_ram.c +7 −4
  4336. drivers/staging/android/timed_gpio.c +15 −12
  4337. drivers/staging/asus_oled/README +1 −1
  4338. drivers/staging/comedi/drivers.c +0 −1
  4339. drivers/staging/comedi/drivers/cb_pcidas64.c +0 −1
  4340. drivers/staging/comedi/drivers/mite.c +0 −1
  4341. drivers/staging/crystalhd/bc_dts_defs.h +2 −0
  4342. drivers/staging/crystalhd/crystalhd.h +0 −1
  4343. drivers/staging/crystalhd/crystalhd_lnx.h +0 −1
  4344. drivers/staging/crystalhd/crystalhd_misc.h +1 −0
  4345. drivers/staging/et131x/et131x.c +0 −1
  4346. drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c +0 −1
  4347. drivers/staging/iio/gyro/adis16060_core.c +0 −1
  4348. drivers/staging/iio/inkern.c +1 −0
  4349. drivers/staging/iio/magnetometer/ak8975.c +5 −3
  4350. drivers/staging/iio/magnetometer/hmc5843.c +3 −1
  4351. drivers/staging/media/go7007/go7007-driver.c +0 −1
  4352. drivers/staging/media/go7007/go7007-i2c.c +0 −1
  4353. drivers/staging/media/go7007/go7007-v4l2.c +0 −1
  4354. drivers/staging/media/go7007/snd-go7007.c +0 −1
  4355. drivers/staging/media/lirc/lirc_serial.c +0 −1
  4356. drivers/staging/media/lirc/lirc_sir.c +0 −1
  4357. drivers/staging/mei/wd.c +1 −0
  4358. drivers/staging/omapdrm/omap_drv.c +4 −3
  4359. drivers/staging/ozwpan/TODO +3 −1
  4360. drivers/staging/panel/panel.c +0 −1
  4361. drivers/staging/ramster/Kconfig +1 −5
  4362. drivers/staging/rtl8187se/r8180_core.c +1 −1
  4363. drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +2 −2
  4364. drivers/staging/rts_pstor/ms.c +2 −1
  4365. drivers/staging/rts_pstor/rtsx.c +5 −0
  4366. drivers/staging/rts_pstor/rtsx_transport.c +6 −5
  4367. drivers/staging/sbe-2t3e3/io.c +0 −1
  4368. drivers/staging/sep/sep_main.c +3 −3
  4369. drivers/staging/ste_rmi4/Makefile +1 −1
  4370. drivers/staging/telephony/phonedev.c +0 −1
  4371. drivers/staging/tidspbridge/include/dspbridge/host_os.h +0 −1
  4372. drivers/staging/vme/devices/vme_pio2_core.c +2 −2
  4373. drivers/staging/vt6655/key.c +3 −0
  4374. drivers/staging/vt6656/ioctl.c +2 −1
  4375. drivers/staging/vt6656/key.c +3 −0
  4376. drivers/staging/wlags49_h2/hcf.c +1 −0
  4377. drivers/staging/wlags49_h2/wl_cs.c +0 −1
  4378. drivers/staging/wlags49_h2/wl_main.c +1 −2
  4379. drivers/staging/wlags49_h2/wl_netdev.c +1 −2
  4380. drivers/staging/wlags49_h2/wl_pci.c +0 −1
  4381. drivers/staging/wlags49_h2/wl_util.c +1 −2
  4382. drivers/staging/xgifb/vb_init.c +1 −1
  4383. drivers/staging/xgifb/vb_setmode.c +7 −0
  4384. drivers/staging/xgifb/vb_table.h +10 −1
  4385. drivers/staging/zsmalloc/zsmalloc-main.c +18 −12
  4386. drivers/target/tcm_fc/tcm_fc.h +1 −0
  4387. drivers/target/tcm_fc/tfc_cmd.c +8 −2
  4388. drivers/target/tcm_fc/tfc_conf.c +8 −5
  4389. drivers/target/tcm_fc/tfc_io.c +2 −0
  4390. drivers/thermal/Kconfig +8 −0
  4391. drivers/thermal/Makefile +1 −0
  4392. drivers/thermal/spear_thermal.c +206 −0
  4393. drivers/thermal/thermal_sys.c +39 −55
  4394. drivers/tty/amiserial.c +0 −1
  4395. drivers/tty/hvc/hvc_vio.c +2 −5
  4396. drivers/tty/hvc/hvcs.c +1 −4
  4397. drivers/tty/isicom.c +1 −2
  4398. drivers/tty/moxa.c +0 −1
  4399. drivers/tty/mxser.c +0 −1
  4400. drivers/tty/n_hdlc.c +0 −1
  4401. drivers/tty/n_tty.c +0 −1
  4402. drivers/tty/pty.c +0 −1
  4403. drivers/tty/serial/21285.c +1 −0
  4404. drivers/tty/serial/68328serial.c +0 −1
Documentation/ABI/stable/sysfs-driver-usb-usbtmc+8−8
@@ -1,5 +1,5 @@
1−What: /sys/bus/usb/drivers/usbtmc/devices/*/interface_capabilities
2−What: /sys/bus/usb/drivers/usbtmc/devices/*/device_capabilities
1+What: /sys/bus/usb/drivers/usbtmc/*/interface_capabilities
2+What: /sys/bus/usb/drivers/usbtmc/*/device_capabilities
33 Date: August 2008
44 Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
55 Description:
@@ -12,8 +12,8 @@ Description: · 6 unmodified lines
1212 The files are read only.
1313
1414
15−What: /sys/bus/usb/drivers/usbtmc/devices/*/usb488_interface_capabilities
16−What: /sys/bus/usb/drivers/usbtmc/devices/*/usb488_device_capabilities
15+What: /sys/bus/usb/drivers/usbtmc/*/usb488_interface_capabilities
16+What: /sys/bus/usb/drivers/usbtmc/*/usb488_device_capabilities
1717 Date: August 2008
1818 Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1919 Description:
@@ -27,7 +27,7 @@ Description: · 7 unmodified lines
2727 The files are read only.
2828
2929
30−What: /sys/bus/usb/drivers/usbtmc/devices/*/TermChar
30+What: /sys/bus/usb/drivers/usbtmc/*/TermChar
3131 Date: August 2008
3232 Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
3333 Description:
@@ -40,7 +40,7 @@ Description: · 6 unmodified lines
4040 sent to the device or not.
4141
4242
43−What: /sys/bus/usb/drivers/usbtmc/devices/*/TermCharEnabled
43+What: /sys/bus/usb/drivers/usbtmc/*/TermCharEnabled
4444 Date: August 2008
4545 Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
4646 Description:
@@ -51,11 +51,11 @@ Description: · 4 unmodified lines
5151 published by the USB-IF.
5252
5353
54−What: /sys/bus/usb/drivers/usbtmc/devices/*/auto_abort
54+What: /sys/bus/usb/drivers/usbtmc/*/auto_abort
5555 Date: August 2008
5656 Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5757 Description:
58− This file determines if the the transaction of the USB TMC
58+ This file determines if the transaction of the USB TMC
5959 device is to be automatically aborted if there is any error.
6060 For more details about this, please see the document,
6161 "Universal Serial Bus Test and Measurement Class Specification
Documentation/ABI/testing/debugfs-olpc+16−0
@@ -0,0 +1,16 @@
1+What: /sys/kernel/debug/olpc-ec/cmd
2+Date: Dec 2011
3+KernelVersion: 3.4
4+Contact: devel@lists.laptop.org
5+Description:
6+
7+A generic interface for executing OLPC Embedded Controller commands and
8+reading their responses.
9+
10+To execute a command, write data with the format: CC:N A A A A
11+CC is the (hex) command, N is the count of expected reply bytes, and A A A A
12+are optional (hex) arguments.
13+
14+To read the response (if any), read from the generic node after executing
15+a command. Hex reply bytes will be returned, *whether or not* they came from
16+the immediately previous command.
Documentation/ABI/testing/sysfs-block-dm+25−0
@@ -0,0 +1,25 @@
1+What: /sys/block/dm-<num>/dm/name
2+Date: January 2009
3+KernelVersion: 2.6.29
4+Contact: dm-devel@redhat.com
5+Description: Device-mapper device name.
6+ Read-only string containing mapped device name.
7+Users: util-linux, device-mapper udev rules
8+
9+What: /sys/block/dm-<num>/dm/uuid
10+Date: January 2009
11+KernelVersion: 2.6.29
12+Contact: dm-devel@redhat.com
13+Description: Device-mapper device UUID.
14+ Read-only string containing DM-UUID or empty string
15+ if DM-UUID is not set.
16+Users: util-linux, device-mapper udev rules
17+
18+What: /sys/block/dm-<num>/dm/suspended
19+Date: June 2009
20+KernelVersion: 2.6.31
21+Contact: dm-devel@redhat.com
22+Description: Device-mapper device suspend state.
23+ Contains the value 1 while the device is suspended.
24+ Otherwise it contains 0. Read-only attribute.
25+Users: util-linux, device-mapper udev rules
Documentation/ABI/testing/sysfs-block-rssd+18−0
@@ -0,0 +1,18 @@
1+What: /sys/block/rssd*/registers
2+Date: March 2012
3+KernelVersion: 3.3
4+Contact: Asai Thambi S P <asamymuthupa@micron.com>
5+Description: This is a read-only file. Dumps below driver information and
6+ hardware registers.
7+ - S ACTive
8+ - Command Issue
9+ - Allocated
10+ - Completed
11+ - PORT IRQ STAT
12+ - HOST IRQ STAT
13+
14+What: /sys/block/rssd*/status
15+Date: April 2012
16+KernelVersion: 3.4
17+Contact: Asai Thambi S P <asamymuthupa@micron.com>
18+Description: This is a read-only file. Indicates the status of the device.
Documentation/ABI/testing/sysfs-bus-event_source-devices-format+14−0
@@ -0,0 +1,14 @@
1+Where: /sys/bus/event_source/devices/<dev>/format
2+Date: January 2012
3+Kernel Version: 3.3
4+Contact: Jiri Olsa <jolsa@redhat.com>
5+Description:
6+ Attribute group to describe the magic bits that go into
7+ perf_event_attr::config[012] for a particular pmu.
8+ Each attribute of this group defines the 'hardware' bitmask
9+ we want to export, so that userspace can deal with sane
10+ name/value pairs.
11+
12+ Example: 'config1:1,6-10,44'
13+ Defines contents of attribute that occupies bits 1,6-10,44 of
14+ perf_event_attr::config1.
Documentation/ABI/testing/sysfs-bus-rpmsg+75−0
@@ -0,0 +1,75 @@
1+What: /sys/bus/rpmsg/devices/.../name
2+Date: June 2011
3+KernelVersion: 3.3
4+Contact: Ohad Ben-Cohen <ohad@wizery.com>
5+Description:
6+ Every rpmsg device is a communication channel with a remote
7+ processor. Channels are identified with a (textual) name,
8+ which is maximum 32 bytes long (defined as RPMSG_NAME_SIZE in
9+ rpmsg.h).
10+
11+ This sysfs entry contains the name of this channel.
12+
13+What: /sys/bus/rpmsg/devices/.../src
14+Date: June 2011
15+KernelVersion: 3.3
16+Contact: Ohad Ben-Cohen <ohad@wizery.com>
17+Description:
18+ Every rpmsg device is a communication channel with a remote
19+ processor. Channels have a local ("source") rpmsg address,
20+ and remote ("destination") rpmsg address. When an entity
21+ starts listening on one end of a channel, it assigns it with
22+ a unique rpmsg address (a 32 bits integer). This way when
23+ inbound messages arrive to this address, the rpmsg core
24+ dispatches them to the listening entity (a kernel driver).
25+
26+ This sysfs entry contains the src (local) rpmsg address
27+ of this channel. If it contains 0xffffffff, then an address
28+ wasn't assigned (can happen if no driver exists for this
29+ channel).
30+
31+What: /sys/bus/rpmsg/devices/.../dst
32+Date: June 2011
33+KernelVersion: 3.3
34+Contact: Ohad Ben-Cohen <ohad@wizery.com>
35+Description:
36+ Every rpmsg device is a communication channel with a remote
37+ processor. Channels have a local ("source") rpmsg address,
38+ and remote ("destination") rpmsg address. When an entity
39+ starts listening on one end of a channel, it assigns it with
40+ a unique rpmsg address (a 32 bits integer). This way when
41+ inbound messages arrive to this address, the rpmsg core
42+ dispatches them to the listening entity.
43+
44+ This sysfs entry contains the dst (remote) rpmsg address
45+ of this channel. If it contains 0xffffffff, then an address
46+ wasn't assigned (can happen if the kernel driver that
47+ is attached to this channel is exposing a service to the
48+ remote processor. This make it a local rpmsg server,
49+ and it is listening for inbound messages that may be sent
50+ from any remote rpmsg client; it is not bound to a single
51+ remote entity).
52+
53+What: /sys/bus/rpmsg/devices/.../announce
54+Date: June 2011
55+KernelVersion: 3.3
56+Contact: Ohad Ben-Cohen <ohad@wizery.com>
57+Description:
58+ Every rpmsg device is a communication channel with a remote
59+ processor. Channels are identified by a textual name (see
60+ /sys/bus/rpmsg/devices/.../name above) and have a local
61+ ("source") rpmsg address, and remote ("destination") rpmsg
62+ address.
63+
64+ A channel is first created when an entity, whether local
65+ or remote, starts listening on it for messages (and is thus
66+ called an rpmsg server).
67+
68+ When that happens, a "name service" announcement is sent
69+ to the other processor, in order to let it know about the
70+ creation of the channel (this way remote clients know they
71+ can start sending messages).
72+
73+ This sysfs entry tells us whether the channel is a local
74+ server channel that is announced (values are either
75+ true or false).
Documentation/ABI/testing/sysfs-cfq-target-latency+8−0
@@ -0,0 +1,8 @@
1+What: /sys/block/<device>/iosched/target_latency
2+Date: March 2012
3+contact: Tao Ma <boyu.mt@taobao.com>
4+Description:
5+ The /sys/block/<device>/iosched/target_latency only exists
6+ when the user sets cfq to /sys/block/<device>/scheduler.
7+ It contains an estimated latency time for the cfq. cfq will
8+ use it to calculate the time slice used for every task.
Documentation/ABI/testing/sysfs-driver-samsung-laptop+18−0
@@ -17,3 +17,21 @@ Description: Some Samsung laptops have different "performance levels" · 16 unmodified lines
1717 Specifically, not all support the "overclock" option,
1818 and it's still unknown if this value even changes
1919 anything, other than making the user feel a bit better.
20+
21+What: /sys/devices/platform/samsung/battery_life_extender
22+Date: December 1, 2011
23+KernelVersion: 3.3
24+Contact: Corentin Chary <corentin.chary@gmail.com>
25+Description: Max battery charge level can be modified, battery cycle
26+ life can be extended by reducing the max battery charge
27+ level.
28+ 0 means normal battery mode (100% charge)
29+ 1 means battery life extender mode (80% charge)
30+
31+What: /sys/devices/platform/samsung/usb_charge
32+Date: December 1, 2011
33+KernelVersion: 3.3
34+Contact: Corentin Chary <corentin.chary@gmail.com>
35+Description: Use your USB ports to charge devices, even
36+ when your laptop is powered off.
37+ 1 means enabled, 0 means disabled.
Documentation/ABI/testing/sysfs-firmware-acpi+20−0
@@ -1,3 +1,23 @@
1+What: /sys/firmware/acpi/bgrt/
2+Date: January 2012
3+Contact: Matthew Garrett <mjg@redhat.com>
4+Description:
5+ The BGRT is an ACPI 5.0 feature that allows the OS
6+ to obtain a copy of the firmware boot splash and
7+ some associated metadata. This is intended to be used
8+ by boot splash applications in order to interact with
9+ the firmware boot splash in order to avoid jarring
10+ transitions.
11+
12+ image: The image bitmap. Currently a 32-bit BMP.
13+ status: 1 if the image is valid, 0 if firmware invalidated it.
14+ type: 0 indicates image is in BMP format.
15+ version: The version of the BGRT. Currently 1.
16+ xoffset: The number of pixels between the left of the screen
17+ and the left edge of the image.
18+ yoffset: The number of pixels between the top of the screen
19+ and the top edge of the image.
20+
121 What: /sys/firmware/acpi/interrupts/
222 Date: February 2008
323 Contact: Len Brown <lenb@kernel.org>
Documentation/CodingStyle+29−0
@@ -793,6 +793,35 @@ own custom mode, or may have some other magic method for making indentation · 792 unmodified lines
793793 work correctly.
794794
795795
796+ Chapter 19: Inline assembly
797+
798+In architecture-specific code, you may need to use inline assembly to interface
799+with CPU or platform functionality. Don't hesitate to do so when necessary.
800+However, don't use inline assembly gratuitously when C can do the job. You can
801+and should poke hardware from C when possible.
802+
803+Consider writing simple helper functions that wrap common bits of inline
804+assembly, rather than repeatedly writing them with slight variations. Remember
805+that inline assembly can use C parameters.
806+
807+Large, non-trivial assembly functions should go in .S files, with corresponding
808+C prototypes defined in C header files. The C prototypes for assembly
809+functions should use "asmlinkage".
810+
811+You may need to mark your asm statement as volatile, to prevent GCC from
812+removing it if GCC doesn't notice any side effects. You don't always need to
813+do so, though, and doing so unnecessarily can limit optimization.
814+
815+When writing a single inline assembly statement containing multiple
816+instructions, put each instruction on a separate line in a separate quoted
817+string, and end each string except the last with \n\t to properly indent the
818+next instruction in the assembly output:
819+
820+ asm ("magic %reg1, #42\n\t"
821+ "more_magic %reg2, %reg3"
822+ : /* outputs */ : /* inputs */ : /* clobbers */);
823+
824+
796825
797826 Appendix I: References
798827
Documentation/DMA-attributes.txt+18−0
@@ -31,3 +31,21 @@ may be weakly ordered, that is that reads and writes may pass each other. · 30 unmodified lines
3131 Since it is optional for platforms to implement DMA_ATTR_WEAK_ORDERING,
3232 those that do not will simply ignore the attribute and exhibit default
3333 behavior.
34+
35+DMA_ATTR_WRITE_COMBINE
36+----------------------
37+
38+DMA_ATTR_WRITE_COMBINE specifies that writes to the mapping may be
39+buffered to improve performance.
40+
41+Since it is optional for platforms to implement DMA_ATTR_WRITE_COMBINE,
42+those that do not will simply ignore the attribute and exhibit default
43+behavior.
44+
45+DMA_ATTR_NON_CONSISTENT
46+-----------------------
47+
48+DMA_ATTR_NON_CONSISTENT lets the platform to choose to return either
49+consistent or non-consistent memory as it sees fit. By using this API,
50+you are guaranteeing to the platform that you have all the correct and
51+necessary sync points for this memory in the driver.
Documentation/DocBook/device-drivers.tmpl+17−0
@@ -446,4 +446,21 @@ X!Idrivers/video/console/fonts.c · 445 unmodified lines
446446 !Edrivers/i2c/i2c-core.c
447447 </chapter>
448448
449+ <chapter id="hsi">
450+ <title>High Speed Synchronous Serial Interface (HSI)</title>
451+
452+ <para>
453+ High Speed Synchronous Serial Interface (HSI) is a
454+ serial interface mainly used for connecting application
455+ engines (APE) with cellular modem engines (CMT) in cellular
456+ handsets.
457+
458+ HSI provides multiplexing for up to 16 logical channels,
459+ low-latency and full duplex communication.
460+ </para>
461+
462+!Iinclude/linux/hsi/hsi.h
463+!Edrivers/hsi/hsi.c
464+ </chapter>
465+
449466 </book>
Documentation/Makefile+1−1
@@ -1,3 +1,3 @@
11 obj-m := DocBook/ accounting/ auxdisplay/ connector/ \
22 filesystems/ filesystems/configfs/ ia64/ laptops/ networking/ \
3− pcmcia/ spi/ timers/ vm/ watchdog/src/
3+ pcmcia/ spi/ timers/ watchdog/src/
Documentation/acpi/apei/einj.txt+8−0
@@ -53,6 +53,14 @@ directory apei/einj. The following files are provided. · 52 unmodified lines
5353 This file is used to set the second error parameter value. Effect of
5454 parameter depends on error_type specified.
5555
56+- notrigger
57+ The EINJ mechanism is a two step process. First inject the error, then
58+ perform some actions to trigger it. Setting "notrigger" to 1 skips the
59+ trigger phase, which *may* allow the user to cause the error in some other
60+ context by a simple access to the cpu, memory location, or device that is
61+ the target of the error injection. Whether this actually works depends
62+ on what operations the BIOS actually includes in the trigger phase.
63+
5664 BIOS versions based in the ACPI 4.0 specification have limited options
5765 to control where the errors are injected. Your BIOS may support an
5866 extension (enabled with the param_extension=1 module parameter, or
Documentation/aoe/aoe.txt+1−1
@@ -35,7 +35,7 @@ CREATING DEVICE NODES · 34 unmodified lines
3535 sh Documentation/aoe/mkshelf.sh /dev/etherd 0
3636
3737 There is also an autoload script that shows how to edit
38− /etc/modprobe.conf to ensure that the aoe module is loaded when
38+ /etc/modprobe.d/aoe.conf to ensure that the aoe module is loaded when
3939 necessary.
4040
4141 USING DEVICE NODES
Documentation/aoe/autoload.sh+2−2
@@ -1,8 +1,8 @@
11 #!/bin/sh
22 # set aoe to autoload by installing the
3−# aliases in /etc/modprobe.conf
3+# aliases in /etc/modprobe.d/
44
5−f=/etc/modprobe.conf
5+f=/etc/modprobe.d/aoe.conf
66
77 if test ! -r $f || test ! -w $f; then
88 echo "cannot configure $f for module autoloading" 1>&2
Documentation/blockdev/floppy.txt+1−1
@@ -49,7 +49,7 @@ you can put: · 48 unmodified lines
4949
5050 options floppy omnibook messages
5151
52−in /etc/modprobe.conf.
52+in a configuration file in /etc/modprobe.d/.
5353
5454
5555 The floppy driver related options are:
Documentation/cgroups/cpusets.txt+1−1
@@ -217,7 +217,7 @@ and name space for cpusets, with a minimum of additional kernel code. · 216 unmodified lines
217217
218218 The cpus and mems files in the root (top_cpuset) cpuset are
219219 read-only. The cpus file automatically tracks the value of
220−cpu_online_map using a CPU hotplug notifier, and the mems file
220+cpu_online_mask using a CPU hotplug notifier, and the mems file
221221 automatically tracks the value of node_states[N_HIGH_MEMORY]--i.e.,
222222 nodes with memory--using the cpuset_track_online_nodes() hook.
223223
Documentation/cgroups/memory.txt+2−3
@@ -34,8 +34,7 @@ Current Status: linux-2.6.34-mmotm(development version of 2010/April) · 33 unmodified lines
3434
3535 Features:
3636 - accounting anonymous pages, file caches, swap caches usage and limiting them.
37− - private LRU and reclaim routine. (system's global LRU and private LRU
38− work independently from each other)
37+ - pages are linked to per-memcg LRU exclusively, and there is no global LRU.
3938 - optionally, memory+swap usage can be accounted and limited.
4039 - hierarchical accounting
4140 - soft limit
@@ -154,7 +153,7 @@ updated. page_cgroup has its own LRU on cgroup. · 112 unmodified lines
154153 2.2.1 Accounting details
155154
156155 All mapped anon pages (RSS) and cache pages (Page Cache) are accounted.
157−Some pages which are never reclaimable and will not be on the global LRU
156+Some pages which are never reclaimable and will not be on the LRU
158157 are not accounted. We just account pages under usual VM management.
159158
160159 RSS pages are accounted at page_fault unless they've already been accounted
Documentation/clk.txt+233−0
@@ -0,0 +1,233 @@
1+ The Common Clk Framework
2+ Mike Turquette <mturquette@ti.com>
3+
4+This document endeavours to explain the common clk framework details,
5+and how to port a platform over to this framework. It is not yet a
6+detailed explanation of the clock api in include/linux/clk.h, but
7+perhaps someday it will include that information.
8+
9+ Part 1 - introduction and interface split
10+
11+The common clk framework is an interface to control the clock nodes
12+available on various devices today. This may come in the form of clock
13+gating, rate adjustment, muxing or other operations. This framework is
14+enabled with the CONFIG_COMMON_CLK option.
15+
16+The interface itself is divided into two halves, each shielded from the
17+details of its counterpart. First is the common definition of struct
18+clk which unifies the framework-level accounting and infrastructure that
19+has traditionally been duplicated across a variety of platforms. Second
20+is a common implementation of the clk.h api, defined in
21+drivers/clk/clk.c. Finally there is struct clk_ops, whose operations
22+are invoked by the clk api implementation.
23+
24+The second half of the interface is comprised of the hardware-specific
25+callbacks registered with struct clk_ops and the corresponding
26+hardware-specific structures needed to model a particular clock. For
27+the remainder of this document any reference to a callback in struct
28+clk_ops, such as .enable or .set_rate, implies the hardware-specific
29+implementation of that code. Likewise, references to struct clk_foo
30+serve as a convenient shorthand for the implementation of the
31+hardware-specific bits for the hypothetical "foo" hardware.
32+
33+Tying the two halves of this interface together is struct clk_hw, which
34+is defined in struct clk_foo and pointed to within struct clk. This
35+allows easy for navigation between the two discrete halves of the common
36+clock interface.
37+
38+ Part 2 - common data structures and api
39+
40+Below is the common struct clk definition from
41+include/linux/clk-private.h, modified for brevity:
42+
43+ struct clk {
44+ const char *name;
45+ const struct clk_ops *ops;
46+ struct clk_hw *hw;
47+ char **parent_names;
48+ struct clk **parents;
49+ struct clk *parent;
50+ struct hlist_head children;
51+ struct hlist_node child_node;
52+ ...
53+ };
54+
55+The members above make up the core of the clk tree topology. The clk
56+api itself defines several driver-facing functions which operate on
57+struct clk. That api is documented in include/linux/clk.h.
58+
59+Platforms and devices utilizing the common struct clk use the struct
60+clk_ops pointer in struct clk to perform the hardware-specific parts of
61+the operations defined in clk.h:
62+
63+ struct clk_ops {
64+ int (*prepare)(struct clk_hw *hw);
65+ void (*unprepare)(struct clk_hw *hw);
66+ int (*enable)(struct clk_hw *hw);
67+ void (*disable)(struct clk_hw *hw);
68+ int (*is_enabled)(struct clk_hw *hw);
69+ unsigned long (*recalc_rate)(struct clk_hw *hw,
70+ unsigned long parent_rate);
71+ long (*round_rate)(struct clk_hw *hw, unsigned long,
72+ unsigned long *);
73+ int (*set_parent)(struct clk_hw *hw, u8 index);
74+ u8 (*get_parent)(struct clk_hw *hw);
75+ int (*set_rate)(struct clk_hw *hw, unsigned long);
76+ void (*init)(struct clk_hw *hw);
77+ };
78+
79+ Part 3 - hardware clk implementations
80+
81+The strength of the common struct clk comes from its .ops and .hw pointers
82+which abstract the details of struct clk from the hardware-specific bits, and
83+vice versa. To illustrate consider the simple gateable clk implementation in
84+drivers/clk/clk-gate.c:
85+
86+struct clk_gate {
87+ struct clk_hw hw;
88+ void __iomem *reg;
89+ u8 bit_idx;
90+ ...
91+};
92+
93+struct clk_gate contains struct clk_hw hw as well as hardware-specific
94+knowledge about which register and bit controls this clk's gating.
95+Nothing about clock topology or accounting, such as enable_count or
96+notifier_count, is needed here. That is all handled by the common
97+framework code and struct clk.
98+
99+Let's walk through enabling this clk from driver code:
100+
101+ struct clk *clk;
102+ clk = clk_get(NULL, "my_gateable_clk");
103+
104+ clk_prepare(clk);
105+ clk_enable(clk);
106+
107+The call graph for clk_enable is very simple:
108+
109+clk_enable(clk);
110+ clk->ops->enable(clk->hw);
111+ [resolves to...]
112+ clk_gate_enable(hw);
113+ [resolves struct clk gate with to_clk_gate(hw)]
114+ clk_gate_set_bit(gate);
115+
116+And the definition of clk_gate_set_bit:
117+
118+static void clk_gate_set_bit(struct clk_gate *gate)
119+{
120+ u32 reg;
121+
122+ reg = __raw_readl(gate->reg);
123+ reg |= BIT(gate->bit_idx);
124+ writel(reg, gate->reg);
125+}
126+
127+Note that to_clk_gate is defined as:
128+
129+#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, clk)
130+
131+This pattern of abstraction is used for every clock hardware
132+representation.
133+
134+ Part 4 - supporting your own clk hardware
135+
136+When implementing support for a new type of clock it only necessary to
137+include the following header:
138+
139+#include <linux/clk-provider.h>
140+
141+include/linux/clk.h is included within that header and clk-private.h
142+must never be included from the code which implements the operations for
143+a clock. More on that below in Part 5.
144+
145+To construct a clk hardware structure for your platform you must define
146+the following:
147+
148+struct clk_foo {
149+ struct clk_hw hw;
150+ ... hardware specific data goes here ...
151+};
152+
153+To take advantage of your data you'll need to support valid operations
154+for your clk:
155+
156+struct clk_ops clk_foo_ops {
157+ .enable = &clk_foo_enable;
158+ .disable = &clk_foo_disable;
159+};
160+
161+Implement the above functions using container_of:
162+
163+#define to_clk_foo(_hw) container_of(_hw, struct clk_foo, hw)
164+
165+int clk_foo_enable(struct clk_hw *hw)
166+{
167+ struct clk_foo *foo;
168+
169+ foo = to_clk_foo(hw);
170+
171+ ... perform magic on foo ...
172+
173+ return 0;
174+};
175+
176+Below is a matrix detailing which clk_ops are mandatory based upon the
177+hardware capbilities of that clock. A cell marked as "y" means
178+mandatory, a cell marked as "n" implies that either including that
179+callback is invalid or otherwise uneccesary. Empty cells are either
180+optional or must be evaluated on a case-by-case basis.
181+
182+ clock hardware characteristics
183+ -----------------------------------------------------------
184+ | gate | change rate | single parent | multiplexer | root |
185+ |------|-------------|---------------|-------------|------|
186+.prepare | | | | | |
187+.unprepare | | | | | |
188+ | | | | | |
189+.enable | y | | | | |
190+.disable | y | | | | |
191+.is_enabled | y | | | | |
192+ | | | | | |
193+.recalc_rate | | y | | | |
194+.round_rate | | y | | | |
195+.set_rate | | y | | | |
196+ | | | | | |
197+.set_parent | | | n | y | n |
198+.get_parent | | | n | y | n |
199+ | | | | | |
200+.init | | | | | |
201+ -----------------------------------------------------------
202+
203+Finally, register your clock at run-time with a hardware-specific
204+registration function. This function simply populates struct clk_foo's
205+data and then passes the common struct clk parameters to the framework
206+with a call to:
207+
208+clk_register(...)
209+
210+See the basic clock types in drivers/clk/clk-*.c for examples.
211+
212+ Part 5 - static initialization of clock data
213+
214+For platforms with many clocks (often numbering into the hundreds) it
215+may be desirable to statically initialize some clock data. This
216+presents a problem since the definition of struct clk should be hidden
217+from everyone except for the clock core in drivers/clk/clk.c.
218+
219+To get around this problem struct clk's definition is exposed in
220+include/linux/clk-private.h along with some macros for more easily
221+initializing instances of the basic clock types. These clocks must
222+still be initialized with the common clock framework via a call to
223+__clk_init.
224+
225+clk-private.h must NEVER be included by code which implements struct
226+clk_ops callbacks, nor must it be included by any logic which pokes
227+around inside of struct clk at run-time. To do so is a layering
228+violation.
229+
230+To better enforce this policy, always follow this simple rule: any
231+statically initialized clock data MUST be defined in a separate file
232+from the logic that implements its ops. Basically separate the logic
233+from the data and all is well.
Documentation/cpu-hotplug.txt+11−11
@@ -47,7 +47,7 @@ maxcpus=n Restrict boot time cpus to n. Say if you have 4 cpus, using · 46 unmodified lines
4747 other cpus later online, read FAQ's for more info.
4848
4949 additional_cpus=n (*) Use this to limit hotpluggable cpus. This option sets
50− cpu_possible_map = cpu_present_map + additional_cpus
50+ cpu_possible_mask = cpu_present_mask + additional_cpus
5151
5252 cede_offline={"off","on"} Use this option to disable/enable putting offlined
5353 processors to an extended H_CEDE state on
@@ -64,11 +64,11 @@ should only rely on this to count the # of cpus, but *MUST* not rely · 10 unmodified lines
6464 on the apicid values in those tables for disabled apics. In the event
6565 BIOS doesn't mark such hot-pluggable cpus as disabled entries, one could
6666 use this parameter "additional_cpus=x" to represent those cpus in the
67−cpu_possible_map.
67+cpu_possible_mask.
6868
6969 possible_cpus=n [s390,x86_64] use this to set hotpluggable cpus.
7070 This option sets possible_cpus bits in
71− cpu_possible_map. Thus keeping the numbers of bits set
71+ cpu_possible_mask. Thus keeping the numbers of bits set
7272 constant even if the machine gets rebooted.
7373
7474 CPU maps and such
@@ -76,7 +76,7 @@ CPU maps and such · 1 unmodified line
7676 [More on cpumaps and primitive to manipulate, please check
7777 include/linux/cpumask.h that has more descriptive text.]
7878
79−cpu_possible_map: Bitmap of possible CPUs that can ever be available in the
79+cpu_possible_mask: Bitmap of possible CPUs that can ever be available in the
8080 system. This is used to allocate some boot time memory for per_cpu variables
8181 that aren't designed to grow/shrink as CPUs are made available or removed.
8282 Once set during boot time discovery phase, the map is static, i.e no bits
@@ -84,13 +84,13 @@ are added or removed anytime. Trimming it accurately for your system needs · 1 unmodified line
8484 upfront can save some boot time memory. See below for how we use heuristics
8585 in x86_64 case to keep this under check.
8686
87−cpu_online_map: Bitmap of all CPUs currently online. Its set in __cpu_up()
87+cpu_online_mask: Bitmap of all CPUs currently online. Its set in __cpu_up()
8888 after a cpu is available for kernel scheduling and ready to receive
8989 interrupts from devices. Its cleared when a cpu is brought down using
9090 __cpu_disable(), before which all OS services including interrupts are
9191 migrated to another target CPU.
9292
93−cpu_present_map: Bitmap of CPUs currently present in the system. Not all
93+cpu_present_mask: Bitmap of CPUs currently present in the system. Not all
9494 of them may be online. When physical hotplug is processed by the relevant
9595 subsystem (e.g ACPI) can change and new bit either be added or removed
9696 from the map depending on the event is hot-add/hot-remove. There are currently
@@ -99,22 +99,22 @@ at which time hotplug is disabled. · 2 unmodified lines
9999
100100 You really dont need to manipulate any of the system cpu maps. They should
101101 be read-only for most use. When setting up per-cpu resources almost always use
102−cpu_possible_map/for_each_possible_cpu() to iterate.
102+cpu_possible_mask/for_each_possible_cpu() to iterate.
103103
104104 Never use anything other than cpumask_t to represent bitmap of CPUs.
105105
106106 #include <linux/cpumask.h>
107107
108− for_each_possible_cpu - Iterate over cpu_possible_map
109− for_each_online_cpu - Iterate over cpu_online_map
110− for_each_present_cpu - Iterate over cpu_present_map
108+ for_each_possible_cpu - Iterate over cpu_possible_mask
109+ for_each_online_cpu - Iterate over cpu_online_mask
110+ for_each_present_cpu - Iterate over cpu_present_mask
111111 for_each_cpu_mask(x,mask) - Iterate over some random collection of cpu mask.
112112
113113 #include <linux/cpu.h>
114114 get_online_cpus() and put_online_cpus():
115115
116116 The above calls are used to inhibit cpu hotplug operations. While the
117−cpu_hotplug.refcount is non zero, the cpu_online_map will not change.
117+cpu_hotplug.refcount is non zero, the cpu_online_mask will not change.
118118 If you merely need to avoid cpus going away, you could also use
119119 preempt_disable() and preempt_enable() for those sections.
120120 Just remember the critical section cannot call any
Documentation/cpuidle/sysfs.txt+5−0
@@ -36,6 +36,7 @@ drwxr-xr-x 2 root root 0 Feb 8 10:42 state3 · 35 unmodified lines
3636 /sys/devices/system/cpu/cpu0/cpuidle/state0:
3737 total 0
3838 -r--r--r-- 1 root root 4096 Feb 8 10:42 desc
39+-rw-r--r-- 1 root root 4096 Feb 8 10:42 disable
3940 -r--r--r-- 1 root root 4096 Feb 8 10:42 latency
4041 -r--r--r-- 1 root root 4096 Feb 8 10:42 name
4142 -r--r--r-- 1 root root 4096 Feb 8 10:42 power
@@ -45,6 +46,7 @@ total 0 · 3 unmodified lines
4546 /sys/devices/system/cpu/cpu0/cpuidle/state1:
4647 total 0
4748 -r--r--r-- 1 root root 4096 Feb 8 10:42 desc
49+-rw-r--r-- 1 root root 4096 Feb 8 10:42 disable
4850 -r--r--r-- 1 root root 4096 Feb 8 10:42 latency
4951 -r--r--r-- 1 root root 4096 Feb 8 10:42 name
5052 -r--r--r-- 1 root root 4096 Feb 8 10:42 power
@@ -54,6 +56,7 @@ total 0 · 3 unmodified lines
5456 /sys/devices/system/cpu/cpu0/cpuidle/state2:
5557 total 0
5658 -r--r--r-- 1 root root 4096 Feb 8 10:42 desc
59+-rw-r--r-- 1 root root 4096 Feb 8 10:42 disable
5760 -r--r--r-- 1 root root 4096 Feb 8 10:42 latency
5861 -r--r--r-- 1 root root 4096 Feb 8 10:42 name
5962 -r--r--r-- 1 root root 4096 Feb 8 10:42 power
@@ -63,6 +66,7 @@ total 0 · 3 unmodified lines
6366 /sys/devices/system/cpu/cpu0/cpuidle/state3:
6467 total 0
6568 -r--r--r-- 1 root root 4096 Feb 8 10:42 desc
69+-rw-r--r-- 1 root root 4096 Feb 8 10:42 disable
6670 -r--r--r-- 1 root root 4096 Feb 8 10:42 latency
6771 -r--r--r-- 1 root root 4096 Feb 8 10:42 name
6872 -r--r--r-- 1 root root 4096 Feb 8 10:42 power
@@ -72,6 +76,7 @@ total 0 · 3 unmodified lines
7276
7377
7478 * desc : Small description about the idle state (string)
79+* disable : Option to disable this idle state (bool)
7580 * latency : Latency to exit out of this idle state (in microseconds)
7681 * name : Name of the idle state (string)
7782 * power : Power consumed while in this idle state (in milliwatts)
Documentation/device-mapper/thin-provisioning.txt+50−15
@@ -75,10 +75,12 @@ less sharing than average you'll need a larger-than-average metadata device. · 74 unmodified lines
7575
7676 As a guide, we suggest you calculate the number of bytes to use in the
7777 metadata device as 48 * $data_dev_size / $data_block_size but round it up
78−to 2MB if the answer is smaller. The largest size supported is 16GB.
78+to 2MB if the answer is smaller. If you're creating large numbers of
79+snapshots which are recording large amounts of change, you may find you
80+need to increase this.
7981
80−If you're creating large numbers of snapshots which are recording large
81−amounts of change, you may need find you need to increase this.
82+The largest size supported is 16GB: If the device is larger,
83+a warning will be issued and the excess space will not be used.
8284
8385 Reloading a pool table
8486 ----------------------
@@ -167,6 +169,38 @@ ii) Using an internal snapshot. · 82 unmodified lines
167169
168170 dmsetup create snap --table "0 2097152 thin /dev/mapper/pool 1"
169171
172+External snapshots
173+------------------
174+
175+You can use an external _read only_ device as an origin for a
176+thinly-provisioned volume. Any read to an unprovisioned area of the
177+thin device will be passed through to the origin. Writes trigger
178+the allocation of new blocks as usual.
179+
180+One use case for this is VM hosts that want to run guests on
181+thinly-provisioned volumes but have the base image on another device
182+(possibly shared between many VMs).
183+
184+You must not write to the origin device if you use this technique!
185+Of course, you may write to the thin device and take internal snapshots
186+of the thin volume.
187+
188+i) Creating a snapshot of an external device
189+
190+ This is the same as creating a thin device.
191+ You don't mention the origin at this stage.
192+
193+ dmsetup message /dev/mapper/pool 0 "create_thin 0"
194+
195+ii) Using a snapshot of an external device.
196+
197+ Append an extra parameter to the thin target specifying the origin:
198+
199+ dmsetup create snap --table "0 2097152 thin /dev/mapper/pool 0 /dev/image"
200+
201+ N.B. All descendants (internal snapshots) of this snapshot require the
202+ same extra origin parameter.
203+
170204 Deactivation
171205 ------------
172206
@@ -189,7 +223,13 @@ i) Constructor · 16 unmodified lines
189223 <low water mark (blocks)> [<number of feature args> [<arg>]*]
190224
191225 Optional feature arguments:
192− - 'skip_block_zeroing': skips the zeroing of newly-provisioned blocks.
226+
227+ skip_block_zeroing: Skip the zeroing of newly-provisioned blocks.
228+
229+ ignore_discard: Disable discard support.
230+
231+ no_discard_passdown: Don't pass discards down to the underlying
232+ data device, but just remove the mapping.
193233
194234 Data block size must be between 64KB (128 sectors) and 1GB
195235 (2097152 sectors) inclusive.
@@ -237,16 +277,6 @@ iii) Messages · 41 unmodified lines
237277
238278 Deletes a thin device. Irreversible.
239279
240− trim <dev id> <new size in sectors>
241−
242− Delete mappings from the end of a thin device. Irreversible.
243− You might want to use this if you're reducing the size of
244− your thinly-provisioned device. In many cases, due to the
245− sharing of blocks between devices, it is not possible to
246− determine in advance how much space 'trim' will release. (In
247− future a userspace tool might be able to perform this
248− calculation.)
249−
250280 set_transaction_id <current id> <new id>
251281
252282 Userland volume managers, such as LVM, need a way to
@@ -262,7 +292,7 @@ iii) Messages · 9 unmodified lines
262292
263293 i) Constructor
264294
265− thin <pool dev> <dev id>
295+ thin <pool dev> <dev id> [<external origin dev>]
266296
267297 pool dev:
268298 the thin-pool device, e.g. /dev/mapper/my_pool or 253:0
@@ -271,6 +301,11 @@ i) Constructor · 2 unmodified lines
271301 the internal device identifier of the device to be
272302 activated.
273303
304+ external origin dev:
305+ an optional block device outside the pool to be treated as a
306+ read-only snapshot origin: reads to unprovisioned areas of the
307+ thin target will be mapped to this device.
308+
274309 The pool doesn't store any size against the thin devices. If you
275310 load a thin target that is smaller than you've been using previously,
276311 then you'll have no access to blocks mapped beyond the end. If you
Documentation/device-mapper/verity.txt+194−0
@@ -0,0 +1,194 @@
1+dm-verity
2+==========
3+
4+Device-Mapper's "verity" target provides transparent integrity checking of
5+block devices using a cryptographic digest provided by the kernel crypto API.
6+This target is read-only.
7+
8+Construction Parameters
9+=======================
10+ <version> <dev> <hash_dev> <hash_start>
11+ <data_block_size> <hash_block_size>
12+ <num_data_blocks> <hash_start_block>
13+ <algorithm> <digest> <salt>
14+
15+<version>
16+ This is the version number of the on-disk format.
17+
18+ 0 is the original format used in the Chromium OS.
19+ The salt is appended when hashing, digests are stored continuously and
20+ the rest of the block is padded with zeros.
21+
22+ 1 is the current format that should be used for new devices.
23+ The salt is prepended when hashing and each digest is
24+ padded with zeros to the power of two.
25+
26+<dev>
27+ This is the device containing the data the integrity of which needs to be
28+ checked. It may be specified as a path, like /dev/sdaX, or a device number,
29+ <major>:<minor>.
30+
31+<hash_dev>
32+ This is the device that that supplies the hash tree data. It may be
33+ specified similarly to the device path and may be the same device. If the
34+ same device is used, the hash_start should be outside of the dm-verity
35+ configured device size.
36+
37+<data_block_size>
38+ The block size on a data device. Each block corresponds to one digest on
39+ the hash device.
40+
41+<hash_block_size>
42+ The size of a hash block.
43+
44+<num_data_blocks>
45+ The number of data blocks on the data device. Additional blocks are
46+ inaccessible. You can place hashes to the same partition as data, in this
47+ case hashes are placed after <num_data_blocks>.
48+
49+<hash_start_block>
50+ This is the offset, in <hash_block_size>-blocks, from the start of hash_dev
51+ to the root block of the hash tree.
52+
53+<algorithm>
54+ The cryptographic hash algorithm used for this device. This should
55+ be the name of the algorithm, like "sha1".
56+
57+<digest>
58+ The hexadecimal encoding of the cryptographic hash of the root hash block
59+ and the salt. This hash should be trusted as there is no other authenticity
60+ beyond this point.
61+
62+<salt>
63+ The hexadecimal encoding of the salt value.
64+
65+Theory of operation
66+===================
67+
68+dm-verity is meant to be setup as part of a verified boot path. This
69+may be anything ranging from a boot using tboot or trustedgrub to just
70+booting from a known-good device (like a USB drive or CD).
71+
72+When a dm-verity device is configured, it is expected that the caller
73+has been authenticated in some way (cryptographic signatures, etc).
74+After instantiation, all hashes will be verified on-demand during
75+disk access. If they cannot be verified up to the root node of the
76+tree, the root hash, then the I/O will fail. This should identify
77+tampering with any data on the device and the hash data.
78+
79+Cryptographic hashes are used to assert the integrity of the device on a
80+per-block basis. This allows for a lightweight hash computation on first read
81+into the page cache. Block hashes are stored linearly-aligned to the nearest
82+block the size of a page.
83+
84+Hash Tree
85+---------
86+
87+Each node in the tree is a cryptographic hash. If it is a leaf node, the hash
88+is of some block data on disk. If it is an intermediary node, then the hash is
89+of a number of child nodes.
90+
91+Each entry in the tree is a collection of neighboring nodes that fit in one
92+block. The number is determined based on block_size and the size of the
93+selected cryptographic digest algorithm. The hashes are linearly-ordered in
94+this entry and any unaligned trailing space is ignored but included when
95+calculating the parent node.
96+
97+The tree looks something like:
98+
99+alg = sha256, num_blocks = 32768, block_size = 4096
100+
101+ [ root ]
102+ / . . . \
103+ [entry_0] [entry_1]
104+ / . . . \ . . . \
105+ [entry_0_0] . . . [entry_0_127] . . . . [entry_1_127]
106+ / ... \ / . . . \ / \
107+ blk_0 ... blk_127 blk_16256 blk_16383 blk_32640 . . . blk_32767
108+
109+
110+On-disk format
111+==============
112+
113+Below is the recommended on-disk format. The verity kernel code does not
114+read the on-disk header. It only reads the hash blocks which directly
115+follow the header. It is expected that a user-space tool will verify the
116+integrity of the verity_header and then call dmsetup with the correct
117+parameters. Alternatively, the header can be omitted and the dmsetup
118+parameters can be passed via the kernel command-line in a rooted chain
119+of trust where the command-line is verified.
120+
121+The on-disk format is especially useful in cases where the hash blocks
122+are on a separate partition. The magic number allows easy identification
123+of the partition contents. Alternatively, the hash blocks can be stored
124+in the same partition as the data to be verified. In such a configuration
125+the filesystem on the partition would be sized a little smaller than
126+the full-partition, leaving room for the hash blocks.
127+
128+struct superblock {
129+ uint8_t signature[8]
130+ "verity\0\0";
131+
132+ uint8_t version;
133+ 1 - current format
134+
135+ uint8_t data_block_bits;
136+ log2(data block size)
137+
138+ uint8_t hash_block_bits;
139+ log2(hash block size)
140+
141+ uint8_t pad1[1];
142+ zero padding
143+
144+ uint16_t salt_size;
145+ big-endian salt size
146+
147+ uint8_t pad2[2];
148+ zero padding
149+
150+ uint32_t data_blocks_hi;
151+ big-endian high 32 bits of the 64-bit number of data blocks
152+
153+ uint32_t data_blocks_lo;
154+ big-endian low 32 bits of the 64-bit number of data blocks
155+
156+ uint8_t algorithm[16];
157+ cryptographic algorithm
158+
159+ uint8_t salt[384];
160+ salt (the salt size is specified above)
161+
162+ uint8_t pad3[88];
163+ zero padding to 512-byte boundary
164+}
165+
166+Directly following the header (and with sector number padded to the next hash
167+block boundary) are the hash blocks which are stored a depth at a time
168+(starting from the root), sorted in order of increasing index.
169+
170+Status
171+======
172+V (for Valid) is returned if every check performed so far was valid.
173+If any check failed, C (for Corruption) is returned.
174+
175+Example
176+=======
177+
178+Setup a device:
179+ dmsetup create vroot --table \
180+ "0 2097152 "\
181+ "verity 1 /dev/sda1 /dev/sda2 4096 4096 2097152 1 "\
182+ "4392712ba01368efdf14b05c76f9e4df0d53664630b5d48632ed17a137f39076 "\
183+ "1234000000000000000000000000000000000000000000000000000000000000"
184+
185+A command line tool veritysetup is available to compute or verify
186+the hash tree or activate the kernel driver. This is available from
187+the LVM2 upstream repository and may be supplied as a package called
188+device-mapper-verity-tools:
189+ git://sources.redhat.com/git/lvm2
190+ http://sourceware.org/git/?p=lvm2.git
191+ http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/verity?cvsroot=lvm2
192+
193+veritysetup -a vroot /dev/sda1 /dev/sda2 \
194+ 4392712ba01368efdf14b05c76f9e4df0d53664630b5d48632ed17a137f39076
Documentation/devicetree/bindings/arm/atmel-aic.txt+38−0
@@ -0,0 +1,38 @@
1+* Advanced Interrupt Controller (AIC)
2+
3+Required properties:
4+- compatible: Should be "atmel,<chip>-aic"
5+- interrupt-controller: Identifies the node as an interrupt controller.
6+- interrupt-parent: For single AIC system, it is an empty property.
7+- #interrupt-cells: The number of cells to define the interrupts. It sould be 2.
8+ The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet).
9+ The second cell is used to specify flags:
10+ bits[3:0] trigger type and level flags:
11+ 1 = low-to-high edge triggered.
12+ 2 = high-to-low edge triggered.
13+ 4 = active high level-sensitive.
14+ 8 = active low level-sensitive.
15+ Valid combinations are 1, 2, 3, 4, 8.
16+ Default flag for internal sources should be set to 4 (active high).
17+- reg: Should contain AIC registers location and length
18+
19+Examples:
20+ /*
21+ * AIC
22+ */
23+ aic: interrupt-controller@fffff000 {
24+ compatible = "atmel,at91rm9200-aic";
25+ interrupt-controller;
26+ interrupt-parent;
27+ #interrupt-cells = <2>;
28+ reg = <0xfffff000 0x200>;
29+ };
30+
31+ /*
32+ * An interrupt generating device that is wired to an AIC.
33+ */
34+ dma: dma-controller@ffffec00 {
35+ compatible = "atmel,at91sam9g45-dma";
36+ reg = <0xffffec00 0x200>;
37+ interrupts = <21 4>;
38+ };
Documentation/devicetree/bindings/arm/atmel-at91.txt+92−0
@@ -0,0 +1,92 @@
1+Atmel AT91 device tree bindings.
2+================================
3+
4+PIT Timer required properties:
5+- compatible: Should be "atmel,at91sam9260-pit"
6+- reg: Should contain registers location and length
7+- interrupts: Should contain interrupt for the PIT which is the IRQ line
8+ shared across all System Controller members.
9+
10+TC/TCLIB Timer required properties:
11+- compatible: Should be "atmel,<chip>-pit".
12+ <chip> can be "at91rm9200" or "at91sam9x5"
13+- reg: Should contain registers location and length
14+- interrupts: Should contain all interrupts for the TC block
15+ Note that you can specify several interrupt cells if the TC
16+ block has one interrupt per channel.
17+
18+Examples:
19+
20+One interrupt per TC block:
21+ tcb0: timer@fff7c000 {
22+ compatible = "atmel,at91rm9200-tcb";
23+ reg = <0xfff7c000 0x100>;
24+ interrupts = <18 4>;
25+ };
26+
27+One interrupt per TC channel in a TC block:
28+ tcb1: timer@fffdc000 {
29+ compatible = "atmel,at91rm9200-tcb";
30+ reg = <0xfffdc000 0x100>;
31+ interrupts = <26 4 27 4 28 4>;
32+ };
33+
34+RSTC Reset Controller required properties:
35+- compatible: Should be "atmel,<chip>-rstc".
36+ <chip> can be "at91sam9260" or "at91sam9g45"
37+- reg: Should contain registers location and length
38+
39+Example:
40+
41+ rstc@fffffd00 {
42+ compatible = "atmel,at91sam9260-rstc";
43+ reg = <0xfffffd00 0x10>;
44+ };
45+
46+RAMC SDRAM/DDR Controller required properties:
47+- compatible: Should be "atmel,at91sam9260-sdramc",
48+ "atmel,at91sam9g45-ddramc",
49+- reg: Should contain registers location and length
50+ For at91sam9263 and at91sam9g45 you must specify 2 entries.
51+
52+Examples:
53+
54+ ramc0: ramc@ffffe800 {
55+ compatible = "atmel,at91sam9g45-ddramc";
56+ reg = <0xffffe800 0x200>;
57+ };
58+
59+ ramc0: ramc@ffffe400 {
60+ compatible = "atmel,at91sam9g45-ddramc";
61+ reg = <0xffffe400 0x200
62+ 0xffffe600 0x200>;
63+ };
64+
65+SHDWC Shutdown Controller
66+
67+required properties:
68+- compatible: Should be "atmel,<chip>-shdwc".
69+ <chip> can be "at91sam9260", "at91sam9rl" or "at91sam9x5".
70+- reg: Should contain registers location and length
71+
72+optional properties:
73+- atmel,wakeup-mode: String, operation mode of the wakeup mode.
74+ Supported values are: "none", "high", "low", "any".
75+- atmel,wakeup-counter: Counter on Wake-up 0 (between 0x0 and 0xf).
76+
77+optional at91sam9260 properties:
78+- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
79+
80+optional at91sam9rl properties:
81+- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
82+- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
83+
84+optional at91sam9x5 properties:
85+- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
86+
87+Example:
88+
89+ rstc@fffffd00 {
90+ compatible = "atmel,at91sam9260-rstc";
91+ reg = <0xfffffd00 0x10>;
92+ };
Documentation/devicetree/bindings/arm/atmel-pmc.txt+11−0
@@ -0,0 +1,11 @@
1+* Power Management Controller (PMC)
2+
3+Required properties:
4+- compatible: Should be "atmel,at91rm9200-pmc"
5+- reg: Should contain PMC registers location and length
6+
7+Examples:
8+ pmc: pmc@fffffc00 {
9+ compatible = "atmel,at91rm9200-pmc";
10+ reg = <0xfffffc00 0x100>;
11+ };
Documentation/devicetree/bindings/arm/fsl.txt+22−0
@@ -28,3 +28,25 @@ Required root node properties: · 27 unmodified lines
2828 i.MX6 Quad SABRE Lite Board
2929 Required root node properties:
3030 - compatible = "fsl,imx6q-sabrelite", "fsl,imx6q";
31+
32+Generic i.MX boards
33+-------------------
34+
35+No iomux setup is done for these boards, so this must have been configured
36+by the bootloader for boards to work with the generic bindings.
37+
38+i.MX27 generic board
39+Required root node properties:
40+ - compatible = "fsl,imx27";
41+
42+i.MX51 generic board
43+Required root node properties:
44+ - compatible = "fsl,imx51";
45+
46+i.MX53 generic board
47+Required root node properties:
48+ - compatible = "fsl,imx53";
49+
50+i.MX6q generic board
51+Required root node properties:
52+ - compatible = "fsl,imx6q";
Documentation/devicetree/bindings/arm/mrvl.txt+6−0
@@ -0,0 +1,6 @@
1+Marvell Platforms Device Tree Bindings
2+----------------------------------------------------
3+
4+PXA168 Aspenite Board
5+Required root node properties:
6+ - compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168";
Documentation/devicetree/bindings/arm/omap/intc.txt+27−0
@@ -0,0 +1,27 @@
1+* OMAP Interrupt Controller
2+
3+OMAP2/3 are using a TI interrupt controller that can support several
4+configurable number of interrupts.
5+
6+Main node required properties:
7+
8+- compatible : should be:
9+ "ti,omap2-intc"
10+- interrupt-controller : Identifies the node as an interrupt controller
11+- #interrupt-cells : Specifies the number of cells needed to encode an
12+ interrupt source. The type shall be a <u32> and the value shall be 1.
13+
14+ The cell contains the interrupt number in the range [0-128].
15+- ti,intc-size: Number of interrupts handled by the interrupt controller.
16+- reg: physical base address and size of the intc registers map.
17+
18+Example:
19+
20+ intc: interrupt-controller@1 {
21+ compatible = "ti,omap2-intc";
22+ interrupt-controller;
23+ #interrupt-cells = <1>;
24+ ti,intc-size = <96>;
25+ reg = <0x48200000 0x1000>;
26+ };
27+
Documentation/devicetree/bindings/arm/spear.txt+8−0
@@ -0,0 +1,8 @@
1+ST SPEAr Platforms Device Tree Bindings
2+---------------------------------------
3+
4+Boards with the ST SPEAr600 SoC shall have the following properties:
5+
6+Required root node property:
7+
8+compatible = "st,spear600";
Documentation/devicetree/bindings/arm/tegra/emc.txt+100−0
@@ -0,0 +1,100 @@
1+Embedded Memory Controller
2+
3+Properties:
4+- name : Should be emc
5+- #address-cells : Should be 1
6+- #size-cells : Should be 0
7+- compatible : Should contain "nvidia,tegra20-emc".
8+- reg : Offset and length of the register set for the device
9+- nvidia,use-ram-code : If present, the sub-nodes will be addressed
10+ and chosen using the ramcode board selector. If omitted, only one
11+ set of tables can be present and said tables will be used
12+ irrespective of ram-code configuration.
13+
14+Child device nodes describe the memory settings for different configurations and clock rates.
15+
16+Example:
17+
18+ emc@7000f400 {
19+ #address-cells = < 1 >;
20+ #size-cells = < 0 >;
21+ compatible = "nvidia,tegra20-emc";
22+ reg = <0x7000f4000 0x200>;
23+ }
24+
25+
26+Embedded Memory Controller ram-code table
27+
28+If the emc node has the nvidia,use-ram-code property present, then the
29+next level of nodes below the emc table are used to specify which settings
30+apply for which ram-code settings.
31+
32+If the emc node lacks the nvidia,use-ram-code property, this level is omitted
33+and the tables are stored directly under the emc node (see below).
34+
35+Properties:
36+
37+- name : Should be emc-tables
38+- nvidia,ram-code : the binary representation of the ram-code board strappings
39+ for which this node (and children) are valid.
40+
41+
42+
43+Embedded Memory Controller configuration table
44+
45+This is a table containing the EMC register settings for the various
46+operating speeds of the memory controller. They are always located as
47+subnodes of the emc controller node.
48+
49+There are two ways of specifying which tables to use:
50+
51+* The simplest is if there is just one set of tables in the device tree,
52+ and they will always be used (based on which frequency is used).
53+ This is the preferred method, especially when firmware can fill in
54+ this information based on the specific system information and just
55+ pass it on to the kernel.
56+
57+* The slightly more complex one is when more than one memory configuration
58+ might exist on the system. The Tegra20 platform handles this during
59+ early boot by selecting one out of possible 4 memory settings based
60+ on a 2-pin "ram code" bootstrap setting on the board. The values of
61+ these strappings can be read through a register in the SoC, and thus
62+ used to select which tables to use.
63+
64+Properties:
65+- name : Should be emc-table
66+- compatible : Should contain "nvidia,tegra20-emc-table".
67+- reg : either an opaque enumerator to tell different tables apart, or
68+ the valid frequency for which the table should be used (in kHz).
69+- clock-frequency : the clock frequency for the EMC at which this
70+ table should be used (in kHz).
71+- nvidia,emc-registers : a 46 word array of EMC registers to be programmed
72+ for operation at the 'clock-frequency' setting.
73+ The order and contents of the registers are:
74+ RC, RFC, RAS, RP, R2W, W2R, R2P, W2P, RD_RCD, WR_RCD, RRD, REXT,
75+ WDV, QUSE, QRST, QSAFE, RDV, REFRESH, BURST_REFRESH_NUM, PDEX2WR,
76+ PDEX2RD, PCHG2PDEN, ACT2PDEN, AR2PDEN, RW2PDEN, TXSR, TCKE, TFAW,
77+ TRPAB, TCLKSTABLE, TCLKSTOP, TREFBW, QUSE_EXTRA, FBIO_CFG6, ODT_WRITE,
78+ ODT_READ, FBIO_CFG5, CFG_DIG_DLL, DLL_XFORM_DQS, DLL_XFORM_QUSE,
79+ ZCAL_REF_CNT, ZCAL_WAIT_CNT, AUTO_CAL_INTERVAL, CFG_CLKTRIM_0,
80+ CFG_CLKTRIM_1, CFG_CLKTRIM_2
81+
82+ emc-table@166000 {
83+ reg = <166000>;
84+ compatible = "nvidia,tegra20-emc-table";
85+ clock-frequency = < 166000 >;
86+ nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0
87+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0
88+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0
89+ 0 0 0 0 >;
90+ };
91+
92+ emc-table@333000 {
93+ reg = <333000>;
94+ compatible = "nvidia,tegra20-emc-table";
95+ clock-frequency = < 333000 >;
96+ nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0
97+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0
98+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0
99+ 0 0 0 0 >;
100+ };
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt+19−0
@@ -0,0 +1,19 @@
1+NVIDIA Tegra Power Management Controller (PMC)
2+
3+Properties:
4+- name : Should be pmc
5+- compatible : Should contain "nvidia,tegra<chip>-pmc".
6+- reg : Offset and length of the register set for the device
7+- nvidia,invert-interrupt : If present, inverts the PMU interrupt signal.
8+ The PMU is an external Power Management Unit, whose interrupt output
9+ signal is fed into the PMC. This signal is optionally inverted, and then
10+ fed into the ARM GIC. The PMC is not involved in the detection or
11+ handling of this interrupt signal, merely its inversion.
12+
13+Example:
14+
15+pmc@7000f400 {
16+ compatible = "nvidia,tegra20-pmc";
17+ reg = <0x7000e400 0x400>;
18+ nvidia,invert-interrupt;
19+};
Documentation/devicetree/bindings/arm/twd.txt+48−0
@@ -0,0 +1,48 @@
1+* ARM Timer Watchdog
2+
3+ARM 11MP, Cortex-A5 and Cortex-A9 are often associated with a per-core
4+Timer-Watchdog (aka TWD), which provides both a per-cpu local timer
5+and watchdog.
6+
7+The TWD is usually attached to a GIC to deliver its two per-processor
8+interrupts.
9+
10+** Timer node required properties:
11+
12+- compatible : Should be one of:
13+ "arm,cortex-a9-twd-timer"
14+ "arm,cortex-a5-twd-timer"
15+ "arm,arm11mp-twd-timer"
16+
17+- interrupts : One interrupt to each core
18+
19+- reg : Specify the base address and the size of the TWD timer
20+ register window.
21+
22+Example:
23+
24+ twd-timer@2c000600 {
25+ compatible = "arm,arm11mp-twd-timer"";
26+ reg = <0x2c000600 0x20>;
27+ interrupts = <1 13 0xf01>;
28+ };
29+
30+** Watchdog node properties:
31+
32+- compatible : Should be one of:
33+ "arm,cortex-a9-twd-wdt"
34+ "arm,cortex-a5-twd-wdt"
35+ "arm,arm11mp-twd-wdt"
36+
37+- interrupts : One interrupt to each core
38+
39+- reg : Specify the base address and the size of the TWD watchdog
40+ register window.
41+
42+Example:
43+
44+ twd-watchdog@2c000620 {
45+ compatible = "arm,arm11mp-twd-wdt";
46+ reg = <0x2c000620 0x20>;
47+ interrupts = <1 14 0xf01>;
48+ };
Documentation/devicetree/bindings/arm/vexpress.txt+146−0
@@ -0,0 +1,146 @@
1+ARM Versatile Express boards family
2+-----------------------------------
3+
4+ARM's Versatile Express platform consists of a motherboard and one
5+or more daughterboards (tiles). The motherboard provides a set of
6+peripherals. Processor and RAM "live" on the tiles.
7+
8+The motherboard and each core tile should be described by a separate
9+Device Tree source file, with the tile's description including
10+the motherboard file using a /include/ directive. As the motherboard
11+can be initialized in one of two different configurations ("memory
12+maps"), care must be taken to include the correct one.
13+
14+Required properties in the root node:
15+- compatible value:
16+ compatible = "arm,vexpress,<model>", "arm,vexpress";
17+ where <model> is the full tile model name (as used in the tile's
18+ Technical Reference Manual), eg.:
19+ - for Coretile Express A5x2 (V2P-CA5s):
20+ compatible = "arm,vexpress,v2p-ca5s", "arm,vexpress";
21+ - for Coretile Express A9x4 (V2P-CA9):
22+ compatible = "arm,vexpress,v2p-ca9", "arm,vexpress";
23+ If a tile comes in several variants or can be used in more then one
24+ configuration, the compatible value should be:
25+ compatible = "arm,vexpress,<model>,<variant>", \
26+ "arm,vexpress,<model>", "arm,vexpress";
27+ eg:
28+ - Coretile Express A15x2 (V2P-CA15) with Tech Chip 1:
29+ compatible = "arm,vexpress,v2p-ca15,tc1", \
30+ "arm,vexpress,v2p-ca15", "arm,vexpress";
31+ - LogicTile Express 13MG (V2F-2XV6) running Cortex-A7 (3 cores) SMM:
32+ compatible = "arm,vexpress,v2f-2xv6,ca7x3", \
33+ "arm,vexpress,v2f-2xv6", "arm,vexpress";
34+
35+Optional properties in the root node:
36+- tile model name (use name from the tile's Technical Reference
37+ Manual, eg. "V2P-CA5s")
38+ model = "<model>";
39+- tile's HBI number (unique ARM's board model ID, visible on the
40+ PCB's silkscreen) in hexadecimal transcription:
41+ arm,hbi = <0xhbi>
42+ eg:
43+ - for Coretile Express A5x2 (V2P-CA5s) HBI-0191:
44+ arm,hbi = <0x191>;
45+ - Coretile Express A9x4 (V2P-CA9) HBI-0225:
46+ arm,hbi = <0x225>;
47+
48+Top-level standard "cpus" node is required. It must contain a node
49+with device_type = "cpu" property for every available core, eg.:
50+
51+ cpus {
52+ #address-cells = <1>;
53+ #size-cells = <0>;
54+
55+ cpu@0 {
56+ device_type = "cpu";
57+ compatible = "arm,cortex-a5";
58+ reg = <0>;
59+ };
60+ };
61+
62+The motherboard description file provides a single "motherboard" node
63+using 2 address cells corresponding to the Static Memory Bus used
64+between the motherboard and the tile. The first cell defines the Chip
65+Select (CS) line number, the second cell address offset within the CS.
66+All interrupt lines between the motherboard and the tile are active
67+high and are described using single cell.
68+
69+Optional properties of the "motherboard" node:
70+- motherboard's memory map variant:
71+ arm,v2m-memory-map = "<name>";
72+ where name is one of:
73+ - "rs1" - for RS1 map (i.a. peripherals on CS3); this map is also
74+ referred to as "ARM Cortex-A Series memory map":
75+ arm,v2m-memory-map = "rs1";
76+ When this property is missing, the motherboard is using the original
77+ memory map (also known as the "Legacy memory map", primarily used
78+ with the original CoreTile Express A9x4) with peripherals on CS7.
79+
80+Motherboard .dtsi files provide a set of labelled peripherals that
81+can be used to obtain required phandle in the tile's "aliases" node:
82+- UARTs, note that the numbers correspond to the physical connectors
83+ on the motherboard's back panel:
84+ v2m_serial0, v2m_serial1, v2m_serial2 and v2m_serial3
85+- I2C controllers:
86+ v2m_i2c_dvi and v2m_i2c_pcie
87+- SP804 timers:
88+ v2m_timer01 and v2m_timer23
89+
90+Current Linux implementation requires a "arm,v2m_timer" alias
91+pointing at one of the motherboard's SP804 timers, if it is to be
92+used as the system timer. This alias should be defined in the
93+motherboard files.
94+
95+The tile description must define "ranges", "interrupt-map-mask" and
96+"interrupt-map" properties to translate the motherboard's address
97+and interrupt space into one used by the tile's processor.
98+
99+Abbreviated example:
100+
101+/dts-v1/;
102+
103+/ {
104+ model = "V2P-CA5s";
105+ arm,hbi = <0x225>;
106+ compatible = "arm,vexpress-v2p-ca5s", "arm,vexpress";
107+ interrupt-parent = <&gic>;
108+ #address-cells = <1>;
109+ #size-cells = <1>;
110+
111+ chosen { };
112+
113+ aliases {
114+ serial0 = &v2m_serial0;
115+ };
116+
117+ cpus {
118+ #address-cells = <1>;
119+ #size-cells = <0>;
120+
121+ cpu@0 {
122+ device_type = "cpu";
123+ compatible = "arm,cortex-a5";
124+ reg = <0>;
125+ };
126+ };
127+
128+ gic: interrupt-controller@2c001000 {
129+ compatible = "arm,cortex-a9-gic";
130+ #interrupt-cells = <3>;
131+ #address-cells = <0>;
132+ interrupt-controller;
133+ reg = <0x2c001000 0x1000>,
134+ <0x2c000100 0x100>;
135+ };
136+
137+ motherboard {
138+ /* CS0 is visible at 0x08000000 */
139+ ranges = <0 0 0x08000000 0x04000000>;
140+ interrupt-map-mask = <0 0 63>;
141+ /* Active high IRQ 0 is connected to GIC's SPI0 */
142+ interrupt-map = <0 0 0 &gic 0 0 4>;
143+ };
144+};
145+
146+/include/ "vexpress-v2m-rs1.dtsi"
Documentation/devicetree/bindings/dma/tegra20-apbdma.txt+30−0
@@ -0,0 +1,30 @@
1+* NVIDIA Tegra APB DMA controller
2+
3+Required properties:
4+- compatible: Should be "nvidia,<chip>-apbdma"
5+- reg: Should contain DMA registers location and length. This shuld include
6+ all of the per-channel registers.
7+- interrupts: Should contain all of the per-channel DMA interrupts.
8+
9+Examples:
10+
11+apbdma: dma@6000a000 {
12+ compatible = "nvidia,tegra20-apbdma";
13+ reg = <0x6000a000 0x1200>;
14+ interrupts = < 0 136 0x04
15+ 0 137 0x04
16+ 0 138 0x04
17+ 0 139 0x04
18+ 0 140 0x04
19+ 0 141 0x04
20+ 0 142 0x04
21+ 0 143 0x04
22+ 0 144 0x04
23+ 0 145 0x04
24+ 0 146 0x04
25+ 0 147 0x04
26+ 0 148 0x04
27+ 0 149 0x04
28+ 0 150 0x04
29+ 0 151 0x04 >;
30+};
Documentation/devicetree/bindings/gpio/gpio-omap.txt+36−0
@@ -0,0 +1,36 @@
1+OMAP GPIO controller bindings
2+
3+Required properties:
4+- compatible:
5+ - "ti,omap2-gpio" for OMAP2 controllers
6+ - "ti,omap3-gpio" for OMAP3 controllers
7+ - "ti,omap4-gpio" for OMAP4 controllers
8+- #gpio-cells : Should be two.
9+ - first cell is the pin number
10+ - second cell is used to specify optional parameters (unused)
11+- gpio-controller : Marks the device node as a GPIO controller.
12+- #interrupt-cells : Should be 2.
13+- interrupt-controller: Mark the device node as an interrupt controller
14+ The first cell is the GPIO number.
15+ The second cell is used to specify flags:
16+ bits[3:0] trigger type and level flags:
17+ 1 = low-to-high edge triggered.
18+ 2 = high-to-low edge triggered.
19+ 4 = active high level-sensitive.
20+ 8 = active low level-sensitive.
21+
22+OMAP specific properties:
23+- ti,hwmods: Name of the hwmod associated to the GPIO:
24+ "gpio<X>", <X> being the 1-based instance number from the HW spec
25+
26+
27+Example:
28+
29+gpio4: gpio4 {
30+ compatible = "ti,omap4-gpio";
31+ ti,hwmods = "gpio4";
32+ #gpio-cells = <2>;
33+ gpio-controller;
34+ #interrupt-cells = <2>;
35+ interrupt-controller;
36+};
Documentation/devicetree/bindings/gpio/gpio-twl4030.txt+23−0
@@ -0,0 +1,23 @@
1+twl4030 GPIO controller bindings
2+
3+Required properties:
4+- compatible:
5+ - "ti,twl4030-gpio" for twl4030 GPIO controller
6+- #gpio-cells : Should be two.
7+ - first cell is the pin number
8+ - second cell is used to specify optional parameters (unused)
9+- gpio-controller : Marks the device node as a GPIO controller.
10+- #interrupt-cells : Should be 2.
11+- interrupt-controller: Mark the device node as an interrupt controller
12+ The first cell is the GPIO number.
13+ The second cell is not used.
14+
15+Example:
16+
17+twl_gpio: gpio {
18+ compatible = "ti,twl4030-gpio";
19+ #gpio-cells = <2>;
20+ gpio-controller;
21+ #interrupt-cells = <2>;
22+ interrupt-controller;
23+};
Documentation/devicetree/bindings/gpio/gpio_atmel.txt+20−0
@@ -0,0 +1,20 @@
1+* Atmel GPIO controller (PIO)
2+
3+Required properties:
4+- compatible: "atmel,<chip>-gpio", where <chip> is at91rm9200 or at91sam9x5.
5+- reg: Should contain GPIO controller registers location and length
6+- interrupts: Should be the port interrupt shared by all the pins.
7+- #gpio-cells: Should be two. The first cell is the pin number and
8+ the second cell is used to specify optional parameters (currently
9+ unused).
10+- gpio-controller: Marks the device node as a GPIO controller.
11+
12+Example:
13+ pioA: gpio@fffff200 {
14+ compatible = "atmel,at91rm9200-gpio";
15+ reg = <0xfffff200 0x100>;
16+ interrupts = <2 4>;
17+ #gpio-cells = <2>;
18+ gpio-controller;
19+ };
20+
Documentation/devicetree/bindings/gpio/gpio_i2c.txt+32−0
@@ -0,0 +1,32 @@
1+Device-Tree bindings for i2c gpio driver
2+
3+Required properties:
4+ - compatible = "i2c-gpio";
5+ - gpios: sda and scl gpio
6+
7+
8+Optional properties:
9+ - i2c-gpio,sda-open-drain: sda as open drain
10+ - i2c-gpio,scl-open-drain: scl as open drain
11+ - i2c-gpio,scl-output-only: scl as output only
12+ - i2c-gpio,delay-us: delay between GPIO operations (may depend on each platform)
13+ - i2c-gpio,timeout-ms: timeout to get data
14+
15+Example nodes:
16+
17+i2c@0 {
18+ compatible = "i2c-gpio";
19+ gpios = <&pioA 23 0 /* sda */
20+ &pioA 24 0 /* scl */
21+ >;
22+ i2c-gpio,sda-open-drain;
23+ i2c-gpio,scl-open-drain;
24+ i2c-gpio,delay-us = <2>; /* ~100 kHz */
25+ #address-cells = <1>;
26+ #size-cells = <0>;
27+
28+ rv3029c2@56 {
29+ compatible = "rv3029c2";
30+ reg = <0x56>;
31+ };
32+};
Documentation/devicetree/bindings/gpio/gpio_nvidia.txt+34−2
@@ -1,8 +1,40 @@
1−NVIDIA Tegra 2 GPIO controller
1+NVIDIA Tegra GPIO controller
22
33 Required properties:
4−- compatible : "nvidia,tegra20-gpio"
4+- compatible : "nvidia,tegra<chip>-gpio"
5+- reg : Physical base address and length of the controller's registers.
6+- interrupts : The interrupt outputs from the controller. For Tegra20,
7+ there should be 7 interrupts specified, and for Tegra30, there should
8+ be 8 interrupts specified.
59 - #gpio-cells : Should be two. The first cell is the pin number and the
610 second cell is used to specify optional parameters:
711 - bit 0 specifies polarity (0 for normal, 1 for inverted)
812 - gpio-controller : Marks the device node as a GPIO controller.
13+- #interrupt-cells : Should be 2.
14+ The first cell is the GPIO number.
15+ The second cell is used to specify flags:
16+ bits[3:0] trigger type and level flags:
17+ 1 = low-to-high edge triggered.
18+ 2 = high-to-low edge triggered.
19+ 4 = active high level-sensitive.
20+ 8 = active low level-sensitive.
21+ Valid combinations are 1, 2, 3, 4, 8.
22+- interrupt-controller : Marks the device node as an interrupt controller.
23+
24+Example:
25+
26+gpio: gpio@6000d000 {
27+ compatible = "nvidia,tegra20-gpio";
28+ reg = < 0x6000d000 0x1000 >;
29+ interrupts = < 0 32 0x04
30+ 0 33 0x04
31+ 0 34 0x04
32+ 0 35 0x04
33+ 0 55 0x04
34+ 0 87 0x04
35+ 0 89 0x04 >;
36+ #gpio-cells = <2>;
37+ gpio-controller;
38+ #interrupt-cells = <2>;
39+ interrupt-controller;
40+};
Documentation/devicetree/bindings/gpio/mrvl-gpio.txt+23−0
@@ -0,0 +1,23 @@
1+* Marvell PXA GPIO controller
2+
3+Required properties:
4+- compatible : Should be "mrvl,pxa-gpio" or "mrvl,mmp-gpio"
5+- reg : Address and length of the register set for the device
6+- interrupts : Should be the port interrupt shared by all gpio pins, if
7+- interrupt-name : Should be the name of irq resource.
8+ one number.
9+- gpio-controller : Marks the device node as a gpio controller.
10+- #gpio-cells : Should be one. It is the pin number.
11+
12+Example:
13+
14+ gpio: gpio@d4019000 {
15+ compatible = "mrvl,mmp-gpio", "mrvl,pxa-gpio";
16+ reg = <0xd4019000 0x1000>;
17+ interrupts = <49>, <17>, <18>;
18+ interrupt-name = "gpio_mux", "gpio0", "gpio1";
19+ gpio-controller;
20+ #gpio-cells = <1>;
21+ interrupt-controller;
22+ #interrupt-cells = <1>;
23+ };
Documentation/devicetree/bindings/gpio/sodaville.txt+48−0
@@ -0,0 +1,48 @@
1+GPIO controller on CE4100 / Sodaville SoCs
2+==========================================
3+
4+The bindings for CE4100's GPIO controller match the generic description
5+which is covered by the gpio.txt file in this folder.
6+
7+The only additional property is the intel,muxctl property which holds the
8+value which is written into the MUXCNTL register.
9+
10+There is no compatible property for now because the driver is probed via
11+PCI id (vendor 0x8086 device 0x2e67).
12+
13+The interrupt specifier consists of two cells encoded as follows:
14+ - <1st cell>: The interrupt-number that identifies the interrupt source.
15+ - <2nd cell>: The level-sense information, encoded as follows:
16+ 4 - active high level-sensitive
17+ 8 - active low level-sensitive
18+
19+Example of the GPIO device and one user:
20+
21+ pcigpio: gpio@b,1 {
22+ /* two cells for GPIO and interrupt */
23+ #gpio-cells = <2>;
24+ #interrupt-cells = <2>;
25+ compatible = "pci8086,2e67.2",
26+ "pci8086,2e67",
27+ "pciclassff0000",
28+ "pciclassff00";
29+
30+ reg = <0x15900 0x0 0x0 0x0 0x0>;
31+ /* Interrupt line of the gpio device */
32+ interrupts = <15 1>;
33+ /* It is an interrupt and GPIO controller itself */
34+ interrupt-controller;
35+ gpio-controller;
36+ intel,muxctl = <0>;
37+ };
38+
39+ testuser@20 {
40+ compatible = "example,testuser";
41+ /* User the 11th GPIO line as an active high triggered
42+ * level interrupt
43+ */
44+ interrupts = <11 8>;
45+ interrupt-parent = <&pcigpio>;
46+ /* Use this GPIO also with the gpio functions */
47+ gpios = <&pcigpio 11 0>;
48+ };
Documentation/devicetree/bindings/i2c/mrvl-i2c.txt+37−0
@@ -0,0 +1,37 @@
1+* I2C
2+
3+Required properties :
4+
5+ - reg : Offset and length of the register set for the device
6+ - compatible : should be "mrvl,mmp-twsi" where CHIP is the name of a
7+ compatible processor, e.g. pxa168, pxa910, mmp2, mmp3.
8+ For the pxa2xx/pxa3xx, an additional node "mrvl,pxa-i2c" is required
9+ as shown in the example below.
10+
11+Recommended properties :
12+
13+ - interrupts : <a b> where a is the interrupt number and b is a
14+ field that represents an encoding of the sense and level
15+ information for the interrupt. This should be encoded based on
16+ the information in section 2) depending on the type of interrupt
17+ controller you have.
18+ - interrupt-parent : the phandle for the interrupt controller that
19+ services interrupts for this device.
20+ - mrvl,i2c-polling : Disable interrupt of i2c controller. Polling
21+ status register of i2c controller instead.
22+ - mrvl,i2c-fast-mode : Enable fast mode of i2c controller.
23+
24+Examples:
25+ twsi1: i2c@d4011000 {
26+ compatible = "mrvl,mmp-twsi", "mrvl,pxa-i2c";
27+ reg = <0xd4011000 0x1000>;
28+ interrupts = <7>;
29+ mrvl,i2c-fast-mode;
30+ };
31+
32+ twsi2: i2c@d4025000 {
33+ compatible = "mrvl,mmp-twsi", "mrvl,pxa-i2c";
34+ reg = <0xd4025000 0x1000>;
35+ interrupts = <58>;
36+ };
37+
Documentation/devicetree/bindings/i2c/sirf-i2c.txt+19−0
@@ -0,0 +1,19 @@
1+I2C for SiRFprimaII platforms
2+
3+Required properties :
4+- compatible : Must be "sirf,prima2-i2c"
5+- reg: physical base address of the controller and length of memory mapped
6+ region.
7+- interrupts: interrupt number to the cpu.
8+
9+Optional properties:
10+- clock-frequency : Constains desired I2C/HS-I2C bus clock frequency in Hz.
11+ The absence of the propoerty indicates the default frequency 100 kHz.
12+
13+Examples :
14+
15+i2c0: i2c@b00e0000 {
16+ compatible = "sirf,prima2-i2c";
17+ reg = <0xb00e0000 0x10000>;
18+ interrupts = <24>;
19+};
Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt+33−0
@@ -0,0 +1,33 @@
1+* TI Highspeed MMC host controller for OMAP
2+
3+The Highspeed MMC Host Controller on TI OMAP family
4+provides an interface for MMC, SD, and SDIO types of memory cards.
5+
6+Required properties:
7+- compatible:
8+ Should be "ti,omap2-hsmmc", for OMAP2 controllers
9+ Should be "ti,omap3-hsmmc", for OMAP3 controllers
10+ Should be "ti,omap4-hsmmc", for OMAP4 controllers
11+- ti,hwmods: Must be "mmc<n>", n is controller instance starting 1
12+- reg : should contain hsmmc registers location and length
13+
14+Optional properties:
15+ti,dual-volt: boolean, supports dual voltage cards
16+<supply-name>-supply: phandle to the regulator device tree node
17+"supply-name" examples are "vmmc", "vmmc_aux" etc
18+ti,bus-width: Number of data lines, default assumed is 1 if the property is missing.
19+cd-gpios: GPIOs for card detection
20+wp-gpios: GPIOs for write protection
21+ti,non-removable: non-removable slot (like eMMC)
22+ti,needs-special-reset: Requires a special softreset sequence
23+
24+Example:
25+ mmc1: mmc@0x4809c000 {
26+ compatible = "ti,omap4-hsmmc";
27+ reg = <0x4809c000 0x400>;
28+ ti,hwmods = "mmc1";
29+ ti,dual-volt;
30+ ti,bus-width = <4>;
31+ vmmc-supply = <&vmmc>; /* phandle to regulator node */
32+ ti,non-removable;
33+ };
Documentation/devicetree/bindings/mtd/arm-versatile.txt+2−2
@@ -4,5 +4,5 @@ Required properties: · 3 unmodified lines
44 - compatible : must be "arm,versatile-flash";
55 - bank-width : width in bytes of flash interface.
66
7−Optional properties:
8−- Subnode partition map from mtd flash binding
7+The device tree may optionally contain sub-nodes describing partitions of the
8+address space. See partition.txt for more detail.
Documentation/devicetree/bindings/mtd/atmel-dataflash.txt+3−0
@@ -3,6 +3,9 @@ · 2 unmodified lines
33 Required properties:
44 - compatible : "atmel,<model>", "atmel,<series>", "atmel,dataflash".
55
6+The device tree may optionally contain sub-nodes describing partitions of the
7+address space. See partition.txt for more detail.
8+
69 Example:
710
811 flash@1 {
Documentation/devicetree/bindings/mtd/atmel-nand.txt+41−0
@@ -0,0 +1,41 @@
1+Atmel NAND flash
2+
3+Required properties:
4+- compatible : "atmel,at91rm9200-nand".
5+- reg : should specify localbus address and size used for the chip,
6+ and if availlable the ECC.
7+- atmel,nand-addr-offset : offset for the address latch.
8+- atmel,nand-cmd-offset : offset for the command latch.
9+- #address-cells, #size-cells : Must be present if the device has sub-nodes
10+ representing partitions.
11+
12+- gpios : specifies the gpio pins to control the NAND device. detect is an
13+ optional gpio and may be set to 0 if not present.
14+
15+Optional properties:
16+- nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default.
17+ Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first",
18+ "soft_bch".
19+- nand-bus-width : 8 or 16 bus width if not present 8
20+- nand-on-flash-bbt: boolean to enable on flash bbt option if not present false
21+
22+Examples:
23+nand0: nand@40000000,0 {
24+ compatible = "atmel,at91rm9200-nand";
25+ #address-cells = <1>;
26+ #size-cells = <1>;
27+ reg = <0x40000000 0x10000000
28+ 0xffffe800 0x200
29+ >;
30+ atmel,nand-addr-offset = <21>; /* ale */
31+ atmel,nand-cmd-offset = <22>; /* cle */
32+ nand-on-flash-bbt;
33+ nand-ecc-mode = "soft";
34+ gpios = <&pioC 13 0 /* rdy */
35+ &pioC 14 0 /* nce */
36+ 0 /* cd */
37+ >;
38+ partition@0 {
39+ ...
40+ };
41+};
Documentation/devicetree/bindings/mtd/fsl-upm-nand.txt+4−0
@@ -19,6 +19,10 @@ Optional properties: · 18 unmodified lines
1919 read registers (tR). Required if property "gpios" is not used
2020 (R/B# pins not connected).
2121
22+Each flash chip described may optionally contain additional sub-nodes
23+describing partitions of the address space. See partition.txt for more
24+detail.
25+
2226 Examples:
2327
2428 upm@1,0 {
Documentation/devicetree/bindings/mtd/fsmc-nand.txt+33−0
@@ -0,0 +1,33 @@
1+* FSMC NAND
2+
3+Required properties:
4+- compatible : "st,spear600-fsmc-nand"
5+- reg : Address range of the mtd chip
6+- reg-names: Should contain the reg names "fsmc_regs" and "nand_data"
7+- st,ale-off : Chip specific offset to ALE
8+- st,cle-off : Chip specific offset to CLE
9+
10+Optional properties:
11+- bank-width : Width (in bytes) of the device. If not present, the width
12+ defaults to 1 byte
13+- nand-skip-bbtscan: Indicates the the BBT scanning should be skipped
14+
15+Example:
16+
17+ fsmc: flash@d1800000 {
18+ compatible = "st,spear600-fsmc-nand";
19+ #address-cells = <1>;
20+ #size-cells = <1>;
21+ reg = <0xd1800000 0x1000 /* FSMC Register */
22+ 0xd2000000 0x4000>; /* NAND Base */
23+ reg-names = "fsmc_regs", "nand_data";
24+ st,ale-off = <0x20000>;
25+ st,cle-off = <0x10000>;
26+
27+ bank-width = <1>;
28+ nand-skip-bbtscan;
29+
30+ partition@0 {
31+ ...
32+ };
33+ };
Documentation/devicetree/bindings/mtd/gpio-control-nand.txt+3−0
@@ -25,6 +25,9 @@ Optional properties: · 24 unmodified lines
2525 GPIO state and before and after command byte writes, this register will be
2626 read to ensure that the GPIO accesses have completed.
2727
28+The device tree may optionally contain sub-nodes describing partitions of the
29+address space. See partition.txt for more detail.
30+
2831 Examples:
2932
3033 gpio-nand@1,0 {
Documentation/devicetree/bindings/mtd/mtd-physmap.txt+2−21
@@ -23,27 +23,8 @@ are defined: · 22 unmodified lines
2323 - vendor-id : Contains the flash chip's vendor id (1 byte).
2424 - device-id : Contains the flash chip's device id (1 byte).
2525
26−In addition to the information on the mtd bank itself, the
27−device tree may optionally contain additional information
28−describing partitions of the address space. This can be
29−used on platforms which have strong conventions about which
30−portions of a flash are used for what purposes, but which don't
31−use an on-flash partition table such as RedBoot.
32−
33−Each partition is represented as a sub-node of the mtd device.
34−Each node's name represents the name of the corresponding
35−partition of the mtd device.
36−
37−Flash partitions
38− - reg : The partition's offset and size within the mtd bank.
39− - label : (optional) The label / name for this partition.
40− If omitted, the label is taken from the node name (excluding
41− the unit address).
42− - read-only : (optional) This parameter, if present, is a hint to
43− Linux that this partition should only be mounted
44− read-only. This is usually used for flash partitions
45− containing early-boot firmware images or data which should not
46− be clobbered.
26+The device tree may optionally contain sub-nodes describing partitions of the
27+address space. See partition.txt for more detail.
4728
4829 Example:
4930
Documentation/devicetree/bindings/mtd/nand.txt+7−0
@@ -0,0 +1,7 @@
1+* MTD generic binding
2+
3+- nand-ecc-mode : String, operation mode of the NAND ecc mode.
4+ Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first",
5+ "soft_bch".
6+- nand-bus-width : 8 or 16 bus width if not present 8
7+- nand-on-flash-bbt: boolean to enable on flash bbt option if not present false
Documentation/devicetree/bindings/mtd/partition.txt+38−0
@@ -0,0 +1,38 @@
1+Representing flash partitions in devicetree
2+
3+Partitions can be represented by sub-nodes of an mtd device. This can be used
4+on platforms which have strong conventions about which portions of a flash are
5+used for what purposes, but which don't use an on-flash partition table such
6+as RedBoot.
7+
8+#address-cells & #size-cells must both be present in the mtd device and be
9+equal to 1.
10+
11+Required properties:
12+- reg : The partition's offset and size within the mtd bank.
13+
14+Optional properties:
15+- label : The label / name for this partition. If omitted, the label is taken
16+ from the node name (excluding the unit address).
17+- read-only : This parameter, if present, is a hint to Linux that this
18+ partition should only be mounted read-only. This is usually used for flash
19+ partitions containing early-boot firmware images or data which should not be
20+ clobbered.
21+
22+Examples:
23+
24+
25+flash@0 {
26+ #address-cells = <1>;
27+ #size-cells = <1>;
28+
29+ partition@0 {
30+ label = "u-boot";
31+ reg = <0x0000000 0x100000>;
32+ read-only;
33+ };
34+
35+ uimage@100000 {
36+ reg = <0x0100000 0x200000>;
37+ };
38+];
Documentation/devicetree/bindings/mtd/spear_smi.txt+31−0
@@ -0,0 +1,31 @@
1+* SPEAr SMI
2+
3+Required properties:
4+- compatible : "st,spear600-smi"
5+- reg : Address range of the mtd chip
6+- #address-cells, #size-cells : Must be present if the device has sub-nodes
7+ representing partitions.
8+- interrupt-parent: Should be the phandle for the interrupt controller
9+ that services interrupts for this device
10+- interrupts: Should contain the STMMAC interrupts
11+- clock-rate : Functional clock rate of SMI in Hz
12+
13+Optional properties:
14+- st,smi-fast-mode : Flash supports read in fast mode
15+
16+Example:
17+
18+ smi: flash@fc000000 {
19+ compatible = "st,spear600-smi";
20+ #address-cells = <1>;
21+ #size-cells = <1>;
22+ reg = <0xfc000000 0x1000>;
23+ interrupt-parent = <&vic1>;
24+ interrupts = <12>;
25+ clock-rate = <50000000>; /* 50MHz */
26+
27+ flash@f8000000 {
28+ st,smi-fast-mode;
29+ ...
30+ };
31+ };
Documentation/devicetree/bindings/power_supply/max17042_battery.txt+18−0
@@ -0,0 +1,18 @@
1+max17042_battery
2+~~~~~~~~~~~~~~~~
3+
4+Required properties :
5+ - compatible : "maxim,max17042"
6+
7+Optional properties :
8+ - maxim,rsns-microohm : Resistance of rsns resistor in micro Ohms
9+ (datasheet-recommended value is 10000).
10+ Defining this property enables current-sense functionality.
11+
12+Example:
13+
14+ battery-charger@36 {
15+ compatible = "maxim,max17042";
16+ reg = <0x36>;
17+ maxim,rsns-microohm = <10000>;
18+ };
Documentation/devicetree/bindings/regulator/anatop-regulator.txt+29−0
@@ -0,0 +1,29 @@
1+Anatop Voltage regulators
2+
3+Required properties:
4+- compatible: Must be "fsl,anatop-regulator"
5+- anatop-reg-offset: Anatop MFD register offset
6+- anatop-vol-bit-shift: Bit shift for the register
7+- anatop-vol-bit-width: Number of bits used in the register
8+- anatop-min-bit-val: Minimum value of this register
9+- anatop-min-voltage: Minimum voltage of this regulator
10+- anatop-max-voltage: Maximum voltage of this regulator
11+
12+Any property defined as part of the core regulator
13+binding, defined in regulator.txt, can also be used.
14+
15+Example:
16+
17+ regulator-vddpu {
18+ compatible = "fsl,anatop-regulator";
19+ regulator-name = "vddpu";
20+ regulator-min-microvolt = <725000>;
21+ regulator-max-microvolt = <1300000>;
22+ regulator-always-on;
23+ anatop-reg-offset = <0x140>;
24+ anatop-vol-bit-shift = <9>;
25+ anatop-vol-bit-width = <5>;
26+ anatop-min-bit-val = <1>;
27+ anatop-min-voltage = <725000>;
28+ anatop-max-voltage = <1300000>;
29+ };
Documentation/devicetree/bindings/rtc/sa1100-rtc.txt+17−0
@@ -0,0 +1,17 @@
1+* Marvell Real Time Clock controller
2+
3+Required properties:
4+- compatible: should be "mrvl,sa1100-rtc"
5+- reg: physical base address of the controller and length of memory mapped
6+ region.
7+- interrupts: Should be two. The first interrupt number is the rtc alarm
8+ interrupt and the second interrupt number is the rtc hz interrupt.
9+- interrupt-names: Assign name of irq resource.
10+
11+Example:
12+ rtc: rtc@d4010000 {
13+ compatible = "mrvl,mmp-rtc";
14+ reg = <0xd4010000 0x1000>;
15+ interrupts = <5>, <6>;
16+ interrupt-name = "rtc 1Hz", "rtc alarm";
17+ };
Documentation/devicetree/bindings/serial/mrvl-serial.txt+4−0
@@ -0,0 +1,4 @@
1+PXA UART controller
2+
3+Required properties:
4+- compatible : should be "mrvl,mmp-uart" or "mrvl,pxa-uart".
Documentation/devicetree/bindings/usb/atmel-usb.txt+49−0
@@ -0,0 +1,49 @@
1+Atmel SOC USB controllers
2+
3+OHCI
4+
5+Required properties:
6+ - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
7+ used in host mode.
8+ - num-ports: Number of ports.
9+ - atmel,vbus-gpio: If present, specifies a gpio that needs to be
10+ activated for the bus to be powered.
11+ - atmel,oc-gpio: If present, specifies a gpio that needs to be
12+ activated for the overcurrent detection.
13+
14+usb0: ohci@00500000 {
15+ compatible = "atmel,at91rm9200-ohci", "usb-ohci";
16+ reg = <0x00500000 0x100000>;
17+ interrupts = <20 4>;
18+ num-ports = <2>;
19+};
20+
21+EHCI
22+
23+Required properties:
24+ - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
25+ used in host mode.
26+
27+usb1: ehci@00800000 {
28+ compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
29+ reg = <0x00800000 0x100000>;
30+ interrupts = <22 4>;
31+};
32+
33+AT91 USB device controller
34+
35+Required properties:
36+ - compatible: Should be "atmel,at91rm9200-udc"
37+ - reg: Address and length of the register set for the device
38+ - interrupts: Should contain macb interrupt
39+
40+Optional properties:
41+ - atmel,vbus-gpio: If present, specifies a gpio that needs to be
42+ activated for the bus to be powered.
43+
44+usb1: gadget@fffa4000 {
45+ compatible = "atmel,at91rm9200-udc";
46+ reg = <0xfffa4000 0x4000>;
47+ interrupts = <10 4>;
48+ atmel,vbus-gpio = <&pioC 5 0>;
49+};
Documentation/devicetree/bindings/usb/tegra-usb.txt+13−0
@@ -11,3 +11,16 @@ Required properties : · 10 unmodified lines
1111 - phy_type : Should be one of "ulpi" or "utmi".
1212 - nvidia,vbus-gpio : If present, specifies a gpio that needs to be
1313 activated for the bus to be powered.
14+
15+Optional properties:
16+ - dr_mode : dual role mode. Indicates the working mode for
17+ nvidia,tegra20-ehci compatible controllers. Can be "host", "peripheral",
18+ or "otg". Default to "host" if not defined for backward compatibility.
19+ host means this is a host controller
20+ peripheral means it is device controller
21+ otg means it can operate as either ("on the go")
22+ - nvidia,has-legacy-mode : boolean indicates whether this controller can
23+ operate in legacy mode (as APX 2500 / 2600). In legacy mode some
24+ registers are accessed through the APB_MISC base address instead of
25+ the USB controller. Since this is a legacy issue it probably does not
26+ warrant a compatible string of its own.
Documentation/devicetree/usage-model.txt+412−0
@@ -0,0 +1,412 @@
1+Linux and the Device Tree
2+-------------------------
3+The Linux usage model for device tree data
4+
5+Author: Grant Likely <grant.likely@secretlab.ca>
6+
7+This article describes how Linux uses the device tree. An overview of
8+the device tree data format can be found on the device tree usage page
9+at devicetree.org[1].
10+
11+[1] http://devicetree.org/Device_Tree_Usage
12+
13+The "Open Firmware Device Tree", or simply Device Tree (DT), is a data
14+structure and language for describing hardware. More specifically, it
15+is a description of hardware that is readable by an operating system
16+so that the operating system doesn't need to hard code details of the
17+machine.
18+
19+Structurally, the DT is a tree, or acyclic graph with named nodes, and
20+nodes may have an arbitrary number of named properties encapsulating
21+arbitrary data. A mechanism also exists to create arbitrary
22+links from one node to another outside of the natural tree structure.
23+
24+Conceptually, a common set of usage conventions, called 'bindings',
25+is defined for how data should appear in the tree to describe typical
26+hardware characteristics including data busses, interrupt lines, GPIO
27+connections, and peripheral devices.
28+
29+As much as possible, hardware is described using existing bindings to
30+maximize use of existing support code, but since property and node
31+names are simply text strings, it is easy to extend existing bindings
32+or create new ones by defining new nodes and properties. Be wary,
33+however, of creating a new binding without first doing some homework
34+about what already exists. There are currently two different,
35+incompatible, bindings for i2c busses that came about because the new
36+binding was created without first investigating how i2c devices were
37+already being enumerated in existing systems.
38+
39+1. History
40+----------
41+The DT was originally created by Open Firmware as part of the
42+communication method for passing data from Open Firmware to a client
43+program (like to an operating system). An operating system used the
44+Device Tree to discover the topology of the hardware at runtime, and
45+thereby support a majority of available hardware without hard coded
46+information (assuming drivers were available for all devices).
47+
48+Since Open Firmware is commonly used on PowerPC and SPARC platforms,
49+the Linux support for those architectures has for a long time used the
50+Device Tree.
51+
52+In 2005, when PowerPC Linux began a major cleanup and to merge 32-bit
53+and 64-bit support, the decision was made to require DT support on all
54+powerpc platforms, regardless of whether or not they used Open
55+Firmware. To do this, a DT representation called the Flattened Device
56+Tree (FDT) was created which could be passed to the kernel as a binary
57+blob without requiring a real Open Firmware implementation. U-Boot,
58+kexec, and other bootloaders were modified to support both passing a
59+Device Tree Binary (dtb) and to modify a dtb at boot time. DT was
60+also added to the PowerPC boot wrapper (arch/powerpc/boot/*) so that
61+a dtb could be wrapped up with the kernel image to support booting
62+existing non-DT aware firmware.
63+
64+Some time later, FDT infrastructure was generalized to be usable by
65+all architectures. At the time of this writing, 6 mainlined
66+architectures (arm, microblaze, mips, powerpc, sparc, and x86) and 1
67+out of mainline (nios) have some level of DT support.
68+
69+2. Data Model
70+-------------
71+If you haven't already read the Device Tree Usage[1] page,
72+then go read it now. It's okay, I'll wait....
73+
74+2.1 High Level View
75+-------------------
76+The most important thing to understand is that the DT is simply a data
77+structure that describes the hardware. There is nothing magical about
78+it, and it doesn't magically make all hardware configuration problems
79+go away. What it does do is provide a language for decoupling the
80+hardware configuration from the board and device driver support in the
81+Linux kernel (or any other operating system for that matter). Using
82+it allows board and device support to become data driven; to make
83+setup decisions based on data passed into the kernel instead of on
84+per-machine hard coded selections.
85+
86+Ideally, data driven platform setup should result in less code
87+duplication and make it easier to support a wide range of hardware
88+with a single kernel image.
89+
90+Linux uses DT data for three major purposes:
91+1) platform identification,
92+2) runtime configuration, and
93+3) device population.
94+
95+2.2 Platform Identification
96+---------------------------
97+First and foremost, the kernel will use data in the DT to identify the
98+specific machine. In a perfect world, the specific platform shouldn't
99+matter to the kernel because all platform details would be described
100+perfectly by the device tree in a consistent and reliable manner.
101+Hardware is not perfect though, and so the kernel must identify the
102+machine during early boot so that it has the opportunity to run
103+machine-specific fixups.
104+
105+In the majority of cases, the machine identity is irrelevant, and the
106+kernel will instead select setup code based on the machine's core
107+CPU or SoC. On ARM for example, setup_arch() in
108+arch/arm/kernel/setup.c will call setup_machine_fdt() in
109+arch/arm/kernel/devicetree.c which searches through the machine_desc
110+table and selects the machine_desc which best matches the device tree
111+data. It determines the best match by looking at the 'compatible'
112+property in the root device tree node, and comparing it with the
113+dt_compat list in struct machine_desc.
114+
115+The 'compatible' property contains a sorted list of strings starting
116+with the exact name of the machine, followed by an optional list of
117+boards it is compatible with sorted from most compatible to least. For
118+example, the root compatible properties for the TI BeagleBoard and its
119+successor, the BeagleBoard xM board might look like:
120+
121+ compatible = "ti,omap3-beagleboard", "ti,omap3450", "ti,omap3";
122+ compatible = "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3";
123+
124+Where "ti,omap3-beagleboard-xm" specifies the exact model, it also
125+claims that it compatible with the OMAP 3450 SoC, and the omap3 family
126+of SoCs in general. You'll notice that the list is sorted from most
127+specific (exact board) to least specific (SoC family).
128+
129+Astute readers might point out that the Beagle xM could also claim
130+compatibility with the original Beagle board. However, one should be
131+cautioned about doing so at the board level since there is typically a
132+high level of change from one board to another, even within the same
133+product line, and it is hard to nail down exactly what is meant when one
134+board claims to be compatible with another. For the top level, it is
135+better to err on the side of caution and not claim one board is
136+compatible with another. The notable exception would be when one
137+board is a carrier for another, such as a CPU module attached to a
138+carrier board.
139+
140+One more note on compatible values. Any string used in a compatible
141+property must be documented as to what it indicates. Add
142+documentation for compatible strings in Documentation/devicetree/bindings.
143+
144+Again on ARM, for each machine_desc, the kernel looks to see if
145+any of the dt_compat list entries appear in the compatible property.
146+If one does, then that machine_desc is a candidate for driving the
147+machine. After searching the entire table of machine_descs,
148+setup_machine_fdt() returns the 'most compatible' machine_desc based
149+on which entry in the compatible property each machine_desc matches
150+against. If no matching machine_desc is found, then it returns NULL.
151+
152+The reasoning behind this scheme is the observation that in the majority
153+of cases, a single machine_desc can support a large number of boards
154+if they all use the same SoC, or same family of SoCs. However,
155+invariably there will be some exceptions where a specific board will
156+require special setup code that is not useful in the generic case.
157+Special cases could be handled by explicitly checking for the
158+troublesome board(s) in generic setup code, but doing so very quickly
159+becomes ugly and/or unmaintainable if it is more than just a couple of
160+cases.
161+
162+Instead, the compatible list allows a generic machine_desc to provide
163+support for a wide common set of boards by specifying "less
164+compatible" value in the dt_compat list. In the example above,
165+generic board support can claim compatibility with "ti,omap3" or
166+"ti,omap3450". If a bug was discovered on the original beagleboard
167+that required special workaround code during early boot, then a new
168+machine_desc could be added which implements the workarounds and only
169+matches on "ti,omap3-beagleboard".
170+
171+PowerPC uses a slightly different scheme where it calls the .probe()
172+hook from each machine_desc, and the first one returning TRUE is used.
173+However, this approach does not take into account the priority of the
174+compatible list, and probably should be avoided for new architecture
175+support.
176+
177+2.3 Runtime configuration
178+-------------------------
179+In most cases, a DT will be the sole method of communicating data from
180+firmware to the kernel, so also gets used to pass in runtime and
181+configuration data like the kernel parameters string and the location
182+of an initrd image.
183+
184+Most of this data is contained in the /chosen node, and when booting
185+Linux it will look something like this:
186+
187+ chosen {
188+ bootargs = "console=ttyS0,115200 loglevel=8";
189+ initrd-start = <0xc8000000>;
190+ initrd-end = <0xc8200000>;
191+ };
192+
193+The bootargs property contains the kernel arguments, and the initrd-*
194+properties define the address and size of an initrd blob. The
195+chosen node may also optionally contain an arbitrary number of
196+additional properties for platform-specific configuration data.
197+
198+During early boot, the architecture setup code calls of_scan_flat_dt()
199+several times with different helper callbacks to parse device tree
200+data before paging is setup. The of_scan_flat_dt() code scans through
201+the device tree and uses the helpers to extract information required
202+during early boot. Typically the early_init_dt_scan_chosen() helper
203+is used to parse the chosen node including kernel parameters,
204+early_init_dt_scan_root() to initialize the DT address space model,
205+and early_init_dt_scan_memory() to determine the size and
206+location of usable RAM.
207+
208+On ARM, the function setup_machine_fdt() is responsible for early
209+scanning of the device tree after selecting the correct machine_desc
210+that supports the board.
211+
212+2.4 Device population
213+---------------------
214+After the board has been identified, and after the early configuration data
215+has been parsed, then kernel initialization can proceed in the normal
216+way. At some point in this process, unflatten_device_tree() is called
217+to convert the data into a more efficient runtime representation.
218+This is also when machine-specific setup hooks will get called, like
219+the machine_desc .init_early(), .init_irq() and .init_machine() hooks
220+on ARM. The remainder of this section uses examples from the ARM
221+implementation, but all architectures will do pretty much the same
222+thing when using a DT.
223+
224+As can be guessed by the names, .init_early() is used for any machine-
225+specific setup that needs to be executed early in the boot process,
226+and .init_irq() is used to set up interrupt handling. Using a DT
227+doesn't materially change the behaviour of either of these functions.
228+If a DT is provided, then both .init_early() and .init_irq() are able
229+to call any of the DT query functions (of_* in include/linux/of*.h) to
230+get additional data about the platform.
231+
232+The most interesting hook in the DT context is .init_machine() which
233+is primarily responsible for populating the Linux device model with
234+data about the platform. Historically this has been implemented on
235+embedded platforms by defining a set of static clock structures,
236+platform_devices, and other data in the board support .c file, and
237+registering it en-masse in .init_machine(). When DT is used, then
238+instead of hard coding static devices for each platform, the list of
239+devices can be obtained by parsing the DT, and allocating device
240+structures dynamically.
241+
242+The simplest case is when .init_machine() is only responsible for
243+registering a block of platform_devices. A platform_device is a concept
244+used by Linux for memory or I/O mapped devices which cannot be detected
245+by hardware, and for 'composite' or 'virtual' devices (more on those
246+later). While there is no 'platform device' terminology for the DT,
247+platform devices roughly correspond to device nodes at the root of the
248+tree and children of simple memory mapped bus nodes.
249+
250+About now is a good time to lay out an example. Here is part of the
251+device tree for the NVIDIA Tegra board.
252+
253+/{
254+ compatible = "nvidia,harmony", "nvidia,tegra20";
255+ #address-cells = <1>;
256+ #size-cells = <1>;
257+ interrupt-parent = <&intc>;
258+
259+ chosen { };
260+ aliases { };
261+
262+ memory {
263+ device_type = "memory";
264+ reg = <0x00000000 0x40000000>;
265+ };
266+
267+ soc {
268+ compatible = "nvidia,tegra20-soc", "simple-bus";
269+ #address-cells = <1>;
270+ #size-cells = <1>;
271+ ranges;
272+
273+ intc: interrupt-controller@50041000 {
274+ compatible = "nvidia,tegra20-gic";
275+ interrupt-controller;
276+ #interrupt-cells = <1>;
277+ reg = <0x50041000 0x1000>, < 0x50040100 0x0100 >;
278+ };
279+
280+ serial@70006300 {
281+ compatible = "nvidia,tegra20-uart";
282+ reg = <0x70006300 0x100>;
283+ interrupts = <122>;
284+ };
285+
286+ i2s1: i2s@70002800 {
287+ compatible = "nvidia,tegra20-i2s";
288+ reg = <0x70002800 0x100>;
289+ interrupts = <77>;
290+ codec = <&wm8903>;
291+ };
292+
293+ i2c@7000c000 {
294+ compatible = "nvidia,tegra20-i2c";
295+ #address-cells = <1>;
296+ #size-cells = <0>;
297+ reg = <0x7000c000 0x100>;
298+ interrupts = <70>;
299+
300+ wm8903: codec@1a {
301+ compatible = "wlf,wm8903";
302+ reg = <0x1a>;
303+ interrupts = <347>;
304+ };
305+ };
306+ };
307+
308+ sound {
309+ compatible = "nvidia,harmony-sound";
310+ i2s-controller = <&i2s1>;
311+ i2s-codec = <&wm8903>;
312+ };
313+};
314+
315+At .machine_init() time, Tegra board support code will need to look at
316+this DT and decide which nodes to create platform_devices for.
317+However, looking at the tree, it is not immediately obvious what kind
318+of device each node represents, or even if a node represents a device
319+at all. The /chosen, /aliases, and /memory nodes are informational
320+nodes that don't describe devices (although arguably memory could be
321+considered a device). The children of the /soc node are memory mapped
322+devices, but the codec@1a is an i2c device, and the sound node
323+represents not a device, but rather how other devices are connected
324+together to create the audio subsystem. I know what each device is
325+because I'm familiar with the board design, but how does the kernel
326+know what to do with each node?
327+
328+The trick is that the kernel starts at the root of the tree and looks
329+for nodes that have a 'compatible' property. First, it is generally
330+assumed that any node with a 'compatible' property represents a device
331+of some kind, and second, it can be assumed that any node at the root
332+of the tree is either directly attached to the processor bus, or is a
333+miscellaneous system device that cannot be described any other way.
334+For each of these nodes, Linux allocates and registers a
335+platform_device, which in turn may get bound to a platform_driver.
336+
337+Why is using a platform_device for these nodes a safe assumption?
338+Well, for the way that Linux models devices, just about all bus_types
339+assume that its devices are children of a bus controller. For
340+example, each i2c_client is a child of an i2c_master. Each spi_device
341+is a child of an SPI bus. Similarly for USB, PCI, MDIO, etc. The
342+same hierarchy is also found in the DT, where I2C device nodes only
343+ever appear as children of an I2C bus node. Ditto for SPI, MDIO, USB,
344+etc. The only devices which do not require a specific type of parent
345+device are platform_devices (and amba_devices, but more on that
346+later), which will happily live at the base of the Linux /sys/devices
347+tree. Therefore, if a DT node is at the root of the tree, then it
348+really probably is best registered as a platform_device.
349+
350+Linux board support code calls of_platform_populate(NULL, NULL, NULL)
351+to kick off discovery of devices at the root of the tree. The
352+parameters are all NULL because when starting from the root of the
353+tree, there is no need to provide a starting node (the first NULL), a
354+parent struct device (the last NULL), and we're not using a match
355+table (yet). For a board that only needs to register devices,
356+.init_machine() can be completely empty except for the
357+of_platform_populate() call.
358+
359+In the Tegra example, this accounts for the /soc and /sound nodes, but
360+what about the children of the SoC node? Shouldn't they be registered
361+as platform devices too? For Linux DT support, the generic behaviour
362+is for child devices to be registered by the parent's device driver at
363+driver .probe() time. So, an i2c bus device driver will register a
364+i2c_client for each child node, an SPI bus driver will register
365+its spi_device children, and similarly for other bus_types.
366+According to that model, a driver could be written that binds to the
367+SoC node and simply registers platform_devices for each of its
368+children. The board support code would allocate and register an SoC
369+device, a (theoretical) SoC device driver could bind to the SoC device,
370+and register platform_devices for /soc/interrupt-controller, /soc/serial,
371+/soc/i2s, and /soc/i2c in its .probe() hook. Easy, right?
372+
373+Actually, it turns out that registering children of some
374+platform_devices as more platform_devices is a common pattern, and the
375+device tree support code reflects that and makes the above example
376+simpler. The second argument to of_platform_populate() is an
377+of_device_id table, and any node that matches an entry in that table
378+will also get its child nodes registered. In the tegra case, the code
379+can look something like this:
380+
381+static void __init harmony_init_machine(void)
382+{
383+ /* ... */
384+ of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
385+}
386+
387+"simple-bus" is defined in the ePAPR 1.0 specification as a property
388+meaning a simple memory mapped bus, so the of_platform_populate() code
389+could be written to just assume simple-bus compatible nodes will
390+always be traversed. However, we pass it in as an argument so that
391+board support code can always override the default behaviour.
392+
393+[Need to add discussion of adding i2c/spi/etc child devices]
394+
395+Appendix A: AMBA devices
396+------------------------
397+
398+ARM Primecells are a certain kind of device attached to the ARM AMBA
399+bus which include some support for hardware detection and power
400+management. In Linux, struct amba_device and the amba_bus_type is
401+used to represent Primecell devices. However, the fiddly bit is that
402+not all devices on an AMBA bus are Primecells, and for Linux it is
403+typical for both amba_device and platform_device instances to be
404+siblings of the same bus segment.
405+
406+When using the DT, this creates problems for of_platform_populate()
407+because it must decide whether to register each node as either a
408+platform_device or an amba_device. This unfortunately complicates the
409+device creation model a little bit, but the solution turns out not to
410+be too invasive. If a node is compatible with "arm,amba-primecell", then
411+of_platform_populate() will register it as an amba_device instead of a
412+platform_device.
Documentation/dma-buf-sharing.txt+117−3
@@ -32,8 +32,12 @@ The buffer-user · 31 unmodified lines
3232 *IMPORTANT*: [see https://lkml.org/lkml/2011/12/20/211 for more details]
3333 For this first version, A buffer shared using the dma_buf sharing API:
3434 - *may* be exported to user space using "mmap" *ONLY* by exporter, outside of
35− this framework.
36−- may be used *ONLY* by importers that do not need CPU access to the buffer.
35+ this framework.
36+- with this new iteration of the dma-buf api cpu access from the kernel has been
37+ enable, see below for the details.
38+
39+dma-buf operations for device dma only
40+--------------------------------------
3741
3842 The dma_buf buffer sharing API usage contains the following steps:
3943
@@ -219,10 +223,120 @@ NOTES: · 179 unmodified lines
219223 If the exporter chooses not to allow an attach() operation once a
220224 map_dma_buf() API has been called, it simply returns an error.
221225
222−Miscellaneous notes:
226+Kernel cpu access to a dma-buf buffer object
227+--------------------------------------------
228+
229+The motivation to allow cpu access from the kernel to a dma-buf object from the
230+importers side are:
231+- fallback operations, e.g. if the devices is connected to a usb bus and the
232+ kernel needs to shuffle the data around first before sending it away.
233+- full transparency for existing users on the importer side, i.e. userspace
234+ should not notice the difference between a normal object from that subsystem
235+ and an imported one backed by a dma-buf. This is really important for drm
236+ opengl drivers that expect to still use all the existing upload/download
237+ paths.
238+
239+Access to a dma_buf from the kernel context involves three steps:
240+
241+1. Prepare access, which invalidate any necessary caches and make the object
242+ available for cpu access.
243+2. Access the object page-by-page with the dma_buf map apis
244+3. Finish access, which will flush any necessary cpu caches and free reserved
245+ resources.
246+
247+1. Prepare access
248+
249+ Before an importer can access a dma_buf object with the cpu from the kernel
250+ context, it needs to notify the exporter of the access that is about to
251+ happen.
252+
253+ Interface:
254+ int dma_buf_begin_cpu_access(struct dma_buf *dmabuf,
255+ size_t start, size_t len,
256+ enum dma_data_direction direction)
257+
258+ This allows the exporter to ensure that the memory is actually available for
259+ cpu access - the exporter might need to allocate or swap-in and pin the
260+ backing storage. The exporter also needs to ensure that cpu access is
261+ coherent for the given range and access direction. The range and access
262+ direction can be used by the exporter to optimize the cache flushing, i.e.
263+ access outside of the range or with a different direction (read instead of
264+ write) might return stale or even bogus data (e.g. when the exporter needs to
265+ copy the data to temporary storage).
266+
267+ This step might fail, e.g. in oom conditions.
268+
269+2. Accessing the buffer
270+
271+ To support dma_buf objects residing in highmem cpu access is page-based using
272+ an api similar to kmap. Accessing a dma_buf is done in aligned chunks of
273+ PAGE_SIZE size. Before accessing a chunk it needs to be mapped, which returns
274+ a pointer in kernel virtual address space. Afterwards the chunk needs to be
275+ unmapped again. There is no limit on how often a given chunk can be mapped
276+ and unmapped, i.e. the importer does not need to call begin_cpu_access again
277+ before mapping the same chunk again.
278+
279+ Interfaces:
280+ void *dma_buf_kmap(struct dma_buf *, unsigned long);
281+ void dma_buf_kunmap(struct dma_buf *, unsigned long, void *);
282+
283+ There are also atomic variants of these interfaces. Like for kmap they
284+ facilitate non-blocking fast-paths. Neither the importer nor the exporter (in
285+ the callback) is allowed to block when using these.
286+
287+ Interfaces:
288+ void *dma_buf_kmap_atomic(struct dma_buf *, unsigned long);
289+ void dma_buf_kunmap_atomic(struct dma_buf *, unsigned long, void *);
290+
291+ For importers all the restrictions of using kmap apply, like the limited
292+ supply of kmap_atomic slots. Hence an importer shall only hold onto at most 2
293+ atomic dma_buf kmaps at the same time (in any given process context).
294+
295+ dma_buf kmap calls outside of the range specified in begin_cpu_access are
296+ undefined. If the range is not PAGE_SIZE aligned, kmap needs to succeed on
297+ the partial chunks at the beginning and end but may return stale or bogus
298+ data outside of the range (in these partial chunks).
299+
300+ Note that these calls need to always succeed. The exporter needs to complete
301+ any preparations that might fail in begin_cpu_access.
302+
303+3. Finish access
304+
305+ When the importer is done accessing the range specified in begin_cpu_access,
306+ it needs to announce this to the exporter (to facilitate cache flushing and
307+ unpinning of any pinned resources). The result of of any dma_buf kmap calls
308+ after end_cpu_access is undefined.
309+
310+ Interface:
311+ void dma_buf_end_cpu_access(struct dma_buf *dma_buf,
312+ size_t start, size_t len,
313+ enum dma_data_direction dir);
314+
315+
316+Miscellaneous notes
317+-------------------
318+
223319 - Any exporters or users of the dma-buf buffer sharing framework must have
224320 a 'select DMA_SHARED_BUFFER' in their respective Kconfigs.
225321
322+- In order to avoid fd leaks on exec, the FD_CLOEXEC flag must be set
323+ on the file descriptor. This is not just a resource leak, but a
324+ potential security hole. It could give the newly exec'd application
325+ access to buffers, via the leaked fd, to which it should otherwise
326+ not be permitted access.
327+
328+ The problem with doing this via a separate fcntl() call, versus doing it
329+ atomically when the fd is created, is that this is inherently racy in a
330+ multi-threaded app[3]. The issue is made worse when it is library code
331+ opening/creating the file descriptor, as the application may not even be
332+ aware of the fd's.
333+
334+ To avoid this problem, userspace must have a way to request O_CLOEXEC
335+ flag be set when the dma-buf fd is created. So any API provided by
336+ the exporting driver to create a dmabuf fd must provide a way to let
337+ userspace control setting of O_CLOEXEC flag passed in to dma_buf_fd().
338+
226339 References:
227340 [1] struct dma_buf_ops in include/linux/dma-buf.h
228341 [2] All interfaces mentioned above defined in include/linux/dma-buf.h
342+[3] https://lwn.net/Articles/236486/
Documentation/dontdiff+0−1
@@ -158,7 +158,6 @@ logo_*.c · 157 unmodified lines
158158 logo_*_clut224.c
159159 logo_*_mono.c
160160 lxdialog
161−mach
162161 mach-types
163162 mach-types.h
164163 machtypes.h
Documentation/edac.txt+2−2
@@ -334,8 +334,8 @@ Sdram memory scrubbing rate: · 333 unmodified lines
334334
335335 Reading the file will return the actual scrubbing rate employed.
336336
337− If configuration fails or memory scrubbing is not implemented, the value
338− of the attribute file will be -1.
337+ If configuration fails or memory scrubbing is not implemented, accessing
338+ that attribute will fail.
339339
340340
341341
Documentation/fb/intel810.txt+1−1
@@ -211,7 +211,7 @@ Using the same setup as described above, load the module like this: · 210 unmodified lines
211211 modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
212212 vsync2=85 accel=1 mtrr=1
213213
214−Or just add the following to /etc/modprobe.conf
214+Or just add the following to a configuration file in /etc/modprobe.d/
215215
216216 options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
217217 vsync2=85 accel=1 mtrr=1
Documentation/fb/intelfb.txt+1−1
@@ -120,7 +120,7 @@ Using the same setup as described above, load the module like this: · 119 unmodified lines
120120
121121 modprobe intelfb mode=800x600-32@75 vram=8 accel=1 hwcursor=1
122122
123−Or just add the following to /etc/modprobe.conf
123+Or just add the following to a configuration file in /etc/modprobe.d/
124124
125125 options intelfb mode=800x600-32@75 vram=8 accel=1 hwcursor=1
126126
Documentation/feature-removal-schedule.txt+18−22
@@ -6,14 +6,6 @@ be removed from this file. · 5 unmodified lines
66
77 ---------------------------
88
9−What: x86 floppy disable_hlt
10−When: 2012
11−Why: ancient workaround of dubious utility clutters the
12− code used by everybody else.
13−Who: Len Brown <len.brown@intel.com>
14−
15−---------------------------
16−
179 What: CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle
1810 When: 2012
1911 Why: This optional sub-feature of APM is of dubious reliability,
@@ -513,20 +505,6 @@ Who: Bjorn Helgaas <bhelgaas@google.com> · 493 unmodified lines
513505
514506 ----------------------------
515507
516−What: The CAP9 SoC family will be removed
517−When: 3.4
518−Files: arch/arm/mach-at91/at91cap9.c
519− arch/arm/mach-at91/at91cap9_devices.c
520− arch/arm/mach-at91/include/mach/at91cap9.h
521− arch/arm/mach-at91/include/mach/at91cap9_matrix.h
522− arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h
523− arch/arm/mach-at91/board-cap9adk.c
524−Why: The code is not actively maintained and platforms are now hard to find.
525−Who: Nicolas Ferre <nicolas.ferre@atmel.com>
526− Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
527−
528−----------------------------
529−
530508 What: Low Performance USB Block driver ("CONFIG_BLK_DEV_UB")
531509 When: 3.6
532510 Why: This driver provides support for USB storage devices like "USB
@@ -543,3 +521,21 @@ When: 3.5 · 10 unmodified lines
543521 Why: The old kmap_atomic() with two arguments is deprecated, we only
544522 keep it for backward compatibility for few cycles and then drop it.
545523 Who: Cong Wang <amwang@redhat.com>
524+
525+----------------------------
526+
527+What: get_robust_list syscall
528+When: 2013
529+Why: There appear to be no production users of the get_robust_list syscall,
530+ and it runs the risk of leaking address locations, allowing the bypass
531+ of ASLR. It was only ever intended for debugging, so it should be
532+ removed.
533+Who: Kees Cook <keescook@chromium.org>
534+
535+----------------------------
536+
537+What: setitimer accepts user NULL pointer (value)
538+When: 3.6
539+Why: setitimer is not returning -EFAULT if user pointer is NULL. This
540+ violates the spec.
541+Who: Sasikantha Babu <sasikanth.v19@gmail.com>
Documentation/filesystems/ext4.txt+0−8
@@ -144,9 +144,6 @@ journal_async_commit Commit block can be written to disk without waiting · 143 unmodified lines
144144 mount the device. This will enable 'journal_checksum'
145145 internally.
146146
147−journal=update Update the ext4 file system's journal to the current
148− format.
149−
150147 journal_dev=devnum When the external journal device's major/minor numbers
151148 have changed, this option allows the user to specify
152149 the new journal location. The journal device is
@@ -356,11 +353,6 @@ nouid32 Disables 32-bit UIDs and GIDs. This is for · 203 unmodified lines
356353 interoperability with older kernels which only
357354 store and expect 16-bit values.
358355
359−resize Allows to resize filesystem to the end of the last
360− existing block group, further resize has to be done
361− with resize2fs either online, or offline. It can be
362− used only with conjunction with remount.
363−
364356 block_validity This options allows to enables/disables the in-kernel
365357 noblock_validity facility for tracking filesystem metadata blocks
366358 within internal data structures. This allows multi-
Documentation/filesystems/files.txt+2−2
@@ -113,8 +113,8 @@ the fdtable structure - · 112 unmodified lines
113113 if (fd >= 0) {
114114 /* locate_fd() may have expanded fdtable, load the ptr */
115115 fdt = files_fdtable(files);
116− FD_SET(fd, fdt->open_fds);
117− FD_CLR(fd, fdt->close_on_exec);
116+ __set_open_fd(fd, fdt);
117+ __clear_close_on_exec(fd, fdt);
118118 spin_unlock(&files->file_lock);
119119 .....
120120
Documentation/filesystems/vfs.txt+1−1
@@ -114,7 +114,7 @@ members are defined: · 113 unmodified lines
114114 struct file_system_type {
115115 const char *name;
116116 int fs_flags;
117− struct dentry (*mount) (struct file_system_type *, int,
117+ struct dentry *(*mount) (struct file_system_type *, int,
118118 const char *, void *);
119119 void (*kill_sb) (struct super_block *);
120120 struct module *owner;
Documentation/gpio.txt+35−5
@@ -271,9 +271,26 @@ Some platforms may also use knowledge about what GPIOs are active for · 270 unmodified lines
271271 power management, such as by powering down unused chip sectors and, more
272272 easily, gating off unused clocks.
273273
274−Note that requesting a GPIO does NOT cause it to be configured in any
275−way; it just marks that GPIO as in use. Separate code must handle any
276−pin setup (e.g. controlling which pin the GPIO uses, pullup/pulldown).
274+For GPIOs that use pins known to the pinctrl subsystem, that subsystem should
275+be informed of their use; a gpiolib driver's .request() operation may call
276+pinctrl_request_gpio(), and a gpiolib driver's .free() operation may call
277+pinctrl_free_gpio(). The pinctrl subsystem allows a pinctrl_request_gpio()
278+to succeed concurrently with a pin or pingroup being "owned" by a device for
279+pin multiplexing.
280+
281+Any programming of pin multiplexing hardware that is needed to route the
282+GPIO signal to the appropriate pin should occur within a GPIO driver's
283+.direction_input() or .direction_output() operations, and occur after any
284+setup of an output GPIO's value. This allows a glitch-free migration from a
285+pin's special function to GPIO. This is sometimes required when using a GPIO
286+to implement a workaround on signals typically driven by a non-GPIO HW block.
287+
288+Some platforms allow some or all GPIO signals to be routed to different pins.
289+Similarly, other aspects of the GPIO or pin may need to be configured, such as
290+pullup/pulldown. Platform software should arrange that any such details are
291+configured prior to gpio_request() being called for those GPIOs, e.g. using
292+the pinctrl subsystem's mapping table, so that GPIO users need not be aware
293+of these details.
277294
278295 Also note that it's your responsibility to have stopped using a GPIO
279296 before you free it.
@@ -302,6 +319,8 @@ where 'flags' is currently defined to specify the following properties: · 22 unmodified lines
302319
303320 * GPIOF_INIT_LOW - as output, set initial level to LOW
304321 * GPIOF_INIT_HIGH - as output, set initial level to HIGH
322+ * GPIOF_OPEN_DRAIN - gpio pin is open drain type.
323+ * GPIOF_OPEN_SOURCE - gpio pin is open source type.
305324
306325 since GPIOF_INIT_* are only valid when configured as output, so group valid
307326 combinations as:
@@ -310,8 +329,19 @@ combinations as: · 2 unmodified lines
310329 * GPIOF_OUT_INIT_LOW - configured as output, initial level LOW
311330 * GPIOF_OUT_INIT_HIGH - configured as output, initial level HIGH
312331
313−In the future, these flags can be extended to support more properties such
314−as open-drain status.
332+When setting the flag as GPIOF_OPEN_DRAIN then it will assume that pins is
333+open drain type. Such pins will not be driven to 1 in output mode. It is
334+require to connect pull-up on such pins. By enabling this flag, gpio lib will
335+make the direction to input when it is asked to set value of 1 in output mode
336+to make the pin HIGH. The pin is make to LOW by driving value 0 in output mode.
337+
338+When setting the flag as GPIOF_OPEN_SOURCE then it will assume that pins is
339+open source type. Such pins will not be driven to 0 in output mode. It is
340+require to connect pull-down on such pin. By enabling this flag, gpio lib will
341+make the direction to input when it is asked to set value of 0 in output mode
342+to make the pin LOW. The pin is make to HIGH by driving value 1 in output mode.
343+
344+In the future, these flags can be extended to support more properties.
315345
316346 Further more, to ease the claim/release of multiple GPIOs, 'struct gpio' is
317347 introduced to encapsulate all three fields as:
Documentation/hwmon/k10temp+1−1
@@ -11,7 +11,7 @@ Supported chips: · 10 unmodified lines
1111 Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)
1212 * AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series)
1313 * AMD Family 14h processors: "Brazos" (C/E/G/Z-Series)
14−* AMD Family 15h processors: "Bulldozer"
14+* AMD Family 15h processors: "Bulldozer" (FX-Series), "Trinity"
1515
1616 Prefix: 'k10temp'
1717 Addresses scanned: PCI space
Documentation/hwmon/lm90+4−0
@@ -118,6 +118,10 @@ Supported chips: · 117 unmodified lines
118118 Addresses scanned: I2C 0x48 through 0x4F
119119 Datasheet: Publicly available at NXP website
120120 http://ics.nxp.com/products/interface/datasheet/sa56004x.pdf
121+ * GMT G781
122+ Prefix: 'g781'
123+ Addresses scanned: I2C 0x4c, 0x4d
124+ Datasheet: Not publicly available from GMT
121125
122126 Author: Jean Delvare <khali@linux-fr.org>
123127
Documentation/hwmon/mc13783-adc+37−13
@@ -3,8 +3,11 @@ Kernel driver mc13783-adc · 2 unmodified lines
33
44 Supported chips:
55 * Freescale Atlas MC13783
6− Prefix: 'mc13783_adc'
6+ Prefix: 'mc13783'
77 Datasheet: http://www.freescale.com/files/rf_if/doc/data_sheet/MC13783.pdf?fsrch=1
8+ * Freescale Atlas MC13892
9+ Prefix: 'mc13892'
10+ Datasheet: http://cache.freescale.com/files/analog/doc/data_sheet/MC13892.pdf?fsrch=1&sr=1
811
912 Authors:
1013 Sascha Hauer <s.hauer@pengutronix.de>
@@ -13,20 +16,21 @@ Authors: · 2 unmodified lines
1316 Description
1417 -----------
1518
16−The Freescale MC13783 is a Power Management and Audio Circuit. Among
17−other things it contains a 10-bit A/D converter. The converter has 16
18−channels which can be used in different modes.
19−The A/D converter has a resolution of 2.25mV. Channels 0-4 have
20−a dedicated meaning with chip internal scaling applied. Channels 5-7
21−can be used as general purpose inputs or alternatively in a dedicated
22−mode. Channels 12-15 are occupied by the touchscreen if it's active.
19+The Freescale MC13783 and MC13892 are Power Management and Audio Circuits.
20+Among other things they contain a 10-bit A/D converter. The converter has 16
21+(MC13783) resp. 12 (MC13892) channels which can be used in different modes. The
22+A/D converter has a resolution of 2.25mV.
2323
24−Currently the driver only supports channels 2 and 5-15 with no alternative
25−modes for channels 5-7.
24+Some channels can be used as General Purpose inputs or in a dedicated mode with
25+a chip internal scaling applied .
2626
27−See this table for the meaning of the different channels and their chip
28−internal scaling:
27+Currently the driver only supports the Application Supply channel (BP / BPSNS),
28+the General Purpose inputs and touchscreen.
2929
30+See the following tables for the meaning of the different channels and their
31+chip internal scaling:
32+
33+MC13783:
3034 Channel Signal Input Range Scaling
3135 -------------------------------------------------------------------------------
3236 0 Battery Voltage (BATT) 2.50 - 4.65V -2.40V
@@ -34,7 +38,7 @@ Channel Signal Input Range Scaling · 1 unmodified line
3438 2 Application Supply (BP) 2.50 - 4.65V -2.40V
3539 3 Charger Voltage (CHRGRAW) 0 - 10V / /5
3640 0 - 20V /10
37−4 Charger Current (CHRGISNSP-CHRGISNSN) -0.25V - 0.25V x4
41+4 Charger Current (CHRGISNSP-CHRGISNSN) -0.25 - 0.25V x4
3842 5 General Purpose ADIN5 / Battery Pack Thermistor 0 - 2.30V No
3943 6 General Purpose ADIN6 / Backup Voltage (LICELL) 0 - 2.30V / No /
4044 1.50 - 3.50V -1.20V
@@ -48,3 +52,23 @@ Channel Signal Input Range Scaling · 7 unmodified lines
4852 13 General Purpose TSX2 / Touchscreen X-plate 2 0 - 2.30V No
4953 14 General Purpose TSY1 / Touchscreen Y-plate 1 0 - 2.30V No
5054 15 General Purpose TSY2 / Touchscreen Y-plate 2 0 - 2.30V No
55+
56+MC13892:
57+Channel Signal Input Range Scaling
58+-------------------------------------------------------------------------------
59+0 Battery Voltage (BATT) 0 - 4.8V /2
60+1 Battery Current (BATT - BATTISNSCC) -60 - 60 mV x20
61+2 Application Supply (BPSNS) 0 - 4.8V /2
62+3 Charger Voltage (CHRGRAW) 0 - 12V / /5
63+ 0 - 20V /10
64+4 Charger Current (CHRGISNS-BPSNS) / -0.3 - 0.3V / x4 /
65+ Touchscreen X-plate 1 0 - 2.4V No
66+5 General Purpose ADIN5 / Battery Pack Thermistor 0 - 2.4V No
67+6 General Purpose ADIN6 / Backup Voltage (LICELL) 0 - 2.4V / No
68+ Backup Voltage (LICELL) 0 - 3.6V x2/3
69+7 General Purpose ADIN7 / UID / Die Temperature 0 - 2.4V / No /
70+ 0 - 4.8V /2
71+12 General Purpose TSX1 / Touchscreen X-plate 1 0 - 2.4V No
72+13 General Purpose TSX2 / Touchscreen X-plate 2 0 - 2.4V No
73+14 General Purpose TSY1 / Touchscreen Y-plate 1 0 - 2.4V No
74+15 General Purpose TSY2 / Touchscreen Y-plate 2 0 - 2.4V No
Documentation/hwmon/mcp3021+22−0
@@ -0,0 +1,22 @@
1+Kernel driver MCP3021
2+======================
3+
4+Supported chips:
5+ * Microchip Technology MCP3021
6+ Prefix: 'mcp3021'
7+ Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/21805a.pdf
8+
9+Author: Mingkai Hu
10+
11+Description
12+-----------
13+
14+This driver implements support for the Microchip Technology MCP3021 chip.
15+
16+The Microchip Technology Inc. MCP3021 is a successive approximation A/D
17+converter (ADC) with 10-bit resolution.
18+This device provides one single-ended input with very low power consumption.
19+Communication to the MCP3021 is performed using a 2-wire I2C compatible
20+interface. Standard (100 kHz) and Fast (400 kHz) I2C modes are available.
21+The default I2C device address is 0x4d (contact the Microchip factory for
22+additional address options).
Documentation/i2c/busses/i2c-i801+1−0
@@ -20,6 +20,7 @@ Supported adapters: · 19 unmodified lines
2020 * Intel Patsburg (PCH)
2121 * Intel DH89xxCC (PCH)
2222 * Intel Panther Point (PCH)
23+ * Intel Lynx Point (PCH)
2324 Datasheets: Publicly available at the Intel website
2425
2526 On Intel Patsburg and later chipsets, both the normal host SMBus controller
Documentation/i2c/busses/scx200_acb+1−1
@@ -28,5 +28,5 @@ If the scx200_acb driver is built into the kernel, add the following · 27 unmodified lines
2828 parameter to your boot command line:
2929 scx200_acb.base=0x810,0x820
3030 If the scx200_acb driver is built as a module, add the following line to
31−the file /etc/modprobe.conf instead:
31+a configuration file in /etc/modprobe.d/ instead:
3232 options scx200_acb base=0x810,0x820
Documentation/ide/ide.txt+1−1
@@ -169,7 +169,7 @@ When using ide.c as a module in combination with kmod, add: · 168 unmodified lines
169169
170170 alias block-major-3 ide-probe
171171
172−to /etc/modprobe.conf.
172+to a configuration file in /etc/modprobe.d/.
173173
174174 When ide.c is used as a module, you can pass command line parameters to the
175175 driver using the "options=" keyword to insmod, while replacing any ',' with
Documentation/input/input.txt+2−2
@@ -250,8 +250,8 @@ And so on up to event31. · 249 unmodified lines
250250 a USB keyboard works and is correctly connected to the kernel keyboard
251251 driver.
252252
253− Doing a cat /dev/input/mouse0 (c, 13, 32) will verify that a mouse
254−is also emulated, characters should appear if you move it.
253+ Doing a "cat /dev/input/mouse0" (c, 13, 32) will verify that a mouse
254+is also emulated; characters should appear if you move it.
255255
256256 You can test the joystick emulation with the 'jstest' utility,
257257 available in the joystick package (see Documentation/input/joystick.txt).
Documentation/ioctl/ioctl-number.txt+1−0
@@ -225,6 +225,7 @@ Code Seq#(hex) Include File Comments · 224 unmodified lines
225225 'j' 00-3F linux/joystick.h
226226 'k' 00-0F linux/spi/spidev.h conflict!
227227 'k' 00-05 video/kyro.h conflict!
228+'k' 10-17 linux/hsi/hsi_char.h HSI character device
228229 'l' 00-3F linux/tcfs_fs.h transparent cryptographic file system
229230 <http://web.archive.org/web/*/http://mikonos.dia.unisa.it/tcfs>
230231 'l' 40-7F linux/udf_fs_i.h in development:
Documentation/isdn/README.gigaset+7−9
@@ -97,8 +97,7 @@ GigaSet 307x Device Driver · 96 unmodified lines
9797 2.5.): 1=on (default), 0=off
9898
9999 Depending on your distribution you may want to create a separate module
100− configuration file /etc/modprobe.d/gigaset for these, or add them to a
101− custom file like /etc/modprobe.conf.local.
100+ configuration file like /etc/modprobe.d/gigaset.conf for these.
102101
103102 2.2. Device nodes for user space programs
104103 ------------------------------------
@@ -212,8 +211,8 @@ GigaSet 307x Device Driver · 107 unmodified lines
212211
213212 options ppp_async flag_time=0
214213
215− to an appropriate module configuration file, like /etc/modprobe.d/gigaset
216− or /etc/modprobe.conf.local.
214+ to an appropriate module configuration file, like
215+ /etc/modprobe.d/gigaset.conf.
217216
218217 Unimodem mode is needed for making some devices [e.g. SX100] work which
219218 do not support the regular Gigaset command set. If debug output (see
@@ -237,8 +236,8 @@ GigaSet 307x Device Driver · 17 unmodified lines
237236 modprobe usb_gigaset startmode=0
238237 or by adding a line like
239238 options usb_gigaset startmode=0
240− to an appropriate module configuration file, like /etc/modprobe.d/gigaset
241− or /etc/modprobe.conf.local.
239+ to an appropriate module configuration file, like
240+ /etc/modprobe.d/gigaset.conf
242241
243242 2.6. Call-ID (CID) mode
244243 ------------------
@@ -310,7 +309,7 @@ GigaSet 307x Device Driver · 65 unmodified lines
310309
311310 options isdn dialtimeout=15
312311
313− to /etc/modprobe.d/gigaset, /etc/modprobe.conf.local or a similar file.
312+ to /etc/modprobe.d/gigaset.conf or a similar file.
314313
315314 Problem:
316315 The isdnlog program emits error messages or just doesn't work.
@@ -350,8 +349,7 @@ GigaSet 307x Device Driver · 33 unmodified lines
350349 The initial value can be set using the debug parameter when loading the
351350 module "gigaset", e.g. by adding a line
352351 options gigaset debug=0
353− to your module configuration file, eg. /etc/modprobe.d/gigaset or
354− /etc/modprobe.conf.local.
352+ to your module configuration file, eg. /etc/modprobe.d/gigaset.conf
355353
356354 Generated debugging information can be found
357355 - as output of the command
Documentation/kbuild/kconfig.txt+3−5
@@ -28,12 +28,10 @@ new (default) values, so you can use: · 27 unmodified lines
2828
2929 grep "(NEW)" conf.new
3030
31−to see the new config symbols or you can 'diff' the previous and
32−new .config files to see the differences:
31+to see the new config symbols or you can use diffconfig to see the
32+differences between the previous and new .config files:
3333
34− diff .config.old .config | less
35−
36−(Yes, we need something better here.)
34+ scripts/diffconfig .config.old .config | less
3735
3836 ______________________________________________________________________
3937 Environment variables for '*config'
Documentation/kernel-parameters.txt+20−4
@@ -1086,8 +1086,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 1085 unmodified lines
10861086 no_x2apic_optout
10871087 BIOS x2APIC opt-out request will be ignored
10881088
1089− inttest= [IA-64]
1090−
10911089 iomem= Disable strict checking of access to MMIO memory
10921090 strict regions from userspace.
10931091 relaxed
@@ -1701,6 +1699,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 607 unmodified lines
17011699 The default is to send the implementation identification
17021700 information.
17031701
1702+ nfsd.nfs4_disable_idmapping=
1703+ [NFSv4] When set to the default of '1', the NFSv4
1704+ server will return only numeric uids and gids to
1705+ clients using auth_sys, and will accept numeric uids
1706+ and gids from such clients. This is intended to ease
1707+ migration from NFSv2/v3.
17041708
17051709 objlayoutdriver.osd_login_prog=
17061710 [NFS] [OBJLAYOUT] sets the pathname to the program which
@@ -1871,6 +1875,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 164 unmodified lines
18711875 shutdown the other cpus. Instead use the REBOOT_VECTOR
18721876 irq.
18731877
1878+ nomodule Disable module load
1879+
18741880 nopat [X86] Disable PAT (page attribute table extension of
18751881 pagetables) support.
18761882
@@ -2147,8 +2153,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 270 unmodified lines
21472153 the default.
21482154 off: Turn ECRC off
21492155 on: Turn ECRC on.
2150− realloc reallocate PCI resources if allocations done by BIOS
2151− are erroneous.
2156+ realloc= Enable/disable reallocating PCI bridge resources
2157+ if allocations done by BIOS are too small to
2158+ accommodate resources required by all child
2159+ devices.
2160+ off: Turn realloc off
2161+ on: Turn realloc on
2162+ realloc same as realloc=on
2163+ noari do not use PCIe ARI.
21522164
21532165 pcie_aspm= [PCIE] Forcibly enable or disable PCIe Active State Power
21542166 Management.
@@ -2156,6 +2168,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 1 unmodified line
21562168 force Enable ASPM even on devices that claim not to support it.
21572169 WARNING: Forcing ASPM on may cause system lockups.
21582170
2171+ pcie_hp= [PCIE] PCI Express Hotplug driver options:
2172+ nomsi Do not use MSI for PCI Express Native Hotplug (this
2173+ makes all PCIe ports use INTx for hotplug services).
2174+
21592175 pcie_ports= [PCIE] PCIe ports handling:
21602176 auto Ask the BIOS whether or not to use native PCIe services
21612177 associated with PCIe ports (PME, hot-plug, AER). Use
Documentation/laptops/asus-laptop.txt+1−1
@@ -45,7 +45,7 @@ Status · 44 unmodified lines
4545 Usage
4646 -----
4747
48− Try "modprobe asus_acpi". Check your dmesg (simply type dmesg). You should
48+ Try "modprobe asus-laptop". Check your dmesg (simply type dmesg). You should
4949 see some lines like this :
5050
5151 Asus Laptop Extras version 0.42
Documentation/laptops/sony-laptop.txt+5−0
@@ -17,6 +17,11 @@ subsystem. See the logs of acpid or /proc/acpi/event and · 16 unmodified lines
1717 devices are created by the driver. Additionally, loading the driver with the
1818 debug option will report all events in the kernel log.
1919
20+The "scancodes" passed to the input system (that can be remapped with udev)
21+are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c
22+module. For example the "FN/E" key combination (EJECTCD on some models)
23+generates the scancode 20 (0x14).
24+
2025 Backlight control:
2126 ------------------
2227 If your laptop model supports it, you will find sysfs files in the
Documentation/laptops/sonypi.txt+1−1
@@ -110,7 +110,7 @@ Module use: · 109 unmodified lines
110110 -----------
111111
112112 In order to automatically load the sonypi module on use, you can put those
113−lines in your /etc/modprobe.conf file:
113+lines a configuration file in /etc/modprobe.d/:
114114
115115 alias char-major-10-250 sonypi
116116 options sonypi minor=250
Documentation/mono.txt+4−4
@@ -38,11 +38,11 @@ if [ ! -e /proc/sys/fs/binfmt_misc/register ]; then · 37 unmodified lines
3838 /sbin/modprobe binfmt_misc
3939 # Some distributions, like Fedora Core, perform
4040 # the following command automatically when the
41− # binfmt_misc module is loaded into the kernel.
41+ # binfmt_misc module is loaded into the kernel
42+ # or during normal boot up (systemd-based systems).
4243 # Thus, it is possible that the following line
43− # is not needed at all. Look at /etc/modprobe.conf
44− # to check whether this is applicable or not.
45− mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
44+ # is not needed at all.
45+ mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
4646 fi
4747
4848 # Register support for .NET CLR binaries
Documentation/networking/baycom.txt+1−1
@@ -93,7 +93,7 @@ Every time a driver is inserted into the kernel, it has to know which · 92 unmodified lines
9393 modems it should access at which ports. This can be done with the setbaycom
9494 utility. If you are only using one modem, you can also configure the
9595 driver from the insmod command line (or by means of an option line in
96−/etc/modprobe.conf).
96+/etc/modprobe.d/*.conf).
9797
9898 Examples:
9999 modprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4
Documentation/networking/bonding.txt+19−27
@@ -173,9 +173,8 @@ bonding module at load time, or are specified via sysfs. · 172 unmodified lines
173173
174174 Module options may be given as command line arguments to the
175175 insmod or modprobe command, but are usually specified in either the
176−/etc/modules.conf or /etc/modprobe.conf configuration file, or in a
177−distro-specific configuration file (some of which are detailed in the next
178−section).
176+/etc/modrobe.d/*.conf configuration files, or in a distro-specific
177+configuration file (some of which are detailed in the next section).
179178
180179 Details on bonding support for sysfs is provided in the
181180 "Configuring Bonding Manually via Sysfs" section, below.
@@ -1021,7 +1020,7 @@ ifcfg-bondX files. · 839 unmodified lines
10211020
10221021 Because the sysconfig scripts supply the bonding module
10231022 options in the ifcfg-bondX file, it is not necessary to add them to
1024−the system /etc/modules.conf or /etc/modprobe.conf configuration file.
1023+the system /etc/modules.d/*.conf configuration files.
10251024
10261025 3.2 Configuration with Initscripts Support
10271026 ------------------------------------------
@@ -1098,15 +1097,13 @@ queried targets, e.g., · 70 unmodified lines
10981097 arp_ip_target=+192.168.1.1 arp_ip_target=+192.168.1.2
10991098
11001099 is the proper syntax to specify multiple targets. When specifying
1101−options via BONDING_OPTS, it is not necessary to edit /etc/modules.conf or
1102−/etc/modprobe.conf.
1100+options via BONDING_OPTS, it is not necessary to edit /etc/modprobe.d/*.conf.
11031101
11041102 For even older versions of initscripts that do not support
1105−BONDING_OPTS, it is necessary to edit /etc/modules.conf (or
1106−/etc/modprobe.conf, depending upon your distro) to load the bonding module
1107−with your desired options when the bond0 interface is brought up. The
1108−following lines in /etc/modules.conf (or modprobe.conf) will load the
1109−bonding module, and select its options:
1103+BONDING_OPTS, it is necessary to edit /etc/modprobe.d/*.conf, depending upon
1104+your distro) to load the bonding module with your desired options when the
1105+bond0 interface is brought up. The following lines in /etc/modprobe.d/*.conf
1106+will load the bonding module, and select its options:
11101107
11111108 alias bond0 bonding
11121109 options bond0 mode=balance-alb miimon=100
@@ -1152,7 +1149,7 @@ knowledge of bonding. One such distro is SuSE Linux Enterprise Server · 39 unmodified lines
11521149 version 8.
11531150
11541151 The general method for these systems is to place the bonding
1155−module parameters into /etc/modules.conf or /etc/modprobe.conf (as
1152+module parameters into a config file in /etc/modprobe.d/ (as
11561153 appropriate for the installed distro), then add modprobe and/or
11571154 ifenslave commands to the system's global init script. The name of
11581155 the global init script differs; for sysconfig, it is
@@ -1228,7 +1225,7 @@ network initialization scripts. · 69 unmodified lines
12281225 specify a different name for each instance (the module loading system
12291226 requires that every loaded module, even multiple instances of the same
12301227 module, have a unique name). This is accomplished by supplying multiple
1231−sets of bonding options in /etc/modprobe.conf, for example:
1228+sets of bonding options in /etc/modprobe.d/*.conf, for example:
12321229
12331230 alias bond0 bonding
12341231 options bond0 -o bond0 mode=balance-rr miimon=100
@@ -1793,8 +1790,8 @@ route additions may cause trouble. · 558 unmodified lines
17931790 On systems with network configuration scripts that do not
17941791 associate physical devices directly with network interface names (so
17951792 that the same physical device always has the same "ethX" name), it may
1796−be necessary to add some special logic to either /etc/modules.conf or
1797−/etc/modprobe.conf (depending upon which is installed on the system).
1793+be necessary to add some special logic to config files in
1794+/etc/modprobe.d/.
17981795
17991796 For example, given a modules.conf containing the following:
18001797
@@ -1821,20 +1818,15 @@ add above bonding e1000 tg3 · 20 unmodified lines
18211818 bonding is loaded. This command is fully documented in the
18221819 modules.conf manual page.
18231820
1824− On systems utilizing modprobe.conf (or modprobe.conf.local),
1825−an equivalent problem can occur. In this case, the following can be
1826−added to modprobe.conf (or modprobe.conf.local, as appropriate), as
1827−follows (all on one line; it has been split here for clarity):
1821+ On systems utilizing modprobe an equivalent problem can occur.
1822+In this case, the following can be added to config files in
1823+/etc/modprobe.d/ as:
18281824
1829−install bonding /sbin/modprobe tg3; /sbin/modprobe e1000;
1830− /sbin/modprobe --ignore-install bonding
1825+softdep bonding pre: tg3 e1000
18311826
1832− This will, when loading the bonding module, rather than
1833−performing the normal action, instead execute the provided command.
1834−This command loads the device drivers in the order needed, then calls
1835−modprobe with --ignore-install to cause the normal action to then take
1836−place. Full documentation on this can be found in the modprobe.conf
1837−and modprobe manual pages.
1827+ This will load tg3 and e1000 modules before loading the bonding one.
1828+Full documentation on this can be found in the modprobe.d and modprobe
1829+manual pages.
18381830
18391831 8.3. Painfully Slow Or No Failed Link Detection By Miimon
18401832 ---------------------------------------------------------
Documentation/networking/dl2k.txt+6−5
@@ -45,12 +45,13 @@ Now eth0 should active, you can test it by "ping" or get more information by · 44 unmodified lines
4545 "ifconfig". If tested ok, continue the next step.
4646
4747 4. cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net
48−5. Add the following line to /etc/modprobe.conf:
48+5. Add the following line to /etc/modprobe.d/dl2k.conf:
4949 alias eth0 dl2k
50−6. Run "netconfig" or "netconf" to create configuration script ifcfg-eth0
50+6. Run depmod to updated module indexes.
51+7. Run "netconfig" or "netconf" to create configuration script ifcfg-eth0
5152 located at /etc/sysconfig/network-scripts or create it manually.
5253 [see - Configuration Script Sample]
53−7. Driver will automatically load and configure at next boot time.
54+8. Driver will automatically load and configure at next boot time.
5455
5556 Compiling the Driver
5657 ====================
@@ -154,8 +155,8 @@ Installing the Driver · 97 unmodified lines
154155 -----------------
155156 1. Copy dl2k.o to the network modules directory, typically
156157 /lib/modules/2.x.x-xx/net or /lib/modules/2.x.x/kernel/drivers/net.
157− 2. Locate the boot module configuration file, most commonly modprobe.conf
158− or modules.conf (for 2.4) in the /etc directory. Add the following lines:
158+ 2. Locate the boot module configuration file, most commonly in the
159+ /etc/modprobe.d/ directory. Add the following lines:
159160
160161 alias ethx dl2k
161162 options dl2k <optional parameters>
Documentation/networking/driver.txt+15−16
@@ -2,16 +2,16 @@ Document about softnet driver issues · 1 unmodified line
22
33 Transmit path guidelines:
44
5−1) The hard_start_xmit method must never return '1' under any
6− normal circumstances. It is considered a hard error unless
5+1) The ndo_start_xmit method must not return NETDEV_TX_BUSY under
6+ any normal circumstances. It is considered a hard error unless
77 there is no way your device can tell ahead of time when it's
88 transmit function will become busy.
99
1010 Instead it must maintain the queue properly. For example,
1111 for a driver implementing scatter-gather this means:
1212
13− static int drv_hard_start_xmit(struct sk_buff *skb,
14− struct net_device *dev)
13+ static netdev_tx_t drv_hard_start_xmit(struct sk_buff *skb,
14+ struct net_device *dev)
1515 {
1616 struct drv *dp = netdev_priv(dev);
1717
@@ -23,7 +23,7 @@ Transmit path guidelines: · 5 unmodified lines
2323 unlock_tx(dp);
2424 printk(KERN_ERR PFX "%s: BUG! Tx Ring full when queue awake!\n",
2525 dev->name);
26− return 1;
26+ return NETDEV_TX_BUSY;
2727 }
2828
2929 ... queue packet to card ...
@@ -35,6 +35,7 @@ Transmit path guidelines: · 5 unmodified lines
3535 ...
3636 unlock_tx(dp);
3737 ...
38+ return NETDEV_TX_OK;
3839 }
3940
4041 And then at the end of your TX reclamation event handling:
@@ -58,15 +59,12 @@ Transmit path guidelines: · 17 unmodified lines
5859 TX_BUFFS_AVAIL(dp) > 0)
5960 netif_wake_queue(dp->dev);
6061
61−2) Do not forget to update netdev->trans_start to jiffies after
62− each new tx packet is given to the hardware.
63−
64−3) A hard_start_xmit method must not modify the shared parts of a
62+2) An ndo_start_xmit method must not modify the shared parts of a
6563 cloned SKB.
6664
67−4) Do not forget that once you return 0 from your hard_start_xmit
68− method, it is your driver's responsibility to free up the SKB
69− and in some finite amount of time.
65+3) Do not forget that once you return NETDEV_TX_OK from your
66+ ndo_start_xmit method, it is your driver's responsibility to free
67+ up the SKB and in some finite amount of time.
7068
7169 For example, this means that it is not allowed for your TX
7270 mitigation scheme to let TX packets "hang out" in the TX
@@ -74,8 +72,9 @@ Transmit path guidelines: · 1 unmodified line
7472 This error can deadlock sockets waiting for send buffer room
7573 to be freed up.
7674
77− If you return 1 from the hard_start_xmit method, you must not keep
78− any reference to that SKB and you must not attempt to free it up.
75+ If you return NETDEV_TX_BUSY from the ndo_start_xmit method, you
76+ must not keep any reference to that SKB and you must not attempt
77+ to free it up.
7978
8079 Probing guidelines:
8180
@@ -85,10 +84,10 @@ Probing guidelines: · 3 unmodified lines
8584
8685 Close/stop guidelines:
8786
88−1) After the dev->stop routine has been called, the hardware must
87+1) After the ndo_stop routine has been called, the hardware must
8988 not receive or transmit any data. All in flight packets must
9089 be aborted. If necessary, poll or wait for completion of
9190 any reset commands.
9291
93−2) The dev->stop routine will be called by unregister_netdevice
92+2) The ndo_stop routine will be called by unregister_netdevice
9493 if device is still UP.
Documentation/networking/e100.txt+3−3
@@ -94,8 +94,8 @@ Additional Configurations · 93 unmodified lines
9494
9595 Configuring a network driver to load properly when the system is started is
9696 distribution dependent. Typically, the configuration process involves adding
97− an alias line to /etc/modules.conf or /etc/modprobe.conf as well as editing
98− other system startup scripts and/or configuration files. Many popular Linux
97+ an alias line to /etc/modprobe.d/*.conf as well as editing other system
98+ startup scripts and/or configuration files. Many popular Linux
9999 distributions ship with tools to make these changes for you. To learn the
100100 proper way to configure a network device for your system, refer to your
101101 distribution documentation. If during this process you are asked for the
@@ -103,7 +103,7 @@ Additional Configurations · 1 unmodified line
103103 PRO/100 Family of Adapters is e100.
104104
105105 As an example, if you install the e100 driver for two PRO/100 adapters
106− (eth0 and eth1), add the following to modules.conf or modprobe.conf:
106+ (eth0 and eth1), add the following to a configuraton file in /etc/modprobe.d/
107107
108108 alias eth0 e100
109109 alias eth1 e100
Documentation/networking/ip-sysctl.txt+2−9
@@ -604,15 +604,8 @@ IP Variables: · 603 unmodified lines
604604 ip_local_port_range - 2 INTEGERS
605605 Defines the local port range that is used by TCP and UDP to
606606 choose the local port. The first number is the first, the
607− second the last local port number. Default value depends on
608− amount of memory available on the system:
609− > 128Mb 32768-61000
610− < 128Mb 1024-4999 or even less.
611− This number defines number of active connections, which this
612− system can issue simultaneously to systems not supporting
613− TCP extensions (timestamps). With tcp_tw_recycle enabled
614− (i.e. by default) range 1024-4999 is enough to issue up to
615− 2000 connections per second to systems supporting timestamps.
607+ second the last local port number. The default values are
608+ 32768 and 61000 respectively.
616609
617610 ip_local_reserved_ports - list of comma separated ranges
618611 Specify the ports which are reserved for known third-party
Documentation/networking/ipv6.txt+3−3
@@ -2,9 +2,9 @@ · 1 unmodified line
22 Options for the ipv6 module are supplied as parameters at load time.
33
44 Module options may be given as command line arguments to the insmod
5−or modprobe command, but are usually specified in either the
6−/etc/modules.conf or /etc/modprobe.conf configuration file, or in a
7−distro-specific configuration file.
5+or modprobe command, but are usually specified in either
6+/etc/modules.d/*.conf configuration files, or in a distro-specific
7+configuration file.
88
99 The available ipv6 module parameters are listed below. If a parameter
1010 is not specified the default value is used.
Documentation/networking/ixgb.txt+3−3
@@ -274,9 +274,9 @@ Additional Configurations · 273 unmodified lines
274274 -------------------------------------------------
275275 Configuring a network driver to load properly when the system is started is
276276 distribution dependent. Typically, the configuration process involves adding
277− an alias line to /etc/modprobe.conf as well as editing other system startup
278− scripts and/or configuration files. Many popular Linux distributions ship
279− with tools to make these changes for you. To learn the proper way to
277+ an alias line to files in /etc/modprobe.d/ as well as editing other system
278+ startup scripts and/or configuration files. Many popular Linux distributions
279+ ship with tools to make these changes for you. To learn the proper way to
280280 configure a network device for your system, refer to your distribution
281281 documentation. If during this process you are asked for the driver or module
282282 name, the name for the Linux Base Driver for the Intel 10GbE Family of
Documentation/networking/ltpc.txt+1−1
@@ -25,7 +25,7 @@ the driver will try to determine them itself. · 24 unmodified lines
2525
2626 If you load the driver as a module, you can pass the parameters "io=",
2727 "irq=", and "dma=" on the command line with insmod or modprobe, or add
28−them as options in /etc/modprobe.conf:
28+them as options in a configuration file in /etc/modprobe.d/ directory:
2929
3030 alias lt0 ltpc # autoload the module when the interface is configured
3131 options ltpc io=0x240 irq=9 dma=1
Documentation/networking/netdevices.txt+12−13
@@ -47,26 +47,25 @@ packets is preferred. · 46 unmodified lines
4747
4848 struct net_device synchronization rules
4949 =======================================
50−dev->open:
50+ndo_open:
5151 Synchronization: rtnl_lock() semaphore.
5252 Context: process
5353
54−dev->stop:
54+ndo_stop:
5555 Synchronization: rtnl_lock() semaphore.
5656 Context: process
57− Note1: netif_running() is guaranteed false
58− Note2: dev->poll() is guaranteed to be stopped
57+ Note: netif_running() is guaranteed false
5958
60−dev->do_ioctl:
59+ndo_do_ioctl:
6160 Synchronization: rtnl_lock() semaphore.
6261 Context: process
6362
64−dev->get_stats:
63+ndo_get_stats:
6564 Synchronization: dev_base_lock rwlock.
6665 Context: nominally process, but don't sleep inside an rwlock
6766
68−dev->hard_start_xmit:
69− Synchronization: netif_tx_lock spinlock.
67+ndo_start_xmit:
68+ Synchronization: __netif_tx_lock spinlock.
7069
7170 When the driver sets NETIF_F_LLTX in dev->features this will be
7271 called without holding netif_tx_lock. In this case the driver
@@ -87,20 +86,20 @@ dev->hard_start_xmit: · 14 unmodified lines
8786 o NETDEV_TX_LOCKED Locking failed, please retry quickly.
8887 Only valid when NETIF_F_LLTX is set.
8988
90−dev->tx_timeout:
91− Synchronization: netif_tx_lock spinlock.
89+ndo_tx_timeout:
90+ Synchronization: netif_tx_lock spinlock; all TX queues frozen.
9291 Context: BHs disabled
9392 Notes: netif_queue_stopped() is guaranteed true
9493
95−dev->set_rx_mode:
96− Synchronization: netif_tx_lock spinlock.
94+ndo_set_rx_mode:
95+ Synchronization: netif_addr_lock spinlock.
9796 Context: BHs disabled
9897
9998 struct napi_struct synchronization rules
10099 ========================================
101100 napi->poll:
102101 Synchronization: NAPI_STATE_SCHED bit in napi->state. Device
103− driver's dev->close method will invoke napi_disable() on
102+ driver's ndo_stop method will invoke napi_disable() on
104103 all NAPI instances which will do a sleeping poll on the
105104 NAPI_STATE_SCHED napi->state bit, waiting for all pending
106105 NAPI activity to cease.
Documentation/networking/vortex.txt+3−3
@@ -67,8 +67,8 @@ Module parameters · 66 unmodified lines
6767 =================
6868
6969 There are several parameters which may be provided to the driver when
70−its module is loaded. These are usually placed in /etc/modprobe.conf
71−(/etc/modules.conf in 2.4). Example:
70+its module is loaded. These are usually placed in /etc/modprobe.d/*.conf
71+configuretion files. Example:
7272
7373 options 3c59x debug=3 rx_copybreak=300
7474
@@ -425,7 +425,7 @@ steps you should take: · 350 unmodified lines
425425 1) Increase the debug level. Usually this is done via:
426426
427427 a) modprobe driver debug=7
428− b) In /etc/modprobe.conf (or /etc/modules.conf for 2.4):
428+ b) In /etc/modprobe.d/driver.conf:
429429 options driver debug=7
430430
431431 2) Recreate the problem with the higher debug level,
Documentation/parport.txt+6−7
@@ -36,18 +36,17 @@ addresses should not be specified for supported PCI cards since they · 35 unmodified lines
3636 are automatically detected.
3737
3838
39−KMod
40−----
39+modprobe
40+--------
4141
42−If you use kmod, you will find it useful to edit /etc/modprobe.conf.
43−Here is an example of the lines that need to be added:
42+If you use modprobe , you will find it useful to add lines as below to a
43+configuration file in /etc/modprobe.d/ directory:.
4444
4545 alias parport_lowlevel parport_pc
4646 options parport_pc io=0x378,0x278 irq=7,auto
4747
48−KMod will then automatically load parport_pc (with the options
49−"io=0x378,0x278 irq=7,auto") whenever a parallel port device driver
50−(such as lp) is loaded.
48+modprobe will load parport_pc (with the options "io=0x378,0x278 irq=7,auto")
49+whenever a parallel port device driver (such as lp) is loaded.
5150
5251 Note that these are example lines only! You shouldn't in general need
5352 to specify any options to parport_pc in order to be able to use a
Documentation/remoteproc.txt+322−0
@@ -0,0 +1,322 @@
1+Remote Processor Framework
2+
3+1. Introduction
4+
5+Modern SoCs typically have heterogeneous remote processor devices in asymmetric
6+multiprocessing (AMP) configurations, which may be running different instances
7+of operating system, whether it's Linux or any other flavor of real-time OS.
8+
9+OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP.
10+In a typical configuration, the dual cortex-A9 is running Linux in a SMP
11+configuration, and each of the other three cores (two M3 cores and a DSP)
12+is running its own instance of RTOS in an AMP configuration.
13+
14+The remoteproc framework allows different platforms/architectures to
15+control (power on, load firmware, power off) those remote processors while
16+abstracting the hardware differences, so the entire driver doesn't need to be
17+duplicated. In addition, this framework also adds rpmsg virtio devices
18+for remote processors that supports this kind of communication. This way,
19+platform-specific remoteproc drivers only need to provide a few low-level
20+handlers, and then all rpmsg drivers will then just work
21+(for more information about the virtio-based rpmsg bus and its drivers,
22+please read Documentation/rpmsg.txt).
23+Registration of other types of virtio devices is now also possible. Firmwares
24+just need to publish what kind of virtio devices do they support, and then
25+remoteproc will add those devices. This makes it possible to reuse the
26+existing virtio drivers with remote processor backends at a minimal development
27+cost.
28+
29+2. User API
30+
31+ int rproc_boot(struct rproc *rproc)
32+ - Boot a remote processor (i.e. load its firmware, power it on, ...).
33+ If the remote processor is already powered on, this function immediately
34+ returns (successfully).
35+ Returns 0 on success, and an appropriate error value otherwise.
36+ Note: to use this function you should already have a valid rproc
37+ handle. There are several ways to achieve that cleanly (devres, pdata,
38+ the way remoteproc_rpmsg.c does this, or, if this becomes prevalent, we
39+ might also consider using dev_archdata for this). See also
40+ rproc_get_by_name() below.
41+
42+ void rproc_shutdown(struct rproc *rproc)
43+ - Power off a remote processor (previously booted with rproc_boot()).
44+ In case @rproc is still being used by an additional user(s), then
45+ this function will just decrement the power refcount and exit,
46+ without really powering off the device.
47+ Every call to rproc_boot() must (eventually) be accompanied by a call
48+ to rproc_shutdown(). Calling rproc_shutdown() redundantly is a bug.
49+ Notes:
50+ - we're not decrementing the rproc's refcount, only the power refcount.
51+ which means that the @rproc handle stays valid even after
52+ rproc_shutdown() returns, and users can still use it with a subsequent
53+ rproc_boot(), if needed.
54+ - don't call rproc_shutdown() to unroll rproc_get_by_name(), exactly
55+ because rproc_shutdown() _does not_ decrement the refcount of @rproc.
56+ To decrement the refcount of @rproc, use rproc_put() (but _only_ if
57+ you acquired @rproc using rproc_get_by_name()).
58+
59+ struct rproc *rproc_get_by_name(const char *name)
60+ - Find an rproc handle using the remote processor's name, and then
61+ boot it. If it's already powered on, then just immediately return
62+ (successfully). Returns the rproc handle on success, and NULL on failure.
63+ This function increments the remote processor's refcount, so always
64+ use rproc_put() to decrement it back once rproc isn't needed anymore.
65+ Note: currently rproc_get_by_name() and rproc_put() are not used anymore
66+ by the rpmsg bus and its drivers. We need to scrutinize the use cases
67+ that still need them, and see if we can migrate them to use the non
68+ name-based boot/shutdown interface.
69+
70+ void rproc_put(struct rproc *rproc)
71+ - Decrement @rproc's power refcount and shut it down if it reaches zero
72+ (essentially by just calling rproc_shutdown), and then decrement @rproc's
73+ validity refcount too.
74+ After this function returns, @rproc may _not_ be used anymore, and its
75+ handle should be considered invalid.
76+ This function should be called _iff_ the @rproc handle was grabbed by
77+ calling rproc_get_by_name().
78+
79+3. Typical usage
80+
81+#include <linux/remoteproc.h>
82+
83+/* in case we were given a valid 'rproc' handle */
84+int dummy_rproc_example(struct rproc *my_rproc)
85+{
86+ int ret;
87+
88+ /* let's power on and boot our remote processor */
89+ ret = rproc_boot(my_rproc);
90+ if (ret) {
91+ /*
92+ * something went wrong. handle it and leave.
93+ */
94+ }
95+
96+ /*
97+ * our remote processor is now powered on... give it some work
98+ */
99+
100+ /* let's shut it down now */
101+ rproc_shutdown(my_rproc);
102+}
103+
104+4. API for implementors
105+
106+ struct rproc *rproc_alloc(struct device *dev, const char *name,
107+ const struct rproc_ops *ops,
108+ const char *firmware, int len)
109+ - Allocate a new remote processor handle, but don't register
110+ it yet. Required parameters are the underlying device, the
111+ name of this remote processor, platform-specific ops handlers,
112+ the name of the firmware to boot this rproc with, and the
113+ length of private data needed by the allocating rproc driver (in bytes).
114+
115+ This function should be used by rproc implementations during
116+ initialization of the remote processor.
117+ After creating an rproc handle using this function, and when ready,
118+ implementations should then call rproc_register() to complete
119+ the registration of the remote processor.
120+ On success, the new rproc is returned, and on failure, NULL.
121+
122+ Note: _never_ directly deallocate @rproc, even if it was not registered
123+ yet. Instead, if you just need to unroll rproc_alloc(), use rproc_free().
124+
125+ void rproc_free(struct rproc *rproc)
126+ - Free an rproc handle that was allocated by rproc_alloc.
127+ This function should _only_ be used if @rproc was only allocated,
128+ but not registered yet.
129+ If @rproc was already successfully registered (by calling
130+ rproc_register()), then use rproc_unregister() instead.
131+
132+ int rproc_register(struct rproc *rproc)
133+ - Register @rproc with the remoteproc framework, after it has been
134+ allocated with rproc_alloc().
135+ This is called by the platform-specific rproc implementation, whenever
136+ a new remote processor device is probed.
137+ Returns 0 on success and an appropriate error code otherwise.
138+ Note: this function initiates an asynchronous firmware loading
139+ context, which will look for virtio devices supported by the rproc's
140+ firmware.
141+ If found, those virtio devices will be created and added, so as a result
142+ of registering this remote processor, additional virtio drivers might get
143+ probed.
144+
145+ int rproc_unregister(struct rproc *rproc)
146+ - Unregister a remote processor, and decrement its refcount.
147+ If its refcount drops to zero, then @rproc will be freed. If not,
148+ it will be freed later once the last reference is dropped.
149+
150+ This function should be called when the platform specific rproc
151+ implementation decides to remove the rproc device. it should
152+ _only_ be called if a previous invocation of rproc_register()
153+ has completed successfully.
154+
155+ After rproc_unregister() returns, @rproc is _not_ valid anymore and
156+ it shouldn't be used. More specifically, don't call rproc_free()
157+ or try to directly free @rproc after rproc_unregister() returns;
158+ none of these are needed, and calling them is a bug.
159+
160+ Returns 0 on success and -EINVAL if @rproc isn't valid.
161+
162+5. Implementation callbacks
163+
164+These callbacks should be provided by platform-specific remoteproc
165+drivers:
166+
167+/**
168+ * struct rproc_ops - platform-specific device handlers
169+ * @start: power on the device and boot it
170+ * @stop: power off the device
171+ * @kick: kick a virtqueue (virtqueue id given as a parameter)
172+ */
173+struct rproc_ops {
174+ int (*start)(struct rproc *rproc);
175+ int (*stop)(struct rproc *rproc);
176+ void (*kick)(struct rproc *rproc, int vqid);
177+};
178+
179+Every remoteproc implementation should at least provide the ->start and ->stop
180+handlers. If rpmsg/virtio functionality is also desired, then the ->kick handler
181+should be provided as well.
182+
183+The ->start() handler takes an rproc handle and should then power on the
184+device and boot it (use rproc->priv to access platform-specific private data).
185+The boot address, in case needed, can be found in rproc->bootaddr (remoteproc
186+core puts there the ELF entry point).
187+On success, 0 should be returned, and on failure, an appropriate error code.
188+
189+The ->stop() handler takes an rproc handle and powers the device down.
190+On success, 0 is returned, and on failure, an appropriate error code.
191+
192+The ->kick() handler takes an rproc handle, and an index of a virtqueue
193+where new message was placed in. Implementations should interrupt the remote
194+processor and let it know it has pending messages. Notifying remote processors
195+the exact virtqueue index to look in is optional: it is easy (and not
196+too expensive) to go through the existing virtqueues and look for new buffers
197+in the used rings.
198+
199+6. Binary Firmware Structure
200+
201+At this point remoteproc only supports ELF32 firmware binaries. However,
202+it is quite expected that other platforms/devices which we'd want to
203+support with this framework will be based on different binary formats.
204+
205+When those use cases show up, we will have to decouple the binary format
206+from the framework core, so we can support several binary formats without
207+duplicating common code.
208+
209+When the firmware is parsed, its various segments are loaded to memory
210+according to the specified device address (might be a physical address
211+if the remote processor is accessing memory directly).
212+
213+In addition to the standard ELF segments, most remote processors would
214+also include a special section which we call "the resource table".
215+
216+The resource table contains system resources that the remote processor
217+requires before it should be powered on, such as allocation of physically
218+contiguous memory, or iommu mapping of certain on-chip peripherals.
219+Remotecore will only power up the device after all the resource table's
220+requirement are met.
221+
222+In addition to system resources, the resource table may also contain
223+resource entries that publish the existence of supported features
224+or configurations by the remote processor, such as trace buffers and
225+supported virtio devices (and their configurations).
226+
227+The resource table begins with this header:
228+
229+/**
230+ * struct resource_table - firmware resource table header
231+ * @ver: version number
232+ * @num: number of resource entries
233+ * @reserved: reserved (must be zero)
234+ * @offset: array of offsets pointing at the various resource entries
235+ *
236+ * The header of the resource table, as expressed by this structure,
237+ * contains a version number (should we need to change this format in the
238+ * future), the number of available resource entries, and their offsets
239+ * in the table.
240+ */
241+struct resource_table {
242+ u32 ver;
243+ u32 num;
244+ u32 reserved[2];
245+ u32 offset[0];
246+} __packed;
247+
248+Immediately following this header are the resource entries themselves,
249+each of which begins with the following resource entry header:
250+
251+/**
252+ * struct fw_rsc_hdr - firmware resource entry header
253+ * @type: resource type
254+ * @data: resource data
255+ *
256+ * Every resource entry begins with a 'struct fw_rsc_hdr' header providing
257+ * its @type. The content of the entry itself will immediately follow
258+ * this header, and it should be parsed according to the resource type.
259+ */
260+struct fw_rsc_hdr {
261+ u32 type;
262+ u8 data[0];
263+} __packed;
264+
265+Some resources entries are mere announcements, where the host is informed
266+of specific remoteproc configuration. Other entries require the host to
267+do something (e.g. allocate a system resource). Sometimes a negotiation
268+is expected, where the firmware requests a resource, and once allocated,
269+the host should provide back its details (e.g. address of an allocated
270+memory region).
271+
272+Here are the various resource types that are currently supported:
273+
274+/**
275+ * enum fw_resource_type - types of resource entries
276+ *
277+ * @RSC_CARVEOUT: request for allocation of a physically contiguous
278+ * memory region.
279+ * @RSC_DEVMEM: request to iommu_map a memory-based peripheral.
280+ * @RSC_TRACE: announces the availability of a trace buffer into which
281+ * the remote processor will be writing logs.
282+ * @RSC_VDEV: declare support for a virtio device, and serve as its
283+ * virtio header.
284+ * @RSC_LAST: just keep this one at the end
285+ *
286+ * Please note that these values are used as indices to the rproc_handle_rsc
287+ * lookup table, so please keep them sane. Moreover, @RSC_LAST is used to
288+ * check the validity of an index before the lookup table is accessed, so
289+ * please update it as needed.
290+ */
291+enum fw_resource_type {
292+ RSC_CARVEOUT = 0,
293+ RSC_DEVMEM = 1,
294+ RSC_TRACE = 2,
295+ RSC_VDEV = 3,
296+ RSC_LAST = 4,
297+};
298+
299+For more details regarding a specific resource type, please see its
300+dedicated structure in include/linux/remoteproc.h.
301+
302+We also expect that platform-specific resource entries will show up
303+at some point. When that happens, we could easily add a new RSC_PLATFORM
304+type, and hand those resources to the platform-specific rproc driver to handle.
305+
306+7. Virtio and remoteproc
307+
308+The firmware should provide remoteproc information about virtio devices
309+that it supports, and their configurations: a RSC_VDEV resource entry
310+should specify the virtio device id (as in virtio_ids.h), virtio features,
311+virtio config space, vrings information, etc.
312+
313+When a new remote processor is registered, the remoteproc framework
314+will look for its resource table and will register the virtio devices
315+it supports. A firmware may support any number of virtio devices, and
316+of any type (a single remote processor can also easily support several
317+rpmsg virtio devices this way, if desired).
318+
319+Of course, RSC_VDEV resource entries are only good enough for static
320+allocation of virtio devices. Dynamic allocations will also be made possible
321+using the rpmsg bus (similar to how we already do dynamic allocations of
322+rpmsg channels; read more about it in rpmsg.txt).
Documentation/rpmsg.txt+293−0
@@ -0,0 +1,293 @@
1+Remote Processor Messaging (rpmsg) Framework
2+
3+Note: this document describes the rpmsg bus and how to write rpmsg drivers.
4+To learn how to add rpmsg support for new platforms, check out remoteproc.txt
5+(also a resident of Documentation/).
6+
7+1. Introduction
8+
9+Modern SoCs typically employ heterogeneous remote processor devices in
10+asymmetric multiprocessing (AMP) configurations, which may be running
11+different instances of operating system, whether it's Linux or any other
12+flavor of real-time OS.
13+
14+OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP.
15+Typically, the dual cortex-A9 is running Linux in a SMP configuration,
16+and each of the other three cores (two M3 cores and a DSP) is running
17+its own instance of RTOS in an AMP configuration.
18+
19+Typically AMP remote processors employ dedicated DSP codecs and multimedia
20+hardware accelerators, and therefore are often used to offload CPU-intensive
21+multimedia tasks from the main application processor.
22+
23+These remote processors could also be used to control latency-sensitive
24+sensors, drive random hardware blocks, or just perform background tasks
25+while the main CPU is idling.
26+
27+Users of those remote processors can either be userland apps (e.g. multimedia
28+frameworks talking with remote OMX components) or kernel drivers (controlling
29+hardware accessible only by the remote processor, reserving kernel-controlled
30+resources on behalf of the remote processor, etc..).
31+
32+Rpmsg is a virtio-based messaging bus that allows kernel drivers to communicate
33+with remote processors available on the system. In turn, drivers could then
34+expose appropriate user space interfaces, if needed.
35+
36+When writing a driver that exposes rpmsg communication to userland, please
37+keep in mind that remote processors might have direct access to the
38+system's physical memory and other sensitive hardware resources (e.g. on
39+OMAP4, remote cores and hardware accelerators may have direct access to the
40+physical memory, gpio banks, dma controllers, i2c bus, gptimers, mailbox
41+devices, hwspinlocks, etc..). Moreover, those remote processors might be
42+running RTOS where every task can access the entire memory/devices exposed
43+to the processor. To minimize the risks of rogue (or buggy) userland code
44+exploiting remote bugs, and by that taking over the system, it is often
45+desired to limit userland to specific rpmsg channels (see definition below)
46+it can send messages on, and if possible, minimize how much control
47+it has over the content of the messages.
48+
49+Every rpmsg device is a communication channel with a remote processor (thus
50+rpmsg devices are called channels). Channels are identified by a textual name
51+and have a local ("source") rpmsg address, and remote ("destination") rpmsg
52+address.
53+
54+When a driver starts listening on a channel, its rx callback is bound with
55+a unique rpmsg local address (a 32-bit integer). This way when inbound messages
56+arrive, the rpmsg core dispatches them to the appropriate driver according
57+to their destination address (this is done by invoking the driver's rx handler
58+with the payload of the inbound message).
59+
60+
61+2. User API
62+
63+ int rpmsg_send(struct rpmsg_channel *rpdev, void *data, int len);
64+ - sends a message across to the remote processor on a given channel.
65+ The caller should specify the channel, the data it wants to send,
66+ and its length (in bytes). The message will be sent on the specified
67+ channel, i.e. its source and destination address fields will be
68+ set to the channel's src and dst addresses.
69+
70+ In case there are no TX buffers available, the function will block until
71+ one becomes available (i.e. until the remote processor consumes
72+ a tx buffer and puts it back on virtio's used descriptor ring),
73+ or a timeout of 15 seconds elapses. When the latter happens,
74+ -ERESTARTSYS is returned.
75+ The function can only be called from a process context (for now).
76+ Returns 0 on success and an appropriate error value on failure.
77+
78+ int rpmsg_sendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst);
79+ - sends a message across to the remote processor on a given channel,
80+ to a destination address provided by the caller.
81+ The caller should specify the channel, the data it wants to send,
82+ its length (in bytes), and an explicit destination address.
83+ The message will then be sent to the remote processor to which the
84+ channel belongs, using the channel's src address, and the user-provided
85+ dst address (thus the channel's dst address will be ignored).
86+
87+ In case there are no TX buffers available, the function will block until
88+ one becomes available (i.e. until the remote processor consumes
89+ a tx buffer and puts it back on virtio's used descriptor ring),
90+ or a timeout of 15 seconds elapses. When the latter happens,
91+ -ERESTARTSYS is returned.
92+ The function can only be called from a process context (for now).
93+ Returns 0 on success and an appropriate error value on failure.
94+
95+ int rpmsg_send_offchannel(struct rpmsg_channel *rpdev, u32 src, u32 dst,
96+ void *data, int len);
97+ - sends a message across to the remote processor, using the src and dst
98+ addresses provided by the user.
99+ The caller should specify the channel, the data it wants to send,
100+ its length (in bytes), and explicit source and destination addresses.
101+ The message will then be sent to the remote processor to which the
102+ channel belongs, but the channel's src and dst addresses will be
103+ ignored (and the user-provided addresses will be used instead).
104+
105+ In case there are no TX buffers available, the function will block until
106+ one becomes available (i.e. until the remote processor consumes
107+ a tx buffer and puts it back on virtio's used descriptor ring),
108+ or a timeout of 15 seconds elapses. When the latter happens,
109+ -ERESTARTSYS is returned.
110+ The function can only be called from a process context (for now).
111+ Returns 0 on success and an appropriate error value on failure.
112+
113+ int rpmsg_trysend(struct rpmsg_channel *rpdev, void *data, int len);
114+ - sends a message across to the remote processor on a given channel.
115+ The caller should specify the channel, the data it wants to send,
116+ and its length (in bytes). The message will be sent on the specified
117+ channel, i.e. its source and destination address fields will be
118+ set to the channel's src and dst addresses.
119+
120+ In case there are no TX buffers available, the function will immediately
121+ return -ENOMEM without waiting until one becomes available.
122+ The function can only be called from a process context (for now).
123+ Returns 0 on success and an appropriate error value on failure.
124+
125+ int rpmsg_trysendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst)
126+ - sends a message across to the remote processor on a given channel,
127+ to a destination address provided by the user.
128+ The user should specify the channel, the data it wants to send,
129+ its length (in bytes), and an explicit destination address.
130+ The message will then be sent to the remote processor to which the
131+ channel belongs, using the channel's src address, and the user-provided
132+ dst address (thus the channel's dst address will be ignored).
133+
134+ In case there are no TX buffers available, the function will immediately
135+ return -ENOMEM without waiting until one becomes available.
136+ The function can only be called from a process context (for now).
137+ Returns 0 on success and an appropriate error value on failure.
138+
139+ int rpmsg_trysend_offchannel(struct rpmsg_channel *rpdev, u32 src, u32 dst,
140+ void *data, int len);
141+ - sends a message across to the remote processor, using source and
142+ destination addresses provided by the user.
143+ The user should specify the channel, the data it wants to send,
144+ its length (in bytes), and explicit source and destination addresses.
145+ The message will then be sent to the remote processor to which the
146+ channel belongs, but the channel's src and dst addresses will be
147+ ignored (and the user-provided addresses will be used instead).
148+
149+ In case there are no TX buffers available, the function will immediately
150+ return -ENOMEM without waiting until one becomes available.
151+ The function can only be called from a process context (for now).
152+ Returns 0 on success and an appropriate error value on failure.
153+
154+ struct rpmsg_endpoint *rpmsg_create_ept(struct rpmsg_channel *rpdev,
155+ void (*cb)(struct rpmsg_channel *, void *, int, void *, u32),
156+ void *priv, u32 addr);
157+ - every rpmsg address in the system is bound to an rx callback (so when
158+ inbound messages arrive, they are dispatched by the rpmsg bus using the
159+ appropriate callback handler) by means of an rpmsg_endpoint struct.
160+
161+ This function allows drivers to create such an endpoint, and by that,
162+ bind a callback, and possibly some private data too, to an rpmsg address
163+ (either one that is known in advance, or one that will be dynamically
164+ assigned for them).
165+
166+ Simple rpmsg drivers need not call rpmsg_create_ept, because an endpoint
167+ is already created for them when they are probed by the rpmsg bus
168+ (using the rx callback they provide when they registered to the rpmsg bus).
169+
170+ So things should just work for simple drivers: they already have an
171+ endpoint, their rx callback is bound to their rpmsg address, and when
172+ relevant inbound messages arrive (i.e. messages which their dst address
173+ equals to the src address of their rpmsg channel), the driver's handler
174+ is invoked to process it.
175+
176+ That said, more complicated drivers might do need to allocate
177+ additional rpmsg addresses, and bind them to different rx callbacks.
178+ To accomplish that, those drivers need to call this function.
179+ Drivers should provide their channel (so the new endpoint would bind
180+ to the same remote processor their channel belongs to), an rx callback
181+ function, an optional private data (which is provided back when the
182+ rx callback is invoked), and an address they want to bind with the
183+ callback. If addr is RPMSG_ADDR_ANY, then rpmsg_create_ept will
184+ dynamically assign them an available rpmsg address (drivers should have
185+ a very good reason why not to always use RPMSG_ADDR_ANY here).
186+
187+ Returns a pointer to the endpoint on success, or NULL on error.
188+
189+ void rpmsg_destroy_ept(struct rpmsg_endpoint *ept);
190+ - destroys an existing rpmsg endpoint. user should provide a pointer
191+ to an rpmsg endpoint that was previously created with rpmsg_create_ept().
192+
193+ int register_rpmsg_driver(struct rpmsg_driver *rpdrv);
194+ - registers an rpmsg driver with the rpmsg bus. user should provide
195+ a pointer to an rpmsg_driver struct, which contains the driver's
196+ ->probe() and ->remove() functions, an rx callback, and an id_table
197+ specifying the names of the channels this driver is interested to
198+ be probed with.
199+
200+ void unregister_rpmsg_driver(struct rpmsg_driver *rpdrv);
201+ - unregisters an rpmsg driver from the rpmsg bus. user should provide
202+ a pointer to a previously-registered rpmsg_driver struct.
203+ Returns 0 on success, and an appropriate error value on failure.
204+
205+
206+3. Typical usage
207+
208+The following is a simple rpmsg driver, that sends an "hello!" message
209+on probe(), and whenever it receives an incoming message, it dumps its
210+content to the console.
211+
212+#include <linux/kernel.h>
213+#include <linux/module.h>
214+#include <linux/rpmsg.h>
215+
216+static void rpmsg_sample_cb(struct rpmsg_channel *rpdev, void *data, int len,
217+ void *priv, u32 src)
218+{
219+ print_hex_dump(KERN_INFO, "incoming message:", DUMP_PREFIX_NONE,
220+ 16, 1, data, len, true);
221+}
222+
223+static int rpmsg_sample_probe(struct rpmsg_channel *rpdev)
224+{
225+ int err;
226+
227+ dev_info(&rpdev->dev, "chnl: 0x%x -> 0x%x\n", rpdev->src, rpdev->dst);
228+
229+ /* send a message on our channel */
230+ err = rpmsg_send(rpdev, "hello!", 6);
231+ if (err) {
232+ pr_err("rpmsg_send failed: %d\n", err);
233+ return err;
234+ }
235+
236+ return 0;
237+}
238+
239+static void __devexit rpmsg_sample_remove(struct rpmsg_channel *rpdev)
240+{
241+ dev_info(&rpdev->dev, "rpmsg sample client driver is removed\n");
242+}
243+
244+static struct rpmsg_device_id rpmsg_driver_sample_id_table[] = {
245+ { .name = "rpmsg-client-sample" },
246+ { },
247+};
248+MODULE_DEVICE_TABLE(rpmsg, rpmsg_driver_sample_id_table);
249+
250+static struct rpmsg_driver rpmsg_sample_client = {
251+ .drv.name = KBUILD_MODNAME,
252+ .drv.owner = THIS_MODULE,
253+ .id_table = rpmsg_driver_sample_id_table,
254+ .probe = rpmsg_sample_probe,
255+ .callback = rpmsg_sample_cb,
256+ .remove = __devexit_p(rpmsg_sample_remove),
257+};
258+
259+static int __init init(void)
260+{
261+ return register_rpmsg_driver(&rpmsg_sample_client);
262+}
263+module_init(init);
264+
265+static void __exit fini(void)
266+{
267+ unregister_rpmsg_driver(&rpmsg_sample_client);
268+}
269+module_exit(fini);
270+
271+Note: a similar sample which can be built and loaded can be found
272+in samples/rpmsg/.
273+
274+4. Allocations of rpmsg channels:
275+
276+At this point we only support dynamic allocations of rpmsg channels.
277+
278+This is possible only with remote processors that have the VIRTIO_RPMSG_F_NS
279+virtio device feature set. This feature bit means that the remote
280+processor supports dynamic name service announcement messages.
281+
282+When this feature is enabled, creation of rpmsg devices (i.e. channels)
283+is completely dynamic: the remote processor announces the existence of a
284+remote rpmsg service by sending a name service message (which contains
285+the name and rpmsg addr of the remote service, see struct rpmsg_ns_msg).
286+
287+This message is then handled by the rpmsg bus, which in turn dynamically
288+creates and registers an rpmsg channel (which represents the remote service).
289+If/when a relevant rpmsg driver is registered, it will be immediately probed
290+by the bus, and can then start sending messages to the remote service.
291+
292+The plan is also to add static creation of rpmsg channels via the virtio
293+config space, but it's not implemented yet.
Documentation/s390/3270.txt+10−11
@@ -47,9 +47,9 @@ including the console 3270, changes subchannel identifier relative to · 46 unmodified lines
4747 one another. ReIPL as soon as possible after running the configuration
4848 script and the resulting /tmp/mkdev3270.
4949
50−If you have chosen to make tub3270 a module, you add a line to
51−/etc/modprobe.conf. If you are working on a VM virtual machine, you
52−can use DEF GRAF to define virtual 3270 devices.
50+If you have chosen to make tub3270 a module, you add a line to a
51+configuration file under /etc/modprobe.d/. If you are working on a VM
52+virtual machine, you can use DEF GRAF to define virtual 3270 devices.
5353
5454 You may generate both 3270 and 3215 console support, or one or the
5555 other, or neither. If you generate both, the console type under VM is
@@ -60,7 +60,7 @@ at boot time to a 3270 if it is a 3215. · 4 unmodified lines
6060
6161 In brief, these are the steps:
6262 1. Install the tub3270 patch
63− 2. (If a module) add a line to /etc/modprobe.conf
63+ 2. (If a module) add a line to a file in /etc/modprobe.d/*.conf
6464 3. (If VM) define devices with DEF GRAF
6565 4. Reboot
6666 5. Configure
@@ -84,13 +84,12 @@ Here are the installation steps in detail: · 17 unmodified lines
8484 make modules_install
8585
8686 2. (Perform this step only if you have configured tub3270 as a
87− module.) Add a line to /etc/modprobe.conf to automatically
88− load the driver when it's needed. With this line added,
89− you will see login prompts appear on your 3270s as soon as
90− boot is complete (or with emulated 3270s, as soon as you dial
91− into your vm guest using the command "DIAL <vmguestname>").
92− Since the line-mode major number is 227, the line to add to
93− /etc/modprobe.conf should be:
87+ module.) Add a line to a file /etc/modprobe.d/*.conf to automatically
88+ load the driver when it's needed. With this line added, you will see
89+ login prompts appear on your 3270s as soon as boot is complete (or
90+ with emulated 3270s, as soon as you dial into your vm guest using the
91+ command "DIAL <vmguestname>"). Since the line-mode major number is
92+ 227, the line to add should be:
9493 alias char-major-227 tub3270
9594
9695 3. Define graphic devices to your vm guest machine, if you
Documentation/scsi/00-INDEX+2−0
@@ -94,3 +94,5 @@ sym53c8xx_2.txt · 93 unmodified lines
9494 - info on second generation driver for sym53c8xx based adapters
9595 tmscsim.txt
9696 - info on driver for AM53c974 based adapters
97+ufs.txt
98+ - info on Universal Flash Storage(UFS) and UFS host controller driver.
Documentation/scsi/aic79xx.txt+1−1
@@ -215,7 +215,7 @@ The following information is available in this file: · 214 unmodified lines
215215 INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE.
216216 USE THEM WITH CAUTION.
217217
218− Edit the file "modprobe.conf" in the directory /etc and add/edit a
218+ Put a .conf file in the /etc/modprobe.d/ directory and add/edit a
219219 line containing 'options aic79xx aic79xx=[command[,command...]]' where
220220 'command' is one or more of the following:
221221 -----------------------------------------------------------------
Documentation/scsi/aic7xxx.txt+1−1
@@ -190,7 +190,7 @@ The following information is available in this file: · 189 unmodified lines
190190 INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE.
191191 USE THEM WITH CAUTION.
192192
193− Edit the file "modprobe.conf" in the directory /etc and add/edit a
193+ Put a .conf file in the /etc/modprobe.d directory and add/edit a
194194 line containing 'options aic7xxx aic7xxx=[command[,command...]]' where
195195 'command' is one or more of the following:
196196 -----------------------------------------------------------------
Documentation/scsi/osst.txt+1−1
@@ -66,7 +66,7 @@ recognized. · 65 unmodified lines
6666 If you want to have the module autoloaded on access to /dev/osst, you may
6767 add something like
6868 alias char-major-206 osst
69−to your /etc/modprobe.conf (before 2.6: modules.conf).
69+to a file under /etc/modprobe.d/ directory.
7070
7171 You may find it convenient to create a symbolic link
7272 ln -s nosst0 /dev/tape
Documentation/scsi/st.txt+4−0
@@ -390,6 +390,10 @@ MTSETDRVBUFFER · 389 unmodified lines
390390 MT_ST_SYSV sets the SYSV semantics (mode)
391391 MT_ST_NOWAIT enables immediate mode (i.e., don't wait for
392392 the command to finish) for some commands (e.g., rewind)
393+ MT_ST_NOWAIT_EOF enables immediate filemark mode (i.e. when
394+ writing a filemark, don't wait for it to complete). Please
395+ see the BASICS note about MTWEOFI with respect to the
396+ possible dangers of writing immediate filemarks.
393397 MT_ST_SILI enables setting the SILI bit in SCSI commands when
394398 reading in variable block mode to enhance performance when
395399 reading blocks shorter than the byte count; set this only
Documentation/scsi/ufs.txt+133−0
@@ -0,0 +1,133 @@
1+ Universal Flash Storage
2+ =======================
3+
4+
5+Contents
6+--------
7+
8+1. Overview
9+2. UFS Architecture Overview
10+ 2.1 Application Layer
11+ 2.2 UFS Transport Protocol(UTP) layer
12+ 2.3 UFS Interconnect(UIC) Layer
13+3. UFSHCD Overview
14+ 3.1 UFS controller initialization
15+ 3.2 UTP Transfer requests
16+ 3.3 UFS error handling
17+ 3.4 SCSI Error handling
18+
19+
20+1. Overview
21+-----------
22+
23+Universal Flash Storage(UFS) is a storage specification for flash devices.
24+It is aimed to provide a universal storage interface for both
25+embedded and removable flash memory based storage in mobile
26+devices such as smart phones and tablet computers. The specification
27+is defined by JEDEC Solid State Technology Association. UFS is based
28+on MIPI M-PHY physical layer standard. UFS uses MIPI M-PHY as the
29+physical layer and MIPI Unipro as the link layer.
30+
31+The main goals of UFS is to provide,
32+ * Optimized performance:
33+ For UFS version 1.0 and 1.1 the target performance is as follows,
34+ Support for Gear1 is mandatory (rate A: 1248Mbps, rate B: 1457.6Mbps)
35+ Support for Gear2 is optional (rate A: 2496Mbps, rate B: 2915.2Mbps)
36+ Future version of the standard,
37+ Gear3 (rate A: 4992Mbps, rate B: 5830.4Mbps)
38+ * Low power consumption
39+ * High random IOPs and low latency
40+
41+
42+2. UFS Architecture Overview
43+----------------------------
44+
45+UFS has a layered communication architecture which is based on SCSI
46+SAM-5 architectural model.
47+
48+UFS communication architecture consists of following layers,
49+
50+2.1 Application Layer
51+
52+ The Application layer is composed of UFS command set layer(UCS),
53+ Task Manager and Device manager. The UFS interface is designed to be
54+ protocol agnostic, however SCSI has been selected as a baseline
55+ protocol for versions 1.0 and 1.1 of UFS protocol layer.
56+ UFS supports subset of SCSI commands defined by SPC-4 and SBC-3.
57+ * UCS: It handles SCSI commands supported by UFS specification.
58+ * Task manager: It handles task management functions defined by the
59+ UFS which are meant for command queue control.
60+ * Device manager: It handles device level operations and device
61+ configuration operations. Device level operations mainly involve
62+ device power management operations and commands to Interconnect
63+ layers. Device level configurations involve handling of query
64+ requests which are used to modify and retrieve configuration
65+ information of the device.
66+
67+2.2 UFS Transport Protocol(UTP) layer
68+
69+ UTP layer provides services for
70+ the higher layers through Service Access Points. UTP defines 3
71+ service access points for higher layers.
72+ * UDM_SAP: Device manager service access point is exposed to device
73+ manager for device level operations. These device level operations
74+ are done through query requests.
75+ * UTP_CMD_SAP: Command service access point is exposed to UFS command
76+ set layer(UCS) to transport commands.
77+ * UTP_TM_SAP: Task management service access point is exposed to task
78+ manager to transport task management functions.
79+ UTP transports messages through UFS protocol information unit(UPIU).
80+
81+2.3 UFS Interconnect(UIC) Layer
82+
83+ UIC is the lowest layer of UFS layered architecture. It handles
84+ connection between UFS host and UFS device. UIC consists of
85+ MIPI UniPro and MIPI M-PHY. UIC provides 2 service access points
86+ to upper layer,
87+ * UIC_SAP: To transport UPIU between UFS host and UFS device.
88+ * UIO_SAP: To issue commands to Unipro layers.
89+
90+
91+3. UFSHCD Overview
92+------------------
93+
94+The UFS host controller driver is based on Linux SCSI Framework.
95+UFSHCD is a low level device driver which acts as an interface between
96+SCSI Midlayer and PCIe based UFS host controllers.
97+
98+The current UFSHCD implementation supports following functionality,
99+
100+3.1 UFS controller initialization
101+
102+ The initialization module brings UFS host controller to active state
103+ and prepares the controller to transfer commands/response between
104+ UFSHCD and UFS device.
105+
106+3.2 UTP Transfer requests
107+
108+ Transfer request handling module of UFSHCD receives SCSI commands
109+ from SCSI Midlayer, forms UPIUs and issues the UPIUs to UFS Host
110+ controller. Also, the module decodes, responses received from UFS
111+ host controller in the form of UPIUs and intimates the SCSI Midlayer
112+ of the status of the command.
113+
114+3.3 UFS error handling
115+
116+ Error handling module handles Host controller fatal errors,
117+ Device fatal errors and UIC interconnect layer related errors.
118+
119+3.4 SCSI Error handling
120+
121+ This is done through UFSHCD SCSI error handling routines registered
122+ with SCSI Midlayer. Examples of some of the error handling commands
123+ issues by SCSI Midlayer are Abort task, Lun reset and host reset.
124+ UFSHCD Routines to perform these tasks are registered with
125+ SCSI Midlayer through .eh_abort_handler, .eh_device_reset_handler and
126+ .eh_host_reset_handler.
127+
128+In this version of UFSHCD Query requests and power management
129+functionality are not implemented.
130+
131+UFS Specifications can be found at,
132+UFS - http://www.jedec.org/sites/default/files/docs/JESD220.pdf
133+UFSHCI - http://www.jedec.org/sites/default/files/docs/JESD223.pdf
Documentation/serial/computone.txt+4−4
@@ -49,7 +49,7 @@ Hardware - If you have an ISA card, find a free interrupt and io port. · 48 unmodified lines
4949
5050 Note the hardware address from the Computone ISA cards installed into
5151 the system. These are required for editing ip2.c or editing
52− /etc/modprobe.conf, or for specification on the modprobe
52+ /etc/modprobe.d/*.conf, or for specification on the modprobe
5353 command line.
5454
5555 Note that the /etc/modules.conf should be used for older (pre-2.6)
@@ -66,7 +66,7 @@ b) Run "make config" or "make menuconfig" or "make xconfig" · 10 unmodified lines
6666 c) Set address on ISA cards then:
6767 edit /usr/src/linux/drivers/char/ip2.c if needed
6868 or
69− edit /etc/modprobe.conf if needed (module).
69+ edit config file in /etc/modprobe.d/ if needed (module).
7070 or both to match this setting.
7171 d) Run "make modules"
7272 e) Run "make modules_install"
@@ -153,11 +153,11 @@ the irqs are not specified the driver uses the default in ip2.c (which · 80 unmodified lines
153153 selects polled mode). If no base addresses are specified the defaults in
154154 ip2.c are used. If you are autoloading the driver module with kerneld or
155155 kmod the base addresses and interrupt number must also be set in ip2.c
156−and recompile or just insert and options line in /etc/modprobe.conf or both.
156+and recompile or just insert and options line in /etc/modprobe.d/*.conf or both.
157157 The options line is equivalent to the command line and takes precedence over
158158 what is in ip2.c.
159159
160−/etc/modprobe.conf sample:
160+config sample to put /etc/modprobe.d/*.conf:
161161 options ip2 io=1,0x328 irq=1,10
162162 alias char-major-71 ip2
163163 alias char-major-72 ip2
Documentation/serial/rocket.txt+1−1
@@ -62,7 +62,7 @@ in the system log at /var/log/messages. · 61 unmodified lines
6262
6363 If installed as a module, the module must be loaded. This can be done
6464 manually by entering "modprobe rocket". To have the module loaded automatically
65−upon system boot, edit the /etc/modprobe.conf file and add the line
65+upon system boot, edit a /etc/modprobe.d/*.conf file and add the line
6666 "alias char-major-46 rocket".
6767
6868 In order to use the ports, their device names (nodes) must be created with mknod.
Documentation/serial/stallion.txt+2−2
@@ -139,8 +139,8 @@ secondary address 0x280 and IRQ 10. · 138 unmodified lines
139139
140140 You will probably want to enter this module load and configuration information
141141 into your system startup scripts so that the drivers are loaded and configured
142−on each system boot. Typically the start up script would be something like
143−/etc/modprobe.conf.
142+on each system boot. Typically configuration files are put in the
143+/etc/modprobe.d/ directory.
144144
145145
146146 2.2 STATIC DRIVER CONFIGURATION:
Documentation/sound/alsa/ALSA-Configuration.txt+5−5
@@ -2044,7 +2044,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 2043 unmodified lines
20442044 Install the necessary firmware files in alsa-firmware package.
20452045 When no hotplug fw loader is available, you need to load the
20462046 firmware via vxloader utility in alsa-tools package. To invoke
2047− vxloader automatically, add the following to /etc/modprobe.conf
2047+ vxloader automatically, add the following to /etc/modprobe.d/alsa.conf
20482048
20492049 install snd-vx222 /sbin/modprobe --first-time -i snd-vx222 && /usr/bin/vxloader
20502050
@@ -2168,10 +2168,10 @@ corresponds to the card index of ALSA. Usually, define this · 117 unmodified lines
21682168 as the same card module.
21692169
21702170 An example configuration for a single emu10k1 card is like below:
2171−----- /etc/modprobe.conf
2171+----- /etc/modprobe.d/alsa.conf
21722172 alias snd-card-0 snd-emu10k1
21732173 alias sound-slot-0 snd-emu10k1
2174−----- /etc/modprobe.conf
2174+----- /etc/modprobe.d/alsa.conf
21752175
21762176 The available number of auto-loaded sound cards depends on the module
21772177 option "cards_limit" of snd module. As default it's set to 1.
@@ -2184,7 +2184,7 @@ cards is kept consistent. · 6 unmodified lines
21842184
21852185 An example configuration for two sound cards is like below:
21862186
2187−----- /etc/modprobe.conf
2187+----- /etc/modprobe.d/alsa.conf
21882188 # ALSA portion
21892189 options snd cards_limit=2
21902190 alias snd-card-0 snd-interwave
@@ -2194,7 +2194,7 @@ options snd-ens1371 index=1 · 3 unmodified lines
21942194 # OSS/Free portion
21952195 alias sound-slot-0 snd-interwave
21962196 alias sound-slot-1 snd-ens1371
2197−----- /etc/modprobe.conf
2197+----- /etc/modprobe.d/alsa.conf
21982198
21992199 In this example, the interwave card is always loaded as the first card
22002200 (index 0) and ens1371 as the second (index 1).
Documentation/sound/alsa/Audiophile-Usb.txt+2−2
@@ -232,7 +232,7 @@ The parameter can be given: · 231 unmodified lines
232232 # modprobe snd-usb-audio index=1 device_setup=0x09
233233
234234 * Or while configuring the modules options in your modules configuration file
235− - For Fedora distributions, edit the /etc/modprobe.conf file:
235+ (tipically a .conf file in /etc/modprobe.d/ directory:
236236 alias snd-card-1 snd-usb-audio
237237 options snd-usb-audio index=1 device_setup=0x09
238238
@@ -253,7 +253,7 @@ CAUTION when initializing the device · 14 unmodified lines
253253 - first turn off the device
254254 - de-register the snd-usb-audio module (modprobe -r)
255255 - change the device_setup parameter by changing the device_setup
256− option in /etc/modprobe.conf
256+ option in /etc/modprobe.d/*.conf
257257 - turn on the device
258258 * A workaround for this last issue has been applied to kernel 2.6.23, but it may not
259259 be enough to ensure the 'stability' of the device initialization.
Documentation/sound/alsa/HD-Audio-Models.txt+3−1
@@ -43,7 +43,9 @@ ALC680 · 42 unmodified lines
4343
4444 ALC882/883/885/888/889
4545 ======================
46− N/A
46+ acer-aspire-4930g Acer Aspire 4930G/5930G/6530G/6930G/7730G
47+ acer-aspire-8930g Acer Aspire 8330G/6935G
48+ acer-aspire Acer Aspire others
4749
4850 ALC861/660
4951 ==========
Documentation/sound/alsa/MIXART.txt+3−3
@@ -76,9 +76,9 @@ FIRMWARE · 75 unmodified lines
7676 when CONFIG_FW_LOADER is set. The mixartloader is necessary only
7777 for older versions or when you build the driver into kernel.]
7878
79−For loading the firmware automatically after the module is loaded, use
80−the post-install command. For example, add the following entry to
81−/etc/modprobe.conf for miXart driver:
79+For loading the firmware automatically after the module is loaded, use a
80+install command. For example, add the following entry to
81+/etc/modprobe.d/mixart.conf for miXart driver:
8282
8383 install snd-mixart /sbin/modprobe --first-time -i snd-mixart && \
8484 /usr/bin/mixartloader
Documentation/sound/alsa/OSS-Emulation.txt+1−1
@@ -19,7 +19,7 @@ the card number and the minor unit number. Usually you don't have to · 18 unmodified lines
1919 define these aliases by yourself.
2020
2121 Only necessary step for auto-loading of OSS modules is to define the
22−card alias in /etc/modprobe.conf, such as
22+card alias in /etc/modprobe.d/alsa.conf, such as
2323
2424 alias sound-slot-0 snd-emu10k1
2525
Documentation/sound/oss/AudioExcelDSP16+5−5
@@ -41,7 +41,7 @@ mpu_base I/O base address for activate MPU-401 mode · 40 unmodified lines
4141 (0x300, 0x310, 0x320 or 0x330)
4242 mpu_irq MPU-401 irq line (5, 7, 9, 10 or 0)
4343
44−The /etc/modprobe.conf will have lines like this:
44+A configuration file in /etc/modprobe.d/ directory will have lines like this:
4545
4646 options opl3 io=0x388
4747 options ad1848 io=0x530 irq=11 dma=3
@@ -51,11 +51,11 @@ Where the aedsp16 options are the options for this driver while opl3 and · 3 unmodified lines
5151 ad1848 are the corresponding options for the MSS and OPL3 modules.
5252
5353 Loading MSS and OPL3 needs to pre load the aedsp16 module to set up correctly
54−the sound card. Installation dependencies must be written in the modprobe.conf
55−file:
54+the sound card. Installation dependencies must be written in configuration
55+files under /etc/modprobe.d/ directory:
5656
57−install ad1848 /sbin/modprobe aedsp16 && /sbin/modprobe -i ad1848
58−install opl3 /sbin/modprobe aedsp16 && /sbin/modprobe -i opl3
57+softdep ad1848 pre: aedsp16
58+softdep opl3 pre: aedsp16
5959
6060 Then you must load the sound modules stack in this order:
6161 sound -> aedsp16 -> [ ad1848, opl3 ]
Documentation/sound/oss/CMI8330+2−3
@@ -143,11 +143,10 @@ CONFIG_SOUND_MSS=m · 142 unmodified lines
143143
144144
145145
146−Alma Chao <elysian@ethereal.torsion.org> suggests the following /etc/modprobe.conf:
146+Alma Chao <elysian@ethereal.torsion.org> suggests the following in
147+a /etc/modprobe.d/*conf file:
147148
148149 alias sound ad1848
149150 alias synth0 opl3
150151 options ad1848 io=0x530 irq=7 dma=0 soundpro=1
151152 options opl3 io=0x388
152−
153−
Documentation/sound/oss/Introduction+5−5
@@ -167,8 +167,8 @@ in a file such as /root/soundon.sh. · 166 unmodified lines
167167 MODPROBE:
168168 =========
169169
170−If loading via modprobe, these common files are automatically loaded
171−when requested by modprobe. For example, my /etc/modprobe.conf contains:
170+If loading via modprobe, these common files are automatically loaded when
171+requested by modprobe. For example, my /etc/modprobe.d/oss.conf contains:
172172
173173 alias sound sb
174174 options sb io=0x240 irq=9 dma=3 dma16=5 mpu_io=0x300
@@ -228,7 +228,7 @@ http://www.opensound.com. Before loading the commercial sound · 53 unmodified lines
228228 driver, you should do the following:
229229
230230 1. remove sound modules (detailed above)
231−2. remove the sound modules from /etc/modprobe.conf
231+2. remove the sound modules from /etc/modprobe.d/*.conf
232232 3. move the sound modules from /lib/modules/<kernel>/misc
233233 (for example, I make a /lib/modules/<kernel>/misc/tmp
234234 directory and copy the sound module files to that
@@ -265,7 +265,7 @@ twice, you need to do the following: · 30 unmodified lines
265265 sb.o could be copied (or symlinked) to sb1.o for the
266266 second SoundBlaster.
267267
268−2. Make a second entry in /etc/modprobe.conf, for example,
268+2. Make a second entry in /etc/modprobe.d/*conf, for example,
269269 sound1 or sb1. This second entry should refer to the
270270 new module names for example sb1, and should include
271271 the I/O, etc. for the second sound card.
@@ -369,7 +369,7 @@ There are several ways of configuring your sound: · 97 unmodified lines
369369 2) On the command line when using insmod or in a bash script
370370 using command line calls to load sound.
371371
372−3) In /etc/modprobe.conf when using modprobe.
372+3) In /etc/modprobe.d/*conf when using modprobe.
373373
374374 4) Via Red Hat's GPL'd /usr/sbin/sndconfig program (text based).
375375
Documentation/sound/oss/Opti+2−6
@@ -18,7 +18,7 @@ force the card into a mode in which it can be programmed. · 17 unmodified lines
1818 If you have another OS installed on your computer it is recommended
1919 that Linux and the other OS use the same resources.
2020
21−Also, it is recommended that resources specified in /etc/modprobe.conf
21+Also, it is recommended that resources specified in /etc/modprobe.d/*.conf
2222 and resources specified in /etc/isapnp.conf agree.
2323
2424 Compiling the sound driver
@@ -67,11 +67,7 @@ address is hard-coded into the driver. · 42 unmodified lines
6767
6868 Using kmod and autoloading the sound driver
6969 -------------------------------------------
70−Comment: as of linux-2.1.90 kmod is replacing kerneld.
71−The config file '/etc/modprobe.conf' is used as before.
72−
73−This is the sound part of my /etc/modprobe.conf file.
74−Following that I will explain each line.
70+Config files in '/etc/modprobe.d/' are used as below:
7571
7672 alias mixer0 mad16
7773 alias audio0 mad16
Documentation/sound/oss/PAS16+2−2
@@ -128,7 +128,7 @@ CONFIG_SOUND_YM3812 · 127 unmodified lines
128128 You can then get OPL3 functionality by issuing the command:
129129 insmod opl3
130130 In addition, you must either add the following line to
131− /etc/modprobe.conf:
131+ /etc/modprobe.d/*.conf:
132132 options opl3 io=0x388
133133 or else add the following line to /etc/lilo.conf:
134134 opl3=0x388
@@ -158,5 +158,5 @@ following line would be appropriate: · 23 unmodified lines
158158 append="pas2=0x388,10,3,-1,0,-1,-1,-1 opl3=0x388"
159159
160160 If sound is built totally modular, the above options may be
161−specified in /etc/modprobe.conf for pas2, sb and opl3
161+specified in /etc/modprobe.d/*.conf for pas2, sb and opl3
162162 respectively.
Documentation/sound/oss/README.modules+5−5
@@ -26,7 +26,7 @@ Note that it is no longer necessary or possible to configure sound in the · 25 unmodified lines
2626 drivers/sound dir. Now one simply configures and makes one's kernel and
2727 modules in the usual way.
2828
29− Then, add to your /etc/modprobe.conf something like:
29+ Then, add to your /etc/modprobe.d/oss.conf something like:
3030
3131 alias char-major-14-* sb
3232 install sb /sbin/modprobe -i sb && /sbin/modprobe adlib_card
@@ -36,7 +36,7 @@ options adlib_card io=0x388 # FM synthesizer · 3 unmodified lines
3636 Alternatively, if you have compiled in kernel level ISAPnP support:
3737
3838 alias char-major-14 sb
39−post-install sb /sbin/modprobe "-k" "adlib_card"
39+softdep sb post: adlib_card
4040 options adlib_card io=0x388
4141
4242 The effect of this is that the sound driver and all necessary bits and
@@ -66,12 +66,12 @@ args are expected. · 23 unmodified lines
6666 Note that at present there is no way to configure the io, irq and other
6767 parameters for the modular drivers as one does for the wired drivers.. One
6868 needs to pass the modules the necessary parameters as arguments, either
69−with /etc/modprobe.conf or with command-line args to modprobe, e.g.
69+with /etc/modprobe.d/*.conf or with command-line args to modprobe, e.g.
7070
7171 modprobe sb io=0x220 irq=7 dma=1 dma16=5 mpu_io=0x330
7272 modprobe adlib_card io=0x388
7373
74− recommend using /etc/modprobe.conf.
74+ recommend using /etc/modprobe.d/*.conf.
7575
7676 Persistent DMA Buffers:
7777
@@ -89,7 +89,7 @@ wasteful of RAM, but it guarantees that sound always works. · 11 unmodified lines
8989
9090 To make the sound driver use persistent DMA buffers we need to pass the
9191 sound.o module a "dmabuf=1" command-line argument. This is normally done
92−in /etc/modprobe.conf like so:
92+in /etc/modprobe.d/*.conf files like so:
9393
9494 options sound dmabuf=1
9595
Documentation/sysrq.txt+2−3
@@ -241,9 +241,8 @@ command you are interested in. · 240 unmodified lines
241241
242242 * I have more questions, who can I ask?
243243 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
244−And I'll answer any questions about the registration system you got, also
245−responding as soon as possible.
246− -Crutcher
244+Just ask them on the linux-kernel mailing list:
245+ linux-kernel@vger.kernel.org
247246
248247 * Credits
249248 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Documentation/usb/URB.txt+22−0
@@ -168,6 +168,28 @@ that if the completion handler or anyone else tries to resubmit it · 167 unmodified lines
168168 they will get a -EPERM error. Thus you can be sure that when
169169 usb_kill_urb() returns, the URB is totally idle.
170170
171+There is a lifetime issue to consider. An URB may complete at any
172+time, and the completion handler may free the URB. If this happens
173+while usb_unlink_urb or usb_kill_urb is running, it will cause a
174+memory-access violation. The driver is responsible for avoiding this,
175+which often means some sort of lock will be needed to prevent the URB
176+from being deallocated while it is still in use.
177+
178+On the other hand, since usb_unlink_urb may end up calling the
179+completion handler, the handler must not take any lock that is held
180+when usb_unlink_urb is invoked. The general solution to this problem
181+is to increment the URB's reference count while holding the lock, then
182+drop the lock and call usb_unlink_urb or usb_kill_urb, and then
183+decrement the URB's reference count. You increment the reference
184+count by calling
185+
186+ struct urb *usb_get_urb(struct urb *urb)
187+
188+(ignore the return value; it is the same as the argument) and
189+decrement the reference count by calling usb_free_urb. Of course,
190+none of this is necessary if there's no danger of the URB being freed
191+by the completion handler.
192+
171193
172194 1.7. What about the completion handler?
173195
Documentation/usb/power-management.txt+2−1
@@ -179,7 +179,8 @@ do: · 178 unmodified lines
179179
180180 modprobe usbcore autosuspend=5
181181
182−Equivalently, you could add to /etc/modprobe.conf a line saying:
182+Equivalently, you could add to a configuration file in /etc/modprobe.d
183+a line saying:
183184
184185 options usbcore autosuspend=5
185186
Documentation/usb/usbmon.txt+3−3
@@ -183,10 +183,10 @@ An input control transfer to get a port status. · 182 unmodified lines
183183 d5ea89a0 3575914555 S Ci:1:001:0 s a3 00 0000 0003 0004 4 <
184184 d5ea89a0 3575914560 C Ci:1:001:0 0 4 = 01050000
185185
186−An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper
187−to a storage device at address 5:
186+An output bulk transfer to send a SCSI command 0x28 (READ_10) in a 31-byte
187+Bulk wrapper to a storage device at address 5:
188188
189−dd65f0e8 4128379752 S Bo:1:005:2 -115 31 = 55534243 5e000000 00000000 00000600 00000000 00000000 00000000 000000
189+dd65f0e8 4128379752 S Bo:1:005:2 -115 31 = 55534243 ad000000 00800000 80010a28 20000000 20000040 00000000 000000
190190 dd65f0e8 4128379808 C Bo:1:005:2 0 31 >
191191
192192 * Raw binary format and API
Documentation/video4linux/CQcam.txt+2−12
@@ -61,29 +61,19 @@ But that is my personal preference. · 60 unmodified lines
6161 2.2 Configuration
6262
6363 The configuration requires module configuration and device
64−configuration. I like kmod or kerneld process with the
65−/etc/modprobe.conf file so the modules can automatically load/unload as
66−they are used. The video devices could already exist, be generated
67−using MAKEDEV, or need to be created. The following sections detail
68−these procedures.
64+configuration. The following sections detail these procedures.
6965
7066
7167 2.1 Module Configuration
7268
7369 Using modules requires a bit of work to install and pass the
74−parameters. Understand that entries in /etc/modprobe.conf of:
70+parameters. Understand that entries in /etc/modprobe.d/*.conf of:
7571
7672 alias parport_lowlevel parport_pc
7773 options parport_pc io=0x378 irq=none
7874 alias char-major-81 videodev
7975 alias char-major-81-0 c-qcam
8076
81−will cause the kmod/modprobe to do certain things. If you are
82−using kmod, then a request for a 'char-major-81-0' will cause
83−the 'c-qcam' module to load. If you have other video sources with
84−modules, you might want to assign the different minor numbers to
85−different modules.
86−
8777 2.2 Device Configuration
8878
8979 At this point, we need to ensure that the device files exist.
Documentation/video4linux/Zoran+1−1
@@ -255,7 +255,7 @@ Load zr36067.o. If it can't autodetect your card, use the card=X insmod · 254 unmodified lines
255255 option with X being the card number as given in the previous section.
256256 To have more than one card, use card=X1[,X2[,X3,[X4[..]]]]
257257
258−To automate this, add the following to your /etc/modprobe.conf:
258+To automate this, add the following to your /etc/modprobe.d/zoran.conf:
259259
260260 options zr36067 card=X1[,X2[,X3[,X4[..]]]]
261261 alias char-major-81-0 zr36067
Documentation/video4linux/bttv/Modules.conf+1−1
@@ -1,4 +1,4 @@
1−# For modern kernels (2.6 or above), this belongs in /etc/modprobe.conf
1+# For modern kernels (2.6 or above), this belongs in /etc/modprobe.d/*.conf
22 # For for 2.4 kernels or earlier, this belongs in /etc/modules.conf.
33
44 # i2c
Documentation/video4linux/meye.txt+1−1
@@ -55,7 +55,7 @@ Module use: · 54 unmodified lines
5555 -----------
5656
5757 In order to automatically load the meye module on use, you can put those lines
58−in your /etc/modprobe.conf file:
58+in your /etc/modprobe.d/meye.conf file:
5959
6060 alias char-major-81 videodev
6161 alias char-major-81-0 meye
Documentation/virtual/kvm/api.txt+258−1
@@ -95,7 +95,7 @@ described as 'basic' will be available. · 94 unmodified lines
9595 Capability: basic
9696 Architectures: all
9797 Type: system ioctl
98−Parameters: none
98+Parameters: machine type identifier (KVM_VM_*)
9999 Returns: a VM fd that can be used to control the new virtual machine.
100100
101101 The new VM has no virtual cpus and no memory. An mmap() of a VM fd
@@ -103,6 +103,11 @@ will access the virtual machine's physical address space; offset zero · 1 unmodified line
103103 corresponds to guest physical address zero. Use of mmap() on a VM fd
104104 is discouraged if userspace memory allocation (KVM_CAP_USER_MEMORY) is
105105 available.
106+You most certainly want to use 0 as machine type.
107+
108+In order to create user controlled virtual machines on S390, check
109+KVM_CAP_S390_UCONTROL and use the flag KVM_VM_S390_UCONTROL as
110+privileged user (CAP_SYS_ADMIN).
106111
107112 4.3 KVM_GET_MSR_INDEX_LIST
108113
@@ -213,6 +218,11 @@ allocation of vcpu ids. For example, if userspace wants · 104 unmodified lines
213218 single-threaded guest vcpus, it should make all vcpu ids be a multiple
214219 of the number of vcpus per vcore.
215220
221+For virtual cpus that have been created with S390 user controlled virtual
222+machines, the resulting vcpu fd can be memory mapped at page offset
223+KVM_S390_SIE_PAGE_OFFSET in order to obtain a memory map of the virtual
224+cpu's hardware control block.
225+
216226 4.8 KVM_GET_DIRTY_LOG (vm ioctl)
217227
218228 Capability: basic
@@ -1159,6 +1169,14 @@ following flags are specified: · 940 unmodified lines
11591169
11601170 /* Depends on KVM_CAP_IOMMU */
11611171 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
1172+/* The following two depend on KVM_CAP_PCI_2_3 */
1173+#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
1174+#define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
1175+
1176+If KVM_DEV_ASSIGN_PCI_2_3 is set, the kernel will manage legacy INTx interrupts
1177+via the PCI-2.3-compliant device-level mask, thus enable IRQ sharing with other
1178+assigned devices or host devices. KVM_DEV_ASSIGN_MASK_INTX specifies the
1179+guest's view on the INTx mask, see KVM_ASSIGN_SET_INTX_MASK for details.
11621180
11631181 The KVM_DEV_ASSIGN_ENABLE_IOMMU flag is a mandatory option to ensure
11641182 isolation of the device. Usages not specifying this flag are deprecated.
@@ -1399,6 +1417,71 @@ The following flags are defined: · 234 unmodified lines
13991417 If datamatch flag is set, the event will be signaled only if the written value
14001418 to the registered address is equal to datamatch in struct kvm_ioeventfd.
14011419
1420+4.59 KVM_DIRTY_TLB
1421+
1422+Capability: KVM_CAP_SW_TLB
1423+Architectures: ppc
1424+Type: vcpu ioctl
1425+Parameters: struct kvm_dirty_tlb (in)
1426+Returns: 0 on success, -1 on error
1427+
1428+struct kvm_dirty_tlb {
1429+ __u64 bitmap;
1430+ __u32 num_dirty;
1431+};
1432+
1433+This must be called whenever userspace has changed an entry in the shared
1434+TLB, prior to calling KVM_RUN on the associated vcpu.
1435+
1436+The "bitmap" field is the userspace address of an array. This array
1437+consists of a number of bits, equal to the total number of TLB entries as
1438+determined by the last successful call to KVM_CONFIG_TLB, rounded up to the
1439+nearest multiple of 64.
1440+
1441+Each bit corresponds to one TLB entry, ordered the same as in the shared TLB
1442+array.
1443+
1444+The array is little-endian: the bit 0 is the least significant bit of the
1445+first byte, bit 8 is the least significant bit of the second byte, etc.
1446+This avoids any complications with differing word sizes.
1447+
1448+The "num_dirty" field is a performance hint for KVM to determine whether it
1449+should skip processing the bitmap and just invalidate everything. It must
1450+be set to the number of set bits in the bitmap.
1451+
1452+4.60 KVM_ASSIGN_SET_INTX_MASK
1453+
1454+Capability: KVM_CAP_PCI_2_3
1455+Architectures: x86
1456+Type: vm ioctl
1457+Parameters: struct kvm_assigned_pci_dev (in)
1458+Returns: 0 on success, -1 on error
1459+
1460+Allows userspace to mask PCI INTx interrupts from the assigned device. The
1461+kernel will not deliver INTx interrupts to the guest between setting and
1462+clearing of KVM_ASSIGN_SET_INTX_MASK via this interface. This enables use of
1463+and emulation of PCI 2.3 INTx disable command register behavior.
1464+
1465+This may be used for both PCI 2.3 devices supporting INTx disable natively and
1466+older devices lacking this support. Userspace is responsible for emulating the
1467+read value of the INTx disable bit in the guest visible PCI command register.
1468+When modifying the INTx disable state, userspace should precede updating the
1469+physical device command register by calling this ioctl to inform the kernel of
1470+the new intended INTx mask state.
1471+
1472+Note that the kernel uses the device INTx disable bit to internally manage the
1473+device interrupt state for PCI 2.3 devices. Reads of this register may
1474+therefore not match the expected value. Writes should always use the guest
1475+intended INTx disable value rather than attempting to read-copy-update the
1476+current physical device state. Races between user and kernel updates to the
1477+INTx disable bit are handled lazily in the kernel. It's possible the device
1478+may generate unintended interrupts, but they will not be injected into the
1479+guest.
1480+
1481+See KVM_ASSIGN_DEV_IRQ for the data structure. The target device is specified
1482+by assigned_dev_id. In the flags field, only KVM_DEV_ASSIGN_MASK_INTX is
1483+evaluated.
1484+
14021485 4.62 KVM_CREATE_SPAPR_TCE
14031486
14041487 Capability: KVM_CAP_SPAPR_TCE
@@ -1491,6 +1574,101 @@ following algorithm: · 86 unmodified lines
14911574 Some guests configure the LINT1 NMI input to cause a panic, aiding in
14921575 debugging.
14931576
1577+4.65 KVM_S390_UCAS_MAP
1578+
1579+Capability: KVM_CAP_S390_UCONTROL
1580+Architectures: s390
1581+Type: vcpu ioctl
1582+Parameters: struct kvm_s390_ucas_mapping (in)
1583+Returns: 0 in case of success
1584+
1585+The parameter is defined like this:
1586+ struct kvm_s390_ucas_mapping {
1587+ __u64 user_addr;
1588+ __u64 vcpu_addr;
1589+ __u64 length;
1590+ };
1591+
1592+This ioctl maps the memory at "user_addr" with the length "length" to
1593+the vcpu's address space starting at "vcpu_addr". All parameters need to
1594+be alligned by 1 megabyte.
1595+
1596+4.66 KVM_S390_UCAS_UNMAP
1597+
1598+Capability: KVM_CAP_S390_UCONTROL
1599+Architectures: s390
1600+Type: vcpu ioctl
1601+Parameters: struct kvm_s390_ucas_mapping (in)
1602+Returns: 0 in case of success
1603+
1604+The parameter is defined like this:
1605+ struct kvm_s390_ucas_mapping {
1606+ __u64 user_addr;
1607+ __u64 vcpu_addr;
1608+ __u64 length;
1609+ };
1610+
1611+This ioctl unmaps the memory in the vcpu's address space starting at
1612+"vcpu_addr" with the length "length". The field "user_addr" is ignored.
1613+All parameters need to be alligned by 1 megabyte.
1614+
1615+4.67 KVM_S390_VCPU_FAULT
1616+
1617+Capability: KVM_CAP_S390_UCONTROL
1618+Architectures: s390
1619+Type: vcpu ioctl
1620+Parameters: vcpu absolute address (in)
1621+Returns: 0 in case of success
1622+
1623+This call creates a page table entry on the virtual cpu's address space
1624+(for user controlled virtual machines) or the virtual machine's address
1625+space (for regular virtual machines). This only works for minor faults,
1626+thus it's recommended to access subject memory page via the user page
1627+table upfront. This is useful to handle validity intercepts for user
1628+controlled virtual machines to fault in the virtual cpu's lowcore pages
1629+prior to calling the KVM_RUN ioctl.
1630+
1631+4.68 KVM_SET_ONE_REG
1632+
1633+Capability: KVM_CAP_ONE_REG
1634+Architectures: all
1635+Type: vcpu ioctl
1636+Parameters: struct kvm_one_reg (in)
1637+Returns: 0 on success, negative value on failure
1638+
1639+struct kvm_one_reg {
1640+ __u64 id;
1641+ __u64 addr;
1642+};
1643+
1644+Using this ioctl, a single vcpu register can be set to a specific value
1645+defined by user space with the passed in struct kvm_one_reg, where id
1646+refers to the register identifier as described below and addr is a pointer
1647+to a variable with the respective size. There can be architecture agnostic
1648+and architecture specific registers. Each have their own range of operation
1649+and their own constants and width. To keep track of the implemented
1650+registers, find a list below:
1651+
1652+ Arch | Register | Width (bits)
1653+ | |
1654+ PPC | KVM_REG_PPC_HIOR | 64
1655+
1656+4.69 KVM_GET_ONE_REG
1657+
1658+Capability: KVM_CAP_ONE_REG
1659+Architectures: all
1660+Type: vcpu ioctl
1661+Parameters: struct kvm_one_reg (in and out)
1662+Returns: 0 on success, negative value on failure
1663+
1664+This ioctl allows to receive the value of a single register implemented
1665+in a vcpu. The register to read is indicated by the "id" field of the
1666+kvm_one_reg struct passed in. On success, the register value can be found
1667+at the memory location pointed to by "addr".
1668+
1669+The list of registers accessible using this interface is identical to the
1670+list in 4.64.
1671+
14941672 5. The kvm_run structure
14951673
14961674 Application code obtains a pointer to the kvm_run structure by
@@ -1651,6 +1829,20 @@ s390 specific. · 154 unmodified lines
16511829
16521830 s390 specific.
16531831
1832+ /* KVM_EXIT_S390_UCONTROL */
1833+ struct {
1834+ __u64 trans_exc_code;
1835+ __u32 pgm_code;
1836+ } s390_ucontrol;
1837+
1838+s390 specific. A page fault has occurred for a user controlled virtual
1839+machine (KVM_VM_S390_UNCONTROL) on it's host page table that cannot be
1840+resolved by the kernel.
1841+The program code and the translation exception code that were placed
1842+in the cpu's lowcore are presented here as defined by the z Architecture
1843+Principles of Operation Book in the Chapter for Dynamic Address Translation
1844+(DAT)
1845+
16541846 /* KVM_EXIT_DCR */
16551847 struct {
16561848 __u32 dcrn;
@@ -1693,6 +1885,29 @@ developer registration required to access it). · 36 unmodified lines
16931885 /* Fix the size of the union. */
16941886 char padding[256];
16951887 };
1888+
1889+ /*
1890+ * shared registers between kvm and userspace.
1891+ * kvm_valid_regs specifies the register classes set by the host
1892+ * kvm_dirty_regs specified the register classes dirtied by userspace
1893+ * struct kvm_sync_regs is architecture specific, as well as the
1894+ * bits for kvm_valid_regs and kvm_dirty_regs
1895+ */
1896+ __u64 kvm_valid_regs;
1897+ __u64 kvm_dirty_regs;
1898+ union {
1899+ struct kvm_sync_regs regs;
1900+ char padding[1024];
1901+ } s;
1902+
1903+If KVM_CAP_SYNC_REGS is defined, these fields allow userspace to access
1904+certain guest registers without having to call SET/GET_*REGS. Thus we can
1905+avoid some system call overhead if userspace has to handle the exit.
1906+Userspace can query the validity of the structure by checking
1907+kvm_valid_regs for specific bits. These bits are architecture specific
1908+and usually define the validity of a groups of registers. (e.g. one bit
1909+ for general purpose registers)
1910+
16961911 };
16971912
16981913 6. Capabilities that can be enabled
@@ -1741,3 +1956,45 @@ HTAB address part of SDR1 contains an HVA instead of a GPA, as PAPR keeps the · 42 unmodified lines
17411956 HTAB invisible to the guest.
17421957
17431958 When this capability is enabled, KVM_EXIT_PAPR_HCALL can occur.
1959+
1960+6.3 KVM_CAP_SW_TLB
1961+
1962+Architectures: ppc
1963+Parameters: args[0] is the address of a struct kvm_config_tlb
1964+Returns: 0 on success; -1 on error
1965+
1966+struct kvm_config_tlb {
1967+ __u64 params;
1968+ __u64 array;
1969+ __u32 mmu_type;
1970+ __u32 array_len;
1971+};
1972+
1973+Configures the virtual CPU's TLB array, establishing a shared memory area
1974+between userspace and KVM. The "params" and "array" fields are userspace
1975+addresses of mmu-type-specific data structures. The "array_len" field is an
1976+safety mechanism, and should be set to the size in bytes of the memory that
1977+userspace has reserved for the array. It must be at least the size dictated
1978+by "mmu_type" and "params".
1979+
1980+While KVM_RUN is active, the shared region is under control of KVM. Its
1981+contents are undefined, and any modification by userspace results in
1982+boundedly undefined behavior.
1983+
1984+On return from KVM_RUN, the shared region will reflect the current state of
1985+the guest's TLB. If userspace makes any changes, it must call KVM_DIRTY_TLB
1986+to tell KVM which entries have been changed, prior to calling KVM_RUN again
1987+on this vcpu.
1988+
1989+For mmu types KVM_MMU_FSL_BOOKE_NOHV and KVM_MMU_FSL_BOOKE_HV:
1990+ - The "params" field is of type "struct kvm_book3e_206_tlb_params".
1991+ - The "array" field points to an array of type "struct
1992+ kvm_book3e_206_tlb_entry".
1993+ - The array consists of all entries in the first TLB, followed by all
1994+ entries in the second TLB.
1995+ - Within a TLB, entries are ordered first by increasing set number. Within a
1996+ set, entries are ordered by way (increasing ESEL).
1997+ - The hash for determining set number in TLB0 is: (MAS2 >> 12) & (num_sets - 1)
1998+ where "num_sets" is the tlb_sizes[] value divided by the tlb_ways[] value.
1999+ - The tsize field of mas1 shall be set to 4K on TLB0, even though the
2000+ hardware ignores this value for TLB0.
Documentation/virtual/kvm/ppc-pv.txt+2−22
@@ -81,28 +81,8 @@ additional registers to the magic page. If you add fields to the magic page, · 80 unmodified lines
8181 also define a new hypercall feature to indicate that the host can give you more
8282 registers. Only if the host supports the additional features, make use of them.
8383
84−The magic page has the following layout as described in
85−arch/powerpc/include/asm/kvm_para.h:
86−
87−struct kvm_vcpu_arch_shared {
88− __u64 scratch1;
89− __u64 scratch2;
90− __u64 scratch3;
91− __u64 critical; /* Guest may not get interrupts if == r1 */
92− __u64 sprg0;
93− __u64 sprg1;
94− __u64 sprg2;
95− __u64 sprg3;
96− __u64 srr0;
97− __u64 srr1;
98− __u64 dar;
99− __u64 msr;
100− __u32 dsisr;
101− __u32 int_pending; /* Tells the guest if we have an interrupt */
102−};
103−
104−Additions to the page must only occur at the end. Struct fields are always 32
105−or 64 bit aligned, depending on them being 32 or 64 bit wide respectively.
84+The magic page layout is described by struct kvm_vcpu_arch_shared
85+in arch/powerpc/include/asm/kvm_para.h.
10686
10787 Magic page features
10888 ===================
Documentation/vm/Makefile+0−8
@@ -1,8 +0,0 @@
1−# kbuild trick to avoid linker error. Can be omitted if a module is built.
2−obj- := dummy.o
3−
4−# List of programs to build
5−hostprogs-y := page-types hugepage-mmap hugepage-shm map_hugetlb
6−
7−# Tell kbuild to always build the programs
8−always := $(hostprogs-y)
Documentation/watchdog/00-INDEX+0−19
@@ -1,19 +0,0 @@
1−00-INDEX
2− - this file.
3−convert_drivers_to_kernel_api.txt
4− - how-to for converting old watchdog drivers to the new kernel API.
5−hpwdt.txt
6− - information on the HP iLO2 NMI watchdog
7−pcwd-watchdog.txt
8− - documentation for Berkshire Products PC Watchdog ISA cards.
9−src/
10− - directory holding watchdog related example programs.
11−watchdog-api.txt
12− - description of the Linux Watchdog driver API.
13−watchdog-kernel-api.txt
14− - description of the Linux WatchDog Timer Driver Core kernel API.
15−watchdog-parameters.txt
16− - information on driver parameters (for drivers other than
17− the ones that have driver-specific files here)
18−wdt.txt
19− - description of the Watchdog Timer Interfaces for Linux.
Documentation/watchdog/convert_drivers_to_kernel_api.txt+4−0
@@ -59,6 +59,10 @@ Here is a overview of the functions and probably needed actions: · 58 unmodified lines
5959 WDIOC_GETTIMEOUT:
6060 No preparations needed
6161
62+ WDIOC_GETTIMELEFT:
63+ It needs get_timeleft() callback to be defined. Otherwise it
64+ will return EOPNOTSUPP
65+
6266 Other IOCTLs can be served using the ioctl-callback. Note that this is mainly
6367 intended for porting old drivers; new drivers should not invent private IOCTLs.
6468 Private IOCTLs are processed first. When the callback returns with
Documentation/watchdog/watchdog-kernel-api.txt+7−4
@@ -1,6 +1,6 @@
11 The Linux WatchDog Timer Driver Core kernel API.
22 ===============================================
3−Last reviewed: 29-Nov-2011
3+Last reviewed: 16-Mar-2012
44
55 Wim Van Sebroeck <wim@iguana.be>
66
@@ -77,6 +77,7 @@ struct watchdog_ops { · 70 unmodified lines
7777 int (*ping)(struct watchdog_device *);
7878 unsigned int (*status)(struct watchdog_device *);
7979 int (*set_timeout)(struct watchdog_device *, unsigned int);
80+ unsigned int (*get_timeleft)(struct watchdog_device *);
8081 long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long);
8182 };
8283
@@ -117,11 +118,13 @@ they are supported. These optional routines/operations are: · 34 unmodified lines
117118 status of the device is reported with watchdog WDIOF_* status flags/bits.
118119 * set_timeout: this routine checks and changes the timeout of the watchdog
119120 timer device. It returns 0 on success, -EINVAL for "parameter out of range"
120− and -EIO for "could not write value to the watchdog". On success the timeout
121− value of the watchdog_device will be changed to the value that was just used
122− to re-program the watchdog timer device.
121+ and -EIO for "could not write value to the watchdog". On success this
122+ routine should set the timeout value of the watchdog_device to the
123+ achieved timeout value (which may be different from the requested one
124+ because the watchdog does not necessarily has a 1 second resolution).
123125 (Note: the WDIOF_SETTIMEOUT needs to be set in the options field of the
124126 watchdog's info structure).
127+* get_timeleft: this routines returns the time that's left before a reset.
125128 * ioctl: if this routine is present then it will be called first before we do
126129 our own internal ioctl call handling. This routine should return -ENOIOCTLCMD
127130 if a command is not supported. The parameters that are passed to the ioctl
MAINTAINERS+78−54
@@ -228,7 +228,7 @@ M: Len Brown <lenb@kernel.org> · 227 unmodified lines
228228 L: linux-acpi@vger.kernel.org
229229 W: http://www.lesswatts.org/projects/acpi/
230230 Q: http://patchwork.kernel.org/project/linux-acpi/list/
231−T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git
231+T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
232232 S: Supported
233233 F: drivers/acpi/
234234 F: drivers/pnp/pnpacpi/
@@ -504,7 +504,7 @@ F: arch/x86/include/asm/geode.h · 269 unmodified lines
504504 AMD IOMMU (AMD-VI)
505505 M: Joerg Roedel <joerg.roedel@amd.com>
506506 L: iommu@lists.linux-foundation.org
507−T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu.git
507+T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
508508 S: Supported
509509 F: drivers/iommu/amd_iommu*.[ch]
510510 F: include/linux/amd-iommu.h
@@ -786,7 +786,6 @@ M: Sascha Hauer <kernel@pengutronix.de> · 275 unmodified lines
786786 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
787787 S: Maintained
788788 T: git git://git.pengutronix.de/git/imx/linux-2.6.git
789−F: arch/arm/mach-mx*/
790789 F: arch/arm/mach-imx/
791790 F: arch/arm/plat-mxc/
792791
@@ -816,9 +815,12 @@ S: Maintained · 23 unmodified lines
816815
817816 ARM/H4700 (HP IPAQ HX4700) MACHINE SUPPORT
818817 M: Philipp Zabel <philipp.zabel@gmail.com>
818+M: Paul Parsons <lost.distance@yahoo.com>
819+L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
819820 S: Maintained
820821 F: arch/arm/mach-pxa/hx4700.c
821822 F: arch/arm/mach-pxa/include/mach/hx4700.h
823+F: sound/soc/pxa/hx4700.c
822824
823825 ARM/HP JORNADA 7XX MACHINE SUPPORT
824826 M: Kristoffer Ericson <kristoffer.ericson@gmail.com>
@@ -1249,7 +1251,6 @@ ATHEROS ATH5K WIRELESS DRIVER · 424 unmodified lines
12491251 M: Jiri Slaby <jirislaby@gmail.com>
12501252 M: Nick Kossifidis <mickflemm@gmail.com>
12511253 M: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
1252−M: Bob Copeland <me@bobcopeland.com>
12531254 L: linux-wireless@vger.kernel.org
12541255 L: ath5k-devel@lists.ath5k.org
12551256 W: http://wireless.kernel.org/en/users/Drivers/ath5k
@@ -1520,8 +1521,8 @@ M: Gustavo Padovan <gustavo@padovan.org> · 264 unmodified lines
15201521 M: Johan Hedberg <johan.hedberg@gmail.com>
15211522 L: linux-bluetooth@vger.kernel.org
15221523 W: http://www.bluez.org/
1523−T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git
1524−T: git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git
1524+T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
1525+T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
15251526 S: Maintained
15261527 F: drivers/bluetooth/
15271528
@@ -1531,8 +1532,8 @@ M: Gustavo Padovan <gustavo@padovan.org> · 3 unmodified lines
15311532 M: Johan Hedberg <johan.hedberg@gmail.com>
15321533 L: linux-bluetooth@vger.kernel.org
15331534 W: http://www.bluez.org/
1534−T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git
1535−T: git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git
1535+T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
1536+T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
15361537 S: Maintained
15371538 F: net/bluetooth/
15381539 F: include/net/bluetooth/
@@ -1938,7 +1939,7 @@ F: drivers/connector/ · 399 unmodified lines
19381939
19391940 CONTROL GROUPS (CGROUPS)
19401941 M: Tejun Heo <tj@kernel.org>
1941−M: Li Zefan <lizf@cn.fujitsu.com>
1942+M: Li Zefan <lizefan@huawei.com>
19421943 L: containers@lists.linux-foundation.org
19431944 L: cgroups@vger.kernel.org
19441945 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
@@ -2223,13 +2224,16 @@ W: http://lanana.org/docs/device-list/index.html · 278 unmodified lines
22232224 S: Maintained
22242225
22252226 DEVICE-MAPPER (LVM)
2226−P: Alasdair Kergon
2227+M: Alasdair Kergon <agk@redhat.com>
2228+M: dm-devel@redhat.com
22272229 L: dm-devel@redhat.com
22282230 W: http://sources.redhat.com/dm
22292231 Q: http://patchwork.kernel.org/project/dm-devel/list/
2232+T: quilt http://people.redhat.com/agk/patches/linux/editing/
22302233 S: Maintained
22312234 F: Documentation/device-mapper/
22322235 F: drivers/md/dm*
2236+F: drivers/md/persistent-data/
22332237 F: include/linux/device-mapper.h
22342238 F: include/linux/dm-*.h
22352239
@@ -2446,17 +2450,17 @@ F: fs/ecryptfs/ · 210 unmodified lines
24462450
24472451 EDAC-CORE
24482452 M: Doug Thompson <dougthompson@xmission.com>
2449−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2453+L: linux-edac@vger.kernel.org
24502454 W: bluesmoke.sourceforge.net
24512455 S: Supported
24522456 F: Documentation/edac.txt
2453−F: drivers/edac/edac_*
2457+F: drivers/edac/
24542458 F: include/linux/edac.h
24552459
24562460 EDAC-AMD64
24572461 M: Doug Thompson <dougthompson@xmission.com>
24582462 M: Borislav Petkov <borislav.petkov@amd.com>
2459−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2463+L: linux-edac@vger.kernel.org
24602464 W: bluesmoke.sourceforge.net
24612465 S: Supported
24622466 F: drivers/edac/amd64_edac*
@@ -2464,35 +2468,35 @@ F: drivers/edac/amd64_edac* · 1 unmodified line
24642468 EDAC-E752X
24652469 M: Mark Gross <mark.gross@intel.com>
24662470 M: Doug Thompson <dougthompson@xmission.com>
2467−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2471+L: linux-edac@vger.kernel.org
24682472 W: bluesmoke.sourceforge.net
24692473 S: Maintained
24702474 F: drivers/edac/e752x_edac.c
24712475
24722476 EDAC-E7XXX
24732477 M: Doug Thompson <dougthompson@xmission.com>
2474−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2478+L: linux-edac@vger.kernel.org
24752479 W: bluesmoke.sourceforge.net
24762480 S: Maintained
24772481 F: drivers/edac/e7xxx_edac.c
24782482
24792483 EDAC-I82443BXGX
24802484 M: Tim Small <tim@buttersideup.com>
2481−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2485+L: linux-edac@vger.kernel.org
24822486 W: bluesmoke.sourceforge.net
24832487 S: Maintained
24842488 F: drivers/edac/i82443bxgx_edac.c
24852489
24862490 EDAC-I3000
24872491 M: Jason Uhlenkott <juhlenko@akamai.com>
2488−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2492+L: linux-edac@vger.kernel.org
24892493 W: bluesmoke.sourceforge.net
24902494 S: Maintained
24912495 F: drivers/edac/i3000_edac.c
24922496
24932497 EDAC-I5000
24942498 M: Doug Thompson <dougthompson@xmission.com>
2495−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2499+L: linux-edac@vger.kernel.org
24962500 W: bluesmoke.sourceforge.net
24972501 S: Maintained
24982502 F: drivers/edac/i5000_edac.c
@@ -2521,21 +2525,21 @@ F: drivers/edac/i7core_edac.c · 22 unmodified lines
25212525 EDAC-I82975X
25222526 M: Ranganathan Desikan <ravi@jetztechnologies.com>
25232527 M: "Arvind R." <arvino55@gmail.com>
2524−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2528+L: linux-edac@vger.kernel.org
25252529 W: bluesmoke.sourceforge.net
25262530 S: Maintained
25272531 F: drivers/edac/i82975x_edac.c
25282532
25292533 EDAC-PASEMI
25302534 M: Egor Martovetsky <egor@pasemi.com>
2531−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2535+L: linux-edac@vger.kernel.org
25322536 W: bluesmoke.sourceforge.net
25332537 S: Maintained
25342538 F: drivers/edac/pasemi_edac.c
25352539
25362540 EDAC-R82600
25372541 M: Tim Small <tim@buttersideup.com>
2538−L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
2542+L: linux-edac@vger.kernel.org
25392543 W: bluesmoke.sourceforge.net
25402544 S: Maintained
25412545 F: drivers/edac/r82600_edac.c
@@ -3559,17 +3563,13 @@ L: linux-pm@vger.kernel.org · 1017 unmodified lines
35593563 S: Supported
35603564 F: arch/x86/platform/mrst/pmu.*
35613565
3562−INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
3566+INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
3567+M: Stanislav Yakovlev <stas.yakovlev@gmail.com>
35633568 L: linux-wireless@vger.kernel.org
3564−S: Orphan
3569+S: Maintained
35653570 F: Documentation/networking/README.ipw2100
3566−F: drivers/net/wireless/ipw2x00/ipw2100.*
3567−
3568−INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT
3569−L: linux-wireless@vger.kernel.org
3570−S: Orphan
35713571 F: Documentation/networking/README.ipw2200
3572−F: drivers/net/wireless/ipw2x00/ipw2200.*
3572+F: drivers/net/wireless/ipw2x00/
35733573
35743574 INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
35753575 M: Joseph Cihula <joseph.cihula@intel.com>
@@ -4316,6 +4316,13 @@ W: http://www.kernel.org/doc/man-pages · 740 unmodified lines
43164316 L: linux-man@vger.kernel.org
43174317 S: Maintained
43184318
4319+MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
4320+M: Mirko Lindner <mlindner@marvell.com>
4321+M: Stephen Hemminger <shemminger@vyatta.com>
4322+L: netdev@vger.kernel.org
4323+S: Maintained
4324+F: drivers/net/ethernet/marvell/sk*
4325+
43194326 MARVELL LIBERTAS WIRELESS DRIVER
43204327 M: Dan Williams <dcbw@redhat.com>
43214328 L: libertas-dev@lists.infradead.org
@@ -4346,12 +4353,6 @@ M: Nicolas Pitre <nico@fluxnic.net> · 24 unmodified lines
43464353 S: Odd Fixes
43474354 F: drivers/mmc/host/mvsdio.*
43484355
4349−MARVELL YUKON / SYSKONNECT DRIVER
4350−M: Mirko Lindner <mlindner@syskonnect.de>
4351−M: Ralph Roesler <rroesler@syskonnect.de>
4352−W: http://www.syskonnect.com
4353−S: Supported
4354−
43554356 MATROX FRAMEBUFFER DRIVER
43564357 L: linux-fbdev@vger.kernel.org
43574358 S: Orphan
@@ -4539,8 +4540,7 @@ S: Supported · 181 unmodified lines
45394540 F: drivers/net/ethernet/myricom/myri10ge/
45404541
45414542 NATSEMI ETHERNET DRIVER (DP8381x)
4542−M: Tim Hockin <thockin@hockin.org>
4543−S: Maintained
4543+S: Orphan
45444544 F: drivers/net/ethernet/natsemi/natsemi.c
45454545
45464546 NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER
@@ -4809,6 +4809,7 @@ F: arch/arm/mach-omap2/clockdomain2xxx_3xxx.c · 262 unmodified lines
48094809 F: arch/arm/mach-omap2/clockdomain44xx.c
48104810
48114811 OMAP AUDIO SUPPORT
4812+M: Peter Ujfalusi <peter.ujfalusi@ti.com>
48124813 M: Jarkko Nikula <jarkko.nikula@bitmer.com>
48134814 L: alsa-devel@alsa-project.org (subscribers-only)
48144815 L: linux-omap@vger.kernel.org
@@ -5123,6 +5124,11 @@ F: drivers/i2c/busses/i2c-pca-* · 308 unmodified lines
51235124 F: include/linux/i2c-algo-pca.h
51245125 F: include/linux/i2c-pca-platform.h
51255126
5127+PCDP - PRIMARY CONSOLE AND DEBUG PORT
5128+M: Khalid Aziz <khalid.aziz@hp.com>
5129+S: Maintained
5130+F: drivers/firmware/pcdp.*
5131+
51265132 PCI ERROR RECOVERY
51275133 M: Linas Vepstas <linasvepstas@gmail.com>
51285134 L: linux-pci@vger.kernel.org
@@ -5131,7 +5137,7 @@ F: Documentation/PCI/pci-error-recovery.txt · 2 unmodified lines
51315137 F: Documentation/powerpc/eeh-pci-error-recovery.txt
51325138
51335139 PCI SUBSYSTEM
5134−M: Jesse Barnes <jbarnes@virtuousgeek.org>
5140+M: Bjorn Helgaas <bhelgaas@google.com>
51355141 L: linux-pci@vger.kernel.org
51365142 Q: http://patchwork.kernel.org/project/linux-pci/list/
51375143 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci.git
@@ -5141,7 +5147,7 @@ F: drivers/pci/ · 3 unmodified lines
51415147 F: include/linux/pci*
51425148
51435149 PCI HOTPLUG
5144−M: Jesse Barnes <jbarnes@virtuousgeek.org>
5150+M: Bjorn Helgaas <bhelgaas@google.com>
51455151 L: linux-pci@vger.kernel.org
51465152 S: Supported
51475153 F: drivers/pci/hotplug
@@ -5187,7 +5193,7 @@ F: kernel/delayacct.c · 39 unmodified lines
51875193 PERFORMANCE EVENTS SUBSYSTEM
51885194 M: Peter Zijlstra <a.p.zijlstra@chello.nl>
51895195 M: Paul Mackerras <paulus@samba.org>
5190−M: Ingo Molnar <mingo@elte.hu>
5196+M: Ingo Molnar <mingo@redhat.com>
51915197 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
51925198 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
51935199 S: Supported
@@ -5427,7 +5433,7 @@ F: drivers/media/video/pvrusb2/ · 233 unmodified lines
54275433 PXA2xx/PXA3xx SUPPORT
54285434 M: Eric Miao <eric.y.miao@gmail.com>
54295435 M: Russell King <linux@arm.linux.org.uk>
5430−M: Haojian Zhuang <haojian.zhuang@marvell.com>
5436+M: Haojian Zhuang <haojian.zhuang@gmail.com>
54315437 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
54325438 T: git git://github.com/hzhuang1/linux.git
54335439 T: git git://git.linaro.org/people/ycmiao/pxa-linux.git
@@ -5442,7 +5448,7 @@ F: sound/soc/pxa · 8 unmodified lines
54425448
54435449 MMP SUPPORT
54445450 M: Eric Miao <eric.y.miao@gmail.com>
5445−M: Haojian Zhuang <haojian.zhuang@marvell.com>
5451+M: Haojian Zhuang <haojian.zhuang@gmail.com>
54465452 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
54475453 T: git git://github.com/hzhuang1/linux.git
54485454 T: git git://git.linaro.org/people/ycmiao/pxa-linux.git
@@ -5639,6 +5645,13 @@ S: Supported · 190 unmodified lines
56395645 F: drivers/base/regmap/
56405646 F: include/linux/regmap.h
56415647
5648+REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM
5649+M: Ohad Ben-Cohen <ohad@wizery.com>
5650+S: Maintained
5651+F: drivers/remoteproc/
5652+F: Documentation/remoteproc.txt
5653+F: include/linux/remoteproc.h
5654+
56425655 RFKILL
56435656 M: Johannes Berg <johannes@sipsolutions.net>
56445657 L: linux-wireless@vger.kernel.org
@@ -5771,6 +5784,12 @@ F: drivers/media/common/saa7146* · 126 unmodified lines
57715784 F: drivers/media/video/*7146*
57725785 F: include/media/*7146*
57735786
5787+SAMSUNG LAPTOP DRIVER
5788+M: Corentin Chary <corentincj@iksaif.net>
5789+L: platform-driver-x86@vger.kernel.org
5790+S: Maintained
5791+F: drivers/platform/x86/samsung-laptop.c
5792+
57745793 SAMSUNG AUDIO (ASoC) DRIVERS
57755794 M: Sangbeom Kim <sbkim73@samsung.com>
57765795 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
@@ -5822,7 +5841,7 @@ S: Maintained · 45 unmodified lines
58225841 F: drivers/watchdog/sc1200wdt.c
58235842
58245843 SCHEDULER
5825−M: Ingo Molnar <mingo@elte.hu>
5844+M: Ingo Molnar <mingo@redhat.com>
58265845 M: Peter Zijlstra <peterz@infradead.org>
58275846 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
58285847 S: Maintained
@@ -6069,7 +6088,8 @@ F: arch/arm/mach-s3c2410/bast-irq.c · 240 unmodified lines
60696088 TI DAVINCI MACHINE SUPPORT
60706089 M: Sekhar Nori <nsekhar@ti.com>
60716090 M: Kevin Hilman <khilman@ti.com>
6072−L: davinci-linux-open-source@linux.davincidsp.com (subscribers-only)
6091+L: davinci-linux-open-source@linux.davincidsp.com (moderated for non-subscribers)
6092+T: git git://gitorious.org/linux-davinci/linux-davinci.git
60736093 Q: http://patchwork.kernel.org/project/linux-davinci/list/
60746094 S: Supported
60756095 F: arch/arm/mach-davinci
@@ -6109,12 +6129,6 @@ W: http://www.winischhofer.at/linuxsisusbvga.shtml · 33 unmodified lines
61096129 S: Maintained
61106130 F: drivers/usb/misc/sisusbvga/
61116131
6112−SKGE, SKY2 10/100/1000 GIGABIT ETHERNET DRIVERS
6113−M: Stephen Hemminger <shemminger@vyatta.com>
6114−L: netdev@vger.kernel.org
6115−S: Maintained
6116−F: drivers/net/ethernet/marvell/sk*
6117−
61186132 SLAB ALLOCATOR
61196133 M: Christoph Lameter <cl@linux-foundation.org>
61206134 M: Pekka Enberg <penberg@kernel.org>
@@ -6280,6 +6294,15 @@ F: drivers/tty/serial/sunsu.c · 159 unmodified lines
62806294 F: drivers/tty/serial/sunzilog.c
62816295 F: drivers/tty/serial/sunzilog.h
62826296
6297+SPARSE CHECKER
6298+M: "Christopher Li" <sparse@chrisli.org>
6299+L: linux-sparse@vger.kernel.org
6300+W: https://sparse.wiki.kernel.org/
6301+T: git git://git.kernel.org/pub/scm/devel/sparse/sparse.git
6302+T: git git://git.kernel.org/pub/scm/devel/sparse/chrisl/sparse.git
6303+S: Maintained
6304+F: include/linux/compiler.h
6305+
62836306 SPEAR PLATFORM SUPPORT
62846307 M: Viresh Kumar <viresh.kumar@st.com>
62856308 L: spear-devel@list.st.com
@@ -6455,6 +6478,7 @@ S: Odd Fixes · 169 unmodified lines
64556478 F: drivers/staging/olpc_dcon/
64566479
64576480 STAGING - OZMO DEVICES USB OVER WIFI DRIVER
6481+M: Rupesh Gujare <rgujare@ozmodevices.com>
64586482 M: Chris Kelly <ckelly@ozmodevices.com>
64596483 S: Maintained
64606484 F: drivers/staging/ozwpan/
@@ -6612,9 +6636,10 @@ F: include/linux/if_team.h · 151 unmodified lines
66126636 TEGRA SUPPORT
66136637 M: Colin Cross <ccross@android.com>
66146638 M: Olof Johansson <olof@lixom.net>
6615−M: Stephen Warren <swarren@nvidia.com>
6639+M: Stephen Warren <swarren@wwwdotorg.org>
66166640 L: linux-tegra@vger.kernel.org
6617−T: git git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git
6641+Q: http://patchwork.ozlabs.org/project/linux-tegra/list/
6642+T: git git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git
66186643 S: Supported
66196644 F: arch/arm/mach-tegra
66206645
@@ -7449,8 +7474,7 @@ F: include/linux/wm97xx.h · 828 unmodified lines
74497474
74507475 WOLFSON MICROELECTRONICS DRIVERS
74517476 M: Mark Brown <broonie@opensource.wolfsonmicro.com>
7452−M: Ian Lartey <ian@opensource.wolfsonmicro.com>
7453−M: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
7477+L: patches@opensource.wolfsonmicro.com
74547478 T: git git://opensource.wolfsonmicro.com/linux-2.6-asoc
74557479 T: git git://opensource.wolfsonmicro.com/linux-2.6-audioplus
74567480 W: http://opensource.wolfsonmicro.com/content/linux-drivers-wolfson-devices
Makefile+3−3
@@ -1,7 +1,7 @@
11 VERSION = 3
2−PATCHLEVEL = 3
2+PATCHLEVEL = 4
33 SUBLEVEL = 0
4−EXTRAVERSION =
4+EXTRAVERSION = -rc3
55 NAME = Saber-toothed Squirrel
66
77 # *DOCUMENTATION*
@@ -1170,7 +1170,7 @@ MRPROPER_FILES += .config .config.old .version .old_version \ · 1162 unmodified lines
11701170 #
11711171 clean: rm-dirs := $(CLEAN_DIRS)
11721172 clean: rm-files := $(CLEAN_FILES)
1173−clean-dirs := $(addprefix _clean_, . $(vmlinux-alldirs) Documentation)
1173+clean-dirs := $(addprefix _clean_, . $(vmlinux-alldirs) Documentation samples)
11741174
11751175 PHONY += $(clean-dirs) clean archclean
11761176 $(clean-dirs):
arch/Kconfig+3−0
@@ -213,4 +213,7 @@ config HAVE_CMPXCHG_LOCAL · 212 unmodified lines
213213 config HAVE_CMPXCHG_DOUBLE
214214 bool
215215
216+config ARCH_WANT_OLD_COMPAT_IPC
217+ bool
218+
216219 source "kernel/gcov/Kconfig"
arch/alpha/boot/bootp.c+0−1
@@ -13,7 +13,6 @@ · 12 unmodified lines
1313 #include <generated/utsrelease.h>
1414 #include <linux/mm.h>
1515
16−#include <asm/system.h>
1716 #include <asm/console.h>
1817 #include <asm/hwrpb.h>
1918 #include <asm/pgtable.h>
arch/alpha/boot/bootpz.c+0−1
@@ -15,7 +15,6 @@ · 14 unmodified lines
1515 #include <generated/utsrelease.h>
1616 #include <linux/mm.h>
1717
18−#include <asm/system.h>
1918 #include <asm/console.h>
2019 #include <asm/hwrpb.h>
2120 #include <asm/pgtable.h>
arch/alpha/boot/head.S+0−1
@@ -4,7 +4,6 @@ · 3 unmodified lines
44 * initial bootloader stuff..
55 */
66
7−#include <asm/system.h>
87
98 .set noreorder
109 .globl __start
arch/alpha/boot/main.c+0−1
@@ -11,7 +11,6 @@ · 10 unmodified lines
1111 #include <generated/utsrelease.h>
1212 #include <linux/mm.h>
1313
14−#include <asm/system.h>
1514 #include <asm/console.h>
1615 #include <asm/hwrpb.h>
1716 #include <asm/pgtable.h>
arch/alpha/include/asm/atomic.h+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
33
44 #include <linux/types.h>
55 #include <asm/barrier.h>
6−#include <asm/system.h>
6+#include <asm/cmpxchg.h>
77
88 /*
99 * Atomic operations that C can't guarantee us. Useful for
arch/alpha/include/asm/auxvec.h+2−0
@@ -21,4 +21,6 @@ · 20 unmodified lines
2121 #define AT_L2_CACHESHAPE 36
2222 #define AT_L3_CACHESHAPE 37
2323
24+#define AT_VECTOR_SIZE_ARCH 4 /* entries in ARCH_DLINFO */
25+
2426 #endif /* __ASM_ALPHA_AUXVEC_H */
arch/alpha/include/asm/cmpxchg.h+71−0
@@ -0,0 +1,71 @@
1+#ifndef _ALPHA_CMPXCHG_H
2+#define _ALPHA_CMPXCHG_H
3+
4+/*
5+ * Atomic exchange routines.
6+ */
7+
8+#define __ASM__MB
9+#define ____xchg(type, args...) __xchg ## type ## _local(args)
10+#define ____cmpxchg(type, args...) __cmpxchg ## type ## _local(args)
11+#include <asm/xchg.h>
12+
13+#define xchg_local(ptr, x) \
14+({ \
15+ __typeof__(*(ptr)) _x_ = (x); \
16+ (__typeof__(*(ptr))) __xchg_local((ptr), (unsigned long)_x_, \
17+ sizeof(*(ptr))); \
18+})
19+
20+#define cmpxchg_local(ptr, o, n) \
21+({ \
22+ __typeof__(*(ptr)) _o_ = (o); \
23+ __typeof__(*(ptr)) _n_ = (n); \
24+ (__typeof__(*(ptr))) __cmpxchg_local((ptr), (unsigned long)_o_, \
25+ (unsigned long)_n_, \
26+ sizeof(*(ptr))); \
27+})
28+
29+#define cmpxchg64_local(ptr, o, n) \
30+({ \
31+ BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
32+ cmpxchg_local((ptr), (o), (n)); \
33+})
34+
35+#ifdef CONFIG_SMP
36+#undef __ASM__MB
37+#define __ASM__MB "\tmb\n"
38+#endif
39+#undef ____xchg
40+#undef ____cmpxchg
41+#define ____xchg(type, args...) __xchg ##type(args)
42+#define ____cmpxchg(type, args...) __cmpxchg ##type(args)
43+#include <asm/xchg.h>
44+
45+#define xchg(ptr, x) \
46+({ \
47+ __typeof__(*(ptr)) _x_ = (x); \
48+ (__typeof__(*(ptr))) __xchg((ptr), (unsigned long)_x_, \
49+ sizeof(*(ptr))); \
50+})
51+
52+#define cmpxchg(ptr, o, n) \
53+({ \
54+ __typeof__(*(ptr)) _o_ = (o); \
55+ __typeof__(*(ptr)) _n_ = (n); \
56+ (__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long)_o_, \
57+ (unsigned long)_n_, sizeof(*(ptr)));\
58+})
59+
60+#define cmpxchg64(ptr, o, n) \
61+({ \
62+ BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
63+ cmpxchg((ptr), (o), (n)); \
64+})
65+
66+#undef __ASM__MB
67+#undef ____cmpxchg
68+
69+#define __HAVE_ARCH_CMPXCHG 1
70+
71+#endif /* _ALPHA_CMPXCHG_H */
arch/alpha/include/asm/core_lca.h+1−1
@@ -1,8 +1,8 @@
11 #ifndef __ALPHA_LCA__H__
22 #define __ALPHA_LCA__H__
33
4−#include <asm/system.h>
54 #include <asm/compiler.h>
5+#include <asm/mce.h>
66
77 /*
88 * Low Cost Alpha (LCA) definitions (these apply to 21066 and 21068,
arch/alpha/include/asm/core_mcpcia.h+1−0
@@ -7,6 +7,7 @@ · 6 unmodified lines
77
88 #include <linux/types.h>
99 #include <asm/compiler.h>
10+#include <asm/mce.h>
1011
1112 /*
1213 * MCPCIA is the internal name for a core logic chipset which provides
arch/alpha/include/asm/core_t2.h+0−1
@@ -7,7 +7,6 @@ · 6 unmodified lines
77 #include <linux/types.h>
88 #include <linux/spinlock.h>
99 #include <asm/compiler.h>
10−#include <asm/system.h>
1110
1211 /*
1312 * T2 is the internal name for the core logic chipset which provides
arch/alpha/include/asm/dma-mapping.h+12−6
@@ -12,16 +12,22 @@ static inline struct dma_map_ops *get_dma_ops(struct device *dev) · 11 unmodified lines
1212
1313 #include <asm-generic/dma-mapping-common.h>
1414
15−static inline void *dma_alloc_coherent(struct device *dev, size_t size,
16− dma_addr_t *dma_handle, gfp_t gfp)
15+#define dma_alloc_coherent(d,s,h,f) dma_alloc_attrs(d,s,h,f,NULL)
16+
17+static inline void *dma_alloc_attrs(struct device *dev, size_t size,
18+ dma_addr_t *dma_handle, gfp_t gfp,
19+ struct dma_attrs *attrs)
1720 {
18− return get_dma_ops(dev)->alloc_coherent(dev, size, dma_handle, gfp);
21+ return get_dma_ops(dev)->alloc(dev, size, dma_handle, gfp, attrs);
1922 }
2023
21−static inline void dma_free_coherent(struct device *dev, size_t size,
22− void *vaddr, dma_addr_t dma_handle)
24+#define dma_free_coherent(d,s,c,h) dma_free_attrs(d,s,c,h,NULL)
25+
26+static inline void dma_free_attrs(struct device *dev, size_t size,
27+ void *vaddr, dma_addr_t dma_handle,
28+ struct dma_attrs *attrs)
2329 {
24− get_dma_ops(dev)->free_coherent(dev, size, vaddr, dma_handle);
30+ get_dma_ops(dev)->free(dev, size, vaddr, dma_handle, attrs);
2531 }
2632
2733 static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
arch/alpha/include/asm/elf.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define __ASM_ALPHA_ELF_H
33
44 #include <asm/auxvec.h>
5+#include <asm/special_insns.h>
56
67 /* Special values for the st_other field in the symbol table. */
78
arch/alpha/include/asm/exec.h+6−0
@@ -0,0 +1,6 @@
1+#ifndef __ALPHA_EXEC_H
2+#define __ALPHA_EXEC_H
3+
4+#define arch_align_stack(x) (x)
5+
6+#endif /* __ALPHA_EXEC_H */
arch/alpha/include/asm/fpu.h+2−0
@@ -1,6 +1,8 @@
11 #ifndef __ASM_ALPHA_FPU_H
22 #define __ASM_ALPHA_FPU_H
33
4+#include <asm/special_insns.h>
5+
46 /*
57 * Alpha floating-point control register defines:
68 */
arch/alpha/include/asm/io.h+0−1
@@ -6,7 +6,6 @@ · 5 unmodified lines
66 #include <linux/kernel.h>
77 #include <linux/mm.h>
88 #include <asm/compiler.h>
9−#include <asm/system.h>
109 #include <asm/pgtable.h>
1110 #include <asm/machvec.h>
1211 #include <asm/hwrpb.h>
arch/alpha/include/asm/irqflags.h+1−1
@@ -1,7 +1,7 @@
11 #ifndef __ALPHA_IRQFLAGS_H
22 #define __ALPHA_IRQFLAGS_H
33
4−#include <asm/system.h>
4+#include <asm/pal.h>
55
66 #define IPL_MIN 0
77 #define IPL_SW0 1
arch/alpha/include/asm/mce.h+83−0
@@ -0,0 +1,83 @@
1+#ifndef __ALPHA_MCE_H
2+#define __ALPHA_MCE_H
3+
4+/*
5+ * This is the logout header that should be common to all platforms
6+ * (assuming they are running OSF/1 PALcode, I guess).
7+ */
8+struct el_common {
9+ unsigned int size; /* size in bytes of logout area */
10+ unsigned int sbz1 : 30; /* should be zero */
11+ unsigned int err2 : 1; /* second error */
12+ unsigned int retry : 1; /* retry flag */
13+ unsigned int proc_offset; /* processor-specific offset */
14+ unsigned int sys_offset; /* system-specific offset */
15+ unsigned int code; /* machine check code */
16+ unsigned int frame_rev; /* frame revision */
17+};
18+
19+/* Machine Check Frame for uncorrectable errors (Large format)
20+ * --- This is used to log uncorrectable errors such as
21+ * double bit ECC errors.
22+ * --- These errors are detected by both processor and systems.
23+ */
24+struct el_common_EV5_uncorrectable_mcheck {
25+ unsigned long shadow[8]; /* Shadow reg. 8-14, 25 */
26+ unsigned long paltemp[24]; /* PAL TEMP REGS. */
27+ unsigned long exc_addr; /* Address of excepting instruction*/
28+ unsigned long exc_sum; /* Summary of arithmetic traps. */
29+ unsigned long exc_mask; /* Exception mask (from exc_sum). */
30+ unsigned long pal_base; /* Base address for PALcode. */
31+ unsigned long isr; /* Interrupt Status Reg. */
32+ unsigned long icsr; /* CURRENT SETUP OF EV5 IBOX */
33+ unsigned long ic_perr_stat; /* I-CACHE Reg. <11> set Data parity
34+ <12> set TAG parity*/
35+ unsigned long dc_perr_stat; /* D-CACHE error Reg. Bits set to 1:
36+ <2> Data error in bank 0
37+ <3> Data error in bank 1
38+ <4> Tag error in bank 0
39+ <5> Tag error in bank 1 */
40+ unsigned long va; /* Effective VA of fault or miss. */
41+ unsigned long mm_stat; /* Holds the reason for D-stream
42+ fault or D-cache parity errors */
43+ unsigned long sc_addr; /* Address that was being accessed
44+ when EV5 detected Secondary cache
45+ failure. */
46+ unsigned long sc_stat; /* Helps determine if the error was
47+ TAG/Data parity(Secondary Cache)*/
48+ unsigned long bc_tag_addr; /* Contents of EV5 BC_TAG_ADDR */
49+ unsigned long ei_addr; /* Physical address of any transfer
50+ that is logged in EV5 EI_STAT */
51+ unsigned long fill_syndrome; /* For correcting ECC errors. */
52+ unsigned long ei_stat; /* Helps identify reason of any
53+ processor uncorrectable error
54+ at its external interface. */
55+ unsigned long ld_lock; /* Contents of EV5 LD_LOCK register*/
56+};
57+
58+struct el_common_EV6_mcheck {
59+ unsigned int FrameSize; /* Bytes, including this field */
60+ unsigned int FrameFlags; /* <31> = Retry, <30> = Second Error */
61+ unsigned int CpuOffset; /* Offset to CPU-specific info */
62+ unsigned int SystemOffset; /* Offset to system-specific info */
63+ unsigned int MCHK_Code;
64+ unsigned int MCHK_Frame_Rev;
65+ unsigned long I_STAT; /* EV6 Internal Processor Registers */
66+ unsigned long DC_STAT; /* (See the 21264 Spec) */
67+ unsigned long C_ADDR;
68+ unsigned long DC1_SYNDROME;
69+ unsigned long DC0_SYNDROME;
70+ unsigned long C_STAT;
71+ unsigned long C_STS;
72+ unsigned long MM_STAT;
73+ unsigned long EXC_ADDR;
74+ unsigned long IER_CM;
75+ unsigned long ISUM;
76+ unsigned long RESERVED0;
77+ unsigned long PAL_BASE;
78+ unsigned long I_CTL;
79+ unsigned long PCTX;
80+};
81+
82+
83+#endif /* __ALPHA_MCE_H */
arch/alpha/include/asm/mman.h+4−0
@@ -56,6 +56,10 @@ · 55 unmodified lines
5656 #define MADV_HUGEPAGE 14 /* Worth backing with hugepages */
5757 #define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages */
5858
59+#define MADV_DONTDUMP 16 /* Explicity exclude from the core dump,
60+ overrides the coredump filter bits */
61+#define MADV_DODUMP 17 /* Clear the MADV_NODUMP flag */
62+
5963 /* compatibility flags */
6064 #define MAP_FILE 0
6165
arch/alpha/include/asm/mmu_context.h+0−1
@@ -7,7 +7,6 @@ · 6 unmodified lines
77 * Copyright (C) 1996, Linus Torvalds
88 */
99
10−#include <asm/system.h>
1110 #include <asm/machvec.h>
1211 #include <asm/compiler.h>
1312 #include <asm-generic/mm_hooks.h>
arch/alpha/include/asm/pal.h+112−0
@@ -48,4 +48,116 @@ · 47 unmodified lines
4848 #define PAL_retsys 61
4949 #define PAL_rti 63
5050
51+#ifdef __KERNEL__
52+#ifndef __ASSEMBLY__
53+
54+extern void halt(void) __attribute__((noreturn));
55+#define __halt() __asm__ __volatile__ ("call_pal %0 #halt" : : "i" (PAL_halt))
56+
57+#define imb() \
58+__asm__ __volatile__ ("call_pal %0 #imb" : : "i" (PAL_imb) : "memory")
59+
60+#define draina() \
61+__asm__ __volatile__ ("call_pal %0 #draina" : : "i" (PAL_draina) : "memory")
62+
63+#define __CALL_PAL_R0(NAME, TYPE) \
64+extern inline TYPE NAME(void) \
65+{ \
66+ register TYPE __r0 __asm__("$0"); \
67+ __asm__ __volatile__( \
68+ "call_pal %1 # " #NAME \
69+ :"=r" (__r0) \
70+ :"i" (PAL_ ## NAME) \
71+ :"$1", "$16", "$22", "$23", "$24", "$25"); \
72+ return __r0; \
73+}
74+
75+#define __CALL_PAL_W1(NAME, TYPE0) \
76+extern inline void NAME(TYPE0 arg0) \
77+{ \
78+ register TYPE0 __r16 __asm__("$16") = arg0; \
79+ __asm__ __volatile__( \
80+ "call_pal %1 # "#NAME \
81+ : "=r"(__r16) \
82+ : "i"(PAL_ ## NAME), "0"(__r16) \
83+ : "$1", "$22", "$23", "$24", "$25"); \
84+}
85+
86+#define __CALL_PAL_W2(NAME, TYPE0, TYPE1) \
87+extern inline void NAME(TYPE0 arg0, TYPE1 arg1) \
88+{ \
89+ register TYPE0 __r16 __asm__("$16") = arg0; \
90+ register TYPE1 __r17 __asm__("$17") = arg1; \
91+ __asm__ __volatile__( \
92+ "call_pal %2 # "#NAME \
93+ : "=r"(__r16), "=r"(__r17) \
94+ : "i"(PAL_ ## NAME), "0"(__r16), "1"(__r17) \
95+ : "$1", "$22", "$23", "$24", "$25"); \
96+}
97+
98+#define __CALL_PAL_RW1(NAME, RTYPE, TYPE0) \
99+extern inline RTYPE NAME(TYPE0 arg0) \
100+{ \
101+ register RTYPE __r0 __asm__("$0"); \
102+ register TYPE0 __r16 __asm__("$16") = arg0; \
103+ __asm__ __volatile__( \
104+ "call_pal %2 # "#NAME \
105+ : "=r"(__r16), "=r"(__r0) \
106+ : "i"(PAL_ ## NAME), "0"(__r16) \
107+ : "$1", "$22", "$23", "$24", "$25"); \
108+ return __r0; \
109+}
110+
111+#define __CALL_PAL_RW2(NAME, RTYPE, TYPE0, TYPE1) \
112+extern inline RTYPE NAME(TYPE0 arg0, TYPE1 arg1) \
113+{ \
114+ register RTYPE __r0 __asm__("$0"); \
115+ register TYPE0 __r16 __asm__("$16") = arg0; \
116+ register TYPE1 __r17 __asm__("$17") = arg1; \
117+ __asm__ __volatile__( \
118+ "call_pal %3 # "#NAME \
119+ : "=r"(__r16), "=r"(__r17), "=r"(__r0) \
120+ : "i"(PAL_ ## NAME), "0"(__r16), "1"(__r17) \
121+ : "$1", "$22", "$23", "$24", "$25"); \
122+ return __r0; \
123+}
124+
125+__CALL_PAL_W1(cflush, unsigned long);
126+__CALL_PAL_R0(rdmces, unsigned long);
127+__CALL_PAL_R0(rdps, unsigned long);
128+__CALL_PAL_R0(rdusp, unsigned long);
129+__CALL_PAL_RW1(swpipl, unsigned long, unsigned long);
130+__CALL_PAL_R0(whami, unsigned long);
131+__CALL_PAL_W2(wrent, void*, unsigned long);
132+__CALL_PAL_W1(wripir, unsigned long);
133+__CALL_PAL_W1(wrkgp, unsigned long);
134+__CALL_PAL_W1(wrmces, unsigned long);
135+__CALL_PAL_RW2(wrperfmon, unsigned long, unsigned long, unsigned long);
136+__CALL_PAL_W1(wrusp, unsigned long);
137+__CALL_PAL_W1(wrvptptr, unsigned long);
138+
139+/*
140+ * TB routines..
141+ */
142+#define __tbi(nr,arg,arg1...) \
143+({ \
144+ register unsigned long __r16 __asm__("$16") = (nr); \
145+ register unsigned long __r17 __asm__("$17"); arg; \
146+ __asm__ __volatile__( \
147+ "call_pal %3 #__tbi" \
148+ :"=r" (__r16),"=r" (__r17) \
149+ :"0" (__r16),"i" (PAL_tbi) ,##arg1 \
150+ :"$0", "$1", "$22", "$23", "$24", "$25"); \
151+})
152+
153+#define tbi(x,y) __tbi(x,__r17=(y),"1" (__r17))
154+#define tbisi(x) __tbi(1,__r17=(x),"1" (__r17))
155+#define tbisd(x) __tbi(2,__r17=(x),"1" (__r17))
156+#define tbis(x) __tbi(3,__r17=(x),"1" (__r17))
157+#define tbiap() __tbi(-1, /* no second argument */)
158+#define tbia() __tbi(-2, /* no second argument */)
159+
160+#endif /* !__ASSEMBLY__ */
161+#endif /* __KERNEL__ */
162+
51163 #endif /* __ALPHA_PAL_H */
arch/alpha/include/asm/pci.h+1−6
@@ -7,6 +7,7 @@ · 6 unmodified lines
77 #include <linux/dma-mapping.h>
88 #include <asm/scatterlist.h>
99 #include <asm/machvec.h>
10+#include <asm-generic/pci-bridge.h>
1011
1112 /*
1213 * The following structure is used to manage multiple PCI busses.
@@ -99,12 +100,6 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) · 86 unmodified lines
99100 return channel ? 15 : 14;
100101 }
101102
102−extern void pcibios_resource_to_bus(struct pci_dev *, struct pci_bus_region *,
103− struct resource *);
104−
105−extern void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
106− struct pci_bus_region *region);
107−
108103 #define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index
109104
110105 static inline int pci_proc_domain(struct pci_bus *bus)
arch/alpha/include/asm/pgtable.h+1−0
@@ -15,6 +15,7 @@ · 14 unmodified lines
1515 #include <asm/page.h>
1616 #include <asm/processor.h> /* For TASK_SIZE */
1717 #include <asm/machvec.h>
18+#include <asm/setup.h>
1819
1920 struct mm_struct;
2021 struct vm_area_struct;
arch/alpha/include/asm/posix_types.h+5−108
@@ -8,116 +8,13 @@ · 7 unmodified lines
88 */
99
1010 typedef unsigned int __kernel_ino_t;
11−typedef unsigned int __kernel_mode_t;
12−typedef unsigned int __kernel_nlink_t;
13−typedef long __kernel_off_t;
14−typedef long long __kernel_loff_t;
15−typedef int __kernel_pid_t;
16−typedef int __kernel_ipc_pid_t;
17−typedef unsigned int __kernel_uid_t;
18−typedef unsigned int __kernel_gid_t;
19−typedef unsigned long __kernel_size_t;
20−typedef long __kernel_ssize_t;
21−typedef long __kernel_ptrdiff_t;
22−typedef long __kernel_time_t;
23−typedef long __kernel_suseconds_t;
24−typedef long __kernel_clock_t;
25−typedef int __kernel_daddr_t;
26−typedef char * __kernel_caddr_t;
27−typedef unsigned long __kernel_sigset_t; /* at least 32 bits */
28−typedef unsigned short __kernel_uid16_t;
29−typedef unsigned short __kernel_gid16_t;
30−typedef int __kernel_clockid_t;
31−typedef int __kernel_timer_t;
32−
33−typedef struct {
34− int val[2];
35−} __kernel_fsid_t;
36−
37−typedef __kernel_uid_t __kernel_old_uid_t;
38−typedef __kernel_gid_t __kernel_old_gid_t;
39−typedef __kernel_uid_t __kernel_uid32_t;
40−typedef __kernel_gid_t __kernel_gid32_t;
41−
42−typedef unsigned int __kernel_old_dev_t;
43−
44−#ifdef __KERNEL__
45−
46−#ifndef __GNUC__
47−
48−#define __FD_SET(d, set) ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
49−#define __FD_CLR(d, set) ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
50−#define __FD_ISSET(d, set) (((set)->fds_bits[__FDELT(d)] & __FDMASK(d)) != 0)
51−#define __FD_ZERO(set) \
52− ((void) memset ((void *) (set), 0, sizeof (__kernel_fd_set)))
53−
54−#else /* __GNUC__ */
55−
56−/* With GNU C, use inline functions instead so args are evaluated only once: */
11+#define __kernel_ino_t __kernel_ino_t
5712
58−#undef __FD_SET
59−static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
60−{
61− unsigned long _tmp = fd / __NFDBITS;
62− unsigned long _rem = fd % __NFDBITS;
63− fdsetp->fds_bits[_tmp] |= (1UL<<_rem);
64−}
65−
66−#undef __FD_CLR
67−static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp)
68−{
69− unsigned long _tmp = fd / __NFDBITS;
70− unsigned long _rem = fd % __NFDBITS;
71− fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem);
72−}
73−
74−#undef __FD_ISSET
75−static __inline__ int __FD_ISSET(unsigned long fd, const __kernel_fd_set *p)
76−{
77− unsigned long _tmp = fd / __NFDBITS;
78− unsigned long _rem = fd % __NFDBITS;
79− return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0;
80−}
81−
82−/*
83− * This will unroll the loop for the normal constant case (8 ints,
84− * for a 256-bit fd_set)
85− */
86−#undef __FD_ZERO
87−static __inline__ void __FD_ZERO(__kernel_fd_set *p)
88−{
89− unsigned long *tmp = p->fds_bits;
90− int i;
91−
92− if (__builtin_constant_p(__FDSET_LONGS)) {
93− switch (__FDSET_LONGS) {
94− case 16:
95− tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
96− tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
97− tmp[ 8] = 0; tmp[ 9] = 0; tmp[10] = 0; tmp[11] = 0;
98− tmp[12] = 0; tmp[13] = 0; tmp[14] = 0; tmp[15] = 0;
99− return;
100−
101− case 8:
102− tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
103− tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
104− return;
105−
106− case 4:
107− tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
108− return;
109− }
110− }
111− i = __FDSET_LONGS;
112− while (i) {
113− i--;
114− *tmp = 0;
115− tmp++;
116− }
117−}
13+typedef unsigned int __kernel_nlink_t;
14+#define __kernel_nlink_t __kernel_nlink_t
11815
119−#endif /* __GNUC__ */
16+typedef unsigned long __kernel_sigset_t; /* at least 32 bits */
12017
121−#endif /* __KERNEL__ */
18+#include <asm-generic/posix_types.h>
12219
12320 #endif /* _ALPHA_POSIX_TYPES_H */
arch/alpha/include/asm/setup.h+36−0
@@ -3,4 +3,40 @@ · 2 unmodified lines
33
44 #define COMMAND_LINE_SIZE 256
55
6+/*
7+ * We leave one page for the initial stack page, and one page for
8+ * the initial process structure. Also, the console eats 3 MB for
9+ * the initial bootloader (one of which we can reclaim later).
10+ */
11+#define BOOT_PCB 0x20000000
12+#define BOOT_ADDR 0x20000000
13+/* Remove when official MILO sources have ELF support: */
14+#define BOOT_SIZE (16*1024)
15+
16+#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
17+#define KERNEL_START_PHYS 0x300000 /* Old bootloaders hardcoded this. */
18+#else
19+#define KERNEL_START_PHYS 0x1000000 /* required: Wildfire/Titan/Marvel */
20+#endif
21+
22+#define KERNEL_START (PAGE_OFFSET+KERNEL_START_PHYS)
23+#define SWAPPER_PGD KERNEL_START
24+#define INIT_STACK (PAGE_OFFSET+KERNEL_START_PHYS+0x02000)
25+#define EMPTY_PGT (PAGE_OFFSET+KERNEL_START_PHYS+0x04000)
26+#define EMPTY_PGE (PAGE_OFFSET+KERNEL_START_PHYS+0x08000)
27+#define ZERO_PGE (PAGE_OFFSET+KERNEL_START_PHYS+0x0A000)
28+
29+#define START_ADDR (PAGE_OFFSET+KERNEL_START_PHYS+0x10000)
30+
31+/*
32+ * This is setup by the secondary bootstrap loader. Because
33+ * the zero page is zeroed out as soon as the vm system is
34+ * initialized, we need to copy things out into a more permanent
35+ * place.
36+ */
37+#define PARAM ZERO_PGE
38+#define COMMAND_LINE ((char*)(PARAM + 0x0000))
39+#define INITRD_START (*(unsigned long *) (PARAM+0x100))
40+#define INITRD_SIZE (*(unsigned long *) (PARAM+0x108))
41+
642 #endif
arch/alpha/include/asm/special_insns.h+41−0
@@ -0,0 +1,41 @@
1+#ifndef __ALPHA_SPECIAL_INSNS_H
2+#define __ALPHA_SPECIAL_INSNS_H
3+
4+enum implver_enum {
5+ IMPLVER_EV4,
6+ IMPLVER_EV5,
7+ IMPLVER_EV6
8+};
9+
10+#ifdef CONFIG_ALPHA_GENERIC
11+#define implver() \
12+({ unsigned long __implver; \
13+ __asm__ ("implver %0" : "=r"(__implver)); \
14+ (enum implver_enum) __implver; })
15+#else
16+/* Try to eliminate some dead code. */
17+#ifdef CONFIG_ALPHA_EV4
18+#define implver() IMPLVER_EV4
19+#endif
20+#ifdef CONFIG_ALPHA_EV5
21+#define implver() IMPLVER_EV5
22+#endif
23+#if defined(CONFIG_ALPHA_EV6)
24+#define implver() IMPLVER_EV6
25+#endif
26+#endif
27+
28+enum amask_enum {
29+ AMASK_BWX = (1UL << 0),
30+ AMASK_FIX = (1UL << 1),
31+ AMASK_CIX = (1UL << 2),
32+ AMASK_MAX = (1UL << 8),
33+ AMASK_PRECISE_TRAP = (1UL << 9),
34+};
35+
36+#define amask(mask) \
37+({ unsigned long __amask, __input = (mask); \
38+ __asm__ ("amask %1,%0" : "=r"(__amask) : "rI"(__input)); \
39+ __amask; })
40+
41+#endif /* __ALPHA_SPECIAL_INSNS_H */
arch/alpha/include/asm/spinlock.h+0−1
@@ -1,7 +1,6 @@
11 #ifndef _ALPHA_SPINLOCK_H
22 #define _ALPHA_SPINLOCK_H
33
4−#include <asm/system.h>
54 #include <linux/kernel.h>
65 #include <asm/current.h>
76
arch/alpha/include/asm/switch_to.h+14−0
@@ -0,0 +1,14 @@
1+#ifndef __ALPHA_SWITCH_TO_H
2+#define __ALPHA_SWITCH_TO_H
3+
4+
5+struct task_struct;
6+extern struct task_struct *alpha_switch_to(unsigned long, struct task_struct *);
7+
8+#define switch_to(P,N,L) \
9+ do { \
10+ (L) = alpha_switch_to(virt_to_phys(&task_thread_info(N)->pcb), (P)); \
11+ check_mmu_context(); \
12+ } while (0)
13+
14+#endif /* __ALPHA_SWITCH_TO_H */
arch/alpha/include/asm/system.h+0−354
@@ -1,354 +0,0 @@
1−#ifndef __ALPHA_SYSTEM_H
2−#define __ALPHA_SYSTEM_H
3−
4−#include <asm/pal.h>
5−#include <asm/page.h>
6−#include <asm/barrier.h>
7−
8−/*
9− * System defines.. Note that this is included both from .c and .S
10− * files, so it does only defines, not any C code.
11− */
12−
13−/*
14− * We leave one page for the initial stack page, and one page for
15− * the initial process structure. Also, the console eats 3 MB for
16− * the initial bootloader (one of which we can reclaim later).
17− */
18−#define BOOT_PCB 0x20000000
19−#define BOOT_ADDR 0x20000000
20−/* Remove when official MILO sources have ELF support: */
21−#define BOOT_SIZE (16*1024)
22−
23−#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
24−#define KERNEL_START_PHYS 0x300000 /* Old bootloaders hardcoded this. */
25−#else
26−#define KERNEL_START_PHYS 0x1000000 /* required: Wildfire/Titan/Marvel */
27−#endif
28−
29−#define KERNEL_START (PAGE_OFFSET+KERNEL_START_PHYS)
30−#define SWAPPER_PGD KERNEL_START
31−#define INIT_STACK (PAGE_OFFSET+KERNEL_START_PHYS+0x02000)
32−#define EMPTY_PGT (PAGE_OFFSET+KERNEL_START_PHYS+0x04000)
33−#define EMPTY_PGE (PAGE_OFFSET+KERNEL_START_PHYS+0x08000)
34−#define ZERO_PGE (PAGE_OFFSET+KERNEL_START_PHYS+0x0A000)
35−
36−#define START_ADDR (PAGE_OFFSET+KERNEL_START_PHYS+0x10000)
37−
38−/*
39− * This is setup by the secondary bootstrap loader. Because
40− * the zero page is zeroed out as soon as the vm system is
41− * initialized, we need to copy things out into a more permanent
42− * place.
43− */
44−#define PARAM ZERO_PGE
45−#define COMMAND_LINE ((char*)(PARAM + 0x0000))
46−#define INITRD_START (*(unsigned long *) (PARAM+0x100))
47−#define INITRD_SIZE (*(unsigned long *) (PARAM+0x108))
48−
49−#ifndef __ASSEMBLY__
50−#include <linux/kernel.h>
51−#define AT_VECTOR_SIZE_ARCH 4 /* entries in ARCH_DLINFO */
52−
53−/*
54− * This is the logout header that should be common to all platforms
55− * (assuming they are running OSF/1 PALcode, I guess).
56− */
57−struct el_common {
58− unsigned int size; /* size in bytes of logout area */
59− unsigned int sbz1 : 30; /* should be zero */
60− unsigned int err2 : 1; /* second error */
61− unsigned int retry : 1; /* retry flag */
62− unsigned int proc_offset; /* processor-specific offset */
63− unsigned int sys_offset; /* system-specific offset */
64− unsigned int code; /* machine check code */
65− unsigned int frame_rev; /* frame revision */
66−};
67−
68−/* Machine Check Frame for uncorrectable errors (Large format)
69− * --- This is used to log uncorrectable errors such as
70− * double bit ECC errors.
71− * --- These errors are detected by both processor and systems.
72− */
73−struct el_common_EV5_uncorrectable_mcheck {
74− unsigned long shadow[8]; /* Shadow reg. 8-14, 25 */
75− unsigned long paltemp[24]; /* PAL TEMP REGS. */
76− unsigned long exc_addr; /* Address of excepting instruction*/
77− unsigned long exc_sum; /* Summary of arithmetic traps. */
78− unsigned long exc_mask; /* Exception mask (from exc_sum). */
79− unsigned long pal_base; /* Base address for PALcode. */
80− unsigned long isr; /* Interrupt Status Reg. */
81− unsigned long icsr; /* CURRENT SETUP OF EV5 IBOX */
82− unsigned long ic_perr_stat; /* I-CACHE Reg. <11> set Data parity
83− <12> set TAG parity*/
84− unsigned long dc_perr_stat; /* D-CACHE error Reg. Bits set to 1:
85− <2> Data error in bank 0
86− <3> Data error in bank 1
87− <4> Tag error in bank 0
88− <5> Tag error in bank 1 */
89− unsigned long va; /* Effective VA of fault or miss. */
90− unsigned long mm_stat; /* Holds the reason for D-stream
91− fault or D-cache parity errors */
92− unsigned long sc_addr; /* Address that was being accessed
93− when EV5 detected Secondary cache
94− failure. */
95− unsigned long sc_stat; /* Helps determine if the error was
96− TAG/Data parity(Secondary Cache)*/
97− unsigned long bc_tag_addr; /* Contents of EV5 BC_TAG_ADDR */
98− unsigned long ei_addr; /* Physical address of any transfer
99− that is logged in EV5 EI_STAT */
100− unsigned long fill_syndrome; /* For correcting ECC errors. */
101− unsigned long ei_stat; /* Helps identify reason of any
102− processor uncorrectable error
103− at its external interface. */
104− unsigned long ld_lock; /* Contents of EV5 LD_LOCK register*/
105−};
106−
107−struct el_common_EV6_mcheck {
108− unsigned int FrameSize; /* Bytes, including this field */
109− unsigned int FrameFlags; /* <31> = Retry, <30> = Second Error */
110− unsigned int CpuOffset; /* Offset to CPU-specific info */
111− unsigned int SystemOffset; /* Offset to system-specific info */
112− unsigned int MCHK_Code;
113− unsigned int MCHK_Frame_Rev;
114− unsigned long I_STAT; /* EV6 Internal Processor Registers */
115− unsigned long DC_STAT; /* (See the 21264 Spec) */
116− unsigned long C_ADDR;
117− unsigned long DC1_SYNDROME;
118− unsigned long DC0_SYNDROME;
119− unsigned long C_STAT;
120− unsigned long C_STS;
121− unsigned long MM_STAT;
122− unsigned long EXC_ADDR;
123− unsigned long IER_CM;
124− unsigned long ISUM;
125− unsigned long RESERVED0;
126− unsigned long PAL_BASE;
127− unsigned long I_CTL;
128− unsigned long PCTX;
129−};
130−
131−extern void halt(void) __attribute__((noreturn));
132−#define __halt() __asm__ __volatile__ ("call_pal %0 #halt" : : "i" (PAL_halt))
133−
134−#define switch_to(P,N,L) \
135− do { \
136− (L) = alpha_switch_to(virt_to_phys(&task_thread_info(N)->pcb), (P)); \
137− check_mmu_context(); \
138− } while (0)
139−
140−struct task_struct;
141−extern struct task_struct *alpha_switch_to(unsigned long, struct task_struct*);
142−
143−#define imb() \
144−__asm__ __volatile__ ("call_pal %0 #imb" : : "i" (PAL_imb) : "memory")
145−
146−#define draina() \
147−__asm__ __volatile__ ("call_pal %0 #draina" : : "i" (PAL_draina) : "memory")
148−
149−enum implver_enum {
150− IMPLVER_EV4,
151− IMPLVER_EV5,
152− IMPLVER_EV6
153−};
154−
155−#ifdef CONFIG_ALPHA_GENERIC
156−#define implver() \
157−({ unsigned long __implver; \
158− __asm__ ("implver %0" : "=r"(__implver)); \
159− (enum implver_enum) __implver; })
160−#else
161−/* Try to eliminate some dead code. */
162−#ifdef CONFIG_ALPHA_EV4
163−#define implver() IMPLVER_EV4
164−#endif
165−#ifdef CONFIG_ALPHA_EV5
166−#define implver() IMPLVER_EV5
167−#endif
168−#if defined(CONFIG_ALPHA_EV6)
169−#define implver() IMPLVER_EV6
170−#endif
171−#endif
172−
173−enum amask_enum {
174− AMASK_BWX = (1UL << 0),
175− AMASK_FIX = (1UL << 1),
176− AMASK_CIX = (1UL << 2),
177− AMASK_MAX = (1UL << 8),
178− AMASK_PRECISE_TRAP = (1UL << 9),
179−};
180−
181−#define amask(mask) \
182−({ unsigned long __amask, __input = (mask); \
183− __asm__ ("amask %1,%0" : "=r"(__amask) : "rI"(__input)); \
184− __amask; })
185−
186−#define __CALL_PAL_R0(NAME, TYPE) \
187−extern inline TYPE NAME(void) \
188−{ \
189− register TYPE __r0 __asm__("$0"); \
190− __asm__ __volatile__( \
191− "call_pal %1 # " #NAME \
192− :"=r" (__r0) \
193− :"i" (PAL_ ## NAME) \
194− :"$1", "$16", "$22", "$23", "$24", "$25"); \
195− return __r0; \
196−}
197−
198−#define __CALL_PAL_W1(NAME, TYPE0) \
199−extern inline void NAME(TYPE0 arg0) \
200−{ \
201− register TYPE0 __r16 __asm__("$16") = arg0; \
202− __asm__ __volatile__( \
203− "call_pal %1 # "#NAME \
204− : "=r"(__r16) \
205− : "i"(PAL_ ## NAME), "0"(__r16) \
206− : "$1", "$22", "$23", "$24", "$25"); \
207−}
208−
209−#define __CALL_PAL_W2(NAME, TYPE0, TYPE1) \
210−extern inline void NAME(TYPE0 arg0, TYPE1 arg1) \
211−{ \
212− register TYPE0 __r16 __asm__("$16") = arg0; \
213− register TYPE1 __r17 __asm__("$17") = arg1; \
214− __asm__ __volatile__( \
215− "call_pal %2 # "#NAME \
216− : "=r"(__r16), "=r"(__r17) \
217− : "i"(PAL_ ## NAME), "0"(__r16), "1"(__r17) \
218− : "$1", "$22", "$23", "$24", "$25"); \
219−}
220−
221−#define __CALL_PAL_RW1(NAME, RTYPE, TYPE0) \
222−extern inline RTYPE NAME(TYPE0 arg0) \
223−{ \
224− register RTYPE __r0 __asm__("$0"); \
225− register TYPE0 __r16 __asm__("$16") = arg0; \
226− __asm__ __volatile__( \
227− "call_pal %2 # "#NAME \
228− : "=r"(__r16), "=r"(__r0) \
229− : "i"(PAL_ ## NAME), "0"(__r16) \
230− : "$1", "$22", "$23", "$24", "$25"); \
231− return __r0; \
232−}
233−
234−#define __CALL_PAL_RW2(NAME, RTYPE, TYPE0, TYPE1) \
235−extern inline RTYPE NAME(TYPE0 arg0, TYPE1 arg1) \
236−{ \
237− register RTYPE __r0 __asm__("$0"); \
238− register TYPE0 __r16 __asm__("$16") = arg0; \
239− register TYPE1 __r17 __asm__("$17") = arg1; \
240− __asm__ __volatile__( \
241− "call_pal %3 # "#NAME \
242− : "=r"(__r16), "=r"(__r17), "=r"(__r0) \
243− : "i"(PAL_ ## NAME), "0"(__r16), "1"(__r17) \
244− : "$1", "$22", "$23", "$24", "$25"); \
245− return __r0; \
246−}
247−
248−__CALL_PAL_W1(cflush, unsigned long);
249−__CALL_PAL_R0(rdmces, unsigned long);
250−__CALL_PAL_R0(rdps, unsigned long);
251−__CALL_PAL_R0(rdusp, unsigned long);
252−__CALL_PAL_RW1(swpipl, unsigned long, unsigned long);
253−__CALL_PAL_R0(whami, unsigned long);
254−__CALL_PAL_W2(wrent, void*, unsigned long);
255−__CALL_PAL_W1(wripir, unsigned long);
256−__CALL_PAL_W1(wrkgp, unsigned long);
257−__CALL_PAL_W1(wrmces, unsigned long);
258−__CALL_PAL_RW2(wrperfmon, unsigned long, unsigned long, unsigned long);
259−__CALL_PAL_W1(wrusp, unsigned long);
260−__CALL_PAL_W1(wrvptptr, unsigned long);
261−
262−/*
263− * TB routines..
264− */
265−#define __tbi(nr,arg,arg1...) \
266−({ \
267− register unsigned long __r16 __asm__("$16") = (nr); \
268− register unsigned long __r17 __asm__("$17"); arg; \
269− __asm__ __volatile__( \
270− "call_pal %3 #__tbi" \
271− :"=r" (__r16),"=r" (__r17) \
272− :"0" (__r16),"i" (PAL_tbi) ,##arg1 \
273− :"$0", "$1", "$22", "$23", "$24", "$25"); \
274−})
275−
276−#define tbi(x,y) __tbi(x,__r17=(y),"1" (__r17))
277−#define tbisi(x) __tbi(1,__r17=(x),"1" (__r17))
278−#define tbisd(x) __tbi(2,__r17=(x),"1" (__r17))
279−#define tbis(x) __tbi(3,__r17=(x),"1" (__r17))
280−#define tbiap() __tbi(-1, /* no second argument */)
281−#define tbia() __tbi(-2, /* no second argument */)
282−
283−/*
284− * Atomic exchange routines.
285− */
286−
287−#define __ASM__MB
288−#define ____xchg(type, args...) __xchg ## type ## _local(args)
289−#define ____cmpxchg(type, args...) __cmpxchg ## type ## _local(args)
290−#include <asm/xchg.h>
291−
292−#define xchg_local(ptr,x) \
293− ({ \
294− __typeof__(*(ptr)) _x_ = (x); \
295− (__typeof__(*(ptr))) __xchg_local((ptr), (unsigned long)_x_, \
296− sizeof(*(ptr))); \
297− })
298−
299−#define cmpxchg_local(ptr, o, n) \
300− ({ \
301− __typeof__(*(ptr)) _o_ = (o); \
302− __typeof__(*(ptr)) _n_ = (n); \
303− (__typeof__(*(ptr))) __cmpxchg_local((ptr), (unsigned long)_o_, \
304− (unsigned long)_n_, \
305− sizeof(*(ptr))); \
306− })
307−
308−#define cmpxchg64_local(ptr, o, n) \
309− ({ \
310− BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
311− cmpxchg_local((ptr), (o), (n)); \
312− })
313−
314−#ifdef CONFIG_SMP
315−#undef __ASM__MB
316−#define __ASM__MB "\tmb\n"
317−#endif
318−#undef ____xchg
319−#undef ____cmpxchg
320−#define ____xchg(type, args...) __xchg ##type(args)
321−#define ____cmpxchg(type, args...) __cmpxchg ##type(args)
322−#include <asm/xchg.h>
323−
324−#define xchg(ptr,x) \
325− ({ \
326− __typeof__(*(ptr)) _x_ = (x); \
327− (__typeof__(*(ptr))) __xchg((ptr), (unsigned long)_x_, \
328− sizeof(*(ptr))); \
329− })
330−
331−#define cmpxchg(ptr, o, n) \
332− ({ \
333− __typeof__(*(ptr)) _o_ = (o); \
334− __typeof__(*(ptr)) _n_ = (n); \
335− (__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long)_o_, \
336− (unsigned long)_n_, sizeof(*(ptr)));\
337− })
338−
339−#define cmpxchg64(ptr, o, n) \
340− ({ \
341− BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
342− cmpxchg((ptr), (o), (n)); \
343− })
344−
345−#undef __ASM__MB
346−#undef ____cmpxchg
347−
348−#define __HAVE_ARCH_CMPXCHG 1
349−
350−#endif /* __ASSEMBLY__ */
351−
352−#define arch_align_stack(x) (x)
353−
354−#endif
arch/alpha/include/asm/xchg.h+2−2
@@ -1,10 +1,10 @@
1−#ifndef __ALPHA_SYSTEM_H
1+#ifndef _ALPHA_CMPXCHG_H
22 #error Do not include xchg.h directly!
33 #else
44 /*
55 * xchg/xchg_local and cmpxchg/cmpxchg_local share the same code
66 * except that local version do not have the expensive memory barrier.
7− * So this file is included twice from asm/system.h.
7+ * So this file is included twice from asm/cmpxchg.h.
88 */
99
1010 /*
arch/alpha/kernel/core_apecs.c+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
2121
2222 #include <asm/ptrace.h>
2323 #include <asm/smp.h>
24+#include <asm/mce.h>
2425
2526 #include "proto.h"
2627 #include "pci_impl.h"
arch/alpha/kernel/core_cia.c+1−0
@@ -23,6 +23,7 @@ · 22 unmodified lines
2323 #include <linux/bootmem.h>
2424
2525 #include <asm/ptrace.h>
26+#include <asm/mce.h>
2627
2728 #include "proto.h"
2829 #include "pci_impl.h"
arch/alpha/kernel/core_t2.c+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
2121
2222 #include <asm/ptrace.h>
2323 #include <asm/delay.h>
24+#include <asm/mce.h>
2425
2526 #include "proto.h"
2627 #include "pci_impl.h"
arch/alpha/kernel/err_impl.h+2−0
@@ -7,6 +7,8 @@ · 6 unmodified lines
77 * implementations.
88 */
99
10+#include <asm/mce.h>
11+
1012 union el_timestamp;
1113 struct el_subpacket;
1214 struct ev7_lf_subpackets;
arch/alpha/kernel/head.S+2−4
@@ -8,14 +8,12 @@ · 7 unmodified lines
88 */
99
1010 #include <linux/init.h>
11−#include <asm/system.h>
1211 #include <asm/asm-offsets.h>
12+#include <asm/pal.h>
13+#include <asm/setup.h>
1314
1415 __HEAD
15−.globl swapper_pg_dir
1616 .globl _stext
17−swapper_pg_dir=SWAPPER_PGD
18−
1917 .set noreorder
2018 .globl __start
2119 .ent __start
arch/alpha/kernel/irq.c+0−1
@@ -26,7 +26,6 @@ · 25 unmodified lines
2626 #include <linux/profile.h>
2727 #include <linux/bitops.h>
2828
29−#include <asm/system.h>
3029 #include <asm/io.h>
3130 #include <asm/uaccess.h>
3231
arch/alpha/kernel/irq_alpha.c+1−0
@@ -11,6 +11,7 @@ · 10 unmodified lines
1111 #include <asm/machvec.h>
1212 #include <asm/dma.h>
1313 #include <asm/perf_event.h>
14+#include <asm/mce.h>
1415
1516 #include "proto.h"
1617 #include "irq_impl.h"
arch/alpha/kernel/osf_sys.c+0−1
@@ -40,7 +40,6 @@ · 39 unmodified lines
4040 #include <asm/fpu.h>
4141 #include <asm/io.h>
4242 #include <asm/uaccess.h>
43−#include <asm/system.h>
4443 #include <asm/sysinfo.h>
4544 #include <asm/thread_info.h>
4645 #include <asm/hwrpb.h>
arch/alpha/kernel/pci-noop.c+6−4
@@ -108,7 +108,8 @@ sys_pciconfig_write(unsigned long bus, unsigned long dfn, · 107 unmodified lines
108108 }
109109
110110 static void *alpha_noop_alloc_coherent(struct device *dev, size_t size,
111− dma_addr_t *dma_handle, gfp_t gfp)
111+ dma_addr_t *dma_handle, gfp_t gfp,
112+ struct dma_attrs *attrs)
112113 {
113114 void *ret;
114115
@@ -123,7 +124,8 @@ static void *alpha_noop_alloc_coherent(struct device *dev, size_t size, · 8 unmodified lines
123124 }
124125
125126 static void alpha_noop_free_coherent(struct device *dev, size_t size,
126− void *cpu_addr, dma_addr_t dma_addr)
127+ void *cpu_addr, dma_addr_t dma_addr,
128+ struct dma_attrs *attrs)
127129 {
128130 free_pages((unsigned long)cpu_addr, get_order(size));
129131 }
@@ -174,8 +176,8 @@ static int alpha_noop_set_mask(struct device *dev, u64 mask) · 44 unmodified lines
174176 }
175177
176178 struct dma_map_ops alpha_noop_ops = {
177− .alloc_coherent = alpha_noop_alloc_coherent,
178− .free_coherent = alpha_noop_free_coherent,
179+ .alloc = alpha_noop_alloc_coherent,
180+ .free = alpha_noop_free_coherent,
179181 .map_page = alpha_noop_map_page,
180182 .map_sg = alpha_noop_map_sg,
181183 .mapping_error = alpha_noop_mapping_error,
arch/alpha/kernel/pci.c+11−75
@@ -43,12 +43,10 @@ const char *const pci_mem_names[] = { · 42 unmodified lines
4343
4444 const char pci_hae0_name[] = "HAE0";
4545
46−/* Indicate whether we respect the PCI setup left by console. */
4746 /*
48− * Make this long-lived so that we know when shutting down
49− * whether we probed only or not.
47+ * If PCI_PROBE_ONLY in pci_flags is set, we don't change any PCI resource
48+ * assignments.
5049 */
51−int pci_probe_only;
5250
5351 /*
5452 * The PCI controller list.
@@ -215,7 +213,7 @@ pdev_save_srm_config(struct pci_dev *dev) · 160 unmodified lines
215213 struct pdev_srm_saved_conf *tmp;
216214 static int printed = 0;
217215
218− if (!alpha_using_srm || pci_probe_only)
216+ if (!alpha_using_srm || pci_has_flag(PCI_PROBE_ONLY))
219217 return;
220218
221219 if (!printed) {
@@ -242,7 +240,7 @@ pci_restore_srm_config(void) · 20 unmodified lines
242240 struct pdev_srm_saved_conf *tmp;
243241
244242 /* No need to restore if probed only. */
245− if (pci_probe_only)
243+ if (pci_has_flag(PCI_PROBE_ONLY))
246244 return;
247245
248246 /* Restore SRM config. */
@@ -252,47 +250,18 @@ pci_restore_srm_config(void) · 3 unmodified lines
252250 }
253251 #endif
254252
255−void __devinit
256−pcibios_fixup_resource(struct resource *res, struct resource *root)
257−{
258− res->start += root->start;
259− res->end += root->start;
260−}
261−
262−void __devinit
263−pcibios_fixup_device_resources(struct pci_dev *dev, struct pci_bus *bus)
264−{
265− /* Update device resources. */
266− struct pci_controller *hose = (struct pci_controller *)bus->sysdata;
267− int i;
268−
269− for (i = 0; i < PCI_NUM_RESOURCES; i++) {
270− if (!dev->resource[i].start)
271− continue;
272− if (dev->resource[i].flags & IORESOURCE_IO)
273− pcibios_fixup_resource(&dev->resource[i],
274− hose->io_space);
275− else if (dev->resource[i].flags & IORESOURCE_MEM)
276− pcibios_fixup_resource(&dev->resource[i],
277− hose->mem_space);
278− }
279−}
280−
281253 void __devinit
282254 pcibios_fixup_bus(struct pci_bus *bus)
283255 {
284256 struct pci_dev *dev = bus->self;
285257
286− if (pci_probe_only && dev &&
258+ if (pci_has_flag(PCI_PROBE_ONLY) && dev &&
287259 (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {
288260 pci_read_bridge_bases(bus);
289− pcibios_fixup_device_resources(dev, bus);
290261 }
291262
292263 list_for_each_entry(dev, &bus->devices, bus_list) {
293264 pdev_save_srm_config(dev);
294− if ((dev->class >> 8) != PCI_CLASS_BRIDGE_PCI)
295− pcibios_fixup_device_resources(dev, bus);
296265 }
297266 }
298267
@@ -302,42 +271,6 @@ pcibios_update_irq(struct pci_dev *dev, int irq) · 3 unmodified lines
302271 pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
303272 }
304273
305−void
306−pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
307− struct resource *res)
308−{
309− struct pci_controller *hose = (struct pci_controller *)dev->sysdata;
310− unsigned long offset = 0;
311−
312− if (res->flags & IORESOURCE_IO)
313− offset = hose->io_space->start;
314− else if (res->flags & IORESOURCE_MEM)
315− offset = hose->mem_space->start;
316−
317− region->start = res->start - offset;
318− region->end = res->end - offset;
319−}
320−
321−void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
322− struct pci_bus_region *region)
323−{
324− struct pci_controller *hose = (struct pci_controller *)dev->sysdata;
325− unsigned long offset = 0;
326−
327− if (res->flags & IORESOURCE_IO)
328− offset = hose->io_space->start;
329− else if (res->flags & IORESOURCE_MEM)
330− offset = hose->mem_space->start;
331−
332− res->start = region->start + offset;
333− res->end = region->end + offset;
334−}
335−
336−#ifdef CONFIG_HOTPLUG
337−EXPORT_SYMBOL(pcibios_resource_to_bus);
338−EXPORT_SYMBOL(pcibios_bus_to_resource);
339−#endif
340−
341274 int
342275 pcibios_enable_device(struct pci_dev *dev, int mask)
343276 {
@@ -374,7 +307,8 @@ pcibios_claim_one_bus(struct pci_bus *b) · 30 unmodified lines
374307
375308 if (r->parent || !r->start || !r->flags)
376309 continue;
377− if (pci_probe_only || (r->flags & IORESOURCE_PCI_FIXED))
310+ if (pci_has_flag(PCI_PROBE_ONLY) ||
311+ (r->flags & IORESOURCE_PCI_FIXED))
378312 pci_claim_resource(dev, i);
379313 }
380314 }
@@ -416,8 +350,10 @@ common_init_pci(void) · 35 unmodified lines
416350 hose->mem_space->end = end;
417351
418352 INIT_LIST_HEAD(&resources);
419− pci_add_resource(&resources, hose->io_space);
420− pci_add_resource(&resources, hose->mem_space);
353+ pci_add_resource_offset(&resources, hose->io_space,
354+ hose->io_space->start);
355+ pci_add_resource_offset(&resources, hose->mem_space,
356+ hose->mem_space->start);
421357
422358 bus = pci_scan_root_bus(NULL, next_busno, alpha_mv.pci_ops,
423359 hose, &resources);
arch/alpha/kernel/pci_impl.h+0−3
@@ -173,9 +173,6 @@ extern void pci_restore_srm_config(void); · 172 unmodified lines
173173 extern struct pci_controller *hose_head, **hose_tail;
174174 extern struct pci_controller *pci_isa_hose;
175175
176−/* Indicate that we trust the console to configure things properly. */
177−extern int pci_probe_only;
178−
179176 extern unsigned long alpha_agpgart_size;
180177
181178 extern void common_init_pci(void);
arch/alpha/kernel/pci_iommu.c+6−4
@@ -434,7 +434,8 @@ static void alpha_pci_unmap_page(struct device *dev, dma_addr_t dma_addr, · 433 unmodified lines
434434 else DMA_ADDRP is undefined. */
435435
436436 static void *alpha_pci_alloc_coherent(struct device *dev, size_t size,
437− dma_addr_t *dma_addrp, gfp_t gfp)
437+ dma_addr_t *dma_addrp, gfp_t gfp,
438+ struct dma_attrs *attrs)
438439 {
439440 struct pci_dev *pdev = alpha_gendev_to_pci(dev);
440441 void *cpu_addr;
@@ -478,7 +479,8 @@ try_again: · 37 unmodified lines
478479 DMA_ADDR past this call are illegal. */
479480
480481 static void alpha_pci_free_coherent(struct device *dev, size_t size,
481− void *cpu_addr, dma_addr_t dma_addr)
482+ void *cpu_addr, dma_addr_t dma_addr,
483+ struct dma_attrs *attrs)
482484 {
483485 struct pci_dev *pdev = alpha_gendev_to_pci(dev);
484486 pci_unmap_single(pdev, dma_addr, size, PCI_DMA_BIDIRECTIONAL);
@@ -952,8 +954,8 @@ static int alpha_pci_set_mask(struct device *dev, u64 mask) · 467 unmodified lines
952954 }
953955
954956 struct dma_map_ops alpha_pci_ops = {
955− .alloc_coherent = alpha_pci_alloc_coherent,
956− .free_coherent = alpha_pci_free_coherent,
957+ .alloc = alpha_pci_alloc_coherent,
958+ .free = alpha_pci_free_coherent,
957959 .map_page = alpha_pci_map_page,
958960 .unmap_page = alpha_pci_unmap_page,
959961 .map_sg = alpha_pci_map_sg,
arch/alpha/kernel/process.c+0−1
@@ -31,7 +31,6 @@ · 30 unmodified lines
3131
3232 #include <asm/reg.h>
3333 #include <asm/uaccess.h>
34−#include <asm/system.h>
3534 #include <asm/io.h>
3635 #include <asm/pgtable.h>
3736 #include <asm/hwrpb.h>
arch/alpha/kernel/ptrace.c+0−1
@@ -16,7 +16,6 @@ · 15 unmodified lines
1616
1717 #include <asm/uaccess.h>
1818 #include <asm/pgtable.h>
19−#include <asm/system.h>
2019 #include <asm/fpu.h>
2120
2221 #include "proto.h"
arch/alpha/kernel/setup.c+0−1
@@ -55,7 +55,6 @@ static struct notifier_block alpha_panic_block = { · 54 unmodified lines
5555
5656 #include <asm/uaccess.h>
5757 #include <asm/pgtable.h>
58−#include <asm/system.h>
5958 #include <asm/hwrpb.h>
6059 #include <asm/dma.h>
6160 #include <asm/mmu_context.h>
arch/alpha/kernel/signal.c+10−21
@@ -120,12 +120,13 @@ SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act, · 119 unmodified lines
120120 */
121121 SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask)
122122 {
123− mask &= _BLOCKABLE;
124− spin_lock_irq(&current->sighand->siglock);
123+ sigset_t blocked;
124+
125125 current->saved_sigmask = current->blocked;
126− siginitset(&current->blocked, mask);
127− recalc_sigpending();
128− spin_unlock_irq(&current->sighand->siglock);
126+
127+ mask &= _BLOCKABLE;
128+ siginitset(&blocked, mask);
129+ set_current_blocked(&blocked);
129130
130131 current->state = TASK_INTERRUPTIBLE;
131132 schedule();
@@ -238,10 +239,7 @@ do_sigreturn(struct sigcontext __user *sc, struct pt_regs *regs, · 106 unmodified lines
238239 goto give_sigsegv;
239240
240241 sigdelsetmask(&set, ~_BLOCKABLE);
241− spin_lock_irq(&current->sighand->siglock);
242− current->blocked = set;
243− recalc_sigpending();
244− spin_unlock_irq(&current->sighand->siglock);
242+ set_current_blocked(&set);
245243
246244 if (restore_sigcontext(sc, regs, sw))
247245 goto give_sigsegv;
@@ -276,10 +274,7 @@ do_rt_sigreturn(struct rt_sigframe __user *frame, struct pt_regs *regs, · 28 unmodified lines
276274 goto give_sigsegv;
277275
278276 sigdelsetmask(&set, ~_BLOCKABLE);
279− spin_lock_irq(&current->sighand->siglock);
280− current->blocked = set;
281− recalc_sigpending();
282− spin_unlock_irq(&current->sighand->siglock);
277+ set_current_blocked(&set);
283278
284279 if (restore_sigcontext(&frame->uc.uc_mcontext, regs, sw))
285280 goto give_sigsegv;
@@ -501,14 +496,8 @@ handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info, · 215 unmodified lines
501496 else
502497 ret = setup_frame(sig, ka, oldset, regs, sw);
503498
504− if (ret == 0) {
505− spin_lock_irq(&current->sighand->siglock);
506− sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask);
507− if (!(ka->sa.sa_flags & SA_NODEFER))
508− sigaddset(&current->blocked,sig);
509− recalc_sigpending();
510− spin_unlock_irq(&current->sighand->siglock);
511− }
499+ if (ret == 0)
500+ block_sigmask(ka, sig);
512501
513502 return ret;
514503 }
arch/alpha/kernel/smp.c+1−1
@@ -450,7 +450,7 @@ setup_smp(void) · 449 unmodified lines
450450 smp_num_probed = 1;
451451 }
452452
453− printk(KERN_INFO "SMP: %d CPUs probed -- cpu_present_map = %lx\n",
453+ printk(KERN_INFO "SMP: %d CPUs probed -- cpu_present_mask = %lx\n",
454454 smp_num_probed, cpumask_bits(cpu_present_mask)[0]);
455455 }
456456
arch/alpha/kernel/sys_alcor.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
1818 #include <linux/bitops.h>
1919
2020 #include <asm/ptrace.h>
21−#include <asm/system.h>
2221 #include <asm/io.h>
2322 #include <asm/dma.h>
2423 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_cabriolet.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
1818 #include <linux/bitops.h>
1919
2020 #include <asm/ptrace.h>
21−#include <asm/system.h>
2221 #include <asm/dma.h>
2322 #include <asm/irq.h>
2423 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_dp264.c+0−1
@@ -21,7 +21,6 @@ · 20 unmodified lines
2121 #include <linux/bitops.h>
2222
2323 #include <asm/ptrace.h>
24−#include <asm/system.h>
2524 #include <asm/dma.h>
2625 #include <asm/irq.h>
2726 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_eb64p.c+0−1
@@ -17,7 +17,6 @@ · 16 unmodified lines
1717 #include <linux/bitops.h>
1818
1919 #include <asm/ptrace.h>
20−#include <asm/system.h>
2120 #include <asm/dma.h>
2221 #include <asm/irq.h>
2322 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_eiger.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
1818 #include <linux/bitops.h>
1919
2020 #include <asm/ptrace.h>
21−#include <asm/system.h>
2221 #include <asm/dma.h>
2322 #include <asm/irq.h>
2423 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_jensen.c+0−1
@@ -15,7 +15,6 @@ · 14 unmodified lines
1515 #include <linux/init.h>
1616
1717 #include <asm/ptrace.h>
18−#include <asm/system.h>
1918
2019 #define __EXTERN_INLINE inline
2120 #include <asm/io.h>
arch/alpha/kernel/sys_marvel.c+2−2
@@ -13,7 +13,6 @@ · 12 unmodified lines
1313 #include <linux/bitops.h>
1414
1515 #include <asm/ptrace.h>
16−#include <asm/system.h>
1716 #include <asm/dma.h>
1817 #include <asm/irq.h>
1918 #include <asm/mmu_context.h>
@@ -384,7 +383,8 @@ marvel_init_pci(void) · 364 unmodified lines
384383
385384 marvel_register_error_handlers();
386385
387− pci_probe_only = 1;
386+ /* Indicate that we trust the console to configure things properly */
387+ pci_set_flags(PCI_PROBE_ONLY);
388388 common_init_pci();
389389 locate_and_init_vga(NULL);
390390
arch/alpha/kernel/sys_miata.c+0−1
@@ -17,7 +17,6 @@ · 16 unmodified lines
1717 #include <linux/reboot.h>
1818
1919 #include <asm/ptrace.h>
20−#include <asm/system.h>
2120 #include <asm/dma.h>
2221 #include <asm/irq.h>
2322 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_mikasa.c+1−1
@@ -17,7 +17,7 @@ · 16 unmodified lines
1717 #include <linux/bitops.h>
1818
1919 #include <asm/ptrace.h>
20−#include <asm/system.h>
20+#include <asm/mce.h>
2121 #include <asm/dma.h>
2222 #include <asm/irq.h>
2323 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_nautilus.c+0−1
@@ -35,7 +35,6 @@ · 34 unmodified lines
3535 #include <linux/bitops.h>
3636
3737 #include <asm/ptrace.h>
38−#include <asm/system.h>
3938 #include <asm/dma.h>
4039 #include <asm/irq.h>
4140 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_noritake.c+1−1
@@ -18,7 +18,7 @@ · 17 unmodified lines
1818 #include <linux/bitops.h>
1919
2020 #include <asm/ptrace.h>
21−#include <asm/system.h>
21+#include <asm/mce.h>
2222 #include <asm/dma.h>
2323 #include <asm/irq.h>
2424 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_rawhide.c+0−1
@@ -16,7 +16,6 @@ · 15 unmodified lines
1616 #include <linux/init.h>
1717
1818 #include <asm/ptrace.h>
19−#include <asm/system.h>
2019 #include <asm/dma.h>
2120 #include <asm/irq.h>
2221 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_ruffian.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
1818 #include <linux/init.h>
1919
2020 #include <asm/ptrace.h>
21−#include <asm/system.h>
2221 #include <asm/dma.h>
2322 #include <asm/irq.h>
2423 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_rx164.c+0−1
@@ -17,7 +17,6 @@ · 16 unmodified lines
1717 #include <linux/bitops.h>
1818
1919 #include <asm/ptrace.h>
20−#include <asm/system.h>
2120 #include <asm/dma.h>
2221 #include <asm/irq.h>
2322 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_sable.c+0−1
@@ -16,7 +16,6 @@ · 15 unmodified lines
1616 #include <linux/init.h>
1717
1818 #include <asm/ptrace.h>
19−#include <asm/system.h>
2019 #include <asm/dma.h>
2120 #include <asm/irq.h>
2221 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_sio.c+0−1
@@ -20,7 +20,6 @@ · 19 unmodified lines
2020
2121 #include <asm/compiler.h>
2222 #include <asm/ptrace.h>
23−#include <asm/system.h>
2423 #include <asm/dma.h>
2524 #include <asm/irq.h>
2625 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_sx164.c+1−1
@@ -17,7 +17,6 @@ · 16 unmodified lines
1717 #include <linux/bitops.h>
1818
1919 #include <asm/ptrace.h>
20−#include <asm/system.h>
2120 #include <asm/dma.h>
2221 #include <asm/irq.h>
2322 #include <asm/mmu_context.h>
@@ -26,6 +25,7 @@ · 2 unmodified lines
2625 #include <asm/core_cia.h>
2726 #include <asm/hwrpb.h>
2827 #include <asm/tlbflush.h>
28+#include <asm/special_insns.h>
2929
3030 #include "proto.h"
3131 #include "irq_impl.h"
arch/alpha/kernel/sys_takara.c+0−1
@@ -16,7 +16,6 @@ · 15 unmodified lines
1616 #include <linux/init.h>
1717
1818 #include <asm/ptrace.h>
19−#include <asm/system.h>
2019 #include <asm/dma.h>
2120 #include <asm/irq.h>
2221 #include <asm/mmu_context.h>
arch/alpha/kernel/sys_titan.c+2−2
@@ -21,7 +21,6 @@ · 20 unmodified lines
2121 #include <linux/bitops.h>
2222
2323 #include <asm/ptrace.h>
24−#include <asm/system.h>
2524 #include <asm/dma.h>
2625 #include <asm/irq.h>
2726 #include <asm/mmu_context.h>
@@ -331,7 +330,8 @@ titan_init_pci(void) · 303 unmodified lines
331330 */
332331 titan_late_init();
333332
334− pci_probe_only = 1;
333+ /* Indicate that we trust the console to configure things properly */
334+ pci_set_flags(PCI_PROBE_ONLY);
335335 common_init_pci();
336336 SMC669_Init(0);
337337 locate_and_init_vga(NULL);
arch/alpha/kernel/sys_wildfire.c+0−1
@@ -15,7 +15,6 @@ · 14 unmodified lines
1515 #include <linux/bitops.h>
1616
1717 #include <asm/ptrace.h>
18−#include <asm/system.h>
1918 #include <asm/dma.h>
2019 #include <asm/irq.h>
2120 #include <asm/mmu_context.h>
arch/alpha/kernel/traps.c+1−0
@@ -24,6 +24,7 @@ · 23 unmodified lines
2424 #include <asm/sysinfo.h>
2525 #include <asm/hwrpb.h>
2626 #include <asm/mmu_context.h>
27+#include <asm/special_insns.h>
2728
2829 #include "proto.h"
2930
arch/alpha/kernel/vmlinux.lds.S+2−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #include <asm/thread_info.h>
33 #include <asm/cache.h>
44 #include <asm/page.h>
5+#include <asm/setup.h>
56
67 OUTPUT_FORMAT("elf64-alpha")
78 OUTPUT_ARCH(alpha)
@@ -25,6 +26,7 @@ SECTIONS · 17 unmodified lines
2526 *(.fixup)
2627 *(.gnu.warning)
2728 } :kernel
29+ swapper_pg_dir = SWAPPER_PGD;
2830 _etext = .; /* End of text section */
2931
3032 NOTES :kernel :note
arch/alpha/lib/stacktrace.c+0−1
@@ -1,5 +1,4 @@
11 #include <linux/kernel.h>
2−#include <asm/system.h>
32
43 typedef unsigned int instr;
54
arch/alpha/mm/fault.c+0−1
@@ -24,7 +24,6 @@ · 23 unmodified lines
2424 #include <linux/interrupt.h>
2525 #include <linux/module.h>
2626
27−#include <asm/system.h>
2827 #include <asm/uaccess.h>
2928
3029 extern void die_if_kernel(char *,struct pt_regs *,long, unsigned long *);
arch/alpha/mm/init.c+1−1
@@ -22,7 +22,6 @@ · 21 unmodified lines
2222 #include <linux/vmalloc.h>
2323 #include <linux/gfp.h>
2424
25−#include <asm/system.h>
2625 #include <asm/uaccess.h>
2726 #include <asm/pgtable.h>
2827 #include <asm/pgalloc.h>
@@ -31,6 +30,7 @@ · 2 unmodified lines
3130 #include <asm/mmu_context.h>
3231 #include <asm/console.h>
3332 #include <asm/tlb.h>
33+#include <asm/setup.h>
3434
3535 extern void die_if_kernel(char *,struct pt_regs *,long);
3636
arch/alpha/oprofile/common.c+0−1
@@ -12,7 +12,6 @@ · 11 unmodified lines
1212 #include <linux/smp.h>
1313 #include <linux/errno.h>
1414 #include <asm/ptrace.h>
15−#include <asm/system.h>
1615
1716 #include "op_impl.h"
1817
arch/alpha/oprofile/op_model_ev4.c+0−1
@@ -11,7 +11,6 @@ · 10 unmodified lines
1111 #include <linux/init.h>
1212 #include <linux/smp.h>
1313 #include <asm/ptrace.h>
14−#include <asm/system.h>
1514
1615 #include "op_impl.h"
1716
arch/alpha/oprofile/op_model_ev5.c+0−1
@@ -11,7 +11,6 @@ · 10 unmodified lines
1111 #include <linux/init.h>
1212 #include <linux/smp.h>
1313 #include <asm/ptrace.h>
14−#include <asm/system.h>
1514
1615 #include "op_impl.h"
1716
arch/alpha/oprofile/op_model_ev6.c+0−1
@@ -11,7 +11,6 @@ · 10 unmodified lines
1111 #include <linux/init.h>
1212 #include <linux/smp.h>
1313 #include <asm/ptrace.h>
14−#include <asm/system.h>
1514
1615 #include "op_impl.h"
1716
arch/alpha/oprofile/op_model_ev67.c+0−1
@@ -12,7 +12,6 @@ · 11 unmodified lines
1212 #include <linux/init.h>
1313 #include <linux/smp.h>
1414 #include <asm/ptrace.h>
15−#include <asm/system.h>
1615
1716 #include "op_impl.h"
1817
arch/arm/Kconfig+60−36
@@ -9,6 +9,7 @@ config ARM · 8 unmodified lines
99 select SYS_SUPPORTS_APM_EMULATION
1010 select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI)
1111 select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
12+ select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
1213 select HAVE_ARCH_KGDB
1314 select HAVE_KPROBES if !XIP_KERNEL
1415 select HAVE_KRETPROBES if (HAVE_KPROBES)
@@ -21,6 +22,7 @@ config ARM · 6 unmodified lines
2122 select HAVE_KERNEL_GZIP
2223 select HAVE_KERNEL_LZO
2324 select HAVE_KERNEL_LZMA
25+ select HAVE_KERNEL_XZ
2426 select HAVE_IRQ_WORK
2527 select HAVE_PERF_EVENTS
2628 select PERF_USE_VMALLOC
@@ -28,10 +30,10 @@ config ARM · 1 unmodified line
2830 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
2931 select HAVE_C_RECORDMCOUNT
3032 select HAVE_GENERIC_HARDIRQS
31− select HAVE_SPARSE_IRQ
3233 select GENERIC_IRQ_SHOW
3334 select CPU_PM if (SUSPEND || CPU_IDLE)
3435 select GENERIC_PCI_IOMAP
36+ select HAVE_BPF_JIT if NET
3537 help
3638 The ARM series is a line of low-power-consumption RISC chip designs
3739 licensed by ARM Ltd and targeted at embedded applications and
@@ -52,9 +54,6 @@ config MIGHT_HAVE_PCI · 14 unmodified lines
5254 config SYS_SUPPORTS_APM_EMULATION
5355 bool
5456
55−config HAVE_SCHED_CLOCK
56− bool
57−
5857 config GENERIC_GPIO
5958 bool
6059
@@ -180,12 +179,18 @@ config ZONE_DMA · 119 unmodified lines
180179 config NEED_DMA_MAP_STATE
181180 def_bool y
182181
182+config ARCH_HAS_DMA_SET_COHERENT_MASK
183+ bool
184+
183185 config GENERIC_ISA_DMA
184186 bool
185187
186188 config FIQ
187189 bool
188190
191+config NEED_RET_TO_USER
192+ bool
193+
189194 config ARCH_MTD_XIP
190195 bool
191196
@@ -214,6 +219,13 @@ config ARM_PATCH_PHYS_VIRT · 22 unmodified lines
214219 this feature (eg, building a kernel for a single machine) and
215220 you need to shrink the kernel to the minimal size.
216221
222+config NEED_MACH_IO_H
223+ bool
224+ help
225+ Select this when mach/io.h is required to provide special
226+ definitions for this platform. The need for mach/io.h should
227+ be avoided when possible.
228+
217229 config NEED_MACH_MEMORY_H
218230 bool
219231 help
@@ -265,7 +277,9 @@ config ARCH_INTEGRATOR · 45 unmodified lines
265277 select GENERIC_CLOCKEVENTS
266278 select PLAT_VERSATILE
267279 select PLAT_VERSATILE_FPGA_IRQ
280+ select NEED_MACH_IO_H
268281 select NEED_MACH_MEMORY_H
282+ select SPARSE_IRQ
269283 help
270284 Support for ARM's Integrator platform.
271285
@@ -312,6 +326,7 @@ config ARCH_VEXPRESS · 40 unmodified lines
312326 select HAVE_CLK
313327 select HAVE_PATA_PLATFORM
314328 select ICST
329+ select NO_IOPORT
315330 select PLAT_VERSATILE
316331 select PLAT_VERSATILE_CLCD
317332 help
@@ -322,9 +337,11 @@ config ARCH_AT91 · 4 unmodified lines
322337 select ARCH_REQUIRE_GPIOLIB
323338 select HAVE_CLK
324339 select CLKDEV_LOOKUP
340+ select IRQ_DOMAIN
341+ select NEED_MACH_IO_H if PCCARD
325342 help
326343 This enables support for systems based on the Atmel AT91RM9200,
327− AT91SAM9 and AT91CAP9 processors.
344+ AT91SAM9 processors.
328345
329346 config ARCH_BCMRING
330347 bool "Broadcom BCMRING"
@@ -350,6 +367,7 @@ config ARCH_HIGHBANK · 19 unmodified lines
350367 select GENERIC_CLOCKEVENTS
351368 select HAVE_ARM_SCU
352369 select HAVE_SMP
370+ select SPARSE_IRQ
353371 select USE_OF
354372 help
355373 Support for the Calxeda Highbank SoC based boards.
@@ -400,6 +418,7 @@ config ARCH_EBSA110 · 44 unmodified lines
400418 select ISA
401419 select NO_IOPORT
402420 select ARCH_USES_GETTIMEOFFSET
421+ select NEED_MACH_IO_H
403422 select NEED_MACH_MEMORY_H
404423 help
405424 This is an evaluation board for the StrongARM processor available
@@ -426,6 +445,7 @@ config ARCH_FOOTBRIDGE · 20 unmodified lines
426445 select FOOTBRIDGE
427446 select GENERIC_CLOCKEVENTS
428447 select HAVE_IDE
448+ select NEED_MACH_IO_H
429449 select NEED_MACH_MEMORY_H
430450 help
431451 Support for systems based on the DC21285 companion chip
@@ -438,7 +458,6 @@ config ARCH_MXC · 6 unmodified lines
438458 select CLKDEV_LOOKUP
439459 select CLKSRC_MMIO
440460 select GENERIC_IRQ_CHIP
441− select HAVE_SCHED_CLOCK
442461 select MULTI_IRQ_HANDLER
443462 help
444463 Support for Freescale MXC/iMX-based family of processors
@@ -478,7 +497,9 @@ config ARCH_IOP13XX · 33 unmodified lines
478497 select PCI
479498 select ARCH_SUPPORTS_MSI
480499 select VMSPLIT_1G
500+ select NEED_MACH_IO_H
481501 select NEED_MACH_MEMORY_H
502+ select NEED_RET_TO_USER
482503 help
483504 Support for Intel's IOP13XX (XScale) family of processors.
484505
@@ -486,6 +507,8 @@ config ARCH_IOP32X · 1 unmodified line
486507 bool "IOP32x-based"
487508 depends on MMU
488509 select CPU_XSCALE
510+ select NEED_MACH_IO_H
511+ select NEED_RET_TO_USER
489512 select PLAT_IOP
490513 select PCI
491514 select ARCH_REQUIRE_GPIOLIB
@@ -497,6 +520,8 @@ config ARCH_IOP33X · 5 unmodified lines
497520 bool "IOP33x-based"
498521 depends on MMU
499522 select CPU_XSCALE
523+ select NEED_MACH_IO_H
524+ select NEED_RET_TO_USER
500525 select PLAT_IOP
501526 select PCI
502527 select ARCH_REQUIRE_GPIOLIB
@@ -509,6 +534,7 @@ config ARCH_IXP23XX · 6 unmodified lines
509534 select CPU_XSC3
510535 select PCI
511536 select ARCH_USES_GETTIMEOFFSET
537+ select NEED_MACH_IO_H
512538 select NEED_MACH_MEMORY_H
513539 help
514540 Support for Intel's IXP23xx (XScale) family of processors.
@@ -519,6 +545,7 @@ config ARCH_IXP2000 · 4 unmodified lines
519545 select CPU_XSCALE
520546 select PCI
521547 select ARCH_USES_GETTIMEOFFSET
548+ select NEED_MACH_IO_H
522549 select NEED_MACH_MEMORY_H
523550 help
524551 Support for Intel's IXP2400/2800 (XScale) family of processors.
@@ -526,12 +553,13 @@ config ARCH_IXP2000 · 1 unmodified line
526553 config ARCH_IXP4XX
527554 bool "IXP4xx-based"
528555 depends on MMU
556+ select ARCH_HAS_DMA_SET_COHERENT_MASK
529557 select CLKSRC_MMIO
530558 select CPU_XSCALE
531559 select GENERIC_GPIO
532560 select GENERIC_CLOCKEVENTS
533− select HAVE_SCHED_CLOCK
534561 select MIGHT_HAVE_PCI
562+ select NEED_MACH_IO_H
535563 select DMABOUNCE if PCI
536564 help
537565 Support for Intel's IXP4XX (XScale) family of processors.
@@ -542,6 +570,7 @@ config ARCH_DOVE · 4 unmodified lines
542570 select PCI
543571 select ARCH_REQUIRE_GPIOLIB
544572 select GENERIC_CLOCKEVENTS
573+ select NEED_MACH_IO_H
545574 select PLAT_ORION
546575 help
547576 Support for the Marvell Dove SoC 88AP510
@@ -552,6 +581,7 @@ config ARCH_KIRKWOOD · 4 unmodified lines
552581 select PCI
553582 select ARCH_REQUIRE_GPIOLIB
554583 select GENERIC_CLOCKEVENTS
584+ select NEED_MACH_IO_H
555585 select PLAT_ORION
556586 help
557587 Support for the following Marvell Kirkwood series SoCs:
@@ -576,6 +606,7 @@ config ARCH_MV78XX0 · 18 unmodified lines
576606 select PCI
577607 select ARCH_REQUIRE_GPIOLIB
578608 select GENERIC_CLOCKEVENTS
609+ select NEED_MACH_IO_H
579610 select PLAT_ORION
580611 help
581612 Support for the following Marvell MV78xx0 series SoCs:
@@ -601,7 +632,6 @@ config ARCH_MMP · 19 unmodified lines
601632 select CLKDEV_LOOKUP
602633 select GENERIC_CLOCKEVENTS
603634 select GPIO_PXA
604− select HAVE_SCHED_CLOCK
605635 select TICK_ONESHOT
606636 select PLAT_PXA
607637 select SPARSE_IRQ
@@ -642,9 +672,9 @@ config ARCH_TEGRA · 34 unmodified lines
642672 select GENERIC_CLOCKEVENTS
643673 select GENERIC_GPIO
644674 select HAVE_CLK
645− select HAVE_SCHED_CLOCK
646675 select HAVE_SMP
647676 select MIGHT_HAVE_CACHE_L2X0
677+ select NEED_MACH_IO_H if PCI
648678 select ARCH_HAS_CPUFREQ
649679 help
650680 This enables support for NVIDIA Tegra based systems (Tegra APX,
@@ -659,7 +689,6 @@ config ARCH_PICOXCELL · 8 unmodified lines
659689 select DW_APB_TIMER
660690 select GENERIC_CLOCKEVENTS
661691 select GENERIC_GPIO
662− select HAVE_SCHED_CLOCK
663692 select HAVE_TCM
664693 select NO_IOPORT
665694 select SPARSE_IRQ
@@ -687,7 +716,6 @@ config ARCH_PXA · 21 unmodified lines
687716 select ARCH_REQUIRE_GPIOLIB
688717 select GENERIC_CLOCKEVENTS
689718 select GPIO_PXA
690− select HAVE_SCHED_CLOCK
691719 select TICK_ONESHOT
692720 select PLAT_PXA
693721 select SPARSE_IRQ
@@ -731,7 +759,6 @@ config ARCH_RPC · 37 unmodified lines
731759 bool "RiscPC"
732760 select ARCH_ACORN
733761 select FIQ
734− select TIMER_ACORN
735762 select ARCH_MAY_HAVE_PC_FDC
736763 select HAVE_PATA_PLATFORM
737764 select ISA_DMA_API
@@ -739,6 +766,7 @@ config ARCH_RPC · 1 unmodified line
739766 select ARCH_SPARSEMEM_ENABLE
740767 select ARCH_USES_GETTIMEOFFSET
741768 select HAVE_IDE
769+ select NEED_MACH_IO_H
742770 select NEED_MACH_MEMORY_H
743771 help
744772 On the Acorn Risc-PC, Linux can support the internal IDE disk and
@@ -754,31 +782,31 @@ config ARCH_SA1100 · 9 unmodified lines
754782 select ARCH_HAS_CPUFREQ
755783 select CPU_FREQ
756784 select GENERIC_CLOCKEVENTS
757− select HAVE_CLK
758− select HAVE_SCHED_CLOCK
785+ select CLKDEV_LOOKUP
759786 select TICK_ONESHOT
760787 select ARCH_REQUIRE_GPIOLIB
761788 select HAVE_IDE
762789 select NEED_MACH_MEMORY_H
790+ select SPARSE_IRQ
763791 help
764792 Support for StrongARM 11x0 based boards.
765793
766−config ARCH_S3C2410
767− bool "Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443, S3C2450"
794+config ARCH_S3C24XX
795+ bool "Samsung S3C24XX SoCs"
768796 select GENERIC_GPIO
769797 select ARCH_HAS_CPUFREQ
770798 select HAVE_CLK
771799 select CLKDEV_LOOKUP
772800 select ARCH_USES_GETTIMEOFFSET
773801 select HAVE_S3C2410_I2C if I2C
802+ select HAVE_S3C_RTC if RTC_CLASS
803+ select HAVE_S3C2410_WATCHDOG if WATCHDOG
804+ select NEED_MACH_IO_H
774805 help
775− Samsung S3C2410X CPU based systems, such as the Simtec Electronics
776− BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
777− the Samsung SMDK2410 development board (and derivatives).
778−
779− Note, the S3C2416 and the S3C2450 are so close that they even share
780− the same SoC ID code. This means that there is no separate machine
781− directory (no arch/arm/mach-s3c2450) as the S3C2416 was first.
806+ Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
807+ and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
808+ (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
809+ Samsung SMDK2410 development board (and derivatives).
782810
783811 config ARCH_S3C64XX
784812 bool "Samsung S3C64XX"
@@ -812,7 +840,6 @@ config ARCH_S5P64X0 · 27 unmodified lines
812840 select CLKSRC_MMIO
813841 select HAVE_S3C2410_WATCHDOG if WATCHDOG
814842 select GENERIC_CLOCKEVENTS
815− select HAVE_SCHED_CLOCK
816843 select HAVE_S3C2410_I2C if I2C
817844 select HAVE_S3C_RTC if RTC_CLASS
818845 help
@@ -843,7 +870,6 @@ config ARCH_S5PV210 · 24 unmodified lines
843870 select CLKSRC_MMIO
844871 select ARCH_HAS_CPUFREQ
845872 select GENERIC_CLOCKEVENTS
846− select HAVE_SCHED_CLOCK
847873 select HAVE_S3C2410_I2C if I2C
848874 select HAVE_S3C_RTC if RTC_CLASS
849875 select HAVE_S3C2410_WATCHDOG if WATCHDOG
@@ -877,6 +903,7 @@ config ARCH_SHARK · 27 unmodified lines
877903 select PCI
878904 select ARCH_USES_GETTIMEOFFSET
879905 select NEED_MACH_MEMORY_H
906+ select NEED_MACH_IO_H
880907 help
881908 Support for the StrongARM based Digital DNARD machine, also known
882909 as "Shark" (<http://www.shark-linux.de/shark.html>).
@@ -886,7 +913,6 @@ config ARCH_U300 · 3 unmodified lines
886913 depends on MMU
887914 select CLKSRC_MMIO
888915 select CPU_ARM926T
889− select HAVE_SCHED_CLOCK
890916 select HAVE_TCM
891917 select ARM_AMBA
892918 select ARM_PATCH_PHYS_VIRT
@@ -901,6 +927,7 @@ config ARCH_U300 · 8 unmodified lines
901927
902928 config ARCH_U8500
903929 bool "ST-Ericsson U8500 Series"
930+ depends on MMU
904931 select CPU_V7
905932 select ARM_AMBA
906933 select GENERIC_CLOCKEVENTS
@@ -944,7 +971,6 @@ config ARCH_OMAP · 37 unmodified lines
944971 select ARCH_HAS_CPUFREQ
945972 select CLKSRC_MMIO
946973 select GENERIC_CLOCKEVENTS
947− select HAVE_SCHED_CLOCK
948974 select ARCH_HAS_HOLES_MEMORYMODEL
949975 help
950976 Support for TI's OMAP platform (OMAP1/2/3/4).
@@ -1066,12 +1092,10 @@ source "arch/arm/plat-s5p/Kconfig" · 115 unmodified lines
10661092
10671093 source "arch/arm/plat-spear/Kconfig"
10681094
1069−if ARCH_S3C2410
1070−source "arch/arm/mach-s3c2410/Kconfig"
1095+source "arch/arm/mach-s3c24xx/Kconfig"
1096+if ARCH_S3C24XX
10711097 source "arch/arm/mach-s3c2412/Kconfig"
1072−source "arch/arm/mach-s3c2416/Kconfig"
10731098 source "arch/arm/mach-s3c2440/Kconfig"
1074−source "arch/arm/mach-s3c2443/Kconfig"
10751099 endif
10761100
10771101 if ARCH_S3C64XX
@@ -1110,13 +1134,11 @@ config ARCH_ACORN · 32 unmodified lines
11101134 config PLAT_IOP
11111135 bool
11121136 select GENERIC_CLOCKEVENTS
1113− select HAVE_SCHED_CLOCK
11141137
11151138 config PLAT_ORION
11161139 bool
11171140 select CLKSRC_MMIO
11181141 select GENERIC_IRQ_CHIP
1119− select HAVE_SCHED_CLOCK
11201142
11211143 config PLAT_PXA
11221144 bool
@@ -1127,6 +1149,7 @@ config PLAT_VERSATILE · 4 unmodified lines
11271149 config ARM_TIMER_SP804
11281150 bool
11291151 select CLKSRC_MMIO
1152+ select HAVE_SCHED_CLOCK
11301153
11311154 source arch/arm/mm/Kconfig
11321155
@@ -1577,7 +1600,8 @@ config LOCAL_TIMERS · 444 unmodified lines
15771600 config ARCH_NR_GPIO
15781601 int
15791602 default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
1580− default 350 if ARCH_U8500
1603+ default 355 if ARCH_U8500
1604+ default 264 if MACH_H4700
15811605 default 0
15821606 help
15831607 Maximum number of GPIOs in the system.
@@ -1588,7 +1612,7 @@ source kernel/Kconfig.preempt · 4 unmodified lines
15881612
15891613 config HZ
15901614 int
1591− default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P64X0 || \
1615+ default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \
15921616 ARCH_S5PV210 || ARCH_EXYNOS4
15931617 default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
15941618 default AT91_TIMER_HZ if ARCH_AT91
@@ -2114,7 +2138,7 @@ config CPU_FREQ_S3C · 519 unmodified lines
21142138
21152139 config CPU_FREQ_S3C24XX
21162140 bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"
2117− depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL
2141+ depends on ARCH_S3C24XX && CPU_FREQ && EXPERIMENTAL
21182142 select CPU_FREQ_S3C
21192143 help
21202144 This enables the CPUfreq driver for the Samsung S3C24XX family
arch/arm/Kconfig.debug+98−82
@@ -81,47 +81,14 @@ choice · 80 unmodified lines
8181 prompt "Kernel low-level debugging port"
8282 depends on DEBUG_LL
8383
84− config DEBUG_LL_UART_NONE
85− bool "No low-level debugging UART"
86− help
87− Say Y here if your platform doesn't provide a UART option
88− below. This relies on your platform choosing the right UART
89− definition internally in order for low-level debugging to
90− work.
91−
92− config DEBUG_ICEDCC
93− bool "Kernel low-level debugging via EmbeddedICE DCC channel"
94− help
95− Say Y here if you want the debug print routines to direct
96− their output to the EmbeddedICE macrocell's DCC channel using
97− co-processor 14. This is known to work on the ARM9 style ICE
98− channel and on the XScale with the PEEDI.
99−
100− Note that the system will appear to hang during boot if there
101− is nothing connected to read from the DCC.
102−
10384 config AT91_DEBUG_LL_DBGU0
10485 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl"
10586 depends on HAVE_AT91_DBGU0
10687
10788 config AT91_DEBUG_LL_DBGU1
108− bool "Kernel low-level debugging on 9263, 9g45 and cap9"
89+ bool "Kernel low-level debugging on 9263 and 9g45"
10990 depends on HAVE_AT91_DBGU1
11091
111− config DEBUG_FOOTBRIDGE_COM1
112− bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
113− depends on FOOTBRIDGE
114− help
115− Say Y here if you want the debug print routines to direct
116− their output to the 8250 at PCI COM1.
117−
118− config DEBUG_DC21285_PORT
119− bool "Kernel low-level debugging messages via footbridge serial port"
120− depends on FOOTBRIDGE
121− help
122− Say Y here if you want the debug print routines to direct
123− their output to the serial port in the DC21285 (Footbridge).
124−
12592 config DEBUG_CLPS711X_UART1
12693 bool "Kernel low-level debugging messages via UART1"
12794 depends on ARCH_CLPS711X
@@ -136,6 +103,20 @@ choice · 8 unmodified lines
136103 Say Y here if you want the debug print routines to direct
137104 their output to the second serial port on these devices.
138105
106+ config DEBUG_DC21285_PORT
107+ bool "Kernel low-level debugging messages via footbridge serial port"
108+ depends on FOOTBRIDGE
109+ help
110+ Say Y here if you want the debug print routines to direct
111+ their output to the serial port in the DC21285 (Footbridge).
112+
113+ config DEBUG_FOOTBRIDGE_COM1
114+ bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
115+ depends on FOOTBRIDGE
116+ help
117+ Say Y here if you want the debug print routines to direct
118+ their output to the 8250 at PCI COM1.
119+
139120 config DEBUG_HIGHBANK_UART
140121 bool "Kernel low-level debugging messages via Highbank UART"
141122 depends on ARCH_HIGHBANK
@@ -199,45 +180,49 @@ choice · 57 unmodified lines
199180 Say Y here if you want kernel low-level debugging support
200181 on i.MX50 or i.MX53.
201182
202− config DEBUG_IMX6Q_UART
203− bool "i.MX6Q Debug UART"
183+ config DEBUG_IMX6Q_UART4
184+ bool "i.MX6Q Debug UART4"
204185 depends on SOC_IMX6Q
205186 help
206187 Say Y here if you want kernel low-level debugging support
207− on i.MX6Q.
188+ on i.MX6Q UART4.
208189
209− config DEBUG_S3C_UART0
210− depends on PLAT_SAMSUNG
211− bool "Use S3C UART 0 for low-level debug"
190+ config DEBUG_MSM_UART1
191+ bool "Kernel low-level debugging messages via MSM UART1"
192+ depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
212193 help
213194 Say Y here if you want the debug print routines to direct
214− their output to UART 0. The port must have been initialised
215− by the boot-loader before use.
216−
217− The uncompressor code port configuration is now handled
218− by CONFIG_S3C_LOWLEVEL_UART_PORT.
195+ their output to the first serial port on MSM devices.
219196
220− config DEBUG_S3C_UART1
221− depends on PLAT_SAMSUNG
222− bool "Use S3C UART 1 for low-level debug"
197+ config DEBUG_MSM_UART2
198+ bool "Kernel low-level debugging messages via MSM UART2"
199+ depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
223200 help
224201 Say Y here if you want the debug print routines to direct
225− their output to UART 1. The port must have been initialised
226− by the boot-loader before use.
202+ their output to the second serial port on MSM devices.
227203
228− The uncompressor code port configuration is now handled
229− by CONFIG_S3C_LOWLEVEL_UART_PORT.
204+ config DEBUG_MSM_UART3
205+ bool "Kernel low-level debugging messages via MSM UART3"
206+ depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
207+ help
208+ Say Y here if you want the debug print routines to direct
209+ their output to the third serial port on MSM devices.
230210
231− config DEBUG_S3C_UART2
232− depends on PLAT_SAMSUNG
233− bool "Use S3C UART 2 for low-level debug"
211+ config DEBUG_MSM8660_UART
212+ bool "Kernel low-level debugging messages via MSM 8660 UART"
213+ depends on ARCH_MSM8X60
214+ select MSM_HAS_DEBUG_UART_HS
234215 help
235216 Say Y here if you want the debug print routines to direct
236− their output to UART 2. The port must have been initialised
237− by the boot-loader before use.
217+ their output to the serial port on MSM 8660 devices.
238218
239− The uncompressor code port configuration is now handled
240− by CONFIG_S3C_LOWLEVEL_UART_PORT.
219+ config DEBUG_MSM8960_UART
220+ bool "Kernel low-level debugging messages via MSM 8960 UART"
221+ depends on ARCH_MSM8960
222+ select MSM_HAS_DEBUG_UART_HS
223+ help
224+ Say Y here if you want the debug print routines to direct
225+ their output to the serial port on MSM 8960 devices.
241226
242227 config DEBUG_REALVIEW_STD_PORT
243228 bool "RealView Default UART"
@@ -255,42 +240,73 @@ choice · 11 unmodified lines
255240 their output to the standard serial port on the RealView
256241 PB1176 platform.
257242
258− config DEBUG_MSM_UART1
259− bool "Kernel low-level debugging messages via MSM UART1"
260− depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
243+ config DEBUG_S3C_UART0
244+ depends on PLAT_SAMSUNG
245+ bool "Use S3C UART 0 for low-level debug"
261246 help
262247 Say Y here if you want the debug print routines to direct
263− their output to the first serial port on MSM devices.
248+ their output to UART 0. The port must have been initialised
249+ by the boot-loader before use.
264250
265− config DEBUG_MSM_UART2
266− bool "Kernel low-level debugging messages via MSM UART2"
267− depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
251+ The uncompressor code port configuration is now handled
252+ by CONFIG_S3C_LOWLEVEL_UART_PORT.
253+
254+ config DEBUG_S3C_UART1
255+ depends on PLAT_SAMSUNG
256+ bool "Use S3C UART 1 for low-level debug"
268257 help
269258 Say Y here if you want the debug print routines to direct
270− their output to the second serial port on MSM devices.
259+ their output to UART 1. The port must have been initialised
260+ by the boot-loader before use.
271261
272− config DEBUG_MSM_UART3
273− bool "Kernel low-level debugging messages via MSM UART3"
274− depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
262+ The uncompressor code port configuration is now handled
263+ by CONFIG_S3C_LOWLEVEL_UART_PORT.
264+
265+ config DEBUG_S3C_UART2
266+ depends on PLAT_SAMSUNG
267+ bool "Use S3C UART 2 for low-level debug"
275268 help
276269 Say Y here if you want the debug print routines to direct
277− their output to the third serial port on MSM devices.
270+ their output to UART 2. The port must have been initialised
271+ by the boot-loader before use.
278272
279− config DEBUG_MSM8660_UART
280− bool "Kernel low-level debugging messages via MSM 8660 UART"
281− depends on ARCH_MSM8X60
282− select MSM_HAS_DEBUG_UART_HS
273+ The uncompressor code port configuration is now handled
274+ by CONFIG_S3C_LOWLEVEL_UART_PORT.
275+
276+ config DEBUG_LL_UART_NONE
277+ bool "No low-level debugging UART"
283278 help
284− Say Y here if you want the debug print routines to direct
285− their output to the serial port on MSM 8660 devices.
279+ Say Y here if your platform doesn't provide a UART option
280+ below. This relies on your platform choosing the right UART
281+ definition internally in order for low-level debugging to
282+ work.
286283
287− config DEBUG_MSM8960_UART
288− bool "Kernel low-level debugging messages via MSM 8960 UART"
289− depends on ARCH_MSM8960
290− select MSM_HAS_DEBUG_UART_HS
284+ config DEBUG_ICEDCC
285+ bool "Kernel low-level debugging via EmbeddedICE DCC channel"
291286 help
292287 Say Y here if you want the debug print routines to direct
293− their output to the serial port on MSM 8960 devices.
288+ their output to the EmbeddedICE macrocell's DCC channel using
289+ co-processor 14. This is known to work on the ARM9 style ICE
290+ channel and on the XScale with the PEEDI.
291+
292+ Note that the system will appear to hang during boot if there
293+ is nothing connected to read from the DCC.
294+
295+ config DEBUG_SEMIHOSTING
296+ bool "Kernel low-level debug output via semihosting I"
297+ help
298+ Semihosting enables code running on an ARM target to use
299+ the I/O facilities on a host debugger/emulator through a
300+ simple SVC calls. The host debugger or emulator must have
301+ semihosting enabled for the special svc call to be trapped
302+ otherwise the kernel will crash.
303+
304+ This is known to work with OpenOCD, as wellas
305+ ARM's Fast Models, or any other controlling environment
306+ that implements semihosting.
307+
308+ For more details about semihosting, please see
309+ chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd.
294310
295311 endchoice
296312
arch/arm/Makefile+3−1
@@ -174,12 +174,13 @@ machine-$(CONFIG_ARCH_PRIMA2) := prima2 · 173 unmodified lines
174174 machine-$(CONFIG_ARCH_PXA) := pxa
175175 machine-$(CONFIG_ARCH_REALVIEW) := realview
176176 machine-$(CONFIG_ARCH_RPC) := rpc
177−machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2412 s3c2416 s3c2440 s3c2443
177+machine-$(CONFIG_ARCH_S3C24XX) := s3c24xx s3c2412 s3c2440
178178 machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx
179179 machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0
180180 machine-$(CONFIG_ARCH_S5PC100) := s5pc100
181181 machine-$(CONFIG_ARCH_S5PV210) := s5pv210
182182 machine-$(CONFIG_ARCH_EXYNOS4) := exynos
183+machine-$(CONFIG_ARCH_EXYNOS5) := exynos
183184 machine-$(CONFIG_ARCH_SA1100) := sa1100
184185 machine-$(CONFIG_ARCH_SHARK) := shark
185186 machine-$(CONFIG_ARCH_SHMOBILE) := shmobile
@@ -252,6 +253,7 @@ core-$(CONFIG_VFP) += arch/arm/vfp/ · 66 unmodified lines
252253
253254 # If we have a machine-specific directory, then include it in the build.
254255 core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
256+core-y += arch/arm/net/
255257 core-y += $(machdirs) $(platdirs)
256258
257259 drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
arch/arm/boot/Makefile+9−14
@@ -11,8 +11,6 @@ · 10 unmodified lines
1111 # Copyright (C) 1995-2002 Russell King
1212 #
1313
14−MKIMAGE := $(srctree)/scripts/mkuboot.sh
15−
1614 ifneq ($(MACHINE),)
1715 include $(srctree)/$(MACHINE)/Makefile.boot
1816 endif
@@ -69,22 +67,19 @@ $(obj)/dtbs: $(addprefix $(obj)/, $(dtb-y)) · 50 unmodified lines
6967
7068 clean-files := *.dtb
7169
72−quiet_cmd_uimage = UIMAGE $@
73− cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
74− -C none -a $(LOADADDR) -e $(STARTADDR) \
75− -n 'Linux-$(KERNELRELEASE)' -d $< $@
76−
77−ifeq ($(CONFIG_ZBOOT_ROM),y)
78−$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
70+ifneq ($(LOADADDR),)
71+ UIMAGE_LOADADDR=$(LOADADDR)
7972 else
80−$(obj)/uImage: LOADADDR=$(ZRELADDR)
73+ ifeq ($(CONFIG_ZBOOT_ROM),y)
74+ UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
75+ else
76+ UIMAGE_LOADADDR=$(ZRELADDR)
77+ endif
8178 endif
8279
83−$(obj)/uImage: STARTADDR=$(LOADADDR)
84−
8580 check_for_multiple_loadaddr = \
86−if [ $(words $(LOADADDR)) -gt 1 ]; then \
87− echo 'multiple load addresses: $(LOADADDR)'; \
81+if [ $(words $(UIMAGE_LOADADDR)) -gt 1 ]; then \
82+ echo 'multiple load addresses: $(UIMAGE_LOADADDR)'; \
8883 echo 'This is incompatible with uImages'; \
8984 echo 'Specify LOADADDR on the commandline to build an uImage'; \
9085 false; \
arch/arm/boot/compressed/.gitignore+2−0
@@ -1,8 +1,10 @@
1+ashldi3.S
12 font.c
23 lib1funcs.S
34 piggy.gzip
45 piggy.lzo
56 piggy.lzma
7+piggy.xzkern
68 vmlinux
79 vmlinux.lds
810
arch/arm/boot/compressed/Makefile+12−3
@@ -92,6 +92,7 @@ SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/BSS_START/$(ZBSSADDR)/ · 91 unmodified lines
9292 suffix_$(CONFIG_KERNEL_GZIP) = gzip
9393 suffix_$(CONFIG_KERNEL_LZO) = lzo
9494 suffix_$(CONFIG_KERNEL_LZMA) = lzma
95+suffix_$(CONFIG_KERNEL_XZ) = xzkern
9596
9697 # Borrowed libfdt files for the ATAG compatibility mode
9798
@@ -112,10 +113,12 @@ endif · 14 unmodified lines
112113
113114 targets := vmlinux vmlinux.lds \
114115 piggy.$(suffix_y) piggy.$(suffix_y).o \
115− lib1funcs.o lib1funcs.S font.o font.c head.o misc.o $(OBJS)
116+ lib1funcs.o lib1funcs.S ashldi3.o ashldi3.S \
117+ font.o font.c head.o misc.o $(OBJS)
116118
117119 # Make sure files are removed during clean
118−extra-y += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S $(libfdt) $(libfdt_hdrs)
120+extra-y += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern \
121+ lib1funcs.S ashldi3.S $(libfdt) $(libfdt_hdrs)
119122
120123 ifeq ($(CONFIG_FUNCTION_TRACER),y)
121124 ORIG_CFLAGS := $(KBUILD_CFLAGS)
@@ -151,6 +154,12 @@ lib1funcs = $(obj)/lib1funcs.o · 29 unmodified lines
151154 $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S
152155 $(call cmd,shipped)
153156
157+# For __aeabi_llsl
158+ashldi3 = $(obj)/ashldi3.o
159+
160+$(obj)/ashldi3.S: $(srctree)/arch/$(SRCARCH)/lib/ashldi3.S
161+ $(call cmd,shipped)
162+
154163 # We need to prevent any GOTOFF relocs being used with references
155164 # to symbols in the .bss section since we cannot relocate them
156165 # independently from the rest at run time. This can be achieved by
@@ -172,7 +181,7 @@ if [ $(words $(ZRELADDR)) -gt 1 -a "$(CONFIG_AUTO_ZRELADDR)" = "" ]; then \ · 15 unmodified lines
172181 fi
173182
174183 $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \
175− $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE
184+ $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) $(ashldi3) FORCE
176185 @$(check_for_multiple_zreladdr)
177186 $(call if_changed,ld)
178187 @$(check_for_bad_syms)
arch/arm/boot/compressed/atags_to_fdt.c+2−0
@@ -77,6 +77,8 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space) · 76 unmodified lines
7777 } else if (atag->hdr.tag == ATAG_MEM) {
7878 if (memcount >= sizeof(mem_reg_property)/4)
7979 continue;
80+ if (!atag->u.mem.size)
81+ continue;
8082 mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.start);
8183 mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.size);
8284 } else if (atag->hdr.tag == ATAG_INITRD2) {
arch/arm/boot/compressed/decompress.c+6−0
@@ -44,6 +44,12 @@ extern void error(char *); · 43 unmodified lines
4444 #include "../../../../lib/decompress_unlzma.c"
4545 #endif
4646
47+#ifdef CONFIG_KERNEL_XZ
48+#define memmove memmove
49+#define memcpy memcpy
50+#include "../../../../lib/decompress_unxz.c"
51+#endif
52+
4753 int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
4854 {
4955 return decompress(input, len, NULL, NULL, output, NULL, error);
arch/arm/boot/compressed/head.S+2−2
@@ -58,7 +58,7 @@ · 57 unmodified lines
5858 add \rb, \rb, #0x00010000 @ Ser1
5959 #endif
6060 .endm
61−#elif defined(CONFIG_ARCH_S3C2410)
61+#elif defined(CONFIG_ARCH_S3C24XX)
6262 .macro loadsp, rb, tmp
6363 mov \rb, #0x50000000
6464 add \rb, \rb, #0x4000 * CONFIG_S3C_LOWLEVEL_UART_PORT
@@ -273,7 +273,7 @@ restart: adr r0, LC0 · 208 unmodified lines
273273 add r0, r0, #0x100
274274 mov r1, r6
275275 sub r2, sp, r6
276− blne atags_to_fdt
276+ bleq atags_to_fdt
277277
278278 ldmfd sp!, {r0-r3, ip, lr}
279279 sub sp, sp, #0x10000
arch/arm/boot/compressed/piggy.xzkern.S+6−0
@@ -0,0 +1,6 @@
1+ .section .piggydata,#alloc
2+ .globl input_data
3+input_data:
4+ .incbin "arch/arm/boot/compressed/piggy.xzkern"
5+ .globl input_data_end
6+input_data_end:
arch/arm/boot/dts/am3517_mt_ventoux.dts+27−0
@@ -0,0 +1,27 @@
1+/*
2+ * Copyright (C) 2011 Ilya Yanok, EmCraft Systems
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License version 2 as
6+ * published by the Free Software Foundation.
7+ */
8+/dts-v1/;
9+
10+/include/ "omap3.dtsi"
11+
12+/ {
13+ model = "TeeJet Mt.Ventoux";
14+ compatible = "teejet,mt_ventoux", "ti,omap3";
15+
16+ memory {
17+ device_type = "memory";
18+ reg = <0x80000000 0x10000000>; /* 256 MB */
19+ };
20+
21+ /* AM35xx doesn't have IVA */
22+ soc {
23+ iva {
24+ status = "disabled";
25+ };
26+ };
27+};
arch/arm/boot/dts/at91sam9g20.dtsi+123−11
@@ -23,6 +23,11 @@ · 22 unmodified lines
2323 serial4 = &usart3;
2424 serial5 = &usart4;
2525 serial6 = &usart5;
26+ gpio0 = &pioA;
27+ gpio1 = &pioB;
28+ gpio2 = &pioC;
29+ tcb0 = &tcb0;
30+ tcb1 = &tcb1;
2631 };
2732 cpus {
2833 cpu@0 {
@@ -30,7 +35,7 @@ · 1 unmodified line
3035 };
3136 };
3237
33− memory@20000000 {
38+ memory {
3439 reg = <0x20000000 0x08000000>;
3540 };
3641
@@ -47,24 +52,88 @@ · 10 unmodified lines
4752 ranges;
4853
4954 aic: interrupt-controller@fffff000 {
50− #interrupt-cells = <1>;
55+ #interrupt-cells = <2>;
5156 compatible = "atmel,at91rm9200-aic";
5257 interrupt-controller;
53− interrupt-parent;
5458 reg = <0xfffff000 0x200>;
5559 };
5660
61+ ramc0: ramc@ffffea00 {
62+ compatible = "atmel,at91sam9260-sdramc";
63+ reg = <0xffffea00 0x200>;
64+ };
65+
66+ pmc: pmc@fffffc00 {
67+ compatible = "atmel,at91rm9200-pmc";
68+ reg = <0xfffffc00 0x100>;
69+ };
70+
71+ rstc@fffffd00 {
72+ compatible = "atmel,at91sam9260-rstc";
73+ reg = <0xfffffd00 0x10>;
74+ };
75+
76+ shdwc@fffffd10 {
77+ compatible = "atmel,at91sam9260-shdwc";
78+ reg = <0xfffffd10 0x10>;
79+ };
80+
81+ pit: timer@fffffd30 {
82+ compatible = "atmel,at91sam9260-pit";
83+ reg = <0xfffffd30 0xf>;
84+ interrupts = <1 4>;
85+ };
86+
87+ tcb0: timer@fffa0000 {
88+ compatible = "atmel,at91rm9200-tcb";
89+ reg = <0xfffa0000 0x100>;
90+ interrupts = <17 4 18 4 19 4>;
91+ };
92+
93+ tcb1: timer@fffdc000 {
94+ compatible = "atmel,at91rm9200-tcb";
95+ reg = <0xfffdc000 0x100>;
96+ interrupts = <26 4 27 4 28 4>;
97+ };
98+
99+ pioA: gpio@fffff400 {
100+ compatible = "atmel,at91rm9200-gpio";
101+ reg = <0xfffff400 0x100>;
102+ interrupts = <2 4>;
103+ #gpio-cells = <2>;
104+ gpio-controller;
105+ interrupt-controller;
106+ };
107+
108+ pioB: gpio@fffff600 {
109+ compatible = "atmel,at91rm9200-gpio";
110+ reg = <0xfffff600 0x100>;
111+ interrupts = <3 4>;
112+ #gpio-cells = <2>;
113+ gpio-controller;
114+ interrupt-controller;
115+ };
116+
117+ pioC: gpio@fffff800 {
118+ compatible = "atmel,at91rm9200-gpio";
119+ reg = <0xfffff800 0x100>;
120+ interrupts = <4 4>;
121+ #gpio-cells = <2>;
122+ gpio-controller;
123+ interrupt-controller;
124+ };
125+
57126 dbgu: serial@fffff200 {
58127 compatible = "atmel,at91sam9260-usart";
59128 reg = <0xfffff200 0x200>;
60− interrupts = <1>;
129+ interrupts = <1 4>;
61130 status = "disabled";
62131 };
63132
64133 usart0: serial@fffb0000 {
65134 compatible = "atmel,at91sam9260-usart";
66135 reg = <0xfffb0000 0x200>;
67− interrupts = <6>;
136+ interrupts = <6 4>;
68137 atmel,use-dma-rx;
69138 atmel,use-dma-tx;
70139 status = "disabled";
@@ -73,7 +142,7 @@ · 2 unmodified lines
73142 usart1: serial@fffb4000 {
74143 compatible = "atmel,at91sam9260-usart";
75144 reg = <0xfffb4000 0x200>;
76− interrupts = <7>;
145+ interrupts = <7 4>;
77146 atmel,use-dma-rx;
78147 atmel,use-dma-tx;
79148 status = "disabled";
@@ -82,7 +151,7 @@ · 2 unmodified lines
82151 usart2: serial@fffb8000 {
83152 compatible = "atmel,at91sam9260-usart";
84153 reg = <0xfffb8000 0x200>;
85− interrupts = <8>;
154+ interrupts = <8 4>;
86155 atmel,use-dma-rx;
87156 atmel,use-dma-tx;
88157 status = "disabled";
@@ -91,7 +160,7 @@ · 2 unmodified lines
91160 usart3: serial@fffd0000 {
92161 compatible = "atmel,at91sam9260-usart";
93162 reg = <0xfffd0000 0x200>;
94− interrupts = <23>;
163+ interrupts = <23 4>;
95164 atmel,use-dma-rx;
96165 atmel,use-dma-tx;
97166 status = "disabled";
@@ -100,7 +169,7 @@ · 2 unmodified lines
100169 usart4: serial@fffd4000 {
101170 compatible = "atmel,at91sam9260-usart";
102171 reg = <0xfffd4000 0x200>;
103− interrupts = <24>;
172+ interrupts = <24 4>;
104173 atmel,use-dma-rx;
105174 atmel,use-dma-tx;
106175 status = "disabled";
@@ -109,7 +178,7 @@ · 2 unmodified lines
109178 usart5: serial@fffd8000 {
110179 compatible = "atmel,at91sam9260-usart";
111180 reg = <0xfffd8000 0x200>;
112− interrupts = <25>;
181+ interrupts = <25 4>;
113182 atmel,use-dma-rx;
114183 atmel,use-dma-tx;
115184 status = "disabled";
@@ -118,9 +187,52 @@ · 2 unmodified lines
118187 macb0: ethernet@fffc4000 {
119188 compatible = "cdns,at32ap7000-macb", "cdns,macb";
120189 reg = <0xfffc4000 0x100>;
121− interrupts = <21>;
190+ interrupts = <21 4>;
191+ status = "disabled";
192+ };
193+
194+ usb1: gadget@fffa4000 {
195+ compatible = "atmel,at91rm9200-udc";
196+ reg = <0xfffa4000 0x4000>;
197+ interrupts = <10 4>;
122198 status = "disabled";
123199 };
124200 };
201+
202+ nand0: nand@40000000 {
203+ compatible = "atmel,at91rm9200-nand";
204+ #address-cells = <1>;
205+ #size-cells = <1>;
206+ reg = <0x40000000 0x10000000
207+ 0xffffe800 0x200
208+ >;
209+ atmel,nand-addr-offset = <21>;
210+ atmel,nand-cmd-offset = <22>;
211+ gpios = <&pioC 13 0
212+ &pioC 14 0
213+ 0
214+ >;
215+ status = "disabled";
216+ };
217+
218+ usb0: ohci@00500000 {
219+ compatible = "atmel,at91rm9200-ohci", "usb-ohci";
220+ reg = <0x00500000 0x100000>;
221+ interrupts = <20 4>;
222+ status = "disabled";
223+ };
224+ };
225+
226+ i2c@0 {
227+ compatible = "i2c-gpio";
228+ gpios = <&pioA 23 0 /* sda */
229+ &pioA 24 0 /* scl */
230+ >;
231+ i2c-gpio,sda-open-drain;
232+ i2c-gpio,scl-open-drain;
233+ i2c-gpio,delay-us = <2>; /* ~100 kHz */
234+ #address-cells = <1>;
235+ #size-cells = <0>;
236+ status = "disabled";
125237 };
126238 };
arch/arm/boot/dts/at91sam9g25ek.dts+49−0
@@ -0,0 +1,49 @@
1+/*
2+ * at91sam9g25ek.dts - Device Tree file for AT91SAM9G25-EK board
3+ *
4+ * Copyright (C) 2012 Atmel,
5+ * 2012 Nicolas Ferre <nicolas.ferre@atmel.com>
6+ *
7+ * Licensed under GPLv2 or later.
8+ */
9+/dts-v1/;
10+/include/ "at91sam9x5.dtsi"
11+/include/ "at91sam9x5cm.dtsi"
12+
13+/ {
14+ model = "Atmel AT91SAM9G25-EK";
15+ compatible = "atmel,at91sam9g25ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";
16+
17+ chosen {
18+ bootargs = "128M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs";
19+ };
20+
21+ ahb {
22+ apb {
23+ dbgu: serial@fffff200 {
24+ status = "okay";
25+ };
26+
27+ usart0: serial@f801c000 {
28+ status = "okay";
29+ };
30+
31+ macb0: ethernet@f802c000 {
32+ phy-mode = "rmii";
33+ status = "okay";
34+ };
35+ };
36+
37+ usb0: ohci@00600000 {
38+ status = "okay";
39+ num-ports = <2>;
40+ atmel,vbus-gpio = <&pioD 19 1
41+ &pioD 20 1
42+ >;
43+ };
44+
45+ usb1: ehci@00700000 {
46+ status = "okay";
47+ };
48+ };
49+};
arch/arm/boot/dts/at91sam9g45.dtsi+144−10
@@ -22,6 +22,13 @@ · 21 unmodified lines
2222 serial2 = &usart1;
2323 serial3 = &usart2;
2424 serial4 = &usart3;
25+ gpio0 = &pioA;
26+ gpio1 = &pioB;
27+ gpio2 = &pioC;
28+ gpio3 = &pioD;
29+ gpio4 = &pioE;
30+ tcb0 = &tcb0;
31+ tcb1 = &tcb1;
2532 };
2633 cpus {
2734 cpu@0 {
@@ -29,7 +36,7 @@ · 1 unmodified line
2936 };
3037 };
3138
32− memory@70000000 {
39+ memory {
3340 reg = <0x70000000 0x10000000>;
3441 };
3542
@@ -46,30 +53,114 @@ · 10 unmodified lines
4653 ranges;
4754
4855 aic: interrupt-controller@fffff000 {
49− #interrupt-cells = <1>;
56+ #interrupt-cells = <2>;
5057 compatible = "atmel,at91rm9200-aic";
5158 interrupt-controller;
52− interrupt-parent;
5359 reg = <0xfffff000 0x200>;
5460 };
5561
62+ ramc0: ramc@ffffe400 {
63+ compatible = "atmel,at91sam9g45-ddramc";
64+ reg = <0xffffe400 0x200
65+ 0xffffe600 0x200>;
66+ };
67+
68+ pmc: pmc@fffffc00 {
69+ compatible = "atmel,at91rm9200-pmc";
70+ reg = <0xfffffc00 0x100>;
71+ };
72+
73+ rstc@fffffd00 {
74+ compatible = "atmel,at91sam9g45-rstc";
75+ reg = <0xfffffd00 0x10>;
76+ };
77+
78+ pit: timer@fffffd30 {
79+ compatible = "atmel,at91sam9260-pit";
80+ reg = <0xfffffd30 0xf>;
81+ interrupts = <1 4>;
82+ };
83+
84+
85+ shdwc@fffffd10 {
86+ compatible = "atmel,at91sam9rl-shdwc";
87+ reg = <0xfffffd10 0x10>;
88+ };
89+
90+ tcb0: timer@fff7c000 {
91+ compatible = "atmel,at91rm9200-tcb";
92+ reg = <0xfff7c000 0x100>;
93+ interrupts = <18 4>;
94+ };
95+
96+ tcb1: timer@fffd4000 {
97+ compatible = "atmel,at91rm9200-tcb";
98+ reg = <0xfffd4000 0x100>;
99+ interrupts = <18 4>;
100+ };
101+
56102 dma: dma-controller@ffffec00 {
57103 compatible = "atmel,at91sam9g45-dma";
58104 reg = <0xffffec00 0x200>;
59− interrupts = <21>;
105+ interrupts = <21 4>;
106+ };
107+
108+ pioA: gpio@fffff200 {
109+ compatible = "atmel,at91rm9200-gpio";
110+ reg = <0xfffff200 0x100>;
111+ interrupts = <2 4>;
112+ #gpio-cells = <2>;
113+ gpio-controller;
114+ interrupt-controller;
115+ };
116+
117+ pioB: gpio@fffff400 {
118+ compatible = "atmel,at91rm9200-gpio";
119+ reg = <0xfffff400 0x100>;
120+ interrupts = <3 4>;
121+ #gpio-cells = <2>;
122+ gpio-controller;
123+ interrupt-controller;
124+ };
125+
126+ pioC: gpio@fffff600 {
127+ compatible = "atmel,at91rm9200-gpio";
128+ reg = <0xfffff600 0x100>;
129+ interrupts = <4 4>;
130+ #gpio-cells = <2>;
131+ gpio-controller;
132+ interrupt-controller;
133+ };
134+
135+ pioD: gpio@fffff800 {
136+ compatible = "atmel,at91rm9200-gpio";
137+ reg = <0xfffff800 0x100>;
138+ interrupts = <5 4>;
139+ #gpio-cells = <2>;
140+ gpio-controller;
141+ interrupt-controller;
142+ };
143+
144+ pioE: gpio@fffffa00 {
145+ compatible = "atmel,at91rm9200-gpio";
146+ reg = <0xfffffa00 0x100>;
147+ interrupts = <5 4>;
148+ #gpio-cells = <2>;
149+ gpio-controller;
150+ interrupt-controller;
60151 };
61152
62153 dbgu: serial@ffffee00 {
63154 compatible = "atmel,at91sam9260-usart";
64155 reg = <0xffffee00 0x200>;
65− interrupts = <1>;
156+ interrupts = <1 4>;
66157 status = "disabled";
67158 };
68159
69160 usart0: serial@fff8c000 {
70161 compatible = "atmel,at91sam9260-usart";
71162 reg = <0xfff8c000 0x200>;
72− interrupts = <7>;
163+ interrupts = <7 4>;
73164 atmel,use-dma-rx;
74165 atmel,use-dma-tx;
75166 status = "disabled";
@@ -78,7 +169,7 @@ · 2 unmodified lines
78169 usart1: serial@fff90000 {
79170 compatible = "atmel,at91sam9260-usart";
80171 reg = <0xfff90000 0x200>;
81− interrupts = <8>;
172+ interrupts = <8 4>;
82173 atmel,use-dma-rx;
83174 atmel,use-dma-tx;
84175 status = "disabled";
@@ -87,7 +178,7 @@ · 2 unmodified lines
87178 usart2: serial@fff94000 {
88179 compatible = "atmel,at91sam9260-usart";
89180 reg = <0xfff94000 0x200>;
90− interrupts = <9>;
181+ interrupts = <9 4>;
91182 atmel,use-dma-rx;
92183 atmel,use-dma-tx;
93184 status = "disabled";
@@ -96,7 +187,7 @@ · 2 unmodified lines
96187 usart3: serial@fff98000 {
97188 compatible = "atmel,at91sam9260-usart";
98189 reg = <0xfff98000 0x200>;
99− interrupts = <10>;
190+ interrupts = <10 4>;
100191 atmel,use-dma-rx;
101192 atmel,use-dma-tx;
102193 status = "disabled";
@@ -105,9 +196,52 @@ · 2 unmodified lines
105196 macb0: ethernet@fffbc000 {
106197 compatible = "cdns,at32ap7000-macb", "cdns,macb";
107198 reg = <0xfffbc000 0x100>;
108− interrupts = <25>;
199+ interrupts = <25 4>;
109200 status = "disabled";
110201 };
111202 };
203+
204+ nand0: nand@40000000 {
205+ compatible = "atmel,at91rm9200-nand";
206+ #address-cells = <1>;
207+ #size-cells = <1>;
208+ reg = <0x40000000 0x10000000
209+ 0xffffe200 0x200
210+ >;
211+ atmel,nand-addr-offset = <21>;
212+ atmel,nand-cmd-offset = <22>;
213+ gpios = <&pioC 8 0
214+ &pioC 14 0
215+ 0
216+ >;
217+ status = "disabled";
218+ };
219+
220+ usb0: ohci@00700000 {
221+ compatible = "atmel,at91rm9200-ohci", "usb-ohci";
222+ reg = <0x00700000 0x100000>;
223+ interrupts = <22 4>;
224+ status = "disabled";
225+ };
226+
227+ usb1: ehci@00800000 {
228+ compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
229+ reg = <0x00800000 0x100000>;
230+ interrupts = <22 4>;
231+ status = "disabled";
232+ };
233+ };
234+
235+ i2c@0 {
236+ compatible = "i2c-gpio";
237+ gpios = <&pioA 20 0 /* sda */
238+ &pioA 21 0 /* scl */
239+ >;
240+ i2c-gpio,sda-open-drain;
241+ i2c-gpio,scl-open-drain;
242+ i2c-gpio,delay-us = <5>; /* ~100 kHz */
243+ #address-cells = <1>;
244+ #size-cells = <0>;
245+ status = "disabled";
112246 };
113247 };
arch/arm/boot/dts/at91sam9m10g45ek.dts+118−2
@@ -14,13 +14,24 @@ · 13 unmodified lines
1414 compatible = "atmel,at91sam9m10g45ek", "atmel,at91sam9g45", "atmel,at91sam9";
1515
1616 chosen {
17− bootargs = "mem=64M console=ttyS0,115200 mtdparts=atmel_nand:4M(bootstrap/uboot/kernel)ro,60M(rootfs),-(data) root=/dev/mtdblock1 rw rootfstype=jffs2";
17+ bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2";
1818 };
1919
20− memory@70000000 {
20+ memory {
2121 reg = <0x70000000 0x4000000>;
2222 };
2323
24+ clocks {
25+ #address-cells = <1>;
26+ #size-cells = <1>;
27+ ranges;
28+
29+ main_clock: clock@0 {
30+ compatible = "atmel,osc", "fixed-clock";
31+ clock-frequency = <12000000>;
32+ };
33+ };
34+
2435 ahb {
2536 apb {
2637 dbgu: serial@ffffee00 {
@@ -36,5 +47,110 @@ · 9 unmodified lines
3647 status = "okay";
3748 };
3849 };
50+
51+ nand0: nand@40000000 {
52+ nand-bus-width = <8>;
53+ nand-ecc-mode = "soft";
54+ nand-on-flash-bbt;
55+ status = "okay";
56+
57+ boot@0 {
58+ label = "bootstrap/uboot/kernel";
59+ reg = <0x0 0x400000>;
60+ };
61+
62+ rootfs@400000 {
63+ label = "rootfs";
64+ reg = <0x400000 0x3C00000>;
65+ };
66+
67+ data@4000000 {
68+ label = "data";
69+ reg = <0x4000000 0xC000000>;
70+ };
71+ };
72+
73+ usb0: ohci@00700000 {
74+ status = "okay";
75+ num-ports = <2>;
76+ atmel,vbus-gpio = <&pioD 1 1
77+ &pioD 3 1>;
78+ };
79+
80+ usb1: ehci@00800000 {
81+ status = "okay";
82+ };
83+ };
84+
85+ leds {
86+ compatible = "gpio-leds";
87+
88+ d8 {
89+ label = "d8";
90+ gpios = <&pioD 30 0>;
91+ linux,default-trigger = "heartbeat";
92+ };
93+
94+ d6 {
95+ label = "d6";
96+ gpios = <&pioD 0 1>;
97+ linux,default-trigger = "nand-disk";
98+ };
99+
100+ d7 {
101+ label = "d7";
102+ gpios = <&pioD 31 1>;
103+ linux,default-trigger = "mmc0";
104+ };
105+ };
106+
107+ gpio_keys {
108+ compatible = "gpio-keys";
109+ #address-cells = <1>;
110+ #size-cells = <0>;
111+
112+ left_click {
113+ label = "left_click";
114+ gpios = <&pioB 6 1>;
115+ linux,code = <272>;
116+ gpio-key,wakeup;
117+ };
118+
119+ right_click {
120+ label = "right_click";
121+ gpios = <&pioB 7 1>;
122+ linux,code = <273>;
123+ gpio-key,wakeup;
124+ };
125+
126+ left {
127+ label = "Joystick Left";
128+ gpios = <&pioB 14 1>;
129+ linux,code = <105>;
130+ };
131+
132+ right {
133+ label = "Joystick Right";
134+ gpios = <&pioB 15 1>;
135+ linux,code = <106>;
136+ };
137+
138+ up {
139+ label = "Joystick Up";
140+ gpios = <&pioB 16 1>;
141+ linux,code = <103>;
142+ };
143+
144+ down {
145+ label = "Joystick Down";
146+ gpios = <&pioB 17 1>;
147+ linux,code = <108>;
148+ };
149+
150+ enter {
151+ label = "Joystick Press";
152+ gpios = <&pioB 18 1>;
153+ linux,code = <28>;
154+ };
39155 };
40156 };
arch/arm/boot/dts/at91sam9x5.dtsi+263−0
@@ -0,0 +1,263 @@
1+/*
2+ * at91sam9x5.dtsi - Device Tree Include file for AT91SAM9x5 family SoC
3+ * applies to AT91SAM9G15, AT91SAM9G25, AT91SAM9G35,
4+ * AT91SAM9X25, AT91SAM9X35 SoC
5+ *
6+ * Copyright (C) 2012 Atmel,
7+ * 2012 Nicolas Ferre <nicolas.ferre@atmel.com>
8+ *
9+ * Licensed under GPLv2 or later.
10+ */
11+
12+/include/ "skeleton.dtsi"
13+
14+/ {
15+ model = "Atmel AT91SAM9x5 family SoC";
16+ compatible = "atmel,at91sam9x5";
17+ interrupt-parent = <&aic>;
18+
19+ aliases {
20+ serial0 = &dbgu;
21+ serial1 = &usart0;
22+ serial2 = &usart1;
23+ serial3 = &usart2;
24+ gpio0 = &pioA;
25+ gpio1 = &pioB;
26+ gpio2 = &pioC;
27+ gpio3 = &pioD;
28+ tcb0 = &tcb0;
29+ tcb1 = &tcb1;
30+ };
31+ cpus {
32+ cpu@0 {
33+ compatible = "arm,arm926ejs";
34+ };
35+ };
36+
37+ memory {
38+ reg = <0x20000000 0x10000000>;
39+ };
40+
41+ ahb {
42+ compatible = "simple-bus";
43+ #address-cells = <1>;
44+ #size-cells = <1>;
45+ ranges;
46+
47+ apb {
48+ compatible = "simple-bus";
49+ #address-cells = <1>;
50+ #size-cells = <1>;
51+ ranges;
52+
53+ aic: interrupt-controller@fffff000 {
54+ #interrupt-cells = <2>;
55+ compatible = "atmel,at91rm9200-aic";
56+ interrupt-controller;
57+ reg = <0xfffff000 0x200>;
58+ };
59+
60+ ramc0: ramc@ffffe800 {
61+ compatible = "atmel,at91sam9g45-ddramc";
62+ reg = <0xffffe800 0x200>;
63+ };
64+
65+ pmc: pmc@fffffc00 {
66+ compatible = "atmel,at91rm9200-pmc";
67+ reg = <0xfffffc00 0x100>;
68+ };
69+
70+ rstc@fffffe00 {
71+ compatible = "atmel,at91sam9g45-rstc";
72+ reg = <0xfffffe00 0x10>;
73+ };
74+
75+ shdwc@fffffe10 {
76+ compatible = "atmel,at91sam9x5-shdwc";
77+ reg = <0xfffffe10 0x10>;
78+ };
79+
80+ pit: timer@fffffe30 {
81+ compatible = "atmel,at91sam9260-pit";
82+ reg = <0xfffffe30 0xf>;
83+ interrupts = <1 4>;
84+ };
85+
86+ tcb0: timer@f8008000 {
87+ compatible = "atmel,at91sam9x5-tcb";
88+ reg = <0xf8008000 0x100>;
89+ interrupts = <17 4>;
90+ };
91+
92+ tcb1: timer@f800c000 {
93+ compatible = "atmel,at91sam9x5-tcb";
94+ reg = <0xf800c000 0x100>;
95+ interrupts = <17 4>;
96+ };
97+
98+ dma0: dma-controller@ffffec00 {
99+ compatible = "atmel,at91sam9g45-dma";
100+ reg = <0xffffec00 0x200>;
101+ interrupts = <20 4>;
102+ };
103+
104+ dma1: dma-controller@ffffee00 {
105+ compatible = "atmel,at91sam9g45-dma";
106+ reg = <0xffffee00 0x200>;
107+ interrupts = <21 4>;
108+ };
109+
110+ pioA: gpio@fffff400 {
111+ compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
112+ reg = <0xfffff400 0x100>;
113+ interrupts = <2 4>;
114+ #gpio-cells = <2>;
115+ gpio-controller;
116+ interrupt-controller;
117+ };
118+
119+ pioB: gpio@fffff600 {
120+ compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
121+ reg = <0xfffff600 0x100>;
122+ interrupts = <2 4>;
123+ #gpio-cells = <2>;
124+ gpio-controller;
125+ interrupt-controller;
126+ };
127+
128+ pioC: gpio@fffff800 {
129+ compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
130+ reg = <0xfffff800 0x100>;
131+ interrupts = <3 4>;
132+ #gpio-cells = <2>;
133+ gpio-controller;
134+ interrupt-controller;
135+ };
136+
137+ pioD: gpio@fffffa00 {
138+ compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
139+ reg = <0xfffffa00 0x100>;
140+ interrupts = <3 4>;
141+ #gpio-cells = <2>;
142+ gpio-controller;
143+ interrupt-controller;
144+ };
145+
146+ dbgu: serial@fffff200 {
147+ compatible = "atmel,at91sam9260-usart";
148+ reg = <0xfffff200 0x200>;
149+ interrupts = <1 4>;
150+ status = "disabled";
151+ };
152+
153+ usart0: serial@f801c000 {
154+ compatible = "atmel,at91sam9260-usart";
155+ reg = <0xf801c000 0x200>;
156+ interrupts = <5 4>;
157+ atmel,use-dma-rx;
158+ atmel,use-dma-tx;
159+ status = "disabled";
160+ };
161+
162+ usart1: serial@f8020000 {
163+ compatible = "atmel,at91sam9260-usart";
164+ reg = <0xf8020000 0x200>;
165+ interrupts = <6 4>;
166+ atmel,use-dma-rx;
167+ atmel,use-dma-tx;
168+ status = "disabled";
169+ };
170+
171+ usart2: serial@f8024000 {
172+ compatible = "atmel,at91sam9260-usart";
173+ reg = <0xf8024000 0x200>;
174+ interrupts = <7 4>;
175+ atmel,use-dma-rx;
176+ atmel,use-dma-tx;
177+ status = "disabled";
178+ };
179+
180+ macb0: ethernet@f802c000 {
181+ compatible = "cdns,at32ap7000-macb", "cdns,macb";
182+ reg = <0xf802c000 0x100>;
183+ interrupts = <24 4>;
184+ status = "disabled";
185+ };
186+
187+ macb1: ethernet@f8030000 {
188+ compatible = "cdns,at32ap7000-macb", "cdns,macb";
189+ reg = <0xf8030000 0x100>;
190+ interrupts = <27 4>;
191+ status = "disabled";
192+ };
193+ };
194+
195+ nand0: nand@40000000 {
196+ compatible = "atmel,at91rm9200-nand";
197+ #address-cells = <1>;
198+ #size-cells = <1>;
199+ reg = <0x40000000 0x10000000
200+ >;
201+ atmel,nand-addr-offset = <21>;
202+ atmel,nand-cmd-offset = <22>;
203+ gpios = <&pioD 5 0
204+ &pioD 4 0
205+ 0
206+ >;
207+ status = "disabled";
208+ };
209+
210+ usb0: ohci@00600000 {
211+ compatible = "atmel,at91rm9200-ohci", "usb-ohci";
212+ reg = <0x00600000 0x100000>;
213+ interrupts = <22 4>;
214+ status = "disabled";
215+ };
216+
217+ usb1: ehci@00700000 {
218+ compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
219+ reg = <0x00700000 0x100000>;
220+ interrupts = <22 4>;
221+ status = "disabled";
222+ };
223+ };
224+
225+ i2c@0 {
226+ compatible = "i2c-gpio";
227+ gpios = <&pioA 30 0 /* sda */
228+ &pioA 31 0 /* scl */
229+ >;
230+ i2c-gpio,sda-open-drain;
231+ i2c-gpio,scl-open-drain;
232+ i2c-gpio,delay-us = <2>; /* ~100 kHz */
233+ #address-cells = <1>;
234+ #size-cells = <0>;
235+ status = "disabled";
236+ };
237+
238+ i2c@1 {
239+ compatible = "i2c-gpio";
240+ gpios = <&pioC 0 0 /* sda */
241+ &pioC 1 0 /* scl */
242+ >;
243+ i2c-gpio,sda-open-drain;
244+ i2c-gpio,scl-open-drain;
245+ i2c-gpio,delay-us = <2>; /* ~100 kHz */
246+ #address-cells = <1>;
247+ #size-cells = <0>;
248+ status = "disabled";
249+ };
250+
251+ i2c@2 {
252+ compatible = "i2c-gpio";
253+ gpios = <&pioB 4 0 /* sda */
254+ &pioB 5 0 /* scl */
255+ >;
256+ i2c-gpio,sda-open-drain;
257+ i2c-gpio,scl-open-drain;
258+ i2c-gpio,delay-us = <2>; /* ~100 kHz */
259+ #address-cells = <1>;
260+ #size-cells = <0>;
261+ status = "disabled";
262+ };
263+};
arch/arm/boot/dts/at91sam9x5cm.dtsi+74−0
@@ -0,0 +1,74 @@
1+/*
2+ * at91sam9x5cm.dtsi - Device Tree Include file for AT91SAM9x5 CPU Module
3+ *
4+ * Copyright (C) 2012 Atmel,
5+ * 2012 Nicolas Ferre <nicolas.ferre@atmel.com>
6+ *
7+ * Licensed under GPLv2 or later.
8+ */
9+
10+/ {
11+ memory {
12+ reg = <0x20000000 0x8000000>;
13+ };
14+
15+ clocks {
16+ #address-cells = <1>;
17+ #size-cells = <1>;
18+ ranges;
19+
20+ main_clock: clock@0 {
21+ compatible = "atmel,osc", "fixed-clock";
22+ clock-frequency = <12000000>;
23+ };
24+ };
25+
26+ ahb {
27+ nand0: nand@40000000 {
28+ nand-bus-width = <8>;
29+ nand-ecc-mode = "soft";
30+ nand-on-flash-bbt;
31+ status = "okay";
32+
33+ at91bootstrap@0 {
34+ label = "at91bootstrap";
35+ reg = <0x0 0x40000>;
36+ };
37+
38+ uboot@40000 {
39+ label = "u-boot";
40+ reg = <0x40000 0x80000>;
41+ };
42+
43+ ubootenv@c0000 {
44+ label = "U-Boot Env";
45+ reg = <0xc0000 0x140000>;
46+ };
47+
48+ kernel@200000 {
49+ label = "kernel";
50+ reg = <0x200000 0x600000>;
51+ };
52+
53+ rootfs@800000 {
54+ label = "rootfs";
55+ reg = <0x800000 0x1f800000>;
56+ };
57+ };
58+ };
59+
60+ leds {
61+ compatible = "gpio-leds";
62+
63+ pb18 {
64+ label = "pb18";
65+ gpios = <&pioB 18 1>;
66+ linux,default-trigger = "heartbeat";
67+ };
68+
69+ pd21 {
70+ label = "pd21";
71+ gpios = <&pioD 21 0>;
72+ };
73+ };
74+};
arch/arm/boot/dts/db8500.dtsi+274−0
@@ -0,0 +1,274 @@
1+/*
2+ * Copyright 2012 Linaro Ltd
3+ *
4+ * The code contained herein is licensed under the GNU General Public
5+ * License. You may obtain a copy of the GNU General Public License
6+ * Version 2 or later at the following locations:
7+ *
8+ * http://www.opensource.org/licenses/gpl-license.html
9+ * http://www.gnu.org/copyleft/gpl.html
10+ */
11+
12+/include/ "skeleton.dtsi"
13+
14+/ {
15+ soc-u9500 {
16+ #address-cells = <1>;
17+ #size-cells = <1>;
18+ compatible = "stericsson,db8500";
19+ interrupt-parent = <&intc>;
20+ ranges;
21+
22+ intc: interrupt-controller@a0411000 {
23+ compatible = "arm,cortex-a9-gic";
24+ #interrupt-cells = <3>;
25+ #address-cells = <1>;
26+ interrupt-controller;
27+ reg = <0xa0411000 0x1000>,
28+ <0xa0410100 0x100>;
29+ };
30+
31+ L2: l2-cache {
32+ compatible = "arm,pl310-cache";
33+ reg = <0xa0412000 0x1000>;
34+ interrupts = <0 13 4>;
35+ cache-unified;
36+ cache-level = <2>;
37+ };
38+
39+ pmu {
40+ compatible = "arm,cortex-a9-pmu";
41+ interrupts = <0 7 0x4>;
42+ };
43+
44+ timer@a0410600 {
45+ compatible = "arm,cortex-a9-twd-timer";
46+ reg = <0xa0410600 0x20>;
47+ interrupts = <1 13 0x304>;
48+ };
49+
50+ rtc@80154000 {
51+ compatible = "stericsson,db8500-rtc";
52+ reg = <0x80154000 0x1000>;
53+ interrupts = <0 18 0x4>;
54+ };
55+
56+ gpio0: gpio@8012e000 {
57+ compatible = "stericsson,db8500-gpio",
58+ "stmicroelectronics,nomadik-gpio";
59+ reg = <0x8012e000 0x80>;
60+ interrupts = <0 119 0x4>;
61+ supports-sleepmode;
62+ gpio-controller;
63+ };
64+
65+ gpio1: gpio@8012e080 {
66+ compatible = "stericsson,db8500-gpio",
67+ "stmicroelectronics,nomadik-gpio";
68+ reg = <0x8012e080 0x80>;
69+ interrupts = <0 120 0x4>;
70+ supports-sleepmode;
71+ gpio-controller;
72+ };
73+
74+ gpio2: gpio@8000e000 {
75+ compatible = "stericsson,db8500-gpio",
76+ "stmicroelectronics,nomadik-gpio";
77+ reg = <0x8000e000 0x80>;
78+ interrupts = <0 121 0x4>;
79+ supports-sleepmode;
80+ gpio-controller;
81+ };
82+
83+ gpio3: gpio@8000e080 {
84+ compatible = "stericsson,db8500-gpio",
85+ "stmicroelectronics,nomadik-gpio";
86+ reg = <0x8000e080 0x80>;
87+ interrupts = <0 122 0x4>;
88+ supports-sleepmode;
89+ gpio-controller;
90+ };
91+
92+ gpio4: gpio@8000e100 {
93+ compatible = "stericsson,db8500-gpio",
94+ "stmicroelectronics,nomadik-gpio";
95+ reg = <0x8000e100 0x80>;
96+ interrupts = <0 123 0x4>;
97+ supports-sleepmode;
98+ gpio-controller;
99+ };
100+
101+ gpio5: gpio@8000e180 {
102+ compatible = "stericsson,db8500-gpio",
103+ "stmicroelectronics,nomadik-gpio";
104+ reg = <0x8000e180 0x80>;
105+ interrupts = <0 124 0x4>;
106+ supports-sleepmode;
107+ gpio-controller;
108+ };
109+
110+ gpio6: gpio@8011e000 {
111+ compatible = "stericsson,db8500-gpio",
112+ "stmicroelectronics,nomadik-gpio";
113+ reg = <0x8011e000 0x80>;
114+ interrupts = <0 125 0x4>;
115+ supports-sleepmode;
116+ gpio-controller;
117+ };
118+
119+ gpio7: gpio@8011e080 {
120+ compatible = "stericsson,db8500-gpio",
121+ "stmicroelectronics,nomadik-gpio";
122+ reg = <0x8011e080 0x80>;
123+ interrupts = <0 126 0x4>;
124+ supports-sleepmode;
125+ gpio-controller;
126+ };
127+
128+ gpio8: gpio@a03fe000 {
129+ compatible = "stericsson,db8500-gpio",
130+ "stmicroelectronics,nomadik-gpio";
131+ reg = <0xa03fe000 0x80>;
132+ interrupts = <0 127 0x4>;
133+ supports-sleepmode;
134+ gpio-controller;
135+ };
136+
137+ usb@a03e0000 {
138+ compatible = "stericsson,db8500-musb",
139+ "mentor,musb";
140+ reg = <0xa03e0000 0x10000>;
141+ interrupts = <0 23 0x4>;
142+ };
143+
144+ dma-controller@801C0000 {
145+ compatible = "stericsson,db8500-dma40",
146+ "stericsson,dma40";
147+ reg = <0x801C0000 0x1000 0x40010000 0x800>;
148+ interrupts = <0 25 0x4>;
149+ };
150+
151+ prcmu@80157000 {
152+ compatible = "stericsson,db8500-prcmu";
153+ reg = <0x80157000 0x1000>;
154+ interrupts = <46 47>;
155+ #address-cells = <1>;
156+ #size-cells = <0>;
157+
158+ ab8500@5 {
159+ compatible = "stericsson,ab8500";
160+ reg = <5>; /* mailbox 5 is i2c */
161+ interrupts = <0 40 0x4>;
162+ };
163+ };
164+
165+ i2c@80004000 {
166+ compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c";
167+ reg = <0x80004000 0x1000>;
168+ interrupts = <0 21 0x4>;
169+ #address-cells = <1>;
170+ #size-cells = <0>;
171+ };
172+
173+ i2c@80122000 {
174+ compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c";
175+ reg = <0x80122000 0x1000>;
176+ interrupts = <0 22 0x4>;
177+ #address-cells = <1>;
178+ #size-cells = <0>;
179+ };
180+
181+ i2c@80128000 {
182+ compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c";
183+ reg = <0x80128000 0x1000>;
184+ interrupts = <0 55 0x4>;
185+ #address-cells = <1>;
186+ #size-cells = <0>;
187+ };
188+
189+ i2c@80110000 {
190+ compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c";
191+ reg = <0x80110000 0x1000>;
192+ interrupts = <0 12 0x4>;
193+ #address-cells = <1>;
194+ #size-cells = <0>;
195+ };
196+
197+ i2c@8012a000 {
198+ compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c";
199+ reg = <0x8012a000 0x1000>;
200+ interrupts = <0 51 0x4>;
201+ #address-cells = <1>;
202+ #size-cells = <0>;
203+ };
204+
205+ ssp@80002000 {
206+ compatible = "arm,pl022", "arm,primecell";
207+ reg = <80002000 0x1000>;
208+ interrupts = <0 14 0x4>;
209+ #address-cells = <1>;
210+ #size-cells = <0>;
211+ status = "disabled";
212+
213+ // Add one of these for each child device
214+ cs-gpios = <&gpio0 31 &gpio4 14 &gpio4 16 &gpio6 22 &gpio7 0>;
215+
216+ };
217+
218+ uart@80120000 {
219+ compatible = "arm,pl011", "arm,primecell";
220+ reg = <0x80120000 0x1000>;
221+ interrupts = <0 11 0x4>;
222+ status = "disabled";
223+ };
224+ uart@80121000 {
225+ compatible = "arm,pl011", "arm,primecell";
226+ reg = <0x80121000 0x1000>;
227+ interrupts = <0 19 0x4>;
228+ status = "disabled";
229+ };
230+ uart@80007000 {
231+ compatible = "arm,pl011", "arm,primecell";
232+ reg = <0x80007000 0x1000>;
233+ interrupts = <0 26 0x4>;
234+ status = "disabled";
235+ };
236+
237+ sdi@80126000 {
238+ compatible = "arm,pl18x", "arm,primecell";
239+ reg = <0x80126000 0x1000>;
240+ interrupts = <0 60 0x4>;
241+ status = "disabled";
242+ };
243+ sdi@80118000 {
244+ compatible = "arm,pl18x", "arm,primecell";
245+ reg = <0x80118000 0x1000>;
246+ interrupts = <0 50 0x4>;
247+ status = "disabled";
248+ };
249+ sdi@80005000 {
250+ compatible = "arm,pl18x", "arm,primecell";
251+ reg = <0x80005000 0x1000>;
252+ interrupts = <0 41 0x4>;
253+ status = "disabled";
254+ };
255+ sdi@80119000 {
256+ compatible = "arm,pl18x", "arm,primecell";
257+ reg = <0x80119000 0x1000>;
258+ interrupts = <0 59 0x4>;
259+ status = "disabled";
260+ };
261+ sdi@80114000 {
262+ compatible = "arm,pl18x", "arm,primecell";
263+ reg = <0x80114000 0x1000>;
264+ interrupts = <0 99 0x4>;
265+ status = "disabled";
266+ };
267+ sdi@80008000 {
268+ compatible = "arm,pl18x", "arm,primecell";
269+ reg = <0x80114000 0x1000>;
270+ interrupts = <0 100 0x4>;
271+ status = "disabled";
272+ };
273+ };
274+};
arch/arm/boot/dts/exynos5250-smdk5250.dts+26−0
@@ -0,0 +1,26 @@
1+/*
2+ * SAMSUNG SMDK5250 board device tree source
3+ *
4+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5+ * http://www.samsung.com
6+ *
7+ * This program is free software; you can redistribute it and/or modify
8+ * it under the terms of the GNU General Public License version 2 as
9+ * published by the Free Software Foundation.
10+*/
11+
12+/dts-v1/;
13+/include/ "exynos5250.dtsi"
14+
15+/ {
16+ model = "SAMSUNG SMDK5250 board based on EXYNOS5250";
17+ compatible = "samsung,smdk5250", "samsung,exynos5250";
18+
19+ memory {
20+ reg = <0x40000000 0x80000000>;
21+ };
22+
23+ chosen {
24+ bootargs = "root=/dev/ram0 rw ramdisk=8192 console=ttySAC1,115200";
25+ };
26+};
arch/arm/boot/dts/exynos5250.dtsi+413−0
@@ -0,0 +1,413 @@
1+/*
2+ * SAMSUNG EXYNOS5250 SoC device tree source
3+ *
4+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5+ * http://www.samsung.com
6+ *
7+ * SAMSUNG EXYNOS5250 SoC device nodes are listed in this file.
8+ * EXYNOS5250 based board files can include this file and provide
9+ * values for board specfic bindings.
10+ *
11+ * Note: This file does not include device nodes for all the controllers in
12+ * EXYNOS5250 SoC. As device tree coverage for EXYNOS5250 increases,
13+ * additional nodes can be added to this file.
14+ *
15+ * This program is free software; you can redistribute it and/or modify
16+ * it under the terms of the GNU General Public License version 2 as
17+ * published by the Free Software Foundation.
18+*/
19+
20+/include/ "skeleton.dtsi"
21+
22+/ {
23+ compatible = "samsung,exynos5250";
24+ interrupt-parent = <&gic>;
25+
26+ gic:interrupt-controller@10490000 {
27+ compatible = "arm,cortex-a9-gic";
28+ #interrupt-cells = <3>;
29+ interrupt-controller;
30+ reg = <0x10490000 0x1000>, <0x10480000 0x100>;
31+ };
32+
33+ watchdog {
34+ compatible = "samsung,s3c2410-wdt";
35+ reg = <0x101D0000 0x100>;
36+ interrupts = <0 42 0>;
37+ };
38+
39+ rtc {
40+ compatible = "samsung,s3c6410-rtc";
41+ reg = <0x101E0000 0x100>;
42+ interrupts = <0 43 0>, <0 44 0>;
43+ };
44+
45+ sdhci@12200000 {
46+ compatible = "samsung,exynos4210-sdhci";
47+ reg = <0x12200000 0x100>;
48+ interrupts = <0 75 0>;
49+ };
50+
51+ sdhci@12210000 {
52+ compatible = "samsung,exynos4210-sdhci";
53+ reg = <0x12210000 0x100>;
54+ interrupts = <0 76 0>;
55+ };
56+
57+ sdhci@12220000 {
58+ compatible = "samsung,exynos4210-sdhci";
59+ reg = <0x12220000 0x100>;
60+ interrupts = <0 77 0>;
61+ };
62+
63+ sdhci@12230000 {
64+ compatible = "samsung,exynos4210-sdhci";
65+ reg = <0x12230000 0x100>;
66+ interrupts = <0 78 0>;
67+ };
68+
69+ serial@12C00000 {
70+ compatible = "samsung,exynos4210-uart";
71+ reg = <0x12C00000 0x100>;
72+ interrupts = <0 51 0>;
73+ };
74+
75+ serial@12C10000 {
76+ compatible = "samsung,exynos4210-uart";
77+ reg = <0x12C10000 0x100>;
78+ interrupts = <0 52 0>;
79+ };
80+
81+ serial@12C20000 {
82+ compatible = "samsung,exynos4210-uart";
83+ reg = <0x12C20000 0x100>;
84+ interrupts = <0 53 0>;
85+ };
86+
87+ serial@12C30000 {
88+ compatible = "samsung,exynos4210-uart";
89+ reg = <0x12C30000 0x100>;
90+ interrupts = <0 54 0>;
91+ };
92+
93+ i2c@12C60000 {
94+ compatible = "samsung,s3c2440-i2c";
95+ reg = <0x12C60000 0x100>;
96+ interrupts = <0 56 0>;
97+ };
98+
99+ i2c@12C70000 {
100+ compatible = "samsung,s3c2440-i2c";
101+ reg = <0x12C70000 0x100>;
102+ interrupts = <0 57 0>;
103+ };
104+
105+ i2c@12C80000 {
106+ compatible = "samsung,s3c2440-i2c";
107+ reg = <0x12C80000 0x100>;
108+ interrupts = <0 58 0>;
109+ };
110+
111+ i2c@12C90000 {
112+ compatible = "samsung,s3c2440-i2c";
113+ reg = <0x12C90000 0x100>;
114+ interrupts = <0 59 0>;
115+ };
116+
117+ i2c@12CA0000 {
118+ compatible = "samsung,s3c2440-i2c";
119+ reg = <0x12CA0000 0x100>;
120+ interrupts = <0 60 0>;
121+ };
122+
123+ i2c@12CB0000 {
124+ compatible = "samsung,s3c2440-i2c";
125+ reg = <0x12CB0000 0x100>;
126+ interrupts = <0 61 0>;
127+ };
128+
129+ i2c@12CC0000 {
130+ compatible = "samsung,s3c2440-i2c";
131+ reg = <0x12CC0000 0x100>;
132+ interrupts = <0 62 0>;
133+ };
134+
135+ i2c@12CD0000 {
136+ compatible = "samsung,s3c2440-i2c";
137+ reg = <0x12CD0000 0x100>;
138+ interrupts = <0 63 0>;
139+ };
140+
141+ amba {
142+ #address-cells = <1>;
143+ #size-cells = <1>;
144+ compatible = "arm,amba-bus";
145+ interrupt-parent = <&gic>;
146+ ranges;
147+
148+ pdma0: pdma@121A0000 {
149+ compatible = "arm,pl330", "arm,primecell";
150+ reg = <0x121A0000 0x1000>;
151+ interrupts = <0 34 0>;
152+ };
153+
154+ pdma1: pdma@121B0000 {
155+ compatible = "arm,pl330", "arm,primecell";
156+ reg = <0x121B0000 0x1000>;
157+ interrupts = <0 35 0>;
158+ };
159+
160+ mdma0: pdma@10800000 {
161+ compatible = "arm,pl330", "arm,primecell";
162+ reg = <0x10800000 0x1000>;
163+ interrupts = <0 33 0>;
164+ };
165+
166+ mdma1: pdma@11C10000 {
167+ compatible = "arm,pl330", "arm,primecell";
168+ reg = <0x11C10000 0x1000>;
169+ interrupts = <0 124 0>;
170+ };
171+ };
172+
173+ gpio-controllers {
174+ #address-cells = <1>;
175+ #size-cells = <1>;
176+ gpio-controller;
177+ ranges;
178+
179+ gpa0: gpio-controller@11400000 {
180+ compatible = "samsung,exynos4-gpio";
181+ reg = <0x11400000 0x20>;
182+ #gpio-cells = <4>;
183+ };
184+
185+ gpa1: gpio-controller@11400020 {
186+ compatible = "samsung,exynos4-gpio";
187+ reg = <0x11400020 0x20>;
188+ #gpio-cells = <4>;
189+ };
190+
191+ gpa2: gpio-controller@11400040 {
192+ compatible = "samsung,exynos4-gpio";
193+ reg = <0x11400040 0x20>;
194+ #gpio-cells = <4>;
195+ };
196+
197+ gpb0: gpio-controller@11400060 {
198+ compatible = "samsung,exynos4-gpio";
199+ reg = <0x11400060 0x20>;
200+ #gpio-cells = <4>;
201+ };
202+
203+ gpb1: gpio-controller@11400080 {
204+ compatible = "samsung,exynos4-gpio";
205+ reg = <0x11400080 0x20>;
206+ #gpio-cells = <4>;
207+ };
208+
209+ gpb2: gpio-controller@114000A0 {
210+ compatible = "samsung,exynos4-gpio";
211+ reg = <0x114000A0 0x20>;
212+ #gpio-cells = <4>;
213+ };
214+
215+ gpb3: gpio-controller@114000C0 {
216+ compatible = "samsung,exynos4-gpio";
217+ reg = <0x114000C0 0x20>;
218+ #gpio-cells = <4>;
219+ };
220+
221+ gpc0: gpio-controller@114000E0 {
222+ compatible = "samsung,exynos4-gpio";
223+ reg = <0x114000E0 0x20>;
224+ #gpio-cells = <4>;
225+ };
226+
227+ gpc1: gpio-controller@11400100 {
228+ compatible = "samsung,exynos4-gpio";
229+ reg = <0x11400100 0x20>;
230+ #gpio-cells = <4>;
231+ };
232+
233+ gpc2: gpio-controller@11400120 {
234+ compatible = "samsung,exynos4-gpio";
235+ reg = <0x11400120 0x20>;
236+ #gpio-cells = <4>;
237+ };
238+
239+ gpc3: gpio-controller@11400140 {
240+ compatible = "samsung,exynos4-gpio";
241+ reg = <0x11400140 0x20>;
242+ #gpio-cells = <4>;
243+ };
244+
245+ gpd0: gpio-controller@11400160 {
246+ compatible = "samsung,exynos4-gpio";
247+ reg = <0x11400160 0x20>;
248+ #gpio-cells = <4>;
249+ };
250+
251+ gpd1: gpio-controller@11400180 {
252+ compatible = "samsung,exynos4-gpio";
253+ reg = <0x11400180 0x20>;
254+ #gpio-cells = <4>;
255+ };
256+
257+ gpy0: gpio-controller@114001A0 {
258+ compatible = "samsung,exynos4-gpio";
259+ reg = <0x114001A0 0x20>;
260+ #gpio-cells = <4>;
261+ };
262+
263+ gpy1: gpio-controller@114001C0 {
264+ compatible = "samsung,exynos4-gpio";
265+ reg = <0x114001C0 0x20>;
266+ #gpio-cells = <4>;
267+ };
268+
269+ gpy2: gpio-controller@114001E0 {
270+ compatible = "samsung,exynos4-gpio";
271+ reg = <0x114001E0 0x20>;
272+ #gpio-cells = <4>;
273+ };
274+
275+ gpy3: gpio-controller@11400200 {
276+ compatible = "samsung,exynos4-gpio";
277+ reg = <0x11400200 0x20>;
278+ #gpio-cells = <4>;
279+ };
280+
281+ gpy4: gpio-controller@11400220 {
282+ compatible = "samsung,exynos4-gpio";
283+ reg = <0x11400220 0x20>;
284+ #gpio-cells = <4>;
285+ };
286+
287+ gpy5: gpio-controller@11400240 {
288+ compatible = "samsung,exynos4-gpio";
289+ reg = <0x11400240 0x20>;
290+ #gpio-cells = <4>;
291+ };
292+
293+ gpy6: gpio-controller@11400260 {
294+ compatible = "samsung,exynos4-gpio";
295+ reg = <0x11400260 0x20>;
296+ #gpio-cells = <4>;
297+ };
298+
299+ gpx0: gpio-controller@11400C00 {
300+ compatible = "samsung,exynos4-gpio";
301+ reg = <0x11400C00 0x20>;
302+ #gpio-cells = <4>;
303+ };
304+
305+ gpx1: gpio-controller@11400C20 {
306+ compatible = "samsung,exynos4-gpio";
307+ reg = <0x11400C20 0x20>;
308+ #gpio-cells = <4>;
309+ };
310+
311+ gpx2: gpio-controller@11400C40 {
312+ compatible = "samsung,exynos4-gpio";
313+ reg = <0x11400C40 0x20>;
314+ #gpio-cells = <4>;
315+ };
316+
317+ gpx3: gpio-controller@11400C60 {
318+ compatible = "samsung,exynos4-gpio";
319+ reg = <0x11400C60 0x20>;
320+ #gpio-cells = <4>;
321+ };
322+
323+ gpe0: gpio-controller@13400000 {
324+ compatible = "samsung,exynos4-gpio";
325+ reg = <0x13400000 0x20>;
326+ #gpio-cells = <4>;
327+ };
328+
329+ gpe1: gpio-controller@13400020 {
330+ compatible = "samsung,exynos4-gpio";
331+ reg = <0x13400020 0x20>;
332+ #gpio-cells = <4>;
333+ };
334+
335+ gpf0: gpio-controller@13400040 {
336+ compatible = "samsung,exynos4-gpio";
337+ reg = <0x13400040 0x20>;
338+ #gpio-cells = <4>;
339+ };
340+
341+ gpf1: gpio-controller@13400060 {
342+ compatible = "samsung,exynos4-gpio";
343+ reg = <0x13400060 0x20>;
344+ #gpio-cells = <4>;
345+ };
346+
347+ gpg0: gpio-controller@13400080 {
348+ compatible = "samsung,exynos4-gpio";
349+ reg = <0x13400080 0x20>;
350+ #gpio-cells = <4>;
351+ };
352+
353+ gpg1: gpio-controller@134000A0 {
354+ compatible = "samsung,exynos4-gpio";
355+ reg = <0x134000A0 0x20>;
356+ #gpio-cells = <4>;
357+ };
358+
359+ gpg2: gpio-controller@134000C0 {
360+ compatible = "samsung,exynos4-gpio";
361+ reg = <0x134000C0 0x20>;
362+ #gpio-cells = <4>;
363+ };
364+
365+ gph0: gpio-controller@134000E0 {
366+ compatible = "samsung,exynos4-gpio";
367+ reg = <0x134000E0 0x20>;
368+ #gpio-cells = <4>;
369+ };
370+
371+ gph1: gpio-controller@13400100 {
372+ compatible = "samsung,exynos4-gpio";
373+ reg = <0x13400100 0x20>;
374+ #gpio-cells = <4>;
375+ };
376+
377+ gpv0: gpio-controller@10D10000 {
378+ compatible = "samsung,exynos4-gpio";
379+ reg = <0x10D10000 0x20>;
380+ #gpio-cells = <4>;
381+ };
382+
383+ gpv1: gpio-controller@10D10020 {
384+ compatible = "samsung,exynos4-gpio";
385+ reg = <0x10D10020 0x20>;
386+ #gpio-cells = <4>;
387+ };
388+
389+ gpv2: gpio-controller@10D10040 {
390+ compatible = "samsung,exynos4-gpio";
391+ reg = <0x10D10040 0x20>;
392+ #gpio-cells = <4>;
393+ };
394+
395+ gpv3: gpio-controller@10D10060 {
396+ compatible = "samsung,exynos4-gpio";
397+ reg = <0x10D10060 0x20>;
398+ #gpio-cells = <4>;
399+ };
400+
401+ gpv4: gpio-controller@10D10080 {
402+ compatible = "samsung,exynos4-gpio";
403+ reg = <0x10D10080 0x20>;
404+ #gpio-cells = <4>;
405+ };
406+
407+ gpz: gpio-controller@03860000 {
408+ compatible = "samsung,exynos4-gpio";
409+ reg = <0x03860000 0x20>;
410+ #gpio-cells = <4>;
411+ };
412+ };
413+};
arch/arm/boot/dts/highbank.dts+4−5
@@ -72,15 +72,15 @@ · 71 unmodified lines
7272 ranges;
7373
7474 timer@fff10600 {
75− compatible = "arm,smp-twd";
75+ compatible = "arm,cortex-a9-twd-timer";
7676 reg = <0xfff10600 0x20>;
77− interrupts = <1 13 0xf04>;
77+ interrupts = <1 13 0xf01>;
7878 };
7979
8080 watchdog@fff10620 {
81− compatible = "arm,cortex-a9-wdt";
81+ compatible = "arm,cortex-a9-twd-wdt";
8282 reg = <0xfff10620 0x20>;
83− interrupts = <1 14 0xf04>;
83+ interrupts = <1 14 0xf01>;
8484 };
8585
8686 intc: interrupt-controller@fff11000 {
@@ -89,7 +89,6 @@ · 2 unmodified lines
8989 #size-cells = <0>;
9090 #address-cells = <1>;
9191 interrupt-controller;
92− interrupt-parent;
9392 reg = <0xfff11000 0x1000>,
9493 <0xfff10100 0x100>;
9594 };
arch/arm/boot/dts/imx27-phytec-phycore.dts+76−0
@@ -0,0 +1,76 @@
1+/*
2+ * Copyright 2012 Sascha Hauer, Pengutronix
3+ *
4+ * The code contained herein is licensed under the GNU General Public
5+ * License. You may obtain a copy of the GNU General Public License
6+ * Version 2 or later at the following locations:
7+ *
8+ * http://www.opensource.org/licenses/gpl-license.html
9+ * http://www.gnu.org/copyleft/gpl.html
10+ */
11+
12+/dts-v1/;
13+/include/ "imx27.dtsi"
14+
15+/ {
16+ model = "Phytec pcm038";
17+ compatible = "phytec,imx27-pcm038", "fsl,imx27";
18+
19+ memory {
20+ reg = <0x0 0x0>;
21+ };
22+
23+ soc {
24+ aipi@10000000 { /* aipi */
25+
26+ wdog@10002000 {
27+ status = "okay";
28+ };
29+
30+ uart@1000a000 {
31+ fsl,uart-has-rtscts;
32+ status = "okay";
33+ };
34+
35+ uart@1000b000 {
36+ fsl,uart-has-rtscts;
37+ status = "okay";
38+ };
39+
40+ uart@1000c000 {
41+ fsl,uart-has-rtscts;
42+ status = "okay";
43+ };
44+
45+ fec@1002b000 {
46+ status = "okay";
47+ };
48+
49+ i2c@1001d000 {
50+ clock-frequency = <400000>;
51+ status = "okay";
52+ at24@4c {
53+ compatible = "at,24c32";
54+ pagesize = <32>;
55+ reg = <0x52>;
56+ };
57+ pcf8563@51 {
58+ compatible = "nxp,pcf8563";
59+ reg = <0x51>;
60+ };
61+ lm75@4a {
62+ compatible = "national,lm75";
63+ reg = <0x4a>;
64+ };
65+ };
66+ };
67+ };
68+
69+ nor_flash@c0000000 {
70+ compatible = "cfi-flash";
71+ bank-width = <2>;
72+ reg = <0xc0000000 0x02000000>;
73+ #address-cells = <1>;
74+ #size-cells = <1>;
75+ };
76+};
arch/arm/boot/dts/imx27.dtsi+217−0
@@ -0,0 +1,217 @@
1+/*
2+ * Copyright 2012 Sascha Hauer, Pengutronix
3+ *
4+ * The code contained herein is licensed under the GNU General Public
5+ * License. You may obtain a copy of the GNU General Public License
6+ * Version 2 or later at the following locations:
7+ *
8+ * http://www.opensource.org/licenses/gpl-license.html
9+ * http://www.gnu.org/copyleft/gpl.html
10+ */
11+
12+/include/ "skeleton.dtsi"
13+
14+/ {
15+ aliases {
16+ serial0 = &uart1;
17+ serial1 = &uart2;
18+ serial2 = &uart3;
19+ serial3 = &uart4;
20+ serial4 = &uart5;
21+ serial5 = &uart6;
22+ };
23+
24+ avic: avic-interrupt-controller@e0000000 {
25+ compatible = "fsl,imx27-avic", "fsl,avic";
26+ interrupt-controller;
27+ #interrupt-cells = <1>;
28+ reg = <0x10040000 0x1000>;
29+ };
30+
31+ clocks {
32+ #address-cells = <1>;
33+ #size-cells = <0>;
34+
35+ osc26m {
36+ compatible = "fsl,imx-osc26m", "fixed-clock";
37+ clock-frequency = <26000000>;
38+ };
39+ };
40+
41+ soc {
42+ #address-cells = <1>;
43+ #size-cells = <1>;
44+ compatible = "simple-bus";
45+ interrupt-parent = <&avic>;
46+ ranges;
47+
48+ aipi@10000000 { /* AIPI1 */
49+ compatible = "fsl,aipi-bus", "simple-bus";
50+ #address-cells = <1>;
51+ #size-cells = <1>;
52+ reg = <0x10000000 0x10000000>;
53+ ranges;
54+
55+ wdog@10002000 {
56+ compatible = "fsl,imx27-wdt", "fsl,imx21-wdt";
57+ reg = <0x10002000 0x4000>;
58+ interrupts = <27>;
59+ status = "disabled";
60+ };
61+
62+ uart1: uart@1000a000 {
63+ compatible = "fsl,imx27-uart", "fsl,imx21-uart";
64+ reg = <0x1000a000 0x1000>;
65+ interrupts = <20>;
66+ status = "disabled";
67+ };
68+
69+ uart2: uart@1000b000 {
70+ compatible = "fsl,imx27-uart", "fsl,imx21-uart";
71+ reg = <0x1000b000 0x1000>;
72+ interrupts = <19>;
73+ status = "disabled";
74+ };
75+
76+ uart3: uart@1000c000 {
77+ compatible = "fsl,imx27-uart", "fsl,imx21-uart";
78+ reg = <0x1000c000 0x1000>;
79+ interrupts = <18>;
80+ status = "disabled";
81+ };
82+
83+ uart4: uart@1000d000 {
84+ compatible = "fsl,imx27-uart", "fsl,imx21-uart";
85+ reg = <0x1000d000 0x1000>;
86+ interrupts = <17>;
87+ status = "disabled";
88+ };
89+
90+ cspi1: cspi@1000e000 {
91+ #address-cells = <1>;
92+ #size-cells = <0>;
93+ compatible = "fsl,imx27-cspi";
94+ reg = <0x1000e000 0x1000>;
95+ interrupts = <16>;
96+ status = "disabled";
97+ };
98+
99+ cspi2: cspi@1000f000 {
100+ #address-cells = <1>;
101+ #size-cells = <0>;
102+ compatible = "fsl,imx27-cspi";
103+ reg = <0x1000f000 0x1000>;
104+ interrupts = <15>;
105+ status = "disabled";
106+ };
107+
108+ i2c1: i2c@10012000 {
109+ #address-cells = <1>;
110+ #size-cells = <0>;
111+ compatible = "fsl,imx27-i2c", "fsl,imx1-i2c";
112+ reg = <0x10012000 0x1000>;
113+ interrupts = <12>;
114+ status = "disabled";
115+ };
116+
117+ gpio1: gpio@10015000 {
118+ compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
119+ reg = <0x10015000 0x100>;
120+ interrupts = <8>;
121+ gpio-controller;
122+ #gpio-cells = <2>;
123+ interrupt-controller;
124+ #interrupt-cells = <1>;
125+ };
126+
127+ gpio2: gpio@10015100 {
128+ compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
129+ reg = <0x10015100 0x100>;
130+ interrupts = <8>;
131+ gpio-controller;
132+ #gpio-cells = <2>;
133+ interrupt-controller;
134+ #interrupt-cells = <1>;
135+ };
136+
137+ gpio3: gpio@10015200 {
138+ compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
139+ reg = <0x10015200 0x100>;
140+ interrupts = <8>;
141+ gpio-controller;
142+ #gpio-cells = <2>;
143+ interrupt-controller;
144+ #interrupt-cells = <1>;
145+ };
146+
147+ gpio4: gpio@10015300 {
148+ compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
149+ reg = <0x10015300 0x100>;
150+ interrupts = <8>;
151+ gpio-controller;
152+ #gpio-cells = <2>;
153+ interrupt-controller;
154+ #interrupt-cells = <1>;
155+ };
156+
157+ gpio5: gpio@10015400 {
158+ compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
159+ reg = <0x10015400 0x100>;
160+ interrupts = <8>;
161+ gpio-controller;
162+ #gpio-cells = <2>;
163+ interrupt-controller;
164+ #interrupt-cells = <1>;
165+ };
166+
167+ gpio6: gpio@10015500 {
168+ compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
169+ reg = <0x10015500 0x100>;
170+ interrupts = <8>;
171+ gpio-controller;
172+ #gpio-cells = <2>;
173+ interrupt-controller;
174+ #interrupt-cells = <1>;
175+ };
176+
177+ cspi3: cspi@10017000 {
178+ #address-cells = <1>;
179+ #size-cells = <0>;
180+ compatible = "fsl,imx27-cspi";
181+ reg = <0x10017000 0x1000>;
182+ interrupts = <6>;
183+ status = "disabled";
184+ };
185+
186+ uart5: uart@1001b000 {
187+ compatible = "fsl,imx27-uart", "fsl,imx21-uart";
188+ reg = <0x1001b000 0x1000>;
189+ interrupts = <49>;
190+ status = "disabled";
191+ };
192+
193+ uart6: uart@1001c000 {
194+ compatible = "fsl,imx27-uart", "fsl,imx21-uart";
195+ reg = <0x1001c000 0x1000>;
196+ interrupts = <48>;
197+ status = "disabled";
198+ };
199+
200+ i2c2: i2c@1001d000 {
201+ #address-cells = <1>;
202+ #size-cells = <0>;
203+ compatible = "fsl,imx27-i2c", "fsl,imx1-i2c";
204+ reg = <0x1001d000 0x1000>;
205+ interrupts = <1>;
206+ status = "disabled";
207+ };
208+
209+ fec: fec@1002b000 {
210+ compatible = "fsl,imx27-fec";
211+ reg = <0x1002b000 0x4000>;
212+ interrupts = <50>;
213+ status = "disabled";
214+ };
215+ };
216+ };
217+};
arch/arm/boot/dts/imx51-babbage.dts+89−2
@@ -56,8 +56,95 @@ · 55 unmodified lines
5656 compatible = "fsl,mc13892";
5757 spi-max-frequency = <6000000>;
5858 reg = <0>;
59− mc13xxx-irq-gpios = <&gpio1 8 0>;
60− fsl,mc13xxx-uses-regulator;
59+ interrupt-parent = <&gpio1>;
60+ interrupts = <8>;
61+
62+ regulators {
63+ sw1_reg: sw1 {
64+ regulator-min-microvolt = <600000>;
65+ regulator-max-microvolt = <1375000>;
66+ regulator-boot-on;
67+ regulator-always-on;
68+ };
69+
70+ sw2_reg: sw2 {
71+ regulator-min-microvolt = <900000>;
72+ regulator-max-microvolt = <1850000>;
73+ regulator-boot-on;
74+ regulator-always-on;
75+ };
76+
77+ sw3_reg: sw3 {
78+ regulator-min-microvolt = <1100000>;
79+ regulator-max-microvolt = <1850000>;
80+ regulator-boot-on;
81+ regulator-always-on;
82+ };
83+
84+ sw4_reg: sw4 {
85+ regulator-min-microvolt = <1100000>;
86+ regulator-max-microvolt = <1850000>;
87+ regulator-boot-on;
88+ regulator-always-on;
89+ };
90+
91+ vpll_reg: vpll {
92+ regulator-min-microvolt = <1050000>;
93+ regulator-max-microvolt = <1800000>;
94+ regulator-boot-on;
95+ regulator-always-on;
96+ };
97+
98+ vdig_reg: vdig {
99+ regulator-min-microvolt = <1650000>;
100+ regulator-max-microvolt = <1650000>;
101+ regulator-boot-on;
102+ };
103+
104+ vsd_reg: vsd {
105+ regulator-min-microvolt = <1800000>;
106+ regulator-max-microvolt = <3150000>;
107+ };
108+
109+ vusb2_reg: vusb2 {
110+ regulator-min-microvolt = <2400000>;
111+ regulator-max-microvolt = <2775000>;
112+ regulator-boot-on;
113+ regulator-always-on;
114+ };
115+
116+ vvideo_reg: vvideo {
117+ regulator-min-microvolt = <2775000>;
118+ regulator-max-microvolt = <2775000>;
119+ };
120+
121+ vaudio_reg: vaudio {
122+ regulator-min-microvolt = <2300000>;
123+ regulator-max-microvolt = <3000000>;
124+ };
125+
126+ vcam_reg: vcam {
127+ regulator-min-microvolt = <2500000>;
128+ regulator-max-microvolt = <3000000>;
129+ };
130+
131+ vgen1_reg: vgen1 {
132+ regulator-min-microvolt = <1200000>;
133+ regulator-max-microvolt = <1200000>;
134+ };
135+
136+ vgen2_reg: vgen2 {
137+ regulator-min-microvolt = <1200000>;
138+ regulator-max-microvolt = <3150000>;
139+ regulator-always-on;
140+ };
141+
142+ vgen3_reg: vgen3 {
143+ regulator-min-microvolt = <1800000>;
144+ regulator-max-microvolt = <2900000>;
145+ regulator-always-on;
146+ };
147+ };
61148 };
62149
63150 flash: at45db321d@1 {
arch/arm/boot/dts/imx6q-arm2.dts+14−0
@@ -36,11 +36,13 @@ · 35 unmodified lines
3636 usdhc@02198000 { /* uSDHC3 */
3737 cd-gpios = <&gpio6 11 0>;
3838 wp-gpios = <&gpio6 14 0>;
39+ vmmc-supply = <&reg_3p3v>;
3940 status = "okay";
4041 };
4142
4243 usdhc@0219c000 { /* uSDHC4 */
4344 fsl,card-wired;
45+ vmmc-supply = <&reg_3p3v>;
4446 status = "okay";
4547 };
4648
@@ -50,6 +52,18 @@ · 3 unmodified lines
5052 };
5153 };
5254
55+ regulators {
56+ compatible = "simple-bus";
57+
58+ reg_3p3v: 3p3v {
59+ compatible = "regulator-fixed";
60+ regulator-name = "3P3V";
61+ regulator-min-microvolt = <3300000>;
62+ regulator-max-microvolt = <3300000>;
63+ regulator-always-on;
64+ };
65+ };
66+
5367 leds {
5468 compatible = "gpio-leds";
5569
arch/arm/boot/dts/imx6q-sabrelite.dts+34−0
@@ -32,18 +32,52 @@ · 31 unmodified lines
3232 usdhc@02198000 { /* uSDHC3 */
3333 cd-gpios = <&gpio7 0 0>;
3434 wp-gpios = <&gpio7 1 0>;
35+ vmmc-supply = <&reg_3p3v>;
3536 status = "okay";
3637 };
3738
3839 usdhc@0219c000 { /* uSDHC4 */
3940 cd-gpios = <&gpio2 6 0>;
4041 wp-gpios = <&gpio2 7 0>;
42+ vmmc-supply = <&reg_3p3v>;
4143 status = "okay";
4244 };
4345
4446 uart2: uart@021e8000 {
4547 status = "okay";
4648 };
49+
50+ i2c@021a0000 { /* I2C1 */
51+ status = "okay";
52+ clock-frequency = <100000>;
53+
54+ codec: sgtl5000@0a {
55+ compatible = "fsl,sgtl5000";
56+ reg = <0x0a>;
57+ VDDA-supply = <&reg_2p5v>;
58+ VDDIO-supply = <&reg_3p3v>;
59+ };
60+ };
61+ };
62+ };
63+
64+ regulators {
65+ compatible = "simple-bus";
66+
67+ reg_2p5v: 2p5v {
68+ compatible = "regulator-fixed";
69+ regulator-name = "2P5V";
70+ regulator-min-microvolt = <2500000>;
71+ regulator-max-microvolt = <2500000>;
72+ regulator-always-on;
73+ };
74+
75+ reg_3p3v: 3p3v {
76+ compatible = "regulator-fixed";
77+ regulator-name = "3P3V";
78+ regulator-min-microvolt = <3300000>;
79+ regulator-max-microvolt = <3300000>;
80+ regulator-always-on;
4781 };
4882 };
4983 };
arch/arm/boot/dts/imx6q.dtsi+3−3
@@ -88,9 +88,9 @@ · 87 unmodified lines
8888 ranges;
8989
9090 timer@00a00600 {
91− compatible = "arm,smp-twd";
92− reg = <0x00a00600 0x100>;
93− interrupts = <1 13 0xf4>;
91+ compatible = "arm,cortex-a9-twd-timer";
92+ reg = <0x00a00600 0x20>;
93+ interrupts = <1 13 0xf01>;
9494 };
9595
9696 L2: l2-cache@00a02000 {
arch/arm/boot/dts/kirkwood-dreamplug.dts+24−0
@@ -0,0 +1,24 @@
1+/dts-v1/;
2+
3+/include/ "kirkwood.dtsi"
4+
5+/ {
6+ model = "Globalscale Technologies Dreamplug";
7+ compatible = "globalscale,dreamplug-003-ds2001", "globalscale,dreamplug", "mrvl,kirkwood-88f6281", "mrvl,kirkwood";
8+
9+ memory {
10+ device_type = "memory";
11+ reg = <0x00000000 0x20000000>;
12+ };
13+
14+ chosen {
15+ bootargs = "console=ttyS0,115200n8 earlyprintk";
16+ };
17+
18+ ocp@f1000000 {
19+ serial@12000 {
20+ clock-frequency = <200000000>;
21+ status = "ok";
22+ };
23+ };
24+};
arch/arm/boot/dts/kirkwood.dtsi+36−0
@@ -0,0 +1,36 @@
1+/include/ "skeleton.dtsi"
2+
3+/ {
4+ compatible = "mrvl,kirkwood";
5+
6+ ocp@f1000000 {
7+ compatible = "simple-bus";
8+ ranges = <0 0xf1000000 0x1000000>;
9+ #address-cells = <1>;
10+ #size-cells = <1>;
11+
12+ serial@12000 {
13+ compatible = "ns16550a";
14+ reg = <0x12000 0x100>;
15+ reg-shift = <2>;
16+ interrupts = <33>;
17+ /* set clock-frequency in board dts */
18+ status = "disabled";
19+ };
20+
21+ serial@12100 {
22+ compatible = "ns16550a";
23+ reg = <0x12100 0x100>;
24+ reg-shift = <2>;
25+ interrupts = <34>;
26+ /* set clock-frequency in board dts */
27+ status = "disabled";
28+ };
29+
30+ rtc@10300 {
31+ compatible = "mrvl,kirkwood-rtc", "mrvl,orion-rtc";
32+ reg = <0x10300 0x20>;
33+ interrupts = <53>;
34+ };
35+ };
36+};
arch/arm/boot/dts/omap3-beagle.dts+0−9
@@ -13,15 +13,6 @@ · 12 unmodified lines
1313 model = "TI OMAP3 BeagleBoard";
1414 compatible = "ti,omap3-beagle", "ti,omap3";
1515
16− /*
17− * Since the initial device tree board file does not create any
18− * devices (MMC, network...), the only way to boot is to provide a
19− * ramdisk.
20− */
21− chosen {
22− bootargs = "root=/dev/ram0 rw console=ttyO2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 no_console_suspend debug earlyprintk";
23− };
24−
2516 memory {
2617 device_type = "memory";
2718 reg = <0x80000000 0x20000000>; /* 512 MB */
arch/arm/boot/dts/omap3-evm.dts+20−0
@@ -0,0 +1,20 @@
1+/*
2+ * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License version 2 as
6+ * published by the Free Software Foundation.
7+ */
8+/dts-v1/;
9+
10+/include/ "omap3.dtsi"
11+
12+/ {
13+ model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)";
14+ compatible = "ti,omap3-evm", "ti,omap3";
15+
16+ memory {
17+ device_type = "memory";
18+ reg = <0x80000000 0x10000000>; /* 256 MB */
19+ };
20+};
arch/arm/boot/dts/omap3.dtsi+29−6
@@ -61,34 +61,57 @@ · 60 unmodified lines
6161 ranges;
6262 ti,hwmods = "l3_main";
6363
64− intc: interrupt-controller@1 {
65− compatible = "ti,omap3-intc";
64+ intc: interrupt-controller@48200000 {
65+ compatible = "ti,omap2-intc";
6666 interrupt-controller;
6767 #interrupt-cells = <1>;
68+ ti,intc-size = <96>;
69+ reg = <0x48200000 0x1000>;
6870 };
6971
70− uart1: serial@0x4806a000 {
72+ uart1: serial@4806a000 {
7173 compatible = "ti,omap3-uart";
7274 ti,hwmods = "uart1";
7375 clock-frequency = <48000000>;
7476 };
7577
76− uart2: serial@0x4806c000 {
78+ uart2: serial@4806c000 {
7779 compatible = "ti,omap3-uart";
7880 ti,hwmods = "uart2";
7981 clock-frequency = <48000000>;
8082 };
8183
82− uart3: serial@0x49020000 {
84+ uart3: serial@49020000 {
8385 compatible = "ti,omap3-uart";
8486 ti,hwmods = "uart3";
8587 clock-frequency = <48000000>;
8688 };
8789
88− uart4: serial@0x49042000 {
90+ uart4: serial@49042000 {
8991 compatible = "ti,omap3-uart";
9092 ti,hwmods = "uart4";
9193 clock-frequency = <48000000>;
9294 };
95+
96+ i2c1: i2c@48070000 {
97+ compatible = "ti,omap3-i2c";
98+ #address-cells = <1>;
99+ #size-cells = <0>;
100+ ti,hwmods = "i2c1";
101+ };
102+
103+ i2c2: i2c@48072000 {
104+ compatible = "ti,omap3-i2c";
105+ #address-cells = <1>;
106+ #size-cells = <0>;
107+ ti,hwmods = "i2c2";
108+ };
109+
110+ i2c3: i2c@48060000 {
111+ compatible = "ti,omap3-i2c";
112+ #address-cells = <1>;
113+ #size-cells = <0>;
114+ ti,hwmods = "i2c3";
115+ };
93116 };
94117 };
arch/arm/boot/dts/omap4-panda.dts+0−9
@@ -13,15 +13,6 @@ · 12 unmodified lines
1313 model = "TI OMAP4 PandaBoard";
1414 compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
1515
16− /*
17− * Since the initial device tree board file does not create any
18− * devices (MMC, network...), the only way to boot is to provide a
19− * ramdisk.
20− */
21− chosen {
22− bootargs = "root=/dev/ram0 rw console=ttyO2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 no_console_suspend debug";
23− };
24−
2516 memory {
2617 device_type = "memory";
2718 reg = <0x80000000 0x40000000>; /* 1 GB */
arch/arm/boot/dts/omap4-sdp.dts+0−9
@@ -13,15 +13,6 @@ · 12 unmodified lines
1313 model = "TI OMAP4 SDP board";
1414 compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";
1515
16− /*
17− * Since the initial device tree board file does not create any
18− * devices (MMC, network...), the only way to boot is to provide a
19− * ramdisk.
20− */
21− chosen {
22− bootargs = "root=/dev/ram0 rw console=ttyO2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 no_console_suspend debug";
23− };
24−
2516 memory {
2617 device_type = "memory";
2718 reg = <0x80000000 0x40000000>; /* 1 GB */
arch/arm/boot/dts/omap4.dtsi+33−5
@@ -99,33 +99,61 @@ · 98 unmodified lines
9999 gic: interrupt-controller@48241000 {
100100 compatible = "arm,cortex-a9-gic";
101101 interrupt-controller;
102− #interrupt-cells = <1>;
102+ #interrupt-cells = <3>;
103103 reg = <0x48241000 0x1000>,
104104 <0x48240100 0x0100>;
105105 };
106106
107− uart1: serial@0x4806a000 {
107+ uart1: serial@4806a000 {
108108 compatible = "ti,omap4-uart";
109109 ti,hwmods = "uart1";
110110 clock-frequency = <48000000>;
111111 };
112112
113− uart2: serial@0x4806c000 {
113+ uart2: serial@4806c000 {
114114 compatible = "ti,omap4-uart";
115115 ti,hwmods = "uart2";
116116 clock-frequency = <48000000>;
117117 };
118118
119− uart3: serial@0x48020000 {
119+ uart3: serial@48020000 {
120120 compatible = "ti,omap4-uart";
121121 ti,hwmods = "uart3";
122122 clock-frequency = <48000000>;
123123 };
124124
125− uart4: serial@0x4806e000 {
125+ uart4: serial@4806e000 {
126126 compatible = "ti,omap4-uart";
127127 ti,hwmods = "uart4";
128128 clock-frequency = <48000000>;
129129 };
130+
131+ i2c1: i2c@48070000 {
132+ compatible = "ti,omap4-i2c";
133+ #address-cells = <1>;
134+ #size-cells = <0>;
135+ ti,hwmods = "i2c1";
136+ };
137+
138+ i2c2: i2c@48072000 {
139+ compatible = "ti,omap4-i2c";
140+ #address-cells = <1>;
141+ #size-cells = <0>;
142+ ti,hwmods = "i2c2";
143+ };
144+
145+ i2c3: i2c@48060000 {
146+ compatible = "ti,omap4-i2c";
147+ #address-cells = <1>;
148+ #size-cells = <0>;
149+ ti,hwmods = "i2c3";
150+ };
151+
152+ i2c4: i2c@48350000 {
153+ compatible = "ti,omap4-i2c";
154+ #address-cells = <1>;
155+ #size-cells = <0>;
156+ ti,hwmods = "i2c4";
157+ };
130158 };
131159 };
arch/arm/boot/dts/pxa168-aspenite.dts+38−0
@@ -0,0 +1,38 @@
1+/*
2+ * Copyright (C) 2012 Marvell Technology Group Ltd.
3+ * Author: Haojian Zhuang <haojian.zhuang@marvell.com>
4+ *
5+ * This program is free software; you can redistribute it and/or modify
6+ * it under the terms of the GNU General Public License version 2 as
7+ * publishhed by the Free Software Foundation.
8+ */
9+
10+/dts-v1/;
11+/include/ "pxa168.dtsi"
12+
13+/ {
14+ model = "Marvell PXA168 Aspenite Development Board";
15+ compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168";
16+
17+ chosen {
18+ bootargs = "console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
19+ };
20+
21+ memory {
22+ reg = <0x00000000 0x04000000>;
23+ };
24+
25+ soc {
26+ apb@d4000000 {
27+ uart1: uart@d4017000 {
28+ status = "okay";
29+ };
30+ twsi1: i2c@d4011000 {
31+ status = "okay";
32+ };
33+ rtc: rtc@d4010000 {
34+ status = "okay";
35+ };
36+ };
37+ };
38+};
arch/arm/boot/dts/pxa168.dtsi+98−0
@@ -0,0 +1,98 @@
1+/*
2+ * Copyright (C) 2012 Marvell Technology Group Ltd.
3+ * Author: Haojian Zhuang <haojian.zhuang@marvell.com>
4+ *
5+ * This program is free software; you can redistribute it and/or modify
6+ * it under the terms of the GNU General Public License version 2 as
7+ * publishhed by the Free Software Foundation.
8+ */
9+
10+/include/ "skeleton.dtsi"
11+
12+/ {
13+ aliases {
14+ serial0 = &uart1;
15+ serial1 = &uart2;
16+ serial2 = &uart3;
17+ i2c0 = &twsi1;
18+ i2c1 = &twsi2;
19+ };
20+
21+ intc: intc-interrupt-controller@d4282000 {
22+ compatible = "mrvl,mmp-intc", "mrvl,intc";
23+ interrupt-controller;
24+ #interrupt-cells = <1>;
25+ reg = <0xd4282000 0x1000>;
26+ };
27+
28+ soc {
29+ #address-cells = <1>;
30+ #size-cells = <1>;
31+ compatible = "simple-bus";
32+ interrupt-parent = <&intc>;
33+ ranges;
34+
35+ apb@d4000000 { /* APB */
36+ compatible = "mrvl,apb-bus", "simple-bus";
37+ #address-cells = <1>;
38+ #size-cells = <1>;
39+ reg = <0xd4000000 0x00200000>;
40+ ranges;
41+
42+ uart1: uart@d4017000 {
43+ compatible = "mrvl,mmp-uart", "mrvl,pxa-uart";
44+ reg = <0xd4017000 0x1000>;
45+ interrupts = <27>;
46+ status = "disabled";
47+ };
48+
49+ uart2: uart@d4018000 {
50+ compatible = "mrvl,mmp-uart", "mrvl,pxa-uart";
51+ reg = <0xd4018000 0x1000>;
52+ interrupts = <28>;
53+ status = "disabled";
54+ };
55+
56+ uart3: uart@d4026000 {
57+ compatible = "mrvl,mmp-uart", "mrvl,pxa-uart";
58+ reg = <0xd4026000 0x1000>;
59+ interrupts = <29>;
60+ status = "disabled";
61+ };
62+
63+ gpio: gpio@d4019000 {
64+ compatible = "mrvl,mmp-gpio", "mrvl,pxa-gpio";
65+ reg = <0xd4019000 0x1000>;
66+ interrupts = <49>;
67+ interrupt-names = "gpio_mux";
68+ gpio-controller;
69+ #gpio-cells = <1>;
70+ interrupt-controller;
71+ #interrupt-cells = <1>;
72+ };
73+
74+ twsi1: i2c@d4011000 {
75+ compatible = "mrvl,mmp-twsi", "mrvl,pxa-i2c";
76+ reg = <0xd4011000 0x1000>;
77+ interrupts = <7>;
78+ mrvl,i2c-fast-mode;
79+ status = "disabled";
80+ };
81+
82+ twsi2: i2c@d4025000 {
83+ compatible = "mrvl,mmp-twsi", "mrvl,pxa-i2c";
84+ reg = <0xd4025000 0x1000>;
85+ interrupts = <58>;
86+ status = "disabled";
87+ };
88+
89+ rtc: rtc@d4010000 {
90+ compatible = "mrvl,mmp-rtc";
91+ reg = <0xd4010000 0x1000>;
92+ interrupts = <5 6>;
93+ interrupt-names = "rtc 1Hz", "rtc alarm";
94+ status = "disabled";
95+ };
96+ };
97+ };
98+};
arch/arm/boot/dts/snowball.dts+139−0
@@ -0,0 +1,139 @@
1+/*
2+ * Copyright 2011 ST-Ericsson AB
3+ *
4+ * The code contained herein is licensed under the GNU General Public
5+ * License. You may obtain a copy of the GNU General Public License
6+ * Version 2 or later at the following locations:
7+ *
8+ * http://www.opensource.org/licenses/gpl-license.html
9+ * http://www.gnu.org/copyleft/gpl.html
10+ */
11+
12+/dts-v1/;
13+/include/ "db8500.dtsi"
14+
15+/ {
16+ model = "Calao Systems Snowball platform with device tree";
17+ compatible = "calaosystems,snowball-a9500";
18+
19+ memory {
20+ reg = <0x00000000 0x20000000>;
21+ };
22+
23+ gpio_keys {
24+ compatible = "gpio-keys";
25+ #address-cells = <1>;
26+ #size-cells = <0>;
27+
28+ button@1 {
29+ debounce_interval = <50>;
30+ wakeup = <1>;
31+ linux,code = <2>;
32+ label = "userpb";
33+ gpios = <&gpio1 0>;
34+ };
35+ button@2 {
36+ debounce_interval = <50>;
37+ wakeup = <1>;
38+ linux,code = <3>;
39+ label = "userpb";
40+ gpios = <&gpio4 23>;
41+ };
42+ button@3 {
43+ debounce_interval = <50>;
44+ wakeup = <1>;
45+ linux,code = <4>;
46+ label = "userpb";
47+ gpios = <&gpio4 23>;
48+ };
49+ button@4 {
50+ debounce_interval = <50>;
51+ wakeup = <1>;
52+ linux,code = <5>;
53+ label = "userpb";
54+ gpios = <&gpio5 1>;
55+ };
56+ button@5 {
57+ debounce_interval = <50>;
58+ wakeup = <1>;
59+ linux,code = <6>;
60+ label = "userpb";
61+ gpios = <&gpio5 2>;
62+ };
63+ };
64+
65+ leds {
66+ compatible = "gpio-leds";
67+ used-led {
68+ label = "user_led";
69+ gpios = <&gpio4 14>;
70+ };
71+ };
72+
73+ soc-u9500 {
74+
75+ external-bus@50000000 {
76+ compatible = "simple-bus";
77+ reg = <0x50000000 0x10000000>;
78+ #address-cells = <1>;
79+ #size-cells = <1>;
80+ ranges;
81+
82+ ethernet@50000000 {
83+ compatible = "smsc,9111";
84+ reg = <0x50000000 0x10000>;
85+ interrupts = <12>;
86+ interrupt-parent = <&gpio4>;
87+ };
88+ };
89+
90+ sdi@80126000 {
91+ status = "enabled";
92+ cd-gpios = <&gpio6 26>;
93+ };
94+
95+ sdi@80114000 {
96+ status = "enabled";
97+ };
98+
99+ uart@80120000 {
100+ status = "okay";
101+ };
102+
103+ uart@80121000 {
104+ status = "okay";
105+ };
106+
107+ uart@80007000 {
108+ status = "okay";
109+ };
110+
111+ i2c@80004000 {
112+ tc3589x@42 {
113+ //compatible = "tc3589x";
114+ reg = <0x42>;
115+ interrupts = <25>;
116+ interrupt-parent = <&gpio6>;
117+ };
118+ tps61052@33 {
119+ //compatible = "tps61052";
120+ reg = <0x33>;
121+ };
122+ };
123+
124+ i2c@80128000 {
125+ lp5521@0x33 {
126+ // compatible = "lp5521";
127+ reg = <0x33>;
128+ };
129+ lp5521@0x34 {
130+ // compatible = "lp5521";
131+ reg = <0x34>;
132+ };
133+ bh1780@0x29 {
134+ // compatible = "rohm,bh1780gli";
135+ reg = <0x33>;
136+ };
137+ };
138+ };
139+};
arch/arm/boot/dts/spear600-evb.dts+47−0
@@ -0,0 +1,47 @@
1+/*
2+ * Copyright 2012 Stefan Roese <sr@denx.de>
3+ *
4+ * The code contained herein is licensed under the GNU General Public
5+ * License. You may obtain a copy of the GNU General Public License
6+ * Version 2 or later at the following locations:
7+ *
8+ * http://www.opensource.org/licenses/gpl-license.html
9+ * http://www.gnu.org/copyleft/gpl.html
10+ */
11+
12+/dts-v1/;
13+/include/ "spear600.dtsi"
14+
15+/ {
16+ model = "ST SPEAr600 Evaluation Board";
17+ compatible = "st,spear600-evb", "st,spear600";
18+ #address-cells = <1>;
19+ #size-cells = <1>;
20+
21+ memory {
22+ device_type = "memory";
23+ reg = <0 0x10000000>;
24+ };
25+
26+ ahb {
27+ gmac: ethernet@e0800000 {
28+ phy-mode = "gmii";
29+ status = "okay";
30+ };
31+
32+ apb {
33+ serial@d0000000 {
34+ status = "okay";
35+ };
36+
37+ serial@d0080000 {
38+ status = "okay";
39+ };
40+
41+ i2c@d0200000 {
42+ clock-frequency = <400000>;
43+ status = "okay";
44+ };
45+ };
46+ };
47+};
arch/arm/boot/dts/spear600.dtsi+174−0
@@ -0,0 +1,174 @@
1+/*
2+ * Copyright 2012 Stefan Roese <sr@denx.de>
3+ *
4+ * The code contained herein is licensed under the GNU General Public
5+ * License. You may obtain a copy of the GNU General Public License
6+ * Version 2 or later at the following locations:
7+ *
8+ * http://www.opensource.org/licenses/gpl-license.html
9+ * http://www.gnu.org/copyleft/gpl.html
10+ */
11+
12+/include/ "skeleton.dtsi"
13+
14+/ {
15+ compatible = "st,spear600";
16+
17+ cpus {
18+ cpu@0 {
19+ compatible = "arm,arm926ejs";
20+ };
21+ };
22+
23+ memory {
24+ device_type = "memory";
25+ reg = <0 0x40000000>;
26+ };
27+
28+ ahb {
29+ #address-cells = <1>;
30+ #size-cells = <1>;
31+ compatible = "simple-bus";
32+ ranges = <0xd0000000 0xd0000000 0x30000000>;
33+
34+ vic0: interrupt-controller@f1100000 {
35+ compatible = "arm,pl190-vic";
36+ interrupt-controller;
37+ reg = <0xf1100000 0x1000>;
38+ #interrupt-cells = <1>;
39+ };
40+
41+ vic1: interrupt-controller@f1000000 {
42+ compatible = "arm,pl190-vic";
43+ interrupt-controller;
44+ reg = <0xf1000000 0x1000>;
45+ #interrupt-cells = <1>;
46+ };
47+
48+ gmac: ethernet@e0800000 {
49+ compatible = "st,spear600-gmac";
50+ reg = <0xe0800000 0x8000>;
51+ interrupt-parent = <&vic1>;
52+ interrupts = <24 23>;
53+ interrupt-names = "macirq", "eth_wake_irq";
54+ status = "disabled";
55+ };
56+
57+ fsmc: flash@d1800000 {
58+ compatible = "st,spear600-fsmc-nand";
59+ #address-cells = <1>;
60+ #size-cells = <1>;
61+ reg = <0xd1800000 0x1000 /* FSMC Register */
62+ 0xd2000000 0x4000>; /* NAND Base */
63+ reg-names = "fsmc_regs", "nand_data";
64+ st,ale-off = <0x20000>;
65+ st,cle-off = <0x10000>;
66+ status = "disabled";
67+ };
68+
69+ smi: flash@fc000000 {
70+ compatible = "st,spear600-smi";
71+ #address-cells = <1>;
72+ #size-cells = <1>;
73+ reg = <0xfc000000 0x1000>;
74+ interrupt-parent = <&vic1>;
75+ interrupts = <12>;
76+ status = "disabled";
77+ };
78+
79+ ehci@e1800000 {
80+ compatible = "st,spear600-ehci", "usb-ehci";
81+ reg = <0xe1800000 0x1000>;
82+ interrupt-parent = <&vic1>;
83+ interrupts = <27>;
84+ status = "disabled";
85+ };
86+
87+ ehci@e2000000 {
88+ compatible = "st,spear600-ehci", "usb-ehci";
89+ reg = <0xe2000000 0x1000>;
90+ interrupt-parent = <&vic1>;
91+ interrupts = <29>;
92+ status = "disabled";
93+ };
94+
95+ ohci@e1900000 {
96+ compatible = "st,spear600-ohci", "usb-ohci";
97+ reg = <0xe1900000 0x1000>;
98+ interrupt-parent = <&vic1>;
99+ interrupts = <26>;
100+ status = "disabled";
101+ };
102+
103+ ohci@e2100000 {
104+ compatible = "st,spear600-ohci", "usb-ohci";
105+ reg = <0xe2100000 0x1000>;
106+ interrupt-parent = <&vic1>;
107+ interrupts = <28>;
108+ status = "disabled";
109+ };
110+
111+ apb {
112+ #address-cells = <1>;
113+ #size-cells = <1>;
114+ compatible = "simple-bus";
115+ ranges = <0xd0000000 0xd0000000 0x30000000>;
116+
117+ serial@d0000000 {
118+ compatible = "arm,pl011", "arm,primecell";
119+ reg = <0xd0000000 0x1000>;
120+ interrupt-parent = <&vic0>;
121+ interrupts = <24>;
122+ status = "disabled";
123+ };
124+
125+ serial@d0080000 {
126+ compatible = "arm,pl011", "arm,primecell";
127+ reg = <0xd0080000 0x1000>;
128+ interrupt-parent = <&vic0>;
129+ interrupts = <25>;
130+ status = "disabled";
131+ };
132+
133+ /* local/cpu GPIO */
134+ gpio0: gpio@f0100000 {
135+ #gpio-cells = <2>;
136+ compatible = "arm,pl061", "arm,primecell";
137+ gpio-controller;
138+ reg = <0xf0100000 0x1000>;
139+ interrupt-parent = <&vic0>;
140+ interrupts = <18>;
141+ };
142+
143+ /* basic GPIO */
144+ gpio1: gpio@fc980000 {
145+ #gpio-cells = <2>;
146+ compatible = "arm,pl061", "arm,primecell";
147+ gpio-controller;
148+ reg = <0xfc980000 0x1000>;
149+ interrupt-parent = <&vic1>;
150+ interrupts = <19>;
151+ };
152+
153+ /* appl GPIO */
154+ gpio2: gpio@d8100000 {
155+ #gpio-cells = <2>;
156+ compatible = "arm,pl061", "arm,primecell";
157+ gpio-controller;
158+ reg = <0xd8100000 0x1000>;
159+ interrupt-parent = <&vic1>;
160+ interrupts = <4>;
161+ };
162+
163+ i2c@d0200000 {
164+ #address-cells = <1>;
165+ #size-cells = <0>;
166+ compatible = "snps,designware-i2c";
167+ reg = <0xd0200000 0x1000>;
168+ interrupt-parent = <&vic0>;
169+ interrupts = <28>;
170+ status = "disabled";
171+ };
172+ };
173+ };
174+};
arch/arm/boot/dts/tegra-cardhu.dts+34−0
@@ -14,6 +14,22 @@ · 13 unmodified lines
1414 clock-frequency = < 408000000 >;
1515 };
1616
17+ serial@70006040 {
18+ status = "disable";
19+ };
20+
21+ serial@70006200 {
22+ status = "disable";
23+ };
24+
25+ serial@70006300 {
26+ status = "disable";
27+ };
28+
29+ serial@70006400 {
30+ status = "disable";
31+ };
32+
1733 i2c@7000c000 {
1834 clock-frequency = <100000>;
1935 };
@@ -33,4 +49,22 @@ · 13 unmodified lines
3349 i2c@7000d000 {
3450 clock-frequency = <100000>;
3551 };
52+
53+ sdhci@78000000 {
54+ cd-gpios = <&gpio 69 0>; /* gpio PI5 */
55+ wp-gpios = <&gpio 155 0>; /* gpio PT3 */
56+ power-gpios = <&gpio 31 0>; /* gpio PD7 */
57+ };
58+
59+ sdhci@78000200 {
60+ status = "disable";
61+ };
62+
63+ sdhci@78000400 {
64+ status = "disable";
65+ };
66+
67+ sdhci@78000400 {
68+ support-8bit;
69+ };
3670 };
arch/arm/boot/dts/tegra-harmony.dts+35−10
@@ -10,19 +10,25 @@ · 9 unmodified lines
1010 reg = < 0x00000000 0x40000000 >;
1111 };
1212
13+ pmc@7000f400 {
14+ nvidia,invert-interrupt;
15+ };
16+
1317 i2c@7000c000 {
1418 clock-frequency = <400000>;
1519
16− codec: wm8903@1a {
20+ wm8903: wm8903@1a {
1721 compatible = "wlf,wm8903";
1822 reg = <0x1a>;
19− interrupts = < 347 >;
23+ interrupt-parent = <&gpio>;
24+ interrupts = < 187 0x04 >;
2025
2126 gpio-controller;
2227 #gpio-cells = <2>;
2328
24− /* 0x8000 = Not configured */
25− gpio-cfg = < 0x8000 0x8000 0 0x8000 0x8000 >;
29+ micdet-cfg = <0>;
30+ micdet-delay = <100>;
31+ gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >;
2632 };
2733 };
2834
@@ -38,13 +44,32 @@ · 9 unmodified lines
3844 clock-frequency = <400000>;
3945 };
4046
41− sound {
42− compatible = "nvidia,harmony-sound", "nvidia,tegra-wm8903";
47+ i2s@70002a00 {
48+ status = "disable";
49+ };
4350
44− spkr-en-gpios = <&codec 2 0>;
45− hp-det-gpios = <&gpio 178 0>;
46− int-mic-en-gpios = <&gpio 184 0>;
47− ext-mic-en-gpios = <&gpio 185 0>;
51+ sound {
52+ compatible = "nvidia,tegra-audio-wm8903-harmony",
53+ "nvidia,tegra-audio-wm8903";
54+ nvidia,model = "NVIDIA Tegra Harmony";
55+
56+ nvidia,audio-routing =
57+ "Headphone Jack", "HPOUTR",
58+ "Headphone Jack", "HPOUTL",
59+ "Int Spk", "ROP",
60+ "Int Spk", "RON",
61+ "Int Spk", "LOP",
62+ "Int Spk", "LON",
63+ "Mic Jack", "MICBIAS",
64+ "IN1L", "Mic Jack";
65+
66+ nvidia,i2s-controller = <&tegra_i2s1>;
67+ nvidia,audio-codec = <&wm8903>;
68+
69+ nvidia,spkr-en-gpios = <&wm8903 2 0>;
70+ nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
71+ nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */
72+ nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */
4873 };
4974
5075 serial@70006000 {
arch/arm/boot/dts/tegra-paz00.dts+57−0
@@ -12,6 +12,13 @@ · 11 unmodified lines
1212
1313 i2c@7000c000 {
1414 clock-frequency = <400000>;
15+
16+ alc5632: alc5632@1e {
17+ compatible = "realtek,alc5632";
18+ reg = <0x1e>;
19+ gpio-controller;
20+ #gpio-cells = <2>;
21+ };
1522 };
1623
1724 i2c@7000c400 {
@@ -35,6 +42,35 @@ · 17 unmodified lines
3542
3643 i2c@7000d000 {
3744 clock-frequency = <400000>;
45+
46+ adt7461@4c {
47+ compatible = "adi,adt7461";
48+ reg = <0x4c>;
49+ };
50+ };
51+
52+ i2s@70002a00 {
53+ status = "disable";
54+ };
55+
56+ sound {
57+ compatible = "nvidia,tegra-audio-alc5632-paz00",
58+ "nvidia,tegra-audio-alc5632";
59+
60+ nvidia,model = "Compal PAZ00";
61+
62+ nvidia,audio-routing =
63+ "Int Spk", "SPKOUT",
64+ "Int Spk", "SPKOUTN",
65+ "Headset Mic", "MICBIAS1",
66+ "MIC1", "Headset Mic",
67+ "Headset Stereophone", "HPR",
68+ "Headset Stereophone", "HPL",
69+ "DMICDAT", "Digital Mic";
70+
71+ nvidia,audio-codec = <&alc5632>;
72+ nvidia,i2s-controller = <&tegra_i2s1>;
73+ nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
3874 };
3975
4076 serial@70006000 {
@@ -74,4 +110,25 @@ · 33 unmodified lines
74110 sdhci@c8000600 {
75111 support-8bit;
76112 };
113+
114+ gpio-keys {
115+ compatible = "gpio-keys";
116+
117+ power {
118+ label = "Power";
119+ gpios = <&gpio 79 1>; /* gpio PJ7, active low */
120+ linux,code = <116>; /* KEY_POWER */
121+ gpio-key,wakeup;
122+ };
123+ };
124+
125+ gpio-leds {
126+ compatible = "gpio-leds";
127+
128+ wifi {
129+ label = "wifi-led";
130+ gpios = <&gpio 24 0>;
131+ linux,default-trigger = "rfkill0";
132+ };
133+ };
77134 };
arch/arm/boot/dts/tegra-seaboard.dts+79−0
@@ -13,6 +13,20 @@ · 12 unmodified lines
1313
1414 i2c@7000c000 {
1515 clock-frequency = <400000>;
16+
17+ wm8903: wm8903@1a {
18+ compatible = "wlf,wm8903";
19+ reg = <0x1a>;
20+ interrupt-parent = <&gpio>;
21+ interrupts = < 187 0x04 >;
22+
23+ gpio-controller;
24+ #gpio-cells = <2>;
25+
26+ micdet-cfg = <0>;
27+ micdet-delay = <100>;
28+ gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >;
29+ };
1630 };
1731
1832 i2c@7000c400 {
@@ -32,6 +46,32 @@ · 13 unmodified lines
3246 };
3347 };
3448
49+ i2s@70002a00 {
50+ status = "disable";
51+ };
52+
53+ sound {
54+ compatible = "nvidia,tegra-audio-wm8903-seaboard",
55+ "nvidia,tegra-audio-wm8903";
56+ nvidia,model = "NVIDIA Tegra Seaboard";
57+
58+ nvidia,audio-routing =
59+ "Headphone Jack", "HPOUTR",
60+ "Headphone Jack", "HPOUTL",
61+ "Int Spk", "ROP",
62+ "Int Spk", "RON",
63+ "Int Spk", "LOP",
64+ "Int Spk", "LON",
65+ "Mic Jack", "MICBIAS",
66+ "IN1R", "Mic Jack";
67+
68+ nvidia,i2s-controller = <&tegra_i2s1>;
69+ nvidia,audio-codec = <&wm8903>;
70+
71+ nvidia,spkr-en-gpios = <&wm8903 2 0>;
72+ nvidia,hp-det-gpios = <&gpio 185 0>; /* gpio PX1 */
73+ };
74+
3575 serial@70006000 {
3676 status = "disable";
3777 };
@@ -72,6 +112,7 @@ · 34 unmodified lines
72112
73113 usb@c5000000 {
74114 nvidia,vbus-gpio = <&gpio 24 0>; /* PD0 */
115+ dr_mode = "otg";
75116 };
76117
77118 gpio-keys {
@@ -93,4 +134,42 @@ · 15 unmodified lines
93134 gpio-key,wakeup;
94135 };
95136 };
137+
138+ emc@7000f400 {
139+ emc-table@190000 {
140+ reg = < 190000 >;
141+ compatible = "nvidia,tegra20-emc-table";
142+ clock-frequency = < 190000 >;
143+ nvidia,emc-registers = < 0x0000000c 0x00000026
144+ 0x00000009 0x00000003 0x00000004 0x00000004
145+ 0x00000002 0x0000000c 0x00000003 0x00000003
146+ 0x00000002 0x00000001 0x00000004 0x00000005
147+ 0x00000004 0x00000009 0x0000000d 0x0000059f
148+ 0x00000000 0x00000003 0x00000003 0x00000003
149+ 0x00000003 0x00000001 0x0000000b 0x000000c8
150+ 0x00000003 0x00000007 0x00000004 0x0000000f
151+ 0x00000002 0x00000000 0x00000000 0x00000002
152+ 0x00000000 0x00000000 0x00000083 0xa06204ae
153+ 0x007dc010 0x00000000 0x00000000 0x00000000
154+ 0x00000000 0x00000000 0x00000000 0x00000000 >;
155+ };
156+
157+ emc-table@380000 {
158+ reg = < 380000 >;
159+ compatible = "nvidia,tegra20-emc-table";
160+ clock-frequency = < 380000 >;
161+ nvidia,emc-registers = < 0x00000017 0x0000004b
162+ 0x00000012 0x00000006 0x00000004 0x00000005
163+ 0x00000003 0x0000000c 0x00000006 0x00000006
164+ 0x00000003 0x00000001 0x00000004 0x00000005
165+ 0x00000004 0x00000009 0x0000000d 0x00000b5f
166+ 0x00000000 0x00000003 0x00000003 0x00000006
167+ 0x00000006 0x00000001 0x00000011 0x000000c8
168+ 0x00000003 0x0000000e 0x00000007 0x0000000f
169+ 0x00000002 0x00000000 0x00000000 0x00000002
170+ 0x00000000 0x00000000 0x00000083 0xe044048b
171+ 0x007d8010 0x00000000 0x00000000 0x00000000
172+ 0x00000000 0x00000000 0x00000000 0x00000000 >;
173+ };
174+ };
96175 };
arch/arm/boot/dts/tegra-trimslice.dts+12−0
@@ -26,6 +26,18 @@ · 25 unmodified lines
2626 status = "disable";
2727 };
2828
29+ i2s@70002800 {
30+ status = "disable";
31+ };
32+
33+ i2s@70002a00 {
34+ status = "disable";
35+ };
36+
37+ das@70000c00 {
38+ status = "disable";
39+ };
40+
2941 serial@70006000 {
3042 clock-frequency = < 216000000 >;
3143 };
arch/arm/boot/dts/tegra-ventana.dts+42−0
@@ -12,6 +12,20 @@ · 11 unmodified lines
1212
1313 i2c@7000c000 {
1414 clock-frequency = <400000>;
15+
16+ wm8903: wm8903@1a {
17+ compatible = "wlf,wm8903";
18+ reg = <0x1a>;
19+ interrupt-parent = <&gpio>;
20+ interrupts = < 187 0x04 >;
21+
22+ gpio-controller;
23+ #gpio-cells = <2>;
24+
25+ micdet-cfg = <0>;
26+ micdet-delay = <100>;
27+ gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >;
28+ };
1529 };
1630
1731 i2c@7000c400 {
@@ -26,6 +40,34 @@ · 8 unmodified lines
2640 clock-frequency = <400000>;
2741 };
2842
43+ i2s@70002a00 {
44+ status = "disable";
45+ };
46+
47+ sound {
48+ compatible = "nvidia,tegra-audio-wm8903-ventana",
49+ "nvidia,tegra-audio-wm8903";
50+ nvidia,model = "NVIDIA Tegra Ventana";
51+
52+ nvidia,audio-routing =
53+ "Headphone Jack", "HPOUTR",
54+ "Headphone Jack", "HPOUTL",
55+ "Int Spk", "ROP",
56+ "Int Spk", "RON",
57+ "Int Spk", "LOP",
58+ "Int Spk", "LON",
59+ "Mic Jack", "MICBIAS",
60+ "IN1L", "Mic Jack";
61+
62+ nvidia,i2s-controller = <&tegra_i2s1>;
63+ nvidia,audio-codec = <&wm8903>;
64+
65+ nvidia,spkr-en-gpios = <&wm8903 2 0>;
66+ nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
67+ nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */
68+ nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */
69+ };
70+
2971 serial@70006000 {
3072 status = "disable";
3173 };
arch/arm/boot/dts/tegra20.dtsi+46−4
@@ -4,6 +4,11 @@ · 3 unmodified lines
44 compatible = "nvidia,tegra20";
55 interrupt-parent = <&intc>;
66
7+ pmc@7000f400 {
8+ compatible = "nvidia,tegra20-pmc";
9+ reg = <0x7000e400 0x400>;
10+ };
11+
712 intc: interrupt-controller@50041000 {
813 compatible = "arm,cortex-a9-gic";
914 interrupt-controller;
@@ -12,6 +17,33 @@ · 2 unmodified lines
1217 < 0x50040100 0x0100 >;
1318 };
1419
20+ pmu {
21+ compatible = "arm,cortex-a9-pmu";
22+ interrupts = <0 56 0x04
23+ 0 57 0x04>;
24+ };
25+
26+ apbdma: dma@6000a000 {
27+ compatible = "nvidia,tegra20-apbdma";
28+ reg = <0x6000a000 0x1200>;
29+ interrupts = < 0 104 0x04
30+ 0 105 0x04
31+ 0 106 0x04
32+ 0 107 0x04
33+ 0 108 0x04
34+ 0 109 0x04
35+ 0 110 0x04
36+ 0 111 0x04
37+ 0 112 0x04
38+ 0 113 0x04
39+ 0 114 0x04
40+ 0 115 0x04
41+ 0 116 0x04
42+ 0 117 0x04
43+ 0 118 0x04
44+ 0 119 0x04 >;
45+ };
46+
1547 i2c@7000c000 {
1648 #address-cells = <1>;
1749 #size-cells = <0>;
@@ -44,18 +76,18 @@ · 26 unmodified lines
4476 interrupts = < 0 53 0x04 >;
4577 };
4678
47− i2s@70002800 {
79+ tegra_i2s1: i2s@70002800 {
4880 compatible = "nvidia,tegra20-i2s";
4981 reg = <0x70002800 0x200>;
5082 interrupts = < 0 13 0x04 >;
51− dma-channel = < 2 >;
83+ nvidia,dma-request-selector = < &apbdma 2 >;
5284 };
5385
54− i2s@70002a00 {
86+ tegra_i2s2: i2s@70002a00 {
5587 compatible = "nvidia,tegra20-i2s";
5688 reg = <0x70002a00 0x200>;
5789 interrupts = < 0 3 0x04 >;
58− dma-channel = < 1 >;
90+ nvidia,dma-request-selector = < &apbdma 1 >;
5991 };
6092
6193 das@70000c00 {
@@ -75,6 +107,8 @@ · 13 unmodified lines
75107 0 89 0x04 >;
76108 #gpio-cells = <2>;
77109 gpio-controller;
110+ #interrupt-cells = <2>;
111+ interrupt-controller;
78112 };
79113
80114 pinmux: pinmux@70000000 {
@@ -120,6 +154,13 @@ · 39 unmodified lines
120154 interrupts = < 0 91 0x04 >;
121155 };
122156
157+ emc@7000f400 {
158+ #address-cells = <1>;
159+ #size-cells = <0>;
160+ compatible = "nvidia,tegra20-emc";
161+ reg = <0x7000f400 0x200>;
162+ };
163+
123164 sdhci@c8000000 {
124165 compatible = "nvidia,tegra20-sdhci";
125166 reg = <0xc8000000 0x200>;
@@ -149,6 +190,7 @@ · 23 unmodified lines
149190 reg = <0xc5000000 0x4000>;
150191 interrupts = < 0 20 0x04 >;
151192 phy_type = "utmi";
193+ nvidia,has-legacy-mode;
152194 };
153195
154196 usb@c5004000 {
arch/arm/boot/dts/tegra30.dtsi+60−1
@@ -4,6 +4,11 @@ · 3 unmodified lines
44 compatible = "nvidia,tegra30";
55 interrupt-parent = <&intc>;
66
7+ pmc@7000f400 {
8+ compatible = "nvidia,tegra20-pmc", "nvidia,tegra30-pmc";
9+ reg = <0x7000e400 0x400>;
10+ };
11+
712 intc: interrupt-controller@50041000 {
813 compatible = "arm,cortex-a9-gic";
914 interrupt-controller;
@@ -12,6 +17,51 @@ · 2 unmodified lines
1217 < 0x50040100 0x0100 >;
1318 };
1419
20+ pmu {
21+ compatible = "arm,cortex-a9-pmu";
22+ interrupts = <0 144 0x04
23+ 0 145 0x04
24+ 0 146 0x04
25+ 0 147 0x04>;
26+ };
27+
28+ apbdma: dma@6000a000 {
29+ compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma";
30+ reg = <0x6000a000 0x1400>;
31+ interrupts = < 0 104 0x04
32+ 0 105 0x04
33+ 0 106 0x04
34+ 0 107 0x04
35+ 0 108 0x04
36+ 0 109 0x04
37+ 0 110 0x04
38+ 0 111 0x04
39+ 0 112 0x04
40+ 0 113 0x04
41+ 0 114 0x04
42+ 0 115 0x04
43+ 0 116 0x04
44+ 0 117 0x04
45+ 0 118 0x04
46+ 0 119 0x04
47+ 0 128 0x04
48+ 0 129 0x04
49+ 0 130 0x04
50+ 0 131 0x04
51+ 0 132 0x04
52+ 0 133 0x04
53+ 0 134 0x04
54+ 0 135 0x04
55+ 0 136 0x04
56+ 0 137 0x04
57+ 0 138 0x04
58+ 0 139 0x04
59+ 0 140 0x04
60+ 0 141 0x04
61+ 0 142 0x04
62+ 0 143 0x04 >;
63+ };
64+
1565 i2c@7000c000 {
1666 #address-cells = <1>;
1767 #size-cells = <0>;
@@ -55,9 +105,18 @@ · 37 unmodified lines
55105 gpio: gpio@6000d000 {
56106 compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio";
57107 reg = < 0x6000d000 0x1000 >;
58− interrupts = < 0 32 0x04 0 33 0x04 0 34 0x04 0 35 0x04 0 55 0x04 0 87 0x04 0 89 0x04 >;
108+ interrupts = < 0 32 0x04
109+ 0 33 0x04
110+ 0 34 0x04
111+ 0 35 0x04
112+ 0 55 0x04
113+ 0 87 0x04
114+ 0 89 0x04
115+ 0 125 0x04 >;
59116 #gpio-cells = <2>;
60117 gpio-controller;
118+ #interrupt-cells = <2>;
119+ interrupt-controller;
61120 };
62121
63122 serial@70006000 {
arch/arm/boot/dts/usb_a9g20-dab-mmx.dtsi+96−0
@@ -0,0 +1,96 @@
1+/*
2+ * calao-dab-mmx.dtsi - Device Tree Include file for Calao DAB-MMX Daughter Board
3+ *
4+ * Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
5+ *
6+ * Licensed under GPLv2.
7+ */
8+
9+/ {
10+ ahb {
11+ apb {
12+ usart1: serial@fffb4000 {
13+ status = "okay";
14+ };
15+
16+ usart3: serial@fffd0000 {
17+ status = "okay";
18+ };
19+ };
20+ };
21+
22+ i2c-gpio@0 {
23+ status = "okay";
24+ };
25+
26+ leds {
27+ compatible = "gpio-leds";
28+
29+ user_led1 {
30+ label = "user_led1";
31+ gpios = <&pioB 20 1>;
32+ };
33+
34+/*
35+* led already used by mother board but active as high
36+* user_led2 {
37+* label = "user_led2";
38+* gpios = <&pioB 21 1>;
39+* };
40+*/
41+ user_led3 {
42+ label = "user_led3";
43+ gpios = <&pioB 22 1>;
44+ };
45+
46+ user_led4 {
47+ label = "user_led4";
48+ gpios = <&pioB 23 1>;
49+ };
50+
51+ red {
52+ label = "red";
53+ gpios = <&pioB 24 1>;
54+ };
55+
56+ orange {
57+ label = "orange";
58+ gpios = <&pioB 30 1>;
59+ };
60+
61+ green {
62+ label = "green";
63+ gpios = <&pioB 31 1>;
64+ };
65+ };
66+
67+ gpio_keys {
68+ compatible = "gpio-keys";
69+ #address-cells = <1>;
70+ #size-cells = <0>;
71+
72+ user_pb1 {
73+ label = "user_pb1";
74+ gpios = <&pioB 25 1>;
75+ linux,code = <0x100>;
76+ };
77+
78+ user_pb2 {
79+ label = "user_pb2";
80+ gpios = <&pioB 13 1>;
81+ linux,code = <0x101>;
82+ };
83+
84+ user_pb3 {
85+ label = "user_pb3";
86+ gpios = <&pioA 26 1>;
87+ linux,code = <0x102>;
88+ };
89+
90+ user_pb4 {
91+ label = "user_pb4";
92+ gpios = <&pioC 9 1>;
93+ linux,code = <0x103>;
94+ };
95+ };
96+};
arch/arm/boot/dts/usb_a9g20.dts+97−2
@@ -13,13 +13,24 @@ · 12 unmodified lines
1313 compatible = "calao,usb-a9g20", "atmel,at91sam9g20", "atmel,at91sam9";
1414
1515 chosen {
16− bootargs = "mem=64M console=ttyS0,115200 mtdparts=atmel_nand:128k(at91bootstrap),256k(barebox)ro,128k(bareboxenv),128k(bareboxenv2),4M(kernel),120M(rootfs),-(data) root=/dev/mtdblock5 rw rootfstype=ubifs";
16+ bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs";
1717 };
1818
19− memory@20000000 {
19+ memory {
2020 reg = <0x20000000 0x4000000>;
2121 };
2222
23+ clocks {
24+ #address-cells = <1>;
25+ #size-cells = <1>;
26+ ranges;
27+
28+ main_clock: clock@0 {
29+ compatible = "atmel,osc", "fixed-clock";
30+ clock-frequency = <12000000>;
31+ };
32+ };
33+
2334 ahb {
2435 apb {
2536 dbgu: serial@fffff200 {
@@ -30,6 +41,90 @@ · 4 unmodified lines
3041 phy-mode = "rmii";
3142 status = "okay";
3243 };
44+
45+ usb1: gadget@fffa4000 {
46+ atmel,vbus-gpio = <&pioC 5 0>;
47+ status = "okay";
48+ };
49+ };
50+
51+ nand0: nand@40000000 {
52+ nand-bus-width = <8>;
53+ nand-ecc-mode = "soft";
54+ nand-on-flash-bbt;
55+ status = "okay";
56+
57+ at91bootstrap@0 {
58+ label = "at91bootstrap";
59+ reg = <0x0 0x20000>;
60+ };
61+
62+ barebox@20000 {
63+ label = "barebox";
64+ reg = <0x20000 0x40000>;
65+ };
66+
67+ bareboxenv@60000 {
68+ label = "bareboxenv";
69+ reg = <0x60000 0x20000>;
70+ };
71+
72+ bareboxenv2@80000 {
73+ label = "bareboxenv2";
74+ reg = <0x80000 0x20000>;
75+ };
76+
77+ kernel@a0000 {
78+ label = "kernel";
79+ reg = <0xa0000 0x400000>;
80+ };
81+
82+ rootfs@4a0000 {
83+ label = "rootfs";
84+ reg = <0x4a0000 0x7800000>;
85+ };
86+
87+ data@7ca0000 {
88+ label = "data";
89+ reg = <0x7ca0000 0x8360000>;
90+ };
91+ };
92+
93+ usb0: ohci@00500000 {
94+ num-ports = <2>;
95+ status = "okay";
96+ };
97+ };
98+
99+ leds {
100+ compatible = "gpio-leds";
101+
102+ user_led {
103+ label = "user_led";
104+ gpios = <&pioB 21 1>;
105+ linux,default-trigger = "heartbeat";
106+ };
107+ };
108+
109+ gpio_keys {
110+ compatible = "gpio-keys";
111+ #address-cells = <1>;
112+ #size-cells = <0>;
113+
114+ user_pb {
115+ label = "user_pb";
116+ gpios = <&pioB 10 1>;
117+ linux,code = <28>;
118+ gpio-key,wakeup;
119+ };
120+ };
121+
122+ i2c@0 {
123+ status = "okay";
124+
125+ rv3029c2@56 {
126+ compatible = "rv3029c2";
127+ reg = <0x56>;
33128 };
34129 };
35130 };
arch/arm/boot/dts/vexpress-v2m-rs1.dtsi+201−0
@@ -0,0 +1,201 @@
1+/*
2+ * ARM Ltd. Versatile Express
3+ *
4+ * Motherboard Express uATX
5+ * V2M-P1
6+ *
7+ * HBI-0190D
8+ *
9+ * RS1 memory map ("ARM Cortex-A Series memory map" in the board's
10+ * Technical Reference Manual)
11+ *
12+ * WARNING! The hardware described in this file is independent from the
13+ * original variant (vexpress-v2m.dtsi), but there is a strong
14+ * correspondence between the two configurations.
15+ *
16+ * TAKE CARE WHEN MAINTAINING THIS FILE TO PROPAGATE ANY RELEVANT
17+ * CHANGES TO vexpress-v2m.dtsi!
18+ */
19+
20+/ {
21+ aliases {
22+ arm,v2m_timer = &v2m_timer01;
23+ };
24+
25+ motherboard {
26+ compatible = "simple-bus";
27+ arm,v2m-memory-map = "rs1";
28+ #address-cells = <2>; /* SMB chipselect number and offset */
29+ #size-cells = <1>;
30+ #interrupt-cells = <1>;
31+
32+ flash@0,00000000 {
33+ compatible = "arm,vexpress-flash", "cfi-flash";
34+ reg = <0 0x00000000 0x04000000>,
35+ <4 0x00000000 0x04000000>;
36+ bank-width = <4>;
37+ };
38+
39+ psram@1,00000000 {
40+ compatible = "arm,vexpress-psram", "mtd-ram";
41+ reg = <1 0x00000000 0x02000000>;
42+ bank-width = <4>;
43+ };
44+
45+ vram@2,00000000 {
46+ compatible = "arm,vexpress-vram";
47+ reg = <2 0x00000000 0x00800000>;
48+ };
49+
50+ ethernet@2,02000000 {
51+ compatible = "smsc,lan9118", "smsc,lan9115";
52+ reg = <2 0x02000000 0x10000>;
53+ interrupts = <15>;
54+ phy-mode = "mii";
55+ reg-io-width = <4>;
56+ smsc,irq-active-high;
57+ smsc,irq-push-pull;
58+ };
59+
60+ usb@2,03000000 {
61+ compatible = "nxp,usb-isp1761";
62+ reg = <2 0x03000000 0x20000>;
63+ interrupts = <16>;
64+ port1-otg;
65+ };
66+
67+ iofpga@3,00000000 {
68+ compatible = "arm,amba-bus", "simple-bus";
69+ #address-cells = <1>;
70+ #size-cells = <1>;
71+ ranges = <0 3 0 0x200000>;
72+
73+ sysreg@010000 {
74+ compatible = "arm,vexpress-sysreg";
75+ reg = <0x010000 0x1000>;
76+ };
77+
78+ sysctl@020000 {
79+ compatible = "arm,sp810", "arm,primecell";
80+ reg = <0x020000 0x1000>;
81+ };
82+
83+ /* PCI-E I2C bus */
84+ v2m_i2c_pcie: i2c@030000 {
85+ compatible = "arm,versatile-i2c";
86+ reg = <0x030000 0x1000>;
87+
88+ #address-cells = <1>;
89+ #size-cells = <0>;
90+
91+ pcie-switch@60 {
92+ compatible = "idt,89hpes32h8";
93+ reg = <0x60>;
94+ };
95+ };
96+
97+ aaci@040000 {
98+ compatible = "arm,pl041", "arm,primecell";
99+ reg = <0x040000 0x1000>;
100+ interrupts = <11>;
101+ };
102+
103+ mmci@050000 {
104+ compatible = "arm,pl180", "arm,primecell";
105+ reg = <0x050000 0x1000>;
106+ interrupts = <9 10>;
107+ };
108+
109+ kmi@060000 {
110+ compatible = "arm,pl050", "arm,primecell";
111+ reg = <0x060000 0x1000>;
112+ interrupts = <12>;
113+ };
114+
115+ kmi@070000 {
116+ compatible = "arm,pl050", "arm,primecell";
117+ reg = <0x070000 0x1000>;
118+ interrupts = <13>;
119+ };
120+
121+ v2m_serial0: uart@090000 {
122+ compatible = "arm,pl011", "arm,primecell";
123+ reg = <0x090000 0x1000>;
124+ interrupts = <5>;
125+ };
126+
127+ v2m_serial1: uart@0a0000 {
128+ compatible = "arm,pl011", "arm,primecell";
129+ reg = <0x0a0000 0x1000>;
130+ interrupts = <6>;
131+ };
132+
133+ v2m_serial2: uart@0b0000 {
134+ compatible = "arm,pl011", "arm,primecell";
135+ reg = <0x0b0000 0x1000>;
136+ interrupts = <7>;
137+ };
138+
139+ v2m_serial3: uart@0c0000 {
140+ compatible = "arm,pl011", "arm,primecell";
141+ reg = <0x0c0000 0x1000>;
142+ interrupts = <8>;
143+ };
144+
145+ wdt@0f0000 {
146+ compatible = "arm,sp805", "arm,primecell";
147+ reg = <0x0f0000 0x1000>;
148+ interrupts = <0>;
149+ };
150+
151+ v2m_timer01: timer@110000 {
152+ compatible = "arm,sp804", "arm,primecell";
153+ reg = <0x110000 0x1000>;
154+ interrupts = <2>;
155+ };
156+
157+ v2m_timer23: timer@120000 {
158+ compatible = "arm,sp804", "arm,primecell";
159+ reg = <0x120000 0x1000>;
160+ };
161+
162+ /* DVI I2C bus */
163+ v2m_i2c_dvi: i2c@160000 {
164+ compatible = "arm,versatile-i2c";
165+ reg = <0x160000 0x1000>;
166+
167+ #address-cells = <1>;
168+ #size-cells = <0>;
169+
170+ dvi-transmitter@39 {
171+ compatible = "sil,sii9022-tpi", "sil,sii9022";
172+ reg = <0x39>;
173+ };
174+
175+ dvi-transmitter@60 {
176+ compatible = "sil,sii9022-cpi", "sil,sii9022";
177+ reg = <0x60>;
178+ };
179+ };
180+
181+ rtc@170000 {
182+ compatible = "arm,pl031", "arm,primecell";
183+ reg = <0x170000 0x1000>;
184+ interrupts = <4>;
185+ };
186+
187+ compact-flash@1a0000 {
188+ compatible = "arm,vexpress-cf", "ata-generic";
189+ reg = <0x1a0000 0x100
190+ 0x1a0100 0xf00>;
191+ reg-shift = <2>;
192+ };
193+
194+ clcd@1f0000 {
195+ compatible = "arm,pl111", "arm,primecell";
196+ reg = <0x1f0000 0x1000>;
197+ interrupts = <14>;
198+ };
199+ };
200+ };
201+};
arch/arm/boot/dts/vexpress-v2m.dtsi+200−0
@@ -0,0 +1,200 @@
1+/*
2+ * ARM Ltd. Versatile Express
3+ *
4+ * Motherboard Express uATX
5+ * V2M-P1
6+ *
7+ * HBI-0190D
8+ *
9+ * Original memory map ("Legacy memory map" in the board's
10+ * Technical Reference Manual)
11+ *
12+ * WARNING! The hardware described in this file is independent from the
13+ * RS1 variant (vexpress-v2m-rs1.dtsi), but there is a strong
14+ * correspondence between the two configurations.
15+ *
16+ * TAKE CARE WHEN MAINTAINING THIS FILE TO PROPAGATE ANY RELEVANT
17+ * CHANGES TO vexpress-v2m-rs1.dtsi!
18+ */
19+
20+/ {
21+ aliases {
22+ arm,v2m_timer = &v2m_timer01;
23+ };
24+
25+ motherboard {
26+ compatible = "simple-bus";
27+ #address-cells = <2>; /* SMB chipselect number and offset */
28+ #size-cells = <1>;
29+ #interrupt-cells = <1>;
30+
31+ flash@0,00000000 {
32+ compatible = "arm,vexpress-flash", "cfi-flash";
33+ reg = <0 0x00000000 0x04000000>,
34+ <1 0x00000000 0x04000000>;
35+ bank-width = <4>;
36+ };
37+
38+ psram@2,00000000 {
39+ compatible = "arm,vexpress-psram", "mtd-ram";
40+ reg = <2 0x00000000 0x02000000>;
41+ bank-width = <4>;
42+ };
43+
44+ vram@3,00000000 {
45+ compatible = "arm,vexpress-vram";
46+ reg = <3 0x00000000 0x00800000>;
47+ };
48+
49+ ethernet@3,02000000 {
50+ compatible = "smsc,lan9118", "smsc,lan9115";
51+ reg = <3 0x02000000 0x10000>;
52+ interrupts = <15>;
53+ phy-mode = "mii";
54+ reg-io-width = <4>;
55+ smsc,irq-active-high;
56+ smsc,irq-push-pull;
57+ };
58+
59+ usb@3,03000000 {
60+ compatible = "nxp,usb-isp1761";
61+ reg = <3 0x03000000 0x20000>;
62+ interrupts = <16>;
63+ port1-otg;
64+ };
65+
66+ iofpga@7,00000000 {
67+ compatible = "arm,amba-bus", "simple-bus";
68+ #address-cells = <1>;
69+ #size-cells = <1>;
70+ ranges = <0 7 0 0x20000>;
71+
72+ sysreg@00000 {
73+ compatible = "arm,vexpress-sysreg";
74+ reg = <0x00000 0x1000>;
75+ };
76+
77+ sysctl@01000 {
78+ compatible = "arm,sp810", "arm,primecell";
79+ reg = <0x01000 0x1000>;
80+ };
81+
82+ /* PCI-E I2C bus */
83+ v2m_i2c_pcie: i2c@02000 {
84+ compatible = "arm,versatile-i2c";
85+ reg = <0x02000 0x1000>;
86+
87+ #address-cells = <1>;
88+ #size-cells = <0>;
89+
90+ pcie-switch@60 {
91+ compatible = "idt,89hpes32h8";
92+ reg = <0x60>;
93+ };
94+ };
95+
96+ aaci@04000 {
97+ compatible = "arm,pl041", "arm,primecell";
98+ reg = <0x04000 0x1000>;
99+ interrupts = <11>;
100+ };
101+
102+ mmci@05000 {
103+ compatible = "arm,pl180", "arm,primecell";
104+ reg = <0x05000 0x1000>;
105+ interrupts = <9 10>;
106+ };
107+
108+ kmi@06000 {
109+ compatible = "arm,pl050", "arm,primecell";
110+ reg = <0x06000 0x1000>;
111+ interrupts = <12>;
112+ };
113+
114+ kmi@07000 {
115+ compatible = "arm,pl050", "arm,primecell";
116+ reg = <0x07000 0x1000>;
117+ interrupts = <13>;
118+ };
119+
120+ v2m_serial0: uart@09000 {
121+ compatible = "arm,pl011", "arm,primecell";
122+ reg = <0x09000 0x1000>;
123+ interrupts = <5>;
124+ };
125+
126+ v2m_serial1: uart@0a000 {
127+ compatible = "arm,pl011", "arm,primecell";
128+ reg = <0x0a000 0x1000>;
129+ interrupts = <6>;
130+ };
131+
132+ v2m_serial2: uart@0b000 {
133+ compatible = "arm,pl011", "arm,primecell";
134+ reg = <0x0b000 0x1000>;
135+ interrupts = <7>;
136+ };
137+
138+ v2m_serial3: uart@0c000 {
139+ compatible = "arm,pl011", "arm,primecell";
140+ reg = <0x0c000 0x1000>;
141+ interrupts = <8>;
142+ };
143+
144+ wdt@0f000 {
145+ compatible = "arm,sp805", "arm,primecell";
146+ reg = <0x0f000 0x1000>;
147+ interrupts = <0>;
148+ };
149+
150+ v2m_timer01: timer@11000 {
151+ compatible = "arm,sp804", "arm,primecell";
152+ reg = <0x11000 0x1000>;
153+ interrupts = <2>;
154+ };
155+
156+ v2m_timer23: timer@12000 {
157+ compatible = "arm,sp804", "arm,primecell";
158+ reg = <0x12000 0x1000>;
159+ };
160+
161+ /* DVI I2C bus */
162+ v2m_i2c_dvi: i2c@16000 {
163+ compatible = "arm,versatile-i2c";
164+ reg = <0x16000 0x1000>;
165+
166+ #address-cells = <1>;
167+ #size-cells = <0>;
168+
169+ dvi-transmitter@39 {
170+ compatible = "sil,sii9022-tpi", "sil,sii9022";
171+ reg = <0x39>;
172+ };
173+
174+ dvi-transmitter@60 {
175+ compatible = "sil,sii9022-cpi", "sil,sii9022";
176+ reg = <0x60>;
177+ };
178+ };
179+
180+ rtc@17000 {
181+ compatible = "arm,pl031", "arm,primecell";
182+ reg = <0x17000 0x1000>;
183+ interrupts = <4>;
184+ };
185+
186+ compact-flash@1a000 {
187+ compatible = "arm,vexpress-cf", "ata-generic";
188+ reg = <0x1a000 0x100
189+ 0x1a100 0xf00>;
190+ reg-shift = <2>;
191+ };
192+
193+ clcd@1f000 {
194+ compatible = "arm,pl111", "arm,primecell";
195+ reg = <0x1f000 0x1000>;
196+ interrupts = <14>;
197+ };
198+ };
199+ };
200+};
arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts+157−0
@@ -0,0 +1,157 @@
1+/*
2+ * ARM Ltd. Versatile Express
3+ *
4+ * CoreTile Express A15x2 (version with Test Chip 1)
5+ * Cortex-A15 MPCore (V2P-CA15)
6+ *
7+ * HBI-0237A
8+ */
9+
10+/dts-v1/;
11+
12+/ {
13+ model = "V2P-CA15";
14+ arm,hbi = <0x237>;
15+ compatible = "arm,vexpress,v2p-ca15,tc1", "arm,vexpress,v2p-ca15", "arm,vexpress";
16+ interrupt-parent = <&gic>;
17+ #address-cells = <1>;
18+ #size-cells = <1>;
19+
20+ chosen { };
21+
22+ aliases {
23+ serial0 = &v2m_serial0;
24+ serial1 = &v2m_serial1;
25+ serial2 = &v2m_serial2;
26+ serial3 = &v2m_serial3;
27+ i2c0 = &v2m_i2c_dvi;
28+ i2c1 = &v2m_i2c_pcie;
29+ };
30+
31+ cpus {
32+ #address-cells = <1>;
33+ #size-cells = <0>;
34+
35+ cpu@0 {
36+ device_type = "cpu";
37+ compatible = "arm,cortex-a15";
38+ reg = <0>;
39+ };
40+
41+ cpu@1 {
42+ device_type = "cpu";
43+ compatible = "arm,cortex-a15";
44+ reg = <1>;
45+ };
46+ };
47+
48+ memory@80000000 {
49+ device_type = "memory";
50+ reg = <0x80000000 0x40000000>;
51+ };
52+
53+ hdlcd@2b000000 {
54+ compatible = "arm,hdlcd";
55+ reg = <0x2b000000 0x1000>;
56+ interrupts = <0 85 4>;
57+ };
58+
59+ memory-controller@2b0a0000 {
60+ compatible = "arm,pl341", "arm,primecell";
61+ reg = <0x2b0a0000 0x1000>;
62+ };
63+
64+ wdt@2b060000 {
65+ compatible = "arm,sp805", "arm,primecell";
66+ reg = <0x2b060000 0x1000>;
67+ interrupts = <98>;
68+ };
69+
70+ gic: interrupt-controller@2c001000 {
71+ compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
72+ #interrupt-cells = <3>;
73+ #address-cells = <0>;
74+ interrupt-controller;
75+ reg = <0x2c001000 0x1000>,
76+ <0x2c002000 0x100>;
77+ };
78+
79+ memory-controller@7ffd0000 {
80+ compatible = "arm,pl354", "arm,primecell";
81+ reg = <0x7ffd0000 0x1000>;
82+ interrupts = <0 86 4>,
83+ <0 87 4>;
84+ };
85+
86+ dma@7ffb0000 {
87+ compatible = "arm,pl330", "arm,primecell";
88+ reg = <0x7ffb0000 0x1000>;
89+ interrupts = <0 92 4>,
90+ <0 88 4>,
91+ <0 89 4>,
92+ <0 90 4>,
93+ <0 91 4>;
94+ };
95+
96+ pmu {
97+ compatible = "arm,cortex-a15-pmu", "arm,cortex-a9-pmu";
98+ interrupts = <0 68 4>,
99+ <0 69 4>;
100+ };
101+
102+ motherboard {
103+ ranges = <0 0 0x08000000 0x04000000>,
104+ <1 0 0x14000000 0x04000000>,
105+ <2 0 0x18000000 0x04000000>,
106+ <3 0 0x1c000000 0x04000000>,
107+ <4 0 0x0c000000 0x04000000>,
108+ <5 0 0x10000000 0x04000000>;
109+
110+ interrupt-map-mask = <0 0 63>;
111+ interrupt-map = <0 0 0 &gic 0 0 4>,
112+ <0 0 1 &gic 0 1 4>,
113+ <0 0 2 &gic 0 2 4>,
114+ <0 0 3 &gic 0 3 4>,
115+ <0 0 4 &gic 0 4 4>,
116+ <0 0 5 &gic 0 5 4>,
117+ <0 0 6 &gic 0 6 4>,
118+ <0 0 7 &gic 0 7 4>,
119+ <0 0 8 &gic 0 8 4>,
120+ <0 0 9 &gic 0 9 4>,
121+ <0 0 10 &gic 0 10 4>,
122+ <0 0 11 &gic 0 11 4>,
123+ <0 0 12 &gic 0 12 4>,
124+ <0 0 13 &gic 0 13 4>,
125+ <0 0 14 &gic 0 14 4>,
126+ <0 0 15 &gic 0 15 4>,
127+ <0 0 16 &gic 0 16 4>,
128+ <0 0 17 &gic 0 17 4>,
129+ <0 0 18 &gic 0 18 4>,
130+ <0 0 19 &gic 0 19 4>,
131+ <0 0 20 &gic 0 20 4>,
132+ <0 0 21 &gic 0 21 4>,
133+ <0 0 22 &gic 0 22 4>,
134+ <0 0 23 &gic 0 23 4>,
135+ <0 0 24 &gic 0 24 4>,
136+ <0 0 25 &gic 0 25 4>,
137+ <0 0 26 &gic 0 26 4>,
138+ <0 0 27 &gic 0 27 4>,
139+ <0 0 28 &gic 0 28 4>,
140+ <0 0 29 &gic 0 29 4>,
141+ <0 0 30 &gic 0 30 4>,
142+ <0 0 31 &gic 0 31 4>,
143+ <0 0 32 &gic 0 32 4>,
144+ <0 0 33 &gic 0 33 4>,
145+ <0 0 34 &gic 0 34 4>,
146+ <0 0 35 &gic 0 35 4>,
147+ <0 0 36 &gic 0 36 4>,
148+ <0 0 37 &gic 0 37 4>,
149+ <0 0 38 &gic 0 38 4>,
150+ <0 0 39 &gic 0 39 4>,
151+ <0 0 40 &gic 0 40 4>,
152+ <0 0 41 &gic 0 41 4>,
153+ <0 0 42 &gic 0 42 4>;
154+ };
155+};
156+
157+/include/ "vexpress-v2m-rs1.dtsi"
arch/arm/boot/dts/vexpress-v2p-ca5s.dts+162−0
@@ -0,0 +1,162 @@
1+/*
2+ * ARM Ltd. Versatile Express
3+ *
4+ * CoreTile Express A5x2
5+ * Cortex-A5 MPCore (V2P-CA5s)
6+ *
7+ * HBI-0225B
8+ */
9+
10+/dts-v1/;
11+
12+/ {
13+ model = "V2P-CA5s";
14+ arm,hbi = <0x225>;
15+ compatible = "arm,vexpress,v2p-ca5s", "arm,vexpress";
16+ interrupt-parent = <&gic>;
17+ #address-cells = <1>;
18+ #size-cells = <1>;
19+
20+ chosen { };
21+
22+ aliases {
23+ serial0 = &v2m_serial0;
24+ serial1 = &v2m_serial1;
25+ serial2 = &v2m_serial2;
26+ serial3 = &v2m_serial3;
27+ i2c0 = &v2m_i2c_dvi;
28+ i2c1 = &v2m_i2c_pcie;
29+ };
30+
31+ cpus {
32+ #address-cells = <1>;
33+ #size-cells = <0>;
34+
35+ cpu@0 {
36+ device_type = "cpu";
37+ compatible = "arm,cortex-a5";
38+ reg = <0>;
39+ next-level-cache = <&L2>;
40+ };
41+
42+ cpu@1 {
43+ device_type = "cpu";
44+ compatible = "arm,cortex-a5";
45+ reg = <1>;
46+ next-level-cache = <&L2>;
47+ };
48+ };
49+
50+ memory@80000000 {
51+ device_type = "memory";
52+ reg = <0x80000000 0x40000000>;
53+ };
54+
55+ hdlcd@2a110000 {
56+ compatible = "arm,hdlcd";
57+ reg = <0x2a110000 0x1000>;
58+ interrupts = <0 85 4>;
59+ };
60+
61+ memory-controller@2a150000 {
62+ compatible = "arm,pl341", "arm,primecell";
63+ reg = <0x2a150000 0x1000>;
64+ };
65+
66+ memory-controller@2a190000 {
67+ compatible = "arm,pl354", "arm,primecell";
68+ reg = <0x2a190000 0x1000>;
69+ interrupts = <0 86 4>,
70+ <0 87 4>;
71+ };
72+
73+ scu@2c000000 {
74+ compatible = "arm,cortex-a5-scu";
75+ reg = <0x2c000000 0x58>;
76+ };
77+
78+ timer@2c000600 {
79+ compatible = "arm,cortex-a5-twd-timer";
80+ reg = <0x2c000600 0x38>;
81+ interrupts = <1 2 0x304>,
82+ <1 3 0x304>;
83+ };
84+
85+ gic: interrupt-controller@2c001000 {
86+ compatible = "arm,corex-a5-gic", "arm,cortex-a9-gic";
87+ #interrupt-cells = <3>;
88+ #address-cells = <0>;
89+ interrupt-controller;
90+ reg = <0x2c001000 0x1000>,
91+ <0x2c000100 0x100>;
92+ };
93+
94+ L2: cache-controller@2c0f0000 {
95+ compatible = "arm,pl310-cache";
96+ reg = <0x2c0f0000 0x1000>;
97+ interrupts = <0 84 4>;
98+ cache-level = <2>;
99+ };
100+
101+ pmu {
102+ compatible = "arm,cortex-a5-pmu", "arm,cortex-a9-pmu";
103+ interrupts = <0 68 4>,
104+ <0 69 4>;
105+ };
106+
107+ motherboard {
108+ ranges = <0 0 0x08000000 0x04000000>,
109+ <1 0 0x14000000 0x04000000>,
110+ <2 0 0x18000000 0x04000000>,
111+ <3 0 0x1c000000 0x04000000>,
112+ <4 0 0x0c000000 0x04000000>,
113+ <5 0 0x10000000 0x04000000>;
114+
115+ interrupt-map-mask = <0 0 63>;
116+ interrupt-map = <0 0 0 &gic 0 0 4>,
117+ <0 0 1 &gic 0 1 4>,
118+ <0 0 2 &gic 0 2 4>,
119+ <0 0 3 &gic 0 3 4>,
120+ <0 0 4 &gic 0 4 4>,
121+ <0 0 5 &gic 0 5 4>,
122+ <0 0 6 &gic 0 6 4>,
123+ <0 0 7 &gic 0 7 4>,
124+ <0 0 8 &gic 0 8 4>,
125+ <0 0 9 &gic 0 9 4>,
126+ <0 0 10 &gic 0 10 4>,
127+ <0 0 11 &gic 0 11 4>,
128+ <0 0 12 &gic 0 12 4>,
129+ <0 0 13 &gic 0 13 4>,
130+ <0 0 14 &gic 0 14 4>,
131+ <0 0 15 &gic 0 15 4>,
132+ <0 0 16 &gic 0 16 4>,
133+ <0 0 17 &gic 0 17 4>,
134+ <0 0 18 &gic 0 18 4>,
135+ <0 0 19 &gic 0 19 4>,
136+ <0 0 20 &gic 0 20 4>,
137+ <0 0 21 &gic 0 21 4>,
138+ <0 0 22 &gic 0 22 4>,
139+ <0 0 23 &gic 0 23 4>,
140+ <0 0 24 &gic 0 24 4>,
141+ <0 0 25 &gic 0 25 4>,
142+ <0 0 26 &gic 0 26 4>,
143+ <0 0 27 &gic 0 27 4>,
144+ <0 0 28 &gic 0 28 4>,
145+ <0 0 29 &gic 0 29 4>,
146+ <0 0 30 &gic 0 30 4>,
147+ <0 0 31 &gic 0 31 4>,
148+ <0 0 32 &gic 0 32 4>,
149+ <0 0 33 &gic 0 33 4>,
150+ <0 0 34 &gic 0 34 4>,
151+ <0 0 35 &gic 0 35 4>,
152+ <0 0 36 &gic 0 36 4>,
153+ <0 0 37 &gic 0 37 4>,
154+ <0 0 38 &gic 0 38 4>,
155+ <0 0 39 &gic 0 39 4>,
156+ <0 0 40 &gic 0 40 4>,
157+ <0 0 41 &gic 0 41 4>,
158+ <0 0 42 &gic 0 42 4>;
159+ };
160+};
161+
162+/include/ "vexpress-v2m-rs1.dtsi"
arch/arm/boot/dts/vexpress-v2p-ca9.dts+192−0
@@ -0,0 +1,192 @@
1+/*
2+ * ARM Ltd. Versatile Express
3+ *
4+ * CoreTile Express A9x4
5+ * Cortex-A9 MPCore (V2P-CA9)
6+ *
7+ * HBI-0191B
8+ */
9+
10+/dts-v1/;
11+
12+/ {
13+ model = "V2P-CA9";
14+ arm,hbi = <0x191>;
15+ compatible = "arm,vexpress,v2p-ca9", "arm,vexpress";
16+ interrupt-parent = <&gic>;
17+ #address-cells = <1>;
18+ #size-cells = <1>;
19+
20+ chosen { };
21+
22+ aliases {
23+ serial0 = &v2m_serial0;
24+ serial1 = &v2m_serial1;
25+ serial2 = &v2m_serial2;
26+ serial3 = &v2m_serial3;
27+ i2c0 = &v2m_i2c_dvi;
28+ i2c1 = &v2m_i2c_pcie;
29+ };
30+
31+ cpus {
32+ #address-cells = <1>;
33+ #size-cells = <0>;
34+
35+ cpu@0 {
36+ device_type = "cpu";
37+ compatible = "arm,cortex-a9";
38+ reg = <0>;
39+ next-level-cache = <&L2>;
40+ };
41+
42+ cpu@1 {
43+ device_type = "cpu";
44+ compatible = "arm,cortex-a9";
45+ reg = <1>;
46+ next-level-cache = <&L2>;
47+ };
48+
49+ cpu@2 {
50+ device_type = "cpu";
51+ compatible = "arm,cortex-a9";
52+ reg = <2>;
53+ next-level-cache = <&L2>;
54+ };
55+
56+ cpu@3 {
57+ device_type = "cpu";
58+ compatible = "arm,cortex-a9";
59+ reg = <3>;
60+ next-level-cache = <&L2>;
61+ };
62+ };
63+
64+ memory@60000000 {
65+ device_type = "memory";
66+ reg = <0x60000000 0x40000000>;
67+ };
68+
69+ clcd@10020000 {
70+ compatible = "arm,pl111", "arm,primecell";
71+ reg = <0x10020000 0x1000>;
72+ interrupts = <0 44 4>;
73+ };
74+
75+ memory-controller@100e0000 {
76+ compatible = "arm,pl341", "arm,primecell";
77+ reg = <0x100e0000 0x1000>;
78+ };
79+
80+ memory-controller@100e1000 {
81+ compatible = "arm,pl354", "arm,primecell";
82+ reg = <0x100e1000 0x1000>;
83+ interrupts = <0 45 4>,
84+ <0 46 4>;
85+ };
86+
87+ timer@100e4000 {
88+ compatible = "arm,sp804", "arm,primecell";
89+ reg = <0x100e4000 0x1000>;
90+ interrupts = <0 48 4>,
91+ <0 49 4>;
92+ };
93+
94+ watchdog@100e5000 {
95+ compatible = "arm,sp805", "arm,primecell";
96+ reg = <0x100e5000 0x1000>;
97+ interrupts = <0 51 4>;
98+ };
99+
100+ scu@1e000000 {
101+ compatible = "arm,cortex-a9-scu";
102+ reg = <0x1e000000 0x58>;
103+ };
104+
105+ timer@1e000600 {
106+ compatible = "arm,cortex-a9-twd-timer";
107+ reg = <0x1e000600 0x20>;
108+ interrupts = <1 2 0xf04>,
109+ <1 3 0xf04>;
110+ };
111+
112+ gic: interrupt-controller@1e001000 {
113+ compatible = "arm,cortex-a9-gic";
114+ #interrupt-cells = <3>;
115+ #address-cells = <0>;
116+ interrupt-controller;
117+ reg = <0x1e001000 0x1000>,
118+ <0x1e000100 0x100>;
119+ };
120+
121+ L2: cache-controller@1e00a000 {
122+ compatible = "arm,pl310-cache";
123+ reg = <0x1e00a000 0x1000>;
124+ interrupts = <0 43 4>;
125+ cache-level = <2>;
126+ arm,data-latency = <1 1 1>;
127+ arm,tag-latency = <1 1 1>;
128+ };
129+
130+ pmu {
131+ compatible = "arm,cortex-a9-pmu";
132+ interrupts = <0 60 4>,
133+ <0 61 4>,
134+ <0 62 4>,
135+ <0 63 4>;
136+ };
137+
138+ motherboard {
139+ ranges = <0 0 0x40000000 0x04000000>,
140+ <1 0 0x44000000 0x04000000>,
141+ <2 0 0x48000000 0x04000000>,
142+ <3 0 0x4c000000 0x04000000>,
143+ <7 0 0x10000000 0x00020000>;
144+
145+ interrupt-map-mask = <0 0 63>;
146+ interrupt-map = <0 0 0 &gic 0 0 4>,
147+ <0 0 1 &gic 0 1 4>,
148+ <0 0 2 &gic 0 2 4>,
149+ <0 0 3 &gic 0 3 4>,
150+ <0 0 4 &gic 0 4 4>,
151+ <0 0 5 &gic 0 5 4>,
152+ <0 0 6 &gic 0 6 4>,
153+ <0 0 7 &gic 0 7 4>,
154+ <0 0 8 &gic 0 8 4>,
155+ <0 0 9 &gic 0 9 4>,
156+ <0 0 10 &gic 0 10 4>,
157+ <0 0 11 &gic 0 11 4>,
158+ <0 0 12 &gic 0 12 4>,
159+ <0 0 13 &gic 0 13 4>,
160+ <0 0 14 &gic 0 14 4>,
161+ <0 0 15 &gic 0 15 4>,
162+ <0 0 16 &gic 0 16 4>,
163+ <0 0 17 &gic 0 17 4>,
164+ <0 0 18 &gic 0 18 4>,
165+ <0 0 19 &gic 0 19 4>,
166+ <0 0 20 &gic 0 20 4>,
167+ <0 0 21 &gic 0 21 4>,
168+ <0 0 22 &gic 0 22 4>,
169+ <0 0 23 &gic 0 23 4>,
170+ <0 0 24 &gic 0 24 4>,
171+ <0 0 25 &gic 0 25 4>,
172+ <0 0 26 &gic 0 26 4>,
173+ <0 0 27 &gic 0 27 4>,
174+ <0 0 28 &gic 0 28 4>,
175+ <0 0 29 &gic 0 29 4>,
176+ <0 0 30 &gic 0 30 4>,
177+ <0 0 31 &gic 0 31 4>,
178+ <0 0 32 &gic 0 32 4>,
179+ <0 0 33 &gic 0 33 4>,
180+ <0 0 34 &gic 0 34 4>,
181+ <0 0 35 &gic 0 35 4>,
182+ <0 0 36 &gic 0 36 4>,
183+ <0 0 37 &gic 0 37 4>,
184+ <0 0 38 &gic 0 38 4>,
185+ <0 0 39 &gic 0 39 4>,
186+ <0 0 40 &gic 0 40 4>,
187+ <0 0 41 &gic 0 41 4>,
188+ <0 0 42 &gic 0 42 4>;
189+ };
190+};
191+
192+/include/ "vexpress-v2m.dtsi"
arch/arm/common/Kconfig+0−6
@@ -24,9 +24,6 @@ config ARM_VIC_NR · 23 unmodified lines
2424 config ICST
2525 bool
2626
27−config PL330
28− bool
29−
3027 config SA1111
3128 bool
3229 select DMABOUNCE if !ARCH_PXA
@@ -35,9 +32,6 @@ config DMABOUNCE · 2 unmodified lines
3532 bool
3633 select ZONE_DMA
3734
38−config TIMER_ACORN
39− bool
40−
4135 config SHARP_LOCOMO
4236 bool
4337
arch/arm/common/Makefile+0−2
@@ -5,11 +5,9 @@ · 4 unmodified lines
55 obj-$(CONFIG_ARM_GIC) += gic.o
66 obj-$(CONFIG_ARM_VIC) += vic.o
77 obj-$(CONFIG_ICST) += icst.o
8−obj-$(CONFIG_PL330) += pl330.o
98 obj-$(CONFIG_SA1111) += sa1111.o
109 obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o
1110 obj-$(CONFIG_DMABOUNCE) += dmabounce.o
12−obj-$(CONFIG_TIMER_ACORN) += time-acorn.o
1311 obj-$(CONFIG_SHARP_LOCOMO) += locomo.o
1412 obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o
1513 obj-$(CONFIG_SHARP_SCOOP) += scoop.o
arch/arm/common/gic.c+6−7
@@ -686,13 +686,12 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start, · 685 unmodified lines
686686 * For primary GICs, skip over SGIs.
687687 * For secondary GICs, skip over PPIs, too.
688688 */
689− hwirq_base = 32;
690− if (gic_nr == 0) {
691− if ((irq_start & 31) > 0) {
692− hwirq_base = 16;
693− if (irq_start != -1)
694− irq_start = (irq_start & ~31) + 16;
695− }
689+ if (gic_nr == 0 && (irq_start & 31) > 0) {
690+ hwirq_base = 16;
691+ if (irq_start != -1)
692+ irq_start = (irq_start & ~31) + 16;
693+ } else {
694+ hwirq_base = 32;
696695 }
697696
698697 /*
arch/arm/common/it8152.c+2−2
@@ -299,8 +299,8 @@ int __init it8152_pci_setup(int nr, struct pci_sys_data *sys) · 298 unmodified lines
299299 goto err1;
300300 }
301301
302− pci_add_resource(&sys->resources, &it8152_io);
303− pci_add_resource(&sys->resources, &it8152_mem);
302+ pci_add_resource_offset(&sys->resources, &it8152_io, sys->io_offset);
303+ pci_add_resource_offset(&sys->resources, &it8152_mem, sys->mem_offset);
304304
305305 if (platform_notify || platform_notify_remove) {
306306 printk(KERN_ERR "PCI: Can't use platform_notify\n");
arch/arm/common/pl330.c+0−1960
@@ -1,1960 +0,0 @@
1−/* linux/arch/arm/common/pl330.c
2− *
3− * Copyright (C) 2010 Samsung Electronics Co Ltd.
4− * Jaswinder Singh <jassi.brar@samsung.com>
5− *
6− * This program is free software; you can redistribute it and/or modify
7− * it under the terms of the GNU General Public License as published by
8− * the Free Software Foundation; either version 2 of the License, or
9− * (at your option) any later version.
10− *
11− * This program is distributed in the hope that it will be useful,
12− * but WITHOUT ANY WARRANTY; without even the implied warranty of
13− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14− * GNU General Public License for more details.
15− *
16− * You should have received a copy of the GNU General Public License
17− * along with this program; if not, write to the Free Software
18− * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19− */
20−
21−#include <linux/kernel.h>
22−#include <linux/init.h>
23−#include <linux/slab.h>
24−#include <linux/module.h>
25−#include <linux/string.h>
26−#include <linux/io.h>
27−#include <linux/delay.h>
28−#include <linux/interrupt.h>
29−#include <linux/dma-mapping.h>
30−
31−#include <asm/hardware/pl330.h>
32−
33−/* Register and Bit field Definitions */
34−#define DS 0x0
35−#define DS_ST_STOP 0x0
36−#define DS_ST_EXEC 0x1
37−#define DS_ST_CMISS 0x2
38−#define DS_ST_UPDTPC 0x3
39−#define DS_ST_WFE 0x4
40−#define DS_ST_ATBRR 0x5
41−#define DS_ST_QBUSY 0x6
42−#define DS_ST_WFP 0x7
43−#define DS_ST_KILL 0x8
44−#define DS_ST_CMPLT 0x9
45−#define DS_ST_FLTCMP 0xe
46−#define DS_ST_FAULT 0xf
47−
48−#define DPC 0x4
49−#define INTEN 0x20
50−#define ES 0x24
51−#define INTSTATUS 0x28
52−#define INTCLR 0x2c
53−#define FSM 0x30
54−#define FSC 0x34
55−#define FTM 0x38
56−
57−#define _FTC 0x40
58−#define FTC(n) (_FTC + (n)*0x4)
59−
60−#define _CS 0x100
61−#define CS(n) (_CS + (n)*0x8)
62−#define CS_CNS (1 << 21)
63−
64−#define _CPC 0x104
65−#define CPC(n) (_CPC + (n)*0x8)
66−
67−#define _SA 0x400
68−#define SA(n) (_SA + (n)*0x20)
69−
70−#define _DA 0x404
71−#define DA(n) (_DA + (n)*0x20)
72−
73−#define _CC 0x408
74−#define CC(n) (_CC + (n)*0x20)
75−
76−#define CC_SRCINC (1 << 0)
77−#define CC_DSTINC (1 << 14)
78−#define CC_SRCPRI (1 << 8)
79−#define CC_DSTPRI (1 << 22)
80−#define CC_SRCNS (1 << 9)
81−#define CC_DSTNS (1 << 23)
82−#define CC_SRCIA (1 << 10)
83−#define CC_DSTIA (1 << 24)
84−#define CC_SRCBRSTLEN_SHFT 4
85−#define CC_DSTBRSTLEN_SHFT 18
86−#define CC_SRCBRSTSIZE_SHFT 1
87−#define CC_DSTBRSTSIZE_SHFT 15
88−#define CC_SRCCCTRL_SHFT 11
89−#define CC_SRCCCTRL_MASK 0x7
90−#define CC_DSTCCTRL_SHFT 25
91−#define CC_DRCCCTRL_MASK 0x7
92−#define CC_SWAP_SHFT 28
93−
94−#define _LC0 0x40c
95−#define LC0(n) (_LC0 + (n)*0x20)
96−
97−#define _LC1 0x410
98−#define LC1(n) (_LC1 + (n)*0x20)
99−
100−#define DBGSTATUS 0xd00
101−#define DBG_BUSY (1 << 0)
102−
103−#define DBGCMD 0xd04
104−#define DBGINST0 0xd08
105−#define DBGINST1 0xd0c
106−
107−#define CR0 0xe00
108−#define CR1 0xe04
109−#define CR2 0xe08
110−#define CR3 0xe0c
111−#define CR4 0xe10
112−#define CRD 0xe14
113−
114−#define PERIPH_ID 0xfe0
115−#define PCELL_ID 0xff0
116−
117−#define CR0_PERIPH_REQ_SET (1 << 0)
118−#define CR0_BOOT_EN_SET (1 << 1)
119−#define CR0_BOOT_MAN_NS (1 << 2)
120−#define CR0_NUM_CHANS_SHIFT 4
121−#define CR0_NUM_CHANS_MASK 0x7
122−#define CR0_NUM_PERIPH_SHIFT 12
123−#define CR0_NUM_PERIPH_MASK 0x1f
124−#define CR0_NUM_EVENTS_SHIFT 17
125−#define CR0_NUM_EVENTS_MASK 0x1f
126−
127−#define CR1_ICACHE_LEN_SHIFT 0
128−#define CR1_ICACHE_LEN_MASK 0x7
129−#define CR1_NUM_ICACHELINES_SHIFT 4
130−#define CR1_NUM_ICACHELINES_MASK 0xf
131−
132−#define CRD_DATA_WIDTH_SHIFT 0
133−#define CRD_DATA_WIDTH_MASK 0x7
134−#define CRD_WR_CAP_SHIFT 4
135−#define CRD_WR_CAP_MASK 0x7
136−#define CRD_WR_Q_DEP_SHIFT 8
137−#define CRD_WR_Q_DEP_MASK 0xf
138−#define CRD_RD_CAP_SHIFT 12
139−#define CRD_RD_CAP_MASK 0x7
140−#define CRD_RD_Q_DEP_SHIFT 16
141−#define CRD_RD_Q_DEP_MASK 0xf
142−#define CRD_DATA_BUFF_SHIFT 20
143−#define CRD_DATA_BUFF_MASK 0x3ff
144−
145−#define PART 0x330
146−#define DESIGNER 0x41
147−#define REVISION 0x0
148−#define INTEG_CFG 0x0
149−#define PERIPH_ID_VAL ((PART << 0) | (DESIGNER << 12))
150−
151−#define PCELL_ID_VAL 0xb105f00d
152−
153−#define PL330_STATE_STOPPED (1 << 0)
154−#define PL330_STATE_EXECUTING (1 << 1)
155−#define PL330_STATE_WFE (1 << 2)
156−#define PL330_STATE_FAULTING (1 << 3)
157−#define PL330_STATE_COMPLETING (1 << 4)
158−#define PL330_STATE_WFP (1 << 5)
159−#define PL330_STATE_KILLING (1 << 6)
160−#define PL330_STATE_FAULT_COMPLETING (1 << 7)
161−#define PL330_STATE_CACHEMISS (1 << 8)
162−#define PL330_STATE_UPDTPC (1 << 9)
163−#define PL330_STATE_ATBARRIER (1 << 10)
164−#define PL330_STATE_QUEUEBUSY (1 << 11)
165−#define PL330_STATE_INVALID (1 << 15)
166−
167−#define PL330_STABLE_STATES (PL330_STATE_STOPPED | PL330_STATE_EXECUTING \
168− | PL330_STATE_WFE | PL330_STATE_FAULTING)
169−
170−#define CMD_DMAADDH 0x54
171−#define CMD_DMAEND 0x00
172−#define CMD_DMAFLUSHP 0x35
173−#define CMD_DMAGO 0xa0
174−#define CMD_DMALD 0x04
175−#define CMD_DMALDP 0x25
176−#define CMD_DMALP 0x20
177−#define CMD_DMALPEND 0x28
178−#define CMD_DMAKILL 0x01
179−#define CMD_DMAMOV 0xbc
180−#define CMD_DMANOP 0x18
181−#define CMD_DMARMB 0x12
182−#define CMD_DMASEV 0x34
183−#define CMD_DMAST 0x08
184−#define CMD_DMASTP 0x29
185−#define CMD_DMASTZ 0x0c
186−#define CMD_DMAWFE 0x36
187−#define CMD_DMAWFP 0x30
188−#define CMD_DMAWMB 0x13
189−
190−#define SZ_DMAADDH 3
191−#define SZ_DMAEND 1
192−#define SZ_DMAFLUSHP 2
193−#define SZ_DMALD 1
194−#define SZ_DMALDP 2
195−#define SZ_DMALP 2
196−#define SZ_DMALPEND 2
197−#define SZ_DMAKILL 1
198−#define SZ_DMAMOV 6
199−#define SZ_DMANOP 1
200−#define SZ_DMARMB 1
201−#define SZ_DMASEV 2
202−#define SZ_DMAST 1
203−#define SZ_DMASTP 2
204−#define SZ_DMASTZ 1
205−#define SZ_DMAWFE 2
206−#define SZ_DMAWFP 2
207−#define SZ_DMAWMB 1
208−#define SZ_DMAGO 6
209−
210−#define BRST_LEN(ccr) ((((ccr) >> CC_SRCBRSTLEN_SHFT) & 0xf) + 1)
211−#define BRST_SIZE(ccr) (1 << (((ccr) >> CC_SRCBRSTSIZE_SHFT) & 0x7))
212−
213−#define BYTE_TO_BURST(b, ccr) ((b) / BRST_SIZE(ccr) / BRST_LEN(ccr))
214−#define BURST_TO_BYTE(c, ccr) ((c) * BRST_SIZE(ccr) * BRST_LEN(ccr))
215−
216−/*
217− * With 256 bytes, we can do more than 2.5MB and 5MB xfers per req
218− * at 1byte/burst for P<->M and M<->M respectively.
219− * For typical scenario, at 1word/burst, 10MB and 20MB xfers per req
220− * should be enough for P<->M and M<->M respectively.
221− */
222−#define MCODE_BUFF_PER_REQ 256
223−
224−/* If the _pl330_req is available to the client */
225−#define IS_FREE(req) (*((u8 *)((req)->mc_cpu)) == CMD_DMAEND)
226−
227−/* Use this _only_ to wait on transient states */
228−#define UNTIL(t, s) while (!(_state(t) & (s))) cpu_relax();
229−
230−#ifdef PL330_DEBUG_MCGEN
231−static unsigned cmd_line;
232−#define PL330_DBGCMD_DUMP(off, x...) do { \
233− printk("%x:", cmd_line); \
234− printk(x); \
235− cmd_line += off; \
236− } while (0)
237−#define PL330_DBGMC_START(addr) (cmd_line = addr)
238−#else
239−#define PL330_DBGCMD_DUMP(off, x...) do {} while (0)
240−#define PL330_DBGMC_START(addr) do {} while (0)
241−#endif
242−
243−struct _xfer_spec {
244− u32 ccr;
245− struct pl330_req *r;
246− struct pl330_xfer *x;
247−};
248−
249−enum dmamov_dst {
250− SAR = 0,
251− CCR,
252− DAR,
253−};
254−
255−enum pl330_dst {
256− SRC = 0,
257− DST,
258−};
259−
260−enum pl330_cond {
261− SINGLE,
262− BURST,
263− ALWAYS,
264−};
265−
266−struct _pl330_req {
267− u32 mc_bus;
268− void *mc_cpu;
269− /* Number of bytes taken to setup MC for the req */
270− u32 mc_len;
271− struct pl330_req *r;
272− /* Hook to attach to DMAC's list of reqs with due callback */
273− struct list_head rqd;
274−};
275−
276−/* ToBeDone for tasklet */
277−struct _pl330_tbd {
278− bool reset_dmac;
279− bool reset_mngr;
280− u8 reset_chan;
281−};
282−
283−/* A DMAC Thread */
284−struct pl330_thread {
285− u8 id;
286− int ev;
287− /* If the channel is not yet acquired by any client */
288− bool free;
289− /* Parent DMAC */
290− struct pl330_dmac *dmac;
291− /* Only two at a time */
292− struct _pl330_req req[2];
293− /* Index of the last enqueued request */
294− unsigned lstenq;
295− /* Index of the last submitted request or -1 if the DMA is stopped */
296− int req_running;
297−};
298−
299−enum pl330_dmac_state {
300− UNINIT,
301− INIT,
302− DYING,
303−};
304−
305−/* A DMAC */
306−struct pl330_dmac {
307− spinlock_t lock;
308− /* Holds list of reqs with due callbacks */
309− struct list_head req_done;
310− /* Pointer to platform specific stuff */
311− struct pl330_info *pinfo;
312− /* Maximum possible events/irqs */
313− int events[32];
314− /* BUS address of MicroCode buffer */
315− u32 mcode_bus;
316− /* CPU address of MicroCode buffer */
317− void *mcode_cpu;
318− /* List of all Channel threads */
319− struct pl330_thread *channels;
320− /* Pointer to the MANAGER thread */
321− struct pl330_thread *manager;
322− /* To handle bad news in interrupt */
323− struct tasklet_struct tasks;
324− struct _pl330_tbd dmac_tbd;
325− /* State of DMAC operation */
326− enum pl330_dmac_state state;
327−};
328−
329−static inline void _callback(struct pl330_req *r, enum pl330_op_err err)
330−{
331− if (r && r->xfer_cb)
332− r->xfer_cb(r->token, err);
333−}
334−
335−static inline bool _queue_empty(struct pl330_thread *thrd)
336−{
337− return (IS_FREE(&thrd->req[0]) && IS_FREE(&thrd->req[1]))
338− ? true : false;
339−}
340−
341−static inline bool _queue_full(struct pl330_thread *thrd)
342−{
343− return (IS_FREE(&thrd->req[0]) || IS_FREE(&thrd->req[1]))
344− ? false : true;
345−}
346−
347−static inline bool is_manager(struct pl330_thread *thrd)
348−{
349− struct pl330_dmac *pl330 = thrd->dmac;
350−
351− /* MANAGER is indexed at the end */
352− if (thrd->id == pl330->pinfo->pcfg.num_chan)
353− return true;
354− else
355− return false;
356−}
357−
358−/* If manager of the thread is in Non-Secure mode */
359−static inline bool _manager_ns(struct pl330_thread *thrd)
360−{
361− struct pl330_dmac *pl330 = thrd->dmac;
362−
363− return (pl330->pinfo->pcfg.mode & DMAC_MODE_NS) ? true : false;
364−}
365−
366−static inline u32 get_id(struct pl330_info *pi, u32 off)
367−{
368− void __iomem *regs = pi->base;
369− u32 id = 0;
370−
371− id |= (readb(regs + off + 0x0) << 0);
372− id |= (readb(regs + off + 0x4) << 8);
373− id |= (readb(regs + off + 0x8) << 16);
374− id |= (readb(regs + off + 0xc) << 24);
375−
376− return id;
377−}
378−
379−static inline u32 _emit_ADDH(unsigned dry_run, u8 buf[],
380− enum pl330_dst da, u16 val)
381−{
382− if (dry_run)
383− return SZ_DMAADDH;
384−
385− buf[0] = CMD_DMAADDH;
386− buf[0] |= (da << 1);
387− *((u16 *)&buf[1]) = val;
388−
389− PL330_DBGCMD_DUMP(SZ_DMAADDH, "\tDMAADDH %s %u\n",
390− da == 1 ? "DA" : "SA", val);
391−
392− return SZ_DMAADDH;
393−}
394−
395−static inline u32 _emit_END(unsigned dry_run, u8 buf[])
396−{
397− if (dry_run)
398− return SZ_DMAEND;
399−
400− buf[0] = CMD_DMAEND;
401−
402− PL330_DBGCMD_DUMP(SZ_DMAEND, "\tDMAEND\n");
403−
404− return SZ_DMAEND;
405−}
406−
407−static inline u32 _emit_FLUSHP(unsigned dry_run, u8 buf[], u8 peri)
408−{
409− if (dry_run)
410− return SZ_DMAFLUSHP;
411−
412− buf[0] = CMD_DMAFLUSHP;
413−
414− peri &= 0x1f;
415− peri <<= 3;
416− buf[1] = peri;
417−
418− PL330_DBGCMD_DUMP(SZ_DMAFLUSHP, "\tDMAFLUSHP %u\n", peri >> 3);
419−
420− return SZ_DMAFLUSHP;
421−}
422−
423−static inline u32 _emit_LD(unsigned dry_run, u8 buf[], enum pl330_cond cond)
424−{
425− if (dry_run)
426− return SZ_DMALD;
427−
428− buf[0] = CMD_DMALD;
429−
430− if (cond == SINGLE)
431− buf[0] |= (0 << 1) | (1 << 0);
432− else if (cond == BURST)
433− buf[0] |= (1 << 1) | (1 << 0);
434−
435− PL330_DBGCMD_DUMP(SZ_DMALD, "\tDMALD%c\n",
436− cond == SINGLE ? 'S' : (cond == BURST ? 'B' : 'A'));
437−
438− return SZ_DMALD;
439−}
440−
441−static inline u32 _emit_LDP(unsigned dry_run, u8 buf[],
442− enum pl330_cond cond, u8 peri)
443−{
444− if (dry_run)
445− return SZ_DMALDP;
446−
447− buf[0] = CMD_DMALDP;
448−
449− if (cond == BURST)
450− buf[0] |= (1 << 1);
451−
452− peri &= 0x1f;
453− peri <<= 3;
454− buf[1] = peri;
455−
456− PL330_DBGCMD_DUMP(SZ_DMALDP, "\tDMALDP%c %u\n",
457− cond == SINGLE ? 'S' : 'B', peri >> 3);
458−
459− return SZ_DMALDP;
460−}
461−
462−static inline u32 _emit_LP(unsigned dry_run, u8 buf[],
463− unsigned loop, u8 cnt)
464−{
465− if (dry_run)
466− return SZ_DMALP;
467−
468− buf[0] = CMD_DMALP;
469−
470− if (loop)
471− buf[0] |= (1 << 1);
472−
473− cnt--; /* DMAC increments by 1 internally */
474− buf[1] = cnt;
475−
476− PL330_DBGCMD_DUMP(SZ_DMALP, "\tDMALP_%c %u\n", loop ? '1' : '0', cnt);
477−
478− return SZ_DMALP;
479−}
480−
481−struct _arg_LPEND {
482− enum pl330_cond cond;
483− bool forever;
484− unsigned loop;
485− u8 bjump;
486−};
487−
488−static inline u32 _emit_LPEND(unsigned dry_run, u8 buf[],
489− const struct _arg_LPEND *arg)
490−{
491− enum pl330_cond cond = arg->cond;
492− bool forever = arg->forever;
493− unsigned loop = arg->loop;
494− u8 bjump = arg->bjump;
495−
496− if (dry_run)
497− return SZ_DMALPEND;
498−
499− buf[0] = CMD_DMALPEND;
500−
501− if (loop)
502− buf[0] |= (1 << 2);
503−
504− if (!forever)
505− buf[0] |= (1 << 4);
506−
507− if (cond == SINGLE)
508− buf[0] |= (0 << 1) | (1 << 0);
509− else if (cond == BURST)
510− buf[0] |= (1 << 1) | (1 << 0);
511−
512− buf[1] = bjump;
513−
514− PL330_DBGCMD_DUMP(SZ_DMALPEND, "\tDMALP%s%c_%c bjmpto_%x\n",
515− forever ? "FE" : "END",
516− cond == SINGLE ? 'S' : (cond == BURST ? 'B' : 'A'),
517− loop ? '1' : '0',
518− bjump);
519−
520− return SZ_DMALPEND;
521−}
522−
523−static inline u32 _emit_KILL(unsigned dry_run, u8 buf[])
524−{
525− if (dry_run)
526− return SZ_DMAKILL;
527−
528− buf[0] = CMD_DMAKILL;
529−
530− return SZ_DMAKILL;
531−}
532−
533−static inline u32 _emit_MOV(unsigned dry_run, u8 buf[],
534− enum dmamov_dst dst, u32 val)
535−{
536− if (dry_run)
537− return SZ_DMAMOV;
538−
539− buf[0] = CMD_DMAMOV;
540− buf[1] = dst;
541− *((u32 *)&buf[2]) = val;
542−
543− PL330_DBGCMD_DUMP(SZ_DMAMOV, "\tDMAMOV %s 0x%x\n",
544− dst == SAR ? "SAR" : (dst == DAR ? "DAR" : "CCR"), val);
545−
546− return SZ_DMAMOV;
547−}
548−
549−static inline u32 _emit_NOP(unsigned dry_run, u8 buf[])
550−{
551− if (dry_run)
552− return SZ_DMANOP;
553−
554− buf[0] = CMD_DMANOP;
555−
556− PL330_DBGCMD_DUMP(SZ_DMANOP, "\tDMANOP\n");
557−
558− return SZ_DMANOP;
559−}
560−
561−static inline u32 _emit_RMB(unsigned dry_run, u8 buf[])
562−{
563− if (dry_run)
564− return SZ_DMARMB;
565−
566− buf[0] = CMD_DMARMB;
567−
568− PL330_DBGCMD_DUMP(SZ_DMARMB, "\tDMARMB\n");
569−
570− return SZ_DMARMB;
571−}
572−
573−static inline u32 _emit_SEV(unsigned dry_run, u8 buf[], u8 ev)
574−{
575− if (dry_run)
576− return SZ_DMASEV;
577−
578− buf[0] = CMD_DMASEV;
579−
580− ev &= 0x1f;
581− ev <<= 3;
582− buf[1] = ev;
583−
584− PL330_DBGCMD_DUMP(SZ_DMASEV, "\tDMASEV %u\n", ev >> 3);
585−
586− return SZ_DMASEV;
587−}
588−
589−static inline u32 _emit_ST(unsigned dry_run, u8 buf[], enum pl330_cond cond)
590−{
591− if (dry_run)
592− return SZ_DMAST;
593−
594− buf[0] = CMD_DMAST;
595−
596− if (cond == SINGLE)
597− buf[0] |= (0 << 1) | (1 << 0);
598− else if (cond == BURST)
599− buf[0] |= (1 << 1) | (1 << 0);
600−
601− PL330_DBGCMD_DUMP(SZ_DMAST, "\tDMAST%c\n",
602− cond == SINGLE ? 'S' : (cond == BURST ? 'B' : 'A'));
603−
604− return SZ_DMAST;
605−}
606−
607−static inline u32 _emit_STP(unsigned dry_run, u8 buf[],
608− enum pl330_cond cond, u8 peri)
609−{
610− if (dry_run)
611− return SZ_DMASTP;
612−
613− buf[0] = CMD_DMASTP;
614−
615− if (cond == BURST)
616− buf[0] |= (1 << 1);
617−
618− peri &= 0x1f;
619− peri <<= 3;
620− buf[1] = peri;
621−
622− PL330_DBGCMD_DUMP(SZ_DMASTP, "\tDMASTP%c %u\n",
623− cond == SINGLE ? 'S' : 'B', peri >> 3);
624−
625− return SZ_DMASTP;
626−}
627−
628−static inline u32 _emit_STZ(unsigned dry_run, u8 buf[])
629−{
630− if (dry_run)
631− return SZ_DMASTZ;
632−
633− buf[0] = CMD_DMASTZ;
634−
635− PL330_DBGCMD_DUMP(SZ_DMASTZ, "\tDMASTZ\n");
636−
637− return SZ_DMASTZ;
638−}
639−
640−static inline u32 _emit_WFE(unsigned dry_run, u8 buf[], u8 ev,
641− unsigned invalidate)
642−{
643− if (dry_run)
644− return SZ_DMAWFE;
645−
646− buf[0] = CMD_DMAWFE;
647−
648− ev &= 0x1f;
649− ev <<= 3;
650− buf[1] = ev;
651−
652− if (invalidate)
653− buf[1] |= (1 << 1);
654−
655− PL330_DBGCMD_DUMP(SZ_DMAWFE, "\tDMAWFE %u%s\n",
656− ev >> 3, invalidate ? ", I" : "");
657−
658− return SZ_DMAWFE;
659−}
660−
661−static inline u32 _emit_WFP(unsigned dry_run, u8 buf[],
662− enum pl330_cond cond, u8 peri)
663−{
664− if (dry_run)
665− return SZ_DMAWFP;
666−
667− buf[0] = CMD_DMAWFP;
668−
669− if (cond == SINGLE)
670− buf[0] |= (0 << 1) | (0 << 0);
671− else if (cond == BURST)
672− buf[0] |= (1 << 1) | (0 << 0);
673− else
674− buf[0] |= (0 << 1) | (1 << 0);
675−
676− peri &= 0x1f;
677− peri <<= 3;
678− buf[1] = peri;
679−
680− PL330_DBGCMD_DUMP(SZ_DMAWFP, "\tDMAWFP%c %u\n",
681− cond == SINGLE ? 'S' : (cond == BURST ? 'B' : 'P'), peri >> 3);
682−
683− return SZ_DMAWFP;
684−}
685−
686−static inline u32 _emit_WMB(unsigned dry_run, u8 buf[])
687−{
688− if (dry_run)
689− return SZ_DMAWMB;
690−
691− buf[0] = CMD_DMAWMB;
692−
693− PL330_DBGCMD_DUMP(SZ_DMAWMB, "\tDMAWMB\n");
694−
695− return SZ_DMAWMB;
696−}
697−
698−struct _arg_GO {
699− u8 chan;
700− u32 addr;
701− unsigned ns;
702−};
703−
704−static inline u32 _emit_GO(unsigned dry_run, u8 buf[],
705− const struct _arg_GO *arg)
706−{
707− u8 chan = arg->chan;
708− u32 addr = arg->addr;
709− unsigned ns = arg->ns;
710−
711− if (dry_run)
712− return SZ_DMAGO;
713−
714− buf[0] = CMD_DMAGO;
715− buf[0] |= (ns << 1);
716−
717− buf[1] = chan & 0x7;
718−
719− *((u32 *)&buf[2]) = addr;
720−
721− return SZ_DMAGO;
722−}
723−
724−#define msecs_to_loops(t) (loops_per_jiffy / 1000 * HZ * t)
725−
726−/* Returns Time-Out */
727−static bool _until_dmac_idle(struct pl330_thread *thrd)
728−{
729− void __iomem *regs = thrd->dmac->pinfo->base;
730− unsigned long loops = msecs_to_loops(5);
731−
732− do {
733− /* Until Manager is Idle */
734− if (!(readl(regs + DBGSTATUS) & DBG_BUSY))
735− break;
736−
737− cpu_relax();
738− } while (--loops);
739−
740− if (!loops)
741− return true;
742−
743− return false;
744−}
745−
746−static inline void _execute_DBGINSN(struct pl330_thread *thrd,
747− u8 insn[], bool as_manager)
748−{
749− void __iomem *regs = thrd->dmac->pinfo->base;
750− u32 val;
751−
752− val = (insn[0] << 16) | (insn[1] << 24);
753− if (!as_manager) {
754− val |= (1 << 0);
755− val |= (thrd->id << 8); /* Channel Number */
756− }
757− writel(val, regs + DBGINST0);
758−
759− val = *((u32 *)&insn[2]);
760− writel(val, regs + DBGINST1);
761−
762− /* If timed out due to halted state-machine */
763− if (_until_dmac_idle(thrd)) {
764− dev_err(thrd->dmac->pinfo->dev, "DMAC halted!\n");
765− return;
766− }
767−
768− /* Get going */
769− writel(0, regs + DBGCMD);
770−}
771−
772−/*
773− * Mark a _pl330_req as free.
774− * We do it by writing DMAEND as the first instruction
775− * because no valid request is going to have DMAEND as
776− * its first instruction to execute.
777− */
778−static void mark_free(struct pl330_thread *thrd, int idx)
779−{
780− struct _pl330_req *req = &thrd->req[idx];
781−
782− _emit_END(0, req->mc_cpu);
783− req->mc_len = 0;
784−
785− thrd->req_running = -1;
786−}
787−
788−static inline u32 _state(struct pl330_thread *thrd)
789−{
790− void __iomem *regs = thrd->dmac->pinfo->base;
791− u32 val;
792−
793− if (is_manager(thrd))
794− val = readl(regs + DS) & 0xf;
795− else
796− val = readl(regs + CS(thrd->id)) & 0xf;
797−
798− switch (val) {
799− case DS_ST_STOP:
800− return PL330_STATE_STOPPED;
801− case DS_ST_EXEC:
802− return PL330_STATE_EXECUTING;
803− case DS_ST_CMISS:
804− return PL330_STATE_CACHEMISS;
805− case DS_ST_UPDTPC:
806− return PL330_STATE_UPDTPC;
807− case DS_ST_WFE:
808− return PL330_STATE_WFE;
809− case DS_ST_FAULT:
810− return PL330_STATE_FAULTING;
811− case DS_ST_ATBRR:
812− if (is_manager(thrd))
813− return PL330_STATE_INVALID;
814− else
815− return PL330_STATE_ATBARRIER;
816− case DS_ST_QBUSY:
817− if (is_manager(thrd))
818− return PL330_STATE_INVALID;
819− else
820− return PL330_STATE_QUEUEBUSY;
821− case DS_ST_WFP:
822− if (is_manager(thrd))
823− return PL330_STATE_INVALID;
824− else
825− return PL330_STATE_WFP;
826− case DS_ST_KILL:
827− if (is_manager(thrd))
828− return PL330_STATE_INVALID;
829− else
830− return PL330_STATE_KILLING;
831− case DS_ST_CMPLT:
832− if (is_manager(thrd))
833− return PL330_STATE_INVALID;
834− else
835− return PL330_STATE_COMPLETING;
836− case DS_ST_FLTCMP:
837− if (is_manager(thrd))
838− return PL330_STATE_INVALID;
839− else
840− return PL330_STATE_FAULT_COMPLETING;
841− default:
842− return PL330_STATE_INVALID;
843− }
844−}
845−
846−static void _stop(struct pl330_thread *thrd)
847−{
848− void __iomem *regs = thrd->dmac->pinfo->base;
849− u8 insn[6] = {0, 0, 0, 0, 0, 0};
850−
851− if (_state(thrd) == PL330_STATE_FAULT_COMPLETING)
852− UNTIL(thrd, PL330_STATE_FAULTING | PL330_STATE_KILLING);
853−
854− /* Return if nothing needs to be done */
855− if (_state(thrd) == PL330_STATE_COMPLETING
856− || _state(thrd) == PL330_STATE_KILLING
857− || _state(thrd) == PL330_STATE_STOPPED)
858− return;
859−
860− _emit_KILL(0, insn);
861−
862− /* Stop generating interrupts for SEV */
863− writel(readl(regs + INTEN) & ~(1 << thrd->ev), regs + INTEN);
864−
865− _execute_DBGINSN(thrd, insn, is_manager(thrd));
866−}
867−
868−/* Start doing req 'idx' of thread 'thrd' */
869−static bool _trigger(struct pl330_thread *thrd)
870−{
871− void __iomem *regs = thrd->dmac->pinfo->base;
872− struct _pl330_req *req;
873− struct pl330_req *r;
874− struct _arg_GO go;
875− unsigned ns;
876− u8 insn[6] = {0, 0, 0, 0, 0, 0};
877− int idx;
878−
879− /* Return if already ACTIVE */
880− if (_state(thrd) != PL330_STATE_STOPPED)
881− return true;
882−
883− idx = 1 - thrd->lstenq;
884− if (!IS_FREE(&thrd->req[idx]))
885− req = &thrd->req[idx];
886− else {
887− idx = thrd->lstenq;
888− if (!IS_FREE(&thrd->req[idx]))
889− req = &thrd->req[idx];
890− else
891− req = NULL;
892− }
893−
894− /* Return if no request */
895− if (!req || !req->r)
896− return true;
897−
898− r = req->r;
899−
900− if (r->cfg)
901− ns = r->cfg->nonsecure ? 1 : 0;
902− else if (readl(regs + CS(thrd->id)) & CS_CNS)
903− ns = 1;
904− else
905− ns = 0;
906−
907− /* See 'Abort Sources' point-4 at Page 2-25 */
908− if (_manager_ns(thrd) && !ns)
909− dev_info(thrd->dmac->pinfo->dev, "%s:%d Recipe for ABORT!\n",
910− __func__, __LINE__);
911−
912− go.chan = thrd->id;
913− go.addr = req->mc_bus;
914− go.ns = ns;
915− _emit_GO(0, insn, &go);
916−
917− /* Set to generate interrupts for SEV */
918− writel(readl(regs + INTEN) | (1 << thrd->ev), regs + INTEN);
919−
920− /* Only manager can execute GO */
921− _execute_DBGINSN(thrd, insn, true);
922−
923− thrd->req_running = idx;
924−
925− return true;
926−}
927−
928−static bool _start(struct pl330_thread *thrd)
929−{
930− switch (_state(thrd)) {
931− case PL330_STATE_FAULT_COMPLETING:
932− UNTIL(thrd, PL330_STATE_FAULTING | PL330_STATE_KILLING);
933−
934− if (_state(thrd) == PL330_STATE_KILLING)
935− UNTIL(thrd, PL330_STATE_STOPPED)
936−
937− case PL330_STATE_FAULTING:
938− _stop(thrd);
939−
940− case PL330_STATE_KILLING:
941− case PL330_STATE_COMPLETING:
942− UNTIL(thrd, PL330_STATE_STOPPED)
943−
944− case PL330_STATE_STOPPED:
945− return _trigger(thrd);
946−
947− case PL330_STATE_WFP:
948− case PL330_STATE_QUEUEBUSY:
949− case PL330_STATE_ATBARRIER:
950− case PL330_STATE_UPDTPC:
951− case PL330_STATE_CACHEMISS:
952− case PL330_STATE_EXECUTING:
953− return true;
954−
955− case PL330_STATE_WFE: /* For RESUME, nothing yet */
956− default:
957− return false;
958− }
959−}
960−
961−static inline int _ldst_memtomem(unsigned dry_run, u8 buf[],
962− const struct _xfer_spec *pxs, int cyc)
963−{
964− int off = 0;
965−
966− while (cyc--) {
967− off += _emit_LD(dry_run, &buf[off], ALWAYS);
968− off += _emit_RMB(dry_run, &buf[off]);
969− off += _emit_ST(dry_run, &buf[off], ALWAYS);
970− off += _emit_WMB(dry_run, &buf[off]);
971− }
972−
973− return off;
974−}
975−
976−static inline int _ldst_devtomem(unsigned dry_run, u8 buf[],
977− const struct _xfer_spec *pxs, int cyc)
978−{
979− int off = 0;
980−
981− while (cyc--) {
982− off += _emit_WFP(dry_run, &buf[off], SINGLE, pxs->r->peri);
983− off += _emit_LDP(dry_run, &buf[off], SINGLE, pxs->r->peri);
984− off += _emit_ST(dry_run, &buf[off], ALWAYS);
985− off += _emit_FLUSHP(dry_run, &buf[off], pxs->r->peri);
986− }
987−
988− return off;
989−}
990−
991−static inline int _ldst_memtodev(unsigned dry_run, u8 buf[],
992− const struct _xfer_spec *pxs, int cyc)
993−{
994− int off = 0;
995−
996− while (cyc--) {
997− off += _emit_WFP(dry_run, &buf[off], SINGLE, pxs->r->peri);
998− off += _emit_LD(dry_run, &buf[off], ALWAYS);
999− off += _emit_STP(dry_run, &buf[off], SINGLE, pxs->r->peri);
1000− off += _emit_FLUSHP(dry_run, &buf[off], pxs->r->peri);
1001− }
1002−
1003− return off;
1004−}
1005−
1006−static int _bursts(unsigned dry_run, u8 buf[],
1007− const struct _xfer_spec *pxs, int cyc)
1008−{
1009− int off = 0;
1010−
1011− switch (pxs->r->rqtype) {
1012− case MEMTODEV:
1013− off += _ldst_memtodev(dry_run, &buf[off], pxs, cyc);
1014− break;
1015− case DEVTOMEM:
1016− off += _ldst_devtomem(dry_run, &buf[off], pxs, cyc);
1017− break;
1018− case MEMTOMEM:
1019− off += _ldst_memtomem(dry_run, &buf[off], pxs, cyc);
1020− break;
1021− default:
1022− off += 0x40000000; /* Scare off the Client */
1023− break;
1024− }
1025−
1026− return off;
1027−}
1028−
1029−/* Returns bytes consumed and updates bursts */
1030−static inline int _loop(unsigned dry_run, u8 buf[],
1031− unsigned long *bursts, const struct _xfer_spec *pxs)
1032−{
1033− int cyc, cycmax, szlp, szlpend, szbrst, off;
1034− unsigned lcnt0, lcnt1, ljmp0, ljmp1;
1035− struct _arg_LPEND lpend;
1036−
1037− /* Max iterations possible in DMALP is 256 */
1038− if (*bursts >= 256*256) {
1039− lcnt1 = 256;
1040− lcnt0 = 256;
1041− cyc = *bursts / lcnt1 / lcnt0;
1042− } else if (*bursts > 256) {
1043− lcnt1 = 256;
1044− lcnt0 = *bursts / lcnt1;
1045− cyc = 1;
1046− } else {
1047− lcnt1 = *bursts;
1048− lcnt0 = 0;
1049− cyc = 1;
1050− }
1051−
1052− szlp = _emit_LP(1, buf, 0, 0);
1053− szbrst = _bursts(1, buf, pxs, 1);
1054−
1055− lpend.cond = ALWAYS;
1056− lpend.forever = false;
1057− lpend.loop = 0;
1058− lpend.bjump = 0;
1059− szlpend = _emit_LPEND(1, buf, &lpend);
1060−
1061− if (lcnt0) {
1062− szlp *= 2;
1063− szlpend *= 2;
1064− }
1065−
1066− /*
1067− * Max bursts that we can unroll due to limit on the
1068− * size of backward jump that can be encoded in DMALPEND
1069− * which is 8-bits and hence 255
1070− */
1071− cycmax = (255 - (szlp + szlpend)) / szbrst;
1072−
1073− cyc = (cycmax < cyc) ? cycmax : cyc;
1074−
1075− off = 0;
1076−
1077− if (lcnt0) {
1078− off += _emit_LP(dry_run, &buf[off], 0, lcnt0);
1079− ljmp0 = off;
1080− }
1081−
1082− off += _emit_LP(dry_run, &buf[off], 1, lcnt1);
1083− ljmp1 = off;
1084−
1085− off += _bursts(dry_run, &buf[off], pxs, cyc);
1086−
1087− lpend.cond = ALWAYS;
1088− lpend.forever = false;
1089− lpend.loop = 1;
1090− lpend.bjump = off - ljmp1;
1091− off += _emit_LPEND(dry_run, &buf[off], &lpend);
1092−
1093− if (lcnt0) {
1094− lpend.cond = ALWAYS;
1095− lpend.forever = false;
1096− lpend.loop = 0;
1097− lpend.bjump = off - ljmp0;
1098− off += _emit_LPEND(dry_run, &buf[off], &lpend);
1099− }
1100−
1101− *bursts = lcnt1 * cyc;
1102− if (lcnt0)
1103− *bursts *= lcnt0;
1104−
1105− return off;
1106−}
1107−
1108−static inline int _setup_loops(unsigned dry_run, u8 buf[],
1109− const struct _xfer_spec *pxs)
1110−{
1111− struct pl330_xfer *x = pxs->x;
1112− u32 ccr = pxs->ccr;
1113− unsigned long c, bursts = BYTE_TO_BURST(x->bytes, ccr);
1114− int off = 0;
1115−
1116− while (bursts) {
1117− c = bursts;
1118− off += _loop(dry_run, &buf[off], &c, pxs);
1119− bursts -= c;
1120− }
1121−
1122− return off;
1123−}
1124−
1125−static inline int _setup_xfer(unsigned dry_run, u8 buf[],
1126− const struct _xfer_spec *pxs)
1127−{
1128− struct pl330_xfer *x = pxs->x;
1129− int off = 0;
1130−
1131− /* DMAMOV SAR, x->src_addr */
1132− off += _emit_MOV(dry_run, &buf[off], SAR, x->src_addr);
1133− /* DMAMOV DAR, x->dst_addr */
1134− off += _emit_MOV(dry_run, &buf[off], DAR, x->dst_addr);
1135−
1136− /* Setup Loop(s) */
1137− off += _setup_loops(dry_run, &buf[off], pxs);
1138−
1139− return off;
1140−}
1141−
1142−/*
1143− * A req is a sequence of one or more xfer units.
1144− * Returns the number of bytes taken to setup the MC for the req.
1145− */
1146−static int _setup_req(unsigned dry_run, struct pl330_thread *thrd,
1147− unsigned index, struct _xfer_spec *pxs)
1148−{
1149− struct _pl330_req *req = &thrd->req[index];
1150− struct pl330_xfer *x;
1151− u8 *buf = req->mc_cpu;
1152− int off = 0;
1153−
1154− PL330_DBGMC_START(req->mc_bus);
1155−
1156− /* DMAMOV CCR, ccr */
1157− off += _emit_MOV(dry_run, &buf[off], CCR, pxs->ccr);
1158−
1159− x = pxs->r->x;
1160− do {
1161− /* Error if xfer length is not aligned at burst size */
1162− if (x->bytes % (BRST_SIZE(pxs->ccr) * BRST_LEN(pxs->ccr)))
1163− return -EINVAL;
1164−
1165− pxs->x = x;
1166− off += _setup_xfer(dry_run, &buf[off], pxs);
1167−
1168− x = x->next;
1169− } while (x);
1170−
1171− /* DMASEV peripheral/event */
1172− off += _emit_SEV(dry_run, &buf[off], thrd->ev);
1173− /* DMAEND */
1174− off += _emit_END(dry_run, &buf[off]);
1175−
1176− return off;
1177−}
1178−
1179−static inline u32 _prepare_ccr(const struct pl330_reqcfg *rqc)
1180−{
1181− u32 ccr = 0;
1182−
1183− if (rqc->src_inc)
1184− ccr |= CC_SRCINC;
1185−
1186− if (rqc->dst_inc)
1187− ccr |= CC_DSTINC;
1188−
1189− /* We set same protection levels for Src and DST for now */
1190− if (rqc->privileged)
1191− ccr |= CC_SRCPRI | CC_DSTPRI;
1192− if (rqc->nonsecure)
1193− ccr |= CC_SRCNS | CC_DSTNS;
1194− if (rqc->insnaccess)
1195− ccr |= CC_SRCIA | CC_DSTIA;
1196−
1197− ccr |= (((rqc->brst_len - 1) & 0xf) << CC_SRCBRSTLEN_SHFT);
1198− ccr |= (((rqc->brst_len - 1) & 0xf) << CC_DSTBRSTLEN_SHFT);
1199−
1200− ccr |= (rqc->brst_size << CC_SRCBRSTSIZE_SHFT);
1201− ccr |= (rqc->brst_size << CC_DSTBRSTSIZE_SHFT);
1202−
1203− ccr |= (rqc->scctl << CC_SRCCCTRL_SHFT);
1204− ccr |= (rqc->dcctl << CC_DSTCCTRL_SHFT);
1205−
1206− ccr |= (rqc->swap << CC_SWAP_SHFT);
1207−
1208− return ccr;
1209−}
1210−
1211−static inline bool _is_valid(u32 ccr)
1212−{
1213− enum pl330_dstcachectrl dcctl;
1214− enum pl330_srccachectrl scctl;
1215−
1216− dcctl = (ccr >> CC_DSTCCTRL_SHFT) & CC_DRCCCTRL_MASK;
1217− scctl = (ccr >> CC_SRCCCTRL_SHFT) & CC_SRCCCTRL_MASK;
1218−
1219− if (dcctl == DINVALID1 || dcctl == DINVALID2
1220− || scctl == SINVALID1 || scctl == SINVALID2)
1221− return false;
1222− else
1223− return true;
1224−}
1225−
1226−/*
1227− * Submit a list of xfers after which the client wants notification.
1228− * Client is not notified after each xfer unit, just once after all
1229− * xfer units are done or some error occurs.
1230− */
1231−int pl330_submit_req(void *ch_id, struct pl330_req *r)
1232−{
1233− struct pl330_thread *thrd = ch_id;
1234− struct pl330_dmac *pl330;
1235− struct pl330_info *pi;
1236− struct _xfer_spec xs;
1237− unsigned long flags;
1238− void __iomem *regs;
1239− unsigned idx;
1240− u32 ccr;
1241− int ret = 0;
1242−
1243− /* No Req or Unacquired Channel or DMAC */
1244− if (!r || !thrd || thrd->free)
1245− return -EINVAL;
1246−
1247− pl330 = thrd->dmac;
1248− pi = pl330->pinfo;
1249− regs = pi->base;
1250−
1251− if (pl330->state == DYING
1252− || pl330->dmac_tbd.reset_chan & (1 << thrd->id)) {
1253− dev_info(thrd->dmac->pinfo->dev, "%s:%d\n",
1254− __func__, __LINE__);
1255− return -EAGAIN;
1256− }
1257−
1258− /* If request for non-existing peripheral */
1259− if (r->rqtype != MEMTOMEM && r->peri >= pi->pcfg.num_peri) {
1260− dev_info(thrd->dmac->pinfo->dev,
1261− "%s:%d Invalid peripheral(%u)!\n",
1262− __func__, __LINE__, r->peri);
1263− return -EINVAL;
1264− }
1265−
1266− spin_lock_irqsave(&pl330->lock, flags);
1267−
1268− if (_queue_full(thrd)) {
1269− ret = -EAGAIN;
1270− goto xfer_exit;
1271− }
1272−
1273− /* Prefer Secure Channel */
1274− if (!_manager_ns(thrd))
1275− r->cfg->nonsecure = 0;
1276− else
1277− r->cfg->nonsecure = 1;
1278−
1279− /* Use last settings, if not provided */
1280− if (r->cfg)
1281− ccr = _prepare_ccr(r->cfg);
1282− else
1283− ccr = readl(regs + CC(thrd->id));
1284−
1285− /* If this req doesn't have valid xfer settings */
1286− if (!_is_valid(ccr)) {
1287− ret = -EINVAL;
1288− dev_info(thrd->dmac->pinfo->dev, "%s:%d Invalid CCR(%x)!\n",
1289− __func__, __LINE__, ccr);
1290− goto xfer_exit;
1291− }
1292−
1293− idx = IS_FREE(&thrd->req[0]) ? 0 : 1;
1294−
1295− xs.ccr = ccr;
1296− xs.r = r;
1297−
1298− /* First dry run to check if req is acceptable */
1299− ret = _setup_req(1, thrd, idx, &xs);
1300− if (ret < 0)
1301− goto xfer_exit;
1302−
1303− if (ret > pi->mcbufsz / 2) {
1304− dev_info(thrd->dmac->pinfo->dev,
1305− "%s:%d Trying increasing mcbufsz\n",
1306− __func__, __LINE__);
1307− ret = -ENOMEM;
1308− goto xfer_exit;
1309− }
1310−
1311− /* Hook the request */
1312− thrd->lstenq = idx;
1313− thrd->req[idx].mc_len = _setup_req(0, thrd, idx, &xs);
1314− thrd->req[idx].r = r;
1315−
1316− ret = 0;
1317−
1318−xfer_exit:
1319− spin_unlock_irqrestore(&pl330->lock, flags);
1320−
1321− return ret;
1322−}
1323−EXPORT_SYMBOL(pl330_submit_req);
1324−
1325−static void pl330_dotask(unsigned long data)
1326−{
1327− struct pl330_dmac *pl330 = (struct pl330_dmac *) data;
1328− struct pl330_info *pi = pl330->pinfo;
1329− unsigned long flags;
1330− int i;
1331−
1332− spin_lock_irqsave(&pl330->lock, flags);
1333−
1334− /* The DMAC itself gone nuts */
1335− if (pl330->dmac_tbd.reset_dmac) {
1336− pl330->state = DYING;
1337− /* Reset the manager too */
1338− pl330->dmac_tbd.reset_mngr = true;
1339− /* Clear the reset flag */
1340− pl330->dmac_tbd.reset_dmac = false;
1341− }
1342−
1343− if (pl330->dmac_tbd.reset_mngr) {
1344− _stop(pl330->manager);
1345− /* Reset all channels */
1346− pl330->dmac_tbd.reset_chan = (1 << pi->pcfg.num_chan) - 1;
1347− /* Clear the reset flag */
1348− pl330->dmac_tbd.reset_mngr = false;
1349− }
1350−
1351− for (i = 0; i < pi->pcfg.num_chan; i++) {
1352−
1353− if (pl330->dmac_tbd.reset_chan & (1 << i)) {
1354− struct pl330_thread *thrd = &pl330->channels[i];
1355− void __iomem *regs = pi->base;
1356− enum pl330_op_err err;
1357−
1358− _stop(thrd);
1359−
1360− if (readl(regs + FSC) & (1 << thrd->id))
1361− err = PL330_ERR_FAIL;
1362− else
1363− err = PL330_ERR_ABORT;
1364−
1365− spin_unlock_irqrestore(&pl330->lock, flags);
1366−
1367− _callback(thrd->req[1 - thrd->lstenq].r, err);
1368− _callback(thrd->req[thrd->lstenq].r, err);
1369−
1370− spin_lock_irqsave(&pl330->lock, flags);
1371−
1372− thrd->req[0].r = NULL;
1373− thrd->req[1].r = NULL;
1374− mark_free(thrd, 0);
1375− mark_free(thrd, 1);
1376−
1377− /* Clear the reset flag */
1378− pl330->dmac_tbd.reset_chan &= ~(1 << i);
1379− }
1380− }
1381−
1382− spin_unlock_irqrestore(&pl330->lock, flags);
1383−
1384− return;
1385−}
1386−
1387−/* Returns 1 if state was updated, 0 otherwise */
1388−int pl330_update(const struct pl330_info *pi)
1389−{
1390− struct _pl330_req *rqdone;
1391− struct pl330_dmac *pl330;
1392− unsigned long flags;
1393− void __iomem *regs;
1394− u32 val;
1395− int id, ev, ret = 0;
1396−
1397− if (!pi || !pi->pl330_data)
1398− return 0;
1399−
1400− regs = pi->base;
1401− pl330 = pi->pl330_data;
1402−
1403− spin_lock_irqsave(&pl330->lock, flags);
1404−
1405− val = readl(regs + FSM) & 0x1;
1406− if (val)
1407− pl330->dmac_tbd.reset_mngr = true;
1408− else
1409− pl330->dmac_tbd.reset_mngr = false;
1410−
1411− val = readl(regs + FSC) & ((1 << pi->pcfg.num_chan) - 1);
1412− pl330->dmac_tbd.reset_chan |= val;
1413− if (val) {
1414− int i = 0;
1415− while (i < pi->pcfg.num_chan) {
1416− if (val & (1 << i)) {
1417− dev_info(pi->dev,
1418− "Reset Channel-%d\t CS-%x FTC-%x\n",
1419− i, readl(regs + CS(i)),
1420− readl(regs + FTC(i)));
1421− _stop(&pl330->channels[i]);
1422− }
1423− i++;
1424− }
1425− }
1426−
1427− /* Check which event happened i.e, thread notified */
1428− val = readl(regs + ES);
1429− if (pi->pcfg.num_events < 32
1430− && val & ~((1 << pi->pcfg.num_events) - 1)) {
1431− pl330->dmac_tbd.reset_dmac = true;
1432− dev_err(pi->dev, "%s:%d Unexpected!\n", __func__, __LINE__);
1433− ret = 1;
1434− goto updt_exit;
1435− }
1436−
1437− for (ev = 0; ev < pi->pcfg.num_events; ev++) {
1438− if (val & (1 << ev)) { /* Event occurred */
1439− struct pl330_thread *thrd;
1440− u32 inten = readl(regs + INTEN);
1441− int active;
1442−
1443− /* Clear the event */
1444− if (inten & (1 << ev))
1445− writel(1 << ev, regs + INTCLR);
1446−
1447− ret = 1;
1448−
1449− id = pl330->events[ev];
1450−
1451− thrd = &pl330->channels[id];
1452−
1453− active = thrd->req_running;
1454− if (active == -1) /* Aborted */
1455− continue;
1456−
1457− rqdone = &thrd->req[active];
1458− mark_free(thrd, active);
1459−
1460− /* Get going again ASAP */
1461− _start(thrd);
1462−
1463− /* For now, just make a list of callbacks to be done */
1464− list_add_tail(&rqdone->rqd, &pl330->req_done);
1465− }
1466− }
1467−
1468− /* Now that we are in no hurry, do the callbacks */
1469− while (!list_empty(&pl330->req_done)) {
1470− struct pl330_req *r;
1471−
1472− rqdone = container_of(pl330->req_done.next,
1473− struct _pl330_req, rqd);
1474−
1475− list_del_init(&rqdone->rqd);
1476−
1477− /* Detach the req */
1478− r = rqdone->r;
1479− rqdone->r = NULL;
1480−
1481− spin_unlock_irqrestore(&pl330->lock, flags);
1482− _callback(r, PL330_ERR_NONE);
1483− spin_lock_irqsave(&pl330->lock, flags);
1484− }
1485−
1486−updt_exit:
1487− spin_unlock_irqrestore(&pl330->lock, flags);
1488−
1489− if (pl330->dmac_tbd.reset_dmac
1490− || pl330->dmac_tbd.reset_mngr
1491− || pl330->dmac_tbd.reset_chan) {
1492− ret = 1;
1493− tasklet_schedule(&pl330->tasks);
1494− }
1495−
1496− return ret;
1497−}
1498−EXPORT_SYMBOL(pl330_update);
1499−
1500−int pl330_chan_ctrl(void *ch_id, enum pl330_chan_op op)
1501−{
1502− struct pl330_thread *thrd = ch_id;
1503− struct pl330_dmac *pl330;
1504− unsigned long flags;
1505− int ret = 0, active;
1506−
1507− if (!thrd || thrd->free || thrd->dmac->state == DYING)
1508− return -EINVAL;
1509−
1510− pl330 = thrd->dmac;
1511− active = thrd->req_running;
1512−
1513− spin_lock_irqsave(&pl330->lock, flags);
1514−
1515− switch (op) {
1516− case PL330_OP_FLUSH:
1517− /* Make sure the channel is stopped */
1518− _stop(thrd);
1519−
1520− thrd->req[0].r = NULL;
1521− thrd->req[1].r = NULL;
1522− mark_free(thrd, 0);
1523− mark_free(thrd, 1);
1524− break;
1525−
1526− case PL330_OP_ABORT:
1527− /* Make sure the channel is stopped */
1528− _stop(thrd);
1529−
1530− /* ABORT is only for the active req */
1531− if (active == -1)
1532− break;
1533−
1534− thrd->req[active].r = NULL;
1535− mark_free(thrd, active);
1536−
1537− /* Start the next */
1538− case PL330_OP_START:
1539− if ((active == -1) && !_start(thrd))
1540− ret = -EIO;
1541− break;
1542−
1543− default:
1544− ret = -EINVAL;
1545− }
1546−
1547− spin_unlock_irqrestore(&pl330->lock, flags);
1548− return ret;
1549−}
1550−EXPORT_SYMBOL(pl330_chan_ctrl);
1551−
1552−int pl330_chan_status(void *ch_id, struct pl330_chanstatus *pstatus)
1553−{
1554− struct pl330_thread *thrd = ch_id;
1555− struct pl330_dmac *pl330;
1556− struct pl330_info *pi;
1557− void __iomem *regs;
1558− int active;
1559− u32 val;
1560−
1561− if (!pstatus || !thrd || thrd->free)
1562− return -EINVAL;
1563−
1564− pl330 = thrd->dmac;
1565− pi = pl330->pinfo;
1566− regs = pi->base;
1567−
1568− /* The client should remove the DMAC and add again */
1569− if (pl330->state == DYING)
1570− pstatus->dmac_halted = true;
1571− else
1572− pstatus->dmac_halted = false;
1573−
1574− val = readl(regs + FSC);
1575− if (val & (1 << thrd->id))
1576− pstatus->faulting = true;
1577− else
1578− pstatus->faulting = false;
1579−
1580− active = thrd->req_running;
1581−
1582− if (active == -1) {
1583− /* Indicate that the thread is not running */
1584− pstatus->top_req = NULL;
1585− pstatus->wait_req = NULL;
1586− } else {
1587− pstatus->top_req = thrd->req[active].r;
1588− pstatus->wait_req = !IS_FREE(&thrd->req[1 - active])
1589− ? thrd->req[1 - active].r : NULL;
1590− }
1591−
1592− pstatus->src_addr = readl(regs + SA(thrd->id));
1593− pstatus->dst_addr = readl(regs + DA(thrd->id));
1594−
1595− return 0;
1596−}
1597−EXPORT_SYMBOL(pl330_chan_status);
1598−
1599−/* Reserve an event */
1600−static inline int _alloc_event(struct pl330_thread *thrd)
1601−{
1602− struct pl330_dmac *pl330 = thrd->dmac;
1603− struct pl330_info *pi = pl330->pinfo;
1604− int ev;
1605−
1606− for (ev = 0; ev < pi->pcfg.num_events; ev++)
1607− if (pl330->events[ev] == -1) {
1608− pl330->events[ev] = thrd->id;
1609− return ev;
1610− }
1611−
1612− return -1;
1613−}
1614−
1615−static bool _chan_ns(const struct pl330_info *pi, int i)
1616−{
1617− return pi->pcfg.irq_ns & (1 << i);
1618−}
1619−
1620−/* Upon success, returns IdentityToken for the
1621− * allocated channel, NULL otherwise.
1622− */
1623−void *pl330_request_channel(const struct pl330_info *pi)
1624−{
1625− struct pl330_thread *thrd = NULL;
1626− struct pl330_dmac *pl330;
1627− unsigned long flags;
1628− int chans, i;
1629−
1630− if (!pi || !pi->pl330_data)
1631− return NULL;
1632−
1633− pl330 = pi->pl330_data;
1634−
1635− if (pl330->state == DYING)
1636− return NULL;
1637−
1638− chans = pi->pcfg.num_chan;
1639−
1640− spin_lock_irqsave(&pl330->lock, flags);
1641−
1642− for (i = 0; i < chans; i++) {
1643− thrd = &pl330->channels[i];
1644− if ((thrd->free) && (!_manager_ns(thrd) ||
1645− _chan_ns(pi, i))) {
1646− thrd->ev = _alloc_event(thrd);
1647− if (thrd->ev >= 0) {
1648− thrd->free = false;
1649− thrd->lstenq = 1;
1650− thrd->req[0].r = NULL;
1651− mark_free(thrd, 0);
1652− thrd->req[1].r = NULL;
1653− mark_free(thrd, 1);
1654− break;
1655− }
1656− }
1657− thrd = NULL;
1658− }
1659−
1660− spin_unlock_irqrestore(&pl330->lock, flags);
1661−
1662− return thrd;
1663−}
1664−EXPORT_SYMBOL(pl330_request_channel);
1665−
1666−/* Release an event */
1667−static inline void _free_event(struct pl330_thread *thrd, int ev)
1668−{
1669− struct pl330_dmac *pl330 = thrd->dmac;
1670− struct pl330_info *pi = pl330->pinfo;
1671−
1672− /* If the event is valid and was held by the thread */
1673− if (ev >= 0 && ev < pi->pcfg.num_events
1674− && pl330->events[ev] == thrd->id)
1675− pl330->events[ev] = -1;
1676−}
1677−
1678−void pl330_release_channel(void *ch_id)
1679−{
1680− struct pl330_thread *thrd = ch_id;
1681− struct pl330_dmac *pl330;
1682− unsigned long flags;
1683−
1684− if (!thrd || thrd->free)
1685− return;
1686−
1687− _stop(thrd);
1688−
1689− _callback(thrd->req[1 - thrd->lstenq].r, PL330_ERR_ABORT);
1690− _callback(thrd->req[thrd->lstenq].r, PL330_ERR_ABORT);
1691−
1692− pl330 = thrd->dmac;
1693−
1694− spin_lock_irqsave(&pl330->lock, flags);
1695− _free_event(thrd, thrd->ev);
1696− thrd->free = true;
1697− spin_unlock_irqrestore(&pl330->lock, flags);
1698−}
1699−EXPORT_SYMBOL(pl330_release_channel);
1700−
1701−/* Initialize the structure for PL330 configuration, that can be used
1702− * by the client driver the make best use of the DMAC
1703− */
1704−static void read_dmac_config(struct pl330_info *pi)
1705−{
1706− void __iomem *regs = pi->base;
1707− u32 val;
1708−
1709− val = readl(regs + CRD) >> CRD_DATA_WIDTH_SHIFT;
1710− val &= CRD_DATA_WIDTH_MASK;
1711− pi->pcfg.data_bus_width = 8 * (1 << val);
1712−
1713− val = readl(regs + CRD) >> CRD_DATA_BUFF_SHIFT;
1714− val &= CRD_DATA_BUFF_MASK;
1715− pi->pcfg.data_buf_dep = val + 1;
1716−
1717− val = readl(regs + CR0) >> CR0_NUM_CHANS_SHIFT;
1718− val &= CR0_NUM_CHANS_MASK;
1719− val += 1;
1720− pi->pcfg.num_chan = val;
1721−
1722− val = readl(regs + CR0);
1723− if (val & CR0_PERIPH_REQ_SET) {
1724− val = (val >> CR0_NUM_PERIPH_SHIFT) & CR0_NUM_PERIPH_MASK;
1725− val += 1;
1726− pi->pcfg.num_peri = val;
1727− pi->pcfg.peri_ns = readl(regs + CR4);
1728− } else {
1729− pi->pcfg.num_peri = 0;
1730− }
1731−
1732− val = readl(regs + CR0);
1733− if (val & CR0_BOOT_MAN_NS)
1734− pi->pcfg.mode |= DMAC_MODE_NS;
1735− else
1736− pi->pcfg.mode &= ~DMAC_MODE_NS;
1737−
1738− val = readl(regs + CR0) >> CR0_NUM_EVENTS_SHIFT;
1739− val &= CR0_NUM_EVENTS_MASK;
1740− val += 1;
1741− pi->pcfg.num_events = val;
1742−
1743− pi->pcfg.irq_ns = readl(regs + CR3);
1744−
1745− pi->pcfg.periph_id = get_id(pi, PERIPH_ID);
1746− pi->pcfg.pcell_id = get_id(pi, PCELL_ID);
1747−}
1748−
1749−static inline void _reset_thread(struct pl330_thread *thrd)
1750−{
1751− struct pl330_dmac *pl330 = thrd->dmac;
1752− struct pl330_info *pi = pl330->pinfo;
1753−
1754− thrd->req[0].mc_cpu = pl330->mcode_cpu
1755− + (thrd->id * pi->mcbufsz);
1756− thrd->req[0].mc_bus = pl330->mcode_bus
1757− + (thrd->id * pi->mcbufsz);
1758− thrd->req[0].r = NULL;
1759− mark_free(thrd, 0);
1760−
1761− thrd->req[1].mc_cpu = thrd->req[0].mc_cpu
1762− + pi->mcbufsz / 2;
1763− thrd->req[1].mc_bus = thrd->req[0].mc_bus
1764− + pi->mcbufsz / 2;
1765− thrd->req[1].r = NULL;
1766− mark_free(thrd, 1);
1767−}
1768−
1769−static int dmac_alloc_threads(struct pl330_dmac *pl330)
1770−{
1771− struct pl330_info *pi = pl330->pinfo;
1772− int chans = pi->pcfg.num_chan;
1773− struct pl330_thread *thrd;
1774− int i;
1775−
1776− /* Allocate 1 Manager and 'chans' Channel threads */
1777− pl330->channels = kzalloc((1 + chans) * sizeof(*thrd),
1778− GFP_KERNEL);
1779− if (!pl330->channels)
1780− return -ENOMEM;
1781−
1782− /* Init Channel threads */
1783− for (i = 0; i < chans; i++) {
1784− thrd = &pl330->channels[i];
1785− thrd->id = i;
1786− thrd->dmac = pl330;
1787− _reset_thread(thrd);
1788− thrd->free = true;
1789− }
1790−
1791− /* MANAGER is indexed at the end */
1792− thrd = &pl330->channels[chans];
1793− thrd->id = chans;
1794− thrd->dmac = pl330;
1795− thrd->free = false;
1796− pl330->manager = thrd;
1797−
1798− return 0;
1799−}
1800−
1801−static int dmac_alloc_resources(struct pl330_dmac *pl330)
1802−{
1803− struct pl330_info *pi = pl330->pinfo;
1804− int chans = pi->pcfg.num_chan;
1805− int ret;
1806−
1807− /*
1808− * Alloc MicroCode buffer for 'chans' Channel threads.
1809− * A channel's buffer offset is (Channel_Id * MCODE_BUFF_PERCHAN)
1810− */
1811− pl330->mcode_cpu = dma_alloc_coherent(pi->dev,
1812− chans * pi->mcbufsz,
1813− &pl330->mcode_bus, GFP_KERNEL);
1814− if (!pl330->mcode_cpu) {
1815− dev_err(pi->dev, "%s:%d Can't allocate memory!\n",
1816− __func__, __LINE__);
1817− return -ENOMEM;
1818− }
1819−
1820− ret = dmac_alloc_threads(pl330);
1821− if (ret) {
1822− dev_err(pi->dev, "%s:%d Can't to create channels for DMAC!\n",
1823− __func__, __LINE__);
1824− dma_free_coherent(pi->dev,
1825− chans * pi->mcbufsz,
1826− pl330->mcode_cpu, pl330->mcode_bus);
1827− return ret;
1828− }
1829−
1830− return 0;
1831−}
1832−
1833−int pl330_add(struct pl330_info *pi)
1834−{
1835− struct pl330_dmac *pl330;
1836− void __iomem *regs;
1837− int i, ret;
1838−
1839− if (!pi || !pi->dev)
1840− return -EINVAL;
1841−
1842− /* If already added */
1843− if (pi->pl330_data)
1844− return -EINVAL;
1845−
1846− /*
1847− * If the SoC can perform reset on the DMAC, then do it
1848− * before reading its configuration.
1849− */
1850− if (pi->dmac_reset)
1851− pi->dmac_reset(pi);
1852−
1853− regs = pi->base;
1854−
1855− /* Check if we can handle this DMAC */
1856− if ((get_id(pi, PERIPH_ID) & 0xfffff) != PERIPH_ID_VAL
1857− || get_id(pi, PCELL_ID) != PCELL_ID_VAL) {
1858− dev_err(pi->dev, "PERIPH_ID 0x%x, PCELL_ID 0x%x !\n",
1859− get_id(pi, PERIPH_ID), get_id(pi, PCELL_ID));
1860− return -EINVAL;
1861− }
1862−
1863− /* Read the configuration of the DMAC */
1864− read_dmac_config(pi);
1865−
1866− if (pi->pcfg.num_events == 0) {
1867− dev_err(pi->dev, "%s:%d Can't work without events!\n",
1868− __func__, __LINE__);
1869− return -EINVAL;
1870− }
1871−
1872− pl330 = kzalloc(sizeof(*pl330), GFP_KERNEL);
1873− if (!pl330) {
1874− dev_err(pi->dev, "%s:%d Can't allocate memory!\n",
1875− __func__, __LINE__);
1876− return -ENOMEM;
1877− }
1878−
1879− /* Assign the info structure and private data */
1880− pl330->pinfo = pi;
1881− pi->pl330_data = pl330;
1882−
1883− spin_lock_init(&pl330->lock);
1884−
1885− INIT_LIST_HEAD(&pl330->req_done);
1886−
1887− /* Use default MC buffer size if not provided */
1888− if (!pi->mcbufsz)
1889− pi->mcbufsz = MCODE_BUFF_PER_REQ * 2;
1890−
1891− /* Mark all events as free */
1892− for (i = 0; i < pi->pcfg.num_events; i++)
1893− pl330->events[i] = -1;
1894−
1895− /* Allocate resources needed by the DMAC */
1896− ret = dmac_alloc_resources(pl330);
1897− if (ret) {
1898− dev_err(pi->dev, "Unable to create channels for DMAC\n");
1899− kfree(pl330);
1900− return ret;
1901− }
1902−
1903− tasklet_init(&pl330->tasks, pl330_dotask, (unsigned long) pl330);
1904−
1905− pl330->state = INIT;
1906−
1907− return 0;
1908−}
1909−EXPORT_SYMBOL(pl330_add);
1910−
1911−static int dmac_free_threads(struct pl330_dmac *pl330)
1912−{
1913− struct pl330_info *pi = pl330->pinfo;
1914− int chans = pi->pcfg.num_chan;
1915− struct pl330_thread *thrd;
1916− int i;
1917−
1918− /* Release Channel threads */
1919− for (i = 0; i < chans; i++) {
1920− thrd = &pl330->channels[i];
1921− pl330_release_channel((void *)thrd);
1922− }
1923−
1924− /* Free memory */
1925− kfree(pl330->channels);
1926−
1927− return 0;
1928−}
1929−
1930−static void dmac_free_resources(struct pl330_dmac *pl330)
1931−{
1932− struct pl330_info *pi = pl330->pinfo;
1933− int chans = pi->pcfg.num_chan;
1934−
1935− dmac_free_threads(pl330);
1936−
1937− dma_free_coherent(pi->dev, chans * pi->mcbufsz,
1938− pl330->mcode_cpu, pl330->mcode_bus);
1939−}
1940−
1941−void pl330_del(struct pl330_info *pi)
1942−{
1943− struct pl330_dmac *pl330;
1944−
1945− if (!pi || !pi->pl330_data)
1946− return;
1947−
1948− pl330 = pi->pl330_data;
1949−
1950− pl330->state = UNINIT;
1951−
1952− tasklet_kill(&pl330->tasks);
1953−
1954− /* Free DMAC resources */
1955− dmac_free_resources(pl330);
1956−
1957− kfree(pl330);
1958− pi->pl330_data = NULL;
1959−}
1960−EXPORT_SYMBOL(pl330_del);
arch/arm/common/sa1111.c+185−96
@@ -16,6 +16,7 @@ · 15 unmodified lines
1616 */
1717 #include <linux/module.h>
1818 #include <linux/init.h>
19+#include <linux/irq.h>
1920 #include <linux/kernel.h>
2021 #include <linux/delay.h>
2122 #include <linux/errno.h>
@@ -28,9 +29,8 @@ · 6 unmodified lines
2829 #include <linux/io.h>
2930
3031 #include <mach/hardware.h>
31−#include <asm/mach-types.h>
32−#include <asm/irq.h>
3332 #include <asm/mach/irq.h>
33+#include <asm/mach-types.h>
3434 #include <asm/sizes.h>
3535
3636 #include <asm/hardware/sa1111.h>
@@ -86,8 +86,10 @@ · 49 unmodified lines
8686 #define IRQ_S1_CD_VALID (52)
8787 #define IRQ_S0_BVD1_STSCHG (53)
8888 #define IRQ_S1_BVD1_STSCHG (54)
89+#define SA1111_IRQ_NR (55)
8990
90−extern void __init sa1110_mb_enable(void);
91+extern void sa1110_mb_enable(void);
92+extern void sa1110_mb_disable(void);
9193
9294 /*
9395 * We keep the following data for the overall SA1111. Note that the
@@ -104,6 +106,7 @@ struct sa1111 { · 10 unmodified lines
104106 int irq_base; /* base for cascaded on-chip IRQs */
105107 spinlock_t lock;
106108 void __iomem *base;
109+ struct sa1111_platform_data *pdata;
107110 #ifdef CONFIG_PM
108111 void *saved_state;
109112 #endif
@@ -118,6 +121,7 @@ static struct sa1111 *g_sa1111; · 8 unmodified lines
118121 struct sa1111_dev_info {
119122 unsigned long offset;
120123 unsigned long skpcr_mask;
124+ bool dma;
121125 unsigned int devid;
122126 unsigned int irq[6];
123127 };
@@ -126,6 +130,7 @@ static struct sa1111_dev_info sa1111_devices[] = { · 2 unmodified lines
126130 {
127131 .offset = SA1111_USB,
128132 .skpcr_mask = SKPCR_UCLKEN,
133+ .dma = true,
129134 .devid = SA1111_DEVID_USB,
130135 .irq = {
131136 IRQ_USBPWR,
@@ -139,6 +144,7 @@ static struct sa1111_dev_info sa1111_devices[] = { · 7 unmodified lines
139144 {
140145 .offset = 0x0600,
141146 .skpcr_mask = SKPCR_I2SCLKEN | SKPCR_L3CLKEN,
147+ .dma = true,
142148 .devid = SA1111_DEVID_SAC,
143149 .irq = {
144150 AUDXMTDMADONEA,
@@ -155,7 +161,7 @@ static struct sa1111_dev_info sa1111_devices[] = { · 10 unmodified lines
155161 {
156162 .offset = SA1111_KBD,
157163 .skpcr_mask = SKPCR_PTCLKEN,
158− .devid = SA1111_DEVID_PS2,
164+ .devid = SA1111_DEVID_PS2_KBD,
159165 .irq = {
160166 IRQ_TPRXINT,
161167 IRQ_TPTXINT
@@ -164,7 +170,7 @@ static struct sa1111_dev_info sa1111_devices[] = { · 2 unmodified lines
164170 {
165171 .offset = SA1111_MSE,
166172 .skpcr_mask = SKPCR_PMCLKEN,
167− .devid = SA1111_DEVID_PS2,
173+ .devid = SA1111_DEVID_PS2_MSE,
168174 .irq = {
169175 IRQ_MSRXINT,
170176 IRQ_MSTXINT
@@ -434,16 +440,28 @@ static struct irq_chip sa1111_high_chip = { · 263 unmodified lines
434440 .irq_set_wake = sa1111_wake_highirq,
435441 };
436442
437−static void sa1111_setup_irq(struct sa1111 *sachip)
443+static int sa1111_setup_irq(struct sa1111 *sachip, unsigned irq_base)
438444 {
439445 void __iomem *irqbase = sachip->base + SA1111_INTC;
440− unsigned int irq;
446+ unsigned i, irq;
447+ int ret;
441448
442449 /*
443450 * We're guaranteed that this region hasn't been taken.
444451 */
445452 request_mem_region(sachip->phys + SA1111_INTC, 512, "irq");
446453
454+ ret = irq_alloc_descs(-1, irq_base, SA1111_IRQ_NR, -1);
455+ if (ret <= 0) {
456+ dev_err(sachip->dev, "unable to allocate %u irqs: %d\n",
457+ SA1111_IRQ_NR, ret);
458+ if (ret == 0)
459+ ret = -EINVAL;
460+ return ret;
461+ }
462+
463+ sachip->irq_base = ret;
464+
447465 /* disable all IRQs */
448466 sa1111_writel(0, irqbase + SA1111_INTEN0);
449467 sa1111_writel(0, irqbase + SA1111_INTEN1);
@@ -463,14 +481,16 @@ static void sa1111_setup_irq(struct sa1111 *sachip) · 13 unmodified lines
463481 sa1111_writel(~0, irqbase + SA1111_INTSTATCLR0);
464482 sa1111_writel(~0, irqbase + SA1111_INTSTATCLR1);
465483
466− for (irq = IRQ_GPAIN0; irq <= SSPROR; irq++) {
484+ for (i = IRQ_GPAIN0; i <= SSPROR; i++) {
485+ irq = sachip->irq_base + i;
467486 irq_set_chip_and_handler(irq, &sa1111_low_chip,
468487 handle_edge_irq);
469488 irq_set_chip_data(irq, sachip);
470489 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
471490 }
472491
473− for (irq = AUDXMTDMADONEA; irq <= IRQ_S1_BVD1_STSCHG; irq++) {
492+ for (i = AUDXMTDMADONEA; i <= IRQ_S1_BVD1_STSCHG; i++) {
493+ irq = sachip->irq_base + i;
474494 irq_set_chip_and_handler(irq, &sa1111_high_chip,
475495 handle_edge_irq);
476496 irq_set_chip_data(irq, sachip);
@@ -483,6 +503,11 @@ static void sa1111_setup_irq(struct sa1111 *sachip) · 6 unmodified lines
483503 irq_set_irq_type(sachip->irq, IRQ_TYPE_EDGE_RISING);
484504 irq_set_handler_data(sachip->irq, sachip);
485505 irq_set_chained_handler(sachip->irq, sa1111_irq_handler);
506+
507+ dev_info(sachip->dev, "Providing IRQ%u-%u\n",
508+ sachip->irq_base, sachip->irq_base + SA1111_IRQ_NR - 1);
509+
510+ return 0;
486511 }
487512
488513 /*
@@ -581,41 +606,10 @@ sa1111_configure_smc(struct sa1111 *sachip, int sdram, unsigned int drac, · 92 unmodified lines
581606 }
582607 #endif
583608
584−#ifdef CONFIG_DMABOUNCE
585−/*
586− * According to the "Intel StrongARM SA-1111 Microprocessor Companion
587− * Chip Specification Update" (June 2000), erratum #7, there is a
588− * significant bug in the SA1111 SDRAM shared memory controller. If
589− * an access to a region of memory above 1MB relative to the bank base,
590− * it is important that address bit 10 _NOT_ be asserted. Depending
591− * on the configuration of the RAM, bit 10 may correspond to one
592− * of several different (processor-relative) address bits.
593− *
594− * This routine only identifies whether or not a given DMA address
595− * is susceptible to the bug.
596− *
597− * This should only get called for sa1111_device types due to the
598− * way we configure our device dma_masks.
599− */
600−static int sa1111_needs_bounce(struct device *dev, dma_addr_t addr, size_t size)
601−{
602− /*
603− * Section 4.6 of the "Intel StrongARM SA-1111 Development Module
604− * User's Guide" mentions that jumpers R51 and R52 control the
605− * target of SA-1111 DMA (either SDRAM bank 0 on Assabet, or
606− * SDRAM bank 1 on Neponset). The default configuration selects
607− * Assabet, so any address in bank 1 is necessarily invalid.
608− */
609− return (machine_is_assabet() || machine_is_pfs168()) &&
610− (addr >= 0xc8000000 || (addr + size) >= 0xc8000000);
611−}
612−#endif
613−
614609 static void sa1111_dev_release(struct device *_dev)
615610 {
616611 struct sa1111_dev *dev = SA1111_DEV(_dev);
617612
618− release_resource(&dev->res);
619613 kfree(dev);
620614 }
621615
@@ -624,67 +618,58 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, · 2 unmodified lines
624618 struct sa1111_dev_info *info)
625619 {
626620 struct sa1111_dev *dev;
621+ unsigned i;
627622 int ret;
628623
629624 dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL);
630625 if (!dev) {
631626 ret = -ENOMEM;
632− goto out;
627+ goto err_alloc;
633628 }
634629
630+ device_initialize(&dev->dev);
635631 dev_set_name(&dev->dev, "%4.4lx", info->offset);
636632 dev->devid = info->devid;
637633 dev->dev.parent = sachip->dev;
638634 dev->dev.bus = &sa1111_bus_type;
639635 dev->dev.release = sa1111_dev_release;
640− dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask;
641636 dev->res.start = sachip->phys + info->offset;
642637 dev->res.end = dev->res.start + 511;
643638 dev->res.name = dev_name(&dev->dev);
644639 dev->res.flags = IORESOURCE_MEM;
645640 dev->mapbase = sachip->base + info->offset;
646641 dev->skpcr_mask = info->skpcr_mask;
647− memmove(dev->irq, info->irq, sizeof(dev->irq));
648−
649− ret = request_resource(parent, &dev->res);
650− if (ret) {
651− printk("SA1111: failed to allocate resource for %s\n",
652− dev->res.name);
653− dev_set_name(&dev->dev, NULL);
654− kfree(dev);
655− goto out;
656− }
657−
658642
659− ret = device_register(&dev->dev);
660− if (ret) {
661− release_resource(&dev->res);
662− kfree(dev);
663− goto out;
664− }
643+ for (i = 0; i < ARRAY_SIZE(info->irq); i++)
644+ dev->irq[i] = sachip->irq_base + info->irq[i];
665645
666−#ifdef CONFIG_DMABOUNCE
667646 /*
668− * If the parent device has a DMA mask associated with it,
669− * propagate it down to the children.
647+ * If the parent device has a DMA mask associated with it, and
648+ * this child supports DMA, propagate it down to the children.
670649 */
671− if (sachip->dev->dma_mask) {
650+ if (info->dma && sachip->dev->dma_mask) {
672651 dev->dma_mask = *sachip->dev->dma_mask;
673652 dev->dev.dma_mask = &dev->dma_mask;
653+ dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask;
654+ }
674655
675− if (dev->dma_mask != 0xffffffffUL) {
676− ret = dmabounce_register_dev(&dev->dev, 1024, 4096,
677− sa1111_needs_bounce);
678− if (ret) {
679− dev_err(&dev->dev, "SA1111: Failed to register"
680− " with dmabounce\n");
681− device_unregister(&dev->dev);
682− }
683− }
656+ ret = request_resource(parent, &dev->res);
657+ if (ret) {
658+ dev_err(sachip->dev, "failed to allocate resource for %s\n",
659+ dev->res.name);
660+ goto err_resource;
684661 }
685−#endif
686662
687−out:
663+ ret = device_add(&dev->dev);
664+ if (ret)
665+ goto err_add;
666+ return 0;
667+
668+ err_add:
669+ release_resource(&dev->res);
670+ err_resource:
671+ put_device(&dev->dev);
672+ err_alloc:
688673 return ret;
689674 }
690675
@@ -698,16 +683,21 @@ out: · 7 unmodified lines
698683 * Returns:
699684 * %-ENODEV device not found.
700685 * %-EBUSY physical address already marked in-use.
686+ * %-EINVAL no platform data passed
701687 * %0 successful.
702688 */
703689 static int __devinit
704690 __sa1111_probe(struct device *me, struct resource *mem, int irq)
705691 {
692+ struct sa1111_platform_data *pd = me->platform_data;
706693 struct sa1111 *sachip;
707694 unsigned long id;
708695 unsigned int has_devs;
709696 int i, ret = -ENODEV;
710697
698+ if (!pd)
699+ return -EINVAL;
700+
711701 sachip = kzalloc(sizeof(struct sa1111), GFP_KERNEL);
712702 if (!sachip)
713703 return -ENOMEM;
@@ -727,6 +717,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) · 13 unmodified lines
727717 sachip->dev = me;
728718 dev_set_drvdata(sachip->dev, sachip);
729719
720+ sachip->pdata = pd;
730721 sachip->phys = mem->start;
731722 sachip->irq = irq;
732723
@@ -759,6 +750,16 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) · 26 unmodified lines
759750 */
760751 sa1111_wake(sachip);
761752
753+ /*
754+ * The interrupt controller must be initialised before any
755+ * other device to ensure that the interrupts are available.
756+ */
757+ if (sachip->irq != NO_IRQ) {
758+ ret = sa1111_setup_irq(sachip, pd->irq_base);
759+ if (ret)
760+ goto err_unmap;
761+ }
762+
762763 #ifdef CONFIG_ARCH_SA1100
763764 {
764765 unsigned int val;
@@ -789,24 +790,14 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) · 24 unmodified lines
789790 }
790791 #endif
791792
792− /*
793− * The interrupt controller must be initialised before any
794− * other device to ensure that the interrupts are available.
795− */
796− if (sachip->irq != NO_IRQ)
797− sa1111_setup_irq(sachip);
798−
799793 g_sa1111 = sachip;
800794
801795 has_devs = ~0;
802− if (machine_is_assabet() || machine_is_jornada720() ||
803− machine_is_badge4())
804− has_devs &= ~(1 << 4);
805− else
806− has_devs &= ~(1 << 1);
796+ if (pd)
797+ has_devs &= ~pd->disable_devs;
807798
808799 for (i = 0; i < ARRAY_SIZE(sa1111_devices); i++)
809− if (has_devs & (1 << i))
800+ if (sa1111_devices[i].devid & has_devs)
810801 sa1111_init_one_child(sachip, mem, &sa1111_devices[i]);
811802
812803 return 0;
@@ -824,7 +815,10 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) · 11 unmodified lines
824815
825816 static int sa1111_remove_one(struct device *dev, void *data)
826817 {
827− device_unregister(dev);
818+ struct sa1111_dev *sadev = SA1111_DEV(dev);
819+ device_del(&sadev->dev);
820+ release_resource(&sadev->res);
821+ put_device(&sadev->dev);
828822 return 0;
829823 }
830824
@@ -846,6 +840,7 @@ static void __sa1111_remove(struct sa1111 *sachip) · 15 unmodified lines
846840 if (sachip->irq != NO_IRQ) {
847841 irq_set_chained_handler(sachip->irq, NULL);
848842 irq_set_handler_data(sachip->irq, NULL);
843+ irq_free_descs(sachip->irq_base, SA1111_IRQ_NR);
849844
850845 release_mem_region(sachip->phys + SA1111_INTC, 512);
851846 }
@@ -904,6 +899,9 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state) · 52 unmodified lines
904899 save->skpwm0 = sa1111_readl(base + SA1111_SKPWM0);
905900 save->skpwm1 = sa1111_readl(base + SA1111_SKPWM1);
906901
902+ sa1111_writel(0, sachip->base + SA1111_SKPWM0);
903+ sa1111_writel(0, sachip->base + SA1111_SKPWM1);
904+
907905 base = sachip->base + SA1111_INTC;
908906 save->intpol0 = sa1111_readl(base + SA1111_INTPOL0);
909907 save->intpol1 = sa1111_readl(base + SA1111_INTPOL1);
@@ -919,13 +917,15 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state) · 9 unmodified lines
919917 */
920918 val = sa1111_readl(sachip->base + SA1111_SKCR);
921919 sa1111_writel(val | SKCR_SLEEP, sachip->base + SA1111_SKCR);
922− sa1111_writel(0, sachip->base + SA1111_SKPWM0);
923− sa1111_writel(0, sachip->base + SA1111_SKPWM1);
924920
925921 clk_disable(sachip->clk);
926922
927923 spin_unlock_irqrestore(&sachip->lock, flags);
928924
925+#ifdef CONFIG_ARCH_SA1100
926+ sa1110_mb_disable();
927+#endif
928+
929929 return 0;
930930 }
931931
@@ -966,6 +966,11 @@ static int sa1111_resume(struct platform_device *dev) · 34 unmodified lines
966966 */
967967 sa1111_wake(sachip);
968968
969+#ifdef CONFIG_ARCH_SA1100
970+ /* Enable the memory bus request/grant signals */
971+ sa1110_mb_enable();
972+#endif
973+
969974 /*
970975 * Only lock for write ops. Also, sa1111_wake must be called with
971976 * released spinlock!
@@ -1053,6 +1058,7 @@ static struct platform_driver sa1111_device_driver = { · 81 unmodified lines
10531058 .resume = sa1111_resume,
10541059 .driver = {
10551060 .name = "sa1111",
1061+ .owner = THIS_MODULE,
10561062 },
10571063 };
10581064
@@ -1238,16 +1244,23 @@ EXPORT_SYMBOL(sa1111_set_sleep_io); · 179 unmodified lines
12381244 * sa1111_enable_device - enable an on-chip SA1111 function block
12391245 * @sadev: SA1111 function block device to enable
12401246 */
1241−void sa1111_enable_device(struct sa1111_dev *sadev)
1247+int sa1111_enable_device(struct sa1111_dev *sadev)
12421248 {
12431249 struct sa1111 *sachip = sa1111_chip_driver(sadev);
12441250 unsigned long flags;
12451251 unsigned int val;
1252+ int ret = 0;
12461253
1247− spin_lock_irqsave(&sachip->lock, flags);
1248− val = sa1111_readl(sachip->base + SA1111_SKPCR);
1249− sa1111_writel(val | sadev->skpcr_mask, sachip->base + SA1111_SKPCR);
1250− spin_unlock_irqrestore(&sachip->lock, flags);
1254+ if (sachip->pdata && sachip->pdata->enable)
1255+ ret = sachip->pdata->enable(sachip->pdata->data, sadev->devid);
1256+
1257+ if (ret == 0) {
1258+ spin_lock_irqsave(&sachip->lock, flags);
1259+ val = sa1111_readl(sachip->base + SA1111_SKPCR);
1260+ sa1111_writel(val | sadev->skpcr_mask, sachip->base + SA1111_SKPCR);
1261+ spin_unlock_irqrestore(&sachip->lock, flags);
1262+ }
1263+ return ret;
12511264 }
12521265 EXPORT_SYMBOL(sa1111_enable_device);
12531266
@@ -1265,6 +1278,9 @@ void sa1111_disable_device(struct sa1111_dev *sadev) · 11 unmodified lines
12651278 val = sa1111_readl(sachip->base + SA1111_SKPCR);
12661279 sa1111_writel(val & ~sadev->skpcr_mask, sachip->base + SA1111_SKPCR);
12671280 spin_unlock_irqrestore(&sachip->lock, flags);
1281+
1282+ if (sachip->pdata && sachip->pdata->disable)
1283+ sachip->pdata->disable(sachip->pdata->data, sadev->devid);
12681284 }
12691285 EXPORT_SYMBOL(sa1111_disable_device);
12701286
@@ -1279,7 +1295,7 @@ static int sa1111_match(struct device *_dev, struct device_driver *_drv) · 8 unmodified lines
12791295 struct sa1111_dev *dev = SA1111_DEV(_dev);
12801296 struct sa1111_driver *drv = SA1111_DRV(_drv);
12811297
1282− return dev->devid == drv->devid;
1298+ return dev->devid & drv->devid;
12831299 }
12841300
12851301 static int sa1111_bus_suspend(struct device *dev, pm_message_t state)
@@ -1304,6 +1320,14 @@ static int sa1111_bus_resume(struct device *dev) · 18 unmodified lines
13041320 return ret;
13051321 }
13061322
1323+static void sa1111_bus_shutdown(struct device *dev)
1324+{
1325+ struct sa1111_driver *drv = SA1111_DRV(dev->driver);
1326+
1327+ if (drv && drv->shutdown)
1328+ drv->shutdown(SA1111_DEV(dev));
1329+}
1330+
13071331 static int sa1111_bus_probe(struct device *dev)
13081332 {
13091333 struct sa1111_dev *sadev = SA1111_DEV(dev);
@@ -1333,6 +1357,7 @@ struct bus_type sa1111_bus_type = { · 23 unmodified lines
13331357 .remove = sa1111_bus_remove,
13341358 .suspend = sa1111_bus_suspend,
13351359 .resume = sa1111_bus_resume,
1360+ .shutdown = sa1111_bus_shutdown,
13361361 };
13371362 EXPORT_SYMBOL(sa1111_bus_type);
13381363
@@ -1349,9 +1374,70 @@ void sa1111_driver_unregister(struct sa1111_driver *driver) · 10 unmodified lines
13491374 }
13501375 EXPORT_SYMBOL(sa1111_driver_unregister);
13511376
1377+#ifdef CONFIG_DMABOUNCE
1378+/*
1379+ * According to the "Intel StrongARM SA-1111 Microprocessor Companion
1380+ * Chip Specification Update" (June 2000), erratum #7, there is a
1381+ * significant bug in the SA1111 SDRAM shared memory controller. If
1382+ * an access to a region of memory above 1MB relative to the bank base,
1383+ * it is important that address bit 10 _NOT_ be asserted. Depending
1384+ * on the configuration of the RAM, bit 10 may correspond to one
1385+ * of several different (processor-relative) address bits.
1386+ *
1387+ * This routine only identifies whether or not a given DMA address
1388+ * is susceptible to the bug.
1389+ *
1390+ * This should only get called for sa1111_device types due to the
1391+ * way we configure our device dma_masks.
1392+ */
1393+static int sa1111_needs_bounce(struct device *dev, dma_addr_t addr, size_t size)
1394+{
1395+ /*
1396+ * Section 4.6 of the "Intel StrongARM SA-1111 Development Module
1397+ * User's Guide" mentions that jumpers R51 and R52 control the
1398+ * target of SA-1111 DMA (either SDRAM bank 0 on Assabet, or
1399+ * SDRAM bank 1 on Neponset). The default configuration selects
1400+ * Assabet, so any address in bank 1 is necessarily invalid.
1401+ */
1402+ return (machine_is_assabet() || machine_is_pfs168()) &&
1403+ (addr >= 0xc8000000 || (addr + size) >= 0xc8000000);
1404+}
1405+
1406+static int sa1111_notifier_call(struct notifier_block *n, unsigned long action,
1407+ void *data)
1408+{
1409+ struct sa1111_dev *dev = SA1111_DEV(data);
1410+
1411+ switch (action) {
1412+ case BUS_NOTIFY_ADD_DEVICE:
1413+ if (dev->dev.dma_mask && dev->dma_mask < 0xffffffffUL) {
1414+ int ret = dmabounce_register_dev(&dev->dev, 1024, 4096,
1415+ sa1111_needs_bounce);
1416+ if (ret)
1417+ dev_err(&dev->dev, "failed to register with dmabounce: %d\n", ret);
1418+ }
1419+ break;
1420+
1421+ case BUS_NOTIFY_DEL_DEVICE:
1422+ if (dev->dev.dma_mask && dev->dma_mask < 0xffffffffUL)
1423+ dmabounce_unregister_dev(&dev->dev);
1424+ break;
1425+ }
1426+ return NOTIFY_OK;
1427+}
1428+
1429+static struct notifier_block sa1111_bus_notifier = {
1430+ .notifier_call = sa1111_notifier_call,
1431+};
1432+#endif
1433+
13521434 static int __init sa1111_init(void)
13531435 {
13541436 int ret = bus_register(&sa1111_bus_type);
1437+#ifdef CONFIG_DMABOUNCE
1438+ if (ret == 0)
1439+ bus_register_notifier(&sa1111_bus_type, &sa1111_bus_notifier);
1440+#endif
13551441 if (ret == 0)
13561442 platform_driver_register(&sa1111_device_driver);
13571443 return ret;
@@ -1360,6 +1446,9 @@ static int __init sa1111_init(void) · 2 unmodified lines
13601446 static void __exit sa1111_exit(void)
13611447 {
13621448 platform_driver_unregister(&sa1111_device_driver);
1449+#ifdef CONFIG_DMABOUNCE
1450+ bus_unregister_notifier(&sa1111_bus_type, &sa1111_bus_notifier);
1451+#endif
13631452 bus_unregister(&sa1111_bus_type);
13641453 }
13651454
arch/arm/common/timer-sp.c+16−1
@@ -26,6 +26,7 @@ · 25 unmodified lines
2626 #include <linux/irq.h>
2727 #include <linux/io.h>
2828
29+#include <asm/sched_clock.h>
2930 #include <asm/hardware/arm_timer.h>
3031
3132 static long __init sp804_get_clock_rate(const char *name)
@@ -67,7 +68,16 @@ static long __init sp804_get_clock_rate(const char *name) · 35 unmodified lines
6768 return rate;
6869 }
6970
70−void __init sp804_clocksource_init(void __iomem *base, const char *name)
71+static void __iomem *sched_clock_base;
72+
73+static u32 sp804_read(void)
74+{
75+ return ~readl_relaxed(sched_clock_base + TIMER_VALUE);
76+}
77+
78+void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base,
79+ const char *name,
80+ int use_sched_clock)
7181 {
7282 long rate = sp804_get_clock_rate(name);
7383
@@ -83,6 +93,11 @@ void __init sp804_clocksource_init(void __iomem *base, const char *name) · 9 unmodified lines
8393
8494 clocksource_mmio_init(base + TIMER_VALUE, name,
8595 rate, 200, 32, clocksource_mmio_readl_down);
96+
97+ if (use_sched_clock) {
98+ sched_clock_base = base;
99+ setup_sched_clock(sp804_read, 32, rate);
100+ }
86101 }
87102
88103
arch/arm/common/via82c505.c+0−1
@@ -6,7 +6,6 @@ · 5 unmodified lines
66 #include <linux/ioport.h>
77 #include <linux/io.h>
88
9−#include <asm/system.h>
109
1110 #include <asm/mach/pci.h>
1211
arch/arm/common/vic.c+4−5
@@ -427,19 +427,18 @@ int __init vic_of_init(struct device_node *node, struct device_node *parent) · 426 unmodified lines
427427
428428 /*
429429 * Handle each interrupt in a single VIC. Returns non-zero if we've
430− * handled at least one interrupt. This does a single read of the
431− * status register and handles all interrupts in order from LSB first.
430+ * handled at least one interrupt. This reads the status register
431+ * before handling each interrupt, which is necessary given that
432+ * handle_IRQ may briefly re-enable interrupts for soft IRQ handling.
432433 */
433434 static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)
434435 {
435436 u32 stat, irq;
436437 int handled = 0;
437438
438− stat = readl_relaxed(vic->base + VIC_IRQ_STATUS);
439− while (stat) {
439+ while ((stat = readl_relaxed(vic->base + VIC_IRQ_STATUS))) {
440440 irq = ffs(stat) - 1;
441441 handle_IRQ(irq_find_mapping(vic->domain, irq), regs);
442− stat &= ~(1 << irq);
443442 handled = 1;
444443 }
445444
arch/arm/configs/at91cap9_defconfig+0−108
@@ -1,108 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−# CONFIG_LOCALVERSION_AUTO is not set
3−# CONFIG_SWAP is not set
4−CONFIG_SYSVIPC=y
5−CONFIG_LOG_BUF_SHIFT=14
6−CONFIG_BLK_DEV_INITRD=y
7−CONFIG_SLAB=y
8−CONFIG_MODULES=y
9−CONFIG_MODULE_UNLOAD=y
10−# CONFIG_BLK_DEV_BSG is not set
11−# CONFIG_IOSCHED_DEADLINE is not set
12−# CONFIG_IOSCHED_CFQ is not set
13−CONFIG_ARCH_AT91=y
14−CONFIG_ARCH_AT91CAP9=y
15−CONFIG_MACH_AT91CAP9ADK=y
16−CONFIG_MTD_AT91_DATAFLASH_CARD=y
17−CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
18−# CONFIG_ARM_THUMB is not set
19−CONFIG_AEABI=y
20−CONFIG_LEDS=y
21−CONFIG_LEDS_CPU=y
22−CONFIG_ZBOOT_ROM_TEXT=0x0
23−CONFIG_ZBOOT_ROM_BSS=0x0
24−CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/ram0 rw"
25−CONFIG_FPE_NWFPE=y
26−CONFIG_NET=y
27−CONFIG_PACKET=y
28−CONFIG_UNIX=y
29−CONFIG_INET=y
30−CONFIG_IP_PNP=y
31−CONFIG_IP_PNP_BOOTP=y
32−CONFIG_IP_PNP_RARP=y
33−# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
34−# CONFIG_INET_XFRM_MODE_TUNNEL is not set
35−# CONFIG_INET_XFRM_MODE_BEET is not set
36−# CONFIG_INET_LRO is not set
37−# CONFIG_INET_DIAG is not set
38−# CONFIG_IPV6 is not set
39−CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
40−CONFIG_MTD=y
41−CONFIG_MTD_CMDLINE_PARTS=y
42−CONFIG_MTD_CHAR=y
43−CONFIG_MTD_BLOCK=y
44−CONFIG_MTD_CFI=y
45−CONFIG_MTD_JEDECPROBE=y
46−CONFIG_MTD_CFI_AMDSTD=y
47−CONFIG_MTD_PHYSMAP=y
48−CONFIG_MTD_DATAFLASH=y
49−CONFIG_MTD_NAND=y
50−CONFIG_MTD_NAND_ATMEL=y
51−CONFIG_BLK_DEV_LOOP=y
52−CONFIG_BLK_DEV_RAM=y
53−CONFIG_BLK_DEV_RAM_SIZE=8192
54−CONFIG_SCSI=y
55−CONFIG_BLK_DEV_SD=y
56−CONFIG_SCSI_MULTI_LUN=y
57−CONFIG_NETDEVICES=y
58−CONFIG_MII=y
59−CONFIG_MACB=y
60−# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
61−CONFIG_INPUT_EVDEV=y
62−# CONFIG_INPUT_KEYBOARD is not set
63−# CONFIG_INPUT_MOUSE is not set
64−CONFIG_INPUT_TOUCHSCREEN=y
65−CONFIG_TOUCHSCREEN_ADS7846=y
66−# CONFIG_SERIO is not set
67−CONFIG_SERIAL_ATMEL=y
68−CONFIG_SERIAL_ATMEL_CONSOLE=y
69−CONFIG_HW_RANDOM=y
70−CONFIG_I2C=y
71−CONFIG_I2C_CHARDEV=y
72−CONFIG_SPI=y
73−CONFIG_SPI_ATMEL=y
74−# CONFIG_HWMON is not set
75−CONFIG_WATCHDOG=y
76−CONFIG_WATCHDOG_NOWAYOUT=y
77−CONFIG_FB=y
78−CONFIG_FB_ATMEL=y
79−CONFIG_LOGO=y
80−# CONFIG_LOGO_LINUX_MONO is not set
81−# CONFIG_LOGO_LINUX_CLUT224 is not set
82−# CONFIG_USB_HID is not set
83−CONFIG_USB=y
84−CONFIG_USB_DEVICEFS=y
85−CONFIG_USB_MON=y
86−CONFIG_USB_OHCI_HCD=y
87−CONFIG_USB_STORAGE=y
88−CONFIG_USB_GADGET=y
89−CONFIG_USB_ETH=m
90−CONFIG_USB_FILE_STORAGE=m
91−CONFIG_MMC=y
92−CONFIG_MMC_AT91=m
93−CONFIG_RTC_CLASS=y
94−CONFIG_RTC_DRV_AT91SAM9=y
95−CONFIG_EXT2_FS=y
96−CONFIG_VFAT_FS=y
97−CONFIG_TMPFS=y
98−CONFIG_JFFS2_FS=y
99−CONFIG_CRAMFS=y
100−CONFIG_NFS_FS=y
101−CONFIG_ROOT_NFS=y
102−CONFIG_NLS_CODEPAGE_437=y
103−CONFIG_NLS_CODEPAGE_850=y
104−CONFIG_NLS_ISO8859_1=y
105−CONFIG_DEBUG_FS=y
106−CONFIG_DEBUG_KERNEL=y
107−CONFIG_DEBUG_INFO=y
108−CONFIG_DEBUG_USER=y
arch/arm/configs/at91sam9g20_defconfig+3−0
@@ -74,6 +74,8 @@ CONFIG_LEGACY_PTY_COUNT=16 · 73 unmodified lines
7474 CONFIG_SERIAL_ATMEL=y
7575 CONFIG_SERIAL_ATMEL_CONSOLE=y
7676 CONFIG_HW_RANDOM=y
77+CONFIG_I2C=y
78+CONFIG_I2C_GPIO=y
7779 CONFIG_SPI=y
7880 CONFIG_SPI_ATMEL=y
7981 CONFIG_SPI_SPIDEV=y
@@ -105,6 +107,7 @@ CONFIG_LEDS_TRIGGERS=y · 25 unmodified lines
105107 CONFIG_LEDS_TRIGGER_TIMER=y
106108 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
107109 CONFIG_RTC_CLASS=y
110+CONFIG_RTC_DRV_RV3029C2=y
108111 CONFIG_RTC_DRV_AT91SAM9=y
109112 CONFIG_EXT2_FS=y
110113 CONFIG_MSDOS_FS=y
arch/arm/configs/imx_v4_v5_defconfig+19−0
@@ -45,6 +45,7 @@ CONFIG_FPE_NWFPE=y · 44 unmodified lines
4545 CONFIG_FPE_NWFPE_XP=y
4646 CONFIG_PM_DEBUG=y
4747 CONFIG_NET=y
48+CONFIG_SMSC911X=y
4849 CONFIG_PACKET=y
4950 CONFIG_UNIX=y
5051 CONFIG_INET=y
@@ -68,6 +69,7 @@ CONFIG_MTD_CFI=y · 17 unmodified lines
6869 CONFIG_MTD_CFI_ADV_OPTIONS=y
6970 CONFIG_MTD_CFI_GEOMETRY=y
7071 # CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
72+CONFIG_MTD_MAP_BANK_WIDTH_4=y
7173 # CONFIG_MTD_CFI_I2 is not set
7274 CONFIG_MTD_CFI_INTELEXT=y
7375 CONFIG_MTD_PHYSMAP=y
@@ -78,6 +80,8 @@ CONFIG_MISC_DEVICES=y · 4 unmodified lines
7880 CONFIG_EEPROM_AT24=y
7981 CONFIG_EEPROM_AT25=y
8082 CONFIG_NETDEVICES=y
83+CONFIG_CS89x0=y
84+CONFIG_CS89x0_PLATFORM=y
8185 CONFIG_DM9000=y
8286 CONFIG_SMC91X=y
8387 CONFIG_SMC911X=y
@@ -115,6 +119,21 @@ CONFIG_FB_IMX=y · 31 unmodified lines
115119 CONFIG_BACKLIGHT_LCD_SUPPORT=y
116120 CONFIG_LCD_CLASS_DEVICE=y
117121 CONFIG_BACKLIGHT_CLASS_DEVICE=y
122+CONFIG_LCD_L4F00242T03=y
123+CONFIG_MEDIA_SUPPORT=y
124+CONFIG_VIDEO_DEV=y
125+CONFIG_VIDEO_V4L2_COMMON=y
126+CONFIG_VIDEO_MEDIA=y
127+CONFIG_VIDEO_V4L2=y
128+CONFIG_VIDEOBUF_GEN=y
129+CONFIG_VIDEOBUF_DMA_CONTIG=y
130+CONFIG_VIDEOBUF2_CORE=y
131+CONFIG_VIDEO_CAPTURE_DRIVERS=y
132+CONFIG_V4L_PLATFORM_DRIVERS=y
133+CONFIG_SOC_CAMERA=y
134+CONFIG_SOC_CAMERA_OV2640=y
135+CONFIG_VIDEO_MX2_HOSTSUPPORT=y
136+CONFIG_VIDEO_MX2=y
118137 CONFIG_BACKLIGHT_PWM=y
119138 CONFIG_FRAMEBUFFER_CONSOLE=y
120139 CONFIG_FONTS=y
arch/arm/configs/imx_v6_v7_defconfig+36−3
@@ -5,6 +5,7 @@ CONFIG_SYSVIPC=y · 4 unmodified lines
55 CONFIG_LOG_BUF_SHIFT=18
66 CONFIG_CGROUPS=y
77 CONFIG_RELAY=y
8+CONFIG_BLK_DEV_INITRD=y
89 CONFIG_EXPERT=y
910 # CONFIG_SLUB_DEBUG is not set
1011 # CONFIG_COMPAT_BRK is not set
@@ -12,7 +13,6 @@ CONFIG_MODULES=y · 1 unmodified line
1213 CONFIG_MODULE_UNLOAD=y
1314 CONFIG_MODVERSIONS=y
1415 CONFIG_MODULE_SRCVERSION_ALL=y
15−# CONFIG_LBDAF is not set
1616 # CONFIG_BLK_DEV_BSG is not set
1717 CONFIG_ARCH_MXC=y
1818 CONFIG_MACH_MX31LILLY=y
@@ -26,7 +26,6 @@ CONFIG_MACH_ARMADILLO5X0=y · 7 unmodified lines
2626 CONFIG_MACH_KZM_ARM11_01=y
2727 CONFIG_MACH_PCM043=y
2828 CONFIG_MACH_MX35_3DS=y
29−CONFIG_MACH_EUKREA_CPUIMX35=y
3029 CONFIG_MACH_VPR200=y
3130 CONFIG_MACH_IMX51_DT=y
3231 CONFIG_MACH_MX51_3DS=y
@@ -82,8 +81,9 @@ CONFIG_PATA_IMX=y · 49 unmodified lines
8281 CONFIG_NETDEVICES=y
8382 # CONFIG_NET_VENDOR_BROADCOM is not set
8483 # CONFIG_NET_VENDOR_CHELSIO is not set
84+CONFIG_CS89x0=y
85+CONFIG_CS89x0_PLATFORM=y
8586 # CONFIG_NET_VENDOR_FARADAY is not set
86−CONFIG_FEC=y
8787 # CONFIG_NET_VENDOR_INTEL is not set
8888 # CONFIG_NET_VENDOR_MARVELL is not set
8989 # CONFIG_NET_VENDOR_MICREL is not set
@@ -126,7 +126,40 @@ CONFIG_WATCHDOG=y · 36 unmodified lines
126126 CONFIG_IMX2_WDT=y
127127 CONFIG_MFD_MC13XXX=y
128128 CONFIG_REGULATOR=y
129+CONFIG_REGULATOR_FIXED_VOLTAGE=y
130+CONFIG_REGULATOR_MC13783=y
129131 CONFIG_REGULATOR_MC13892=y
132+CONFIG_MEDIA_SUPPORT=y
133+CONFIG_VIDEO_V4L2=y
134+CONFIG_VIDEO_DEV=y
135+CONFIG_VIDEO_V4L2_COMMON=y
136+CONFIG_VIDEOBUF_GEN=y
137+CONFIG_VIDEOBUF2_CORE=y
138+CONFIG_VIDEOBUF2_MEMOPS=y
139+CONFIG_VIDEOBUF2_DMA_CONTIG=y
140+CONFIG_VIDEO_CAPTURE_DRIVERS=y
141+CONFIG_V4L_PLATFORM_DRIVERS=y
142+CONFIG_SOC_CAMERA=y
143+CONFIG_SOC_CAMERA_OV2640=y
144+CONFIG_MX3_VIDEO=y
145+CONFIG_VIDEO_MX3=y
146+CONFIG_FB=y
147+CONFIG_FB_MX3=y
148+CONFIG_BACKLIGHT_LCD_SUPPORT=y
149+CONFIG_LCD_CLASS_DEVICE=y
150+CONFIG_LCD_L4F00242T03=y
151+CONFIG_BACKLIGHT_CLASS_DEVICE=y
152+CONFIG_BACKLIGHT_GENERIC=y
153+CONFIG_DUMMY_CONSOLE=y
154+CONFIG_FRAMEBUFFER_CONSOLE=y
155+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
156+CONFIG_FONTS=y
157+CONFIG_FONT_8x8=y
158+CONFIG_FONT_8x16=y
159+CONFIG_LOGO=y
160+CONFIG_LOGO_LINUX_MONO=y
161+CONFIG_LOGO_LINUX_VGA16=y
162+CONFIG_LOGO_LINUX_CLUT224=y
130163 CONFIG_USB=y
131164 CONFIG_USB_EHCI_HCD=y
132165 CONFIG_USB_EHCI_MXC=y
arch/arm/configs/integrator_defconfig+8−0
@@ -57,18 +57,24 @@ CONFIG_NETDEVICES=y · 56 unmodified lines
5757 CONFIG_NET_ETHERNET=y
5858 CONFIG_NET_PCI=y
5959 CONFIG_E100=y
60+CONFIG_SMC91X=y
6061 # CONFIG_KEYBOARD_ATKBD is not set
6162 # CONFIG_SERIO_SERPORT is not set
6263 CONFIG_SERIAL_AMBA_PL010=y
6364 CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
6465 CONFIG_FB=y
6566 CONFIG_FB_MODE_HELPERS=y
67+CONFIG_FB_ARMCLCD=y
6668 CONFIG_FB_MATROX=y
6769 CONFIG_FB_MATROX_MILLENIUM=y
6870 CONFIG_FB_MATROX_MYSTIQUE=y
71+# CONFIG_VGA_CONSOLE is not set
72+CONFIG_MMC=y
73+CONFIG_MMC_ARMMMCI=y
6974 CONFIG_RTC_CLASS=y
7075 CONFIG_RTC_DRV_PL030=y
7176 CONFIG_EXT2_FS=y
77+CONFIG_VFAT_FS=y
7278 CONFIG_TMPFS=y
7379 CONFIG_JFFS2_FS=y
7480 CONFIG_CRAMFS=y
@@ -78,5 +84,7 @@ CONFIG_ROOT_NFS=y · 3 unmodified lines
7884 CONFIG_NFSD=y
7985 CONFIG_NFSD_V3=y
8086 CONFIG_PARTITION_ADVANCED=y
87+CONFIG_NLS_CODEPAGE_437=y
88+CONFIG_NLS_ISO8859_1=y
8189 CONFIG_MAGIC_SYSRQ=y
8290 CONFIG_DEBUG_KERNEL=y
arch/arm/configs/lpc32xx_defconfig+145−0
@@ -0,0 +1,145 @@
1+CONFIG_EXPERIMENTAL=y
2+CONFIG_SYSVIPC=y
3+CONFIG_IKCONFIG=y
4+CONFIG_IKCONFIG_PROC=y
5+CONFIG_LOG_BUF_SHIFT=14
6+CONFIG_SYSFS_DEPRECATED=y
7+CONFIG_SYSFS_DEPRECATED_V2=y
8+CONFIG_BLK_DEV_INITRD=y
9+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
10+CONFIG_SYSCTL_SYSCALL=y
11+CONFIG_EMBEDDED=y
12+CONFIG_SLAB=y
13+CONFIG_MODULES=y
14+CONFIG_MODULE_UNLOAD=y
15+# CONFIG_BLK_DEV_BSG is not set
16+CONFIG_PARTITION_ADVANCED=y
17+CONFIG_ARCH_LPC32XX=y
18+CONFIG_NO_HZ=y
19+CONFIG_HIGH_RES_TIMERS=y
20+CONFIG_PREEMPT=y
21+CONFIG_AEABI=y
22+CONFIG_ZBOOT_ROM_TEXT=0x0
23+CONFIG_ZBOOT_ROM_BSS=0x0
24+CONFIG_CMDLINE="console=ttyS0,115200n81 root=/dev/ram0"
25+CONFIG_CPU_IDLE=y
26+CONFIG_FPE_NWFPE=y
27+CONFIG_VFP=y
28+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
29+CONFIG_BINFMT_AOUT=y
30+CONFIG_NET=y
31+CONFIG_PACKET=y
32+CONFIG_UNIX=y
33+CONFIG_INET=y
34+CONFIG_IP_MULTICAST=y
35+CONFIG_IP_PNP=y
36+CONFIG_IP_PNP_DHCP=y
37+CONFIG_IP_PNP_BOOTP=y
38+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
39+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
40+# CONFIG_INET_XFRM_MODE_BEET is not set
41+# CONFIG_INET_LRO is not set
42+# CONFIG_INET_DIAG is not set
43+# CONFIG_IPV6 is not set
44+# CONFIG_WIRELESS is not set
45+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
46+# CONFIG_FW_LOADER is not set
47+CONFIG_MTD=y
48+CONFIG_MTD_CMDLINE_PARTS=y
49+CONFIG_MTD_CHAR=y
50+CONFIG_MTD_BLOCK=y
51+CONFIG_MTD_NAND=y
52+CONFIG_MTD_NAND_MUSEUM_IDS=y
53+CONFIG_BLK_DEV_LOOP=y
54+CONFIG_BLK_DEV_CRYPTOLOOP=y
55+CONFIG_BLK_DEV_RAM=y
56+CONFIG_BLK_DEV_RAM_COUNT=1
57+CONFIG_BLK_DEV_RAM_SIZE=16384
58+CONFIG_MISC_DEVICES=y
59+CONFIG_EEPROM_AT25=y
60+CONFIG_SCSI=y
61+CONFIG_BLK_DEV_SD=y
62+CONFIG_NETDEVICES=y
63+CONFIG_MII=y
64+CONFIG_PHYLIB=y
65+CONFIG_SMSC_PHY=y
66+# CONFIG_WLAN is not set
67+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
68+CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
69+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
70+CONFIG_INPUT_EVDEV=y
71+# CONFIG_INPUT_MOUSE is not set
72+CONFIG_INPUT_TOUCHSCREEN=y
73+CONFIG_TOUCHSCREEN_LPC32XX=y
74+# CONFIG_LEGACY_PTYS is not set
75+CONFIG_SERIAL_8250=y
76+CONFIG_SERIAL_8250_CONSOLE=y
77+# CONFIG_HW_RANDOM is not set
78+CONFIG_I2C=y
79+CONFIG_I2C_CHARDEV=y
80+CONFIG_I2C_PNX=y
81+CONFIG_SPI=y
82+CONFIG_SPI_PL022=y
83+CONFIG_GPIO_SYSFS=y
84+# CONFIG_HWMON is not set
85+CONFIG_WATCHDOG=y
86+CONFIG_PNX4008_WATCHDOG=y
87+CONFIG_FB=y
88+CONFIG_FB_ARMCLCD=y
89+CONFIG_FRAMEBUFFER_CONSOLE=y
90+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
91+CONFIG_LOGO=y
92+# CONFIG_LOGO_LINUX_MONO is not set
93+# CONFIG_LOGO_LINUX_VGA16 is not set
94+CONFIG_SOUND=y
95+CONFIG_SND=y
96+CONFIG_SND_SEQUENCER=y
97+CONFIG_SND_MIXER_OSS=y
98+CONFIG_SND_PCM_OSS=y
99+CONFIG_SND_SEQUENCER_OSS=y
100+CONFIG_SND_DYNAMIC_MINORS=y
101+# CONFIG_SND_VERBOSE_PROCFS is not set
102+# CONFIG_SND_DRIVERS is not set
103+# CONFIG_SND_ARM is not set
104+# CONFIG_SND_SPI is not set
105+CONFIG_SND_SOC=y
106+# CONFIG_HID_SUPPORT is not set
107+CONFIG_USB=y
108+CONFIG_USB_STORAGE=y
109+CONFIG_USB_LIBUSUAL=y
110+CONFIG_MMC=y
111+# CONFIG_MMC_BLOCK_BOUNCE is not set
112+CONFIG_MMC_ARMMMCI=y
113+CONFIG_NEW_LEDS=y
114+CONFIG_LEDS_CLASS=y
115+CONFIG_LEDS_GPIO=y
116+CONFIG_LEDS_TRIGGERS=y
117+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
118+CONFIG_RTC_CLASS=y
119+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
120+CONFIG_RTC_DRV_LPC32XX=y
121+CONFIG_EXT2_FS=y
122+CONFIG_AUTOFS4_FS=y
123+CONFIG_MSDOS_FS=y
124+CONFIG_VFAT_FS=y
125+CONFIG_TMPFS=y
126+CONFIG_JFFS2_FS=y
127+CONFIG_JFFS2_FS_WBUF_VERIFY=y
128+CONFIG_CRAMFS=y
129+CONFIG_NFS_FS=y
130+CONFIG_NFS_V3=y
131+CONFIG_ROOT_NFS=y
132+CONFIG_NLS_CODEPAGE_437=y
133+CONFIG_NLS_ASCII=y
134+CONFIG_NLS_ISO8859_1=y
135+CONFIG_NLS_UTF8=y
136+# CONFIG_SCHED_DEBUG is not set
137+# CONFIG_DEBUG_PREEMPT is not set
138+CONFIG_DEBUG_INFO=y
139+# CONFIG_FTRACE is not set
140+# CONFIG_ARM_UNWIND is not set
141+CONFIG_DEBUG_LL=y
142+CONFIG_EARLY_PRINTK=y
143+CONFIG_CRYPTO_ANSI_CPRNG=y
144+# CONFIG_CRYPTO_HW is not set
145+CONFIG_CRC_CCITT=y
arch/arm/configs/magician_defconfig+1−1
@@ -101,7 +101,7 @@ CONFIG_MFD_ASIC3=y · 100 unmodified lines
101101 CONFIG_HTC_EGPIO=y
102102 CONFIG_HTC_PASIC3=y
103103 CONFIG_REGULATOR=y
104−CONFIG_REGULATOR_BQ24022=y
104+CONFIG_REGULATOR_GPIO=y
105105 CONFIG_FB=y
106106 CONFIG_FB_PXA=y
107107 CONFIG_FB_PXA_OVERLAY=y
arch/arm/configs/mini2440_defconfig+1−1
@@ -13,7 +13,7 @@ CONFIG_MODULE_UNLOAD=y · 12 unmodified lines
1313 CONFIG_MODULE_FORCE_UNLOAD=y
1414 # CONFIG_BLK_DEV_BSG is not set
1515 CONFIG_BLK_DEV_INTEGRITY=y
16−CONFIG_ARCH_S3C2410=y
16+CONFIG_ARCH_S3C24XX=y
1717 CONFIG_S3C_ADC=y
1818 CONFIG_S3C24XX_PWM=y
1919 CONFIG_MACH_MINI2440=y
arch/arm/configs/mxs_defconfig+17−3
@@ -77,10 +77,10 @@ CONFIG_DEVPTS_MULTIPLE_INSTANCES=y · 76 unmodified lines
7777 CONFIG_SERIAL_AMBA_PL011=y
7878 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
7979 # CONFIG_HW_RANDOM is not set
80−CONFIG_I2C=m
80+CONFIG_I2C=y
8181 # CONFIG_I2C_COMPAT is not set
82−CONFIG_I2C_CHARDEV=m
83−CONFIG_I2C_MXS=m
82+CONFIG_I2C_CHARDEV=y
83+CONFIG_I2C_MXS=y
8484 CONFIG_SPI=y
8585 CONFIG_SPI_GPIO=m
8686 CONFIG_DEBUG_GPIO=y
@@ -90,6 +90,20 @@ CONFIG_GPIO_SYSFS=y · 3 unmodified lines
9090 CONFIG_DISPLAY_SUPPORT=m
9191 # CONFIG_HID_SUPPORT is not set
9292 # CONFIG_USB_SUPPORT is not set
93+CONFIG_SOUND=y
94+CONFIG_SND=y
95+CONFIG_SND_TIMER=y
96+CONFIG_SND_PCM=y
97+CONFIG_SND_JACK=y
98+CONFIG_SND_DRIVERS=y
99+CONFIG_SND_ARM=y
100+CONFIG_SND_SOC=y
101+CONFIG_SND_MXS_SOC=y
102+CONFIG_SND_SOC_MXS_SGTL5000=y
103+CONFIG_SND_SOC_I2C_AND_SPI=y
104+CONFIG_SND_SOC_SGTL5000=y
105+CONFIG_REGULATOR=y
106+CONFIG_REGULATOR_FIXED_VOLTAGE=y
93107 CONFIG_MMC=y
94108 CONFIG_MMC_MXS=y
95109 CONFIG_RTC_CLASS=y
arch/arm/configs/s3c2410_defconfig+18−39
@@ -3,40 +3,47 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
33 CONFIG_IKCONFIG=m
44 CONFIG_IKCONFIG_PROC=y
55 CONFIG_LOG_BUF_SHIFT=16
6−CONFIG_SYSFS_DEPRECATED_V2=y
76 CONFIG_BLK_DEV_INITRD=y
87 CONFIG_SLAB=y
98 CONFIG_MODULES=y
109 CONFIG_MODULE_UNLOAD=y
1110 # CONFIG_BLK_DEV_BSG is not set
12−CONFIG_ARCH_S3C2410=y
11+CONFIG_PARTITION_ADVANCED=y
12+CONFIG_BSD_DISKLABEL=y
13+CONFIG_SOLARIS_X86_PARTITION=y
14+CONFIG_ARCH_S3C24XX=y
1315 CONFIG_S3C_BOOT_ERROR_RESET=y
1416 CONFIG_S3C_ADC=y
1517 CONFIG_S3C24XX_PWM=y
16−CONFIG_ARCH_SMDK2410=y
18+CONFIG_CPU_S3C2412=y
19+CONFIG_CPU_S3C2416=y
20+CONFIG_CPU_S3C2440=y
21+CONFIG_CPU_S3C2442=y
22+CONFIG_CPU_S3C2443=y
23+CONFIG_MACH_AML_M5900=y
24+CONFIG_ARCH_BAST=y
1725 CONFIG_ARCH_H1940=y
1826 CONFIG_MACH_N30=y
19−CONFIG_ARCH_BAST=y
2027 CONFIG_MACH_OTOM=y
21−CONFIG_MACH_AML_M5900=y
28+CONFIG_MACH_QT2410=y
29+CONFIG_ARCH_SMDK2410=y
2230 CONFIG_MACH_TCT_HAMMER=y
2331 CONFIG_MACH_VR1000=y
24−CONFIG_MACH_QT2410=y
2532 CONFIG_MACH_JIVE=y
2633 CONFIG_MACH_SMDK2412=y
2734 CONFIG_MACH_VSTMS=y
2835 CONFIG_MACH_SMDK2416=y
2936 CONFIG_MACH_ANUBIS=y
30−CONFIG_MACH_NEO1973_GTA02=y
37+CONFIG_MACH_AT2440EVB=y
38+CONFIG_MACH_MINI2440=y
39+CONFIG_MACH_NEXCODER_2440=y
3140 CONFIG_MACH_OSIRIS=y
3241 CONFIG_MACH_OSIRIS_DVS=m
3342 CONFIG_MACH_RX3715=y
3443 CONFIG_ARCH_S3C2440=y
35−CONFIG_MACH_NEXCODER_2440=y
36−CONFIG_SMDK2440_CPU2442=y
37−CONFIG_MACH_AT2440EVB=y
38−CONFIG_MACH_MINI2440=y
44+CONFIG_MACH_NEO1973_GTA02=y
3945 CONFIG_MACH_RX1950=y
46+CONFIG_SMDK2440_CPU2442=y
4047 CONFIG_MACH_SMDK2443=y
4148 # CONFIG_ARM_THUMB is not set
4249 CONFIG_ZBOOT_ROM_TEXT=0x0
@@ -45,7 +52,6 @@ CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0" · 2 unmodified lines
4552 CONFIG_FPE_NWFPE=y
4653 CONFIG_FPE_NWFPE_XP=y
4754 CONFIG_BINFMT_AOUT=y
48−CONFIG_PM=y
4955 CONFIG_APM_EMULATION=m
5056 CONFIG_NET=y
5157 CONFIG_PACKET=y
@@ -58,7 +64,6 @@ CONFIG_IP_PNP=y · 6 unmodified lines
5864 CONFIG_IP_PNP_DHCP=y
5965 CONFIG_IP_PNP_BOOTP=y
6066 CONFIG_NET_IPIP=m
61−CONFIG_NET_IPGRE=m
6267 CONFIG_INET_AH=m
6368 CONFIG_INET_ESP=m
6469 CONFIG_INET_IPCOMP=m
@@ -80,7 +85,6 @@ CONFIG_IPV6_MIP6=m · 15 unmodified lines
8085 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
8186 CONFIG_IPV6_TUNNEL=m
8287 CONFIG_NETFILTER=y
83−CONFIG_NETFILTER_NETLINK_QUEUE=m
8488 CONFIG_NF_CONNTRACK=m
8589 CONFIG_NF_CONNTRACK_EVENTS=y
8690 CONFIG_NF_CT_PROTO_DCCP=m
@@ -138,7 +142,6 @@ CONFIG_IP_VS=m · 51 unmodified lines
138142 CONFIG_NF_CONNTRACK_IPV4=m
139143 CONFIG_IP_NF_QUEUE=m
140144 CONFIG_IP_NF_IPTABLES=m
141−CONFIG_IP_NF_MATCH_ADDRTYPE=m
142145 CONFIG_IP_NF_MATCH_AH=m
143146 CONFIG_IP_NF_MATCH_ECN=m
144147 CONFIG_IP_NF_MATCH_TTL=m
@@ -150,7 +153,6 @@ CONFIG_NF_NAT=m · 5 unmodified lines
150153 CONFIG_IP_NF_TARGET_MASQUERADE=m
151154 CONFIG_IP_NF_TARGET_NETMAP=m
152155 CONFIG_IP_NF_TARGET_REDIRECT=m
153−CONFIG_NF_NAT_SNMP_BASIC=m
154156 CONFIG_IP_NF_MANGLE=m
155157 CONFIG_IP_NF_TARGET_CLUSTERIP=m
156158 CONFIG_IP_NF_TARGET_ECN=m
@@ -177,8 +179,6 @@ CONFIG_IP6_NF_TARGET_REJECT=m · 20 unmodified lines
177179 CONFIG_IP6_NF_MANGLE=m
178180 CONFIG_IP6_NF_RAW=m
179181 CONFIG_BT=m
180−CONFIG_BT_L2CAP=m
181−CONFIG_BT_SCO=m
182182 CONFIG_BT_RFCOMM=m
183183 CONFIG_BT_RFCOMM_TTY=y
184184 CONFIG_BT_BNEP=m
@@ -199,7 +199,6 @@ CONFIG_MAC80211_MESH=y · 14 unmodified lines
199199 CONFIG_MAC80211_LEDS=y
200200 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
201201 CONFIG_MTD=y
202−CONFIG_MTD_PARTITIONS=y
203202 CONFIG_MTD_REDBOOT_PARTS=y
204203 CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
205204 CONFIG_MTD_CMDLINE_PARTS=y
@@ -221,9 +220,6 @@ CONFIG_BLK_DEV_NBD=m · 15 unmodified lines
221220 CONFIG_BLK_DEV_UB=m
222221 CONFIG_BLK_DEV_RAM=y
223222 CONFIG_ATA_OVER_ETH=m
224−CONFIG_EEPROM_AT25=m
225−CONFIG_EEPROM_LEGACY=m
226−CONFIG_EEPROM_93CX6=m
227223 CONFIG_IDE=y
228224 CONFIG_BLK_DEV_IDECD=y
229225 CONFIG_BLK_DEV_IDETAPE=m
@@ -240,7 +236,6 @@ CONFIG_SCSI_MULTI_LUN=y · 10 unmodified lines
240236 CONFIG_SCSI_CONSTANTS=y
241237 CONFIG_SCSI_SCAN_ASYNC=y
242238 CONFIG_NETDEVICES=y
243−CONFIG_NET_ETHERNET=y
244239 CONFIG_DM9000=y
245240 CONFIG_INPUT_EVDEV=y
246241 CONFIG_MOUSE_APPLETOUCH=m
@@ -274,7 +269,6 @@ CONFIG_JOYSTICK_XPAD_LEDS=y · 27 unmodified lines
274269 CONFIG_INPUT_TOUCHSCREEN=y
275270 CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
276271 CONFIG_INPUT_MISC=y
277−CONFIG_INPUT_ATI_REMOTE=m
278272 CONFIG_INPUT_ATI_REMOTE2=m
279273 CONFIG_INPUT_KEYSPAN_REMOTE=m
280274 CONFIG_INPUT_POWERMATE=m
@@ -300,7 +294,6 @@ CONFIG_I2C_SIMTEC=y · 19 unmodified lines
300294 CONFIG_SPI=y
301295 CONFIG_SPI_GPIO=m
302296 CONFIG_SPI_S3C24XX=m
303−CONFIG_SPI_S3C24XX_GPIO=m
304297 CONFIG_SPI_SPIDEV=m
305298 CONFIG_SPI_TLE62X0=m
306299 CONFIG_SENSORS_LM75=m
@@ -315,7 +308,6 @@ CONFIG_FB_MODE_HELPERS=y · 8 unmodified lines
315308 CONFIG_FB_S3C2410=y
316309 CONFIG_FB_SM501=y
317310 CONFIG_BACKLIGHT_PWM=m
318−# CONFIG_VGA_CONSOLE is not set
319311 CONFIG_FRAMEBUFFER_CONSOLE=y
320312 CONFIG_SOUND=y
321313 CONFIG_SND=y
@@ -330,10 +322,6 @@ CONFIG_SND_VERBOSE_PRINTK=y · 8 unmodified lines
330322 CONFIG_SND_USB_AUDIO=m
331323 CONFIG_SND_USB_CAIAQ=m
332324 CONFIG_SND_SOC=y
333−CONFIG_SND_S3C24XX_SOC=y
334−CONFIG_SND_S3C24XX_SOC_JIVE_WM8750=m
335−CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710=m
336−CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650=m
337325 # CONFIG_USB_HID is not set
338326 CONFIG_USB=y
339327 CONFIG_USB_DEVICEFS=y
@@ -387,9 +375,7 @@ CONFIG_MMC_TEST=m · 47 unmodified lines
387375 CONFIG_MMC_SDHCI=m
388376 CONFIG_MMC_SPI=m
389377 CONFIG_MMC_S3C=y
390−CONFIG_LEDS_CLASS=m
391378 CONFIG_LEDS_S3C24XX=m
392−CONFIG_LEDS_H1940=m
393379 CONFIG_LEDS_PCA9532=m
394380 CONFIG_LEDS_GPIO=m
395381 CONFIG_LEDS_PCA955X=m
@@ -410,8 +396,6 @@ CONFIG_EXT3_FS=y · 14 unmodified lines
410396 CONFIG_EXT3_FS_POSIX_ACL=y
411397 CONFIG_EXT4_FS=m
412398 CONFIG_EXT4_FS_POSIX_ACL=y
413−CONFIG_INOTIFY=y
414−CONFIG_AUTOFS_FS=m
415399 CONFIG_AUTOFS4_FS=m
416400 CONFIG_FUSE_FS=m
417401 CONFIG_ISO9660_FS=y
@@ -436,9 +420,6 @@ CONFIG_NFSD=m · 18 unmodified lines
436420 CONFIG_NFSD_V3_ACL=y
437421 CONFIG_NFSD_V4=y
438422 CONFIG_CIFS=m
439−CONFIG_PARTITION_ADVANCED=y
440−CONFIG_BSD_DISKLABEL=y
441−CONFIG_SOLARIS_X86_PARTITION=y
442423 CONFIG_NLS_CODEPAGE_437=y
443424 CONFIG_NLS_CODEPAGE_737=m
444425 CONFIG_NLS_CODEPAGE_775=m
@@ -481,9 +462,7 @@ CONFIG_MAGIC_SYSRQ=y · 36 unmodified lines
481462 CONFIG_DEBUG_KERNEL=y
482463 CONFIG_DEBUG_MUTEXES=y
483464 CONFIG_DEBUG_INFO=y
484−# CONFIG_RCU_CPU_STALL_DETECTOR is not set
485465 CONFIG_SYSCTL_SYSCALL_CHECK=y
486466 CONFIG_DEBUG_USER=y
487−CONFIG_DEBUG_ERRORS=y
488467 CONFIG_DEBUG_LL=y
489468 # CONFIG_CRYPTO_ANSI_CPRNG is not set
arch/arm/configs/tct_hammer_defconfig+1−1
@@ -14,7 +14,7 @@ CONFIG_SLOB=y · 13 unmodified lines
1414 CONFIG_MODULES=y
1515 CONFIG_MODULE_UNLOAD=y
1616 # CONFIG_BLK_DEV_BSG is not set
17−CONFIG_ARCH_S3C2410=y
17+CONFIG_ARCH_S3C24XX=y
1818 CONFIG_MACH_TCT_HAMMER=y
1919 CONFIG_ZBOOT_ROM_TEXT=0x0
2020 CONFIG_ZBOOT_ROM_BSS=0x0
arch/arm/configs/tegra_defconfig+22−11
@@ -11,11 +11,14 @@ CONFIG_RT_GROUP_SCHED=y · 10 unmodified lines
1111 CONFIG_BLK_DEV_INITRD=y
1212 # CONFIG_ELF_CORE is not set
1313 CONFIG_EMBEDDED=y
14+CONFIG_PERF_EVENTS=y
1415 CONFIG_SLAB=y
1516 CONFIG_MODULES=y
1617 CONFIG_MODULE_UNLOAD=y
1718 CONFIG_MODULE_FORCE_UNLOAD=y
1819 # CONFIG_BLK_DEV_BSG is not set
20+CONFIG_PARTITION_ADVANCED=y
21+CONFIG_EFI_PARTITION=y
1922 # CONFIG_IOSCHED_DEADLINE is not set
2023 # CONFIG_IOSCHED_CFQ is not set
2124 CONFIG_ARCH_TEGRA=y
@@ -27,18 +30,20 @@ CONFIG_MACH_PAZ00=y · 5 unmodified lines
2730 CONFIG_MACH_TRIMSLICE=y
2831 CONFIG_MACH_WARIO=y
2932 CONFIG_MACH_VENTANA=y
30−CONFIG_TEGRA_DEBUG_UARTD=y
31−CONFIG_ARM_ERRATA_742230=y
33+CONFIG_TEGRA_EMC_SCALING_ENABLE=y
3234 CONFIG_NO_HZ=y
3335 CONFIG_HIGH_RES_TIMERS=y
3436 CONFIG_SMP=y
35−CONFIG_NR_CPUS=2
3637 CONFIG_PREEMPT=y
3738 CONFIG_AEABI=y
3839 # CONFIG_OABI_COMPAT is not set
3940 CONFIG_HIGHMEM=y
4041 CONFIG_ZBOOT_ROM_TEXT=0x0
4142 CONFIG_ZBOOT_ROM_BSS=0x0
43+CONFIG_AUTO_ZRELADDR=y
44+CONFIG_CPU_FREQ=y
45+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
46+CONFIG_CPU_IDLE=y
4247 CONFIG_VFP=y
4348 CONFIG_NET=y
4449 CONFIG_PACKET=y
@@ -68,7 +73,6 @@ CONFIG_IPV6_MULTIPLE_TABLES=y · 23 unmodified lines
6873 # CONFIG_FIRMWARE_IN_KERNEL is not set
6974 CONFIG_PROC_DEVICETREE=y
7075 CONFIG_BLK_DEV_LOOP=y
71−CONFIG_MISC_DEVICES=y
7276 CONFIG_AD525X_DPOT=y
7377 CONFIG_AD525X_DPOT_I2C=y
7478 CONFIG_ICS932S401=y
@@ -76,6 +80,7 @@ CONFIG_APDS9802ALS=y · 1 unmodified line
7680 CONFIG_ISL29003=y
7781 CONFIG_SCSI=y
7882 CONFIG_BLK_DEV_SD=y
83+CONFIG_BLK_DEV_SR=y
7984 # CONFIG_SCSI_LOWLEVEL is not set
8085 CONFIG_NETDEVICES=y
8186 CONFIG_DUMMY=y
@@ -85,8 +90,7 @@ CONFIG_USB_USBNET=y · 3 unmodified lines
8590 CONFIG_USB_NET_SMSC75XX=y
8691 CONFIG_USB_NET_SMSC95XX=y
8792 # CONFIG_WLAN is not set
88−# CONFIG_INPUT is not set
89−# CONFIG_SERIO is not set
93+CONFIG_INPUT_EVDEV=y
9094 # CONFIG_VT is not set
9195 # CONFIG_LEGACY_PTYS is not set
9296 # CONFIG_DEVKMEM is not set
@@ -96,13 +100,15 @@ CONFIG_SERIAL_OF_PLATFORM=y · 3 unmodified lines
96100 # CONFIG_HW_RANDOM is not set
97101 CONFIG_I2C=y
98102 # CONFIG_I2C_COMPAT is not set
99−# CONFIG_I2C_HELPER_AUTO is not set
100103 CONFIG_I2C_TEGRA=y
101104 CONFIG_SPI=y
102105 CONFIG_SPI_TEGRA=y
103106 CONFIG_SENSORS_LM90=y
104107 CONFIG_MFD_TPS6586X=y
105108 CONFIG_REGULATOR=y
109+CONFIG_REGULATOR_FIXED_VOLTAGE=y
110+CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
111+CONFIG_REGULATOR_GPIO=y
106112 CONFIG_REGULATOR_TPS6586X=y
107113 CONFIG_SOUND=y
108114 CONFIG_SND=y
@@ -116,11 +122,13 @@ CONFIG_SND_SOC=y · 7 unmodified lines
116122 CONFIG_SND_SOC_TEGRA=y
117123 CONFIG_SND_SOC_TEGRA_WM8903=y
118124 CONFIG_SND_SOC_TEGRA_TRIMSLICE=y
125+CONFIG_SND_SOC_TEGRA_ALC5632=y
119126 CONFIG_USB=y
120127 CONFIG_USB_EHCI_HCD=y
121128 CONFIG_USB_EHCI_TEGRA=y
122129 CONFIG_USB_STORAGE=y
123130 CONFIG_MMC=y
131+CONFIG_MMC_BLOCK_MINORS=16
124132 CONFIG_MMC_SDHCI=y
125133 CONFIG_MMC_SDHCI_PLTFM=y
126134 CONFIG_MMC_SDHCI_TEGRA=y
@@ -130,6 +138,11 @@ CONFIG_STAGING=y · 3 unmodified lines
130138 CONFIG_IIO=y
131139 CONFIG_SENSORS_ISL29018=y
132140 CONFIG_SENSORS_AK8975=y
141+CONFIG_MFD_NVEC=y
142+CONFIG_KEYBOARD_NVEC=y
143+CONFIG_SERIO_NVEC_PS2=y
144+CONFIG_TEGRA_IOMMU_GART=y
145+CONFIG_TEGRA_IOMMU_SMMU=y
133146 CONFIG_EXT2_FS=y
134147 CONFIG_EXT2_FS_XATTR=y
135148 CONFIG_EXT2_FS_POSIX_ACL=y
@@ -138,13 +151,12 @@ CONFIG_EXT3_FS=y · 2 unmodified lines
138151 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
139152 CONFIG_EXT3_FS_POSIX_ACL=y
140153 CONFIG_EXT3_FS_SECURITY=y
154+CONFIG_EXT4_FS=y
141155 # CONFIG_DNOTIFY is not set
142156 CONFIG_VFAT_FS=y
143157 CONFIG_TMPFS=y
144158 CONFIG_NFS_FS=y
145159 CONFIG_ROOT_NFS=y
146−CONFIG_PARTITION_ADVANCED=y
147−CONFIG_EFI_PARTITION=y
148160 CONFIG_NLS_CODEPAGE_437=y
149161 CONFIG_NLS_ISO8859_1=y
150162 CONFIG_PRINTK_TIME=y
@@ -162,9 +174,8 @@ CONFIG_DEBUG_SG=y · 11 unmodified lines
162174 CONFIG_DEBUG_LL=y
163175 CONFIG_EARLY_PRINTK=y
164176 CONFIG_CRYPTO_ECB=y
165−CONFIG_CRYPTO_AES=y
166177 CONFIG_CRYPTO_ARC4=y
167178 CONFIG_CRYPTO_TWOFISH=y
168179 # CONFIG_CRYPTO_ANSI_CPRNG is not set
180+CONFIG_CRYPTO_DEV_TEGRA_AES=y
169181 CONFIG_CRC_CCITT=y
170−CONFIG_CRC16=y
arch/arm/configs/u8500_defconfig+1−0
@@ -13,6 +13,7 @@ CONFIG_UX500_SOC_DB8500=y · 12 unmodified lines
1313 CONFIG_MACH_HREFV60=y
1414 CONFIG_MACH_SNOWBALL=y
1515 CONFIG_MACH_U5500=y
16+CONFIG_MACH_UX500_DT=y
1617 CONFIG_NO_HZ=y
1718 CONFIG_HIGH_RES_TIMERS=y
1819 CONFIG_SMP=y
arch/arm/include/asm/assembler.h+2−0
@@ -23,6 +23,8 @@ · 22 unmodified lines
2323 #include <asm/ptrace.h>
2424 #include <asm/domain.h>
2525
26+#define IOMEM(x) (x)
27+
2628 /*
2729 * Endian independent macros for shifting bytes within registers.
2830 */
arch/arm/include/asm/atomic.h+3−1
@@ -13,7 +13,9 @@ · 12 unmodified lines
1313
1414 #include <linux/compiler.h>
1515 #include <linux/types.h>
16−#include <asm/system.h>
16+#include <linux/irqflags.h>
17+#include <asm/barrier.h>
18+#include <asm/cmpxchg.h>
1719
1820 #define ATOMIC_INIT(i) { (i) }
1921
arch/arm/include/asm/barrier.h+69−0
@@ -0,0 +1,69 @@
1+#ifndef __ASM_BARRIER_H
2+#define __ASM_BARRIER_H
3+
4+#ifndef __ASSEMBLY__
5+#include <asm/outercache.h>
6+
7+#define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t");
8+
9+#if __LINUX_ARM_ARCH__ >= 7 || \
10+ (__LINUX_ARM_ARCH__ == 6 && defined(CONFIG_CPU_32v6K))
11+#define sev() __asm__ __volatile__ ("sev" : : : "memory")
12+#define wfe() __asm__ __volatile__ ("wfe" : : : "memory")
13+#define wfi() __asm__ __volatile__ ("wfi" : : : "memory")
14+#endif
15+
16+#if __LINUX_ARM_ARCH__ >= 7
17+#define isb() __asm__ __volatile__ ("isb" : : : "memory")
18+#define dsb() __asm__ __volatile__ ("dsb" : : : "memory")
19+#define dmb() __asm__ __volatile__ ("dmb" : : : "memory")
20+#elif defined(CONFIG_CPU_XSC3) || __LINUX_ARM_ARCH__ == 6
21+#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
22+ : : "r" (0) : "memory")
23+#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
24+ : : "r" (0) : "memory")
25+#define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
26+ : : "r" (0) : "memory")
27+#elif defined(CONFIG_CPU_FA526)
28+#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
29+ : : "r" (0) : "memory")
30+#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
31+ : : "r" (0) : "memory")
32+#define dmb() __asm__ __volatile__ ("" : : : "memory")
33+#else
34+#define isb() __asm__ __volatile__ ("" : : : "memory")
35+#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
36+ : : "r" (0) : "memory")
37+#define dmb() __asm__ __volatile__ ("" : : : "memory")
38+#endif
39+
40+#ifdef CONFIG_ARCH_HAS_BARRIERS
41+#include <mach/barriers.h>
42+#elif defined(CONFIG_ARM_DMA_MEM_BUFFERABLE) || defined(CONFIG_SMP)
43+#define mb() do { dsb(); outer_sync(); } while (0)
44+#define rmb() dsb()
45+#define wmb() mb()
46+#else
47+#include <asm/memory.h>
48+#define mb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0)
49+#define rmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0)
50+#define wmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0)
51+#endif
52+
53+#ifndef CONFIG_SMP
54+#define smp_mb() barrier()
55+#define smp_rmb() barrier()
56+#define smp_wmb() barrier()
57+#else
58+#define smp_mb() dmb()
59+#define smp_rmb() dmb()
60+#define smp_wmb() dmb()
61+#endif
62+
63+#define read_barrier_depends() do { } while(0)
64+#define smp_read_barrier_depends() do { } while(0)
65+
66+#define set_mb(var, value) do { var = value; smp_mb(); } while (0)
67+
68+#endif /* !__ASSEMBLY__ */
69+#endif /* __ASM_BARRIER_H */
arch/arm/include/asm/bitops.h+1−1
@@ -24,7 +24,7 @@ · 23 unmodified lines
2424 #endif
2525
2626 #include <linux/compiler.h>
27−#include <asm/system.h>
27+#include <linux/irqflags.h>
2828
2929 #define smp_mb__before_clear_bit() smp_mb()
3030 #define smp_mb__after_clear_bit() smp_mb()
arch/arm/include/asm/bug.h+30−0
@@ -1,6 +1,7 @@
11 #ifndef _ASMARM_BUG_H
22 #define _ASMARM_BUG_H
33
4+#include <linux/linkage.h>
45
56 #ifdef CONFIG_BUG
67
@@ -57,4 +58,33 @@ do { \ · 50 unmodified lines
5758
5859 #include <asm-generic/bug.h>
5960
61+struct pt_regs;
62+void die(const char *msg, struct pt_regs *regs, int err);
63+
64+struct siginfo;
65+void arm_notify_die(const char *str, struct pt_regs *regs, struct siginfo *info,
66+ unsigned long err, unsigned long trap);
67+
68+#ifdef CONFIG_ARM_LPAE
69+#define FAULT_CODE_ALIGNMENT 33
70+#define FAULT_CODE_DEBUG 34
71+#else
72+#define FAULT_CODE_ALIGNMENT 1
73+#define FAULT_CODE_DEBUG 2
74+#endif
75+
76+void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
77+ struct pt_regs *),
78+ int sig, int code, const char *name);
79+
80+void hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int,
81+ struct pt_regs *),
82+ int sig, int code, const char *name);
83+
84+extern asmlinkage void c_backtrace(unsigned long fp, int pmode);
85+
86+struct mm_struct;
87+extern void show_pte(struct mm_struct *mm, unsigned long addr);
88+extern void __show_regs(struct pt_regs *);
89+
6090 #endif
arch/arm/include/asm/cmpxchg.h+295−0
@@ -0,0 +1,295 @@
1+#ifndef __ASM_ARM_CMPXCHG_H
2+#define __ASM_ARM_CMPXCHG_H
3+
4+#include <linux/irqflags.h>
5+#include <asm/barrier.h>
6+
7+#if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110)
8+/*
9+ * On the StrongARM, "swp" is terminally broken since it bypasses the
10+ * cache totally. This means that the cache becomes inconsistent, and,
11+ * since we use normal loads/stores as well, this is really bad.
12+ * Typically, this causes oopsen in filp_close, but could have other,
13+ * more disastrous effects. There are two work-arounds:
14+ * 1. Disable interrupts and emulate the atomic swap
15+ * 2. Clean the cache, perform atomic swap, flush the cache
16+ *
17+ * We choose (1) since its the "easiest" to achieve here and is not
18+ * dependent on the processor type.
19+ *
20+ * NOTE that this solution won't work on an SMP system, so explcitly
21+ * forbid it here.
22+ */
23+#define swp_is_buggy
24+#endif
25+
26+static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
27+{
28+ extern void __bad_xchg(volatile void *, int);
29+ unsigned long ret;
30+#ifdef swp_is_buggy
31+ unsigned long flags;
32+#endif
33+#if __LINUX_ARM_ARCH__ >= 6
34+ unsigned int tmp;
35+#endif
36+
37+ smp_mb();
38+
39+ switch (size) {
40+#if __LINUX_ARM_ARCH__ >= 6
41+ case 1:
42+ asm volatile("@ __xchg1\n"
43+ "1: ldrexb %0, [%3]\n"
44+ " strexb %1, %2, [%3]\n"
45+ " teq %1, #0\n"
46+ " bne 1b"
47+ : "=&r" (ret), "=&r" (tmp)
48+ : "r" (x), "r" (ptr)
49+ : "memory", "cc");
50+ break;
51+ case 4:
52+ asm volatile("@ __xchg4\n"
53+ "1: ldrex %0, [%3]\n"
54+ " strex %1, %2, [%3]\n"
55+ " teq %1, #0\n"
56+ " bne 1b"
57+ : "=&r" (ret), "=&r" (tmp)
58+ : "r" (x), "r" (ptr)
59+ : "memory", "cc");
60+ break;
61+#elif defined(swp_is_buggy)
62+#ifdef CONFIG_SMP
63+#error SMP is not supported on this platform
64+#endif
65+ case 1:
66+ raw_local_irq_save(flags);
67+ ret = *(volatile unsigned char *)ptr;
68+ *(volatile unsigned char *)ptr = x;
69+ raw_local_irq_restore(flags);
70+ break;
71+
72+ case 4:
73+ raw_local_irq_save(flags);
74+ ret = *(volatile unsigned long *)ptr;
75+ *(volatile unsigned long *)ptr = x;
76+ raw_local_irq_restore(flags);
77+ break;
78+#else
79+ case 1:
80+ asm volatile("@ __xchg1\n"
81+ " swpb %0, %1, [%2]"
82+ : "=&r" (ret)
83+ : "r" (x), "r" (ptr)
84+ : "memory", "cc");
85+ break;
86+ case 4:
87+ asm volatile("@ __xchg4\n"
88+ " swp %0, %1, [%2]"
89+ : "=&r" (ret)
90+ : "r" (x), "r" (ptr)
91+ : "memory", "cc");
92+ break;
93+#endif
94+ default:
95+ __bad_xchg(ptr, size), ret = 0;
96+ break;
97+ }
98+ smp_mb();
99+
100+ return ret;
101+}
102+
103+#define xchg(ptr,x) \
104+ ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
105+
106+#include <asm-generic/cmpxchg-local.h>
107+
108+#if __LINUX_ARM_ARCH__ < 6
109+/* min ARCH < ARMv6 */
110+
111+#ifdef CONFIG_SMP
112+#error "SMP is not supported on this platform"
113+#endif
114+
115+/*
116+ * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make
117+ * them available.
118+ */
119+#define cmpxchg_local(ptr, o, n) \
120+ ((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\
121+ (unsigned long)(n), sizeof(*(ptr))))
122+#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
123+
124+#ifndef CONFIG_SMP
125+#include <asm-generic/cmpxchg.h>
126+#endif
127+
128+#else /* min ARCH >= ARMv6 */
129+
130+extern void __bad_cmpxchg(volatile void *ptr, int size);
131+
132+/*
133+ * cmpxchg only support 32-bits operands on ARMv6.
134+ */
135+
136+static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
137+ unsigned long new, int size)
138+{
139+ unsigned long oldval, res;
140+
141+ switch (size) {
142+#ifndef CONFIG_CPU_V6 /* min ARCH >= ARMv6K */
143+ case 1:
144+ do {
145+ asm volatile("@ __cmpxchg1\n"
146+ " ldrexb %1, [%2]\n"
147+ " mov %0, #0\n"
148+ " teq %1, %3\n"
149+ " strexbeq %0, %4, [%2]\n"
150+ : "=&r" (res), "=&r" (oldval)
151+ : "r" (ptr), "Ir" (old), "r" (new)
152+ : "memory", "cc");
153+ } while (res);
154+ break;
155+ case 2:
156+ do {
157+ asm volatile("@ __cmpxchg1\n"
158+ " ldrexh %1, [%2]\n"
159+ " mov %0, #0\n"
160+ " teq %1, %3\n"
161+ " strexheq %0, %4, [%2]\n"
162+ : "=&r" (res), "=&r" (oldval)
163+ : "r" (ptr), "Ir" (old), "r" (new)
164+ : "memory", "cc");
165+ } while (res);
166+ break;
167+#endif
168+ case 4:
169+ do {
170+ asm volatile("@ __cmpxchg4\n"
171+ " ldrex %1, [%2]\n"
172+ " mov %0, #0\n"
173+ " teq %1, %3\n"
174+ " strexeq %0, %4, [%2]\n"
175+ : "=&r" (res), "=&r" (oldval)
176+ : "r" (ptr), "Ir" (old), "r" (new)
177+ : "memory", "cc");
178+ } while (res);
179+ break;
180+ default:
181+ __bad_cmpxchg(ptr, size);
182+ oldval = 0;
183+ }
184+
185+ return oldval;
186+}
187+
188+static inline unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old,
189+ unsigned long new, int size)
190+{
191+ unsigned long ret;
192+
193+ smp_mb();
194+ ret = __cmpxchg(ptr, old, new, size);
195+ smp_mb();
196+
197+ return ret;
198+}
199+
200+#define cmpxchg(ptr,o,n) \
201+ ((__typeof__(*(ptr)))__cmpxchg_mb((ptr), \
202+ (unsigned long)(o), \
203+ (unsigned long)(n), \
204+ sizeof(*(ptr))))
205+
206+static inline unsigned long __cmpxchg_local(volatile void *ptr,
207+ unsigned long old,
208+ unsigned long new, int size)
209+{
210+ unsigned long ret;
211+
212+ switch (size) {
213+#ifdef CONFIG_CPU_V6 /* min ARCH == ARMv6 */
214+ case 1:
215+ case 2:
216+ ret = __cmpxchg_local_generic(ptr, old, new, size);
217+ break;
218+#endif
219+ default:
220+ ret = __cmpxchg(ptr, old, new, size);
221+ }
222+
223+ return ret;
224+}
225+
226+#define cmpxchg_local(ptr,o,n) \
227+ ((__typeof__(*(ptr)))__cmpxchg_local((ptr), \
228+ (unsigned long)(o), \
229+ (unsigned long)(n), \
230+ sizeof(*(ptr))))
231+
232+#ifndef CONFIG_CPU_V6 /* min ARCH >= ARMv6K */
233+
234+/*
235+ * Note : ARMv7-M (currently unsupported by Linux) does not support
236+ * ldrexd/strexd. If ARMv7-M is ever supported by the Linux kernel, it should
237+ * not be allowed to use __cmpxchg64.
238+ */
239+static inline unsigned long long __cmpxchg64(volatile void *ptr,
240+ unsigned long long old,
241+ unsigned long long new)
242+{
243+ register unsigned long long oldval asm("r0");
244+ register unsigned long long __old asm("r2") = old;
245+ register unsigned long long __new asm("r4") = new;
246+ unsigned long res;
247+
248+ do {
249+ asm volatile(
250+ " @ __cmpxchg8\n"
251+ " ldrexd %1, %H1, [%2]\n"
252+ " mov %0, #0\n"
253+ " teq %1, %3\n"
254+ " teqeq %H1, %H3\n"
255+ " strexdeq %0, %4, %H4, [%2]\n"
256+ : "=&r" (res), "=&r" (oldval)
257+ : "r" (ptr), "Ir" (__old), "r" (__new)
258+ : "memory", "cc");
259+ } while (res);
260+
261+ return oldval;
262+}
263+
264+static inline unsigned long long __cmpxchg64_mb(volatile void *ptr,
265+ unsigned long long old,
266+ unsigned long long new)
267+{
268+ unsigned long long ret;
269+
270+ smp_mb();
271+ ret = __cmpxchg64(ptr, old, new);
272+ smp_mb();
273+
274+ return ret;
275+}
276+
277+#define cmpxchg64(ptr,o,n) \
278+ ((__typeof__(*(ptr)))__cmpxchg64_mb((ptr), \
279+ (unsigned long long)(o), \
280+ (unsigned long long)(n)))
281+
282+#define cmpxchg64_local(ptr,o,n) \
283+ ((__typeof__(*(ptr)))__cmpxchg64((ptr), \
284+ (unsigned long long)(o), \
285+ (unsigned long long)(n)))
286+
287+#else /* min ARCH = ARMv6 */
288+
289+#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
290+
291+#endif
292+
293+#endif /* __LINUX_ARM_ARCH__ >= 6 */
294+
295+#endif /* __ASM_ARM_CMPXCHG_H */
arch/arm/include/asm/compiler.h+15−0
@@ -0,0 +1,15 @@
1+#ifndef __ASM_ARM_COMPILER_H
2+#define __ASM_ARM_COMPILER_H
3+
4+/*
5+ * This is used to ensure the compiler did actually allocate the register we
6+ * asked it for some inline assembly sequences. Apparently we can't trust
7+ * the compiler from one version to another so a bit of paranoia won't hurt.
8+ * This string is meant to be concatenated with the inline asm string and
9+ * will cause compilation to stop on mismatch.
10+ * (for details, see gcc PR 15089)
11+ */
12+#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"
13+
14+
15+#endif /* __ASM_ARM_COMPILER_H */
arch/arm/include/asm/cp15.h+87−0
@@ -0,0 +1,87 @@
1+#ifndef __ASM_ARM_CP15_H
2+#define __ASM_ARM_CP15_H
3+
4+#include <asm/barrier.h>
5+
6+/*
7+ * CR1 bits (CP#15 CR1)
8+ */
9+#define CR_M (1 << 0) /* MMU enable */
10+#define CR_A (1 << 1) /* Alignment abort enable */
11+#define CR_C (1 << 2) /* Dcache enable */
12+#define CR_W (1 << 3) /* Write buffer enable */
13+#define CR_P (1 << 4) /* 32-bit exception handler */
14+#define CR_D (1 << 5) /* 32-bit data address range */
15+#define CR_L (1 << 6) /* Implementation defined */
16+#define CR_B (1 << 7) /* Big endian */
17+#define CR_S (1 << 8) /* System MMU protection */
18+#define CR_R (1 << 9) /* ROM MMU protection */
19+#define CR_F (1 << 10) /* Implementation defined */
20+#define CR_Z (1 << 11) /* Implementation defined */
21+#define CR_I (1 << 12) /* Icache enable */
22+#define CR_V (1 << 13) /* Vectors relocated to 0xffff0000 */
23+#define CR_RR (1 << 14) /* Round Robin cache replacement */
24+#define CR_L4 (1 << 15) /* LDR pc can set T bit */
25+#define CR_DT (1 << 16)
26+#define CR_IT (1 << 18)
27+#define CR_ST (1 << 19)
28+#define CR_FI (1 << 21) /* Fast interrupt (lower latency mode) */
29+#define CR_U (1 << 22) /* Unaligned access operation */
30+#define CR_XP (1 << 23) /* Extended page tables */
31+#define CR_VE (1 << 24) /* Vectored interrupts */
32+#define CR_EE (1 << 25) /* Exception (Big) Endian */
33+#define CR_TRE (1 << 28) /* TEX remap enable */
34+#define CR_AFE (1 << 29) /* Access flag enable */
35+#define CR_TE (1 << 30) /* Thumb exception enable */
36+
37+#ifndef __ASSEMBLY__
38+
39+#if __LINUX_ARM_ARCH__ >= 4
40+#define vectors_high() (cr_alignment & CR_V)
41+#else
42+#define vectors_high() (0)
43+#endif
44+
45+extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
46+extern unsigned long cr_alignment; /* defined in entry-armv.S */
47+
48+static inline unsigned int get_cr(void)
49+{
50+ unsigned int val;
51+ asm("mrc p15, 0, %0, c1, c0, 0 @ get CR" : "=r" (val) : : "cc");
52+ return val;
53+}
54+
55+static inline void set_cr(unsigned int val)
56+{
57+ asm volatile("mcr p15, 0, %0, c1, c0, 0 @ set CR"
58+ : : "r" (val) : "cc");
59+ isb();
60+}
61+
62+#ifndef CONFIG_SMP
63+extern void adjust_cr(unsigned long mask, unsigned long set);
64+#endif
65+
66+#define CPACC_FULL(n) (3 << (n * 2))
67+#define CPACC_SVC(n) (1 << (n * 2))
68+#define CPACC_DISABLE(n) (0 << (n * 2))
69+
70+static inline unsigned int get_copro_access(void)
71+{
72+ unsigned int val;
73+ asm("mrc p15, 0, %0, c1, c0, 2 @ get copro access"
74+ : "=r" (val) : : "cc");
75+ return val;
76+}
77+
78+static inline void set_copro_access(unsigned int val)
79+{
80+ asm volatile("mcr p15, 0, %0, c1, c0, 2 @ set copro access"
81+ : : "r" (val) : "cc");
82+ isb();
83+}
84+
85+#endif
86+
87+#endif
arch/arm/include/asm/cpuidle.h+29−0
@@ -0,0 +1,29 @@
1+#ifndef __ASM_ARM_CPUIDLE_H
2+#define __ASM_ARM_CPUIDLE_H
3+
4+#ifdef CONFIG_CPU_IDLE
5+extern int arm_cpuidle_simple_enter(struct cpuidle_device *dev,
6+ struct cpuidle_driver *drv, int index);
7+#else
8+static inline int arm_cpuidle_simple_enter(struct cpuidle_device *dev,
9+ struct cpuidle_driver *drv, int index) { return -ENODEV; }
10+#endif
11+
12+/* Common ARM WFI state */
13+#define ARM_CPUIDLE_WFI_STATE_PWR(p) {\
14+ .enter = arm_cpuidle_simple_enter,\
15+ .exit_latency = 1,\
16+ .target_residency = 1,\
17+ .power_usage = p,\
18+ .flags = CPUIDLE_FLAG_TIME_VALID,\
19+ .name = "WFI",\
20+ .desc = "ARM WFI",\
21+}
22+
23+/*
24+ * in case power_specified == 1, give a default WFI power value needed
25+ * by some governors
26+ */
27+#define ARM_CPUIDLE_WFI_STATE ARM_CPUIDLE_WFI_STATE_PWR(UINT_MAX)
28+
29+#endif
arch/arm/include/asm/div64.h+1−1
@@ -1,8 +1,8 @@
11 #ifndef __ASM_ARM_DIV64
22 #define __ASM_ARM_DIV64
33
4−#include <asm/system.h>
54 #include <linux/types.h>
5+#include <asm/compiler.h>
66
77 /*
88 * The semantics of do_div() are:
arch/arm/include/asm/dma.h+0−1
@@ -19,7 +19,6 @@ · 18 unmodified lines
1919 * It should not be re-used except for that purpose.
2020 */
2121 #include <linux/spinlock.h>
22−#include <asm/system.h>
2322 #include <asm/scatterlist.h>
2423
2524 #include <mach/isa-dma.h>
arch/arm/include/asm/domain.h+4−0
@@ -10,6 +10,10 @@ · 9 unmodified lines
1010 #ifndef __ASM_PROC_DOMAIN_H
1111 #define __ASM_PROC_DOMAIN_H
1212
13+#ifndef __ASSEMBLY__
14+#include <asm/barrier.h>
15+#endif
16+
1317 /*
1418 * Domain numbers
1519 *
arch/arm/include/asm/elf.h+0−4
@@ -130,8 +130,4 @@ struct mm_struct; · 129 unmodified lines
130130 extern unsigned long arch_randomize_brk(struct mm_struct *mm);
131131 #define arch_randomize_brk arch_randomize_brk
132132
133−extern int vectors_user_mapping(void);
134−#define arch_setup_additional_pages(bprm, uses_interp) vectors_user_mapping()
135−#define ARCH_HAS_SETUP_ADDITIONAL_PAGES
136−
137133 #endif
arch/arm/include/asm/exec.h+6−0
@@ -0,0 +1,6 @@
1+#ifndef __ASM_ARM_EXEC_H
2+#define __ASM_ARM_EXEC_H
3+
4+#define arch_align_stack(x) (x)
5+
6+#endif /* __ASM_ARM_EXEC_H */
arch/arm/include/asm/hardware/arm_timer.h+5−0
@@ -9,7 +9,12 @@ · 8 unmodified lines
99 *
1010 * Integrator AP has 16-bit timers, Integrator CP, Versatile and Realview
1111 * can have 16-bit or 32-bit selectable via a bit in the control register.
12+ *
13+ * Every SP804 contains two identical timers.
1214 */
15+#define TIMER_1_BASE 0x00
16+#define TIMER_2_BASE 0x20
17+
1318 #define TIMER_LOAD 0x00 /* ACVR rw */
1419 #define TIMER_VALUE 0x04 /* ACVR ro */
1520 #define TIMER_CTRL 0x08 /* ACVR rw */
arch/arm/include/asm/hardware/cache-l2x0.h+3−3
@@ -103,11 +103,11 @@ · 102 unmodified lines
103103 #define L2X0_ADDR_FILTER_EN 1
104104
105105 #ifndef __ASSEMBLY__
106−extern void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask);
106+extern void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask);
107107 #if defined(CONFIG_CACHE_L2X0) && defined(CONFIG_OF)
108−extern int l2x0_of_init(__u32 aux_val, __u32 aux_mask);
108+extern int l2x0_of_init(u32 aux_val, u32 aux_mask);
109109 #else
110−static inline int l2x0_of_init(__u32 aux_val, __u32 aux_mask)
110+static inline int l2x0_of_init(u32 aux_val, u32 aux_mask)
111111 {
112112 return -ENODEV;
113113 }
arch/arm/include/asm/hardware/entry-macro-iomd.S+0−8
@@ -11,14 +11,6 @@ · 10 unmodified lines
1111 /* IOC / IOMD based hardware */
1212 #include <asm/hardware/iomd.h>
1313
14− .macro disable_fiq
15− mov r12, #ioc_base_high
16− .if ioc_base_low
17− orr r12, r12, #ioc_base_low
18− .endif
19− strb r12, [r12, #0x38] @ Disable FIQ register
20− .endm
21−
2214 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
2315 ldrb \irqstat, [\base, #IOMD_IRQREQB] @ get high priority first
2416 ldr \tmp, =irq_prio_h
arch/arm/include/asm/hardware/iop3xx.h+3−0
@@ -231,6 +231,9 @@ extern int iop3xx_get_init_atu(void); · 230 unmodified lines
231231
232232
233233 #ifndef __ASSEMBLY__
234+
235+#include <linux/types.h>
236+
234237 void iop3xx_map_io(void);
235238 void iop_init_cp6_handler(void);
236239 void iop_init_time(unsigned long tickrate);
arch/arm/include/asm/hardware/iop_adma.h+0−2
@@ -49,7 +49,6 @@ struct iop_adma_device { · 48 unmodified lines
4949 /**
5050 * struct iop_adma_chan - internal representation of an ADMA device
5151 * @pending: allows batching of hardware operations
52− * @completed_cookie: identifier for the most recently completed operation
5352 * @lock: serializes enqueue/dequeue operations to the slot pool
5453 * @mmr_base: memory mapped register base
5554 * @chain: device chain view of the descriptors
@@ -62,7 +61,6 @@ struct iop_adma_device { · 6 unmodified lines
6261 */
6362 struct iop_adma_chan {
6463 int pending;
65− dma_cookie_t completed_cookie;
6664 spinlock_t lock; /* protects the descriptor slot pool */
6765 void __iomem *mmr_base;
6866 struct list_head chain;
arch/arm/include/asm/hardware/it8152.h+3−0
@@ -9,6 +9,9 @@ · 8 unmodified lines
99
1010 #ifndef __ASM_HARDWARE_IT8152_H
1111 #define __ASM_HARDWARE_IT8152_H
12+
13+#include <mach/irqs.h>
14+
1215 extern void __iomem *it8152_base_address;
1316
1417 #define IT8152_IO_BASE (it8152_base_address + 0x03e00000)
arch/arm/include/asm/hardware/pl330.h+0−217
@@ -1,217 +0,0 @@
1−/* linux/include/asm/hardware/pl330.h
2− *
3− * Copyright (C) 2010 Samsung Electronics Co. Ltd.
4− * Jaswinder Singh <jassi.brar@samsung.com>
5− *
6− * This program is free software; you can redistribute it and/or modify
7− * it under the terms of the GNU General Public License as published by
8− * the Free Software Foundation; either version 2 of the License, or
9− * (at your option) any later version.
10− *
11− * This program is distributed in the hope that it will be useful,
12− * but WITHOUT ANY WARRANTY; without even the implied warranty of
13− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14− * GNU General Public License for more details.
15− *
16− * You should have received a copy of the GNU General Public License
17− * along with this program; if not, write to the Free Software
18− * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19− */
20−
21−#ifndef __PL330_CORE_H
22−#define __PL330_CORE_H
23−
24−#define PL330_MAX_CHAN 8
25−#define PL330_MAX_IRQS 32
26−#define PL330_MAX_PERI 32
27−
28−enum pl330_srccachectrl {
29− SCCTRL0 = 0, /* Noncacheable and nonbufferable */
30− SCCTRL1, /* Bufferable only */
31− SCCTRL2, /* Cacheable, but do not allocate */
32− SCCTRL3, /* Cacheable and bufferable, but do not allocate */
33− SINVALID1,
34− SINVALID2,
35− SCCTRL6, /* Cacheable write-through, allocate on reads only */
36− SCCTRL7, /* Cacheable write-back, allocate on reads only */
37−};
38−
39−enum pl330_dstcachectrl {
40− DCCTRL0 = 0, /* Noncacheable and nonbufferable */
41− DCCTRL1, /* Bufferable only */
42− DCCTRL2, /* Cacheable, but do not allocate */
43− DCCTRL3, /* Cacheable and bufferable, but do not allocate */
44− DINVALID1, /* AWCACHE = 0x1000 */
45− DINVALID2,
46− DCCTRL6, /* Cacheable write-through, allocate on writes only */
47− DCCTRL7, /* Cacheable write-back, allocate on writes only */
48−};
49−
50−/* Populated by the PL330 core driver for DMA API driver's info */
51−struct pl330_config {
52− u32 periph_id;
53− u32 pcell_id;
54−#define DMAC_MODE_NS (1 << 0)
55− unsigned int mode;
56− unsigned int data_bus_width:10; /* In number of bits */
57− unsigned int data_buf_dep:10;
58− unsigned int num_chan:4;
59− unsigned int num_peri:6;
60− u32 peri_ns;
61− unsigned int num_events:6;
62− u32 irq_ns;
63−};
64−
65−/* Handle to the DMAC provided to the PL330 core */
66−struct pl330_info {
67− /* Owning device */
68− struct device *dev;
69− /* Size of MicroCode buffers for each channel. */
70− unsigned mcbufsz;
71− /* ioremap'ed address of PL330 registers. */
72− void __iomem *base;
73− /* Client can freely use it. */
74− void *client_data;
75− /* PL330 core data, Client must not touch it. */
76− void *pl330_data;
77− /* Populated by the PL330 core driver during pl330_add */
78− struct pl330_config pcfg;
79− /*
80− * If the DMAC has some reset mechanism, then the
81− * client may want to provide pointer to the method.
82− */
83− void (*dmac_reset)(struct pl330_info *pi);
84−};
85−
86−enum pl330_byteswap {
87− SWAP_NO = 0,
88− SWAP_2,
89− SWAP_4,
90− SWAP_8,
91− SWAP_16,
92−};
93−
94−/**
95− * Request Configuration.
96− * The PL330 core does not modify this and uses the last
97− * working configuration if the request doesn't provide any.
98− *
99− * The Client may want to provide this info only for the
100− * first request and a request with new settings.
101− */
102−struct pl330_reqcfg {
103− /* Address Incrementing */
104− unsigned dst_inc:1;
105− unsigned src_inc:1;
106−
107− /*
108− * For now, the SRC & DST protection levels
109− * and burst size/length are assumed same.
110− */
111− bool nonsecure;
112− bool privileged;
113− bool insnaccess;
114− unsigned brst_len:5;
115− unsigned brst_size:3; /* in power of 2 */
116−
117− enum pl330_dstcachectrl dcctl;
118− enum pl330_srccachectrl scctl;
119− enum pl330_byteswap swap;
120−};
121−
122−/*
123− * One cycle of DMAC operation.
124− * There may be more than one xfer in a request.
125− */
126−struct pl330_xfer {
127− u32 src_addr;
128− u32 dst_addr;
129− /* Size to xfer */
130− u32 bytes;
131− /*
132− * Pointer to next xfer in the list.
133− * The last xfer in the req must point to NULL.
134− */
135− struct pl330_xfer *next;
136−};
137−
138−/* The xfer callbacks are made with one of these arguments. */
139−enum pl330_op_err {
140− /* The all xfers in the request were success. */
141− PL330_ERR_NONE,
142− /* If req aborted due to global error. */
143− PL330_ERR_ABORT,
144− /* If req failed due to problem with Channel. */
145− PL330_ERR_FAIL,
146−};
147−
148−enum pl330_reqtype {
149− MEMTOMEM,
150− MEMTODEV,
151− DEVTOMEM,
152− DEVTODEV,
153−};
154−
155−/* A request defining Scatter-Gather List ending with NULL xfer. */
156−struct pl330_req {
157− enum pl330_reqtype rqtype;
158− /* Index of peripheral for the xfer. */
159− unsigned peri:5;
160− /* Unique token for this xfer, set by the client. */
161− void *token;
162− /* Callback to be called after xfer. */
163− void (*xfer_cb)(void *token, enum pl330_op_err err);
164− /* If NULL, req will be done at last set parameters. */
165− struct pl330_reqcfg *cfg;
166− /* Pointer to first xfer in the request. */
167− struct pl330_xfer *x;
168−};
169−
170−/*
171− * To know the status of the channel and DMAC, the client
172− * provides a pointer to this structure. The PL330 core
173− * fills it with current information.
174− */
175−struct pl330_chanstatus {
176− /*
177− * If the DMAC engine halted due to some error,
178− * the client should remove-add DMAC.
179− */
180− bool dmac_halted;
181− /*
182− * If channel is halted due to some error,
183− * the client should ABORT/FLUSH and START the channel.
184− */
185− bool faulting;
186− /* Location of last load */
187− u32 src_addr;
188− /* Location of last store */
189− u32 dst_addr;
190− /*
191− * Pointer to the currently active req, NULL if channel is
192− * inactive, even though the requests may be present.
193− */
194− struct pl330_req *top_req;
195− /* Pointer to req waiting second in the queue if any. */
196− struct pl330_req *wait_req;
197−};
198−
199−enum pl330_chan_op {
200− /* Start the channel */
201− PL330_OP_START,
202− /* Abort the active xfer */
203− PL330_OP_ABORT,
204− /* Stop xfer and flush queue */
205− PL330_OP_FLUSH,
206−};
207−
208−extern int pl330_add(struct pl330_info *);
209−extern void pl330_del(struct pl330_info *pi);
210−extern int pl330_update(const struct pl330_info *pi);
211−extern void pl330_release_channel(void *ch_id);
212−extern void *pl330_request_channel(const struct pl330_info *pi);
213−extern int pl330_chan_status(void *ch_id, struct pl330_chanstatus *pstatus);
214−extern int pl330_chan_ctrl(void *ch_id, enum pl330_chan_op op);
215−extern int pl330_submit_req(void *ch_id, struct pl330_req *r);
216−
217−#endif /* __PL330_CORE_H */
arch/arm/include/asm/hardware/sa1111.h+23−133
@@ -132,33 +132,9 @@ · 131 unmodified lines
132132 #define SKPCR_DCLKEN (1<<7)
133133 #define SKPCR_PWMCLKEN (1<<8)
134134
135−/*
136− * USB Host controller
137− */
135+/* USB Host controller */
138136 #define SA1111_USB 0x0400
139137
140−/*
141− * Offsets from SA1111_USB_BASE
142− */
143−#define SA1111_USB_STATUS 0x0118
144−#define SA1111_USB_RESET 0x011c
145−#define SA1111_USB_IRQTEST 0x0120
146−
147−#define USB_RESET_FORCEIFRESET (1 << 0)
148−#define USB_RESET_FORCEHCRESET (1 << 1)
149−#define USB_RESET_CLKGENRESET (1 << 2)
150−#define USB_RESET_SIMSCALEDOWN (1 << 3)
151−#define USB_RESET_USBINTTEST (1 << 4)
152−#define USB_RESET_SLEEPSTBYEN (1 << 5)
153−#define USB_RESET_PWRSENSELOW (1 << 6)
154−#define USB_RESET_PWRCTRLLOW (1 << 7)
155−
156−#define USB_STATUS_IRQHCIRMTWKUP (1 << 7)
157−#define USB_STATUS_IRQHCIBUFFACC (1 << 8)
158−#define USB_STATUS_NIRQHCIM (1 << 9)
159−#define USB_STATUS_NHCIMFCLR (1 << 10)
160−#define USB_STATUS_USBPWRSENSE (1 << 11)
161−
162138 /*
163139 * Serial Audio Controller
164140 *
@@ -327,22 +303,6 @@ · 162 unmodified lines
327303 * PC_SSR GPIO Block C Sleep State
328304 */
329305
330−#define _PA_DDR _SA1111( 0x1000 )
331−#define _PA_DRR _SA1111( 0x1004 )
332−#define _PA_DWR _SA1111( 0x1004 )
333−#define _PA_SDR _SA1111( 0x1008 )
334−#define _PA_SSR _SA1111( 0x100c )
335−#define _PB_DDR _SA1111( 0x1010 )
336−#define _PB_DRR _SA1111( 0x1014 )
337−#define _PB_DWR _SA1111( 0x1014 )
338−#define _PB_SDR _SA1111( 0x1018 )
339−#define _PB_SSR _SA1111( 0x101c )
340−#define _PC_DDR _SA1111( 0x1020 )
341−#define _PC_DRR _SA1111( 0x1024 )
342−#define _PC_DWR _SA1111( 0x1024 )
343−#define _PC_SDR _SA1111( 0x1028 )
344−#define _PC_SSR _SA1111( 0x102c )
345−
346306 #define SA1111_GPIO 0x1000
347307
348308 #define SA1111_GPIO_PADDR (0x000)
@@ -425,106 +385,30 @@ · 76 unmodified lines
425385 #define SA1111_WAKEPOL0 0x0034
426386 #define SA1111_WAKEPOL1 0x0038
427387
428−/*
429− * PS/2 Trackpad and Mouse Interfaces
430− *
431− * Registers
432− * PS2CR Control Register
433− * PS2STAT Status Register
434− * PS2DATA Transmit/Receive Data register
435− * PS2CLKDIV Clock Division Register
436− * PS2PRECNT Clock Precount Register
437− * PS2TEST1 Test register 1
438− * PS2TEST2 Test register 2
439− * PS2TEST3 Test register 3
440− * PS2TEST4 Test register 4
441− */
442−
388+/* PS/2 Trackpad and Mouse Interfaces */
443389 #define SA1111_KBD 0x0a00
444390 #define SA1111_MSE 0x0c00
445391
446−/*
447− * These are offsets from the above bases.
448− */
449−#define SA1111_PS2CR 0x0000
450−#define SA1111_PS2STAT 0x0004
451−#define SA1111_PS2DATA 0x0008
452−#define SA1111_PS2CLKDIV 0x000c
453−#define SA1111_PS2PRECNT 0x0010
454−
455−#define PS2CR_ENA 0x08
456−#define PS2CR_FKD 0x02
457−#define PS2CR_FKC 0x01
458−
459−#define PS2STAT_STP 0x0100
460−#define PS2STAT_TXE 0x0080
461−#define PS2STAT_TXB 0x0040
462−#define PS2STAT_RXF 0x0020
463−#define PS2STAT_RXB 0x0010
464−#define PS2STAT_ENA 0x0008
465−#define PS2STAT_RXP 0x0004
466−#define PS2STAT_KBD 0x0002
467−#define PS2STAT_KBC 0x0001
392+/* PCMCIA Interface */
393+#define SA1111_PCMCIA 0x1600
468394
469−/*
470− * PCMCIA Interface
471− *
472− * Registers
473− * PCSR Status Register
474− * PCCR Control Register
475− * PCSSR Sleep State Register
476− */
477−
478−#define SA1111_PCMCIA 0x1600
479−
480−/*
481− * These are offsets from the above base.
482− */
483−#define SA1111_PCCR 0x0000
484−#define SA1111_PCSSR 0x0004
485−#define SA1111_PCSR 0x0008
486−
487−#define PCSR_S0_READY (1<<0)
488−#define PCSR_S1_READY (1<<1)
489−#define PCSR_S0_DETECT (1<<2)
490−#define PCSR_S1_DETECT (1<<3)
491−#define PCSR_S0_VS1 (1<<4)
492−#define PCSR_S0_VS2 (1<<5)
493−#define PCSR_S1_VS1 (1<<6)
494−#define PCSR_S1_VS2 (1<<7)
495−#define PCSR_S0_WP (1<<8)
496−#define PCSR_S1_WP (1<<9)
497−#define PCSR_S0_BVD1 (1<<10)
498−#define PCSR_S0_BVD2 (1<<11)
499−#define PCSR_S1_BVD1 (1<<12)
500−#define PCSR_S1_BVD2 (1<<13)
501−
502−#define PCCR_S0_RST (1<<0)
503−#define PCCR_S1_RST (1<<1)
504−#define PCCR_S0_FLT (1<<2)
505−#define PCCR_S1_FLT (1<<3)
506−#define PCCR_S0_PWAITEN (1<<4)
507−#define PCCR_S1_PWAITEN (1<<5)
508−#define PCCR_S0_PSE (1<<6)
509−#define PCCR_S1_PSE (1<<7)
510−
511−#define PCSSR_S0_SLEEP (1<<0)
512−#define PCSSR_S1_SLEEP (1<<1)
513395
514396
515397
516398
517399 extern struct bus_type sa1111_bus_type;
518400
519−#define SA1111_DEVID_SBI 0
520−#define SA1111_DEVID_SK 1
521−#define SA1111_DEVID_USB 2
522−#define SA1111_DEVID_SAC 3
523−#define SA1111_DEVID_SSP 4
524−#define SA1111_DEVID_PS2 5
525−#define SA1111_DEVID_GPIO 6
526−#define SA1111_DEVID_INT 7
527−#define SA1111_DEVID_PCMCIA 8
401+#define SA1111_DEVID_SBI (1 << 0)
402+#define SA1111_DEVID_SK (1 << 1)
403+#define SA1111_DEVID_USB (1 << 2)
404+#define SA1111_DEVID_SAC (1 << 3)
405+#define SA1111_DEVID_SSP (1 << 4)
406+#define SA1111_DEVID_PS2 (3 << 5)
407+#define SA1111_DEVID_PS2_KBD (1 << 5)
408+#define SA1111_DEVID_PS2_MSE (1 << 6)
409+#define SA1111_DEVID_GPIO (1 << 7)
410+#define SA1111_DEVID_INT (1 << 8)
411+#define SA1111_DEVID_PCMCIA (1 << 9)
528412
529413 struct sa1111_dev {
530414 struct device dev;
@@ -548,6 +432,7 @@ struct sa1111_driver { · 17 unmodified lines
548432 int (*remove)(struct sa1111_dev *);
549433 int (*suspend)(struct sa1111_dev *, pm_message_t);
550434 int (*resume)(struct sa1111_dev *);
435+ void (*shutdown)(struct sa1111_dev *);
551436 };
552437
553438 #define SA1111_DRV(_d) container_of((_d), struct sa1111_driver, drv)
@@ -555,9 +440,10 @@ struct sa1111_driver { · 1 unmodified line
555440 #define SA1111_DRIVER_NAME(_sadev) ((_sadev)->dev.driver->name)
556441
557442 /*
558− * These frob the SKPCR register.
443+ * These frob the SKPCR register, and call platform specific
444+ * enable/disable functions.
559445 */
560−void sa1111_enable_device(struct sa1111_dev *);
446+int sa1111_enable_device(struct sa1111_dev *);
561447 void sa1111_disable_device(struct sa1111_dev *);
562448
563449 unsigned int sa1111_pll_clock(struct sa1111_dev *);
@@ -580,6 +466,10 @@ void sa1111_set_sleep_io(struct sa1111_dev *sadev, unsigned int bits, unsigned i · 16 unmodified lines
580466
581467 struct sa1111_platform_data {
582468 int irq_base; /* base for cascaded on-chip IRQs */
469+ unsigned disable_devs;
470+ void *data;
471+ int (*enable)(void *, unsigned);
472+ void (*disable)(void *, unsigned);
583473 };
584474
585475 #endif /* _ASM_ARCH_SA1111 */
arch/arm/include/asm/hardware/timer-sp.h+14−1
@@ -1,2 +1,15 @@
1−void sp804_clocksource_init(void __iomem *, const char *);
1+void __sp804_clocksource_and_sched_clock_init(void __iomem *,
2+ const char *, int);
3+
4+static inline void sp804_clocksource_init(void __iomem *base, const char *name)
5+{
6+ __sp804_clocksource_and_sched_clock_init(base, name, 0);
7+}
8+
9+static inline void sp804_clocksource_and_sched_clock_init(void __iomem *base,
10+ const char *name)
11+{
12+ __sp804_clocksource_and_sched_clock_init(base, name, 1);
13+}
14+
215 void sp804_clockevents_init(void __iomem *, unsigned int, const char *);
arch/arm/include/asm/io.h+34−39
@@ -26,7 +26,6 @@ · 25 unmodified lines
2626 #include <linux/types.h>
2727 #include <asm/byteorder.h>
2828 #include <asm/memory.h>
29−#include <asm/system.h>
3029 #include <asm-generic/pci_iomap.h>
3130
3231 /*
@@ -83,6 +82,11 @@ extern void __iomem *__arm_ioremap_pfn(unsigned long, unsigned long, size_t, uns · 50 unmodified lines
8382 extern void __iomem *__arm_ioremap(unsigned long, size_t, unsigned int);
8483 extern void __iomem *__arm_ioremap_exec(unsigned long, size_t, bool cached);
8584 extern void __iounmap(volatile void __iomem *addr);
85+extern void __arm_iounmap(volatile void __iomem *addr);
86+
87+extern void __iomem * (*arch_ioremap_caller)(unsigned long, size_t,
88+ unsigned int, void *);
89+extern void (*arch_iounmap)(volatile void __iomem *);
8690
8791 /*
8892 * Bad read/write accesses...
@@ -97,8 +101,11 @@ static inline void __iomem *__typesafe_io(unsigned long addr) · 8 unmodified lines
97101 return (void __iomem *)addr;
98102 }
99103
104+#define IOMEM(x) ((void __force __iomem *)(x))
105+
100106 /* IO barriers */
101107 #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
108+#include <asm/barrier.h>
102109 #define __iormb() rmb()
103110 #define __iowmb() wmb()
104111 #else
@@ -109,7 +116,11 @@ static inline void __iomem *__typesafe_io(unsigned long addr) · 4 unmodified lines
109116 /*
110117 * Now, pick up the machine-defined IO definitions
111118 */
119+#ifdef CONFIG_NEED_MACH_IO_H
112120 #include <mach/io.h>
121+#else
122+#define __io(a) __typesafe_io((a) & IO_SPACE_LIMIT)
123+#endif
113124
114125 /*
115126 * This is the limit of PC card/PCI/ISA IO space, which is by default
@@ -211,18 +222,18 @@ extern void _memset_io(volatile void __iomem *, int, size_t); · 95 unmodified lines
211222 * Again, this are defined to perform little endian accesses. See the
212223 * IO port primitives for more information.
213224 */
214−#ifdef __mem_pci
215−#define readb_relaxed(c) ({ u8 __r = __raw_readb(__mem_pci(c)); __r; })
225+#ifndef readl
226+#define readb_relaxed(c) ({ u8 __r = __raw_readb(c); __r; })
216227 #define readw_relaxed(c) ({ u16 __r = le16_to_cpu((__force __le16) \
217− __raw_readw(__mem_pci(c))); __r; })
228+ __raw_readw(c)); __r; })
218229 #define readl_relaxed(c) ({ u32 __r = le32_to_cpu((__force __le32) \
219− __raw_readl(__mem_pci(c))); __r; })
230+ __raw_readl(c)); __r; })
220231
221−#define writeb_relaxed(v,c) ((void)__raw_writeb(v,__mem_pci(c)))
232+#define writeb_relaxed(v,c) ((void)__raw_writeb(v,c))
222233 #define writew_relaxed(v,c) ((void)__raw_writew((__force u16) \
223− cpu_to_le16(v),__mem_pci(c)))
234+ cpu_to_le16(v),c))
224235 #define writel_relaxed(v,c) ((void)__raw_writel((__force u32) \
225− cpu_to_le32(v),__mem_pci(c)))
236+ cpu_to_le32(v),c))
226237
227238 #define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; })
228239 #define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(); __v; })
@@ -232,30 +243,19 @@ extern void _memset_io(volatile void __iomem *, int, size_t); · 3 unmodified lines
232243 #define writew(v,c) ({ __iowmb(); writew_relaxed(v,c); })
233244 #define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
234245
235−#define readsb(p,d,l) __raw_readsb(__mem_pci(p),d,l)
236−#define readsw(p,d,l) __raw_readsw(__mem_pci(p),d,l)
237−#define readsl(p,d,l) __raw_readsl(__mem_pci(p),d,l)
238−
239−#define writesb(p,d,l) __raw_writesb(__mem_pci(p),d,l)
240−#define writesw(p,d,l) __raw_writesw(__mem_pci(p),d,l)
241−#define writesl(p,d,l) __raw_writesl(__mem_pci(p),d,l)
246+#define readsb(p,d,l) __raw_readsb(p,d,l)
247+#define readsw(p,d,l) __raw_readsw(p,d,l)
248+#define readsl(p,d,l) __raw_readsl(p,d,l)
242249
243−#define memset_io(c,v,l) _memset_io(__mem_pci(c),(v),(l))
244−#define memcpy_fromio(a,c,l) _memcpy_fromio((a),__mem_pci(c),(l))
245−#define memcpy_toio(c,a,l) _memcpy_toio(__mem_pci(c),(a),(l))
250+#define writesb(p,d,l) __raw_writesb(p,d,l)
251+#define writesw(p,d,l) __raw_writesw(p,d,l)
252+#define writesl(p,d,l) __raw_writesl(p,d,l)
246253
247−#elif !defined(readb)
254+#define memset_io(c,v,l) _memset_io(c,(v),(l))
255+#define memcpy_fromio(a,c,l) _memcpy_fromio((a),c,(l))
256+#define memcpy_toio(c,a,l) _memcpy_toio(c,(a),(l))
248257
249−#define readb(c) (__readwrite_bug("readb"),0)
250−#define readw(c) (__readwrite_bug("readw"),0)
251−#define readl(c) (__readwrite_bug("readl"),0)
252−#define writeb(v,c) __readwrite_bug("writeb")
253−#define writew(v,c) __readwrite_bug("writew")
254−#define writel(v,c) __readwrite_bug("writel")
255−
256−#define check_signature(io,sig,len) (0)
257−
258−#endif /* __mem_pci */
258+#endif /* readl */
259259
260260 /*
261261 * ioremap and friends.
@@ -264,16 +264,11 @@ extern void _memset_io(volatile void __iomem *, int, size_t); · 2 unmodified lines
264264 * Documentation/io-mapping.txt.
265265 *
266266 */
267−#ifndef __arch_ioremap
268−#define __arch_ioremap __arm_ioremap
269−#define __arch_iounmap __iounmap
270−#endif
271−
272−#define ioremap(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
273−#define ioremap_nocache(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
274−#define ioremap_cached(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_CACHED)
275−#define ioremap_wc(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_WC)
276−#define iounmap __arch_iounmap
267+#define ioremap(cookie,size) __arm_ioremap((cookie), (size), MT_DEVICE)
268+#define ioremap_nocache(cookie,size) __arm_ioremap((cookie), (size), MT_DEVICE)
269+#define ioremap_cached(cookie,size) __arm_ioremap((cookie), (size), MT_DEVICE_CACHED)
270+#define ioremap_wc(cookie,size) __arm_ioremap((cookie), (size), MT_DEVICE_WC)
271+#define iounmap __arm_iounmap
277272
278273 /*
279274 * io{read,write}{8,16,32} macros
arch/arm/include/asm/irq.h+6−2
@@ -1,14 +1,18 @@
11 #ifndef __ASM_ARM_IRQ_H
22 #define __ASM_ARM_IRQ_H
33
4+#define NR_IRQS_LEGACY 16
5+
6+#ifndef CONFIG_SPARSE_IRQ
47 #include <mach/irqs.h>
8+#else
9+#define NR_IRQS NR_IRQS_LEGACY
10+#endif
511
612 #ifndef irq_canonicalize
713 #define irq_canonicalize(i) (i)
814 #endif
915
10−#define NR_IRQS_LEGACY 16
11−
1216 /*
1317 * Use this value to indicate lack of interrupt
1418 * capability
arch/arm/include/asm/jump_label.h+41−0
@@ -0,0 +1,41 @@
1+#ifndef _ASM_ARM_JUMP_LABEL_H
2+#define _ASM_ARM_JUMP_LABEL_H
3+
4+#ifdef __KERNEL__
5+
6+#include <linux/types.h>
7+#include <asm/system.h>
8+
9+#define JUMP_LABEL_NOP_SIZE 4
10+
11+#ifdef CONFIG_THUMB2_KERNEL
12+#define JUMP_LABEL_NOP "nop.w"
13+#else
14+#define JUMP_LABEL_NOP "nop"
15+#endif
16+
17+static __always_inline bool arch_static_branch(struct static_key *key)
18+{
19+ asm goto("1:\n\t"
20+ JUMP_LABEL_NOP "\n\t"
21+ ".pushsection __jump_table, \"aw\"\n\t"
22+ ".word 1b, %l[l_yes], %c0\n\t"
23+ ".popsection\n\t"
24+ : : "i" (key) : : l_yes);
25+
26+ return false;
27+l_yes:
28+ return true;
29+}
30+
31+#endif /* __KERNEL__ */
32+
33+typedef u32 jump_label_t;
34+
35+struct jump_entry {
36+ jump_label_t code;
37+ jump_label_t target;
38+ jump_label_t key;
39+};
40+
41+#endif
arch/arm/include/asm/localtimer.h+7−30
@@ -11,47 +11,24 @@ · 10 unmodified lines
1111 #define __ASM_ARM_LOCALTIMER_H
1212
1313 #include <linux/errno.h>
14−#include <linux/interrupt.h>
1514
1615 struct clock_event_device;
1716
18−/*
19− * Setup a per-cpu timer, whether it be a local timer or dummy broadcast
20− */
21−void percpu_timer_setup(void);
17+struct local_timer_ops {
18+ int (*setup)(struct clock_event_device *);
19+ void (*stop)(struct clock_event_device *);
20+};
2221
2322 #ifdef CONFIG_LOCAL_TIMERS
24−
25−#ifdef CONFIG_HAVE_ARM_TWD
26−
27−#include "smp_twd.h"
28−
29−#define local_timer_stop(c) twd_timer_stop((c))
30−
31−#else
32−
33−/*
34− * Stop the local timer
35− */
36−void local_timer_stop(struct clock_event_device *);
37−
38−#endif
39−
4023 /*
41− * Setup a local timer interrupt for a CPU.
24+ * Register a local timer driver
4225 */
43−int local_timer_setup(struct clock_event_device *);
44−
26+int local_timer_register(struct local_timer_ops *);
4527 #else
46−
47−static inline int local_timer_setup(struct clock_event_device *evt)
28+static inline int local_timer_register(struct local_timer_ops *ops)
4829 {
4930 return -ENXIO;
5031 }
51−
52−static inline void local_timer_stop(struct clock_event_device *evt)
53−{
54−}
5532 #endif
5633
5734 #endif
arch/arm/include/asm/mc146818rtc.h+3−1
@@ -5,7 +5,9 @@ · 4 unmodified lines
55 #define _ASM_MC146818RTC_H
66
77 #include <linux/io.h>
8−#include <mach/irqs.h>
8+#include <linux/kernel.h>
9+
10+#define RTC_IRQ BUILD_BUG_ON(1)
911
1012 #ifndef RTC_PORT
1113 #define RTC_PORT(x) (0x70 + (x))
arch/arm/include/asm/memory.h+2−0
@@ -116,6 +116,8 @@ · 115 unmodified lines
116116 #define MODULES_END (END_MEM)
117117 #define MODULES_VADDR (PHYS_OFFSET)
118118
119+#define XIP_VIRT_ADDR(physaddr) (physaddr)
120+
119121 #endif /* !CONFIG_MMU */
120122
121123 /*
arch/arm/include/asm/mmu.h+7−0
@@ -34,4 +34,11 @@ typedef struct { · 33 unmodified lines
3434
3535 #endif
3636
37+/*
38+ * switch_mm() may do a full cache flush over the context switch,
39+ * so enable interrupts over the context switch to avoid high
40+ * latency.
41+ */
42+#define __ARCH_WANT_INTERRUPTS_ON_CTXSW
43+
3744 #endif
arch/arm/include/asm/mmu_context.h+1−28
@@ -18,6 +18,7 @@ · 17 unmodified lines
1818 #include <asm/cacheflush.h>
1919 #include <asm/cachetype.h>
2020 #include <asm/proc-fns.h>
21+#include <asm-generic/mm_hooks.h>
2122
2223 void __check_kvm_seq(struct mm_struct *mm);
2324
@@ -133,32 +134,4 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next, · 109 unmodified lines
133134 #define deactivate_mm(tsk,mm) do { } while (0)
134135 #define activate_mm(prev,next) switch_mm(prev, next, NULL)
135136
136−/*
137− * We are inserting a "fake" vma for the user-accessible vector page so
138− * gdb and friends can get to it through ptrace and /proc/<pid>/mem.
139− * But we also want to remove it before the generic code gets to see it
140− * during process exit or the unmapping of it would cause total havoc.
141− * (the macro is used as remove_vma() is static to mm/mmap.c)
142− */
143−#define arch_exit_mmap(mm) \
144−do { \
145− struct vm_area_struct *high_vma = find_vma(mm, 0xffff0000); \
146− if (high_vma) { \
147− BUG_ON(high_vma->vm_next); /* it should be last */ \
148− if (high_vma->vm_prev) \
149− high_vma->vm_prev->vm_next = NULL; \
150− else \
151− mm->mmap = NULL; \
152− rb_erase(&high_vma->vm_rb, &mm->mm_rb); \
153− mm->mmap_cache = NULL; \
154− mm->map_count--; \
155− remove_vma(high_vma); \
156− } \
157−} while (0)
158−
159−static inline void arch_dup_mmap(struct mm_struct *oldmm,
160− struct mm_struct *mm)
161−{
162−}
163−
164137 #endif
arch/arm/include/asm/opcodes.h+59−0
@@ -17,4 +17,63 @@ extern asmlinkage unsigned int arm_check_condition(u32 opcode, u32 psr); · 16 unmodified lines
1717 #define ARM_OPCODE_CONDTEST_PASS 1
1818 #define ARM_OPCODE_CONDTEST_UNCOND 2
1919
20+
21+/*
22+ * Opcode byteswap helpers
23+ *
24+ * These macros help with converting instructions between a canonical integer
25+ * format and in-memory representation, in an endianness-agnostic manner.
26+ *
27+ * __mem_to_opcode_*() convert from in-memory representation to canonical form.
28+ * __opcode_to_mem_*() convert from canonical form to in-memory representation.
29+ *
30+ *
31+ * Canonical instruction representation:
32+ *
33+ * ARM: 0xKKLLMMNN
34+ * Thumb 16-bit: 0x0000KKLL, where KK < 0xE8
35+ * Thumb 32-bit: 0xKKLLMMNN, where KK >= 0xE8
36+ *
37+ * There is no way to distinguish an ARM instruction in canonical representation
38+ * from a Thumb instruction (just as these cannot be distinguished in memory).
39+ * Where this distinction is important, it needs to be tracked separately.
40+ *
41+ * Note that values in the range 0x0000E800..0xE7FFFFFF intentionally do not
42+ * represent any valid Thumb-2 instruction. For this range,
43+ * __opcode_is_thumb32() and __opcode_is_thumb16() will both be false.
44+ */
45+
46+#ifndef __ASSEMBLY__
47+
48+#include <linux/types.h>
49+#include <linux/swab.h>
50+
51+#ifdef CONFIG_CPU_ENDIAN_BE8
52+#define __opcode_to_mem_arm(x) swab32(x)
53+#define __opcode_to_mem_thumb16(x) swab16(x)
54+#define __opcode_to_mem_thumb32(x) swahb32(x)
55+#else
56+#define __opcode_to_mem_arm(x) ((u32)(x))
57+#define __opcode_to_mem_thumb16(x) ((u16)(x))
58+#define __opcode_to_mem_thumb32(x) swahw32(x)
59+#endif
60+
61+#define __mem_to_opcode_arm(x) __opcode_to_mem_arm(x)
62+#define __mem_to_opcode_thumb16(x) __opcode_to_mem_thumb16(x)
63+#define __mem_to_opcode_thumb32(x) __opcode_to_mem_thumb32(x)
64+
65+/* Operations specific to Thumb opcodes */
66+
67+/* Instruction size checks: */
68+#define __opcode_is_thumb32(x) ((u32)(x) >= 0xE8000000UL)
69+#define __opcode_is_thumb16(x) ((u32)(x) < 0xE800UL)
70+
71+/* Operations to construct or split 32-bit Thumb instructions: */
72+#define __opcode_thumb32_first(x) ((u16)((x) >> 16))
73+#define __opcode_thumb32_second(x) ((u16)(x))
74+#define __opcode_thumb32_compose(first, second) \
75+ (((u32)(u16)(first) << 16) | (u32)(u16)(second))
76+
77+#endif /* __ASSEMBLY__ */
78+
2079 #endif /* __ASM_ARM_OPCODES_H */
arch/arm/include/asm/page.h+2−0
@@ -151,6 +151,8 @@ extern void __cpu_copy_user_highpage(struct page *to, struct page *from, · 150 unmodified lines
151151 #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
152152 extern void copy_page(void *to, const void *from);
153153
154+#define __HAVE_ARCH_GATE_AREA 1
155+
154156 #ifdef CONFIG_ARM_LPAE
155157 #include <asm/pgtable-3level-types.h>
156158 #else
arch/arm/include/asm/pci.h+0−8
@@ -57,14 +57,6 @@ static inline void pci_dma_burst_advice(struct pci_dev *pdev, · 56 unmodified lines
5757 extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
5858 enum pci_mmap_state mmap_state, int write_combine);
5959
60−extern void
61−pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
62− struct resource *res);
63−
64−extern void
65−pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
66− struct pci_bus_region *region);
67−
6860 /*
6961 * Dummy implementation; always return 0.
7062 */
arch/arm/include/asm/perf_event.h+1−0
@@ -22,6 +22,7 @@ enum arm_perf_pmu_ids { · 21 unmodified lines
2222 ARM_PERF_PMU_ID_CA9,
2323 ARM_PERF_PMU_ID_CA5,
2424 ARM_PERF_PMU_ID_CA15,
25+ ARM_PERF_PMU_ID_CA7,
2526 ARM_NUM_PMU_IDS,
2627 };
2728
arch/arm/include/asm/posix_types.h+9−46
@@ -19,59 +19,22 @@ · 18 unmodified lines
1919 * assume GCC is being used.
2020 */
2121
22−typedef unsigned long __kernel_ino_t;
2322 typedef unsigned short __kernel_mode_t;
23+#define __kernel_mode_t __kernel_mode_t
24+
2425 typedef unsigned short __kernel_nlink_t;
25−typedef long __kernel_off_t;
26−typedef int __kernel_pid_t;
26+#define __kernel_nlink_t __kernel_nlink_t
27+
2728 typedef unsigned short __kernel_ipc_pid_t;
29+#define __kernel_ipc_pid_t __kernel_ipc_pid_t
30+
2831 typedef unsigned short __kernel_uid_t;
2932 typedef unsigned short __kernel_gid_t;
30−typedef unsigned int __kernel_size_t;
31−typedef int __kernel_ssize_t;
32−typedef int __kernel_ptrdiff_t;
33−typedef long __kernel_time_t;
34−typedef long __kernel_suseconds_t;
35−typedef long __kernel_clock_t;
36−typedef int __kernel_timer_t;
37−typedef int __kernel_clockid_t;
38−typedef int __kernel_daddr_t;
39−typedef char * __kernel_caddr_t;
40−typedef unsigned short __kernel_uid16_t;
41−typedef unsigned short __kernel_gid16_t;
42−typedef unsigned int __kernel_uid32_t;
43−typedef unsigned int __kernel_gid32_t;
33+#define __kernel_uid_t __kernel_uid_t
4434
45−typedef unsigned short __kernel_old_uid_t;
46−typedef unsigned short __kernel_old_gid_t;
4735 typedef unsigned short __kernel_old_dev_t;
36+#define __kernel_old_dev_t __kernel_old_dev_t
4837
49−#ifdef __GNUC__
50−typedef long long __kernel_loff_t;
51−#endif
52−
53−typedef struct {
54− int val[2];
55−} __kernel_fsid_t;
56−
57−#if defined(__KERNEL__)
58−
59−#undef __FD_SET
60−#define __FD_SET(fd, fdsetp) \
61− (((fd_set *)(fdsetp))->fds_bits[(fd) >> 5] |= (1<<((fd) & 31)))
62−
63−#undef __FD_CLR
64−#define __FD_CLR(fd, fdsetp) \
65− (((fd_set *)(fdsetp))->fds_bits[(fd) >> 5] &= ~(1<<((fd) & 31)))
66−
67−#undef __FD_ISSET
68−#define __FD_ISSET(fd, fdsetp) \
69− ((((fd_set *)(fdsetp))->fds_bits[(fd) >> 5] & (1<<((fd) & 31))) != 0)
70−
71−#undef __FD_ZERO
72−#define __FD_ZERO(fdsetp) \
73− (memset (fdsetp, 0, sizeof (*(fd_set *)(fdsetp))))
74−
75−#endif
38+#include <asm-generic/posix_types.h>
7639
7740 #endif
arch/arm/include/asm/processor.h+2−2
@@ -22,7 +22,6 @@ · 21 unmodified lines
2222 #include <asm/hw_breakpoint.h>
2323 #include <asm/ptrace.h>
2424 #include <asm/types.h>
25−#include <asm/system.h>
2625
2726 #ifdef __KERNEL__
2827 #define STACK_TOP ((current->personality & ADDR_LIMIT_32BIT) ? \
@@ -56,7 +55,6 @@ struct thread_struct { · 27 unmodified lines
5655 #define start_thread(regs,pc,sp) \
5756 ({ \
5857 unsigned long *stack = (unsigned long *)sp; \
59− set_fs(USER_DS); \
6058 memset(regs->uregs, 0, sizeof(regs->uregs)); \
6159 if (current->personality & ADDR_LIMIT_32BIT) \
6260 regs->ARM_cpsr = USR_MODE; \
@@ -90,6 +88,8 @@ unsigned long get_wchan(struct task_struct *p); · 27 unmodified lines
9088 #define cpu_relax() barrier()
9189 #endif
9290
91+void cpu_idle_wait(void);
92+
9393 /*
9494 * Create a new kernel thread
9595 */
arch/arm/include/asm/prom.h+0−2
@@ -13,8 +13,6 @@ · 12 unmodified lines
1313
1414 #ifdef CONFIG_OF
1515
16−#include <asm/irq.h>
17−
1816 extern struct machine_desc *setup_machine_fdt(unsigned int dt_phys);
1917 extern void arm_dt_memblock_reserve(void);
2018
arch/arm/include/asm/smp_twd.h+21−4
@@ -18,11 +18,28 @@ · 17 unmodified lines
1818 #define TWD_TIMER_CONTROL_PERIODIC (1 << 1)
1919 #define TWD_TIMER_CONTROL_IT_ENABLE (1 << 2)
2020
21−struct clock_event_device;
21+#include <linux/ioport.h>
2222
23−extern void __iomem *twd_base;
23+struct twd_local_timer {
24+ struct resource res[2];
25+};
2426
25−void twd_timer_setup(struct clock_event_device *);
26−void twd_timer_stop(struct clock_event_device *);
27+#define DEFINE_TWD_LOCAL_TIMER(name,base,irq) \
28+struct twd_local_timer name __initdata = { \
29+ .res = { \
30+ DEFINE_RES_MEM(base, 0x10), \
31+ DEFINE_RES_IRQ(irq), \
32+ }, \
33+};
34+
35+int twd_local_timer_register(struct twd_local_timer *);
36+
37+#ifdef CONFIG_HAVE_ARM_TWD
38+void twd_local_timer_of_register(void);
39+#else
40+static inline void twd_local_timer_of_register(void)
41+{
42+}
43+#endif
2744
2845 #endif
arch/arm/include/asm/switch_to.h+18−0
@@ -0,0 +1,18 @@
1+#ifndef __ASM_ARM_SWITCH_TO_H
2+#define __ASM_ARM_SWITCH_TO_H
3+
4+#include <linux/thread_info.h>
5+
6+/*
7+ * switch_to(prev, next) should switch from task `prev' to `next'
8+ * `prev' will never be the same as `next'. schedule() itself
9+ * contains the memory barrier to tell GCC not to cache `current'.
10+ */
11+extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *);
12+
13+#define switch_to(prev,next,last) \
14+do { \
15+ last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \
16+} while (0)
17+
18+#endif /* __ASM_ARM_SWITCH_TO_H */
arch/arm/include/asm/system.h+8−543
@@ -1,543 +1,8 @@
1−#ifndef __ASM_ARM_SYSTEM_H
2−#define __ASM_ARM_SYSTEM_H
3−
4−#ifdef __KERNEL__
5−
6−#define CPU_ARCH_UNKNOWN 0
7−#define CPU_ARCH_ARMv3 1
8−#define CPU_ARCH_ARMv4 2
9−#define CPU_ARCH_ARMv4T 3
10−#define CPU_ARCH_ARMv5 4
11−#define CPU_ARCH_ARMv5T 5
12−#define CPU_ARCH_ARMv5TE 6
13−#define CPU_ARCH_ARMv5TEJ 7
14−#define CPU_ARCH_ARMv6 8
15−#define CPU_ARCH_ARMv7 9
16−
17−/*
18− * CR1 bits (CP#15 CR1)
19− */
20−#define CR_M (1 << 0) /* MMU enable */
21−#define CR_A (1 << 1) /* Alignment abort enable */
22−#define CR_C (1 << 2) /* Dcache enable */
23−#define CR_W (1 << 3) /* Write buffer enable */
24−#define CR_P (1 << 4) /* 32-bit exception handler */
25−#define CR_D (1 << 5) /* 32-bit data address range */
26−#define CR_L (1 << 6) /* Implementation defined */
27−#define CR_B (1 << 7) /* Big endian */
28−#define CR_S (1 << 8) /* System MMU protection */
29−#define CR_R (1 << 9) /* ROM MMU protection */
30−#define CR_F (1 << 10) /* Implementation defined */
31−#define CR_Z (1 << 11) /* Implementation defined */
32−#define CR_I (1 << 12) /* Icache enable */
33−#define CR_V (1 << 13) /* Vectors relocated to 0xffff0000 */
34−#define CR_RR (1 << 14) /* Round Robin cache replacement */
35−#define CR_L4 (1 << 15) /* LDR pc can set T bit */
36−#define CR_DT (1 << 16)
37−#define CR_IT (1 << 18)
38−#define CR_ST (1 << 19)
39−#define CR_FI (1 << 21) /* Fast interrupt (lower latency mode) */
40−#define CR_U (1 << 22) /* Unaligned access operation */
41−#define CR_XP (1 << 23) /* Extended page tables */
42−#define CR_VE (1 << 24) /* Vectored interrupts */
43−#define CR_EE (1 << 25) /* Exception (Big) Endian */
44−#define CR_TRE (1 << 28) /* TEX remap enable */
45−#define CR_AFE (1 << 29) /* Access flag enable */
46−#define CR_TE (1 << 30) /* Thumb exception enable */
47−
48−/*
49− * This is used to ensure the compiler did actually allocate the register we
50− * asked it for some inline assembly sequences. Apparently we can't trust
51− * the compiler from one version to another so a bit of paranoia won't hurt.
52− * This string is meant to be concatenated with the inline asm string and
53− * will cause compilation to stop on mismatch.
54− * (for details, see gcc PR 15089)
55− */
56−#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"
57−
58−#ifndef __ASSEMBLY__
59−
60−#include <linux/compiler.h>
61−#include <linux/linkage.h>
62−#include <linux/irqflags.h>
63−
64−#include <asm/outercache.h>
65−
66−struct thread_info;
67−struct task_struct;
68−
69−/* information about the system we're running on */
70−extern unsigned int system_rev;
71−extern unsigned int system_serial_low;
72−extern unsigned int system_serial_high;
73−extern unsigned int mem_fclk_21285;
74−
75−struct pt_regs;
76−
77−void die(const char *msg, struct pt_regs *regs, int err);
78−
79−struct siginfo;
80−void arm_notify_die(const char *str, struct pt_regs *regs, struct siginfo *info,
81− unsigned long err, unsigned long trap);
82−
83−#ifdef CONFIG_ARM_LPAE
84−#define FAULT_CODE_ALIGNMENT 33
85−#define FAULT_CODE_DEBUG 34
86−#else
87−#define FAULT_CODE_ALIGNMENT 1
88−#define FAULT_CODE_DEBUG 2
89−#endif
90−
91−void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
92− struct pt_regs *),
93− int sig, int code, const char *name);
94−
95−void hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int,
96− struct pt_regs *),
97− int sig, int code, const char *name);
98−
99−#define xchg(ptr,x) \
100− ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
101−
102−extern asmlinkage void c_backtrace(unsigned long fp, int pmode);
103−
104−struct mm_struct;
105−extern void show_pte(struct mm_struct *mm, unsigned long addr);
106−extern void __show_regs(struct pt_regs *);
107−
108−extern int __pure cpu_architecture(void);
109−extern void cpu_init(void);
110−
111−void soft_restart(unsigned long);
112−extern void (*arm_pm_restart)(char str, const char *cmd);
113−
114−#define UDBG_UNDEFINED (1 << 0)
115−#define UDBG_SYSCALL (1 << 1)
116−#define UDBG_BADABORT (1 << 2)
117−#define UDBG_SEGV (1 << 3)
118−#define UDBG_BUS (1 << 4)
119−
120−extern unsigned int user_debug;
121−
122−#if __LINUX_ARM_ARCH__ >= 4
123−#define vectors_high() (cr_alignment & CR_V)
124−#else
125−#define vectors_high() (0)
126−#endif
127−
128−#if __LINUX_ARM_ARCH__ >= 7 || \
129− (__LINUX_ARM_ARCH__ == 6 && defined(CONFIG_CPU_32v6K))
130−#define sev() __asm__ __volatile__ ("sev" : : : "memory")
131−#define wfe() __asm__ __volatile__ ("wfe" : : : "memory")
132−#define wfi() __asm__ __volatile__ ("wfi" : : : "memory")
133−#endif
134−
135−#if __LINUX_ARM_ARCH__ >= 7
136−#define isb() __asm__ __volatile__ ("isb" : : : "memory")
137−#define dsb() __asm__ __volatile__ ("dsb" : : : "memory")
138−#define dmb() __asm__ __volatile__ ("dmb" : : : "memory")
139−#elif defined(CONFIG_CPU_XSC3) || __LINUX_ARM_ARCH__ == 6
140−#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
141− : : "r" (0) : "memory")
142−#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
143− : : "r" (0) : "memory")
144−#define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
145− : : "r" (0) : "memory")
146−#elif defined(CONFIG_CPU_FA526)
147−#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
148− : : "r" (0) : "memory")
149−#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
150− : : "r" (0) : "memory")
151−#define dmb() __asm__ __volatile__ ("" : : : "memory")
152−#else
153−#define isb() __asm__ __volatile__ ("" : : : "memory")
154−#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
155− : : "r" (0) : "memory")
156−#define dmb() __asm__ __volatile__ ("" : : : "memory")
157−#endif
158−
159−#ifdef CONFIG_ARCH_HAS_BARRIERS
160−#include <mach/barriers.h>
161−#elif defined(CONFIG_ARM_DMA_MEM_BUFFERABLE) || defined(CONFIG_SMP)
162−#define mb() do { dsb(); outer_sync(); } while (0)
163−#define rmb() dsb()
164−#define wmb() mb()
165−#else
166−#include <asm/memory.h>
167−#define mb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0)
168−#define rmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0)
169−#define wmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0)
170−#endif
171−
172−#ifndef CONFIG_SMP
173−#define smp_mb() barrier()
174−#define smp_rmb() barrier()
175−#define smp_wmb() barrier()
176−#else
177−#define smp_mb() dmb()
178−#define smp_rmb() dmb()
179−#define smp_wmb() dmb()
180−#endif
181−
182−#define read_barrier_depends() do { } while(0)
183−#define smp_read_barrier_depends() do { } while(0)
184−
185−#define set_mb(var, value) do { var = value; smp_mb(); } while (0)
186−#define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t");
187−
188−extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
189−extern unsigned long cr_alignment; /* defined in entry-armv.S */
190−
191−static inline unsigned int get_cr(void)
192−{
193− unsigned int val;
194− asm("mrc p15, 0, %0, c1, c0, 0 @ get CR" : "=r" (val) : : "cc");
195− return val;
196−}
197−
198−static inline void set_cr(unsigned int val)
199−{
200− asm volatile("mcr p15, 0, %0, c1, c0, 0 @ set CR"
201− : : "r" (val) : "cc");
202− isb();
203−}
204−
205−#ifndef CONFIG_SMP
206−extern void adjust_cr(unsigned long mask, unsigned long set);
207−#endif
208−
209−#define CPACC_FULL(n) (3 << (n * 2))
210−#define CPACC_SVC(n) (1 << (n * 2))
211−#define CPACC_DISABLE(n) (0 << (n * 2))
212−
213−static inline unsigned int get_copro_access(void)
214−{
215− unsigned int val;
216− asm("mrc p15, 0, %0, c1, c0, 2 @ get copro access"
217− : "=r" (val) : : "cc");
218− return val;
219−}
220−
221−static inline void set_copro_access(unsigned int val)
222−{
223− asm volatile("mcr p15, 0, %0, c1, c0, 2 @ set copro access"
224− : : "r" (val) : "cc");
225− isb();
226−}
227−
228−/*
229− * switch_mm() may do a full cache flush over the context switch,
230− * so enable interrupts over the context switch to avoid high
231− * latency.
232− */
233−#define __ARCH_WANT_INTERRUPTS_ON_CTXSW
234−
235−/*
236− * switch_to(prev, next) should switch from task `prev' to `next'
237− * `prev' will never be the same as `next'. schedule() itself
238− * contains the memory barrier to tell GCC not to cache `current'.
239− */
240−extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *);
241−
242−#define switch_to(prev,next,last) \
243−do { \
244− last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \
245−} while (0)
246−
247−#if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110)
248−/*
249− * On the StrongARM, "swp" is terminally broken since it bypasses the
250− * cache totally. This means that the cache becomes inconsistent, and,
251− * since we use normal loads/stores as well, this is really bad.
252− * Typically, this causes oopsen in filp_close, but could have other,
253− * more disastrous effects. There are two work-arounds:
254− * 1. Disable interrupts and emulate the atomic swap
255− * 2. Clean the cache, perform atomic swap, flush the cache
256− *
257− * We choose (1) since its the "easiest" to achieve here and is not
258− * dependent on the processor type.
259− *
260− * NOTE that this solution won't work on an SMP system, so explcitly
261− * forbid it here.
262− */
263−#define swp_is_buggy
264−#endif
265−
266−static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
267−{
268− extern void __bad_xchg(volatile void *, int);
269− unsigned long ret;
270−#ifdef swp_is_buggy
271− unsigned long flags;
272−#endif
273−#if __LINUX_ARM_ARCH__ >= 6
274− unsigned int tmp;
275−#endif
276−
277− smp_mb();
278−
279− switch (size) {
280−#if __LINUX_ARM_ARCH__ >= 6
281− case 1:
282− asm volatile("@ __xchg1\n"
283− "1: ldrexb %0, [%3]\n"
284− " strexb %1, %2, [%3]\n"
285− " teq %1, #0\n"
286− " bne 1b"
287− : "=&r" (ret), "=&r" (tmp)
288− : "r" (x), "r" (ptr)
289− : "memory", "cc");
290− break;
291− case 4:
292− asm volatile("@ __xchg4\n"
293− "1: ldrex %0, [%3]\n"
294− " strex %1, %2, [%3]\n"
295− " teq %1, #0\n"
296− " bne 1b"
297− : "=&r" (ret), "=&r" (tmp)
298− : "r" (x), "r" (ptr)
299− : "memory", "cc");
300− break;
301−#elif defined(swp_is_buggy)
302−#ifdef CONFIG_SMP
303−#error SMP is not supported on this platform
304−#endif
305− case 1:
306− raw_local_irq_save(flags);
307− ret = *(volatile unsigned char *)ptr;
308− *(volatile unsigned char *)ptr = x;
309− raw_local_irq_restore(flags);
310− break;
311−
312− case 4:
313− raw_local_irq_save(flags);
314− ret = *(volatile unsigned long *)ptr;
315− *(volatile unsigned long *)ptr = x;
316− raw_local_irq_restore(flags);
317− break;
318−#else
319− case 1:
320− asm volatile("@ __xchg1\n"
321− " swpb %0, %1, [%2]"
322− : "=&r" (ret)
323− : "r" (x), "r" (ptr)
324− : "memory", "cc");
325− break;
326− case 4:
327− asm volatile("@ __xchg4\n"
328− " swp %0, %1, [%2]"
329− : "=&r" (ret)
330− : "r" (x), "r" (ptr)
331− : "memory", "cc");
332− break;
333−#endif
334− default:
335− __bad_xchg(ptr, size), ret = 0;
336− break;
337− }
338− smp_mb();
339−
340− return ret;
341−}
342−
343−extern void disable_hlt(void);
344−extern void enable_hlt(void);
345−
346−void cpu_idle_wait(void);
347−
348−#include <asm-generic/cmpxchg-local.h>
349−
350−#if __LINUX_ARM_ARCH__ < 6
351−/* min ARCH < ARMv6 */
352−
353−#ifdef CONFIG_SMP
354−#error "SMP is not supported on this platform"
355−#endif
356−
357−/*
358− * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make
359− * them available.
360− */
361−#define cmpxchg_local(ptr, o, n) \
362− ((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\
363− (unsigned long)(n), sizeof(*(ptr))))
364−#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
365−
366−#ifndef CONFIG_SMP
367−#include <asm-generic/cmpxchg.h>
368−#endif
369−
370−#else /* min ARCH >= ARMv6 */
371−
372−extern void __bad_cmpxchg(volatile void *ptr, int size);
373−
374−/*
375− * cmpxchg only support 32-bits operands on ARMv6.
376− */
377−
378−static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
379− unsigned long new, int size)
380−{
381− unsigned long oldval, res;
382−
383− switch (size) {
384−#ifndef CONFIG_CPU_V6 /* min ARCH >= ARMv6K */
385− case 1:
386− do {
387− asm volatile("@ __cmpxchg1\n"
388− " ldrexb %1, [%2]\n"
389− " mov %0, #0\n"
390− " teq %1, %3\n"
391− " strexbeq %0, %4, [%2]\n"
392− : "=&r" (res), "=&r" (oldval)
393− : "r" (ptr), "Ir" (old), "r" (new)
394− : "memory", "cc");
395− } while (res);
396− break;
397− case 2:
398− do {
399− asm volatile("@ __cmpxchg1\n"
400− " ldrexh %1, [%2]\n"
401− " mov %0, #0\n"
402− " teq %1, %3\n"
403− " strexheq %0, %4, [%2]\n"
404− : "=&r" (res), "=&r" (oldval)
405− : "r" (ptr), "Ir" (old), "r" (new)
406− : "memory", "cc");
407− } while (res);
408− break;
409−#endif
410− case 4:
411− do {
412− asm volatile("@ __cmpxchg4\n"
413− " ldrex %1, [%2]\n"
414− " mov %0, #0\n"
415− " teq %1, %3\n"
416− " strexeq %0, %4, [%2]\n"
417− : "=&r" (res), "=&r" (oldval)
418− : "r" (ptr), "Ir" (old), "r" (new)
419− : "memory", "cc");
420− } while (res);
421− break;
422− default:
423− __bad_cmpxchg(ptr, size);
424− oldval = 0;
425− }
426−
427− return oldval;
428−}
429−
430−static inline unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old,
431− unsigned long new, int size)
432−{
433− unsigned long ret;
434−
435− smp_mb();
436− ret = __cmpxchg(ptr, old, new, size);
437− smp_mb();
438−
439− return ret;
440−}
441−
442−#define cmpxchg(ptr,o,n) \
443− ((__typeof__(*(ptr)))__cmpxchg_mb((ptr), \
444− (unsigned long)(o), \
445− (unsigned long)(n), \
446− sizeof(*(ptr))))
447−
448−static inline unsigned long __cmpxchg_local(volatile void *ptr,
449− unsigned long old,
450− unsigned long new, int size)
451−{
452− unsigned long ret;
453−
454− switch (size) {
455−#ifdef CONFIG_CPU_V6 /* min ARCH == ARMv6 */
456− case 1:
457− case 2:
458− ret = __cmpxchg_local_generic(ptr, old, new, size);
459− break;
460−#endif
461− default:
462− ret = __cmpxchg(ptr, old, new, size);
463− }
464−
465− return ret;
466−}
467−
468−#define cmpxchg_local(ptr,o,n) \
469− ((__typeof__(*(ptr)))__cmpxchg_local((ptr), \
470− (unsigned long)(o), \
471− (unsigned long)(n), \
472− sizeof(*(ptr))))
473−
474−#ifndef CONFIG_CPU_V6 /* min ARCH >= ARMv6K */
475−
476−/*
477− * Note : ARMv7-M (currently unsupported by Linux) does not support
478− * ldrexd/strexd. If ARMv7-M is ever supported by the Linux kernel, it should
479− * not be allowed to use __cmpxchg64.
480− */
481−static inline unsigned long long __cmpxchg64(volatile void *ptr,
482− unsigned long long old,
483− unsigned long long new)
484−{
485− register unsigned long long oldval asm("r0");
486− register unsigned long long __old asm("r2") = old;
487− register unsigned long long __new asm("r4") = new;
488− unsigned long res;
489−
490− do {
491− asm volatile(
492− " @ __cmpxchg8\n"
493− " ldrexd %1, %H1, [%2]\n"
494− " mov %0, #0\n"
495− " teq %1, %3\n"
496− " teqeq %H1, %H3\n"
497− " strexdeq %0, %4, %H4, [%2]\n"
498− : "=&r" (res), "=&r" (oldval)
499− : "r" (ptr), "Ir" (__old), "r" (__new)
500− : "memory", "cc");
501− } while (res);
502−
503− return oldval;
504−}
505−
506−static inline unsigned long long __cmpxchg64_mb(volatile void *ptr,
507− unsigned long long old,
508− unsigned long long new)
509−{
510− unsigned long long ret;
511−
512− smp_mb();
513− ret = __cmpxchg64(ptr, old, new);
514− smp_mb();
515−
516− return ret;
517−}
518−
519−#define cmpxchg64(ptr,o,n) \
520− ((__typeof__(*(ptr)))__cmpxchg64_mb((ptr), \
521− (unsigned long long)(o), \
522− (unsigned long long)(n)))
523−
524−#define cmpxchg64_local(ptr,o,n) \
525− ((__typeof__(*(ptr)))__cmpxchg64((ptr), \
526− (unsigned long long)(o), \
527− (unsigned long long)(n)))
528−
529−#else /* min ARCH = ARMv6 */
530−
531−#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
532−
533−#endif
534−
535−#endif /* __LINUX_ARM_ARCH__ >= 6 */
536−
537−#endif /* __ASSEMBLY__ */
538−
539−#define arch_align_stack(x) (x)
540−
541−#endif /* __KERNEL__ */
542−
543−#endif
1+/* FILE TO BE DELETED. DO NOT ADD STUFF HERE! */
2+#include <asm/barrier.h>
3+#include <asm/compiler.h>
4+#include <asm/cmpxchg.h>
5+#include <asm/exec.h>
6+#include <asm/switch_to.h>
7+#include <asm/system_info.h>
8+#include <asm/system_misc.h>
arch/arm/include/asm/system_info.h+27−0
@@ -0,0 +1,27 @@
1+#ifndef __ASM_ARM_SYSTEM_INFO_H
2+#define __ASM_ARM_SYSTEM_INFO_H
3+
4+#define CPU_ARCH_UNKNOWN 0
5+#define CPU_ARCH_ARMv3 1
6+#define CPU_ARCH_ARMv4 2
7+#define CPU_ARCH_ARMv4T 3
8+#define CPU_ARCH_ARMv5 4
9+#define CPU_ARCH_ARMv5T 5
10+#define CPU_ARCH_ARMv5TE 6
11+#define CPU_ARCH_ARMv5TEJ 7
12+#define CPU_ARCH_ARMv6 8
13+#define CPU_ARCH_ARMv7 9
14+
15+#ifndef __ASSEMBLY__
16+
17+/* information about the system we're running on */
18+extern unsigned int system_rev;
19+extern unsigned int system_serial_low;
20+extern unsigned int system_serial_high;
21+extern unsigned int mem_fclk_21285;
22+
23+extern int __pure cpu_architecture(void);
24+
25+#endif /* !__ASSEMBLY__ */
26+
27+#endif /* __ASM_ARM_SYSTEM_INFO_H */
arch/arm/include/asm/system_misc.h+29−0
@@ -0,0 +1,29 @@
1+#ifndef __ASM_ARM_SYSTEM_MISC_H
2+#define __ASM_ARM_SYSTEM_MISC_H
3+
4+#ifndef __ASSEMBLY__
5+
6+#include <linux/compiler.h>
7+#include <linux/linkage.h>
8+#include <linux/irqflags.h>
9+
10+extern void cpu_init(void);
11+
12+void soft_restart(unsigned long);
13+extern void (*arm_pm_restart)(char str, const char *cmd);
14+extern void (*arm_pm_idle)(void);
15+
16+#define UDBG_UNDEFINED (1 << 0)
17+#define UDBG_SYSCALL (1 << 1)
18+#define UDBG_BADABORT (1 << 2)
19+#define UDBG_SEGV (1 << 3)
20+#define UDBG_BUS (1 << 4)
21+
22+extern unsigned int user_debug;
23+
24+extern void disable_hlt(void);
25+extern void enable_hlt(void);
26+
27+#endif /* !__ASSEMBLY__ */
28+
29+#endif /* __ASM_ARM_SYSTEM_MISC_H */
arch/arm/include/asm/tlbflush.h+58−78
@@ -318,6 +318,21 @@ extern struct cpu_tlb_fns cpu_tlb; · 317 unmodified lines
318318
319319 #define tlb_flag(f) ((always_tlb_flags & (f)) || (__tlb_flag & possible_tlb_flags & (f)))
320320
321+#define __tlb_op(f, insnarg, arg) \
322+ do { \
323+ if (always_tlb_flags & (f)) \
324+ asm("mcr " insnarg \
325+ : : "r" (arg) : "cc"); \
326+ else if (possible_tlb_flags & (f)) \
327+ asm("tst %1, %2\n\t" \
328+ "mcrne " insnarg \
329+ : : "r" (arg), "r" (__tlb_flag), "Ir" (f) \
330+ : "cc"); \
331+ } while (0)
332+
333+#define tlb_op(f, regs, arg) __tlb_op(f, "p15, 0, %0, " regs, arg)
334+#define tlb_l2_op(f, regs, arg) __tlb_op(f, "p15, 1, %0, " regs, arg)
335+
321336 static inline void local_flush_tlb_all(void)
322337 {
323338 const int zero = 0;
@@ -326,16 +341,11 @@ static inline void local_flush_tlb_all(void) · 2 unmodified lines
326341 if (tlb_flag(TLB_WB))
327342 dsb();
328343
329− if (tlb_flag(TLB_V3_FULL))
330− asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (zero) : "cc");
331− if (tlb_flag(TLB_V4_U_FULL | TLB_V6_U_FULL))
332− asm("mcr p15, 0, %0, c8, c7, 0" : : "r" (zero) : "cc");
333− if (tlb_flag(TLB_V4_D_FULL | TLB_V6_D_FULL))
334− asm("mcr p15, 0, %0, c8, c6, 0" : : "r" (zero) : "cc");
335− if (tlb_flag(TLB_V4_I_FULL | TLB_V6_I_FULL))
336− asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");
337− if (tlb_flag(TLB_V7_UIS_FULL))
338− asm("mcr p15, 0, %0, c8, c3, 0" : : "r" (zero) : "cc");
344+ tlb_op(TLB_V3_FULL, "c6, c0, 0", zero);
345+ tlb_op(TLB_V4_U_FULL | TLB_V6_U_FULL, "c8, c7, 0", zero);
346+ tlb_op(TLB_V4_D_FULL | TLB_V6_D_FULL, "c8, c6, 0", zero);
347+ tlb_op(TLB_V4_I_FULL | TLB_V6_I_FULL, "c8, c5, 0", zero);
348+ tlb_op(TLB_V7_UIS_FULL, "c8, c3, 0", zero);
339349
340350 if (tlb_flag(TLB_BARRIER)) {
341351 dsb();
@@ -352,29 +362,23 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm) · 10 unmodified lines
352362 if (tlb_flag(TLB_WB))
353363 dsb();
354364
355− if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) {
356− if (tlb_flag(TLB_V3_FULL))
357− asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (zero) : "cc");
358− if (tlb_flag(TLB_V4_U_FULL))
359− asm("mcr p15, 0, %0, c8, c7, 0" : : "r" (zero) : "cc");
360− if (tlb_flag(TLB_V4_D_FULL))
361− asm("mcr p15, 0, %0, c8, c6, 0" : : "r" (zero) : "cc");
362− if (tlb_flag(TLB_V4_I_FULL))
363− asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");
365+ if (possible_tlb_flags & (TLB_V3_FULL|TLB_V4_U_FULL|TLB_V4_D_FULL|TLB_V4_I_FULL)) {
366+ if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) {
367+ tlb_op(TLB_V3_FULL, "c6, c0, 0", zero);
368+ tlb_op(TLB_V4_U_FULL, "c8, c7, 0", zero);
369+ tlb_op(TLB_V4_D_FULL, "c8, c6, 0", zero);
370+ tlb_op(TLB_V4_I_FULL, "c8, c5, 0", zero);
371+ }
372+ put_cpu();
364373 }
365− put_cpu();
366−
367− if (tlb_flag(TLB_V6_U_ASID))
368− asm("mcr p15, 0, %0, c8, c7, 2" : : "r" (asid) : "cc");
369− if (tlb_flag(TLB_V6_D_ASID))
370− asm("mcr p15, 0, %0, c8, c6, 2" : : "r" (asid) : "cc");
371− if (tlb_flag(TLB_V6_I_ASID))
372− asm("mcr p15, 0, %0, c8, c5, 2" : : "r" (asid) : "cc");
373− if (tlb_flag(TLB_V7_UIS_ASID))
374+
375+ tlb_op(TLB_V6_U_ASID, "c8, c7, 2", asid);
376+ tlb_op(TLB_V6_D_ASID, "c8, c6, 2", asid);
377+ tlb_op(TLB_V6_I_ASID, "c8, c5, 2", asid);
374378 #ifdef CONFIG_ARM_ERRATA_720789
375− asm("mcr p15, 0, %0, c8, c3, 0" : : "r" (zero) : "cc");
379+ tlb_op(TLB_V7_UIS_ASID, "c8, c3, 0", zero);
376380 #else
377− asm("mcr p15, 0, %0, c8, c3, 2" : : "r" (asid) : "cc");
381+ tlb_op(TLB_V7_UIS_ASID, "c8, c3, 2", asid);
378382 #endif
379383
380384 if (tlb_flag(TLB_BARRIER))
@@ -392,30 +396,23 @@ local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) · 11 unmodified lines
392396 if (tlb_flag(TLB_WB))
393397 dsb();
394398
395− if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) {
396− if (tlb_flag(TLB_V3_PAGE))
397− asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (uaddr) : "cc");
398− if (tlb_flag(TLB_V4_U_PAGE))
399− asm("mcr p15, 0, %0, c8, c7, 1" : : "r" (uaddr) : "cc");
400− if (tlb_flag(TLB_V4_D_PAGE))
401− asm("mcr p15, 0, %0, c8, c6, 1" : : "r" (uaddr) : "cc");
402− if (tlb_flag(TLB_V4_I_PAGE))
403− asm("mcr p15, 0, %0, c8, c5, 1" : : "r" (uaddr) : "cc");
399+ if (possible_tlb_flags & (TLB_V3_PAGE|TLB_V4_U_PAGE|TLB_V4_D_PAGE|TLB_V4_I_PAGE|TLB_V4_I_FULL) &&
400+ cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) {
401+ tlb_op(TLB_V3_PAGE, "c6, c0, 0", uaddr);
402+ tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", uaddr);
403+ tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", uaddr);
404+ tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", uaddr);
404405 if (!tlb_flag(TLB_V4_I_PAGE) && tlb_flag(TLB_V4_I_FULL))
405406 asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");
406407 }
407408
408− if (tlb_flag(TLB_V6_U_PAGE))
409− asm("mcr p15, 0, %0, c8, c7, 1" : : "r" (uaddr) : "cc");
410− if (tlb_flag(TLB_V6_D_PAGE))
411− asm("mcr p15, 0, %0, c8, c6, 1" : : "r" (uaddr) : "cc");
412− if (tlb_flag(TLB_V6_I_PAGE))
413− asm("mcr p15, 0, %0, c8, c5, 1" : : "r" (uaddr) : "cc");
414− if (tlb_flag(TLB_V7_UIS_PAGE))
409+ tlb_op(TLB_V6_U_PAGE, "c8, c7, 1", uaddr);
410+ tlb_op(TLB_V6_D_PAGE, "c8, c6, 1", uaddr);
411+ tlb_op(TLB_V6_I_PAGE, "c8, c5, 1", uaddr);
415412 #ifdef CONFIG_ARM_ERRATA_720789
416− asm("mcr p15, 0, %0, c8, c3, 3" : : "r" (uaddr & PAGE_MASK) : "cc");
413+ tlb_op(TLB_V7_UIS_PAGE, "c8, c3, 3", uaddr & PAGE_MASK);
417414 #else
418− asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (uaddr) : "cc");
415+ tlb_op(TLB_V7_UIS_PAGE, "c8, c3, 1", uaddr);
419416 #endif
420417
421418 if (tlb_flag(TLB_BARRIER))
@@ -432,25 +429,17 @@ static inline void local_flush_tlb_kernel_page(unsigned long kaddr) · 10 unmodified lines
432429 if (tlb_flag(TLB_WB))
433430 dsb();
434431
435− if (tlb_flag(TLB_V3_PAGE))
436− asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (kaddr) : "cc");
437− if (tlb_flag(TLB_V4_U_PAGE))
438− asm("mcr p15, 0, %0, c8, c7, 1" : : "r" (kaddr) : "cc");
439− if (tlb_flag(TLB_V4_D_PAGE))
440− asm("mcr p15, 0, %0, c8, c6, 1" : : "r" (kaddr) : "cc");
441− if (tlb_flag(TLB_V4_I_PAGE))
442− asm("mcr p15, 0, %0, c8, c5, 1" : : "r" (kaddr) : "cc");
432+ tlb_op(TLB_V3_PAGE, "c6, c0, 0", kaddr);
433+ tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", kaddr);
434+ tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", kaddr);
435+ tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", kaddr);
443436 if (!tlb_flag(TLB_V4_I_PAGE) && tlb_flag(TLB_V4_I_FULL))
444437 asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");
445438
446− if (tlb_flag(TLB_V6_U_PAGE))
447− asm("mcr p15, 0, %0, c8, c7, 1" : : "r" (kaddr) : "cc");
448− if (tlb_flag(TLB_V6_D_PAGE))
449− asm("mcr p15, 0, %0, c8, c6, 1" : : "r" (kaddr) : "cc");
450− if (tlb_flag(TLB_V6_I_PAGE))
451− asm("mcr p15, 0, %0, c8, c5, 1" : : "r" (kaddr) : "cc");
452− if (tlb_flag(TLB_V7_UIS_PAGE))
453− asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (kaddr) : "cc");
439+ tlb_op(TLB_V6_U_PAGE, "c8, c7, 1", kaddr);
440+ tlb_op(TLB_V6_D_PAGE, "c8, c6, 1", kaddr);
441+ tlb_op(TLB_V6_I_PAGE, "c8, c5, 1", kaddr);
442+ tlb_op(TLB_V7_UIS_PAGE, "c8, c3, 1", kaddr);
454443
455444 if (tlb_flag(TLB_BARRIER)) {
456445 dsb();
@@ -475,13 +464,8 @@ static inline void flush_pmd_entry(void *pmd) · 18 unmodified lines
475464 {
476465 const unsigned int __tlb_flag = __cpu_tlb_flags;
477466
478− if (tlb_flag(TLB_DCLEAN))
479− asm("mcr p15, 0, %0, c7, c10, 1 @ flush_pmd"
480− : : "r" (pmd) : "cc");
481−
482− if (tlb_flag(TLB_L2CLEAN_FR))
483− asm("mcr p15, 1, %0, c15, c9, 1 @ L2 flush_pmd"
484− : : "r" (pmd) : "cc");
467+ tlb_op(TLB_DCLEAN, "c7, c10, 1 @ flush_pmd", pmd);
468+ tlb_l2_op(TLB_L2CLEAN_FR, "c15, c9, 1 @ L2 flush_pmd", pmd);
485469
486470 if (tlb_flag(TLB_WB))
487471 dsb();
@@ -491,15 +475,11 @@ static inline void clean_pmd_entry(void *pmd) · 3 unmodified lines
491475 {
492476 const unsigned int __tlb_flag = __cpu_tlb_flags;
493477
494− if (tlb_flag(TLB_DCLEAN))
495− asm("mcr p15, 0, %0, c7, c10, 1 @ flush_pmd"
496− : : "r" (pmd) : "cc");
497−
498− if (tlb_flag(TLB_L2CLEAN_FR))
499− asm("mcr p15, 1, %0, c15, c9, 1 @ L2 flush_pmd"
500− : : "r" (pmd) : "cc");
478+ tlb_op(TLB_DCLEAN, "c7, c10, 1 @ flush_pmd", pmd);
479+ tlb_l2_op(TLB_L2CLEAN_FR, "c15, c9, 1 @ L2 flush_pmd", pmd);
501480 }
502481
482+#undef tlb_op
503483 #undef tlb_flag
504484 #undef always_tlb_flags
505485 #undef possible_tlb_flags
arch/arm/include/asm/traps.h+1−1
@@ -46,7 +46,7 @@ static inline int in_exception_text(unsigned long ptr) · 45 unmodified lines
4646 return in ? : __in_irqentry_text(ptr);
4747 }
4848
49−extern void __init early_trap_init(void);
49+extern void __init early_trap_init(void *);
5050 extern void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame);
5151 extern void ptrace_break(struct task_struct *tsk, struct pt_regs *regs);
5252
arch/arm/include/asm/uaccess.h+1−1
@@ -16,8 +16,8 @@ · 15 unmodified lines
1616 #include <asm/errno.h>
1717 #include <asm/memory.h>
1818 #include <asm/domain.h>
19−#include <asm/system.h>
2019 #include <asm/unified.h>
20+#include <asm/compiler.h>
2121
2222 #define VERIFY_READ 0
2323 #define VERIFY_WRITE 1
arch/arm/kernel/Makefile+9−11
@@ -7,6 +7,8 @@ AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET) · 6 unmodified lines
77
88 ifdef CONFIG_FUNCTION_TRACER
99 CFLAGS_REMOVE_ftrace.o = -pg
10+CFLAGS_REMOVE_insn.o = -pg
11+CFLAGS_REMOVE_patch.o = -pg
1012 endif
1113
1214 CFLAGS_REMOVE_return_address.o = -pg
@@ -14,30 +16,29 @@ CFLAGS_REMOVE_return_address.o = -pg · 1 unmodified line
1416 # Object file lists.
1517
1618 obj-y := elf.o entry-armv.o entry-common.o irq.o opcodes.o \
17− process.o ptrace.o return_address.o setup.o signal.o \
18− sys_arm.o stacktrace.o time.o traps.o
19+ process.o ptrace.o return_address.o sched_clock.o \
20+ setup.o signal.o stacktrace.o sys_arm.o time.o traps.o
1921
2022 obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += compat.o
2123
2224 obj-$(CONFIG_LEDS) += leds.o
2325 obj-$(CONFIG_OC_ETM) += etm.o
24−
26+obj-$(CONFIG_CPU_IDLE) += cpuidle.o
2527 obj-$(CONFIG_ISA_DMA_API) += dma.o
26−obj-$(CONFIG_ARCH_ACORN) += ecard.o
2728 obj-$(CONFIG_FIQ) += fiq.o fiqasm.o
2829 obj-$(CONFIG_MODULES) += armksyms.o module.o
2930 obj-$(CONFIG_ARTHUR) += arthur.o
3031 obj-$(CONFIG_ISA_DMA) += dma-isa.o
3132 obj-$(CONFIG_PCI) += bios32.o isa.o
3233 obj-$(CONFIG_ARM_CPU_SUSPEND) += sleep.o suspend.o
33−obj-$(CONFIG_HAVE_SCHED_CLOCK) += sched_clock.o
3434 obj-$(CONFIG_SMP) += smp.o smp_tlb.o
3535 obj-$(CONFIG_HAVE_ARM_SCU) += smp_scu.o
3636 obj-$(CONFIG_HAVE_ARM_TWD) += smp_twd.o
37−obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
38−obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
37+obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o insn.o
38+obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o insn.o
39+obj-$(CONFIG_JUMP_LABEL) += jump_label.o insn.o patch.o
3940 obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
40−obj-$(CONFIG_KPROBES) += kprobes.o kprobes-common.o
41+obj-$(CONFIG_KPROBES) += kprobes.o kprobes-common.o patch.o
4142 ifdef CONFIG_THUMB2_KERNEL
4243 obj-$(CONFIG_KPROBES) += kprobes-thumb.o
4344 else
@@ -62,9 +63,6 @@ obj-$(CONFIG_SWP_EMULATE) += swp_emulate.o · 18 unmodified lines
6263 CFLAGS_swp_emulate.o := -Wa,-march=armv7-a
6364 obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
6465
65−obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o
66−AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
67−
6866 obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o
6967 obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o
7068 obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o
arch/arm/kernel/armksyms.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
1818 #include <linux/io.h>
1919
2020 #include <asm/checksum.h>
21−#include <asm/system.h>
2221 #include <asm/ftrace.h>
2322
2423 /*
arch/arm/kernel/bios32.c+7−69
@@ -16,7 +16,6 @@ · 15 unmodified lines
1616 #include <asm/mach/pci.h>
1717
1818 static int debug_pci;
19−static int use_firmware;
2019
2120 /*
2221 * We can't use pci_find_device() here since we are
@@ -294,35 +293,12 @@ static inline int pdev_bad_for_parity(struct pci_dev *dev) · 271 unmodified lines
294293
295294 }
296295
297−/*
298− * Adjust the device resources from bus-centric to Linux-centric.
299− */
300−static void __devinit
301−pdev_fixup_device_resources(struct pci_sys_data *root, struct pci_dev *dev)
302−{
303− resource_size_t offset;
304− int i;
305−
306− for (i = 0; i < PCI_NUM_RESOURCES; i++) {
307− if (dev->resource[i].start == 0)
308− continue;
309− if (dev->resource[i].flags & IORESOURCE_MEM)
310− offset = root->mem_offset;
311− else
312− offset = root->io_offset;
313−
314− dev->resource[i].start += offset;
315− dev->resource[i].end += offset;
316− }
317−}
318−
319296 /*
320297 * pcibios_fixup_bus - Called after each bus is probed,
321298 * but before its children are examined.
322299 */
323300 void pcibios_fixup_bus(struct pci_bus *bus)
324301 {
325− struct pci_sys_data *root = bus->sysdata;
326302 struct pci_dev *dev;
327303 u16 features = PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_FAST_BACK;
328304
@@ -333,8 +309,6 @@ void pcibios_fixup_bus(struct pci_bus *bus) · 4 unmodified lines
333309 list_for_each_entry(dev, &bus->devices, bus_list) {
334310 u16 status;
335311
336− pdev_fixup_device_resources(root, dev);
337−
338312 pci_read_config_word(dev, PCI_STATUS, &status);
339313
340314 /*
@@ -399,43 +373,6 @@ void pcibios_fixup_bus(struct pci_bus *bus) · 58 unmodified lines
399373 EXPORT_SYMBOL(pcibios_fixup_bus);
400374 #endif
401375
402−/*
403− * Convert from Linux-centric to bus-centric addresses for bridge devices.
404− */
405−void
406−pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
407− struct resource *res)
408−{
409− struct pci_sys_data *root = dev->sysdata;
410− unsigned long offset = 0;
411−
412− if (res->flags & IORESOURCE_IO)
413− offset = root->io_offset;
414− if (res->flags & IORESOURCE_MEM)
415− offset = root->mem_offset;
416−
417− region->start = res->start - offset;
418− region->end = res->end - offset;
419−}
420−EXPORT_SYMBOL(pcibios_resource_to_bus);
421−
422−void __devinit
423−pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
424− struct pci_bus_region *region)
425−{
426− struct pci_sys_data *root = dev->sysdata;
427− unsigned long offset = 0;
428−
429− if (res->flags & IORESOURCE_IO)
430− offset = root->io_offset;
431− if (res->flags & IORESOURCE_MEM)
432− offset = root->mem_offset;
433−
434− res->start = region->start + offset;
435− res->end = region->end + offset;
436−}
437−EXPORT_SYMBOL(pcibios_bus_to_resource);
438−
439376 /*
440377 * Swizzle the device pin each time we cross a bridge.
441378 * This might update pin and returns the slot number.
@@ -497,10 +434,10 @@ static void __init pcibios_init_hw(struct hw_pci *hw) · 55 unmodified lines
497434
498435 if (ret > 0) {
499436 if (list_empty(&sys->resources)) {
500− pci_add_resource(&sys->resources,
501− &ioport_resource);
502− pci_add_resource(&sys->resources,
503− &iomem_resource);
437+ pci_add_resource_offset(&sys->resources,
438+ &ioport_resource, sys->io_offset);
439+ pci_add_resource_offset(&sys->resources,
440+ &iomem_resource, sys->mem_offset);
504441 }
505442
506443 sys->bus = hw->scan(nr, sys);
@@ -525,6 +462,7 @@ void __init pci_common_init(struct hw_pci *hw) · 18 unmodified lines
525462
526463 INIT_LIST_HEAD(&hw->buses);
527464
465+ pci_add_flags(PCI_REASSIGN_ALL_RSRC);
528466 if (hw->preinit)
529467 hw->preinit();
530468 pcibios_init_hw(hw);
@@ -536,7 +474,7 @@ void __init pci_common_init(struct hw_pci *hw) · 5 unmodified lines
536474 list_for_each_entry(sys, &hw->buses, node) {
537475 struct pci_bus *bus = sys->bus;
538476
539− if (!use_firmware) {
477+ if (!pci_has_flag(PCI_PROBE_ONLY)) {
540478 /*
541479 * Size the bridge windows.
542480 */
@@ -573,7 +511,7 @@ char * __init pcibios_setup(char *str) · 30 unmodified lines
573511 debug_pci = 1;
574512 return NULL;
575513 } else if (!strcmp(str, "firmware")) {
576− use_firmware = 1;
514+ pci_add_flags(PCI_PROBE_ONLY);
577515 return NULL;
578516 }
579517 return str;
arch/arm/kernel/cpuidle.c+21−0
@@ -0,0 +1,21 @@
1+/*
2+ * Copyright 2012 Linaro Ltd.
3+ *
4+ * The code contained herein is licensed under the GNU General Public
5+ * License. You may obtain a copy of the GNU General Public License
6+ * Version 2 or later at the following locations:
7+ *
8+ * http://www.opensource.org/licenses/gpl-license.html
9+ * http://www.gnu.org/copyleft/gpl.html
10+ */
11+
12+#include <linux/cpuidle.h>
13+#include <asm/proc-fns.h>
14+
15+int arm_cpuidle_simple_enter(struct cpuidle_device *dev,
16+ struct cpuidle_driver *drv, int index)
17+{
18+ cpu_do_idle();
19+
20+ return index;
21+}
arch/arm/kernel/debug.S+25−1
@@ -10,6 +10,7 @@ · 9 unmodified lines
1010 * 32-bit debugging code
1111 */
1212 #include <linux/linkage.h>
13+#include <asm/assembler.h>
1314
1415 .text
1516
@@ -100,7 +101,7 @@ · 84 unmodified lines
100101
101102 #endif /* CONFIG_CPU_V6 */
102103
103−#else
104+#elif !defined(CONFIG_DEBUG_SEMIHOSTING)
104105 #include <mach/debug-macro.S>
105106 #endif /* CONFIG_DEBUG_ICEDCC */
106107
@@ -155,6 +156,8 @@ hexbuf: .space 16 · 48 unmodified lines
155156
156157 .ltorg
157158
159+#ifndef CONFIG_DEBUG_SEMIHOSTING
160+
158161 ENTRY(printascii)
159162 addruart_current r3, r1, r2
160163 b 2f
@@ -177,3 +180,24 @@ ENTRY(printch) · 16 unmodified lines
177180 mov r0, #0
178181 b 1b
179182 ENDPROC(printch)
183+
184+#else
185+
186+ENTRY(printascii)
187+ mov r1, r0
188+ mov r0, #0x04 @ SYS_WRITE0
189+ ARM( svc #0x123456 )
190+ THUMB( svc #0xab )
191+ mov pc, lr
192+ENDPROC(printascii)
193+
194+ENTRY(printch)
195+ adr r1, hexbuf
196+ strb r0, [r1]
197+ mov r0, #0x03 @ SYS_WRITEC
198+ ARM( svc #0x123456 )
199+ THUMB( svc #0xab )
200+ mov pc, lr
201+ENDPROC(printch)
202+
203+#endif
arch/arm/kernel/elf.c+1−0
@@ -3,6 +3,7 @@ · 2 unmodified lines
33 #include <linux/personality.h>
44 #include <linux/binfmts.h>
55 #include <linux/elf.h>
6+#include <asm/system_info.h>
67
78 int elf_check_arch(const struct elf32_hdr *x)
89 {
arch/arm/kernel/entry-armv.S+4−2
@@ -15,16 +15,19 @@ · 14 unmodified lines
1515 * that causes it to save wrong values... Be aware!
1616 */
1717
18+#include <asm/assembler.h>
1819 #include <asm/memory.h>
1920 #include <asm/glue-df.h>
2021 #include <asm/glue-pf.h>
2122 #include <asm/vfpmacros.h>
23+#ifndef CONFIG_MULTI_IRQ_HANDLER
2224 #include <mach/entry-macro.S>
25+#endif
2326 #include <asm/thread_notify.h>
2427 #include <asm/unwind.h>
2528 #include <asm/unistd.h>
2629 #include <asm/tls.h>
27−#include <asm/system.h>
30+#include <asm/system_info.h>
2831
2932 #include "entry-header.S"
3033 #include <asm/entry-macro-multi.S>
@@ -1101,7 +1104,6 @@ __stubs_start: · 1070 unmodified lines
11011104 * get out of that mode without clobbering one register.
11021105 */
11031106 vector_fiq:
1104− disable_fiq
11051107 subs pc, lr, #4
11061108
11071109 /*=============================================================================
arch/arm/kernel/entry-common.S+7−1
@@ -10,9 +10,15 @@ · 9 unmodified lines
1010
1111 #include <asm/unistd.h>
1212 #include <asm/ftrace.h>
13−#include <mach/entry-macro.S>
1413 #include <asm/unwind.h>
1514
15+#ifdef CONFIG_NEED_RET_TO_USER
16+#include <mach/entry-macro.S>
17+#else
18+ .macro arch_ret_to_user, tmp1, tmp2
19+ .endm
20+#endif
21+
1622 #include "entry-header.S"
1723
1824
arch/arm/kernel/fiq.c+1−1
@@ -42,9 +42,9 @@ · 41 unmodified lines
4242 #include <linux/seq_file.h>
4343
4444 #include <asm/cacheflush.h>
45+#include <asm/cp15.h>
4546 #include <asm/fiq.h>
4647 #include <asm/irq.h>
47−#include <asm/system.h>
4848 #include <asm/traps.h>
4949
5050 static unsigned long no_fiq_insn;
arch/arm/kernel/ftrace.c+28−72
@@ -16,10 +16,13 @@ · 15 unmodified lines
1616 #include <linux/uaccess.h>
1717
1818 #include <asm/cacheflush.h>
19+#include <asm/opcodes.h>
1920 #include <asm/ftrace.h>
2021
22+#include "insn.h"
23+
2124 #ifdef CONFIG_THUMB2_KERNEL
22−#define NOP 0xeb04f85d /* pop.w {lr} */
25+#define NOP 0xf85deb04 /* pop.w {lr} */
2326 #else
2427 #define NOP 0xe8bd4000 /* pop {lr} */
2528 #endif
@@ -60,76 +63,31 @@ static unsigned long adjust_address(struct dyn_ftrace *rec, unsigned long addr) · 34 unmodified lines
6063 }
6164 #endif
6265
63−#ifdef CONFIG_THUMB2_KERNEL
64−static unsigned long ftrace_gen_branch(unsigned long pc, unsigned long addr,
65− bool link)
66−{
67− unsigned long s, j1, j2, i1, i2, imm10, imm11;
68− unsigned long first, second;
69− long offset;
70−
71− offset = (long)addr - (long)(pc + 4);
72− if (offset < -16777216 || offset > 16777214) {
73− WARN_ON_ONCE(1);
74− return 0;
75− }
76−
77− s = (offset >> 24) & 0x1;
78− i1 = (offset >> 23) & 0x1;
79− i2 = (offset >> 22) & 0x1;
80− imm10 = (offset >> 12) & 0x3ff;
81− imm11 = (offset >> 1) & 0x7ff;
82−
83− j1 = (!i1) ^ s;
84− j2 = (!i2) ^ s;
85−
86− first = 0xf000 | (s << 10) | imm10;
87− second = 0x9000 | (j1 << 13) | (j2 << 11) | imm11;
88− if (link)
89− second |= 1 << 14;
90−
91− return (second << 16) | first;
92−}
93−#else
94−static unsigned long ftrace_gen_branch(unsigned long pc, unsigned long addr,
95− bool link)
96−{
97− unsigned long opcode = 0xea000000;
98− long offset;
99−
100− if (link)
101− opcode |= 1 << 24;
102−
103− offset = (long)addr - (long)(pc + 8);
104− if (unlikely(offset < -33554432 || offset > 33554428)) {
105− /* Can't generate branches that far (from ARM ARM). Ftrace
106− * doesn't generate branches outside of kernel text.
107− */
108− WARN_ON_ONCE(1);
109− return 0;
110− }
111−
112− offset = (offset >> 2) & 0x00ffffff;
113−
114− return opcode | offset;
115−}
116−#endif
117−
11866 static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)
11967 {
120− return ftrace_gen_branch(pc, addr, true);
68+ return arm_gen_branch_link(pc, addr);
12169 }
12270
12371 static int ftrace_modify_code(unsigned long pc, unsigned long old,
124− unsigned long new)
72+ unsigned long new, bool validate)
12573 {
12674 unsigned long replaced;
12775
128− if (probe_kernel_read(&replaced, (void *)pc, MCOUNT_INSN_SIZE))
129− return -EFAULT;
76+ if (IS_ENABLED(CONFIG_THUMB2_KERNEL)) {
77+ old = __opcode_to_mem_thumb32(old);
78+ new = __opcode_to_mem_thumb32(new);
79+ } else {
80+ old = __opcode_to_mem_arm(old);
81+ new = __opcode_to_mem_arm(new);
82+ }
13083
131− if (replaced != old)
132− return -EINVAL;
84+ if (validate) {
85+ if (probe_kernel_read(&replaced, (void *)pc, MCOUNT_INSN_SIZE))
86+ return -EFAULT;
87+
88+ if (replaced != old)
89+ return -EINVAL;
90+ }
13391
13492 if (probe_kernel_write((void *)pc, &new, MCOUNT_INSN_SIZE))
13593 return -EPERM;
@@ -141,23 +99,21 @@ static int ftrace_modify_code(unsigned long pc, unsigned long old, · 5 unmodified lines
14199
142100 int ftrace_update_ftrace_func(ftrace_func_t func)
143101 {
144− unsigned long pc, old;
102+ unsigned long pc;
145103 unsigned long new;
146104 int ret;
147105
148106 pc = (unsigned long)&ftrace_call;
149− memcpy(&old, &ftrace_call, MCOUNT_INSN_SIZE);
150107 new = ftrace_call_replace(pc, (unsigned long)func);
151108
152− ret = ftrace_modify_code(pc, old, new);
109+ ret = ftrace_modify_code(pc, 0, new, false);
153110
154111 #ifdef CONFIG_OLD_MCOUNT
155112 if (!ret) {
156113 pc = (unsigned long)&ftrace_call_old;
157− memcpy(&old, &ftrace_call_old, MCOUNT_INSN_SIZE);
158114 new = ftrace_call_replace(pc, (unsigned long)func);
159115
160− ret = ftrace_modify_code(pc, old, new);
116+ ret = ftrace_modify_code(pc, 0, new, false);
161117 }
162118 #endif
163119
@@ -172,7 +128,7 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr) · 8 unmodified lines
172128 old = ftrace_nop_replace(rec);
173129 new = ftrace_call_replace(ip, adjust_address(rec, addr));
174130
175− return ftrace_modify_code(rec->ip, old, new);
131+ return ftrace_modify_code(rec->ip, old, new, true);
176132 }
177133
178134 int ftrace_make_nop(struct module *mod,
@@ -185,7 +141,7 @@ int ftrace_make_nop(struct module *mod, · 6 unmodified lines
185141
186142 old = ftrace_call_replace(ip, adjust_address(rec, addr));
187143 new = ftrace_nop_replace(rec);
188− ret = ftrace_modify_code(ip, old, new);
144+ ret = ftrace_modify_code(ip, old, new, true);
189145
190146 #ifdef CONFIG_OLD_MCOUNT
191147 if (ret == -EINVAL && addr == MCOUNT_ADDR) {
@@ -193,7 +149,7 @@ int ftrace_make_nop(struct module *mod, · 1 unmodified line
193149
194150 old = ftrace_call_replace(ip, adjust_address(rec, addr));
195151 new = ftrace_nop_replace(rec);
196− ret = ftrace_modify_code(ip, old, new);
152+ ret = ftrace_modify_code(ip, old, new, true);
197153 }
198154 #endif
199155
@@ -249,12 +205,12 @@ static int __ftrace_modify_caller(unsigned long *callsite, · 49 unmodified lines
249205 {
250206 unsigned long caller_fn = (unsigned long) func;
251207 unsigned long pc = (unsigned long) callsite;
252− unsigned long branch = ftrace_gen_branch(pc, caller_fn, false);
208+ unsigned long branch = arm_gen_branch(pc, caller_fn);
253209 unsigned long nop = 0xe1a00000; /* mov r0, r0 */
254210 unsigned long old = enable ? nop : branch;
255211 unsigned long new = enable ? branch : nop;
256212
257− return ftrace_modify_code(pc, old, new);
213+ return ftrace_modify_code(pc, old, new, true);
258214 }
259215
260216 static int ftrace_modify_graph_caller(bool enable)
arch/arm/kernel/head-nommu.S+1−1
@@ -17,8 +17,8 @@ · 16 unmodified lines
1717 #include <asm/assembler.h>
1818 #include <asm/ptrace.h>
1919 #include <asm/asm-offsets.h>
20+#include <asm/cp15.h>
2021 #include <asm/thread_info.h>
21−#include <asm/system.h>
2222
2323 /*
2424 * Kernel startup entry point.
arch/arm/kernel/head.S+5−5
@@ -15,12 +15,12 @@ · 14 unmodified lines
1515 #include <linux/init.h>
1616
1717 #include <asm/assembler.h>
18+#include <asm/cp15.h>
1819 #include <asm/domain.h>
1920 #include <asm/ptrace.h>
2021 #include <asm/asm-offsets.h>
2122 #include <asm/memory.h>
2223 #include <asm/thread_info.h>
23−#include <asm/system.h>
2424 #include <asm/pgtable.h>
2525
2626 #ifdef CONFIG_DEBUG_LL
@@ -265,7 +265,7 @@ __create_page_tables: · 238 unmodified lines
265265 str r6, [r3]
266266
267267 #ifdef CONFIG_DEBUG_LL
268−#ifndef CONFIG_DEBUG_ICEDCC
268+#if !defined(CONFIG_DEBUG_ICEDCC) && !defined(CONFIG_DEBUG_SEMIHOSTING)
269269 /*
270270 * Map in IO space for serial debugging.
271271 * This allows debug messages to be output
@@ -297,10 +297,10 @@ __create_page_tables: · 25 unmodified lines
297297 cmp r0, r6
298298 blo 1b
299299
300−#else /* CONFIG_DEBUG_ICEDCC */
301− /* we don't need any serial debugging mappings for ICEDCC */
300+#else /* CONFIG_DEBUG_ICEDCC || CONFIG_DEBUG_SEMIHOSTING */
301+ /* we don't need any serial debugging mappings */
302302 ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags
303−#endif /* !CONFIG_DEBUG_ICEDCC */
303+#endif
304304
305305 #if defined(CONFIG_ARCH_NETWINDER) || defined(CONFIG_ARCH_CATS)
306306 /*
arch/arm/kernel/hw_breakpoint.c+0−1
@@ -34,7 +34,6 @@ · 33 unmodified lines
3434 #include <asm/current.h>
3535 #include <asm/hw_breakpoint.h>
3636 #include <asm/kdebug.h>
37−#include <asm/system.h>
3837 #include <asm/traps.h>
3938
4039 /* Breakpoint currently in use for each BRP. */
arch/arm/kernel/insn.c+62−0
@@ -0,0 +1,62 @@
1+#include <linux/bug.h>
2+#include <linux/kernel.h>
3+#include <asm/opcodes.h>
4+
5+static unsigned long
6+__arm_gen_branch_thumb2(unsigned long pc, unsigned long addr, bool link)
7+{
8+ unsigned long s, j1, j2, i1, i2, imm10, imm11;
9+ unsigned long first, second;
10+ long offset;
11+
12+ offset = (long)addr - (long)(pc + 4);
13+ if (offset < -16777216 || offset > 16777214) {
14+ WARN_ON_ONCE(1);
15+ return 0;
16+ }
17+
18+ s = (offset >> 24) & 0x1;
19+ i1 = (offset >> 23) & 0x1;
20+ i2 = (offset >> 22) & 0x1;
21+ imm10 = (offset >> 12) & 0x3ff;
22+ imm11 = (offset >> 1) & 0x7ff;
23+
24+ j1 = (!i1) ^ s;
25+ j2 = (!i2) ^ s;
26+
27+ first = 0xf000 | (s << 10) | imm10;
28+ second = 0x9000 | (j1 << 13) | (j2 << 11) | imm11;
29+ if (link)
30+ second |= 1 << 14;
31+
32+ return __opcode_thumb32_compose(first, second);
33+}
34+
35+static unsigned long
36+__arm_gen_branch_arm(unsigned long pc, unsigned long addr, bool link)
37+{
38+ unsigned long opcode = 0xea000000;
39+ long offset;
40+
41+ if (link)
42+ opcode |= 1 << 24;
43+
44+ offset = (long)addr - (long)(pc + 8);
45+ if (unlikely(offset < -33554432 || offset > 33554428)) {
46+ WARN_ON_ONCE(1);
47+ return 0;
48+ }
49+
50+ offset = (offset >> 2) & 0x00ffffff;
51+
52+ return opcode | offset;
53+}
54+
55+unsigned long
56+__arm_gen_branch(unsigned long pc, unsigned long addr, bool link)
57+{
58+ if (IS_ENABLED(CONFIG_THUMB2_KERNEL))
59+ return __arm_gen_branch_thumb2(pc, addr, link);
60+ else
61+ return __arm_gen_branch_arm(pc, addr, link);
62+}
arch/arm/kernel/insn.h+29−0
@@ -0,0 +1,29 @@
1+#ifndef __ASM_ARM_INSN_H
2+#define __ASM_ARM_INSN_H
3+
4+static inline unsigned long
5+arm_gen_nop(void)
6+{
7+#ifdef CONFIG_THUMB2_KERNEL
8+ return 0xf3af8000; /* nop.w */
9+#else
10+ return 0xe1a00000; /* mov r0, r0 */
11+#endif
12+}
13+
14+unsigned long
15+__arm_gen_branch(unsigned long pc, unsigned long addr, bool link);
16+
17+static inline unsigned long
18+arm_gen_branch(unsigned long pc, unsigned long addr)
19+{
20+ return __arm_gen_branch(pc, addr, false);
21+}
22+
23+static inline unsigned long
24+arm_gen_branch_link(unsigned long pc, unsigned long addr)
25+{
26+ return __arm_gen_branch(pc, addr, true);
27+}
28+
29+#endif
arch/arm/kernel/irq.c+1−5
@@ -36,7 +36,6 @@ · 35 unmodified lines
3636 #include <linux/proc_fs.h>
3737
3838 #include <asm/exception.h>
39−#include <asm/system.h>
4039 #include <asm/mach/arch.h>
4140 #include <asm/mach/irq.h>
4241 #include <asm/mach/time.h>
@@ -181,10 +180,7 @@ void migrate_irqs(void) · 138 unmodified lines
181180 local_irq_save(flags);
182181
183182 for_each_irq_desc(i, desc) {
184− bool affinity_broken = false;
185−
186− if (!desc)
187− continue;
183+ bool affinity_broken;
188184
189185 raw_spin_lock(&desc->lock);
190186 affinity_broken = migrate_one_irq(desc);
arch/arm/kernel/jump_label.c+39−0
@@ -0,0 +1,39 @@
1+#include <linux/kernel.h>
2+#include <linux/jump_label.h>
3+
4+#include "insn.h"
5+#include "patch.h"
6+
7+#ifdef HAVE_JUMP_LABEL
8+
9+static void __arch_jump_label_transform(struct jump_entry *entry,
10+ enum jump_label_type type,
11+ bool is_static)
12+{
13+ void *addr = (void *)entry->code;
14+ unsigned int insn;
15+
16+ if (type == JUMP_LABEL_ENABLE)
17+ insn = arm_gen_branch(entry->code, entry->target);
18+ else
19+ insn = arm_gen_nop();
20+
21+ if (is_static)
22+ __patch_text(addr, insn);
23+ else
24+ patch_text(addr, insn);
25+}
26+
27+void arch_jump_label_transform(struct jump_entry *entry,
28+ enum jump_label_type type)
29+{
30+ __arch_jump_label_transform(entry, type, false);
31+}
32+
33+void arch_jump_label_transform_static(struct jump_entry *entry,
34+ enum jump_label_type type)
35+{
36+ __arch_jump_label_transform(entry, type, true);
37+}
38+
39+#endif
arch/arm/kernel/kprobes-common.c+1−0
@@ -13,6 +13,7 @@ · 12 unmodified lines
1313
1414 #include <linux/kernel.h>
1515 #include <linux/kprobes.h>
16+#include <asm/system_info.h>
1617
1718 #include "kprobes.h"
1819
arch/arm/kernel/kprobes.c+25−63
@@ -29,6 +29,7 @@ · 28 unmodified lines
2929 #include <asm/cacheflush.h>
3030
3131 #include "kprobes.h"
32+#include "patch.h"
3233
3334 #define MIN_STACK_SIZE(addr) \
3435 min((unsigned long)MAX_STACK_SIZE, \
@@ -103,57 +104,33 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p) · 68 unmodified lines
103104 return 0;
104105 }
105106
106−#ifdef CONFIG_THUMB2_KERNEL
107−
108−/*
109− * For a 32-bit Thumb breakpoint spanning two memory words we need to take
110− * special precautions to insert the breakpoint atomically, especially on SMP
111− * systems. This is achieved by calling this arming function using stop_machine.
112− */
113−static int __kprobes set_t32_breakpoint(void *addr)
114−{
115− ((u16 *)addr)[0] = KPROBE_THUMB32_BREAKPOINT_INSTRUCTION >> 16;
116− ((u16 *)addr)[1] = KPROBE_THUMB32_BREAKPOINT_INSTRUCTION & 0xffff;
117− flush_insns(addr, 2*sizeof(u16));
118− return 0;
119−}
120−
121107 void __kprobes arch_arm_kprobe(struct kprobe *p)
122108 {
123− uintptr_t addr = (uintptr_t)p->addr & ~1; /* Remove any Thumb flag */
124−
125− if (!is_wide_instruction(p->opcode)) {
126− *(u16 *)addr = KPROBE_THUMB16_BREAKPOINT_INSTRUCTION;
127− flush_insns(addr, sizeof(u16));
128− } else if (addr & 2) {
129− /* A 32-bit instruction spanning two words needs special care */
130− stop_machine(set_t32_breakpoint, (void *)addr, &cpu_online_map);
109+ unsigned int brkp;
110+ void *addr;
111+
112+ if (IS_ENABLED(CONFIG_THUMB2_KERNEL)) {
113+ /* Remove any Thumb flag */
114+ addr = (void *)((uintptr_t)p->addr & ~1);
115+
116+ if (is_wide_instruction(p->opcode))
117+ brkp = KPROBE_THUMB32_BREAKPOINT_INSTRUCTION;
118+ else
119+ brkp = KPROBE_THUMB16_BREAKPOINT_INSTRUCTION;
131120 } else {
132− /* Word aligned 32-bit instruction can be written atomically */
133− u32 bkp = KPROBE_THUMB32_BREAKPOINT_INSTRUCTION;
134−#ifndef __ARMEB__ /* Swap halfwords for little-endian */

70 more lines aren’t shown here.

arch/arm/kernel/machine_kexec.c+26−1

This diff is large: its 53 lines aren’t shown here.

arch/arm/kernel/patch.c+75−0

This diff is large: its 76 lines aren’t shown here.

arch/arm/kernel/patch.h+7−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/kernel/perf_event.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/kernel/perf_event_v7.c+145−0

This diff is large: its 171 lines aren’t shown here.

arch/arm/kernel/process.c+43−22

This diff is large: its 124 lines aren’t shown here.

arch/arm/kernel/ptrace.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/kernel/sched_clock.c+18−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/kernel/setup.c+18−3

This diff is large: its 54 lines aren’t shown here.

arch/arm/kernel/signal.c+8−16

This diff is large: its 46 lines aren’t shown here.

arch/arm/kernel/sleep.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/kernel/smp.c+29−17

This diff is large: its 115 lines aren’t shown here.

arch/arm/kernel/smp_tlb.c+5−15

This diff is large: its 48 lines aren’t shown here.

arch/arm/kernel/smp_twd.c+105−24

This diff is large: its 194 lines aren’t shown here.

arch/arm/kernel/tcm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/kernel/thumbee.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/kernel/time.c+0−4

This diff is large: its 18 lines aren’t shown here.

arch/arm/kernel/traps.c+12−9

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-at91/Kconfig+6−27

This diff is large: its 111 lines aren’t shown here.

arch/arm/mach-at91/Makefile+1−4

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-at91/Makefile.boot+8−6

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-at91/at91cap9.c+0−396

This diff is large: its 397 lines aren’t shown here.

arch/arm/mach-at91/at91cap9_devices.c+0−1273

This diff is large: its 1274 lines aren’t shown here.

arch/arm/mach-at91/at91rm9200.c+15−2

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-at91/at91rm9200_devices.c+7−7

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-at91/at91rm9200_time.c+23−14

This diff is large: its 109 lines aren’t shown here.

arch/arm/mach-at91/at91sam9260.c+18−8

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-at91/at91sam9260_devices.c+53−9

This diff is large: its 144 lines aren’t shown here.

arch/arm/mach-at91/at91sam9261.c+5−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-at91/at91sam9261_devices.c+30−4

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-at91/at91sam9263.c+6−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-at91/at91sam9263_devices.c+67−11

This diff is large: its 179 lines aren’t shown here.

arch/arm/mach-at91/at91sam926x_time.c+66−2

This diff is large: its 110 lines aren’t shown here.

arch/arm/mach-at91/at91sam9_alt_reset.S+5−7

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-at91/at91sam9g45.c+10−0

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-at91/at91sam9g45_devices.c+148−10

This diff is large: its 271 lines aren’t shown here.

arch/arm/mach-at91/at91sam9g45_reset.S+5−7

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-at91/at91sam9rl.c+5−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-at91/at91sam9rl_devices.c+30−4

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-at91/at91sam9x5.c+361−0

This diff is large: its 362 lines aren’t shown here.

arch/arm/mach-at91/at91x40.c+13−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-at91/at91x40_time.c+17−11

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-at91/board-afeb-9260v1.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-at91/board-cam60.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-at91/board-cap9adk.c+0−396

This diff is large: its 397 lines aren’t shown here.

arch/arm/mach-at91/board-cpu9krea.c+4−2

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-at91/board-cpuat91.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-at91/board-dt.c+9−67

This diff is large: its 118 lines aren’t shown here.

arch/arm/mach-at91/board-eco920.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-at91/board-flexibity.c+11−1

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-at91/board-kb9202.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-at91/board-neocore926.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-at91/board-picotux200.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-at91/board-qil-a9260.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-at91/board-rm9200dk.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-at91/board-rm9200ek.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-at91/board-sam9-l9260.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-at91/board-sam9260ek.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-at91/board-sam9261ek.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-at91/board-sam9263ek.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-at91/board-sam9g20ek.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-at91/board-sam9m10g45ek.c+81−2

This diff is large: its 136 lines aren’t shown here.

arch/arm/mach-at91/board-sam9rlek.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-at91/board-snapper9260.c+8−3

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-at91/board-stamp9g20.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-at91/board-usb-a926x.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-at91/board-yl-9200.c+3−1

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-at91/clock.c+165−59

This diff is large: its 444 lines aren’t shown here.

arch/arm/mach-at91/cpuidle.c+19−45

This diff is large: its 96 lines aren’t shown here.

arch/arm/mach-at91/generic.h+18−1

This diff is large: its 71 lines aren’t shown here.

arch/arm/mach-at91/gpio.c+541−84

This diff is large: its 881 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91_matrix.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91_pio.h+25−0

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91_pmc.h+81−37

This diff is large: its 191 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91_ramc.h+32−0

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91_shdwc.h+3−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91_st.h+22−10

This diff is large: its 57 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91cap9.h+0−122

This diff is large: its 123 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91cap9_matrix.h+0−137

This diff is large: its 138 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91rm9200.h+3−7

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91rm9200_mc.h+7−51

This diff is large: its 96 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91rm9200_sdramc.h+63−0

This diff is large: its 64 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9260.h+8−6

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9260_matrix.h+18−18

This diff is large: its 67 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9261.h+4−6

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9261_matrix.h+9−9

This diff is large: its 49 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9263.h+5−7

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9263_matrix.h+37−37

This diff is large: its 123 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9_ddrsdr.h+0−16

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9_sdramc.h+0−6

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9g45.h+5−7

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9g45_matrix.h+42−42

This diff is large: its 142 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9rl.h+3−4

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9rl_matrix.h+21−21

This diff is large: its 84 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9x5.h+74−0

This diff is large: its 75 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91sam9x5_matrix.h+53−0

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at91x40.h+9−9

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-at91/include/mach/at_hdmac.h+0−15

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-at91/include/mach/board.h+11−19

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-at91/include/mach/cpu.h+0−21

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-at91/include/mach/entry-macro.S+0−6

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-at91/include/mach/gpio.h+5−12

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-at91/include/mach/hardware.h+5−4

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-at91/include/mach/io.h+1−23

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-at91/include/mach/system.h+0−50

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-at91/include/mach/system_rev.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-at91/include/mach/uncompress.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-at91/irq.c+103−29

This diff is large: its 217 lines aren’t shown here.

arch/arm/mach-at91/pm.c+17−24

This diff is large: its 106 lines aren’t shown here.

arch/arm/mach-at91/pm.h+49−47

This diff is large: its 145 lines aren’t shown here.

arch/arm/mach-at91/pm_slowclock.S+141−134

This diff is large: its 417 lines aren’t shown here.

arch/arm/mach-at91/setup.c+168−17

This diff is large: its 228 lines aren’t shown here.

arch/arm/mach-at91/soc.h+0−5

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-bcmring/core.c+2−21

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-bcmring/include/mach/entry-macro.S+0−6

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-bcmring/include/mach/system.h+0−28

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-clps711x/common.c+17−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-clps711x/edb7211-mm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-clps711x/include/mach/entry-macro.S+0−6

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-clps711x/include/mach/io.h+0−36

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-clps711x/include/mach/system.h+0−35

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-clps711x/include/mach/uncompress.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-clps711x/p720t-leds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-cns3xxx/core.c+4−4

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-cns3xxx/devices.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-cns3xxx/include/mach/entry-macro.S+0−15

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-cns3xxx/include/mach/io.h+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-cns3xxx/include/mach/system.h+0−25

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-cns3xxx/pcie.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-davinci/board-da850-evm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-davinci/board-dm355-evm.c+2−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-davinci/board-dm355-leopard.c+2−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-davinci/board-dm365-evm.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-davinci/board-dm644x-evm.c+121−14

This diff is large: its 213 lines aren’t shown here.

arch/arm/mach-davinci/board-dm646x-evm.c+11−21

This diff is large: its 118 lines aren’t shown here.

arch/arm/mach-davinci/board-neuros-osd2.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-davinci/board-sffsdr.c+2−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-davinci/cpufreq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-davinci/cpuidle.c+34−49

This diff is large: its 124 lines aren’t shown here.

arch/arm/mach-davinci/da850.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-davinci/davinci.h+102−0

This diff is large: its 103 lines aren’t shown here.

arch/arm/mach-davinci/devices.c+21−11

This diff is large: its 62 lines aren’t shown here.

arch/arm/mach-davinci/dm355.c+2−1

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-davinci/dm365.c+18−1

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-davinci/dm644x.c+173−20

This diff is large: its 281 lines aren’t shown here.

arch/arm/mach-davinci/dm646x.c+13−8

This diff is large: its 64 lines aren’t shown here.

arch/arm/mach-davinci/dma.c+1−5

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/dm355.h+0−32

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/dm365.h+1−52

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/dm644x.h+0−47

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/dm646x.h+1−41

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/edma.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/entry-macro.S+0−7

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/hardware.h+0−8

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/io.h+0−24

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/system.h+0−21

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-davinci/include/mach/uncompress.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-davinci/time.c+10−18

This diff is large: its 68 lines aren’t shown here.

arch/arm/mach-dove/addr-map.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-dove/include/mach/entry-macro.S+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-dove/include/mach/io.h+0−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-dove/include/mach/system.h+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-dove/pcie.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-ebsa110/core.c+46−9

This diff is large: its 111 lines aren’t shown here.

arch/arm/mach-ebsa110/core.h+41−0

This diff is large: its 42 lines aren’t shown here.

arch/arm/mach-ebsa110/include/mach/entry-macro.S+0−6

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-ebsa110/include/mach/hardware.h+0−39

This diff is large: its 49 lines aren’t shown here.

arch/arm/mach-ebsa110/include/mach/io.h+0−9

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-ebsa110/include/mach/system.h+0−37

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-ebsa110/io.c+20−0

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-ebsa110/leds.c+2−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-ep93xx/Makefile+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-ep93xx/adssphere.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ep93xx/clock.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ep93xx/core.c+39−42

This diff is large: its 140 lines aren’t shown here.

arch/arm/mach-ep93xx/crunch-bits.Srenamed from arch/arm/kernel/crunch-bits.S+0−0

File renamed without changes.

arch/arm/mach-ep93xx/crunch.crenamed from arch/arm/kernel/crunch.c+3−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-ep93xx/dma.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ep93xx/edb93xx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ep93xx/gesbc9312.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ep93xx/include/mach/entry-macro.S+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h+1−190

This diff is large: its 210 lines aren’t shown here.

arch/arm/mach-ep93xx/include/mach/gpio-ep93xx.h+10−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-ep93xx/include/mach/hardware.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ep93xx/include/mach/io.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-ep93xx/include/mach/platform.h+0−14

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-ep93xx/include/mach/system.h+0−7

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ep93xx/micro9.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ep93xx/simone.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ep93xx/snappercl15.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ep93xx/soc.h+213−0

This diff is large: its 214 lines aren’t shown here.

arch/arm/mach-ep93xx/ts72xx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ep93xx/vision_ep9307.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-exynos/Kconfig+38−6

This diff is large: its 142 lines aren’t shown here.

arch/arm/mach-exynos/Makefile+6−2

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-exynos/clock-exynos4.c+1581−0

This diff is large: its 1582 lines aren’t shown here.

arch/arm/mach-exynos/clock-exynos4.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-exynos/clock-exynos4210.c+23−25

This diff is large: its 112 lines aren’t shown here.

arch/arm/mach-exynos/clock-exynos4212.c+15−17

This diff is large: its 78 lines aren’t shown here.

arch/arm/mach-exynos/clock-exynos5.c+1247−0

This diff is large: its 1248 lines aren’t shown here.

arch/arm/mach-exynos/clock.c+0−1564

This diff is large: its 1565 lines aren’t shown here.

arch/arm/mach-exynos/common.c+401−132

This diff is large: its 791 lines aren’t shown here.

arch/arm/mach-exynos/common.h+27−13

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-exynos/cpuidle.c+147−4

This diff is large: its 210 lines aren’t shown here.

arch/arm/mach-exynos/dev-ahci.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-exynos/dev-audio.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-exynos/dev-uart.c+78−0

This diff is large: its 79 lines aren’t shown here.

arch/arm/mach-exynos/dma.c+114−41

This diff is large: its 198 lines aren’t shown here.

arch/arm/mach-exynos/hotplug.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/cpufreq.h+2−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/debug-macro.S+6−2

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/entry-macro.S+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/exynos4-clock.h+0−43

This diff is large: its 44 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/gpio.h+188−51

This diff is large: its 273 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/io.h+0−26

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/irqs.h+445−152

This diff is large: its 614 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/map.h+47−12

This diff is large: its 165 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/pmu.h+2−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/regs-clock.h+302−182

This diff is large: its 498 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/regs-gpio.h+9−11

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/regs-pmu.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/system.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-exynos/include/mach/uncompress.h+27−5

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-exynos/mach-exynos4-dt.c+4−4

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-exynos/mach-exynos5-dt.c+78−0

This diff is large: its 79 lines aren’t shown here.

arch/arm/mach-exynos/mach-nuri.c+82−53

This diff is large: its 314 lines aren’t shown here.

arch/arm/mach-exynos/mach-origen.c+38−1

This diff is large: its 112 lines aren’t shown here.

arch/arm/mach-exynos/mach-smdkv310.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-exynos/mach-universal_c210.c+82−13

This diff is large: its 243 lines aren’t shown here.

arch/arm/mach-exynos/mct.c+36−26

This diff is large: its 171 lines aren’t shown here.

arch/arm/mach-exynos/platsmp.c+6−3

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-exynos/pm.c+20−35

This diff is large: its 117 lines aren’t shown here.

arch/arm/mach-exynos/pm_domains.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-exynos/setup-i2c0.c+6−3

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-footbridge/common.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-footbridge/dc21285-timer.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-footbridge/dc21285.c+5−4

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-footbridge/ebsa285-leds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-footbridge/include/mach/entry-macro.S+0−6

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-footbridge/include/mach/io.h+0−13

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-footbridge/include/mach/system.h+0−13

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-footbridge/netwinder-hw.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-footbridge/netwinder-leds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-gemini/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-gemini/idle.c+29−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-gemini/include/mach/entry-macro.S+0−6

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-gemini/include/mach/io.h+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-gemini/include/mach/system.h+0−14

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-gemini/irq.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-h720x/common.c+19−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-h720x/include/mach/entry-macro.S+0−6

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-h720x/include/mach/io.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-h720x/include/mach/system.h+0−27

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-highbank/Makefile+0−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-highbank/highbank.c+4−2

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-highbank/include/mach/entry-macro.S+0−5

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-highbank/include/mach/io.h+0−7

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-highbank/include/mach/irqs.h+0−6

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-highbank/include/mach/memory.h+0−1

This diff is large: its 2 lines aren’t shown here.

arch/arm/mach-highbank/localtimer.c+0−40

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-imx/Kconfig+13−7

This diff is large: its 74 lines aren’t shown here.

arch/arm/mach-imx/Makefile+3−5

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-imx/Makefile.boot+3−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/clock-imx27.c+19−0

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-imx/clock-imx31.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/clock-imx35.c+76−92

This diff is large: its 301 lines aren’t shown here.

arch/arm/mach-imx/clock-imx6q.c+73−1

This diff is large: its 158 lines aren’t shown here.

arch/arm/mach-imx/cpu-imx5.c+0−36

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-imx/cpu_op-mx51.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-imx/crmregs-imx3.hrenamed from arch/arm/mach-imx/crmregs-imx31.h+15−1

This diff is large: its 46 lines aren’t shown here.

arch/arm/mach-imx/dma-v1.c+0−846

This diff is large: its 847 lines aren’t shown here.

arch/arm/mach-imx/imx27-dt.c+89−0

This diff is large: its 90 lines aren’t shown here.

arch/arm/mach-imx/imx51-dt.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-imx/imx53-dt.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-imx/include/mach/dma-v1.h+0−103

This diff is large: its 104 lines aren’t shown here.

arch/arm/mach-imx/lluart.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/localtimer.c+0−35

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-imx/mach-armadillo5x0.c+10−1

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-imx/mach-imx27_visstrim_m10.c+137−2

This diff is large: its 198 lines aren’t shown here.

arch/arm/mach-imx/mach-imx6q.c+4−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-imx/mach-kzm_arm11_01.c+9−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-imx/mach-mx21ads.c+15−1

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-imx/mach-mx27_3ds.c+108−0

This diff is large: its 178 lines aren’t shown here.

arch/arm/mach-imx/mach-mx31ads.c+32−3

This diff is large: its 93 lines aren’t shown here.

arch/arm/mach-imx/mach-mx31lilly.c+9−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-imx/mach-mx31lite.c+9−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-imx/mach-mx31moboard.c+4−2

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-imx/mach-mx35_3ds.c+216−0

This diff is large: its 273 lines aren’t shown here.

arch/arm/mach-imx/mach-mx51_efikamx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-imx/mach-mx51_efikasb.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-imx/mach-mx53_ard.c+8−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-imx/mach-pcm038.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/mm-imx3.c+43−33

This diff is large: its 129 lines aren’t shown here.

arch/arm/mach-imx/mm-imx5.c+22−17

This diff is large: its 75 lines aren’t shown here.

arch/arm/mach-imx/pm-imx27.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-imx/pm-imx3.c+37−0

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-imx/pm-imx5.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-integrator/core.c+15−59

This diff is large: its 93 lines aren’t shown here.

arch/arm/mach-integrator/impd1.c+3−6

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-integrator/include/mach/entry-macro.S+0−6

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-integrator/include/mach/io.h+0−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-integrator/include/mach/irqs.h+2−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-integrator/include/mach/system.h+0−33

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-integrator/integrator_ap.c+9−1

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-integrator/integrator_cp.c+11−41

This diff is large: its 88 lines aren’t shown here.

arch/arm/mach-integrator/leds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-integrator/pci.c+2−2

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-integrator/pci_v3.c+6−5

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-iop13xx/include/mach/entry-macro.S+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-iop13xx/include/mach/io.h+0−13

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-iop13xx/include/mach/iop13xx.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-iop13xx/include/mach/system.h+0−13

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-iop13xx/io.c+12−8

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-iop13xx/iq81340mc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-iop13xx/iq81340sc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-iop13xx/pci.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-iop13xx/pci.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-iop32x/include/mach/entry-macro.S+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-iop32x/include/mach/io.h+0−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-iop33x/include/mach/entry-macro.S+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-iop33x/include/mach/io.h+0−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-iop33x/include/mach/system.h+0−13

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-iop33x/uart.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp2000/core.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp2000/enp2611.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp2000/include/mach/entry-macro.S+0−6

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-ixp2000/include/mach/io.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp2000/include/mach/system.h+0−14

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-ixp2000/ixdp2400.c+2−3

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-ixp2000/ixdp2800.c+2−3

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-ixp2000/ixdp2x00.c+2−3

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-ixp2000/ixdp2x01.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp2000/pci.c+4−3

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-ixp23xx/core.c+4−1

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-ixp23xx/espresso.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp23xx/include/mach/entry-macro.S+0−6

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-ixp23xx/include/mach/io.h+0−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-ixp23xx/include/mach/system.h+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-ixp23xx/ixdp2351.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp23xx/pci.c+4−3

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-ixp23xx/roadrunner.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp4xx/avila-setup.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-ixp4xx/common-pci.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-ixp4xx/common.c+40−0

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-ixp4xx/coyote-setup.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-ixp4xx/dsmg600-setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp4xx/fsg-setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp4xx/gateway7001-setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp4xx/goramo_mlr.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-ixp4xx/gtwx5715-setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp4xx/include/mach/entry-macro.S+0−6

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-ixp4xx/include/mach/hardware.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ixp4xx/include/mach/io.h+1−23

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-ixp4xx/include/mach/platform.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp4xx/include/mach/system.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-ixp4xx/ixdp425-setup.c+4−0

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-ixp4xx/nas100d-setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp4xx/nslu2-setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp4xx/omixp-setup.c+3−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-ixp4xx/vulcan-setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ixp4xx/wg302v2-setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-kirkwood/Kconfig+14−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-kirkwood/Makefile+2−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-kirkwood/Makefile.boot+2−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-kirkwood/board-dreamplug.c+152−0

This diff is large: its 153 lines aren’t shown here.

arch/arm/mach-kirkwood/board-dt.c+75−0

This diff is large: its 76 lines aren’t shown here.

arch/arm/mach-kirkwood/common.c+5−6

This diff is large: its 53 lines aren’t shown here.

arch/arm/mach-kirkwood/common.h+15−0

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-kirkwood/cpuidle.c+21−51

This diff is large: its 99 lines aren’t shown here.

arch/arm/mach-kirkwood/include/mach/entry-macro.S+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-kirkwood/include/mach/io.h+0−2

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-kirkwood/include/mach/system.h+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-kirkwood/pcie.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-ks8695/include/mach/entry-macro.S+0−6

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-ks8695/include/mach/io.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-ks8695/include/mach/system.h+0−27

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-ks8695/pci.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-ks8695/time.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-lpc32xx/Kconfig+25−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-lpc32xx/clock.c+120−65

This diff is large: its 354 lines aren’t shown here.

arch/arm/mach-lpc32xx/common.c+69−0

This diff is large: its 76 lines aren’t shown here.

arch/arm/mach-lpc32xx/common.h+4−2

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-lpc32xx/include/mach/board.hrenamed from arch/arm/mach-lpc32xx/include/mach/system.h+5−8

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-lpc32xx/include/mach/entry-macro.S+0−6

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-lpc32xx/include/mach/io.h+0−27

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-lpc32xx/include/mach/platform.h+27−24

This diff is large: its 76 lines aren’t shown here.

arch/arm/mach-lpc32xx/irq.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-lpc32xx/phy3250.c+10−28

This diff is large: its 71 lines aren’t shown here.

arch/arm/mach-lpc32xx/pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-lpc32xx/timer.c+24−24

This diff is large: its 83 lines aren’t shown here.

arch/arm/mach-mmp/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-mmp/Makefile+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-mmp/aspenite.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-mmp/avengers_lite.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mmp/brownstone.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-mmp/common.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mmp/flint.c+2−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-mmp/gplugd.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mmp/include/mach/addr-map.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-mmp/include/mach/entry-macro.S+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-mmp/include/mach/io.h+0−21

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-mmp/include/mach/irqs.h+1−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mmp/include/mach/pxa910.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mmp/include/mach/regs-apbc.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mmp/include/mach/regs-rtc.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-mmp/include/mach/system.h+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-mmp/irq-mmp2.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mmp/jasper.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-mmp/mmp-dt.c+75−0

This diff is large: its 76 lines aren’t shown here.

arch/arm/mach-mmp/mmp2.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mmp/pxa168.c+4−0

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-mmp/pxa910.c+28−0

This diff is large: its 53 lines aren’t shown here.

arch/arm/mach-mmp/tavorevb.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mmp/teton_bga.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-mmp/ttc_dkb.c+3−2

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-msm/board-halibut.c+6−3

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-msm/board-sapphire.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-msm/board-trout-panel.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-msm/board-trout.c+7−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-msm/idle.S+0−36

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-msm/idle.c+49−0

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-msm/include/mach/entry-macro.S+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-msm/include/mach/io.h+0−36

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-msm/include/mach/msm_iomap-7x00.h+6−6

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-msm/include/mach/msm_iomap-7x30.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-msm/include/mach/msm_iomap-8960.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-msm/include/mach/msm_iomap-8x50.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-msm/include/mach/msm_iomap-8x60.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-msm/include/mach/msm_iomap.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-msm/include/mach/system.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-msm/include/mach/uncompress.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-msm/io.c+3−5

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-msm/proc_comm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-msm/smd_debug.c+1−7

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-msm/timer.c+54−37

This diff is large: its 133 lines aren’t shown here.

arch/arm/mach-mv78xx0/include/mach/entry-macro.S+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-mv78xx0/include/mach/io.h+0−2

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mv78xx0/include/mach/system.h+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-mv78xx0/pcie.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-mxs/Kconfig+16−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-mxs/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mxs/clock-mx23.c+6−29

This diff is large: its 89 lines aren’t shown here.

arch/arm/mach-mxs/clock-mx28.c+15−43

This diff is large: its 144 lines aren’t shown here.

arch/arm/mach-mxs/devices-mx23.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-mxs/devices-mx28.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-mxs/devices.c+5−3

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-mxs/devices/Kconfig+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-mxs/devices/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mxs/devices/amba-duart.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mxs/devices/platform-gpmi-nand.c+81−0

This diff is large: its 82 lines aren’t shown here.

arch/arm/mach-mxs/devices/platform-mxs-mmc.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mxs/include/mach/common.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-mxs/include/mach/devices-common.h+10−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-mxs/include/mach/digctl.h+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-mxs/include/mach/entry-macro.S+0−6

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-mxs/include/mach/hardware.h+0−6

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-mxs/include/mach/io.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-mxs/include/mach/mxs.h+16−13

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-mxs/include/mach/system.h+0−25

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-mxs/include/mach/uncompress.h+6−7

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-mxs/mach-apx4devkit.c+260−0

This diff is large: its 261 lines aren’t shown here.

arch/arm/mach-mxs/mach-m28evk.c+2−5

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-mxs/mach-mx28evk.c+18−62

This diff is large: its 142 lines aren’t shown here.

arch/arm/mach-mxs/pm.c+1−2

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-mxs/system.c+17−1

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-netx/fb.c+1−12

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-netx/generic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-netx/include/mach/entry-macro.S+0−26

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-netx/include/mach/hardware.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-netx/include/mach/netx-regs.h+8−8

This diff is large: its 72 lines aren’t shown here.

arch/arm/mach-netx/include/mach/system.h+0−28

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-nomadik/board-nhk8815.c+6−18

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-nomadik/cpu-8815.c+2−7

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-nomadik/include/mach/entry-macro.S+0−13

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-nomadik/include/mach/io.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-nomadik/include/mach/setup.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-nomadik/include/mach/system.h+0−32

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-omap1/Kconfig+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-omap1/ams-delta-fiq-handler.S+3−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-omap1/ams-delta-fiq.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap1/board-ams-delta.c+274−48

This diff is large: its 468 lines aren’t shown here.

arch/arm/mach-omap1/board-fsample.c+5−2

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-omap1/board-h2.c+7−7

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-omap1/board-h3.c+8−9

This diff is large: its 70 lines aren’t shown here.

arch/arm/mach-omap1/board-htcherald.c+5−6

This diff is large: its 60 lines aren’t shown here.

arch/arm/mach-omap1/board-innovator.c+7−4

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-omap1/board-nokia770.c+5−3

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-omap1/board-osk.c+9−10

This diff is large: its 87 lines aren’t shown here.

arch/arm/mach-omap1/board-palmte.c+4−2

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-omap1/board-palmtt.c+6−5

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-omap1/board-palmz71.c+6−5

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-omap1/board-perseus2.c+5−2

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-omap1/board-sx1.c+4−2

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-omap1/board-voiceblue.c+11−11

This diff is large: its 91 lines aren’t shown here.

arch/arm/mach-omap1/clock.c+4−1

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-omap1/clock_data.c+4−1

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-omap1/common.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-omap1/devices.c+4−4

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-omap1/dma.c+1−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-omap1/flash.c+9−15

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-omap1/fpga.c+4−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-omap1/gpio15xx.c+4−3

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-omap1/gpio16xx.c+39−8

This diff is large: its 109 lines aren’t shown here.

arch/arm/mach-omap1/gpio7xx.c+4−10

This diff is large: its 78 lines aren’t shown here.

arch/arm/mach-omap1/id.c+4−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-omap1/include/mach/entry-macro.S+2−7

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-omap1/include/mach/hardware.h+36−0

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-omap1/include/mach/io.h+41−1

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-omap1/include/mach/memory.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-omap1/include/mach/system.h+0−5

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-omap1/io.c+4−1

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-omap1/iomap.h+36−0

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-omap1/irq.c+3−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-omap1/lcd_dma.c+2−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-omap1/leds-h2p2-debug.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap1/leds-innovator.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap1/leds-osk.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap1/mcbsp.c+4−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-omap1/mux.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap1/pm.c+8−16

This diff is large: its 93 lines aren’t shown here.

arch/arm/mach-omap1/reset.c+2−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-omap1/sleep.S+3−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-omap1/sram.S+4−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-omap1/time.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-omap1/timer32k.c+5−3

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-omap2/Kconfig+4−4

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-omap2/Makefile+7−6

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-omap2/am35xx-emac.c+117−0

This diff is large: its 118 lines aren’t shown here.

arch/arm/mach-omap2/am35xx-emac.h+15−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-omap2/board-2430sdp.c+2−2

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-omap2/board-3430sdp.c+4−1

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-omap2/board-4430sdp.c+14−10

This diff is large: its 69 lines aren’t shown here.

arch/arm/mach-omap2/board-am3517evm.c+3−116

This diff is large: its 142 lines aren’t shown here.

arch/arm/mach-omap2/board-apollon.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-omap2/board-cm-t35.c+19−3

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-omap2/board-cm-t3517.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-omap2/board-devkit8000.c+4−2

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-omap2/board-flash.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/board-generic.c+52−59

This diff is large: its 202 lines aren’t shown here.

arch/arm/mach-omap2/board-h4.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-omap2/board-igep0020.c+11−1

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-omap2/board-ldp.c+8−2

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-omap2/board-n8x0.c+4−5

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-omap2/board-omap3beagle.c+7−3

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-omap2/board-omap3evm.c+12−12

This diff is large: its 77 lines aren’t shown here.

arch/arm/mach-omap2/board-omap3logic.c+10−1

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-omap2/board-omap3pandora.c+20−6

This diff is large: its 96 lines aren’t shown here.

arch/arm/mach-omap2/board-omap3stalker.c+16−15

This diff is large: its 73 lines aren’t shown here.

arch/arm/mach-omap2/board-omap3touchbook.c+11−7

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-omap2/board-omap4panda.c+18−11

This diff is large: its 84 lines aren’t shown here.

arch/arm/mach-omap2/board-overo.c+9−2

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-omap2/board-rm680.c+14−2

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-omap2/board-rx51-peripherals.c+18−16

This diff is large: its 87 lines aren’t shown here.

arch/arm/mach-omap2/board-zoom-debugboard.c+11−1

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-omap2/board-zoom-display.c+4−1

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-omap2/board-zoom-peripherals.c+7−3

This diff is large: its 42 lines aren’t shown here.

arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c+1−80

This diff is large: its 92 lines aren’t shown here.

arch/arm/mach-omap2/clkt_clksel.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/clkt_dpll.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/clock.c+0−5

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-omap2/clock.h+0−8

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-omap2/clock2420_data.c+3−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-omap2/clock2430.c+2−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-omap2/clock2430_data.c+2−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-omap2/clock2xxx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/clock3xxx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/clock3xxx_data.c+15−7

This diff is large: its 114 lines aren’t shown here.

arch/arm/mach-omap2/clock44xx_data.c+7−2

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-omap2/clockdomains44xx_data.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/cm2xxx_3xxx.c+3−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-omap2/cm44xx.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-omap2/cminst44xx.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-omap2/common-board-devices.c+6−5

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-omap2/common.c+3−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-omap2/common.h+19−0

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-omap2/control.c+3−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-omap2/control.h+5−1

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-omap2/cpuidle34xx.c+17−25

This diff is large: its 69 lines aren’t shown here.

arch/arm/mach-omap2/cpuidle44xx.c+3−18

This diff is large: its 46 lines aren’t shown here.

arch/arm/mach-omap2/devices.c+9−8

This diff is large: its 67 lines aren’t shown here.

arch/arm/mach-omap2/display.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-omap2/dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/emu.c+6−24

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-omap2/gpio.c+31−7

This diff is large: its 105 lines aren’t shown here.

arch/arm/mach-omap2/gpmc-nand.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/gpmc-onenand.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/gpmc-smsc911x.c+2−60

This diff is large: its 100 lines aren’t shown here.

arch/arm/mach-omap2/gpmc.c+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-omap2/hsmmc.c+102−29

This diff is large: its 193 lines aren’t shown here.

arch/arm/mach-omap2/hsmmc.h+11−3

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-omap2/id.c+80−108

This diff is large: its 346 lines aren’t shown here.

arch/arm/mach-omap2/include/mach/barriers.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/include/mach/entry-macro.S+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-omap2/include/mach/io.h+0−5

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-omap2/include/mach/system.h+0−5

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-omap2/io.c+16−52

This diff is large: its 137 lines aren’t shown here.

arch/arm/mach-omap2/iomap.hrenamed from arch/arm/plat-omap/include/plat/io.h+3−83

This diff is large: its 115 lines aren’t shown here.

arch/arm/mach-omap2/irq.c+54−11

This diff is large: its 146 lines aren’t shown here.

arch/arm/mach-omap2/mcbsp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/mux.c+8−9

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-omap2/mux.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/omap-hotplug.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/omap-mpuss-lowpower.c+1−4

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-omap2/omap-smp.c+2−1

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-omap2/omap-wakeupgen.c+28−25

This diff is large: its 88 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod.c+43−53

This diff is large: its 166 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_3xxx_data.c+27−4

This diff is large: its 111 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_44xx_data.c+44−4

This diff is large: its 171 lines aren’t shown here.

arch/arm/mach-omap2/opp.c+2−2

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-omap2/opp2420_data.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/opp2430_data.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/pm-debug.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-omap2/pm.c+103−24

This diff is large: its 215 lines aren’t shown here.

arch/arm/mach-omap2/pm.h+2−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-omap2/pm24xx.c+12−93

This diff is large: its 179 lines aren’t shown here.

arch/arm/mach-omap2/pm34xx.c+26−107

This diff is large: its 273 lines aren’t shown here.

arch/arm/mach-omap2/pm44xx.c+15−61

This diff is large: its 146 lines aren’t shown here.

arch/arm/mach-omap2/powerdomain-common.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/powerdomain.c+7−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-omap2/powerdomain2xxx_3xxx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/powerdomain44xx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/powerdomains3xxx_data.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/prcm_mpu44xx.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-omap2/prm44xx.c+13−11

This diff is large: its 72 lines aren’t shown here.

arch/arm/mach-omap2/prm_common.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-omap2/prminst44xx.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-omap2/sdram-nokia.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/sdrc2xxx.c+4−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-omap2/serial.c+0−4

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-omap2/sleep24xx.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/sleep34xx.S+4−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-omap2/sleep44xx.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/smartreflex-class3.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/smartreflex.c+169−60

This diff is large: its 523 lines aren’t shown here.

arch/arm/mach-omap2/smartreflex.h+10−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-omap2/sr_device.c+8−5

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-omap2/sram242x.S+3−1

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-omap2/sram243x.S+3−1

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-omap2/sram34xx.S+3−2

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-omap2/timer-mpu.c+0−39

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-omap2/timer.c+17−5

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-omap2/usb-host.c+6−4

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-omap2/vc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/vp.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-orion5x/common.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-orion5x/common.h+9−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-orion5x/dns323-setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-orion5x/include/mach/entry-macro.S+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-orion5x/include/mach/io.h+0−33

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-orion5x/include/mach/system.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-orion5x/ls-chl-setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-orion5x/ls_hgl-setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-orion5x/lsmini-setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-orion5x/pci.c+7−8

This diff is large: its 62 lines aren’t shown here.

arch/arm/mach-orion5x/tsx09-common.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-picoxcell/include/mach/entry-macro.S+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-picoxcell/include/mach/io.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-picoxcell/include/mach/irqs.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-picoxcell/include/mach/system.h+0−26

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-pnx4008/core.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pnx4008/dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pnx4008/include/mach/entry-macro.S+0−6

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pnx4008/include/mach/io.h+0−21

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-pnx4008/include/mach/system.h+0−29

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-pnx4008/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pnx4008/time.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-prima2/include/mach/entry-macro.S+0−7

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-prima2/include/mach/io.h+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-prima2/include/mach/system.h+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-prima2/timer.c+7−14

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-pxa/Kconfig+2−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-pxa/capc7117.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/clock-pxa2xx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/cm-x300.c+2−1

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-pxa/colibri-pxa270.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/colibri-pxa300.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/colibri-pxa320.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/colibri-pxa3xx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/corgi.c+3−1

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-pxa/corgi_pm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/cpufreq-pxa3xx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/csb726.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/devices.c+24−5

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-pxa/em-x270.c+7−5

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-pxa/generic.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/gumstix.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/h5000.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/himalaya.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/hx4700.c+50−29

This diff is large: its 163 lines aren’t shown here.

arch/arm/mach-pxa/icontrol.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/idp.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/balloon3.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/entry-macro.S+0−15

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/hardware.h+0−6

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/io.h+0−3

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/irqs.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/mainstone.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/mfp-pxa27x.h+2−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/system.h+0−15

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/leds-idp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/leds-lubbock.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/leds-mainstone.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/lubbock.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/magician.c+28−8

This diff is large: its 70 lines aren’t shown here.

arch/arm/mach-pxa/mfp-pxa2xx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/mioa701.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/mp900.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmld.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmt5.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmtc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmte2.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmtreo.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/palmtx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmz72.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/poodle.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/pxa2xx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/pxa300.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/pxa320.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/pxa3xx.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/pxa95x.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/raumfeld.c+5−0

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-pxa/reset.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/saar.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/sharpsl_pm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/spitz.c+3−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-pxa/stargate2.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-pxa/tavorevb.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/time.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/trizeps4.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/viper.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/vpac270.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/xcep.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/z2.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/zeus.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-realview/core.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-realview/core.h+5−15

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-realview/hotplug.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-realview/include/mach/entry-macro.S+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-realview/include/mach/hardware.h+1−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-realview/include/mach/io.h+0−28

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-realview/include/mach/irqs-eb.h+13−10

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-realview/include/mach/irqs-pb1176.h+1−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-realview/include/mach/system.h+0−33

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-realview/realview_eb.c+60−45

This diff is large: its 155 lines aren’t shown here.

arch/arm/mach-realview/realview_pb1176.c+39−39

This diff is large: its 90 lines aren’t shown here.

arch/arm/mach-realview/realview_pb11mp.c+56−43

This diff is large: its 135 lines aren’t shown here.

arch/arm/mach-realview/realview_pba8.c+39−39

This diff is large: its 92 lines aren’t shown here.

arch/arm/mach-realview/realview_pbx.c+55−43

This diff is large: its 127 lines aren’t shown here.

arch/arm/mach-rpc/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-rpc/ecard.crenamed from arch/arm/kernel/ecard.c+20−114

This diff is large: its 245 lines aren’t shown here.

arch/arm/mach-rpc/ecard.hrenamed from arch/arm/kernel/ecard.h+0−0

File renamed without changes.

arch/arm/mach-rpc/fiq.S+16−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-rpc/include/mach/entry-macro.S+0−4

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-rpc/include/mach/hardware.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-rpc/include/mach/io.h+0−5

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-rpc/include/mach/irqs.h+0−2

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-rpc/include/mach/system.h+0−13

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-rpc/irq.c+6−0

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-rpc/riscpc.c+16−30

This diff is large: its 92 lines aren’t shown here.

arch/arm/mach-rpc/time.crenamed from arch/arm/common/time-acorn.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c2410/Kconfig+0−154

This diff is large: its 165 lines aren’t shown here.

arch/arm/mach-s3c2410/Makefile+0−26

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-s3c2410/include/mach/system.h+0−54

This diff is large: its 55 lines aren’t shown here.

arch/arm/mach-s3c2410/usb-simtec.h+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-s3c2412/Kconfig+0−85

This diff is large: its 96 lines aren’t shown here.

arch/arm/mach-s3c2412/Makefile+0−12

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-s3c2416/Kconfig+0−60

This diff is large: its 61 lines aren’t shown here.

arch/arm/mach-s3c2416/Makefile+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-s3c2440/Kconfig+0−165

This diff is large: its 176 lines aren’t shown here.

arch/arm/mach-s3c2440/Makefile+1−25

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-s3c2440/common.h+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-s3c2443/Kconfig+0−32

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-s3c2443/Makefile+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-s3c24xx/Kconfig+538−0

This diff is large: its 539 lines aren’t shown here.

arch/arm/mach-s3c24xx/Makefile+95−0

This diff is large: its 96 lines aren’t shown here.

arch/arm/mach-s3c24xx/Makefile.bootrenamed from arch/arm/mach-s3c2410/Makefile.boot+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/bast-ide.crenamed from arch/arm/mach-s3c2410/bast-ide.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/bast-irq.crenamed from arch/arm/mach-s3c2410/bast-irq.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/clock-s3c2412.crenamed from arch/arm/mach-s3c2412/clock.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/clock-s3c2416.crenamed from arch/arm/mach-s3c2416/clock.c+0−7

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-s3c24xx/clock-s3c2440.crenamed from arch/arm/mach-s3c2440/clock.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/clock-s3c2443.crenamed from arch/arm/mach-s3c2443/clock.c+0−7

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-s3c24xx/clock-s3c244x.crenamed from arch/arm/mach-s3c2440/s3c244x-clock.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/common-s3c2443.crenamed from arch/arm/plat-s3c24xx/s3c2443-clock.c+62−28

This diff is large: its 159 lines aren’t shown here.

arch/arm/mach-s3c24xx/common-smdk.crenamed from arch/arm/plat-s3c24xx/common-smdk.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/common.hrenamed from arch/arm/mach-s3c2410/common.h+6−5

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-s3c24xx/dma-s3c2410.crenamed from arch/arm/mach-s3c2410/dma.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/dma-s3c2412.crenamed from arch/arm/mach-s3c2412/dma.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/dma-s3c2440.crenamed from arch/arm/mach-s3c2440/dma.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/dma-s3c2443.crenamed from arch/arm/mach-s3c2443/dma.c+24−6

This diff is large: its 75 lines aren’t shown here.

arch/arm/mach-s3c24xx/h1940-bluetooth.crenamed from arch/arm/mach-s3c2410/h1940-bluetooth.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/anubis-cpld.hrenamed from arch/arm/mach-s3c2410/include/mach/anubis-cpld.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/anubis-irq.hrenamed from arch/arm/mach-s3c2410/include/mach/anubis-irq.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/anubis-map.hrenamed from arch/arm/mach-s3c2410/include/mach/anubis-map.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/bast-cpld.hrenamed from arch/arm/mach-s3c2410/include/mach/bast-cpld.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/bast-irq.hrenamed from arch/arm/mach-s3c2410/include/mach/bast-irq.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/bast-map.hrenamed from arch/arm/mach-s3c2410/include/mach/bast-map.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/bast-pmu.hrenamed from arch/arm/mach-s3c2410/include/mach/bast-pmu.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/debug-macro.Srenamed from arch/arm/mach-s3c2410/include/mach/debug-macro.S+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/dma.hrenamed from arch/arm/mach-s3c2410/include/mach/dma.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/entry-macro.Srenamed from arch/arm/mach-s3c2410/include/mach/entry-macro.S+0−8

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-s3c24xx/include/mach/fb.hrenamed from arch/arm/mach-s3c2410/include/mach/fb.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/gpio-fns.hrenamed from arch/arm/mach-s3c2410/include/mach/gpio-fns.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/gpio-nrs.hrenamed from arch/arm/mach-s3c2410/include/mach/gpio-nrs.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/gpio-track.hrenamed from arch/arm/mach-s3c2410/include/mach/gpio-track.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/gpio.hrenamed from arch/arm/mach-s3c2410/include/mach/gpio.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/gta02.hrenamed from arch/arm/mach-s3c2440/include/mach/gta02.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/h1940-latch.hrenamed from arch/arm/mach-s3c2410/include/mach/h1940-latch.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/h1940.hrenamed from arch/arm/mach-s3c2410/include/mach/h1940.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/hardware.hrenamed from arch/arm/mach-s3c2410/include/mach/hardware.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/idle.hrenamed from arch/arm/mach-s3c2410/include/mach/idle.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/io.hrenamed from arch/arm/mach-s3c2410/include/mach/io.h+0−5

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-s3c24xx/include/mach/irqs.hrenamed from arch/arm/mach-s3c2410/include/mach/irqs.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/leds-gpio.hrenamed from arch/arm/mach-s3c2410/include/mach/leds-gpio.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/map.hrenamed from arch/arm/mach-s3c2410/include/mach/map.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/osiris-cpld.hrenamed from arch/arm/mach-s3c2410/include/mach/osiris-cpld.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/osiris-map.hrenamed from arch/arm/mach-s3c2410/include/mach/osiris-map.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/otom-map.hrenamed from arch/arm/mach-s3c2410/include/mach/otom-map.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/pm-core.hrenamed from arch/arm/mach-s3c2410/include/mach/pm-core.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-clock.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-clock.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-dsc.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-dsc.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-gpio.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-gpio.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-gpioj.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-gpioj.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-irq.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-irq.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-lcd.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-lcd.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-mem.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-mem.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-power.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-power.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-s3c2412-mem.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-s3c2412-mem.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-s3c2412.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-s3c2412.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-s3c2416-mem.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-s3c2416-mem.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-s3c2416.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-s3c2416.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-s3c2443-clock.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/regs-sdi.hrenamed from arch/arm/mach-s3c2410/include/mach/regs-sdi.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/tick.hrenamed from arch/arm/mach-s3c2410/include/mach/tick.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/timex.hrenamed from arch/arm/mach-s3c2410/include/mach/timex.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/uncompress.hrenamed from arch/arm/mach-s3c2410/include/mach/uncompress.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/vr1000-cpld.hrenamed from arch/arm/mach-s3c2410/include/mach/vr1000-cpld.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/vr1000-irq.hrenamed from arch/arm/mach-s3c2410/include/mach/vr1000-irq.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/include/mach/vr1000-map.hrenamed from arch/arm/mach-s3c2410/include/mach/vr1000-map.h+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/irq-s3c2412.crenamed from arch/arm/mach-s3c2412/irq.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/irq-s3c2416.crenamed from arch/arm/mach-s3c2416/irq.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/irq-s3c2440.crenamed from arch/arm/mach-s3c2440/irq.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/irq-s3c2443.crenamed from arch/arm/mach-s3c2443/irq.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/irq-s3c244x.crenamed from arch/arm/mach-s3c2440/s3c244x-irq.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-amlm5900.crenamed from arch/arm/mach-s3c2410/mach-amlm5900.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-anubis.crenamed from arch/arm/mach-s3c2440/mach-anubis.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-at2440evb.crenamed from arch/arm/mach-s3c2440/mach-at2440evb.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-bast.crenamed from arch/arm/mach-s3c2410/mach-bast.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-gta02.crenamed from arch/arm/mach-s3c2440/mach-gta02.c+3−3

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-h1940.crenamed from arch/arm/mach-s3c2410/mach-h1940.c+6−6

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-jive.crenamed from arch/arm/mach-s3c2412/mach-jive.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-mini2440.crenamed from arch/arm/mach-s3c2440/mach-mini2440.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-n30.crenamed from arch/arm/mach-s3c2410/mach-n30.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-nexcoder.crenamed from arch/arm/mach-s3c2440/mach-nexcoder.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-osiris-dvs.crenamed from arch/arm/mach-s3c2440/mach-osiris-dvs.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-osiris.crenamed from arch/arm/mach-s3c2440/mach-osiris.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-otom.crenamed from arch/arm/mach-s3c2410/mach-otom.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-qt2410.crenamed from arch/arm/mach-s3c2410/mach-qt2410.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-rx1950.crenamed from arch/arm/mach-s3c2440/mach-rx1950.c+6−6

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-rx3715.crenamed from arch/arm/mach-s3c2440/mach-rx3715.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-smdk2410.crenamed from arch/arm/mach-s3c2410/mach-smdk2410.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-smdk2413.crenamed from arch/arm/mach-s3c2412/mach-smdk2413.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-smdk2416.crenamed from arch/arm/mach-s3c2416/mach-smdk2416.c+4−4

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-smdk2440.crenamed from arch/arm/mach-s3c2440/mach-smdk2440.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-smdk2443.crenamed from arch/arm/mach-s3c2443/mach-smdk2443.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-tct_hammer.crenamed from arch/arm/mach-s3c2410/mach-tct_hammer.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/mach-vr1000.crenamed from arch/arm/mach-s3c2410/mach-vr1000.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-vstms.crenamed from arch/arm/mach-s3c2412/mach-vstms.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/pm-h1940.Srenamed from arch/arm/mach-s3c2410/pm-h1940.S+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/pm-s3c2410.crenamed from arch/arm/mach-s3c2410/pm.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/pm-s3c2412.crenamed from arch/arm/mach-s3c2412/pm.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/pm-s3c2416.crenamed from arch/arm/mach-s3c2416/pm.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/s3c2410.crenamed from arch/arm/mach-s3c2410/s3c2410.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s3c24xx/s3c2412.crenamed from arch/arm/mach-s3c2412/s3c2412.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-s3c24xx/s3c2416.crenamed from arch/arm/mach-s3c2416/s3c2416.c+3−3

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-s3c24xx/s3c2440.crenamed from arch/arm/mach-s3c2440/s3c2440.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/s3c2442.crenamed from arch/arm/mach-s3c2440/s3c2442.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/s3c2443.crenamed from arch/arm/mach-s3c2443/s3c2443.c+3−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-s3c24xx/s3c244x.crenamed from arch/arm/mach-s3c2440/s3c244x.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s3c24xx/setup-i2c.crenamed from arch/arm/plat-s3c24xx/setup-i2c.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/setup-sdhci-gpio.crenamed from arch/arm/mach-s3c2416/setup-sdhci-gpio.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/setup-ts.crenamed from arch/arm/plat-s3c24xx/setup-ts.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/simtec-audio.crenamed from arch/arm/plat-s3c24xx/simtec-audio.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c24xx/simtec-nor.crenamed from arch/arm/mach-s3c2410/nor-simtec.c+1−4

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-s3c24xx/simtec-pm.crenamed from arch/arm/plat-s3c24xx/pm-simtec.c+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/simtec-usb.crenamed from arch/arm/mach-s3c2410/usb-simtec.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c24xx/simtec.hrenamed from arch/arm/mach-s3c2410/nor-simtec.h+8−1

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-s3c24xx/sleep-s3c2410.Srenamed from arch/arm/mach-s3c2410/sleep.S+0−0

File renamed without changes.

arch/arm/mach-s3c24xx/sleep-s3c2412.Srenamed from arch/arm/mach-s3c2412/sleep.S+0−0

File renamed without changes.

arch/arm/mach-s3c64xx/Kconfig+9−0

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-s3c64xx/Makefile+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-s3c64xx/clock.c+111−10

This diff is large: its 142 lines aren’t shown here.

arch/arm/mach-s3c64xx/common.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s3c64xx/common.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c64xx/cpuidle.c+91−0

This diff is large: its 92 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/entry-macro.S+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/io.h+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/system.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-s3c64xx/irq-pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-crag6410-module.c+42−3

This diff is large: its 105 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-crag6410.c+70−1

This diff is large: its 142 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-smartq.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-smdk6410.c+4−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-s3c64xx/setup-usb-phy.c+90−0

This diff is large: its 91 lines aren’t shown here.

arch/arm/mach-s5p64x0/clock.c+6−5

This diff is large: its 46 lines aren’t shown here.

arch/arm/mach-s5p64x0/common.c+7−9

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-s5p64x0/dma.c+9−21

This diff is large: its 70 lines aren’t shown here.

arch/arm/mach-s5p64x0/include/mach/entry-macro.S+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-s5p64x0/include/mach/io.h+0−25

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-s5p64x0/include/mach/s5p64x0-clock.h+0−7

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-s5p64x0/include/mach/system.h+0−21

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-s5pc100/clock.c+14−14

This diff is large: its 126 lines aren’t shown here.

arch/arm/mach-s5pc100/common.c+1−12

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-s5pc100/dma.c+10−36

This diff is large: its 84 lines aren’t shown here.

arch/arm/mach-s5pc100/include/mach/entry-macro.S+0−6

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-s5pc100/include/mach/io.h+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-s5pc100/include/mach/system.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-s5pv210/Kconfig+15−0

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-s5pv210/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/arm/mach-s5pv210/clock.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-s5pv210/common.c+0−12

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-s5pv210/dma.c+10−38

This diff is large: its 86 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/entry-macro.S+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/io.h+0−26

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/map.h+4−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/regs-sys.h+0−4

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/system.h+0−21

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-s5pv210/mach-aquila.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-s5pv210/mach-goni.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-s5pv210/mach-smdkc110.c+14−0

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-s5pv210/mach-smdkv210.c+16−1

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-s5pv210/setup-usb-phy.c+90−0

This diff is large: its 91 lines aren’t shown here.

arch/arm/mach-sa1100/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-sa1100/assabet.c+140−54

This diff is large: its 297 lines aren’t shown here.

arch/arm/mach-sa1100/badge4.c+21−21

This diff is large: its 73 lines aren’t shown here.

arch/arm/mach-sa1100/cerf.c+6−11

This diff is large: its 55 lines aren’t shown here.

arch/arm/mach-sa1100/clock.c+47−35

This diff is large: its 122 lines aren’t shown here.

arch/arm/mach-sa1100/collie.c+37−22

This diff is large: its 130 lines aren’t shown here.

arch/arm/mach-sa1100/dma.c+0−348

This diff is large: its 349 lines aren’t shown here.

arch/arm/mach-sa1100/generic.c+73−88

This diff is large: its 278 lines aren’t shown here.

arch/arm/mach-sa1100/generic.h+4−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-sa1100/h3100.c+23−2

This diff is large: its 62 lines aren’t shown here.

arch/arm/mach-sa1100/h3600.c+32−2

This diff is large: its 69 lines aren’t shown here.

arch/arm/mach-sa1100/h3xxx.c+3−10

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-sa1100/hackkit.c+6−7

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/SA-1100.h+2−227

This diff is large: its 244 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/assabet.h+6−9

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/cerf.h+5−10

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/collie.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/dma.h+0−117

This diff is large: its 118 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/entry-macro.S+0−6

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/io.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/irqs.h+12−15

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/mcp.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/nanoengine.h+6−6

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/neponset.h+4−48

This diff is large: its 64 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/shannon.h+5−9

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/simpad.h+2−4

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/system.h+0−9

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-sa1100/irq.c+3−5

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-sa1100/jornada720.c+12−34

This diff is large: its 106 lines aren’t shown here.

arch/arm/mach-sa1100/lart.c+82−0

This diff is large: its 112 lines aren’t shown here.

arch/arm/mach-sa1100/leds-assabet.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sa1100/leds-badge4.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sa1100/leds-cerf.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sa1100/leds-hackkit.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sa1100/leds-lart.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sa1100/nanoengine.c+4−9

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-sa1100/neponset.c+319−230

This diff is large: its 634 lines aren’t shown here.

arch/arm/mach-sa1100/pci-nanoengine.c+7−9

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-sa1100/pleb.c+5−20

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-sa1100/pm.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sa1100/shannon.c+22−5

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-sa1100/simpad.c+12−12

This diff is large: its 71 lines aren’t shown here.

arch/arm/mach-sa1100/sleep.S+22−15

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-sa1100/ssp.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-sa1100/time.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shark/core.c+7−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-shark/include/mach/entry-macro.S+0−6

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-shark/include/mach/io.h+0−2

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-shark/include/mach/system.h+0−13

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-shark/leds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/Kconfig+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-shmobile/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/board-ag5evm.c+5−37

This diff is large: its 75 lines aren’t shown here.

arch/arm/mach-shmobile/board-ap4evb.c+6−37

This diff is large: its 73 lines aren’t shown here.

arch/arm/mach-shmobile/board-bonito.c+14−33

This diff is large: its 96 lines aren’t shown here.

arch/arm/mach-shmobile/board-g3evm.c+4−35

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-shmobile/board-g4evm.c+4−35

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-shmobile/board-kota2.c+5−36

This diff is large: its 74 lines aren’t shown here.

arch/arm/mach-shmobile/board-mackerel.c+78−42

This diff is large: its 188 lines aren’t shown here.

arch/arm/mach-shmobile/board-marzen.c+4−59

This diff is large: its 89 lines aren’t shown here.

arch/arm/mach-shmobile/clock-r8a7740.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-shmobile/clock-r8a7779.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh7367.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh7372.c+8−6

This diff is large: its 70 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh7377.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh73a0.c+7−7

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-shmobile/clock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/cpuidle.c+7−25

This diff is large: its 53 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/common.h+10−1

This diff is large: its 64 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/entry-macro.S+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/io.h+0−9

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/irqs.h+1−5

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/system.h+1−4

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-shmobile/intc-r8a7740.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/intc-r8a7779.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-shmobile/intc-sh7367.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/intc-sh7372.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/intc-sh7377.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/intc-sh73a0.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-shmobile/localtimer.c+0−26

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-shmobile/platsmp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/pm-r8a7779.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/pm-sh7372.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/setup-r8a7740.c+46−0

This diff is large: its 64 lines aren’t shown here.

arch/arm/mach-shmobile/setup-r8a7779.c+55−0

This diff is large: its 82 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh7367.c+33−0

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh7372.c+40−0

This diff is large: its 60 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh7377.c+33−0

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh73a0.c+33−0

This diff is large: its 52 lines aren’t shown here.

arch/arm/mach-shmobile/smp-r8a7779.c+5−7

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-shmobile/smp-sh73a0.c+13−15

This diff is large: its 64 lines aren’t shown here.

arch/arm/mach-shmobile/suspend.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-shmobile/timer.c+15−1

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-spear3xx/clock.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-spear3xx/include/mach/entry-macro.S+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-spear3xx/include/mach/io.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-spear3xx/include/mach/system.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-spear3xx/spear300.c+2−12

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-spear3xx/spear3xx.c+4−23

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-spear6xx/Kconfig+4−3

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-spear6xx/Makefile+0−6

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-spear6xx/clock.c+8−7

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-spear6xx/include/mach/entry-macro.S+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-spear6xx/include/mach/io.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-spear6xx/include/mach/system.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-spear6xx/spear600.c+0−25

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-spear6xx/spear600_evb.c+0−54

This diff is large: its 55 lines aren’t shown here.

arch/arm/mach-spear6xx/spear6xx.c+36−96

This diff is large: its 152 lines aren’t shown here.

arch/arm/mach-tegra/Kconfig+16−2

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-tegra/Makefile+8−2

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-tegra/apbio.c+145−0

This diff is large: its 146 lines aren’t shown here.

arch/arm/mach-tegra/apbio.h+39−0

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-tegra/board-dt-tegra20.c+4−8

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-tegra/board-dt-tegra30.c+24−2

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-tegra/board-harmony-pinmux.c+3−3

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-tegra/board-harmony-power.c+2−16

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-tegra/board-harmony.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-tegra/board-seaboard.c+3−2

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-tegra/clock.c+22−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-tegra/clock.h+15−0

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-tegra/common.c+25−1

This diff is large: its 49 lines aren’t shown here.

arch/arm/mach-tegra/cpu-tegra.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/cpuidle.c+107−0

This diff is large: its 108 lines aren’t shown here.

arch/arm/mach-tegra/devices.c+3−4

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-tegra/devices.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-tegra/dma.c+77−51

This diff is large: its 200 lines aren’t shown here.

arch/arm/mach-tegra/flowctrl.c+62−0

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-tegra/flowctrl.h+42−0

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-tegra/fuse.c+79−34

This diff is large: its 148 lines aren’t shown here.

arch/arm/mach-tegra/fuse.h+33−5

This diff is large: its 49 lines aren’t shown here.

arch/arm/mach-tegra/headsmp.S+159−8

This diff is large: its 182 lines aren’t shown here.

arch/arm/mach-tegra/hotplug.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/clk.h+10−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/debug-macro.S+77−12

This diff is large: its 108 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/gpio-tegra.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/io.h+0−49

This diff is large: its 65 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/iomap.h+48−0

This diff is large: its 67 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/irammap.h+35−0

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/irqs.h+4−3

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/powergate.h+14−1

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/smmu.h+63−0

This diff is large: its 64 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/uncompress.h+109−11

This diff is large: its 157 lines aren’t shown here.

arch/arm/mach-tegra/io.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/irq.c+16−4

This diff is large: its 55 lines aren’t shown here.

arch/arm/mach-tegra/localtimer.c+0−26

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-tegra/pcie.c+15−7

This diff is large: its 75 lines aren’t shown here.

arch/arm/mach-tegra/platsmp.c+96−41

This diff is large: its 187 lines aren’t shown here.

arch/arm/mach-tegra/pmc.c+76−0

This diff is large: its 77 lines aren’t shown here.

arch/arm/mach-tegra/pmc.hrenamed from arch/arm/mach-highbank/include/mach/system.h+8−9

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-tegra/powergate.c+47−6

This diff is large: its 110 lines aren’t shown here.

arch/arm/mach-tegra/reset.c+84−0

This diff is large: its 85 lines aren’t shown here.

arch/arm/mach-tegra/reset.h+50−0

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-tegra/sleep.S+93−0

This diff is large: its 94 lines aren’t shown here.

arch/arm/mach-tegra/tegra2_clocks.c+26−6

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-tegra/tegra2_emc.c+201−23

This diff is large: its 310 lines aren’t shown here.

arch/arm/mach-tegra/tegra2_emc.h+4−7

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-tegra/tegra30_clocks.c+3099−0

This diff is large: its 3100 lines aren’t shown here.

arch/arm/mach-tegra/timer.c+17−5

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-tegra/usb_phy.c+11−0

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-u300/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-u300/core.c+34−81

This diff is large: its 168 lines aren’t shown here.

arch/arm/mach-u300/include/mach/entry-macro.S+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-u300/include/mach/io.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-u300/include/mach/system.h+0−14

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-u300/include/mach/u300-regs.h+5−6

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-u300/mmc.c+0−52

This diff is large: its 53 lines aren’t shown here.

arch/arm/mach-u300/mmc.h+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-ux500/Kconfig+33−18

This diff is large: its 81 lines aren’t shown here.

arch/arm/mach-ux500/Makefile+1−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-ux500/Makefile.boot+1−0

This diff is large: its 5 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-pins.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-regulators.c+28−0

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-sdi.c+24−28

This diff is large: its 138 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-u8500uib.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500.c+144−29

This diff is large: its 282 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500.h+5−5

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-ux500/board-u5500-sdi.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-ux500/board-u5500.c+17−10

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-ux500/cache-l2x0.c+6−1

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-ux500/clock.c+7−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-ux500/clock.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ux500/cpu-db5500.c+29−7

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-ux500/cpu-db8500.c+36−8

This diff is large: its 75 lines aren’t shown here.

arch/arm/mach-ux500/cpu.c+88−2

This diff is large: its 125 lines aren’t shown here.

arch/arm/mach-ux500/devices-common.c+20−72

This diff is large: its 138 lines aren’t shown here.

arch/arm/mach-ux500/devices-common.h+46−37

This diff is large: its 127 lines aren’t shown here.

arch/arm/mach-ux500/devices-db5500.h+68−48

This diff is large: its 139 lines aren’t shown here.

arch/arm/mach-ux500/devices-db8500.c+6−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-ux500/devices-db8500.h+101−75

This diff is large: its 190 lines aren’t shown here.

arch/arm/mach-ux500/dma-db5500.c+2−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/db8500-regs.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/entry-macro.S+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/hardware.h+3−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/io.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/irqs-board-mop500.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/irqs.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/setup.h+5−6

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/system.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/usb.h+2−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ux500/localtimer.c+0−29

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-ux500/timer.c+34−10

This diff is large: its 73 lines aren’t shown here.

arch/arm/mach-ux500/usb.c+5−2

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-versatile/core.c+35−36

This diff is large: its 102 lines aren’t shown here.

arch/arm/mach-versatile/core.h+5−15

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-versatile/include/mach/entry-macro.S+0−15

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-versatile/include/mach/io.h+0−28

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-versatile/include/mach/system.h+0−33

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-versatile/pci.c+5−6

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-versatile/versatile_pb.c+9−9

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-vexpress/Kconfig+44−3

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-vexpress/Makefile.boot+6−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-vexpress/core.h+6−18

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-vexpress/ct-ca9x4.c+33−42

This diff is large: its 128 lines aren’t shown here.

arch/arm/mach-vexpress/hotplug.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/ct-ca9x4.h+1−4

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/debug-macro.S+26−4

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/entry-macro.S+0−5

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/io.h+0−26

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/irqs.h+1−1

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/motherboard.h+31−27

This diff is large: its 72 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/system.h+0−33

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/uncompress.h+21−1

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-vexpress/platsmp.c+154−6

This diff is large: its 192 lines aren’t shown here.

arch/arm/mach-vexpress/v2m.c+267−34

This diff is large: its 415 lines aren’t shown here.

arch/arm/mach-vt8500/include/mach/entry-macro.S+0−6

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-vt8500/include/mach/io.h+0−26

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-vt8500/include/mach/system.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-w90x900/cpu.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-w90x900/dev.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-w90x900/include/mach/entry-macro.S+0−8

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-w90x900/include/mach/io.h+0−30

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-w90x900/include/mach/system.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-zynq/include/mach/entry-macro.S+0−27

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-zynq/include/mach/io.h+0−33

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-zynq/include/mach/system.h+0−23

This diff is large: its 24 lines aren’t shown here.

arch/arm/mm/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mm/alignment.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mm/cache-feroceon-l2.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/cache-l2x0.c+11−11

This diff is large: its 69 lines aren’t shown here.

arch/arm/mm/cache-tauros2.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/cache-xsc3l2.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mm/copypage-v4mc.c+2−7

This diff is large: its 24 lines aren’t shown here.

arch/arm/mm/copypage-v6.c+6−14

This diff is large: its 49 lines aren’t shown here.

arch/arm/mm/copypage-xscale.c+1−8

This diff is large: its 23 lines aren’t shown here.

arch/arm/mm/dma-mapping.c+13−7

This diff is large: its 75 lines aren’t shown here.

arch/arm/mm/fault.c+5−3

This diff is large: its 30 lines aren’t shown here.

arch/arm/mm/flush.c+5−10

This diff is large: its 42 lines aren’t shown here.

arch/arm/mm/highmem.c+8−13

This diff is large: its 56 lines aren’t shown here.

arch/arm/mm/idmap.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/init.c+4−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/mm/iomap.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/mm/ioremap.c+16−3

This diff is large: its 46 lines aren’t shown here.

arch/arm/mm/mm.h+25−1

This diff is large: its 33 lines aren’t shown here.

arch/arm/mm/mmu.c+7−2

This diff is large: its 41 lines aren’t shown here.

arch/arm/mm/nommu.c+8−2

This diff is large: its 36 lines aren’t shown here.

arch/arm/mm/pgd.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/proc-fa526.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/proc-v7.S+12−0

This diff is large: its 19 lines aren’t shown here.

arch/arm/mm/vmregion.c+75−1

This diff is large: its 100 lines aren’t shown here.

arch/arm/mm/vmregion.h+4−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/net/Makefile+3−0

This diff is large: its 4 lines aren’t shown here.

arch/arm/net/bpf_jit_32.c+915−0

This diff is large: its 916 lines aren’t shown here.

arch/arm/net/bpf_jit_32.h+190−0

This diff is large: its 191 lines aren’t shown here.

arch/arm/nwfpe/fpa11.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-iop/i2c.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-iop/pci.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/plat-iop/restart.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-mxc/3ds_debugboard.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-mxc/avic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-mxc/cpu.c+24−0

This diff is large: its 34 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-ahci-imx.c+8−8

This diff is large: its 51 lines aren’t shown here.

arch/arm/plat-mxc/epit.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/board-mx31ads.h+0−33

This diff is large: its 34 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/common.h+10−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/debug-macro.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/dma.h+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/entry-macro.S+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/hardware.h+2−5

This diff is large: its 14 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/io.h+0−39

This diff is large: its 40 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/iomux-mx25.h+21−21

This diff is large: its 104 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/system.h+0−25

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-mxc/pwm.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/plat-mxc/system.c+2−2

This diff is large: its 19 lines aren’t shown here.

arch/arm/plat-mxc/time.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-nomadik/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-nomadik/include/plat/mtu.h+1−3

This diff is large: its 11 lines aren’t shown here.

arch/arm/plat-nomadik/include/plat/ste_dma40.h+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/plat-nomadik/timer.c+8−25

This diff is large: its 84 lines aren’t shown here.

arch/arm/plat-omap/Kconfig+4−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/plat-omap/clock.c+3−29

This diff is large: its 62 lines aren’t shown here.

arch/arm/plat-omap/counter_32k.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/debug-leds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/dma.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-omap/dmtimer.c+18−3

This diff is large: its 42 lines aren’t shown here.

arch/arm/plat-omap/include/plat/board-ams-delta.h+22−27

This diff is large: its 66 lines aren’t shown here.

arch/arm/plat-omap/include/plat/clock.h+0−10

This diff is large: its 31 lines aren’t shown here.

arch/arm/plat-omap/include/plat/cpu.h+6−3

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-omap/include/plat/gpio.h+20−35

This diff is large: its 95 lines aren’t shown here.

arch/arm/plat-omap/include/plat/keypad.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-omap/include/plat/mcspi.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/plat-omap/include/plat/mmc.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap_device.h+8−1

This diff is large: its 23 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap_hwmod.h+6−8

This diff is large: its 40 lines aren’t shown here.

arch/arm/plat-omap/include/plat/remoteproc.h+57−0

This diff is large: its 58 lines aren’t shown here.

arch/arm/plat-omap/include/plat/sdrc.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/include/plat/serial.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/include/plat/sram.h+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/plat-omap/include/plat/system.h+0−15

This diff is large: its 16 lines aren’t shown here.

arch/arm/plat-omap/include/plat/tc.h+0−17

This diff is large: its 24 lines aren’t shown here.

arch/arm/plat-omap/include/plat/uncompress.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/include/plat/usb.h+40−0

This diff is large: its 54 lines aren’t shown here.

arch/arm/plat-omap/mailbox.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-omap/mux.c+4−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/plat-omap/omap-pm-noop.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-omap/omap_device.c+14−32

This diff is large: its 158 lines aren’t shown here.

arch/arm/plat-omap/sram.c+16−7

This diff is large: its 58 lines aren’t shown here.

arch/arm/plat-omap/usb.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/plat-orion/common.c+6−1

This diff is large: its 27 lines aren’t shown here.

arch/arm/plat-orion/include/plat/audio.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-pxa/dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-s3c24xx/Kconfig+4−53

This diff is large: its 95 lines aren’t shown here.

arch/arm/plat-s3c24xx/Makefile+1−18

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-s3c24xx/cpu.c+29−0

This diff is large: its 47 lines aren’t shown here.

arch/arm/plat-s3c24xx/dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c+0−36

This diff is large: its 37 lines aren’t shown here.

arch/arm/plat-s3c24xx/spi-bus1-gpd8_9_10.c+0−38

This diff is large: its 39 lines aren’t shown here.

arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c+0−36

This diff is large: its 37 lines aren’t shown here.

arch/arm/plat-s5p/Kconfig+16−2

This diff is large: its 39 lines aren’t shown here.

arch/arm/plat-s5p/Makefile+2−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/plat-s5p/clock.c+36−0

This diff is large: its 50 lines aren’t shown here.

arch/arm/plat-s5p/irq-eint.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-s5p/irq-gpioint.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-s5p/irq-pm.c+19−6

This diff is large: its 39 lines aren’t shown here.

arch/arm/plat-s5p/sleep.S+38−6

This diff is large: its 60 lines aren’t shown here.

arch/arm/plat-samsung/Kconfig+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-samsung/clock.c+8−4

This diff is large: its 40 lines aren’t shown here.

arch/arm/plat-samsung/cpu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-samsung/dev-backlight.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/plat-samsung/devs.c+65−16

This diff is large: its 144 lines aren’t shown here.

arch/arm/plat-samsung/dma-ops.c+3−3

This diff is large: its 23 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/audio-simtec.h+0−3

This diff is large: its 7 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/clock.h+21−1

This diff is large: its 36 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/cpu.h+10−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/devs.h+4−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/dma-pl330.h+16−0

This diff is large: its 23 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/regs-dma.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/regs-rtc.h+42−39

This diff is large: its 94 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/regs-usb-hsotg-phy.h+4−3

This diff is large: its 21 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/rtc-core.h+27−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s3c2410.h+0−2

This diff is large: its 6 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s3c2443.h+0−20

This diff is large: its 24 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s5p-clock.h+6−0

This diff is large: its 27 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/sdhci.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/udc-hs.h+5−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/uncompress.h+2−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/plat-samsung/irq-vic-timer.c+16−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-samsung/platformdata.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/time.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-spear/include/plat/hardware.h+0−6

This diff is large: its 11 lines aren’t shown here.

arch/arm/plat-spear/include/plat/io.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/plat-spear/include/plat/keyboard.h+0−7

This diff is large: its 12 lines aren’t shown here.

arch/arm/plat-spear/include/plat/system.h+0−26

This diff is large: its 27 lines aren’t shown here.

arch/arm/plat-spear/restart.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-versatile/Kconfig+1−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-versatile/Makefile+0−1

This diff is large: its 6 lines aren’t shown here.

arch/arm/plat-versatile/localtimer.c+0−27

This diff is large: its 28 lines aren’t shown here.

arch/arm/vfp/vfpmodule.c+2−0

This diff is large: its 10 lines aren’t shown here.

arch/avr32/boards/atngw100/setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/avr32/boards/atstk1000/atstk1002.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/avr32/boot/images/Makefile+3−6

This diff is large: its 23 lines aren’t shown here.

arch/avr32/include/asm/atomic.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/include/asm/barrier.h+29−0

This diff is large: its 30 lines aren’t shown here.

arch/avr32/include/asm/bitops.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/avr32/include/asm/bug.h+5−0

This diff is large: its 10 lines aren’t shown here.

arch/avr32/include/asm/cmpxchg.hrenamed from arch/avr32/include/asm/system.h+9−70

This diff is large: its 98 lines aren’t shown here.

arch/avr32/include/asm/exec.hrenamed from arch/arm/mach-iop32x/include/mach/system.h+7−7

This diff is large: its 21 lines aren’t shown here.

arch/avr32/include/asm/io.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/avr32/include/asm/posix_types.h+11−96

This diff is large: its 124 lines aren’t shown here.

arch/avr32/include/asm/switch_to.h+46−0

This diff is large: its 47 lines aren’t shown here.

arch/avr32/mach-at32ap/at32ap700x.c+0−15

This diff is large: its 60 lines aren’t shown here.

arch/avr32/mach-at32ap/cpufreq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/avr32/mach-at32ap/include/mach/atmel-mci.h+0−7

This diff is large: its 12 lines aren’t shown here.

arch/avr32/mach-at32ap/include/mach/board.h+1−12

This diff is large: its 27 lines aren’t shown here.

arch/avr32/mach-at32ap/include/mach/cpu.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/avr32/oprofile/op_model_avr32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/blackfin/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/boot/Makefile+8−11

This diff is large: its 29 lines aren’t shown here.

arch/blackfin/configs/BF527-EZKIT_defconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/blackfin/include/asm/cmpxchg.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/blackfin/include/asm/gpio.h+12−2

This diff is large: its 29 lines aren’t shown here.

arch/blackfin/include/asm/system.h+0−5

This diff is large: its 6 lines aren’t shown here.

arch/blackfin/kernel/setup.c+4−3

This diff is large: its 21 lines aren’t shown here.

arch/c6x/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/c6x/include/asm/Kbuild+0−1

This diff is large: its 8 lines aren’t shown here.

arch/c6x/include/asm/barrier.h+27−0

This diff is large: its 28 lines aren’t shown here.

arch/c6x/include/asm/bitops.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/c6x/include/asm/bug.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/c6x/include/asm/cmpxchg.h+68−0

This diff is large: its 69 lines aren’t shown here.

arch/c6x/include/asm/exec.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/c6x/include/asm/irq.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/c6x/include/asm/processor.h+9−0

This diff is large: its 14 lines aren’t shown here.

arch/c6x/include/asm/setup.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/c6x/include/asm/special_insns.h+63−0

This diff is large: its 64 lines aren’t shown here.

arch/c6x/include/asm/switch_to.h+33−0

This diff is large: its 34 lines aren’t shown here.

arch/c6x/include/asm/system.h+0−168

This diff is large: its 169 lines aren’t shown here.

arch/c6x/kernel/irq.c+1−13

This diff is large: its 25 lines aren’t shown here.

arch/c6x/kernel/setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/c6x/kernel/signal.c+3−13

This diff is large: its 30 lines aren’t shown here.

arch/c6x/kernel/soc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/c6x/kernel/time.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/c6x/kernel/traps.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/c6x/platforms/timer64.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/drivers/ds1302.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/drivers/gpio.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/drivers/i2c.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/drivers/pcf8563.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/drivers/sync_serial.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/kernel/debugport.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/kernel/dma.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/kernel/io_interface_mux.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/kernel/process.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/kernel/setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/kernel/signal.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v10/kernel/traps.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/drivers/i2c.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/drivers/mach-a3/gpio.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/drivers/mach-fs/gpio.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/kernel/debugport.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/kernel/fasttimer.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/mach-a3/dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/arch-v32/mach-fs/dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/include/arch-v10/arch/elf.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/cris/include/arch-v32/arch/elf.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/cris/include/arch-v32/arch/system.h+0−10

This diff is large: its 15 lines aren’t shown here.

arch/cris/include/asm/atomic.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/include/asm/barrier.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/cris/include/asm/bitops.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/include/asm/cmpxchg.hrenamed from arch/cris/include/asm/system.h+8−44

This diff is large: its 69 lines aren’t shown here.

arch/cris/include/asm/exec.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/cris/include/asm/posix_types.h+10−40

This diff is large: its 66 lines aren’t shown here.

arch/cris/include/asm/processor.h+10−1

This diff is large: its 26 lines aren’t shown here.

arch/cris/include/asm/switch_to.h+12−0

This diff is large: its 13 lines aren’t shown here.

arch/cris/kernel/irq.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/cris/kernel/setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/kernel/traps.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/cris/mm/fault.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/frv/include/asm/atomic.h+1−56

This diff is large: its 71 lines aren’t shown here.

arch/frv/include/asm/barrier.h+29−0

This diff is large: its 30 lines aren’t shown here.

arch/frv/include/asm/bug.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/frv/include/asm/cmpxchg.hrenamed from arch/frv/include/asm/system.h+56−42

This diff is large: its 123 lines aren’t shown here.

arch/frv/include/asm/exec.h+17−0

This diff is large: its 18 lines aren’t shown here.

arch/frv/include/asm/posix_types.h+10−43

This diff is large: its 67 lines aren’t shown here.

arch/frv/include/asm/switch_to.h+35−0

This diff is large: its 36 lines aren’t shown here.

arch/frv/kernel/debug-stub.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/gdb-io.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/gdb-stub.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/irq-mb93091.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/irq-mb93093.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/irq-mb93493.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/mb93090-mb00/pci-dma.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/frv/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/mm/init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/frv/mm/kmap.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/include/asm/atomic.h+1−3

This diff is large: its 25 lines aren’t shown here.

arch/h8300/include/asm/barrier.h+27−0

This diff is large: its 28 lines aren’t shown here.

arch/h8300/include/asm/bitops.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/include/asm/bug.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/h8300/include/asm/cmpxchg.h+60−0

This diff is large: its 61 lines aren’t shown here.

arch/h8300/include/asm/exec.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/h8300/include/asm/posix_types.h+9−40

This diff is large: its 64 lines aren’t shown here.

arch/h8300/include/asm/processor.h+5−0

This diff is large: its 10 lines aren’t shown here.

arch/h8300/include/asm/switch_to.h+50−0

This diff is large: its 51 lines aren’t shown here.

arch/h8300/include/asm/system.h+0−140

This diff is large: its 141 lines aren’t shown here.

arch/h8300/kernel/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/mm/init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/mm/kmap.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/h8300/mm/memory.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/hexagon/include/asm/atomic.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/hexagon/include/asm/barrier.h+41−0

This diff is large: its 42 lines aren’t shown here.

arch/hexagon/include/asm/bitops.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/hexagon/include/asm/cmpxchg.hrenamed from arch/hexagon/include/asm/system.h+5−41

This diff is large: its 72 lines aren’t shown here.

arch/hexagon/include/asm/dma-mapping.h+12−6

This diff is large: its 42 lines aren’t shown here.

arch/hexagon/include/asm/exec.hrenamed from arch/arm/mach-netx/include/mach/io.h+12−12

This diff is large: its 40 lines aren’t shown here.

arch/hexagon/include/asm/switch_to.h+34−0

This diff is large: its 35 lines aren’t shown here.

arch/hexagon/kernel/dma.c+5−4

This diff is large: its 30 lines aren’t shown here.

arch/hexagon/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/hexagon/kernel/signal.c+2−10

This diff is large: its 26 lines aren’t shown here.

arch/hexagon/kernel/smp.c+4−5

This diff is large: its 41 lines aren’t shown here.

arch/hexagon/kernel/vdso.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/hexagon/kernel/vm_events.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/dig/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/hp/common/sba_iommu.c+6−6

This diff is large: its 40 lines aren’t shown here.

arch/ia64/hp/sim/boot/bootloader.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/hp/sim/boot/fw-emu.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/hp/sim/simeth.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/acpi.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/atomic.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/auxvec.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/ia64/include/asm/barrier.h+68−0

This diff is large: its 69 lines aren’t shown here.

arch/ia64/include/asm/cmpxchg.h+147−0

This diff is large: its 148 lines aren’t shown here.

arch/ia64/include/asm/dma-mapping.h+12−6

This diff is large: its 36 lines aren’t shown here.

arch/ia64/include/asm/exec.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/ia64/include/asm/futex.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/intrinsics.h+1−113

This diff is large: its 128 lines aren’t shown here.

arch/ia64/include/asm/io.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/irqflags.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/ia64/include/asm/kexec.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/kvm.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/ia64/include/asm/kvm_host.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/ia64/include/asm/mca_asm.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/ia64/include/asm/page.h+10−0

This diff is large: its 15 lines aren’t shown here.

arch/ia64/include/asm/pci.h+8−6

This diff is large: its 28 lines aren’t shown here.

arch/ia64/include/asm/pgtable.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/posix_types.h+3−118

This diff is large: its 130 lines aren’t shown here.

arch/ia64/include/asm/processor.h+8−0

This diff is large: its 22 lines aren’t shown here.

arch/ia64/include/asm/sal.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/setup.h+18−0

This diff is large: its 23 lines aren’t shown here.

arch/ia64/include/asm/sn/pda.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/spinlock.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/switch_to.h+87−0

This diff is large: its 88 lines aren’t shown here.

arch/ia64/include/asm/system.h+0−203

This diff is large: its 204 lines aren’t shown here.

arch/ia64/include/asm/uv/uv.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/acpi.c+8−9

This diff is large: its 56 lines aren’t shown here.

arch/ia64/kernel/asm-offsets.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/ia64/kernel/efi.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/fsys.S+1−2

This diff is large: its 17 lines aren’t shown here.

arch/ia64/kernel/fsyscall_gtod_data.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/gate.S+2−1

This diff is large: its 11 lines aren’t shown here.

arch/ia64/kernel/gate.lds.S+1−2

This diff is large: its 10 lines aren’t shown here.

arch/ia64/kernel/head.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/iosapic.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/irq_ia64.c+4−5

This diff is large: its 44 lines aren’t shown here.

arch/ia64/kernel/ivt.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/machine_kexec.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/machvec.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/mca.c+6−3

This diff is large: its 37 lines aren’t shown here.

arch/ia64/kernel/mca_drv.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/msi_ia64.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/ia64/kernel/patch.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/pci-dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/pci-swiotlb.c+11−3

This diff is large: its 28 lines aren’t shown here.

arch/ia64/kernel/perfmon.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/process.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/setup.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/ia64/kernel/smp.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/ia64/kernel/smpboot.c+7−13

This diff is large: its 78 lines aren’t shown here.

arch/ia64/kernel/time.c+3−8

This diff is large: its 36 lines aren’t shown here.

arch/ia64/kernel/topology.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/ia64/kernel/traps.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/uncached.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/unwind.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/vmlinux.lds.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kvm/kvm-ia64.c+24−1

This diff is large: its 49 lines aren’t shown here.

arch/ia64/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/mm/init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/oprofile/backtrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/pci/pci.c+2−54

This diff is large: its 89 lines aren’t shown here.

arch/ia64/sn/kernel/huberror.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/ia64/sn/kernel/io_common.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/sn/kernel/io_init.c+11−5

This diff is large: its 37 lines aren’t shown here.

arch/ia64/sn/kernel/irq.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/ia64/sn/kernel/setup.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/ia64/sn/kernel/sn2/prominfo_proc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/sn/kernel/sn2/sn2_smp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/sn/kernel/sn2/sn_hwperf.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/sn/kernel/sn2/timer.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/sn/kernel/tiocx.c+6−2

This diff is large: its 29 lines aren’t shown here.

arch/ia64/sn/pci/pci_dma.c+5−4

This diff is large: its 30 lines aren’t shown here.

arch/ia64/sn/pci/pcibr/pcibr_provider.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/sn/pci/tioca_provider.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/sn/pci/tioce_provider.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/xen/xensetup.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/include/asm/atomic.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/m32r/include/asm/barrier.h+94−0

This diff is large: its 95 lines aren’t shown here.

arch/m32r/include/asm/bitops.h+2−1

This diff is large: its 12 lines aren’t shown here.

arch/m32r/include/asm/cmpxchg.h+221−0

This diff is large: its 222 lines aren’t shown here.

arch/m32r/include/asm/dcache_clear.h+29−0

This diff is large: its 30 lines aren’t shown here.

arch/m32r/include/asm/exec.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/m32r/include/asm/local.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/include/asm/posix_types.h+9−99

This diff is large: its 122 lines aren’t shown here.

arch/m32r/include/asm/spinlock.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m32r/include/asm/switch_to.h+51−0

This diff is large: its 52 lines aren’t shown here.

arch/m32r/include/asm/system.h+0−367

This diff is large: its 368 lines aren’t shown here.

arch/m32r/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/mm/fault-nommu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/platforms/m32104ut/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/platforms/m32700ut/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/platforms/mappi/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/platforms/mappi2/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/platforms/mappi3/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/platforms/oaks32r/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/platforms/opsput/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m32r/platforms/usrv/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/amiga/amisound.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/amiga/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/apollo/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/atari/ataints.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/atari/atasound.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/atari/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/bvme6000/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/bvme6000/rtc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/hp300/time.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/include/asm/atomic.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/m68k/include/asm/barrier.h+20−0

This diff is large: its 21 lines aren’t shown here.

arch/m68k/include/asm/cmpxchg.hrenamed from arch/m68k/include/asm/system.h+21−73

This diff is large: its 159 lines aren’t shown here.

arch/m68k/include/asm/exec.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/m68k/include/asm/posix_types.h+10−43

This diff is large: its 66 lines aren’t shown here.

arch/m68k/include/asm/sun3xflop.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/include/asm/switch_to.h+41−0

This diff is large: its 42 lines aren’t shown here.

arch/m68k/kernel/ints.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/vectors.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mac/config.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/m68k/mac/misc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mm/init_mm.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mm/init_no.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mm/kmap.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mm/memory.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mm/motorola.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mm/sun3mmu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mvme147/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mvme16x/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mvme16x/rtc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/platform/68328/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/platform/68328/timers.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/platform/68360/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/platform/68EZ328/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/platform/68VZ328/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/q40/config.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/m68k/q40/q40ints.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/sun3/intersil.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/sun3/mmu_emu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/sun3/prom/console.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/sun3x/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/sun3x/time.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/Kconfig+21−12

This diff is large: its 63 lines aren’t shown here.

arch/microblaze/boot/Makefile+4−8

This diff is large: its 30 lines aren’t shown here.

arch/microblaze/include/asm/atomic.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/include/asm/barrier.h+27−0

This diff is large: its 28 lines aren’t shown here.

arch/microblaze/include/asm/cmpxchg.h+42−0

This diff is large: its 43 lines aren’t shown here.

arch/microblaze/include/asm/dma-mapping.h+12−6

This diff is large: its 41 lines aren’t shown here.

arch/microblaze/include/asm/exec.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/microblaze/include/asm/fixmap.h+109−0

This diff is large: its 110 lines aren’t shown here.

arch/microblaze/include/asm/futex.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/include/asm/highmem.h+96−0

This diff is large: its 97 lines aren’t shown here.

arch/microblaze/include/asm/mmu.h+12−0

This diff is large: its 26 lines aren’t shown here.

arch/microblaze/include/asm/page.h+3−1

This diff is large: its 12 lines aren’t shown here.

arch/microblaze/include/asm/pci-bridge.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/include/asm/pci.h+0−8

This diff is large: its 15 lines aren’t shown here.

arch/microblaze/include/asm/pgtable.h+1−2

This diff is large: its 10 lines aren’t shown here.

arch/microblaze/include/asm/processor.h+10−1

This diff is large: its 32 lines aren’t shown here.

arch/microblaze/include/asm/setup.h+8−1

This diff is large: its 29 lines aren’t shown here.

arch/microblaze/include/asm/switch_to.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/microblaze/include/asm/system.h+0−97

This diff is large: its 98 lines aren’t shown here.

arch/microblaze/include/asm/uaccess.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/kernel/cpu/cpuinfo.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/kernel/cpu/pvr.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/kernel/dma.c+6−4

This diff is large: its 31 lines aren’t shown here.

arch/microblaze/kernel/early_printk.c+17−1

This diff is large: its 28 lines aren’t shown here.

arch/microblaze/kernel/head.S+114−15

This diff is large: its 200 lines aren’t shown here.

arch/microblaze/kernel/hw_exception_handler.S+10−3

This diff is large: its 30 lines aren’t shown here.

arch/microblaze/kernel/intc.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/microblaze/kernel/microblaze_ksyms.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/kernel/misc.S+9−4

This diff is large: its 41 lines aren’t shown here.

arch/microblaze/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/kernel/prom.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/kernel/setup.c+25−2

This diff is large: its 56 lines aren’t shown here.

arch/microblaze/kernel/timer.c+3−4

This diff is large: its 28 lines aren’t shown here.

arch/microblaze/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/kernel/unwind.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/kernel/vmlinux.lds.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/lib/memcpy.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/lib/uaccess_old.S+62−36

This diff is large: its 122 lines aren’t shown here.

arch/microblaze/mm/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/microblaze/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/mm/highmem.c+88−0

This diff is large: its 89 lines aren’t shown here.

arch/microblaze/mm/init.c+184−40

This diff is large: its 346 lines aren’t shown here.

arch/microblaze/mm/pgtable.c+13−7

This diff is large: its 52 lines aren’t shown here.

arch/microblaze/pci/pci-common.c+12−105

This diff is large: its 204 lines aren’t shown here.

arch/mips/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/cavium-octeon/dma-octeon.c+6−6

This diff is large: its 40 lines aren’t shown here.

arch/mips/cavium-octeon/flash_setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/cavium-octeon/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/cavium-octeon/smp.c+3−3

This diff is large: its 28 lines aren’t shown here.

arch/mips/configs/db1300_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/dec/ecc-berr.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/dec/kn01-berr.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/dec/kn02xa-berr.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/dec/wbflush.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/mips/emma/markeins/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/fw/arc/cmdline.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/fw/arc/identify.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/fw/arc/misc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/atomic.h+1−1

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/asm/barrier.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/cmpxchg.h+124−0

This diff is large: its 131 lines aren’t shown here.

arch/mips/include/asm/dma-mapping.h+12−6

This diff is large: its 38 lines aren’t shown here.

arch/mips/include/asm/dma.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/exec.h+17−0

This diff is large: its 18 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/au1000_dma.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/mman.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/include/asm/pci.h+1−8

This diff is large: its 30 lines aren’t shown here.

arch/mips/include/asm/posix_types.h+7−114

This diff is large: its 136 lines aren’t shown here.

arch/mips/include/asm/processor.h+6−1

This diff is large: its 21 lines aren’t shown here.

arch/mips/include/asm/setup.h+11−0

This diff is large: its 18 lines aren’t shown here.

arch/mips/include/asm/switch_to.h+85−0

This diff is large: its 86 lines aren’t shown here.

arch/mips/include/asm/system.h+0−235

This diff is large: its 236 lines aren’t shown here.

arch/mips/include/asm/txx9/jmr3927.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/cpu-bugs64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/cpu-probe.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/irq-rm7000.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/irq-rm9000.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/irq_cpu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/kspd.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/mips-mt-fpaff.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/mips-mt.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/proc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/ptrace32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/rtlx.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/signal.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/signal32.c+1−1

This diff is large: its 12 lines aren’t shown here.

arch/mips/kernel/signal_n32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/smp-bmips.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/mips/kernel/smp-cmp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/smp-mt.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/smp.c+13−16

This diff is large: its 89 lines aren’t shown here.

arch/mips/kernel/smtc-proc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/smtc.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/mips/kernel/spram.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/syscall.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/unaligned.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/vdso.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/mips/kernel/vpe.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/lasat/reset.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/math-emu/dsemul.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mipssim/sim_smtc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mipssim/sim_time.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/c-octeon.c+3−4

This diff is large: its 21 lines aren’t shown here.

arch/mips/mm/c-r3k.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/c-r4k.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/c-tx39.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/dma-default.c+4−4

This diff is large: its 29 lines aren’t shown here.

arch/mips/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/page.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/sc-ip22.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/sc-mips.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/sc-r5k.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/tlb-r3k.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/tlb-r4k.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/tlb-r8k.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/tlbex.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/mti-malta/malta-init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/mti-malta/malta-int.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/mti-malta/malta-time.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/netlogic/common/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/netlogic/common/smp.c+3−3

This diff is large: its 26 lines aren’t shown here.

arch/mips/pci/fixup-cobalt.c+0−61

This diff is large: its 68 lines aren’t shown here.

arch/mips/pci/pci-bcm1480.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-ip27.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-lantiq.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/mips/pci/pci-sb1250.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-xlr.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci.c+9−77

This diff is large: its 138 lines aren’t shown here.

arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/pmc-sierra/msp71xx/msp_irq_per.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/pmc-sierra/yosemite/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/pmc-sierra/yosemite/prom.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/pmc-sierra/yosemite/smp.c+4−4

This diff is large: its 31 lines aren’t shown here.

arch/mips/pnx833x/common/interrupts.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/powertv/asic/asic_int.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/powertv/asic/irq_asic.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/powertv/init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/rb532/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sgi-ip22/ip22-berr.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sgi-ip22/ip22-reset.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sgi-ip22/ip28-berr.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sgi-ip27/ip27-irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sgi-ip27/ip27-reset.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sgi-ip27/ip27-smp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sgi-ip32/ip32-irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sgi-ip32/ip32-reset.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sibyte/bcm1480/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sibyte/bcm1480/smp.c+3−4

This diff is large: its 26 lines aren’t shown here.

arch/mips/sibyte/common/sb_tbprof.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sibyte/sb1250/bus_watcher.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sibyte/sb1250/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sibyte/sb1250/smp.c+3−4

This diff is large: its 26 lines aren’t shown here.

arch/mips/sni/reset.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/vr41xx/common/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/vr41xx/common/pmu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/include/asm/atomic.h+3−106

This diff is large: its 123 lines aren’t shown here.

arch/mn10300/include/asm/barrier.h+37−0

This diff is large: its 38 lines aren’t shown here.

arch/mn10300/include/asm/cmpxchg.h+115−0

This diff is large: its 116 lines aren’t shown here.

arch/mn10300/include/asm/dma.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/include/asm/exec.h+16−0

This diff is large: its 17 lines aren’t shown here.

arch/mn10300/include/asm/pci.h+0−16

This diff is large: its 23 lines aren’t shown here.

arch/mn10300/include/asm/posix_types.h+11−100

This diff is large: its 132 lines aren’t shown here.

arch/mn10300/include/asm/switch_to.h+49−0

This diff is large: its 50 lines aren’t shown here.

arch/mn10300/include/asm/system.h+0−102

This diff is large: its 103 lines aren’t shown here.

arch/mn10300/kernel/entry.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/fpu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/gdb-io-serial.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/gdb-io-ttysm.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/gdb-stub.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/mn10300-serial.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/mn10300-watchdog.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/smp-low.S+1−1

This diff is large: its 11 lines aren’t shown here.

arch/mn10300/kernel/smp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/lib/bitops.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/mm/init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/mm/misalignment.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/mm/pgtable.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/mm/tlb-smp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/proc-mn2ws0050/proc-init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/unit-asb2305/pci.c+9−53

This diff is large: its 97 lines aren’t shown here.

arch/openrisc/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/openrisc/include/asm/Kbuild+3−0

This diff is large: its 24 lines aren’t shown here.

arch/openrisc/include/asm/page.h+1−5

This diff is large: its 20 lines aren’t shown here.

arch/openrisc/include/asm/processor.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/openrisc/include/asm/ptrace.h+5−1

This diff is large: its 15 lines aren’t shown here.

arch/openrisc/include/asm/syscall.h+2−5

This diff is large: its 21 lines aren’t shown here.

arch/openrisc/include/asm/system.h+0−35

This diff is large: its 36 lines aren’t shown here.

arch/openrisc/include/asm/uaccess.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/openrisc/kernel/entry.S+8−8

This diff is large: its 65 lines aren’t shown here.

arch/openrisc/kernel/head.S+16−1

This diff is large: its 45 lines aren’t shown here.

arch/openrisc/kernel/idle.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/openrisc/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/openrisc/kernel/prom.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/openrisc/kernel/ptrace.c+2−3

This diff is large: its 22 lines aren’t shown here.

arch/openrisc/kernel/setup.c+9−10

This diff is large: its 36 lines aren’t shown here.

arch/openrisc/kernel/signal.c+20−27

This diff is large: its 94 lines aren’t shown here.

arch/openrisc/kernel/time.c+5−8

This diff is large: its 22 lines aren’t shown here.

arch/openrisc/kernel/traps.c+5−5

This diff is large: its 38 lines aren’t shown here.

arch/openrisc/mm/init.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/openrisc/mm/tlb.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/atomic.h+1−107

This diff is large: its 122 lines aren’t shown here.

arch/parisc/include/asm/barrier.h+35−0

This diff is large: its 36 lines aren’t shown here.

arch/parisc/include/asm/cmpxchg.h+116−0

This diff is large: its 117 lines aren’t shown here.

arch/parisc/include/asm/delay.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/include/asm/dma.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/exec.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/parisc/include/asm/futex.h+27−4

This diff is large: its 66 lines aren’t shown here.

arch/parisc/include/asm/ldcw.h+48−0

This diff is large: its 49 lines aren’t shown here.

arch/parisc/include/asm/mman.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/parisc/include/asm/pci.h+0−38

This diff is large: its 54 lines aren’t shown here.

arch/parisc/include/asm/posix_types.h+9−110

This diff is large: its 133 lines aren’t shown here.

arch/parisc/include/asm/processor.h+1−1

This diff is large: its 16 lines aren’t shown here.

arch/parisc/include/asm/psw.h+41−0

This diff is large: its 46 lines aren’t shown here.

arch/parisc/include/asm/special_insns.h+40−0

This diff is large: its 41 lines aren’t shown here.

arch/parisc/include/asm/spinlock.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/switch_to.h+12−0

This diff is large: its 13 lines aren’t shown here.

arch/parisc/include/asm/system.h+0−165

This diff is large: its 166 lines aren’t shown here.

arch/parisc/include/asm/thread_info.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/timex.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/uaccess.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/kernel/cache.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/kernel/firmware.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/kernel/pci.c+0−53

This diff is large: its 67 lines aren’t shown here.

arch/parisc/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/kernel/smp.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/parisc/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/lib/bitops.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/math-emu/fpudispatch.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/Kconfig+1−1

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/Kconfig.debug+0−10

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/boot/.gitignore+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/boot/dts/p1020mbg-pc.dtsi+151−0

This diff is large: its 152 lines aren’t shown here.

arch/powerpc/boot/dts/p1020mbg-pc_32b.dts+89−0

This diff is large: its 90 lines aren’t shown here.

arch/powerpc/boot/dts/p1020mbg-pc_36b.dts+89−0

This diff is large: its 90 lines aren’t shown here.

arch/powerpc/boot/dts/p1020utm-pc.dtsi+140−0

This diff is large: its 141 lines aren’t shown here.

arch/powerpc/boot/dts/p1020utm-pc_32b.dts+89−0

This diff is large: its 90 lines aren’t shown here.

arch/powerpc/boot/dts/p1020utm-pc_36b.dts+89−0

This diff is large: its 90 lines aren’t shown here.

arch/powerpc/boot/dts/p2041rdb.dts+0−3

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/boot/dts/p3041ds.dts+0−4

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/boot/dts/p3060qds.dts+0−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/boot/dts/p4080ds.dts+0−3

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/boot/dts/p5020ds.dts+0−4

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/configs/85xx/p1023rds_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/chroma_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/corenet32_smp_defconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/corenet64_smp_defconfig+3−1

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/mpc85xx_defconfig+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/configs/mpc85xx_smp_defconfig+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/configs/ppc64_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/pseries_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/atomic.h+2−6

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/include/asm/auxvec.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/powerpc/include/asm/barrier.h+68−0

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/include/asm/bug.h+11−0

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/include/asm/cache.h+16−0

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/include/asm/cmpxchg.h+309−0

This diff is large: its 310 lines aren’t shown here.

arch/powerpc/include/asm/debug.h+56−0

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/include/asm/dma-mapping.h+16−8

This diff is large: its 58 lines aren’t shown here.

arch/powerpc/include/asm/dma.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/epapr_hcalls.h+6−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/include/asm/exec.h+9−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/fsl_guts.h+5−21

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/include/asm/hw_breakpoint.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/iommu.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/irq.h+0−8

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/include/asm/kvm.h+40−6

This diff is large: its 58 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s.h+81−17

This diff is large: its 191 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s_32.h+5−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s_64.h+179−1

This diff is large: its 199 lines aren’t shown here.

arch/powerpc/include/asm/kvm_e500.h+32−20

This diff is large: its 86 lines aren’t shown here.

arch/powerpc/include/asm/kvm_host.h+75−15

This diff is large: its 171 lines aren’t shown here.

arch/powerpc/include/asm/kvm_para.h+39−2

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/include/asm/kvm_ppc.h+18−7

This diff is large: its 71 lines aren’t shown here.

arch/powerpc/include/asm/machdep.h+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/mmu-book3e.h+4−2

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/include/asm/mmu-hash64.h+1−13

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/include/asm/pci-bridge.h+8−8

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/include/asm/pci.h+1−8

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/include/asm/perf_event_server.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/posix_types.h+9−109

This diff is large: its 132 lines aren’t shown here.

arch/powerpc/include/asm/ppc-opcode.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/ppc-pci.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/processor.h+30−0

This diff is large: its 37 lines aren’t shown here.

arch/powerpc/include/asm/reg.h+5−0

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/reg_booke.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/rtas.h+35−1

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/include/asm/runlatch.h+45−0

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/include/asm/setup.h+23−1

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/include/asm/smp.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/switch_to.h+65−0

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/include/asm/system.h+0−592

This diff is large: its 593 lines aren’t shown here.

arch/powerpc/include/asm/udbg.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/vio.h+9−1

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/kernel/align.c+1−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/kernel/asm-offsets.c+12−4

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/kernel/cputable.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/crash.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kernel/dma-iommu.c+6−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/kernel/dma-swiotlb.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/dma.c+6−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/kernel/entry_32.S+21−18

This diff is large: its 62 lines aren’t shown here.

arch/powerpc/kernel/exceptions-64s.S+4−4

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/kernel/fadump.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/ibmebus.c+6−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/kernel/idle.c+1−1

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/irq.c+5−11

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/kernel/kgdb.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/kprobes.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/kvm.c+261−46

This diff is large: its 434 lines aren’t shown here.

arch/powerpc/kernel/kvm_emul.S+84−28

This diff is large: its 173 lines aren’t shown here.

arch/powerpc/kernel/lparcfg.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/pci-common.c+9−77

This diff is large: its 150 lines aren’t shown here.

arch/powerpc/kernel/pci_32.c+3−3

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/pci_64.c+1−6

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/kernel/pci_of_scan.c+8−4

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/kernel/pmc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/ppc_ksyms.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/kernel/process.c+5−3

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/kernel/prom.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/prom_init.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/kernel/ptrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/ptrace32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/rtas.c+34−1

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/kernel/rtas_pci.c+7−3

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/kernel/setup-common.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/setup_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/setup_64.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/kernel/signal.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/signal_32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/signal_64.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/smp.c+1−1

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/kernel/softemu8xx.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/swsusp.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/swsusp_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/sys_ppc32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/sysfs.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/traps.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/kernel/udbg.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kernel/vdso.c+4−11

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/kernel/vio.c+16−10

This diff is large: its 71 lines aren’t shown here.

arch/powerpc/kvm/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kvm/book3s.c+13−44

This diff is large: its 85 lines aren’t shown here.

arch/powerpc/kvm/book3s_32_mmu_host.c+15−6

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_mmu_host.c+43−23

This diff is large: its 157 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_mmu_hv.c+881−38

This diff is large: its 991 lines aren’t shown here.

arch/powerpc/kvm/book3s_emulate.c+7−2

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv.c+293−173

This diff is large: its 717 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_builtin.c+144−70

This diff is large: its 261 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_interrupts.S+6−2

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rm_mmu.c+657−178

This diff is large: its 959 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rmhandlers.S+154−22

This diff is large: its 223 lines aren’t shown here.

arch/powerpc/kvm/book3s_interrupts.S+7−0

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/kvm/book3s_paired_singles.c+7−3

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/kvm/book3s_pr.c+153−27

This diff is large: its 364 lines aren’t shown here.

arch/powerpc/kvm/booke.c+106−44

This diff is large: its 278 lines aren’t shown here.

arch/powerpc/kvm/booke.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kvm/booke_emulate.c+14−9

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/kvm/booke_interrupts.S+18−7

This diff is large: its 62 lines aren’t shown here.

arch/powerpc/kvm/e500.c+16−16

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/kvm/e500_emulate.c+23−15

This diff is large: its 71 lines aren’t shown here.

arch/powerpc/kvm/e500_tlb.c+545−230

This diff is large: its 1144 lines aren’t shown here.

arch/powerpc/kvm/e500_tlb.h+29−51

This diff is large: its 154 lines aren’t shown here.

arch/powerpc/kvm/emulate.c+32−29

This diff is large: its 102 lines aren’t shown here.

arch/powerpc/kvm/powerpc.c+113−35

This diff is large: its 272 lines aren’t shown here.

arch/powerpc/kvm/trace.h+61−1

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/lib/alloc.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/lib/copyuser_power7_vmx.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/mm/44x_mmu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/mm/fault.c+1−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/mm/hash_utils_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage.c+4−1

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/mm/init_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/mm/init_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/mm/numa.c+1−1

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/mm/pgtable_32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/mm/pgtable_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/oprofile/common.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/oprofile/op_model_7450.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/oprofile/op_model_cell.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/oprofile/op_model_fsl_emb.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/oprofile/op_model_power4.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/oprofile/op_model_rs64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/perf/core-book3s.c+41−5

This diff is large: its 70 lines aren’t shown here.

arch/powerpc/perf/power4-pmu.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/perf/ppc970-pmu.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/52xx/lite5200_pm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/52xx/mpc52xx_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/82xx/pq2.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/83xx/km83xx.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc832x_mds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc834x_itx.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc834x_mds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc836x_mds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/83xx/sbc834x.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/83xx/suspend.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/corenet_ds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/ge_imp3a.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/ksi8560.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc8536_ds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_ads.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_cds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_ds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_mds.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_rdb.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1010rdb.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1022_ds.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1023_rds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/p2041_rdb.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/p3041_ds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/p4080_ds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/p5020_ds.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/sbc8548.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/sbc8560.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/socrates.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/stx_gp3.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/tqm85xx.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/xes_mpc85xx.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/gef_ppc9a.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/gef_sbc310.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/gef_sbc610.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/mpc8610_hpcd.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/86xx/mpc86xx_hpcn.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/pic.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/86xx/sbc8641d.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/8xx/mpc86xads_setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/8xx/mpc885ads_setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/8xx/tqm8xx_setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/cell/axon_msi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/beat_htab.c+0−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/platforms/cell/beat_interrupt.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/iommu.c+9−7

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/platforms/cell/qpace_setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/smp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/coredump.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/c2k.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/holly.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/prpmc2800.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/storcenter.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/fsl_uli1575.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/maple/pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/maple/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/maple/time.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pasemi/pci.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/pasemi/setup.c+1−1

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/platforms/powermac/bootx_init.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/powermac/cpufreq_32.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/powermac/nvram.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/powermac/pci.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/powermac/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/powermac/smp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powermac/time.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci-ioda.c+2−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci.c+1−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/powernv/smp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/ps3/interrupt.c+1−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/ps3/mm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/ps3/system-bus.c+7−6

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/platforms/pseries/dtl.c+1−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/pseries/eeh.c+5−14

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/platforms/pseries/eeh_dev.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/eeh_event.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/pseries/hotplug-cpu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pseries/io_event_irq.c+2−66

This diff is large: its 91 lines aren’t shown here.

arch/powerpc/platforms/pseries/iommu.c+13−16

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/platforms/pseries/pci_dlpar.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/processor_idle.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/pseries/ras.c+128−67

This diff is large: its 269 lines aren’t shown here.

arch/powerpc/platforms/pseries/setup.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/pseries/smp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/wsp/chroma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/wsp/psr2.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/wsp/wsp_pci.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/sysdev/cpm_common.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/sysdev/fsl_soc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/sysdev/msi_bitmap.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/sysdev/qe_lib/qe.c+20−2

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/sysdev/tsi108_dev.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/xmon/ppc-opc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/xmon/spu-opc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/xmon/xmon.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/Kconfig+2−0

This diff is large: its 16 lines aren’t shown here.

arch/s390/crypto/crypt_s390.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/atomic.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/barrier.h+35−0

This diff is large: its 36 lines aren’t shown here.

arch/s390/include/asm/cpu_mf.h+97−0

This diff is large: its 98 lines aren’t shown here.

arch/s390/include/asm/ctl_reg.h+76−0

This diff is large: its 77 lines aren’t shown here.

arch/s390/include/asm/elf.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/exec.h+12−0

This diff is large: its 13 lines aren’t shown here.

arch/s390/include/asm/facility.h+63−0

This diff is large: its 64 lines aren’t shown here.

arch/s390/include/asm/irq.h+2−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/kvm.h+11−0

This diff is large: its 16 lines aren’t shown here.

arch/s390/include/asm/kvm_host.h+7−5

This diff is large: its 39 lines aren’t shown here.

arch/s390/include/asm/mmu.h+16−0

This diff is large: its 28 lines aren’t shown here.

arch/s390/include/asm/mmu_context.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/perf_event.h+10−2

This diff is large: its 19 lines aren’t shown here.

arch/s390/include/asm/posix_types.h+10−60

This diff is large: its 103 lines aren’t shown here.

arch/s390/include/asm/processor.h+24−0

This diff is large: its 45 lines aren’t shown here.

arch/s390/include/asm/setup.h+14−0

This diff is large: its 21 lines aren’t shown here.

arch/s390/include/asm/smp.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/switch_to.h+100−0

This diff is large: its 101 lines aren’t shown here.

arch/s390/include/asm/system.h+0−315

This diff is large: its 316 lines aren’t shown here.

arch/s390/include/asm/uaccess.h+6−0

This diff is large: its 18 lines aren’t shown here.

arch/s390/kernel/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/asm-offsets.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/compat_signal.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/cpcmd.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/dis.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/early.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/irq.c+23−0

This diff is large: its 27 lines aren’t shown here.

arch/s390/kernel/lgr.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/s390/kernel/machine_kexec.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/os_info.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/perf_cpum_cf.c+690−0

This diff is large: its 691 lines aren’t shown here.

arch/s390/kernel/perf_event.c+124−0

This diff is large: its 125 lines aren’t shown here.

arch/s390/kernel/process.c+1−1

This diff is large: its 15 lines aren’t shown here.

arch/s390/kernel/ptrace.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/s390/kernel/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/signal.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/smp.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/suspend.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/vdso.c+3−9

This diff is large: its 34 lines aren’t shown here.

arch/s390/kvm/Kconfig+9−0

This diff is large: its 16 lines aren’t shown here.

arch/s390/kvm/diag.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/s390/kvm/intercept.c+14−10

This diff is large: its 52 lines aren’t shown here.

arch/s390/kvm/interrupt.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/s390/kvm/kvm-s390.c+184−39

This diff is large: its 423 lines aren’t shown here.

arch/s390/kvm/kvm-s390.h+18−0

This diff is large: its 32 lines aren’t shown here.

arch/s390/kvm/priv.c+13−14

This diff is large: its 96 lines aren’t shown here.

arch/s390/kvm/sigp.c+46−11

This diff is large: its 141 lines aren’t shown here.

arch/s390/mm/fault.c+1−1

This diff is large: its 12 lines aren’t shown here.

arch/s390/mm/init.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/s390/mm/maccess.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/mm/mmap.c+0−2

This diff is large: its 15 lines aren’t shown here.

arch/s390/mm/pgtable.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/oprofile/hwsampler.c+23−29

This diff is large: its 121 lines aren’t shown here.

arch/score/include/asm/atomic.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/score/include/asm/barrier.h+16−0

This diff is large: its 17 lines aren’t shown here.

arch/score/include/asm/bitops.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/score/include/asm/bug.h+11−0

This diff is large: its 16 lines aren’t shown here.

arch/score/include/asm/cmpxchg.h+49−0

This diff is large: its 50 lines aren’t shown here.

arch/score/include/asm/exec.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/score/include/asm/switch_to.h+13−0

This diff is large: its 14 lines aren’t shown here.

arch/score/include/asm/system.h+0−90

This diff is large: its 91 lines aren’t shown here.

arch/sh/Kconfig+5−1

This diff is large: its 27 lines aren’t shown here.

arch/sh/Kconfig.debug+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/boards/board-sh7785lcr.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/boards/mach-ecovec24/setup.c+63−41

This diff is large: its 167 lines aren’t shown here.

arch/sh/boards/mach-highlander/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-hp6xx/pm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/boards/mach-microdev/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/boards/mach-sdk7786/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boot/Makefile+2−6

This diff is large: its 22 lines aren’t shown here.

arch/sh/drivers/dma/dma-g2.c+2−2

This diff is large: its 17 lines aren’t shown here.

arch/sh/drivers/dma/dma-sysfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/drivers/dma/dmabrg.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/sh/drivers/pci/pci-sh7780.c+12−3

This diff is large: its 43 lines aren’t shown here.

arch/sh/drivers/pci/pci.c+11−64

This diff is large: its 112 lines aren’t shown here.

arch/sh/include/asm/atomic-irq.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/atomic.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/auxvec.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/sh/include/asm/barrier.h+54−0

This diff is large: its 55 lines aren’t shown here.

arch/sh/include/asm/bitops.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/include/asm/bl_bit.h+10−0

This diff is large: its 11 lines aren’t shown here.

arch/sh/include/asm/bl_bit_32.h+33−0

This diff is large: its 34 lines aren’t shown here.

arch/sh/include/asm/bl_bit_64.h+40−0

This diff is large: its 41 lines aren’t shown here.

arch/sh/include/asm/bug.h+5−0

This diff is large: its 17 lines aren’t shown here.

arch/sh/include/asm/cache_insns.h+11−0

This diff is large: its 12 lines aren’t shown here.

arch/sh/include/asm/cache_insns_32.h+21−0

This diff is large: its 22 lines aren’t shown here.

arch/sh/include/asm/cache_insns_64.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/sh/include/asm/clock.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/cmpxchg-irq.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/cmpxchg.h+70−0

This diff is large: its 71 lines aren’t shown here.

arch/sh/include/asm/dma-mapping.h+18−10

This diff is large: its 59 lines aren’t shown here.

arch/sh/include/asm/exec.h+10−0

This diff is large: its 11 lines aren’t shown here.

arch/sh/include/asm/futex-irq.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/include/asm/io.h+10−16

This diff is large: its 47 lines aren’t shown here.

arch/sh/include/asm/irq.h+0−11

This diff is large: its 18 lines aren’t shown here.

arch/sh/include/asm/pci.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/sh/include/asm/posix_types_32.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/sh/include/asm/posix_types_64.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/sh/include/asm/processor.h+15−0

This diff is large: its 29 lines aren’t shown here.

arch/sh/include/asm/ptrace.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/include/asm/setup.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/include/asm/switch_to.h+19−0

This diff is large: its 20 lines aren’t shown here.

arch/sh/include/asm/switch_to_32.hrenamed from arch/sh/include/asm/system_32.h+3−105

This diff is large: its 130 lines aren’t shown here.

arch/sh/include/asm/switch_to_64.h+35−0

This diff is large: its 36 lines aren’t shown here.

arch/sh/include/asm/system.h+0−184

This diff is large: its 185 lines aren’t shown here.

arch/sh/include/asm/system_64.h+0−79

This diff is large: its 80 lines aren’t shown here.

arch/sh/include/asm/traps.h+21−0

This diff is large: its 22 lines aren’t shown here.

arch/sh/include/asm/traps_32.h+68−0

This diff is large: its 69 lines aren’t shown here.

arch/sh/include/asm/traps_64.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/sh/include/asm/uaccess.h+14−0

This diff is large: its 20 lines aren’t shown here.

arch/sh/include/asm/unistd.h+37−0

This diff is large: its 47 lines aren’t shown here.

arch/sh/include/asm/unistd_32.h+32−70

This diff is large: its 230 lines aren’t shown here.

arch/sh/include/asm/unistd_64.h+34−72

This diff is large: its 245 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/dma-register.h+8−24

This diff is large: its 54 lines aren’t shown here.

arch/sh/include/mach-common/mach/mangle-port.h+49−0

This diff is large: its 50 lines aren’t shown here.

arch/sh/kernel/cpu/fpu.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpu/init.c+1−1

This diff is large: its 15 lines aren’t shown here.

arch/sh/kernel/cpu/irq/imask.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpu/sh2/clock-sh7619.c+6−6

This diff is large: its 45 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/clock-sh7201.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/clock-sh7203.c+6−6

This diff is large: its 45 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/clock-sh7206.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/fpu.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/opcode_helper.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh3.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7705.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7706.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7709.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7710.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/clock-sh7712.c+5−5

This diff is large: its 39 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/clock-sh4-202.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/clock-sh4.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/fpu.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7343.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7366.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7722.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7723.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7724.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7757.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7763.c+7−7

This diff is large: its 54 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7770.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7780.c+7−7

This diff is large: its 58 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7785.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7786.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-shx3.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7757.c+20−0

This diff is large: its 34 lines aren’t shown here.

arch/sh/kernel/cpu/sh5/clock-sh5.c+6−6

This diff is large: its 49 lines aren’t shown here.

arch/sh/kernel/cpu/shmobile/cpuidle.c+3−7

This diff is large: its 31 lines aren’t shown here.

arch/sh/kernel/cpu/shmobile/pm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpufreq.c+82−39

This diff is large: its 215 lines aren’t shown here.

arch/sh/kernel/dma-nommu.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/sh/kernel/hw_breakpoint.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/idle.c+2−2

This diff is large: its 13 lines aren’t shown here.

arch/sh/kernel/io_trapped.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/kgdb.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/process_32.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/sh/kernel/process_64.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/ptrace_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/ptrace_64.c+1−1

This diff is large: its 13 lines aren’t shown here.

arch/sh/kernel/reboot.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/sh/kernel/signal_32.c+10−26

This diff is large: its 72 lines aren’t shown here.

arch/sh/kernel/signal_64.c+10−30

This diff is large: its 78 lines aren’t shown here.

arch/sh/kernel/smp.c+1−1

This diff is large: its 13 lines aren’t shown here.

arch/sh/kernel/syscalls_32.S+4−4

This diff is large: its 22 lines aren’t shown here.

arch/sh/kernel/syscalls_64.S+4−4

This diff is large: its 22 lines aren’t shown here.

arch/sh/kernel/traps.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/traps_32.c+2−1

This diff is large: its 13 lines aren’t shown here.

arch/sh/kernel/traps_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/vsyscall/vsyscall-sigreturn.S+35−0

This diff is large: its 42 lines aren’t shown here.

arch/sh/kernel/vsyscall/vsyscall-trapa.S+10−13

This diff is large: its 48 lines aren’t shown here.

arch/sh/kernel/vsyscall/vsyscall.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/sh/math-emu/math.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/cache-sh4.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/consistent.c+4−2

This diff is large: its 20 lines aren’t shown here.

arch/sh/mm/fault_32.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/sh/mm/fault_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/flush-sh4.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/mm/pmb.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/sram.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/tlb-pteaex.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/tlb-sh3.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/tlb-sh4.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/tlbflush_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/boot/Makefile+3−6

This diff is large: its 23 lines aren’t shown here.

arch/sparc/include/asm/atomic_32.h+1−1

This diff is large: its 11 lines aren’t shown here.

arch/sparc/include/asm/atomic_64.h+1−2

This diff is large: its 17 lines aren’t shown here.

arch/sparc/include/asm/auxio_32.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/barrier.h+8−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/barrier_32.h+15−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/include/asm/barrier_64.h+56−0

This diff is large: its 57 lines aren’t shown here.

arch/sparc/include/asm/bug.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/cacheflush_32.h+9−0

This diff is large: its 14 lines aren’t shown here.

arch/sparc/include/asm/cacheflush_64.h+10−0

This diff is large: its 17 lines aren’t shown here.

arch/sparc/include/asm/cmpxchg.h+8−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/cmpxchg_32.h+112−0

This diff is large: its 113 lines aren’t shown here.

arch/sparc/include/asm/cmpxchg_64.h+145−0

This diff is large: its 146 lines aren’t shown here.

arch/sparc/include/asm/cpu_type.h+34−0

This diff is large: its 35 lines aren’t shown here.

arch/sparc/include/asm/dma-mapping.h+12−6

This diff is large: its 37 lines aren’t shown here.

arch/sparc/include/asm/exec.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/sparc/include/asm/floppy_32.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/futex_64.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/io_32.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/io_64.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/irqflags_32.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/mmu_context_64.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/ns87303.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/pci_32.h+0−8

This diff is large: its 15 lines aren’t shown here.

arch/sparc/include/asm/pci_64.h+0−8

This diff is large: its 15 lines aren’t shown here.

arch/sparc/include/asm/perfctr.h+23−0

This diff is large: its 30 lines aren’t shown here.

arch/sparc/include/asm/pgtable_32.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/pgtable_64.h+2−3

This diff is large: its 20 lines aren’t shown here.

arch/sparc/include/asm/posix_types.h+17−116

This diff is large: its 163 lines aren’t shown here.

arch/sparc/include/asm/processor.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/processor_64.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/sparc/include/asm/ptrace.h+4−3

This diff is large: its 28 lines aren’t shown here.

arch/sparc/include/asm/setup.h+16−0

This diff is large: its 31 lines aren’t shown here.

arch/sparc/include/asm/switch_to.h+8−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/switch_to_32.h+106−0

This diff is large: its 107 lines aren’t shown here.

arch/sparc/include/asm/switch_to_64.h+72−0

This diff is large: its 73 lines aren’t shown here.

arch/sparc/include/asm/system.h+0−8

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/system_32.h+0−284

This diff is large: its 285 lines aren’t shown here.

arch/sparc/include/asm/system_64.h+0−331

This diff is large: its 332 lines aren’t shown here.

arch/sparc/include/asm/timer_32.h+2−1

This diff is large: its 15 lines aren’t shown here.

arch/sparc/include/asm/uaccess_64.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/vga.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/vio.h+8−1

This diff is large: its 23 lines aren’t shown here.

arch/sparc/kernel/auxio_32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/devices.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/sparc/kernel/ds.c+2−5

This diff is large: its 18 lines aren’t shown here.

arch/sparc/kernel/iommu.c+6−4

This diff is large: its 31 lines aren’t shown here.

arch/sparc/kernel/ioport.c+10−8

This diff is large: its 60 lines aren’t shown here.

arch/sparc/kernel/irq.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/irq_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/jump_label.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/kgdb_32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/kgdb_64.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/leon_kernel.c+3−3

This diff is large: its 15 lines aren’t shown here.

arch/sparc/kernel/leon_pci.c+7−53

This diff is large: its 89 lines aren’t shown here.

arch/sparc/kernel/module.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/muldiv.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/nmi.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/pci.c+29−77

This diff is large: its 208 lines aren’t shown here.

arch/sparc/kernel/pci_sun4v.c+5−4

This diff is large: its 30 lines aren’t shown here.

arch/sparc/kernel/pcr.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/perf_event.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/process_32.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/sparc/kernel/process_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/ptrace_32.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/sparc/kernel/ptrace_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/reboot.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/sparc/kernel/rtrap_64.S+0−7

This diff is large: its 22 lines aren’t shown here.

arch/sparc/kernel/setup_32.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/sparc/kernel/setup_64.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/sparc/kernel/signal32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/signal_32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/signal_64.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/sigutil_32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/sigutil_64.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/sparc_ksyms_64.c+1−1

This diff is large: its 14 lines aren’t shown here.

arch/sparc/kernel/sun4d_smp.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/sun4m_smp.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/time_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/traps_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/traps_64.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/sparc/kernel/unaligned_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/kernel/unaligned_64.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/sparc/kernel/vio.c+6−2

This diff is large: its 20 lines aren’t shown here.

arch/sparc/kernel/visemul.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/sparc/math-emu/math_64.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/mm/btfixup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/mm/fault_32.c+30−8

This diff is large: its 74 lines aren’t shown here.

arch/sparc/mm/fault_64.c+30−7

This diff is large: its 65 lines aren’t shown here.

arch/sparc/mm/init_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/mm/init_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/mm/init_64.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/sparc/mm/loadmmu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/mm/tsb.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/prom/console_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/prom/console_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/prom/misc_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/prom/misc_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/prom/p1275.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sparc/prom/ranges.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/tile/Kconfig+6−2

This diff is large: its 36 lines aren’t shown here.

arch/tile/Makefile+2−3

This diff is large: its 19 lines aren’t shown here.

arch/tile/include/arch/spr_def.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/tile/include/asm/atomic.h+3−49

This diff is large: its 69 lines aren’t shown here.

arch/tile/include/asm/atomic_32.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/tile/include/asm/atomic_64.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/tile/include/asm/barrier.hrenamed from arch/tile/include/asm/system.h+4−117

This diff is large: its 150 lines aren’t shown here.

arch/tile/include/asm/bitops_32.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/tile/include/asm/bitops_64.h+4−5

This diff is large: its 31 lines aren’t shown here.

arch/tile/include/asm/cacheflush.h+10−1

This diff is large: its 23 lines aren’t shown here.

arch/tile/include/asm/cmpxchg.h+73−0

This diff is large: its 74 lines aren’t shown here.

arch/tile/include/asm/compat.h+0−11

This diff is large: its 18 lines aren’t shown here.

arch/tile/include/asm/exec.h+20−0

This diff is large: its 21 lines aren’t shown here.

arch/tile/include/asm/irq.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/tile/include/asm/pgtable.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/tile/include/asm/setup.h+22−0

This diff is large: its 29 lines aren’t shown here.

arch/tile/include/asm/smp.h+0−7

This diff is large: its 21 lines aren’t shown here.

arch/tile/include/asm/spinlock_32.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/tile/include/asm/spinlock_64.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/tile/include/asm/stack.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/tile/include/asm/switch_to.h+76−0

This diff is large: its 77 lines aren’t shown here.

arch/tile/include/asm/timex.h+2−0

This diff is large: its 14 lines aren’t shown here.

arch/tile/include/asm/traps.h+5−1

This diff is large: its 13 lines aren’t shown here.

arch/tile/include/asm/unaligned.h+15−0

This diff is large: its 20 lines aren’t shown here.

arch/tile/kernel/compat.c+0−43

This diff is large: its 61 lines aren’t shown here.

arch/tile/kernel/early_printk.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/tile/kernel/entry.S+2−0

This diff is large: its 15 lines aren’t shown here.

arch/tile/kernel/intvec_32.S+20−4

This diff is large: its 59 lines aren’t shown here.

arch/tile/kernel/intvec_64.S+46−6

This diff is large: its 103 lines aren’t shown here.

arch/tile/kernel/module.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/tile/kernel/proc.c+2−3

This diff is large: its 28 lines aren’t shown here.

arch/tile/kernel/process.c+4−2

This diff is large: its 29 lines aren’t shown here.

arch/tile/kernel/regs_32.S+1−1

This diff is large: its 13 lines aren’t shown here.

arch/tile/kernel/regs_64.S+1−1

This diff is large: its 13 lines aren’t shown here.

arch/tile/kernel/setup.c+21−15

This diff is large: its 93 lines aren’t shown here.

arch/tile/kernel/single_step.c+20−12

This diff is large: its 53 lines aren’t shown here.

arch/tile/kernel/smp.c+7−20

This diff is large: its 48 lines aren’t shown here.

arch/tile/kernel/smpboot.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/tile/kernel/stack.c+113−119

This diff is large: its 338 lines aren’t shown here.

arch/tile/kernel/traps.c+13−3

This diff is large: its 58 lines aren’t shown here.

arch/tile/lib/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/tile/lib/cacheflush.c+27−3

This diff is large: its 64 lines aren’t shown here.

arch/tile/lib/memcpy_user_64.c+7−1

This diff is large: its 15 lines aren’t shown here.

arch/tile/lib/spinlock_common.h+1−1

This diff is large: its 7 lines aren’t shown here.

arch/tile/mm/elf.c+2−7

This diff is large: its 27 lines aren’t shown here.

arch/tile/mm/fault.c+16−7

This diff is large: its 75 lines aren’t shown here.

arch/tile/mm/homecache.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/tile/mm/init.c+15−12

This diff is large: its 69 lines aren’t shown here.

arch/tile/mm/pgtable.c+24−15

This diff is large: its 90 lines aren’t shown here.

arch/um/Kconfig.common+1−0

This diff is large: its 8 lines aren’t shown here.

arch/um/Makefile+3−2

This diff is large: its 26 lines aren’t shown here.

arch/um/defconfig+471−184

This diff is large: its 998 lines aren’t shown here.

arch/um/drivers/chan.h+9−9

This diff is large: its 34 lines aren’t shown here.

arch/um/drivers/chan_kern.c+88−110

This diff is large: its 320 lines aren’t shown here.

arch/um/drivers/chan_user.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/um/drivers/cow.h+0−35

This diff is large: its 42 lines aren’t shown here.

arch/um/drivers/cow_user.c+21−22

This diff is large: its 100 lines aren’t shown here.

arch/um/drivers/line.c+115−143

This diff is large: its 493 lines aren’t shown here.

arch/um/drivers/line.h+11−18

This diff is large: its 70 lines aren’t shown here.

arch/um/drivers/mconsole_kern.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/um/drivers/net_kern.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/drivers/port_kern.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/um/drivers/random.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/drivers/ssl.c+21−20

This diff is large: its 91 lines aren’t shown here.

arch/um/drivers/stdio_console.c+23−23

This diff is large: its 95 lines aren’t shown here.

arch/um/drivers/ubd.hrenamed from arch/um/drivers/ubd_user.h+0−0

File renamed without changes.

arch/um/drivers/ubd_kern.c+16−30

This diff is large: its 65 lines aren’t shown here.

arch/um/drivers/ubd_user.c+3−5

This diff is large: its 18 lines aren’t shown here.

arch/um/drivers/xterm_kern.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/include/asm/Kbuild+2−1

This diff is large: its 6 lines aren’t shown here.

arch/um/include/asm/asm-offsets.h+0−1

This diff is large: its 2 lines aren’t shown here.

arch/um/include/asm/auxvec.h+0−4

This diff is large: its 5 lines aren’t shown here.

arch/um/include/asm/current.h+0−13

This diff is large: its 14 lines aren’t shown here.

arch/um/include/asm/delay.h+0−18

This diff is large: its 19 lines aren’t shown here.

arch/um/include/asm/fixmap.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/um/include/asm/io.h+0−57

This diff is large: its 58 lines aren’t shown here.

arch/um/include/asm/mutex.h+0−9

This diff is large: its 10 lines aren’t shown here.

arch/um/include/asm/param.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/um/include/asm/pci.h+0−6

This diff is large: its 7 lines aren’t shown here.

arch/um/include/asm/pgalloc.h+1−2

This diff is large: its 10 lines aren’t shown here.

arch/um/include/asm/pgtable.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/um/include/asm/ptrace-generic.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/um/include/shared/common-offsets.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/um/include/shared/kern_util.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/kernel/Makefile+4−3

This diff is large: its 14 lines aren’t shown here.

arch/um/kernel/process.c+3−7

This diff is large: its 33 lines aren’t shown here.

arch/um/kernel/sigio.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/kernel/skas/mmu.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/um/kernel/skas/process.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/kernel/smp.c+4−5

This diff is large: its 35 lines aren’t shown here.

arch/um/kernel/time.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/os-Linux/Makefile+0−2

This diff is large: its 9 lines aren’t shown here.

arch/um/os-Linux/user_syms.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/scripts/Makefile.rules+3−4

This diff is large: its 21 lines aren’t shown here.

arch/unicore32/boot/Makefile+2−10

This diff is large: its 26 lines aren’t shown here.

arch/unicore32/include/asm/Kbuild+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/include/asm/barrier.h+28−0

This diff is large: its 29 lines aren’t shown here.

arch/unicore32/include/asm/bug.h+27−0

This diff is large: its 28 lines aren’t shown here.

arch/unicore32/include/asm/cmpxchg.h+61−0

This diff is large: its 62 lines aren’t shown here.

arch/unicore32/include/asm/dma-mapping.h+12−6

This diff is large: its 33 lines aren’t shown here.

arch/unicore32/include/asm/exec.h+15−0

This diff is large: its 16 lines aren’t shown here.

arch/unicore32/include/asm/hwdef-copro.h+48−0

This diff is large: its 49 lines aren’t shown here.

arch/unicore32/include/asm/io.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/include/asm/pci.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/include/asm/switch_to.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/unicore32/include/asm/system.h+0−161

This diff is large: its 162 lines aren’t shown here.

arch/unicore32/include/asm/uaccess.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/kernel/dma.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/kernel/head.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/unicore32/kernel/hibernate.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/kernel/irq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/kernel/ksyms.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/kernel/pci.c+2−3

This diff is large: its 26 lines aren’t shown here.

arch/unicore32/kernel/process.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/unicore32/kernel/setup.h+3−0

This diff is large: its 12 lines aren’t shown here.

arch/unicore32/kernel/traps.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/mm/alignment.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/unicore32/mm/dma-swiotlb.c+16−2

This diff is large: its 26 lines aren’t shown here.

arch/unicore32/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/mm/flush.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/mm/mm.h+5−0

This diff is large: its 19 lines aren’t shown here.

arch/x86/Kconfig+25−5

This diff is large: its 60 lines aren’t shown here.

arch/x86/Makefile+17−0

This diff is large: its 31 lines aren’t shown here.

arch/x86/Makefile.um+3−4

This diff is large: its 19 lines aren’t shown here.

arch/x86/boot/Makefile+3−3

This diff is large: its 13 lines aren’t shown here.

arch/x86/configs/i386_defconfig+22−42

This diff is large: its 175 lines aren’t shown here.

arch/x86/configs/x86_64_defconfig+23−44

This diff is large: its 191 lines aren’t shown here.

arch/x86/ia32/ia32_aout.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/ia32/ia32_signal.c+11−13

This diff is large: its 60 lines aren’t shown here.

arch/x86/ia32/sys_ia32.c+0−40

This diff is large: its 47 lines aren’t shown here.

arch/x86/include/asm/Kbuild+2−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/include/asm/apic.h+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/auxvec.h+7−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/barrier.hrenamed from arch/x86/um/asm/system.h+6−25

This diff is large: its 52 lines aren’t shown here.

arch/x86/include/asm/bug.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/cacheflush.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/cmpxchg.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/compat.h+36−4

This diff is large: its 66 lines aren’t shown here.

arch/x86/include/asm/debugreg.h+67−0

This diff is large: its 76 lines aren’t shown here.

arch/x86/include/asm/dma-mapping.h+16−10

This diff is large: its 62 lines aren’t shown here.

arch/x86/include/asm/elf.h+25−7

This diff is large: its 83 lines aren’t shown here.

arch/x86/include/asm/exec.h+1−0

This diff is large: its 2 lines aren’t shown here.

arch/x86/include/asm/futex.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/i387.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/ia32.h+18−0

This diff is large: its 32 lines aren’t shown here.

arch/x86/include/asm/idle.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/io_apic.h+9−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/kvm.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/kvm_emulate.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/kvm_host.h+45−18

This diff is large: its 128 lines aren’t shown here.

arch/x86/include/asm/local.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/mc146818rtc.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/mtrr.h+18−10

This diff is large: its 50 lines aren’t shown here.

arch/x86/include/asm/page_types.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/paravirt.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/perf_event.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/posix_types.h+3−1

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/posix_types_32.h+9−66

This diff is large: its 89 lines aren’t shown here.

arch/x86/include/asm/posix_types_64.h+3−103

This diff is large: its 117 lines aren’t shown here.

arch/x86/include/asm/posix_types_x32.h+19−0

This diff is large: its 20 lines aren’t shown here.

arch/x86/include/asm/processor.h+29−67

This diff is large: its 157 lines aren’t shown here.

arch/x86/include/asm/ptrace.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/segment.h+56−2

This diff is large: its 64 lines aren’t shown here.

arch/x86/include/asm/sigcontext.h+30−27

This diff is large: its 65 lines aren’t shown here.

arch/x86/include/asm/sigframe.h+13−0

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/sighandling.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/x86/include/asm/special_insns.h+199−0

This diff is large: its 200 lines aren’t shown here.

arch/x86/include/asm/stackprotector.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/switch_to.h+129−0

This diff is large: its 130 lines aren’t shown here.

arch/x86/include/asm/sys_ia32.h+5−2

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/syscall.h+3−2

This diff is large: its 24 lines aren’t shown here.

arch/x86/include/asm/system.h+0−523

This diff is large: its 524 lines aren’t shown here.

arch/x86/include/asm/thread_info.h+17−1

This diff is large: its 46 lines aren’t shown here.

arch/x86/include/asm/tlbflush.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/traps.h+25−0

This diff is large: its 30 lines aren’t shown here.

arch/x86/include/asm/tsc.h+2−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/include/asm/uaccess.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/uaccess_32.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/uaccess_64.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/unistd.h+14−1

This diff is large: its 38 lines aren’t shown here.

arch/x86/include/asm/vgtod.h+10−7

This diff is large: its 33 lines aren’t shown here.

arch/x86/include/asm/virtext.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/word-at-a-time.h+46−0

This diff is large: its 47 lines aren’t shown here.

arch/x86/include/asm/x2apic.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/x86_init.h+6−0

This diff is large: its 30 lines aren’t shown here.

arch/x86/kernel/acpi/boot.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/x86/kernel/acpi/cstate.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/amd_gart_64.c+6−5

This diff is large: its 39 lines aren’t shown here.

arch/x86/kernel/apic/apic.c+9−4

This diff is large: its 30 lines aren’t shown here.

arch/x86/kernel/apic/apic_numachip.c+1−2

This diff is large: its 13 lines aren’t shown here.

arch/x86/kernel/apic/io_apic.c+112−47

This diff is large: its 271 lines aren’t shown here.

arch/x86/kernel/apic/x2apic_cluster.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/x2apic_phys.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/x2apic_uv_x.c+6−1

This diff is large: its 21 lines aren’t shown here.

arch/x86/kernel/apm_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/asm-offsets_64.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/kernel/cpu/common.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/p5.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/therm_throt.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/winchip.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/generic.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/if.c+6−4

This diff is large: its 40 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event.c+19−2

This diff is large: its 77 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_amd.c+18−0

This diff is large: its 39 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_intel.c+36−0

This diff is large: its 64 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_p4.c+13−0

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_p6.c+19−0

This diff is large: its 33 lines aren’t shown here.

arch/x86/kernel/cpuid.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/dumpstack.c+6−3

This diff is large: its 28 lines aren’t shown here.

arch/x86/kernel/entry_32.S+10−7

This diff is large: its 34 lines aren’t shown here.

arch/x86/kernel/entry_64.S+44−0

This diff is large: its 67 lines aren’t shown here.

arch/x86/kernel/i8259.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/irq.c+6−1

This diff is large: its 15 lines aren’t shown here.

arch/x86/kernel/irqinit.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/kdebugfs.c+1−8

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/kgdb.c+60−1

This diff is large: its 78 lines aren’t shown here.

arch/x86/kernel/kvm.c+4−0

This diff is large: its 19 lines aren’t shown here.

arch/x86/kernel/kvmclock.c+12−3

This diff is large: its 38 lines aren’t shown here.

arch/x86/kernel/ldt.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/machine_kexec_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/mca_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/module.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/msr.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/paravirt.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/kernel/pci-calgary_64.c+5−5

This diff is large: its 38 lines aren’t shown here.

arch/x86/kernel/pci-dma.c+5−3

This diff is large: its 24 lines aren’t shown here.

arch/x86/kernel/pci-nommu.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/x86/kernel/pci-swiotlb.c+13−4

This diff is large: its 35 lines aren’t shown here.

arch/x86/kernel/process.c+107−18

This diff is large: its 161 lines aren’t shown here.

arch/x86/kernel/process_32.c+1−59

This diff is large: its 96 lines aren’t shown here.

arch/x86/kernel/process_64.c+22−114

This diff is large: its 197 lines aren’t shown here.

arch/x86/kernel/ptrace.c+101−2

This diff is large: its 138 lines aren’t shown here.

arch/x86/kernel/setup.c+1−11

This diff is large: its 33 lines aren’t shown here.

arch/x86/kernel/signal.c+123−17

This diff is large: its 207 lines aren’t shown here.

arch/x86/kernel/smpboot.c+4−6

This diff is large: its 41 lines aren’t shown here.

arch/x86/kernel/sys_x86_64.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/syscall_64.c+8−0

This diff is large: its 15 lines aren’t shown here.

arch/x86/kernel/tboot.c+6−3

This diff is large: its 40 lines aren’t shown here.

arch/x86/kernel/tce_64.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/tls.c+2−3

This diff is large: its 26 lines aren’t shown here.

arch/x86/kernel/traps.c+70−64

This diff is large: its 312 lines aren’t shown here.

arch/x86/kernel/tsc.c+12−2

This diff is large: its 35 lines aren’t shown here.

arch/x86/kernel/vm86_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/vsyscall_64.c+16−17

This diff is large: its 87 lines aren’t shown here.

arch/x86/kernel/x86_init.c+4−1

This diff is large: its 19 lines aren’t shown here.

arch/x86/kvm/cpuid.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kvm/cpuid.h+8−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/kvm/emulate.c+97−15

This diff is large: its 238 lines aren’t shown here.

arch/x86/kvm/i8259.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kvm/lapic.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kvm/mmu.c+38−47

This diff is large: its 310 lines aren’t shown here.

arch/x86/kvm/mmu_audit.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/x86/kvm/pmu.c+8−4

This diff is large: its 50 lines aren’t shown here.

arch/x86/kvm/svm.c+104−15

This diff is large: its 217 lines aren’t shown here.

arch/x86/kvm/vmx.c+24−31

This diff is large: its 158 lines aren’t shown here.

arch/x86/kvm/x86.c+313−90

This diff is large: its 647 lines aren’t shown here.

arch/x86/lib/usercopy.c+103−0

This diff is large: its 114 lines aren’t shown here.

arch/x86/lib/usercopy_32.c+0−87

This diff is large: its 94 lines aren’t shown here.

arch/x86/lib/usercopy_64.c+0−49

This diff is large: its 56 lines aren’t shown here.

arch/x86/math-emu/fpu_entry.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/x86/mm/fault.c+5−5

This diff is large: its 45 lines aren’t shown here.

arch/x86/mm/init.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/init_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/init_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/kmemcheck/selftest.c+1−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/mm/pgtable_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/srat.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/net/bpf_jit.S+91−31

This diff is large: its 171 lines aren’t shown here.

arch/x86/net/bpf_jit_comp.c+25−18

This diff is large: its 93 lines aren’t shown here.

arch/x86/oprofile/backtrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/pci/acpi.c+6−1

This diff is large: its 14 lines aren’t shown here.

arch/x86/pci/fixup.c+5−7

This diff is large: its 35 lines aren’t shown here.

arch/x86/pci/i386.c+84−1

This diff is large: its 106 lines aren’t shown here.

arch/x86/pci/mrst.c+38−2

This diff is large: its 75 lines aren’t shown here.

arch/x86/platform/ce4100/falconfalls.dts+5−2

This diff is large: its 22 lines aren’t shown here.

arch/x86/platform/geode/Makefile+1−0

This diff is large: its 4 lines aren’t shown here.

arch/x86/platform/geode/geos.c+128−0

This diff is large: its 129 lines aren’t shown here.

arch/x86/platform/olpc/olpc.c+97−0

This diff is large: its 125 lines aren’t shown here.

arch/x86/power/cpu.c+2−2

This diff is large: its 25 lines aren’t shown here.

arch/x86/power/hibernate_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/syscalls/Makefile+17−5

This diff is large: its 45 lines aren’t shown here.

arch/x86/syscalls/syscall_32.tbl+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/syscalls/syscall_64.tbl+306−273

This diff is large: its 624 lines aren’t shown here.

arch/x86/um/Kconfig+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/um/asm/barrier.h+75−0

This diff is large: its 76 lines aren’t shown here.

arch/x86/um/asm/processor.h+10−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/um/asm/processor_32.h+0−10

This diff is large: its 17 lines aren’t shown here.

arch/x86/um/asm/processor_64.h+0−10

This diff is large: its 24 lines aren’t shown here.

arch/x86/um/bugs_32.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/x86/um/mem_32.c+0−8

This diff is large: its 15 lines aren’t shown here.

arch/x86/um/sys_call_table_64.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/um/user-offsets.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/um/vdso/vma.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/vdso/.gitignore+2−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/vdso/Makefile+45−1

This diff is large: its 74 lines aren’t shown here.

arch/x86/vdso/vclock_gettime.c+67−68

This diff is large: its 201 lines aren’t shown here.

arch/x86/vdso/vdso32-setup.c+7−15

This diff is large: its 46 lines aren’t shown here.

arch/x86/vdso/vdsox32.S+22−0

This diff is large: its 23 lines aren’t shown here.

arch/x86/vdso/vdsox32.lds.S+28−0

This diff is large: its 29 lines aren’t shown here.

arch/x86/vdso/vma.c+71−10

This diff is large: its 136 lines aren’t shown here.

arch/x86/xen/enlighten.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/mmu.c+3−1

This diff is large: its 25 lines aren’t shown here.

arch/x86/xen/pci-swiotlb-xen.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/xen/setup.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/xen/smp.c+7−1

This diff is large: its 24 lines aren’t shown here.

arch/xtensa/configs/iss_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/include/asm/atomic.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/include/asm/barrier.h+29−0

This diff is large: its 30 lines aren’t shown here.

arch/xtensa/include/asm/bitops.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/xtensa/include/asm/cmpxchg.hrenamed from arch/xtensa/include/asm/system.h+7−60

This diff is large: its 86 lines aren’t shown here.

arch/xtensa/include/asm/exec.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/xtensa/include/asm/mman.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/xtensa/include/asm/posix_types.h+7−90

This diff is large: its 112 lines aren’t shown here.

arch/xtensa/include/asm/setup.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/xtensa/include/asm/switch_to.h+22−0

This diff is large: its 23 lines aren’t shown here.

arch/xtensa/include/asm/uaccess.h+2−0

This diff is large: its 10 lines aren’t shown here.

arch/xtensa/kernel/pci.c+1−16

This diff is large: its 34 lines aren’t shown here.

arch/xtensa/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/xtensa/kernel/ptrace.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/xtensa/kernel/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/xtensa/kernel/traps.c+19−0

This diff is large: its 26 lines aren’t shown here.

arch/xtensa/mm/fault.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/xtensa/mm/tlb.c+0−1

This diff is large: its 8 lines aren’t shown here.

block/blk-core.c+3−2

This diff is large: its 19 lines aren’t shown here.

block/blk-throttle.c+1−1

This diff is large: its 9 lines aren’t shown here.

block/cfq-iosched.c+8−2

This diff is large: its 59 lines aren’t shown here.

crypto/Kconfig+3−3

This diff is large: its 27 lines aren’t shown here.

crypto/ablkcipher.c+2−2

This diff is large: its 18 lines aren’t shown here.

crypto/aead.c+2−2

This diff is large: its 18 lines aren’t shown here.

crypto/crypto_user.c+79−1

This diff is large: its 117 lines aren’t shown here.

crypto/pcrypt.c+4−4

This diff is large: its 24 lines aren’t shown here.

drivers/Kconfig+6−0

This diff is large: its 20 lines aren’t shown here.

drivers/Makefile+3−0

This diff is large: its 17 lines aren’t shown here.

drivers/acpi/Kconfig+9−0

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/acpica/Makefile+3−1

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/acpica/accommon.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/acpica/acdebug.h+5−3

This diff is large: its 25 lines aren’t shown here.

drivers/acpi/acpica/acevents.h+11−10

This diff is large: its 48 lines aren’t shown here.

drivers/acpi/acpica/acglobal.h+10−1

This diff is large: its 38 lines aren’t shown here.

drivers/acpi/acpica/achware.h+20−12

This diff is large: its 44 lines aren’t shown here.

drivers/acpi/acpica/aclocal.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/acpica/acmacros.h+6−0

This diff is large: its 13 lines aren’t shown here.

drivers/acpi/acpica/acnamesp.h+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/acpi/acpica/actables.h+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/acpi/acpica/evevent.c+3−1

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/acpica/evglock.c+3−1

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/acpica/evgpe.c+3−1

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/acpica/evgpeblk.c+3−1

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/acpica/evgpeinit.c+3−1

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/acpica/evgpeutil.c+3−0

This diff is large: its 14 lines aren’t shown here.

drivers/acpi/acpica/evmisc.c+16−10

This diff is large: its 63 lines aren’t shown here.

drivers/acpi/acpica/evsci.c+3−1

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/acpica/evxface.c+220−216

This diff is large: its 461 lines aren’t shown here.

drivers/acpi/acpica/evxfevnt.c+2−0

This diff is large: its 13 lines aren’t shown here.

drivers/acpi/acpica/evxfgpe.c+2−0

This diff is large: its 13 lines aren’t shown here.

drivers/acpi/acpica/hwacpi.c+3−0

This diff is large: its 14 lines aren’t shown here.

drivers/acpi/acpica/hwesleep.c+247−0

This diff is large: its 248 lines aren’t shown here.

drivers/acpi/acpica/hwgpe.c+3−1

This diff is large: its 15 lines aren’t shown here.

drivers/acpi/acpica/hwregs.c+13−3

This diff is large: its 69 lines aren’t shown here.

drivers/acpi/acpica/hwsleep.c+73−328

This diff is large: its 552 lines aren’t shown here.

drivers/acpi/acpica/hwtimer.c+2−0

This diff is large: its 13 lines aren’t shown here.

drivers/acpi/acpica/hwxface.c+14−36

This diff is large: its 108 lines aren’t shown here.

drivers/acpi/acpica/hwxfsleep.c+431−0

This diff is large: its 432 lines aren’t shown here.

drivers/acpi/acpica/nsdump.c+14−1

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/nsdumpdv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nspredef.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/acpi/acpica/nsrepair.c+58−101

This diff is large: its 236 lines aren’t shown here.

drivers/acpi/acpica/nsutils.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/tbfadt.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/tbinstal.c+97−20

This diff is large: its 146 lines aren’t shown here.

drivers/acpi/acpica/tbutils.c+52−43

This diff is large: its 156 lines aren’t shown here.

drivers/acpi/acpica/utdecode.c+18−16

This diff is large: its 48 lines aren’t shown here.

drivers/acpi/acpica/utglobal.c+8−1

This diff is large: its 44 lines aren’t shown here.

drivers/acpi/acpica/utinit.c+32−5

This diff is large: its 68 lines aren’t shown here.

drivers/acpi/acpica/utxface.c+5−1

This diff is large: its 34 lines aren’t shown here.

drivers/acpi/apei/apei-base.c+40−21

This diff is large: its 145 lines aren’t shown here.

drivers/acpi/apei/cper.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/apei/einj.c+13−4

This diff is large: its 45 lines aren’t shown here.

drivers/acpi/apei/erst.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/bgrt.c+175−0

This diff is large: its 176 lines aren’t shown here.

drivers/acpi/bus.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/ec.c+14−4

This diff is large: its 32 lines aren’t shown here.

drivers/acpi/ec_sys.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/nvs.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/acpi/osl.c+38−86

This diff is large: its 184 lines aren’t shown here.

drivers/acpi/power.c+164−2

This diff is large: its 226 lines aren’t shown here.

drivers/acpi/processor_driver.c+48−15

This diff is large: its 143 lines aren’t shown here.

drivers/acpi/processor_idle.c+32−2

This diff is large: its 61 lines aren’t shown here.

drivers/acpi/processor_thermal.c+37−8

This diff is large: its 80 lines aren’t shown here.

drivers/acpi/processor_throttling.c+2−3

This diff is large: its 23 lines aren’t shown here.

drivers/acpi/reboot.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/scan.c+8−4

This diff is large: its 27 lines aren’t shown here.

drivers/acpi/sleep.c+68−8

This diff is large: its 165 lines aren’t shown here.

drivers/acpi/thermal.c+4−4

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/video.c+31−19

This diff is large: its 114 lines aren’t shown here.

drivers/acpi/video_detect.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/amba/bus.c+80−67

This diff is large: its 211 lines aren’t shown here.

drivers/atm/eni.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/atm/firestream.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/atm/horizon.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/atm/idt77105.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/atm/iphase.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/atm/suni.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/atm/zatm.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/base/dma-buf.c+141−24

This diff is large: its 244 lines aren’t shown here.

drivers/base/firmware_class.c+108−100

This diff is large: its 314 lines aren’t shown here.

drivers/base/power/clock_ops.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/base/power/common.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/base/power/opp.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/base/power/runtime.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/base/regmap/regcache-lzo.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/base/regmap/regcache-rbtree.c+9−2

This diff is large: its 40 lines aren’t shown here.

drivers/base/regmap/regcache.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/base/regmap/regmap-debugfs.c+4−9

This diff is large: its 48 lines aren’t shown here.

drivers/base/regmap/regmap-irq.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/base/soc.c+1−3

This diff is large: its 18 lines aren’t shown here.

drivers/bcma/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bcma/driver_pci_host.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/block/cciss_scsi.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/block/drbd/drbd_nl.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/floppy.c+0−37

This diff is large: its 79 lines aren’t shown here.

drivers/block/hd.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/mtip32xx/Kconfig+1−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/mtip32xx/mtip32xx.c+664−196

This diff is large: its 1606 lines aren’t shown here.

drivers/block/mtip32xx/mtip32xx.h+45−13

This diff is large: its 95 lines aren’t shown here.

drivers/block/nbd.c+148−148

This diff is large: its 703 lines aren’t shown here.

drivers/block/rbd.c+448−282

This diff is large: its 1372 lines aren’t shown here.

drivers/block/rbd_types.h+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/block/sunvdc.c+1−4

This diff is large: its 12 lines aren’t shown here.

drivers/block/virtio_blk.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/block/xd.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/xen-blkback/blkback.c+13−37

This diff is large: its 100 lines aren’t shown here.

drivers/block/xen-blkback/common.h+0−6

This diff is large: its 20 lines aren’t shown here.

drivers/block/xen-blkback/xenbus.c+32−57

This diff is large: its 128 lines aren’t shown here.

drivers/block/xen-blkfront.c+23−21

This diff is large: its 187 lines aren’t shown here.

drivers/bluetooth/ath3k.c+4−0

This diff is large: its 20 lines aren’t shown here.

drivers/bluetooth/bt3c_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/bluetooth/btmrvl_debugfs.c+10−16

This diff is large: its 103 lines aren’t shown here.

drivers/bluetooth/btuart_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/bluetooth/btusb.c+4−1

This diff is large: its 27 lines aren’t shown here.

drivers/bluetooth/dtl1_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/bluetooth/hci_ldisc.c+1−1

This diff is large: its 13 lines aren’t shown here.

drivers/char/agp/intel-agp.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/char/agp/intel-gtt.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/char/apm-emulation.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/char/ds1302.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/efirtc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/genrtc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/hpet.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/char/hw_random/nomadik-rng.c+1−12

This diff is large: its 19 lines aren’t shown here.

drivers/char/hw_random/omap-rng.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/char/ipmi/ipmi_devintf.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/ipmi/ipmi_kcs_sm.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/char/ipmi/ipmi_msghandler.c+131−112

This diff is large: its 404 lines aren’t shown here.

drivers/char/ipmi/ipmi_si_intf.c+26−47

This diff is large: its 158 lines aren’t shown here.

drivers/char/ipmi/ipmi_watchdog.c+14−11

This diff is large: its 79 lines aren’t shown here.

drivers/char/lp.c+1−5

This diff is large: its 26 lines aren’t shown here.

drivers/char/mbcs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/mspec.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/mwave/3780i.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/nvram.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/nwflash.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/pcmcia/synclink_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/random.c+8−3

This diff is large: its 19 lines aren’t shown here.

drivers/char/rtc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/sonypi.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/char/tile-srom.c+6−6

This diff is large: its 24 lines aren’t shown here.

drivers/char/virtio_console.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/char/xilinx_hwicap/xilinx_hwicap.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/clk/Kconfig+37−0

This diff is large: its 41 lines aren’t shown here.

drivers/clk/Makefile+2−0

This diff is large: its 5 lines aren’t shown here.

drivers/clk/clk-divider.c+200−0

This diff is large: its 201 lines aren’t shown here.

drivers/clk/clk-fixed-rate.c+82−0

This diff is large: its 83 lines aren’t shown here.

drivers/clk/clk-gate.c+150−0

This diff is large: its 151 lines aren’t shown here.

drivers/clk/clk-mux.c+116−0

This diff is large: its 117 lines aren’t shown here.

drivers/clk/clk.c+1461−0

This diff is large: its 1462 lines aren’t shown here.

drivers/clocksource/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/clocksource/acpi_pm.c+8−16

This diff is large: its 67 lines aren’t shown here.

drivers/clocksource/tcb_clksrc.c+62−28

This diff is large: its 118 lines aren’t shown here.

drivers/cpufreq/Kconfig.arm+41−2

This diff is large: its 64 lines aren’t shown here.

drivers/cpufreq/Makefile+4−1

This diff is large: its 16 lines aren’t shown here.

drivers/cpufreq/cpufreq.c+24−0

This diff is large: its 66 lines aren’t shown here.

drivers/cpufreq/cpufreq_ondemand.c+57−1

This diff is large: its 72 lines aren’t shown here.

drivers/cpufreq/db8500-cpufreq.c+6−9

This diff is large: its 39 lines aren’t shown here.

drivers/cpufreq/exynos-cpufreq.c+6−0

This diff is large: its 20 lines aren’t shown here.

drivers/cpufreq/exynos4210-cpufreq.c+35−35

This diff is large: its 141 lines aren’t shown here.

drivers/cpufreq/exynos4x12-cpufreq.c+536−0

This diff is large: its 537 lines aren’t shown here.

drivers/cpufreq/exynos5250-cpufreq.c+347−0

This diff is large: its 348 lines aren’t shown here.

drivers/cpufreq/omap-cpufreq.c+67−6

This diff is large: its 127 lines aren’t shown here.

drivers/cpufreq/powernow-k7.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/cpufreq/s3c2416-cpufreq.c+542−0

This diff is large: its 543 lines aren’t shown here.

drivers/cpufreq/s3c64xx-cpufreq.c+0−7

This diff is large: its 14 lines aren’t shown here.

drivers/cpuidle/cpuidle.c+92−8

This diff is large: its 169 lines aren’t shown here.

drivers/cpuidle/driver.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/cpuidle/governors/menu.c+5−2

This diff is large: its 28 lines aren’t shown here.

drivers/cpuidle/sysfs.c+40−0

This diff is large: its 91 lines aren’t shown here.

drivers/devfreq/exynos4_bus.c+115−115

This diff is large: its 394 lines aren’t shown here.

drivers/dma/Kconfig+10−2

This diff is large: its 33 lines aren’t shown here.

drivers/dma/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/dma/amba-pl08x.c+16−30

This diff is large: its 125 lines aren’t shown here.

drivers/dma/at_hdmac.c+59−52

This diff is large: its 280 lines aren’t shown here.

drivers/dma/at_hdmac_regs.h+32−2

This diff is large: its 60 lines aren’t shown here.

drivers/dma/coh901318.c+12−38

This diff is large: its 129 lines aren’t shown here.

drivers/dma/dmaengine.c+18−4

This diff is large: its 43 lines aren’t shown here.

drivers/dma/dmaengine.h+89−0

This diff is large: its 90 lines aren’t shown here.

drivers/dma/dw_dmac.c+128−100

This diff is large: its 544 lines aren’t shown here.

drivers/dma/dw_dmac_regs.h+15−1

This diff is large: its 36 lines aren’t shown here.

drivers/dma/ep93xx_dma.c+10−21

This diff is large: its 116 lines aren’t shown here.

drivers/dma/fsldma.c+10−18

This diff is large: its 86 lines aren’t shown here.

drivers/dma/fsldma.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/dma/imx-dma.c+820−131

This diff is large: its 1171 lines aren’t shown here.

drivers/dma/imx-sdma.c+88−100

This diff is large: its 467 lines aren’t shown here.

drivers/dma/intel_mid_dma.c+15−31

This diff is large: its 130 lines aren’t shown here.

drivers/dma/intel_mid_dma_regs.h+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/dma/ioat/dma.c+18−19

This diff is large: its 117 lines aren’t shown here.

drivers/dma/ioat/dma.h+3−26

This diff is large: its 58 lines aren’t shown here.

drivers/dma/ioat/dma_v2.c+11−14

This diff is large: its 83 lines aren’t shown here.

drivers/dma/ioat/dma_v2.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/dma/ioat/dma_v3.c+52−9

This diff is large: its 129 lines aren’t shown here.

drivers/dma/iop-adma.c+15−41

This diff is large: its 132 lines aren’t shown here.

drivers/dma/ipu/ipu_idmac.c+8−17

This diff is large: its 77 lines aren’t shown here.

drivers/dma/mpc512x_dma.c+8−17

This diff is large: its 72 lines aren’t shown here.

drivers/dma/mv_xor.c+7−27

This diff is large: its 84 lines aren’t shown here.

drivers/dma/mv_xor.h+0−3

This diff is large: its 24 lines aren’t shown here.

drivers/dma/mxs-dma.c+37−23

This diff is large: its 159 lines aren’t shown here.

drivers/dma/pch_dma.c+9−28

This diff is large: its 97 lines aren’t shown here.

drivers/dma/pl330.c+2189−129

This diff is large: its 2459 lines aren’t shown here.

drivers/dma/ppc4xx/adma.c+9−40

This diff is large: its 117 lines aren’t shown here.

drivers/dma/ppc4xx/adma.h+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/dma/sa11x0-dma.c+1109−0

This diff is large: its 1110 lines aren’t shown here.

drivers/dma/shdma.c+11−22

This diff is large: its 92 lines aren’t shown here.

drivers/dma/shdma.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/dma/sirf-dma.c+9−18

This diff is large: its 80 lines aren’t shown here.

drivers/dma/ste_dma40.c+13−28

This diff is large: its 118 lines aren’t shown here.

drivers/dma/timb_dma.c+11−26

This diff is large: its 97 lines aren’t shown here.

drivers/dma/txx9dmac.c+10−33

This diff is large: its 107 lines aren’t shown here.

drivers/dma/txx9dmac.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/edac/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/amd64_edac.c+36−14

This diff is large: its 97 lines aren’t shown here.

drivers/edac/amd76x_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/e752x_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/e7xxx_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/edac_mc.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/edac/edac_mc_sysfs.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/edac/edac_stub.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/edac/i3000_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/i3200_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/i5000_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/i5100_edac.c+6−9

This diff is large: its 46 lines aren’t shown here.

drivers/edac/i5400_edac.c+39−17

This diff is large: its 102 lines aren’t shown here.

drivers/edac/i7300_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/i7core_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/i82443bxgx_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/i82860_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/i82875p_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/i82975x_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/mce_amd.c+66−148

This diff is large: its 366 lines aren’t shown here.

drivers/edac/mce_amd.h+6−7

This diff is large: its 27 lines aren’t shown here.

drivers/edac/mce_amd_inj.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/edac/ppc4xx_edac.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/edac/r82600_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/edac/sb_edac.c+32−22

This diff is large: its 172 lines aren’t shown here.

drivers/edac/tile_edac.c+4−0

This diff is large: its 12 lines aren’t shown here.

drivers/edac/x38_edac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/firewire/core-cdev.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/firewire/core-device.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/firewire/core-topology.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/firewire/ohci.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/firewire/sbp2.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/gpio/Kconfig+14−0

This diff is large: its 28 lines aren’t shown here.

drivers/gpio/Makefile+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/gpio/gpio-adp5588.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-davinci.c+16−10

This diff is large: its 55 lines aren’t shown here.

drivers/gpio/gpio-ep93xx.c+0−15

This diff is large: its 43 lines aren’t shown here.

drivers/gpio/gpio-lpc32xx.c+18−1

This diff is large: its 59 lines aren’t shown here.

drivers/gpio/gpio-mc9s08dz60.c+161−0

This diff is large: its 162 lines aren’t shown here.

drivers/gpio/gpio-omap.c+630−683

This diff is large: its 1851 lines aren’t shown here.

drivers/gpio/gpio-pl061.c+6−1

This diff is large: its 14 lines aren’t shown here.

drivers/gpio/gpio-pxa.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/gpio/gpio-sa1100.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpio/gpio-samsung.c+445−42

This diff is large: its 647 lines aren’t shown here.

drivers/gpio/gpio-sodaville.c+299−0

This diff is large: its 300 lines aren’t shown here.

drivers/gpio/gpio-stmpe.c+26−17

This diff is large: its 89 lines aren’t shown here.

drivers/gpio/gpio-tegra.c+93−29

This diff is large: its 273 lines aren’t shown here.

drivers/gpio/gpio-tps65910.c+18−2

This diff is large: its 43 lines aren’t shown here.

drivers/gpio/gpio-twl4030.c+67−44

This diff is large: its 163 lines aren’t shown here.

drivers/gpio/gpiolib.c+91−7

This diff is large: its 187 lines aren’t shown here.

drivers/gpu/drm/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/drm_drv.c+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/drm_fb_helper.c+6−2

This diff is large: its 16 lines aren’t shown here.

drivers/gpu/drm/drm_fops.c+7−0

This diff is large: its 21 lines aren’t shown here.

drivers/gpu/drm/drm_gem.c+9−0

This diff is large: its 30 lines aren’t shown here.

drivers/gpu/drm/drm_prime.c+304−0

This diff is large: its 305 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_buf.c+14−33

This diff is large: its 102 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_core.c+8−6

This diff is large: its 49 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_drv.h+5−5

This diff is large: its 38 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_fimd.c+12−8

This diff is large: its 57 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_gem.c+36−9

This diff is large: its 84 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_gem.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_hdmi.c+48−59

This diff is large: its 245 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_hdmi.h+9−14

This diff is large: its 48 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_plane.c+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_vidi.c+12−8

This diff is large: its 57 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_hdmi.c+20−22

This diff is large: its 147 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_mixer.c+19−21

This diff is large: its 134 lines aren’t shown here.

drivers/gpu/drm/gma500/mdfld_dsi_output.c+4−1

This diff is large: its 24 lines aren’t shown here.

drivers/gpu/drm/i915/i915_debugfs.c+3−11

This diff is large: its 42 lines aren’t shown here.

drivers/gpu/drm/i915/i915_dma.c+19−2

This diff is large: its 43 lines aren’t shown here.

drivers/gpu/drm/i915/i915_drv.c+18−4

This diff is large: its 66 lines aren’t shown here.

drivers/gpu/drm/i915/i915_drv.h+22−1

This diff is large: its 37 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem.c+32−7

This diff is large: its 76 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_execbuffer.c+1−1

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_gtt.c+0−9

This diff is large: its 32 lines aren’t shown here.

drivers/gpu/drm/i915/i915_reg.h+4−0

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/i915/intel_bios.c+22−1

This diff is large: its 44 lines aren’t shown here.

drivers/gpu/drm/i915/intel_display.c+78−28

This diff is large: its 177 lines aren’t shown here.

drivers/gpu/drm/i915/intel_dp.c+35−14

This diff is large: its 82 lines aren’t shown here.

drivers/gpu/drm/i915/intel_drv.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/i915/intel_fb.c+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/i915/intel_i2c.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/i915/intel_lvds.c+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/gpu/drm/i915/intel_ringbuffer.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/i915/intel_sprite.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/nouveau/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/nouveau/nouveau_bios.c+3−2

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/nouveau/nouveau_channel.c+5−5

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/nouveau/nouveau_connector.c+6−3

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/nouveau/nouveau_dma.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/nouveau/nouveau_i2c.c+3−3

This diff is large: its 25 lines aren’t shown here.

drivers/gpu/drm/nouveau/nouveau_state.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/radeon/atom.c+14−1

This diff is large: its 31 lines aren’t shown here.

drivers/gpu/drm/radeon/atom.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/radeon/atombios_crtc.c+5−3

This diff is large: its 22 lines aren’t shown here.

drivers/gpu/drm/radeon/atombios_dp.c+3−0

This diff is large: its 14 lines aren’t shown here.

drivers/gpu/drm/radeon/atombios_encoders.c+6−2

This diff is large: its 29 lines aren’t shown here.

drivers/gpu/drm/radeon/cayman_blit_shaders.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/radeon/evergreen_blit_shaders.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/radeon/evergreen_cs.c+96−2

This diff is large: its 154 lines aren’t shown here.

drivers/gpu/drm/radeon/evergreend.h+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/gpu/drm/radeon/r100.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/radeon/r600.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/radeon/r600_blit_shaders.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/radeon/r600_cp.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/gpu/drm/radeon/r600_cs.c+273−118

This diff is large: its 432 lines aren’t shown here.

drivers/gpu/drm/radeon/r600d.h+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/gpu/drm/radeon/radeon_clocks.c+12−12

This diff is large: its 104 lines aren’t shown here.

drivers/gpu/drm/radeon/radeon_combios.c+4−4

This diff is large: its 34 lines aren’t shown here.

drivers/gpu/drm/radeon/radeon_i2c.c+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/radeon/radeon_legacy_encoders.c+6−6

This diff is large: its 49 lines aren’t shown here.

drivers/gpu/drm/radeon/radeon_object.c+12−1

This diff is large: its 20 lines aren’t shown here.

drivers/gpu/drm/radeon/reg_srcs/cayman+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/radeon/reg_srcs/evergreen+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/radeon/reg_srcs/r600+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/radeon/si_blit_shaders.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/savage/savage_state.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/gpu/drm/udl/udl_drv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/udl/udl_drv.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/udl/udl_gem.c+14−0

This diff is large: its 21 lines aren’t shown here.

drivers/hid/hid-picolcd.c+2−14

This diff is large: its 44 lines aren’t shown here.

drivers/hid/hid-wiimote-debug.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/hsi/Kconfig+19−0

This diff is large: its 20 lines aren’t shown here.

drivers/hsi/Makefile+6−0

This diff is large: its 7 lines aren’t shown here.

drivers/hsi/clients/Kconfig+13−0

This diff is large: its 14 lines aren’t shown here.

drivers/hsi/clients/Makefile+5−0

This diff is large: its 6 lines aren’t shown here.

drivers/hsi/clients/hsi_char.c+802−0

This diff is large: its 803 lines aren’t shown here.

drivers/hsi/hsi.c+494−0

This diff is large: its 495 lines aren’t shown here.

drivers/hsi/hsi_boardinfo.c+62−0

This diff is large: its 63 lines aren’t shown here.

drivers/hsi/hsi_core.h+35−0

This diff is large: its 36 lines aren’t shown here.

drivers/hwmon/Kconfig+24−11

This diff is large: its 93 lines aren’t shown here.

drivers/hwmon/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/hwmon/acpi_power_meter.c+3−0

This diff is large: its 24 lines aren’t shown here.

drivers/hwmon/ad7314.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/hwmon/adm1031.c+8−12

This diff is large: its 53 lines aren’t shown here.

drivers/hwmon/f75375s.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/hwmon/fam15h_power.c+5−5

This diff is large: its 29 lines aren’t shown here.

drivers/hwmon/fschmd.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/hwmon/k10temp.c+4−0

This diff is large: its 18 lines aren’t shown here.

drivers/hwmon/lm63.c+337−249

This diff is large: its 732 lines aren’t shown here.

drivers/hwmon/lm90.c+65−33

This diff is large: its 197 lines aren’t shown here.

drivers/hwmon/max6639.c+11−4

This diff is large: its 52 lines aren’t shown here.

drivers/hwmon/mc13783-adc.c+79−26

This diff is large: its 240 lines aren’t shown here.

drivers/hwmon/mcp3021.c+171−0

This diff is large: its 172 lines aren’t shown here.

drivers/hwmon/pmbus/pmbus_core.c+8−9

This diff is large: its 52 lines aren’t shown here.

drivers/hwmon/smsc47b397.c+8−6

This diff is large: its 44 lines aren’t shown here.

drivers/hwmon/smsc47m1.c+10−9

This diff is large: its 61 lines aren’t shown here.

drivers/hwmon/w83627ehf.c+9−9

This diff is large: its 25 lines aren’t shown here.

drivers/hwmon/w83793.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/hwmon/w83795.c+86−46

This diff is large: its 269 lines aren’t shown here.

drivers/i2c/algos/i2c-algo-bit.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/i2c/algos/i2c-algo-pca.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/i2c/algos/i2c-algo-pcf.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/i2c/algos/i2c-algo-pcf.h+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/i2c/busses/Kconfig+33−12

This diff is large: its 75 lines aren’t shown here.

drivers/i2c/busses/Makefile+3−1

This diff is large: its 23 lines aren’t shown here.

drivers/i2c/busses/i2c-acorn.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/i2c/busses/i2c-designware-pcidrv.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/i2c/busses/i2c-designware-platdrv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/i2c/busses/i2c-eg20t.c+21−23

This diff is large: its 74 lines aren’t shown here.

drivers/i2c/busses/i2c-gpio.c+76−22

This diff is large: its 160 lines aren’t shown here.

drivers/i2c/busses/i2c-i801.c+15−12

This diff is large: its 98 lines aren’t shown here.

drivers/i2c/busses/i2c-imx.c+2−7

This diff is large: its 30 lines aren’t shown here.

drivers/i2c/busses/i2c-isch.c+5−5

This diff is large: its 34 lines aren’t shown here.

drivers/i2c/busses/i2c-mpc.c+49−14

This diff is large: its 104 lines aren’t shown here.

drivers/i2c/busses/i2c-pxa.c+74−21

This diff is large: its 141 lines aren’t shown here.

drivers/i2c/busses/i2c-s3c2410.c+11−3

This diff is large: its 77 lines aren’t shown here.

drivers/i2c/busses/i2c-sirf.c+459−0

This diff is large: its 460 lines aren’t shown here.

drivers/i2c/busses/i2c-tegra.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/i2c/busses/i2c-versatile.c+10−0

This diff is large: its 44 lines aren’t shown here.

drivers/i2c/busses/i2c-xlr.c+278−0

This diff is large: its 279 lines aren’t shown here.

drivers/i2c/i2c-boardinfo.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/i2c/i2c-core.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/i2c/i2c-core.h+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/i2c/i2c-dev.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/i2c/i2c-smbus.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/i2c/muxes/pca9541.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/i2c/muxes/pca954x.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/ide/ide-cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/ide/qd65xx.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/idle/i7300_idle.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/infiniband/core/sysfs.c+5−4

This diff is large: its 30 lines aren’t shown here.

drivers/infiniband/hw/ehca/ehca_reqs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/infiniband/hw/mlx4/main.c+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/infiniband/ulp/srpt/ib_srpt.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/input/input-compat.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/input/input-compat.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/joydev.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/input/joystick/amijoy.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/input/keyboard/gpio_keys.c+169−90

This diff is large: its 414 lines aren’t shown here.

drivers/input/keyboard/jornada720_kbd.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/input/keyboard/tegra-kbc.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/input/misc/88pm860x_onkey.c+26−0

This diff is large: its 44 lines aren’t shown here.

drivers/input/misc/da9052_onkey.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/input/mouse/amimouse.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/input/mouse/atarimouse.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/input/mouse/elantech.c+8−2

This diff is large: its 45 lines aren’t shown here.

drivers/input/mouse/gpio_mouse.c+1−1

This diff is large: its 11 lines aren’t shown here.

drivers/input/mouse/sentelic.c+232−70

This diff is large: its 467 lines aren’t shown here.

drivers/input/mouse/sentelic.h+33−2

This diff is large: its 68 lines aren’t shown here.

drivers/input/mouse/trackpoint.c+8−6

This diff is large: its 33 lines aren’t shown here.

drivers/input/serio/ambakmi.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/input/serio/ams_delta_serio.c+35−21

This diff is large: its 102 lines aren’t shown here.

drivers/input/serio/hp_sdc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/input/serio/maceps2.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/input/serio/rpckbd.c+37−8

This diff is large: its 109 lines aren’t shown here.

drivers/input/serio/sa1111ps2.c+42−18

This diff is large: its 179 lines aren’t shown here.

drivers/input/tablet/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/input/tablet/wacom.h+9−0

This diff is large: its 32 lines aren’t shown here.

drivers/input/tablet/wacom_sys.c+200−31

This diff is large: its 330 lines aren’t shown here.

drivers/input/tablet/wacom_wac.c+48−1

This diff is large: its 91 lines aren’t shown here.

drivers/input/tablet/wacom_wac.h+6−0

This diff is large: its 34 lines aren’t shown here.

drivers/input/touchscreen/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/input/touchscreen/jornada720_ts.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/input/touchscreen/mc13783_ts.c+10−1

This diff is large: its 32 lines aren’t shown here.

drivers/input/touchscreen/tps6507x-ts.c+1−3

This diff is large: its 13 lines aren’t shown here.

drivers/iommu/Kconfig+20−0

This diff is large: its 25 lines aren’t shown here.

drivers/iommu/Makefile+2−0

This diff is large: its 6 lines aren’t shown here.

drivers/iommu/amd_iommu.c+6−4

This diff is large: its 31 lines aren’t shown here.

drivers/iommu/amd_iommu_init.c+123−64

This diff is large: its 304 lines aren’t shown here.

drivers/iommu/amd_iommu_v2.c+13−1

This diff is large: its 28 lines aren’t shown here.

drivers/iommu/intel-iommu.c+5−4

This diff is large: its 30 lines aren’t shown here.

drivers/iommu/omap-iommu-debug.c+2−8

This diff is large: its 26 lines aren’t shown here.

drivers/iommu/tegra-gart.c+451−0

This diff is large: its 452 lines aren’t shown here.

drivers/iommu/tegra-smmu.c+1034−0

This diff is large: its 1035 lines aren’t shown here.

drivers/isdn/gigaset/interface.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/avm/avm_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/isdn/hardware/mISDN/avmfritz.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/mISDN/hfcpci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/mISDN/hfcsusb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/mISDN/mISDNipac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/mISDN/mISDNisar.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/mISDN/netjet.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hardware/mISDN/w6692.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/isdn/hisax/avma1_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/isdn/hisax/elsa_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/isdn/hisax/sedlbauer_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/isdn/hisax/teles_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/isdn/i4l/isdn_bsdcomp.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/isdn/pcbit/layer2.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/leds/Kconfig+1−8

This diff is large: its 20 lines aren’t shown here.

drivers/leds/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/leds/leds-88pm860x.c+23−0

This diff is large: its 44 lines aren’t shown here.

drivers/leds/leds-ams-delta.c+0−126

This diff is large: its 127 lines aren’t shown here.

drivers/macintosh/macio-adb.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/therm_adt746x.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/therm_pm72.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/therm_windtunnel.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/via-cuda.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/via-macii.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/via-pmu.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/via-pmu68k.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/windfarm_lm75_sensor.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/windfarm_pm121.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/windfarm_pm81.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/windfarm_pm91.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/windfarm_smu_controls.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/macintosh/windfarm_smu_sensors.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/md/Kconfig+24−4

This diff is large: its 47 lines aren’t shown here.

drivers/md/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/md/bitmap.c+2−3

This diff is large: its 20 lines aren’t shown here.

drivers/md/dm-bufio.c+82−26

This diff is large: its 211 lines aren’t shown here.

drivers/md/dm-bufio.h+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/md/dm-crypt.c+25−21

This diff is large: its 152 lines aren’t shown here.

drivers/md/dm-delay.c+5−4

This diff is large: its 40 lines aren’t shown here.

drivers/md/dm-exception-store.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/md/dm-flakey.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/md/dm-ioctl.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/md/dm-linear.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/md/dm-log.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/md/dm-mpath.c+36−16

This diff is large: its 135 lines aren’t shown here.

drivers/md/dm-queue-length.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/md/dm-raid.c+51−2

This diff is large: its 84 lines aren’t shown here.

drivers/md/dm-raid1.c+8−4

This diff is large: its 60 lines aren’t shown here.

drivers/md/dm-round-robin.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/md/dm-service-time.c+3−2

This diff is large: its 24 lines aren’t shown here.

drivers/md/dm-stripe.c+2−1

This diff is large: its 11 lines aren’t shown here.

drivers/md/dm-table.c+5−4

This diff is large: its 35 lines aren’t shown here.

drivers/md/dm-thin-metadata.c+4−1

This diff is large: its 19 lines aren’t shown here.

drivers/md/dm-thin-metadata.h+13−0

This diff is large: its 20 lines aren’t shown here.

drivers/md/dm-thin.c+508−172

This diff is large: its 1341 lines aren’t shown here.

drivers/md/dm-verity.c+913−0

This diff is large: its 914 lines aren’t shown here.

drivers/md/dm.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/md/linear.c+8−1

This diff is large: its 23 lines aren’t shown here.

drivers/md/persistent-data/dm-btree-internal.h+2−5

This diff is large: its 15 lines aren’t shown here.

drivers/md/persistent-data/dm-btree-remove.c+113−89

This diff is large: its 322 lines aren’t shown here.

drivers/md/persistent-data/dm-btree.c+13−14

This diff is large: its 97 lines aren’t shown here.

drivers/md/persistent-data/dm-space-map-common.c+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/md/raid0.c+25−2

This diff is large: its 58 lines aren’t shown here.

drivers/md/raid1.c+11−5

This diff is large: its 65 lines aren’t shown here.

drivers/md/raid10.c+3−3

This diff is large: its 37 lines aren’t shown here.

drivers/md/raid5.c+32−27

This diff is large: its 93 lines aren’t shown here.

drivers/media/dvb/dvb-core/dmxdev.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/dvb-core/dvb_frontend.c+11−1

This diff is large: its 36 lines aren’t shown here.

drivers/media/dvb/dvb-usb/it913x.c+40−14

This diff is large: its 90 lines aren’t shown here.

drivers/media/dvb/firewire/firedtv-fw.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/dvb/ttpci/av7110.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/media-devnode.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/davinci/vpbe_osd.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/davinci/vpbe_venc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-driver.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/ivtv/ivtv-ioctl.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/media/video/mx3_camera.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/timblogiw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/video/uvc/uvc_video.c+32−18

This diff is large: its 108 lines aren’t shown here.

drivers/media/video/v4l2-common.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/video/v4l2-dev.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/message/fusion/mptbase.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/message/i2o/i2o_scsi.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/mfd/88pm860x-core.c+106−4

This diff is large: its 138 lines aren’t shown here.

drivers/mfd/88pm860x-i2c.c+25−0

This diff is large: its 36 lines aren’t shown here.

drivers/mfd/Kconfig+55−4

This diff is large: its 108 lines aren’t shown here.

drivers/mfd/Makefile+4−0

This diff is large: its 18 lines aren’t shown here.

drivers/mfd/aat2870-core.c+1−8

This diff is large: its 23 lines aren’t shown here.

drivers/mfd/ab3100-core.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/mfd/ab8500-core.c+285−90

This diff is large: its 641 lines aren’t shown here.

drivers/mfd/ab8500-i2c.c+27−3

This diff is large: its 77 lines aren’t shown here.

drivers/mfd/anatop-mfd.c+137−0

This diff is large: its 138 lines aren’t shown here.

drivers/mfd/asic3.c+6−0

This diff is large: its 20 lines aren’t shown here.

drivers/mfd/da9052-core.c+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/mfd/da9052-i2c.c+7−4

This diff is large: its 40 lines aren’t shown here.

drivers/mfd/da9052-spi.c+6−3

This diff is large: its 35 lines aren’t shown here.

drivers/mfd/db8500-prcmu.c+887−334

This diff is large: its 1693 lines aren’t shown here.

drivers/mfd/dbx500-prcmu-regs.h+88−42

This diff is large: its 168 lines aren’t shown here.

drivers/mfd/mc13xxx-core.c+9−2

This diff is large: its 39 lines aren’t shown here.

drivers/mfd/mcp-core.c+14−37

This diff is large: its 90 lines aren’t shown here.

drivers/mfd/mcp-sa11x0.c+127−72

This diff is large: its 350 lines aren’t shown here.

drivers/mfd/mfd-core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mfd/omap-usb-host.c+3−4

This diff is large: its 34 lines aren’t shown here.

drivers/mfd/pcf50633-core.c+1−7

This diff is large: its 15 lines aren’t shown here.

drivers/mfd/pcf50633-gpio.c+1−26

This diff is large: its 34 lines aren’t shown here.

drivers/mfd/pcf50633-irq.c+1−6

This diff is large: its 14 lines aren’t shown here.

drivers/mfd/rc5t583-irq.c+408−0

This diff is large: its 409 lines aren’t shown here.

drivers/mfd/rc5t583.c+386−0

This diff is large: its 387 lines aren’t shown here.

drivers/mfd/s5m-core.c+45−13

This diff is large: its 116 lines aren’t shown here.

drivers/mfd/s5m-irq.c+11−3

This diff is large: its 40 lines aren’t shown here.

drivers/mfd/sm501.c+1−9

This diff is large: its 24 lines aren’t shown here.

drivers/mfd/stmpe.c+96−38

This diff is large: its 227 lines aren’t shown here.

drivers/mfd/tps65090.c+387−0

This diff is large: its 388 lines aren’t shown here.

drivers/mfd/tps65217.c+242−0

This diff is large: its 243 lines aren’t shown here.

drivers/mfd/tps65910-irq.c+11−0

This diff is large: its 24 lines aren’t shown here.

drivers/mfd/tps65910.c+46−77

This diff is large: its 178 lines aren’t shown here.

drivers/mfd/twl-core.c+69−84

This diff is large: its 361 lines aren’t shown here.

drivers/mfd/twl-core.h+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/mfd/twl4030-irq.c+60−47

This diff is large: its 272 lines aren’t shown here.

drivers/mfd/twl6030-irq.c+54−32

This diff is large: its 175 lines aren’t shown here.

drivers/mfd/ucb1x00-assabet.c+39−7

This diff is large: its 69 lines aren’t shown here.

drivers/mfd/ucb1x00-core.c+233−200

This diff is large: its 692 lines aren’t shown here.

drivers/mfd/ucb1x00-ts.c+31−8

This diff is large: its 115 lines aren’t shown here.

drivers/mfd/wm831x-spi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mfd/wm8400-core.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/mfd/wm8994-core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mfd/wm8994-regmap.c+3−18

This diff is large: its 111 lines aren’t shown here.

drivers/misc/atmel_tclib.c+54−10

This diff is large: its 128 lines aren’t shown here.

drivers/misc/ibmasm/ibmasmfs.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/misc/kgdbts.c+115−45

This diff is large: its 313 lines aren’t shown here.

drivers/misc/sgi-gru/gru_instructions.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/misc/sgi-xp/xp.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/mmc/card/block.c+17−32

This diff is large: its 114 lines aren’t shown here.

drivers/mmc/core/bus.c+15−2

This diff is large: its 43 lines aren’t shown here.

drivers/mmc/core/cd-gpio.c+9−4

This diff is large: its 31 lines aren’t shown here.

drivers/mmc/core/core.c+64−198

This diff is large: its 392 lines aren’t shown here.

drivers/mmc/core/host.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/mmc/core/host.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/mmc/core/mmc.c+54−31

This diff is large: its 150 lines aren’t shown here.

drivers/mmc/core/mmc_ops.c+8−4

This diff is large: its 27 lines aren’t shown here.

drivers/mmc/core/sdio_bus.c+9−3

This diff is large: its 31 lines aren’t shown here.

drivers/mmc/host/Kconfig+26−1

This diff is large: its 41 lines aren’t shown here.

drivers/mmc/host/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/at91_mci.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/mmc/host/atmel-mci-regs.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mmc/host/atmel-mci.c+52−26

This diff is large: its 171 lines aren’t shown here.

drivers/mmc/host/davinci_mmc.c+55−11

This diff is large: its 137 lines aren’t shown here.

drivers/mmc/host/dw_mmc-pci.c+158−0

This diff is large: its 159 lines aren’t shown here.

drivers/mmc/host/dw_mmc-pltfm.c+134−0

This diff is large: its 135 lines aren’t shown here.

drivers/mmc/host/dw_mmc.c+152−128

This diff is large: its 571 lines aren’t shown here.

drivers/mmc/host/dw_mmc.h+7−0

This diff is large: its 12 lines aren’t shown here.

drivers/mmc/host/mmci.c+126−58

This diff is large: its 396 lines aren’t shown here.

drivers/mmc/host/mmci.h+3−12

This diff is large: its 36 lines aren’t shown here.

drivers/mmc/host/mxcmmc.c+4−1

This diff is large: its 33 lines aren’t shown here.

drivers/mmc/host/mxs-mmc.c+7−7

This diff is large: its 59 lines aren’t shown here.

drivers/mmc/host/omap_hsmmc.c+195−279

This diff is large: its 743 lines aren’t shown here.

drivers/mmc/host/sdhci-dove.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mmc/host/sdhci-esdhc-imx.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/mmc/host/sdhci-of-esdhc.c+35−2

This diff is large: its 68 lines aren’t shown here.

drivers/mmc/host/sdhci-pci.c+40−1

This diff is large: its 111 lines aren’t shown here.

drivers/mmc/host/sdhci-s3c.c+127−36

This diff is large: its 311 lines aren’t shown here.

drivers/mmc/host/sdhci-spear.c+2−7

This diff is large: its 23 lines aren’t shown here.

drivers/mmc/host/sdhci-tegra.c+87−14

This diff is large: its 201 lines aren’t shown here.

drivers/mmc/host/sdhci.c+32−11

This diff is large: its 97 lines aren’t shown here.

drivers/mmc/host/sdhci.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/mmc/host/sh_mmcif.c+6−13

This diff is large: its 61 lines aren’t shown here.

drivers/mmc/host/sh_mobile_sdhi.c+24−5

This diff is large: its 81 lines aren’t shown here.

drivers/mmc/host/tmio_mmc.h+4−5

This diff is large: its 28 lines aren’t shown here.

drivers/mmc/host/tmio_mmc_dma.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/mmc/host/tmio_mmc_pio.c+52−56

This diff is large: its 250 lines aren’t shown here.

drivers/mtd/Kconfig+1−4

This diff is large: its 18 lines aren’t shown here.

drivers/mtd/chips/cfi_cmdset_0001.c+41−42

This diff is large: its 234 lines aren’t shown here.

drivers/mtd/chips/cfi_cmdset_0002.c+252−31

This diff is large: its 410 lines aren’t shown here.

drivers/mtd/chips/cfi_cmdset_0020.c+9−24

This diff is large: its 68 lines aren’t shown here.

drivers/mtd/chips/cfi_util.c+0−6

This diff is large: its 13 lines aren’t shown here.

drivers/mtd/chips/fwh_lock.h+2−2

This diff is large: its 10 lines aren’t shown here.

drivers/mtd/chips/map_absent.c+4−6

This diff is large: its 29 lines aren’t shown here.

drivers/mtd/chips/map_ram.c+5−9

This diff is large: its 32 lines aren’t shown here.

drivers/mtd/chips/map_rom.c+6−7

This diff is large: its 27 lines aren’t shown here.

drivers/mtd/devices/Kconfig+8−0

This diff is large: its 21 lines aren’t shown here.

drivers/mtd/devices/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mtd/devices/block2mtd.c+6−22

This diff is large: its 58 lines aren’t shown here.

drivers/mtd/devices/doc2000.c+7−18

This diff is large: its 50 lines aren’t shown here.

drivers/mtd/devices/doc2001.c+7−15

This diff is large: its 52 lines aren’t shown here.

drivers/mtd/devices/doc2001plus.c+7−15

This diff is large: its 52 lines aren’t shown here.

drivers/mtd/devices/docg3.c+115−86

This diff is large: its 569 lines aren’t shown here.

drivers/mtd/devices/docg3.h+18−2

This diff is large: its 44 lines aren’t shown here.

drivers/mtd/devices/lart.c+4−13

This diff is large: its 52 lines aren’t shown here.

drivers/mtd/devices/m25p80.c+6−50

This diff is large: its 116 lines aren’t shown here.

drivers/mtd/devices/ms02-nv.c+2−10

This diff is large: its 37 lines aren’t shown here.

drivers/mtd/devices/mtd_dataflash.c+9−41

This diff is large: its 104 lines aren’t shown here.

drivers/mtd/devices/mtdram.c+8−27

This diff is large: its 80 lines aren’t shown here.

drivers/mtd/devices/phram.c+37−39

This diff is large: its 152 lines aren’t shown here.

drivers/mtd/devices/pmc551.c+47−53

This diff is large: its 172 lines aren’t shown here.

drivers/mtd/devices/slram.c+8−34

This diff is large: its 106 lines aren’t shown here.

drivers/mtd/devices/spear_smi.c+1147−0

This diff is large: its 1148 lines aren’t shown here.

drivers/mtd/devices/sst25l.c+8−38

This diff is large: its 89 lines aren’t shown here.

drivers/mtd/inftlcore.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/lpddr/lpddr_cmds.c+17−20

This diff is large: its 112 lines aren’t shown here.

drivers/mtd/maps/Kconfig+1−0

This diff is large: its 7 lines aren’t shown here.

drivers/mtd/maps/bfin-async-flash.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/mtd/maps/dc21285.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/maps/gpio-addr-flash.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/mtd/maps/h720x-flash.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/mtd/maps/impa7.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/maps/intel_vr_nor.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/maps/ixp2000.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/maps/ixp4xx.c+4−1

This diff is large: its 19 lines aren’t shown here.

drivers/mtd/maps/l440gx.c+9−5

This diff is large: its 27 lines aren’t shown here.

drivers/mtd/maps/lantiq-flash.c+4−2

This diff is large: its 20 lines aren’t shown here.

drivers/mtd/maps/latch-addr-flash.c+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/mtd/maps/pcmciamtd.c+12−2

This diff is large: its 34 lines aren’t shown here.

drivers/mtd/maps/physmap.c+21−3

This diff is large: its 51 lines aren’t shown here.

drivers/mtd/maps/plat-ram.c+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/mtd/maps/pxa2xx-flash.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/mtd/maps/rbtx4939-flash.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/mtd/maps/sa1100-flash.c+15−115

This diff is large: its 164 lines aren’t shown here.

drivers/mtd/maps/solutionengine.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/mtd/maps/uclinux.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/maps/vmu-flash.c+3−11

This diff is large: its 35 lines aren’t shown here.

drivers/mtd/maps/wr_sbc82xx_flash.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/mtd_blkdevs.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mtd/mtdblock.c+6−2

This diff is large: its 15 lines aren’t shown here.

drivers/mtd/mtdchar.c+28−49

This diff is large: its 184 lines aren’t shown here.

drivers/mtd/mtdconcat.c+24−82

This diff is large: its 222 lines aren’t shown here.

drivers/mtd/mtdcore.c+263−8

This diff is large: its 312 lines aren’t shown here.

drivers/mtd/mtdoops.c+4−5

This diff is large: its 31 lines aren’t shown here.

drivers/mtd/mtdpart.c+84−116

This diff is large: its 385 lines aren’t shown here.

drivers/mtd/nand/Kconfig+23−2

This diff is large: its 60 lines aren’t shown here.

drivers/mtd/nand/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mtd/nand/alauda.c+5−4

This diff is large: its 18 lines aren’t shown here.

drivers/mtd/nand/ams-delta.c+52−22

This diff is large: its 142 lines aren’t shown here.

drivers/mtd/nand/atmel_nand.c+99−38

This diff is large: its 287 lines aren’t shown here.

drivers/mtd/nand/bcm_umi_nand.c+9−2

This diff is large: its 32 lines aren’t shown here.

drivers/mtd/nand/bf5xx_nand.c+2−0

This diff is large: its 12 lines aren’t shown here.

drivers/mtd/nand/cafe_nand.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/mtd/nand/cmx270_nand.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/nand/cs553x_nand.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/mtd/nand/davinci_nand.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/mtd/nand/denali.c+3−0

This diff is large: its 23 lines aren’t shown here.

drivers/mtd/nand/diskonchip.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mtd/nand/docg4.c+1377−0

This diff is large: its 1378 lines aren’t shown here.

drivers/mtd/nand/fsl_elbc_nand.c+6−0

This diff is large: its 13 lines aren’t shown here.

drivers/mtd/nand/fsmc_nand.c+675−249

This diff is large: its 1284 lines aren’t shown here.

drivers/mtd/nand/gpmi-nand/gpmi-lib.c+25−18

This diff is large: its 115 lines aren’t shown here.

drivers/mtd/nand/gpmi-nand/gpmi-nand.c+7−7

This diff is large: its 63 lines aren’t shown here.

drivers/mtd/nand/gpmi-nand/gpmi-nand.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/nand/h1910.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/mtd/nand/jz4740_nand.c+8−3

This diff is large: its 25 lines aren’t shown here.

drivers/mtd/nand/mxc_nand.c+9−2

This diff is large: its 19 lines aren’t shown here.

drivers/mtd/nand/nand_base.c+99−95

This diff is large: its 358 lines aren’t shown here.

drivers/mtd/nand/ndfc.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mtd/nand/omap2.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/mtd/nand/orion_nand.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/mtd/nand/plat_nand.c+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/mtd/nand/ppchameleonevb.c+8−10

This diff is large: its 32 lines aren’t shown here.

drivers/mtd/nand/pxa3xx_nand.c+4−2

This diff is large: its 20 lines aren’t shown here.

drivers/mtd/nand/r852.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mtd/nand/rtc_from4.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mtd/nand/s3c2410.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/mtd/nand/sh_flctl.c+78−28

This diff is large: its 257 lines aren’t shown here.

drivers/mtd/nand/sharpsl.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/mtd/nand/tmio_nand.c+4−3

This diff is large: its 21 lines aren’t shown here.

drivers/mtd/nand/txx9ndfmc.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/mtd/nftlcore.c+0−7

This diff is large: its 14 lines aren’t shown here.

drivers/mtd/onenand/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/mtd/onenand/generic.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/mtd/onenand/omap2.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/mtd/onenand/onenand_base.c+22−46

This diff is large: its 109 lines aren’t shown here.

drivers/mtd/onenand/samsung.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/mtd/redboot.c+2−4

This diff is large: its 20 lines aren’t shown here.

drivers/mtd/sm_ftl.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/mtd/ubi/debug.c+1−9

This diff is large: its 21 lines aren’t shown here.

drivers/mtd/ubi/gluebi.c+5−24

This diff is large: its 66 lines aren’t shown here.

drivers/net/Space.c+2−0

This diff is large: its 11 lines aren’t shown here.

drivers/net/appletalk/cops.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/appletalk/ltpc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/arcnet/com20020_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/bonding/bond_main.c+58−11

This diff is large: its 109 lines aren’t shown here.

drivers/net/caif/caif_spi.c+2−8

This diff is large: its 29 lines aren’t shown here.

drivers/net/can/slcan.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/cris/eth_v10.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/eql.c+4−3

This diff is large: its 35 lines aren’t shown here.

drivers/net/ethernet/3com/3c574_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/3com/3c589_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/3c503.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/ac3200.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/apne.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/ax88796.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/axnet_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/e2100.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/es3210.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/etherh.c+1−1

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/8390/hp-plus.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/hp.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/lib8390.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/lne390.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/mac8390.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/ne-h8300.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/ne.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/ne2.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/ne2k-pci.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/ne3210.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/pcnet_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/smc-mca.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/smc-ultra.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/smc-ultra32.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/stnic.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/wd.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/8390/zorro8390.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/alteon/acenic.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/amd/7990.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/amd/am79c961a.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/amd/amd8111e.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/amd/declance.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/amd/hplance.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/amd/mvme147.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/amd/nmclan_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/amd/sunlance.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x.h+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c+24−17

This diff is large: its 63 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_fw_defs.h+55−55

This diff is large: its 195 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c+112−36

This diff is large: its 288 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c+374−90

This diff is large: its 517 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h+12−0

This diff is large: its 65 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/broadcom/tg3.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c+1−8

This diff is large: its 23 lines aren’t shown here.

drivers/net/ethernet/cirrus/Kconfig+11−8

This diff is large: its 40 lines aren’t shown here.

drivers/net/ethernet/cirrus/cs89x0.c+122−27

This diff is large: its 305 lines aren’t shown here.

drivers/net/ethernet/cirrus/mac89x0.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/dlink/de600.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/dlink/de620.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/freescale/fsl_pq_mdio.c+6−6

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/freescale/gianfar.c+7−32

This diff is large: its 56 lines aren’t shown here.

drivers/net/ethernet/freescale/gianfar.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/freescale/ucc_geth.c+4−2

This diff is large: its 23 lines aren’t shown here.

drivers/net/ethernet/fujitsu/at1700.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/fujitsu/eth16i.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/fujitsu/fmvj18x_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/i825xx/3c507.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/i825xx/3c527.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/i825xx/eepro.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/i825xx/eexpress.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/i825xx/ether1.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/i825xx/znet.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/ibm/ibmveth.c+2−5

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/intel/e1000/e1000_main.c+25−15

This diff is large: its 95 lines aren’t shown here.

drivers/net/ethernet/intel/e1000e/e1000.h+6−0

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/intel/e1000e/netdev.c+32−1

This diff is large: its 75 lines aren’t shown here.

drivers/net/ethernet/intel/igb/igb_main.c+6−1

This diff is large: its 21 lines aren’t shown here.

drivers/net/ethernet/intel/igbvf/netdev.c+6−1

This diff is large: its 21 lines aren’t shown here.

drivers/net/ethernet/intel/ixgb/ixgb_main.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c+80−84

This diff is large: its 264 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c+8−5

This diff is large: its 39 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c+5−2

This diff is large: its 21 lines aren’t shown here.

drivers/net/ethernet/korina.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/marvell/mv643xx_eth.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/marvell/pxa168_eth.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/marvell/sky2.c+15−3

This diff is large: its 44 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx4/mlx4_en.h+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/micrel/ks8842.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/natsemi/jazzsonic.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/natsemi/macsonic.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/natsemi/ns83820.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/neterion/s2io.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/nvidia/forcedeth.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/nxp/lpc_eth.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/qlogic/qlcnic/qlcnic.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c+3−1

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/realtek/atp.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/realtek/r8169.c+3−1

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/renesas/Kconfig+3−2

This diff is large: its 16 lines aren’t shown here.

drivers/net/ethernet/renesas/sh_eth.c+18−4

This diff is large: its 67 lines aren’t shown here.

drivers/net/ethernet/renesas/sh_eth.h+10−5

This diff is large: its 71 lines aren’t shown here.

drivers/net/ethernet/seeq/ether3.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/seeq/seeq8005.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/sfc/mtd.c+5−5

This diff is large: its 24 lines aren’t shown here.

drivers/net/ethernet/smsc/smc91c92_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/smsc/smc91x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c+4−2

This diff is large: its 15 lines aren’t shown here.

drivers/net/ethernet/sun/cassini.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/sun/sunbmac.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/sun/sungem.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/sun/sunhme.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/sun/sunqe.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/sun/sunvnet.c+1−4

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/tile/tilepro.c+51−26

This diff is large: its 170 lines aren’t shown here.

drivers/net/ethernet/tundra/tsi108_eth.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/via/via-rhine.c+7−5

This diff is large: its 38 lines aren’t shown here.

drivers/net/ethernet/xircom/xirc2ps_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/hamradio/6pack.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/hamradio/baycom_par.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/hamradio/bpqether.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/hamradio/mkiss.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/hamradio/scc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/hamradio/yam.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/hippi/rrunner.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/irda/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/irda/donauboe.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/irda/sa1100_ir.c+533−424

This diff is large: its 1258 lines aren’t shown here.

drivers/net/loopback.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/phy/icplus.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/plip/plip.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ppp/ppp_generic.c+9−5

This diff is large: its 49 lines aren’t shown here.

drivers/net/rionet.c+6−5

This diff is large: its 31 lines aren’t shown here.

drivers/net/slip/slhc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/slip/slip.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/3c359.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/abyss.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/ibmtr_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/lanstreamer.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/madgemc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/olympic.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/proteon.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/skisa.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/smctr.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/tms380tr.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tokenring/tmspci.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/tun.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/usb/cdc-phonet.c+4−2

This diff is large: its 17 lines aren’t shown here.

drivers/net/usb/cdc_eem.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/usb/qmi_wwan.c+36−0

This diff is large: its 43 lines aren’t shown here.

drivers/net/usb/rtl8150.c+0−26

This diff is large: its 33 lines aren’t shown here.

drivers/net/usb/zaurus.c+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/net/virtio_net.c+4−3

This diff is large: its 17 lines aren’t shown here.

drivers/net/wan/Kconfig+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/wan/dlci.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wan/dscc4.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wan/hd64570.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wan/hd64572.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wan/lapbether.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wan/sdla.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wan/x25_asy.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wimax/i2400m/debugfs.c+2−13

This diff is large: its 36 lines aren’t shown here.

drivers/net/wimax/i2400m/netdev.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/wimax/i2400m/usb.c+18−0

This diff is large: its 32 lines aren’t shown here.

drivers/net/wireless/airo.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/airo_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/ath/ath5k/debug.c+8−15

This diff is large: its 86 lines aren’t shown here.

drivers/net/wireless/ath/ath6kl/debug.c+18−24

This diff is large: its 175 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/calib.c+2−3

This diff is large: its 21 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/debug.c+16−21

This diff is large: its 153 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/dfs_debug.c+1−8

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/htc_drv_debug.c+10−16

This diff is large: its 103 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/main.c+5−7

This diff is large: its 37 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/rc.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/recv.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/net/wireless/ath/carl9170/debug.c+1−6

This diff is large: its 21 lines aren’t shown here.

drivers/net/wireless/atmel.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/atmel_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/b43/debugfs.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/net/wireless/b43legacy/debugfs.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/net/wireless/ipw2x00/ipw2200.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/iwlegacy/3945-mac.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/iwlegacy/3945-rs.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/net/wireless/iwlegacy/3945.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/wireless/iwlegacy/4965-mac.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/net/wireless/iwlegacy/4965-rs.c+3−9

This diff is large: its 40 lines aren’t shown here.

drivers/net/wireless/iwlegacy/common.c+18−13

This diff is large: its 67 lines aren’t shown here.

drivers/net/wireless/iwlegacy/debug.c+3−9

This diff is large: its 38 lines aren’t shown here.

drivers/net/wireless/iwlwifi/iwl-agn-rs.c+3−8

This diff is large: its 39 lines aren’t shown here.

drivers/net/wireless/iwlwifi/iwl-agn-rx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/iwlwifi/iwl-debugfs.c+3−9

This diff is large: its 37 lines aren’t shown here.

drivers/net/wireless/iwlwifi/iwl-trans-pcie.c+3−9

This diff is large: its 37 lines aren’t shown here.

drivers/net/wireless/iwmc3200wifi/debugfs.c+4−10

This diff is large: its 46 lines aren’t shown here.

drivers/net/wireless/iwmc3200wifi/sdio.c+1−8

This diff is large: its 23 lines aren’t shown here.

drivers/net/wireless/libertas/debugfs.c+2−8

This diff is large: its 31 lines aren’t shown here.

drivers/net/wireless/mwifiex/debugfs.c+3−15

This diff is large: its 42 lines aren’t shown here.

drivers/net/wireless/orinoco/main.c+8−0

This diff is large: its 22 lines aren’t shown here.

drivers/net/wireless/prism54/islpci_mgt.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/ray_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/rt2x00/rt2800usb.c+8−2

This diff is large: its 24 lines aren’t shown here.

drivers/net/wireless/rt2x00/rt2x00dev.c+1−5

This diff is large: its 20 lines aren’t shown here.

drivers/net/wireless/rtlwifi/base.c+4−1

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/rtlwifi/pci.c+6−1

This diff is large: its 15 lines aren’t shown here.

drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/rtlwifi/rtl8192de/phy.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/rtlwifi/rtl8192de/sw.c+0−6

This diff is large: its 27 lines aren’t shown here.

drivers/net/wireless/rtlwifi/usb.c+16−18

This diff is large: its 77 lines aren’t shown here.

drivers/net/wireless/rtlwifi/wifi.h+5−1

This diff is large: its 20 lines aren’t shown here.

drivers/net/wireless/wl1251/debugfs.c+4−10

This diff is large: its 49 lines aren’t shown here.

drivers/net/wireless/wl12xx/debugfs.c+16−22

This diff is large: its 157 lines aren’t shown here.

drivers/net/wireless/wl3501_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/xen-netfront.c+4−0

This diff is large: its 18 lines aren’t shown here.

drivers/nubus/nubus.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/of/Kconfig+4−0

This diff is large: its 9 lines aren’t shown here.

drivers/of/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/of/gpio.c+7−6

This diff is large: its 55 lines aren’t shown here.

drivers/of/of_mtd.c+85−0

This diff is large: its 86 lines aren’t shown here.

drivers/of/platform.c+3−3

This diff is large: its 26 lines aren’t shown here.

drivers/oprofile/oprofilefs.c+3−11

This diff is large: its 37 lines aren’t shown here.

drivers/parisc/dino.c+6−22

This diff is large: its 65 lines aren’t shown here.

drivers/parisc/iosapic.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/parisc/lba_pci.c+6−26

This diff is large: its 62 lines aren’t shown here.

drivers/pci/Kconfig+13−0

This diff is large: its 20 lines aren’t shown here.

drivers/pci/bus.c+19−11

This diff is large: its 48 lines aren’t shown here.

drivers/pci/hotplug/acpiphp_glue.c+15−18

This diff is large: its 82 lines aren’t shown here.

drivers/pci/hotplug/cpci_hotplug_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/cpcihp_generic.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/cpqphp_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/fakephp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/ibmphp_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/ibmphp_ebda.c+4−2

This diff is large: its 13 lines aren’t shown here.

drivers/pci/hotplug/pciehp_hpc.c+109−24

This diff is large: its 192 lines aren’t shown here.

drivers/pci/hotplug/pciehp_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/rpadlpar_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/sgi_hotplug.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/hotplug/shpchp_pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pci/iov.c+9−3

This diff is large: its 28 lines aren’t shown here.

drivers/pci/pci-acpi.c+3−37

This diff is large: its 67 lines aren’t shown here.

drivers/pci/pci-driver.c+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/pci/pci-sysfs.c+5−2

This diff is large: its 21 lines aren’t shown here.

drivers/pci/pci.c+138−15

This diff is large: its 229 lines aren’t shown here.

drivers/pci/pci.h+5−5

This diff is large: its 39 lines aren’t shown here.

drivers/pci/pcie/Kconfig+25−0

This diff is large: its 32 lines aren’t shown here.

drivers/pci/pcie/aspm.c+18−3

This diff is large: its 43 lines aren’t shown here.

drivers/pci/pcie/portdrv.h+12−0

This diff is large: its 19 lines aren’t shown here.

drivers/pci/pcie/portdrv_core.c+14−2

This diff is large: its 30 lines aren’t shown here.

drivers/pci/probe.c+216−82

This diff is large: its 516 lines aren’t shown here.

drivers/pci/quirks.c+90−92

This diff is large: its 261 lines aren’t shown here.

drivers/pci/remove.c+19−8

This diff is large: its 73 lines aren’t shown here.

drivers/pci/setup-bus.c+459−201

This diff is large: its 984 lines aren’t shown here.

drivers/pci/setup-res.c+33−61

This diff is large: its 153 lines aren’t shown here.

drivers/pci/xen-pcifront.c+3−2

This diff is large: its 26 lines aren’t shown here.

drivers/pcmcia/Kconfig+7−1

This diff is large: its 34 lines aren’t shown here.

drivers/pcmcia/Makefile+7−7

This diff is large: its 36 lines aren’t shown here.

drivers/pcmcia/at91_cf.c+29−28

This diff is large: its 191 lines aren’t shown here.

drivers/pcmcia/bcm63xx_pcmcia.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/pcmcia/bfin_cf_pcmcia.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/pcmcia/cardbus.c+1−1

This diff is large: its 7 lines aren’t shown here.

drivers/pcmcia/cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/pcmcia/db1xxx_ss.c+3−14

This diff is large: its 35 lines aren’t shown here.

drivers/pcmcia/electra_cf.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/pcmcia/i82092.c+3−9

This diff is large: its 26 lines aren’t shown here.

drivers/pcmcia/i82365.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/pcmcia/m32r_cfc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/pcmcia/m32r_pcc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/pcmcia/m8xx_pcmcia.c+1−13

This diff is large: its 25 lines aren’t shown here.

drivers/pcmcia/pd6729.c+2−8

This diff is large: its 24 lines aren’t shown here.

drivers/pcmcia/pxa2xx_balloon3.c+5−17

This diff is large: its 56 lines aren’t shown here.

drivers/pcmcia/pxa2xx_base.c+1−5

This diff is large: its 20 lines aren’t shown here.

drivers/pcmcia/pxa2xx_cm_x255.c+12−27

This diff is large: its 67 lines aren’t shown here.

drivers/pcmcia/pxa2xx_cm_x270.c+4−19

This diff is large: its 52 lines aren’t shown here.

drivers/pcmcia/pxa2xx_colibri.c+2−19

This diff is large: its 44 lines aren’t shown here.

drivers/pcmcia/pxa2xx_e740.c+12−59

This diff is large: its 99 lines aren’t shown here.

drivers/pcmcia/pxa2xx_mainstone.c+14−17

This diff is large: its 58 lines aren’t shown here.

drivers/pcmcia/pxa2xx_palmld.c+2−6

This diff is large: its 29 lines aren’t shown here.

drivers/pcmcia/pxa2xx_palmtc.c+2−6

This diff is large: its 29 lines aren’t shown here.

drivers/pcmcia/pxa2xx_palmtx.c+2−6

This diff is large: its 29 lines aren’t shown here.

drivers/pcmcia/pxa2xx_sharpsl.c+2−28

This diff is large: its 52 lines aren’t shown here.

drivers/pcmcia/pxa2xx_stargate2.c+5−29

This diff is large: its 69 lines aren’t shown here.

drivers/pcmcia/pxa2xx_trizeps4.c+5−57

This diff is large: its 108 lines aren’t shown here.

drivers/pcmcia/pxa2xx_viper.c+7−45

This diff is large: its 102 lines aren’t shown here.

drivers/pcmcia/pxa2xx_vpac270.c+8−46

This diff is large: its 101 lines aren’t shown here.

drivers/pcmcia/sa1100_assabet.c+15−50

This diff is large: its 116 lines aren’t shown here.

drivers/pcmcia/sa1100_cerf.c+18−34

This diff is large: its 95 lines aren’t shown here.

drivers/pcmcia/sa1100_h3600.c+14−80

This diff is large: its 160 lines aren’t shown here.

drivers/pcmcia/sa1100_nanoengine.c+23−109

This diff is large: its 205 lines aren’t shown here.

drivers/pcmcia/sa1100_shannon.c+17−39

This diff is large: its 94 lines aren’t shown here.

drivers/pcmcia/sa1100_simpad.c+8−19

This diff is large: its 71 lines aren’t shown here.

drivers/pcmcia/sa1111_badge4.crenamed from drivers/pcmcia/sa1100_badge4.c+1−2

This diff is large: its 15 lines aren’t shown here.

drivers/pcmcia/sa1111_generic.c+62−49

This diff is large: its 181 lines aren’t shown here.

drivers/pcmcia/sa1111_generic.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/pcmcia/sa1111_jornada720.crenamed from drivers/pcmcia/sa1100_jornada720.c+1−7

This diff is large: its 23 lines aren’t shown here.

drivers/pcmcia/sa1111_lubbock.crenamed from drivers/pcmcia/pxa2xx_lubbock.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/pcmcia/sa1111_neponset.crenamed from drivers/pcmcia/sa1100_neponset.c+2−16

This diff is large: its 33 lines aren’t shown here.

drivers/pcmcia/sa11xx_base.c+1−5

This diff is large: its 20 lines aren’t shown here.

drivers/pcmcia/soc_common.c+127−67

This diff is large: its 275 lines aren’t shown here.

drivers/pcmcia/soc_common.h+12−11

This diff is large: its 45 lines aren’t shown here.

drivers/pcmcia/socket_sysfs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/pcmcia/tcic.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/pcmcia/vrc4173_cardu.c+2−5

This diff is large: its 14 lines aren’t shown here.

drivers/pcmcia/xxs1500_ss.c+1−13

This diff is large: its 28 lines aren’t shown here.

drivers/pcmcia/yenta_socket.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/platform/x86/Kconfig+28−43

This diff is large: its 147 lines aren’t shown here.

drivers/platform/x86/Makefile+5−1

This diff is large: its 19 lines aren’t shown here.

drivers/platform/x86/acer-wmi.c+106−46

This diff is large: its 391 lines aren’t shown here.

drivers/platform/x86/acerhdf.c+8−11

This diff is large: its 59 lines aren’t shown here.

drivers/platform/x86/amilo-rfkill.c+4−1

This diff is large: its 14 lines aren’t shown here.

drivers/platform/x86/apple-gmux.c+244−0

This diff is large: its 245 lines aren’t shown here.

drivers/platform/x86/asus-laptop.c+186−87

This diff is large: its 450 lines aren’t shown here.

drivers/platform/x86/asus-nb-wmi.c+10−2

This diff is large: its 42 lines aren’t shown here.

drivers/platform/x86/asus-wmi.c+53−17

This diff is large: its 150 lines aren’t shown here.

drivers/platform/x86/asus-wmi.h+11−3

This diff is large: its 35 lines aren’t shown here.

drivers/platform/x86/asus_acpi.c+0−1513

This diff is large: its 1514 lines aren’t shown here.

drivers/platform/x86/compal-laptop.c+1−13

This diff is large: its 25 lines aren’t shown here.

drivers/platform/x86/dell-laptop.c+29−5

This diff is large: its 67 lines aren’t shown here.

drivers/platform/x86/eeepc-laptop.c+11−4

This diff is large: its 39 lines aren’t shown here.

drivers/platform/x86/eeepc-wmi.c+82−26

This diff is large: its 141 lines aren’t shown here.

drivers/platform/x86/hdaps.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/platform/x86/intel_ips.c+2−11

This diff is large: its 28 lines aren’t shown here.

drivers/platform/x86/intel_mid_powerbtn.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/platform/x86/intel_mid_thermal.c+2−12

This diff is large: its 28 lines aren’t shown here.

drivers/platform/x86/intel_oaktrail.c+1−1

This diff is large: its 13 lines aren’t shown here.

drivers/platform/x86/samsung-laptop.c+1217−554

This diff is large: its 2047 lines aren’t shown here.

drivers/platform/x86/sony-laptop.c+9−6

This diff is large: its 51 lines aren’t shown here.

drivers/platform/x86/thinkpad_acpi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/platform/x86/toshiba_acpi.c+213−41

This diff is large: its 412 lines aren’t shown here.

drivers/platform/x86/xo1-rfkill.c+1−12

This diff is large: its 21 lines aren’t shown here.

drivers/pnp/pnpacpi/core.c+6−1

This diff is large: its 16 lines aren’t shown here.

drivers/pnp/pnpbios/bioscalls.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/pnp/pnpbios/core.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/power/Kconfig+20−1

This diff is large: its 33 lines aren’t shown here.

drivers/power/Makefile+2−0

This diff is large: its 13 lines aren’t shown here.

drivers/power/ab8500_btemp.c+1124−0

This diff is large: its 1125 lines aren’t shown here.

drivers/power/ab8500_charger.c+2789−0

This diff is large: its 2790 lines aren’t shown here.

drivers/power/ab8500_fg.c+2637−0

This diff is large: its 2638 lines aren’t shown here.

drivers/power/abx500_chargalg.c+1921−0

This diff is large: its 1922 lines aren’t shown here.

drivers/power/apm_power.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/power/charger-manager.c+29−38

This diff is large: its 166 lines aren’t shown here.

drivers/power/da9052-battery.c+3−12

This diff is large: its 36 lines aren’t shown here.

drivers/power/ds2782_battery.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/power/isp1704_charger.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/power/lp8727_charger.c+67−64

This diff is large: its 266 lines aren’t shown here.

drivers/power/max17040_battery.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/power/max17042_battery.c+477−31

This diff is large: its 605 lines aren’t shown here.

drivers/power/max8998_charger.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/power/power_supply.h+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/power/power_supply_leds.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/power/power_supply_sysfs.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/power/sbs-battery.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/power/smb347-charger.c+1294−0

This diff is large: its 1295 lines aren’t shown here.

drivers/power/z2_battery.c+1−13

This diff is large: its 21 lines aren’t shown here.

drivers/regulator/Kconfig+0−8

This diff is large: its 15 lines aren’t shown here.

drivers/regulator/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/regulator/anatop-regulator.c+6−5

This diff is large: its 38 lines aren’t shown here.

drivers/regulator/bq24022.c+0−162

This diff is large: its 163 lines aren’t shown here.

drivers/regulator/core.c+2−2

This diff is large: its 17 lines aren’t shown here.

drivers/regulator/fixed-helper.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/regulator/mc13892-regulator.c+5−5

This diff is large: its 40 lines aren’t shown here.

drivers/regulator/s5m8767.c+7−7

This diff is large: its 36 lines aren’t shown here.

drivers/regulator/tps6586x-regulator.c+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/regulator/wm831x-dcdc.c+6−3

This diff is large: its 28 lines aren’t shown here.

drivers/regulator/wm831x-isink.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/regulator/wm831x-ldo.c+2−5

This diff is large: its 25 lines aren’t shown here.

drivers/regulator/wm8350-regulator.c+17−17

This diff is large: its 121 lines aren’t shown here.

drivers/remoteproc/Kconfig+28−0

This diff is large: its 29 lines aren’t shown here.

drivers/remoteproc/Makefile+9−0

This diff is large: its 10 lines aren’t shown here.

drivers/remoteproc/omap_remoteproc.c+229−0

This diff is large: its 230 lines aren’t shown here.

drivers/remoteproc/omap_remoteproc.h+69−0

This diff is large: its 70 lines aren’t shown here.

drivers/remoteproc/remoteproc_core.c+1586−0

This diff is large: its 1587 lines aren’t shown here.

drivers/remoteproc/remoteproc_debugfs.c+172−0

This diff is large: its 173 lines aren’t shown here.

drivers/remoteproc/remoteproc_internal.h+44−0

This diff is large: its 45 lines aren’t shown here.

drivers/remoteproc/remoteproc_virtio.c+289−0

This diff is large: its 290 lines aren’t shown here.

drivers/rpmsg/Kconfig+10−0

This diff is large: its 11 lines aren’t shown here.

drivers/rpmsg/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

drivers/rpmsg/virtio_rpmsg_bus.c+1054−0

This diff is large: its 1055 lines aren’t shown here.

drivers/rtc/Kconfig+20−3

This diff is large: its 49 lines aren’t shown here.

drivers/rtc/Makefile+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/rtc/interface.c+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/rtc/rtc-88pm860x.c+29−2

This diff is large: its 57 lines aren’t shown here.

drivers/rtc/rtc-at91sam9.c+29−58

This diff is large: its 169 lines aren’t shown here.

drivers/rtc/rtc-bq32k.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/rtc/rtc-cmos.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-coh901331.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-da9052.c+293−0

This diff is large: its 294 lines aren’t shown here.

drivers/rtc/rtc-davinci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-ds1305.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/rtc/rtc-ds1307.c+94−88

This diff is large: its 366 lines aren’t shown here.

drivers/rtc/rtc-ds1374.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/rtc/rtc-ds1390.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/rtc/rtc-ds1511.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-ds1553.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-ds1672.c+1−12

This diff is large: its 22 lines aren’t shown here.

drivers/rtc/rtc-ds3232.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/rtc/rtc-ds3234.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/rtc/rtc-efi.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/rtc/rtc-em3027.c+1−12

This diff is large: its 21 lines aren’t shown here.

drivers/rtc/rtc-fm3130.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/rtc/rtc-isl12022.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/rtc/rtc-isl1208.c+1−14

This diff is large: its 24 lines aren’t shown here.

drivers/rtc/rtc-lpc32xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-ls1x.c+210−0

This diff is large: its 211 lines aren’t shown here.

drivers/rtc/rtc-m41t80.c+1−12

This diff is large: its 22 lines aren’t shown here.

drivers/rtc/rtc-m41t93.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/rtc/rtc-m41t94.c+1−13

This diff is large: its 21 lines aren’t shown here.

drivers/rtc/rtc-max6900.c+1−12

This diff is large: its 22 lines aren’t shown here.

drivers/rtc/rtc-max6902.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/rtc/rtc-max8925.c+16−5

This diff is large: its 43 lines aren’t shown here.

drivers/rtc/rtc-mpc5121.c+4−2

This diff is large: its 27 lines aren’t shown here.

drivers/rtc/rtc-mrst.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-mv.c+10−1

This diff is large: its 37 lines aren’t shown here.

drivers/rtc/rtc-nuc900.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-omap.c+2−2

This diff is large: its 17 lines aren’t shown here.

drivers/rtc/rtc-pcf2123.c+1−12

This diff is large: its 22 lines aren’t shown here.

drivers/rtc/rtc-pcf8563.c+1−12

This diff is large: its 22 lines aren’t shown here.

drivers/rtc/rtc-pcf8583.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/rtc/rtc-pl030.c+2−13

This diff is large: its 29 lines aren’t shown here.

drivers/rtc/rtc-pl031.c+3−15

This diff is large: its 39 lines aren’t shown here.

drivers/rtc/rtc-pm8xxx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-pxa.c+2−2

This diff is large: its 17 lines aren’t shown here.

drivers/rtc/rtc-r9701.c+23−11

This diff is large: its 55 lines aren’t shown here.

drivers/rtc/rtc-rs5c348.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/rtc/rtc-rs5c372.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/rtc/rtc-rv3029c2.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/rtc/rtc-rx8025.c+1−12

This diff is large: its 21 lines aren’t shown here.

drivers/rtc/rtc-rx8581.c+1−12

This diff is large: its 22 lines aren’t shown here.

drivers/rtc/rtc-s35390a.c+1−12

This diff is large: its 21 lines aren’t shown here.

drivers/rtc/rtc-s3c.c+73−15

This diff is large: its 181 lines aren’t shown here.

drivers/rtc/rtc-sa1100.c+107−105

This diff is large: its 352 lines aren’t shown here.

drivers/rtc/rtc-sh.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/rtc/rtc-spear.c+57−43

This diff is large: its 237 lines aren’t shown here.

drivers/rtc/rtc-stk17ta8.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-twl.c+52−19

This diff is large: its 139 lines aren’t shown here.

drivers/rtc/rtc-tx4939.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/rtc/rtc-vr41xx.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/rtc/rtc-x1205.c+1−12

This diff is large: its 24 lines aren’t shown here.

drivers/s390/char/sclp_cmd.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/s390/cio/crw.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/s390/cio/qdio_main.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/s390/cio/qdio_setup.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/s390/crypto/ap_bus.c+1−1

This diff is large: its 12 lines aren’t shown here.

drivers/sbus/char/flash.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/sbus/char/openprom.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/sbus/char/uctrl.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/53c700.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/BusLogic.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/advansys.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/aha152x.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/aha1542.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/aha1740.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/aic7xxx/aic79xx_osm.c+4−4

This diff is large: its 15 lines aren’t shown here.

drivers/scsi/aic7xxx/aic7xxx_osm.c+4−4

This diff is large: its 15 lines aren’t shown here.

drivers/scsi/arcmsr/arcmsr_hba.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/arm/acornscsi.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/arm/arxescsi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/arm/cumana_1.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/arm/fas216.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/arm/fas216.h+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/scsi/arm/oak.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/atp870u.c+2−3

This diff is large: its 26 lines aren’t shown here.

drivers/scsi/bfa/bfa.h+4−5

This diff is large: its 39 lines aren’t shown here.

drivers/scsi/bfa/bfa_core.c+484−209

This diff is large: its 928 lines aren’t shown here.

drivers/scsi/bfa/bfa_defs_svc.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/bfa/bfa_fcs_lport.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/bfa/bfa_fcs_rport.c+4−1

This diff is large: its 12 lines aren’t shown here.

drivers/scsi/bfa/bfa_ioc.c+71−117

This diff is large: its 419 lines aren’t shown here.

drivers/scsi/bfa/bfa_ioc.h+16−1

This diff is large: its 31 lines aren’t shown here.

drivers/scsi/bfa/bfa_ioc_ct.c+106−45

This diff is large: its 182 lines aren’t shown here.

drivers/scsi/bfa/bfa_svc.c+19−50

This diff is large: its 112 lines aren’t shown here.

drivers/scsi/bfa/bfa_svc.h+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/scsi/bfa/bfad_attr.c+43−4

This diff is large: its 75 lines aren’t shown here.

drivers/scsi/bfa/bfad_bsg.c+11−51

This diff is large: its 101 lines aren’t shown here.

drivers/scsi/bfa/bfad_bsg.h+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/bfa/bfad_drv.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/bfa/bfi_ms.h+11−6

This diff is large: its 36 lines aren’t shown here.

drivers/scsi/bfa/bfi_reg.h+6−0

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/bnx2fc/bnx2fc_fcoe.c+2−2

This diff is large: its 16 lines aren’t shown here.

drivers/scsi/dtc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/fcoe/fcoe.c+35−48

This diff is large: its 153 lines aren’t shown here.

drivers/scsi/fcoe/fcoe_ctlr.c+28−10

This diff is large: its 95 lines aren’t shown here.

drivers/scsi/fd_mcs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/fdomain.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/g_NCR5380.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/gdth.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/ibmmca.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/ibmvscsi/ibmvfc.c+2−5

This diff is large: its 14 lines aren’t shown here.

drivers/scsi/ibmvscsi/ibmvscsi.c+2−5

This diff is large: its 14 lines aren’t shown here.

drivers/scsi/ibmvscsi/ibmvstgt.c+1−4

This diff is large: its 12 lines aren’t shown here.

drivers/scsi/in2000.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/ipr.c+46−27

This diff is large: its 187 lines aren’t shown here.

drivers/scsi/ipr.h+10−6

This diff is large: its 59 lines aren’t shown here.

drivers/scsi/libfc/fc_exch.c+12−2

This diff is large: its 28 lines aren’t shown here.

drivers/scsi/libfc/fc_lport.c+9−1

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/lpfc/Makefile+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/lpfc/lpfc.h+7−1

This diff is large: its 36 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_attr.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_debugfs.c+66−23

This diff is large: its 159 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_els.c+13−4

This diff is large: its 38 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_hbadisc.c+15−9

This diff is large: its 46 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_hw4.h+7−1

This diff is large: its 22 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_init.c+22−19

This diff is large: its 126 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_nportdisc.c+7−3

This diff is large: its 27 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_scsi.c+295−193

This diff is large: its 830 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_scsi.h+11−2

This diff is large: its 29 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_sli.c+39−23

This diff is large: its 180 lines aren’t shown here.

drivers/scsi/lpfc/lpfc_version.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/mac53c94.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/mac_scsi.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/mesh.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/mpt2sas/mpt2sas_base.c+3−5

This diff is large: its 40 lines aren’t shown here.

drivers/scsi/mpt2sas/mpt2sas_ctl.c+1−3

This diff is large: its 18 lines aren’t shown here.

drivers/scsi/ncr53c8xx.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/nsp32.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/osst.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/pas16.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/pm8001/pm8001_hwi.c+10−8

This diff is large: its 78 lines aren’t shown here.

drivers/scsi/qla1280.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/qla4xxx/ql4_isr.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/scsi/qla4xxx/ql4_os.c+4−6

This diff is large: its 39 lines aren’t shown here.

drivers/scsi/qla4xxx/ql4_version.h+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/scsi/qlogicpti.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/scsi_debug.c+20−7

This diff is large: its 87 lines aren’t shown here.

drivers/scsi/scsi_error.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/scsi/scsi_transport_iscsi.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/scsi/sd.c+10−5

This diff is large: its 53 lines aren’t shown here.

drivers/scsi/st.c+18−4

This diff is large: its 85 lines aren’t shown here.

drivers/scsi/st.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/sun3_scsi.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/sun3_scsi_vme.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/sym53c416.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/t128.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/u14-34f.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/ufs/Kconfig+49−0

This diff is large: its 50 lines aren’t shown here.

drivers/scsi/ufs/Makefile+2−0

This diff is large: its 3 lines aren’t shown here.

drivers/scsi/ufs/ufs.h+207−0

This diff is large: its 208 lines aren’t shown here.

drivers/scsi/ufs/ufshcd.c+1978−0

This diff is large: its 1979 lines aren’t shown here.

drivers/scsi/ufs/ufshci.h+376−0

This diff is large: its 377 lines aren’t shown here.

drivers/scsi/ultrastor.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/scsi/vmw_pvscsi.c+64−1

This diff is large: its 91 lines aren’t shown here.

drivers/scsi/vmw_pvscsi.h+85−24

This diff is large: its 144 lines aren’t shown here.

drivers/scsi/wd7000.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/sh/clk/cpg.c+8−8

This diff is large: its 70 lines aren’t shown here.

drivers/sh/intc/balancing.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/sh/intc/chip.c+8−29

This diff is large: its 82 lines aren’t shown here.

drivers/sh/intc/core.c+10−3

This diff is large: its 51 lines aren’t shown here.

drivers/sh/intc/handle.c+3−4

This diff is large: its 21 lines aren’t shown here.

drivers/sh/intc/internals.h+8−1

This diff is large: its 23 lines aren’t shown here.

drivers/sh/intc/virq.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/spi/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/spi/spi-davinci.c+3−3

This diff is large: its 22 lines aren’t shown here.

drivers/spi/spi-dw-mid.c+5−2

This diff is large: its 42 lines aren’t shown here.

drivers/spi/spi-dw.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/spi/spi-ep93xx.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/spi/spi-fsl-spi.c+3−1

This diff is large: its 14 lines aren’t shown here.

drivers/spi/spi-imx.c+8−4

This diff is large: its 33 lines aren’t shown here.

drivers/spi/spi-omap-uwire.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/spi/spi-orion.c+0−5

This diff is large: its 12 lines aren’t shown here.

drivers/spi/spi-pl022.c+4−4

This diff is large: its 47 lines aren’t shown here.

drivers/spi/spi-s3c24xx.c+1−1

This diff is large: its 12 lines aren’t shown here.

drivers/spi/spi-topcliff-pch.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/staging/android/Kconfig+2−1

This diff is large: its 16 lines aren’t shown here.

drivers/staging/android/binder.c+6−7

This diff is large: its 43 lines aren’t shown here.

drivers/staging/android/lowmemorykiller.c+7−41

This diff is large: its 99 lines aren’t shown here.

drivers/staging/android/persistent_ram.c+7−4

This diff is large: its 41 lines aren’t shown here.

drivers/staging/android/timed_gpio.c+15−12

This diff is large: its 49 lines aren’t shown here.

drivers/staging/asus_oled/README+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/comedi/drivers.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/comedi/drivers/cb_pcidas64.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/comedi/drivers/mite.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/crystalhd/bc_dts_defs.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/staging/crystalhd/crystalhd.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/crystalhd/crystalhd_lnx.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/crystalhd/crystalhd_misc.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/staging/et131x/et131x.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/iio/gyro/adis16060_core.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/iio/inkern.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/staging/iio/magnetometer/ak8975.c+5−3

This diff is large: its 36 lines aren’t shown here.

drivers/staging/iio/magnetometer/hmc5843.c+3−1

This diff is large: its 11 lines aren’t shown here.

drivers/staging/media/go7007/go7007-driver.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/media/go7007/go7007-i2c.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/media/go7007/go7007-v4l2.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/media/go7007/snd-go7007.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/media/lirc/lirc_serial.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/media/lirc/lirc_sir.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/mei/wd.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/staging/omapdrm/omap_drv.c+4−3

This diff is large: its 21 lines aren’t shown here.

drivers/staging/ozwpan/TODO+3−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/panel/panel.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/ramster/Kconfig+1−5

This diff is large: its 12 lines aren’t shown here.

drivers/staging/rtl8187se/r8180_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/rtl8192e/rtl8192e/rtl_dm.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/staging/rts_pstor/ms.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/staging/rts_pstor/rtsx.c+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/staging/rts_pstor/rtsx_transport.c+6−5

This diff is large: its 44 lines aren’t shown here.

drivers/staging/sbe-2t3e3/io.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/sep/sep_main.c+3−3

This diff is large: its 21 lines aren’t shown here.

drivers/staging/ste_rmi4/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/staging/telephony/phonedev.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/tidspbridge/include/dspbridge/host_os.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/vme/devices/vme_pio2_core.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/staging/vt6655/key.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/staging/vt6656/ioctl.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/staging/vt6656/key.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/staging/wlags49_h2/hcf.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/staging/wlags49_h2/wl_cs.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/wlags49_h2/wl_main.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/staging/wlags49_h2/wl_netdev.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/staging/wlags49_h2/wl_pci.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/staging/wlags49_h2/wl_util.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/staging/xgifb/vb_init.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/xgifb/vb_setmode.c+7−0

This diff is large: its 22 lines aren’t shown here.

drivers/staging/xgifb/vb_table.h+10−1

This diff is large: its 32 lines aren’t shown here.

drivers/staging/zsmalloc/zsmalloc-main.c+18−12

This diff is large: its 52 lines aren’t shown here.

drivers/target/tcm_fc/tcm_fc.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/target/tcm_fc/tfc_cmd.c+8−2

This diff is large: its 40 lines aren’t shown here.

drivers/target/tcm_fc/tfc_conf.c+8−5

This diff is large: its 34 lines aren’t shown here.

drivers/target/tcm_fc/tfc_io.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/thermal/Kconfig+8−0

This diff is large: its 12 lines aren’t shown here.

drivers/thermal/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/thermal/spear_thermal.c+206−0

This diff is large: its 207 lines aren’t shown here.

drivers/thermal/thermal_sys.c+39−55

This diff is large: its 274 lines aren’t shown here.

drivers/tty/amiserial.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/tty/hvc/hvc_vio.c+2−5

This diff is large: its 14 lines aren’t shown here.

drivers/tty/hvc/hvcs.c+1−4

This diff is large: its 12 lines aren’t shown here.

drivers/tty/isicom.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/tty/moxa.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/tty/mxser.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/tty/n_hdlc.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/tty/n_tty.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/tty/pty.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/tty/serial/21285.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/tty/serial/68328serial.c+0−1

This diff is large: its 8 lines aren’t shown here.

This diff is larger than a page shows: the files after these aren’t listed. Clone the repository to see all of it.