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 @@
1What: /sys/bus/usb/drivers/usbtmc/devices/*/interface_capabilities1What: /sys/bus/usb/drivers/usbtmc/*/interface_capabilities
2What: /sys/bus/usb/drivers/usbtmc/devices/*/device_capabilities2What: /sys/bus/usb/drivers/usbtmc/*/device_capabilities
3Date: August 20083Date: August 2008
4Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>4Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5Description:5Description:
@@ -12,8 +12,8 @@ Description: · 6 unmodified lines
12 The files are read only.12 The files are read only.
13 13
14 14
15What: /sys/bus/usb/drivers/usbtmc/devices/*/usb488_interface_capabilities15What: /sys/bus/usb/drivers/usbtmc/*/usb488_interface_capabilities
16What: /sys/bus/usb/drivers/usbtmc/devices/*/usb488_device_capabilities16What: /sys/bus/usb/drivers/usbtmc/*/usb488_device_capabilities
17Date: August 200817Date: August 2008
18Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>18Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
19Description:19Description:
@@ -27,7 +27,7 @@ Description: · 7 unmodified lines
27 The files are read only.27 The files are read only.
28 28
29 29
30What: /sys/bus/usb/drivers/usbtmc/devices/*/TermChar30What: /sys/bus/usb/drivers/usbtmc/*/TermChar
31Date: August 200831Date: August 2008
32Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>32Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
33Description:33Description:
@@ -40,7 +40,7 @@ Description: · 6 unmodified lines
40 sent to the device or not.40 sent to the device or not.
41 41
42 42
43What: /sys/bus/usb/drivers/usbtmc/devices/*/TermCharEnabled43What: /sys/bus/usb/drivers/usbtmc/*/TermCharEnabled
44Date: August 200844Date: August 2008
45Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>45Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
46Description:46Description:
@@ -51,11 +51,11 @@ Description: · 4 unmodified lines
51 published by the USB-IF.51 published by the USB-IF.
52 52
53 53
54What: /sys/bus/usb/drivers/usbtmc/devices/*/auto_abort54What: /sys/bus/usb/drivers/usbtmc/*/auto_abort
55Date: August 200855Date: August 2008
56Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>56Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
57Description:57Description:
58 This file determines if the the transaction of the USB TMC58 This file determines if the transaction of the USB TMC
59 device is to be automatically aborted if there is any error.59 device is to be automatically aborted if there is any error.
60 For more details about this, please see the document,60 For more details about this, please see the document,
61 "Universal Serial Bus Test and Measurement Class Specification61 "Universal Serial Bus Test and Measurement Class Specification
Documentation/ABI/testing/debugfs-olpc+16−0
@@ -0,0 +1,16 @@
1What: /sys/kernel/debug/olpc-ec/cmd
2Date: Dec 2011
3KernelVersion: 3.4
4Contact: devel@lists.laptop.org
5Description:
6
7A generic interface for executing OLPC Embedded Controller commands and
8reading their responses.
9
10To execute a command, write data with the format: CC:N A A A A
11CC is the (hex) command, N is the count of expected reply bytes, and A A A A
12are optional (hex) arguments.
13
14To read the response (if any), read from the generic node after executing
15a command. Hex reply bytes will be returned, *whether or not* they came from
16the immediately previous command.
Documentation/ABI/testing/sysfs-block-dm+25−0
@@ -0,0 +1,25 @@
1What: /sys/block/dm-<num>/dm/name
2Date: January 2009
3KernelVersion: 2.6.29
4Contact: dm-devel@redhat.com
5Description: Device-mapper device name.
6 Read-only string containing mapped device name.
7Users: util-linux, device-mapper udev rules
8
9What: /sys/block/dm-<num>/dm/uuid
10Date: January 2009
11KernelVersion: 2.6.29
12Contact: dm-devel@redhat.com
13Description: Device-mapper device UUID.
14 Read-only string containing DM-UUID or empty string
15 if DM-UUID is not set.
16Users: util-linux, device-mapper udev rules
17
18What: /sys/block/dm-<num>/dm/suspended
19Date: June 2009
20KernelVersion: 2.6.31
21Contact: dm-devel@redhat.com
22Description: Device-mapper device suspend state.
23 Contains the value 1 while the device is suspended.
24 Otherwise it contains 0. Read-only attribute.
25Users: util-linux, device-mapper udev rules
Documentation/ABI/testing/sysfs-block-rssd+18−0
@@ -0,0 +1,18 @@
1What: /sys/block/rssd*/registers
2Date: March 2012
3KernelVersion: 3.3
4Contact: Asai Thambi S P <asamymuthupa@micron.com>
5Description: 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
14What: /sys/block/rssd*/status
15Date: April 2012
16KernelVersion: 3.4
17Contact: Asai Thambi S P <asamymuthupa@micron.com>
18Description: 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 @@
1Where: /sys/bus/event_source/devices/<dev>/format
2Date: January 2012
3Kernel Version: 3.3
4Contact: Jiri Olsa <jolsa@redhat.com>
5Description:
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 @@
1What: /sys/bus/rpmsg/devices/.../name
2Date: June 2011
3KernelVersion: 3.3
4Contact: Ohad Ben-Cohen <ohad@wizery.com>
5Description:
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
13What: /sys/bus/rpmsg/devices/.../src
14Date: June 2011
15KernelVersion: 3.3
16Contact: Ohad Ben-Cohen <ohad@wizery.com>
17Description:
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
31What: /sys/bus/rpmsg/devices/.../dst
32Date: June 2011
33KernelVersion: 3.3
34Contact: Ohad Ben-Cohen <ohad@wizery.com>
35Description:
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
53What: /sys/bus/rpmsg/devices/.../announce
54Date: June 2011
55KernelVersion: 3.3
56Contact: Ohad Ben-Cohen <ohad@wizery.com>
57Description:
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 @@
1What: /sys/block/<device>/iosched/target_latency
2Date: March 2012
3contact: Tao Ma <boyu.mt@taobao.com>
4Description:
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
17 Specifically, not all support the "overclock" option,17 Specifically, not all support the "overclock" option,
18 and it's still unknown if this value even changes18 and it's still unknown if this value even changes
19 anything, other than making the user feel a bit better.19 anything, other than making the user feel a bit better.
20
21What: /sys/devices/platform/samsung/battery_life_extender
22Date: December 1, 2011
23KernelVersion: 3.3
24Contact: Corentin Chary <corentin.chary@gmail.com>
25Description: 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
31What: /sys/devices/platform/samsung/usb_charge
32Date: December 1, 2011
33KernelVersion: 3.3
34Contact: Corentin Chary <corentin.chary@gmail.com>
35Description: 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 @@
1What: /sys/firmware/acpi/bgrt/
2Date: January 2012
3Contact: Matthew Garrett <mjg@redhat.com>
4Description:
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
1What: /sys/firmware/acpi/interrupts/21What: /sys/firmware/acpi/interrupts/
2Date: February 200822Date: February 2008
3Contact: Len Brown <lenb@kernel.org>23Contact: 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
793work correctly.793work correctly.
794 794
795 795
796 Chapter 19: Inline assembly
797
798In architecture-specific code, you may need to use inline assembly to interface
799with CPU or platform functionality. Don't hesitate to do so when necessary.
800However, don't use inline assembly gratuitously when C can do the job. You can
801and should poke hardware from C when possible.
802
803Consider writing simple helper functions that wrap common bits of inline
804assembly, rather than repeatedly writing them with slight variations. Remember
805that inline assembly can use C parameters.
806
807Large, non-trivial assembly functions should go in .S files, with corresponding
808C prototypes defined in C header files. The C prototypes for assembly
809functions should use "asmlinkage".
810
811You may need to mark your asm statement as volatile, to prevent GCC from
812removing it if GCC doesn't notice any side effects. You don't always need to
813do so, though, and doing so unnecessarily can limit optimization.
814
815When writing a single inline assembly statement containing multiple
816instructions, put each instruction on a separate line in a separate quoted
817string, and end each string except the last with \n\t to properly indent the
818next instruction in the assembly output:
819
820 asm ("magic %reg1, #42\n\t"
821 "more_magic %reg2, %reg3"
822 : /* outputs */ : /* inputs */ : /* clobbers */);
823
824
796 825
797 Appendix I: References826 Appendix I: References
798 827
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
31Since it is optional for platforms to implement DMA_ATTR_WEAK_ORDERING,31Since it is optional for platforms to implement DMA_ATTR_WEAK_ORDERING,
32those that do not will simply ignore the attribute and exhibit default32those that do not will simply ignore the attribute and exhibit default
33behavior.33behavior.
34
35DMA_ATTR_WRITE_COMBINE
36----------------------
37
38DMA_ATTR_WRITE_COMBINE specifies that writes to the mapping may be
39buffered to improve performance.
40
41Since it is optional for platforms to implement DMA_ATTR_WRITE_COMBINE,
42those that do not will simply ignore the attribute and exhibit default
43behavior.
44
45DMA_ATTR_NON_CONSISTENT
46-----------------------
47
48DMA_ATTR_NON_CONSISTENT lets the platform to choose to return either
49consistent or non-consistent memory as it sees fit. By using this API,
50you are guaranteeing to the platform that you have all the correct and
51necessary 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
446!Edrivers/i2c/i2c-core.c446!Edrivers/i2c/i2c-core.c
447 </chapter>447 </chapter>
448 448
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
449</book>466</book>
Documentation/Makefile+1−1
@@ -1,3 +1,3 @@
1obj-m := DocBook/ accounting/ auxdisplay/ connector/ \1obj-m := DocBook/ accounting/ auxdisplay/ connector/ \
2 filesystems/ filesystems/configfs/ ia64/ laptops/ networking/ \2 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
53 This file is used to set the second error parameter value. Effect of53 This file is used to set the second error parameter value. Effect of
54 parameter depends on error_type specified.54 parameter depends on error_type specified.
55 55
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
56BIOS versions based in the ACPI 4.0 specification have limited options64BIOS versions based in the ACPI 4.0 specification have limited options
57to control where the errors are injected. Your BIOS may support an65to control where the errors are injected. Your BIOS may support an
58extension (enabled with the param_extension=1 module parameter, or66extension (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
35 sh Documentation/aoe/mkshelf.sh /dev/etherd 035 sh Documentation/aoe/mkshelf.sh /dev/etherd 0
36 36
37 There is also an autoload script that shows how to edit37 There is also an autoload script that shows how to edit
38 /etc/modprobe.conf to ensure that the aoe module is loaded when38 /etc/modprobe.d/aoe.conf to ensure that the aoe module is loaded when
39 necessary.39 necessary.
40 40
41USING DEVICE NODES41USING DEVICE NODES
Documentation/aoe/autoload.sh+2−2
@@ -1,8 +1,8 @@
1#!/bin/sh1#!/bin/sh
2# set aoe to autoload by installing the2# set aoe to autoload by installing the
3# aliases in /etc/modprobe.conf3# aliases in /etc/modprobe.d/
4 4
5f=/etc/modprobe.conf5f=/etc/modprobe.d/aoe.conf
6 6
7if test ! -r $f || test ! -w $f; then7if test ! -r $f || test ! -w $f; then
8 echo "cannot configure $f for module autoloading" 1>&28 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
49 49
50 options floppy omnibook messages50 options floppy omnibook messages
51 51
52in /etc/modprobe.conf.52in a configuration file in /etc/modprobe.d/.
53 53
54 54
55 The floppy driver related options are:55 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
217 217
218The cpus and mems files in the root (top_cpuset) cpuset are218The cpus and mems files in the root (top_cpuset) cpuset are
219read-only. The cpus file automatically tracks the value of219read-only. The cpus file automatically tracks the value of
220cpu_online_map using a CPU hotplug notifier, and the mems file220cpu_online_mask using a CPU hotplug notifier, and the mems file
221automatically tracks the value of node_states[N_HIGH_MEMORY]--i.e.,221automatically tracks the value of node_states[N_HIGH_MEMORY]--i.e.,
222nodes with memory--using the cpuset_track_online_nodes() hook.222nodes with memory--using the cpuset_track_online_nodes() hook.
223 223
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
34 34
35Features:35Features:
36 - accounting anonymous pages, file caches, swap caches usage and limiting them.36 - accounting anonymous pages, file caches, swap caches usage and limiting them.
37 - private LRU and reclaim routine. (system's global LRU and private LRU37 - pages are linked to per-memcg LRU exclusively, and there is no global LRU.
38 work independently from each other)
39 - optionally, memory+swap usage can be accounted and limited.38 - optionally, memory+swap usage can be accounted and limited.
40 - hierarchical accounting39 - hierarchical accounting
41 - soft limit40 - soft limit
@@ -154,7 +153,7 @@ updated. page_cgroup has its own LRU on cgroup. · 112 unmodified lines
1542.2.1 Accounting details1532.2.1 Accounting details
155 154
156All mapped anon pages (RSS) and cache pages (Page Cache) are accounted.155All mapped anon pages (RSS) and cache pages (Page Cache) are accounted.
157Some pages which are never reclaimable and will not be on the global LRU156Some pages which are never reclaimable and will not be on the LRU
158are not accounted. We just account pages under usual VM management.157are not accounted. We just account pages under usual VM management.
159 158
160RSS pages are accounted at page_fault unless they've already been accounted159RSS 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
4This document endeavours to explain the common clk framework details,
5and how to port a platform over to this framework. It is not yet a
6detailed explanation of the clock api in include/linux/clk.h, but
7perhaps someday it will include that information.
8
9 Part 1 - introduction and interface split
10
11The common clk framework is an interface to control the clock nodes
12available on various devices today. This may come in the form of clock
13gating, rate adjustment, muxing or other operations. This framework is
14enabled with the CONFIG_COMMON_CLK option.
15
16The interface itself is divided into two halves, each shielded from the
17details of its counterpart. First is the common definition of struct
18clk which unifies the framework-level accounting and infrastructure that
19has traditionally been duplicated across a variety of platforms. Second
20is a common implementation of the clk.h api, defined in
21drivers/clk/clk.c. Finally there is struct clk_ops, whose operations
22are invoked by the clk api implementation.
23
24The second half of the interface is comprised of the hardware-specific
25callbacks registered with struct clk_ops and the corresponding
26hardware-specific structures needed to model a particular clock. For
27the remainder of this document any reference to a callback in struct
28clk_ops, such as .enable or .set_rate, implies the hardware-specific
29implementation of that code. Likewise, references to struct clk_foo
30serve as a convenient shorthand for the implementation of the
31hardware-specific bits for the hypothetical "foo" hardware.
32
33Tying the two halves of this interface together is struct clk_hw, which
34is defined in struct clk_foo and pointed to within struct clk. This
35allows easy for navigation between the two discrete halves of the common
36clock interface.
37
38 Part 2 - common data structures and api
39
40Below is the common struct clk definition from
41include/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
55The members above make up the core of the clk tree topology. The clk
56api itself defines several driver-facing functions which operate on
57struct clk. That api is documented in include/linux/clk.h.
58
59Platforms and devices utilizing the common struct clk use the struct
60clk_ops pointer in struct clk to perform the hardware-specific parts of
61the 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
81The strength of the common struct clk comes from its .ops and .hw pointers
82which abstract the details of struct clk from the hardware-specific bits, and
83vice versa. To illustrate consider the simple gateable clk implementation in
84drivers/clk/clk-gate.c:
85
86struct clk_gate {
87 struct clk_hw hw;
88 void __iomem *reg;
89 u8 bit_idx;
90 ...
91};
92
93struct clk_gate contains struct clk_hw hw as well as hardware-specific
94knowledge about which register and bit controls this clk's gating.
95Nothing about clock topology or accounting, such as enable_count or
96notifier_count, is needed here. That is all handled by the common
97framework code and struct clk.
98
99Let'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
107The call graph for clk_enable is very simple:
108
109clk_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
116And the definition of clk_gate_set_bit:
117
118static 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
127Note that to_clk_gate is defined as:
128
129#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, clk)
130
131This pattern of abstraction is used for every clock hardware
132representation.
133
134 Part 4 - supporting your own clk hardware
135
136When implementing support for a new type of clock it only necessary to
137include the following header:
138
139#include <linux/clk-provider.h>
140
141include/linux/clk.h is included within that header and clk-private.h
142must never be included from the code which implements the operations for
143a clock. More on that below in Part 5.
144
145To construct a clk hardware structure for your platform you must define
146the following:
147
148struct clk_foo {
149 struct clk_hw hw;
150 ... hardware specific data goes here ...
151};
152
153To take advantage of your data you'll need to support valid operations
154for your clk:
155
156struct clk_ops clk_foo_ops {
157 .enable = &clk_foo_enable;
158 .disable = &clk_foo_disable;
159};
160
161Implement the above functions using container_of:
162
163#define to_clk_foo(_hw) container_of(_hw, struct clk_foo, hw)
164
165int 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
176Below is a matrix detailing which clk_ops are mandatory based upon the
177hardware capbilities of that clock. A cell marked as "y" means
178mandatory, a cell marked as "n" implies that either including that
179callback is invalid or otherwise uneccesary. Empty cells are either
180optional 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
203Finally, register your clock at run-time with a hardware-specific
204registration function. This function simply populates struct clk_foo's
205data and then passes the common struct clk parameters to the framework
206with a call to:
207
208clk_register(...)
209
210See the basic clock types in drivers/clk/clk-*.c for examples.
211
212 Part 5 - static initialization of clock data
213
214For platforms with many clocks (often numbering into the hundreds) it
215may be desirable to statically initialize some clock data. This
216presents a problem since the definition of struct clk should be hidden
217from everyone except for the clock core in drivers/clk/clk.c.
218
219To get around this problem struct clk's definition is exposed in
220include/linux/clk-private.h along with some macros for more easily
221initializing instances of the basic clock types. These clocks must
222still be initialized with the common clock framework via a call to
223__clk_init.
224
225clk-private.h must NEVER be included by code which implements struct
226clk_ops callbacks, nor must it be included by any logic which pokes
227around inside of struct clk at run-time. To do so is a layering
228violation.
229
230To better enforce this policy, always follow this simple rule: any
231statically initialized clock data MUST be defined in a separate file
232from the logic that implements its ops. Basically separate the logic
233from 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
47 other cpus later online, read FAQ's for more info.47 other cpus later online, read FAQ's for more info.
48 48
49additional_cpus=n (*) Use this to limit hotpluggable cpus. This option sets49additional_cpus=n (*) Use this to limit hotpluggable cpus. This option sets
50 cpu_possible_map = cpu_present_map + additional_cpus50 cpu_possible_mask = cpu_present_mask + additional_cpus
51 51
52cede_offline={"off","on"} Use this option to disable/enable putting offlined52cede_offline={"off","on"} Use this option to disable/enable putting offlined
53 processors to an extended H_CEDE state on53 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
64on the apicid values in those tables for disabled apics. In the event64on the apicid values in those tables for disabled apics. In the event
65BIOS doesn't mark such hot-pluggable cpus as disabled entries, one could65BIOS doesn't mark such hot-pluggable cpus as disabled entries, one could
66use this parameter "additional_cpus=x" to represent those cpus in the66use this parameter "additional_cpus=x" to represent those cpus in the
67cpu_possible_map.67cpu_possible_mask.
68 68
69possible_cpus=n [s390,x86_64] use this to set hotpluggable cpus.69possible_cpus=n [s390,x86_64] use this to set hotpluggable cpus.
70 This option sets possible_cpus bits in70 This option sets possible_cpus bits in
71 cpu_possible_map. Thus keeping the numbers of bits set71 cpu_possible_mask. Thus keeping the numbers of bits set
72 constant even if the machine gets rebooted.72 constant even if the machine gets rebooted.
73 73
74CPU maps and such74CPU maps and such
@@ -76,7 +76,7 @@ CPU maps and such · 1 unmodified line
76[More on cpumaps and primitive to manipulate, please check76[More on cpumaps and primitive to manipulate, please check
77include/linux/cpumask.h that has more descriptive text.]77include/linux/cpumask.h that has more descriptive text.]
78 78
79cpu_possible_map: Bitmap of possible CPUs that can ever be available in the79cpu_possible_mask: Bitmap of possible CPUs that can ever be available in the
80system. This is used to allocate some boot time memory for per_cpu variables80system. This is used to allocate some boot time memory for per_cpu variables
81that aren't designed to grow/shrink as CPUs are made available or removed.81that aren't designed to grow/shrink as CPUs are made available or removed.
82Once set during boot time discovery phase, the map is static, i.e no bits82Once 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
84upfront can save some boot time memory. See below for how we use heuristics84upfront can save some boot time memory. See below for how we use heuristics
85in x86_64 case to keep this under check.85in x86_64 case to keep this under check.
86 86
87cpu_online_map: Bitmap of all CPUs currently online. Its set in __cpu_up()87cpu_online_mask: Bitmap of all CPUs currently online. Its set in __cpu_up()
88after a cpu is available for kernel scheduling and ready to receive88after a cpu is available for kernel scheduling and ready to receive
89interrupts from devices. Its cleared when a cpu is brought down using89interrupts from devices. Its cleared when a cpu is brought down using
90__cpu_disable(), before which all OS services including interrupts are90__cpu_disable(), before which all OS services including interrupts are
91migrated to another target CPU.91migrated to another target CPU.
92 92
93cpu_present_map: Bitmap of CPUs currently present in the system. Not all93cpu_present_mask: Bitmap of CPUs currently present in the system. Not all
94of them may be online. When physical hotplug is processed by the relevant94of them may be online. When physical hotplug is processed by the relevant
95subsystem (e.g ACPI) can change and new bit either be added or removed95subsystem (e.g ACPI) can change and new bit either be added or removed
96from the map depending on the event is hot-add/hot-remove. There are currently96from 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
99 99
100You really dont need to manipulate any of the system cpu maps. They should100You really dont need to manipulate any of the system cpu maps. They should
101be read-only for most use. When setting up per-cpu resources almost always use101be read-only for most use. When setting up per-cpu resources almost always use
102cpu_possible_map/for_each_possible_cpu() to iterate.102cpu_possible_mask/for_each_possible_cpu() to iterate.
103 103
104Never use anything other than cpumask_t to represent bitmap of CPUs.104Never use anything other than cpumask_t to represent bitmap of CPUs.
105 105
106 #include <linux/cpumask.h>106 #include <linux/cpumask.h>
107 107
108 for_each_possible_cpu - Iterate over cpu_possible_map108 for_each_possible_cpu - Iterate over cpu_possible_mask
109 for_each_online_cpu - Iterate over cpu_online_map109 for_each_online_cpu - Iterate over cpu_online_mask
110 for_each_present_cpu - Iterate over cpu_present_map110 for_each_present_cpu - Iterate over cpu_present_mask
111 for_each_cpu_mask(x,mask) - Iterate over some random collection of cpu mask.111 for_each_cpu_mask(x,mask) - Iterate over some random collection of cpu mask.
112 112
113 #include <linux/cpu.h>113 #include <linux/cpu.h>
114 get_online_cpus() and put_online_cpus():114 get_online_cpus() and put_online_cpus():
115 115
116The above calls are used to inhibit cpu hotplug operations. While the116The above calls are used to inhibit cpu hotplug operations. While the
117cpu_hotplug.refcount is non zero, the cpu_online_map will not change.117cpu_hotplug.refcount is non zero, the cpu_online_mask will not change.
118If you merely need to avoid cpus going away, you could also use118If you merely need to avoid cpus going away, you could also use
119preempt_disable() and preempt_enable() for those sections.119preempt_disable() and preempt_enable() for those sections.
120Just remember the critical section cannot call any120Just 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
36/sys/devices/system/cpu/cpu0/cpuidle/state0:36/sys/devices/system/cpu/cpu0/cpuidle/state0:
37total 037total 0
38-r--r--r-- 1 root root 4096 Feb 8 10:42 desc38-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
39-r--r--r-- 1 root root 4096 Feb 8 10:42 latency40-r--r--r-- 1 root root 4096 Feb 8 10:42 latency
40-r--r--r-- 1 root root 4096 Feb 8 10:42 name41-r--r--r-- 1 root root 4096 Feb 8 10:42 name
41-r--r--r-- 1 root root 4096 Feb 8 10:42 power42-r--r--r-- 1 root root 4096 Feb 8 10:42 power
@@ -45,6 +46,7 @@ total 0 · 3 unmodified lines
45/sys/devices/system/cpu/cpu0/cpuidle/state1:46/sys/devices/system/cpu/cpu0/cpuidle/state1:
46total 047total 0
47-r--r--r-- 1 root root 4096 Feb 8 10:42 desc48-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
48-r--r--r-- 1 root root 4096 Feb 8 10:42 latency50-r--r--r-- 1 root root 4096 Feb 8 10:42 latency
49-r--r--r-- 1 root root 4096 Feb 8 10:42 name51-r--r--r-- 1 root root 4096 Feb 8 10:42 name
50-r--r--r-- 1 root root 4096 Feb 8 10:42 power52-r--r--r-- 1 root root 4096 Feb 8 10:42 power
@@ -54,6 +56,7 @@ total 0 · 3 unmodified lines
54/sys/devices/system/cpu/cpu0/cpuidle/state2:56/sys/devices/system/cpu/cpu0/cpuidle/state2:
55total 057total 0
56-r--r--r-- 1 root root 4096 Feb 8 10:42 desc58-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
57-r--r--r-- 1 root root 4096 Feb 8 10:42 latency60-r--r--r-- 1 root root 4096 Feb 8 10:42 latency
58-r--r--r-- 1 root root 4096 Feb 8 10:42 name61-r--r--r-- 1 root root 4096 Feb 8 10:42 name
59-r--r--r-- 1 root root 4096 Feb 8 10:42 power62-r--r--r-- 1 root root 4096 Feb 8 10:42 power
@@ -63,6 +66,7 @@ total 0 · 3 unmodified lines
63/sys/devices/system/cpu/cpu0/cpuidle/state3:66/sys/devices/system/cpu/cpu0/cpuidle/state3:
64total 067total 0
65-r--r--r-- 1 root root 4096 Feb 8 10:42 desc68-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
66-r--r--r-- 1 root root 4096 Feb 8 10:42 latency70-r--r--r-- 1 root root 4096 Feb 8 10:42 latency
67-r--r--r-- 1 root root 4096 Feb 8 10:42 name71-r--r--r-- 1 root root 4096 Feb 8 10:42 name
68-r--r--r-- 1 root root 4096 Feb 8 10:42 power72-r--r--r-- 1 root root 4096 Feb 8 10:42 power
@@ -72,6 +76,7 @@ total 0 · 3 unmodified lines
72 76
73 77
74* desc : Small description about the idle state (string)78* desc : Small description about the idle state (string)
79* disable : Option to disable this idle state (bool)
75* latency : Latency to exit out of this idle state (in microseconds)80* latency : Latency to exit out of this idle state (in microseconds)
76* name : Name of the idle state (string)81* name : Name of the idle state (string)
77* power : Power consumed while in this idle state (in milliwatts)82* 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
75 75
76As a guide, we suggest you calculate the number of bytes to use in the76As a guide, we suggest you calculate the number of bytes to use in the
77metadata device as 48 * $data_dev_size / $data_block_size but round it up77metadata device as 48 * $data_dev_size / $data_block_size but round it up
78to 2MB if the answer is smaller. The largest size supported is 16GB.78to 2MB if the answer is smaller. If you're creating large numbers of
79snapshots which are recording large amounts of change, you may find you
80need to increase this.
79 81
80If you're creating large numbers of snapshots which are recording large82The largest size supported is 16GB: If the device is larger,
81amounts of change, you may need find you need to increase this.83a warning will be issued and the excess space will not be used.
82 84
83Reloading a pool table85Reloading a pool table
84----------------------86----------------------
@@ -167,6 +169,38 @@ ii) Using an internal snapshot. · 82 unmodified lines
167 169
168 dmsetup create snap --table "0 2097152 thin /dev/mapper/pool 1"170 dmsetup create snap --table "0 2097152 thin /dev/mapper/pool 1"
169 171
172External snapshots
173------------------
174
175You can use an external _read only_ device as an origin for a
176thinly-provisioned volume. Any read to an unprovisioned area of the
177thin device will be passed through to the origin. Writes trigger
178the allocation of new blocks as usual.
179
180One use case for this is VM hosts that want to run guests on
181thinly-provisioned volumes but have the base image on another device
182(possibly shared between many VMs).
183
184You must not write to the origin device if you use this technique!
185Of course, you may write to the thin device and take internal snapshots
186of the thin volume.
187
188i) 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
195ii) 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
170Deactivation204Deactivation
171------------205------------
172 206
@@ -189,7 +223,13 @@ i) Constructor · 16 unmodified lines
189 <low water mark (blocks)> [<number of feature args> [<arg>]*]223 <low water mark (blocks)> [<number of feature args> [<arg>]*]
190 224
191 Optional feature arguments:225 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.
193 233
194 Data block size must be between 64KB (128 sectors) and 1GB234 Data block size must be between 64KB (128 sectors) and 1GB
195 (2097152 sectors) inclusive.235 (2097152 sectors) inclusive.
@@ -237,16 +277,6 @@ iii) Messages · 41 unmodified lines
237 277
238 Deletes a thin device. Irreversible.278 Deletes a thin device. Irreversible.
239 279
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
250 set_transaction_id <current id> <new id>280 set_transaction_id <current id> <new id>
251 281
252 Userland volume managers, such as LVM, need a way to282 Userland volume managers, such as LVM, need a way to
@@ -262,7 +292,7 @@ iii) Messages · 9 unmodified lines
262 292
263i) Constructor293i) Constructor
264 294
265 thin <pool dev> <dev id>295 thin <pool dev> <dev id> [<external origin dev>]
266 296
267 pool dev:297 pool dev:
268 the thin-pool device, e.g. /dev/mapper/my_pool or 253:0298 the thin-pool device, e.g. /dev/mapper/my_pool or 253:0
@@ -271,6 +301,11 @@ i) Constructor · 2 unmodified lines
271 the internal device identifier of the device to be301 the internal device identifier of the device to be
272 activated.302 activated.
273 303
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
274The pool doesn't store any size against the thin devices. If you309The pool doesn't store any size against the thin devices. If you
275load a thin target that is smaller than you've been using previously,310load a thin target that is smaller than you've been using previously,
276then you'll have no access to blocks mapped beyond the end. If you311then you'll have no access to blocks mapped beyond the end. If you
Documentation/device-mapper/verity.txt+194−0
@@ -0,0 +1,194 @@
1dm-verity
2==========
3
4Device-Mapper's "verity" target provides transparent integrity checking of
5block devices using a cryptographic digest provided by the kernel crypto API.
6This target is read-only.
7
8Construction 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
65Theory of operation
66===================
67
68dm-verity is meant to be setup as part of a verified boot path. This
69may be anything ranging from a boot using tboot or trustedgrub to just
70booting from a known-good device (like a USB drive or CD).
71
72When a dm-verity device is configured, it is expected that the caller
73has been authenticated in some way (cryptographic signatures, etc).
74After instantiation, all hashes will be verified on-demand during
75disk access. If they cannot be verified up to the root node of the
76tree, the root hash, then the I/O will fail. This should identify
77tampering with any data on the device and the hash data.
78
79Cryptographic hashes are used to assert the integrity of the device on a
80per-block basis. This allows for a lightweight hash computation on first read
81into the page cache. Block hashes are stored linearly-aligned to the nearest
82block the size of a page.
83
84Hash Tree
85---------
86
87Each node in the tree is a cryptographic hash. If it is a leaf node, the hash
88is of some block data on disk. If it is an intermediary node, then the hash is
89of a number of child nodes.
90
91Each entry in the tree is a collection of neighboring nodes that fit in one
92block. The number is determined based on block_size and the size of the
93selected cryptographic digest algorithm. The hashes are linearly-ordered in
94this entry and any unaligned trailing space is ignored but included when
95calculating the parent node.
96
97The tree looks something like:
98
99alg = 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
110On-disk format
111==============
112
113Below is the recommended on-disk format. The verity kernel code does not
114read the on-disk header. It only reads the hash blocks which directly
115follow the header. It is expected that a user-space tool will verify the
116integrity of the verity_header and then call dmsetup with the correct
117parameters. Alternatively, the header can be omitted and the dmsetup
118parameters can be passed via the kernel command-line in a rooted chain
119of trust where the command-line is verified.
120
121The on-disk format is especially useful in cases where the hash blocks
122are on a separate partition. The magic number allows easy identification
123of the partition contents. Alternatively, the hash blocks can be stored
124in the same partition as the data to be verified. In such a configuration
125the filesystem on the partition would be sized a little smaller than
126the full-partition, leaving room for the hash blocks.
127
128struct 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
166Directly following the header (and with sector number padded to the next hash
167block 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
170Status
171======
172V (for Valid) is returned if every check performed so far was valid.
173If any check failed, C (for Corruption) is returned.
174
175Example
176=======
177
178Setup 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
185A command line tool veritysetup is available to compute or verify
186the hash tree or activate the kernel driver. This is available from
187the LVM2 upstream repository and may be supplied as a package called
188device-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
193veritysetup -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
3Required 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
19Examples:
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 @@
1Atmel AT91 device tree bindings.
2================================
3
4PIT 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
10TC/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
18Examples:
19
20One interrupt per TC block:
21 tcb0: timer@fff7c000 {
22 compatible = "atmel,at91rm9200-tcb";
23 reg = <0xfff7c000 0x100>;
24 interrupts = <18 4>;
25 };
26
27One 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
34RSTC 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
39Example:
40
41 rstc@fffffd00 {
42 compatible = "atmel,at91sam9260-rstc";
43 reg = <0xfffffd00 0x10>;
44 };
45
46RAMC 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
52Examples:
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
65SHDWC Shutdown Controller
66
67required 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
72optional 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
77optional at91sam9260 properties:
78- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
79
80optional 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
84optional at91sam9x5 properties:
85- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
86
87Example:
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
3Required properties:
4- compatible: Should be "atmel,at91rm9200-pmc"
5- reg: Should contain PMC registers location and length
6
7Examples:
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
28i.MX6 Quad SABRE Lite Board28i.MX6 Quad SABRE Lite Board
29Required root node properties:29Required root node properties:
30 - compatible = "fsl,imx6q-sabrelite", "fsl,imx6q";30 - compatible = "fsl,imx6q-sabrelite", "fsl,imx6q";
31
32Generic i.MX boards
33-------------------
34
35No iomux setup is done for these boards, so this must have been configured
36by the bootloader for boards to work with the generic bindings.
37
38i.MX27 generic board
39Required root node properties:
40 - compatible = "fsl,imx27";
41
42i.MX51 generic board
43Required root node properties:
44 - compatible = "fsl,imx51";
45
46i.MX53 generic board
47Required root node properties:
48 - compatible = "fsl,imx53";
49
50i.MX6q generic board
51Required root node properties:
52 - compatible = "fsl,imx6q";
Documentation/devicetree/bindings/arm/mrvl.txt+6−0
@@ -0,0 +1,6 @@
1Marvell Platforms Device Tree Bindings
2----------------------------------------------------
3
4PXA168 Aspenite Board
5Required 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
3OMAP2/3 are using a TI interrupt controller that can support several
4configurable number of interrupts.
5
6Main 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
18Example:
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 @@
1ST SPEAr Platforms Device Tree Bindings
2---------------------------------------
3
4Boards with the ST SPEAr600 SoC shall have the following properties:
5
6Required root node property:
7
8compatible = "st,spear600";
Documentation/devicetree/bindings/arm/tegra/emc.txt+100−0
@@ -0,0 +1,100 @@
1Embedded Memory Controller
2
3Properties:
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
14Child device nodes describe the memory settings for different configurations and clock rates.
15
16Example:
17
18 emc@7000f400 {
19 #address-cells = < 1 >;
20 #size-cells = < 0 >;
21 compatible = "nvidia,tegra20-emc";
22 reg = <0x7000f4000 0x200>;
23 }
24
25
26Embedded Memory Controller ram-code table
27
28If the emc node has the nvidia,use-ram-code property present, then the
29next level of nodes below the emc table are used to specify which settings
30apply for which ram-code settings.
31
32If the emc node lacks the nvidia,use-ram-code property, this level is omitted
33and the tables are stored directly under the emc node (see below).
34
35Properties:
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
43Embedded Memory Controller configuration table
44
45This is a table containing the EMC register settings for the various
46operating speeds of the memory controller. They are always located as
47subnodes of the emc controller node.
48
49There 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
64Properties:
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 @@
1NVIDIA Tegra Power Management Controller (PMC)
2
3Properties:
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
13Example:
14
15pmc@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
3ARM 11MP, Cortex-A5 and Cortex-A9 are often associated with a per-core
4Timer-Watchdog (aka TWD), which provides both a per-cpu local timer
5and watchdog.
6
7The TWD is usually attached to a GIC to deliver its two per-processor
8interrupts.
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
22Example:
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
42Example:
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 @@
1ARM Versatile Express boards family
2-----------------------------------
3
4ARM's Versatile Express platform consists of a motherboard and one
5or more daughterboards (tiles). The motherboard provides a set of
6peripherals. Processor and RAM "live" on the tiles.
7
8The motherboard and each core tile should be described by a separate
9Device Tree source file, with the tile's description including
10the motherboard file using a /include/ directive. As the motherboard
11can be initialized in one of two different configurations ("memory
12maps"), care must be taken to include the correct one.
13
14Required 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
35Optional 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
48Top-level standard "cpus" node is required. It must contain a node
49with 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
62The motherboard description file provides a single "motherboard" node
63using 2 address cells corresponding to the Static Memory Bus used
64between the motherboard and the tile. The first cell defines the Chip
65Select (CS) line number, the second cell address offset within the CS.
66All interrupt lines between the motherboard and the tile are active
67high and are described using single cell.
68
69Optional 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
80Motherboard .dtsi files provide a set of labelled peripherals that
81can 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
90Current Linux implementation requires a "arm,v2m_timer" alias
91pointing at one of the motherboard's SP804 timers, if it is to be
92used as the system timer. This alias should be defined in the
93motherboard files.
94
95The tile description must define "ranges", "interrupt-map-mask" and
96"interrupt-map" properties to translate the motherboard's address
97and interrupt space into one used by the tile's processor.
98
99Abbreviated 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
3Required 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
9Examples:
10
11apbdma: 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 @@
1OMAP GPIO controller bindings
2
3Required 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
22OMAP 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
27Example:
28
29gpio4: 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 @@
1twl4030 GPIO controller bindings
2
3Required 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
15Example:
16
17twl_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
3Required 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
12Example:
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 @@
1Device-Tree bindings for i2c gpio driver
2
3Required properties:
4 - compatible = "i2c-gpio";
5 - gpios: sda and scl gpio
6
7
8Optional 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
15Example nodes:
16
17i2c@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 @@
1NVIDIA Tegra 2 GPIO controller1NVIDIA Tegra GPIO controller
2 2
3Required properties:3Required 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.
5- #gpio-cells : Should be two. The first cell is the pin number and the9- #gpio-cells : Should be two. The first cell is the pin number and the
6 second cell is used to specify optional parameters:10 second cell is used to specify optional parameters:
7 - bit 0 specifies polarity (0 for normal, 1 for inverted)11 - bit 0 specifies polarity (0 for normal, 1 for inverted)
8- gpio-controller : Marks the device node as a GPIO controller.12- 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
24Example:
25
26gpio: 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
3Required 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
12Example:
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 @@
1GPIO controller on CE4100 / Sodaville SoCs
2==========================================
3
4The bindings for CE4100's GPIO controller match the generic description
5which is covered by the gpio.txt file in this folder.
6
7The only additional property is the intel,muxctl property which holds the
8value which is written into the MUXCNTL register.
9
10There is no compatible property for now because the driver is probed via
11PCI id (vendor 0x8086 device 0x2e67).
12
13The 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
19Example 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
3Required 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
11Recommended 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
24Examples:
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 @@
1I2C for SiRFprimaII platforms
2
3Required 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
9Optional 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
13Examples :
14
15i2c0: 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
3The Highspeed MMC Host Controller on TI OMAP family
4provides an interface for MMC, SD, and SDIO types of memory cards.
5
6Required 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
14Optional properties:
15ti,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
18ti,bus-width: Number of data lines, default assumed is 1 if the property is missing.
19cd-gpios: GPIOs for card detection
20wp-gpios: GPIOs for write protection
21ti,non-removable: non-removable slot (like eMMC)
22ti,needs-special-reset: Requires a special softreset sequence
23
24Example:
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
4- compatible : must be "arm,versatile-flash";4- compatible : must be "arm,versatile-flash";
5- bank-width : width in bytes of flash interface.5- bank-width : width in bytes of flash interface.
6 6
7Optional properties:7The device tree may optionally contain sub-nodes describing partitions of the
8- Subnode partition map from mtd flash binding8address space. See partition.txt for more detail.
Documentation/devicetree/bindings/mtd/atmel-dataflash.txt+3−0
@@ -3,6 +3,9 @@ · 2 unmodified lines
3Required properties:3Required properties:
4- compatible : "atmel,<model>", "atmel,<series>", "atmel,dataflash".4- compatible : "atmel,<model>", "atmel,<series>", "atmel,dataflash".
5 5
6The device tree may optionally contain sub-nodes describing partitions of the
7address space. See partition.txt for more detail.
8
6Example:9Example:
7 10
8flash@1 {11flash@1 {
Documentation/devicetree/bindings/mtd/atmel-nand.txt+41−0
@@ -0,0 +1,41 @@
1Atmel NAND flash
2
3Required 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
15Optional 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
22Examples:
23nand0: 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
19 read registers (tR). Required if property "gpios" is not used19 read registers (tR). Required if property "gpios" is not used
20 (R/B# pins not connected).20 (R/B# pins not connected).
21 21
22Each flash chip described may optionally contain additional sub-nodes
23describing partitions of the address space. See partition.txt for more
24detail.
25
22Examples:26Examples:
23 27
24upm@1,0 {28upm@1,0 {
Documentation/devicetree/bindings/mtd/fsmc-nand.txt+33−0
@@ -0,0 +1,33 @@
1* FSMC NAND
2
3Required 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
10Optional 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
15Example:
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
25 GPIO state and before and after command byte writes, this register will be25 GPIO state and before and after command byte writes, this register will be
26 read to ensure that the GPIO accesses have completed.26 read to ensure that the GPIO accesses have completed.
27 27
28The device tree may optionally contain sub-nodes describing partitions of the
29address space. See partition.txt for more detail.
30
28Examples:31Examples:
29 32
30gpio-nand@1,0 {33gpio-nand@1,0 {
Documentation/devicetree/bindings/mtd/mtd-physmap.txt+2−21
@@ -23,27 +23,8 @@ are defined: · 22 unmodified lines
23 - vendor-id : Contains the flash chip's vendor id (1 byte).23 - vendor-id : Contains the flash chip's vendor id (1 byte).
24 - device-id : Contains the flash chip's device id (1 byte).24 - device-id : Contains the flash chip's device id (1 byte).
25 25
26In addition to the information on the mtd bank itself, the26The device tree may optionally contain sub-nodes describing partitions of the
27device tree may optionally contain additional information27address space. See partition.txt for more detail.
28describing partitions of the address space. This can be
29used on platforms which have strong conventions about which
30portions of a flash are used for what purposes, but which don't
31use an on-flash partition table such as RedBoot.
32
33Each partition is represented as a sub-node of the mtd device.
34Each node's name represents the name of the corresponding
35partition of the mtd device.
36
37Flash 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.
47 28
48Example:29Example:
49 30
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 @@
1Representing flash partitions in devicetree
2
3Partitions can be represented by sub-nodes of an mtd device. This can be used
4on platforms which have strong conventions about which portions of a flash are
5used for what purposes, but which don't use an on-flash partition table such
6as RedBoot.
7
8#address-cells & #size-cells must both be present in the mtd device and be
9equal to 1.
10
11Required properties:
12- reg : The partition's offset and size within the mtd bank.
13
14Optional 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
22Examples:
23
24
25flash@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
3Required 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
13Optional properties:
14- st,smi-fast-mode : Flash supports read in fast mode
15
16Example:
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 @@
1max17042_battery
2~~~~~~~~~~~~~~~~
3
4Required properties :
5 - compatible : "maxim,max17042"
6
7Optional 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
12Example:
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 @@
1Anatop Voltage regulators
2
3Required 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
12Any property defined as part of the core regulator
13binding, defined in regulator.txt, can also be used.
14
15Example:
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
3Required 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
11Example:
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 @@
1PXA UART controller
2
3Required 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 @@
1Atmel SOC USB controllers
2
3OHCI
4
5Required 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
14usb0: ohci@00500000 {
15 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
16 reg = <0x00500000 0x100000>;
17 interrupts = <20 4>;
18 num-ports = <2>;
19};
20
21EHCI
22
23Required properties:
24 - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
25 used in host mode.
26
27usb1: ehci@00800000 {
28 compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
29 reg = <0x00800000 0x100000>;
30 interrupts = <22 4>;
31};
32
33AT91 USB device controller
34
35Required 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
40Optional properties:
41 - atmel,vbus-gpio: If present, specifies a gpio that needs to be
42 activated for the bus to be powered.
43
44usb1: 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
11 - phy_type : Should be one of "ulpi" or "utmi".11 - phy_type : Should be one of "ulpi" or "utmi".
12 - nvidia,vbus-gpio : If present, specifies a gpio that needs to be12 - nvidia,vbus-gpio : If present, specifies a gpio that needs to be
13 activated for the bus to be powered.13 activated for the bus to be powered.
14
15Optional 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 @@
1Linux and the Device Tree
2-------------------------
3The Linux usage model for device tree data
4
5Author: Grant Likely <grant.likely@secretlab.ca>
6
7This article describes how Linux uses the device tree. An overview of
8the device tree data format can be found on the device tree usage page
9at devicetree.org[1].
10
11[1] http://devicetree.org/Device_Tree_Usage
12
13The "Open Firmware Device Tree", or simply Device Tree (DT), is a data
14structure and language for describing hardware. More specifically, it
15is a description of hardware that is readable by an operating system
16so that the operating system doesn't need to hard code details of the
17machine.
18
19Structurally, the DT is a tree, or acyclic graph with named nodes, and
20nodes may have an arbitrary number of named properties encapsulating
21arbitrary data. A mechanism also exists to create arbitrary
22links from one node to another outside of the natural tree structure.
23
24Conceptually, a common set of usage conventions, called 'bindings',
25is defined for how data should appear in the tree to describe typical
26hardware characteristics including data busses, interrupt lines, GPIO
27connections, and peripheral devices.
28
29As much as possible, hardware is described using existing bindings to
30maximize use of existing support code, but since property and node
31names are simply text strings, it is easy to extend existing bindings
32or create new ones by defining new nodes and properties. Be wary,
33however, of creating a new binding without first doing some homework
34about what already exists. There are currently two different,
35incompatible, bindings for i2c busses that came about because the new
36binding was created without first investigating how i2c devices were
37already being enumerated in existing systems.
38
391. History
40----------
41The DT was originally created by Open Firmware as part of the
42communication method for passing data from Open Firmware to a client
43program (like to an operating system). An operating system used the
44Device Tree to discover the topology of the hardware at runtime, and
45thereby support a majority of available hardware without hard coded
46information (assuming drivers were available for all devices).
47
48Since Open Firmware is commonly used on PowerPC and SPARC platforms,
49the Linux support for those architectures has for a long time used the
50Device Tree.
51
52In 2005, when PowerPC Linux began a major cleanup and to merge 32-bit
53and 64-bit support, the decision was made to require DT support on all
54powerpc platforms, regardless of whether or not they used Open
55Firmware. To do this, a DT representation called the Flattened Device
56Tree (FDT) was created which could be passed to the kernel as a binary
57blob without requiring a real Open Firmware implementation. U-Boot,
58kexec, and other bootloaders were modified to support both passing a
59Device Tree Binary (dtb) and to modify a dtb at boot time. DT was
60also added to the PowerPC boot wrapper (arch/powerpc/boot/*) so that
61a dtb could be wrapped up with the kernel image to support booting
62existing non-DT aware firmware.
63
64Some time later, FDT infrastructure was generalized to be usable by
65all architectures. At the time of this writing, 6 mainlined
66architectures (arm, microblaze, mips, powerpc, sparc, and x86) and 1
67out of mainline (nios) have some level of DT support.
68
692. Data Model
70-------------
71If you haven't already read the Device Tree Usage[1] page,
72then go read it now. It's okay, I'll wait....
73
742.1 High Level View
75-------------------
76The most important thing to understand is that the DT is simply a data
77structure that describes the hardware. There is nothing magical about
78it, and it doesn't magically make all hardware configuration problems
79go away. What it does do is provide a language for decoupling the
80hardware configuration from the board and device driver support in the
81Linux kernel (or any other operating system for that matter). Using
82it allows board and device support to become data driven; to make
83setup decisions based on data passed into the kernel instead of on
84per-machine hard coded selections.
85
86Ideally, data driven platform setup should result in less code
87duplication and make it easier to support a wide range of hardware
88with a single kernel image.
89
90Linux uses DT data for three major purposes:
911) platform identification,
922) runtime configuration, and
933) device population.
94
952.2 Platform Identification
96---------------------------
97First and foremost, the kernel will use data in the DT to identify the
98specific machine. In a perfect world, the specific platform shouldn't
99matter to the kernel because all platform details would be described
100perfectly by the device tree in a consistent and reliable manner.
101Hardware is not perfect though, and so the kernel must identify the
102machine during early boot so that it has the opportunity to run
103machine-specific fixups.
104
105In the majority of cases, the machine identity is irrelevant, and the
106kernel will instead select setup code based on the machine's core
107CPU or SoC. On ARM for example, setup_arch() in
108arch/arm/kernel/setup.c will call setup_machine_fdt() in
109arch/arm/kernel/devicetree.c which searches through the machine_desc
110table and selects the machine_desc which best matches the device tree
111data. It determines the best match by looking at the 'compatible'
112property in the root device tree node, and comparing it with the
113dt_compat list in struct machine_desc.
114
115The 'compatible' property contains a sorted list of strings starting
116with the exact name of the machine, followed by an optional list of
117boards it is compatible with sorted from most compatible to least. For
118example, the root compatible properties for the TI BeagleBoard and its
119successor, 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
124Where "ti,omap3-beagleboard-xm" specifies the exact model, it also
125claims that it compatible with the OMAP 3450 SoC, and the omap3 family
126of SoCs in general. You'll notice that the list is sorted from most
127specific (exact board) to least specific (SoC family).
128
129Astute readers might point out that the Beagle xM could also claim
130compatibility with the original Beagle board. However, one should be
131cautioned about doing so at the board level since there is typically a
132high level of change from one board to another, even within the same
133product line, and it is hard to nail down exactly what is meant when one
134board claims to be compatible with another. For the top level, it is
135better to err on the side of caution and not claim one board is
136compatible with another. The notable exception would be when one
137board is a carrier for another, such as a CPU module attached to a
138carrier board.
139
140One more note on compatible values. Any string used in a compatible
141property must be documented as to what it indicates. Add
142documentation for compatible strings in Documentation/devicetree/bindings.
143
144Again on ARM, for each machine_desc, the kernel looks to see if
145any of the dt_compat list entries appear in the compatible property.
146If one does, then that machine_desc is a candidate for driving the
147machine. After searching the entire table of machine_descs,
148setup_machine_fdt() returns the 'most compatible' machine_desc based
149on which entry in the compatible property each machine_desc matches
150against. If no matching machine_desc is found, then it returns NULL.
151
152The reasoning behind this scheme is the observation that in the majority
153of cases, a single machine_desc can support a large number of boards
154if they all use the same SoC, or same family of SoCs. However,
155invariably there will be some exceptions where a specific board will
156require special setup code that is not useful in the generic case.
157Special cases could be handled by explicitly checking for the
158troublesome board(s) in generic setup code, but doing so very quickly
159becomes ugly and/or unmaintainable if it is more than just a couple of
160cases.
161
162Instead, the compatible list allows a generic machine_desc to provide
163support for a wide common set of boards by specifying "less
164compatible" value in the dt_compat list. In the example above,
165generic board support can claim compatibility with "ti,omap3" or
166"ti,omap3450". If a bug was discovered on the original beagleboard
167that required special workaround code during early boot, then a new
168machine_desc could be added which implements the workarounds and only
169matches on "ti,omap3-beagleboard".
170
171PowerPC uses a slightly different scheme where it calls the .probe()
172hook from each machine_desc, and the first one returning TRUE is used.
173However, this approach does not take into account the priority of the
174compatible list, and probably should be avoided for new architecture
175support.
176
1772.3 Runtime configuration
178-------------------------
179In most cases, a DT will be the sole method of communicating data from
180firmware to the kernel, so also gets used to pass in runtime and
181configuration data like the kernel parameters string and the location
182of an initrd image.
183
184Most of this data is contained in the /chosen node, and when booting
185Linux 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
193The bootargs property contains the kernel arguments, and the initrd-*
194properties define the address and size of an initrd blob. The
195chosen node may also optionally contain an arbitrary number of
196additional properties for platform-specific configuration data.
197
198During early boot, the architecture setup code calls of_scan_flat_dt()
199several times with different helper callbacks to parse device tree
200data before paging is setup. The of_scan_flat_dt() code scans through
201the device tree and uses the helpers to extract information required
202during early boot. Typically the early_init_dt_scan_chosen() helper
203is used to parse the chosen node including kernel parameters,
204early_init_dt_scan_root() to initialize the DT address space model,
205and early_init_dt_scan_memory() to determine the size and
206location of usable RAM.
207
208On ARM, the function setup_machine_fdt() is responsible for early
209scanning of the device tree after selecting the correct machine_desc
210that supports the board.
211
2122.4 Device population
213---------------------
214After the board has been identified, and after the early configuration data
215has been parsed, then kernel initialization can proceed in the normal
216way. At some point in this process, unflatten_device_tree() is called
217to convert the data into a more efficient runtime representation.
218This is also when machine-specific setup hooks will get called, like
219the machine_desc .init_early(), .init_irq() and .init_machine() hooks
220on ARM. The remainder of this section uses examples from the ARM
221implementation, but all architectures will do pretty much the same
222thing when using a DT.
223
224As can be guessed by the names, .init_early() is used for any machine-
225specific setup that needs to be executed early in the boot process,
226and .init_irq() is used to set up interrupt handling. Using a DT
227doesn't materially change the behaviour of either of these functions.
228If a DT is provided, then both .init_early() and .init_irq() are able
229to call any of the DT query functions (of_* in include/linux/of*.h) to
230get additional data about the platform.
231
232The most interesting hook in the DT context is .init_machine() which
233is primarily responsible for populating the Linux device model with
234data about the platform. Historically this has been implemented on
235embedded platforms by defining a set of static clock structures,
236platform_devices, and other data in the board support .c file, and
237registering it en-masse in .init_machine(). When DT is used, then
238instead of hard coding static devices for each platform, the list of
239devices can be obtained by parsing the DT, and allocating device
240structures dynamically.
241
242The simplest case is when .init_machine() is only responsible for
243registering a block of platform_devices. A platform_device is a concept
244used by Linux for memory or I/O mapped devices which cannot be detected
245by hardware, and for 'composite' or 'virtual' devices (more on those
246later). While there is no 'platform device' terminology for the DT,
247platform devices roughly correspond to device nodes at the root of the
248tree and children of simple memory mapped bus nodes.
249
250About now is a good time to lay out an example. Here is part of the
251device 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
315At .machine_init() time, Tegra board support code will need to look at
316this DT and decide which nodes to create platform_devices for.
317However, looking at the tree, it is not immediately obvious what kind
318of device each node represents, or even if a node represents a device
319at all. The /chosen, /aliases, and /memory nodes are informational
320nodes that don't describe devices (although arguably memory could be
321considered a device). The children of the /soc node are memory mapped
322devices, but the codec@1a is an i2c device, and the sound node
323represents not a device, but rather how other devices are connected
324together to create the audio subsystem. I know what each device is
325because I'm familiar with the board design, but how does the kernel
326know what to do with each node?
327
328The trick is that the kernel starts at the root of the tree and looks
329for nodes that have a 'compatible' property. First, it is generally
330assumed that any node with a 'compatible' property represents a device
331of some kind, and second, it can be assumed that any node at the root
332of the tree is either directly attached to the processor bus, or is a
333miscellaneous system device that cannot be described any other way.
334For each of these nodes, Linux allocates and registers a
335platform_device, which in turn may get bound to a platform_driver.
336
337Why is using a platform_device for these nodes a safe assumption?
338Well, for the way that Linux models devices, just about all bus_types
339assume that its devices are children of a bus controller. For
340example, each i2c_client is a child of an i2c_master. Each spi_device
341is a child of an SPI bus. Similarly for USB, PCI, MDIO, etc. The
342same hierarchy is also found in the DT, where I2C device nodes only
343ever appear as children of an I2C bus node. Ditto for SPI, MDIO, USB,
344etc. The only devices which do not require a specific type of parent
345device are platform_devices (and amba_devices, but more on that
346later), which will happily live at the base of the Linux /sys/devices
347tree. Therefore, if a DT node is at the root of the tree, then it
348really probably is best registered as a platform_device.
349
350Linux board support code calls of_platform_populate(NULL, NULL, NULL)
351to kick off discovery of devices at the root of the tree. The
352parameters are all NULL because when starting from the root of the
353tree, there is no need to provide a starting node (the first NULL), a
354parent struct device (the last NULL), and we're not using a match
355table (yet). For a board that only needs to register devices,
356.init_machine() can be completely empty except for the
357of_platform_populate() call.
358
359In the Tegra example, this accounts for the /soc and /sound nodes, but
360what about the children of the SoC node? Shouldn't they be registered
361as platform devices too? For Linux DT support, the generic behaviour
362is for child devices to be registered by the parent's device driver at
363driver .probe() time. So, an i2c bus device driver will register a
364i2c_client for each child node, an SPI bus driver will register
365its spi_device children, and similarly for other bus_types.
366According to that model, a driver could be written that binds to the
367SoC node and simply registers platform_devices for each of its
368children. The board support code would allocate and register an SoC
369device, a (theoretical) SoC device driver could bind to the SoC device,
370and register platform_devices for /soc/interrupt-controller, /soc/serial,
371/soc/i2s, and /soc/i2c in its .probe() hook. Easy, right?
372
373Actually, it turns out that registering children of some
374platform_devices as more platform_devices is a common pattern, and the
375device tree support code reflects that and makes the above example
376simpler. The second argument to of_platform_populate() is an
377of_device_id table, and any node that matches an entry in that table
378will also get its child nodes registered. In the tegra case, the code
379can look something like this:
380
381static 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
388meaning a simple memory mapped bus, so the of_platform_populate() code
389could be written to just assume simple-bus compatible nodes will
390always be traversed. However, we pass it in as an argument so that
391board support code can always override the default behaviour.
392
393[Need to add discussion of adding i2c/spi/etc child devices]
394
395Appendix A: AMBA devices
396------------------------
397
398ARM Primecells are a certain kind of device attached to the ARM AMBA
399bus which include some support for hardware detection and power
400management. In Linux, struct amba_device and the amba_bus_type is
401used to represent Primecell devices. However, the fiddly bit is that
402not all devices on an AMBA bus are Primecells, and for Linux it is
403typical for both amba_device and platform_device instances to be
404siblings of the same bus segment.
405
406When using the DT, this creates problems for of_platform_populate()
407because it must decide whether to register each node as either a
408platform_device or an amba_device. This unfortunately complicates the
409device creation model a little bit, but the solution turns out not to
410be too invasive. If a node is compatible with "arm,amba-primecell", then
411of_platform_populate() will register it as an amba_device instead of a
412platform_device.
Documentation/dma-buf-sharing.txt+117−3
@@ -32,8 +32,12 @@ The buffer-user · 31 unmodified lines
32*IMPORTANT*: [see https://lkml.org/lkml/2011/12/20/211 for more details]32*IMPORTANT*: [see https://lkml.org/lkml/2011/12/20/211 for more details]
33For this first version, A buffer shared using the dma_buf sharing API:33For this first version, A buffer shared using the dma_buf sharing API:
34- *may* be exported to user space using "mmap" *ONLY* by exporter, outside of34- *may* be exported to user space using "mmap" *ONLY* by exporter, outside of
35 this framework.35 this framework.
36- may be used *ONLY* by importers that do not need CPU access to the buffer.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
39dma-buf operations for device dma only
40--------------------------------------
37 41
38The dma_buf buffer sharing API usage contains the following steps:42The dma_buf buffer sharing API usage contains the following steps:
39 43
@@ -219,10 +223,120 @@ NOTES: · 179 unmodified lines
219 If the exporter chooses not to allow an attach() operation once a223 If the exporter chooses not to allow an attach() operation once a
220 map_dma_buf() API has been called, it simply returns an error.224 map_dma_buf() API has been called, it simply returns an error.
221 225
222Miscellaneous notes:226Kernel cpu access to a dma-buf buffer object
227--------------------------------------------
228
229The motivation to allow cpu access from the kernel to a dma-buf object from the
230importers 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
239Access to a dma_buf from the kernel context involves three steps:
240
2411. Prepare access, which invalidate any necessary caches and make the object
242 available for cpu access.
2432. Access the object page-by-page with the dma_buf map apis
2443. Finish access, which will flush any necessary cpu caches and free reserved
245 resources.
246
2471. 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
2692. 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
3033. 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
316Miscellaneous notes
317-------------------
318
223- Any exporters or users of the dma-buf buffer sharing framework must have319- Any exporters or users of the dma-buf buffer sharing framework must have
224 a 'select DMA_SHARED_BUFFER' in their respective Kconfigs.320 a 'select DMA_SHARED_BUFFER' in their respective Kconfigs.
225 321
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
226References:339References:
227[1] struct dma_buf_ops in include/linux/dma-buf.h340[1] struct dma_buf_ops in include/linux/dma-buf.h
228[2] All interfaces mentioned above defined in include/linux/dma-buf.h341[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
158logo_*_clut224.c158logo_*_clut224.c
159logo_*_mono.c159logo_*_mono.c
160lxdialog160lxdialog
161mach
162mach-types161mach-types
163mach-types.h162mach-types.h
164machtypes.h163machtypes.h
Documentation/edac.txt+2−2
@@ -334,8 +334,8 @@ Sdram memory scrubbing rate: · 333 unmodified lines
334 334
335 Reading the file will return the actual scrubbing rate employed.335 Reading the file will return the actual scrubbing rate employed.
336 336
337 If configuration fails or memory scrubbing is not implemented, the value337 If configuration fails or memory scrubbing is not implemented, accessing
338 of the attribute file will be -1.338 that attribute will fail.
339 339
340 340
341 341
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
211 modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \211 modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
212 vsync2=85 accel=1 mtrr=1212 vsync2=85 accel=1 mtrr=1
213 213
214Or just add the following to /etc/modprobe.conf214Or just add the following to a configuration file in /etc/modprobe.d/
215 215
216 options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \216 options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
217 vsync2=85 accel=1 mtrr=1217 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
120 120
121 modprobe intelfb mode=800x600-32@75 vram=8 accel=1 hwcursor=1121 modprobe intelfb mode=800x600-32@75 vram=8 accel=1 hwcursor=1
122 122
123Or just add the following to /etc/modprobe.conf123Or just add the following to a configuration file in /etc/modprobe.d/
124 124
125 options intelfb mode=800x600-32@75 vram=8 accel=1 hwcursor=1125 options intelfb mode=800x600-32@75 vram=8 accel=1 hwcursor=1
126 126
Documentation/feature-removal-schedule.txt+18−22
@@ -6,14 +6,6 @@ be removed from this file. · 5 unmodified lines
6 6
7---------------------------7---------------------------
8 8
9What: x86 floppy disable_hlt
10When: 2012
11Why: ancient workaround of dubious utility clutters the
12 code used by everybody else.
13Who: Len Brown <len.brown@intel.com>
14
15---------------------------
16
17What: CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle9What: CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle
18When: 201210When: 2012
19Why: This optional sub-feature of APM is of dubious reliability,11Why: This optional sub-feature of APM is of dubious reliability,
@@ -513,20 +505,6 @@ Who: Bjorn Helgaas <bhelgaas@google.com> · 493 unmodified lines
513 505
514----------------------------506----------------------------
515 507
516What: The CAP9 SoC family will be removed
517When: 3.4
518Files: 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
524Why: The code is not actively maintained and platforms are now hard to find.
525Who: Nicolas Ferre <nicolas.ferre@atmel.com>
526 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
527
528----------------------------
529
530What: Low Performance USB Block driver ("CONFIG_BLK_DEV_UB")508What: Low Performance USB Block driver ("CONFIG_BLK_DEV_UB")
531When: 3.6509When: 3.6
532Why: This driver provides support for USB storage devices like "USB510Why: This driver provides support for USB storage devices like "USB
@@ -543,3 +521,21 @@ When: 3.5 · 10 unmodified lines
543Why: The old kmap_atomic() with two arguments is deprecated, we only521Why: The old kmap_atomic() with two arguments is deprecated, we only
544 keep it for backward compatibility for few cycles and then drop it.522 keep it for backward compatibility for few cycles and then drop it.
545Who: Cong Wang <amwang@redhat.com>523Who: Cong Wang <amwang@redhat.com>
524
525----------------------------
526
527What: get_robust_list syscall
528When: 2013
529Why: 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.
533Who: Kees Cook <keescook@chromium.org>
534
535----------------------------
536
537What: setitimer accepts user NULL pointer (value)
538When: 3.6
539Why: setitimer is not returning -EFAULT if user pointer is NULL. This
540 violates the spec.
541Who: 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
144 mount the device. This will enable 'journal_checksum'144 mount the device. This will enable 'journal_checksum'
145 internally.145 internally.
146 146
147journal=update Update the ext4 file system's journal to the current
148 format.
149
150journal_dev=devnum When the external journal device's major/minor numbers147journal_dev=devnum When the external journal device's major/minor numbers
151 have changed, this option allows the user to specify148 have changed, this option allows the user to specify
152 the new journal location. The journal device is149 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
356 interoperability with older kernels which only353 interoperability with older kernels which only
357 store and expect 16-bit values.354 store and expect 16-bit values.
358 355
359resize 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
364block_validity This options allows to enables/disables the in-kernel356block_validity This options allows to enables/disables the in-kernel
365noblock_validity facility for tracking filesystem metadata blocks357noblock_validity facility for tracking filesystem metadata blocks
366 within internal data structures. This allows multi-358 within internal data structures. This allows multi-
Documentation/filesystems/files.txt+2−2
@@ -113,8 +113,8 @@ the fdtable structure - · 112 unmodified lines
113 if (fd >= 0) {113 if (fd >= 0) {
114 /* locate_fd() may have expanded fdtable, load the ptr */114 /* locate_fd() may have expanded fdtable, load the ptr */
115 fdt = files_fdtable(files);115 fdt = files_fdtable(files);
116 FD_SET(fd, fdt->open_fds);116 __set_open_fd(fd, fdt);
117 FD_CLR(fd, fdt->close_on_exec);117 __clear_close_on_exec(fd, fdt);
118 spin_unlock(&files->file_lock);118 spin_unlock(&files->file_lock);
119 .....119 .....
120 120
Documentation/filesystems/vfs.txt+1−1
@@ -114,7 +114,7 @@ members are defined: · 113 unmodified lines
114struct file_system_type {114struct file_system_type {
115 const char *name;115 const char *name;
116 int fs_flags;116 int fs_flags;
117 struct dentry (*mount) (struct file_system_type *, int,117 struct dentry *(*mount) (struct file_system_type *, int,
118 const char *, void *);118 const char *, void *);
119 void (*kill_sb) (struct super_block *);119 void (*kill_sb) (struct super_block *);
120 struct module *owner;120 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
271power management, such as by powering down unused chip sectors and, more271power management, such as by powering down unused chip sectors and, more
272easily, gating off unused clocks.272easily, gating off unused clocks.
273 273
274Note that requesting a GPIO does NOT cause it to be configured in any274For GPIOs that use pins known to the pinctrl subsystem, that subsystem should
275way; it just marks that GPIO as in use. Separate code must handle any275be informed of their use; a gpiolib driver's .request() operation may call
276pin setup (e.g. controlling which pin the GPIO uses, pullup/pulldown).276pinctrl_request_gpio(), and a gpiolib driver's .free() operation may call
277pinctrl_free_gpio(). The pinctrl subsystem allows a pinctrl_request_gpio()
278to succeed concurrently with a pin or pingroup being "owned" by a device for
279pin multiplexing.
280
281Any programming of pin multiplexing hardware that is needed to route the
282GPIO signal to the appropriate pin should occur within a GPIO driver's
283.direction_input() or .direction_output() operations, and occur after any
284setup of an output GPIO's value. This allows a glitch-free migration from a
285pin's special function to GPIO. This is sometimes required when using a GPIO
286to implement a workaround on signals typically driven by a non-GPIO HW block.
287
288Some platforms allow some or all GPIO signals to be routed to different pins.
289Similarly, other aspects of the GPIO or pin may need to be configured, such as
290pullup/pulldown. Platform software should arrange that any such details are
291configured prior to gpio_request() being called for those GPIOs, e.g. using
292the pinctrl subsystem's mapping table, so that GPIO users need not be aware
293of these details.
277 294
278Also note that it's your responsibility to have stopped using a GPIO295Also note that it's your responsibility to have stopped using a GPIO
279before you free it.296before you free it.
@@ -302,6 +319,8 @@ where 'flags' is currently defined to specify the following properties: · 22 unmodified lines
302 319
303 * GPIOF_INIT_LOW - as output, set initial level to LOW320 * GPIOF_INIT_LOW - as output, set initial level to LOW
304 * GPIOF_INIT_HIGH - as output, set initial level to HIGH321 * 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.
305 324
306since GPIOF_INIT_* are only valid when configured as output, so group valid325since GPIOF_INIT_* are only valid when configured as output, so group valid
307combinations as:326combinations as:
@@ -310,8 +329,19 @@ combinations as: · 2 unmodified lines
310 * GPIOF_OUT_INIT_LOW - configured as output, initial level LOW329 * GPIOF_OUT_INIT_LOW - configured as output, initial level LOW
311 * GPIOF_OUT_INIT_HIGH - configured as output, initial level HIGH330 * GPIOF_OUT_INIT_HIGH - configured as output, initial level HIGH
312 331
313In the future, these flags can be extended to support more properties such332When setting the flag as GPIOF_OPEN_DRAIN then it will assume that pins is
314as open-drain status.333open drain type. Such pins will not be driven to 1 in output mode. It is
334require to connect pull-up on such pins. By enabling this flag, gpio lib will
335make the direction to input when it is asked to set value of 1 in output mode
336to make the pin HIGH. The pin is make to LOW by driving value 0 in output mode.
337
338When setting the flag as GPIOF_OPEN_SOURCE then it will assume that pins is
339open source type. Such pins will not be driven to 0 in output mode. It is
340require to connect pull-down on such pin. By enabling this flag, gpio lib will
341make the direction to input when it is asked to set value of 0 in output mode
342to make the pin LOW. The pin is make to HIGH by driving value 1 in output mode.
343
344In the future, these flags can be extended to support more properties.
315 345
316Further more, to ease the claim/release of multiple GPIOs, 'struct gpio' is346Further more, to ease the claim/release of multiple GPIOs, 'struct gpio' is
317introduced to encapsulate all three fields as:347introduced to encapsulate all three fields as:
Documentation/hwmon/k10temp+1−1
@@ -11,7 +11,7 @@ Supported chips: · 10 unmodified lines
11 Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)11 Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)
12* AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series)12* AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series)
13* AMD Family 14h processors: "Brazos" (C/E/G/Z-Series)13* 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"
15 15
16 Prefix: 'k10temp'16 Prefix: 'k10temp'
17 Addresses scanned: PCI space17 Addresses scanned: PCI space
Documentation/hwmon/lm90+4−0
@@ -118,6 +118,10 @@ Supported chips: · 117 unmodified lines
118 Addresses scanned: I2C 0x48 through 0x4F118 Addresses scanned: I2C 0x48 through 0x4F
119 Datasheet: Publicly available at NXP website119 Datasheet: Publicly available at NXP website
120 http://ics.nxp.com/products/interface/datasheet/sa56004x.pdf120 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
121 125
122Author: Jean Delvare <khali@linux-fr.org>126Author: Jean Delvare <khali@linux-fr.org>
123 127
Documentation/hwmon/mc13783-adc+37−13
@@ -3,8 +3,11 @@ Kernel driver mc13783-adc · 2 unmodified lines
3 3
4Supported chips:4Supported chips:
5 * Freescale Atlas MC137835 * Freescale Atlas MC13783
6 Prefix: 'mc13783_adc'6 Prefix: 'mc13783'
7 Datasheet: http://www.freescale.com/files/rf_if/doc/data_sheet/MC13783.pdf?fsrch=17 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
8 11
9Authors:12Authors:
10 Sascha Hauer <s.hauer@pengutronix.de>13 Sascha Hauer <s.hauer@pengutronix.de>
@@ -13,20 +16,21 @@ Authors: · 2 unmodified lines
13Description16Description
14-----------17-----------
15 18
16The Freescale MC13783 is a Power Management and Audio Circuit. Among19The Freescale MC13783 and MC13892 are Power Management and Audio Circuits.
17other things it contains a 10-bit A/D converter. The converter has 1620Among other things they contain a 10-bit A/D converter. The converter has 16
18channels which can be used in different modes.21(MC13783) resp. 12 (MC13892) channels which can be used in different modes. The
19The A/D converter has a resolution of 2.25mV. Channels 0-4 have22A/D converter has a resolution of 2.25mV.
20a dedicated meaning with chip internal scaling applied. Channels 5-7
21can be used as general purpose inputs or alternatively in a dedicated
22mode. Channels 12-15 are occupied by the touchscreen if it's active.
23 23
24Currently the driver only supports channels 2 and 5-15 with no alternative24Some channels can be used as General Purpose inputs or in a dedicated mode with
25modes for channels 5-7.25a chip internal scaling applied .
26 26
27See this table for the meaning of the different channels and their chip27Currently the driver only supports the Application Supply channel (BP / BPSNS),
28internal scaling:28the General Purpose inputs and touchscreen.
29 29
30See the following tables for the meaning of the different channels and their
31chip internal scaling:
32
33MC13783:
30Channel Signal Input Range Scaling34Channel Signal Input Range Scaling
31-------------------------------------------------------------------------------35-------------------------------------------------------------------------------
320 Battery Voltage (BATT) 2.50 - 4.65V -2.40V360 Battery Voltage (BATT) 2.50 - 4.65V -2.40V
@@ -34,7 +38,7 @@ Channel Signal Input Range Scaling · 1 unmodified line
342 Application Supply (BP) 2.50 - 4.65V -2.40V382 Application Supply (BP) 2.50 - 4.65V -2.40V
353 Charger Voltage (CHRGRAW) 0 - 10V / /5393 Charger Voltage (CHRGRAW) 0 - 10V / /5
36 0 - 20V /1040 0 - 20V /10
374 Charger Current (CHRGISNSP-CHRGISNSN) -0.25V - 0.25V x4414 Charger Current (CHRGISNSP-CHRGISNSN) -0.25 - 0.25V x4
385 General Purpose ADIN5 / Battery Pack Thermistor 0 - 2.30V No425 General Purpose ADIN5 / Battery Pack Thermistor 0 - 2.30V No
396 General Purpose ADIN6 / Backup Voltage (LICELL) 0 - 2.30V / No /436 General Purpose ADIN6 / Backup Voltage (LICELL) 0 - 2.30V / No /
40 1.50 - 3.50V -1.20V44 1.50 - 3.50V -1.20V
@@ -48,3 +52,23 @@ Channel Signal Input Range Scaling · 7 unmodified lines
4813 General Purpose TSX2 / Touchscreen X-plate 2 0 - 2.30V No5213 General Purpose TSX2 / Touchscreen X-plate 2 0 - 2.30V No
4914 General Purpose TSY1 / Touchscreen Y-plate 1 0 - 2.30V No5314 General Purpose TSY1 / Touchscreen Y-plate 1 0 - 2.30V No
5015 General Purpose TSY2 / Touchscreen Y-plate 2 0 - 2.30V No5415 General Purpose TSY2 / Touchscreen Y-plate 2 0 - 2.30V No
55
56MC13892:
57Channel Signal Input Range Scaling
58-------------------------------------------------------------------------------
590 Battery Voltage (BATT) 0 - 4.8V /2
601 Battery Current (BATT - BATTISNSCC) -60 - 60 mV x20
612 Application Supply (BPSNS) 0 - 4.8V /2
623 Charger Voltage (CHRGRAW) 0 - 12V / /5
63 0 - 20V /10
644 Charger Current (CHRGISNS-BPSNS) / -0.3 - 0.3V / x4 /
65 Touchscreen X-plate 1 0 - 2.4V No
665 General Purpose ADIN5 / Battery Pack Thermistor 0 - 2.4V No
676 General Purpose ADIN6 / Backup Voltage (LICELL) 0 - 2.4V / No
68 Backup Voltage (LICELL) 0 - 3.6V x2/3
697 General Purpose ADIN7 / UID / Die Temperature 0 - 2.4V / No /
70 0 - 4.8V /2
7112 General Purpose TSX1 / Touchscreen X-plate 1 0 - 2.4V No
7213 General Purpose TSX2 / Touchscreen X-plate 2 0 - 2.4V No
7314 General Purpose TSY1 / Touchscreen Y-plate 1 0 - 2.4V No
7415 General Purpose TSY2 / Touchscreen Y-plate 2 0 - 2.4V No
Documentation/hwmon/mcp3021+22−0
@@ -0,0 +1,22 @@
1Kernel driver MCP3021
2======================
3
4Supported chips:
5 * Microchip Technology MCP3021
6 Prefix: 'mcp3021'
7 Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/21805a.pdf
8
9Author: Mingkai Hu
10
11Description
12-----------
13
14This driver implements support for the Microchip Technology MCP3021 chip.
15
16The Microchip Technology Inc. MCP3021 is a successive approximation A/D
17converter (ADC) with 10-bit resolution.
18This device provides one single-ended input with very low power consumption.
19Communication to the MCP3021 is performed using a 2-wire I2C compatible
20interface. Standard (100 kHz) and Fast (400 kHz) I2C modes are available.
21The default I2C device address is 0x4d (contact the Microchip factory for
22additional address options).
Documentation/i2c/busses/i2c-i801+1−0
@@ -20,6 +20,7 @@ Supported adapters: · 19 unmodified lines
20 * Intel Patsburg (PCH)20 * Intel Patsburg (PCH)
21 * Intel DH89xxCC (PCH)21 * Intel DH89xxCC (PCH)
22 * Intel Panther Point (PCH)22 * Intel Panther Point (PCH)
23 * Intel Lynx Point (PCH)
23 Datasheets: Publicly available at the Intel website24 Datasheets: Publicly available at the Intel website
24 25
25On Intel Patsburg and later chipsets, both the normal host SMBus controller26On 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
28parameter to your boot command line:28parameter to your boot command line:
29 scx200_acb.base=0x810,0x82029 scx200_acb.base=0x810,0x820
30If the scx200_acb driver is built as a module, add the following line to30If the scx200_acb driver is built as a module, add the following line to
31the file /etc/modprobe.conf instead:31a configuration file in /etc/modprobe.d/ instead:
32 options scx200_acb base=0x810,0x82032 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
169 169
170 alias block-major-3 ide-probe170 alias block-major-3 ide-probe
171 171
172to /etc/modprobe.conf.172to a configuration file in /etc/modprobe.d/.
173 173
174When ide.c is used as a module, you can pass command line parameters to the174When ide.c is used as a module, you can pass command line parameters to the
175driver using the "options=" keyword to insmod, while replacing any ',' with175driver 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
250a USB keyboard works and is correctly connected to the kernel keyboard250a USB keyboard works and is correctly connected to the kernel keyboard
251driver. 251driver.
252 252
253 Doing a cat /dev/input/mouse0 (c, 13, 32) will verify that a mouse253 Doing a "cat /dev/input/mouse0" (c, 13, 32) will verify that a mouse
254is also emulated, characters should appear if you move it.254is also emulated; characters should appear if you move it.
255 255
256 You can test the joystick emulation with the 'jstest' utility,256 You can test the joystick emulation with the 'jstest' utility,
257available in the joystick package (see Documentation/input/joystick.txt).257available 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
225'j' 00-3F linux/joystick.h225'j' 00-3F linux/joystick.h
226'k' 00-0F linux/spi/spidev.h conflict!226'k' 00-0F linux/spi/spidev.h conflict!
227'k' 00-05 video/kyro.h conflict!227'k' 00-05 video/kyro.h conflict!
228'k' 10-17 linux/hsi/hsi_char.h HSI character device
228'l' 00-3F linux/tcfs_fs.h transparent cryptographic file system229'l' 00-3F linux/tcfs_fs.h transparent cryptographic file system
229 <http://web.archive.org/web/*/http://mikonos.dia.unisa.it/tcfs>230 <http://web.archive.org/web/*/http://mikonos.dia.unisa.it/tcfs>
230'l' 40-7F linux/udf_fs_i.h in development:231'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
97 2.5.): 1=on (default), 0=off97 2.5.): 1=on (default), 0=off
98 98
99 Depending on your distribution you may want to create a separate module99 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 a100 configuration file like /etc/modprobe.d/gigaset.conf for these.
101 custom file like /etc/modprobe.conf.local.
102 101
1032.2. Device nodes for user space programs1022.2. Device nodes for user space programs
104 ------------------------------------103 ------------------------------------
@@ -212,8 +211,8 @@ GigaSet 307x Device Driver · 107 unmodified lines
212 211
213 options ppp_async flag_time=0212 options ppp_async flag_time=0
214 213
215 to an appropriate module configuration file, like /etc/modprobe.d/gigaset214 to an appropriate module configuration file, like
216 or /etc/modprobe.conf.local.215 /etc/modprobe.d/gigaset.conf.
217 216
218 Unimodem mode is needed for making some devices [e.g. SX100] work which217 Unimodem mode is needed for making some devices [e.g. SX100] work which
219 do not support the regular Gigaset command set. If debug output (see218 do not support the regular Gigaset command set. If debug output (see
@@ -237,8 +236,8 @@ GigaSet 307x Device Driver · 17 unmodified lines
237 modprobe usb_gigaset startmode=0236 modprobe usb_gigaset startmode=0
238 or by adding a line like237 or by adding a line like
239 options usb_gigaset startmode=0238 options usb_gigaset startmode=0
240 to an appropriate module configuration file, like /etc/modprobe.d/gigaset239 to an appropriate module configuration file, like
241 or /etc/modprobe.conf.local.240 /etc/modprobe.d/gigaset.conf
242 241
2432.6. Call-ID (CID) mode2422.6. Call-ID (CID) mode
244 ------------------243 ------------------
@@ -310,7 +309,7 @@ GigaSet 307x Device Driver · 65 unmodified lines
310 309
311 options isdn dialtimeout=15310 options isdn dialtimeout=15
312 311
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.
314 313
315 Problem:314 Problem:
316 The isdnlog program emits error messages or just doesn't work.315 The isdnlog program emits error messages or just doesn't work.
@@ -350,8 +349,7 @@ GigaSet 307x Device Driver · 33 unmodified lines
350 The initial value can be set using the debug parameter when loading the349 The initial value can be set using the debug parameter when loading the
351 module "gigaset", e.g. by adding a line350 module "gigaset", e.g. by adding a line
352 options gigaset debug=0351 options gigaset debug=0
353 to your module configuration file, eg. /etc/modprobe.d/gigaset or352 to your module configuration file, eg. /etc/modprobe.d/gigaset.conf
354 /etc/modprobe.conf.local.
355 353
356 Generated debugging information can be found354 Generated debugging information can be found
357 - as output of the command355 - 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
28 28
29 grep "(NEW)" conf.new29 grep "(NEW)" conf.new
30 30
31to see the new config symbols or you can 'diff' the previous and31to see the new config symbols or you can use diffconfig to see the
32new .config files to see the differences:32differences between the previous and new .config files:
33 33
34 diff .config.old .config | less34 scripts/diffconfig .config.old .config | less
35
36(Yes, we need something better here.)
37 35
38______________________________________________________________________36______________________________________________________________________
39Environment variables for '*config'37Environment 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
1086 no_x2apic_optout1086 no_x2apic_optout
1087 BIOS x2APIC opt-out request will be ignored1087 BIOS x2APIC opt-out request will be ignored
1088 1088
1089 inttest= [IA-64]
1090
1091 iomem= Disable strict checking of access to MMIO memory1089 iomem= Disable strict checking of access to MMIO memory
1092 strict regions from userspace.1090 strict regions from userspace.
1093 relaxed1091 relaxed
@@ -1701,6 +1699,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 607 unmodified lines
1701 The default is to send the implementation identification1699 The default is to send the implementation identification
1702 information.1700 information.
1703 1701
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.
1704 1708
1705 objlayoutdriver.osd_login_prog=1709 objlayoutdriver.osd_login_prog=
1706 [NFS] [OBJLAYOUT] sets the pathname to the program which1710 [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
1871 shutdown the other cpus. Instead use the REBOOT_VECTOR1875 shutdown the other cpus. Instead use the REBOOT_VECTOR
1872 irq.1876 irq.
1873 1877
1878 nomodule Disable module load
1879
1874 nopat [X86] Disable PAT (page attribute table extension of1880 nopat [X86] Disable PAT (page attribute table extension of
1875 pagetables) support.1881 pagetables) support.
1876 1882
@@ -2147,8 +2153,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 270 unmodified lines
2147 the default.2153 the default.
2148 off: Turn ECRC off2154 off: Turn ECRC off
2149 on: Turn ECRC on.2155 on: Turn ECRC on.
2150 realloc reallocate PCI resources if allocations done by BIOS2156 realloc= Enable/disable reallocating PCI bridge resources
2151 are erroneous.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.
2152 2164
2153 pcie_aspm= [PCIE] Forcibly enable or disable PCIe Active State Power2165 pcie_aspm= [PCIE] Forcibly enable or disable PCIe Active State Power
2154 Management.2166 Management.
@@ -2156,6 +2168,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 1 unmodified line
2156 force Enable ASPM even on devices that claim not to support it.2168 force Enable ASPM even on devices that claim not to support it.
2157 WARNING: Forcing ASPM on may cause system lockups.2169 WARNING: Forcing ASPM on may cause system lockups.
2158 2170
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
2159 pcie_ports= [PCIE] PCIe ports handling:2175 pcie_ports= [PCIE] PCIe ports handling:
2160 auto Ask the BIOS whether or not to use native PCIe services2176 auto Ask the BIOS whether or not to use native PCIe services
2161 associated with PCIe ports (PME, hot-plug, AER). Use2177 associated with PCIe ports (PME, hot-plug, AER). Use
Documentation/laptops/asus-laptop.txt+1−1
@@ -45,7 +45,7 @@ Status · 44 unmodified lines
45Usage45Usage
46-----46-----
47 47
48 Try "modprobe asus_acpi". Check your dmesg (simply type dmesg). You should48 Try "modprobe asus-laptop". Check your dmesg (simply type dmesg). You should
49 see some lines like this :49 see some lines like this :
50 50
51 Asus Laptop Extras version 0.4251 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
17devices are created by the driver. Additionally, loading the driver with the17devices are created by the driver. Additionally, loading the driver with the
18debug option will report all events in the kernel log.18debug option will report all events in the kernel log.
19 19
20The "scancodes" passed to the input system (that can be remapped with udev)
21are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c
22module. For example the "FN/E" key combination (EJECTCD on some models)
23generates the scancode 20 (0x14).
24
20Backlight control:25Backlight control:
21------------------26------------------
22If your laptop model supports it, you will find sysfs files in the27If 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
110-----------110-----------
111 111
112In order to automatically load the sonypi module on use, you can put those112In order to automatically load the sonypi module on use, you can put those
113lines in your /etc/modprobe.conf file:113lines a configuration file in /etc/modprobe.d/:
114 114
115 alias char-major-10-250 sonypi115 alias char-major-10-250 sonypi
116 options sonypi minor=250116 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
38 /sbin/modprobe binfmt_misc38 /sbin/modprobe binfmt_misc
39 # Some distributions, like Fedora Core, perform39 # Some distributions, like Fedora Core, perform
40 # the following command automatically when the40 # 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).
42 # Thus, it is possible that the following line43 # Thus, it is possible that the following line
43 # is not needed at all. Look at /etc/modprobe.conf44 # is not needed at all.
44 # to check whether this is applicable or not.45 mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
45 mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
46fi46fi
47 47
48# Register support for .NET CLR binaries48# 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
93modems it should access at which ports. This can be done with the setbaycom93modems it should access at which ports. This can be done with the setbaycom
94utility. If you are only using one modem, you can also configure the94utility. If you are only using one modem, you can also configure the
95driver from the insmod command line (or by means of an option line in95driver from the insmod command line (or by means of an option line in
96/etc/modprobe.conf).96/etc/modprobe.d/*.conf).
97 97
98Examples:98Examples:
99 modprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=499 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
173 173
174 Module options may be given as command line arguments to the174 Module options may be given as command line arguments to the
175insmod or modprobe command, but are usually specified in either the175insmod or modprobe command, but are usually specified in either the
176/etc/modules.conf or /etc/modprobe.conf configuration file, or in a176/etc/modrobe.d/*.conf configuration files, or in a distro-specific
177distro-specific configuration file (some of which are detailed in the next177configuration file (some of which are detailed in the next section).
178section).
179 178
180 Details on bonding support for sysfs is provided in the179 Details on bonding support for sysfs is provided in the
181"Configuring Bonding Manually via Sysfs" section, below.180"Configuring Bonding Manually via Sysfs" section, below.
@@ -1021,7 +1020,7 @@ ifcfg-bondX files. · 839 unmodified lines
1021 1020
1022 Because the sysconfig scripts supply the bonding module1021 Because the sysconfig scripts supply the bonding module
1023options in the ifcfg-bondX file, it is not necessary to add them to1022options in the ifcfg-bondX file, it is not necessary to add them to
1024the system /etc/modules.conf or /etc/modprobe.conf configuration file.1023the system /etc/modules.d/*.conf configuration files.
1025 1024
10263.2 Configuration with Initscripts Support10253.2 Configuration with Initscripts Support
1027------------------------------------------1026------------------------------------------
@@ -1098,15 +1097,13 @@ queried targets, e.g., · 70 unmodified lines
1098 arp_ip_target=+192.168.1.1 arp_ip_target=+192.168.1.21097 arp_ip_target=+192.168.1.1 arp_ip_target=+192.168.1.2
1099 1098
1100 is the proper syntax to specify multiple targets. When specifying1099 is the proper syntax to specify multiple targets. When specifying
1101options via BONDING_OPTS, it is not necessary to edit /etc/modules.conf or1100options via BONDING_OPTS, it is not necessary to edit /etc/modprobe.d/*.conf.
1102/etc/modprobe.conf.
1103 1101
1104 For even older versions of initscripts that do not support1102 For even older versions of initscripts that do not support
1105BONDING_OPTS, it is necessary to edit /etc/modules.conf (or1103BONDING_OPTS, it is necessary to edit /etc/modprobe.d/*.conf, depending upon
1106/etc/modprobe.conf, depending upon your distro) to load the bonding module1104your distro) to load the bonding module with your desired options when the
1107with your desired options when the bond0 interface is brought up. The1105bond0 interface is brought up. The following lines in /etc/modprobe.d/*.conf
1108following lines in /etc/modules.conf (or modprobe.conf) will load the1106will load the bonding module, and select its options:
1109bonding module, and select its options:
1110 1107
1111alias bond0 bonding1108alias bond0 bonding
1112options bond0 mode=balance-alb miimon=1001109options bond0 mode=balance-alb miimon=100
@@ -1152,7 +1149,7 @@ knowledge of bonding. One such distro is SuSE Linux Enterprise Server · 39 unmodified lines
1152version 8.1149version 8.
1153 1150
1154 The general method for these systems is to place the bonding1151 The general method for these systems is to place the bonding
1155module parameters into /etc/modules.conf or /etc/modprobe.conf (as1152module parameters into a config file in /etc/modprobe.d/ (as
1156appropriate for the installed distro), then add modprobe and/or1153appropriate for the installed distro), then add modprobe and/or
1157ifenslave commands to the system's global init script. The name of1154ifenslave commands to the system's global init script. The name of
1158the global init script differs; for sysconfig, it is1155the global init script differs; for sysconfig, it is
@@ -1228,7 +1225,7 @@ network initialization scripts. · 69 unmodified lines
1228specify a different name for each instance (the module loading system1225specify a different name for each instance (the module loading system
1229requires that every loaded module, even multiple instances of the same1226requires that every loaded module, even multiple instances of the same
1230module, have a unique name). This is accomplished by supplying multiple1227module, have a unique name). This is accomplished by supplying multiple
1231sets of bonding options in /etc/modprobe.conf, for example:1228sets of bonding options in /etc/modprobe.d/*.conf, for example:
1232 1229
1233alias bond0 bonding1230alias bond0 bonding
1234options bond0 -o bond0 mode=balance-rr miimon=1001231options bond0 -o bond0 mode=balance-rr miimon=100
@@ -1793,8 +1790,8 @@ route additions may cause trouble. · 558 unmodified lines
1793 On systems with network configuration scripts that do not1790 On systems with network configuration scripts that do not
1794associate physical devices directly with network interface names (so1791associate physical devices directly with network interface names (so
1795that the same physical device always has the same "ethX" name), it may1792that the same physical device always has the same "ethX" name), it may
1796be necessary to add some special logic to either /etc/modules.conf or1793be necessary to add some special logic to config files in
1797/etc/modprobe.conf (depending upon which is installed on the system).1794/etc/modprobe.d/.
1798 1795
1799 For example, given a modules.conf containing the following:1796 For example, given a modules.conf containing the following:
1800 1797
@@ -1821,20 +1818,15 @@ add above bonding e1000 tg3 · 20 unmodified lines
1821bonding is loaded. This command is fully documented in the1818bonding is loaded. This command is fully documented in the
1822modules.conf manual page.1819modules.conf manual page.
1823 1820
1824 On systems utilizing modprobe.conf (or modprobe.conf.local),1821 On systems utilizing modprobe an equivalent problem can occur.
1825an equivalent problem can occur. In this case, the following can be1822In this case, the following can be added to config files in
1826added to modprobe.conf (or modprobe.conf.local, as appropriate), as1823/etc/modprobe.d/ as:
1827follows (all on one line; it has been split here for clarity):
1828 1824
1829install bonding /sbin/modprobe tg3; /sbin/modprobe e1000;1825softdep bonding pre: tg3 e1000
1830 /sbin/modprobe --ignore-install bonding
1831 1826
1832 This will, when loading the bonding module, rather than1827 This will load tg3 and e1000 modules before loading the bonding one.
1833performing the normal action, instead execute the provided command.1828Full documentation on this can be found in the modprobe.d and modprobe
1834This command loads the device drivers in the order needed, then calls1829manual pages.
1835modprobe with --ignore-install to cause the normal action to then take
1836place. Full documentation on this can be found in the modprobe.conf
1837and modprobe manual pages.
1838 1830
18398.3. Painfully Slow Or No Failed Link Detection By Miimon18318.3. Painfully Slow Or No Failed Link Detection By Miimon
1840---------------------------------------------------------1832---------------------------------------------------------
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
45"ifconfig". If tested ok, continue the next step.45"ifconfig". If tested ok, continue the next step.
46 46
474. cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net474. cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net
485. Add the following line to /etc/modprobe.conf:485. Add the following line to /etc/modprobe.d/dl2k.conf:
49 alias eth0 dl2k49 alias eth0 dl2k
506. Run "netconfig" or "netconf" to create configuration script ifcfg-eth0506. Run depmod to updated module indexes.
517. Run "netconfig" or "netconf" to create configuration script ifcfg-eth0
51 located at /etc/sysconfig/network-scripts or create it manually.52 located at /etc/sysconfig/network-scripts or create it manually.
52 [see - Configuration Script Sample]53 [see - Configuration Script Sample]
537. Driver will automatically load and configure at next boot time.548. Driver will automatically load and configure at next boot time.
54 55
55Compiling the Driver56Compiling the Driver
56====================57====================
@@ -154,8 +155,8 @@ Installing the Driver · 97 unmodified lines
154 -----------------155 -----------------
155 1. Copy dl2k.o to the network modules directory, typically156 1. Copy dl2k.o to the network modules directory, typically
156 /lib/modules/2.x.x-xx/net or /lib/modules/2.x.x/kernel/drivers/net.157 /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.conf158 2. Locate the boot module configuration file, most commonly in the
158 or modules.conf (for 2.4) in the /etc directory. Add the following lines:159 /etc/modprobe.d/ directory. Add the following lines:
159 160
160 alias ethx dl2k161 alias ethx dl2k
161 options dl2k <optional parameters>162 options dl2k <optional parameters>
Documentation/networking/driver.txt+15−16
@@ -2,16 +2,16 @@ Document about softnet driver issues · 1 unmodified line
2 2
3Transmit path guidelines:3Transmit path guidelines:
4 4
51) The hard_start_xmit method must never return '1' under any51) The ndo_start_xmit method must not return NETDEV_TX_BUSY under
6 normal circumstances. It is considered a hard error unless6 any normal circumstances. It is considered a hard error unless
7 there is no way your device can tell ahead of time when it's7 there is no way your device can tell ahead of time when it's
8 transmit function will become busy.8 transmit function will become busy.
9 9
10 Instead it must maintain the queue properly. For example,10 Instead it must maintain the queue properly. For example,
11 for a driver implementing scatter-gather this means:11 for a driver implementing scatter-gather this means:
12 12
13 static int drv_hard_start_xmit(struct sk_buff *skb,13 static netdev_tx_t drv_hard_start_xmit(struct sk_buff *skb,
14 struct net_device *dev)14 struct net_device *dev)
15 {15 {
16 struct drv *dp = netdev_priv(dev);16 struct drv *dp = netdev_priv(dev);
17 17
@@ -23,7 +23,7 @@ Transmit path guidelines: · 5 unmodified lines
23 unlock_tx(dp);23 unlock_tx(dp);
24 printk(KERN_ERR PFX "%s: BUG! Tx Ring full when queue awake!\n",24 printk(KERN_ERR PFX "%s: BUG! Tx Ring full when queue awake!\n",
25 dev->name);25 dev->name);
26 return 1;26 return NETDEV_TX_BUSY;
27 }27 }
28 28
29 ... queue packet to card ...29 ... queue packet to card ...
@@ -35,6 +35,7 @@ Transmit path guidelines: · 5 unmodified lines
35 ...35 ...
36 unlock_tx(dp);36 unlock_tx(dp);
37 ...37 ...
38 return NETDEV_TX_OK;
38 }39 }
39 40
40 And then at the end of your TX reclamation event handling:41 And then at the end of your TX reclamation event handling:
@@ -58,15 +59,12 @@ Transmit path guidelines: · 17 unmodified lines
58 TX_BUFFS_AVAIL(dp) > 0)59 TX_BUFFS_AVAIL(dp) > 0)
59 netif_wake_queue(dp->dev);60 netif_wake_queue(dp->dev);
60 61
612) Do not forget to update netdev->trans_start to jiffies after622) An ndo_start_xmit method must not modify the shared parts of a
62 each new tx packet is given to the hardware.
63
643) A hard_start_xmit method must not modify the shared parts of a
65 cloned SKB.63 cloned SKB.
66 64
674) Do not forget that once you return 0 from your hard_start_xmit653) Do not forget that once you return NETDEV_TX_OK from your
68 method, it is your driver's responsibility to free up the SKB66 ndo_start_xmit method, it is your driver's responsibility to free
69 and in some finite amount of time.67 up the SKB and in some finite amount of time.
70 68
71 For example, this means that it is not allowed for your TX69 For example, this means that it is not allowed for your TX
72 mitigation scheme to let TX packets "hang out" in the TX70 mitigation scheme to let TX packets "hang out" in the TX
@@ -74,8 +72,9 @@ Transmit path guidelines: · 1 unmodified line
74 This error can deadlock sockets waiting for send buffer room72 This error can deadlock sockets waiting for send buffer room
75 to be freed up.73 to be freed up.
76 74
77 If you return 1 from the hard_start_xmit method, you must not keep75 If you return NETDEV_TX_BUSY from the ndo_start_xmit method, you
78 any reference to that SKB and you must not attempt to free it up.76 must not keep any reference to that SKB and you must not attempt
77 to free it up.
79 78
80Probing guidelines:79Probing guidelines:
81 80
@@ -85,10 +84,10 @@ Probing guidelines: · 3 unmodified lines
85 84
86Close/stop guidelines:85Close/stop guidelines:
87 86
881) After the dev->stop routine has been called, the hardware must871) After the ndo_stop routine has been called, the hardware must
89 not receive or transmit any data. All in flight packets must88 not receive or transmit any data. All in flight packets must
90 be aborted. If necessary, poll or wait for completion of 89 be aborted. If necessary, poll or wait for completion of
91 any reset commands.90 any reset commands.
92 91
932) The dev->stop routine will be called by unregister_netdevice922) The ndo_stop routine will be called by unregister_netdevice
94 if device is still UP.93 if device is still UP.
Documentation/networking/e100.txt+3−3
@@ -94,8 +94,8 @@ Additional Configurations · 93 unmodified lines
94 94
95 Configuring a network driver to load properly when the system is started is95 Configuring a network driver to load properly when the system is started is
96 distribution dependent. Typically, the configuration process involves adding96 distribution dependent. Typically, the configuration process involves adding
97 an alias line to /etc/modules.conf or /etc/modprobe.conf as well as editing97 an alias line to /etc/modprobe.d/*.conf as well as editing other system
98 other system startup scripts and/or configuration files. Many popular Linux98 startup scripts and/or configuration files. Many popular Linux
99 distributions ship with tools to make these changes for you. To learn the99 distributions ship with tools to make these changes for you. To learn the
100 proper way to configure a network device for your system, refer to your100 proper way to configure a network device for your system, refer to your
101 distribution documentation. If during this process you are asked for the101 distribution documentation. If during this process you are asked for the
@@ -103,7 +103,7 @@ Additional Configurations · 1 unmodified line
103 PRO/100 Family of Adapters is e100.103 PRO/100 Family of Adapters is e100.
104 104
105 As an example, if you install the e100 driver for two PRO/100 adapters105 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/
107 107
108 alias eth0 e100108 alias eth0 e100
109 alias eth1 e100109 alias eth1 e100
Documentation/networking/ip-sysctl.txt+2−9
@@ -604,15 +604,8 @@ IP Variables: · 603 unmodified lines
604ip_local_port_range - 2 INTEGERS604ip_local_port_range - 2 INTEGERS
605 Defines the local port range that is used by TCP and UDP to605 Defines the local port range that is used by TCP and UDP to
606 choose the local port. The first number is the first, the606 choose the local port. The first number is the first, the
607 second the last local port number. Default value depends on607 second the last local port number. The default values are
608 amount of memory available on the system:608 32768 and 61000 respectively.
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.
616 609
617ip_local_reserved_ports - list of comma separated ranges610ip_local_reserved_ports - list of comma separated ranges
618 Specify the ports which are reserved for known third-party611 Specify the ports which are reserved for known third-party
Documentation/networking/ipv6.txt+3−3
@@ -2,9 +2,9 @@ · 1 unmodified line
2Options for the ipv6 module are supplied as parameters at load time.2Options for the ipv6 module are supplied as parameters at load time.
3 3
4Module options may be given as command line arguments to the insmod4Module options may be given as command line arguments to the insmod
5or modprobe command, but are usually specified in either the5or modprobe command, but are usually specified in either
6/etc/modules.conf or /etc/modprobe.conf configuration file, or in a6/etc/modules.d/*.conf configuration files, or in a distro-specific
7distro-specific configuration file.7configuration file.
8 8
9The available ipv6 module parameters are listed below. If a parameter9The available ipv6 module parameters are listed below. If a parameter
10is not specified the default value is used.10is not specified the default value is used.
Documentation/networking/ixgb.txt+3−3
@@ -274,9 +274,9 @@ Additional Configurations · 273 unmodified lines
274 -------------------------------------------------274 -------------------------------------------------
275 Configuring a network driver to load properly when the system is started is275 Configuring a network driver to load properly when the system is started is
276 distribution dependent. Typically, the configuration process involves adding276 distribution dependent. Typically, the configuration process involves adding
277 an alias line to /etc/modprobe.conf as well as editing other system startup277 an alias line to files in /etc/modprobe.d/ as well as editing other system
278 scripts and/or configuration files. Many popular Linux distributions ship278 startup scripts and/or configuration files. Many popular Linux distributions
279 with tools to make these changes for you. To learn the proper way to279 ship with tools to make these changes for you. To learn the proper way to
280 configure a network device for your system, refer to your distribution280 configure a network device for your system, refer to your distribution
281 documentation. If during this process you are asked for the driver or module281 documentation. If during this process you are asked for the driver or module
282 name, the name for the Linux Base Driver for the Intel 10GbE Family of282 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
25 25
26If you load the driver as a module, you can pass the parameters "io=",26If you load the driver as a module, you can pass the parameters "io=",
27"irq=", and "dma=" on the command line with insmod or modprobe, or add27"irq=", and "dma=" on the command line with insmod or modprobe, or add
28them as options in /etc/modprobe.conf:28them as options in a configuration file in /etc/modprobe.d/ directory:
29 29
30 alias lt0 ltpc # autoload the module when the interface is configured30 alias lt0 ltpc # autoload the module when the interface is configured
31 options ltpc io=0x240 irq=9 dma=131 options ltpc io=0x240 irq=9 dma=1
Documentation/networking/netdevices.txt+12−13
@@ -47,26 +47,25 @@ packets is preferred. · 46 unmodified lines
47 47
48struct net_device synchronization rules48struct net_device synchronization rules
49=======================================49=======================================
50dev->open:50ndo_open:
51 Synchronization: rtnl_lock() semaphore.51 Synchronization: rtnl_lock() semaphore.
52 Context: process52 Context: process
53 53
54dev->stop:54ndo_stop:
55 Synchronization: rtnl_lock() semaphore.55 Synchronization: rtnl_lock() semaphore.
56 Context: process56 Context: process
57 Note1: netif_running() is guaranteed false57 Note: netif_running() is guaranteed false
58 Note2: dev->poll() is guaranteed to be stopped
59 58
60dev->do_ioctl:59ndo_do_ioctl:
61 Synchronization: rtnl_lock() semaphore.60 Synchronization: rtnl_lock() semaphore.
62 Context: process61 Context: process
63 62
64dev->get_stats:63ndo_get_stats:
65 Synchronization: dev_base_lock rwlock.64 Synchronization: dev_base_lock rwlock.
66 Context: nominally process, but don't sleep inside an rwlock65 Context: nominally process, but don't sleep inside an rwlock
67 66
68dev->hard_start_xmit:67ndo_start_xmit:
69 Synchronization: netif_tx_lock spinlock.68 Synchronization: __netif_tx_lock spinlock.
70 69
71 When the driver sets NETIF_F_LLTX in dev->features this will be70 When the driver sets NETIF_F_LLTX in dev->features this will be
72 called without holding netif_tx_lock. In this case the driver71 called without holding netif_tx_lock. In this case the driver
@@ -87,20 +86,20 @@ dev->hard_start_xmit: · 14 unmodified lines
87 o NETDEV_TX_LOCKED Locking failed, please retry quickly.86 o NETDEV_TX_LOCKED Locking failed, please retry quickly.
88 Only valid when NETIF_F_LLTX is set.87 Only valid when NETIF_F_LLTX is set.
89 88
90dev->tx_timeout:89ndo_tx_timeout:
91 Synchronization: netif_tx_lock spinlock.90 Synchronization: netif_tx_lock spinlock; all TX queues frozen.
92 Context: BHs disabled91 Context: BHs disabled
93 Notes: netif_queue_stopped() is guaranteed true92 Notes: netif_queue_stopped() is guaranteed true
94 93
95dev->set_rx_mode:94ndo_set_rx_mode:
96 Synchronization: netif_tx_lock spinlock.95 Synchronization: netif_addr_lock spinlock.
97 Context: BHs disabled96 Context: BHs disabled
98 97
99struct napi_struct synchronization rules98struct napi_struct synchronization rules
100========================================99========================================
101napi->poll:100napi->poll:
102 Synchronization: NAPI_STATE_SCHED bit in napi->state. Device101 Synchronization: NAPI_STATE_SCHED bit in napi->state. Device
103 driver's dev->close method will invoke napi_disable() on102 driver's ndo_stop method will invoke napi_disable() on
104 all NAPI instances which will do a sleeping poll on the103 all NAPI instances which will do a sleeping poll on the
105 NAPI_STATE_SCHED napi->state bit, waiting for all pending104 NAPI_STATE_SCHED napi->state bit, waiting for all pending
106 NAPI activity to cease.105 NAPI activity to cease.
Documentation/networking/vortex.txt+3−3
@@ -67,8 +67,8 @@ Module parameters · 66 unmodified lines
67=================67=================
68 68
69There are several parameters which may be provided to the driver when69There are several parameters which may be provided to the driver when
70its module is loaded. These are usually placed in /etc/modprobe.conf70its module is loaded. These are usually placed in /etc/modprobe.d/*.conf
71(/etc/modules.conf in 2.4). Example:71configuretion files. Example:
72 72
73options 3c59x debug=3 rx_copybreak=30073options 3c59x debug=3 rx_copybreak=300
74 74
@@ -425,7 +425,7 @@ steps you should take: · 350 unmodified lines
425 1) Increase the debug level. Usually this is done via:425 1) Increase the debug level. Usually this is done via:
426 426
427 a) modprobe driver debug=7427 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:
429 options driver debug=7429 options driver debug=7
430 430
431 2) Recreate the problem with the higher debug level,431 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
36are automatically detected.36are automatically detected.
37 37
38 38
39KMod39modprobe
40----40--------
41 41
42If you use kmod, you will find it useful to edit /etc/modprobe.conf.42If you use modprobe , you will find it useful to add lines as below to a
43Here is an example of the lines that need to be added:43configuration file in /etc/modprobe.d/ directory:.
44 44
45 alias parport_lowlevel parport_pc45 alias parport_lowlevel parport_pc
46 options parport_pc io=0x378,0x278 irq=7,auto46 options parport_pc io=0x378,0x278 irq=7,auto
47 47
48KMod will then automatically load parport_pc (with the options48modprobe will load parport_pc (with the options "io=0x378,0x278 irq=7,auto")
49"io=0x378,0x278 irq=7,auto") whenever a parallel port device driver49whenever a parallel port device driver (such as lp) is loaded.
50(such as lp) is loaded.
51 50
52Note that these are example lines only! You shouldn't in general need51Note that these are example lines only! You shouldn't in general need
53to specify any options to parport_pc in order to be able to use a52to specify any options to parport_pc in order to be able to use a
Documentation/remoteproc.txt+322−0
@@ -0,0 +1,322 @@
1Remote Processor Framework
2
31. Introduction
4
5Modern SoCs typically have heterogeneous remote processor devices in asymmetric
6multiprocessing (AMP) configurations, which may be running different instances
7of operating system, whether it's Linux or any other flavor of real-time OS.
8
9OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP.
10In a typical configuration, the dual cortex-A9 is running Linux in a SMP
11configuration, and each of the other three cores (two M3 cores and a DSP)
12is running its own instance of RTOS in an AMP configuration.
13
14The remoteproc framework allows different platforms/architectures to
15control (power on, load firmware, power off) those remote processors while
16abstracting the hardware differences, so the entire driver doesn't need to be
17duplicated. In addition, this framework also adds rpmsg virtio devices
18for remote processors that supports this kind of communication. This way,
19platform-specific remoteproc drivers only need to provide a few low-level
20handlers, and then all rpmsg drivers will then just work
21(for more information about the virtio-based rpmsg bus and its drivers,
22please read Documentation/rpmsg.txt).
23Registration of other types of virtio devices is now also possible. Firmwares
24just need to publish what kind of virtio devices do they support, and then
25remoteproc will add those devices. This makes it possible to reuse the
26existing virtio drivers with remote processor backends at a minimal development
27cost.
28
292. 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
793. Typical usage
80
81#include <linux/remoteproc.h>
82
83/* in case we were given a valid 'rproc' handle */
84int 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
1044. 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
1625. Implementation callbacks
163
164These callbacks should be provided by platform-specific remoteproc
165drivers:
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 */
173struct rproc_ops {
174 int (*start)(struct rproc *rproc);
175 int (*stop)(struct rproc *rproc);
176 void (*kick)(struct rproc *rproc, int vqid);
177};
178
179Every remoteproc implementation should at least provide the ->start and ->stop
180handlers. If rpmsg/virtio functionality is also desired, then the ->kick handler
181should be provided as well.
182
183The ->start() handler takes an rproc handle and should then power on the
184device and boot it (use rproc->priv to access platform-specific private data).
185The boot address, in case needed, can be found in rproc->bootaddr (remoteproc
186core puts there the ELF entry point).
187On success, 0 should be returned, and on failure, an appropriate error code.
188
189The ->stop() handler takes an rproc handle and powers the device down.
190On success, 0 is returned, and on failure, an appropriate error code.
191
192The ->kick() handler takes an rproc handle, and an index of a virtqueue
193where new message was placed in. Implementations should interrupt the remote
194processor and let it know it has pending messages. Notifying remote processors
195the exact virtqueue index to look in is optional: it is easy (and not
196too expensive) to go through the existing virtqueues and look for new buffers
197in the used rings.
198
1996. Binary Firmware Structure
200
201At this point remoteproc only supports ELF32 firmware binaries. However,
202it is quite expected that other platforms/devices which we'd want to
203support with this framework will be based on different binary formats.
204
205When those use cases show up, we will have to decouple the binary format
206from the framework core, so we can support several binary formats without
207duplicating common code.
208
209When the firmware is parsed, its various segments are loaded to memory
210according to the specified device address (might be a physical address
211if the remote processor is accessing memory directly).
212
213In addition to the standard ELF segments, most remote processors would
214also include a special section which we call "the resource table".
215
216The resource table contains system resources that the remote processor
217requires before it should be powered on, such as allocation of physically
218contiguous memory, or iommu mapping of certain on-chip peripherals.
219Remotecore will only power up the device after all the resource table's
220requirement are met.
221
222In addition to system resources, the resource table may also contain
223resource entries that publish the existence of supported features
224or configurations by the remote processor, such as trace buffers and
225supported virtio devices (and their configurations).
226
227The 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 */
241struct resource_table {
242 u32 ver;
243 u32 num;
244 u32 reserved[2];
245 u32 offset[0];
246} __packed;
247
248Immediately following this header are the resource entries themselves,
249each 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 */
260struct fw_rsc_hdr {
261 u32 type;
262 u8 data[0];
263} __packed;
264
265Some resources entries are mere announcements, where the host is informed
266of specific remoteproc configuration. Other entries require the host to
267do something (e.g. allocate a system resource). Sometimes a negotiation
268is expected, where the firmware requests a resource, and once allocated,
269the host should provide back its details (e.g. address of an allocated
270memory region).
271
272Here 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 */
291enum 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
299For more details regarding a specific resource type, please see its
300dedicated structure in include/linux/remoteproc.h.
301
302We also expect that platform-specific resource entries will show up
303at some point. When that happens, we could easily add a new RSC_PLATFORM
304type, and hand those resources to the platform-specific rproc driver to handle.
305
3067. Virtio and remoteproc
307
308The firmware should provide remoteproc information about virtio devices
309that it supports, and their configurations: a RSC_VDEV resource entry
310should specify the virtio device id (as in virtio_ids.h), virtio features,
311virtio config space, vrings information, etc.
312
313When a new remote processor is registered, the remoteproc framework
314will look for its resource table and will register the virtio devices
315it supports. A firmware may support any number of virtio devices, and
316of any type (a single remote processor can also easily support several
317rpmsg virtio devices this way, if desired).
318
319Of course, RSC_VDEV resource entries are only good enough for static
320allocation of virtio devices. Dynamic allocations will also be made possible
321using the rpmsg bus (similar to how we already do dynamic allocations of
322rpmsg channels; read more about it in rpmsg.txt).
Documentation/rpmsg.txt+293−0
@@ -0,0 +1,293 @@
1Remote Processor Messaging (rpmsg) Framework
2
3Note: this document describes the rpmsg bus and how to write rpmsg drivers.
4To learn how to add rpmsg support for new platforms, check out remoteproc.txt
5(also a resident of Documentation/).
6
71. Introduction
8
9Modern SoCs typically employ heterogeneous remote processor devices in
10asymmetric multiprocessing (AMP) configurations, which may be running
11different instances of operating system, whether it's Linux or any other
12flavor of real-time OS.
13
14OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP.
15Typically, the dual cortex-A9 is running Linux in a SMP configuration,
16and each of the other three cores (two M3 cores and a DSP) is running
17its own instance of RTOS in an AMP configuration.
18
19Typically AMP remote processors employ dedicated DSP codecs and multimedia
20hardware accelerators, and therefore are often used to offload CPU-intensive
21multimedia tasks from the main application processor.
22
23These remote processors could also be used to control latency-sensitive
24sensors, drive random hardware blocks, or just perform background tasks
25while the main CPU is idling.
26
27Users of those remote processors can either be userland apps (e.g. multimedia
28frameworks talking with remote OMX components) or kernel drivers (controlling
29hardware accessible only by the remote processor, reserving kernel-controlled
30resources on behalf of the remote processor, etc..).
31
32Rpmsg is a virtio-based messaging bus that allows kernel drivers to communicate
33with remote processors available on the system. In turn, drivers could then
34expose appropriate user space interfaces, if needed.
35
36When writing a driver that exposes rpmsg communication to userland, please
37keep in mind that remote processors might have direct access to the
38system's physical memory and other sensitive hardware resources (e.g. on
39OMAP4, remote cores and hardware accelerators may have direct access to the
40physical memory, gpio banks, dma controllers, i2c bus, gptimers, mailbox
41devices, hwspinlocks, etc..). Moreover, those remote processors might be
42running RTOS where every task can access the entire memory/devices exposed
43to the processor. To minimize the risks of rogue (or buggy) userland code
44exploiting remote bugs, and by that taking over the system, it is often
45desired to limit userland to specific rpmsg channels (see definition below)
46it can send messages on, and if possible, minimize how much control
47it has over the content of the messages.
48
49Every rpmsg device is a communication channel with a remote processor (thus
50rpmsg devices are called channels). Channels are identified by a textual name
51and have a local ("source") rpmsg address, and remote ("destination") rpmsg
52address.
53
54When a driver starts listening on a channel, its rx callback is bound with
55a unique rpmsg local address (a 32-bit integer). This way when inbound messages
56arrive, the rpmsg core dispatches them to the appropriate driver according
57to their destination address (this is done by invoking the driver's rx handler
58with the payload of the inbound message).
59
60
612. 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
2063. Typical usage
207
208The following is a simple rpmsg driver, that sends an "hello!" message
209on probe(), and whenever it receives an incoming message, it dumps its
210content to the console.
211
212#include <linux/kernel.h>
213#include <linux/module.h>
214#include <linux/rpmsg.h>
215
216static 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
223static 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
239static void __devexit rpmsg_sample_remove(struct rpmsg_channel *rpdev)
240{
241 dev_info(&rpdev->dev, "rpmsg sample client driver is removed\n");
242}
243
244static struct rpmsg_device_id rpmsg_driver_sample_id_table[] = {
245 { .name = "rpmsg-client-sample" },
246 { },
247};
248MODULE_DEVICE_TABLE(rpmsg, rpmsg_driver_sample_id_table);
249
250static 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
259static int __init init(void)
260{
261 return register_rpmsg_driver(&rpmsg_sample_client);
262}
263module_init(init);
264
265static void __exit fini(void)
266{
267 unregister_rpmsg_driver(&rpmsg_sample_client);
268}
269module_exit(fini);
270
271Note: a similar sample which can be built and loaded can be found
272in samples/rpmsg/.
273
2744. Allocations of rpmsg channels:
275
276At this point we only support dynamic allocations of rpmsg channels.
277
278This is possible only with remote processors that have the VIRTIO_RPMSG_F_NS
279virtio device feature set. This feature bit means that the remote
280processor supports dynamic name service announcement messages.
281
282When this feature is enabled, creation of rpmsg devices (i.e. channels)
283is completely dynamic: the remote processor announces the existence of a
284remote rpmsg service by sending a name service message (which contains
285the name and rpmsg addr of the remote service, see struct rpmsg_ns_msg).
286
287This message is then handled by the rpmsg bus, which in turn dynamically
288creates and registers an rpmsg channel (which represents the remote service).
289If/when a relevant rpmsg driver is registered, it will be immediately probed
290by the bus, and can then start sending messages to the remote service.
291
292The plan is also to add static creation of rpmsg channels via the virtio
293config 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
47one another. ReIPL as soon as possible after running the configuration47one another. ReIPL as soon as possible after running the configuration
48script and the resulting /tmp/mkdev3270.48script and the resulting /tmp/mkdev3270.
49 49
50If you have chosen to make tub3270 a module, you add a line to50If you have chosen to make tub3270 a module, you add a line to a
51/etc/modprobe.conf. If you are working on a VM virtual machine, you51configuration file under /etc/modprobe.d/. If you are working on a VM
52can use DEF GRAF to define virtual 3270 devices.52virtual machine, you can use DEF GRAF to define virtual 3270 devices.
53 53
54You may generate both 3270 and 3215 console support, or one or the54You may generate both 3270 and 3215 console support, or one or the
55other, or neither. If you generate both, the console type under VM is55other, 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
60 60
61In brief, these are the steps:61In brief, these are the steps:
62 1. Install the tub3270 patch62 1. Install the tub3270 patch
63 2. (If a module) add a line to /etc/modprobe.conf63 2. (If a module) add a line to a file in /etc/modprobe.d/*.conf
64 3. (If VM) define devices with DEF GRAF64 3. (If VM) define devices with DEF GRAF
65 4. Reboot65 4. Reboot
66 5. Configure66 5. Configure
@@ -84,13 +84,12 @@ Here are the installation steps in detail: · 17 unmodified lines
84 make modules_install84 make modules_install
85 85
86 2. (Perform this step only if you have configured tub3270 as a86 2. (Perform this step only if you have configured tub3270 as a
87 module.) Add a line to /etc/modprobe.conf to automatically87 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,88 load the driver when it's needed. With this line added, you will see
89 you will see login prompts appear on your 3270s as soon as89 login prompts appear on your 3270s as soon as boot is complete (or
90 boot is complete (or with emulated 3270s, as soon as you dial90 with emulated 3270s, as soon as you dial into your vm guest using the
91 into your vm guest using the command "DIAL <vmguestname>").91 command "DIAL <vmguestname>"). Since the line-mode major number is
92 Since the line-mode major number is 227, the line to add to92 227, the line to add should be:
93 /etc/modprobe.conf should be:
94 alias char-major-227 tub327093 alias char-major-227 tub3270
95 94
96 3. Define graphic devices to your vm guest machine, if you95 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
94 - info on second generation driver for sym53c8xx based adapters94 - info on second generation driver for sym53c8xx based adapters
95tmscsim.txt95tmscsim.txt
96 - info on driver for AM53c974 based adapters96 - info on driver for AM53c974 based adapters
97ufs.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
215 INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE.215 INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE.
216 USE THEM WITH CAUTION. 216 USE THEM WITH CAUTION.
217 217
218 Edit the file "modprobe.conf" in the directory /etc and add/edit a218 Put a .conf file in the /etc/modprobe.d/ directory and add/edit a
219 line containing 'options aic79xx aic79xx=[command[,command...]]' where219 line containing 'options aic79xx aic79xx=[command[,command...]]' where
220 'command' is one or more of the following:220 'command' is one or more of the following:
221 -----------------------------------------------------------------221 -----------------------------------------------------------------
Documentation/scsi/aic7xxx.txt+1−1
@@ -190,7 +190,7 @@ The following information is available in this file: · 189 unmodified lines
190 INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE.190 INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE.
191 USE THEM WITH CAUTION. 191 USE THEM WITH CAUTION.
192 192
193 Edit the file "modprobe.conf" in the directory /etc and add/edit a193 Put a .conf file in the /etc/modprobe.d directory and add/edit a
194 line containing 'options aic7xxx aic7xxx=[command[,command...]]' where194 line containing 'options aic7xxx aic7xxx=[command[,command...]]' where
195 'command' is one or more of the following:195 'command' is one or more of the following:
196 -----------------------------------------------------------------196 -----------------------------------------------------------------
Documentation/scsi/osst.txt+1−1
@@ -66,7 +66,7 @@ recognized. · 65 unmodified lines
66If you want to have the module autoloaded on access to /dev/osst, you may66If you want to have the module autoloaded on access to /dev/osst, you may
67add something like67add something like
68alias char-major-206 osst68alias char-major-206 osst
69to your /etc/modprobe.conf (before 2.6: modules.conf).69to a file under /etc/modprobe.d/ directory.
70 70
71You may find it convenient to create a symbolic link 71You may find it convenient to create a symbolic link
72ln -s nosst0 /dev/tape72ln -s nosst0 /dev/tape
Documentation/scsi/st.txt+4−0
@@ -390,6 +390,10 @@ MTSETDRVBUFFER · 389 unmodified lines
390 MT_ST_SYSV sets the SYSV semantics (mode)390 MT_ST_SYSV sets the SYSV semantics (mode)
391 MT_ST_NOWAIT enables immediate mode (i.e., don't wait for391 MT_ST_NOWAIT enables immediate mode (i.e., don't wait for
392 the command to finish) for some commands (e.g., rewind)392 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.
393 MT_ST_SILI enables setting the SILI bit in SCSI commands when397 MT_ST_SILI enables setting the SILI bit in SCSI commands when
394 reading in variable block mode to enhance performance when398 reading in variable block mode to enhance performance when
395 reading blocks shorter than the byte count; set this only399 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
5Contents
6--------
7
81. Overview
92. UFS Architecture Overview
10 2.1 Application Layer
11 2.2 UFS Transport Protocol(UTP) layer
12 2.3 UFS Interconnect(UIC) Layer
133. 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
201. Overview
21-----------
22
23Universal Flash Storage(UFS) is a storage specification for flash devices.
24It is aimed to provide a universal storage interface for both
25embedded and removable flash memory based storage in mobile
26devices such as smart phones and tablet computers. The specification
27is defined by JEDEC Solid State Technology Association. UFS is based
28on MIPI M-PHY physical layer standard. UFS uses MIPI M-PHY as the
29physical layer and MIPI Unipro as the link layer.
30
31The 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
422. UFS Architecture Overview
43----------------------------
44
45UFS has a layered communication architecture which is based on SCSI
46SAM-5 architectural model.
47
48UFS communication architecture consists of following layers,
49
502.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
672.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
812.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
913. UFSHCD Overview
92------------------
93
94The UFS host controller driver is based on Linux SCSI Framework.
95UFSHCD is a low level device driver which acts as an interface between
96SCSI Midlayer and PCIe based UFS host controllers.
97
98The current UFSHCD implementation supports following functionality,
99
1003.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
1063.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
1143.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
1193.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
128In this version of UFSHCD Query requests and power management
129functionality are not implemented.
130
131UFS Specifications can be found at,
132UFS - http://www.jedec.org/sites/default/files/docs/JESD220.pdf
133UFSHCI - 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
49 49
50 Note the hardware address from the Computone ISA cards installed into50 Note the hardware address from the Computone ISA cards installed into
51 the system. These are required for editing ip2.c or editing51 the system. These are required for editing ip2.c or editing
52 /etc/modprobe.conf, or for specification on the modprobe52 /etc/modprobe.d/*.conf, or for specification on the modprobe
53 command line.53 command line.
54 54
55 Note that the /etc/modules.conf should be used for older (pre-2.6)55 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
66c) Set address on ISA cards then:66c) Set address on ISA cards then:
67 edit /usr/src/linux/drivers/char/ip2.c if needed 67 edit /usr/src/linux/drivers/char/ip2.c if needed
68 or68 or
69 edit /etc/modprobe.conf if needed (module).69 edit config file in /etc/modprobe.d/ if needed (module).
70 or both to match this setting.70 or both to match this setting.
71d) Run "make modules"71d) Run "make modules"
72e) Run "make modules_install"72e) 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
153selects polled mode). If no base addresses are specified the defaults in 153selects polled mode). If no base addresses are specified the defaults in
154ip2.c are used. If you are autoloading the driver module with kerneld or154ip2.c are used. If you are autoloading the driver module with kerneld or
155kmod the base addresses and interrupt number must also be set in ip2.c155kmod the base addresses and interrupt number must also be set in ip2.c
156and recompile or just insert and options line in /etc/modprobe.conf or both.156and recompile or just insert and options line in /etc/modprobe.d/*.conf or both.
157The options line is equivalent to the command line and takes precedence over157The options line is equivalent to the command line and takes precedence over
158what is in ip2.c. 158what is in ip2.c.
159 159
160/etc/modprobe.conf sample:160config sample to put /etc/modprobe.d/*.conf:
161 options ip2 io=1,0x328 irq=1,10161 options ip2 io=1,0x328 irq=1,10
162 alias char-major-71 ip2162 alias char-major-71 ip2
163 alias char-major-72 ip2163 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
62 62
63If installed as a module, the module must be loaded. This can be done63If installed as a module, the module must be loaded. This can be done
64manually by entering "modprobe rocket". To have the module loaded automatically64manually by entering "modprobe rocket". To have the module loaded automatically
65upon system boot, edit the /etc/modprobe.conf file and add the line65upon system boot, edit a /etc/modprobe.d/*.conf file and add the line
66"alias char-major-46 rocket".66"alias char-major-46 rocket".
67 67
68In order to use the ports, their device names (nodes) must be created with mknod.68In 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
139 139
140You will probably want to enter this module load and configuration information140You will probably want to enter this module load and configuration information
141into your system startup scripts so that the drivers are loaded and configured141into your system startup scripts so that the drivers are loaded and configured
142on each system boot. Typically the start up script would be something like142on each system boot. Typically configuration files are put in the
143/etc/modprobe.conf.143/etc/modprobe.d/ directory.
144 144
145 145
1462.2 STATIC DRIVER CONFIGURATION:1462.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
2044 Install the necessary firmware files in alsa-firmware package.2044 Install the necessary firmware files in alsa-firmware package.
2045 When no hotplug fw loader is available, you need to load the2045 When no hotplug fw loader is available, you need to load the
2046 firmware via vxloader utility in alsa-tools package. To invoke2046 firmware via vxloader utility in alsa-tools package. To invoke
2047 vxloader automatically, add the following to /etc/modprobe.conf2047 vxloader automatically, add the following to /etc/modprobe.d/alsa.conf
2048 2048
2049 install snd-vx222 /sbin/modprobe --first-time -i snd-vx222 && /usr/bin/vxloader2049 install snd-vx222 /sbin/modprobe --first-time -i snd-vx222 && /usr/bin/vxloader
2050 2050
@@ -2168,10 +2168,10 @@ corresponds to the card index of ALSA. Usually, define this · 117 unmodified lines
2168as the same card module.2168as the same card module.
2169 2169
2170An example configuration for a single emu10k1 card is like below:2170An example configuration for a single emu10k1 card is like below:
2171----- /etc/modprobe.conf2171----- /etc/modprobe.d/alsa.conf
2172alias snd-card-0 snd-emu10k12172alias snd-card-0 snd-emu10k1
2173alias sound-slot-0 snd-emu10k12173alias sound-slot-0 snd-emu10k1
2174----- /etc/modprobe.conf2174----- /etc/modprobe.d/alsa.conf
2175 2175
2176The available number of auto-loaded sound cards depends on the module2176The available number of auto-loaded sound cards depends on the module
2177option "cards_limit" of snd module. As default it's set to 1.2177option "cards_limit" of snd module. As default it's set to 1.
@@ -2184,7 +2184,7 @@ cards is kept consistent. · 6 unmodified lines
2184 2184
2185An example configuration for two sound cards is like below:2185An example configuration for two sound cards is like below:
2186 2186
2187----- /etc/modprobe.conf2187----- /etc/modprobe.d/alsa.conf
2188# ALSA portion2188# ALSA portion
2189options snd cards_limit=22189options snd cards_limit=2
2190alias snd-card-0 snd-interwave2190alias snd-card-0 snd-interwave
@@ -2194,7 +2194,7 @@ options snd-ens1371 index=1 · 3 unmodified lines
2194# OSS/Free portion2194# OSS/Free portion
2195alias sound-slot-0 snd-interwave2195alias sound-slot-0 snd-interwave
2196alias sound-slot-1 snd-ens13712196alias sound-slot-1 snd-ens1371
2197----- /etc/modprobe.conf2197----- /etc/modprobe.d/alsa.conf
2198 2198
2199In this example, the interwave card is always loaded as the first card2199In this example, the interwave card is always loaded as the first card
2200(index 0) and ens1371 as the second (index 1).2200(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
232 # modprobe snd-usb-audio index=1 device_setup=0x09232 # modprobe snd-usb-audio index=1 device_setup=0x09
233 233
234 * Or while configuring the modules options in your modules configuration file234 * 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:
236 alias snd-card-1 snd-usb-audio236 alias snd-card-1 snd-usb-audio
237 options snd-usb-audio index=1 device_setup=0x09237 options snd-usb-audio index=1 device_setup=0x09
238 238
@@ -253,7 +253,7 @@ CAUTION when initializing the device · 14 unmodified lines
253 - first turn off the device253 - first turn off the device
254 - de-register the snd-usb-audio module (modprobe -r)254 - de-register the snd-usb-audio module (modprobe -r)
255 - change the device_setup parameter by changing the device_setup255 - change the device_setup parameter by changing the device_setup
256 option in /etc/modprobe.conf 256 option in /etc/modprobe.d/*.conf
257 - turn on the device257 - turn on the device
258 * A workaround for this last issue has been applied to kernel 2.6.23, but it may not258 * A workaround for this last issue has been applied to kernel 2.6.23, but it may not
259 be enough to ensure the 'stability' of the device initialization.259 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
43 43
44ALC882/883/885/888/88944ALC882/883/885/888/889
45======================45======================
46 N/A46 acer-aspire-4930g Acer Aspire 4930G/5930G/6530G/6930G/7730G
47 acer-aspire-8930g Acer Aspire 8330G/6935G
48 acer-aspire Acer Aspire others
47 49
48ALC861/66050ALC861/660
49==========51==========
Documentation/sound/alsa/MIXART.txt+3−3
@@ -76,9 +76,9 @@ FIRMWARE · 75 unmodified lines
76 when CONFIG_FW_LOADER is set. The mixartloader is necessary only76 when CONFIG_FW_LOADER is set. The mixartloader is necessary only
77 for older versions or when you build the driver into kernel.]77 for older versions or when you build the driver into kernel.]
78 78
79For loading the firmware automatically after the module is loaded, use79For loading the firmware automatically after the module is loaded, use a
80the post-install command. For example, add the following entry to80install command. For example, add the following entry to
81/etc/modprobe.conf for miXart driver:81/etc/modprobe.d/mixart.conf for miXart driver:
82 82
83 install snd-mixart /sbin/modprobe --first-time -i snd-mixart && \83 install snd-mixart /sbin/modprobe --first-time -i snd-mixart && \
84 /usr/bin/mixartloader84 /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
19define these aliases by yourself.19define these aliases by yourself.
20 20
21Only necessary step for auto-loading of OSS modules is to define the21Only necessary step for auto-loading of OSS modules is to define the
22card alias in /etc/modprobe.conf, such as22card alias in /etc/modprobe.d/alsa.conf, such as
23 23
24 alias sound-slot-0 snd-emu10k124 alias sound-slot-0 snd-emu10k1
25 25
Documentation/sound/oss/AudioExcelDSP16+5−5
@@ -41,7 +41,7 @@ mpu_base I/O base address for activate MPU-401 mode · 40 unmodified lines
41 (0x300, 0x310, 0x320 or 0x330)41 (0x300, 0x310, 0x320 or 0x330)
42mpu_irq MPU-401 irq line (5, 7, 9, 10 or 0)42mpu_irq MPU-401 irq line (5, 7, 9, 10 or 0)
43 43
44The /etc/modprobe.conf will have lines like this:44A configuration file in /etc/modprobe.d/ directory will have lines like this:
45 45
46options opl3 io=0x38846options opl3 io=0x388
47options ad1848 io=0x530 irq=11 dma=347options 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
51ad1848 are the corresponding options for the MSS and OPL3 modules.51ad1848 are the corresponding options for the MSS and OPL3 modules.
52 52
53Loading MSS and OPL3 needs to pre load the aedsp16 module to set up correctly53Loading MSS and OPL3 needs to pre load the aedsp16 module to set up correctly
54the sound card. Installation dependencies must be written in the modprobe.conf54the sound card. Installation dependencies must be written in configuration
55file:55files under /etc/modprobe.d/ directory:
56 56
57install ad1848 /sbin/modprobe aedsp16 && /sbin/modprobe -i ad184857softdep ad1848 pre: aedsp16
58install opl3 /sbin/modprobe aedsp16 && /sbin/modprobe -i opl358softdep opl3 pre: aedsp16
59 59
60Then you must load the sound modules stack in this order:60Then you must load the sound modules stack in this order:
61sound -> aedsp16 -> [ ad1848, opl3 ]61sound -> aedsp16 -> [ ad1848, opl3 ]
Documentation/sound/oss/CMI8330+2−3
@@ -143,11 +143,10 @@ CONFIG_SOUND_MSS=m · 142 unmodified lines
143 143
144 144
145 145
146Alma Chao <elysian@ethereal.torsion.org> suggests the following /etc/modprobe.conf:146Alma Chao <elysian@ethereal.torsion.org> suggests the following in
147a /etc/modprobe.d/*conf file:
147 148
148alias sound ad1848149alias sound ad1848
149alias synth0 opl3150alias synth0 opl3
150options ad1848 io=0x530 irq=7 dma=0 soundpro=1151options ad1848 io=0x530 irq=7 dma=0 soundpro=1
151options opl3 io=0x388152options 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
167MODPROBE:167MODPROBE:
168=========168=========
169 169
170If loading via modprobe, these common files are automatically loaded 170If loading via modprobe, these common files are automatically loaded when
171when requested by modprobe. For example, my /etc/modprobe.conf contains:171requested by modprobe. For example, my /etc/modprobe.d/oss.conf contains:
172 172
173alias sound sb 173alias sound sb
174options sb io=0x240 irq=9 dma=3 dma16=5 mpu_io=0x300174options 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
228driver, you should do the following:228driver, you should do the following:
229 229
2301. remove sound modules (detailed above)2301. remove sound modules (detailed above)
2312. remove the sound modules from /etc/modprobe.conf2312. remove the sound modules from /etc/modprobe.d/*.conf
2323. move the sound modules from /lib/modules/<kernel>/misc2323. move the sound modules from /lib/modules/<kernel>/misc
233 (for example, I make a /lib/modules/<kernel>/misc/tmp233 (for example, I make a /lib/modules/<kernel>/misc/tmp
234 directory and copy the sound module files to that 234 directory and copy the sound module files to that
@@ -265,7 +265,7 @@ twice, you need to do the following: · 30 unmodified lines
265 sb.o could be copied (or symlinked) to sb1.o for the265 sb.o could be copied (or symlinked) to sb1.o for the
266 second SoundBlaster.266 second SoundBlaster.
267 267
2682. Make a second entry in /etc/modprobe.conf, for example,2682. Make a second entry in /etc/modprobe.d/*conf, for example,
269 sound1 or sb1. This second entry should refer to the269 sound1 or sb1. This second entry should refer to the
270 new module names for example sb1, and should include270 new module names for example sb1, and should include
271 the I/O, etc. for the second sound card.271 the I/O, etc. for the second sound card.
@@ -369,7 +369,7 @@ There are several ways of configuring your sound: · 97 unmodified lines
3692) On the command line when using insmod or in a bash script3692) On the command line when using insmod or in a bash script
370 using command line calls to load sound.370 using command line calls to load sound.
371 371
3723) In /etc/modprobe.conf when using modprobe.3723) In /etc/modprobe.d/*conf when using modprobe.
373 373
3744) Via Red Hat's GPL'd /usr/sbin/sndconfig program (text based).3744) Via Red Hat's GPL'd /usr/sbin/sndconfig program (text based).
375 375
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
18If you have another OS installed on your computer it is recommended18If you have another OS installed on your computer it is recommended
19that Linux and the other OS use the same resources.19that Linux and the other OS use the same resources.
20 20
21Also, it is recommended that resources specified in /etc/modprobe.conf21Also, it is recommended that resources specified in /etc/modprobe.d/*.conf
22and resources specified in /etc/isapnp.conf agree.22and resources specified in /etc/isapnp.conf agree.
23 23
24Compiling the sound driver24Compiling the sound driver
@@ -67,11 +67,7 @@ address is hard-coded into the driver. · 42 unmodified lines
67 67
68Using kmod and autoloading the sound driver68Using kmod and autoloading the sound driver
69-------------------------------------------69-------------------------------------------
70Comment: as of linux-2.1.90 kmod is replacing kerneld.70Config files in '/etc/modprobe.d/' are used as below:
71The config file '/etc/modprobe.conf' is used as before.
72
73This is the sound part of my /etc/modprobe.conf file.
74Following that I will explain each line.
75 71
76alias mixer0 mad1672alias mixer0 mad16
77alias audio0 mad1673alias audio0 mad16
Documentation/sound/oss/PAS16+2−2
@@ -128,7 +128,7 @@ CONFIG_SOUND_YM3812 · 127 unmodified lines
128 You can then get OPL3 functionality by issuing the command:128 You can then get OPL3 functionality by issuing the command:
129 insmod opl3129 insmod opl3
130 In addition, you must either add the following line to 130 In addition, you must either add the following line to
131 /etc/modprobe.conf:131 /etc/modprobe.d/*.conf:
132 options opl3 io=0x388132 options opl3 io=0x388
133 or else add the following line to /etc/lilo.conf:133 or else add the following line to /etc/lilo.conf:
134 opl3=0x388134 opl3=0x388
@@ -158,5 +158,5 @@ following line would be appropriate: · 23 unmodified lines
158append="pas2=0x388,10,3,-1,0,-1,-1,-1 opl3=0x388"158append="pas2=0x388,10,3,-1,0,-1,-1,-1 opl3=0x388"
159 159
160If sound is built totally modular, the above options may be 160If sound is built totally modular, the above options may be
161specified in /etc/modprobe.conf for pas2, sb and opl3161specified in /etc/modprobe.d/*.conf for pas2, sb and opl3
162respectively. 162respectively.
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
26drivers/sound dir. Now one simply configures and makes one's kernel and26drivers/sound dir. Now one simply configures and makes one's kernel and
27modules in the usual way.27modules in the usual way.
28 28
29 Then, add to your /etc/modprobe.conf something like:29 Then, add to your /etc/modprobe.d/oss.conf something like:
30 30
31alias char-major-14-* sb31alias char-major-14-* sb
32install sb /sbin/modprobe -i sb && /sbin/modprobe adlib_card32install sb /sbin/modprobe -i sb && /sbin/modprobe adlib_card
@@ -36,7 +36,7 @@ options adlib_card io=0x388 # FM synthesizer · 3 unmodified lines
36 Alternatively, if you have compiled in kernel level ISAPnP support:36 Alternatively, if you have compiled in kernel level ISAPnP support:
37 37
38alias char-major-14 sb38alias char-major-14 sb
39post-install sb /sbin/modprobe "-k" "adlib_card"39softdep sb post: adlib_card
40options adlib_card io=0x38840options adlib_card io=0x388
41 41
42 The effect of this is that the sound driver and all necessary bits and42 The effect of this is that the sound driver and all necessary bits and
@@ -66,12 +66,12 @@ args are expected. · 23 unmodified lines
66 Note that at present there is no way to configure the io, irq and other66 Note that at present there is no way to configure the io, irq and other
67parameters for the modular drivers as one does for the wired drivers.. One67parameters for the modular drivers as one does for the wired drivers.. One
68needs to pass the modules the necessary parameters as arguments, either68needs to pass the modules the necessary parameters as arguments, either
69with /etc/modprobe.conf or with command-line args to modprobe, e.g.69with /etc/modprobe.d/*.conf or with command-line args to modprobe, e.g.
70 70
71modprobe sb io=0x220 irq=7 dma=1 dma16=5 mpu_io=0x33071modprobe sb io=0x220 irq=7 dma=1 dma16=5 mpu_io=0x330
72modprobe adlib_card io=0x38872modprobe adlib_card io=0x388
73 73
74 recommend using /etc/modprobe.conf.74 recommend using /etc/modprobe.d/*.conf.
75 75
76Persistent DMA Buffers:76Persistent DMA Buffers:
77 77
@@ -89,7 +89,7 @@ wasteful of RAM, but it guarantees that sound always works. · 11 unmodified lines
89 89
90To make the sound driver use persistent DMA buffers we need to pass the90To make the sound driver use persistent DMA buffers we need to pass the
91sound.o module a "dmabuf=1" command-line argument. This is normally done91sound.o module a "dmabuf=1" command-line argument. This is normally done
92in /etc/modprobe.conf like so:92in /etc/modprobe.d/*.conf files like so:
93 93
94options sound dmabuf=194options sound dmabuf=1
95 95
Documentation/sysrq.txt+2−3
@@ -241,9 +241,8 @@ command you are interested in. · 240 unmodified lines
241 241
242* I have more questions, who can I ask?242* I have more questions, who can I ask?
243~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~243~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
244And I'll answer any questions about the registration system you got, also244Just ask them on the linux-kernel mailing list:
245responding as soon as possible.245 linux-kernel@vger.kernel.org
246 -Crutcher
247 246
248* Credits247* Credits
249~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~248~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
168they will get a -EPERM error. Thus you can be sure that when168they will get a -EPERM error. Thus you can be sure that when
169usb_kill_urb() returns, the URB is totally idle.169usb_kill_urb() returns, the URB is totally idle.
170 170
171There is a lifetime issue to consider. An URB may complete at any
172time, and the completion handler may free the URB. If this happens
173while usb_unlink_urb or usb_kill_urb is running, it will cause a
174memory-access violation. The driver is responsible for avoiding this,
175which often means some sort of lock will be needed to prevent the URB
176from being deallocated while it is still in use.
177
178On the other hand, since usb_unlink_urb may end up calling the
179completion handler, the handler must not take any lock that is held
180when usb_unlink_urb is invoked. The general solution to this problem
181is to increment the URB's reference count while holding the lock, then
182drop the lock and call usb_unlink_urb or usb_kill_urb, and then
183decrement the URB's reference count. You increment the reference
184count 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
189decrement the reference count by calling usb_free_urb. Of course,
190none of this is necessary if there's no danger of the URB being freed
191by the completion handler.
192
171 193
1721.7. What about the completion handler?1941.7. What about the completion handler?
173 195
Documentation/usb/power-management.txt+2−1
@@ -179,7 +179,8 @@ do: · 178 unmodified lines
179 179
180 modprobe usbcore autosuspend=5180 modprobe usbcore autosuspend=5
181 181
182Equivalently, you could add to /etc/modprobe.conf a line saying:182Equivalently, you could add to a configuration file in /etc/modprobe.d
183a line saying:
183 184
184 options usbcore autosuspend=5185 options usbcore autosuspend=5
185 186
Documentation/usb/usbmon.txt+3−3
@@ -183,10 +183,10 @@ An input control transfer to get a port status. · 182 unmodified lines
183d5ea89a0 3575914555 S Ci:1:001:0 s a3 00 0000 0003 0004 4 <183d5ea89a0 3575914555 S Ci:1:001:0 s a3 00 0000 0003 0004 4 <
184d5ea89a0 3575914560 C Ci:1:001:0 0 4 = 01050000184d5ea89a0 3575914560 C Ci:1:001:0 0 4 = 01050000
185 185
186An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper186An output bulk transfer to send a SCSI command 0x28 (READ_10) in a 31-byte
187to a storage device at address 5:187Bulk wrapper to a storage device at address 5:
188 188
189dd65f0e8 4128379752 S Bo:1:005:2 -115 31 = 55534243 5e000000 00000000 00000600 00000000 00000000 00000000 000000189dd65f0e8 4128379752 S Bo:1:005:2 -115 31 = 55534243 ad000000 00800000 80010a28 20000000 20000040 00000000 000000
190dd65f0e8 4128379808 C Bo:1:005:2 0 31 >190dd65f0e8 4128379808 C Bo:1:005:2 0 31 >
191 191
192* Raw binary format and API192* Raw binary format and API
Documentation/video4linux/CQcam.txt+2−12
@@ -61,29 +61,19 @@ But that is my personal preference. · 60 unmodified lines
612.2 Configuration612.2 Configuration
62 62
63 The configuration requires module configuration and device63 The configuration requires module configuration and device
64configuration. I like kmod or kerneld process with the64configuration. The following sections detail these procedures.
65/etc/modprobe.conf file so the modules can automatically load/unload as
66they are used. The video devices could already exist, be generated
67using MAKEDEV, or need to be created. The following sections detail
68these procedures.
69 65
70 66
712.1 Module Configuration672.1 Module Configuration
72 68
73 Using modules requires a bit of work to install and pass the69 Using modules requires a bit of work to install and pass the
74parameters. Understand that entries in /etc/modprobe.conf of:70parameters. Understand that entries in /etc/modprobe.d/*.conf of:
75 71
76 alias parport_lowlevel parport_pc72 alias parport_lowlevel parport_pc
77 options parport_pc io=0x378 irq=none73 options parport_pc io=0x378 irq=none
78 alias char-major-81 videodev74 alias char-major-81 videodev
79 alias char-major-81-0 c-qcam75 alias char-major-81-0 c-qcam
80 76
81will cause the kmod/modprobe to do certain things. If you are
82using kmod, then a request for a 'char-major-81-0' will cause
83the 'c-qcam' module to load. If you have other video sources with
84modules, you might want to assign the different minor numbers to
85different modules.
86
872.2 Device Configuration772.2 Device Configuration
88 78
89 At this point, we need to ensure that the device files exist.79 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
255option with X being the card number as given in the previous section.255option with X being the card number as given in the previous section.
256To have more than one card, use card=X1[,X2[,X3,[X4[..]]]]256To have more than one card, use card=X1[,X2[,X3,[X4[..]]]]
257 257
258To automate this, add the following to your /etc/modprobe.conf:258To automate this, add the following to your /etc/modprobe.d/zoran.conf:
259 259
260options zr36067 card=X1[,X2[,X3[,X4[..]]]]260options zr36067 card=X1[,X2[,X3[,X4[..]]]]
261alias char-major-81-0 zr36067261alias 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.conf1# For modern kernels (2.6 or above), this belongs in /etc/modprobe.d/*.conf
2# For for 2.4 kernels or earlier, this belongs in /etc/modules.conf.2# For for 2.4 kernels or earlier, this belongs in /etc/modules.conf.
3 3
4# i2c4# i2c
Documentation/video4linux/meye.txt+1−1
@@ -55,7 +55,7 @@ Module use: · 54 unmodified lines
55-----------55-----------
56 56
57In order to automatically load the meye module on use, you can put those lines57In order to automatically load the meye module on use, you can put those lines
58in your /etc/modprobe.conf file:58in your /etc/modprobe.d/meye.conf file:
59 59
60 alias char-major-81 videodev60 alias char-major-81 videodev
61 alias char-major-81-0 meye61 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
95Capability: basic95Capability: basic
96Architectures: all96Architectures: all
97Type: system ioctl97Type: system ioctl
98Parameters: none98Parameters: machine type identifier (KVM_VM_*)
99Returns: a VM fd that can be used to control the new virtual machine.99Returns: a VM fd that can be used to control the new virtual machine.
100 100
101The new VM has no virtual cpus and no memory. An mmap() of a VM fd101The 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
103corresponds to guest physical address zero. Use of mmap() on a VM fd103corresponds to guest physical address zero. Use of mmap() on a VM fd
104is discouraged if userspace memory allocation (KVM_CAP_USER_MEMORY) is104is discouraged if userspace memory allocation (KVM_CAP_USER_MEMORY) is
105available.105available.
106You most certainly want to use 0 as machine type.
107
108In order to create user controlled virtual machines on S390, check
109KVM_CAP_S390_UCONTROL and use the flag KVM_VM_S390_UCONTROL as
110privileged user (CAP_SYS_ADMIN).
106 111
1074.3 KVM_GET_MSR_INDEX_LIST1124.3 KVM_GET_MSR_INDEX_LIST
108 113
@@ -213,6 +218,11 @@ allocation of vcpu ids. For example, if userspace wants · 104 unmodified lines
213single-threaded guest vcpus, it should make all vcpu ids be a multiple218single-threaded guest vcpus, it should make all vcpu ids be a multiple
214of the number of vcpus per vcore.219of the number of vcpus per vcore.
215 220
221For virtual cpus that have been created with S390 user controlled virtual
222machines, the resulting vcpu fd can be memory mapped at page offset
223KVM_S390_SIE_PAGE_OFFSET in order to obtain a memory map of the virtual
224cpu's hardware control block.
225
2164.8 KVM_GET_DIRTY_LOG (vm ioctl)2264.8 KVM_GET_DIRTY_LOG (vm ioctl)
217 227
218Capability: basic228Capability: basic
@@ -1159,6 +1169,14 @@ following flags are specified: · 940 unmodified lines
1159 1169
1160/* Depends on KVM_CAP_IOMMU */1170/* Depends on KVM_CAP_IOMMU */
1161#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)1171#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
1176If KVM_DEV_ASSIGN_PCI_2_3 is set, the kernel will manage legacy INTx interrupts
1177via the PCI-2.3-compliant device-level mask, thus enable IRQ sharing with other
1178assigned devices or host devices. KVM_DEV_ASSIGN_MASK_INTX specifies the
1179guest's view on the INTx mask, see KVM_ASSIGN_SET_INTX_MASK for details.
1162 1180
1163The KVM_DEV_ASSIGN_ENABLE_IOMMU flag is a mandatory option to ensure1181The KVM_DEV_ASSIGN_ENABLE_IOMMU flag is a mandatory option to ensure
1164isolation of the device. Usages not specifying this flag are deprecated.1182isolation of the device. Usages not specifying this flag are deprecated.
@@ -1399,6 +1417,71 @@ The following flags are defined: · 234 unmodified lines
1399If datamatch flag is set, the event will be signaled only if the written value1417If datamatch flag is set, the event will be signaled only if the written value
1400to the registered address is equal to datamatch in struct kvm_ioeventfd.1418to the registered address is equal to datamatch in struct kvm_ioeventfd.
1401 1419
14204.59 KVM_DIRTY_TLB
1421
1422Capability: KVM_CAP_SW_TLB
1423Architectures: ppc
1424Type: vcpu ioctl
1425Parameters: struct kvm_dirty_tlb (in)
1426Returns: 0 on success, -1 on error
1427
1428struct kvm_dirty_tlb {
1429 __u64 bitmap;
1430 __u32 num_dirty;
1431};
1432
1433This must be called whenever userspace has changed an entry in the shared
1434TLB, prior to calling KVM_RUN on the associated vcpu.
1435
1436The "bitmap" field is the userspace address of an array. This array
1437consists of a number of bits, equal to the total number of TLB entries as
1438determined by the last successful call to KVM_CONFIG_TLB, rounded up to the
1439nearest multiple of 64.
1440
1441Each bit corresponds to one TLB entry, ordered the same as in the shared TLB
1442array.
1443
1444The array is little-endian: the bit 0 is the least significant bit of the
1445first byte, bit 8 is the least significant bit of the second byte, etc.
1446This avoids any complications with differing word sizes.
1447
1448The "num_dirty" field is a performance hint for KVM to determine whether it
1449should skip processing the bitmap and just invalidate everything. It must
1450be set to the number of set bits in the bitmap.
1451
14524.60 KVM_ASSIGN_SET_INTX_MASK
1453
1454Capability: KVM_CAP_PCI_2_3
1455Architectures: x86
1456Type: vm ioctl
1457Parameters: struct kvm_assigned_pci_dev (in)
1458Returns: 0 on success, -1 on error
1459
1460Allows userspace to mask PCI INTx interrupts from the assigned device. The
1461kernel will not deliver INTx interrupts to the guest between setting and
1462clearing of KVM_ASSIGN_SET_INTX_MASK via this interface. This enables use of
1463and emulation of PCI 2.3 INTx disable command register behavior.
1464
1465This may be used for both PCI 2.3 devices supporting INTx disable natively and
1466older devices lacking this support. Userspace is responsible for emulating the
1467read value of the INTx disable bit in the guest visible PCI command register.
1468When modifying the INTx disable state, userspace should precede updating the
1469physical device command register by calling this ioctl to inform the kernel of
1470the new intended INTx mask state.
1471
1472Note that the kernel uses the device INTx disable bit to internally manage the
1473device interrupt state for PCI 2.3 devices. Reads of this register may
1474therefore not match the expected value. Writes should always use the guest
1475intended INTx disable value rather than attempting to read-copy-update the
1476current physical device state. Races between user and kernel updates to the
1477INTx disable bit are handled lazily in the kernel. It's possible the device
1478may generate unintended interrupts, but they will not be injected into the
1479guest.
1480
1481See KVM_ASSIGN_DEV_IRQ for the data structure. The target device is specified
1482by assigned_dev_id. In the flags field, only KVM_DEV_ASSIGN_MASK_INTX is
1483evaluated.
1484
14024.62 KVM_CREATE_SPAPR_TCE14854.62 KVM_CREATE_SPAPR_TCE
1403 1486
1404Capability: KVM_CAP_SPAPR_TCE1487Capability: KVM_CAP_SPAPR_TCE
@@ -1491,6 +1574,101 @@ following algorithm: · 86 unmodified lines
1491Some guests configure the LINT1 NMI input to cause a panic, aiding in1574Some guests configure the LINT1 NMI input to cause a panic, aiding in
1492debugging.1575debugging.
1493 1576
15774.65 KVM_S390_UCAS_MAP
1578
1579Capability: KVM_CAP_S390_UCONTROL
1580Architectures: s390
1581Type: vcpu ioctl
1582Parameters: struct kvm_s390_ucas_mapping (in)
1583Returns: 0 in case of success
1584
1585The parameter is defined like this:
1586 struct kvm_s390_ucas_mapping {
1587 __u64 user_addr;
1588 __u64 vcpu_addr;
1589 __u64 length;
1590 };
1591
1592This ioctl maps the memory at "user_addr" with the length "length" to
1593the vcpu's address space starting at "vcpu_addr". All parameters need to
1594be alligned by 1 megabyte.
1595
15964.66 KVM_S390_UCAS_UNMAP
1597
1598Capability: KVM_CAP_S390_UCONTROL
1599Architectures: s390
1600Type: vcpu ioctl
1601Parameters: struct kvm_s390_ucas_mapping (in)
1602Returns: 0 in case of success
1603
1604The parameter is defined like this:
1605 struct kvm_s390_ucas_mapping {
1606 __u64 user_addr;
1607 __u64 vcpu_addr;
1608 __u64 length;
1609 };
1610
1611This 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.
1613All parameters need to be alligned by 1 megabyte.
1614
16154.67 KVM_S390_VCPU_FAULT
1616
1617Capability: KVM_CAP_S390_UCONTROL
1618Architectures: s390
1619Type: vcpu ioctl
1620Parameters: vcpu absolute address (in)
1621Returns: 0 in case of success
1622
1623This 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
1625space (for regular virtual machines). This only works for minor faults,
1626thus it's recommended to access subject memory page via the user page
1627table upfront. This is useful to handle validity intercepts for user
1628controlled virtual machines to fault in the virtual cpu's lowcore pages
1629prior to calling the KVM_RUN ioctl.
1630
16314.68 KVM_SET_ONE_REG
1632
1633Capability: KVM_CAP_ONE_REG
1634Architectures: all
1635Type: vcpu ioctl
1636Parameters: struct kvm_one_reg (in)
1637Returns: 0 on success, negative value on failure
1638
1639struct kvm_one_reg {
1640 __u64 id;
1641 __u64 addr;
1642};
1643
1644Using this ioctl, a single vcpu register can be set to a specific value
1645defined by user space with the passed in struct kvm_one_reg, where id
1646refers to the register identifier as described below and addr is a pointer
1647to a variable with the respective size. There can be architecture agnostic
1648and architecture specific registers. Each have their own range of operation
1649and their own constants and width. To keep track of the implemented
1650registers, find a list below:
1651
1652 Arch | Register | Width (bits)
1653 | |
1654 PPC | KVM_REG_PPC_HIOR | 64
1655
16564.69 KVM_GET_ONE_REG
1657
1658Capability: KVM_CAP_ONE_REG
1659Architectures: all
1660Type: vcpu ioctl
1661Parameters: struct kvm_one_reg (in and out)
1662Returns: 0 on success, negative value on failure
1663
1664This ioctl allows to receive the value of a single register implemented
1665in a vcpu. The register to read is indicated by the "id" field of the
1666kvm_one_reg struct passed in. On success, the register value can be found
1667at the memory location pointed to by "addr".
1668
1669The list of registers accessible using this interface is identical to the
1670list in 4.64.
1671
14945. The kvm_run structure16725. The kvm_run structure
1495 1673
1496Application code obtains a pointer to the kvm_run structure by1674Application code obtains a pointer to the kvm_run structure by
@@ -1651,6 +1829,20 @@ s390 specific. · 154 unmodified lines
1651 1829
1652s390 specific.1830s390 specific.
1653 1831
1832 /* KVM_EXIT_S390_UCONTROL */
1833 struct {
1834 __u64 trans_exc_code;
1835 __u32 pgm_code;
1836 } s390_ucontrol;
1837
1838s390 specific. A page fault has occurred for a user controlled virtual
1839machine (KVM_VM_S390_UNCONTROL) on it's host page table that cannot be
1840resolved by the kernel.
1841The program code and the translation exception code that were placed
1842in the cpu's lowcore are presented here as defined by the z Architecture
1843Principles of Operation Book in the Chapter for Dynamic Address Translation
1844(DAT)
1845
1654 /* KVM_EXIT_DCR */1846 /* KVM_EXIT_DCR */
1655 struct {1847 struct {
1656 __u32 dcrn;1848 __u32 dcrn;
@@ -1693,6 +1885,29 @@ developer registration required to access it). · 36 unmodified lines
1693 /* Fix the size of the union. */1885 /* Fix the size of the union. */
1694 char padding[256];1886 char padding[256];
1695 };1887 };
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
1903If KVM_CAP_SYNC_REGS is defined, these fields allow userspace to access
1904certain guest registers without having to call SET/GET_*REGS. Thus we can
1905avoid some system call overhead if userspace has to handle the exit.
1906Userspace can query the validity of the structure by checking
1907kvm_valid_regs for specific bits. These bits are architecture specific
1908and usually define the validity of a groups of registers. (e.g. one bit
1909 for general purpose registers)
1910
1696};1911};
1697 1912
16986. Capabilities that can be enabled19136. 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
1741HTAB invisible to the guest.1956HTAB invisible to the guest.
1742 1957
1743When this capability is enabled, KVM_EXIT_PAPR_HCALL can occur.1958When this capability is enabled, KVM_EXIT_PAPR_HCALL can occur.
1959
19606.3 KVM_CAP_SW_TLB
1961
1962Architectures: ppc
1963Parameters: args[0] is the address of a struct kvm_config_tlb
1964Returns: 0 on success; -1 on error
1965
1966struct kvm_config_tlb {
1967 __u64 params;
1968 __u64 array;
1969 __u32 mmu_type;
1970 __u32 array_len;
1971};
1972
1973Configures the virtual CPU's TLB array, establishing a shared memory area
1974between userspace and KVM. The "params" and "array" fields are userspace
1975addresses of mmu-type-specific data structures. The "array_len" field is an
1976safety mechanism, and should be set to the size in bytes of the memory that
1977userspace has reserved for the array. It must be at least the size dictated
1978by "mmu_type" and "params".
1979
1980While KVM_RUN is active, the shared region is under control of KVM. Its
1981contents are undefined, and any modification by userspace results in
1982boundedly undefined behavior.
1983
1984On return from KVM_RUN, the shared region will reflect the current state of
1985the guest's TLB. If userspace makes any changes, it must call KVM_DIRTY_TLB
1986to tell KVM which entries have been changed, prior to calling KVM_RUN again
1987on this vcpu.
1988
1989For 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
81also define a new hypercall feature to indicate that the host can give you more81also define a new hypercall feature to indicate that the host can give you more
82registers. Only if the host supports the additional features, make use of them.82registers. Only if the host supports the additional features, make use of them.
83 83
84The magic page has the following layout as described in84The magic page layout is described by struct kvm_vcpu_arch_shared
85arch/powerpc/include/asm/kvm_para.h:85in arch/powerpc/include/asm/kvm_para.h.
86
87struct 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
104Additions to the page must only occur at the end. Struct fields are always 32
105or 64 bit aligned, depending on them being 32 or 64 bit wide respectively.
106 86
107Magic page features87Magic page features
108===================88===================
Documentation/vm/Makefile+0−8
@@ -1,8 +0,0 @@
1# kbuild trick to avoid linker error. Can be omitted if a module is built.
2obj- := dummy.o
3
4# List of programs to build
5hostprogs-y := page-types hugepage-mmap hugepage-shm map_hugetlb
6
7# Tell kbuild to always build the programs
8always := $(hostprogs-y)
Documentation/watchdog/00-INDEX+0−19
@@ -1,19 +0,0 @@
100-INDEX
2 - this file.
3convert_drivers_to_kernel_api.txt
4 - how-to for converting old watchdog drivers to the new kernel API.
5hpwdt.txt
6 - information on the HP iLO2 NMI watchdog
7pcwd-watchdog.txt
8 - documentation for Berkshire Products PC Watchdog ISA cards.
9src/
10 - directory holding watchdog related example programs.
11watchdog-api.txt
12 - description of the Linux Watchdog driver API.
13watchdog-kernel-api.txt
14 - description of the Linux WatchDog Timer Driver Core kernel API.
15watchdog-parameters.txt
16 - information on driver parameters (for drivers other than
17 the ones that have driver-specific files here)
18wdt.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
59 WDIOC_GETTIMEOUT:59 WDIOC_GETTIMEOUT:
60 No preparations needed60 No preparations needed
61 61
62 WDIOC_GETTIMELEFT:
63 It needs get_timeleft() callback to be defined. Otherwise it
64 will return EOPNOTSUPP
65
62 Other IOCTLs can be served using the ioctl-callback. Note that this is mainly66 Other IOCTLs can be served using the ioctl-callback. Note that this is mainly
63 intended for porting old drivers; new drivers should not invent private IOCTLs.67 intended for porting old drivers; new drivers should not invent private IOCTLs.
64 Private IOCTLs are processed first. When the callback returns with68 Private IOCTLs are processed first. When the callback returns with
Documentation/watchdog/watchdog-kernel-api.txt+7−4
@@ -1,6 +1,6 @@
1The Linux WatchDog Timer Driver Core kernel API.1The Linux WatchDog Timer Driver Core kernel API.
2===============================================2===============================================
3Last reviewed: 29-Nov-20113Last reviewed: 16-Mar-2012
4 4
5Wim Van Sebroeck <wim@iguana.be>5Wim Van Sebroeck <wim@iguana.be>
6 6
@@ -77,6 +77,7 @@ struct watchdog_ops { · 70 unmodified lines
77 int (*ping)(struct watchdog_device *);77 int (*ping)(struct watchdog_device *);
78 unsigned int (*status)(struct watchdog_device *);78 unsigned int (*status)(struct watchdog_device *);
79 int (*set_timeout)(struct watchdog_device *, unsigned int);79 int (*set_timeout)(struct watchdog_device *, unsigned int);
80 unsigned int (*get_timeleft)(struct watchdog_device *);
80 long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long);81 long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long);
81};82};
82 83
@@ -117,11 +118,13 @@ they are supported. These optional routines/operations are: · 34 unmodified lines
117 status of the device is reported with watchdog WDIOF_* status flags/bits.118 status of the device is reported with watchdog WDIOF_* status flags/bits.
118* set_timeout: this routine checks and changes the timeout of the watchdog119* set_timeout: this routine checks and changes the timeout of the watchdog
119 timer device. It returns 0 on success, -EINVAL for "parameter out of range"120 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 timeout121 and -EIO for "could not write value to the watchdog". On success this
121 value of the watchdog_device will be changed to the value that was just used122 routine should set the timeout value of the watchdog_device to the
122 to re-program the watchdog timer device.123 achieved timeout value (which may be different from the requested one
124 because the watchdog does not necessarily has a 1 second resolution).
123 (Note: the WDIOF_SETTIMEOUT needs to be set in the options field of the125 (Note: the WDIOF_SETTIMEOUT needs to be set in the options field of the
124 watchdog's info structure).126 watchdog's info structure).
127* get_timeleft: this routines returns the time that's left before a reset.
125* ioctl: if this routine is present then it will be called first before we do128* ioctl: if this routine is present then it will be called first before we do
126 our own internal ioctl call handling. This routine should return -ENOIOCTLCMD129 our own internal ioctl call handling. This routine should return -ENOIOCTLCMD
127 if a command is not supported. The parameters that are passed to the ioctl130 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
228L: linux-acpi@vger.kernel.org228L: linux-acpi@vger.kernel.org
229W: http://www.lesswatts.org/projects/acpi/229W: http://www.lesswatts.org/projects/acpi/
230Q: http://patchwork.kernel.org/project/linux-acpi/list/230Q: http://patchwork.kernel.org/project/linux-acpi/list/
231T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git231T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
232S: Supported232S: Supported
233F: drivers/acpi/233F: drivers/acpi/
234F: drivers/pnp/pnpacpi/234F: drivers/pnp/pnpacpi/
@@ -504,7 +504,7 @@ F: arch/x86/include/asm/geode.h · 269 unmodified lines
504AMD IOMMU (AMD-VI)504AMD IOMMU (AMD-VI)
505M: Joerg Roedel <joerg.roedel@amd.com>505M: Joerg Roedel <joerg.roedel@amd.com>
506L: iommu@lists.linux-foundation.org506L: iommu@lists.linux-foundation.org
507T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu.git507T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
508S: Supported508S: Supported
509F: drivers/iommu/amd_iommu*.[ch]509F: drivers/iommu/amd_iommu*.[ch]
510F: include/linux/amd-iommu.h510F: include/linux/amd-iommu.h
@@ -786,7 +786,6 @@ M: Sascha Hauer <kernel@pengutronix.de> · 275 unmodified lines
786L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)786L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
787S: Maintained787S: Maintained
788T: git git://git.pengutronix.de/git/imx/linux-2.6.git788T: git git://git.pengutronix.de/git/imx/linux-2.6.git
789F: arch/arm/mach-mx*/
790F: arch/arm/mach-imx/789F: arch/arm/mach-imx/
791F: arch/arm/plat-mxc/790F: arch/arm/plat-mxc/
792 791
@@ -816,9 +815,12 @@ S: Maintained · 23 unmodified lines
816 815
817ARM/H4700 (HP IPAQ HX4700) MACHINE SUPPORT816ARM/H4700 (HP IPAQ HX4700) MACHINE SUPPORT
818M: Philipp Zabel <philipp.zabel@gmail.com>817M: Philipp Zabel <philipp.zabel@gmail.com>
818M: Paul Parsons <lost.distance@yahoo.com>
819L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
819S: Maintained820S: Maintained
820F: arch/arm/mach-pxa/hx4700.c821F: arch/arm/mach-pxa/hx4700.c
821F: arch/arm/mach-pxa/include/mach/hx4700.h822F: arch/arm/mach-pxa/include/mach/hx4700.h
823F: sound/soc/pxa/hx4700.c
822 824
823ARM/HP JORNADA 7XX MACHINE SUPPORT825ARM/HP JORNADA 7XX MACHINE SUPPORT
824M: Kristoffer Ericson <kristoffer.ericson@gmail.com>826M: Kristoffer Ericson <kristoffer.ericson@gmail.com>
@@ -1249,7 +1251,6 @@ ATHEROS ATH5K WIRELESS DRIVER · 424 unmodified lines
1249M: Jiri Slaby <jirislaby@gmail.com>1251M: Jiri Slaby <jirislaby@gmail.com>
1250M: Nick Kossifidis <mickflemm@gmail.com>1252M: Nick Kossifidis <mickflemm@gmail.com>
1251M: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>1253M: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
1252M: Bob Copeland <me@bobcopeland.com>
1253L: linux-wireless@vger.kernel.org1254L: linux-wireless@vger.kernel.org
1254L: ath5k-devel@lists.ath5k.org1255L: ath5k-devel@lists.ath5k.org
1255W: http://wireless.kernel.org/en/users/Drivers/ath5k1256W: http://wireless.kernel.org/en/users/Drivers/ath5k
@@ -1520,8 +1521,8 @@ M: Gustavo Padovan <gustavo@padovan.org> · 264 unmodified lines
1520M: Johan Hedberg <johan.hedberg@gmail.com>1521M: Johan Hedberg <johan.hedberg@gmail.com>
1521L: linux-bluetooth@vger.kernel.org1522L: linux-bluetooth@vger.kernel.org
1522W: http://www.bluez.org/1523W: http://www.bluez.org/
1523T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git1524T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
1524T: git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git1525T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
1525S: Maintained1526S: Maintained
1526F: drivers/bluetooth/1527F: drivers/bluetooth/
1527 1528
@@ -1531,8 +1532,8 @@ M: Gustavo Padovan <gustavo@padovan.org> · 3 unmodified lines
1531M: Johan Hedberg <johan.hedberg@gmail.com>1532M: Johan Hedberg <johan.hedberg@gmail.com>
1532L: linux-bluetooth@vger.kernel.org1533L: linux-bluetooth@vger.kernel.org
1533W: http://www.bluez.org/1534W: http://www.bluez.org/
1534T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git1535T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
1535T: git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git1536T: git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
1536S: Maintained1537S: Maintained
1537F: net/bluetooth/1538F: net/bluetooth/
1538F: include/net/bluetooth/1539F: include/net/bluetooth/
@@ -1938,7 +1939,7 @@ F: drivers/connector/ · 399 unmodified lines
1938 1939
1939CONTROL GROUPS (CGROUPS)1940CONTROL GROUPS (CGROUPS)
1940M: Tejun Heo <tj@kernel.org>1941M: Tejun Heo <tj@kernel.org>
1941M: Li Zefan <lizf@cn.fujitsu.com>1942M: Li Zefan <lizefan@huawei.com>
1942L: containers@lists.linux-foundation.org1943L: containers@lists.linux-foundation.org
1943L: cgroups@vger.kernel.org1944L: cgroups@vger.kernel.org
1944T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git1945T: 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
2223S: Maintained2224S: Maintained
2224 2225
2225DEVICE-MAPPER (LVM)2226DEVICE-MAPPER (LVM)
2226P: Alasdair Kergon2227M: Alasdair Kergon <agk@redhat.com>
2228M: dm-devel@redhat.com
2227L: dm-devel@redhat.com2229L: dm-devel@redhat.com
2228W: http://sources.redhat.com/dm2230W: http://sources.redhat.com/dm
2229Q: http://patchwork.kernel.org/project/dm-devel/list/2231Q: http://patchwork.kernel.org/project/dm-devel/list/
2232T: quilt http://people.redhat.com/agk/patches/linux/editing/
2230S: Maintained2233S: Maintained
2231F: Documentation/device-mapper/2234F: Documentation/device-mapper/
2232F: drivers/md/dm*2235F: drivers/md/dm*
2236F: drivers/md/persistent-data/
2233F: include/linux/device-mapper.h2237F: include/linux/device-mapper.h
2234F: include/linux/dm-*.h2238F: include/linux/dm-*.h
2235 2239
@@ -2446,17 +2450,17 @@ F: fs/ecryptfs/ · 210 unmodified lines
2446 2450
2447EDAC-CORE2451EDAC-CORE
2448M: Doug Thompson <dougthompson@xmission.com>2452M: Doug Thompson <dougthompson@xmission.com>
2449L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2453L: linux-edac@vger.kernel.org
2450W: bluesmoke.sourceforge.net2454W: bluesmoke.sourceforge.net
2451S: Supported2455S: Supported
2452F: Documentation/edac.txt2456F: Documentation/edac.txt
2453F: drivers/edac/edac_*2457F: drivers/edac/
2454F: include/linux/edac.h2458F: include/linux/edac.h
2455 2459
2456EDAC-AMD642460EDAC-AMD64
2457M: Doug Thompson <dougthompson@xmission.com>2461M: Doug Thompson <dougthompson@xmission.com>
2458M: Borislav Petkov <borislav.petkov@amd.com>2462M: Borislav Petkov <borislav.petkov@amd.com>
2459L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2463L: linux-edac@vger.kernel.org
2460W: bluesmoke.sourceforge.net2464W: bluesmoke.sourceforge.net
2461S: Supported2465S: Supported
2462F: drivers/edac/amd64_edac*2466F: drivers/edac/amd64_edac*
@@ -2464,35 +2468,35 @@ F: drivers/edac/amd64_edac* · 1 unmodified line
2464EDAC-E752X2468EDAC-E752X
2465M: Mark Gross <mark.gross@intel.com>2469M: Mark Gross <mark.gross@intel.com>
2466M: Doug Thompson <dougthompson@xmission.com>2470M: Doug Thompson <dougthompson@xmission.com>
2467L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2471L: linux-edac@vger.kernel.org
2468W: bluesmoke.sourceforge.net2472W: bluesmoke.sourceforge.net
2469S: Maintained2473S: Maintained
2470F: drivers/edac/e752x_edac.c2474F: drivers/edac/e752x_edac.c
2471 2475
2472EDAC-E7XXX2476EDAC-E7XXX
2473M: Doug Thompson <dougthompson@xmission.com>2477M: Doug Thompson <dougthompson@xmission.com>
2474L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2478L: linux-edac@vger.kernel.org
2475W: bluesmoke.sourceforge.net2479W: bluesmoke.sourceforge.net
2476S: Maintained2480S: Maintained
2477F: drivers/edac/e7xxx_edac.c2481F: drivers/edac/e7xxx_edac.c
2478 2482
2479EDAC-I82443BXGX2483EDAC-I82443BXGX
2480M: Tim Small <tim@buttersideup.com>2484M: Tim Small <tim@buttersideup.com>
2481L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2485L: linux-edac@vger.kernel.org
2482W: bluesmoke.sourceforge.net2486W: bluesmoke.sourceforge.net
2483S: Maintained2487S: Maintained
2484F: drivers/edac/i82443bxgx_edac.c2488F: drivers/edac/i82443bxgx_edac.c
2485 2489
2486EDAC-I30002490EDAC-I3000
2487M: Jason Uhlenkott <juhlenko@akamai.com>2491M: Jason Uhlenkott <juhlenko@akamai.com>
2488L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2492L: linux-edac@vger.kernel.org
2489W: bluesmoke.sourceforge.net2493W: bluesmoke.sourceforge.net
2490S: Maintained2494S: Maintained
2491F: drivers/edac/i3000_edac.c2495F: drivers/edac/i3000_edac.c
2492 2496
2493EDAC-I50002497EDAC-I5000
2494M: Doug Thompson <dougthompson@xmission.com>2498M: Doug Thompson <dougthompson@xmission.com>
2495L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2499L: linux-edac@vger.kernel.org
2496W: bluesmoke.sourceforge.net2500W: bluesmoke.sourceforge.net
2497S: Maintained2501S: Maintained
2498F: drivers/edac/i5000_edac.c2502F: drivers/edac/i5000_edac.c
@@ -2521,21 +2525,21 @@ F: drivers/edac/i7core_edac.c · 22 unmodified lines
2521EDAC-I82975X2525EDAC-I82975X
2522M: Ranganathan Desikan <ravi@jetztechnologies.com>2526M: Ranganathan Desikan <ravi@jetztechnologies.com>
2523M: "Arvind R." <arvino55@gmail.com>2527M: "Arvind R." <arvino55@gmail.com>
2524L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2528L: linux-edac@vger.kernel.org
2525W: bluesmoke.sourceforge.net2529W: bluesmoke.sourceforge.net
2526S: Maintained2530S: Maintained
2527F: drivers/edac/i82975x_edac.c2531F: drivers/edac/i82975x_edac.c
2528 2532
2529EDAC-PASEMI2533EDAC-PASEMI
2530M: Egor Martovetsky <egor@pasemi.com>2534M: Egor Martovetsky <egor@pasemi.com>
2531L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2535L: linux-edac@vger.kernel.org
2532W: bluesmoke.sourceforge.net2536W: bluesmoke.sourceforge.net
2533S: Maintained2537S: Maintained
2534F: drivers/edac/pasemi_edac.c2538F: drivers/edac/pasemi_edac.c
2535 2539
2536EDAC-R826002540EDAC-R82600
2537M: Tim Small <tim@buttersideup.com>2541M: Tim Small <tim@buttersideup.com>
2538L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)2542L: linux-edac@vger.kernel.org
2539W: bluesmoke.sourceforge.net2543W: bluesmoke.sourceforge.net
2540S: Maintained2544S: Maintained
2541F: drivers/edac/r82600_edac.c2545F: drivers/edac/r82600_edac.c
@@ -3559,17 +3563,13 @@ L: linux-pm@vger.kernel.org · 1017 unmodified lines
3559S: Supported3563S: Supported
3560F: arch/x86/platform/mrst/pmu.*3564F: arch/x86/platform/mrst/pmu.*
3561 3565
3562INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT3566INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
3567M: Stanislav Yakovlev <stas.yakovlev@gmail.com>
3563L: linux-wireless@vger.kernel.org3568L: linux-wireless@vger.kernel.org
3564S: Orphan3569S: Maintained
3565F: Documentation/networking/README.ipw21003570F: Documentation/networking/README.ipw2100
3566F: drivers/net/wireless/ipw2x00/ipw2100.*
3567
3568INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT
3569L: linux-wireless@vger.kernel.org
3570S: Orphan
3571F: Documentation/networking/README.ipw22003571F: Documentation/networking/README.ipw2200
3572F: drivers/net/wireless/ipw2x00/ipw2200.*3572F: drivers/net/wireless/ipw2x00/
3573 3573
3574INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)3574INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
3575M: Joseph Cihula <joseph.cihula@intel.com>3575M: Joseph Cihula <joseph.cihula@intel.com>
@@ -4316,6 +4316,13 @@ W: http://www.kernel.org/doc/man-pages · 740 unmodified lines
4316L: linux-man@vger.kernel.org4316L: linux-man@vger.kernel.org
4317S: Maintained4317S: Maintained
4318 4318
4319MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
4320M: Mirko Lindner <mlindner@marvell.com>
4321M: Stephen Hemminger <shemminger@vyatta.com>
4322L: netdev@vger.kernel.org
4323S: Maintained
4324F: drivers/net/ethernet/marvell/sk*
4325
4319MARVELL LIBERTAS WIRELESS DRIVER4326MARVELL LIBERTAS WIRELESS DRIVER
4320M: Dan Williams <dcbw@redhat.com>4327M: Dan Williams <dcbw@redhat.com>
4321L: libertas-dev@lists.infradead.org4328L: libertas-dev@lists.infradead.org
@@ -4346,12 +4353,6 @@ M: Nicolas Pitre <nico@fluxnic.net> · 24 unmodified lines
4346S: Odd Fixes4353S: Odd Fixes
4347F: drivers/mmc/host/mvsdio.*4354F: drivers/mmc/host/mvsdio.*
4348 4355
4349MARVELL YUKON / SYSKONNECT DRIVER
4350M: Mirko Lindner <mlindner@syskonnect.de>
4351M: Ralph Roesler <rroesler@syskonnect.de>
4352W: http://www.syskonnect.com
4353S: Supported
4354
4355MATROX FRAMEBUFFER DRIVER4356MATROX FRAMEBUFFER DRIVER
4356L: linux-fbdev@vger.kernel.org4357L: linux-fbdev@vger.kernel.org
4357S: Orphan4358S: Orphan
@@ -4539,8 +4540,7 @@ S: Supported · 181 unmodified lines
4539F: drivers/net/ethernet/myricom/myri10ge/4540F: drivers/net/ethernet/myricom/myri10ge/
4540 4541
4541NATSEMI ETHERNET DRIVER (DP8381x)4542NATSEMI ETHERNET DRIVER (DP8381x)
4542M: Tim Hockin <thockin@hockin.org>4543S: Orphan
4543S: Maintained
4544F: drivers/net/ethernet/natsemi/natsemi.c4544F: drivers/net/ethernet/natsemi/natsemi.c
4545 4545
4546NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER4546NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER
@@ -4809,6 +4809,7 @@ F: arch/arm/mach-omap2/clockdomain2xxx_3xxx.c · 262 unmodified lines
4809F: arch/arm/mach-omap2/clockdomain44xx.c4809F: arch/arm/mach-omap2/clockdomain44xx.c
4810 4810
4811OMAP AUDIO SUPPORT4811OMAP AUDIO SUPPORT
4812M: Peter Ujfalusi <peter.ujfalusi@ti.com>
4812M: Jarkko Nikula <jarkko.nikula@bitmer.com>4813M: Jarkko Nikula <jarkko.nikula@bitmer.com>
4813L: alsa-devel@alsa-project.org (subscribers-only)4814L: alsa-devel@alsa-project.org (subscribers-only)
4814L: linux-omap@vger.kernel.org4815L: linux-omap@vger.kernel.org
@@ -5123,6 +5124,11 @@ F: drivers/i2c/busses/i2c-pca-* · 308 unmodified lines
5123F: include/linux/i2c-algo-pca.h5124F: include/linux/i2c-algo-pca.h
5124F: include/linux/i2c-pca-platform.h5125F: include/linux/i2c-pca-platform.h
5125 5126
5127PCDP - PRIMARY CONSOLE AND DEBUG PORT
5128M: Khalid Aziz <khalid.aziz@hp.com>
5129S: Maintained
5130F: drivers/firmware/pcdp.*
5131
5126PCI ERROR RECOVERY5132PCI ERROR RECOVERY
5127M: Linas Vepstas <linasvepstas@gmail.com>5133M: Linas Vepstas <linasvepstas@gmail.com>
5128L: linux-pci@vger.kernel.org5134L: linux-pci@vger.kernel.org
@@ -5131,7 +5137,7 @@ F: Documentation/PCI/pci-error-recovery.txt · 2 unmodified lines
5131F: Documentation/powerpc/eeh-pci-error-recovery.txt5137F: Documentation/powerpc/eeh-pci-error-recovery.txt
5132 5138
5133PCI SUBSYSTEM5139PCI SUBSYSTEM
5134M: Jesse Barnes <jbarnes@virtuousgeek.org>5140M: Bjorn Helgaas <bhelgaas@google.com>
5135L: linux-pci@vger.kernel.org5141L: linux-pci@vger.kernel.org
5136Q: http://patchwork.kernel.org/project/linux-pci/list/5142Q: http://patchwork.kernel.org/project/linux-pci/list/
5137T: git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci.git5143T: git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci.git
@@ -5141,7 +5147,7 @@ F: drivers/pci/ · 3 unmodified lines
5141F: include/linux/pci*5147F: include/linux/pci*
5142 5148
5143PCI HOTPLUG5149PCI HOTPLUG
5144M: Jesse Barnes <jbarnes@virtuousgeek.org>5150M: Bjorn Helgaas <bhelgaas@google.com>
5145L: linux-pci@vger.kernel.org5151L: linux-pci@vger.kernel.org
5146S: Supported5152S: Supported
5147F: drivers/pci/hotplug5153F: drivers/pci/hotplug
@@ -5187,7 +5193,7 @@ F: kernel/delayacct.c · 39 unmodified lines
5187PERFORMANCE EVENTS SUBSYSTEM5193PERFORMANCE EVENTS SUBSYSTEM
5188M: Peter Zijlstra <a.p.zijlstra@chello.nl>5194M: Peter Zijlstra <a.p.zijlstra@chello.nl>
5189M: Paul Mackerras <paulus@samba.org>5195M: Paul Mackerras <paulus@samba.org>
5190M: Ingo Molnar <mingo@elte.hu>5196M: Ingo Molnar <mingo@redhat.com>
5191M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>5197M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
5192T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core5198T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
5193S: Supported5199S: Supported
@@ -5427,7 +5433,7 @@ F: drivers/media/video/pvrusb2/ · 233 unmodified lines
5427PXA2xx/PXA3xx SUPPORT5433PXA2xx/PXA3xx SUPPORT
5428M: Eric Miao <eric.y.miao@gmail.com>5434M: Eric Miao <eric.y.miao@gmail.com>
5429M: Russell King <linux@arm.linux.org.uk>5435M: Russell King <linux@arm.linux.org.uk>
5430M: Haojian Zhuang <haojian.zhuang@marvell.com>5436M: Haojian Zhuang <haojian.zhuang@gmail.com>
5431L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)5437L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
5432T: git git://github.com/hzhuang1/linux.git5438T: git git://github.com/hzhuang1/linux.git
5433T: git git://git.linaro.org/people/ycmiao/pxa-linux.git5439T: git git://git.linaro.org/people/ycmiao/pxa-linux.git
@@ -5442,7 +5448,7 @@ F: sound/soc/pxa · 8 unmodified lines
5442 5448
5443MMP SUPPORT5449MMP SUPPORT
5444M: Eric Miao <eric.y.miao@gmail.com>5450M: Eric Miao <eric.y.miao@gmail.com>
5445M: Haojian Zhuang <haojian.zhuang@marvell.com>5451M: Haojian Zhuang <haojian.zhuang@gmail.com>
5446L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)5452L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
5447T: git git://github.com/hzhuang1/linux.git5453T: git git://github.com/hzhuang1/linux.git
5448T: git git://git.linaro.org/people/ycmiao/pxa-linux.git5454T: git git://git.linaro.org/people/ycmiao/pxa-linux.git
@@ -5639,6 +5645,13 @@ S: Supported · 190 unmodified lines
5639F: drivers/base/regmap/5645F: drivers/base/regmap/
5640F: include/linux/regmap.h5646F: include/linux/regmap.h
5641 5647
5648REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM
5649M: Ohad Ben-Cohen <ohad@wizery.com>
5650S: Maintained
5651F: drivers/remoteproc/
5652F: Documentation/remoteproc.txt
5653F: include/linux/remoteproc.h
5654
5642RFKILL5655RFKILL
5643M: Johannes Berg <johannes@sipsolutions.net>5656M: Johannes Berg <johannes@sipsolutions.net>
5644L: linux-wireless@vger.kernel.org5657L: linux-wireless@vger.kernel.org
@@ -5771,6 +5784,12 @@ F: drivers/media/common/saa7146* · 126 unmodified lines
5771F: drivers/media/video/*7146*5784F: drivers/media/video/*7146*
5772F: include/media/*7146*5785F: include/media/*7146*
5773 5786
5787SAMSUNG LAPTOP DRIVER
5788M: Corentin Chary <corentincj@iksaif.net>
5789L: platform-driver-x86@vger.kernel.org
5790S: Maintained
5791F: drivers/platform/x86/samsung-laptop.c
5792
5774SAMSUNG AUDIO (ASoC) DRIVERS5793SAMSUNG AUDIO (ASoC) DRIVERS
5775M: Sangbeom Kim <sbkim73@samsung.com>5794M: Sangbeom Kim <sbkim73@samsung.com>
5776L: alsa-devel@alsa-project.org (moderated for non-subscribers)5795L: alsa-devel@alsa-project.org (moderated for non-subscribers)
@@ -5822,7 +5841,7 @@ S: Maintained · 45 unmodified lines
5822F: drivers/watchdog/sc1200wdt.c5841F: drivers/watchdog/sc1200wdt.c
5823 5842
5824SCHEDULER5843SCHEDULER
5825M: Ingo Molnar <mingo@elte.hu>5844M: Ingo Molnar <mingo@redhat.com>
5826M: Peter Zijlstra <peterz@infradead.org>5845M: Peter Zijlstra <peterz@infradead.org>
5827T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core5846T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
5828S: Maintained5847S: Maintained
@@ -6069,7 +6088,8 @@ F: arch/arm/mach-s3c2410/bast-irq.c · 240 unmodified lines
6069TI DAVINCI MACHINE SUPPORT6088TI DAVINCI MACHINE SUPPORT
6070M: Sekhar Nori <nsekhar@ti.com>6089M: Sekhar Nori <nsekhar@ti.com>
6071M: Kevin Hilman <khilman@ti.com>6090M: Kevin Hilman <khilman@ti.com>
6072L: davinci-linux-open-source@linux.davincidsp.com (subscribers-only)6091L: davinci-linux-open-source@linux.davincidsp.com (moderated for non-subscribers)
6092T: git git://gitorious.org/linux-davinci/linux-davinci.git
6073Q: http://patchwork.kernel.org/project/linux-davinci/list/6093Q: http://patchwork.kernel.org/project/linux-davinci/list/
6074S: Supported6094S: Supported
6075F: arch/arm/mach-davinci6095F: arch/arm/mach-davinci
@@ -6109,12 +6129,6 @@ W: http://www.winischhofer.at/linuxsisusbvga.shtml · 33 unmodified lines
6109S: Maintained6129S: Maintained
6110F: drivers/usb/misc/sisusbvga/6130F: drivers/usb/misc/sisusbvga/
6111 6131
6112SKGE, SKY2 10/100/1000 GIGABIT ETHERNET DRIVERS
6113M: Stephen Hemminger <shemminger@vyatta.com>
6114L: netdev@vger.kernel.org
6115S: Maintained
6116F: drivers/net/ethernet/marvell/sk*
6117
6118SLAB ALLOCATOR6132SLAB ALLOCATOR
6119M: Christoph Lameter <cl@linux-foundation.org>6133M: Christoph Lameter <cl@linux-foundation.org>
6120M: Pekka Enberg <penberg@kernel.org>6134M: Pekka Enberg <penberg@kernel.org>
@@ -6280,6 +6294,15 @@ F: drivers/tty/serial/sunsu.c · 159 unmodified lines
6280F: drivers/tty/serial/sunzilog.c6294F: drivers/tty/serial/sunzilog.c
6281F: drivers/tty/serial/sunzilog.h6295F: drivers/tty/serial/sunzilog.h
6282 6296
6297SPARSE CHECKER
6298M: "Christopher Li" <sparse@chrisli.org>
6299L: linux-sparse@vger.kernel.org
6300W: https://sparse.wiki.kernel.org/
6301T: git git://git.kernel.org/pub/scm/devel/sparse/sparse.git
6302T: git git://git.kernel.org/pub/scm/devel/sparse/chrisl/sparse.git
6303S: Maintained
6304F: include/linux/compiler.h
6305
6283SPEAR PLATFORM SUPPORT6306SPEAR PLATFORM SUPPORT
6284M: Viresh Kumar <viresh.kumar@st.com>6307M: Viresh Kumar <viresh.kumar@st.com>
6285L: spear-devel@list.st.com6308L: spear-devel@list.st.com
@@ -6455,6 +6478,7 @@ S: Odd Fixes · 169 unmodified lines
6455F: drivers/staging/olpc_dcon/6478F: drivers/staging/olpc_dcon/
6456 6479
6457STAGING - OZMO DEVICES USB OVER WIFI DRIVER6480STAGING - OZMO DEVICES USB OVER WIFI DRIVER
6481M: Rupesh Gujare <rgujare@ozmodevices.com>
6458M: Chris Kelly <ckelly@ozmodevices.com>6482M: Chris Kelly <ckelly@ozmodevices.com>
6459S: Maintained6483S: Maintained
6460F: drivers/staging/ozwpan/6484F: drivers/staging/ozwpan/
@@ -6612,9 +6636,10 @@ F: include/linux/if_team.h · 151 unmodified lines
6612TEGRA SUPPORT6636TEGRA SUPPORT
6613M: Colin Cross <ccross@android.com>6637M: Colin Cross <ccross@android.com>
6614M: Olof Johansson <olof@lixom.net>6638M: Olof Johansson <olof@lixom.net>
6615M: Stephen Warren <swarren@nvidia.com>6639M: Stephen Warren <swarren@wwwdotorg.org>
6616L: linux-tegra@vger.kernel.org6640L: linux-tegra@vger.kernel.org
6617T: git git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git6641Q: http://patchwork.ozlabs.org/project/linux-tegra/list/
6642T: git git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git
6618S: Supported6643S: Supported
6619F: arch/arm/mach-tegra6644F: arch/arm/mach-tegra
6620 6645
@@ -7449,8 +7474,7 @@ F: include/linux/wm97xx.h · 828 unmodified lines
7449 7474
7450WOLFSON MICROELECTRONICS DRIVERS7475WOLFSON MICROELECTRONICS DRIVERS
7451M: Mark Brown <broonie@opensource.wolfsonmicro.com>7476M: Mark Brown <broonie@opensource.wolfsonmicro.com>
7452M: Ian Lartey <ian@opensource.wolfsonmicro.com>7477L: patches@opensource.wolfsonmicro.com
7453M: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
7454T: git git://opensource.wolfsonmicro.com/linux-2.6-asoc7478T: git git://opensource.wolfsonmicro.com/linux-2.6-asoc
7455T: git git://opensource.wolfsonmicro.com/linux-2.6-audioplus7479T: git git://opensource.wolfsonmicro.com/linux-2.6-audioplus
7456W: http://opensource.wolfsonmicro.com/content/linux-drivers-wolfson-devices7480W: http://opensource.wolfsonmicro.com/content/linux-drivers-wolfson-devices
Makefile+3−3
@@ -1,7 +1,7 @@
1VERSION = 31VERSION = 3
2PATCHLEVEL = 32PATCHLEVEL = 4
3SUBLEVEL = 03SUBLEVEL = 0
4EXTRAVERSION =4EXTRAVERSION = -rc3
5NAME = Saber-toothed Squirrel5NAME = Saber-toothed Squirrel
6 6
7# *DOCUMENTATION*7# *DOCUMENTATION*
@@ -1170,7 +1170,7 @@ MRPROPER_FILES += .config .config.old .version .old_version \ · 1162 unmodified lines
1170#1170#
1171clean: rm-dirs := $(CLEAN_DIRS)1171clean: rm-dirs := $(CLEAN_DIRS)
1172clean: rm-files := $(CLEAN_FILES)1172clean: rm-files := $(CLEAN_FILES)
1173clean-dirs := $(addprefix _clean_, . $(vmlinux-alldirs) Documentation)1173clean-dirs := $(addprefix _clean_, . $(vmlinux-alldirs) Documentation samples)
1174 1174
1175PHONY += $(clean-dirs) clean archclean1175PHONY += $(clean-dirs) clean archclean
1176$(clean-dirs):1176$(clean-dirs):
arch/Kconfig+3−0
@@ -213,4 +213,7 @@ config HAVE_CMPXCHG_LOCAL · 212 unmodified lines
213config HAVE_CMPXCHG_DOUBLE213config HAVE_CMPXCHG_DOUBLE
214 bool214 bool
215 215
216config ARCH_WANT_OLD_COMPAT_IPC
217 bool
218
216source "kernel/gcov/Kconfig"219source "kernel/gcov/Kconfig"
arch/alpha/boot/bootp.c+0−1
@@ -13,7 +13,6 @@ · 12 unmodified lines
13#include <generated/utsrelease.h>13#include <generated/utsrelease.h>
14#include <linux/mm.h>14#include <linux/mm.h>
15 15
16#include <asm/system.h>
17#include <asm/console.h>16#include <asm/console.h>
18#include <asm/hwrpb.h>17#include <asm/hwrpb.h>
19#include <asm/pgtable.h>18#include <asm/pgtable.h>
arch/alpha/boot/bootpz.c+0−1
@@ -15,7 +15,6 @@ · 14 unmodified lines
15#include <generated/utsrelease.h>15#include <generated/utsrelease.h>
16#include <linux/mm.h>16#include <linux/mm.h>
17 17
18#include <asm/system.h>
19#include <asm/console.h>18#include <asm/console.h>
20#include <asm/hwrpb.h>19#include <asm/hwrpb.h>
21#include <asm/pgtable.h>20#include <asm/pgtable.h>
arch/alpha/boot/head.S+0−1
@@ -4,7 +4,6 @@ · 3 unmodified lines
4 * initial bootloader stuff..4 * initial bootloader stuff..
5 */5 */
6 6
7#include <asm/system.h>
8 7
9 .set noreorder8 .set noreorder
10 .globl __start9 .globl __start
arch/alpha/boot/main.c+0−1
@@ -11,7 +11,6 @@ · 10 unmodified lines
11#include <generated/utsrelease.h>11#include <generated/utsrelease.h>
12#include <linux/mm.h>12#include <linux/mm.h>
13 13
14#include <asm/system.h>
15#include <asm/console.h>14#include <asm/console.h>
16#include <asm/hwrpb.h>15#include <asm/hwrpb.h>
17#include <asm/pgtable.h>16#include <asm/pgtable.h>
arch/alpha/include/asm/atomic.h+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
3 3
4#include <linux/types.h>4#include <linux/types.h>
5#include <asm/barrier.h>5#include <asm/barrier.h>
6#include <asm/system.h>6#include <asm/cmpxchg.h>
7 7
8/*8/*
9 * Atomic operations that C can't guarantee us. Useful for9 * 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
21#define AT_L2_CACHESHAPE 3621#define AT_L2_CACHESHAPE 36
22#define AT_L3_CACHESHAPE 3722#define AT_L3_CACHESHAPE 37
23 23
24#define AT_VECTOR_SIZE_ARCH 4 /* entries in ARCH_DLINFO */
25
24#endif /* __ASM_ALPHA_AUXVEC_H */26#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 @@
1#ifndef __ALPHA_LCA__H__1#ifndef __ALPHA_LCA__H__
2#define __ALPHA_LCA__H__2#define __ALPHA_LCA__H__
3 3
4#include <asm/system.h>
5#include <asm/compiler.h>4#include <asm/compiler.h>
5#include <asm/mce.h>
6 6
7/*7/*
8 * Low Cost Alpha (LCA) definitions (these apply to 21066 and 21068,8 * 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
7 7
8#include <linux/types.h>8#include <linux/types.h>
9#include <asm/compiler.h>9#include <asm/compiler.h>
10#include <asm/mce.h>
10 11
11/*12/*
12 * MCPCIA is the internal name for a core logic chipset which provides13 * 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
7#include <linux/types.h>7#include <linux/types.h>
8#include <linux/spinlock.h>8#include <linux/spinlock.h>
9#include <asm/compiler.h>9#include <asm/compiler.h>
10#include <asm/system.h>
11 10
12/*11/*
13 * T2 is the internal name for the core logic chipset which provides12 * 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
12 12
13#include <asm-generic/dma-mapping-common.h>13#include <asm-generic/dma-mapping-common.h>
14 14
15static inline void *dma_alloc_coherent(struct device *dev, size_t size,15#define dma_alloc_coherent(d,s,h,f) dma_alloc_attrs(d,s,h,f,NULL)
16 dma_addr_t *dma_handle, gfp_t gfp)16
17static 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)
17{20{
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);
19}22}
20 23
21static inline void dma_free_coherent(struct device *dev, size_t size,24#define dma_free_coherent(d,s,c,h) dma_free_attrs(d,s,c,h,NULL)
22 void *vaddr, dma_addr_t dma_handle)25
26static inline void dma_free_attrs(struct device *dev, size_t size,
27 void *vaddr, dma_addr_t dma_handle,
28 struct dma_attrs *attrs)
23{29{
24 get_dma_ops(dev)->free_coherent(dev, size, vaddr, dma_handle);30 get_dma_ops(dev)->free(dev, size, vaddr, dma_handle, attrs);
25}31}
26 32
27static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)33static 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
2#define __ASM_ALPHA_ELF_H2#define __ASM_ALPHA_ELF_H
3 3
4#include <asm/auxvec.h>4#include <asm/auxvec.h>
5#include <asm/special_insns.h>
5 6
6/* Special values for the st_other field in the symbol table. */7/* Special values for the st_other field in the symbol table. */
7 8
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 @@
1#ifndef __ASM_ALPHA_FPU_H1#ifndef __ASM_ALPHA_FPU_H
2#define __ASM_ALPHA_FPU_H2#define __ASM_ALPHA_FPU_H
3 3
4#include <asm/special_insns.h>
5
4/*6/*
5 * Alpha floating-point control register defines:7 * Alpha floating-point control register defines:
6 */8 */
arch/alpha/include/asm/io.h+0−1
@@ -6,7 +6,6 @@ · 5 unmodified lines
6#include <linux/kernel.h>6#include <linux/kernel.h>
7#include <linux/mm.h>7#include <linux/mm.h>
8#include <asm/compiler.h>8#include <asm/compiler.h>
9#include <asm/system.h>
10#include <asm/pgtable.h>9#include <asm/pgtable.h>
11#include <asm/machvec.h>10#include <asm/machvec.h>
12#include <asm/hwrpb.h>11#include <asm/hwrpb.h>
arch/alpha/include/asm/irqflags.h+1−1
@@ -1,7 +1,7 @@
1#ifndef __ALPHA_IRQFLAGS_H1#ifndef __ALPHA_IRQFLAGS_H
2#define __ALPHA_IRQFLAGS_H2#define __ALPHA_IRQFLAGS_H
3 3
4#include <asm/system.h>4#include <asm/pal.h>
5 5
6#define IPL_MIN 06#define IPL_MIN 0
7#define IPL_SW0 17#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 */
8struct 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 */
24struct 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
58struct 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
56#define MADV_HUGEPAGE 14 /* Worth backing with hugepages */56#define MADV_HUGEPAGE 14 /* Worth backing with hugepages */
57#define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages */57#define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages */
58 58
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
59/* compatibility flags */63/* compatibility flags */
60#define MAP_FILE 064#define MAP_FILE 0
61 65
arch/alpha/include/asm/mmu_context.h+0−1
@@ -7,7 +7,6 @@ · 6 unmodified lines
7 * Copyright (C) 1996, Linus Torvalds7 * Copyright (C) 1996, Linus Torvalds
8 */8 */
9 9
10#include <asm/system.h>
11#include <asm/machvec.h>10#include <asm/machvec.h>
12#include <asm/compiler.h>11#include <asm/compiler.h>
13#include <asm-generic/mm_hooks.h>12#include <asm-generic/mm_hooks.h>
arch/alpha/include/asm/pal.h+112−0
@@ -48,4 +48,116 @@ · 47 unmodified lines
48#define PAL_retsys 6148#define PAL_retsys 61
49#define PAL_rti 6349#define PAL_rti 63
50 50
51#ifdef __KERNEL__
52#ifndef __ASSEMBLY__
53
54extern 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) \
64extern 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) \
76extern 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) \
87extern 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) \
99extern 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) \
112extern 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
51#endif /* __ALPHA_PAL_H */163#endif /* __ALPHA_PAL_H */
arch/alpha/include/asm/pci.h+1−6
@@ -7,6 +7,7 @@ · 6 unmodified lines
7#include <linux/dma-mapping.h>7#include <linux/dma-mapping.h>
8#include <asm/scatterlist.h>8#include <asm/scatterlist.h>
9#include <asm/machvec.h>9#include <asm/machvec.h>
10#include <asm-generic/pci-bridge.h>
10 11
11/*12/*
12 * The following structure is used to manage multiple PCI busses.13 * 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
99 return channel ? 15 : 14;100 return channel ? 15 : 14;
100}101}
101 102
102extern void pcibios_resource_to_bus(struct pci_dev *, struct pci_bus_region *,
103 struct resource *);
104
105extern void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
106 struct pci_bus_region *region);
107
108#define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index103#define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index
109 104
110static inline int pci_proc_domain(struct pci_bus *bus)105static inline int pci_proc_domain(struct pci_bus *bus)
arch/alpha/include/asm/pgtable.h+1−0
@@ -15,6 +15,7 @@ · 14 unmodified lines
15#include <asm/page.h>15#include <asm/page.h>
16#include <asm/processor.h> /* For TASK_SIZE */16#include <asm/processor.h> /* For TASK_SIZE */
17#include <asm/machvec.h>17#include <asm/machvec.h>
18#include <asm/setup.h>
18 19
19struct mm_struct;20struct mm_struct;
20struct vm_area_struct;21struct vm_area_struct;
arch/alpha/include/asm/posix_types.h+5−108
@@ -8,116 +8,13 @@ · 7 unmodified lines
8 */8 */
9 9
10typedef unsigned int __kernel_ino_t;10typedef unsigned int __kernel_ino_t;
11typedef unsigned int __kernel_mode_t;11#define __kernel_ino_t __kernel_ino_t
12typedef unsigned int __kernel_nlink_t;
13typedef long __kernel_off_t;
14typedef long long __kernel_loff_t;
15typedef int __kernel_pid_t;
16typedef int __kernel_ipc_pid_t;
17typedef unsigned int __kernel_uid_t;
18typedef unsigned int __kernel_gid_t;
19typedef unsigned long __kernel_size_t;
20typedef long __kernel_ssize_t;
21typedef long __kernel_ptrdiff_t;
22typedef long __kernel_time_t;
23typedef long __kernel_suseconds_t;
24typedef long __kernel_clock_t;
25typedef int __kernel_daddr_t;
26typedef char * __kernel_caddr_t;
27typedef unsigned long __kernel_sigset_t; /* at least 32 bits */
28typedef unsigned short __kernel_uid16_t;
29typedef unsigned short __kernel_gid16_t;
30typedef int __kernel_clockid_t;
31typedef int __kernel_timer_t;
32
33typedef struct {
34 int val[2];
35} __kernel_fsid_t;
36
37typedef __kernel_uid_t __kernel_old_uid_t;
38typedef __kernel_gid_t __kernel_old_gid_t;
39typedef __kernel_uid_t __kernel_uid32_t;
40typedef __kernel_gid_t __kernel_gid32_t;
41
42typedef 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: */
57 12
58#undef __FD_SET13typedef unsigned int __kernel_nlink_t;
59static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)14#define __kernel_nlink_t __kernel_nlink_t
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
67static __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
75static __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
87static __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}
118 15
119#endif /* __GNUC__ */16typedef unsigned long __kernel_sigset_t; /* at least 32 bits */
120 17
121#endif /* __KERNEL__ */18#include <asm-generic/posix_types.h>
122 19
123#endif /* _ALPHA_POSIX_TYPES_H */20#endif /* _ALPHA_POSIX_TYPES_H */
arch/alpha/include/asm/setup.h+36−0
@@ -3,4 +3,40 @@ · 2 unmodified lines
3 3
4#define COMMAND_LINE_SIZE 2564#define COMMAND_LINE_SIZE 256
5 5
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
6#endif42#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
4enum 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
28enum 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 @@
1#ifndef _ALPHA_SPINLOCK_H1#ifndef _ALPHA_SPINLOCK_H
2#define _ALPHA_SPINLOCK_H2#define _ALPHA_SPINLOCK_H
3 3
4#include <asm/system.h>
5#include <linux/kernel.h>4#include <linux/kernel.h>
6#include <asm/current.h>5#include <asm/current.h>
7 6
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
5struct task_struct;
6extern 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 */
57struct 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 */
73struct 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
107struct 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
131extern 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
140struct task_struct;
141extern 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
149enum 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
173enum 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) \
187extern 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) \
199extern 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) \
210extern 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) \
222extern 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) \
235extern 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_H1#ifndef _ALPHA_CMPXCHG_H
2#error Do not include xchg.h directly!2#error Do not include xchg.h directly!
3#else3#else
4/*4/*
5 * xchg/xchg_local and cmpxchg/cmpxchg_local share the same code5 * xchg/xchg_local and cmpxchg/cmpxchg_local share the same code
6 * except that local version do not have the expensive memory barrier.6 * 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.
8 */8 */
9 9
10/*10/*
arch/alpha/kernel/core_apecs.c+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21 21
22#include <asm/ptrace.h>22#include <asm/ptrace.h>
23#include <asm/smp.h>23#include <asm/smp.h>
24#include <asm/mce.h>
24 25
25#include "proto.h"26#include "proto.h"
26#include "pci_impl.h"27#include "pci_impl.h"
arch/alpha/kernel/core_cia.c+1−0
@@ -23,6 +23,7 @@ · 22 unmodified lines
23#include <linux/bootmem.h>23#include <linux/bootmem.h>
24 24
25#include <asm/ptrace.h>25#include <asm/ptrace.h>
26#include <asm/mce.h>
26 27
27#include "proto.h"28#include "proto.h"
28#include "pci_impl.h"29#include "pci_impl.h"
arch/alpha/kernel/core_t2.c+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21 21
22#include <asm/ptrace.h>22#include <asm/ptrace.h>
23#include <asm/delay.h>23#include <asm/delay.h>
24#include <asm/mce.h>
24 25
25#include "proto.h"26#include "proto.h"
26#include "pci_impl.h"27#include "pci_impl.h"
arch/alpha/kernel/err_impl.h+2−0
@@ -7,6 +7,8 @@ · 6 unmodified lines
7 * implementations.7 * implementations.
8 */8 */
9 9
10#include <asm/mce.h>
11
10union el_timestamp;12union el_timestamp;
11struct el_subpacket;13struct el_subpacket;
12struct ev7_lf_subpackets;14struct ev7_lf_subpackets;
arch/alpha/kernel/head.S+2−4
@@ -8,14 +8,12 @@ · 7 unmodified lines
8 */8 */
9 9
10#include <linux/init.h>10#include <linux/init.h>
11#include <asm/system.h>
12#include <asm/asm-offsets.h>11#include <asm/asm-offsets.h>
12#include <asm/pal.h>
13#include <asm/setup.h>
13 14
14__HEAD15__HEAD
15.globl swapper_pg_dir
16.globl _stext16.globl _stext
17swapper_pg_dir=SWAPPER_PGD
18
19 .set noreorder17 .set noreorder
20 .globl __start18 .globl __start
21 .ent __start19 .ent __start
arch/alpha/kernel/irq.c+0−1
@@ -26,7 +26,6 @@ · 25 unmodified lines
26#include <linux/profile.h>26#include <linux/profile.h>
27#include <linux/bitops.h>27#include <linux/bitops.h>
28 28
29#include <asm/system.h>
30#include <asm/io.h>29#include <asm/io.h>
31#include <asm/uaccess.h>30#include <asm/uaccess.h>
32 31
arch/alpha/kernel/irq_alpha.c+1−0
@@ -11,6 +11,7 @@ · 10 unmodified lines
11#include <asm/machvec.h>11#include <asm/machvec.h>
12#include <asm/dma.h>12#include <asm/dma.h>
13#include <asm/perf_event.h>13#include <asm/perf_event.h>
14#include <asm/mce.h>
14 15
15#include "proto.h"16#include "proto.h"
16#include "irq_impl.h"17#include "irq_impl.h"
arch/alpha/kernel/osf_sys.c+0−1
@@ -40,7 +40,6 @@ · 39 unmodified lines
40#include <asm/fpu.h>40#include <asm/fpu.h>
41#include <asm/io.h>41#include <asm/io.h>
42#include <asm/uaccess.h>42#include <asm/uaccess.h>
43#include <asm/system.h>
44#include <asm/sysinfo.h>43#include <asm/sysinfo.h>
45#include <asm/thread_info.h>44#include <asm/thread_info.h>
46#include <asm/hwrpb.h>45#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
108}108}
109 109
110static void *alpha_noop_alloc_coherent(struct device *dev, size_t size,110static 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)
112{113{
113 void *ret;114 void *ret;
114 115
@@ -123,7 +124,8 @@ static void *alpha_noop_alloc_coherent(struct device *dev, size_t size, · 8 unmodified lines
123}124}
124 125
125static void alpha_noop_free_coherent(struct device *dev, size_t size,126static 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)
127{129{
128 free_pages((unsigned long)cpu_addr, get_order(size));130 free_pages((unsigned long)cpu_addr, get_order(size));
129}131}
@@ -174,8 +176,8 @@ static int alpha_noop_set_mask(struct device *dev, u64 mask) · 44 unmodified lines
174}176}
175 177
176struct dma_map_ops alpha_noop_ops = {178struct dma_map_ops alpha_noop_ops = {
177 .alloc_coherent = alpha_noop_alloc_coherent,179 .alloc = alpha_noop_alloc_coherent,
178 .free_coherent = alpha_noop_free_coherent,180 .free = alpha_noop_free_coherent,
179 .map_page = alpha_noop_map_page,181 .map_page = alpha_noop_map_page,
180 .map_sg = alpha_noop_map_sg,182 .map_sg = alpha_noop_map_sg,
181 .mapping_error = alpha_noop_mapping_error,183 .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
43 43
44const char pci_hae0_name[] = "HAE0";44const char pci_hae0_name[] = "HAE0";
45 45
46/* Indicate whether we respect the PCI setup left by console. */
47/*46/*
48 * Make this long-lived so that we know when shutting down47 * If PCI_PROBE_ONLY in pci_flags is set, we don't change any PCI resource
49 * whether we probed only or not.48 * assignments.
50 */49 */
51int pci_probe_only;
52 50
53/*51/*
54 * The PCI controller list.52 * The PCI controller list.
@@ -215,7 +213,7 @@ pdev_save_srm_config(struct pci_dev *dev) · 160 unmodified lines
215 struct pdev_srm_saved_conf *tmp;213 struct pdev_srm_saved_conf *tmp;
216 static int printed = 0;214 static int printed = 0;
217 215
218 if (!alpha_using_srm || pci_probe_only)216 if (!alpha_using_srm || pci_has_flag(PCI_PROBE_ONLY))
219 return;217 return;
220 218
221 if (!printed) {219 if (!printed) {
@@ -242,7 +240,7 @@ pci_restore_srm_config(void) · 20 unmodified lines
242 struct pdev_srm_saved_conf *tmp;240 struct pdev_srm_saved_conf *tmp;
243 241
244 /* No need to restore if probed only. */242 /* No need to restore if probed only. */
245 if (pci_probe_only)243 if (pci_has_flag(PCI_PROBE_ONLY))
246 return;244 return;
247 245
248 /* Restore SRM config. */246 /* Restore SRM config. */
@@ -252,47 +250,18 @@ pci_restore_srm_config(void) · 3 unmodified lines
252}250}
253#endif251#endif
254 252
255void __devinit
256pcibios_fixup_resource(struct resource *res, struct resource *root)
257{
258 res->start += root->start;
259 res->end += root->start;
260}
261
262void __devinit
263pcibios_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
281void __devinit253void __devinit
282pcibios_fixup_bus(struct pci_bus *bus)254pcibios_fixup_bus(struct pci_bus *bus)
283{255{
284 struct pci_dev *dev = bus->self;256 struct pci_dev *dev = bus->self;
285 257
286 if (pci_probe_only && dev &&258 if (pci_has_flag(PCI_PROBE_ONLY) && dev &&
287 (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {259 (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {
288 pci_read_bridge_bases(bus);260 pci_read_bridge_bases(bus);
289 pcibios_fixup_device_resources(dev, bus);
290 } 261 }
291 262
292 list_for_each_entry(dev, &bus->devices, bus_list) {263 list_for_each_entry(dev, &bus->devices, bus_list) {
293 pdev_save_srm_config(dev);264 pdev_save_srm_config(dev);
294 if ((dev->class >> 8) != PCI_CLASS_BRIDGE_PCI)
295 pcibios_fixup_device_resources(dev, bus);
296 }265 }
297}266}
298 267
@@ -302,42 +271,6 @@ pcibios_update_irq(struct pci_dev *dev, int irq) · 3 unmodified lines
302 pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);271 pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
303}272}
304 273
305void
306pcibios_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
321void 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
337EXPORT_SYMBOL(pcibios_resource_to_bus);
338EXPORT_SYMBOL(pcibios_bus_to_resource);
339#endif
340
341int274int
342pcibios_enable_device(struct pci_dev *dev, int mask)275pcibios_enable_device(struct pci_dev *dev, int mask)
343{276{
@@ -374,7 +307,8 @@ pcibios_claim_one_bus(struct pci_bus *b) · 30 unmodified lines
374 307
375 if (r->parent || !r->start || !r->flags)308 if (r->parent || !r->start || !r->flags)
376 continue;309 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))
378 pci_claim_resource(dev, i);312 pci_claim_resource(dev, i);
379 }313 }
380 }314 }
@@ -416,8 +350,10 @@ common_init_pci(void) · 35 unmodified lines
416 hose->mem_space->end = end;350 hose->mem_space->end = end;
417 351
418 INIT_LIST_HEAD(&resources);352 INIT_LIST_HEAD(&resources);
419 pci_add_resource(&resources, hose->io_space);353 pci_add_resource_offset(&resources, hose->io_space,
420 pci_add_resource(&resources, hose->mem_space);354 hose->io_space->start);
355 pci_add_resource_offset(&resources, hose->mem_space,
356 hose->mem_space->start);
421 357
422 bus = pci_scan_root_bus(NULL, next_busno, alpha_mv.pci_ops,358 bus = pci_scan_root_bus(NULL, next_busno, alpha_mv.pci_ops,
423 hose, &resources);359 hose, &resources);
arch/alpha/kernel/pci_impl.h+0−3
@@ -173,9 +173,6 @@ extern void pci_restore_srm_config(void); · 172 unmodified lines
173extern struct pci_controller *hose_head, **hose_tail;173extern struct pci_controller *hose_head, **hose_tail;
174extern struct pci_controller *pci_isa_hose;174extern struct pci_controller *pci_isa_hose;
175 175
176/* Indicate that we trust the console to configure things properly. */
177extern int pci_probe_only;
178
179extern unsigned long alpha_agpgart_size;176extern unsigned long alpha_agpgart_size;
180 177
181extern void common_init_pci(void);178extern 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
434 else DMA_ADDRP is undefined. */434 else DMA_ADDRP is undefined. */
435 435
436static void *alpha_pci_alloc_coherent(struct device *dev, size_t size,436static 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)
438{439{
439 struct pci_dev *pdev = alpha_gendev_to_pci(dev);440 struct pci_dev *pdev = alpha_gendev_to_pci(dev);
440 void *cpu_addr;441 void *cpu_addr;
@@ -478,7 +479,8 @@ try_again: · 37 unmodified lines
478 DMA_ADDR past this call are illegal. */479 DMA_ADDR past this call are illegal. */
479 480
480static void alpha_pci_free_coherent(struct device *dev, size_t size,481static 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)
482{484{
483 struct pci_dev *pdev = alpha_gendev_to_pci(dev);485 struct pci_dev *pdev = alpha_gendev_to_pci(dev);
484 pci_unmap_single(pdev, dma_addr, size, PCI_DMA_BIDIRECTIONAL);486 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
952}954}
953 955
954struct dma_map_ops alpha_pci_ops = {956struct dma_map_ops alpha_pci_ops = {
955 .alloc_coherent = alpha_pci_alloc_coherent,957 .alloc = alpha_pci_alloc_coherent,
956 .free_coherent = alpha_pci_free_coherent,958 .free = alpha_pci_free_coherent,
957 .map_page = alpha_pci_map_page,959 .map_page = alpha_pci_map_page,
958 .unmap_page = alpha_pci_unmap_page,960 .unmap_page = alpha_pci_unmap_page,
959 .map_sg = alpha_pci_map_sg,961 .map_sg = alpha_pci_map_sg,
arch/alpha/kernel/process.c+0−1
@@ -31,7 +31,6 @@ · 30 unmodified lines
31 31
32#include <asm/reg.h>32#include <asm/reg.h>
33#include <asm/uaccess.h>33#include <asm/uaccess.h>
34#include <asm/system.h>
35#include <asm/io.h>34#include <asm/io.h>
36#include <asm/pgtable.h>35#include <asm/pgtable.h>
37#include <asm/hwrpb.h>36#include <asm/hwrpb.h>
arch/alpha/kernel/ptrace.c+0−1
@@ -16,7 +16,6 @@ · 15 unmodified lines
16 16
17#include <asm/uaccess.h>17#include <asm/uaccess.h>
18#include <asm/pgtable.h>18#include <asm/pgtable.h>
19#include <asm/system.h>
20#include <asm/fpu.h>19#include <asm/fpu.h>
21 20
22#include "proto.h"21#include "proto.h"
arch/alpha/kernel/setup.c+0−1
@@ -55,7 +55,6 @@ static struct notifier_block alpha_panic_block = { · 54 unmodified lines
55 55
56#include <asm/uaccess.h>56#include <asm/uaccess.h>
57#include <asm/pgtable.h>57#include <asm/pgtable.h>
58#include <asm/system.h>
59#include <asm/hwrpb.h>58#include <asm/hwrpb.h>
60#include <asm/dma.h>59#include <asm/dma.h>
61#include <asm/mmu_context.h>60#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
120 */120 */
121SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask)121SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask)
122{122{
123 mask &= _BLOCKABLE;123 sigset_t blocked;
124 spin_lock_irq(&current->sighand->siglock);124
125 current->saved_sigmask = current->blocked;125 current->saved_sigmask = current->blocked;
126 siginitset(&current->blocked, mask);126
127 recalc_sigpending();127 mask &= _BLOCKABLE;
128 spin_unlock_irq(&current->sighand->siglock);128 siginitset(&blocked, mask);
129 set_current_blocked(&blocked);
129 130
130 current->state = TASK_INTERRUPTIBLE;131 current->state = TASK_INTERRUPTIBLE;
131 schedule();132 schedule();
@@ -238,10 +239,7 @@ do_sigreturn(struct sigcontext __user *sc, struct pt_regs *regs, · 106 unmodified lines
238 goto give_sigsegv;239 goto give_sigsegv;
239 240
240 sigdelsetmask(&set, ~_BLOCKABLE);241 sigdelsetmask(&set, ~_BLOCKABLE);
241 spin_lock_irq(&current->sighand->siglock);242 set_current_blocked(&set);
242 current->blocked = set;
243 recalc_sigpending();
244 spin_unlock_irq(&current->sighand->siglock);
245 243
246 if (restore_sigcontext(sc, regs, sw))244 if (restore_sigcontext(sc, regs, sw))
247 goto give_sigsegv;245 goto give_sigsegv;
@@ -276,10 +274,7 @@ do_rt_sigreturn(struct rt_sigframe __user *frame, struct pt_regs *regs, · 28 unmodified lines
276 goto give_sigsegv;274 goto give_sigsegv;
277 275
278 sigdelsetmask(&set, ~_BLOCKABLE);276 sigdelsetmask(&set, ~_BLOCKABLE);
279 spin_lock_irq(&current->sighand->siglock);277 set_current_blocked(&set);
280 current->blocked = set;
281 recalc_sigpending();
282 spin_unlock_irq(&current->sighand->siglock);
283 278
284 if (restore_sigcontext(&frame->uc.uc_mcontext, regs, sw))279 if (restore_sigcontext(&frame->uc.uc_mcontext, regs, sw))
285 goto give_sigsegv;280 goto give_sigsegv;
@@ -501,14 +496,8 @@ handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info, · 215 unmodified lines
501 else496 else
502 ret = setup_frame(sig, ka, oldset, regs, sw);497 ret = setup_frame(sig, ka, oldset, regs, sw);
503 498
504 if (ret == 0) {499 if (ret == 0)
505 spin_lock_irq(&current->sighand->siglock);500 block_sigmask(ka, sig);
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 }
512 501
513 return ret;502 return ret;
514}503}
arch/alpha/kernel/smp.c+1−1
@@ -450,7 +450,7 @@ setup_smp(void) · 449 unmodified lines
450 smp_num_probed = 1;450 smp_num_probed = 1;
451 }451 }
452 452
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",
454 smp_num_probed, cpumask_bits(cpu_present_mask)[0]);454 smp_num_probed, cpumask_bits(cpu_present_mask)[0]);
455}455}
456 456
arch/alpha/kernel/sys_alcor.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
18#include <linux/bitops.h>18#include <linux/bitops.h>
19 19
20#include <asm/ptrace.h>20#include <asm/ptrace.h>
21#include <asm/system.h>
22#include <asm/io.h>21#include <asm/io.h>
23#include <asm/dma.h>22#include <asm/dma.h>
24#include <asm/mmu_context.h>23#include <asm/mmu_context.h>
arch/alpha/kernel/sys_cabriolet.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
18#include <linux/bitops.h>18#include <linux/bitops.h>
19 19
20#include <asm/ptrace.h>20#include <asm/ptrace.h>
21#include <asm/system.h>
22#include <asm/dma.h>21#include <asm/dma.h>
23#include <asm/irq.h>22#include <asm/irq.h>
24#include <asm/mmu_context.h>23#include <asm/mmu_context.h>
arch/alpha/kernel/sys_dp264.c+0−1
@@ -21,7 +21,6 @@ · 20 unmodified lines
21#include <linux/bitops.h>21#include <linux/bitops.h>
22 22
23#include <asm/ptrace.h>23#include <asm/ptrace.h>
24#include <asm/system.h>
25#include <asm/dma.h>24#include <asm/dma.h>
26#include <asm/irq.h>25#include <asm/irq.h>
27#include <asm/mmu_context.h>26#include <asm/mmu_context.h>
arch/alpha/kernel/sys_eb64p.c+0−1
@@ -17,7 +17,6 @@ · 16 unmodified lines
17#include <linux/bitops.h>17#include <linux/bitops.h>
18 18
19#include <asm/ptrace.h>19#include <asm/ptrace.h>
20#include <asm/system.h>
21#include <asm/dma.h>20#include <asm/dma.h>
22#include <asm/irq.h>21#include <asm/irq.h>
23#include <asm/mmu_context.h>22#include <asm/mmu_context.h>
arch/alpha/kernel/sys_eiger.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
18#include <linux/bitops.h>18#include <linux/bitops.h>
19 19
20#include <asm/ptrace.h>20#include <asm/ptrace.h>
21#include <asm/system.h>
22#include <asm/dma.h>21#include <asm/dma.h>
23#include <asm/irq.h>22#include <asm/irq.h>
24#include <asm/mmu_context.h>23#include <asm/mmu_context.h>
arch/alpha/kernel/sys_jensen.c+0−1
@@ -15,7 +15,6 @@ · 14 unmodified lines
15#include <linux/init.h>15#include <linux/init.h>
16 16
17#include <asm/ptrace.h>17#include <asm/ptrace.h>
18#include <asm/system.h>
19 18
20#define __EXTERN_INLINE inline19#define __EXTERN_INLINE inline
21#include <asm/io.h>20#include <asm/io.h>
arch/alpha/kernel/sys_marvel.c+2−2
@@ -13,7 +13,6 @@ · 12 unmodified lines
13#include <linux/bitops.h>13#include <linux/bitops.h>
14 14
15#include <asm/ptrace.h>15#include <asm/ptrace.h>
16#include <asm/system.h>
17#include <asm/dma.h>16#include <asm/dma.h>
18#include <asm/irq.h>17#include <asm/irq.h>
19#include <asm/mmu_context.h>18#include <asm/mmu_context.h>
@@ -384,7 +383,8 @@ marvel_init_pci(void) · 364 unmodified lines
384 383
385 marvel_register_error_handlers();384 marvel_register_error_handlers();
386 385
387 pci_probe_only = 1;386 /* Indicate that we trust the console to configure things properly */
387 pci_set_flags(PCI_PROBE_ONLY);
388 common_init_pci();388 common_init_pci();
389 locate_and_init_vga(NULL);389 locate_and_init_vga(NULL);
390 390
arch/alpha/kernel/sys_miata.c+0−1
@@ -17,7 +17,6 @@ · 16 unmodified lines
17#include <linux/reboot.h>17#include <linux/reboot.h>
18 18
19#include <asm/ptrace.h>19#include <asm/ptrace.h>
20#include <asm/system.h>
21#include <asm/dma.h>20#include <asm/dma.h>
22#include <asm/irq.h>21#include <asm/irq.h>
23#include <asm/mmu_context.h>22#include <asm/mmu_context.h>
arch/alpha/kernel/sys_mikasa.c+1−1
@@ -17,7 +17,7 @@ · 16 unmodified lines
17#include <linux/bitops.h>17#include <linux/bitops.h>
18 18
19#include <asm/ptrace.h>19#include <asm/ptrace.h>
20#include <asm/system.h>20#include <asm/mce.h>
21#include <asm/dma.h>21#include <asm/dma.h>
22#include <asm/irq.h>22#include <asm/irq.h>
23#include <asm/mmu_context.h>23#include <asm/mmu_context.h>
arch/alpha/kernel/sys_nautilus.c+0−1
@@ -35,7 +35,6 @@ · 34 unmodified lines
35#include <linux/bitops.h>35#include <linux/bitops.h>
36 36
37#include <asm/ptrace.h>37#include <asm/ptrace.h>
38#include <asm/system.h>
39#include <asm/dma.h>38#include <asm/dma.h>
40#include <asm/irq.h>39#include <asm/irq.h>
41#include <asm/mmu_context.h>40#include <asm/mmu_context.h>
arch/alpha/kernel/sys_noritake.c+1−1
@@ -18,7 +18,7 @@ · 17 unmodified lines
18#include <linux/bitops.h>18#include <linux/bitops.h>
19 19
20#include <asm/ptrace.h>20#include <asm/ptrace.h>
21#include <asm/system.h>21#include <asm/mce.h>
22#include <asm/dma.h>22#include <asm/dma.h>
23#include <asm/irq.h>23#include <asm/irq.h>
24#include <asm/mmu_context.h>24#include <asm/mmu_context.h>
arch/alpha/kernel/sys_rawhide.c+0−1
@@ -16,7 +16,6 @@ · 15 unmodified lines
16#include <linux/init.h>16#include <linux/init.h>
17 17
18#include <asm/ptrace.h>18#include <asm/ptrace.h>
19#include <asm/system.h>
20#include <asm/dma.h>19#include <asm/dma.h>
21#include <asm/irq.h>20#include <asm/irq.h>
22#include <asm/mmu_context.h>21#include <asm/mmu_context.h>
arch/alpha/kernel/sys_ruffian.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
18#include <linux/init.h>18#include <linux/init.h>
19 19
20#include <asm/ptrace.h>20#include <asm/ptrace.h>
21#include <asm/system.h>
22#include <asm/dma.h>21#include <asm/dma.h>
23#include <asm/irq.h>22#include <asm/irq.h>
24#include <asm/mmu_context.h>23#include <asm/mmu_context.h>
arch/alpha/kernel/sys_rx164.c+0−1
@@ -17,7 +17,6 @@ · 16 unmodified lines
17#include <linux/bitops.h>17#include <linux/bitops.h>
18 18
19#include <asm/ptrace.h>19#include <asm/ptrace.h>
20#include <asm/system.h>
21#include <asm/dma.h>20#include <asm/dma.h>
22#include <asm/irq.h>21#include <asm/irq.h>
23#include <asm/mmu_context.h>22#include <asm/mmu_context.h>
arch/alpha/kernel/sys_sable.c+0−1
@@ -16,7 +16,6 @@ · 15 unmodified lines
16#include <linux/init.h>16#include <linux/init.h>
17 17
18#include <asm/ptrace.h>18#include <asm/ptrace.h>
19#include <asm/system.h>
20#include <asm/dma.h>19#include <asm/dma.h>
21#include <asm/irq.h>20#include <asm/irq.h>
22#include <asm/mmu_context.h>21#include <asm/mmu_context.h>
arch/alpha/kernel/sys_sio.c+0−1
@@ -20,7 +20,6 @@ · 19 unmodified lines
20 20
21#include <asm/compiler.h>21#include <asm/compiler.h>
22#include <asm/ptrace.h>22#include <asm/ptrace.h>
23#include <asm/system.h>
24#include <asm/dma.h>23#include <asm/dma.h>
25#include <asm/irq.h>24#include <asm/irq.h>
26#include <asm/mmu_context.h>25#include <asm/mmu_context.h>
arch/alpha/kernel/sys_sx164.c+1−1
@@ -17,7 +17,6 @@ · 16 unmodified lines
17#include <linux/bitops.h>17#include <linux/bitops.h>
18 18
19#include <asm/ptrace.h>19#include <asm/ptrace.h>
20#include <asm/system.h>
21#include <asm/dma.h>20#include <asm/dma.h>
22#include <asm/irq.h>21#include <asm/irq.h>
23#include <asm/mmu_context.h>22#include <asm/mmu_context.h>
@@ -26,6 +25,7 @@ · 2 unmodified lines
26#include <asm/core_cia.h>25#include <asm/core_cia.h>
27#include <asm/hwrpb.h>26#include <asm/hwrpb.h>
28#include <asm/tlbflush.h>27#include <asm/tlbflush.h>
28#include <asm/special_insns.h>
29 29
30#include "proto.h"30#include "proto.h"
31#include "irq_impl.h"31#include "irq_impl.h"
arch/alpha/kernel/sys_takara.c+0−1
@@ -16,7 +16,6 @@ · 15 unmodified lines
16#include <linux/init.h>16#include <linux/init.h>
17 17
18#include <asm/ptrace.h>18#include <asm/ptrace.h>
19#include <asm/system.h>
20#include <asm/dma.h>19#include <asm/dma.h>
21#include <asm/irq.h>20#include <asm/irq.h>
22#include <asm/mmu_context.h>21#include <asm/mmu_context.h>
arch/alpha/kernel/sys_titan.c+2−2
@@ -21,7 +21,6 @@ · 20 unmodified lines
21#include <linux/bitops.h>21#include <linux/bitops.h>
22 22
23#include <asm/ptrace.h>23#include <asm/ptrace.h>
24#include <asm/system.h>
25#include <asm/dma.h>24#include <asm/dma.h>
26#include <asm/irq.h>25#include <asm/irq.h>
27#include <asm/mmu_context.h>26#include <asm/mmu_context.h>
@@ -331,7 +330,8 @@ titan_init_pci(void) · 303 unmodified lines
331 */330 */
332 titan_late_init();331 titan_late_init();
333 332
334 pci_probe_only = 1;333 /* Indicate that we trust the console to configure things properly */
334 pci_set_flags(PCI_PROBE_ONLY);
335 common_init_pci();335 common_init_pci();
336 SMC669_Init(0);336 SMC669_Init(0);
337 locate_and_init_vga(NULL);337 locate_and_init_vga(NULL);
arch/alpha/kernel/sys_wildfire.c+0−1
@@ -15,7 +15,6 @@ · 14 unmodified lines
15#include <linux/bitops.h>15#include <linux/bitops.h>
16 16
17#include <asm/ptrace.h>17#include <asm/ptrace.h>
18#include <asm/system.h>
19#include <asm/dma.h>18#include <asm/dma.h>
20#include <asm/irq.h>19#include <asm/irq.h>
21#include <asm/mmu_context.h>20#include <asm/mmu_context.h>
arch/alpha/kernel/traps.c+1−0
@@ -24,6 +24,7 @@ · 23 unmodified lines
24#include <asm/sysinfo.h>24#include <asm/sysinfo.h>
25#include <asm/hwrpb.h>25#include <asm/hwrpb.h>
26#include <asm/mmu_context.h>26#include <asm/mmu_context.h>
27#include <asm/special_insns.h>
27 28
28#include "proto.h"29#include "proto.h"
29 30
arch/alpha/kernel/vmlinux.lds.S+2−0
@@ -2,6 +2,7 @@ · 1 unmodified line
2#include <asm/thread_info.h>2#include <asm/thread_info.h>
3#include <asm/cache.h>3#include <asm/cache.h>
4#include <asm/page.h>4#include <asm/page.h>
5#include <asm/setup.h>
5 6
6OUTPUT_FORMAT("elf64-alpha")7OUTPUT_FORMAT("elf64-alpha")
7OUTPUT_ARCH(alpha)8OUTPUT_ARCH(alpha)
@@ -25,6 +26,7 @@ SECTIONS · 17 unmodified lines
25 *(.fixup)26 *(.fixup)
26 *(.gnu.warning)27 *(.gnu.warning)
27 } :kernel28 } :kernel
29 swapper_pg_dir = SWAPPER_PGD;
28 _etext = .; /* End of text section */30 _etext = .; /* End of text section */
29 31
30 NOTES :kernel :note32 NOTES :kernel :note
arch/alpha/lib/stacktrace.c+0−1
@@ -1,5 +1,4 @@
1#include <linux/kernel.h>1#include <linux/kernel.h>
2#include <asm/system.h>
3 2
4typedef unsigned int instr;3typedef unsigned int instr;
5 4
arch/alpha/mm/fault.c+0−1
@@ -24,7 +24,6 @@ · 23 unmodified lines
24#include <linux/interrupt.h>24#include <linux/interrupt.h>
25#include <linux/module.h>25#include <linux/module.h>
26 26
27#include <asm/system.h>
28#include <asm/uaccess.h>27#include <asm/uaccess.h>
29 28
30extern void die_if_kernel(char *,struct pt_regs *,long, unsigned long *);29extern 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
22#include <linux/vmalloc.h>22#include <linux/vmalloc.h>
23#include <linux/gfp.h>23#include <linux/gfp.h>
24 24
25#include <asm/system.h>
26#include <asm/uaccess.h>25#include <asm/uaccess.h>
27#include <asm/pgtable.h>26#include <asm/pgtable.h>
28#include <asm/pgalloc.h>27#include <asm/pgalloc.h>
@@ -31,6 +30,7 @@ · 2 unmodified lines
31#include <asm/mmu_context.h>30#include <asm/mmu_context.h>
32#include <asm/console.h>31#include <asm/console.h>
33#include <asm/tlb.h>32#include <asm/tlb.h>
33#include <asm/setup.h>
34 34
35extern void die_if_kernel(char *,struct pt_regs *,long);35extern void die_if_kernel(char *,struct pt_regs *,long);
36 36
arch/alpha/oprofile/common.c+0−1
@@ -12,7 +12,6 @@ · 11 unmodified lines
12#include <linux/smp.h>12#include <linux/smp.h>
13#include <linux/errno.h>13#include <linux/errno.h>
14#include <asm/ptrace.h>14#include <asm/ptrace.h>
15#include <asm/system.h>
16 15
17#include "op_impl.h"16#include "op_impl.h"
18 17
arch/alpha/oprofile/op_model_ev4.c+0−1
@@ -11,7 +11,6 @@ · 10 unmodified lines
11#include <linux/init.h>11#include <linux/init.h>
12#include <linux/smp.h>12#include <linux/smp.h>
13#include <asm/ptrace.h>13#include <asm/ptrace.h>
14#include <asm/system.h>
15 14
16#include "op_impl.h"15#include "op_impl.h"
17 16
arch/alpha/oprofile/op_model_ev5.c+0−1
@@ -11,7 +11,6 @@ · 10 unmodified lines
11#include <linux/init.h>11#include <linux/init.h>
12#include <linux/smp.h>12#include <linux/smp.h>
13#include <asm/ptrace.h>13#include <asm/ptrace.h>
14#include <asm/system.h>
15 14
16#include "op_impl.h"15#include "op_impl.h"
17 16
arch/alpha/oprofile/op_model_ev6.c+0−1
@@ -11,7 +11,6 @@ · 10 unmodified lines
11#include <linux/init.h>11#include <linux/init.h>
12#include <linux/smp.h>12#include <linux/smp.h>
13#include <asm/ptrace.h>13#include <asm/ptrace.h>
14#include <asm/system.h>
15 14
16#include "op_impl.h"15#include "op_impl.h"
17 16
arch/alpha/oprofile/op_model_ev67.c+0−1
@@ -12,7 +12,6 @@ · 11 unmodified lines
12#include <linux/init.h>12#include <linux/init.h>
13#include <linux/smp.h>13#include <linux/smp.h>
14#include <asm/ptrace.h>14#include <asm/ptrace.h>
15#include <asm/system.h>
16 15
17#include "op_impl.h"16#include "op_impl.h"
18 17
arch/arm/Kconfig+60−36
@@ -9,6 +9,7 @@ config ARM · 8 unmodified lines
9 select SYS_SUPPORTS_APM_EMULATION9 select SYS_SUPPORTS_APM_EMULATION
10 select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI)10 select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI)
11 select HAVE_OPROFILE if (HAVE_PERF_EVENTS)11 select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
12 select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
12 select HAVE_ARCH_KGDB13 select HAVE_ARCH_KGDB
13 select HAVE_KPROBES if !XIP_KERNEL14 select HAVE_KPROBES if !XIP_KERNEL
14 select HAVE_KRETPROBES if (HAVE_KPROBES)15 select HAVE_KRETPROBES if (HAVE_KPROBES)
@@ -21,6 +22,7 @@ config ARM · 6 unmodified lines
21 select HAVE_KERNEL_GZIP22 select HAVE_KERNEL_GZIP
22 select HAVE_KERNEL_LZO23 select HAVE_KERNEL_LZO
23 select HAVE_KERNEL_LZMA24 select HAVE_KERNEL_LZMA
25 select HAVE_KERNEL_XZ
24 select HAVE_IRQ_WORK26 select HAVE_IRQ_WORK
25 select HAVE_PERF_EVENTS27 select HAVE_PERF_EVENTS
26 select PERF_USE_VMALLOC28 select PERF_USE_VMALLOC
@@ -28,10 +30,10 @@ config ARM · 1 unmodified line
28 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))30 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
29 select HAVE_C_RECORDMCOUNT31 select HAVE_C_RECORDMCOUNT
30 select HAVE_GENERIC_HARDIRQS32 select HAVE_GENERIC_HARDIRQS
31 select HAVE_SPARSE_IRQ
32 select GENERIC_IRQ_SHOW33 select GENERIC_IRQ_SHOW
33 select CPU_PM if (SUSPEND || CPU_IDLE)34 select CPU_PM if (SUSPEND || CPU_IDLE)
34 select GENERIC_PCI_IOMAP35 select GENERIC_PCI_IOMAP
36 select HAVE_BPF_JIT if NET
35 help37 help
36 The ARM series is a line of low-power-consumption RISC chip designs38 The ARM series is a line of low-power-consumption RISC chip designs
37 licensed by ARM Ltd and targeted at embedded applications and39 licensed by ARM Ltd and targeted at embedded applications and
@@ -52,9 +54,6 @@ config MIGHT_HAVE_PCI · 14 unmodified lines
52config SYS_SUPPORTS_APM_EMULATION54config SYS_SUPPORTS_APM_EMULATION
53 bool55 bool
54 56
55config HAVE_SCHED_CLOCK
56 bool
57
58config GENERIC_GPIO57config GENERIC_GPIO
59 bool58 bool
60 59
@@ -180,12 +179,18 @@ config ZONE_DMA · 119 unmodified lines
180config NEED_DMA_MAP_STATE179config NEED_DMA_MAP_STATE
181 def_bool y180 def_bool y
182 181
182config ARCH_HAS_DMA_SET_COHERENT_MASK
183 bool
184
183config GENERIC_ISA_DMA185config GENERIC_ISA_DMA
184 bool186 bool
185 187
186config FIQ188config FIQ
187 bool189 bool
188 190
191config NEED_RET_TO_USER
192 bool
193
189config ARCH_MTD_XIP194config ARCH_MTD_XIP
190 bool195 bool
191 196
@@ -214,6 +219,13 @@ config ARM_PATCH_PHYS_VIRT · 22 unmodified lines
214 this feature (eg, building a kernel for a single machine) and219 this feature (eg, building a kernel for a single machine) and
215 you need to shrink the kernel to the minimal size.220 you need to shrink the kernel to the minimal size.
216 221
222config 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
217config NEED_MACH_MEMORY_H229config NEED_MACH_MEMORY_H
218 bool230 bool
219 help231 help
@@ -265,7 +277,9 @@ config ARCH_INTEGRATOR · 45 unmodified lines
265 select GENERIC_CLOCKEVENTS277 select GENERIC_CLOCKEVENTS
266 select PLAT_VERSATILE278 select PLAT_VERSATILE
267 select PLAT_VERSATILE_FPGA_IRQ279 select PLAT_VERSATILE_FPGA_IRQ
280 select NEED_MACH_IO_H
268 select NEED_MACH_MEMORY_H281 select NEED_MACH_MEMORY_H
282 select SPARSE_IRQ
269 help283 help
270 Support for ARM's Integrator platform.284 Support for ARM's Integrator platform.
271 285
@@ -312,6 +326,7 @@ config ARCH_VEXPRESS · 40 unmodified lines
312 select HAVE_CLK326 select HAVE_CLK
313 select HAVE_PATA_PLATFORM327 select HAVE_PATA_PLATFORM
314 select ICST328 select ICST
329 select NO_IOPORT
315 select PLAT_VERSATILE330 select PLAT_VERSATILE
316 select PLAT_VERSATILE_CLCD331 select PLAT_VERSATILE_CLCD
317 help332 help
@@ -322,9 +337,11 @@ config ARCH_AT91 · 4 unmodified lines
322 select ARCH_REQUIRE_GPIOLIB337 select ARCH_REQUIRE_GPIOLIB
323 select HAVE_CLK338 select HAVE_CLK
324 select CLKDEV_LOOKUP339 select CLKDEV_LOOKUP
340 select IRQ_DOMAIN
341 select NEED_MACH_IO_H if PCCARD
325 help342 help
326 This enables support for systems based on the Atmel AT91RM9200,343 This enables support for systems based on the Atmel AT91RM9200,
327 AT91SAM9 and AT91CAP9 processors.344 AT91SAM9 processors.
328 345
329config ARCH_BCMRING346config ARCH_BCMRING
330 bool "Broadcom BCMRING"347 bool "Broadcom BCMRING"
@@ -350,6 +367,7 @@ config ARCH_HIGHBANK · 19 unmodified lines
350 select GENERIC_CLOCKEVENTS367 select GENERIC_CLOCKEVENTS
351 select HAVE_ARM_SCU368 select HAVE_ARM_SCU
352 select HAVE_SMP369 select HAVE_SMP
370 select SPARSE_IRQ
353 select USE_OF371 select USE_OF
354 help372 help
355 Support for the Calxeda Highbank SoC based boards.373 Support for the Calxeda Highbank SoC based boards.
@@ -400,6 +418,7 @@ config ARCH_EBSA110 · 44 unmodified lines
400 select ISA418 select ISA
401 select NO_IOPORT419 select NO_IOPORT
402 select ARCH_USES_GETTIMEOFFSET420 select ARCH_USES_GETTIMEOFFSET
421 select NEED_MACH_IO_H
403 select NEED_MACH_MEMORY_H422 select NEED_MACH_MEMORY_H
404 help423 help
405 This is an evaluation board for the StrongARM processor available424 This is an evaluation board for the StrongARM processor available
@@ -426,6 +445,7 @@ config ARCH_FOOTBRIDGE · 20 unmodified lines
426 select FOOTBRIDGE445 select FOOTBRIDGE
427 select GENERIC_CLOCKEVENTS446 select GENERIC_CLOCKEVENTS
428 select HAVE_IDE447 select HAVE_IDE
448 select NEED_MACH_IO_H
429 select NEED_MACH_MEMORY_H449 select NEED_MACH_MEMORY_H
430 help450 help
431 Support for systems based on the DC21285 companion chip451 Support for systems based on the DC21285 companion chip
@@ -438,7 +458,6 @@ config ARCH_MXC · 6 unmodified lines
438 select CLKDEV_LOOKUP458 select CLKDEV_LOOKUP
439 select CLKSRC_MMIO459 select CLKSRC_MMIO
440 select GENERIC_IRQ_CHIP460 select GENERIC_IRQ_CHIP
441 select HAVE_SCHED_CLOCK
442 select MULTI_IRQ_HANDLER461 select MULTI_IRQ_HANDLER
443 help462 help
444 Support for Freescale MXC/iMX-based family of processors463 Support for Freescale MXC/iMX-based family of processors
@@ -478,7 +497,9 @@ config ARCH_IOP13XX · 33 unmodified lines
478 select PCI497 select PCI
479 select ARCH_SUPPORTS_MSI498 select ARCH_SUPPORTS_MSI
480 select VMSPLIT_1G499 select VMSPLIT_1G
500 select NEED_MACH_IO_H
481 select NEED_MACH_MEMORY_H501 select NEED_MACH_MEMORY_H
502 select NEED_RET_TO_USER
482 help503 help
483 Support for Intel's IOP13XX (XScale) family of processors.504 Support for Intel's IOP13XX (XScale) family of processors.
484 505
@@ -486,6 +507,8 @@ config ARCH_IOP32X · 1 unmodified line
486 bool "IOP32x-based"507 bool "IOP32x-based"
487 depends on MMU508 depends on MMU
488 select CPU_XSCALE509 select CPU_XSCALE
510 select NEED_MACH_IO_H
511 select NEED_RET_TO_USER
489 select PLAT_IOP512 select PLAT_IOP
490 select PCI513 select PCI
491 select ARCH_REQUIRE_GPIOLIB514 select ARCH_REQUIRE_GPIOLIB
@@ -497,6 +520,8 @@ config ARCH_IOP33X · 5 unmodified lines
497 bool "IOP33x-based"520 bool "IOP33x-based"
498 depends on MMU521 depends on MMU
499 select CPU_XSCALE522 select CPU_XSCALE
523 select NEED_MACH_IO_H
524 select NEED_RET_TO_USER
500 select PLAT_IOP525 select PLAT_IOP
501 select PCI526 select PCI
502 select ARCH_REQUIRE_GPIOLIB527 select ARCH_REQUIRE_GPIOLIB
@@ -509,6 +534,7 @@ config ARCH_IXP23XX · 6 unmodified lines
509 select CPU_XSC3534 select CPU_XSC3
510 select PCI535 select PCI
511 select ARCH_USES_GETTIMEOFFSET536 select ARCH_USES_GETTIMEOFFSET
537 select NEED_MACH_IO_H
512 select NEED_MACH_MEMORY_H538 select NEED_MACH_MEMORY_H
513 help539 help
514 Support for Intel's IXP23xx (XScale) family of processors.540 Support for Intel's IXP23xx (XScale) family of processors.
@@ -519,6 +545,7 @@ config ARCH_IXP2000 · 4 unmodified lines
519 select CPU_XSCALE545 select CPU_XSCALE
520 select PCI546 select PCI
521 select ARCH_USES_GETTIMEOFFSET547 select ARCH_USES_GETTIMEOFFSET
548 select NEED_MACH_IO_H
522 select NEED_MACH_MEMORY_H549 select NEED_MACH_MEMORY_H
523 help550 help
524 Support for Intel's IXP2400/2800 (XScale) family of processors.551 Support for Intel's IXP2400/2800 (XScale) family of processors.
@@ -526,12 +553,13 @@ config ARCH_IXP2000 · 1 unmodified line
526config ARCH_IXP4XX553config ARCH_IXP4XX
527 bool "IXP4xx-based"554 bool "IXP4xx-based"
528 depends on MMU555 depends on MMU
556 select ARCH_HAS_DMA_SET_COHERENT_MASK
529 select CLKSRC_MMIO557 select CLKSRC_MMIO
530 select CPU_XSCALE558 select CPU_XSCALE
531 select GENERIC_GPIO559 select GENERIC_GPIO
532 select GENERIC_CLOCKEVENTS560 select GENERIC_CLOCKEVENTS
533 select HAVE_SCHED_CLOCK
534 select MIGHT_HAVE_PCI561 select MIGHT_HAVE_PCI
562 select NEED_MACH_IO_H
535 select DMABOUNCE if PCI563 select DMABOUNCE if PCI
536 help564 help
537 Support for Intel's IXP4XX (XScale) family of processors.565 Support for Intel's IXP4XX (XScale) family of processors.
@@ -542,6 +570,7 @@ config ARCH_DOVE · 4 unmodified lines
542 select PCI570 select PCI
543 select ARCH_REQUIRE_GPIOLIB571 select ARCH_REQUIRE_GPIOLIB
544 select GENERIC_CLOCKEVENTS572 select GENERIC_CLOCKEVENTS
573 select NEED_MACH_IO_H
545 select PLAT_ORION574 select PLAT_ORION
546 help575 help
547 Support for the Marvell Dove SoC 88AP510576 Support for the Marvell Dove SoC 88AP510
@@ -552,6 +581,7 @@ config ARCH_KIRKWOOD · 4 unmodified lines
552 select PCI581 select PCI
553 select ARCH_REQUIRE_GPIOLIB582 select ARCH_REQUIRE_GPIOLIB
554 select GENERIC_CLOCKEVENTS583 select GENERIC_CLOCKEVENTS
584 select NEED_MACH_IO_H
555 select PLAT_ORION585 select PLAT_ORION
556 help586 help
557 Support for the following Marvell Kirkwood series SoCs:587 Support for the following Marvell Kirkwood series SoCs:
@@ -576,6 +606,7 @@ config ARCH_MV78XX0 · 18 unmodified lines
576 select PCI606 select PCI
577 select ARCH_REQUIRE_GPIOLIB607 select ARCH_REQUIRE_GPIOLIB
578 select GENERIC_CLOCKEVENTS608 select GENERIC_CLOCKEVENTS
609 select NEED_MACH_IO_H
579 select PLAT_ORION610 select PLAT_ORION
580 help611 help
581 Support for the following Marvell MV78xx0 series SoCs:612 Support for the following Marvell MV78xx0 series SoCs:
@@ -601,7 +632,6 @@ config ARCH_MMP · 19 unmodified lines
601 select CLKDEV_LOOKUP632 select CLKDEV_LOOKUP
602 select GENERIC_CLOCKEVENTS633 select GENERIC_CLOCKEVENTS
603 select GPIO_PXA634 select GPIO_PXA
604 select HAVE_SCHED_CLOCK
605 select TICK_ONESHOT635 select TICK_ONESHOT
606 select PLAT_PXA636 select PLAT_PXA
607 select SPARSE_IRQ637 select SPARSE_IRQ
@@ -642,9 +672,9 @@ config ARCH_TEGRA · 34 unmodified lines
642 select GENERIC_CLOCKEVENTS672 select GENERIC_CLOCKEVENTS
643 select GENERIC_GPIO673 select GENERIC_GPIO
644 select HAVE_CLK674 select HAVE_CLK
645 select HAVE_SCHED_CLOCK
646 select HAVE_SMP675 select HAVE_SMP
647 select MIGHT_HAVE_CACHE_L2X0676 select MIGHT_HAVE_CACHE_L2X0
677 select NEED_MACH_IO_H if PCI
648 select ARCH_HAS_CPUFREQ678 select ARCH_HAS_CPUFREQ
649 help679 help
650 This enables support for NVIDIA Tegra based systems (Tegra APX,680 This enables support for NVIDIA Tegra based systems (Tegra APX,
@@ -659,7 +689,6 @@ config ARCH_PICOXCELL · 8 unmodified lines
659 select DW_APB_TIMER689 select DW_APB_TIMER
660 select GENERIC_CLOCKEVENTS690 select GENERIC_CLOCKEVENTS
661 select GENERIC_GPIO691 select GENERIC_GPIO
662 select HAVE_SCHED_CLOCK
663 select HAVE_TCM692 select HAVE_TCM
664 select NO_IOPORT693 select NO_IOPORT
665 select SPARSE_IRQ694 select SPARSE_IRQ
@@ -687,7 +716,6 @@ config ARCH_PXA · 21 unmodified lines
687 select ARCH_REQUIRE_GPIOLIB716 select ARCH_REQUIRE_GPIOLIB
688 select GENERIC_CLOCKEVENTS717 select GENERIC_CLOCKEVENTS
689 select GPIO_PXA718 select GPIO_PXA
690 select HAVE_SCHED_CLOCK
691 select TICK_ONESHOT719 select TICK_ONESHOT
692 select PLAT_PXA720 select PLAT_PXA
693 select SPARSE_IRQ721 select SPARSE_IRQ
@@ -731,7 +759,6 @@ config ARCH_RPC · 37 unmodified lines
731 bool "RiscPC"759 bool "RiscPC"
732 select ARCH_ACORN760 select ARCH_ACORN
733 select FIQ761 select FIQ
734 select TIMER_ACORN
735 select ARCH_MAY_HAVE_PC_FDC762 select ARCH_MAY_HAVE_PC_FDC
736 select HAVE_PATA_PLATFORM763 select HAVE_PATA_PLATFORM
737 select ISA_DMA_API764 select ISA_DMA_API
@@ -739,6 +766,7 @@ config ARCH_RPC · 1 unmodified line
739 select ARCH_SPARSEMEM_ENABLE766 select ARCH_SPARSEMEM_ENABLE
740 select ARCH_USES_GETTIMEOFFSET767 select ARCH_USES_GETTIMEOFFSET
741 select HAVE_IDE768 select HAVE_IDE
769 select NEED_MACH_IO_H
742 select NEED_MACH_MEMORY_H770 select NEED_MACH_MEMORY_H
743 help771 help
744 On the Acorn Risc-PC, Linux can support the internal IDE disk and772 On the Acorn Risc-PC, Linux can support the internal IDE disk and
@@ -754,31 +782,31 @@ config ARCH_SA1100 · 9 unmodified lines
754 select ARCH_HAS_CPUFREQ782 select ARCH_HAS_CPUFREQ
755 select CPU_FREQ783 select CPU_FREQ
756 select GENERIC_CLOCKEVENTS784 select GENERIC_CLOCKEVENTS
757 select HAVE_CLK785 select CLKDEV_LOOKUP
758 select HAVE_SCHED_CLOCK
759 select TICK_ONESHOT786 select TICK_ONESHOT
760 select ARCH_REQUIRE_GPIOLIB787 select ARCH_REQUIRE_GPIOLIB
761 select HAVE_IDE788 select HAVE_IDE
762 select NEED_MACH_MEMORY_H789 select NEED_MACH_MEMORY_H
790 select SPARSE_IRQ
763 help791 help
764 Support for StrongARM 11x0 based boards.792 Support for StrongARM 11x0 based boards.
765 793
766config ARCH_S3C2410794config ARCH_S3C24XX
767 bool "Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443, S3C2450"795 bool "Samsung S3C24XX SoCs"
768 select GENERIC_GPIO796 select GENERIC_GPIO
769 select ARCH_HAS_CPUFREQ797 select ARCH_HAS_CPUFREQ
770 select HAVE_CLK798 select HAVE_CLK
771 select CLKDEV_LOOKUP799 select CLKDEV_LOOKUP
772 select ARCH_USES_GETTIMEOFFSET800 select ARCH_USES_GETTIMEOFFSET
773 select HAVE_S3C2410_I2C if I2C801 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
774 help805 help
775 Samsung S3C2410X CPU based systems, such as the Simtec Electronics806 Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
776 BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or807 and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
777 the Samsung SMDK2410 development board (and derivatives).808 (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
778 809 Samsung SMDK2410 development board (and derivatives).
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.
782 810
783config ARCH_S3C64XX811config ARCH_S3C64XX
784 bool "Samsung S3C64XX"812 bool "Samsung S3C64XX"
@@ -812,7 +840,6 @@ config ARCH_S5P64X0 · 27 unmodified lines
812 select CLKSRC_MMIO840 select CLKSRC_MMIO
813 select HAVE_S3C2410_WATCHDOG if WATCHDOG841 select HAVE_S3C2410_WATCHDOG if WATCHDOG
814 select GENERIC_CLOCKEVENTS842 select GENERIC_CLOCKEVENTS
815 select HAVE_SCHED_CLOCK
816 select HAVE_S3C2410_I2C if I2C843 select HAVE_S3C2410_I2C if I2C
817 select HAVE_S3C_RTC if RTC_CLASS844 select HAVE_S3C_RTC if RTC_CLASS
818 help845 help
@@ -843,7 +870,6 @@ config ARCH_S5PV210 · 24 unmodified lines
843 select CLKSRC_MMIO870 select CLKSRC_MMIO
844 select ARCH_HAS_CPUFREQ871 select ARCH_HAS_CPUFREQ
845 select GENERIC_CLOCKEVENTS872 select GENERIC_CLOCKEVENTS
846 select HAVE_SCHED_CLOCK
847 select HAVE_S3C2410_I2C if I2C873 select HAVE_S3C2410_I2C if I2C
848 select HAVE_S3C_RTC if RTC_CLASS874 select HAVE_S3C_RTC if RTC_CLASS
849 select HAVE_S3C2410_WATCHDOG if WATCHDOG875 select HAVE_S3C2410_WATCHDOG if WATCHDOG
@@ -877,6 +903,7 @@ config ARCH_SHARK · 27 unmodified lines
877 select PCI903 select PCI
878 select ARCH_USES_GETTIMEOFFSET904 select ARCH_USES_GETTIMEOFFSET
879 select NEED_MACH_MEMORY_H905 select NEED_MACH_MEMORY_H
906 select NEED_MACH_IO_H
880 help907 help
881 Support for the StrongARM based Digital DNARD machine, also known908 Support for the StrongARM based Digital DNARD machine, also known
882 as "Shark" (<http://www.shark-linux.de/shark.html>).909 as "Shark" (<http://www.shark-linux.de/shark.html>).
@@ -886,7 +913,6 @@ config ARCH_U300 · 3 unmodified lines
886 depends on MMU913 depends on MMU
887 select CLKSRC_MMIO914 select CLKSRC_MMIO
888 select CPU_ARM926T915 select CPU_ARM926T
889 select HAVE_SCHED_CLOCK
890 select HAVE_TCM916 select HAVE_TCM
891 select ARM_AMBA917 select ARM_AMBA
892 select ARM_PATCH_PHYS_VIRT918 select ARM_PATCH_PHYS_VIRT
@@ -901,6 +927,7 @@ config ARCH_U300 · 8 unmodified lines
901 927
902config ARCH_U8500928config ARCH_U8500
903 bool "ST-Ericsson U8500 Series"929 bool "ST-Ericsson U8500 Series"
930 depends on MMU
904 select CPU_V7931 select CPU_V7
905 select ARM_AMBA932 select ARM_AMBA
906 select GENERIC_CLOCKEVENTS933 select GENERIC_CLOCKEVENTS
@@ -944,7 +971,6 @@ config ARCH_OMAP · 37 unmodified lines
944 select ARCH_HAS_CPUFREQ971 select ARCH_HAS_CPUFREQ
945 select CLKSRC_MMIO972 select CLKSRC_MMIO
946 select GENERIC_CLOCKEVENTS973 select GENERIC_CLOCKEVENTS
947 select HAVE_SCHED_CLOCK
948 select ARCH_HAS_HOLES_MEMORYMODEL974 select ARCH_HAS_HOLES_MEMORYMODEL
949 help975 help
950 Support for TI's OMAP platform (OMAP1/2/3/4).976 Support for TI's OMAP platform (OMAP1/2/3/4).
@@ -1066,12 +1092,10 @@ source "arch/arm/plat-s5p/Kconfig" · 115 unmodified lines
1066 1092
1067source "arch/arm/plat-spear/Kconfig"1093source "arch/arm/plat-spear/Kconfig"
1068 1094
1069if ARCH_S3C24101095source "arch/arm/mach-s3c24xx/Kconfig"
1070source "arch/arm/mach-s3c2410/Kconfig"1096if ARCH_S3C24XX
1071source "arch/arm/mach-s3c2412/Kconfig"1097source "arch/arm/mach-s3c2412/Kconfig"
1072source "arch/arm/mach-s3c2416/Kconfig"
1073source "arch/arm/mach-s3c2440/Kconfig"1098source "arch/arm/mach-s3c2440/Kconfig"
1074source "arch/arm/mach-s3c2443/Kconfig"
1075endif1099endif
1076 1100
1077if ARCH_S3C64XX1101if ARCH_S3C64XX
@@ -1110,13 +1134,11 @@ config ARCH_ACORN · 32 unmodified lines
1110config PLAT_IOP1134config PLAT_IOP
1111 bool1135 bool
1112 select GENERIC_CLOCKEVENTS1136 select GENERIC_CLOCKEVENTS
1113 select HAVE_SCHED_CLOCK
1114 1137
1115config PLAT_ORION1138config PLAT_ORION
1116 bool1139 bool
1117 select CLKSRC_MMIO1140 select CLKSRC_MMIO
1118 select GENERIC_IRQ_CHIP1141 select GENERIC_IRQ_CHIP
1119 select HAVE_SCHED_CLOCK
1120 1142
1121config PLAT_PXA1143config PLAT_PXA
1122 bool1144 bool
@@ -1127,6 +1149,7 @@ config PLAT_VERSATILE · 4 unmodified lines
1127config ARM_TIMER_SP8041149config ARM_TIMER_SP804
1128 bool1150 bool
1129 select CLKSRC_MMIO1151 select CLKSRC_MMIO
1152 select HAVE_SCHED_CLOCK
1130 1153
1131source arch/arm/mm/Kconfig1154source arch/arm/mm/Kconfig
1132 1155
@@ -1577,7 +1600,8 @@ config LOCAL_TIMERS · 444 unmodified lines
1577config ARCH_NR_GPIO1600config ARCH_NR_GPIO
1578 int1601 int
1579 default 1024 if ARCH_SHMOBILE || ARCH_TEGRA1602 default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
1580 default 350 if ARCH_U85001603 default 355 if ARCH_U8500
1604 default 264 if MACH_H4700
1581 default 01605 default 0
1582 help1606 help
1583 Maximum number of GPIOs in the system.1607 Maximum number of GPIOs in the system.
@@ -1588,7 +1612,7 @@ source kernel/Kconfig.preempt · 4 unmodified lines
1588 1612
1589config HZ1613config HZ
1590 int1614 int
1591 default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P64X0 || \1615 default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \
1592 ARCH_S5PV210 || ARCH_EXYNOS41616 ARCH_S5PV210 || ARCH_EXYNOS4
1593 default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER1617 default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
1594 default AT91_TIMER_HZ if ARCH_AT911618 default AT91_TIMER_HZ if ARCH_AT91
@@ -2114,7 +2138,7 @@ config CPU_FREQ_S3C · 519 unmodified lines
2114 2138
2115config CPU_FREQ_S3C24XX2139config CPU_FREQ_S3C24XX
2116 bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"2140 bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"
2117 depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL2141 depends on ARCH_S3C24XX && CPU_FREQ && EXPERIMENTAL
2118 select CPU_FREQ_S3C2142 select CPU_FREQ_S3C
2119 help2143 help
2120 This enables the CPUfreq driver for the Samsung S3C24XX family2144 This enables the CPUfreq driver for the Samsung S3C24XX family
arch/arm/Kconfig.debug+98−82
@@ -81,47 +81,14 @@ choice · 80 unmodified lines
81 prompt "Kernel low-level debugging port"81 prompt "Kernel low-level debugging port"
82 depends on DEBUG_LL82 depends on DEBUG_LL
83 83
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
103 config AT91_DEBUG_LL_DBGU084 config AT91_DEBUG_LL_DBGU0
104 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl"85 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl"
105 depends on HAVE_AT91_DBGU086 depends on HAVE_AT91_DBGU0
106 87
107 config AT91_DEBUG_LL_DBGU188 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"
109 depends on HAVE_AT91_DBGU190 depends on HAVE_AT91_DBGU1
110 91
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
125 config DEBUG_CLPS711X_UART192 config DEBUG_CLPS711X_UART1
126 bool "Kernel low-level debugging messages via UART1"93 bool "Kernel low-level debugging messages via UART1"
127 depends on ARCH_CLPS711X94 depends on ARCH_CLPS711X
@@ -136,6 +103,20 @@ choice · 8 unmodified lines
136 Say Y here if you want the debug print routines to direct103 Say Y here if you want the debug print routines to direct
137 their output to the second serial port on these devices.104 their output to the second serial port on these devices.
138 105
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
139 config DEBUG_HIGHBANK_UART120 config DEBUG_HIGHBANK_UART
140 bool "Kernel low-level debugging messages via Highbank UART"121 bool "Kernel low-level debugging messages via Highbank UART"
141 depends on ARCH_HIGHBANK122 depends on ARCH_HIGHBANK
@@ -199,45 +180,49 @@ choice · 57 unmodified lines
199 Say Y here if you want kernel low-level debugging support180 Say Y here if you want kernel low-level debugging support
200 on i.MX50 or i.MX53.181 on i.MX50 or i.MX53.
201 182
202 config DEBUG_IMX6Q_UART183 config DEBUG_IMX6Q_UART4
203 bool "i.MX6Q Debug UART"184 bool "i.MX6Q Debug UART4"
204 depends on SOC_IMX6Q185 depends on SOC_IMX6Q
205 help186 help
206 Say Y here if you want kernel low-level debugging support187 Say Y here if you want kernel low-level debugging support
207 on i.MX6Q.188 on i.MX6Q UART4.
208 189
209 config DEBUG_S3C_UART0190 config DEBUG_MSM_UART1
210 depends on PLAT_SAMSUNG191 bool "Kernel low-level debugging messages via MSM UART1"
211 bool "Use S3C UART 0 for low-level debug"192 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
212 help193 help
213 Say Y here if you want the debug print routines to direct194 Say Y here if you want the debug print routines to direct
214 their output to UART 0. The port must have been initialised195 their output to the first serial port on MSM devices.
215 by the boot-loader before use.
216
217 The uncompressor code port configuration is now handled
218 by CONFIG_S3C_LOWLEVEL_UART_PORT.
219 196
220 config DEBUG_S3C_UART1197 config DEBUG_MSM_UART2
221 depends on PLAT_SAMSUNG198 bool "Kernel low-level debugging messages via MSM UART2"
222 bool "Use S3C UART 1 for low-level debug"199 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
223 help200 help
224 Say Y here if you want the debug print routines to direct201 Say Y here if you want the debug print routines to direct
225 their output to UART 1. The port must have been initialised202 their output to the second serial port on MSM devices.
226 by the boot-loader before use.
227 203
228 The uncompressor code port configuration is now handled204 config DEBUG_MSM_UART3
229 by CONFIG_S3C_LOWLEVEL_UART_PORT.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.
230 210
231 config DEBUG_S3C_UART2211 config DEBUG_MSM8660_UART
232 depends on PLAT_SAMSUNG212 bool "Kernel low-level debugging messages via MSM 8660 UART"
233 bool "Use S3C UART 2 for low-level debug"213 depends on ARCH_MSM8X60
214 select MSM_HAS_DEBUG_UART_HS
234 help215 help
235 Say Y here if you want the debug print routines to direct216 Say Y here if you want the debug print routines to direct
236 their output to UART 2. The port must have been initialised217 their output to the serial port on MSM 8660 devices.
237 by the boot-loader before use.
238 218
239 The uncompressor code port configuration is now handled219 config DEBUG_MSM8960_UART
240 by CONFIG_S3C_LOWLEVEL_UART_PORT.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.
241 226
242 config DEBUG_REALVIEW_STD_PORT227 config DEBUG_REALVIEW_STD_PORT
243 bool "RealView Default UART"228 bool "RealView Default UART"
@@ -255,42 +240,73 @@ choice · 11 unmodified lines
255 their output to the standard serial port on the RealView240 their output to the standard serial port on the RealView
256 PB1176 platform.241 PB1176 platform.
257 242
258 config DEBUG_MSM_UART1243 config DEBUG_S3C_UART0
259 bool "Kernel low-level debugging messages via MSM UART1"244 depends on PLAT_SAMSUNG
260 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50245 bool "Use S3C UART 0 for low-level debug"
261 help246 help
262 Say Y here if you want the debug print routines to direct247 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.
264 250
265 config DEBUG_MSM_UART2251 The uncompressor code port configuration is now handled
266 bool "Kernel low-level debugging messages via MSM UART2"252 by CONFIG_S3C_LOWLEVEL_UART_PORT.
267 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50253
254 config DEBUG_S3C_UART1
255 depends on PLAT_SAMSUNG
256 bool "Use S3C UART 1 for low-level debug"
268 help257 help
269 Say Y here if you want the debug print routines to direct258 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.
271 261
272 config DEBUG_MSM_UART3262 The uncompressor code port configuration is now handled
273 bool "Kernel low-level debugging messages via MSM UART3"263 by CONFIG_S3C_LOWLEVEL_UART_PORT.
274 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50264
265 config DEBUG_S3C_UART2
266 depends on PLAT_SAMSUNG
267 bool "Use S3C UART 2 for low-level debug"
275 help268 help
276 Say Y here if you want the debug print routines to direct269 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.
278 272
279 config DEBUG_MSM8660_UART273 The uncompressor code port configuration is now handled
280 bool "Kernel low-level debugging messages via MSM 8660 UART"274 by CONFIG_S3C_LOWLEVEL_UART_PORT.
281 depends on ARCH_MSM8X60275
282 select MSM_HAS_DEBUG_UART_HS276 config DEBUG_LL_UART_NONE
277 bool "No low-level debugging UART"
283 help278 help
284 Say Y here if you want the debug print routines to direct279 Say Y here if your platform doesn't provide a UART option
285 their output to the serial port on MSM 8660 devices.280 below. This relies on your platform choosing the right UART
281 definition internally in order for low-level debugging to
282 work.
286 283
287 config DEBUG_MSM8960_UART284 config DEBUG_ICEDCC
288 bool "Kernel low-level debugging messages via MSM 8960 UART"285 bool "Kernel low-level debugging via EmbeddedICE DCC channel"
289 depends on ARCH_MSM8960
290 select MSM_HAS_DEBUG_UART_HS
291 help286 help
292 Say Y here if you want the debug print routines to direct287 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.
294 310
295endchoice311endchoice
296 312
arch/arm/Makefile+3−1
@@ -174,12 +174,13 @@ machine-$(CONFIG_ARCH_PRIMA2) := prima2 · 173 unmodified lines
174machine-$(CONFIG_ARCH_PXA) := pxa174machine-$(CONFIG_ARCH_PXA) := pxa
175machine-$(CONFIG_ARCH_REALVIEW) := realview175machine-$(CONFIG_ARCH_REALVIEW) := realview
176machine-$(CONFIG_ARCH_RPC) := rpc176machine-$(CONFIG_ARCH_RPC) := rpc
177machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2412 s3c2416 s3c2440 s3c2443177machine-$(CONFIG_ARCH_S3C24XX) := s3c24xx s3c2412 s3c2440
178machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx178machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx
179machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0179machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0
180machine-$(CONFIG_ARCH_S5PC100) := s5pc100180machine-$(CONFIG_ARCH_S5PC100) := s5pc100
181machine-$(CONFIG_ARCH_S5PV210) := s5pv210181machine-$(CONFIG_ARCH_S5PV210) := s5pv210
182machine-$(CONFIG_ARCH_EXYNOS4) := exynos182machine-$(CONFIG_ARCH_EXYNOS4) := exynos
183machine-$(CONFIG_ARCH_EXYNOS5) := exynos
183machine-$(CONFIG_ARCH_SA1100) := sa1100184machine-$(CONFIG_ARCH_SA1100) := sa1100
184machine-$(CONFIG_ARCH_SHARK) := shark185machine-$(CONFIG_ARCH_SHARK) := shark
185machine-$(CONFIG_ARCH_SHMOBILE) := shmobile186machine-$(CONFIG_ARCH_SHMOBILE) := shmobile
@@ -252,6 +253,7 @@ core-$(CONFIG_VFP) += arch/arm/vfp/ · 66 unmodified lines
252 253
253# If we have a machine-specific directory, then include it in the build.254# If we have a machine-specific directory, then include it in the build.
254core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/255core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
256core-y += arch/arm/net/
255core-y += $(machdirs) $(platdirs)257core-y += $(machdirs) $(platdirs)
256 258
257drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/259drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
arch/arm/boot/Makefile+9−14
@@ -11,8 +11,6 @@ · 10 unmodified lines
11# Copyright (C) 1995-2002 Russell King11# Copyright (C) 1995-2002 Russell King
12#12#
13 13
14MKIMAGE := $(srctree)/scripts/mkuboot.sh
15
16ifneq ($(MACHINE),)14ifneq ($(MACHINE),)
17include $(srctree)/$(MACHINE)/Makefile.boot15include $(srctree)/$(MACHINE)/Makefile.boot
18endif16endif
@@ -69,22 +67,19 @@ $(obj)/dtbs: $(addprefix $(obj)/, $(dtb-y)) · 50 unmodified lines
69 67
70clean-files := *.dtb68clean-files := *.dtb
71 69
72quiet_cmd_uimage = UIMAGE $@70ifneq ($(LOADADDR),)
73 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \71 UIMAGE_LOADADDR=$(LOADADDR)
74 -C none -a $(LOADADDR) -e $(STARTADDR) \
75 -n 'Linux-$(KERNELRELEASE)' -d $< $@
76
77ifeq ($(CONFIG_ZBOOT_ROM),y)
78$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
79else72else
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
81endif78endif
82 79
83$(obj)/uImage: STARTADDR=$(LOADADDR)
84
85check_for_multiple_loadaddr = \80check_for_multiple_loadaddr = \
86if [ $(words $(LOADADDR)) -gt 1 ]; then \81if [ $(words $(UIMAGE_LOADADDR)) -gt 1 ]; then \
87 echo 'multiple load addresses: $(LOADADDR)'; \82 echo 'multiple load addresses: $(UIMAGE_LOADADDR)'; \
88 echo 'This is incompatible with uImages'; \83 echo 'This is incompatible with uImages'; \
89 echo 'Specify LOADADDR on the commandline to build an uImage'; \84 echo 'Specify LOADADDR on the commandline to build an uImage'; \
90 false; \85 false; \
arch/arm/boot/compressed/.gitignore+2−0
@@ -1,8 +1,10 @@
1ashldi3.S
1font.c2font.c
2lib1funcs.S3lib1funcs.S
3piggy.gzip4piggy.gzip
4piggy.lzo5piggy.lzo
5piggy.lzma6piggy.lzma
7piggy.xzkern
6vmlinux8vmlinux
7vmlinux.lds9vmlinux.lds
8 10
arch/arm/boot/compressed/Makefile+12−3
@@ -92,6 +92,7 @@ SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/BSS_START/$(ZBSSADDR)/ · 91 unmodified lines
92suffix_$(CONFIG_KERNEL_GZIP) = gzip92suffix_$(CONFIG_KERNEL_GZIP) = gzip
93suffix_$(CONFIG_KERNEL_LZO) = lzo93suffix_$(CONFIG_KERNEL_LZO) = lzo
94suffix_$(CONFIG_KERNEL_LZMA) = lzma94suffix_$(CONFIG_KERNEL_LZMA) = lzma
95suffix_$(CONFIG_KERNEL_XZ) = xzkern
95 96
96# Borrowed libfdt files for the ATAG compatibility mode97# Borrowed libfdt files for the ATAG compatibility mode
97 98
@@ -112,10 +113,12 @@ endif · 14 unmodified lines
112 113
113targets := vmlinux vmlinux.lds \114targets := vmlinux vmlinux.lds \
114 piggy.$(suffix_y) piggy.$(suffix_y).o \115 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)
116 118
117# Make sure files are removed during clean119# Make sure files are removed during clean
118extra-y += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S $(libfdt) $(libfdt_hdrs)120extra-y += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern \
121 lib1funcs.S ashldi3.S $(libfdt) $(libfdt_hdrs)
119 122
120ifeq ($(CONFIG_FUNCTION_TRACER),y)123ifeq ($(CONFIG_FUNCTION_TRACER),y)
121ORIG_CFLAGS := $(KBUILD_CFLAGS)124ORIG_CFLAGS := $(KBUILD_CFLAGS)
@@ -151,6 +154,12 @@ lib1funcs = $(obj)/lib1funcs.o · 29 unmodified lines
151$(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S154$(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S
152 $(call cmd,shipped)155 $(call cmd,shipped)
153 156
157# For __aeabi_llsl
158ashldi3 = $(obj)/ashldi3.o
159
160$(obj)/ashldi3.S: $(srctree)/arch/$(SRCARCH)/lib/ashldi3.S
161 $(call cmd,shipped)
162
154# We need to prevent any GOTOFF relocs being used with references163# We need to prevent any GOTOFF relocs being used with references
155# to symbols in the .bss section since we cannot relocate them164# to symbols in the .bss section since we cannot relocate them
156# independently from the rest at run time. This can be achieved by165# 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
172fi181fi
173 182
174$(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \183$(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \
175 $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE184 $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) $(ashldi3) FORCE
176 @$(check_for_multiple_zreladdr)185 @$(check_for_multiple_zreladdr)
177 $(call if_changed,ld)186 $(call if_changed,ld)
178 @$(check_for_bad_syms)187 @$(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
77 } else if (atag->hdr.tag == ATAG_MEM) {77 } else if (atag->hdr.tag == ATAG_MEM) {
78 if (memcount >= sizeof(mem_reg_property)/4)78 if (memcount >= sizeof(mem_reg_property)/4)
79 continue;79 continue;
80 if (!atag->u.mem.size)
81 continue;
80 mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.start);82 mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.start);
81 mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.size);83 mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.size);
82 } else if (atag->hdr.tag == ATAG_INITRD2) {84 } 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
44#include "../../../../lib/decompress_unlzma.c"44#include "../../../../lib/decompress_unlzma.c"
45#endif45#endif
46 46
47#ifdef CONFIG_KERNEL_XZ
48#define memmove memmove
49#define memcpy memcpy
50#include "../../../../lib/decompress_unxz.c"
51#endif
52
47int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))53int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
48{54{
49 return decompress(input, len, NULL, NULL, output, NULL, error);55 return decompress(input, len, NULL, NULL, output, NULL, error);
arch/arm/boot/compressed/head.S+2−2
@@ -58,7 +58,7 @@ · 57 unmodified lines
58 add \rb, \rb, #0x00010000 @ Ser158 add \rb, \rb, #0x00010000 @ Ser1
59#endif59#endif
60 .endm60 .endm
61#elif defined(CONFIG_ARCH_S3C2410)61#elif defined(CONFIG_ARCH_S3C24XX)
62 .macro loadsp, rb, tmp62 .macro loadsp, rb, tmp
63 mov \rb, #0x5000000063 mov \rb, #0x50000000
64 add \rb, \rb, #0x4000 * CONFIG_S3C_LOWLEVEL_UART_PORT64 add \rb, \rb, #0x4000 * CONFIG_S3C_LOWLEVEL_UART_PORT
@@ -273,7 +273,7 @@ restart: adr r0, LC0 · 208 unmodified lines
273 add r0, r0, #0x100273 add r0, r0, #0x100
274 mov r1, r6274 mov r1, r6
275 sub r2, sp, r6275 sub r2, sp, r6
276 blne atags_to_fdt276 bleq atags_to_fdt
277 277
278 ldmfd sp!, {r0-r3, ip, lr}278 ldmfd sp!, {r0-r3, ip, lr}
279 sub sp, sp, #0x10000279 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
3input_data:
4 .incbin "arch/arm/boot/compressed/piggy.xzkern"
5 .globl input_data_end
6input_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
23 serial4 = &usart3;23 serial4 = &usart3;
24 serial5 = &usart4;24 serial5 = &usart4;
25 serial6 = &usart5;25 serial6 = &usart5;
26 gpio0 = &pioA;
27 gpio1 = &pioB;
28 gpio2 = &pioC;
29 tcb0 = &tcb0;
30 tcb1 = &tcb1;
26 };31 };
27 cpus {32 cpus {
28 cpu@0 {33 cpu@0 {
@@ -30,7 +35,7 @@ · 1 unmodified line
30 };35 };
31 };36 };
32 37
33 memory@20000000 {38 memory {
34 reg = <0x20000000 0x08000000>;39 reg = <0x20000000 0x08000000>;
35 };40 };
36 41
@@ -47,24 +52,88 @@ · 10 unmodified lines
47 ranges;52 ranges;
48 53
49 aic: interrupt-controller@fffff000 {54 aic: interrupt-controller@fffff000 {
50 #interrupt-cells = <1>;55 #interrupt-cells = <2>;
51 compatible = "atmel,at91rm9200-aic";56 compatible = "atmel,at91rm9200-aic";
52 interrupt-controller;57 interrupt-controller;
53 interrupt-parent;
54 reg = <0xfffff000 0x200>;58 reg = <0xfffff000 0x200>;
55 };59 };
56 60
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
57 dbgu: serial@fffff200 {126 dbgu: serial@fffff200 {
58 compatible = "atmel,at91sam9260-usart";127 compatible = "atmel,at91sam9260-usart";
59 reg = <0xfffff200 0x200>;128 reg = <0xfffff200 0x200>;
60 interrupts = <1>;129 interrupts = <1 4>;
61 status = "disabled";130 status = "disabled";
62 };131 };
63 132
64 usart0: serial@fffb0000 {133 usart0: serial@fffb0000 {
65 compatible = "atmel,at91sam9260-usart";134 compatible = "atmel,at91sam9260-usart";
66 reg = <0xfffb0000 0x200>;135 reg = <0xfffb0000 0x200>;
67 interrupts = <6>;136 interrupts = <6 4>;
68 atmel,use-dma-rx;137 atmel,use-dma-rx;
69 atmel,use-dma-tx;138 atmel,use-dma-tx;
70 status = "disabled";139 status = "disabled";
@@ -73,7 +142,7 @@ · 2 unmodified lines
73 usart1: serial@fffb4000 {142 usart1: serial@fffb4000 {
74 compatible = "atmel,at91sam9260-usart";143 compatible = "atmel,at91sam9260-usart";
75 reg = <0xfffb4000 0x200>;144 reg = <0xfffb4000 0x200>;
76 interrupts = <7>;145 interrupts = <7 4>;
77 atmel,use-dma-rx;146 atmel,use-dma-rx;
78 atmel,use-dma-tx;147 atmel,use-dma-tx;
79 status = "disabled";148 status = "disabled";
@@ -82,7 +151,7 @@ · 2 unmodified lines
82 usart2: serial@fffb8000 {151 usart2: serial@fffb8000 {
83 compatible = "atmel,at91sam9260-usart";152 compatible = "atmel,at91sam9260-usart";
84 reg = <0xfffb8000 0x200>;153 reg = <0xfffb8000 0x200>;
85 interrupts = <8>;154 interrupts = <8 4>;
86 atmel,use-dma-rx;155 atmel,use-dma-rx;
87 atmel,use-dma-tx;156 atmel,use-dma-tx;
88 status = "disabled";157 status = "disabled";
@@ -91,7 +160,7 @@ · 2 unmodified lines
91 usart3: serial@fffd0000 {160 usart3: serial@fffd0000 {
92 compatible = "atmel,at91sam9260-usart";161 compatible = "atmel,at91sam9260-usart";
93 reg = <0xfffd0000 0x200>;162 reg = <0xfffd0000 0x200>;
94 interrupts = <23>;163 interrupts = <23 4>;
95 atmel,use-dma-rx;164 atmel,use-dma-rx;
96 atmel,use-dma-tx;165 atmel,use-dma-tx;
97 status = "disabled";166 status = "disabled";
@@ -100,7 +169,7 @@ · 2 unmodified lines
100 usart4: serial@fffd4000 {169 usart4: serial@fffd4000 {
101 compatible = "atmel,at91sam9260-usart";170 compatible = "atmel,at91sam9260-usart";
102 reg = <0xfffd4000 0x200>;171 reg = <0xfffd4000 0x200>;
103 interrupts = <24>;172 interrupts = <24 4>;
104 atmel,use-dma-rx;173 atmel,use-dma-rx;
105 atmel,use-dma-tx;174 atmel,use-dma-tx;
106 status = "disabled";175 status = "disabled";
@@ -109,7 +178,7 @@ · 2 unmodified lines
109 usart5: serial@fffd8000 {178 usart5: serial@fffd8000 {
110 compatible = "atmel,at91sam9260-usart";179 compatible = "atmel,at91sam9260-usart";
111 reg = <0xfffd8000 0x200>;180 reg = <0xfffd8000 0x200>;
112 interrupts = <25>;181 interrupts = <25 4>;
113 atmel,use-dma-rx;182 atmel,use-dma-rx;
114 atmel,use-dma-tx;183 atmel,use-dma-tx;
115 status = "disabled";184 status = "disabled";
@@ -118,9 +187,52 @@ · 2 unmodified lines
118 macb0: ethernet@fffc4000 {187 macb0: ethernet@fffc4000 {
119 compatible = "cdns,at32ap7000-macb", "cdns,macb";188 compatible = "cdns,at32ap7000-macb", "cdns,macb";
120 reg = <0xfffc4000 0x100>;189 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>;
122 status = "disabled";198 status = "disabled";
123 };199 };
124 };200 };
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";
125 };237 };
126};238};
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
22 serial2 = &usart1;22 serial2 = &usart1;
23 serial3 = &usart2;23 serial3 = &usart2;
24 serial4 = &usart3;24 serial4 = &usart3;
25 gpio0 = &pioA;
26 gpio1 = &pioB;
27 gpio2 = &pioC;
28 gpio3 = &pioD;
29 gpio4 = &pioE;
30 tcb0 = &tcb0;
31 tcb1 = &tcb1;
25 };32 };
26 cpus {33 cpus {
27 cpu@0 {34 cpu@0 {
@@ -29,7 +36,7 @@ · 1 unmodified line
29 };36 };
30 };37 };
31 38
32 memory@70000000 {39 memory {
33 reg = <0x70000000 0x10000000>;40 reg = <0x70000000 0x10000000>;
34 };41 };
35 42
@@ -46,30 +53,114 @@ · 10 unmodified lines
46 ranges;53 ranges;
47 54
48 aic: interrupt-controller@fffff000 {55 aic: interrupt-controller@fffff000 {
49 #interrupt-cells = <1>;56 #interrupt-cells = <2>;
50 compatible = "atmel,at91rm9200-aic";57 compatible = "atmel,at91rm9200-aic";
51 interrupt-controller;58 interrupt-controller;
52 interrupt-parent;
53 reg = <0xfffff000 0x200>;59 reg = <0xfffff000 0x200>;
54 };60 };
55 61
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
56 dma: dma-controller@ffffec00 {102 dma: dma-controller@ffffec00 {
57 compatible = "atmel,at91sam9g45-dma";103 compatible = "atmel,at91sam9g45-dma";
58 reg = <0xffffec00 0x200>;104 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;
60 };151 };
61 152
62 dbgu: serial@ffffee00 {153 dbgu: serial@ffffee00 {
63 compatible = "atmel,at91sam9260-usart";154 compatible = "atmel,at91sam9260-usart";
64 reg = <0xffffee00 0x200>;155 reg = <0xffffee00 0x200>;
65 interrupts = <1>;156 interrupts = <1 4>;
66 status = "disabled";157 status = "disabled";
67 };158 };
68 159
69 usart0: serial@fff8c000 {160 usart0: serial@fff8c000 {
70 compatible = "atmel,at91sam9260-usart";161 compatible = "atmel,at91sam9260-usart";
71 reg = <0xfff8c000 0x200>;162 reg = <0xfff8c000 0x200>;
72 interrupts = <7>;163 interrupts = <7 4>;
73 atmel,use-dma-rx;164 atmel,use-dma-rx;
74 atmel,use-dma-tx;165 atmel,use-dma-tx;
75 status = "disabled";166 status = "disabled";
@@ -78,7 +169,7 @@ · 2 unmodified lines
78 usart1: serial@fff90000 {169 usart1: serial@fff90000 {
79 compatible = "atmel,at91sam9260-usart";170 compatible = "atmel,at91sam9260-usart";
80 reg = <0xfff90000 0x200>;171 reg = <0xfff90000 0x200>;
81 interrupts = <8>;172 interrupts = <8 4>;
82 atmel,use-dma-rx;173 atmel,use-dma-rx;
83 atmel,use-dma-tx;174 atmel,use-dma-tx;
84 status = "disabled";175 status = "disabled";
@@ -87,7 +178,7 @@ · 2 unmodified lines
87 usart2: serial@fff94000 {178 usart2: serial@fff94000 {
88 compatible = "atmel,at91sam9260-usart";179 compatible = "atmel,at91sam9260-usart";
89 reg = <0xfff94000 0x200>;180 reg = <0xfff94000 0x200>;
90 interrupts = <9>;181 interrupts = <9 4>;
91 atmel,use-dma-rx;182 atmel,use-dma-rx;
92 atmel,use-dma-tx;183 atmel,use-dma-tx;
93 status = "disabled";184 status = "disabled";
@@ -96,7 +187,7 @@ · 2 unmodified lines
96 usart3: serial@fff98000 {187 usart3: serial@fff98000 {
97 compatible = "atmel,at91sam9260-usart";188 compatible = "atmel,at91sam9260-usart";
98 reg = <0xfff98000 0x200>;189 reg = <0xfff98000 0x200>;
99 interrupts = <10>;190 interrupts = <10 4>;
100 atmel,use-dma-rx;191 atmel,use-dma-rx;
101 atmel,use-dma-tx;192 atmel,use-dma-tx;
102 status = "disabled";193 status = "disabled";
@@ -105,9 +196,52 @@ · 2 unmodified lines
105 macb0: ethernet@fffbc000 {196 macb0: ethernet@fffbc000 {
106 compatible = "cdns,at32ap7000-macb", "cdns,macb";197 compatible = "cdns,at32ap7000-macb", "cdns,macb";
107 reg = <0xfffbc000 0x100>;198 reg = <0xfffbc000 0x100>;
108 interrupts = <25>;199 interrupts = <25 4>;
109 status = "disabled";200 status = "disabled";
110 };201 };
111 };202 };
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";
112 };246 };
113};247};
arch/arm/boot/dts/at91sam9m10g45ek.dts+118−2
@@ -14,13 +14,24 @@ · 13 unmodified lines
14 compatible = "atmel,at91sam9m10g45ek", "atmel,at91sam9g45", "atmel,at91sam9";14 compatible = "atmel,at91sam9m10g45ek", "atmel,at91sam9g45", "atmel,at91sam9";
15 15
16 chosen {16 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";
18 };18 };
19 19
20 memory@70000000 {20 memory {
21 reg = <0x70000000 0x4000000>;21 reg = <0x70000000 0x4000000>;
22 };22 };
23 23
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
24 ahb {35 ahb {
25 apb {36 apb {
26 dbgu: serial@ffffee00 {37 dbgu: serial@ffffee00 {
@@ -36,5 +47,110 @@ · 9 unmodified lines
36 status = "okay";47 status = "okay";
37 };48 };
38 };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 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 };
39 };155 };
40};156};
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
72 ranges;72 ranges;
73 73
74 timer@fff10600 {74 timer@fff10600 {
75 compatible = "arm,smp-twd";75 compatible = "arm,cortex-a9-twd-timer";
76 reg = <0xfff10600 0x20>;76 reg = <0xfff10600 0x20>;
77 interrupts = <1 13 0xf04>;77 interrupts = <1 13 0xf01>;
78 };78 };
79 79
80 watchdog@fff10620 {80 watchdog@fff10620 {
81 compatible = "arm,cortex-a9-wdt";81 compatible = "arm,cortex-a9-twd-wdt";
82 reg = <0xfff10620 0x20>;82 reg = <0xfff10620 0x20>;
83 interrupts = <1 14 0xf04>;83 interrupts = <1 14 0xf01>;
84 };84 };
85 85
86 intc: interrupt-controller@fff11000 {86 intc: interrupt-controller@fff11000 {
@@ -89,7 +89,6 @@ · 2 unmodified lines
89 #size-cells = <0>;89 #size-cells = <0>;
90 #address-cells = <1>;90 #address-cells = <1>;
91 interrupt-controller;91 interrupt-controller;
92 interrupt-parent;
93 reg = <0xfff11000 0x1000>,92 reg = <0xfff11000 0x1000>,
94 <0xfff10100 0x100>;93 <0xfff10100 0x100>;
95 };94 };
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
56 compatible = "fsl,mc13892";56 compatible = "fsl,mc13892";
57 spi-max-frequency = <6000000>;57 spi-max-frequency = <6000000>;
58 reg = <0>;58 reg = <0>;
59 mc13xxx-irq-gpios = <&gpio1 8 0>;59 interrupt-parent = <&gpio1>;
60 fsl,mc13xxx-uses-regulator;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 };
61 };148 };
62 149
63 flash: at45db321d@1 {150 flash: at45db321d@1 {
arch/arm/boot/dts/imx6q-arm2.dts+14−0
@@ -36,11 +36,13 @@ · 35 unmodified lines
36 usdhc@02198000 { /* uSDHC3 */36 usdhc@02198000 { /* uSDHC3 */
37 cd-gpios = <&gpio6 11 0>;37 cd-gpios = <&gpio6 11 0>;
38 wp-gpios = <&gpio6 14 0>;38 wp-gpios = <&gpio6 14 0>;
39 vmmc-supply = <&reg_3p3v>;
39 status = "okay";40 status = "okay";
40 };41 };
41 42
42 usdhc@0219c000 { /* uSDHC4 */43 usdhc@0219c000 { /* uSDHC4 */
43 fsl,card-wired;44 fsl,card-wired;
45 vmmc-supply = <&reg_3p3v>;
44 status = "okay";46 status = "okay";
45 };47 };
46 48
@@ -50,6 +52,18 @@ · 3 unmodified lines
50 };52 };
51 };53 };
52 54
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
53 leds {67 leds {
54 compatible = "gpio-leds";68 compatible = "gpio-leds";
55 69
arch/arm/boot/dts/imx6q-sabrelite.dts+34−0
@@ -32,18 +32,52 @@ · 31 unmodified lines
32 usdhc@02198000 { /* uSDHC3 */32 usdhc@02198000 { /* uSDHC3 */
33 cd-gpios = <&gpio7 0 0>;33 cd-gpios = <&gpio7 0 0>;
34 wp-gpios = <&gpio7 1 0>;34 wp-gpios = <&gpio7 1 0>;
35 vmmc-supply = <&reg_3p3v>;
35 status = "okay";36 status = "okay";
36 };37 };
37 38
38 usdhc@0219c000 { /* uSDHC4 */39 usdhc@0219c000 { /* uSDHC4 */
39 cd-gpios = <&gpio2 6 0>;40 cd-gpios = <&gpio2 6 0>;
40 wp-gpios = <&gpio2 7 0>;41 wp-gpios = <&gpio2 7 0>;
42 vmmc-supply = <&reg_3p3v>;
41 status = "okay";43 status = "okay";
42 };44 };
43 45
44 uart2: uart@021e8000 {46 uart2: uart@021e8000 {
45 status = "okay";47 status = "okay";
46 };48 };
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;
47 };81 };
48 };82 };
49};83};
arch/arm/boot/dts/imx6q.dtsi+3−3
@@ -88,9 +88,9 @@ · 87 unmodified lines
88 ranges;88 ranges;
89 89
90 timer@00a00600 {90 timer@00a00600 {
91 compatible = "arm,smp-twd";91 compatible = "arm,cortex-a9-twd-timer";
92 reg = <0x00a00600 0x100>;92 reg = <0x00a00600 0x20>;
93 interrupts = <1 13 0xf4>;93 interrupts = <1 13 0xf01>;
94 };94 };
95 95
96 L2: l2-cache@00a02000 {96 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
13 model = "TI OMAP3 BeagleBoard";13 model = "TI OMAP3 BeagleBoard";
14 compatible = "ti,omap3-beagle", "ti,omap3";14 compatible = "ti,omap3-beagle", "ti,omap3";
15 15
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
25 memory {16 memory {
26 device_type = "memory";17 device_type = "memory";
27 reg = <0x80000000 0x20000000>; /* 512 MB */18 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
61 ranges;61 ranges;
62 ti,hwmods = "l3_main";62 ti,hwmods = "l3_main";
63 63
64 intc: interrupt-controller@1 {64 intc: interrupt-controller@48200000 {
65 compatible = "ti,omap3-intc";65 compatible = "ti,omap2-intc";
66 interrupt-controller;66 interrupt-controller;
67 #interrupt-cells = <1>;67 #interrupt-cells = <1>;
68 ti,intc-size = <96>;
69 reg = <0x48200000 0x1000>;
68 };70 };
69 71
70 uart1: serial@0x4806a000 {72 uart1: serial@4806a000 {
71 compatible = "ti,omap3-uart";73 compatible = "ti,omap3-uart";
72 ti,hwmods = "uart1";74 ti,hwmods = "uart1";
73 clock-frequency = <48000000>;75 clock-frequency = <48000000>;
74 };76 };
75 77
76 uart2: serial@0x4806c000 {78 uart2: serial@4806c000 {
77 compatible = "ti,omap3-uart";79 compatible = "ti,omap3-uart";
78 ti,hwmods = "uart2";80 ti,hwmods = "uart2";
79 clock-frequency = <48000000>;81 clock-frequency = <48000000>;
80 };82 };
81 83
82 uart3: serial@0x49020000 {84 uart3: serial@49020000 {
83 compatible = "ti,omap3-uart";85 compatible = "ti,omap3-uart";
84 ti,hwmods = "uart3";86 ti,hwmods = "uart3";
85 clock-frequency = <48000000>;87 clock-frequency = <48000000>;
86 };88 };
87 89
88 uart4: serial@0x49042000 {90 uart4: serial@49042000 {
89 compatible = "ti,omap3-uart";91 compatible = "ti,omap3-uart";
90 ti,hwmods = "uart4";92 ti,hwmods = "uart4";
91 clock-frequency = <48000000>;93 clock-frequency = <48000000>;
92 };94 };
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 };
93 };116 };
94};117};
arch/arm/boot/dts/omap4-panda.dts+0−9
@@ -13,15 +13,6 @@ · 12 unmodified lines
13 model = "TI OMAP4 PandaBoard";13 model = "TI OMAP4 PandaBoard";
14 compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";14 compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
15 15
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
25 memory {16 memory {
26 device_type = "memory";17 device_type = "memory";
27 reg = <0x80000000 0x40000000>; /* 1 GB */18 reg = <0x80000000 0x40000000>; /* 1 GB */
arch/arm/boot/dts/omap4-sdp.dts+0−9
@@ -13,15 +13,6 @@ · 12 unmodified lines
13 model = "TI OMAP4 SDP board";13 model = "TI OMAP4 SDP board";
14 compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";14 compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";
15 15
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
25 memory {16 memory {
26 device_type = "memory";17 device_type = "memory";
27 reg = <0x80000000 0x40000000>; /* 1 GB */18 reg = <0x80000000 0x40000000>; /* 1 GB */
arch/arm/boot/dts/omap4.dtsi+33−5
@@ -99,33 +99,61 @@ · 98 unmodified lines
99 gic: interrupt-controller@48241000 {99 gic: interrupt-controller@48241000 {
100 compatible = "arm,cortex-a9-gic";100 compatible = "arm,cortex-a9-gic";
101 interrupt-controller;101 interrupt-controller;
102 #interrupt-cells = <1>;102 #interrupt-cells = <3>;
103 reg = <0x48241000 0x1000>,103 reg = <0x48241000 0x1000>,
104 <0x48240100 0x0100>;104 <0x48240100 0x0100>;
105 };105 };
106 106
107 uart1: serial@0x4806a000 {107 uart1: serial@4806a000 {
108 compatible = "ti,omap4-uart";108 compatible = "ti,omap4-uart";
109 ti,hwmods = "uart1";109 ti,hwmods = "uart1";
110 clock-frequency = <48000000>;110 clock-frequency = <48000000>;
111 };111 };
112 112
113 uart2: serial@0x4806c000 {113 uart2: serial@4806c000 {
114 compatible = "ti,omap4-uart";114 compatible = "ti,omap4-uart";
115 ti,hwmods = "uart2";115 ti,hwmods = "uart2";
116 clock-frequency = <48000000>;116 clock-frequency = <48000000>;
117 };117 };
118 118
119 uart3: serial@0x48020000 {119 uart3: serial@48020000 {
120 compatible = "ti,omap4-uart";120 compatible = "ti,omap4-uart";
121 ti,hwmods = "uart3";121 ti,hwmods = "uart3";
122 clock-frequency = <48000000>;122 clock-frequency = <48000000>;
123 };123 };
124 124
125 uart4: serial@0x4806e000 {125 uart4: serial@4806e000 {
126 compatible = "ti,omap4-uart";126 compatible = "ti,omap4-uart";
127 ti,hwmods = "uart4";127 ti,hwmods = "uart4";
128 clock-frequency = <48000000>;128 clock-frequency = <48000000>;
129 };129 };
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 };
130 };158 };
131};159};
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
14 clock-frequency = < 408000000 >;14 clock-frequency = < 408000000 >;
15 };15 };
16 16
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
17 i2c@7000c000 {33 i2c@7000c000 {
18 clock-frequency = <100000>;34 clock-frequency = <100000>;
19 };35 };
@@ -33,4 +49,22 @@ · 13 unmodified lines
33 i2c@7000d000 {49 i2c@7000d000 {
34 clock-frequency = <100000>;50 clock-frequency = <100000>;
35 };51 };
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 };
36};70};
arch/arm/boot/dts/tegra-harmony.dts+35−10
@@ -10,19 +10,25 @@ · 9 unmodified lines
10 reg = < 0x00000000 0x40000000 >;10 reg = < 0x00000000 0x40000000 >;
11 };11 };
12 12
13 pmc@7000f400 {
14 nvidia,invert-interrupt;
15 };
16
13 i2c@7000c000 {17 i2c@7000c000 {
14 clock-frequency = <400000>;18 clock-frequency = <400000>;
15 19
16 codec: wm8903@1a {20 wm8903: wm8903@1a {
17 compatible = "wlf,wm8903";21 compatible = "wlf,wm8903";
18 reg = <0x1a>;22 reg = <0x1a>;
19 interrupts = < 347 >;23 interrupt-parent = <&gpio>;
24 interrupts = < 187 0x04 >;
20 25
21 gpio-controller;26 gpio-controller;
22 #gpio-cells = <2>;27 #gpio-cells = <2>;
23 28
24 /* 0x8000 = Not configured */29 micdet-cfg = <0>;
25 gpio-cfg = < 0x8000 0x8000 0 0x8000 0x8000 >;30 micdet-delay = <100>;
31 gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >;
26 };32 };
27 };33 };
28 34
@@ -38,13 +44,32 @@ · 9 unmodified lines
38 clock-frequency = <400000>;44 clock-frequency = <400000>;
39 };45 };
40 46
41 sound {47 i2s@70002a00 {
42 compatible = "nvidia,harmony-sound", "nvidia,tegra-wm8903";48 status = "disable";
49 };
43 50
44 spkr-en-gpios = <&codec 2 0>;51 sound {
45 hp-det-gpios = <&gpio 178 0>;52 compatible = "nvidia,tegra-audio-wm8903-harmony",
46 int-mic-en-gpios = <&gpio 184 0>;53 "nvidia,tegra-audio-wm8903";
47 ext-mic-en-gpios = <&gpio 185 0>;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 */
48 };73 };
49 74
50 serial@70006000 {75 serial@70006000 {
arch/arm/boot/dts/tegra-paz00.dts+57−0
@@ -12,6 +12,13 @@ · 11 unmodified lines
12 12
13 i2c@7000c000 {13 i2c@7000c000 {
14 clock-frequency = <400000>;14 clock-frequency = <400000>;
15
16 alc5632: alc5632@1e {
17 compatible = "realtek,alc5632";
18 reg = <0x1e>;
19 gpio-controller;
20 #gpio-cells = <2>;
21 };
15 };22 };
16 23
17 i2c@7000c400 {24 i2c@7000c400 {
@@ -35,6 +42,35 @@ · 17 unmodified lines
35 42
36 i2c@7000d000 {43 i2c@7000d000 {
37 clock-frequency = <400000>;44 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 */
38 };74 };
39 75
40 serial@70006000 {76 serial@70006000 {
@@ -74,4 +110,25 @@ · 33 unmodified lines
74 sdhci@c8000600 {110 sdhci@c8000600 {
75 support-8bit;111 support-8bit;
76 };112 };
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 };
77};134};
arch/arm/boot/dts/tegra-seaboard.dts+79−0
@@ -13,6 +13,20 @@ · 12 unmodified lines
13 13
14 i2c@7000c000 {14 i2c@7000c000 {
15 clock-frequency = <400000>;15 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 };
16 };30 };
17 31
18 i2c@7000c400 {32 i2c@7000c400 {
@@ -32,6 +46,32 @@ · 13 unmodified lines
32 };46 };
33 };47 };
34 48
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
35 serial@70006000 {75 serial@70006000 {
36 status = "disable";76 status = "disable";
37 };77 };
@@ -72,6 +112,7 @@ · 34 unmodified lines
72 112
73 usb@c5000000 {113 usb@c5000000 {
74 nvidia,vbus-gpio = <&gpio 24 0>; /* PD0 */114 nvidia,vbus-gpio = <&gpio 24 0>; /* PD0 */
115 dr_mode = "otg";
75 };116 };
76 117
77 gpio-keys {118 gpio-keys {
@@ -93,4 +134,42 @@ · 15 unmodified lines
93 gpio-key,wakeup;134 gpio-key,wakeup;
94 };135 };
95 };136 };
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 };
96};175};
arch/arm/boot/dts/tegra-trimslice.dts+12−0
@@ -26,6 +26,18 @@ · 25 unmodified lines
26 status = "disable";26 status = "disable";
27 };27 };
28 28
29 i2s@70002800 {
30 status = "disable";
31 };
32
33 i2s@70002a00 {
34 status = "disable";
35 };
36
37 das@70000c00 {
38 status = "disable";
39 };
40
29 serial@70006000 {41 serial@70006000 {
30 clock-frequency = < 216000000 >;42 clock-frequency = < 216000000 >;
31 };43 };
arch/arm/boot/dts/tegra-ventana.dts+42−0
@@ -12,6 +12,20 @@ · 11 unmodified lines
12 12
13 i2c@7000c000 {13 i2c@7000c000 {
14 clock-frequency = <400000>;14 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 };
15 };29 };
16 30
17 i2c@7000c400 {31 i2c@7000c400 {
@@ -26,6 +40,34 @@ · 8 unmodified lines
26 clock-frequency = <400000>;40 clock-frequency = <400000>;
27 };41 };
28 42
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
29 serial@70006000 {71 serial@70006000 {
30 status = "disable";72 status = "disable";
31 };73 };
arch/arm/boot/dts/tegra20.dtsi+46−4
@@ -4,6 +4,11 @@ · 3 unmodified lines
4 compatible = "nvidia,tegra20";4 compatible = "nvidia,tegra20";
5 interrupt-parent = <&intc>;5 interrupt-parent = <&intc>;
6 6
7 pmc@7000f400 {
8 compatible = "nvidia,tegra20-pmc";
9 reg = <0x7000e400 0x400>;
10 };
11
7 intc: interrupt-controller@50041000 {12 intc: interrupt-controller@50041000 {
8 compatible = "arm,cortex-a9-gic";13 compatible = "arm,cortex-a9-gic";
9 interrupt-controller;14 interrupt-controller;
@@ -12,6 +17,33 @@ · 2 unmodified lines
12 < 0x50040100 0x0100 >;17 < 0x50040100 0x0100 >;
13 };18 };
14 19
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
15 i2c@7000c000 {47 i2c@7000c000 {
16 #address-cells = <1>;48 #address-cells = <1>;
17 #size-cells = <0>;49 #size-cells = <0>;
@@ -44,18 +76,18 @@ · 26 unmodified lines
44 interrupts = < 0 53 0x04 >;76 interrupts = < 0 53 0x04 >;
45 };77 };
46 78
47 i2s@70002800 {79 tegra_i2s1: i2s@70002800 {
48 compatible = "nvidia,tegra20-i2s";80 compatible = "nvidia,tegra20-i2s";
49 reg = <0x70002800 0x200>;81 reg = <0x70002800 0x200>;
50 interrupts = < 0 13 0x04 >;82 interrupts = < 0 13 0x04 >;
51 dma-channel = < 2 >;83 nvidia,dma-request-selector = < &apbdma 2 >;
52 };84 };
53 85
54 i2s@70002a00 {86 tegra_i2s2: i2s@70002a00 {
55 compatible = "nvidia,tegra20-i2s";87 compatible = "nvidia,tegra20-i2s";
56 reg = <0x70002a00 0x200>;88 reg = <0x70002a00 0x200>;
57 interrupts = < 0 3 0x04 >;89 interrupts = < 0 3 0x04 >;
58 dma-channel = < 1 >;90 nvidia,dma-request-selector = < &apbdma 1 >;
59 };91 };
60 92
61 das@70000c00 {93 das@70000c00 {
@@ -75,6 +107,8 @@ · 13 unmodified lines
75 0 89 0x04 >;107 0 89 0x04 >;
76 #gpio-cells = <2>;108 #gpio-cells = <2>;
77 gpio-controller;109 gpio-controller;
110 #interrupt-cells = <2>;
111 interrupt-controller;
78 };112 };
79 113
80 pinmux: pinmux@70000000 {114 pinmux: pinmux@70000000 {
@@ -120,6 +154,13 @@ · 39 unmodified lines
120 interrupts = < 0 91 0x04 >;154 interrupts = < 0 91 0x04 >;
121 };155 };
122 156
157 emc@7000f400 {
158 #address-cells = <1>;
159 #size-cells = <0>;
160 compatible = "nvidia,tegra20-emc";
161 reg = <0x7000f400 0x200>;
162 };
163
123 sdhci@c8000000 {164 sdhci@c8000000 {
124 compatible = "nvidia,tegra20-sdhci";165 compatible = "nvidia,tegra20-sdhci";
125 reg = <0xc8000000 0x200>;166 reg = <0xc8000000 0x200>;
@@ -149,6 +190,7 @@ · 23 unmodified lines
149 reg = <0xc5000000 0x4000>;190 reg = <0xc5000000 0x4000>;
150 interrupts = < 0 20 0x04 >;191 interrupts = < 0 20 0x04 >;
151 phy_type = "utmi";192 phy_type = "utmi";
193 nvidia,has-legacy-mode;
152 };194 };
153 195
154 usb@c5004000 {196 usb@c5004000 {
arch/arm/boot/dts/tegra30.dtsi+60−1
@@ -4,6 +4,11 @@ · 3 unmodified lines
4 compatible = "nvidia,tegra30";4 compatible = "nvidia,tegra30";
5 interrupt-parent = <&intc>;5 interrupt-parent = <&intc>;
6 6
7 pmc@7000f400 {
8 compatible = "nvidia,tegra20-pmc", "nvidia,tegra30-pmc";
9 reg = <0x7000e400 0x400>;
10 };
11
7 intc: interrupt-controller@50041000 {12 intc: interrupt-controller@50041000 {
8 compatible = "arm,cortex-a9-gic";13 compatible = "arm,cortex-a9-gic";
9 interrupt-controller;14 interrupt-controller;
@@ -12,6 +17,51 @@ · 2 unmodified lines
12 < 0x50040100 0x0100 >;17 < 0x50040100 0x0100 >;
13 };18 };
14 19
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
15 i2c@7000c000 {65 i2c@7000c000 {
16 #address-cells = <1>;66 #address-cells = <1>;
17 #size-cells = <0>;67 #size-cells = <0>;
@@ -55,9 +105,18 @@ · 37 unmodified lines
55 gpio: gpio@6000d000 {105 gpio: gpio@6000d000 {
56 compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio";106 compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio";
57 reg = < 0x6000d000 0x1000 >;107 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 >;
59 #gpio-cells = <2>;116 #gpio-cells = <2>;
60 gpio-controller;117 gpio-controller;
118 #interrupt-cells = <2>;
119 interrupt-controller;
61 };120 };
62 121
63 serial@70006000 {122 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
13 compatible = "calao,usb-a9g20", "atmel,at91sam9g20", "atmel,at91sam9";13 compatible = "calao,usb-a9g20", "atmel,at91sam9g20", "atmel,at91sam9";
14 14
15 chosen {15 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";
17 };17 };
18 18
19 memory@20000000 {19 memory {
20 reg = <0x20000000 0x4000000>;20 reg = <0x20000000 0x4000000>;
21 };21 };
22 22
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
23 ahb {34 ahb {
24 apb {35 apb {
25 dbgu: serial@fffff200 {36 dbgu: serial@fffff200 {
@@ -30,6 +41,90 @@ · 4 unmodified lines
30 phy-mode = "rmii";41 phy-mode = "rmii";
31 status = "okay";42 status = "okay";
32 };43 };
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>;
33 };128 };
34 };129 };
35};130};
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
24config ICST24config ICST
25 bool25 bool
26 26
27config PL330
28 bool
29
30config SA111127config SA1111
31 bool28 bool
32 select DMABOUNCE if !ARCH_PXA29 select DMABOUNCE if !ARCH_PXA
@@ -35,9 +32,6 @@ config DMABOUNCE · 2 unmodified lines
35 bool32 bool
36 select ZONE_DMA33 select ZONE_DMA
37 34
38config TIMER_ACORN
39 bool
40
41config SHARP_LOCOMO35config SHARP_LOCOMO
42 bool36 bool
43 37
arch/arm/common/Makefile+0−2
@@ -5,11 +5,9 @@ · 4 unmodified lines
5obj-$(CONFIG_ARM_GIC) += gic.o5obj-$(CONFIG_ARM_GIC) += gic.o
6obj-$(CONFIG_ARM_VIC) += vic.o6obj-$(CONFIG_ARM_VIC) += vic.o
7obj-$(CONFIG_ICST) += icst.o7obj-$(CONFIG_ICST) += icst.o
8obj-$(CONFIG_PL330) += pl330.o
9obj-$(CONFIG_SA1111) += sa1111.o8obj-$(CONFIG_SA1111) += sa1111.o
10obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o9obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o
11obj-$(CONFIG_DMABOUNCE) += dmabounce.o10obj-$(CONFIG_DMABOUNCE) += dmabounce.o
12obj-$(CONFIG_TIMER_ACORN) += time-acorn.o
13obj-$(CONFIG_SHARP_LOCOMO) += locomo.o11obj-$(CONFIG_SHARP_LOCOMO) += locomo.o
14obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o12obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o
15obj-$(CONFIG_SHARP_SCOOP) += scoop.o13obj-$(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
686 * For primary GICs, skip over SGIs.686 * For primary GICs, skip over SGIs.
687 * For secondary GICs, skip over PPIs, too.687 * For secondary GICs, skip over PPIs, too.
688 */688 */
689 hwirq_base = 32;689 if (gic_nr == 0 && (irq_start & 31) > 0) {
690 if (gic_nr == 0) {690 hwirq_base = 16;
691 if ((irq_start & 31) > 0) {691 if (irq_start != -1)
692 hwirq_base = 16;692 irq_start = (irq_start & ~31) + 16;
693 if (irq_start != -1)693 } else {
694 irq_start = (irq_start & ~31) + 16;694 hwirq_base = 32;
695 }
696 }695 }
697 696
698 /*697 /*
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
299 goto err1;299 goto err1;
300 }300 }
301 301
302 pci_add_resource(&sys->resources, &it8152_io);302 pci_add_resource_offset(&sys->resources, &it8152_io, sys->io_offset);
303 pci_add_resource(&sys->resources, &it8152_mem);303 pci_add_resource_offset(&sys->resources, &it8152_mem, sys->mem_offset);
304 304
305 if (platform_notify || platform_notify_remove) {305 if (platform_notify || platform_notify_remove) {
306 printk(KERN_ERR "PCI: Can't use platform_notify\n");306 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
231static 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
243struct _xfer_spec {
244 u32 ccr;
245 struct pl330_req *r;
246 struct pl330_xfer *x;
247};
248
249enum dmamov_dst {
250 SAR = 0,
251 CCR,
252 DAR,
253};
254
255enum pl330_dst {
256 SRC = 0,
257 DST,
258};
259
260enum pl330_cond {
261 SINGLE,
262 BURST,
263 ALWAYS,
264};
265
266struct _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 */
277struct _pl330_tbd {
278 bool reset_dmac;
279 bool reset_mngr;
280 u8 reset_chan;
281};
282
283/* A DMAC Thread */
284struct 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
299enum pl330_dmac_state {
300 UNINIT,
301 INIT,
302 DYING,
303};
304
305/* A DMAC */
306struct 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
329static 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
335static 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
341static 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
347static 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 */
359static 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
366static 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
379static 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
395static 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
407static 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
423static 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
441static 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
462static 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
481struct _arg_LPEND {
482 enum pl330_cond cond;
483 bool forever;
484 unsigned loop;
485 u8 bjump;
486};
487
488static 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
523static 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
533static 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
549static 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
561static 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
573static 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
589static 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
607static 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
628static 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
640static 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
661static 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
686static 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
698struct _arg_GO {
699 u8 chan;
700 u32 addr;
701 unsigned ns;
702};
703
704static 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 */
727static 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
746static 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 */
778static 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
788static 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
846static 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' */
869static 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
928static 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
961static 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
976static 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
991static 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
1006static 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 */
1030static 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
1108static 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
1125static 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 */
1146static 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
1179static 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
1211static 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 */
1231int 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
1318xfer_exit:
1319 spin_unlock_irqrestore(&pl330->lock, flags);
1320
1321 return ret;
1322}
1323EXPORT_SYMBOL(pl330_submit_req);
1324
1325static 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 */
1388int 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
1486updt_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}
1498EXPORT_SYMBOL(pl330_update);
1499
1500int 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}
1550EXPORT_SYMBOL(pl330_chan_ctrl);
1551
1552int 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}
1597EXPORT_SYMBOL(pl330_chan_status);
1598
1599/* Reserve an event */
1600static 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
1615static 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 */
1623void *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}
1664EXPORT_SYMBOL(pl330_request_channel);
1665
1666/* Release an event */
1667static 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
1678void 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}
1699EXPORT_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 */
1704static 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
1749static 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
1769static 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
1801static 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
1833int 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}
1909EXPORT_SYMBOL(pl330_add);
1910
1911static 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
1930static 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
1941void 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}
1960EXPORT_SYMBOL(pl330_del);
arch/arm/common/sa1111.c+185−96
@@ -16,6 +16,7 @@ · 15 unmodified lines
16 */16 */
17#include <linux/module.h>17#include <linux/module.h>
18#include <linux/init.h>18#include <linux/init.h>
19#include <linux/irq.h>
19#include <linux/kernel.h>20#include <linux/kernel.h>
20#include <linux/delay.h>21#include <linux/delay.h>
21#include <linux/errno.h>22#include <linux/errno.h>
@@ -28,9 +29,8 @@ · 6 unmodified lines
28#include <linux/io.h>29#include <linux/io.h>
29 30
30#include <mach/hardware.h>31#include <mach/hardware.h>
31#include <asm/mach-types.h>
32#include <asm/irq.h>
33#include <asm/mach/irq.h>32#include <asm/mach/irq.h>
33#include <asm/mach-types.h>
34#include <asm/sizes.h>34#include <asm/sizes.h>
35 35
36#include <asm/hardware/sa1111.h>36#include <asm/hardware/sa1111.h>
@@ -86,8 +86,10 @@ · 49 unmodified lines
86#define IRQ_S1_CD_VALID (52)86#define IRQ_S1_CD_VALID (52)
87#define IRQ_S0_BVD1_STSCHG (53)87#define IRQ_S0_BVD1_STSCHG (53)
88#define IRQ_S1_BVD1_STSCHG (54)88#define IRQ_S1_BVD1_STSCHG (54)
89#define SA1111_IRQ_NR (55)
89 90
90extern void __init sa1110_mb_enable(void);91extern void sa1110_mb_enable(void);
92extern void sa1110_mb_disable(void);
91 93
92/*94/*
93 * We keep the following data for the overall SA1111. Note that the95 * We keep the following data for the overall SA1111. Note that the
@@ -104,6 +106,7 @@ struct sa1111 { · 10 unmodified lines
104 int irq_base; /* base for cascaded on-chip IRQs */106 int irq_base; /* base for cascaded on-chip IRQs */
105 spinlock_t lock;107 spinlock_t lock;
106 void __iomem *base;108 void __iomem *base;
109 struct sa1111_platform_data *pdata;
107#ifdef CONFIG_PM110#ifdef CONFIG_PM
108 void *saved_state;111 void *saved_state;
109#endif112#endif
@@ -118,6 +121,7 @@ static struct sa1111 *g_sa1111; · 8 unmodified lines
118struct sa1111_dev_info {121struct sa1111_dev_info {
119 unsigned long offset;122 unsigned long offset;
120 unsigned long skpcr_mask;123 unsigned long skpcr_mask;
124 bool dma;
121 unsigned int devid;125 unsigned int devid;
122 unsigned int irq[6];126 unsigned int irq[6];
123};127};
@@ -126,6 +130,7 @@ static struct sa1111_dev_info sa1111_devices[] = { · 2 unmodified lines
126 {130 {
127 .offset = SA1111_USB,131 .offset = SA1111_USB,
128 .skpcr_mask = SKPCR_UCLKEN,132 .skpcr_mask = SKPCR_UCLKEN,
133 .dma = true,
129 .devid = SA1111_DEVID_USB,134 .devid = SA1111_DEVID_USB,
130 .irq = {135 .irq = {
131 IRQ_USBPWR,136 IRQ_USBPWR,
@@ -139,6 +144,7 @@ static struct sa1111_dev_info sa1111_devices[] = { · 7 unmodified lines
139 {144 {
140 .offset = 0x0600,145 .offset = 0x0600,
141 .skpcr_mask = SKPCR_I2SCLKEN | SKPCR_L3CLKEN,146 .skpcr_mask = SKPCR_I2SCLKEN | SKPCR_L3CLKEN,
147 .dma = true,
142 .devid = SA1111_DEVID_SAC,148 .devid = SA1111_DEVID_SAC,
143 .irq = {149 .irq = {
144 AUDXMTDMADONEA,150 AUDXMTDMADONEA,
@@ -155,7 +161,7 @@ static struct sa1111_dev_info sa1111_devices[] = { · 10 unmodified lines
155 {161 {
156 .offset = SA1111_KBD,162 .offset = SA1111_KBD,
157 .skpcr_mask = SKPCR_PTCLKEN,163 .skpcr_mask = SKPCR_PTCLKEN,
158 .devid = SA1111_DEVID_PS2,164 .devid = SA1111_DEVID_PS2_KBD,
159 .irq = {165 .irq = {
160 IRQ_TPRXINT,166 IRQ_TPRXINT,
161 IRQ_TPTXINT167 IRQ_TPTXINT
@@ -164,7 +170,7 @@ static struct sa1111_dev_info sa1111_devices[] = { · 2 unmodified lines
164 {170 {
165 .offset = SA1111_MSE,171 .offset = SA1111_MSE,
166 .skpcr_mask = SKPCR_PMCLKEN,172 .skpcr_mask = SKPCR_PMCLKEN,
167 .devid = SA1111_DEVID_PS2,173 .devid = SA1111_DEVID_PS2_MSE,
168 .irq = {174 .irq = {
169 IRQ_MSRXINT,175 IRQ_MSRXINT,
170 IRQ_MSTXINT176 IRQ_MSTXINT
@@ -434,16 +440,28 @@ static struct irq_chip sa1111_high_chip = { · 263 unmodified lines
434 .irq_set_wake = sa1111_wake_highirq,440 .irq_set_wake = sa1111_wake_highirq,
435};441};
436 442
437static void sa1111_setup_irq(struct sa1111 *sachip)443static int sa1111_setup_irq(struct sa1111 *sachip, unsigned irq_base)
438{444{
439 void __iomem *irqbase = sachip->base + SA1111_INTC;445 void __iomem *irqbase = sachip->base + SA1111_INTC;
440 unsigned int irq;446 unsigned i, irq;
447 int ret;
441 448
442 /*449 /*
443 * We're guaranteed that this region hasn't been taken.450 * We're guaranteed that this region hasn't been taken.
444 */451 */
445 request_mem_region(sachip->phys + SA1111_INTC, 512, "irq");452 request_mem_region(sachip->phys + SA1111_INTC, 512, "irq");
446 453
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
447 /* disable all IRQs */465 /* disable all IRQs */
448 sa1111_writel(0, irqbase + SA1111_INTEN0);466 sa1111_writel(0, irqbase + SA1111_INTEN0);
449 sa1111_writel(0, irqbase + SA1111_INTEN1);467 sa1111_writel(0, irqbase + SA1111_INTEN1);
@@ -463,14 +481,16 @@ static void sa1111_setup_irq(struct sa1111 *sachip) · 13 unmodified lines
463 sa1111_writel(~0, irqbase + SA1111_INTSTATCLR0);481 sa1111_writel(~0, irqbase + SA1111_INTSTATCLR0);
464 sa1111_writel(~0, irqbase + SA1111_INTSTATCLR1);482 sa1111_writel(~0, irqbase + SA1111_INTSTATCLR1);
465 483
466 for (irq = IRQ_GPAIN0; irq <= SSPROR; irq++) {484 for (i = IRQ_GPAIN0; i <= SSPROR; i++) {
485 irq = sachip->irq_base + i;
467 irq_set_chip_and_handler(irq, &sa1111_low_chip,486 irq_set_chip_and_handler(irq, &sa1111_low_chip,
468 handle_edge_irq);487 handle_edge_irq);
469 irq_set_chip_data(irq, sachip);488 irq_set_chip_data(irq, sachip);
470 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);489 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
471 }490 }
472 491
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;
474 irq_set_chip_and_handler(irq, &sa1111_high_chip,494 irq_set_chip_and_handler(irq, &sa1111_high_chip,
475 handle_edge_irq);495 handle_edge_irq);
476 irq_set_chip_data(irq, sachip);496 irq_set_chip_data(irq, sachip);
@@ -483,6 +503,11 @@ static void sa1111_setup_irq(struct sa1111 *sachip) · 6 unmodified lines
483 irq_set_irq_type(sachip->irq, IRQ_TYPE_EDGE_RISING);503 irq_set_irq_type(sachip->irq, IRQ_TYPE_EDGE_RISING);
484 irq_set_handler_data(sachip->irq, sachip);504 irq_set_handler_data(sachip->irq, sachip);
485 irq_set_chained_handler(sachip->irq, sa1111_irq_handler);505 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;
486}511}
487 512
488/*513/*
@@ -581,41 +606,10 @@ sa1111_configure_smc(struct sa1111 *sachip, int sdram, unsigned int drac, · 92 unmodified lines
581}606}
582#endif607#endif
583 608
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 */
600static 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
614static void sa1111_dev_release(struct device *_dev)609static void sa1111_dev_release(struct device *_dev)
615{610{
616 struct sa1111_dev *dev = SA1111_DEV(_dev);611 struct sa1111_dev *dev = SA1111_DEV(_dev);
617 612
618 release_resource(&dev->res);
619 kfree(dev);613 kfree(dev);
620}614}
621 615
@@ -624,67 +618,58 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, · 2 unmodified lines
624 struct sa1111_dev_info *info)618 struct sa1111_dev_info *info)
625{619{
626 struct sa1111_dev *dev;620 struct sa1111_dev *dev;
621 unsigned i;
627 int ret;622 int ret;
628 623
629 dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL);624 dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL);
630 if (!dev) {625 if (!dev) {
631 ret = -ENOMEM;626 ret = -ENOMEM;
632 goto out;627 goto err_alloc;
633 }628 }
634 629
630 device_initialize(&dev->dev);
635 dev_set_name(&dev->dev, "%4.4lx", info->offset);631 dev_set_name(&dev->dev, "%4.4lx", info->offset);
636 dev->devid = info->devid;632 dev->devid = info->devid;
637 dev->dev.parent = sachip->dev;633 dev->dev.parent = sachip->dev;
638 dev->dev.bus = &sa1111_bus_type;634 dev->dev.bus = &sa1111_bus_type;
639 dev->dev.release = sa1111_dev_release;635 dev->dev.release = sa1111_dev_release;
640 dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask;
641 dev->res.start = sachip->phys + info->offset;636 dev->res.start = sachip->phys + info->offset;
642 dev->res.end = dev->res.start + 511;637 dev->res.end = dev->res.start + 511;
643 dev->res.name = dev_name(&dev->dev);638 dev->res.name = dev_name(&dev->dev);
644 dev->res.flags = IORESOURCE_MEM;639 dev->res.flags = IORESOURCE_MEM;
645 dev->mapbase = sachip->base + info->offset;640 dev->mapbase = sachip->base + info->offset;
646 dev->skpcr_mask = info->skpcr_mask;641 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
658 642
659 ret = device_register(&dev->dev);643 for (i = 0; i < ARRAY_SIZE(info->irq); i++)
660 if (ret) {644 dev->irq[i] = sachip->irq_base + info->irq[i];
661 release_resource(&dev->res);
662 kfree(dev);
663 goto out;
664 }
665 645
666#ifdef CONFIG_DMABOUNCE
667 /*646 /*
668 * If the parent device has a DMA mask associated with it,647 * If the parent device has a DMA mask associated with it, and
669 * propagate it down to the children.648 * this child supports DMA, propagate it down to the children.
670 */649 */
671 if (sachip->dev->dma_mask) {650 if (info->dma && sachip->dev->dma_mask) {
672 dev->dma_mask = *sachip->dev->dma_mask;651 dev->dma_mask = *sachip->dev->dma_mask;
673 dev->dev.dma_mask = &dev->dma_mask;652 dev->dev.dma_mask = &dev->dma_mask;
653 dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask;
654 }
674 655
675 if (dev->dma_mask != 0xffffffffUL) {656 ret = request_resource(parent, &dev->res);
676 ret = dmabounce_register_dev(&dev->dev, 1024, 4096,657 if (ret) {
677 sa1111_needs_bounce);658 dev_err(sachip->dev, "failed to allocate resource for %s\n",
678 if (ret) {659 dev->res.name);
679 dev_err(&dev->dev, "SA1111: Failed to register"660 goto err_resource;
680 " with dmabounce\n");
681 device_unregister(&dev->dev);
682 }
683 }
684 }661 }
685#endif
686 662
687out: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:
688 return ret;673 return ret;
689}674}
690 675
@@ -698,16 +683,21 @@ out: · 7 unmodified lines
698 * Returns:683 * Returns:
699 * %-ENODEV device not found.684 * %-ENODEV device not found.
700 * %-EBUSY physical address already marked in-use.685 * %-EBUSY physical address already marked in-use.
686 * %-EINVAL no platform data passed
701 * %0 successful.687 * %0 successful.
702 */688 */
703static int __devinit689static int __devinit
704__sa1111_probe(struct device *me, struct resource *mem, int irq)690__sa1111_probe(struct device *me, struct resource *mem, int irq)
705{691{
692 struct sa1111_platform_data *pd = me->platform_data;
706 struct sa1111 *sachip;693 struct sa1111 *sachip;
707 unsigned long id;694 unsigned long id;
708 unsigned int has_devs;695 unsigned int has_devs;
709 int i, ret = -ENODEV;696 int i, ret = -ENODEV;
710 697
698 if (!pd)
699 return -EINVAL;
700
711 sachip = kzalloc(sizeof(struct sa1111), GFP_KERNEL);701 sachip = kzalloc(sizeof(struct sa1111), GFP_KERNEL);
712 if (!sachip)702 if (!sachip)
713 return -ENOMEM;703 return -ENOMEM;
@@ -727,6 +717,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) · 13 unmodified lines
727 sachip->dev = me;717 sachip->dev = me;
728 dev_set_drvdata(sachip->dev, sachip);718 dev_set_drvdata(sachip->dev, sachip);
729 719
720 sachip->pdata = pd;
730 sachip->phys = mem->start;721 sachip->phys = mem->start;
731 sachip->irq = irq;722 sachip->irq = irq;
732 723
@@ -759,6 +750,16 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) · 26 unmodified lines
759 */750 */
760 sa1111_wake(sachip);751 sa1111_wake(sachip);
761 752
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
762#ifdef CONFIG_ARCH_SA1100763#ifdef CONFIG_ARCH_SA1100
763 {764 {
764 unsigned int val;765 unsigned int val;
@@ -789,24 +790,14 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) · 24 unmodified lines
789 }790 }
790#endif791#endif
791 792
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
799 g_sa1111 = sachip;793 g_sa1111 = sachip;
800 794
801 has_devs = ~0;795 has_devs = ~0;
802 if (machine_is_assabet() || machine_is_jornada720() ||796 if (pd)
803 machine_is_badge4())797 has_devs &= ~pd->disable_devs;
804 has_devs &= ~(1 << 4);
805 else
806 has_devs &= ~(1 << 1);
807 798
808 for (i = 0; i < ARRAY_SIZE(sa1111_devices); i++)799 for (i = 0; i < ARRAY_SIZE(sa1111_devices); i++)
809 if (has_devs & (1 << i))800 if (sa1111_devices[i].devid & has_devs)
810 sa1111_init_one_child(sachip, mem, &sa1111_devices[i]);801 sa1111_init_one_child(sachip, mem, &sa1111_devices[i]);
811 802
812 return 0;803 return 0;
@@ -824,7 +815,10 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) · 11 unmodified lines
824 815
825static int sa1111_remove_one(struct device *dev, void *data)816static int sa1111_remove_one(struct device *dev, void *data)
826{817{
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);
828 return 0;822 return 0;
829}823}
830 824
@@ -846,6 +840,7 @@ static void __sa1111_remove(struct sa1111 *sachip) · 15 unmodified lines
846 if (sachip->irq != NO_IRQ) {840 if (sachip->irq != NO_IRQ) {
847 irq_set_chained_handler(sachip->irq, NULL);841 irq_set_chained_handler(sachip->irq, NULL);
848 irq_set_handler_data(sachip->irq, NULL);842 irq_set_handler_data(sachip->irq, NULL);
843 irq_free_descs(sachip->irq_base, SA1111_IRQ_NR);
849 844
850 release_mem_region(sachip->phys + SA1111_INTC, 512);845 release_mem_region(sachip->phys + SA1111_INTC, 512);
851 }846 }
@@ -904,6 +899,9 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state) · 52 unmodified lines
904 save->skpwm0 = sa1111_readl(base + SA1111_SKPWM0);899 save->skpwm0 = sa1111_readl(base + SA1111_SKPWM0);
905 save->skpwm1 = sa1111_readl(base + SA1111_SKPWM1);900 save->skpwm1 = sa1111_readl(base + SA1111_SKPWM1);
906 901
902 sa1111_writel(0, sachip->base + SA1111_SKPWM0);
903 sa1111_writel(0, sachip->base + SA1111_SKPWM1);
904
907 base = sachip->base + SA1111_INTC;905 base = sachip->base + SA1111_INTC;
908 save->intpol0 = sa1111_readl(base + SA1111_INTPOL0);906 save->intpol0 = sa1111_readl(base + SA1111_INTPOL0);
909 save->intpol1 = sa1111_readl(base + SA1111_INTPOL1);907 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
919 */917 */
920 val = sa1111_readl(sachip->base + SA1111_SKCR);918 val = sa1111_readl(sachip->base + SA1111_SKCR);
921 sa1111_writel(val | SKCR_SLEEP, sachip->base + SA1111_SKCR);919 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);
924 920
925 clk_disable(sachip->clk);921 clk_disable(sachip->clk);
926 922
927 spin_unlock_irqrestore(&sachip->lock, flags);923 spin_unlock_irqrestore(&sachip->lock, flags);
928 924
925#ifdef CONFIG_ARCH_SA1100
926 sa1110_mb_disable();
927#endif
928
929 return 0;929 return 0;
930}930}
931 931
@@ -966,6 +966,11 @@ static int sa1111_resume(struct platform_device *dev) · 34 unmodified lines
966 */966 */
967 sa1111_wake(sachip);967 sa1111_wake(sachip);
968 968
969#ifdef CONFIG_ARCH_SA1100
970 /* Enable the memory bus request/grant signals */
971 sa1110_mb_enable();
972#endif
973
969 /*974 /*
970 * Only lock for write ops. Also, sa1111_wake must be called with975 * Only lock for write ops. Also, sa1111_wake must be called with
971 * released spinlock!976 * released spinlock!
@@ -1053,6 +1058,7 @@ static struct platform_driver sa1111_device_driver = { · 81 unmodified lines
1053 .resume = sa1111_resume,1058 .resume = sa1111_resume,
1054 .driver = {1059 .driver = {
1055 .name = "sa1111",1060 .name = "sa1111",
1061 .owner = THIS_MODULE,
1056 },1062 },
1057};1063};
1058 1064
@@ -1238,16 +1244,23 @@ EXPORT_SYMBOL(sa1111_set_sleep_io); · 179 unmodified lines
1238 * sa1111_enable_device - enable an on-chip SA1111 function block1244 * sa1111_enable_device - enable an on-chip SA1111 function block
1239 * @sadev: SA1111 function block device to enable1245 * @sadev: SA1111 function block device to enable
1240 */1246 */
1241void sa1111_enable_device(struct sa1111_dev *sadev)1247int sa1111_enable_device(struct sa1111_dev *sadev)
1242{1248{
1243 struct sa1111 *sachip = sa1111_chip_driver(sadev);1249 struct sa1111 *sachip = sa1111_chip_driver(sadev);
1244 unsigned long flags;1250 unsigned long flags;
1245 unsigned int val;1251 unsigned int val;
1252 int ret = 0;
1246 1253
1247 spin_lock_irqsave(&sachip->lock, flags);1254 if (sachip->pdata && sachip->pdata->enable)
1248 val = sa1111_readl(sachip->base + SA1111_SKPCR);1255 ret = sachip->pdata->enable(sachip->pdata->data, sadev->devid);
1249 sa1111_writel(val | sadev->skpcr_mask, sachip->base + SA1111_SKPCR);1256
1250 spin_unlock_irqrestore(&sachip->lock, flags);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;
1251}1264}
1252EXPORT_SYMBOL(sa1111_enable_device);1265EXPORT_SYMBOL(sa1111_enable_device);
1253 1266
@@ -1265,6 +1278,9 @@ void sa1111_disable_device(struct sa1111_dev *sadev) · 11 unmodified lines
1265 val = sa1111_readl(sachip->base + SA1111_SKPCR);1278 val = sa1111_readl(sachip->base + SA1111_SKPCR);
1266 sa1111_writel(val & ~sadev->skpcr_mask, sachip->base + SA1111_SKPCR);1279 sa1111_writel(val & ~sadev->skpcr_mask, sachip->base + SA1111_SKPCR);
1267 spin_unlock_irqrestore(&sachip->lock, flags);1280 spin_unlock_irqrestore(&sachip->lock, flags);
1281
1282 if (sachip->pdata && sachip->pdata->disable)
1283 sachip->pdata->disable(sachip->pdata->data, sadev->devid);
1268}1284}
1269EXPORT_SYMBOL(sa1111_disable_device);1285EXPORT_SYMBOL(sa1111_disable_device);
1270 1286
@@ -1279,7 +1295,7 @@ static int sa1111_match(struct device *_dev, struct device_driver *_drv) · 8 unmodified lines
1279 struct sa1111_dev *dev = SA1111_DEV(_dev);1295 struct sa1111_dev *dev = SA1111_DEV(_dev);
1280 struct sa1111_driver *drv = SA1111_DRV(_drv);1296 struct sa1111_driver *drv = SA1111_DRV(_drv);
1281 1297
1282 return dev->devid == drv->devid;1298 return dev->devid & drv->devid;
1283}1299}
1284 1300
1285static int sa1111_bus_suspend(struct device *dev, pm_message_t state)1301static 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
1304 return ret;1320 return ret;
1305}1321}
1306 1322
1323static 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
1307static int sa1111_bus_probe(struct device *dev)1331static int sa1111_bus_probe(struct device *dev)
1308{1332{
1309 struct sa1111_dev *sadev = SA1111_DEV(dev);1333 struct sa1111_dev *sadev = SA1111_DEV(dev);
@@ -1333,6 +1357,7 @@ struct bus_type sa1111_bus_type = { · 23 unmodified lines
1333 .remove = sa1111_bus_remove,1357 .remove = sa1111_bus_remove,
1334 .suspend = sa1111_bus_suspend,1358 .suspend = sa1111_bus_suspend,
1335 .resume = sa1111_bus_resume,1359 .resume = sa1111_bus_resume,
1360 .shutdown = sa1111_bus_shutdown,
1336};1361};
1337EXPORT_SYMBOL(sa1111_bus_type);1362EXPORT_SYMBOL(sa1111_bus_type);
1338 1363
@@ -1349,9 +1374,70 @@ void sa1111_driver_unregister(struct sa1111_driver *driver) · 10 unmodified lines
1349}1374}
1350EXPORT_SYMBOL(sa1111_driver_unregister);1375EXPORT_SYMBOL(sa1111_driver_unregister);
1351 1376
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 */
1393static 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
1406static 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
1429static struct notifier_block sa1111_bus_notifier = {
1430 .notifier_call = sa1111_notifier_call,
1431};
1432#endif
1433
1352static int __init sa1111_init(void)1434static int __init sa1111_init(void)
1353{1435{
1354 int ret = bus_register(&sa1111_bus_type);1436 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
1355 if (ret == 0)1441 if (ret == 0)
1356 platform_driver_register(&sa1111_device_driver);1442 platform_driver_register(&sa1111_device_driver);
1357 return ret;1443 return ret;
@@ -1360,6 +1446,9 @@ static int __init sa1111_init(void) · 2 unmodified lines
1360static void __exit sa1111_exit(void)1446static void __exit sa1111_exit(void)
1361{1447{
1362 platform_driver_unregister(&sa1111_device_driver);1448 platform_driver_unregister(&sa1111_device_driver);
1449#ifdef CONFIG_DMABOUNCE
1450 bus_unregister_notifier(&sa1111_bus_type, &sa1111_bus_notifier);
1451#endif
1363 bus_unregister(&sa1111_bus_type);1452 bus_unregister(&sa1111_bus_type);
1364}1453}
1365 1454
arch/arm/common/timer-sp.c+16−1
@@ -26,6 +26,7 @@ · 25 unmodified lines
26#include <linux/irq.h>26#include <linux/irq.h>
27#include <linux/io.h>27#include <linux/io.h>
28 28
29#include <asm/sched_clock.h>
29#include <asm/hardware/arm_timer.h>30#include <asm/hardware/arm_timer.h>
30 31
31static long __init sp804_get_clock_rate(const char *name)32static 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
67 return rate;68 return rate;
68}69}
69 70
70void __init sp804_clocksource_init(void __iomem *base, const char *name)71static void __iomem *sched_clock_base;
72
73static u32 sp804_read(void)
74{
75 return ~readl_relaxed(sched_clock_base + TIMER_VALUE);
76}
77
78void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base,
79 const char *name,
80 int use_sched_clock)
71{81{
72 long rate = sp804_get_clock_rate(name);82 long rate = sp804_get_clock_rate(name);
73 83
@@ -83,6 +93,11 @@ void __init sp804_clocksource_init(void __iomem *base, const char *name) · 9 unmodified lines
83 93
84 clocksource_mmio_init(base + TIMER_VALUE, name,94 clocksource_mmio_init(base + TIMER_VALUE, name,
85 rate, 200, 32, clocksource_mmio_readl_down);95 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 }
86}101}
87 102
88 103
arch/arm/common/via82c505.c+0−1
@@ -6,7 +6,6 @@ · 5 unmodified lines
6#include <linux/ioport.h>6#include <linux/ioport.h>
7#include <linux/io.h>7#include <linux/io.h>
8 8
9#include <asm/system.h>
10 9
11#include <asm/mach/pci.h>10#include <asm/mach/pci.h>
12 11
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
427 427
428/*428/*
429 * Handle each interrupt in a single VIC. Returns non-zero if we've429 * 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 the430 * handled at least one interrupt. This reads the status register
431 * status register and handles all interrupts in order from LSB first.431 * before handling each interrupt, which is necessary given that
432 * handle_IRQ may briefly re-enable interrupts for soft IRQ handling.
432 */433 */
433static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)434static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)
434{435{
435 u32 stat, irq;436 u32 stat, irq;
436 int handled = 0;437 int handled = 0;
437 438
438 stat = readl_relaxed(vic->base + VIC_IRQ_STATUS);439 while ((stat = readl_relaxed(vic->base + VIC_IRQ_STATUS))) {
439 while (stat) {
440 irq = ffs(stat) - 1;440 irq = ffs(stat) - 1;
441 handle_IRQ(irq_find_mapping(vic->domain, irq), regs);441 handle_IRQ(irq_find_mapping(vic->domain, irq), regs);
442 stat &= ~(1 << irq);
443 handled = 1;442 handled = 1;
444 }443 }
445 444
arch/arm/configs/at91cap9_defconfig+0−108
@@ -1,108 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_LOCALVERSION_AUTO is not set
3# CONFIG_SWAP is not set
4CONFIG_SYSVIPC=y
5CONFIG_LOG_BUF_SHIFT=14
6CONFIG_BLK_DEV_INITRD=y
7CONFIG_SLAB=y
8CONFIG_MODULES=y
9CONFIG_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
13CONFIG_ARCH_AT91=y
14CONFIG_ARCH_AT91CAP9=y
15CONFIG_MACH_AT91CAP9ADK=y
16CONFIG_MTD_AT91_DATAFLASH_CARD=y
17CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
18# CONFIG_ARM_THUMB is not set
19CONFIG_AEABI=y
20CONFIG_LEDS=y
21CONFIG_LEDS_CPU=y
22CONFIG_ZBOOT_ROM_TEXT=0x0
23CONFIG_ZBOOT_ROM_BSS=0x0
24CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/ram0 rw"
25CONFIG_FPE_NWFPE=y
26CONFIG_NET=y
27CONFIG_PACKET=y
28CONFIG_UNIX=y
29CONFIG_INET=y
30CONFIG_IP_PNP=y
31CONFIG_IP_PNP_BOOTP=y
32CONFIG_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
39CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
40CONFIG_MTD=y
41CONFIG_MTD_CMDLINE_PARTS=y
42CONFIG_MTD_CHAR=y
43CONFIG_MTD_BLOCK=y
44CONFIG_MTD_CFI=y
45CONFIG_MTD_JEDECPROBE=y
46CONFIG_MTD_CFI_AMDSTD=y
47CONFIG_MTD_PHYSMAP=y
48CONFIG_MTD_DATAFLASH=y
49CONFIG_MTD_NAND=y
50CONFIG_MTD_NAND_ATMEL=y
51CONFIG_BLK_DEV_LOOP=y
52CONFIG_BLK_DEV_RAM=y
53CONFIG_BLK_DEV_RAM_SIZE=8192
54CONFIG_SCSI=y
55CONFIG_BLK_DEV_SD=y
56CONFIG_SCSI_MULTI_LUN=y
57CONFIG_NETDEVICES=y
58CONFIG_MII=y
59CONFIG_MACB=y
60# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
61CONFIG_INPUT_EVDEV=y
62# CONFIG_INPUT_KEYBOARD is not set
63# CONFIG_INPUT_MOUSE is not set
64CONFIG_INPUT_TOUCHSCREEN=y
65CONFIG_TOUCHSCREEN_ADS7846=y
66# CONFIG_SERIO is not set
67CONFIG_SERIAL_ATMEL=y
68CONFIG_SERIAL_ATMEL_CONSOLE=y
69CONFIG_HW_RANDOM=y
70CONFIG_I2C=y
71CONFIG_I2C_CHARDEV=y
72CONFIG_SPI=y
73CONFIG_SPI_ATMEL=y
74# CONFIG_HWMON is not set
75CONFIG_WATCHDOG=y
76CONFIG_WATCHDOG_NOWAYOUT=y
77CONFIG_FB=y
78CONFIG_FB_ATMEL=y
79CONFIG_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
83CONFIG_USB=y
84CONFIG_USB_DEVICEFS=y
85CONFIG_USB_MON=y
86CONFIG_USB_OHCI_HCD=y
87CONFIG_USB_STORAGE=y
88CONFIG_USB_GADGET=y
89CONFIG_USB_ETH=m
90CONFIG_USB_FILE_STORAGE=m
91CONFIG_MMC=y
92CONFIG_MMC_AT91=m
93CONFIG_RTC_CLASS=y
94CONFIG_RTC_DRV_AT91SAM9=y
95CONFIG_EXT2_FS=y
96CONFIG_VFAT_FS=y
97CONFIG_TMPFS=y
98CONFIG_JFFS2_FS=y
99CONFIG_CRAMFS=y
100CONFIG_NFS_FS=y
101CONFIG_ROOT_NFS=y
102CONFIG_NLS_CODEPAGE_437=y
103CONFIG_NLS_CODEPAGE_850=y
104CONFIG_NLS_ISO8859_1=y
105CONFIG_DEBUG_FS=y
106CONFIG_DEBUG_KERNEL=y
107CONFIG_DEBUG_INFO=y
108CONFIG_DEBUG_USER=y
arch/arm/configs/at91sam9g20_defconfig+3−0
@@ -74,6 +74,8 @@ CONFIG_LEGACY_PTY_COUNT=16 · 73 unmodified lines
74CONFIG_SERIAL_ATMEL=y74CONFIG_SERIAL_ATMEL=y
75CONFIG_SERIAL_ATMEL_CONSOLE=y75CONFIG_SERIAL_ATMEL_CONSOLE=y
76CONFIG_HW_RANDOM=y76CONFIG_HW_RANDOM=y
77CONFIG_I2C=y
78CONFIG_I2C_GPIO=y
77CONFIG_SPI=y79CONFIG_SPI=y
78CONFIG_SPI_ATMEL=y80CONFIG_SPI_ATMEL=y
79CONFIG_SPI_SPIDEV=y81CONFIG_SPI_SPIDEV=y
@@ -105,6 +107,7 @@ CONFIG_LEDS_TRIGGERS=y · 25 unmodified lines
105CONFIG_LEDS_TRIGGER_TIMER=y107CONFIG_LEDS_TRIGGER_TIMER=y
106CONFIG_LEDS_TRIGGER_HEARTBEAT=y108CONFIG_LEDS_TRIGGER_HEARTBEAT=y
107CONFIG_RTC_CLASS=y109CONFIG_RTC_CLASS=y
110CONFIG_RTC_DRV_RV3029C2=y
108CONFIG_RTC_DRV_AT91SAM9=y111CONFIG_RTC_DRV_AT91SAM9=y
109CONFIG_EXT2_FS=y112CONFIG_EXT2_FS=y
110CONFIG_MSDOS_FS=y113CONFIG_MSDOS_FS=y
arch/arm/configs/imx_v4_v5_defconfig+19−0
@@ -45,6 +45,7 @@ CONFIG_FPE_NWFPE=y · 44 unmodified lines
45CONFIG_FPE_NWFPE_XP=y45CONFIG_FPE_NWFPE_XP=y
46CONFIG_PM_DEBUG=y46CONFIG_PM_DEBUG=y
47CONFIG_NET=y47CONFIG_NET=y
48CONFIG_SMSC911X=y
48CONFIG_PACKET=y49CONFIG_PACKET=y
49CONFIG_UNIX=y50CONFIG_UNIX=y
50CONFIG_INET=y51CONFIG_INET=y
@@ -68,6 +69,7 @@ CONFIG_MTD_CFI=y · 17 unmodified lines
68CONFIG_MTD_CFI_ADV_OPTIONS=y69CONFIG_MTD_CFI_ADV_OPTIONS=y
69CONFIG_MTD_CFI_GEOMETRY=y70CONFIG_MTD_CFI_GEOMETRY=y
70# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set71# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
72CONFIG_MTD_MAP_BANK_WIDTH_4=y
71# CONFIG_MTD_CFI_I2 is not set73# CONFIG_MTD_CFI_I2 is not set
72CONFIG_MTD_CFI_INTELEXT=y74CONFIG_MTD_CFI_INTELEXT=y
73CONFIG_MTD_PHYSMAP=y75CONFIG_MTD_PHYSMAP=y
@@ -78,6 +80,8 @@ CONFIG_MISC_DEVICES=y · 4 unmodified lines
78CONFIG_EEPROM_AT24=y80CONFIG_EEPROM_AT24=y
79CONFIG_EEPROM_AT25=y81CONFIG_EEPROM_AT25=y
80CONFIG_NETDEVICES=y82CONFIG_NETDEVICES=y
83CONFIG_CS89x0=y
84CONFIG_CS89x0_PLATFORM=y
81CONFIG_DM9000=y85CONFIG_DM9000=y
82CONFIG_SMC91X=y86CONFIG_SMC91X=y
83CONFIG_SMC911X=y87CONFIG_SMC911X=y
@@ -115,6 +119,21 @@ CONFIG_FB_IMX=y · 31 unmodified lines
115CONFIG_BACKLIGHT_LCD_SUPPORT=y119CONFIG_BACKLIGHT_LCD_SUPPORT=y
116CONFIG_LCD_CLASS_DEVICE=y120CONFIG_LCD_CLASS_DEVICE=y
117CONFIG_BACKLIGHT_CLASS_DEVICE=y121CONFIG_BACKLIGHT_CLASS_DEVICE=y
122CONFIG_LCD_L4F00242T03=y
123CONFIG_MEDIA_SUPPORT=y
124CONFIG_VIDEO_DEV=y
125CONFIG_VIDEO_V4L2_COMMON=y
126CONFIG_VIDEO_MEDIA=y
127CONFIG_VIDEO_V4L2=y
128CONFIG_VIDEOBUF_GEN=y
129CONFIG_VIDEOBUF_DMA_CONTIG=y
130CONFIG_VIDEOBUF2_CORE=y
131CONFIG_VIDEO_CAPTURE_DRIVERS=y
132CONFIG_V4L_PLATFORM_DRIVERS=y
133CONFIG_SOC_CAMERA=y
134CONFIG_SOC_CAMERA_OV2640=y
135CONFIG_VIDEO_MX2_HOSTSUPPORT=y
136CONFIG_VIDEO_MX2=y
118CONFIG_BACKLIGHT_PWM=y137CONFIG_BACKLIGHT_PWM=y
119CONFIG_FRAMEBUFFER_CONSOLE=y138CONFIG_FRAMEBUFFER_CONSOLE=y
120CONFIG_FONTS=y139CONFIG_FONTS=y
arch/arm/configs/imx_v6_v7_defconfig+36−3
@@ -5,6 +5,7 @@ CONFIG_SYSVIPC=y · 4 unmodified lines
5CONFIG_LOG_BUF_SHIFT=185CONFIG_LOG_BUF_SHIFT=18
6CONFIG_CGROUPS=y6CONFIG_CGROUPS=y
7CONFIG_RELAY=y7CONFIG_RELAY=y
8CONFIG_BLK_DEV_INITRD=y
8CONFIG_EXPERT=y9CONFIG_EXPERT=y
9# CONFIG_SLUB_DEBUG is not set10# CONFIG_SLUB_DEBUG is not set
10# CONFIG_COMPAT_BRK is not set11# CONFIG_COMPAT_BRK is not set
@@ -12,7 +13,6 @@ CONFIG_MODULES=y · 1 unmodified line
12CONFIG_MODULE_UNLOAD=y13CONFIG_MODULE_UNLOAD=y
13CONFIG_MODVERSIONS=y14CONFIG_MODVERSIONS=y
14CONFIG_MODULE_SRCVERSION_ALL=y15CONFIG_MODULE_SRCVERSION_ALL=y
15# CONFIG_LBDAF is not set
16# CONFIG_BLK_DEV_BSG is not set16# CONFIG_BLK_DEV_BSG is not set
17CONFIG_ARCH_MXC=y17CONFIG_ARCH_MXC=y
18CONFIG_MACH_MX31LILLY=y18CONFIG_MACH_MX31LILLY=y
@@ -26,7 +26,6 @@ CONFIG_MACH_ARMADILLO5X0=y · 7 unmodified lines
26CONFIG_MACH_KZM_ARM11_01=y26CONFIG_MACH_KZM_ARM11_01=y
27CONFIG_MACH_PCM043=y27CONFIG_MACH_PCM043=y
28CONFIG_MACH_MX35_3DS=y28CONFIG_MACH_MX35_3DS=y
29CONFIG_MACH_EUKREA_CPUIMX35=y
30CONFIG_MACH_VPR200=y29CONFIG_MACH_VPR200=y
31CONFIG_MACH_IMX51_DT=y30CONFIG_MACH_IMX51_DT=y
32CONFIG_MACH_MX51_3DS=y31CONFIG_MACH_MX51_3DS=y
@@ -82,8 +81,9 @@ CONFIG_PATA_IMX=y · 49 unmodified lines
82CONFIG_NETDEVICES=y81CONFIG_NETDEVICES=y
83# CONFIG_NET_VENDOR_BROADCOM is not set82# CONFIG_NET_VENDOR_BROADCOM is not set
84# CONFIG_NET_VENDOR_CHELSIO is not set83# CONFIG_NET_VENDOR_CHELSIO is not set
84CONFIG_CS89x0=y
85CONFIG_CS89x0_PLATFORM=y
85# CONFIG_NET_VENDOR_FARADAY is not set86# CONFIG_NET_VENDOR_FARADAY is not set
86CONFIG_FEC=y
87# CONFIG_NET_VENDOR_INTEL is not set87# CONFIG_NET_VENDOR_INTEL is not set
88# CONFIG_NET_VENDOR_MARVELL is not set88# CONFIG_NET_VENDOR_MARVELL is not set
89# CONFIG_NET_VENDOR_MICREL is not set89# CONFIG_NET_VENDOR_MICREL is not set
@@ -126,7 +126,40 @@ CONFIG_WATCHDOG=y · 36 unmodified lines
126CONFIG_IMX2_WDT=y126CONFIG_IMX2_WDT=y
127CONFIG_MFD_MC13XXX=y127CONFIG_MFD_MC13XXX=y
128CONFIG_REGULATOR=y128CONFIG_REGULATOR=y
129CONFIG_REGULATOR_FIXED_VOLTAGE=y
130CONFIG_REGULATOR_MC13783=y
129CONFIG_REGULATOR_MC13892=y131CONFIG_REGULATOR_MC13892=y
132CONFIG_MEDIA_SUPPORT=y
133CONFIG_VIDEO_V4L2=y
134CONFIG_VIDEO_DEV=y
135CONFIG_VIDEO_V4L2_COMMON=y
136CONFIG_VIDEOBUF_GEN=y
137CONFIG_VIDEOBUF2_CORE=y
138CONFIG_VIDEOBUF2_MEMOPS=y
139CONFIG_VIDEOBUF2_DMA_CONTIG=y
140CONFIG_VIDEO_CAPTURE_DRIVERS=y
141CONFIG_V4L_PLATFORM_DRIVERS=y
142CONFIG_SOC_CAMERA=y
143CONFIG_SOC_CAMERA_OV2640=y
144CONFIG_MX3_VIDEO=y
145CONFIG_VIDEO_MX3=y
146CONFIG_FB=y
147CONFIG_FB_MX3=y
148CONFIG_BACKLIGHT_LCD_SUPPORT=y
149CONFIG_LCD_CLASS_DEVICE=y
150CONFIG_LCD_L4F00242T03=y
151CONFIG_BACKLIGHT_CLASS_DEVICE=y
152CONFIG_BACKLIGHT_GENERIC=y
153CONFIG_DUMMY_CONSOLE=y
154CONFIG_FRAMEBUFFER_CONSOLE=y
155CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
156CONFIG_FONTS=y
157CONFIG_FONT_8x8=y
158CONFIG_FONT_8x16=y
159CONFIG_LOGO=y
160CONFIG_LOGO_LINUX_MONO=y
161CONFIG_LOGO_LINUX_VGA16=y
162CONFIG_LOGO_LINUX_CLUT224=y
130CONFIG_USB=y163CONFIG_USB=y
131CONFIG_USB_EHCI_HCD=y164CONFIG_USB_EHCI_HCD=y
132CONFIG_USB_EHCI_MXC=y165CONFIG_USB_EHCI_MXC=y
arch/arm/configs/integrator_defconfig+8−0
@@ -57,18 +57,24 @@ CONFIG_NETDEVICES=y · 56 unmodified lines
57CONFIG_NET_ETHERNET=y57CONFIG_NET_ETHERNET=y
58CONFIG_NET_PCI=y58CONFIG_NET_PCI=y
59CONFIG_E100=y59CONFIG_E100=y
60CONFIG_SMC91X=y
60# CONFIG_KEYBOARD_ATKBD is not set61# CONFIG_KEYBOARD_ATKBD is not set
61# CONFIG_SERIO_SERPORT is not set62# CONFIG_SERIO_SERPORT is not set
62CONFIG_SERIAL_AMBA_PL010=y63CONFIG_SERIAL_AMBA_PL010=y
63CONFIG_SERIAL_AMBA_PL010_CONSOLE=y64CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
64CONFIG_FB=y65CONFIG_FB=y
65CONFIG_FB_MODE_HELPERS=y66CONFIG_FB_MODE_HELPERS=y
67CONFIG_FB_ARMCLCD=y
66CONFIG_FB_MATROX=y68CONFIG_FB_MATROX=y
67CONFIG_FB_MATROX_MILLENIUM=y69CONFIG_FB_MATROX_MILLENIUM=y
68CONFIG_FB_MATROX_MYSTIQUE=y70CONFIG_FB_MATROX_MYSTIQUE=y
71# CONFIG_VGA_CONSOLE is not set
72CONFIG_MMC=y
73CONFIG_MMC_ARMMMCI=y
69CONFIG_RTC_CLASS=y74CONFIG_RTC_CLASS=y
70CONFIG_RTC_DRV_PL030=y75CONFIG_RTC_DRV_PL030=y
71CONFIG_EXT2_FS=y76CONFIG_EXT2_FS=y
77CONFIG_VFAT_FS=y
72CONFIG_TMPFS=y78CONFIG_TMPFS=y
73CONFIG_JFFS2_FS=y79CONFIG_JFFS2_FS=y
74CONFIG_CRAMFS=y80CONFIG_CRAMFS=y
@@ -78,5 +84,7 @@ CONFIG_ROOT_NFS=y · 3 unmodified lines
78CONFIG_NFSD=y84CONFIG_NFSD=y
79CONFIG_NFSD_V3=y85CONFIG_NFSD_V3=y
80CONFIG_PARTITION_ADVANCED=y86CONFIG_PARTITION_ADVANCED=y
87CONFIG_NLS_CODEPAGE_437=y
88CONFIG_NLS_ISO8859_1=y
81CONFIG_MAGIC_SYSRQ=y89CONFIG_MAGIC_SYSRQ=y
82CONFIG_DEBUG_KERNEL=y90CONFIG_DEBUG_KERNEL=y
arch/arm/configs/lpc32xx_defconfig+145−0
@@ -0,0 +1,145 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_IKCONFIG=y
4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=14
6CONFIG_SYSFS_DEPRECATED=y
7CONFIG_SYSFS_DEPRECATED_V2=y
8CONFIG_BLK_DEV_INITRD=y
9CONFIG_CC_OPTIMIZE_FOR_SIZE=y
10CONFIG_SYSCTL_SYSCALL=y
11CONFIG_EMBEDDED=y
12CONFIG_SLAB=y
13CONFIG_MODULES=y
14CONFIG_MODULE_UNLOAD=y
15# CONFIG_BLK_DEV_BSG is not set
16CONFIG_PARTITION_ADVANCED=y
17CONFIG_ARCH_LPC32XX=y
18CONFIG_NO_HZ=y
19CONFIG_HIGH_RES_TIMERS=y
20CONFIG_PREEMPT=y
21CONFIG_AEABI=y
22CONFIG_ZBOOT_ROM_TEXT=0x0
23CONFIG_ZBOOT_ROM_BSS=0x0
24CONFIG_CMDLINE="console=ttyS0,115200n81 root=/dev/ram0"
25CONFIG_CPU_IDLE=y
26CONFIG_FPE_NWFPE=y
27CONFIG_VFP=y
28# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
29CONFIG_BINFMT_AOUT=y
30CONFIG_NET=y
31CONFIG_PACKET=y
32CONFIG_UNIX=y
33CONFIG_INET=y
34CONFIG_IP_MULTICAST=y
35CONFIG_IP_PNP=y
36CONFIG_IP_PNP_DHCP=y
37CONFIG_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
45CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
46# CONFIG_FW_LOADER is not set
47CONFIG_MTD=y
48CONFIG_MTD_CMDLINE_PARTS=y
49CONFIG_MTD_CHAR=y
50CONFIG_MTD_BLOCK=y
51CONFIG_MTD_NAND=y
52CONFIG_MTD_NAND_MUSEUM_IDS=y
53CONFIG_BLK_DEV_LOOP=y
54CONFIG_BLK_DEV_CRYPTOLOOP=y
55CONFIG_BLK_DEV_RAM=y
56CONFIG_BLK_DEV_RAM_COUNT=1
57CONFIG_BLK_DEV_RAM_SIZE=16384
58CONFIG_MISC_DEVICES=y
59CONFIG_EEPROM_AT25=y
60CONFIG_SCSI=y
61CONFIG_BLK_DEV_SD=y
62CONFIG_NETDEVICES=y
63CONFIG_MII=y
64CONFIG_PHYLIB=y
65CONFIG_SMSC_PHY=y
66# CONFIG_WLAN is not set
67# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
68CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
69CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
70CONFIG_INPUT_EVDEV=y
71# CONFIG_INPUT_MOUSE is not set
72CONFIG_INPUT_TOUCHSCREEN=y
73CONFIG_TOUCHSCREEN_LPC32XX=y
74# CONFIG_LEGACY_PTYS is not set
75CONFIG_SERIAL_8250=y
76CONFIG_SERIAL_8250_CONSOLE=y
77# CONFIG_HW_RANDOM is not set
78CONFIG_I2C=y
79CONFIG_I2C_CHARDEV=y
80CONFIG_I2C_PNX=y
81CONFIG_SPI=y
82CONFIG_SPI_PL022=y
83CONFIG_GPIO_SYSFS=y
84# CONFIG_HWMON is not set
85CONFIG_WATCHDOG=y
86CONFIG_PNX4008_WATCHDOG=y
87CONFIG_FB=y
88CONFIG_FB_ARMCLCD=y
89CONFIG_FRAMEBUFFER_CONSOLE=y
90CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
91CONFIG_LOGO=y
92# CONFIG_LOGO_LINUX_MONO is not set
93# CONFIG_LOGO_LINUX_VGA16 is not set
94CONFIG_SOUND=y
95CONFIG_SND=y
96CONFIG_SND_SEQUENCER=y
97CONFIG_SND_MIXER_OSS=y
98CONFIG_SND_PCM_OSS=y
99CONFIG_SND_SEQUENCER_OSS=y
100CONFIG_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
105CONFIG_SND_SOC=y
106# CONFIG_HID_SUPPORT is not set
107CONFIG_USB=y
108CONFIG_USB_STORAGE=y
109CONFIG_USB_LIBUSUAL=y
110CONFIG_MMC=y
111# CONFIG_MMC_BLOCK_BOUNCE is not set
112CONFIG_MMC_ARMMMCI=y
113CONFIG_NEW_LEDS=y
114CONFIG_LEDS_CLASS=y
115CONFIG_LEDS_GPIO=y
116CONFIG_LEDS_TRIGGERS=y
117CONFIG_LEDS_TRIGGER_HEARTBEAT=y
118CONFIG_RTC_CLASS=y
119CONFIG_RTC_INTF_DEV_UIE_EMUL=y
120CONFIG_RTC_DRV_LPC32XX=y
121CONFIG_EXT2_FS=y
122CONFIG_AUTOFS4_FS=y
123CONFIG_MSDOS_FS=y
124CONFIG_VFAT_FS=y
125CONFIG_TMPFS=y
126CONFIG_JFFS2_FS=y
127CONFIG_JFFS2_FS_WBUF_VERIFY=y
128CONFIG_CRAMFS=y
129CONFIG_NFS_FS=y
130CONFIG_NFS_V3=y
131CONFIG_ROOT_NFS=y
132CONFIG_NLS_CODEPAGE_437=y
133CONFIG_NLS_ASCII=y
134CONFIG_NLS_ISO8859_1=y
135CONFIG_NLS_UTF8=y
136# CONFIG_SCHED_DEBUG is not set
137# CONFIG_DEBUG_PREEMPT is not set
138CONFIG_DEBUG_INFO=y
139# CONFIG_FTRACE is not set
140# CONFIG_ARM_UNWIND is not set
141CONFIG_DEBUG_LL=y
142CONFIG_EARLY_PRINTK=y
143CONFIG_CRYPTO_ANSI_CPRNG=y
144# CONFIG_CRYPTO_HW is not set
145CONFIG_CRC_CCITT=y
arch/arm/configs/magician_defconfig+1−1
@@ -101,7 +101,7 @@ CONFIG_MFD_ASIC3=y · 100 unmodified lines
101CONFIG_HTC_EGPIO=y101CONFIG_HTC_EGPIO=y
102CONFIG_HTC_PASIC3=y102CONFIG_HTC_PASIC3=y
103CONFIG_REGULATOR=y103CONFIG_REGULATOR=y
104CONFIG_REGULATOR_BQ24022=y104CONFIG_REGULATOR_GPIO=y
105CONFIG_FB=y105CONFIG_FB=y
106CONFIG_FB_PXA=y106CONFIG_FB_PXA=y
107CONFIG_FB_PXA_OVERLAY=y107CONFIG_FB_PXA_OVERLAY=y
arch/arm/configs/mini2440_defconfig+1−1
@@ -13,7 +13,7 @@ CONFIG_MODULE_UNLOAD=y · 12 unmodified lines
13CONFIG_MODULE_FORCE_UNLOAD=y13CONFIG_MODULE_FORCE_UNLOAD=y
14# CONFIG_BLK_DEV_BSG is not set14# CONFIG_BLK_DEV_BSG is not set
15CONFIG_BLK_DEV_INTEGRITY=y15CONFIG_BLK_DEV_INTEGRITY=y
16CONFIG_ARCH_S3C2410=y16CONFIG_ARCH_S3C24XX=y
17CONFIG_S3C_ADC=y17CONFIG_S3C_ADC=y
18CONFIG_S3C24XX_PWM=y18CONFIG_S3C24XX_PWM=y
19CONFIG_MACH_MINI2440=y19CONFIG_MACH_MINI2440=y
arch/arm/configs/mxs_defconfig+17−3
@@ -77,10 +77,10 @@ CONFIG_DEVPTS_MULTIPLE_INSTANCES=y · 76 unmodified lines
77CONFIG_SERIAL_AMBA_PL011=y77CONFIG_SERIAL_AMBA_PL011=y
78CONFIG_SERIAL_AMBA_PL011_CONSOLE=y78CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
79# CONFIG_HW_RANDOM is not set79# CONFIG_HW_RANDOM is not set
80CONFIG_I2C=m80CONFIG_I2C=y
81# CONFIG_I2C_COMPAT is not set81# CONFIG_I2C_COMPAT is not set
82CONFIG_I2C_CHARDEV=m82CONFIG_I2C_CHARDEV=y
83CONFIG_I2C_MXS=m83CONFIG_I2C_MXS=y
84CONFIG_SPI=y84CONFIG_SPI=y
85CONFIG_SPI_GPIO=m85CONFIG_SPI_GPIO=m
86CONFIG_DEBUG_GPIO=y86CONFIG_DEBUG_GPIO=y
@@ -90,6 +90,20 @@ CONFIG_GPIO_SYSFS=y · 3 unmodified lines
90CONFIG_DISPLAY_SUPPORT=m90CONFIG_DISPLAY_SUPPORT=m
91# CONFIG_HID_SUPPORT is not set91# CONFIG_HID_SUPPORT is not set
92# CONFIG_USB_SUPPORT is not set92# CONFIG_USB_SUPPORT is not set
93CONFIG_SOUND=y
94CONFIG_SND=y
95CONFIG_SND_TIMER=y
96CONFIG_SND_PCM=y
97CONFIG_SND_JACK=y
98CONFIG_SND_DRIVERS=y
99CONFIG_SND_ARM=y
100CONFIG_SND_SOC=y
101CONFIG_SND_MXS_SOC=y
102CONFIG_SND_SOC_MXS_SGTL5000=y
103CONFIG_SND_SOC_I2C_AND_SPI=y
104CONFIG_SND_SOC_SGTL5000=y
105CONFIG_REGULATOR=y
106CONFIG_REGULATOR_FIXED_VOLTAGE=y
93CONFIG_MMC=y107CONFIG_MMC=y
94CONFIG_MMC_MXS=y108CONFIG_MMC_MXS=y
95CONFIG_RTC_CLASS=y109CONFIG_RTC_CLASS=y
arch/arm/configs/s3c2410_defconfig+18−39
@@ -3,40 +3,47 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
3CONFIG_IKCONFIG=m3CONFIG_IKCONFIG=m
4CONFIG_IKCONFIG_PROC=y4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=165CONFIG_LOG_BUF_SHIFT=16
6CONFIG_SYSFS_DEPRECATED_V2=y
7CONFIG_BLK_DEV_INITRD=y6CONFIG_BLK_DEV_INITRD=y
8CONFIG_SLAB=y7CONFIG_SLAB=y
9CONFIG_MODULES=y8CONFIG_MODULES=y
10CONFIG_MODULE_UNLOAD=y9CONFIG_MODULE_UNLOAD=y
11# CONFIG_BLK_DEV_BSG is not set10# CONFIG_BLK_DEV_BSG is not set
12CONFIG_ARCH_S3C2410=y11CONFIG_PARTITION_ADVANCED=y
12CONFIG_BSD_DISKLABEL=y
13CONFIG_SOLARIS_X86_PARTITION=y
14CONFIG_ARCH_S3C24XX=y
13CONFIG_S3C_BOOT_ERROR_RESET=y15CONFIG_S3C_BOOT_ERROR_RESET=y
14CONFIG_S3C_ADC=y16CONFIG_S3C_ADC=y
15CONFIG_S3C24XX_PWM=y17CONFIG_S3C24XX_PWM=y
16CONFIG_ARCH_SMDK2410=y18CONFIG_CPU_S3C2412=y
19CONFIG_CPU_S3C2416=y
20CONFIG_CPU_S3C2440=y
21CONFIG_CPU_S3C2442=y
22CONFIG_CPU_S3C2443=y
23CONFIG_MACH_AML_M5900=y
24CONFIG_ARCH_BAST=y
17CONFIG_ARCH_H1940=y25CONFIG_ARCH_H1940=y
18CONFIG_MACH_N30=y26CONFIG_MACH_N30=y
19CONFIG_ARCH_BAST=y
20CONFIG_MACH_OTOM=y27CONFIG_MACH_OTOM=y
21CONFIG_MACH_AML_M5900=y28CONFIG_MACH_QT2410=y
29CONFIG_ARCH_SMDK2410=y
22CONFIG_MACH_TCT_HAMMER=y30CONFIG_MACH_TCT_HAMMER=y
23CONFIG_MACH_VR1000=y31CONFIG_MACH_VR1000=y
24CONFIG_MACH_QT2410=y
25CONFIG_MACH_JIVE=y32CONFIG_MACH_JIVE=y
26CONFIG_MACH_SMDK2412=y33CONFIG_MACH_SMDK2412=y
27CONFIG_MACH_VSTMS=y34CONFIG_MACH_VSTMS=y
28CONFIG_MACH_SMDK2416=y35CONFIG_MACH_SMDK2416=y
29CONFIG_MACH_ANUBIS=y36CONFIG_MACH_ANUBIS=y
30CONFIG_MACH_NEO1973_GTA02=y37CONFIG_MACH_AT2440EVB=y
38CONFIG_MACH_MINI2440=y
39CONFIG_MACH_NEXCODER_2440=y
31CONFIG_MACH_OSIRIS=y40CONFIG_MACH_OSIRIS=y
32CONFIG_MACH_OSIRIS_DVS=m41CONFIG_MACH_OSIRIS_DVS=m
33CONFIG_MACH_RX3715=y42CONFIG_MACH_RX3715=y
34CONFIG_ARCH_S3C2440=y43CONFIG_ARCH_S3C2440=y
35CONFIG_MACH_NEXCODER_2440=y44CONFIG_MACH_NEO1973_GTA02=y
36CONFIG_SMDK2440_CPU2442=y
37CONFIG_MACH_AT2440EVB=y
38CONFIG_MACH_MINI2440=y
39CONFIG_MACH_RX1950=y45CONFIG_MACH_RX1950=y
46CONFIG_SMDK2440_CPU2442=y
40CONFIG_MACH_SMDK2443=y47CONFIG_MACH_SMDK2443=y
41# CONFIG_ARM_THUMB is not set48# CONFIG_ARM_THUMB is not set
42CONFIG_ZBOOT_ROM_TEXT=0x049CONFIG_ZBOOT_ROM_TEXT=0x0
@@ -45,7 +52,6 @@ CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0" · 2 unmodified lines
45CONFIG_FPE_NWFPE=y52CONFIG_FPE_NWFPE=y
46CONFIG_FPE_NWFPE_XP=y53CONFIG_FPE_NWFPE_XP=y
47CONFIG_BINFMT_AOUT=y54CONFIG_BINFMT_AOUT=y
48CONFIG_PM=y
49CONFIG_APM_EMULATION=m55CONFIG_APM_EMULATION=m
50CONFIG_NET=y56CONFIG_NET=y
51CONFIG_PACKET=y57CONFIG_PACKET=y
@@ -58,7 +64,6 @@ CONFIG_IP_PNP=y · 6 unmodified lines
58CONFIG_IP_PNP_DHCP=y64CONFIG_IP_PNP_DHCP=y
59CONFIG_IP_PNP_BOOTP=y65CONFIG_IP_PNP_BOOTP=y
60CONFIG_NET_IPIP=m66CONFIG_NET_IPIP=m
61CONFIG_NET_IPGRE=m
62CONFIG_INET_AH=m67CONFIG_INET_AH=m
63CONFIG_INET_ESP=m68CONFIG_INET_ESP=m
64CONFIG_INET_IPCOMP=m69CONFIG_INET_IPCOMP=m
@@ -80,7 +85,6 @@ CONFIG_IPV6_MIP6=m · 15 unmodified lines
80CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m85CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
81CONFIG_IPV6_TUNNEL=m86CONFIG_IPV6_TUNNEL=m
82CONFIG_NETFILTER=y87CONFIG_NETFILTER=y
83CONFIG_NETFILTER_NETLINK_QUEUE=m
84CONFIG_NF_CONNTRACK=m88CONFIG_NF_CONNTRACK=m
85CONFIG_NF_CONNTRACK_EVENTS=y89CONFIG_NF_CONNTRACK_EVENTS=y
86CONFIG_NF_CT_PROTO_DCCP=m90CONFIG_NF_CT_PROTO_DCCP=m
@@ -138,7 +142,6 @@ CONFIG_IP_VS=m · 51 unmodified lines
138CONFIG_NF_CONNTRACK_IPV4=m142CONFIG_NF_CONNTRACK_IPV4=m
139CONFIG_IP_NF_QUEUE=m143CONFIG_IP_NF_QUEUE=m
140CONFIG_IP_NF_IPTABLES=m144CONFIG_IP_NF_IPTABLES=m
141CONFIG_IP_NF_MATCH_ADDRTYPE=m
142CONFIG_IP_NF_MATCH_AH=m145CONFIG_IP_NF_MATCH_AH=m
143CONFIG_IP_NF_MATCH_ECN=m146CONFIG_IP_NF_MATCH_ECN=m
144CONFIG_IP_NF_MATCH_TTL=m147CONFIG_IP_NF_MATCH_TTL=m
@@ -150,7 +153,6 @@ CONFIG_NF_NAT=m · 5 unmodified lines
150CONFIG_IP_NF_TARGET_MASQUERADE=m153CONFIG_IP_NF_TARGET_MASQUERADE=m
151CONFIG_IP_NF_TARGET_NETMAP=m154CONFIG_IP_NF_TARGET_NETMAP=m
152CONFIG_IP_NF_TARGET_REDIRECT=m155CONFIG_IP_NF_TARGET_REDIRECT=m
153CONFIG_NF_NAT_SNMP_BASIC=m
154CONFIG_IP_NF_MANGLE=m156CONFIG_IP_NF_MANGLE=m
155CONFIG_IP_NF_TARGET_CLUSTERIP=m157CONFIG_IP_NF_TARGET_CLUSTERIP=m
156CONFIG_IP_NF_TARGET_ECN=m158CONFIG_IP_NF_TARGET_ECN=m
@@ -177,8 +179,6 @@ CONFIG_IP6_NF_TARGET_REJECT=m · 20 unmodified lines
177CONFIG_IP6_NF_MANGLE=m179CONFIG_IP6_NF_MANGLE=m
178CONFIG_IP6_NF_RAW=m180CONFIG_IP6_NF_RAW=m
179CONFIG_BT=m181CONFIG_BT=m
180CONFIG_BT_L2CAP=m
181CONFIG_BT_SCO=m
182CONFIG_BT_RFCOMM=m182CONFIG_BT_RFCOMM=m
183CONFIG_BT_RFCOMM_TTY=y183CONFIG_BT_RFCOMM_TTY=y
184CONFIG_BT_BNEP=m184CONFIG_BT_BNEP=m
@@ -199,7 +199,6 @@ CONFIG_MAC80211_MESH=y · 14 unmodified lines
199CONFIG_MAC80211_LEDS=y199CONFIG_MAC80211_LEDS=y
200CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"200CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
201CONFIG_MTD=y201CONFIG_MTD=y
202CONFIG_MTD_PARTITIONS=y
203CONFIG_MTD_REDBOOT_PARTS=y202CONFIG_MTD_REDBOOT_PARTS=y
204CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y203CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
205CONFIG_MTD_CMDLINE_PARTS=y204CONFIG_MTD_CMDLINE_PARTS=y
@@ -221,9 +220,6 @@ CONFIG_BLK_DEV_NBD=m · 15 unmodified lines
221CONFIG_BLK_DEV_UB=m220CONFIG_BLK_DEV_UB=m
222CONFIG_BLK_DEV_RAM=y221CONFIG_BLK_DEV_RAM=y
223CONFIG_ATA_OVER_ETH=m222CONFIG_ATA_OVER_ETH=m
224CONFIG_EEPROM_AT25=m
225CONFIG_EEPROM_LEGACY=m
226CONFIG_EEPROM_93CX6=m
227CONFIG_IDE=y223CONFIG_IDE=y
228CONFIG_BLK_DEV_IDECD=y224CONFIG_BLK_DEV_IDECD=y
229CONFIG_BLK_DEV_IDETAPE=m225CONFIG_BLK_DEV_IDETAPE=m
@@ -240,7 +236,6 @@ CONFIG_SCSI_MULTI_LUN=y · 10 unmodified lines
240CONFIG_SCSI_CONSTANTS=y236CONFIG_SCSI_CONSTANTS=y
241CONFIG_SCSI_SCAN_ASYNC=y237CONFIG_SCSI_SCAN_ASYNC=y
242CONFIG_NETDEVICES=y238CONFIG_NETDEVICES=y
243CONFIG_NET_ETHERNET=y
244CONFIG_DM9000=y239CONFIG_DM9000=y
245CONFIG_INPUT_EVDEV=y240CONFIG_INPUT_EVDEV=y
246CONFIG_MOUSE_APPLETOUCH=m241CONFIG_MOUSE_APPLETOUCH=m
@@ -274,7 +269,6 @@ CONFIG_JOYSTICK_XPAD_LEDS=y · 27 unmodified lines
274CONFIG_INPUT_TOUCHSCREEN=y269CONFIG_INPUT_TOUCHSCREEN=y
275CONFIG_TOUCHSCREEN_USB_COMPOSITE=m270CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
276CONFIG_INPUT_MISC=y271CONFIG_INPUT_MISC=y
277CONFIG_INPUT_ATI_REMOTE=m
278CONFIG_INPUT_ATI_REMOTE2=m272CONFIG_INPUT_ATI_REMOTE2=m
279CONFIG_INPUT_KEYSPAN_REMOTE=m273CONFIG_INPUT_KEYSPAN_REMOTE=m
280CONFIG_INPUT_POWERMATE=m274CONFIG_INPUT_POWERMATE=m
@@ -300,7 +294,6 @@ CONFIG_I2C_SIMTEC=y · 19 unmodified lines
300CONFIG_SPI=y294CONFIG_SPI=y
301CONFIG_SPI_GPIO=m295CONFIG_SPI_GPIO=m
302CONFIG_SPI_S3C24XX=m296CONFIG_SPI_S3C24XX=m
303CONFIG_SPI_S3C24XX_GPIO=m
304CONFIG_SPI_SPIDEV=m297CONFIG_SPI_SPIDEV=m
305CONFIG_SPI_TLE62X0=m298CONFIG_SPI_TLE62X0=m
306CONFIG_SENSORS_LM75=m299CONFIG_SENSORS_LM75=m
@@ -315,7 +308,6 @@ CONFIG_FB_MODE_HELPERS=y · 8 unmodified lines
315CONFIG_FB_S3C2410=y308CONFIG_FB_S3C2410=y
316CONFIG_FB_SM501=y309CONFIG_FB_SM501=y
317CONFIG_BACKLIGHT_PWM=m310CONFIG_BACKLIGHT_PWM=m
318# CONFIG_VGA_CONSOLE is not set
319CONFIG_FRAMEBUFFER_CONSOLE=y311CONFIG_FRAMEBUFFER_CONSOLE=y
320CONFIG_SOUND=y312CONFIG_SOUND=y
321CONFIG_SND=y313CONFIG_SND=y
@@ -330,10 +322,6 @@ CONFIG_SND_VERBOSE_PRINTK=y · 8 unmodified lines
330CONFIG_SND_USB_AUDIO=m322CONFIG_SND_USB_AUDIO=m
331CONFIG_SND_USB_CAIAQ=m323CONFIG_SND_USB_CAIAQ=m
332CONFIG_SND_SOC=y324CONFIG_SND_SOC=y
333CONFIG_SND_S3C24XX_SOC=y
334CONFIG_SND_S3C24XX_SOC_JIVE_WM8750=m
335CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710=m
336CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650=m
337# CONFIG_USB_HID is not set325# CONFIG_USB_HID is not set
338CONFIG_USB=y326CONFIG_USB=y
339CONFIG_USB_DEVICEFS=y327CONFIG_USB_DEVICEFS=y
@@ -387,9 +375,7 @@ CONFIG_MMC_TEST=m · 47 unmodified lines
387CONFIG_MMC_SDHCI=m375CONFIG_MMC_SDHCI=m
388CONFIG_MMC_SPI=m376CONFIG_MMC_SPI=m
389CONFIG_MMC_S3C=y377CONFIG_MMC_S3C=y
390CONFIG_LEDS_CLASS=m
391CONFIG_LEDS_S3C24XX=m378CONFIG_LEDS_S3C24XX=m
392CONFIG_LEDS_H1940=m
393CONFIG_LEDS_PCA9532=m379CONFIG_LEDS_PCA9532=m
394CONFIG_LEDS_GPIO=m380CONFIG_LEDS_GPIO=m
395CONFIG_LEDS_PCA955X=m381CONFIG_LEDS_PCA955X=m
@@ -410,8 +396,6 @@ CONFIG_EXT3_FS=y · 14 unmodified lines
410CONFIG_EXT3_FS_POSIX_ACL=y396CONFIG_EXT3_FS_POSIX_ACL=y
411CONFIG_EXT4_FS=m397CONFIG_EXT4_FS=m
412CONFIG_EXT4_FS_POSIX_ACL=y398CONFIG_EXT4_FS_POSIX_ACL=y
413CONFIG_INOTIFY=y
414CONFIG_AUTOFS_FS=m
415CONFIG_AUTOFS4_FS=m399CONFIG_AUTOFS4_FS=m
416CONFIG_FUSE_FS=m400CONFIG_FUSE_FS=m
417CONFIG_ISO9660_FS=y401CONFIG_ISO9660_FS=y
@@ -436,9 +420,6 @@ CONFIG_NFSD=m · 18 unmodified lines
436CONFIG_NFSD_V3_ACL=y420CONFIG_NFSD_V3_ACL=y
437CONFIG_NFSD_V4=y421CONFIG_NFSD_V4=y
438CONFIG_CIFS=m422CONFIG_CIFS=m
439CONFIG_PARTITION_ADVANCED=y
440CONFIG_BSD_DISKLABEL=y
441CONFIG_SOLARIS_X86_PARTITION=y
442CONFIG_NLS_CODEPAGE_437=y423CONFIG_NLS_CODEPAGE_437=y
443CONFIG_NLS_CODEPAGE_737=m424CONFIG_NLS_CODEPAGE_737=m
444CONFIG_NLS_CODEPAGE_775=m425CONFIG_NLS_CODEPAGE_775=m
@@ -481,9 +462,7 @@ CONFIG_MAGIC_SYSRQ=y · 36 unmodified lines
481CONFIG_DEBUG_KERNEL=y462CONFIG_DEBUG_KERNEL=y
482CONFIG_DEBUG_MUTEXES=y463CONFIG_DEBUG_MUTEXES=y
483CONFIG_DEBUG_INFO=y464CONFIG_DEBUG_INFO=y
484# CONFIG_RCU_CPU_STALL_DETECTOR is not set
485CONFIG_SYSCTL_SYSCALL_CHECK=y465CONFIG_SYSCTL_SYSCALL_CHECK=y
486CONFIG_DEBUG_USER=y466CONFIG_DEBUG_USER=y
487CONFIG_DEBUG_ERRORS=y
488CONFIG_DEBUG_LL=y467CONFIG_DEBUG_LL=y
489# CONFIG_CRYPTO_ANSI_CPRNG is not set468# 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
14CONFIG_MODULES=y14CONFIG_MODULES=y
15CONFIG_MODULE_UNLOAD=y15CONFIG_MODULE_UNLOAD=y
16# CONFIG_BLK_DEV_BSG is not set16# CONFIG_BLK_DEV_BSG is not set
17CONFIG_ARCH_S3C2410=y17CONFIG_ARCH_S3C24XX=y
18CONFIG_MACH_TCT_HAMMER=y18CONFIG_MACH_TCT_HAMMER=y
19CONFIG_ZBOOT_ROM_TEXT=0x019CONFIG_ZBOOT_ROM_TEXT=0x0
20CONFIG_ZBOOT_ROM_BSS=0x020CONFIG_ZBOOT_ROM_BSS=0x0
arch/arm/configs/tegra_defconfig+22−11
@@ -11,11 +11,14 @@ CONFIG_RT_GROUP_SCHED=y · 10 unmodified lines
11CONFIG_BLK_DEV_INITRD=y11CONFIG_BLK_DEV_INITRD=y
12# CONFIG_ELF_CORE is not set12# CONFIG_ELF_CORE is not set
13CONFIG_EMBEDDED=y13CONFIG_EMBEDDED=y
14CONFIG_PERF_EVENTS=y
14CONFIG_SLAB=y15CONFIG_SLAB=y
15CONFIG_MODULES=y16CONFIG_MODULES=y
16CONFIG_MODULE_UNLOAD=y17CONFIG_MODULE_UNLOAD=y
17CONFIG_MODULE_FORCE_UNLOAD=y18CONFIG_MODULE_FORCE_UNLOAD=y
18# CONFIG_BLK_DEV_BSG is not set19# CONFIG_BLK_DEV_BSG is not set
20CONFIG_PARTITION_ADVANCED=y
21CONFIG_EFI_PARTITION=y
19# CONFIG_IOSCHED_DEADLINE is not set22# CONFIG_IOSCHED_DEADLINE is not set
20# CONFIG_IOSCHED_CFQ is not set23# CONFIG_IOSCHED_CFQ is not set
21CONFIG_ARCH_TEGRA=y24CONFIG_ARCH_TEGRA=y
@@ -27,18 +30,20 @@ CONFIG_MACH_PAZ00=y · 5 unmodified lines
27CONFIG_MACH_TRIMSLICE=y30CONFIG_MACH_TRIMSLICE=y
28CONFIG_MACH_WARIO=y31CONFIG_MACH_WARIO=y
29CONFIG_MACH_VENTANA=y32CONFIG_MACH_VENTANA=y
30CONFIG_TEGRA_DEBUG_UARTD=y33CONFIG_TEGRA_EMC_SCALING_ENABLE=y
31CONFIG_ARM_ERRATA_742230=y
32CONFIG_NO_HZ=y34CONFIG_NO_HZ=y
33CONFIG_HIGH_RES_TIMERS=y35CONFIG_HIGH_RES_TIMERS=y
34CONFIG_SMP=y36CONFIG_SMP=y
35CONFIG_NR_CPUS=2
36CONFIG_PREEMPT=y37CONFIG_PREEMPT=y
37CONFIG_AEABI=y38CONFIG_AEABI=y
38# CONFIG_OABI_COMPAT is not set39# CONFIG_OABI_COMPAT is not set
39CONFIG_HIGHMEM=y40CONFIG_HIGHMEM=y
40CONFIG_ZBOOT_ROM_TEXT=0x041CONFIG_ZBOOT_ROM_TEXT=0x0
41CONFIG_ZBOOT_ROM_BSS=0x042CONFIG_ZBOOT_ROM_BSS=0x0
43CONFIG_AUTO_ZRELADDR=y
44CONFIG_CPU_FREQ=y
45CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
46CONFIG_CPU_IDLE=y
42CONFIG_VFP=y47CONFIG_VFP=y
43CONFIG_NET=y48CONFIG_NET=y
44CONFIG_PACKET=y49CONFIG_PACKET=y
@@ -68,7 +73,6 @@ CONFIG_IPV6_MULTIPLE_TABLES=y · 23 unmodified lines
68# CONFIG_FIRMWARE_IN_KERNEL is not set73# CONFIG_FIRMWARE_IN_KERNEL is not set
69CONFIG_PROC_DEVICETREE=y74CONFIG_PROC_DEVICETREE=y
70CONFIG_BLK_DEV_LOOP=y75CONFIG_BLK_DEV_LOOP=y
71CONFIG_MISC_DEVICES=y
72CONFIG_AD525X_DPOT=y76CONFIG_AD525X_DPOT=y
73CONFIG_AD525X_DPOT_I2C=y77CONFIG_AD525X_DPOT_I2C=y
74CONFIG_ICS932S401=y78CONFIG_ICS932S401=y
@@ -76,6 +80,7 @@ CONFIG_APDS9802ALS=y · 1 unmodified line
76CONFIG_ISL29003=y80CONFIG_ISL29003=y
77CONFIG_SCSI=y81CONFIG_SCSI=y
78CONFIG_BLK_DEV_SD=y82CONFIG_BLK_DEV_SD=y
83CONFIG_BLK_DEV_SR=y
79# CONFIG_SCSI_LOWLEVEL is not set84# CONFIG_SCSI_LOWLEVEL is not set
80CONFIG_NETDEVICES=y85CONFIG_NETDEVICES=y
81CONFIG_DUMMY=y86CONFIG_DUMMY=y
@@ -85,8 +90,7 @@ CONFIG_USB_USBNET=y · 3 unmodified lines
85CONFIG_USB_NET_SMSC75XX=y90CONFIG_USB_NET_SMSC75XX=y
86CONFIG_USB_NET_SMSC95XX=y91CONFIG_USB_NET_SMSC95XX=y
87# CONFIG_WLAN is not set92# CONFIG_WLAN is not set
88# CONFIG_INPUT is not set93CONFIG_INPUT_EVDEV=y
89# CONFIG_SERIO is not set
90# CONFIG_VT is not set94# CONFIG_VT is not set
91# CONFIG_LEGACY_PTYS is not set95# CONFIG_LEGACY_PTYS is not set
92# CONFIG_DEVKMEM is not set96# CONFIG_DEVKMEM is not set
@@ -96,13 +100,15 @@ CONFIG_SERIAL_OF_PLATFORM=y · 3 unmodified lines
96# CONFIG_HW_RANDOM is not set100# CONFIG_HW_RANDOM is not set
97CONFIG_I2C=y101CONFIG_I2C=y
98# CONFIG_I2C_COMPAT is not set102# CONFIG_I2C_COMPAT is not set
99# CONFIG_I2C_HELPER_AUTO is not set
100CONFIG_I2C_TEGRA=y103CONFIG_I2C_TEGRA=y
101CONFIG_SPI=y104CONFIG_SPI=y
102CONFIG_SPI_TEGRA=y105CONFIG_SPI_TEGRA=y
103CONFIG_SENSORS_LM90=y106CONFIG_SENSORS_LM90=y
104CONFIG_MFD_TPS6586X=y107CONFIG_MFD_TPS6586X=y
105CONFIG_REGULATOR=y108CONFIG_REGULATOR=y
109CONFIG_REGULATOR_FIXED_VOLTAGE=y
110CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
111CONFIG_REGULATOR_GPIO=y
106CONFIG_REGULATOR_TPS6586X=y112CONFIG_REGULATOR_TPS6586X=y
107CONFIG_SOUND=y113CONFIG_SOUND=y
108CONFIG_SND=y114CONFIG_SND=y
@@ -116,11 +122,13 @@ CONFIG_SND_SOC=y · 7 unmodified lines
116CONFIG_SND_SOC_TEGRA=y122CONFIG_SND_SOC_TEGRA=y
117CONFIG_SND_SOC_TEGRA_WM8903=y123CONFIG_SND_SOC_TEGRA_WM8903=y
118CONFIG_SND_SOC_TEGRA_TRIMSLICE=y124CONFIG_SND_SOC_TEGRA_TRIMSLICE=y
125CONFIG_SND_SOC_TEGRA_ALC5632=y
119CONFIG_USB=y126CONFIG_USB=y
120CONFIG_USB_EHCI_HCD=y127CONFIG_USB_EHCI_HCD=y
121CONFIG_USB_EHCI_TEGRA=y128CONFIG_USB_EHCI_TEGRA=y
122CONFIG_USB_STORAGE=y129CONFIG_USB_STORAGE=y
123CONFIG_MMC=y130CONFIG_MMC=y
131CONFIG_MMC_BLOCK_MINORS=16
124CONFIG_MMC_SDHCI=y132CONFIG_MMC_SDHCI=y
125CONFIG_MMC_SDHCI_PLTFM=y133CONFIG_MMC_SDHCI_PLTFM=y
126CONFIG_MMC_SDHCI_TEGRA=y134CONFIG_MMC_SDHCI_TEGRA=y
@@ -130,6 +138,11 @@ CONFIG_STAGING=y · 3 unmodified lines
130CONFIG_IIO=y138CONFIG_IIO=y
131CONFIG_SENSORS_ISL29018=y139CONFIG_SENSORS_ISL29018=y
132CONFIG_SENSORS_AK8975=y140CONFIG_SENSORS_AK8975=y
141CONFIG_MFD_NVEC=y
142CONFIG_KEYBOARD_NVEC=y
143CONFIG_SERIO_NVEC_PS2=y
144CONFIG_TEGRA_IOMMU_GART=y
145CONFIG_TEGRA_IOMMU_SMMU=y
133CONFIG_EXT2_FS=y146CONFIG_EXT2_FS=y
134CONFIG_EXT2_FS_XATTR=y147CONFIG_EXT2_FS_XATTR=y
135CONFIG_EXT2_FS_POSIX_ACL=y148CONFIG_EXT2_FS_POSIX_ACL=y
@@ -138,13 +151,12 @@ CONFIG_EXT3_FS=y · 2 unmodified lines
138# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set151# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
139CONFIG_EXT3_FS_POSIX_ACL=y152CONFIG_EXT3_FS_POSIX_ACL=y
140CONFIG_EXT3_FS_SECURITY=y153CONFIG_EXT3_FS_SECURITY=y
154CONFIG_EXT4_FS=y
141# CONFIG_DNOTIFY is not set155# CONFIG_DNOTIFY is not set
142CONFIG_VFAT_FS=y156CONFIG_VFAT_FS=y
143CONFIG_TMPFS=y157CONFIG_TMPFS=y
144CONFIG_NFS_FS=y158CONFIG_NFS_FS=y
145CONFIG_ROOT_NFS=y159CONFIG_ROOT_NFS=y
146CONFIG_PARTITION_ADVANCED=y
147CONFIG_EFI_PARTITION=y
148CONFIG_NLS_CODEPAGE_437=y160CONFIG_NLS_CODEPAGE_437=y
149CONFIG_NLS_ISO8859_1=y161CONFIG_NLS_ISO8859_1=y
150CONFIG_PRINTK_TIME=y162CONFIG_PRINTK_TIME=y
@@ -162,9 +174,8 @@ CONFIG_DEBUG_SG=y · 11 unmodified lines
162CONFIG_DEBUG_LL=y174CONFIG_DEBUG_LL=y
163CONFIG_EARLY_PRINTK=y175CONFIG_EARLY_PRINTK=y
164CONFIG_CRYPTO_ECB=y176CONFIG_CRYPTO_ECB=y
165CONFIG_CRYPTO_AES=y
166CONFIG_CRYPTO_ARC4=y177CONFIG_CRYPTO_ARC4=y
167CONFIG_CRYPTO_TWOFISH=y178CONFIG_CRYPTO_TWOFISH=y
168# CONFIG_CRYPTO_ANSI_CPRNG is not set179# CONFIG_CRYPTO_ANSI_CPRNG is not set
180CONFIG_CRYPTO_DEV_TEGRA_AES=y
169CONFIG_CRC_CCITT=y181CONFIG_CRC_CCITT=y
170CONFIG_CRC16=y
arch/arm/configs/u8500_defconfig+1−0
@@ -13,6 +13,7 @@ CONFIG_UX500_SOC_DB8500=y · 12 unmodified lines
13CONFIG_MACH_HREFV60=y13CONFIG_MACH_HREFV60=y
14CONFIG_MACH_SNOWBALL=y14CONFIG_MACH_SNOWBALL=y
15CONFIG_MACH_U5500=y15CONFIG_MACH_U5500=y
16CONFIG_MACH_UX500_DT=y
16CONFIG_NO_HZ=y17CONFIG_NO_HZ=y
17CONFIG_HIGH_RES_TIMERS=y18CONFIG_HIGH_RES_TIMERS=y
18CONFIG_SMP=y19CONFIG_SMP=y
arch/arm/include/asm/assembler.h+2−0
@@ -23,6 +23,8 @@ · 22 unmodified lines
23#include <asm/ptrace.h>23#include <asm/ptrace.h>
24#include <asm/domain.h>24#include <asm/domain.h>
25 25
26#define IOMEM(x) (x)
27
26/*28/*
27 * Endian independent macros for shifting bytes within registers.29 * Endian independent macros for shifting bytes within registers.
28 */30 */
arch/arm/include/asm/atomic.h+3−1
@@ -13,7 +13,9 @@ · 12 unmodified lines
13 13
14#include <linux/compiler.h>14#include <linux/compiler.h>
15#include <linux/types.h>15#include <linux/types.h>
16#include <asm/system.h>16#include <linux/irqflags.h>
17#include <asm/barrier.h>
18#include <asm/cmpxchg.h>
17 19
18#define ATOMIC_INIT(i) { (i) }20#define ATOMIC_INIT(i) { (i) }
19 21
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
24#endif24#endif
25 25
26#include <linux/compiler.h>26#include <linux/compiler.h>
27#include <asm/system.h>27#include <linux/irqflags.h>
28 28
29#define smp_mb__before_clear_bit() smp_mb()29#define smp_mb__before_clear_bit() smp_mb()
30#define smp_mb__after_clear_bit() smp_mb()30#define smp_mb__after_clear_bit() smp_mb()
arch/arm/include/asm/bug.h+30−0
@@ -1,6 +1,7 @@
1#ifndef _ASMARM_BUG_H1#ifndef _ASMARM_BUG_H
2#define _ASMARM_BUG_H2#define _ASMARM_BUG_H
3 3
4#include <linux/linkage.h>
4 5
5#ifdef CONFIG_BUG6#ifdef CONFIG_BUG
6 7
@@ -57,4 +58,33 @@ do { \ · 50 unmodified lines
57 58
58#include <asm-generic/bug.h>59#include <asm-generic/bug.h>
59 60
61struct pt_regs;
62void die(const char *msg, struct pt_regs *regs, int err);
63
64struct siginfo;
65void 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
76void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
77 struct pt_regs *),
78 int sig, int code, const char *name);
79
80void hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int,
81 struct pt_regs *),
82 int sig, int code, const char *name);
83
84extern asmlinkage void c_backtrace(unsigned long fp, int pmode);
85
86struct mm_struct;
87extern void show_pte(struct mm_struct *mm, unsigned long addr);
88extern void __show_regs(struct pt_regs *);
89
60#endif90#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
26static 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
130extern void __bad_cmpxchg(volatile void *ptr, int size);
131
132/*
133 * cmpxchg only support 32-bits operands on ARMv6.
134 */
135
136static 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
188static 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
206static 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 */
239static 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
264static 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
45extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
46extern unsigned long cr_alignment; /* defined in entry-armv.S */
47
48static 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
55static 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
63extern 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
70static 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
78static 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
5extern int arm_cpuidle_simple_enter(struct cpuidle_device *dev,
6 struct cpuidle_driver *drv, int index);
7#else
8static 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 @@
1#ifndef __ASM_ARM_DIV641#ifndef __ASM_ARM_DIV64
2#define __ASM_ARM_DIV642#define __ASM_ARM_DIV64
3 3
4#include <asm/system.h>
5#include <linux/types.h>4#include <linux/types.h>
5#include <asm/compiler.h>
6 6
7/*7/*
8 * The semantics of do_div() are:8 * The semantics of do_div() are:
arch/arm/include/asm/dma.h+0−1
@@ -19,7 +19,6 @@ · 18 unmodified lines
19 * It should not be re-used except for that purpose.19 * It should not be re-used except for that purpose.
20 */20 */
21#include <linux/spinlock.h>21#include <linux/spinlock.h>
22#include <asm/system.h>
23#include <asm/scatterlist.h>22#include <asm/scatterlist.h>
24 23
25#include <mach/isa-dma.h>24#include <mach/isa-dma.h>
arch/arm/include/asm/domain.h+4−0
@@ -10,6 +10,10 @@ · 9 unmodified lines
10#ifndef __ASM_PROC_DOMAIN_H10#ifndef __ASM_PROC_DOMAIN_H
11#define __ASM_PROC_DOMAIN_H11#define __ASM_PROC_DOMAIN_H
12 12
13#ifndef __ASSEMBLY__
14#include <asm/barrier.h>
15#endif
16
13/*17/*
14 * Domain numbers18 * Domain numbers
15 *19 *
arch/arm/include/asm/elf.h+0−4
@@ -130,8 +130,4 @@ struct mm_struct; · 129 unmodified lines
130extern unsigned long arch_randomize_brk(struct mm_struct *mm);130extern unsigned long arch_randomize_brk(struct mm_struct *mm);
131#define arch_randomize_brk arch_randomize_brk131#define arch_randomize_brk arch_randomize_brk
132 132
133extern 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
137#endif133#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
9 *9 *
10 * Integrator AP has 16-bit timers, Integrator CP, Versatile and Realview10 * Integrator AP has 16-bit timers, Integrator CP, Versatile and Realview
11 * can have 16-bit or 32-bit selectable via a bit in the control register.11 * can have 16-bit or 32-bit selectable via a bit in the control register.
12 *
13 * Every SP804 contains two identical timers.
12 */14 */
15#define TIMER_1_BASE 0x00
16#define TIMER_2_BASE 0x20
17
13#define TIMER_LOAD 0x00 /* ACVR rw */18#define TIMER_LOAD 0x00 /* ACVR rw */
14#define TIMER_VALUE 0x04 /* ACVR ro */19#define TIMER_VALUE 0x04 /* ACVR ro */
15#define TIMER_CTRL 0x08 /* ACVR rw */20#define TIMER_CTRL 0x08 /* ACVR rw */
arch/arm/include/asm/hardware/cache-l2x0.h+3−3
@@ -103,11 +103,11 @@ · 102 unmodified lines
103#define L2X0_ADDR_FILTER_EN 1103#define L2X0_ADDR_FILTER_EN 1
104 104
105#ifndef __ASSEMBLY__105#ifndef __ASSEMBLY__
106extern void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask);106extern void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask);
107#if defined(CONFIG_CACHE_L2X0) && defined(CONFIG_OF)107#if defined(CONFIG_CACHE_L2X0) && defined(CONFIG_OF)
108extern int l2x0_of_init(__u32 aux_val, __u32 aux_mask);108extern int l2x0_of_init(u32 aux_val, u32 aux_mask);
109#else109#else
110static inline int l2x0_of_init(__u32 aux_val, __u32 aux_mask)110static inline int l2x0_of_init(u32 aux_val, u32 aux_mask)
111{111{
112 return -ENODEV;112 return -ENODEV;
113}113}
arch/arm/include/asm/hardware/entry-macro-iomd.S+0−8
@@ -11,14 +11,6 @@ · 10 unmodified lines
11/* IOC / IOMD based hardware */11/* IOC / IOMD based hardware */
12#include <asm/hardware/iomd.h>12#include <asm/hardware/iomd.h>
13 13
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
22 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp14 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
23 ldrb \irqstat, [\base, #IOMD_IRQREQB] @ get high priority first15 ldrb \irqstat, [\base, #IOMD_IRQREQB] @ get high priority first
24 ldr \tmp, =irq_prio_h16 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
231 231
232 232
233#ifndef __ASSEMBLY__233#ifndef __ASSEMBLY__
234
235#include <linux/types.h>
236
234void iop3xx_map_io(void);237void iop3xx_map_io(void);
235void iop_init_cp6_handler(void);238void iop_init_cp6_handler(void);
236void iop_init_time(unsigned long tickrate);239void 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
49/**49/**
50 * struct iop_adma_chan - internal representation of an ADMA device50 * struct iop_adma_chan - internal representation of an ADMA device
51 * @pending: allows batching of hardware operations51 * @pending: allows batching of hardware operations
52 * @completed_cookie: identifier for the most recently completed operation
53 * @lock: serializes enqueue/dequeue operations to the slot pool52 * @lock: serializes enqueue/dequeue operations to the slot pool
54 * @mmr_base: memory mapped register base53 * @mmr_base: memory mapped register base
55 * @chain: device chain view of the descriptors54 * @chain: device chain view of the descriptors
@@ -62,7 +61,6 @@ struct iop_adma_device { · 6 unmodified lines
62 */61 */
63struct iop_adma_chan {62struct iop_adma_chan {
64 int pending;63 int pending;
65 dma_cookie_t completed_cookie;
66 spinlock_t lock; /* protects the descriptor slot pool */64 spinlock_t lock; /* protects the descriptor slot pool */
67 void __iomem *mmr_base;65 void __iomem *mmr_base;
68 struct list_head chain;66 struct list_head chain;
arch/arm/include/asm/hardware/it8152.h+3−0
@@ -9,6 +9,9 @@ · 8 unmodified lines
9 9
10#ifndef __ASM_HARDWARE_IT8152_H10#ifndef __ASM_HARDWARE_IT8152_H
11#define __ASM_HARDWARE_IT8152_H11#define __ASM_HARDWARE_IT8152_H
12
13#include <mach/irqs.h>
14
12extern void __iomem *it8152_base_address;15extern void __iomem *it8152_base_address;
13 16
14#define IT8152_IO_BASE (it8152_base_address + 0x03e00000)17#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
28enum 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
39enum 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 */
51struct 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 */
66struct 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
86enum 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 */
102struct 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 */
126struct 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. */
139enum 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
148enum pl330_reqtype {
149 MEMTOMEM,
150 MEMTODEV,
151 DEVTOMEM,
152 DEVTODEV,
153};
154
155/* A request defining Scatter-Gather List ending with NULL xfer. */
156struct 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 */
175struct 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
199enum 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
208extern int pl330_add(struct pl330_info *);
209extern void pl330_del(struct pl330_info *pi);
210extern int pl330_update(const struct pl330_info *pi);
211extern void pl330_release_channel(void *ch_id);
212extern void *pl330_request_channel(const struct pl330_info *pi);
213extern int pl330_chan_status(void *ch_id, struct pl330_chanstatus *pstatus);
214extern int pl330_chan_ctrl(void *ch_id, enum pl330_chan_op op);
215extern 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
132#define SKPCR_DCLKEN (1<<7)132#define SKPCR_DCLKEN (1<<7)
133#define SKPCR_PWMCLKEN (1<<8)133#define SKPCR_PWMCLKEN (1<<8)
134 134
135/*135/* USB Host controller */
136 * USB Host controller
137 */
138#define SA1111_USB 0x0400136#define SA1111_USB 0x0400
139 137
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
162/*138/*
163 * Serial Audio Controller139 * Serial Audio Controller
164 *140 *
@@ -327,22 +303,6 @@ · 162 unmodified lines
327 * PC_SSR GPIO Block C Sleep State303 * PC_SSR GPIO Block C Sleep State
328 */304 */
329 305
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
346#define SA1111_GPIO 0x1000306#define SA1111_GPIO 0x1000
347 307
348#define SA1111_GPIO_PADDR (0x000)308#define SA1111_GPIO_PADDR (0x000)
@@ -425,106 +385,30 @@ · 76 unmodified lines
425#define SA1111_WAKEPOL0 0x0034385#define SA1111_WAKEPOL0 0x0034
426#define SA1111_WAKEPOL1 0x0038386#define SA1111_WAKEPOL1 0x0038
427 387
428/*388/* PS/2 Trackpad and Mouse Interfaces */
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
443#define SA1111_KBD 0x0a00389#define SA1111_KBD 0x0a00
444#define SA1111_MSE 0x0c00390#define SA1111_MSE 0x0c00
445 391
446/*392/* PCMCIA Interface */
447 * These are offsets from the above bases.393#define SA1111_PCMCIA 0x1600
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
468 394
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)
513 395
514 396
515 397
516 398
517extern struct bus_type sa1111_bus_type;399extern struct bus_type sa1111_bus_type;
518 400
519#define SA1111_DEVID_SBI 0401#define SA1111_DEVID_SBI (1 << 0)
520#define SA1111_DEVID_SK 1402#define SA1111_DEVID_SK (1 << 1)
521#define SA1111_DEVID_USB 2403#define SA1111_DEVID_USB (1 << 2)
522#define SA1111_DEVID_SAC 3404#define SA1111_DEVID_SAC (1 << 3)
523#define SA1111_DEVID_SSP 4405#define SA1111_DEVID_SSP (1 << 4)
524#define SA1111_DEVID_PS2 5406#define SA1111_DEVID_PS2 (3 << 5)
525#define SA1111_DEVID_GPIO 6407#define SA1111_DEVID_PS2_KBD (1 << 5)
526#define SA1111_DEVID_INT 7408#define SA1111_DEVID_PS2_MSE (1 << 6)
527#define SA1111_DEVID_PCMCIA 8409#define SA1111_DEVID_GPIO (1 << 7)
410#define SA1111_DEVID_INT (1 << 8)
411#define SA1111_DEVID_PCMCIA (1 << 9)
528 412
529struct sa1111_dev {413struct sa1111_dev {
530 struct device dev;414 struct device dev;
@@ -548,6 +432,7 @@ struct sa1111_driver { · 17 unmodified lines
548 int (*remove)(struct sa1111_dev *);432 int (*remove)(struct sa1111_dev *);
549 int (*suspend)(struct sa1111_dev *, pm_message_t);433 int (*suspend)(struct sa1111_dev *, pm_message_t);
550 int (*resume)(struct sa1111_dev *);434 int (*resume)(struct sa1111_dev *);
435 void (*shutdown)(struct sa1111_dev *);
551};436};
552 437
553#define SA1111_DRV(_d) container_of((_d), struct sa1111_driver, drv)438#define SA1111_DRV(_d) container_of((_d), struct sa1111_driver, drv)
@@ -555,9 +440,10 @@ struct sa1111_driver { · 1 unmodified line
555#define SA1111_DRIVER_NAME(_sadev) ((_sadev)->dev.driver->name)440#define SA1111_DRIVER_NAME(_sadev) ((_sadev)->dev.driver->name)
556 441
557/*442/*
558 * These frob the SKPCR register.443 * These frob the SKPCR register, and call platform specific
444 * enable/disable functions.
559 */445 */
560void sa1111_enable_device(struct sa1111_dev *);446int sa1111_enable_device(struct sa1111_dev *);
561void sa1111_disable_device(struct sa1111_dev *);447void sa1111_disable_device(struct sa1111_dev *);
562 448
563unsigned int sa1111_pll_clock(struct sa1111_dev *);449unsigned 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
580 466
581struct sa1111_platform_data {467struct sa1111_platform_data {
582 int irq_base; /* base for cascaded on-chip IRQs */468 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);
583};473};
584 474
585#endif /* _ASM_ARCH_SA1111 */475#endif /* _ASM_ARCH_SA1111 */
arch/arm/include/asm/hardware/timer-sp.h+14−1
@@ -1,2 +1,15 @@
1void sp804_clocksource_init(void __iomem *, const char *);1void __sp804_clocksource_and_sched_clock_init(void __iomem *,
2 const char *, int);
3
4static inline void sp804_clocksource_init(void __iomem *base, const char *name)
5{
6 __sp804_clocksource_and_sched_clock_init(base, name, 0);
7}
8
9static 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
2void sp804_clockevents_init(void __iomem *, unsigned int, const char *);15void sp804_clockevents_init(void __iomem *, unsigned int, const char *);
arch/arm/include/asm/io.h+34−39
@@ -26,7 +26,6 @@ · 25 unmodified lines
26#include <linux/types.h>26#include <linux/types.h>
27#include <asm/byteorder.h>27#include <asm/byteorder.h>
28#include <asm/memory.h>28#include <asm/memory.h>
29#include <asm/system.h>
30#include <asm-generic/pci_iomap.h>29#include <asm-generic/pci_iomap.h>
31 30
32/*31/*
@@ -83,6 +82,11 @@ extern void __iomem *__arm_ioremap_pfn(unsigned long, unsigned long, size_t, uns · 50 unmodified lines
83extern void __iomem *__arm_ioremap(unsigned long, size_t, unsigned int);82extern void __iomem *__arm_ioremap(unsigned long, size_t, unsigned int);
84extern void __iomem *__arm_ioremap_exec(unsigned long, size_t, bool cached);83extern void __iomem *__arm_ioremap_exec(unsigned long, size_t, bool cached);
85extern void __iounmap(volatile void __iomem *addr);84extern void __iounmap(volatile void __iomem *addr);
85extern void __arm_iounmap(volatile void __iomem *addr);
86
87extern void __iomem * (*arch_ioremap_caller)(unsigned long, size_t,
88 unsigned int, void *);
89extern void (*arch_iounmap)(volatile void __iomem *);
86 90
87/*91/*
88 * Bad read/write accesses...92 * Bad read/write accesses...
@@ -97,8 +101,11 @@ static inline void __iomem *__typesafe_io(unsigned long addr) · 8 unmodified lines
97 return (void __iomem *)addr;101 return (void __iomem *)addr;
98}102}
99 103
104#define IOMEM(x) ((void __force __iomem *)(x))
105
100/* IO barriers */106/* IO barriers */
101#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE107#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
108#include <asm/barrier.h>
102#define __iormb() rmb()109#define __iormb() rmb()
103#define __iowmb() wmb()110#define __iowmb() wmb()
104#else111#else
@@ -109,7 +116,11 @@ static inline void __iomem *__typesafe_io(unsigned long addr) · 4 unmodified lines
109/*116/*
110 * Now, pick up the machine-defined IO definitions117 * Now, pick up the machine-defined IO definitions
111 */118 */
119#ifdef CONFIG_NEED_MACH_IO_H
112#include <mach/io.h>120#include <mach/io.h>
121#else
122#define __io(a) __typesafe_io((a) & IO_SPACE_LIMIT)
123#endif
113 124
114/*125/*
115 * This is the limit of PC card/PCI/ISA IO space, which is by default126 * 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
211 * Again, this are defined to perform little endian accesses. See the222 * Again, this are defined to perform little endian accesses. See the
212 * IO port primitives for more information.223 * IO port primitives for more information.
213 */224 */
214#ifdef __mem_pci225#ifndef readl
215#define readb_relaxed(c) ({ u8 __r = __raw_readb(__mem_pci(c)); __r; })226#define readb_relaxed(c) ({ u8 __r = __raw_readb(c); __r; })
216#define readw_relaxed(c) ({ u16 __r = le16_to_cpu((__force __le16) \227#define readw_relaxed(c) ({ u16 __r = le16_to_cpu((__force __le16) \
217 __raw_readw(__mem_pci(c))); __r; })228 __raw_readw(c)); __r; })
218#define readl_relaxed(c) ({ u32 __r = le32_to_cpu((__force __le32) \229#define readl_relaxed(c) ({ u32 __r = le32_to_cpu((__force __le32) \
219 __raw_readl(__mem_pci(c))); __r; })230 __raw_readl(c)); __r; })
220 231
221#define writeb_relaxed(v,c) ((void)__raw_writeb(v,__mem_pci(c)))232#define writeb_relaxed(v,c) ((void)__raw_writeb(v,c))
222#define writew_relaxed(v,c) ((void)__raw_writew((__force u16) \233#define writew_relaxed(v,c) ((void)__raw_writew((__force u16) \
223 cpu_to_le16(v),__mem_pci(c)))234 cpu_to_le16(v),c))
224#define writel_relaxed(v,c) ((void)__raw_writel((__force u32) \235#define writel_relaxed(v,c) ((void)__raw_writel((__force u32) \
225 cpu_to_le32(v),__mem_pci(c)))236 cpu_to_le32(v),c))
226 237
227#define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; })238#define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; })
228#define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(); __v; })239#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
232#define writew(v,c) ({ __iowmb(); writew_relaxed(v,c); })243#define writew(v,c) ({ __iowmb(); writew_relaxed(v,c); })
233#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })244#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
234 245
235#define readsb(p,d,l) __raw_readsb(__mem_pci(p),d,l)246#define readsb(p,d,l) __raw_readsb(p,d,l)
236#define readsw(p,d,l) __raw_readsw(__mem_pci(p),d,l)247#define readsw(p,d,l) __raw_readsw(p,d,l)
237#define readsl(p,d,l) __raw_readsl(__mem_pci(p),d,l)248#define readsl(p,d,l) __raw_readsl(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)
242 249
243#define memset_io(c,v,l) _memset_io(__mem_pci(c),(v),(l))250#define writesb(p,d,l) __raw_writesb(p,d,l)
244#define memcpy_fromio(a,c,l) _memcpy_fromio((a),__mem_pci(c),(l))251#define writesw(p,d,l) __raw_writesw(p,d,l)
245#define memcpy_toio(c,a,l) _memcpy_toio(__mem_pci(c),(a),(l))252#define writesl(p,d,l) __raw_writesl(p,d,l)
246 253
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))
248 257
249#define readb(c) (__readwrite_bug("readb"),0)258#endif /* readl */
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 */
259 259
260/*260/*
261 * ioremap and friends.261 * ioremap and friends.
@@ -264,16 +264,11 @@ extern void _memset_io(volatile void __iomem *, int, size_t); · 2 unmodified lines
264 * Documentation/io-mapping.txt.264 * Documentation/io-mapping.txt.
265 *265 *
266 */266 */
267#ifndef __arch_ioremap267#define ioremap(cookie,size) __arm_ioremap((cookie), (size), MT_DEVICE)
268#define __arch_ioremap __arm_ioremap268#define ioremap_nocache(cookie,size) __arm_ioremap((cookie), (size), MT_DEVICE)
269#define __arch_iounmap __iounmap269#define ioremap_cached(cookie,size) __arm_ioremap((cookie), (size), MT_DEVICE_CACHED)
270#endif270#define ioremap_wc(cookie,size) __arm_ioremap((cookie), (size), MT_DEVICE_WC)
271 271#define iounmap __arm_iounmap
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
277 272
278/*273/*
279 * io{read,write}{8,16,32} macros274 * io{read,write}{8,16,32} macros
arch/arm/include/asm/irq.h+6−2
@@ -1,14 +1,18 @@
1#ifndef __ASM_ARM_IRQ_H1#ifndef __ASM_ARM_IRQ_H
2#define __ASM_ARM_IRQ_H2#define __ASM_ARM_IRQ_H
3 3
4#define NR_IRQS_LEGACY 16
5
6#ifndef CONFIG_SPARSE_IRQ
4#include <mach/irqs.h>7#include <mach/irqs.h>
8#else
9#define NR_IRQS NR_IRQS_LEGACY
10#endif
5 11
6#ifndef irq_canonicalize12#ifndef irq_canonicalize
7#define irq_canonicalize(i) (i)13#define irq_canonicalize(i) (i)
8#endif14#endif
9 15
10#define NR_IRQS_LEGACY 16
11
12/*16/*
13 * Use this value to indicate lack of interrupt17 * Use this value to indicate lack of interrupt
14 * capability18 * 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
17static __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;
27l_yes:
28 return true;
29}
30
31#endif /* __KERNEL__ */
32
33typedef u32 jump_label_t;
34
35struct 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
11#define __ASM_ARM_LOCALTIMER_H11#define __ASM_ARM_LOCALTIMER_H
12 12
13#include <linux/errno.h>13#include <linux/errno.h>
14#include <linux/interrupt.h>
15 14
16struct clock_event_device;15struct clock_event_device;
17 16
18/*17struct local_timer_ops {
19 * Setup a per-cpu timer, whether it be a local timer or dummy broadcast18 int (*setup)(struct clock_event_device *);
20 */19 void (*stop)(struct clock_event_device *);
21void percpu_timer_setup(void);20};
22 21
23#ifdef CONFIG_LOCAL_TIMERS22#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 */
36void local_timer_stop(struct clock_event_device *);
37
38#endif
39
40/*23/*
41 * Setup a local timer interrupt for a CPU.24 * Register a local timer driver
42 */25 */
43int local_timer_setup(struct clock_event_device *);26int local_timer_register(struct local_timer_ops *);
44
45#else27#else
46 28static inline int local_timer_register(struct local_timer_ops *ops)
47static inline int local_timer_setup(struct clock_event_device *evt)
48{29{
49 return -ENXIO;30 return -ENXIO;
50}31}
51
52static inline void local_timer_stop(struct clock_event_device *evt)
53{
54}
55#endif32#endif
56 33
57#endif34#endif
arch/arm/include/asm/mc146818rtc.h+3−1
@@ -5,7 +5,9 @@ · 4 unmodified lines
5#define _ASM_MC146818RTC_H5#define _ASM_MC146818RTC_H
6 6
7#include <linux/io.h>7#include <linux/io.h>
8#include <mach/irqs.h>8#include <linux/kernel.h>
9
10#define RTC_IRQ BUILD_BUG_ON(1)
9 11
10#ifndef RTC_PORT12#ifndef RTC_PORT
11#define RTC_PORT(x) (0x70 + (x))13#define RTC_PORT(x) (0x70 + (x))
arch/arm/include/asm/memory.h+2−0
@@ -116,6 +116,8 @@ · 115 unmodified lines
116#define MODULES_END (END_MEM)116#define MODULES_END (END_MEM)
117#define MODULES_VADDR (PHYS_OFFSET)117#define MODULES_VADDR (PHYS_OFFSET)
118 118
119#define XIP_VIRT_ADDR(physaddr) (physaddr)
120
119#endif /* !CONFIG_MMU */121#endif /* !CONFIG_MMU */
120 122
121/*123/*
arch/arm/include/asm/mmu.h+7−0
@@ -34,4 +34,11 @@ typedef struct { · 33 unmodified lines
34 34
35#endif35#endif
36 36
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
37#endif44#endif
arch/arm/include/asm/mmu_context.h+1−28
@@ -18,6 +18,7 @@ · 17 unmodified lines
18#include <asm/cacheflush.h>18#include <asm/cacheflush.h>
19#include <asm/cachetype.h>19#include <asm/cachetype.h>
20#include <asm/proc-fns.h>20#include <asm/proc-fns.h>
21#include <asm-generic/mm_hooks.h>
21 22
22void __check_kvm_seq(struct mm_struct *mm);23void __check_kvm_seq(struct mm_struct *mm);
23 24
@@ -133,32 +134,4 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next, · 109 unmodified lines
133#define deactivate_mm(tsk,mm) do { } while (0)134#define deactivate_mm(tsk,mm) do { } while (0)
134#define activate_mm(prev,next) switch_mm(prev, next, NULL)135#define activate_mm(prev,next) switch_mm(prev, next, NULL)
135 136
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) \
144do { \
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
159static inline void arch_dup_mmap(struct mm_struct *oldmm,
160 struct mm_struct *mm)
161{
162}
163
164#endif137#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
17#define ARM_OPCODE_CONDTEST_PASS 117#define ARM_OPCODE_CONDTEST_PASS 1
18#define ARM_OPCODE_CONDTEST_UNCOND 218#define ARM_OPCODE_CONDTEST_UNCOND 2
19 19
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
20#endif /* __ASM_ARM_OPCODES_H */79#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
151#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)151#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
152extern void copy_page(void *to, const void *from);152extern void copy_page(void *to, const void *from);
153 153
154#define __HAVE_ARCH_GATE_AREA 1
155
154#ifdef CONFIG_ARM_LPAE156#ifdef CONFIG_ARM_LPAE
155#include <asm/pgtable-3level-types.h>157#include <asm/pgtable-3level-types.h>
156#else158#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
57extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,57extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
58 enum pci_mmap_state mmap_state, int write_combine);58 enum pci_mmap_state mmap_state, int write_combine);
59 59
60extern void
61pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
62 struct resource *res);
63
64extern void
65pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
66 struct pci_bus_region *region);
67
68/*60/*
69 * Dummy implementation; always return 0.61 * Dummy implementation; always return 0.
70 */62 */
arch/arm/include/asm/perf_event.h+1−0
@@ -22,6 +22,7 @@ enum arm_perf_pmu_ids { · 21 unmodified lines
22 ARM_PERF_PMU_ID_CA9,22 ARM_PERF_PMU_ID_CA9,
23 ARM_PERF_PMU_ID_CA5,23 ARM_PERF_PMU_ID_CA5,
24 ARM_PERF_PMU_ID_CA15,24 ARM_PERF_PMU_ID_CA15,
25 ARM_PERF_PMU_ID_CA7,
25 ARM_NUM_PMU_IDS,26 ARM_NUM_PMU_IDS,
26};27};
27 28
arch/arm/include/asm/posix_types.h+9−46
@@ -19,59 +19,22 @@ · 18 unmodified lines
19 * assume GCC is being used.19 * assume GCC is being used.
20 */20 */
21 21
22typedef unsigned long __kernel_ino_t;
23typedef unsigned short __kernel_mode_t;22typedef unsigned short __kernel_mode_t;
23#define __kernel_mode_t __kernel_mode_t
24
24typedef unsigned short __kernel_nlink_t;25typedef unsigned short __kernel_nlink_t;
25typedef long __kernel_off_t;26#define __kernel_nlink_t __kernel_nlink_t
26typedef int __kernel_pid_t;27
27typedef unsigned short __kernel_ipc_pid_t;28typedef unsigned short __kernel_ipc_pid_t;
29#define __kernel_ipc_pid_t __kernel_ipc_pid_t
30
28typedef unsigned short __kernel_uid_t;31typedef unsigned short __kernel_uid_t;
29typedef unsigned short __kernel_gid_t;32typedef unsigned short __kernel_gid_t;
30typedef unsigned int __kernel_size_t;33#define __kernel_uid_t __kernel_uid_t
31typedef int __kernel_ssize_t;
32typedef int __kernel_ptrdiff_t;
33typedef long __kernel_time_t;
34typedef long __kernel_suseconds_t;
35typedef long __kernel_clock_t;
36typedef int __kernel_timer_t;
37typedef int __kernel_clockid_t;
38typedef int __kernel_daddr_t;
39typedef char * __kernel_caddr_t;
40typedef unsigned short __kernel_uid16_t;
41typedef unsigned short __kernel_gid16_t;
42typedef unsigned int __kernel_uid32_t;
43typedef unsigned int __kernel_gid32_t;
44 34
45typedef unsigned short __kernel_old_uid_t;
46typedef unsigned short __kernel_old_gid_t;
47typedef unsigned short __kernel_old_dev_t;35typedef unsigned short __kernel_old_dev_t;
36#define __kernel_old_dev_t __kernel_old_dev_t
48 37
49#ifdef __GNUC__38#include <asm-generic/posix_types.h>
50typedef long long __kernel_loff_t;
51#endif
52
53typedef 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
76 39
77#endif40#endif
arch/arm/include/asm/processor.h+2−2
@@ -22,7 +22,6 @@ · 21 unmodified lines
22#include <asm/hw_breakpoint.h>22#include <asm/hw_breakpoint.h>
23#include <asm/ptrace.h>23#include <asm/ptrace.h>
24#include <asm/types.h>24#include <asm/types.h>
25#include <asm/system.h>
26 25
27#ifdef __KERNEL__26#ifdef __KERNEL__
28#define STACK_TOP ((current->personality & ADDR_LIMIT_32BIT) ? \27#define STACK_TOP ((current->personality & ADDR_LIMIT_32BIT) ? \
@@ -56,7 +55,6 @@ struct thread_struct { · 27 unmodified lines
56#define start_thread(regs,pc,sp) \55#define start_thread(regs,pc,sp) \
57({ \56({ \
58 unsigned long *stack = (unsigned long *)sp; \57 unsigned long *stack = (unsigned long *)sp; \
59 set_fs(USER_DS); \
60 memset(regs->uregs, 0, sizeof(regs->uregs)); \58 memset(regs->uregs, 0, sizeof(regs->uregs)); \
61 if (current->personality & ADDR_LIMIT_32BIT) \59 if (current->personality & ADDR_LIMIT_32BIT) \
62 regs->ARM_cpsr = USR_MODE; \60 regs->ARM_cpsr = USR_MODE; \
@@ -90,6 +88,8 @@ unsigned long get_wchan(struct task_struct *p); · 27 unmodified lines
90#define cpu_relax() barrier()88#define cpu_relax() barrier()
91#endif89#endif
92 90
91void cpu_idle_wait(void);
92
93/*93/*
94 * Create a new kernel thread94 * Create a new kernel thread
95 */95 */
arch/arm/include/asm/prom.h+0−2
@@ -13,8 +13,6 @@ · 12 unmodified lines
13 13
14#ifdef CONFIG_OF14#ifdef CONFIG_OF
15 15
16#include <asm/irq.h>
17
18extern struct machine_desc *setup_machine_fdt(unsigned int dt_phys);16extern struct machine_desc *setup_machine_fdt(unsigned int dt_phys);
19extern void arm_dt_memblock_reserve(void);17extern void arm_dt_memblock_reserve(void);
20 18
arch/arm/include/asm/smp_twd.h+21−4
@@ -18,11 +18,28 @@ · 17 unmodified lines
18#define TWD_TIMER_CONTROL_PERIODIC (1 << 1)18#define TWD_TIMER_CONTROL_PERIODIC (1 << 1)
19#define TWD_TIMER_CONTROL_IT_ENABLE (1 << 2)19#define TWD_TIMER_CONTROL_IT_ENABLE (1 << 2)
20 20
21struct clock_event_device;21#include <linux/ioport.h>
22 22
23extern void __iomem *twd_base;23struct twd_local_timer {
24 struct resource res[2];
25};
24 26
25void twd_timer_setup(struct clock_event_device *);27#define DEFINE_TWD_LOCAL_TIMER(name,base,irq) \
26void twd_timer_stop(struct clock_event_device *);28struct twd_local_timer name __initdata = { \
29 .res = { \
30 DEFINE_RES_MEM(base, 0x10), \
31 DEFINE_RES_IRQ(irq), \
32 }, \
33};
34
35int twd_local_timer_register(struct twd_local_timer *);
36
37#ifdef CONFIG_HAVE_ARM_TWD
38void twd_local_timer_of_register(void);
39#else
40static inline void twd_local_timer_of_register(void)
41{
42}
43#endif
27 44
28#endif45#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 */
11extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *);
12
13#define switch_to(prev,next,last) \
14do { \
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_H1/* FILE TO BE DELETED. DO NOT ADD STUFF HERE! */
2#define __ASM_ARM_SYSTEM_H2#include <asm/barrier.h>
3 3#include <asm/compiler.h>
4#ifdef __KERNEL__4#include <asm/cmpxchg.h>
5 5#include <asm/exec.h>
6#define CPU_ARCH_UNKNOWN 06#include <asm/switch_to.h>
7#define CPU_ARCH_ARMv3 17#include <asm/system_info.h>
8#define CPU_ARCH_ARMv4 28#include <asm/system_misc.h>
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
66struct thread_info;
67struct task_struct;
68
69/* information about the system we're running on */
70extern unsigned int system_rev;
71extern unsigned int system_serial_low;
72extern unsigned int system_serial_high;
73extern unsigned int mem_fclk_21285;
74
75struct pt_regs;
76
77void die(const char *msg, struct pt_regs *regs, int err);
78
79struct siginfo;
80void 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
91void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
92 struct pt_regs *),
93 int sig, int code, const char *name);
94
95void 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
102extern asmlinkage void c_backtrace(unsigned long fp, int pmode);
103
104struct mm_struct;
105extern void show_pte(struct mm_struct *mm, unsigned long addr);
106extern void __show_regs(struct pt_regs *);
107
108extern int __pure cpu_architecture(void);
109extern void cpu_init(void);
110
111void soft_restart(unsigned long);
112extern 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
120extern 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
188extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
189extern unsigned long cr_alignment; /* defined in entry-armv.S */
190
191static 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
198static 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
206extern 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
213static 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
221static 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 */
240extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *);
241
242#define switch_to(prev,next,last) \
243do { \
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
266static 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
343extern void disable_hlt(void);
344extern void enable_hlt(void);
345
346void 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
372extern void __bad_cmpxchg(volatile void *ptr, int size);
373
374/*
375 * cmpxchg only support 32-bits operands on ARMv6.
376 */
377
378static 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
430static 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
448static 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 */
481static 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
506static 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
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 */
18extern unsigned int system_rev;
19extern unsigned int system_serial_low;
20extern unsigned int system_serial_high;
21extern unsigned int mem_fclk_21285;
22
23extern 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
10extern void cpu_init(void);
11
12void soft_restart(unsigned long);
13extern void (*arm_pm_restart)(char str, const char *cmd);
14extern 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
22extern unsigned int user_debug;
23
24extern void disable_hlt(void);
25extern 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
318 318
319#define tlb_flag(f) ((always_tlb_flags & (f)) || (__tlb_flag & possible_tlb_flags & (f)))319#define tlb_flag(f) ((always_tlb_flags & (f)) || (__tlb_flag & possible_tlb_flags & (f)))
320 320
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
321static inline void local_flush_tlb_all(void)336static inline void local_flush_tlb_all(void)
322{337{
323 const int zero = 0;338 const int zero = 0;
@@ -326,16 +341,11 @@ static inline void local_flush_tlb_all(void) · 2 unmodified lines
326 if (tlb_flag(TLB_WB))341 if (tlb_flag(TLB_WB))
327 dsb();342 dsb();
328 343
329 if (tlb_flag(TLB_V3_FULL))344 tlb_op(TLB_V3_FULL, "c6, c0, 0", zero);
330 asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (zero) : "cc");345 tlb_op(TLB_V4_U_FULL | TLB_V6_U_FULL, "c8, c7, 0", zero);
331 if (tlb_flag(TLB_V4_U_FULL | TLB_V6_U_FULL))346 tlb_op(TLB_V4_D_FULL | TLB_V6_D_FULL, "c8, c6, 0", zero);
332 asm("mcr p15, 0, %0, c8, c7, 0" : : "r" (zero) : "cc");347 tlb_op(TLB_V4_I_FULL | TLB_V6_I_FULL, "c8, c5, 0", zero);
333 if (tlb_flag(TLB_V4_D_FULL | TLB_V6_D_FULL))348 tlb_op(TLB_V7_UIS_FULL, "c8, c3, 0", zero);
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");
339 349
340 if (tlb_flag(TLB_BARRIER)) {350 if (tlb_flag(TLB_BARRIER)) {
341 dsb();351 dsb();
@@ -352,29 +362,23 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm) · 10 unmodified lines
352 if (tlb_flag(TLB_WB))362 if (tlb_flag(TLB_WB))
353 dsb();363 dsb();
354 364
355 if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) {365 if (possible_tlb_flags & (TLB_V3_FULL|TLB_V4_U_FULL|TLB_V4_D_FULL|TLB_V4_I_FULL)) {
356 if (tlb_flag(TLB_V3_FULL))366 if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) {
357 asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (zero) : "cc");367 tlb_op(TLB_V3_FULL, "c6, c0, 0", zero);
358 if (tlb_flag(TLB_V4_U_FULL))368 tlb_op(TLB_V4_U_FULL, "c8, c7, 0", zero);
359 asm("mcr p15, 0, %0, c8, c7, 0" : : "r" (zero) : "cc");369 tlb_op(TLB_V4_D_FULL, "c8, c6, 0", zero);
360 if (tlb_flag(TLB_V4_D_FULL))370 tlb_op(TLB_V4_I_FULL, "c8, c5, 0", zero);
361 asm("mcr p15, 0, %0, c8, c6, 0" : : "r" (zero) : "cc");371 }
362 if (tlb_flag(TLB_V4_I_FULL))372 put_cpu();
363 asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");
364 }373 }
365 put_cpu();374
366 375 tlb_op(TLB_V6_U_ASID, "c8, c7, 2", asid);
367 if (tlb_flag(TLB_V6_U_ASID))376 tlb_op(TLB_V6_D_ASID, "c8, c6, 2", asid);
368 asm("mcr p15, 0, %0, c8, c7, 2" : : "r" (asid) : "cc");377 tlb_op(TLB_V6_I_ASID, "c8, c5, 2", asid);
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#ifdef CONFIG_ARM_ERRATA_720789378#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);
376#else380#else
377 asm("mcr p15, 0, %0, c8, c3, 2" : : "r" (asid) : "cc");381 tlb_op(TLB_V7_UIS_ASID, "c8, c3, 2", asid);
378#endif382#endif
379 383
380 if (tlb_flag(TLB_BARRIER))384 if (tlb_flag(TLB_BARRIER))
@@ -392,30 +396,23 @@ local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) · 11 unmodified lines
392 if (tlb_flag(TLB_WB))396 if (tlb_flag(TLB_WB))
393 dsb();397 dsb();
394 398
395 if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) {399 if (possible_tlb_flags & (TLB_V3_PAGE|TLB_V4_U_PAGE|TLB_V4_D_PAGE|TLB_V4_I_PAGE|TLB_V4_I_FULL) &&
396 if (tlb_flag(TLB_V3_PAGE))400 cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) {
397 asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (uaddr) : "cc");401 tlb_op(TLB_V3_PAGE, "c6, c0, 0", uaddr);
398 if (tlb_flag(TLB_V4_U_PAGE))402 tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", uaddr);
399 asm("mcr p15, 0, %0, c8, c7, 1" : : "r" (uaddr) : "cc");403 tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", uaddr);
400 if (tlb_flag(TLB_V4_D_PAGE))404 tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", uaddr);
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");
404 if (!tlb_flag(TLB_V4_I_PAGE) && tlb_flag(TLB_V4_I_FULL))405 if (!tlb_flag(TLB_V4_I_PAGE) && tlb_flag(TLB_V4_I_FULL))
405 asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");406 asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");
406 }407 }
407 408
408 if (tlb_flag(TLB_V6_U_PAGE))409 tlb_op(TLB_V6_U_PAGE, "c8, c7, 1", uaddr);
409 asm("mcr p15, 0, %0, c8, c7, 1" : : "r" (uaddr) : "cc");410 tlb_op(TLB_V6_D_PAGE, "c8, c6, 1", uaddr);
410 if (tlb_flag(TLB_V6_D_PAGE))411 tlb_op(TLB_V6_I_PAGE, "c8, c5, 1", uaddr);
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))
415#ifdef CONFIG_ARM_ERRATA_720789412#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);
417#else414#else
418 asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (uaddr) : "cc");415 tlb_op(TLB_V7_UIS_PAGE, "c8, c3, 1", uaddr);
419#endif416#endif
420 417
421 if (tlb_flag(TLB_BARRIER))418 if (tlb_flag(TLB_BARRIER))
@@ -432,25 +429,17 @@ static inline void local_flush_tlb_kernel_page(unsigned long kaddr) · 10 unmodified lines
432 if (tlb_flag(TLB_WB))429 if (tlb_flag(TLB_WB))
433 dsb();430 dsb();
434 431
435 if (tlb_flag(TLB_V3_PAGE))432 tlb_op(TLB_V3_PAGE, "c6, c0, 0", kaddr);
436 asm("mcr p15, 0, %0, c6, c0, 0" : : "r" (kaddr) : "cc");433 tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", kaddr);
437 if (tlb_flag(TLB_V4_U_PAGE))434 tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", kaddr);
438 asm("mcr p15, 0, %0, c8, c7, 1" : : "r" (kaddr) : "cc");435 tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", kaddr);
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");
443 if (!tlb_flag(TLB_V4_I_PAGE) && tlb_flag(TLB_V4_I_FULL))436 if (!tlb_flag(TLB_V4_I_PAGE) && tlb_flag(TLB_V4_I_FULL))
444 asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");437 asm("mcr p15, 0, %0, c8, c5, 0" : : "r" (zero) : "cc");
445 438
446 if (tlb_flag(TLB_V6_U_PAGE))439 tlb_op(TLB_V6_U_PAGE, "c8, c7, 1", kaddr);
447 asm("mcr p15, 0, %0, c8, c7, 1" : : "r" (kaddr) : "cc");440 tlb_op(TLB_V6_D_PAGE, "c8, c6, 1", kaddr);
448 if (tlb_flag(TLB_V6_D_PAGE))441 tlb_op(TLB_V6_I_PAGE, "c8, c5, 1", kaddr);
449 asm("mcr p15, 0, %0, c8, c6, 1" : : "r" (kaddr) : "cc");442 tlb_op(TLB_V7_UIS_PAGE, "c8, c3, 1", kaddr);
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");
454 443
455 if (tlb_flag(TLB_BARRIER)) {444 if (tlb_flag(TLB_BARRIER)) {
456 dsb();445 dsb();
@@ -475,13 +464,8 @@ static inline void flush_pmd_entry(void *pmd) · 18 unmodified lines
475{464{
476 const unsigned int __tlb_flag = __cpu_tlb_flags;465 const unsigned int __tlb_flag = __cpu_tlb_flags;
477 466
478 if (tlb_flag(TLB_DCLEAN))467 tlb_op(TLB_DCLEAN, "c7, c10, 1 @ flush_pmd", pmd);
479 asm("mcr p15, 0, %0, c7, c10, 1 @ flush_pmd"468 tlb_l2_op(TLB_L2CLEAN_FR, "c15, c9, 1 @ L2 flush_pmd", 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");
485 469
486 if (tlb_flag(TLB_WB))470 if (tlb_flag(TLB_WB))
487 dsb();471 dsb();
@@ -491,15 +475,11 @@ static inline void clean_pmd_entry(void *pmd) · 3 unmodified lines
491{475{
492 const unsigned int __tlb_flag = __cpu_tlb_flags;476 const unsigned int __tlb_flag = __cpu_tlb_flags;
493 477
494 if (tlb_flag(TLB_DCLEAN))478 tlb_op(TLB_DCLEAN, "c7, c10, 1 @ flush_pmd", pmd);
495 asm("mcr p15, 0, %0, c7, c10, 1 @ flush_pmd"479 tlb_l2_op(TLB_L2CLEAN_FR, "c15, c9, 1 @ L2 flush_pmd", 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");
501}480}
502 481
482#undef tlb_op
503#undef tlb_flag483#undef tlb_flag
504#undef always_tlb_flags484#undef always_tlb_flags
505#undef possible_tlb_flags485#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
46 return in ? : __in_irqentry_text(ptr);46 return in ? : __in_irqentry_text(ptr);
47}47}
48 48
49extern void __init early_trap_init(void);49extern void __init early_trap_init(void *);
50extern void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame);50extern void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame);
51extern void ptrace_break(struct task_struct *tsk, struct pt_regs *regs);51extern void ptrace_break(struct task_struct *tsk, struct pt_regs *regs);
52 52
arch/arm/include/asm/uaccess.h+1−1
@@ -16,8 +16,8 @@ · 15 unmodified lines
16#include <asm/errno.h>16#include <asm/errno.h>
17#include <asm/memory.h>17#include <asm/memory.h>
18#include <asm/domain.h>18#include <asm/domain.h>
19#include <asm/system.h>
20#include <asm/unified.h>19#include <asm/unified.h>
20#include <asm/compiler.h>
21 21
22#define VERIFY_READ 022#define VERIFY_READ 0
23#define VERIFY_WRITE 123#define VERIFY_WRITE 1
arch/arm/kernel/Makefile+9−11
@@ -7,6 +7,8 @@ AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET) · 6 unmodified lines
7 7
8ifdef CONFIG_FUNCTION_TRACER8ifdef CONFIG_FUNCTION_TRACER
9CFLAGS_REMOVE_ftrace.o = -pg9CFLAGS_REMOVE_ftrace.o = -pg
10CFLAGS_REMOVE_insn.o = -pg
11CFLAGS_REMOVE_patch.o = -pg
10endif12endif
11 13
12CFLAGS_REMOVE_return_address.o = -pg14CFLAGS_REMOVE_return_address.o = -pg
@@ -14,30 +16,29 @@ CFLAGS_REMOVE_return_address.o = -pg · 1 unmodified line
14# Object file lists.16# Object file lists.
15 17
16obj-y := elf.o entry-armv.o entry-common.o irq.o opcodes.o \18obj-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 \19 process.o ptrace.o return_address.o sched_clock.o \
18 sys_arm.o stacktrace.o time.o traps.o20 setup.o signal.o stacktrace.o sys_arm.o time.o traps.o
19 21
20obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += compat.o22obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += compat.o
21 23
22obj-$(CONFIG_LEDS) += leds.o24obj-$(CONFIG_LEDS) += leds.o
23obj-$(CONFIG_OC_ETM) += etm.o25obj-$(CONFIG_OC_ETM) += etm.o
24 26obj-$(CONFIG_CPU_IDLE) += cpuidle.o
25obj-$(CONFIG_ISA_DMA_API) += dma.o27obj-$(CONFIG_ISA_DMA_API) += dma.o
26obj-$(CONFIG_ARCH_ACORN) += ecard.o
27obj-$(CONFIG_FIQ) += fiq.o fiqasm.o28obj-$(CONFIG_FIQ) += fiq.o fiqasm.o
28obj-$(CONFIG_MODULES) += armksyms.o module.o29obj-$(CONFIG_MODULES) += armksyms.o module.o
29obj-$(CONFIG_ARTHUR) += arthur.o30obj-$(CONFIG_ARTHUR) += arthur.o
30obj-$(CONFIG_ISA_DMA) += dma-isa.o31obj-$(CONFIG_ISA_DMA) += dma-isa.o
31obj-$(CONFIG_PCI) += bios32.o isa.o32obj-$(CONFIG_PCI) += bios32.o isa.o
32obj-$(CONFIG_ARM_CPU_SUSPEND) += sleep.o suspend.o33obj-$(CONFIG_ARM_CPU_SUSPEND) += sleep.o suspend.o
33obj-$(CONFIG_HAVE_SCHED_CLOCK) += sched_clock.o
34obj-$(CONFIG_SMP) += smp.o smp_tlb.o34obj-$(CONFIG_SMP) += smp.o smp_tlb.o
35obj-$(CONFIG_HAVE_ARM_SCU) += smp_scu.o35obj-$(CONFIG_HAVE_ARM_SCU) += smp_scu.o
36obj-$(CONFIG_HAVE_ARM_TWD) += smp_twd.o36obj-$(CONFIG_HAVE_ARM_TWD) += smp_twd.o
37obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o37obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o insn.o
38obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o38obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o insn.o
39obj-$(CONFIG_JUMP_LABEL) += jump_label.o insn.o patch.o
39obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o40obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
40obj-$(CONFIG_KPROBES) += kprobes.o kprobes-common.o41obj-$(CONFIG_KPROBES) += kprobes.o kprobes-common.o patch.o
41ifdef CONFIG_THUMB2_KERNEL42ifdef CONFIG_THUMB2_KERNEL
42obj-$(CONFIG_KPROBES) += kprobes-thumb.o43obj-$(CONFIG_KPROBES) += kprobes-thumb.o
43else44else
@@ -62,9 +63,6 @@ obj-$(CONFIG_SWP_EMULATE) += swp_emulate.o · 18 unmodified lines
62CFLAGS_swp_emulate.o := -Wa,-march=armv7-a63CFLAGS_swp_emulate.o := -Wa,-march=armv7-a
63obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o64obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
64 65
65obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o
66AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
67
68obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o66obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o
69obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o67obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o
70obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o68obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o
arch/arm/kernel/armksyms.c+0−1
@@ -18,7 +18,6 @@ · 17 unmodified lines
18#include <linux/io.h>18#include <linux/io.h>
19 19
20#include <asm/checksum.h>20#include <asm/checksum.h>
21#include <asm/system.h>
22#include <asm/ftrace.h>21#include <asm/ftrace.h>
23 22
24/*23/*
arch/arm/kernel/bios32.c+7−69
@@ -16,7 +16,6 @@ · 15 unmodified lines
16#include <asm/mach/pci.h>16#include <asm/mach/pci.h>
17 17
18static int debug_pci;18static int debug_pci;
19static int use_firmware;
20 19
21/*20/*
22 * We can't use pci_find_device() here since we are21 * 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
294 293
295}294}
296 295
297/*
298 * Adjust the device resources from bus-centric to Linux-centric.
299 */
300static void __devinit
301pdev_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
319/*296/*
320 * pcibios_fixup_bus - Called after each bus is probed,297 * pcibios_fixup_bus - Called after each bus is probed,
321 * but before its children are examined.298 * but before its children are examined.
322 */299 */
323void pcibios_fixup_bus(struct pci_bus *bus)300void pcibios_fixup_bus(struct pci_bus *bus)
324{301{
325 struct pci_sys_data *root = bus->sysdata;
326 struct pci_dev *dev;302 struct pci_dev *dev;
327 u16 features = PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_FAST_BACK;303 u16 features = PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_FAST_BACK;
328 304
@@ -333,8 +309,6 @@ void pcibios_fixup_bus(struct pci_bus *bus) · 4 unmodified lines
333 list_for_each_entry(dev, &bus->devices, bus_list) {309 list_for_each_entry(dev, &bus->devices, bus_list) {
334 u16 status;310 u16 status;
335 311
336 pdev_fixup_device_resources(root, dev);
337
338 pci_read_config_word(dev, PCI_STATUS, &status);312 pci_read_config_word(dev, PCI_STATUS, &status);
339 313
340 /*314 /*
@@ -399,43 +373,6 @@ void pcibios_fixup_bus(struct pci_bus *bus) · 58 unmodified lines
399EXPORT_SYMBOL(pcibios_fixup_bus);373EXPORT_SYMBOL(pcibios_fixup_bus);
400#endif374#endif
401 375
402/*
403 * Convert from Linux-centric to bus-centric addresses for bridge devices.
404 */
405void
406pcibios_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}
420EXPORT_SYMBOL(pcibios_resource_to_bus);
421
422void __devinit
423pcibios_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}
437EXPORT_SYMBOL(pcibios_bus_to_resource);
438
439/*376/*
440 * Swizzle the device pin each time we cross a bridge.377 * Swizzle the device pin each time we cross a bridge.
441 * This might update pin and returns the slot number.378 * 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
497 434
498 if (ret > 0) {435 if (ret > 0) {
499 if (list_empty(&sys->resources)) {436 if (list_empty(&sys->resources)) {
500 pci_add_resource(&sys->resources,437 pci_add_resource_offset(&sys->resources,
501 &ioport_resource);438 &ioport_resource, sys->io_offset);
502 pci_add_resource(&sys->resources,439 pci_add_resource_offset(&sys->resources,
503 &iomem_resource);440 &iomem_resource, sys->mem_offset);
504 }441 }
505 442
506 sys->bus = hw->scan(nr, sys);443 sys->bus = hw->scan(nr, sys);
@@ -525,6 +462,7 @@ void __init pci_common_init(struct hw_pci *hw) · 18 unmodified lines
525 462
526 INIT_LIST_HEAD(&hw->buses);463 INIT_LIST_HEAD(&hw->buses);
527 464
465 pci_add_flags(PCI_REASSIGN_ALL_RSRC);
528 if (hw->preinit)466 if (hw->preinit)
529 hw->preinit();467 hw->preinit();
530 pcibios_init_hw(hw);468 pcibios_init_hw(hw);
@@ -536,7 +474,7 @@ void __init pci_common_init(struct hw_pci *hw) · 5 unmodified lines
536 list_for_each_entry(sys, &hw->buses, node) {474 list_for_each_entry(sys, &hw->buses, node) {
537 struct pci_bus *bus = sys->bus;475 struct pci_bus *bus = sys->bus;
538 476
539 if (!use_firmware) {477 if (!pci_has_flag(PCI_PROBE_ONLY)) {
540 /*478 /*
541 * Size the bridge windows.479 * Size the bridge windows.
542 */480 */
@@ -573,7 +511,7 @@ char * __init pcibios_setup(char *str) · 30 unmodified lines
573 debug_pci = 1;511 debug_pci = 1;
574 return NULL;512 return NULL;
575 } else if (!strcmp(str, "firmware")) {513 } else if (!strcmp(str, "firmware")) {
576 use_firmware = 1;514 pci_add_flags(PCI_PROBE_ONLY);
577 return NULL;515 return NULL;
578 }516 }
579 return str;517 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
15int 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
10 * 32-bit debugging code10 * 32-bit debugging code
11 */11 */
12#include <linux/linkage.h>12#include <linux/linkage.h>
13#include <asm/assembler.h>
13 14
14 .text15 .text
15 16
@@ -100,7 +101,7 @@ · 84 unmodified lines
100 101
101#endif /* CONFIG_CPU_V6 */102#endif /* CONFIG_CPU_V6 */
102 103
103#else104#elif !defined(CONFIG_DEBUG_SEMIHOSTING)
104#include <mach/debug-macro.S>105#include <mach/debug-macro.S>
105#endif /* CONFIG_DEBUG_ICEDCC */106#endif /* CONFIG_DEBUG_ICEDCC */
106 107
@@ -155,6 +156,8 @@ hexbuf: .space 16 · 48 unmodified lines
155 156
156 .ltorg157 .ltorg
157 158
159#ifndef CONFIG_DEBUG_SEMIHOSTING
160
158ENTRY(printascii)161ENTRY(printascii)
159 addruart_current r3, r1, r2162 addruart_current r3, r1, r2
160 b 2f163 b 2f
@@ -177,3 +180,24 @@ ENTRY(printch) · 16 unmodified lines
177 mov r0, #0180 mov r0, #0
178 b 1b181 b 1b
179ENDPROC(printch)182ENDPROC(printch)
183
184#else
185
186ENTRY(printascii)
187 mov r1, r0
188 mov r0, #0x04 @ SYS_WRITE0
189 ARM( svc #0x123456 )
190 THUMB( svc #0xab )
191 mov pc, lr
192ENDPROC(printascii)
193
194ENTRY(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
201ENDPROC(printch)
202
203#endif
arch/arm/kernel/elf.c+1−0
@@ -3,6 +3,7 @@ · 2 unmodified lines
3#include <linux/personality.h>3#include <linux/personality.h>
4#include <linux/binfmts.h>4#include <linux/binfmts.h>
5#include <linux/elf.h>5#include <linux/elf.h>
6#include <asm/system_info.h>
6 7
7int elf_check_arch(const struct elf32_hdr *x)8int elf_check_arch(const struct elf32_hdr *x)
8{9{
arch/arm/kernel/entry-armv.S+4−2
@@ -15,16 +15,19 @@ · 14 unmodified lines
15 * that causes it to save wrong values... Be aware!15 * that causes it to save wrong values... Be aware!
16 */16 */
17 17
18#include <asm/assembler.h>
18#include <asm/memory.h>19#include <asm/memory.h>
19#include <asm/glue-df.h>20#include <asm/glue-df.h>
20#include <asm/glue-pf.h>21#include <asm/glue-pf.h>
21#include <asm/vfpmacros.h>22#include <asm/vfpmacros.h>
23#ifndef CONFIG_MULTI_IRQ_HANDLER
22#include <mach/entry-macro.S>24#include <mach/entry-macro.S>
25#endif
23#include <asm/thread_notify.h>26#include <asm/thread_notify.h>
24#include <asm/unwind.h>27#include <asm/unwind.h>
25#include <asm/unistd.h>28#include <asm/unistd.h>
26#include <asm/tls.h>29#include <asm/tls.h>
27#include <asm/system.h>30#include <asm/system_info.h>
28 31
29#include "entry-header.S"32#include "entry-header.S"
30#include <asm/entry-macro-multi.S>33#include <asm/entry-macro-multi.S>
@@ -1101,7 +1104,6 @@ __stubs_start: · 1070 unmodified lines
1101 * get out of that mode without clobbering one register.1104 * get out of that mode without clobbering one register.
1102 */1105 */
1103vector_fiq:1106vector_fiq:
1104 disable_fiq
1105 subs pc, lr, #41107 subs pc, lr, #4
1106 1108
1107/*=============================================================================1109/*=============================================================================
arch/arm/kernel/entry-common.S+7−1
@@ -10,9 +10,15 @@ · 9 unmodified lines
10 10
11#include <asm/unistd.h>11#include <asm/unistd.h>
12#include <asm/ftrace.h>12#include <asm/ftrace.h>
13#include <mach/entry-macro.S>
14#include <asm/unwind.h>13#include <asm/unwind.h>
15 14
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
16#include "entry-header.S"22#include "entry-header.S"
17 23
18 24
arch/arm/kernel/fiq.c+1−1
@@ -42,9 +42,9 @@ · 41 unmodified lines
42#include <linux/seq_file.h>42#include <linux/seq_file.h>
43 43
44#include <asm/cacheflush.h>44#include <asm/cacheflush.h>
45#include <asm/cp15.h>
45#include <asm/fiq.h>46#include <asm/fiq.h>
46#include <asm/irq.h>47#include <asm/irq.h>
47#include <asm/system.h>
48#include <asm/traps.h>48#include <asm/traps.h>
49 49
50static unsigned long no_fiq_insn;50static unsigned long no_fiq_insn;
arch/arm/kernel/ftrace.c+28−72
@@ -16,10 +16,13 @@ · 15 unmodified lines
16#include <linux/uaccess.h>16#include <linux/uaccess.h>
17 17
18#include <asm/cacheflush.h>18#include <asm/cacheflush.h>
19#include <asm/opcodes.h>
19#include <asm/ftrace.h>20#include <asm/ftrace.h>
20 21
22#include "insn.h"
23
21#ifdef CONFIG_THUMB2_KERNEL24#ifdef CONFIG_THUMB2_KERNEL
22#define NOP 0xeb04f85d /* pop.w {lr} */25#define NOP 0xf85deb04 /* pop.w {lr} */
23#else26#else
24#define NOP 0xe8bd4000 /* pop {lr} */27#define NOP 0xe8bd4000 /* pop {lr} */
25#endif28#endif
@@ -60,76 +63,31 @@ static unsigned long adjust_address(struct dyn_ftrace *rec, unsigned long addr) · 34 unmodified lines
60}63}
61#endif64#endif
62 65
63#ifdef CONFIG_THUMB2_KERNEL
64static 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
94static 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
118static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)66static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)
119{67{
120 return ftrace_gen_branch(pc, addr, true);68 return arm_gen_branch_link(pc, addr);
121}69}
122 70
123static int ftrace_modify_code(unsigned long pc, unsigned long old,71static int ftrace_modify_code(unsigned long pc, unsigned long old,
124 unsigned long new)72 unsigned long new, bool validate)
125{73{
126 unsigned long replaced;74 unsigned long replaced;
127 75
128 if (probe_kernel_read(&replaced, (void *)pc, MCOUNT_INSN_SIZE))76 if (IS_ENABLED(CONFIG_THUMB2_KERNEL)) {
129 return -EFAULT;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 }
130 83
131 if (replaced != old)84 if (validate) {
132 return -EINVAL;85 if (probe_kernel_read(&replaced, (void *)pc, MCOUNT_INSN_SIZE))
86 return -EFAULT;
87
88 if (replaced != old)
89 return -EINVAL;
90 }
133 91
134 if (probe_kernel_write((void *)pc, &new, MCOUNT_INSN_SIZE))92 if (probe_kernel_write((void *)pc, &new, MCOUNT_INSN_SIZE))
135 return -EPERM;93 return -EPERM;
@@ -141,23 +99,21 @@ static int ftrace_modify_code(unsigned long pc, unsigned long old, · 5 unmodified lines
141 99
142int ftrace_update_ftrace_func(ftrace_func_t func)100int ftrace_update_ftrace_func(ftrace_func_t func)
143{101{
144 unsigned long pc, old;102 unsigned long pc;
145 unsigned long new;103 unsigned long new;
146 int ret;104 int ret;
147 105
148 pc = (unsigned long)&ftrace_call;106 pc = (unsigned long)&ftrace_call;
149 memcpy(&old, &ftrace_call, MCOUNT_INSN_SIZE);
150 new = ftrace_call_replace(pc, (unsigned long)func);107 new = ftrace_call_replace(pc, (unsigned long)func);
151 108
152 ret = ftrace_modify_code(pc, old, new);109 ret = ftrace_modify_code(pc, 0, new, false);
153 110
154#ifdef CONFIG_OLD_MCOUNT111#ifdef CONFIG_OLD_MCOUNT
155 if (!ret) {112 if (!ret) {
156 pc = (unsigned long)&ftrace_call_old;113 pc = (unsigned long)&ftrace_call_old;
157 memcpy(&old, &ftrace_call_old, MCOUNT_INSN_SIZE);
158 new = ftrace_call_replace(pc, (unsigned long)func);114 new = ftrace_call_replace(pc, (unsigned long)func);
159 115
160 ret = ftrace_modify_code(pc, old, new);116 ret = ftrace_modify_code(pc, 0, new, false);
161 }117 }
162#endif118#endif
163 119
@@ -172,7 +128,7 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr) · 8 unmodified lines
172 old = ftrace_nop_replace(rec);128 old = ftrace_nop_replace(rec);
173 new = ftrace_call_replace(ip, adjust_address(rec, addr));129 new = ftrace_call_replace(ip, adjust_address(rec, addr));
174 130
175 return ftrace_modify_code(rec->ip, old, new);131 return ftrace_modify_code(rec->ip, old, new, true);
176}132}
177 133
178int ftrace_make_nop(struct module *mod,134int ftrace_make_nop(struct module *mod,
@@ -185,7 +141,7 @@ int ftrace_make_nop(struct module *mod, · 6 unmodified lines
185 141
186 old = ftrace_call_replace(ip, adjust_address(rec, addr));142 old = ftrace_call_replace(ip, adjust_address(rec, addr));
187 new = ftrace_nop_replace(rec);143 new = ftrace_nop_replace(rec);
188 ret = ftrace_modify_code(ip, old, new);144 ret = ftrace_modify_code(ip, old, new, true);
189 145
190#ifdef CONFIG_OLD_MCOUNT146#ifdef CONFIG_OLD_MCOUNT
191 if (ret == -EINVAL && addr == MCOUNT_ADDR) {147 if (ret == -EINVAL && addr == MCOUNT_ADDR) {
@@ -193,7 +149,7 @@ int ftrace_make_nop(struct module *mod, · 1 unmodified line
193 149
194 old = ftrace_call_replace(ip, adjust_address(rec, addr));150 old = ftrace_call_replace(ip, adjust_address(rec, addr));
195 new = ftrace_nop_replace(rec);151 new = ftrace_nop_replace(rec);
196 ret = ftrace_modify_code(ip, old, new);152 ret = ftrace_modify_code(ip, old, new, true);
197 }153 }
198#endif154#endif
199 155
@@ -249,12 +205,12 @@ static int __ftrace_modify_caller(unsigned long *callsite, · 49 unmodified lines
249{205{
250 unsigned long caller_fn = (unsigned long) func;206 unsigned long caller_fn = (unsigned long) func;
251 unsigned long pc = (unsigned long) callsite;207 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);
253 unsigned long nop = 0xe1a00000; /* mov r0, r0 */209 unsigned long nop = 0xe1a00000; /* mov r0, r0 */
254 unsigned long old = enable ? nop : branch;210 unsigned long old = enable ? nop : branch;
255 unsigned long new = enable ? branch : nop;211 unsigned long new = enable ? branch : nop;
256 212
257 return ftrace_modify_code(pc, old, new);213 return ftrace_modify_code(pc, old, new, true);
258}214}
259 215
260static int ftrace_modify_graph_caller(bool enable)216static int ftrace_modify_graph_caller(bool enable)
arch/arm/kernel/head-nommu.S+1−1
@@ -17,8 +17,8 @@ · 16 unmodified lines
17#include <asm/assembler.h>17#include <asm/assembler.h>
18#include <asm/ptrace.h>18#include <asm/ptrace.h>
19#include <asm/asm-offsets.h>19#include <asm/asm-offsets.h>
20#include <asm/cp15.h>
20#include <asm/thread_info.h>21#include <asm/thread_info.h>
21#include <asm/system.h>
22 22
23/*23/*
24 * Kernel startup entry point.24 * Kernel startup entry point.
arch/arm/kernel/head.S+5−5
@@ -15,12 +15,12 @@ · 14 unmodified lines
15#include <linux/init.h>15#include <linux/init.h>
16 16
17#include <asm/assembler.h>17#include <asm/assembler.h>
18#include <asm/cp15.h>
18#include <asm/domain.h>19#include <asm/domain.h>
19#include <asm/ptrace.h>20#include <asm/ptrace.h>
20#include <asm/asm-offsets.h>21#include <asm/asm-offsets.h>
21#include <asm/memory.h>22#include <asm/memory.h>
22#include <asm/thread_info.h>23#include <asm/thread_info.h>
23#include <asm/system.h>
24#include <asm/pgtable.h>24#include <asm/pgtable.h>
25 25
26#ifdef CONFIG_DEBUG_LL26#ifdef CONFIG_DEBUG_LL
@@ -265,7 +265,7 @@ __create_page_tables: · 238 unmodified lines
265 str r6, [r3]265 str r6, [r3]
266 266
267#ifdef CONFIG_DEBUG_LL267#ifdef CONFIG_DEBUG_LL
268#ifndef CONFIG_DEBUG_ICEDCC268#if !defined(CONFIG_DEBUG_ICEDCC) && !defined(CONFIG_DEBUG_SEMIHOSTING)
269 /*269 /*
270 * Map in IO space for serial debugging.270 * Map in IO space for serial debugging.
271 * This allows debug messages to be output271 * This allows debug messages to be output
@@ -297,10 +297,10 @@ __create_page_tables: · 25 unmodified lines
297 cmp r0, r6297 cmp r0, r6
298 blo 1b298 blo 1b
299 299
300#else /* CONFIG_DEBUG_ICEDCC */300#else /* CONFIG_DEBUG_ICEDCC || CONFIG_DEBUG_SEMIHOSTING */
301 /* we don't need any serial debugging mappings for ICEDCC */301 /* we don't need any serial debugging mappings */
302 ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags302 ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags
303#endif /* !CONFIG_DEBUG_ICEDCC */303#endif
304 304
305#if defined(CONFIG_ARCH_NETWINDER) || defined(CONFIG_ARCH_CATS)305#if defined(CONFIG_ARCH_NETWINDER) || defined(CONFIG_ARCH_CATS)
306 /*306 /*
arch/arm/kernel/hw_breakpoint.c+0−1
@@ -34,7 +34,6 @@ · 33 unmodified lines
34#include <asm/current.h>34#include <asm/current.h>
35#include <asm/hw_breakpoint.h>35#include <asm/hw_breakpoint.h>
36#include <asm/kdebug.h>36#include <asm/kdebug.h>
37#include <asm/system.h>
38#include <asm/traps.h>37#include <asm/traps.h>
39 38
40/* Breakpoint currently in use for each BRP. */39/* 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
5static 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
35static 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
55unsigned 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
4static inline unsigned long
5arm_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
14unsigned long
15__arm_gen_branch(unsigned long pc, unsigned long addr, bool link);
16
17static inline unsigned long
18arm_gen_branch(unsigned long pc, unsigned long addr)
19{
20 return __arm_gen_branch(pc, addr, false);
21}
22
23static inline unsigned long
24arm_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
36#include <linux/proc_fs.h>36#include <linux/proc_fs.h>
37 37
38#include <asm/exception.h>38#include <asm/exception.h>
39#include <asm/system.h>
40#include <asm/mach/arch.h>39#include <asm/mach/arch.h>
41#include <asm/mach/irq.h>40#include <asm/mach/irq.h>
42#include <asm/mach/time.h>41#include <asm/mach/time.h>
@@ -181,10 +180,7 @@ void migrate_irqs(void) · 138 unmodified lines
181 local_irq_save(flags);180 local_irq_save(flags);
182 181
183 for_each_irq_desc(i, desc) {182 for_each_irq_desc(i, desc) {
184 bool affinity_broken = false;183 bool affinity_broken;
185
186 if (!desc)
187 continue;
188 184
189 raw_spin_lock(&desc->lock);185 raw_spin_lock(&desc->lock);
190 affinity_broken = migrate_one_irq(desc);186 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
9static 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
27void 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
33void 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
13 13
14#include <linux/kernel.h>14#include <linux/kernel.h>
15#include <linux/kprobes.h>15#include <linux/kprobes.h>
16#include <asm/system_info.h>
16 17
17#include "kprobes.h"18#include "kprobes.h"
18 19
arch/arm/kernel/kprobes.c+25−63
@@ -29,6 +29,7 @@ · 28 unmodified lines
29#include <asm/cacheflush.h>29#include <asm/cacheflush.h>
30 30
31#include "kprobes.h"31#include "kprobes.h"
32#include "patch.h"
32 33
33#define MIN_STACK_SIZE(addr) \34#define MIN_STACK_SIZE(addr) \
34 min((unsigned long)MAX_STACK_SIZE, \35 min((unsigned long)MAX_STACK_SIZE, \
@@ -103,57 +104,33 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p) · 68 unmodified lines
103 return 0;104 return 0;
104}105}
105 106
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 */
113static 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
121void __kprobes arch_arm_kprobe(struct kprobe *p)107void __kprobes arch_arm_kprobe(struct kprobe *p)
122{108{
123 uintptr_t addr = (uintptr_t)p->addr & ~1; /* Remove any Thumb flag */109 unsigned int brkp;
124 110 void *addr;
125 if (!is_wide_instruction(p->opcode)) {111
126 *(u16 *)addr = KPROBE_THUMB16_BREAKPOINT_INSTRUCTION;112 if (IS_ENABLED(CONFIG_THUMB2_KERNEL)) {
127 flush_insns(addr, sizeof(u16));113 /* Remove any Thumb flag */
128 } else if (addr & 2) {114 addr = (void *)((uintptr_t)p->addr & ~1);
129 /* A 32-bit instruction spanning two words needs special care */115
130 stop_machine(set_t32_breakpoint, (void *)addr, &cpu_online_map);116 if (is_wide_instruction(p->opcode))
117 brkp = KPROBE_THUMB32_BREAKPOINT_INSTRUCTION;
118 else
119 brkp = KPROBE_THUMB16_BREAKPOINT_INSTRUCTION;
131 } else {120 } 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.