History

Merge remote-tracking branch 'linus/master' into x86/urgent

H. Peter Anvin committed 14 years ago

Commit 282f4452 parents 68f30fb 90a4c0f9587 files · +464745 −260192Browse files

Unified · Split

3524 files
  1. CREDITS +5 −0
  2. Documentation/ABI/stable/sysfs-bus-xen-backend +75 −0
  3. Documentation/ABI/stable/sysfs-devices-system-xen_memory +77 −0
  4. Documentation/ABI/testing/sysfs-bus-pci +18 −0
  5. Documentation/ABI/testing/sysfs-bus-usb +25 −0
  6. Documentation/ABI/testing/sysfs-class-rtc-rtc0-device-rtc_calibration +12 −0
  7. Documentation/ABI/testing/sysfs-devices-platform-docg3 +34 −0
  8. Documentation/ABI/testing/sysfs-driver-hid-logitech-lg4ff +1 −1
  9. Documentation/ABI/testing/sysfs-driver-hid-multitouch +9 −0
  10. Documentation/ABI/testing/sysfs-driver-hid-roccat-isku +135 −0
  11. Documentation/ABI/testing/sysfs-driver-hid-wiimote +12 −0
  12. Documentation/ABI/testing/sysfs-driver-wacom +9 −8
  13. Documentation/ABI/testing/sysfs-kernel-slab +4 −0
  14. Documentation/ABI/testing/sysfs-module +16 −0
  15. Documentation/DocBook/media/constraints.png.b64 +59 −0
  16. Documentation/DocBook/media/dvb/dvbproperty.xml +22 −9
  17. Documentation/DocBook/media/dvb/frontend.xml +6 −2
  18. Documentation/DocBook/media/selection.png.b64 +206 −0
  19. Documentation/DocBook/media/v4l/biblio.xml +0 −8
  20. Documentation/DocBook/media/v4l/common.xml +2 −8
  21. Documentation/DocBook/media/v4l/compat.xml +21 −9
  22. Documentation/DocBook/media/v4l/controls.xml +29 −14
  23. Documentation/DocBook/media/v4l/dev-capture.xml +0 −8
  24. Documentation/DocBook/media/v4l/dev-codec.xml +0 −8
  25. Documentation/DocBook/media/v4l/dev-effect.xml +0 −8
  26. Documentation/DocBook/media/v4l/dev-event.xml +0 −8
  27. Documentation/DocBook/media/v4l/dev-osd.xml +0 −8
  28. Documentation/DocBook/media/v4l/dev-output.xml +0 −8
  29. Documentation/DocBook/media/v4l/dev-overlay.xml +0 −8
  30. Documentation/DocBook/media/v4l/dev-radio.xml +0 −8
  31. Documentation/DocBook/media/v4l/dev-raw-vbi.xml +0 −8
  32. Documentation/DocBook/media/v4l/dev-rds.xml +4 −12
  33. Documentation/DocBook/media/v4l/dev-sliced-vbi.xml +0 −9
  34. Documentation/DocBook/media/v4l/dev-teletext.xml +0 −8
  35. Documentation/DocBook/media/v4l/driver.xml +0 −8
  36. Documentation/DocBook/media/v4l/func-close.xml +0 −8
  37. Documentation/DocBook/media/v4l/func-ioctl.xml +0 −8
  38. Documentation/DocBook/media/v4l/func-mmap.xml +0 −8
  39. Documentation/DocBook/media/v4l/func-munmap.xml +0 −8
  40. Documentation/DocBook/media/v4l/func-open.xml +0 −8
  41. Documentation/DocBook/media/v4l/func-poll.xml +0 −8
  42. Documentation/DocBook/media/v4l/func-read.xml +0 −8
  43. Documentation/DocBook/media/v4l/func-select.xml +0 −8
  44. Documentation/DocBook/media/v4l/func-write.xml +0 −8
  45. Documentation/DocBook/media/v4l/io.xml +0 −8
  46. Documentation/DocBook/media/v4l/libv4l.xml +0 −7
  47. Documentation/DocBook/media/v4l/pixfmt-grey.xml +0 −8
  48. Documentation/DocBook/media/v4l/pixfmt-m420.xml +0 −8
  49. Documentation/DocBook/media/v4l/pixfmt-nv12.xml +0 −8
  50. Documentation/DocBook/media/v4l/pixfmt-nv12m.xml +0 −8
  51. Documentation/DocBook/media/v4l/pixfmt-nv12mt.xml +0 −8
  52. Documentation/DocBook/media/v4l/pixfmt-nv16.xml +0 −8
  53. Documentation/DocBook/media/v4l/pixfmt-nv24.xml +121 −0
  54. Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml +5 −10
  55. Documentation/DocBook/media/v4l/pixfmt-packed-yuv.xml +0 −8
  56. Documentation/DocBook/media/v4l/pixfmt-sbggr16.xml +0 −8
  57. Documentation/DocBook/media/v4l/pixfmt-sbggr8.xml +0 −8
  58. Documentation/DocBook/media/v4l/pixfmt-sgbrg8.xml +0 −8
  59. Documentation/DocBook/media/v4l/pixfmt-sgrbg8.xml +0 −8
  60. Documentation/DocBook/media/v4l/pixfmt-uyvy.xml +0 −8
  61. Documentation/DocBook/media/v4l/pixfmt-vyuy.xml +0 −8
  62. Documentation/DocBook/media/v4l/pixfmt-y16.xml +0 −8
  63. Documentation/DocBook/media/v4l/pixfmt-y41p.xml +0 −8
  64. Documentation/DocBook/media/v4l/pixfmt-yuv410.xml +0 −8
  65. Documentation/DocBook/media/v4l/pixfmt-yuv411p.xml +0 −8
  66. Documentation/DocBook/media/v4l/pixfmt-yuv420.xml +0 −8
  67. Documentation/DocBook/media/v4l/pixfmt-yuv420m.xml +0 −8
  68. Documentation/DocBook/media/v4l/pixfmt-yuv422p.xml +0 −8
  69. Documentation/DocBook/media/v4l/pixfmt-yuyv.xml +0 −8
  70. Documentation/DocBook/media/v4l/pixfmt-yvyu.xml +0 −8
  71. Documentation/DocBook/media/v4l/pixfmt.xml +6 −8
  72. Documentation/DocBook/media/v4l/selection-api.xml +321 −0
  73. Documentation/DocBook/media/v4l/v4l2.xml +1 −0
  74. Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml +0 −8
  75. Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml +0 −8
  76. Documentation/DocBook/media/v4l/vidioc-enuminput.xml +0 −8
  77. Documentation/DocBook/media/v4l/vidioc-enumoutput.xml +0 −8
  78. Documentation/DocBook/media/v4l/vidioc-enumstd.xml +0 −8
  79. Documentation/DocBook/media/v4l/vidioc-g-ctrl.xml +0 −8
  80. Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml +13 −12
  81. Documentation/DocBook/media/v4l/vidioc-g-fbuf.xml +21 −14
  82. Documentation/DocBook/media/v4l/vidioc-g-frequency.xml +5 −10
  83. Documentation/DocBook/media/v4l/vidioc-g-input.xml +2 −2
  84. Documentation/DocBook/media/v4l/vidioc-g-modulator.xml +0 −8
  85. Documentation/DocBook/media/v4l/vidioc-g-output.xml +3 −2
  86. Documentation/DocBook/media/v4l/vidioc-g-priority.xml +0 −8
  87. Documentation/DocBook/media/v4l/vidioc-g-selection.xml +304 −0
  88. Documentation/DocBook/media/v4l/vidioc-g-std.xml +0 −8
  89. Documentation/DocBook/media/v4l/vidioc-g-tuner.xml +10 −8
  90. Documentation/DocBook/media/v4l/vidioc-querybuf.xml +0 −8
  91. Documentation/DocBook/media/v4l/vidioc-queryctrl.xml +0 −8
  92. Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml +0 −8
  93. Documentation/DocBook/writing-an-alsa-driver.tmpl +1 −1
  94. Documentation/HOWTO +2 −2
  95. Documentation/acpi/apei/einj.txt +44 −11
  96. Documentation/arm/memory.txt +5 −6
  97. Documentation/cgroups/cgroups.txt +21 −30
  98. Documentation/cgroups/memory.txt +32 −5
  99. Documentation/cgroups/net_prio.txt +53 −0
  100. Documentation/coccinelle.txt +8 −2
  101. Documentation/cpu-freq/governors.txt +1 −3
  102. Documentation/development-process/5.Posting +4 −4
  103. Documentation/devices.txt +4 −1
  104. Documentation/devicetree/bindings/arm/fsl.txt +6 −2
  105. Documentation/devicetree/bindings/arm/gic.txt +4 −0
  106. Documentation/devicetree/bindings/arm/insignal-boards.txt +8 −0
  107. Documentation/devicetree/bindings/arm/samsung-boards.txt +8 −0
  108. Documentation/devicetree/bindings/arm/tegra.txt +14 −0
  109. Documentation/devicetree/bindings/arm/vic.txt +29 −0
  110. Documentation/devicetree/bindings/c6x/clocks.txt +40 −0
  111. Documentation/devicetree/bindings/c6x/dscr.txt +127 −0
  112. Documentation/devicetree/bindings/c6x/emifa.txt +62 −0
  113. Documentation/devicetree/bindings/c6x/interrupt.txt +104 −0
  114. Documentation/devicetree/bindings/c6x/soc.txt +28 −0
  115. Documentation/devicetree/bindings/c6x/timer64.txt +26 −0
  116. Documentation/devicetree/bindings/dma/arm-pl330.txt +30 −0
  117. Documentation/devicetree/bindings/dma/atmel-dma.txt +14 −0
  118. Documentation/devicetree/bindings/gpio/gpio-samsung.txt +40 −0
  119. Documentation/devicetree/bindings/i2c/i2c-designware.txt +22 −0
  120. Documentation/devicetree/bindings/i2c/omap-i2c.txt +30 −0
  121. Documentation/devicetree/bindings/i2c/trivial-devices.txt +58 −0
  122. Documentation/devicetree/bindings/input/samsung-keypad.txt +88 −0
  123. Documentation/devicetree/bindings/input/tegra-kbc.txt +18 −0
  124. Documentation/devicetree/bindings/mfd/mc13xxx.txt +78 −0
  125. Documentation/devicetree/bindings/mfd/twl-familly.txt +47 −0
  126. Documentation/devicetree/bindings/mtd/gpio-control-nand.txt +44 −0
  127. Documentation/devicetree/bindings/net/calxeda-xgmac.txt +15 −0
  128. Documentation/devicetree/bindings/net/can/cc770.txt +53 −0
  129. Documentation/devicetree/bindings/net/macb.txt +25 −0
  130. Documentation/devicetree/bindings/nvec/nvec_nvidia.txt +9 −0
  131. Documentation/devicetree/bindings/power_supply/olpc_battery.txt +5 −0
  132. Documentation/devicetree/bindings/power_supply/sbs_sbs-battery.txt +23 −0
  133. Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt +163 −0
  134. Documentation/devicetree/bindings/powerpc/fsl/srio.txt +103 −0
  135. Documentation/devicetree/bindings/regulator/fixed-regulator.txt +29 −0
  136. Documentation/devicetree/bindings/regulator/regulator.txt +54 −0
  137. Documentation/devicetree/bindings/resource-names.txt +54 −0
  138. Documentation/devicetree/bindings/rtc/s3c-rtc.txt +20 −0
  139. Documentation/devicetree/bindings/rtc/twl-rtc.txt +12 −0
  140. Documentation/devicetree/bindings/serial/omap_serial.txt +10 −0
  141. Documentation/devicetree/bindings/serial/samsung_uart.txt +14 −0
  142. Documentation/devicetree/bindings/sound/tegra-audio-wm8903.txt +71 −0
  143. Documentation/devicetree/bindings/sound/tegra20-das.txt +12 −0
  144. Documentation/devicetree/bindings/sound/tegra20-i2s.txt +17 −0
  145. Documentation/devicetree/bindings/sound/wm8903.txt +50 −0
  146. Documentation/devicetree/bindings/sound/wm8994.txt +18 −0
  147. Documentation/devicetree/bindings/usb/tegra-usb.txt +13 −0
  148. Documentation/devicetree/bindings/vendor-prefixes.txt +5 −0
  149. Documentation/digsig.txt +96 −0
  150. Documentation/dma-buf-sharing.txt +228 −0
  151. Documentation/dmaengine.txt +8 −0
  152. Documentation/dontdiff +0 −1
  153. Documentation/driver-model/devres.txt +1 −0
  154. Documentation/dvb/get_dvb_firmware +40 −2
  155. Documentation/fb/api.txt +306 −0
  156. Documentation/feature-removal-schedule.txt +27 −68
  157. Documentation/filesystems/Locking +4 −4
  158. Documentation/filesystems/ceph.txt +13 −5
  159. Documentation/filesystems/configfs/configfs.txt +1 −1
  160. Documentation/filesystems/debugfs.txt +43 −13
  161. Documentation/filesystems/ext4.txt +7 −0
  162. Documentation/filesystems/nfs/00-INDEX +2 −0
  163. Documentation/filesystems/nfs/fault_injection.txt +69 −0
  164. Documentation/filesystems/proc.txt +42 −0
  165. Documentation/filesystems/squashfs.txt +3 −3
  166. Documentation/filesystems/sysfs.txt +1 −1
  167. Documentation/filesystems/vfs.txt +4 −4
  168. Documentation/hwmon/it87 +10 −3
  169. Documentation/hwmon/lm63 +17 −4
  170. Documentation/hwmon/pmbus +2 −3
  171. Documentation/hwmon/sysfs-interface +1 −1
  172. Documentation/hwmon/zl6100 +15 −0
  173. Documentation/input/alps.txt +188 −0
  174. Documentation/input/gpio-tilt.txt +103 −0
  175. Documentation/input/sentelic.txt +333 −31
  176. Documentation/ioctl/ioctl-number.txt +1 −0
  177. Documentation/kbuild/makefiles.txt +32 −18
  178. Documentation/kdump/kdump.txt +32 −3
  179. Documentation/kernel-parameters.txt +65 −10
  180. Documentation/kmemleak.txt +3 −0
  181. Documentation/md.txt +18 −4
  182. Documentation/mmc/mmc-dev-attrs.txt +10 −0
  183. Documentation/mmc/mmc-dev-parts.txt +13 −0
  184. Documentation/networking/00-INDEX +2 −0
  185. Documentation/networking/batman-adv.txt +4 −3
  186. Documentation/networking/bonding.txt +17 −0
  187. Documentation/networking/ieee802154.txt +27 −0
  188. Documentation/networking/ifenslave.c +2 −0
  189. Documentation/networking/ip-sysctl.txt +13 −0
  190. Documentation/networking/openvswitch.txt +195 −0
  191. Documentation/networking/packet_mmap.txt +1 −1
  192. Documentation/networking/scaling.txt +4 −4
  193. Documentation/networking/stmmac.txt +9 −7
  194. Documentation/networking/team.txt +2 −0
  195. Documentation/pinctrl.txt +178 −80
  196. Documentation/power/charger-manager.txt +163 −0
  197. Documentation/power/devices.txt +21 −16
  198. Documentation/power/freezing-of-tasks.txt +32 −7
  199. Documentation/power/regulator/regulator.txt +1 −1
  200. Documentation/power/runtime_pm.txt +68 −62
  201. Documentation/s390/Debugging390.txt +0 −34
  202. Documentation/scsi/53c700.txt +1 −20
  203. Documentation/scsi/ChangeLog.megaraid_sas +10 −0
  204. Documentation/scsi/LICENSE.qla4xxx +1 −22
  205. Documentation/security/00-INDEX +2 −0
  206. Documentation/security/LSM.txt +34 −0
  207. Documentation/security/credentials.txt +3 −3
  208. Documentation/serial/driver +1 −1
  209. Documentation/sound/alsa/HD-Audio-Models.txt +1 −14
  210. Documentation/sound/alsa/compress_offload.txt +188 −0
  211. Documentation/sysctl/kernel.txt +22 −0
  212. Documentation/target/tcm_mod_builder.py +15 −45
  213. Documentation/trace/events-kmem.txt +6 −6
  214. Documentation/trace/postprocess/trace-pagealloc-postprocess.pl +10 −10
  215. Documentation/trace/tracepoint-analysis.txt +20 −20
  216. Documentation/usb/usbmon.txt +9 −5
  217. Documentation/vgaarbiter.txt +1 −1
  218. Documentation/video4linux/CARDLIST.au0828 +1 −1
  219. Documentation/video4linux/CARDLIST.bttv +2 −1
  220. Documentation/video4linux/CARDLIST.cx23885 +3 −0
  221. Documentation/video4linux/CARDLIST.cx88 +2 −0
  222. Documentation/video4linux/CARDLIST.em28xx +7 −3
  223. Documentation/video4linux/CARDLIST.saa7134 +1 −0
  224. Documentation/video4linux/CARDLIST.saa7164 +2 −0
  225. Documentation/video4linux/gspca.txt +2 −0
  226. Documentation/video4linux/v4l2-controls.txt +0 −21
  227. Documentation/video4linux/v4l2-framework.txt +11 −0
  228. Documentation/virtual/kvm/api.txt +25 −0
  229. Documentation/vm/slub.txt +5 −2
  230. Documentation/watchdog/00-INDEX +2 −0
  231. Documentation/watchdog/convert_drivers_to_kernel_api.txt +19 −0
  232. Documentation/watchdog/watchdog-kernel-api.txt +9 −1
  233. MAINTAINERS +112 −105
  234. Makefile +7 −4
  235. arch/Kconfig +14 −0
  236. arch/alpha/Kconfig +1 −4
  237. arch/alpha/include/asm/ipcbuf.h +1 −28
  238. arch/alpha/include/asm/socket.h +3 −0
  239. arch/alpha/include/asm/thread_info.h +0 −2
  240. arch/alpha/include/asm/types.h +0 −5
  241. arch/alpha/kernel/pci-noop.c +0 −12
  242. arch/alpha/kernel/pci.c +21 −45
  243. arch/arm/Kconfig +48 −22
  244. arch/arm/Kconfig.debug +45 −0
  245. arch/arm/Makefile +0 −2
  246. arch/arm/boot/Makefile +4 −2
  247. arch/arm/boot/compressed/Makefile +2 −1
  248. arch/arm/boot/compressed/head.S +1 −0
  249. arch/arm/boot/dts/at91sam9g20.dtsi +7 −0
  250. arch/arm/boot/dts/at91sam9g45.dtsi +7 −0
  251. arch/arm/boot/dts/at91sam9m10g45ek.dts +5 −0
  252. arch/arm/boot/dts/exynos4210-origen.dts +137 −0
  253. arch/arm/boot/dts/exynos4210-smdkv310.dts +182 −0
  254. arch/arm/boot/dts/exynos4210.dtsi +397 −0
  255. arch/arm/boot/dts/highbank.dts +12 −0
  256. arch/arm/boot/dts/imx51-babbage.dts +8 −9
  257. arch/arm/boot/dts/imx51.dtsi +10 −10
  258. arch/arm/boot/dts/imx53-ard.dts +9 −9
  259. arch/arm/boot/dts/imx53-evk.dts +8 −9
  260. arch/arm/boot/dts/imx53-qsb.dts +9 −9
  261. arch/arm/boot/dts/imx53-smd.dts +9 −10
  262. arch/arm/boot/dts/imx53.dtsi +17 −17
  263. arch/arm/boot/dts/imx6q-arm2.dts +6 −6
  264. arch/arm/boot/dts/imx6q-sabrelite.dts +49 −0
  265. arch/arm/boot/dts/imx6q.dtsi +17 −17
  266. arch/arm/boot/dts/omap2.dtsi +67 −0
  267. arch/arm/boot/dts/omap3.dtsi +31 −0
  268. arch/arm/boot/dts/omap4.dtsi +28 −0
  269. arch/arm/boot/dts/tegra-cardhu.dts +36 −0
  270. arch/arm/boot/dts/tegra-harmony.dts +24 −5
  271. arch/arm/boot/dts/tegra-paz00.dts +77 −0
  272. arch/arm/boot/dts/tegra-seaboard.dts +69 −5
  273. arch/arm/boot/dts/tegra-trimslice.dts +65 −0
  274. arch/arm/boot/dts/tegra-ventana.dts +40 −5
  275. arch/arm/boot/dts/tegra20.dtsi +46 −25
  276. arch/arm/boot/dts/tegra30.dtsi +127 −0
  277. arch/arm/boot/dts/testcases/tests-phandle.dtsi +37 −0
  278. arch/arm/boot/dts/testcases/tests.dtsi +1 −0
  279. arch/arm/boot/dts/usb_a9g20.dts +5 −0
  280. arch/arm/boot/dts/versatile-pb.dts +2 −0
  281. arch/arm/common/Kconfig +6 −0
  282. arch/arm/common/gic.c +141 −24
  283. arch/arm/common/it8152.c +6 −3
  284. arch/arm/common/pl330.c +7 −1
  285. arch/arm/common/timer-sp.c +1 −6
  286. arch/arm/common/via82c505.c +2 −1
  287. arch/arm/common/vic.c +118 −30
  288. arch/arm/configs/bonito_defconfig +72 −0
  289. arch/arm/configs/imx_v4_v5_defconfig +0 −1
  290. arch/arm/configs/kota2_defconfig +122 −0
  291. arch/arm/configs/marzen_defconfig +87 −0
  292. arch/arm/configs/omap1_defconfig +0 −1
  293. arch/arm/configs/pcontrol_g20_defconfig +0 −175
  294. arch/arm/configs/tegra_defconfig +4 −5
  295. arch/arm/include/asm/assembler.h +11 −0
  296. arch/arm/include/asm/bug.h +0 −1
  297. arch/arm/include/asm/cti.h +179 −0
  298. arch/arm/include/asm/edac.h +48 −0
  299. arch/arm/include/asm/entry-macro-vic2.S +0 −57
  300. arch/arm/include/asm/gpio.h +4 −0
  301. arch/arm/include/asm/hardirq.h +0 −17
  302. arch/arm/include/asm/hardware/entry-macro-gic.S +0 −60
  303. arch/arm/include/asm/hardware/gic.h +9 −17
  304. arch/arm/include/asm/hardware/iop3xx.h +1 −0
  305. arch/arm/include/asm/hardware/vic.h +9 −1
  306. arch/arm/include/asm/hwcap.h +3 −1
  307. arch/arm/include/asm/idmap.h +14 −0
  308. arch/arm/include/asm/io.h +1 −1
  309. arch/arm/include/asm/ipcbuf.h +1 −29
  310. arch/arm/include/asm/kprobes.h +0 −1
  311. arch/arm/include/asm/mach/arch.h +6 −5
  312. arch/arm/include/asm/mach/pci.h +1 −1
  313. arch/arm/include/asm/mach/time.h +0 −2
  314. arch/arm/include/asm/memblock.h +2 −0
  315. arch/arm/include/asm/opcodes.h +20 −0
  316. arch/arm/include/asm/page.h +4 −0
  317. arch/arm/include/asm/pci.h +0 −12
  318. arch/arm/include/asm/perf_event.h +0 −3
  319. arch/arm/include/asm/pgalloc.h +25 −1
  320. arch/arm/include/asm/pgtable-2level.h +41 −0
  321. arch/arm/include/asm/pgtable-3level-hwdef.h +77 −0
  322. arch/arm/include/asm/pgtable-3level-types.h +70 −0
  323. arch/arm/include/asm/pgtable-3level.h +155 −0
  324. arch/arm/include/asm/pgtable-hwdef.h +4 −0
  325. arch/arm/include/asm/pgtable.h +8 −47
  326. arch/arm/include/asm/pmu.h +12 −3
  327. arch/arm/include/asm/proc-fns.h +21 −0
  328. arch/arm/include/asm/processor.h +2 −0
  329. arch/arm/include/asm/prom.h +0 −1
  330. arch/arm/include/asm/ptrace.h +5 −0
  331. arch/arm/include/asm/sched_clock.h +1 −107
  332. arch/arm/include/asm/setup.h +1 −5
  333. arch/arm/include/asm/socket.h +3 −0
  334. arch/arm/include/asm/swab.h +8 −4
  335. arch/arm/include/asm/system.h +9 −1
  336. arch/arm/include/asm/thread_info.h +6 −2
  337. arch/arm/include/asm/tlb.h +11 −1
  338. arch/arm/include/asm/types.h +0 −6
  339. arch/arm/include/asm/unified.h +2 −2
  340. arch/arm/include/asm/unistd.h +3 −1
  341. arch/arm/kernel/Makefile +1 −1
  342. arch/arm/kernel/bios32.c +15 −19
  343. arch/arm/kernel/entry-armv.S +3 −4
  344. arch/arm/kernel/entry-common.S +2 −2
  345. arch/arm/kernel/head.S +63 −10
  346. arch/arm/kernel/hw_breakpoint.c +4 −4
  347. arch/arm/kernel/kprobes-test.c +7 −59
  348. arch/arm/kernel/leds.c +11 −10
  349. arch/arm/kernel/machine_kexec.c +3 −12
  350. arch/arm/kernel/opcodes.c +72 −0
  351. arch/arm/kernel/perf_event.c +9 −10
  352. arch/arm/kernel/perf_event_v6.c +18 −14
  353. arch/arm/kernel/perf_event_v7.c +152 −249
  354. arch/arm/kernel/perf_event_xscale.c +9 −7
  355. arch/arm/kernel/process.c +54 −23
  356. arch/arm/kernel/ptrace.c +11 −5
  357. arch/arm/kernel/sched_clock.c +105 −13
  358. arch/arm/kernel/setup.c +13 −2
  359. arch/arm/kernel/sleep.S +4 −0
  360. arch/arm/kernel/smp.c +6 −30
  361. arch/arm/kernel/smp_twd.c +88 −7
  362. arch/arm/kernel/suspend.c +3 −15
  363. arch/arm/kernel/swp_emulate.c +16 −0
  364. arch/arm/kernel/tcm.c +19 −3
  365. arch/arm/kernel/vmlinux.lds.S +7 −0
  366. arch/arm/lib/Makefile +2 −1
  367. arch/arm/lib/call_with_stack.S +44 −0
  368. arch/arm/mach-at91/Kconfig +22 −2
  369. arch/arm/mach-at91/at91cap9.c +23 −21
  370. arch/arm/mach-at91/at91cap9_devices.c +29 −20
  371. arch/arm/mach-at91/at91rm9200.c +17 −11
  372. arch/arm/mach-at91/at91rm9200_devices.c +31 −17
  373. arch/arm/mach-at91/at91rm9200_time.c +5 −3
  374. arch/arm/mach-at91/at91sam9260.c +20 −18
  375. arch/arm/mach-at91/at91sam9260_devices.c +32 −23
  376. arch/arm/mach-at91/at91sam9261.c +17 −17
  377. arch/arm/mach-at91/at91sam9261_devices.c +21 −12
  378. arch/arm/mach-at91/at91sam9263.c +25 −22
  379. arch/arm/mach-at91/at91sam9263_devices.c +34 −25
  380. arch/arm/mach-at91/at91sam926x_time.c +28 −10
  381. arch/arm/mach-at91/at91sam9_alt_reset.S +2 −7
  382. arch/arm/mach-at91/at91sam9g45.c +25 −23
  383. arch/arm/mach-at91/at91sam9g45_devices.c +46 −23
  384. arch/arm/mach-at91/at91sam9rl.c +19 −19
  385. arch/arm/mach-at91/at91sam9rl_devices.c +26 −17
  386. arch/arm/mach-at91/board-1arm.c +3 −1
  387. arch/arm/mach-at91/board-afeb-9260v1.c +8 −2
  388. arch/arm/mach-at91/board-cam60.c +5 −3
  389. arch/arm/mach-at91/board-cap9adk.c +12 −9
  390. arch/arm/mach-at91/board-carmeva.c +6 −3
  391. arch/arm/mach-at91/board-cpu9krea.c +10 −4
  392. arch/arm/mach-at91/board-cpuat91.c +6 −1
  393. arch/arm/mach-at91/board-csb337.c +5 −2
  394. arch/arm/mach-at91/board-csb637.c +3 −1
  395. arch/arm/mach-at91/board-dt.c +2 −1
  396. arch/arm/mach-at91/board-eb9200.c +8 −3
  397. arch/arm/mach-at91/board-ecbat91.c +6 −1
  398. arch/arm/mach-at91/board-eco920.c +6 −1
  399. arch/arm/mach-at91/board-flexibity.c +4 −1
  400. arch/arm/mach-at91/board-foxg20.c +7 −2
  401. arch/arm/mach-at91/board-gsia18s.c +5 −2
  402. arch/arm/mach-at91/board-kafa.c +3 −1
  403. arch/arm/mach-at91/board-kb9202.c +6 −2
  404. arch/arm/mach-at91/board-neocore926.c +6 −3
  405. arch/arm/mach-at91/board-pcontrol-g20.c +5 −3
  406. arch/arm/mach-at91/board-picotux200.c +4 −1
  407. arch/arm/mach-at91/board-qil-a9260.c +10 −8
  408. arch/arm/mach-at91/board-rm9200dk.c +9 −4
  409. arch/arm/mach-at91/board-rm9200ek.c +4 −1
  410. arch/arm/mach-at91/board-rsi-ews.c +3 −1
  411. arch/arm/mach-at91/board-sam9-l9260.c +7 −5
  412. arch/arm/mach-at91/board-sam9260ek.c +9 −7
  413. arch/arm/mach-at91/board-sam9261ek.c +9 −4
  414. arch/arm/mach-at91/board-sam9263ek.c +7 −5
  415. arch/arm/mach-at91/board-sam9g20ek.c +10 −3
  416. arch/arm/mach-at91/board-sam9m10g45ek.c +6 −2
  417. arch/arm/mach-at91/board-sam9rlek.c +5 −4
  418. arch/arm/mach-at91/board-snapper9260.c +8 −2
  419. arch/arm/mach-at91/board-stamp9g20.c +12 −4
  420. arch/arm/mach-at91/board-usb-a926x.c +8 −6
  421. arch/arm/mach-at91/board-yl-9200.c +6 −3
  422. arch/arm/mach-at91/generic.h +6 −4
  423. arch/arm/mach-at91/gpio.c +49 −36
  424. arch/arm/mach-at91/include/mach/at91_aic.h +30 −18
  425. arch/arm/mach-at91/include/mach/at91_dbgu.h +1 −1
  426. arch/arm/mach-at91/include/mach/at91_pit.h +4 −4
  427. arch/arm/mach-at91/include/mach/at91_rtc.h +12 −12
  428. arch/arm/mach-at91/include/mach/at91_shdwc.h +13 −3
  429. arch/arm/mach-at91/include/mach/at91cap9.h +13 −14
  430. arch/arm/mach-at91/include/mach/at91rm9200.h +7 −7
  431. arch/arm/mach-at91/include/mach/at91sam9260.h +11 −12
  432. arch/arm/mach-at91/include/mach/at91sam9261.h +10 −10
  433. arch/arm/mach-at91/include/mach/at91sam9263.h +16 −17
  434. arch/arm/mach-at91/include/mach/at91sam9_smc.h +6 −11
  435. arch/arm/mach-at91/include/mach/at91sam9g45.h +15 −15
  436. arch/arm/mach-at91/include/mach/at91sam9rl.h +14 −15
  437. arch/arm/mach-at91/include/mach/at91x40.h +0 −1
  438. arch/arm/mach-at91/include/mach/board.h +16 −26
  439. arch/arm/mach-at91/include/mach/debug-macro.S +8 −2
  440. arch/arm/mach-at91/include/mach/entry-macro.S +6 −5
  441. arch/arm/mach-at91/include/mach/gpio.h +167 −169
  442. arch/arm/mach-at91/include/mach/hardware.h +12 −0
  443. arch/arm/mach-at91/include/mach/io.h +0 −8
  444. arch/arm/mach-at91/include/mach/irqs.h +1 −1
  445. arch/arm/mach-at91/include/mach/system.h +0 −9
  446. arch/arm/mach-at91/include/mach/timex.h +5 −60
  447. arch/arm/mach-at91/include/mach/uncompress.h +4 −2
  448. arch/arm/mach-at91/irq.c +22 −16
  449. arch/arm/mach-at91/pm.c +7 −4
  450. arch/arm/mach-at91/sam9_smc.c +41 −21
  451. arch/arm/mach-at91/sam9_smc.h +2 −1
  452. arch/arm/mach-at91/setup.c +21 −23
  453. arch/arm/mach-at91/soc.h +1 −0
  454. arch/arm/mach-bcmring/arch.c +24 −1
  455. arch/arm/mach-bcmring/core.c +0 −1
  456. arch/arm/mach-bcmring/dma.c +1 −1
  457. arch/arm/mach-bcmring/include/mach/system.h +0 −26
  458. arch/arm/mach-bcmring/include/mach/vmalloc.h +0 −25
  459. arch/arm/mach-clps711x/Makefile +1 −1
  460. arch/arm/mach-clps711x/autcpu12.c +1 −0
  461. arch/arm/mach-clps711x/cdb89712.c +1 −0
  462. arch/arm/mach-clps711x/ceiva.c +1 −0
  463. arch/arm/mach-clps711x/clep7312.c +1 −0
  464. arch/arm/mach-clps711x/common.c +92 −8
  465. arch/arm/mach-clps711x/common.h +1 −0
  466. arch/arm/mach-clps711x/edb7211-arch.c +1 −0
  467. arch/arm/mach-clps711x/fortunet.c +1 −0
  468. arch/arm/mach-clps711x/include/mach/system.h +0 −5
  469. arch/arm/mach-clps711x/include/mach/vmalloc.h +0 −20
  470. arch/arm/mach-clps711x/mm.c +0 −48
  471. arch/arm/mach-clps711x/p720t.c +1 −0
  472. arch/arm/mach-clps711x/time.c +0 −84
  473. arch/arm/mach-cns3xxx/cns3420vb.c +3 −0
  474. arch/arm/mach-cns3xxx/core.h +1 −0
  475. arch/arm/mach-cns3xxx/include/mach/entry-macro.S +0 −2
  476. arch/arm/mach-cns3xxx/include/mach/system.h +0 −3
  477. arch/arm/mach-cns3xxx/include/mach/vmalloc.h +0 −11
  478. arch/arm/mach-cns3xxx/pcie.c +4 −4
  479. arch/arm/mach-cns3xxx/pm.c +2 −2
  480. arch/arm/mach-davinci/Makefile +1 −1
  481. arch/arm/mach-davinci/board-da830-evm.c +1 −0
  482. arch/arm/mach-davinci/board-da850-evm.c +2 −1
  483. arch/arm/mach-davinci/board-dm355-evm.c +1 −0
  484. arch/arm/mach-davinci/board-dm355-leopard.c +1 −0
  485. arch/arm/mach-davinci/board-dm365-evm.c +1 −0
  486. arch/arm/mach-davinci/board-dm644x-evm.c +1 −0
  487. arch/arm/mach-davinci/board-dm646x-evm.c +2 −0
  488. arch/arm/mach-davinci/board-mityomapl138.c +1 −0
  489. arch/arm/mach-davinci/board-neuros-osd2.c +1 −0
  490. arch/arm/mach-davinci/board-omapl138-hawk.c +1 −0
  491. arch/arm/mach-davinci/board-sffsdr.c +1 −0
  492. arch/arm/mach-davinci/board-tnetv107x-evm.c +1 −0
  493. arch/arm/mach-davinci/clock.c +3 −10
  494. arch/arm/mach-davinci/clock.h +5 −5
  495. arch/arm/mach-davinci/common.c +0 −3
  496. arch/arm/mach-davinci/da830.c +0 −1
  497. arch/arm/mach-davinci/da850.c +0 −1
  498. arch/arm/mach-davinci/devices-da8xx.c +5 −0
  499. arch/arm/mach-davinci/devices.c +5 −0
  500. arch/arm/mach-davinci/dm355.c +0 −1
  501. arch/arm/mach-davinci/dm365.c +0 −1
  502. arch/arm/mach-davinci/dm644x.c +2 −3
  503. arch/arm/mach-davinci/dm646x.c +0 −1
  504. arch/arm/mach-davinci/include/mach/common.h +1 −2
  505. arch/arm/mach-davinci/include/mach/da8xx.h +1 −0
  506. arch/arm/mach-davinci/include/mach/dm646x.h +1 −52
  507. arch/arm/mach-davinci/include/mach/io.h +0 −8
  508. arch/arm/mach-davinci/include/mach/system.h +0 −6
  509. arch/arm/mach-davinci/include/mach/tnetv107x.h +1 −0
  510. arch/arm/mach-davinci/include/mach/vmalloc.h +0 −14
  511. arch/arm/mach-davinci/io.c +0 −48
  512. arch/arm/mach-davinci/tnetv107x.c +5 −2
  513. arch/arm/mach-dove/addr-map.c +48 −73
  514. arch/arm/mach-dove/cm-a510.c +1 −0
  515. arch/arm/mach-dove/common.c +22 −10
  516. arch/arm/mach-dove/common.h +1 −1
  517. arch/arm/mach-dove/dove-db-setup.c +1 −0
  518. arch/arm/mach-dove/include/mach/dove.h +0 −2
  519. arch/arm/mach-dove/include/mach/system.h +0 −19
  520. arch/arm/mach-dove/include/mach/vmalloc.h +0 −5
  521. arch/arm/mach-dove/pcie.c +6 −7
  522. arch/arm/mach-ebsa110/core.c +7 −1
  523. arch/arm/mach-ebsa110/include/mach/system.h +0 −2
  524. arch/arm/mach-ebsa110/include/mach/vmalloc.h +0 −10
  525. arch/arm/mach-ep93xx/adssphere.c +3 −0
  526. arch/arm/mach-ep93xx/core.c +12 −0
  527. arch/arm/mach-ep93xx/edb93xx.c +17 −0
  528. arch/arm/mach-ep93xx/gesbc9312.c +3 −0
  529. arch/arm/mach-ep93xx/include/mach/dma.h +3 −3
  530. arch/arm/mach-ep93xx/include/mach/entry-macro.S +0 −42
  531. arch/arm/mach-ep93xx/include/mach/platform.h +2 −0
  532. arch/arm/mach-ep93xx/include/mach/system.h +0 −17
  533. arch/arm/mach-ep93xx/include/mach/vmalloc.h +0 −5
  534. arch/arm/mach-ep93xx/micro9.c +9 −0
  535. arch/arm/mach-ep93xx/simone.c +3 −0
  536. arch/arm/mach-ep93xx/snappercl15.c +3 −0
  537. arch/arm/mach-ep93xx/ts72xx.c +3 −0
  538. arch/arm/mach-ep93xx/vision_ep9307.c +1 −0
  539. arch/arm/mach-exynos/Kconfig +38 −0
  540. arch/arm/mach-exynos/Makefile +11 −4
  541. arch/arm/mach-exynos/clock-exynos4210.c +2 −1
  542. arch/arm/mach-exynos/clock-exynos4212.c +2 −1
  543. arch/arm/mach-exynos/clock.c +188 −117
  544. arch/arm/mach-exynos/common.c +699 −0
  545. arch/arm/mach-exynos/common.h +41 −0
  546. arch/arm/mach-exynos/cpu.c +0 −293
  547. arch/arm/mach-exynos/dev-ohci.c +52 −0
  548. arch/arm/mach-exynos/dma.c +68 −161
  549. arch/arm/mach-exynos/headsmp.S +2 −0
  550. arch/arm/mach-exynos/include/mach/cpufreq.h +34 −0
  551. arch/arm/mach-exynos/include/mach/entry-macro.S +0 −75
  552. arch/arm/mach-exynos/include/mach/irqs.h +8 −3
  553. arch/arm/mach-exynos/include/mach/map.h +9 −11
  554. arch/arm/mach-exynos/include/mach/ohci.h +21 −0
  555. arch/arm/mach-exynos/include/mach/spi-clocks.h +16 −0
  556. arch/arm/mach-exynos/include/mach/system.h +0 −2
  557. arch/arm/mach-exynos/include/mach/vmalloc.h +0 −22
  558. arch/arm/mach-exynos/init.c +0 −42
  559. arch/arm/mach-exynos/irq-combiner.c +0 −124
  560. arch/arm/mach-exynos/irq-eint.c +0 −237
  561. arch/arm/mach-exynos/mach-armlex4210.c +6 −2
  562. arch/arm/mach-exynos/mach-exynos4-dt.c +85 −0
  563. arch/arm/mach-exynos/mach-nuri.c +8 −9
  564. arch/arm/mach-exynos/mach-origen.c +21 −3
  565. arch/arm/mach-exynos/mach-smdk4x12.c +8 −2
  566. arch/arm/mach-exynos/mach-smdkv310.c +22 −5
  567. arch/arm/mach-exynos/mach-universal_c210.c +9 −9
  568. arch/arm/mach-exynos/platsmp.c +3 −30
  569. arch/arm/mach-exynos/pm.c +8 −26
  570. arch/arm/mach-exynos/setup-sdhci.c +0 −22
  571. arch/arm/mach-exynos/setup-spi.c +72 −0
  572. arch/arm/mach-exynos/setup-usb-phy.c +15 −0
  573. arch/arm/mach-footbridge/cats-hw.c +2 −1
  574. arch/arm/mach-footbridge/common.c +27 −0
  575. arch/arm/mach-footbridge/common.h +1 −0
  576. arch/arm/mach-footbridge/dc21285.c +4 −4
  577. arch/arm/mach-footbridge/ebsa285.c +1 −0
  578. arch/arm/mach-footbridge/include/mach/system.h +0 −56
  579. arch/arm/mach-footbridge/include/mach/vmalloc.h +0 −10
  580. arch/arm/mach-footbridge/netwinder-hw.c +27 −0
  581. arch/arm/mach-footbridge/personal.c +1 −0
  582. arch/arm/mach-gemini/include/mach/vmalloc.h +0 −10
  583. arch/arm/mach-h720x/common.c +5 −0
  584. arch/arm/mach-h720x/common.h +1 −0
  585. arch/arm/mach-h720x/h7201-eval.c +1 −0
  586. arch/arm/mach-h720x/h7202-eval.c +1 −0
  587. arch/arm/mach-h720x/include/mach/system.h +0 −6
  588. arch/arm/mach-h720x/include/mach/vmalloc.h +0 −10
  589. arch/arm/mach-highbank/core.h +1 −0
  590. arch/arm/mach-highbank/highbank.c +3 −2
  591. arch/arm/mach-highbank/include/mach/entry-macro.S +0 −2
  592. arch/arm/mach-highbank/include/mach/system.h +0 −2
  593. arch/arm/mach-highbank/include/mach/vmalloc.h +0 −1
  594. arch/arm/mach-highbank/system.c +1 −1
  595. arch/arm/mach-imx/Kconfig +3 −1
  596. arch/arm/mach-imx/Makefile +5 −1
  597. arch/arm/mach-imx/Makefile.boot +3 −0
  598. arch/arm/mach-imx/clock-imx6q.c +0 −2
  599. arch/arm/mach-imx/head-v7.S +12 −5
  600. arch/arm/mach-imx/mach-apf9328.c +11 −0
  601. arch/arm/mach-imx/mach-armadillo5x0.c +1 −0
  602. arch/arm/mach-imx/mach-bug.c +1 −0
  603. arch/arm/mach-imx/mach-cpuimx27.c +1 −0
  604. arch/arm/mach-imx/mach-cpuimx35.c +1 −0
  605. arch/arm/mach-imx/mach-eukrea_cpuimx25.c +1 −0
  606. arch/arm/mach-imx/mach-imx27_visstrim_m10.c +1 −0
  607. arch/arm/mach-imx/mach-imx27ipcam.c +1 −0
  608. arch/arm/mach-imx/mach-imx27lite.c +1 −0
  609. arch/arm/mach-imx/mach-imx6q.c +57 −1
  610. arch/arm/mach-imx/mach-kzm_arm11_01.c +1 −0
  611. arch/arm/mach-imx/mach-mx1ads.c +2 −0
  612. arch/arm/mach-imx/mach-mx21ads.c +1 −0
  613. arch/arm/mach-imx/mach-mx25_3ds.c +1 −0
  614. arch/arm/mach-imx/mach-mx27_3ds.c +1 −0
  615. arch/arm/mach-imx/mach-mx27ads.c +1 −0
  616. arch/arm/mach-imx/mach-mx31_3ds.c +4 −4
  617. arch/arm/mach-imx/mach-mx31ads.c +1 −0
  618. arch/arm/mach-imx/mach-mx31lilly.c +1 −0
  619. arch/arm/mach-imx/mach-mx31lite.c +1 −0
  620. arch/arm/mach-imx/mach-mx31moboard.c +3 −3
  621. arch/arm/mach-imx/mach-mx35_3ds.c +1 −0
  622. arch/arm/mach-imx/mach-mxt_td60.c +1 −0
  623. arch/arm/mach-imx/mach-pca100.c +1 −0
  624. arch/arm/mach-imx/mach-pcm037.c +3 −3
  625. arch/arm/mach-imx/mach-pcm038.c +1 −0
  626. arch/arm/mach-imx/mach-pcm043.c +1 −0
  627. arch/arm/mach-imx/mach-qong.c +1 −0
  628. arch/arm/mach-imx/mach-scb9328.c +1 −0
  629. arch/arm/mach-imx/mach-vpr200.c +1 −0
  630. arch/arm/mach-imx/pm-imx6q.c +2 −0
  631. arch/arm/mach-imx/src.c +24 −2
  632. arch/arm/mach-integrator/Kconfig +4 −0
  633. arch/arm/mach-integrator/common.h +1 −0
  634. arch/arm/mach-integrator/core.c +22 −5
  635. arch/arm/mach-integrator/include/mach/system.h +0 −11
  636. arch/arm/mach-integrator/include/mach/vmalloc.h +0 −20
  637. arch/arm/mach-integrator/integrator_ap.c +1 −0
  638. arch/arm/mach-integrator/integrator_cp.c +2 −1
  639. arch/arm/mach-integrator/pci_v3.c +10 −9
  640. arch/arm/mach-iop13xx/include/mach/iop13xx.h +1 −0
  641. arch/arm/mach-iop13xx/include/mach/system.h +0 −14
  642. arch/arm/mach-iop13xx/include/mach/vmalloc.h +0 −4
  643. arch/arm/mach-iop13xx/iq81340mc.c +1 −0
  644. arch/arm/mach-iop13xx/iq81340sc.c +1 −0
  645. arch/arm/mach-iop13xx/pci.c +8 −9
  646. arch/arm/mach-iop13xx/setup.c +11 −0
  647. arch/arm/mach-iop32x/em7210.c +1 −0
  648. arch/arm/mach-iop32x/glantank.c +1 −0
  649. arch/arm/mach-iop32x/include/mach/io.h +0 −7
  650. arch/arm/mach-iop32x/include/mach/system.h +0 −21
  651. arch/arm/mach-iop32x/include/mach/vmalloc.h +0 −5
  652. arch/arm/mach-iop32x/iq31244.c +2 −0
  653. arch/arm/mach-iop32x/iq80321.c +1 −0
  654. arch/arm/mach-iop32x/n2100.c +9 −0
  655. arch/arm/mach-iop33x/include/mach/io.h +0 −7
  656. arch/arm/mach-iop33x/include/mach/system.h +0 −10
  657. arch/arm/mach-iop33x/include/mach/vmalloc.h +0 −5
  658. arch/arm/mach-iop33x/iq80331.c +1 −0
  659. arch/arm/mach-iop33x/iq80332.c +1 −0
  660. arch/arm/mach-ixp2000/core.c +4 −0
  661. arch/arm/mach-ixp2000/enp2611.c +3 −1
  662. arch/arm/mach-ixp2000/include/mach/platform.h +1 −0
  663. arch/arm/mach-ixp2000/include/mach/system.h +0 −35
  664. arch/arm/mach-ixp2000/include/mach/vmalloc.h +0 −20
  665. arch/arm/mach-ixp2000/ixdp2400.c +1 −0
  666. arch/arm/mach-ixp2000/ixdp2800.c +1 −0
  667. arch/arm/mach-ixp2000/ixdp2x01.c +32 −0
  668. arch/arm/mach-ixp2000/pci.c +4 −4
  669. arch/arm/mach-ixp23xx/core.c +6 −0
  670. arch/arm/mach-ixp23xx/espresso.c +1 −0
  671. arch/arm/mach-ixp23xx/include/mach/io.h +0 −29
  672. arch/arm/mach-ixp23xx/include/mach/platform.h +1 −0
  673. arch/arm/mach-ixp23xx/include/mach/system.h +0 −17
  674. arch/arm/mach-ixp23xx/include/mach/vmalloc.h +0 −10
  675. arch/arm/mach-ixp23xx/ixdp2351.c +12 −0
  676. arch/arm/mach-ixp23xx/pci.c +4 −4
  677. arch/arm/mach-ixp23xx/roadrunner.c +1 −0
  678. arch/arm/mach-ixp4xx/avila-setup.c +2 −0
  679. arch/arm/mach-ixp4xx/common-pci.c +4 −4
  680. arch/arm/mach-ixp4xx/common.c +23 −13
  681. arch/arm/mach-ixp4xx/coyote-setup.c +2 −0
  682. arch/arm/mach-ixp4xx/dsmg600-setup.c +1 −0
  683. arch/arm/mach-ixp4xx/fsg-setup.c +1 −0
  684. arch/arm/mach-ixp4xx/gateway7001-setup.c +1 −0
  685. arch/arm/mach-ixp4xx/goramo_mlr.c +1 −0
  686. arch/arm/mach-ixp4xx/gtwx5715-setup.c +1 −0
  687. arch/arm/mach-ixp4xx/include/mach/platform.h +1 −0
  688. arch/arm/mach-ixp4xx/include/mach/system.h +0 −25
  689. arch/arm/mach-ixp4xx/include/mach/vmalloc.h +0 −5
  690. arch/arm/mach-ixp4xx/ixdp425-setup.c +1 −0
  691. arch/arm/mach-ixp4xx/nas100d-setup.c +1 −0
  692. arch/arm/mach-ixp4xx/nslu2-setup.c +1 −0
  693. arch/arm/mach-ixp4xx/omixp-setup.c +3 −0
  694. arch/arm/mach-ixp4xx/vulcan-setup.c +1 −0
  695. arch/arm/mach-ixp4xx/wg302v2-setup.c +1 −0
  696. arch/arm/mach-kirkwood/addr-map.c +37 −100
  697. arch/arm/mach-kirkwood/common.c +24 −11
  698. arch/arm/mach-kirkwood/common.h +1 −1
  699. arch/arm/mach-kirkwood/d2net_v2-setup.c +1 −0
  700. arch/arm/mach-kirkwood/db88f6281-bp-setup.c +1 −0
  701. arch/arm/mach-kirkwood/dockstar-setup.c +1 −0
  702. arch/arm/mach-kirkwood/guruplug-setup.c +1 −0
  703. arch/arm/mach-kirkwood/include/mach/io.h +0 −25
  704. arch/arm/mach-kirkwood/include/mach/kirkwood.h +1 −0
  705. arch/arm/mach-kirkwood/include/mach/system.h +0 −19
  706. arch/arm/mach-kirkwood/include/mach/vmalloc.h +0 −5
  707. arch/arm/mach-kirkwood/mpp.c +0 −1
  708. arch/arm/mach-kirkwood/mpp.h +1 −0
  709. arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c +1 −0
  710. arch/arm/mach-kirkwood/netspace_v2-setup.c +3 −0
  711. arch/arm/mach-kirkwood/netxbig_v2-setup.c +2 −0
  712. arch/arm/mach-kirkwood/openrd-setup.c +3 −0
  713. arch/arm/mach-kirkwood/pcie.c +6 −6
  714. arch/arm/mach-kirkwood/rd88f6192-nas-setup.c +1 −0
  715. arch/arm/mach-kirkwood/rd88f6281-setup.c +1 −0
  716. arch/arm/mach-kirkwood/sheevaplug-setup.c +5 −3
  717. arch/arm/mach-kirkwood/t5325-setup.c +1 −0
  718. arch/arm/mach-kirkwood/ts219-setup.c +1 −0
  719. arch/arm/mach-kirkwood/ts41x-setup.c +1 −0
  720. arch/arm/mach-ks8695/board-acs5k.c +1 −0
  721. arch/arm/mach-ks8695/board-dsm320.c +1 −0
  722. arch/arm/mach-ks8695/board-micrel.c +1 −0
  723. arch/arm/mach-ks8695/generic.h +1 −0
  724. arch/arm/mach-ks8695/include/mach/system.h +0 −21
  725. arch/arm/mach-ks8695/include/mach/vmalloc.h +0 −19
  726. arch/arm/mach-ks8695/irq.c +1 −1
  727. arch/arm/mach-ks8695/pci.c +4 −4
  728. arch/arm/mach-ks8695/time.c +18 −0
  729. arch/arm/mach-lpc32xx/common.c +19 −1
  730. arch/arm/mach-lpc32xx/common.h +2 −0
  731. arch/arm/mach-lpc32xx/include/mach/system.h +0 −25
  732. arch/arm/mach-lpc32xx/include/mach/vmalloc.h +0 −24
  733. arch/arm/mach-lpc32xx/phy3250.c +2 −1
  734. arch/arm/mach-mmp/aspenite.c +5 −2
  735. arch/arm/mach-mmp/avengers_lite.c +2 −0
  736. arch/arm/mach-mmp/brownstone.c +2 −0
  737. arch/arm/mach-mmp/common.c +5 −0
  738. arch/arm/mach-mmp/common.h +1 −0
  739. arch/arm/mach-mmp/flint.c +4 −2
  740. arch/arm/mach-mmp/gplugd.c +2 −0
  741. arch/arm/mach-mmp/include/mach/gpio-pxa.h +1 −2
  742. arch/arm/mach-mmp/include/mach/gpio.h +1 −6
  743. arch/arm/mach-mmp/include/mach/irqs.h +3 −3
  744. arch/arm/mach-mmp/include/mach/mmp2.h +2 −0
  745. arch/arm/mach-mmp/include/mach/pxa168.h +3 −0
  746. arch/arm/mach-mmp/include/mach/pxa910.h +2 −0
  747. arch/arm/mach-mmp/include/mach/system.h +0 −10
  748. arch/arm/mach-mmp/include/mach/vmalloc.h +0 −5
  749. arch/arm/mach-mmp/jasper.c +1 −0
  750. arch/arm/mach-mmp/mmp2.c +21 −18
  751. arch/arm/mach-mmp/pxa168.c +27 −18
  752. arch/arm/mach-mmp/pxa910.c +22 −18
  753. arch/arm/mach-mmp/tavorevb.c +5 −2
  754. arch/arm/mach-mmp/teton_bga.c +3 −1
  755. arch/arm/mach-mmp/time.c +3 −13
  756. arch/arm/mach-mmp/ttc_dkb.c +6 −3
  757. arch/arm/mach-msm/Kconfig +4 −32
  758. arch/arm/mach-msm/board-msm8960.c +2 −0
  759. arch/arm/mach-msm/board-msm8x60.c +4 −0
  760. arch/arm/mach-msm/board-sapphire.c +1 −1
  761. arch/arm/mach-msm/headsmp.S +1 −0
  762. arch/arm/mach-msm/include/mach/debug-macro.S +32 −19
  763. arch/arm/mach-msm/include/mach/entry-macro-qgic.S +0 −17
  764. arch/arm/mach-msm/include/mach/entry-macro-vic.S +0 −37
  765. arch/arm/mach-msm/include/mach/entry-macro.S +23 −4
  766. arch/arm/mach-msm/include/mach/msm_iomap-7x00.h +0 −12
  767. arch/arm/mach-msm/include/mach/msm_iomap-7x30.h +0 −12
  768. arch/arm/mach-msm/include/mach/msm_iomap-8960.h +5 −0
  769. arch/arm/mach-msm/include/mach/msm_iomap-8x50.h +0 −12
  770. arch/arm/mach-msm/include/mach/msm_iomap-8x60.h +5 −0
  771. arch/arm/mach-msm/include/mach/msm_iomap.h +12 −0
  772. arch/arm/mach-msm/include/mach/system.h +0 −8
  773. arch/arm/mach-msm/include/mach/uncompress.h +31 −8
  774. arch/arm/mach-msm/io.c +12 −3
  775. arch/arm/mach-msm/platsmp.c +1 −1
  776. arch/arm/mach-msm/smd_debug.c +1 −1
  777. arch/arm/mach-msm/timer.c +124 −223
  778. arch/arm/mach-msm/vreg.c +1 −0
  779. arch/arm/mach-mv78xx0/addr-map.c +19 −83
  780. arch/arm/mach-mv78xx0/buffalo-wxl-setup.c +1 −0
  781. arch/arm/mach-mv78xx0/common.c +25 −13
  782. arch/arm/mach-mv78xx0/common.h +1 −1
  783. arch/arm/mach-mv78xx0/db78x00-bp-setup.c +1 −0
  784. arch/arm/mach-mv78xx0/include/mach/system.h +0 −19
  785. arch/arm/mach-mv78xx0/include/mach/vmalloc.h +0 −5
  786. arch/arm/mach-mv78xx0/mpp.c +0 −1
  787. arch/arm/mach-mv78xx0/pcie.c +6 −6
  788. arch/arm/mach-mv78xx0/rd78x00-masa-setup.c +1 −0
  789. arch/arm/mach-mx5/board-cpuimx51.c +1 −0
  790. arch/arm/mach-mx5/board-cpuimx51sd.c +1 −0
  791. arch/arm/mach-mx5/board-mx50_rdp.c +1 −0
  792. arch/arm/mach-mx5/board-mx51_3ds.c +1 −0
  793. arch/arm/mach-mx5/board-mx51_babbage.c +1 −0
  794. arch/arm/mach-mx5/board-mx51_efikamx.c +2 −1
  795. arch/arm/mach-mx5/board-mx51_efikasb.c +1 −0
  796. arch/arm/mach-mx5/board-mx53_ard.c +1 −0
  797. arch/arm/mach-mx5/board-mx53_evk.c +1 −0
  798. arch/arm/mach-mx5/board-mx53_loco.c +1 −0
  799. arch/arm/mach-mx5/board-mx53_smd.c +1 −0
  800. arch/arm/mach-mx5/imx51-dt.c +1 −0
  801. arch/arm/mach-mx5/imx53-dt.c +1 −0
  802. arch/arm/mach-mx5/mm.c +18 −1
  803. arch/arm/mach-mx5/system.c +0 −3
  804. arch/arm/mach-mxs/clock-mx23.c +5 −5
  805. arch/arm/mach-mxs/clock-mx28.c +43 −5
  806. arch/arm/mach-mxs/clock.c +23 −10
  807. arch/arm/mach-mxs/devices-mx28.h +2 −1
  808. arch/arm/mach-mxs/devices/platform-mxs-saif.c +3 −2
  809. arch/arm/mach-mxs/include/mach/common.h +2 −0
  810. arch/arm/mach-mxs/include/mach/devices-common.h +3 −1
  811. arch/arm/mach-mxs/include/mach/digctl.h +21 −0
  812. arch/arm/mach-mxs/include/mach/system.h +0 −2
  813. arch/arm/mach-mxs/include/mach/vmalloc.h +0 −22
  814. arch/arm/mach-mxs/mach-m28evk.c +1 −0
  815. arch/arm/mach-mxs/mach-mx23evk.c +1 −0
  816. arch/arm/mach-mxs/mach-mx28evk.c +18 −3
  817. arch/arm/mach-mxs/mach-stmp378x_devb.c +1 −0
  818. arch/arm/mach-mxs/mach-tx28.c +1 −0
  819. arch/arm/mach-mxs/system.c +3 −3
  820. arch/arm/mach-mxs/timer.c +1 −1
  821. arch/arm/mach-netx/generic.c +5 −0
  822. arch/arm/mach-netx/generic.h +1 −0
  823. arch/arm/mach-netx/include/mach/entry-macro.S +0 −13
  824. arch/arm/mach-netx/include/mach/system.h +0 −10
  825. arch/arm/mach-netx/nxdb500.c +3 −0
  826. arch/arm/mach-netx/nxdkn.c +3 −0
  827. arch/arm/mach-netx/nxeb500hmi.c +3 −0
  828. arch/arm/mach-nomadik/board-nhk8815.c +5 −0
  829. arch/arm/mach-nomadik/cpu-8815.c +12 −0
  830. arch/arm/mach-nomadik/cpu-8815.h +4 −0
  831. arch/arm/mach-nomadik/include/mach/entry-macro.S +0 −30
  832. arch/arm/mach-nomadik/include/mach/setup.h +0 −3
  833. arch/arm/mach-nomadik/include/mach/system.h +0 −13
  834. arch/arm/mach-nomadik/include/mach/vmalloc.h +0 −2
  835. arch/arm/mach-omap1/Kconfig +0 −64
  836. arch/arm/mach-omap1/board-ams-delta.c +2 −1
  837. arch/arm/mach-omap1/board-fsample.c +2 −1
  838. arch/arm/mach-omap1/board-generic.c +2 −1
  839. arch/arm/mach-omap1/board-h2.c +2 −1
  840. arch/arm/mach-omap1/board-h3.c +2 −1
  841. arch/arm/mach-omap1/board-htcherald.c +2 −1
  842. arch/arm/mach-omap1/board-innovator.c +2 −1
  843. arch/arm/mach-omap1/board-nokia770.c +2 −1
  844. arch/arm/mach-omap1/board-osk.c +2 −1
  845. arch/arm/mach-omap1/board-palmte.c +2 −1
  846. arch/arm/mach-omap1/board-palmtt.c +2 −1
  847. arch/arm/mach-omap1/board-palmz71.c +2 −1
  848. arch/arm/mach-omap1/board-perseus2.c +2 −1
  849. arch/arm/mach-omap1/board-sx1.c +2 −1
  850. arch/arm/mach-omap1/board-voiceblue.c +3 −5
  851. arch/arm/mach-omap1/clock.c +6 −8
  852. arch/arm/mach-omap1/clock.h +3 −0
  853. arch/arm/mach-omap1/clock_data.c +10 −9
  854. arch/arm/mach-omap1/common.h +62 −0
  855. arch/arm/mach-omap1/devices.c +1 −1
  856. arch/arm/mach-omap1/include/mach/vmalloc.h +0 −20
  857. arch/arm/mach-omap1/io.c +0 −1
  858. arch/arm/mach-omap1/opp.h +1 −0
  859. arch/arm/mach-omap1/opp_data.c +29 −34
  860. arch/arm/mach-omap1/reset.c +1 −4
  861. arch/arm/mach-omap1/time.c +5 −55
  862. arch/arm/mach-omap1/timer32k.c +1 −1
  863. arch/arm/mach-omap2/Kconfig +38 −3
  864. arch/arm/mach-omap2/Makefile +13 −7
  865. arch/arm/mach-omap2/board-2430sdp.c +3 −1
  866. arch/arm/mach-omap2/board-3430sdp.c +4 −100
  867. arch/arm/mach-omap2/board-3630sdp.c +3 −1
  868. arch/arm/mach-omap2/board-4430sdp.c +20 −84
  869. arch/arm/mach-omap2/board-am3517crane.c +3 −1
  870. arch/arm/mach-omap2/board-am3517evm.c +25 −1
  871. arch/arm/mach-omap2/board-apollon.c +3 −1
  872. arch/arm/mach-omap2/board-cm-t35.c +63 −25
  873. arch/arm/mach-omap2/board-cm-t3517.c +3 −1
  874. arch/arm/mach-omap2/board-devkit8000.c +3 −1
  875. arch/arm/mach-omap2/board-generic.c +6 −3
  876. arch/arm/mach-omap2/board-h4.c +3 −1
  877. arch/arm/mach-omap2/board-igep0020.c +5 −1
  878. arch/arm/mach-omap2/board-ldp.c +3 −1
  879. arch/arm/mach-omap2/board-n8x0.c +11 −5
  880. arch/arm/mach-omap2/board-omap3beagle.c +3 −1
  881. arch/arm/mach-omap2/board-omap3evm.c +3 −1
  882. arch/arm/mach-omap2/board-omap3logic.c +5 −1
  883. arch/arm/mach-omap2/board-omap3pandora.c +3 −1
  884. arch/arm/mach-omap2/board-omap3stalker.c +3 −1
  885. arch/arm/mach-omap2/board-omap3touchbook.c +3 −1
  886. arch/arm/mach-omap2/board-omap4panda.c +14 −85
  887. arch/arm/mach-omap2/board-overo.c +3 −1
  888. arch/arm/mach-omap2/board-rm680.c +3 −1
  889. arch/arm/mach-omap2/board-rx51-peripherals.c +48 −3
  890. arch/arm/mach-omap2/board-rx51.c +3 −1
  891. arch/arm/mach-omap2/board-ti8168evm.c +31 −15
  892. arch/arm/mach-omap2/board-zoom-peripherals.c +1 −1
  893. arch/arm/mach-omap2/board-zoom.c +5 −1
  894. arch/arm/mach-omap2/clock.c +1 −1
  895. arch/arm/mach-omap2/clock.h +1 −1
  896. arch/arm/mach-omap2/clock3xxx_data.c +28 −15
  897. arch/arm/mach-omap2/clock44xx_data.c +14 −5
  898. arch/arm/mach-omap2/cm2xxx_3xxx.c +1 −1
  899. arch/arm/mach-omap2/cm44xx.c +1 −1
  900. arch/arm/mach-omap2/cminst44xx.c +1 −1
  901. arch/arm/mach-omap2/common.c +38 −12
  902. arch/arm/mach-omap2/common.h +239 −0
  903. arch/arm/mach-omap2/control.c +1 −1
  904. arch/arm/mach-omap2/control.h +4 −4
  905. arch/arm/mach-omap2/cpuidle34xx.c +16 −6
  906. arch/arm/mach-omap2/cpuidle44xx.c +245 −0
  907. arch/arm/mach-omap2/devices.c +41 −0
  908. arch/arm/mach-omap2/display.c +41 −1
  909. arch/arm/mach-omap2/hsmmc.c +44 −15
  910. arch/arm/mach-omap2/hsmmc.h +1 −0
  911. arch/arm/mach-omap2/i2c.c +1 −1
  912. arch/arm/mach-omap2/id.c +46 −8
  913. arch/arm/mach-omap2/include/mach/barriers.h +18 −6
  914. arch/arm/mach-omap2/include/mach/debug-macro.S +6 −6
  915. arch/arm/mach-omap2/include/mach/entry-macro.S +0 −137
  916. arch/arm/mach-omap2/include/mach/omap-secure.h +57 −0
  917. arch/arm/mach-omap2/include/mach/omap-wakeupgen.h +39 −0
  918. arch/arm/mach-omap2/include/mach/omap4-common.h +0 −43
  919. arch/arm/mach-omap2/include/mach/vmalloc.h +0 −20
  920. arch/arm/mach-omap2/io.c +42 −13
  921. arch/arm/mach-omap2/irq.c +52 −1
  922. arch/arm/mach-omap2/mcbsp.c +3 −0
  923. arch/arm/mach-omap2/mux.c +87 −2
  924. arch/arm/mach-omap2/omap-headsmp.S +0 −5
  925. arch/arm/mach-omap2/omap-hotplug.c +11 −6
  926. arch/arm/mach-omap2/omap-mpuss-lowpower.c +398 −0
  927. arch/arm/mach-omap2/omap-secure.c +72 −0
  928. arch/arm/mach-omap2/omap-smc.S +23 −0
  929. arch/arm/mach-omap2/omap-smp.c +47 −1
  930. arch/arm/mach-omap2/omap-wakeupgen.c +389 −0
  931. arch/arm/mach-omap2/omap4-common.c +91 −4
  932. arch/arm/mach-omap2/omap4-sar-layout.h +50 −0
  933. arch/arm/mach-omap2/omap_hwmod.c +174 −51
  934. arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +380 −8
  935. arch/arm/mach-omap2/omap_hwmod_44xx_data.c +212 −5
  936. arch/arm/mach-omap2/omap_phy_internal.c +35 −0
  937. arch/arm/mach-omap2/opp2xxx.h +1 −1
  938. arch/arm/mach-omap2/pm.c +1 −1
  939. arch/arm/mach-omap2/pm.h +1 −0
  940. arch/arm/mach-omap2/pm24xx.c +1 −20
  941. arch/arm/mach-omap2/pm34xx.c +45 −114
  942. arch/arm/mach-omap2/pm44xx.c +150 −5
  943. arch/arm/mach-omap2/prcm-common.h +76 −1
  944. arch/arm/mach-omap2/prcm.c +2 −5
  945. arch/arm/mach-omap2/prcm_mpu44xx.c +1 −1
  946. arch/arm/mach-omap2/prm2xxx_3xxx.c +97 −2
  947. arch/arm/mach-omap2/prm2xxx_3xxx.h +8 −1
  948. arch/arm/mach-omap2/prm44xx.c +117 −1
  949. arch/arm/mach-omap2/prm44xx.h +7 −1
  950. arch/arm/mach-omap2/prm_common.c +320 −0
  951. arch/arm/mach-omap2/prminst44xx.c +1 −1
  952. arch/arm/mach-omap2/sdram-nokia.c +25 −2
  953. arch/arm/mach-omap2/sdrc.c +1 −1
  954. arch/arm/mach-omap2/sdrc2xxx.c +1 −1
  955. arch/arm/mach-omap2/serial.c +243 −666
  956. arch/arm/mach-omap2/sleep44xx.S +379 −0
  957. arch/arm/mach-omap2/smartreflex.c +1 −1
  958. arch/arm/mach-omap2/timer.c +5 −17
  959. arch/arm/mach-omap2/usb-host.c +34 −66
  960. arch/arm/mach-omap2/usb-musb.c +3 −0
  961. arch/arm/mach-omap2/vc3xxx_data.c +1 −1
  962. arch/arm/mach-omap2/vc44xx_data.c +1 −1
  963. arch/arm/mach-omap2/voltage.c +1 −1
  964. arch/arm/mach-omap2/voltagedomains3xxx_data.c +35 −7
  965. arch/arm/mach-omap2/voltagedomains44xx_data.c +1 −1
  966. arch/arm/mach-omap2/vp.c +1 −1
  967. arch/arm/mach-omap2/vp3xxx_data.c +1 −1
  968. arch/arm/mach-omap2/vp44xx_data.c +1 −1
  969. arch/arm/mach-orion5x/addr-map.c +47 −99
  970. arch/arm/mach-orion5x/common.c +19 −16
  971. arch/arm/mach-orion5x/common.h +2 −2
  972. arch/arm/mach-orion5x/d2net-setup.c +2 −0
  973. arch/arm/mach-orion5x/db88f5281-setup.c +1 −0
  974. arch/arm/mach-orion5x/dns323-setup.c +1 −0
  975. arch/arm/mach-orion5x/edmini_v2-setup.c +1 −0
  976. arch/arm/mach-orion5x/include/mach/io.h +0 −25
  977. arch/arm/mach-orion5x/include/mach/orion5x.h +1 −1
  978. arch/arm/mach-orion5x/include/mach/system.h +0 −14
  979. arch/arm/mach-orion5x/include/mach/vmalloc.h +0 −5
  980. arch/arm/mach-orion5x/kurobox_pro-setup.c +2 −0
  981. arch/arm/mach-orion5x/ls-chl-setup.c +2 −1
  982. arch/arm/mach-orion5x/ls_hgl-setup.c +2 −1
  983. arch/arm/mach-orion5x/lsmini-setup.c +2 −1
  984. arch/arm/mach-orion5x/mpp.c +0 −1
  985. arch/arm/mach-orion5x/mss2-setup.c +2 −1
  986. arch/arm/mach-orion5x/mv2120-setup.c +2 −1
  987. arch/arm/mach-orion5x/net2big-setup.c +1 −0
  988. arch/arm/mach-orion5x/pci.c +11 −10
  989. arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c +1 −0
  990. arch/arm/mach-orion5x/rd88f5181l-ge-setup.c +1 −0
  991. arch/arm/mach-orion5x/rd88f5182-setup.c +1 −0
  992. arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c +1 −0
  993. arch/arm/mach-orion5x/terastation_pro2-setup.c +1 −0
  994. arch/arm/mach-orion5x/ts209-setup.c +2 −1
  995. arch/arm/mach-orion5x/ts409-setup.c +1 −0
  996. arch/arm/mach-orion5x/ts78xx-setup.c +1 −0
  997. arch/arm/mach-orion5x/wnr854t-setup.c +1 −0
  998. arch/arm/mach-orion5x/wrt350n-v2-setup.c +1 −0
  999. arch/arm/mach-picoxcell/Makefile +0 −1
  1000. arch/arm/mach-picoxcell/common.c +55 −6
  1001. arch/arm/mach-picoxcell/common.h +0 −1
  1002. arch/arm/mach-picoxcell/include/mach/entry-macro.S +4 −7
  1003. arch/arm/mach-picoxcell/include/mach/irqs.h +2 −7
  1004. arch/arm/mach-picoxcell/include/mach/memory.h +0 −1
  1005. arch/arm/mach-picoxcell/include/mach/system.h +0 −5
  1006. arch/arm/mach-picoxcell/include/mach/vmalloc.h +0 −14
  1007. arch/arm/mach-picoxcell/io.c +0 −32
  1008. arch/arm/mach-picoxcell/time.c +3 −14
  1009. arch/arm/mach-pnx4008/core.c +6 −0
  1010. arch/arm/mach-pnx4008/include/mach/system.h +0 −9
  1011. arch/arm/mach-pnx4008/include/mach/vmalloc.h +0 −20
  1012. arch/arm/mach-prima2/common.h +1 −0
  1013. arch/arm/mach-prima2/include/mach/map.h +4 −2
  1014. arch/arm/mach-prima2/include/mach/system.h +0 −12
  1015. arch/arm/mach-prima2/include/mach/vmalloc.h +0 −16
  1016. arch/arm/mach-prima2/prima2.c +1 −0
  1017. arch/arm/mach-prima2/rstc.c +7 −0
  1018. arch/arm/mach-pxa/am200epd.c +2 −2
  1019. arch/arm/mach-pxa/am300epd.c +2 −2
  1020. arch/arm/mach-pxa/balloon3.c +3 −1
  1021. arch/arm/mach-pxa/capc7117.c +8 −7
  1022. arch/arm/mach-pxa/cm-x270.c +2 −2
  1023. arch/arm/mach-pxa/cm-x2xx.c +3 −2
  1024. arch/arm/mach-pxa/cm-x300.c +4 −3
  1025. arch/arm/mach-pxa/colibri-pxa270-income.c +1 −1
  1026. arch/arm/mach-pxa/colibri-pxa270.c +5 −3
  1027. arch/arm/mach-pxa/colibri-pxa300.c +3 −2
  1028. arch/arm/mach-pxa/colibri-pxa320.c +3 −2
  1029. arch/arm/mach-pxa/corgi.c +15 −4
  1030. arch/arm/mach-pxa/corgi_pm.c +18 −3
  1031. arch/arm/mach-pxa/csb726.c +1 −0
  1032. arch/arm/mach-pxa/devices.c +50 −0
  1033. arch/arm/mach-pxa/devices.h +1 −0
  1034. arch/arm/mach-pxa/em-x270.c +5 −3
  1035. arch/arm/mach-pxa/eseries.c +26 −2
  1036. arch/arm/mach-pxa/ezx.c +6 −0
  1037. arch/arm/mach-pxa/generic.h +2 −0
  1038. arch/arm/mach-pxa/gumstix.c +1 −0
  1039. arch/arm/mach-pxa/h5000.c +1 −0
  1040. arch/arm/mach-pxa/himalaya.c +1 −0
  1041. arch/arm/mach-pxa/hx4700.c +10 −9
  1042. arch/arm/mach-pxa/icontrol.c +6 −5
  1043. arch/arm/mach-pxa/idp.c +3 −2
  1044. arch/arm/mach-pxa/include/mach/balloon3.h +3 −3
  1045. arch/arm/mach-pxa/include/mach/corgi.h +13 −13
  1046. arch/arm/mach-pxa/include/mach/csb726.h +2 −2
  1047. arch/arm/mach-pxa/include/mach/entry-macro.S +0 −36
  1048. arch/arm/mach-pxa/include/mach/gpio-pxa.h +0 −133
  1049. arch/arm/mach-pxa/include/mach/gpio.h +2 −18
  1050. arch/arm/mach-pxa/include/mach/gumstix.h +10 −10
  1051. arch/arm/mach-pxa/include/mach/hx4700.h +1 −1
  1052. arch/arm/mach-pxa/include/mach/idp.h +7 −9
  1053. arch/arm/mach-pxa/include/mach/irqs.h +3 −5
  1054. arch/arm/mach-pxa/include/mach/littleton.h +1 −3
  1055. arch/arm/mach-pxa/include/mach/magician.h +1 −1
  1056. arch/arm/mach-pxa/include/mach/palmld.h +4 −4
  1057. arch/arm/mach-pxa/include/mach/palmt5.h +4 −4
  1058. arch/arm/mach-pxa/include/mach/palmtc.h +2 −2
  1059. arch/arm/mach-pxa/include/mach/palmtx.h +4 −4
  1060. arch/arm/mach-pxa/include/mach/pcm027.h +4 −4
  1061. arch/arm/mach-pxa/include/mach/pcm990_baseboard.h +7 −7
  1062. arch/arm/mach-pxa/include/mach/poodle.h +13 −13
  1063. arch/arm/mach-pxa/include/mach/spitz.h +20 −20
  1064. arch/arm/mach-pxa/include/mach/system.h +0 −8
  1065. arch/arm/mach-pxa/include/mach/tosa.h +27 −27
  1066. arch/arm/mach-pxa/include/mach/trizeps4.h +8 −8
  1067. arch/arm/mach-pxa/include/mach/vmalloc.h +0 −11
  1068. arch/arm/mach-pxa/irq.c +1 −60
  1069. arch/arm/mach-pxa/littleton.c +4 −3
  1070. arch/arm/mach-pxa/lpd270.c +3 −2
  1071. arch/arm/mach-pxa/lubbock.c +3 −2
  1072. arch/arm/mach-pxa/magician.c +5 −4
  1073. arch/arm/mach-pxa/mainstone.c +3 −2
  1074. arch/arm/mach-pxa/mfp-pxa2xx.c +5 −1
  1075. arch/arm/mach-pxa/mioa701.c +25 −19
  1076. arch/arm/mach-pxa/mp900.c +1 −0
  1077. arch/arm/mach-pxa/mxm8x10.c +2 −2
  1078. arch/arm/mach-pxa/palmld.c +2 −1
  1079. arch/arm/mach-pxa/palmt5.c +2 −1
  1080. arch/arm/mach-pxa/palmtc.c +2 −1
  1081. arch/arm/mach-pxa/palmte2.c +2 −1
  1082. arch/arm/mach-pxa/palmtreo.c +2 −0
  1083. arch/arm/mach-pxa/palmtx.c +2 −1
  1084. arch/arm/mach-pxa/palmz72.c +2 −1
  1085. arch/arm/mach-pxa/pcm027.c +1 −0
  1086. arch/arm/mach-pxa/pcm990-baseboard.c +3 −3
  1087. arch/arm/mach-pxa/poodle.c +11 −10
  1088. arch/arm/mach-pxa/pxa25x.c +4 −3
  1089. arch/arm/mach-pxa/pxa27x.c +5 −2
  1090. arch/arm/mach-pxa/pxa300.c +1 −0
  1091. arch/arm/mach-pxa/pxa320.c +1 −0
  1092. arch/arm/mach-pxa/pxa3xx.c +6 −3
  1093. arch/arm/mach-pxa/pxa95x.c +4 −2
  1094. arch/arm/mach-pxa/raumfeld.c +7 −4
  1095. arch/arm/mach-pxa/reset.c +5 −2
  1096. arch/arm/mach-pxa/saar.c +4 −3
  1097. arch/arm/mach-pxa/saarb.c +2 −1
  1098. arch/arm/mach-pxa/sharpsl_pm.c +12 −12
  1099. arch/arm/mach-pxa/spitz.c +8 −3
  1100. arch/arm/mach-pxa/spitz_pm.c +9 −2
  1101. arch/arm/mach-pxa/stargate2.c +21 −13
  1102. arch/arm/mach-pxa/tavorevb.c +3 −2
  1103. arch/arm/mach-pxa/tavorevb3.c +2 −1
  1104. arch/arm/mach-pxa/time.c +3 −12
  1105. arch/arm/mach-pxa/tosa.c +11 −4
  1106. arch/arm/mach-pxa/trizeps4.c +2 −0
  1107. arch/arm/mach-pxa/viper.c +7 −6
  1108. arch/arm/mach-pxa/vpac270.c +7 −6
  1109. arch/arm/mach-pxa/xcep.c +1 −0
  1110. arch/arm/mach-pxa/z2.c +2 −1
  1111. arch/arm/mach-pxa/zeus.c +11 −10
  1112. arch/arm/mach-pxa/zylonite.c +3 −2
  1113. arch/arm/mach-pxa/zylonite_pxa300.c +2 −2
  1114. arch/arm/mach-realview/Kconfig +9 −0
  1115. arch/arm/mach-realview/core.c +1 −1
  1116. arch/arm/mach-realview/core.h +0 −1
  1117. arch/arm/mach-realview/include/mach/entry-macro.S +0 −2
  1118. arch/arm/mach-realview/include/mach/system.h +0 −17
  1119. arch/arm/mach-realview/include/mach/vmalloc.h +0 −21
  1120. arch/arm/mach-realview/platsmp.c +1 −2
  1121. arch/arm/mach-realview/realview_eb.c +7 −8
  1122. arch/arm/mach-realview/realview_pb1176.c +5 −6
  1123. arch/arm/mach-realview/realview_pb11mp.c +5 −6
  1124. arch/arm/mach-realview/realview_pba8.c +5 −6
  1125. arch/arm/mach-realview/realview_pbx.c +7 −8
  1126. arch/arm/mach-rpc/include/mach/system.h +0 −14
  1127. arch/arm/mach-rpc/include/mach/vmalloc.h +0 −10
  1128. arch/arm/mach-rpc/riscpc.c +12 −0
  1129. arch/arm/mach-s3c2410/bast-irq.c +1 −1
  1130. arch/arm/mach-s3c2410/common.h +17 −0
  1131. arch/arm/mach-s3c2410/cpu-freq.c +14 −12
  1132. arch/arm/mach-s3c2410/dma.c +17 −11
  1133. arch/arm/mach-s3c2410/include/mach/dma.h +2 −2
  1134. arch/arm/mach-s3c2410/include/mach/reset.h +0 −22
  1135. arch/arm/mach-s3c2410/include/mach/system-reset.h +0 −32
  1136. arch/arm/mach-s3c2410/include/mach/system.h +0 −4
  1137. arch/arm/mach-s3c2410/include/mach/vmalloc.h +0 −20
  1138. arch/arm/mach-s3c2410/mach-amlm5900.c +3 −0
  1139. arch/arm/mach-s3c2410/mach-bast.c +2 −22
  1140. arch/arm/mach-s3c2410/mach-h1940.c +4 −1
  1141. arch/arm/mach-s3c2410/mach-n30.c +4 −0
  1142. arch/arm/mach-s3c2410/mach-otom.c +3 −0
  1143. arch/arm/mach-s3c2410/mach-qt2410.c +4 −3
  1144. arch/arm/mach-s3c2410/mach-smdk2410.c +3 −2
  1145. arch/arm/mach-s3c2410/mach-tct_hammer.c +3 −0
  1146. arch/arm/mach-s3c2410/mach-vr1000.c +2 −24
  1147. arch/arm/mach-s3c2410/pll.c +12 −8
  1148. arch/arm/mach-s3c2410/pm.c +22 −14
  1149. arch/arm/mach-s3c2410/s3c2410.c +32 −11
  1150. arch/arm/mach-s3c2412/clock.c +8 −1
  1151. arch/arm/mach-s3c2412/cpu-freq.c +7 −6
  1152. arch/arm/mach-s3c2412/dma.c +7 −5
  1153. arch/arm/mach-s3c2412/irq.c +7 −5
  1154. arch/arm/mach-s3c2412/mach-jive.c +2 −0
  1155. arch/arm/mach-s3c2412/mach-smdk2413.c +3 −0
  1156. arch/arm/mach-s3c2412/mach-vstms.c +1 −0
  1157. arch/arm/mach-s3c2412/pm.c +7 −5
  1158. arch/arm/mach-s3c2412/s3c2412.c +12 −13
  1159. arch/arm/mach-s3c2416/Makefile +0 −1
  1160. arch/arm/mach-s3c2416/clock.c +37 −31
  1161. arch/arm/mach-s3c2416/irq.c +7 −5
  1162. arch/arm/mach-s3c2416/mach-smdk2416.c +2 −0
  1163. arch/arm/mach-s3c2416/pm.c +7 −5
  1164. arch/arm/mach-s3c2416/s3c2416.c +12 −10
  1165. arch/arm/mach-s3c2416/setup-sdhci.c +0 −24
  1166. arch/arm/mach-s3c2440/clock.c +52 −7
  1167. arch/arm/mach-s3c2440/common.h +17 −0
  1168. arch/arm/mach-s3c2440/dma.c +7 −5
  1169. arch/arm/mach-s3c2440/irq.c +7 −5
  1170. arch/arm/mach-s3c2440/mach-anubis.c +5 −20
  1171. arch/arm/mach-s3c2440/mach-at2440evb.c +5 −20
  1172. arch/arm/mach-s3c2440/mach-gta02.c +2 −0
  1173. arch/arm/mach-s3c2440/mach-mini2440.c +21 −0
  1174. arch/arm/mach-s3c2440/mach-nexcoder.c +3 −0
  1175. arch/arm/mach-s3c2440/mach-osiris.c +6 −21
  1176. arch/arm/mach-s3c2440/mach-rx1950.c +7 −16
  1177. arch/arm/mach-s3c2440/mach-rx3715.c +7 −17
  1178. arch/arm/mach-s3c2440/mach-smdk2440.c +3 −0
  1179. arch/arm/mach-s3c2440/s3c2440-cpufreq.c +12 −10
  1180. arch/arm/mach-s3c2440/s3c2440-pll-12000000.c +12 −8
  1181. arch/arm/mach-s3c2440/s3c2440-pll-16934400.c +12 −12
  1182. arch/arm/mach-s3c2440/s3c2440.c +17 −4
  1183. arch/arm/mach-s3c2440/s3c2442.c +9 −8
  1184. arch/arm/mach-s3c2440/s3c244x-clock.c +11 −8
  1185. arch/arm/mach-s3c2440/s3c244x-irq.c +12 −8
  1186. arch/arm/mach-s3c2440/s3c244x.c +9 −7
  1187. arch/arm/mach-s3c2443/clock.c +1 −1
  1188. arch/arm/mach-s3c2443/dma.c +7 −5
  1189. arch/arm/mach-s3c2443/irq.c +7 −5
  1190. arch/arm/mach-s3c2443/mach-smdk2443.c +1 −0
  1191. arch/arm/mach-s3c2443/s3c2443.c +12 −11
  1192. arch/arm/mach-s3c64xx/Kconfig +11 −4
  1193. arch/arm/mach-s3c64xx/Makefile +30 −35
  1194. arch/arm/mach-s3c64xx/clock.c +156 −91
  1195. arch/arm/mach-s3c64xx/common.c +385 −0
  1196. arch/arm/mach-s3c64xx/common.h +56 −0
  1197. arch/arm/mach-s3c64xx/cpu.c +0 −161
  1198. arch/arm/mach-s3c64xx/dev-spi.c +0 −180
  1199. arch/arm/mach-s3c64xx/dma.c +12 −11
  1200. arch/arm/mach-s3c64xx/include/mach/crag6410.h +5 −2
  1201. arch/arm/mach-s3c64xx/include/mach/entry-macro.S +4 −3
  1202. arch/arm/mach-s3c64xx/include/mach/gpio.h +1 −1
  1203. arch/arm/mach-s3c64xx/include/mach/irqs.h +1 −1
  1204. arch/arm/mach-s3c64xx/include/mach/map.h +2 −0
  1205. arch/arm/mach-s3c64xx/include/mach/system.h +0 −11
  1206. arch/arm/mach-s3c64xx/include/mach/vmalloc.h +0 −20
  1207. arch/arm/mach-s3c64xx/irq-eint.c +0 −213
  1208. arch/arm/mach-s3c64xx/irq.c +0 −47
  1209. arch/arm/mach-s3c64xx/mach-anw6410.c +5 −1
  1210. arch/arm/mach-s3c64xx/mach-crag6410-module.c +53 −3
  1211. arch/arm/mach-s3c64xx/mach-crag6410.c +48 −18
  1212. arch/arm/mach-s3c64xx/mach-hmt.c +5 −1
  1213. arch/arm/mach-s3c64xx/mach-mini6410.c +5 −1
  1214. arch/arm/mach-s3c64xx/mach-ncp.c +5 −1
  1215. arch/arm/mach-s3c64xx/mach-real6410.c +5 −1
  1216. arch/arm/mach-s3c64xx/mach-smartq.c +2 −0
  1217. arch/arm/mach-s3c64xx/mach-smartq5.c +4 −1
  1218. arch/arm/mach-s3c64xx/mach-smartq7.c +4 −1
  1219. arch/arm/mach-s3c64xx/mach-smdk6400.c +5 −1
  1220. arch/arm/mach-s3c64xx/mach-smdk6410.c +5 −1
  1221. arch/arm/mach-s3c64xx/pm.c +174 −2
  1222. arch/arm/mach-s3c64xx/s3c6400.c +11 −9
  1223. arch/arm/mach-s3c64xx/s3c6410.c +11 −10
  1224. arch/arm/mach-s3c64xx/setup-sdhci.c +0 −24
  1225. arch/arm/mach-s3c64xx/setup-spi.c +45 −0
  1226. arch/arm/mach-s5p64x0/Kconfig +29 −2
  1227. arch/arm/mach-s5p64x0/Makefile +8 −4
  1228. arch/arm/mach-s5p64x0/clock-s5p6440.c +97 −73
  1229. arch/arm/mach-s5p64x0/clock-s5p6450.c +97 −61
  1230. arch/arm/mach-s5p64x0/clock.c +3 −3
  1231. arch/arm/mach-s5p64x0/common.c +447 −0
  1232. arch/arm/mach-s5p64x0/common.h +57 −0
  1233. arch/arm/mach-s5p64x0/cpu.c +0 −215
  1234. arch/arm/mach-s5p64x0/dev-spi.c +0 −224
  1235. arch/arm/mach-s5p64x0/dma.c +65 −162
  1236. arch/arm/mach-s5p64x0/include/mach/entry-macro.S +4 −3
  1237. arch/arm/mach-s5p64x0/include/mach/irqs.h +2 −0
  1238. arch/arm/mach-s5p64x0/include/mach/map.h +2 −0
  1239. arch/arm/mach-s5p64x0/include/mach/system.h +0 −2
  1240. arch/arm/mach-s5p64x0/include/mach/vmalloc.h +0 −20
  1241. arch/arm/mach-s5p64x0/init.c +0 −73
  1242. arch/arm/mach-s5p64x0/irq-eint.c +0 −155
  1243. arch/arm/mach-s5p64x0/mach-smdk6440.c +31 −2
  1244. arch/arm/mach-s5p64x0/mach-smdk6450.c +31 −3
  1245. arch/arm/mach-s5p64x0/pm.c +6 −4
  1246. arch/arm/mach-s5p64x0/setup-sdhci-gpio.c +104 −0
  1247. arch/arm/mach-s5p64x0/setup-spi.c +55 −0
  1248. arch/arm/mach-s5pc100/Kconfig +5 −0
  1249. arch/arm/mach-s5pc100/Makefile +12 −16
  1250. arch/arm/mach-s5pc100/clock.c +177 −113
  1251. arch/arm/mach-s5pc100/common.c +91 −27
  1252. arch/arm/mach-s5pc100/common.h +37 −0
  1253. arch/arm/mach-s5pc100/dev-spi.c +0 −227
  1254. arch/arm/mach-s5pc100/dma.c +69 −178
  1255. arch/arm/mach-s5pc100/include/mach/entry-macro.S +0 −25
  1256. arch/arm/mach-s5pc100/include/mach/irqs.h +2 −0
  1257. arch/arm/mach-s5pc100/include/mach/map.h +3 −0
  1258. arch/arm/mach-s5pc100/include/mach/system.h +0 −2
  1259. arch/arm/mach-s5pc100/include/mach/vmalloc.h +0 −17
  1260. arch/arm/mach-s5pc100/init.c +0 −24
  1261. arch/arm/mach-s5pc100/mach-smdkc100.c +6 −2
  1262. arch/arm/mach-s5pc100/setup-sdhci.c +0 −23
  1263. arch/arm/mach-s5pc100/setup-spi.c +65 −0
  1264. arch/arm/mach-s5pv210/Kconfig +5 −0
  1265. arch/arm/mach-s5pv210/Makefile +11 −9
  1266. arch/arm/mach-s5pv210/clock.c +203 −126
  1267. arch/arm/mach-s5pv210/common.c +83 −24
  1268. arch/arm/mach-s5pv210/common.h +37 −0
  1269. arch/arm/mach-s5pv210/dev-spi.c +0 −175
  1270. arch/arm/mach-s5pv210/dma.c +69 −172
  1271. arch/arm/mach-s5pv210/include/mach/entry-macro.S +0 −37
  1272. arch/arm/mach-s5pv210/include/mach/irqs.h +2 −0
  1273. arch/arm/mach-s5pv210/include/mach/map.h +2 −0
  1274. arch/arm/mach-s5pv210/include/mach/system.h +0 −2
  1275. arch/arm/mach-s5pv210/include/mach/vmalloc.h +0 −22
  1276. arch/arm/mach-s5pv210/init.c +0 −44
  1277. arch/arm/mach-s5pv210/mach-aquila.c +7 −4
  1278. arch/arm/mach-s5pv210/mach-goni.c +8 −6
  1279. arch/arm/mach-s5pv210/mach-smdkc110.c +7 −3
  1280. arch/arm/mach-s5pv210/mach-smdkv210.c +10 −10
  1281. arch/arm/mach-s5pv210/mach-torbreck.c +6 −2
  1282. arch/arm/mach-s5pv210/pm.c +6 −4
  1283. arch/arm/mach-s5pv210/setup-sdhci.c +0 −22
  1284. arch/arm/mach-s5pv210/setup-spi.c +51 −0
  1285. arch/arm/mach-sa1100/assabet.c +14 −1
  1286. arch/arm/mach-sa1100/badge4.c +1 −0
  1287. arch/arm/mach-sa1100/cerf.c +12 −0
  1288. arch/arm/mach-sa1100/clock.c +66 −25
  1289. arch/arm/mach-sa1100/collie.c +18 −1
  1290. arch/arm/mach-sa1100/generic.c +37 −1
  1291. arch/arm/mach-sa1100/generic.h +1 −0
  1292. arch/arm/mach-sa1100/h3100.c +1 −0
  1293. arch/arm/mach-sa1100/h3600.c +1 −0
  1294. arch/arm/mach-sa1100/hackkit.c +1 −0
  1295. arch/arm/mach-sa1100/include/mach/gpio.h +0 −3
  1296. arch/arm/mach-sa1100/include/mach/mcp.h +2 −0
  1297. arch/arm/mach-sa1100/include/mach/system.h +0 −13
  1298. arch/arm/mach-sa1100/include/mach/vmalloc.h +0 −4
  1299. arch/arm/mach-sa1100/jornada720.c +1 −0
  1300. arch/arm/mach-sa1100/lart.c +11 −0
  1301. arch/arm/mach-sa1100/nanoengine.c +2 −0
  1302. arch/arm/mach-sa1100/pci-nanoengine.c +7 −6
  1303. arch/arm/mach-sa1100/pleb.c +1 −0
  1304. arch/arm/mach-sa1100/shannon.c +12 −0
  1305. arch/arm/mach-sa1100/simpad.c +18 −1
  1306. arch/arm/mach-sa1100/time.c +3 −25
  1307. arch/arm/mach-shark/core.c +2 −2
  1308. arch/arm/mach-shark/include/mach/system.h +0 −3
  1309. arch/arm/mach-shark/include/mach/vmalloc.h +0 −4
  1310. arch/arm/mach-shmobile/Kconfig +25 −2
  1311. arch/arm/mach-shmobile/Makefile +9 −1
  1312. arch/arm/mach-shmobile/board-ag5evm.c +37 −10
  1313. arch/arm/mach-shmobile/board-ap4evb.c +44 −5
  1314. arch/arm/mach-shmobile/board-bonito.c +522 −0
  1315. arch/arm/mach-shmobile/board-g3evm.c +0 −2
  1316. arch/arm/mach-shmobile/board-g4evm.c +0 −2
  1317. arch/arm/mach-shmobile/board-kota2.c +1 −1
  1318. arch/arm/mach-shmobile/board-mackerel.c +15 −5
  1319. arch/arm/mach-shmobile/board-marzen.c +157 −0
  1320. arch/arm/mach-shmobile/clock-r8a7740.c +382 −0
  1321. arch/arm/mach-shmobile/clock-r8a7779.c +176 −0
  1322. arch/arm/mach-shmobile/clock-sh7372.c +5 −5
  1323. arch/arm/mach-shmobile/clock-sh73a0.c +120 −24
  1324. arch/arm/mach-shmobile/entry-gic.S +0 −18
  1325. arch/arm/mach-shmobile/headsmp.S +1 −1
  1326. arch/arm/mach-shmobile/hotplug.c +31 −1
  1327. arch/arm/mach-shmobile/include/mach/common.h +24 −3
  1328. arch/arm/mach-shmobile/include/mach/entry-macro.S +0 −9
  1329. arch/arm/mach-shmobile/include/mach/gpio.h +0 −2
  1330. arch/arm/mach-shmobile/include/mach/r8a7740.h +584 −0
  1331. arch/arm/mach-shmobile/include/mach/r8a7779.h +363 −0
  1332. arch/arm/mach-shmobile/include/mach/sh7372.h +4 −2
  1333. arch/arm/mach-shmobile/include/mach/system.h +1 −1
  1334. arch/arm/mach-shmobile/include/mach/vmalloc.h +0 −7
  1335. arch/arm/mach-shmobile/intc-r8a7740.c +631 −0
  1336. arch/arm/mach-shmobile/intc-r8a7779.c +58 −0
  1337. arch/arm/mach-shmobile/intc-sh7372.c +50 −0
  1338. arch/arm/mach-shmobile/pfc-r8a7740.c +2562 −0
  1339. arch/arm/mach-shmobile/pfc-r8a7779.c +2645 −0
  1340. arch/arm/mach-shmobile/platsmp.c +21 −0
  1341. arch/arm/mach-shmobile/pm-r8a7779.c +249 −0
  1342. arch/arm/mach-shmobile/pm-sh7372.c +146 −50
  1343. arch/arm/mach-shmobile/setup-r8a7740.c +352 −0
  1344. arch/arm/mach-shmobile/setup-r8a7779.c +239 −0
  1345. arch/arm/mach-shmobile/setup-sh7372.c +20 −7
  1346. arch/arm/mach-shmobile/setup-sh73a0.c +1 −1
  1347. arch/arm/mach-shmobile/sleep-sh7372.S +11 −10
  1348. arch/arm/mach-shmobile/smp-r8a7779.c +153 −0
  1349. arch/arm/mach-spear3xx/include/mach/entry-macro.S +0 −27
  1350. arch/arm/mach-spear3xx/include/mach/generic.h +2 −0
  1351. arch/arm/mach-spear3xx/include/mach/vmalloc.h +0 −19
  1352. arch/arm/mach-spear3xx/spear300_evb.c +3 −0
  1353. arch/arm/mach-spear3xx/spear310_evb.c +3 −0
  1354. arch/arm/mach-spear3xx/spear320_evb.c +3 −0
  1355. arch/arm/mach-spear6xx/include/mach/entry-macro.S +0 −36
  1356. arch/arm/mach-spear6xx/include/mach/generic.h +2 −0
  1357. arch/arm/mach-spear6xx/include/mach/vmalloc.h +0 −19
  1358. arch/arm/mach-spear6xx/spear600_evb.c +3 −0
  1359. arch/arm/mach-tcc8k/Kconfig +0 −11
  1360. arch/arm/mach-tcc8k/Makefile +0 −9
  1361. arch/arm/mach-tcc8k/Makefile.boot +0 −3
  1362. arch/arm/mach-tcc8k/board-tcc8000-sdk.c +0 −81
  1363. arch/arm/mach-tcc8k/clock.c +0 −580
  1364. arch/arm/mach-tcc8k/common.h +0 −15
  1365. arch/arm/mach-tcc8k/devices.c +0 −239
  1366. arch/arm/mach-tcc8k/io.c +0 −62
  1367. arch/arm/mach-tcc8k/irq.c +0 −111
  1368. arch/arm/mach-tcc8k/time.c +0 −134
  1369. arch/arm/mach-tegra/Kconfig +24 −7
  1370. arch/arm/mach-tegra/Makefile +20 −16
  1371. arch/arm/mach-tegra/Makefile.boot +3 −0
  1372. arch/arm/mach-tegra/board-dt-tegra20.c +40 −25
  1373. arch/arm/mach-tegra/board-dt-tegra30.c +63 −0
  1374. arch/arm/mach-tegra/board-harmony-pcie.c +0 −9
  1375. arch/arm/mach-tegra/board-harmony-pinmux.c +10 −13
  1376. arch/arm/mach-tegra/board-harmony.c +8 −5
  1377. arch/arm/mach-tegra/board-paz00-pinmux.c +11 −14
  1378. arch/arm/mach-tegra/board-paz00.c +31 −1
  1379. arch/arm/mach-tegra/board-paz00.h +3 −0
  1380. arch/arm/mach-tegra/board-pinmux.c +104 −0
  1381. arch/arm/mach-tegra/board-pinmux.h +38 −0
  1382. arch/arm/mach-tegra/board-seaboard-pinmux.c +57 −65
  1383. arch/arm/mach-tegra/board-seaboard.c +14 −7
  1384. arch/arm/mach-tegra/board-trimslice-pinmux.c +13 −14
  1385. arch/arm/mach-tegra/board-trimslice.c +4 −1
  1386. arch/arm/mach-tegra/board.h +3 −2
  1387. arch/arm/mach-tegra/clock.c +4 −21
  1388. arch/arm/mach-tegra/clock.h +0 −4
  1389. arch/arm/mach-tegra/common.c +41 −14
  1390. arch/arm/mach-tegra/include/mach/clk.h +1 −1
  1391. arch/arm/mach-tegra/include/mach/entry-macro.S +0 −36
  1392. arch/arm/mach-tegra/include/mach/io.h +0 −6
  1393. arch/arm/mach-tegra/include/mach/irqs.h +0 −2
  1394. arch/arm/mach-tegra/include/mach/kbc.h +1 −0
  1395. arch/arm/mach-tegra/include/mach/pinmux-tegra20.h +3 −3
  1396. arch/arm/mach-tegra/include/mach/pinmux-tegra30.h +320 −0
  1397. arch/arm/mach-tegra/include/mach/pinmux.h +73 −15
  1398. arch/arm/mach-tegra/include/mach/system.h +0 −4
  1399. arch/arm/mach-tegra/io.c +0 −21
  1400. arch/arm/mach-tegra/irq.c +8 −6
  1401. arch/arm/mach-tegra/pcie.c +5 −5
  1402. arch/arm/mach-tegra/pinmux-tegra20-tables.c +20 −4
  1403. arch/arm/mach-tegra/pinmux-tegra30-tables.c +376 −0
  1404. arch/arm/mach-tegra/pinmux.c +107 −46
  1405. arch/arm/mach-tegra/tegra2_clocks.c +6 −13
  1406. arch/arm/mach-tegra/timer.c +16 −26
  1407. arch/arm/mach-u300/Kconfig +2 −2
  1408. arch/arm/mach-u300/core.c +27 −7
  1409. arch/arm/mach-u300/include/mach/entry-macro.S +0 −24
  1410. arch/arm/mach-u300/include/mach/gpio-u300.h +0 −115
  1411. arch/arm/mach-u300/include/mach/irqs.h +1 −1
  1412. arch/arm/mach-u300/include/mach/memory.h +0 −19
  1413. arch/arm/mach-u300/include/mach/platform.h +1 −0
  1414. arch/arm/mach-u300/include/mach/system.h +0 −28
  1415. arch/arm/mach-u300/include/mach/vmalloc.h +0 −12
  1416. arch/arm/mach-u300/mmc.c +1 −1
  1417. arch/arm/mach-u300/timer.c +3 −12
  1418. arch/arm/mach-u300/u300-gpio.h +114 −0
  1419. arch/arm/mach-u300/u300.c +4 −1
  1420. arch/arm/mach-ux500/board-mop500-sdi.c +56 −32
  1421. arch/arm/mach-ux500/board-mop500.c +7 −3
  1422. arch/arm/mach-ux500/board-mop500.h +50 −13
  1423. arch/arm/mach-ux500/board-u5500.c +3 −1
  1424. arch/arm/mach-ux500/clock.c +51 −156
  1425. arch/arm/mach-ux500/cpu-db5500.c +22 −24
  1426. arch/arm/mach-ux500/cpu-db8500.c +4 −31
  1427. arch/arm/mach-ux500/devices-db8500.c +0 −10
  1428. arch/arm/mach-ux500/headsmp.S +2 −0
  1429. arch/arm/mach-ux500/id.c +4 −2
  1430. arch/arm/mach-ux500/include/mach/db5500-regs.h +4 −0
  1431. arch/arm/mach-ux500/include/mach/db8500-regs.h +6 −14
  1432. arch/arm/mach-ux500/include/mach/devices.h +0 −2
  1433. arch/arm/mach-ux500/include/mach/entry-macro.S +0 −2
  1434. arch/arm/mach-ux500/include/mach/gpio.h +0 −5
  1435. arch/arm/mach-ux500/include/mach/hardware.h +5 −5
  1436. arch/arm/mach-ux500/include/mach/id.h +24 −0
  1437. arch/arm/mach-ux500/include/mach/irqs-board-mop500.h +1 −1
  1438. arch/arm/mach-ux500/include/mach/system.h +0 −5
  1439. arch/arm/mach-ux500/include/mach/vmalloc.h +0 −18
  1440. arch/arm/mach-versatile/core.c +13 −6
  1441. arch/arm/mach-versatile/core.h +1 −0
  1442. arch/arm/mach-versatile/include/mach/entry-macro.S +0 −30
  1443. arch/arm/mach-versatile/include/mach/system.h +0 −16
  1444. arch/arm/mach-versatile/include/mach/vmalloc.h +0 −21
  1445. arch/arm/mach-versatile/pci.c +10 −9
  1446. arch/arm/mach-versatile/versatile_ab.c +3 −1
  1447. arch/arm/mach-versatile/versatile_dt.c +3 −0
  1448. arch/arm/mach-versatile/versatile_pb.c +3 −1
  1449. arch/arm/mach-vexpress/Kconfig +2 −0
  1450. arch/arm/mach-vexpress/include/mach/entry-macro.S +0 −2
  1451. arch/arm/mach-vexpress/include/mach/system.h +0 −4
  1452. arch/arm/mach-vexpress/include/mach/vmalloc.h +0 −21
  1453. arch/arm/mach-vexpress/platsmp.c +1 −3
  1454. arch/arm/mach-vexpress/v2m.c +4 −2
  1455. arch/arm/mach-vt8500/include/mach/vmalloc.h +0 −20
  1456. arch/arm/mach-w90x900/clksel.c +1 −1
  1457. arch/arm/mach-w90x900/cpu.c +17 −1
  1458. arch/arm/mach-w90x900/dev.c +3 −3
  1459. arch/arm/mach-w90x900/include/mach/system.h +0 −22
  1460. arch/arm/mach-w90x900/include/mach/vmalloc.h +0 −23
  1461. arch/arm/mach-w90x900/irq.c +3 −1
  1462. arch/arm/mach-w90x900/mach-nuc910evb.c +1 −0
  1463. arch/arm/mach-w90x900/mach-nuc950evb.c +1 −0
  1464. arch/arm/mach-w90x900/mach-nuc960evb.c +1 −0
  1465. arch/arm/mach-w90x900/mfp.c +1 −1
  1466. arch/arm/mach-w90x900/nuc910.h +1 −8
  1467. arch/arm/mach-w90x900/nuc950.h +1 −8
  1468. arch/arm/mach-w90x900/nuc960.h +1 −8
  1469. arch/arm/mach-w90x900/nuc9xx.h +24 −0
  1470. arch/arm/mach-w90x900/time.c +2 −0
  1471. arch/arm/mach-zynq/common.c +1 −0
  1472. arch/arm/mach-zynq/include/mach/entry-macro.S +0 −3
  1473. arch/arm/mach-zynq/include/mach/system.h +0 −5
  1474. arch/arm/mach-zynq/include/mach/vmalloc.h +0 −20
  1475. arch/arm/mm/Kconfig +33 −7
  1476. arch/arm/mm/alignment.c +1 −1
  1477. arch/arm/mm/context.c +17 −2
  1478. arch/arm/mm/fault.c +58 −111
  1479. arch/arm/mm/fault.h +26 −1
  1480. arch/arm/mm/fsr-2level.c +78 −0
  1481. arch/arm/mm/fsr-3level.c +68 −0
  1482. arch/arm/mm/idmap.c +58 −35
  1483. arch/arm/mm/init.c +22 −29
  1484. arch/arm/mm/iomap.c +0 −21
  1485. arch/arm/mm/ioremap.c +75 −44
  1486. arch/arm/mm/mm.h +14 −0
  1487. arch/arm/mm/mmap.c +168 −5
  1488. arch/arm/mm/mmu.c +82 −15
  1489. arch/arm/mm/nommu.c +3 −1
  1490. arch/arm/mm/pgd.c +47 −4
  1491. arch/arm/mm/proc-arm1020.S +3 −0
  1492. arch/arm/mm/proc-arm1020e.S +3 −0
  1493. arch/arm/mm/proc-arm1022.S +3 −0
  1494. arch/arm/mm/proc-arm1026.S +3 −0
  1495. arch/arm/mm/proc-arm6_7.S +4 −0
  1496. arch/arm/mm/proc-arm720.S +3 −0
  1497. arch/arm/mm/proc-arm740.S +3 −0
  1498. arch/arm/mm/proc-arm7tdmi.S +3 −0
  1499. arch/arm/mm/proc-arm920.S +3 −0
  1500. arch/arm/mm/proc-arm922.S +3 −0
  1501. arch/arm/mm/proc-arm925.S +3 −0
  1502. arch/arm/mm/proc-arm926.S +3 −0
  1503. arch/arm/mm/proc-arm940.S +3 −0
  1504. arch/arm/mm/proc-arm946.S +3 −0
  1505. arch/arm/mm/proc-arm9tdmi.S +3 −0
  1506. arch/arm/mm/proc-fa526.S +3 −0
  1507. arch/arm/mm/proc-feroceon.S +3 −0
  1508. arch/arm/mm/proc-macros.S +3 −2
  1509. arch/arm/mm/proc-mohawk.S +3 −0
  1510. arch/arm/mm/proc-sa110.S +3 −0
  1511. arch/arm/mm/proc-sa1100.S +3 −0
  1512. arch/arm/mm/proc-v6.S +3 −0
  1513. arch/arm/mm/proc-v7-2level.S +171 −0
  1514. arch/arm/mm/proc-v7-3level.S +150 −0
  1515. arch/arm/mm/proc-v7.S +33 −157
  1516. arch/arm/mm/proc-xsc3.S +3 −0
  1517. arch/arm/mm/proc-xscale.S +3 −0
  1518. arch/arm/nwfpe/entry.S +5 −3
  1519. arch/arm/nwfpe/fpopcode.c +0 −26
  1520. arch/arm/nwfpe/fpopcode.h +0 −3
  1521. arch/arm/plat-iop/Makefile +2 −2
  1522. arch/arm/plat-iop/io.c +0 −59
  1523. arch/arm/plat-iop/pci.c +4 −4
  1524. arch/arm/plat-iop/restart.c +19 −0
  1525. arch/arm/plat-iop/time.c +3 −13
  1526. arch/arm/plat-mxc/Kconfig +1 −0
  1527. arch/arm/plat-mxc/Makefile +0 −1
  1528. arch/arm/plat-mxc/gic.c +0 −41
  1529. arch/arm/plat-mxc/include/mach/common.h +9 −3
  1530. arch/arm/plat-mxc/include/mach/entry-macro.S +0 −11
  1531. arch/arm/plat-mxc/include/mach/iomux-mx25.h +4 −0
  1532. arch/arm/plat-mxc/include/mach/mx1.h +0 −2
  1533. arch/arm/plat-mxc/include/mach/mx3fb.h +15 −0
  1534. arch/arm/plat-mxc/include/mach/mxc.h +1 −1
  1535. arch/arm/plat-mxc/include/mach/system.h +0 −2
  1536. arch/arm/plat-mxc/include/mach/vmalloc.h +0 −22
  1537. arch/arm/plat-mxc/system.c +2 −9
  1538. arch/arm/plat-mxc/time.c +3 −12
  1539. arch/arm/plat-mxc/tzic.c +29 −11
  1540. arch/arm/plat-nomadik/include/plat/ste_dma40.h +8 −3
  1541. arch/arm/plat-nomadik/timer.c +5 −15
  1542. arch/arm/plat-omap/Makefile +1 −2
  1543. arch/arm/plat-omap/common.c +11 −0
  1544. arch/arm/plat-omap/counter_32k.c +3 −37
  1545. arch/arm/plat-omap/cpu-omap.c +0 −171
  1546. arch/arm/plat-omap/devices.c +2 −3
  1547. arch/arm/plat-omap/dma.c +21 −1
  1548. arch/arm/plat-omap/include/plat/am33xx.h +25 −0
  1549. arch/arm/plat-omap/include/plat/clkdev_omap.h +1 −0
  1550. arch/arm/plat-omap/include/plat/clock.h +3 −1
  1551. arch/arm/plat-omap/include/plat/common.h +0 −83
  1552. arch/arm/plat-omap/include/plat/cpu.h +56 −0
  1553. arch/arm/plat-omap/include/plat/hardware.h +2 −1
  1554. arch/arm/plat-omap/include/plat/io.h +12 −76
  1555. arch/arm/plat-omap/include/plat/iommu.h +28 −3
  1556. arch/arm/plat-omap/include/plat/iovmm.h +6 −6
  1557. arch/arm/plat-omap/include/plat/irqs.h +1 −15
  1558. arch/arm/plat-omap/include/plat/mmc.h +1 −0
  1559. arch/arm/plat-omap/include/plat/omap-secure.h +13 −0
  1560. arch/arm/plat-omap/include/plat/omap-serial.h +31 −6
  1561. arch/arm/plat-omap/include/plat/omap34xx.h +2 −0
  1562. arch/arm/plat-omap/include/plat/omap44xx.h +1 −0
  1563. arch/arm/plat-omap/include/plat/omap_hwmod.h +6 −0
  1564. arch/arm/plat-omap/include/plat/serial.h +13 −14
  1565. arch/arm/plat-omap/include/plat/sram.h +5 −1
  1566. arch/arm/plat-omap/include/plat/system.h +0 −2
  1567. arch/arm/plat-omap/include/plat/ti81xx.h +9 −9
  1568. arch/arm/plat-omap/include/plat/uncompress.h +7 −4
  1569. arch/arm/plat-omap/include/plat/usb.h +32 −3
  1570. arch/arm/plat-omap/io.c +0 −159
  1571. arch/arm/plat-omap/sram.c +13 −4
  1572. arch/arm/plat-orion/Makefile +1 −1
  1573. arch/arm/plat-orion/addr-map.c +174 −0
  1574. arch/arm/plat-orion/common.c +9 −34
  1575. arch/arm/plat-orion/include/plat/addr-map.h +53 −0
  1576. arch/arm/plat-orion/include/plat/audio.h +0 −3
  1577. arch/arm/plat-orion/include/plat/common.h +4 −13
  1578. arch/arm/plat-orion/include/plat/ehci-orion.h +0 −1
  1579. arch/arm/plat-orion/include/plat/mv_xor.h +0 −6
  1580. arch/arm/plat-orion/include/plat/mvsdio.h +0 −1
  1581. arch/arm/plat-orion/include/plat/pcie.h +1 −2
  1582. arch/arm/plat-orion/pcie.c +3 −3
  1583. arch/arm/plat-orion/time.c +3 −18
  1584. arch/arm/plat-pxa/include/plat/gpio-pxa.h +0 −44
  1585. arch/arm/plat-pxa/include/plat/gpio.h +0 −30
  1586. arch/arm/plat-s3c24xx/common-smdk.c +1 −1
  1587. arch/arm/plat-s3c24xx/cpu-freq.c +1 −1
  1588. arch/arm/plat-s3c24xx/cpu.c +0 −25
  1589. arch/arm/plat-s3c24xx/dma.c +1 −2
  1590. arch/arm/plat-s3c24xx/irq.c +1 −1
  1591. arch/arm/plat-s3c24xx/pm-simtec.c +0 −1
  1592. arch/arm/plat-s3c24xx/s3c2410-clock.c +1 −1
  1593. arch/arm/plat-s3c24xx/s3c2412-iotiming.c +1 −1
  1594. arch/arm/plat-s3c24xx/s3c2443-clock.c +26 −13
  1595. arch/arm/plat-s5p/Kconfig +1 −0
  1596. arch/arm/plat-s5p/Makefile +0 −1
  1597. arch/arm/plat-s5p/clock.c +1 −1
  1598. arch/arm/plat-s5p/cpu.c +0 −144
  1599. arch/arm/plat-s5p/irq-eint.c +1 −1
  1600. arch/arm/plat-s5p/s5p-time.c +3 −16
  1601. arch/arm/plat-samsung/Kconfig +22 −2
  1602. arch/arm/plat-samsung/clock-clksrc.c +1 −1
  1603. arch/arm/plat-samsung/clock.c +1 −1
  1604. arch/arm/plat-samsung/devs.c +128 −0
  1605. arch/arm/plat-samsung/dma-ops.c +10 −9
  1606. arch/arm/plat-samsung/include/plat/cpu.h +14 −20
  1607. arch/arm/plat-samsung/include/plat/devs.h +2 −7
  1608. arch/arm/plat-samsung/include/plat/dma-ops.h +4 −2
  1609. arch/arm/plat-samsung/include/plat/dma-pl330.h +2 −1
  1610. arch/arm/plat-samsung/include/plat/dma-s3c24xx.h +1 −1
  1611. arch/arm/plat-samsung/include/plat/dma.h +5 −1
  1612. arch/arm/plat-samsung/include/plat/exynos4.h +0 −35
  1613. arch/arm/plat-samsung/include/plat/irqs.h +2 −1
  1614. arch/arm/plat-samsung/include/plat/keypad.h +1 −26
  1615. arch/arm/plat-samsung/include/plat/pm.h +7 −1
  1616. arch/arm/plat-samsung/include/plat/regs-serial.h +22 −23
  1617. arch/arm/plat-samsung/include/plat/reset.h +0 −16
  1618. arch/arm/plat-samsung/include/plat/s3c2412.h +3 −0
  1619. arch/arm/plat-samsung/include/plat/s3c2416.h +2 −0
  1620. arch/arm/plat-samsung/include/plat/s3c2443.h +2 −0
  1621. arch/arm/plat-samsung/include/plat/s3c6400.h +0 −36
  1622. arch/arm/plat-samsung/include/plat/s3c6410.h +0 −29
  1623. arch/arm/plat-samsung/include/plat/s3c64xx-spi.h +18 −8
  1624. arch/arm/plat-samsung/include/plat/s5p6440.h +0 −36
  1625. arch/arm/plat-samsung/include/plat/s5p6450.h +0 −36
  1626. arch/arm/plat-samsung/include/plat/s5pc100.h +0 −33
  1627. arch/arm/plat-samsung/include/plat/s5pv210.h +0 −33
  1628. arch/arm/plat-samsung/include/plat/sdhci.h +45 −31
  1629. arch/arm/plat-samsung/include/plat/system-reset.h +0 −31
  1630. arch/arm/plat-samsung/include/plat/udc.h +1 −14
  1631. arch/arm/plat-samsung/include/plat/watchdog-reset.h +1 −0
  1632. arch/arm/plat-samsung/platformdata.c +2 −0
  1633. arch/arm/plat-samsung/pm-gpio.c +1 −1
  1634. arch/arm/plat-samsung/wakeup-mask.c +1 −1
  1635. arch/arm/plat-spear/Makefile +1 −1
  1636. arch/arm/plat-spear/include/plat/system.h +0 −15
  1637. arch/arm/plat-spear/include/plat/vmalloc.h +0 −19
  1638. arch/arm/plat-spear/restart.c +27 −0
  1639. arch/arm/plat-tcc/Kconfig +0 −20
  1640. arch/arm/plat-tcc/Makefile +0 −3
  1641. arch/arm/plat-tcc/clock.c +0 −179
  1642. arch/arm/plat-tcc/include/mach/clock.h +0 −48
  1643. arch/arm/plat-tcc/include/mach/debug-macro.S +0 −32
  1644. arch/arm/plat-tcc/include/mach/entry-macro.S +0 −68
  1645. arch/arm/plat-tcc/include/mach/hardware.h +0 −43
  1646. arch/arm/plat-tcc/include/mach/io.h +0 −23
  1647. arch/arm/plat-tcc/include/mach/irqs.h +0 −83
  1648. arch/arm/plat-tcc/include/mach/system.h +0 −31
  1649. arch/arm/plat-tcc/include/mach/tcc8k-regs.h +0 −807
  1650. arch/arm/plat-tcc/include/mach/timex.h +0 −5
  1651. arch/arm/plat-tcc/include/mach/uncompress.h +0 −34
  1652. arch/arm/plat-tcc/include/mach/vmalloc.h +0 −10
  1653. arch/arm/plat-tcc/system.c +0 −25
  1654. arch/arm/plat-versatile/headsmp.S +1 −0
  1655. arch/arm/plat-versatile/sched-clock.c +6 −23
  1656. arch/arm/tools/mach-types +378 −335
  1657. arch/avr32/boards/atngw100/setup.c +1 −1
  1658. arch/avr32/boards/atstk1000/atstk1002.c +1 −1
  1659. arch/avr32/boards/favr-32/setup.c +1 −1
  1660. arch/avr32/boards/hammerhead/setup.c +1 −1
  1661. arch/avr32/boards/merisc/merisc_sysfs.c +0 −1
  1662. arch/avr32/boards/merisc/setup.c +1 −1
  1663. arch/avr32/boards/mimc200/setup.c +1 −1
  1664. arch/avr32/include/asm/ipcbuf.h +1 −29
  1665. arch/avr32/include/asm/socket.h +3 −0
  1666. arch/avr32/include/asm/system.h +1 −1
  1667. arch/avr32/include/asm/thread_info.h +0 −2
  1668. arch/avr32/include/asm/types.h +0 −6
  1669. arch/avr32/kernel/cpu.c +37 −37
  1670. arch/avr32/kernel/irq.c +1 −1
  1671. arch/avr32/kernel/traps.c +1 −1
  1672. arch/avr32/mach-at32ap/at32ap700x.c +4 −4
  1673. arch/avr32/mach-at32ap/include/mach/board.h +2 −5
  1674. arch/blackfin/configs/BF518F-EZBRD_defconfig +1 −1
  1675. arch/blackfin/configs/BF526-EZBRD_defconfig +1 −1
  1676. arch/blackfin/configs/BF527-AD7160-EVAL_defconfig +1 −1
  1677. arch/blackfin/configs/BF527-EZKIT-V2_defconfig +1 −1
  1678. arch/blackfin/configs/BF527-EZKIT_defconfig +1 −1
  1679. arch/blackfin/configs/BF533-EZKIT_defconfig +1 −1
  1680. arch/blackfin/configs/BF533-STAMP_defconfig +1 −1
  1681. arch/blackfin/configs/BF537-STAMP_defconfig +1 −1
  1682. arch/blackfin/configs/BF538-EZKIT_defconfig +1 −1
  1683. arch/blackfin/configs/BF548-EZKIT_defconfig +1 −1
  1684. arch/blackfin/configs/BF561-ACVILON_defconfig +1 −1
  1685. arch/blackfin/configs/BF561-EZKIT-SMP_defconfig +1 −1
  1686. arch/blackfin/configs/BF561-EZKIT_defconfig +1 −1
  1687. arch/blackfin/configs/BlackStamp_defconfig +1 −1
  1688. arch/blackfin/configs/CM-BF527_defconfig +1 −1
  1689. arch/blackfin/configs/CM-BF533_defconfig +1 −1
  1690. arch/blackfin/configs/CM-BF537E_defconfig +1 −1
  1691. arch/blackfin/configs/CM-BF537U_defconfig +1 −1
  1692. arch/blackfin/configs/CM-BF548_defconfig +1 −1
  1693. arch/blackfin/configs/CM-BF561_defconfig +1 −1
  1694. arch/blackfin/configs/DNP5370_defconfig +1 −1
  1695. arch/blackfin/configs/H8606_defconfig +1 −1
  1696. arch/blackfin/configs/IP0X_defconfig +1 −1
  1697. arch/blackfin/configs/PNAV-10_defconfig +1 −1
  1698. arch/blackfin/configs/SRV1_defconfig +1 −1
  1699. arch/blackfin/configs/TCM-BF518_defconfig +1 −1
  1700. arch/blackfin/configs/TCM-BF537_defconfig +1 −1
  1701. arch/blackfin/include/asm/bfin_serial.h +0 −3
  1702. arch/blackfin/include/asm/cpu.h +3 −0
  1703. arch/blackfin/include/asm/pci.h +0 −4
  1704. arch/blackfin/include/asm/smp.h +4 −1
  1705. arch/blackfin/include/asm/thread_info.h +0 −2
  1706. arch/blackfin/kernel/setup.c +12 −4
  1707. arch/blackfin/kernel/time-ts.c +7 −1
  1708. arch/blackfin/mach-bf518/boards/ezbrd.c +6 −4
  1709. arch/blackfin/mach-bf518/boards/tcm-bf518.c +2 −2
  1710. arch/blackfin/mach-bf527/boards/ad7160eval.c +2 −2
  1711. arch/blackfin/mach-bf527/boards/cm_bf527.c +2 −2
  1712. arch/blackfin/mach-bf527/boards/ezbrd.c +2 −2
  1713. arch/blackfin/mach-bf527/boards/ezkit.c +2 −2
  1714. arch/blackfin/mach-bf527/boards/tll6527m.c +2 −2
  1715. arch/blackfin/mach-bf533/boards/H8606.c +3 −3
  1716. arch/blackfin/mach-bf533/boards/blackstamp.c +2 −2
  1717. arch/blackfin/mach-bf533/boards/cm_bf533.c +3 −3
  1718. arch/blackfin/mach-bf533/boards/ezkit.c +2 −2
  1719. arch/blackfin/mach-bf533/boards/ip0x.c +2 −2
  1720. arch/blackfin/mach-bf533/boards/stamp.c +166 −13
  1721. arch/blackfin/mach-bf537/boards/cm_bf537e.c +3 −3
  1722. arch/blackfin/mach-bf537/boards/cm_bf537u.c +3 −3
  1723. arch/blackfin/mach-bf537/boards/dnp5370.c +2 −2
  1724. arch/blackfin/mach-bf537/boards/minotaur.c +3 −3
  1725. arch/blackfin/mach-bf537/boards/pnav10.c +3 −3
  1726. arch/blackfin/mach-bf537/boards/stamp.c +74 −4
  1727. arch/blackfin/mach-bf537/boards/tcm_bf537.c +3 −3
  1728. arch/blackfin/mach-bf538/boards/ezkit.c +3 −3
  1729. arch/blackfin/mach-bf548/boards/cm_bf548.c +3 −3
  1730. arch/blackfin/mach-bf548/boards/ezkit.c +71 −2
  1731. arch/blackfin/mach-bf561/boards/acvilon.c +2 −2
  1732. arch/blackfin/mach-bf561/boards/cm_bf561.c +3 −3
  1733. arch/blackfin/mach-bf561/boards/ezkit.c +98 −3
  1734. arch/blackfin/mach-bf561/include/mach/pll.h +3 −1
  1735. arch/blackfin/mach-bf561/smp.c +3 −2
  1736. arch/blackfin/mach-common/smp.c +44 −17
  1737. arch/c6x/Kconfig +174 −0
  1738. arch/c6x/Makefile +60 −0
  1739. arch/c6x/boot/Makefile +30 −0
  1740. arch/c6x/boot/dts/dsk6455.dts +62 −0
  1741. arch/c6x/boot/dts/evmc6457.dts +48 −0
  1742. arch/c6x/boot/dts/evmc6472.dts +73 −0
  1743. arch/c6x/boot/dts/evmc6474.dts +58 −0
  1744. arch/c6x/boot/dts/tms320c6455.dtsi +96 −0
  1745. arch/c6x/boot/dts/tms320c6457.dtsi +68 −0
  1746. arch/c6x/boot/dts/tms320c6472.dtsi +134 −0
  1747. arch/c6x/boot/dts/tms320c6474.dtsi +89 −0
  1748. arch/c6x/boot/linked_dtb.S +2 −0
  1749. arch/c6x/configs/dsk6455_defconfig +44 −0
  1750. arch/c6x/configs/evmc6457_defconfig +41 −0
  1751. arch/c6x/configs/evmc6472_defconfig +42 −0
  1752. arch/c6x/configs/evmc6474_defconfig +42 −0
  1753. arch/c6x/include/asm/Kbuild +54 −0
  1754. arch/c6x/include/asm/asm-offsets.h +1 −0
  1755. arch/c6x/include/asm/bitops.h +105 −0
  1756. arch/c6x/include/asm/byteorder.h +12 −0
  1757. arch/c6x/include/asm/cache.h +90 −0
  1758. arch/c6x/include/asm/cacheflush.h +65 −0
  1759. arch/c6x/include/asm/checksum.h +34 −0
  1760. arch/c6x/include/asm/clkdev.h +22 −0
  1761. arch/c6x/include/asm/clock.h +148 −0
  1762. arch/c6x/include/asm/delay.h +67 −0
  1763. arch/c6x/include/asm/dma-mapping.h +91 −0
  1764. arch/c6x/include/asm/dscr.h +34 −0
  1765. arch/c6x/include/asm/elf.h +113 −0
  1766. arch/c6x/include/asm/ftrace.h +6 −0
  1767. arch/c6x/include/asm/hardirq.h +20 −0
  1768. arch/c6x/include/asm/irq.h +302 −0
  1769. arch/c6x/include/asm/irqflags.h +72 −0
  1770. arch/c6x/include/asm/linkage.h +30 −0
  1771. arch/c6x/include/asm/megamod-pic.h +9 −0
  1772. arch/c6x/include/asm/mmu.h +18 −0
  1773. arch/c6x/include/asm/module.h +33 −0
  1774. arch/c6x/include/asm/mutex.h +6 −0
  1775. arch/c6x/include/asm/page.h +11 −0
  1776. arch/c6x/include/asm/pgtable.h +81 −0
  1777. arch/c6x/include/asm/processor.h +132 −0
  1778. arch/c6x/include/asm/procinfo.h +28 −0
  1779. arch/c6x/include/asm/prom.h +1 −0
  1780. arch/c6x/include/asm/ptrace.h +174 −0
  1781. arch/c6x/include/asm/sections.h +12 −0
  1782. arch/c6x/include/asm/setup.h +32 −0
  1783. arch/c6x/include/asm/sigcontext.h +80 −0
  1784. arch/c6x/include/asm/signal.h +17 −0
  1785. arch/c6x/include/asm/soc.h +35 −0
  1786. arch/c6x/include/asm/string.h +21 −0
  1787. arch/c6x/include/asm/swab.h +54 −0
  1788. arch/c6x/include/asm/syscall.h +123 −0
  1789. arch/c6x/include/asm/syscalls.h +55 −0
  1790. arch/c6x/include/asm/system.h +168 −0
  1791. arch/c6x/include/asm/thread_info.h +121 −0
  1792. arch/c6x/include/asm/timer64.h +6 −0
  1793. arch/c6x/include/asm/timex.h +33 −0
  1794. arch/c6x/include/asm/tlb.h +8 −0
  1795. arch/c6x/include/asm/traps.h +36 −0
  1796. arch/c6x/include/asm/uaccess.h +107 −0
  1797. arch/c6x/include/asm/unaligned.h +170 −0
  1798. arch/c6x/include/asm/unistd.h +26 −0
  1799. arch/c6x/kernel/Makefile +12 −0
  1800. arch/c6x/kernel/asm-offsets.c +123 −0
  1801. arch/c6x/kernel/c6x_ksyms.c +66 −0
  1802. arch/c6x/kernel/devicetree.c +53 −0
  1803. arch/c6x/kernel/dma.c +153 −0
  1804. arch/c6x/kernel/entry.S +803 −0
  1805. arch/c6x/kernel/head.S +84 −0
  1806. arch/c6x/kernel/irq.c +728 −0
  1807. arch/c6x/kernel/module.c +123 −0
  1808. arch/c6x/kernel/process.c +265 −0
  1809. arch/c6x/kernel/ptrace.c +187 −0
  1810. arch/c6x/kernel/setup.c +510 −0
  1811. arch/c6x/kernel/signal.c +377 −0
  1812. arch/c6x/kernel/soc.c +91 −0
  1813. arch/c6x/kernel/switch_to.S +74 −0
  1814. arch/c6x/kernel/sys_c6x.c +74 −0
  1815. arch/c6x/kernel/time.c +65 −0
  1816. arch/c6x/kernel/traps.c +423 −0
  1817. arch/c6x/kernel/vectors.S +81 −0
  1818. arch/c6x/kernel/vmlinux.lds.S +162 −0
  1819. arch/c6x/lib/Makefile +7 −0
  1820. arch/c6x/lib/checksum.c +36 −0
  1821. arch/c6x/lib/csum_64plus.S +419 −0
  1822. arch/c6x/lib/divi.S +53 −0
  1823. arch/c6x/lib/divremi.S +46 −0
  1824. arch/c6x/lib/divremu.S +87 −0
  1825. arch/c6x/lib/divu.S +98 −0
  1826. arch/c6x/lib/llshl.S +37 −0
  1827. arch/c6x/lib/llshr.S +38 −0
  1828. arch/c6x/lib/llshru.S +38 −0
  1829. arch/c6x/lib/memcpy_64plus.S +46 −0
  1830. arch/c6x/lib/mpyll.S +49 −0
  1831. arch/c6x/lib/negll.S +31 −0
  1832. arch/c6x/lib/pop_rts.S +32 −0
  1833. arch/c6x/lib/push_rts.S +31 −0
  1834. arch/c6x/lib/remi.S +64 −0
  1835. arch/c6x/lib/remu.S +82 −0
  1836. arch/c6x/lib/strasgi.S +89 −0
  1837. arch/c6x/lib/strasgi_64plus.S +39 −0
  1838. arch/c6x/mm/Makefile +5 −0
  1839. arch/c6x/mm/dma-coherent.c +143 −0
  1840. arch/c6x/mm/init.c +113 −0
  1841. arch/c6x/platforms/Kconfig +16 −0
  1842. arch/c6x/platforms/Makefile +12 −0
  1843. arch/c6x/platforms/cache.c +445 −0
  1844. arch/c6x/platforms/dscr.c +598 −0
  1845. arch/c6x/platforms/emif.c +87 −0
  1846. arch/c6x/platforms/megamod-pic.c +349 −0
  1847. arch/c6x/platforms/platform.c +17 −0
  1848. arch/c6x/platforms/pll.c +444 −0
  1849. arch/c6x/platforms/plldata.c +404 −0
  1850. arch/c6x/platforms/timer64.c +244 −0
  1851. arch/cris/Kconfig +1 −4
  1852. arch/cris/Kconfig.debug +0 −1
  1853. arch/cris/arch-v32/drivers/axisflashmap.c +3 −4
  1854. arch/cris/include/asm/ipcbuf.h +1 −29
  1855. arch/cris/include/asm/socket.h +3 −0
  1856. arch/cris/include/asm/thread_info.h +0 −2
  1857. arch/cris/include/asm/types.h +0 −6
  1858. arch/frv/Kconfig +2 −10
  1859. arch/frv/include/asm/io.h +1 −1
  1860. arch/frv/include/asm/ipcbuf.h +1 −30
  1861. arch/frv/include/asm/param.h +1 −15
  1862. arch/frv/include/asm/socket.h +3 −0
  1863. arch/frv/include/asm/thread_info.h +0 −2
  1864. arch/frv/include/asm/types.h +0 −6
  1865. arch/frv/mb93090-mb00/Makefile +1 −1
  1866. arch/frv/mb93090-mb00/pci-frv.c +0 −20
  1867. arch/frv/mb93090-mb00/pci-frv.h +0 −2
  1868. arch/frv/mb93090-mb00/pci-iomap.c +0 −29
  1869. arch/frv/mb93090-mb00/pci-vdk.c +5 −6
  1870. arch/h8300/Kconfig +1 −0
  1871. arch/h8300/include/asm/ipcbuf.h +1 −29
  1872. arch/h8300/include/asm/pci.h +0 −5
  1873. arch/h8300/include/asm/socket.h +3 −0
  1874. arch/h8300/include/asm/thread_info.h +0 −2
  1875. arch/h8300/include/asm/types.h +0 −17
  1876. arch/hexagon/Kconfig +1 −3
  1877. arch/ia64/Kconfig +1 −4
  1878. arch/ia64/hp/common/aml_nfw.c +1 −1
  1879. arch/ia64/include/asm/intrinsics.h +13 −8
  1880. arch/ia64/include/asm/iommu.h +2 −0
  1881. arch/ia64/include/asm/ipcbuf.h +1 −28
  1882. arch/ia64/include/asm/pci.h +0 −6
  1883. arch/ia64/include/asm/processor.h +0 −1
  1884. arch/ia64/include/asm/ptrace.h +12 −1
  1885. arch/ia64/include/asm/socket.h +3 −0
  1886. arch/ia64/include/asm/thread_info.h +0 −2
  1887. arch/ia64/include/asm/types.h +0 −2
  1888. arch/ia64/include/asm/unistd.h +2 −1
  1889. arch/ia64/include/asm/xen/interface.h +1 −1
  1890. arch/ia64/kernel/acpi.c +6 −4
  1891. arch/ia64/kernel/entry.S +1 −0
  1892. arch/ia64/kernel/err_inject.c +26 −26
  1893. arch/ia64/kernel/machine_kexec.c +2 −2
  1894. arch/ia64/kernel/pci-dma.c +1 −0
  1895. arch/ia64/kernel/perfmon.c +1 −1
  1896. arch/ia64/kernel/ptrace.c +2 −16
  1897. arch/ia64/kernel/setup.c +19 −0
  1898. arch/ia64/kernel/topology.c +5 −5
  1899. arch/ia64/kvm/kvm-ia64.c +5 −7
  1900. arch/ia64/pci/pci.c +20 −23
  1901. arch/ia64/sn/kernel/irq.c +2 −3
  1902. arch/ia64/sn/pci/pcibr/pcibr_provider.c +1 −2
  1903. arch/ia64/sn/pci/tioca_provider.c +2 −2
  1904. arch/m32r/include/asm/ipcbuf.h +1 −29
  1905. arch/m32r/include/asm/param.h +1 −17
  1906. arch/m32r/include/asm/socket.h +3 −0
  1907. arch/m32r/include/asm/thread_info.h +0 −2
  1908. arch/m32r/include/asm/types.h +0 −6
  1909. arch/m68k/Kconfig +15 −5
  1910. arch/m68k/Kconfig.cpu +50 −28
  1911. arch/m68k/Kconfig.debug +19 −8
  1912. arch/m68k/Kconfig.devices +6 −40
  1913. arch/m68k/Kconfig.machine +4 −0
  1914. arch/m68k/amiga/config.c +1 −2
  1915. arch/m68k/atari/ataints.c +0 −2
  1916. arch/m68k/atari/debug.c +0 −1
  1917. arch/m68k/configs/amiga_defconfig +0 −1
  1918. arch/m68k/configs/apollo_defconfig +0 −2
  1919. arch/m68k/configs/atari_defconfig +0 −3
  1920. arch/m68k/configs/multi_defconfig +0 −5
  1921. arch/m68k/configs/mvme16x_defconfig +0 −2
  1922. arch/m68k/emu/nfeth.c +1 −1
  1923. arch/m68k/hp300/config.c +2 −1
  1924. arch/m68k/include/asm/anchor.h +0 −112
  1925. arch/m68k/include/asm/atarihw.h +2 −0
  1926. arch/m68k/include/asm/atomic.h +10 −0
  1927. arch/m68k/include/asm/blinken.h +4 −4
  1928. arch/m68k/include/asm/cacheflush_mm.h +83 −5
  1929. arch/m68k/include/asm/checksum.h +5 −26
  1930. arch/m68k/include/asm/div64.h +4 −4
  1931. arch/m68k/include/asm/elf.h +3 −3
  1932. arch/m68k/include/asm/entry.h +9 −1
  1933. arch/m68k/include/asm/fpu.h +2 −0
  1934. arch/m68k/include/asm/gpio.h +2 −1
  1935. arch/m68k/include/asm/ipcbuf.h +1 −29
  1936. arch/m68k/include/asm/irq.h +3 −2
  1937. arch/m68k/include/asm/m54xxacr.h +31 −1
  1938. arch/m68k/include/asm/mac_baboon.h +6 −0
  1939. arch/m68k/include/asm/mac_iop.h +2 −0
  1940. arch/m68k/include/asm/mac_oss.h +4 −19
  1941. arch/m68k/include/asm/mac_psc.h +4 −0
  1942. arch/m68k/include/asm/mac_via.h +9 −0
  1943. arch/m68k/include/asm/macintosh.h +2 −8
  1944. arch/m68k/include/asm/macints.h +3 −3
  1945. arch/m68k/include/asm/mcf_pgalloc.h +102 −0
  1946. arch/m68k/include/asm/mcf_pgtable.h +425 −0
  1947. arch/m68k/include/asm/mcfmmu.h +112 −0
  1948. arch/m68k/include/asm/mmu_context.h +201 −49
  1949. arch/m68k/include/asm/motorola_pgtable.h +1 −0
  1950. arch/m68k/include/asm/page.h +7 −3
  1951. arch/m68k/include/asm/page_no.h +0 −3
  1952. arch/m68k/include/asm/page_offset.h +4 −6
  1953. arch/m68k/include/asm/pgalloc.h +3 −1
  1954. arch/m68k/include/asm/pgtable_mm.h +24 −6
  1955. arch/m68k/include/asm/processor.h +10 −8
  1956. arch/m68k/include/asm/segment.h +16 −14
  1957. arch/m68k/include/asm/serial.h +2 −0
  1958. arch/m68k/include/asm/setup.h +14 −0
  1959. arch/m68k/include/asm/sigcontext.h +0 −4
  1960. arch/m68k/include/asm/socket.h +3 −0
  1961. arch/m68k/include/asm/thread_info.h +3 −31
  1962. arch/m68k/include/asm/tlbflush.h +17 −6
  1963. arch/m68k/include/asm/traps.h +1 −0
  1964. arch/m68k/include/asm/types.h +0 −6
  1965. arch/m68k/include/asm/uaccess_mm.h +29 −13
  1966. arch/m68k/include/asm/ucontext.h +0 −4
  1967. arch/m68k/include/asm/unistd.h +5 −5
  1968. arch/m68k/kernel/Makefile +13 −8
  1969. arch/m68k/kernel/asm-offsets.c +1 −2
  1970. arch/m68k/kernel/entry.S +1 −1
  1971. arch/m68k/kernel/entry_mm.S +21 −10
  1972. arch/m68k/kernel/entry_no.S +3 −6
  1973. arch/m68k/kernel/head.S +59 −58
  1974. arch/m68k/kernel/init_task.c +1 −2
  1975. arch/m68k/kernel/m68k_ksyms.c +1 −1
  1976. arch/m68k/kernel/process_mm.c +45 −30
  1977. arch/m68k/kernel/ptrace_mm.c +18 −0
  1978. arch/m68k/kernel/setup_mm.c +20 −2
  1979. arch/m68k/kernel/setup_no.c +0 −1
  1980. arch/m68k/kernel/signal_mm.c +151 −53
  1981. arch/m68k/kernel/time.c +1 −1
  1982. arch/m68k/kernel/time_no.c +3 −0
  1983. arch/m68k/kernel/traps.c +104 −0
  1984. arch/m68k/kernel/vmlinux-nommu.lds +8 −0
  1985. arch/m68k/kernel/vmlinux-std.lds +2 −0
  1986. arch/m68k/kernel/vmlinux-sun3.lds +2 −0
  1987. arch/m68k/kernel/vmlinux.lds.S +12 −3
  1988. arch/m68k/kernel/vmlinux.lds_mm.S +0 −10
  1989. arch/m68k/lib/Makefile +6 −4
  1990. arch/m68k/lib/checksum.c +0 −0
  1991. arch/m68k/lib/checksum_no.c +0 −156
  1992. arch/m68k/lib/uaccess.c +11 −11
  1993. arch/m68k/mac/baboon.c +8 −33
  1994. arch/m68k/mac/config.c +62 −31
  1995. arch/m68k/mac/iop.c +2 −6
  1996. arch/m68k/mac/macints.c +49 −148
  1997. arch/m68k/mac/oss.c +52 −105
  1998. arch/m68k/mac/psc.c +0 −17
  1999. arch/m68k/mac/via.c +122 −133
  2000. arch/m68k/mm/Makefile +5 −3
  2001. arch/m68k/mm/cache.c +21 −3
  2002. arch/m68k/mm/init_mm.c +35 −1
  2003. arch/m68k/mm/kmap.c +2 −1
  2004. arch/m68k/mm/mcfmmu.c +198 −0
  2005. arch/m68k/mm/memory.c +6 −2
  2006. arch/m68k/mvme16x/config.c +160 −0
  2007. arch/m68k/platform/54xx/config.c +47 −0
  2008. arch/m68k/platform/68328/Makefile +1 −5
  2009. arch/m68k/platform/68328/bootlogo.h +1 −1
  2010. arch/m68k/platform/68328/bootlogo.pl +0 −10
  2011. arch/m68k/platform/68328/config.c +3 −0
  2012. arch/m68k/platform/68328/head-pilot.S +2 −17
  2013. arch/m68k/platform/68328/head-rom.S +2 −7
  2014. arch/m68k/platform/coldfire/entry.S +5 −2
  2015. arch/m68k/platform/coldfire/gpio.c +5 −4
  2016. arch/m68k/platform/coldfire/head.S +49 −4
  2017. arch/m68k/platform/coldfire/sltimers.c +6 −3
  2018. arch/microblaze/Kconfig +2 −0
  2019. arch/microblaze/boot/Makefile +1 −1
  2020. arch/microblaze/include/asm/irq.h +8 −3
  2021. arch/microblaze/include/asm/page.h +2 −9
  2022. arch/microblaze/include/asm/pci-bridge.h +0 −1
  2023. arch/microblaze/include/asm/pci.h +0 −5
  2024. arch/microblaze/include/asm/ptrace.h +5 −0
  2025. arch/microblaze/include/asm/setup.h +0 −6
  2026. arch/microblaze/include/asm/thread_info.h +0 −2
  2027. arch/microblaze/include/asm/unistd.h +4 −1
  2028. arch/microblaze/kernel/early_printk.c +2 −2
  2029. arch/microblaze/kernel/entry.S +1 −1
  2030. arch/microblaze/kernel/intc.c +22 −30
  2031. arch/microblaze/kernel/irq.c +6 −5
  2032. arch/microblaze/kernel/module.c +1 −1
  2033. arch/microblaze/kernel/ptrace.c +3 −6
  2034. arch/microblaze/kernel/reset.c +2 −41
  2035. arch/microblaze/kernel/setup.c +29 −10
  2036. arch/microblaze/kernel/syscall_table.S +3 −0
  2037. arch/microblaze/kernel/timer.c +6 −15
  2038. arch/microblaze/lib/Makefile +1 −0
  2039. arch/microblaze/lib/cmpdi2.c +26 −0
  2040. arch/microblaze/pci/iomap.c +0 −19
  2041. arch/microblaze/pci/pci-common.c +23 −24
  2042. arch/mips/Kconfig +63 −28
  2043. arch/mips/Makefile +1 −0
  2044. arch/mips/alchemy/Kconfig +13 −47
  2045. arch/mips/alchemy/Makefile +3 −0
  2046. arch/mips/alchemy/Platform +10 −48
  2047. arch/mips/alchemy/board-gpr.c +77 −4
  2048. arch/mips/alchemy/board-mtx1.c +88 −5
  2049. arch/mips/alchemy/board-xxs1500.c +154 −0
  2050. arch/mips/alchemy/common/Makefile +1 −3
  2051. arch/mips/alchemy/common/dbdma.c +47 −2
  2052. arch/mips/alchemy/common/gpiolib.c +42 −0
  2053. arch/mips/alchemy/common/irq.c +613 −262
  2054. arch/mips/alchemy/common/platform.c +29 −2
  2055. arch/mips/alchemy/common/power.c +3 −0
  2056. arch/mips/alchemy/common/sleeper.S +73 −0
  2057. arch/mips/alchemy/common/time.c +2 −1
  2058. arch/mips/alchemy/common/vss.c +84 −0
  2059. arch/mips/alchemy/devboards/Makefile +7 −12
  2060. arch/mips/alchemy/devboards/bcsr.c +2 −9
  2061. arch/mips/alchemy/devboards/db1000.c +565 −0
  2062. arch/mips/alchemy/devboards/db1200.c +340 −61
  2063. arch/mips/alchemy/devboards/db1200/Makefile +0 −1
  2064. arch/mips/alchemy/devboards/db1200/setup.c +0 −81
  2065. arch/mips/alchemy/devboards/db1300.c +785 −0
  2066. arch/mips/alchemy/devboards/db1550.c +498 −0
  2067. arch/mips/alchemy/devboards/db1x00/Makefile +0 −8
  2068. arch/mips/alchemy/devboards/db1x00/board_setup.c +0 −229
  2069. arch/mips/alchemy/devboards/db1x00/platform.c +0 −316
  2070. arch/mips/alchemy/devboards/pb1000/Makefile +0 −8
  2071. arch/mips/alchemy/devboards/pb1000/board_setup.c +0 −209
  2072. arch/mips/alchemy/devboards/pb1100.c +66 −26
  2073. arch/mips/alchemy/devboards/pb1100/Makefile +0 −8
  2074. arch/mips/alchemy/devboards/pb1100/platform.c +0 −77
  2075. arch/mips/alchemy/devboards/pb1200/Makefile +0 −5
  2076. arch/mips/alchemy/devboards/pb1200/board_setup.c +0 −174
  2077. arch/mips/alchemy/devboards/pb1200/platform.c +0 −339
  2078. arch/mips/alchemy/devboards/pb1500.c +86 −27
  2079. arch/mips/alchemy/devboards/pb1500/Makefile +0 −8
  2080. arch/mips/alchemy/devboards/pb1500/platform.c +0 −94
  2081. arch/mips/alchemy/devboards/pb1550.c +108 −4
  2082. arch/mips/alchemy/devboards/pb1550/Makefile +0 −8
  2083. arch/mips/alchemy/devboards/pb1550/board_setup.c +0 −80
  2084. arch/mips/alchemy/devboards/platform.c +11 −2
  2085. arch/mips/alchemy/devboards/prom.c +7 −4
  2086. arch/mips/alchemy/gpr/Makefile +0 −8
  2087. arch/mips/alchemy/gpr/board_setup.c +0 −75
  2088. arch/mips/alchemy/gpr/init.c +0 −63
  2089. arch/mips/alchemy/mtx-1/Makefile +0 −9
  2090. arch/mips/alchemy/mtx-1/board_setup.c +0 −94
  2091. arch/mips/alchemy/mtx-1/init.c +0 −66
  2092. arch/mips/alchemy/xxs1500/Makefile +0 −8
  2093. arch/mips/alchemy/xxs1500/board_setup.c +0 −93
  2094. arch/mips/alchemy/xxs1500/init.c +0 −63
  2095. arch/mips/alchemy/xxs1500/platform.c +0 −63
  2096. arch/mips/ar7/gpio.c +1 −1
  2097. arch/mips/ar7/platform.c +38 −1
  2098. arch/mips/ar7/prom.c +2 −2
  2099. arch/mips/ar7/setup.c +1 −1
  2100. arch/mips/ath79/Kconfig +35 −3
  2101. arch/mips/ath79/Makefile +4 −1
  2102. arch/mips/ath79/clock.c +55 −0
  2103. arch/mips/ath79/common.c +5 −0
  2104. arch/mips/ath79/dev-ar913x-wmac.c +0 −60
  2105. arch/mips/ath79/dev-common.c +36 −2
  2106. arch/mips/ath79/dev-usb.c +197 −0
  2107. arch/mips/ath79/dev-usb.h +5 −5
  2108. arch/mips/ath79/dev-wmac.c +109 −0
  2109. arch/mips/ath79/dev-wmac.h +17 −0
  2110. arch/mips/ath79/early_printk.c +67 −9
  2111. arch/mips/ath79/gpio.c +2 −0
  2112. arch/mips/ath79/irq.c +16 −1
  2113. arch/mips/ath79/mach-ap121.c +92 −0
  2114. arch/mips/ath79/mach-ap81.c +4 −2
  2115. arch/mips/ath79/mach-pb44.c +2 −0
  2116. arch/mips/ath79/mach-ubnt-xm.c +119 −0
  2117. arch/mips/ath79/machtypes.h +2 −0
  2118. arch/mips/ath79/setup.c +18 −4
  2119. arch/mips/bcm47xx/setup.c +2 −2
  2120. arch/mips/bcm63xx/Kconfig +4 −0
  2121. arch/mips/bcm63xx/boards/board_bcm963xx.c +22 −27
  2122. arch/mips/bcm63xx/clk.c +67 −3
  2123. arch/mips/bcm63xx/cpu.c +91 −170
  2124. arch/mips/bcm63xx/dev-uart.c +1 −1
  2125. arch/mips/bcm63xx/gpio.c +36 −5
  2126. arch/mips/bcm63xx/irq.c +333 −70
  2127. arch/mips/bcm63xx/prom.c +5 −2
  2128. arch/mips/bcm63xx/setup.c +26 −6
  2129. arch/mips/boot/compressed/uart-alchemy.c +4 −1
  2130. arch/mips/cavium-octeon/Kconfig +0 −4
  2131. arch/mips/cavium-octeon/dma-octeon.c +21 −2
  2132. arch/mips/cavium-octeon/executive/Makefile +6 −1
  2133. arch/mips/cavium-octeon/executive/cvmx-cmd-queue.c +4 −4
  2134. arch/mips/cavium-octeon/executive/cvmx-fpa.c +0 −0
  2135. arch/mips/cavium-octeon/executive/cvmx-helper-board.c +27 −11
  2136. arch/mips/cavium-octeon/executive/cvmx-helper-fpa.c +0 −0
  2137. arch/mips/cavium-octeon/executive/cvmx-helper-loop.c +3 −3
  2138. arch/mips/cavium-octeon/executive/cvmx-helper-npi.c +3 −3
  2139. arch/mips/cavium-octeon/executive/cvmx-helper-rgmii.c +9 −8
  2140. arch/mips/cavium-octeon/executive/cvmx-helper-sgmii.c +11 −7
  2141. arch/mips/cavium-octeon/executive/cvmx-helper-spi.c +15 −5
  2142. arch/mips/cavium-octeon/executive/cvmx-helper-util.c +8 −8
  2143. arch/mips/cavium-octeon/executive/cvmx-helper-xaui.c +19 −13
  2144. arch/mips/cavium-octeon/executive/cvmx-helper.c +89 −31
  2145. arch/mips/cavium-octeon/executive/cvmx-interrupt-decodes.c +5 −5
  2146. arch/mips/cavium-octeon/executive/cvmx-interrupt-rsl.c +2 −2
  2147. arch/mips/cavium-octeon/executive/cvmx-pko.c +4 −4
  2148. arch/mips/cavium-octeon/executive/cvmx-spi.c +6 −6
  2149. arch/mips/cavium-octeon/executive/octeon-model.c +85 −34
  2150. arch/mips/cavium-octeon/setup.c +3 −11
  2151. arch/mips/cavium-octeon/smp.c +1 −1
  2152. arch/mips/configs/db1000_defconfig +305 −64
  2153. arch/mips/configs/db1100_defconfig +0 −122
  2154. arch/mips/configs/db1300_defconfig +391 −0
  2155. arch/mips/configs/db1500_defconfig +0 −128
  2156. arch/mips/configs/db1550_defconfig +208 −80
  2157. arch/mips/configs/nlm_xlp_defconfig +570 −0
  2158. arch/mips/configs/nlm_xlr_defconfig +8 −8
  2159. arch/mips/configs/pb1200_defconfig +0 −170
  2160. arch/mips/dec/setup.c +0 −1
  2161. arch/mips/include/asm/Kbuild +3 −1
  2162. arch/mips/include/asm/bmips.h +110 −0
  2163. arch/mips/include/asm/bootinfo.h +1 −0
  2164. arch/mips/include/asm/branch.h +5 −0
  2165. arch/mips/include/asm/cpu.h +5 −1
  2166. arch/mips/include/asm/gio_device.h +56 −0
  2167. arch/mips/include/asm/hazards.h +4 −3
  2168. arch/mips/include/asm/hugetlb.h +1 −1
  2169. arch/mips/include/asm/ip32/mace.h +1 −1
  2170. arch/mips/include/asm/ipcbuf.h +1 −28
  2171. arch/mips/include/asm/kprobes.h +5 −0
  2172. arch/mips/include/asm/mach-ath79/ar71xx_regs.h +80 −1
  2173. arch/mips/include/asm/mach-ath79/ar933x_uart.h +67 −0
  2174. arch/mips/include/asm/mach-ath79/ar933x_uart_platform.h +18 −0
  2175. arch/mips/include/asm/mach-ath79/ath79.h +10 −1
  2176. arch/mips/include/asm/mach-ath79/irq.h +6 −2
  2177. arch/mips/include/asm/mach-ath79/pci-ath724x.h +21 −0
  2178. arch/mips/include/asm/mach-au1x00/au1000.h +223 −50
  2179. arch/mips/include/asm/mach-au1x00/au1100_mmc.h +2 −0
  2180. arch/mips/include/asm/mach-au1x00/au1200fb.h +14 −0
  2181. arch/mips/include/asm/mach-au1x00/au1550nd.h +16 −0
  2182. arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h +31 −0
  2183. arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h +3 −0
  2184. arch/mips/include/asm/mach-au1x00/gpio-au1300.h +241 −0
  2185. arch/mips/include/asm/mach-au1x00/gpio.h +3 −0
  2186. arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h +382 −215
  2187. arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h +2 −0
  2188. arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h +2 −0
  2189. arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h +5 −7
  2190. arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +218 −13
  2191. arch/mips/include/asm/mach-bcm63xx/bcm963xx_tag.h +5 −6
  2192. arch/mips/include/asm/mach-bcm63xx/ioremap.h +42 −0
  2193. arch/mips/include/asm/mach-bcm63xx/irq.h +7 −0
  2194. arch/mips/include/asm/mach-db1x00/bcsr.h +28 −8
  2195. arch/mips/include/asm/mach-db1x00/db1200.h +9 −2
  2196. arch/mips/include/asm/mach-db1x00/db1300.h +40 −0
  2197. arch/mips/include/asm/mach-db1x00/db1x00.h +0 −79
  2198. arch/mips/include/asm/mach-db1x00/irq.h +23 −0
  2199. arch/mips/include/asm/mach-generic/floppy.h +1 −1
  2200. arch/mips/include/asm/mach-jazz/floppy.h +1 −1
  2201. arch/mips/include/asm/mach-netlogic/cpu-feature-overrides.h +16 −7
  2202. arch/mips/include/asm/mach-pb1x00/mc146818rtc.h +0 −34
  2203. arch/mips/include/asm/mach-pb1x00/pb1000.h +0 −87
  2204. arch/mips/include/asm/mach-pb1x00/pb1200.h +0 −139
  2205. arch/mips/include/asm/mach-pb1x00/pb1550.h +0 −73
  2206. arch/mips/include/asm/mipsregs.h +8 −1
  2207. arch/mips/include/asm/module.h +5 −1
  2208. arch/mips/include/asm/netlogic/common.h +76 −0
  2209. arch/mips/include/asm/netlogic/haldefs.h +163 −0
  2210. arch/mips/include/asm/netlogic/xlp-hal/bridge.h +187 −0
  2211. arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h +83 −0
  2212. arch/mips/include/asm/netlogic/xlp-hal/iomap.h +153 −0
  2213. arch/mips/include/asm/netlogic/xlp-hal/pic.h +411 −0
  2214. arch/mips/include/asm/netlogic/xlp-hal/sys.h +129 −0
  2215. arch/mips/include/asm/netlogic/xlp-hal/uart.h +191 −0
  2216. arch/mips/include/asm/netlogic/xlp-hal/xlp.h +15 −10
  2217. arch/mips/include/asm/netlogic/xlr/iomap.h +0 −22
  2218. arch/mips/include/asm/netlogic/xlr/msidef.h +84 −0
  2219. arch/mips/include/asm/netlogic/xlr/pic.h +51 −18
  2220. arch/mips/include/asm/netlogic/xlr/xlr.h +2 −11
  2221. arch/mips/include/asm/octeon/cvmx-address.h +0 −0
  2222. arch/mips/include/asm/octeon/cvmx-asxx-defs.h +0 −0
  2223. arch/mips/include/asm/octeon/cvmx-bootinfo.h +77 −5
  2224. arch/mips/include/asm/octeon/cvmx-cmd-queue.h +0 −0
  2225. arch/mips/include/asm/octeon/cvmx-config.h +0 −1
  2226. arch/mips/include/asm/octeon/cvmx-dbg-defs.h +0 −0
  2227. arch/mips/include/asm/octeon/cvmx-dpi-defs.h +643 −0
  2228. arch/mips/include/asm/octeon/cvmx-fau.h +0 −0
  2229. arch/mips/include/asm/octeon/cvmx-fpa-defs.h +0 −0
  2230. arch/mips/include/asm/octeon/cvmx-fpa.h +0 −0
  2231. arch/mips/include/asm/octeon/cvmx-gmxx-defs.h +0 −0
  2232. arch/mips/include/asm/octeon/cvmx-helper-board.h +6 −0
  2233. arch/mips/include/asm/octeon/cvmx-helper-fpa.h +0 −0
  2234. arch/mips/include/asm/octeon/cvmx-helper-loop.h +1 −0
  2235. arch/mips/include/asm/octeon/cvmx-helper-npi.h +1 −0
  2236. arch/mips/include/asm/octeon/cvmx-helper-rgmii.h +1 −0
  2237. arch/mips/include/asm/octeon/cvmx-helper-sgmii.h +1 −0
  2238. arch/mips/include/asm/octeon/cvmx-helper-spi.h +1 −0
  2239. arch/mips/include/asm/octeon/cvmx-helper-util.h +0 −0
  2240. arch/mips/include/asm/octeon/cvmx-helper-xaui.h +1 −0
  2241. arch/mips/include/asm/octeon/cvmx-helper.h +1 −0
  2242. arch/mips/include/asm/octeon/cvmx-ipd.h +0 −0
  2243. arch/mips/include/asm/octeon/cvmx-mdio.h +0 −0
  2244. arch/mips/include/asm/octeon/cvmx-mio-defs.h +998 −35
  2245. arch/mips/include/asm/octeon/cvmx-npei-defs.h +2 −2
  2246. arch/mips/include/asm/octeon/cvmx-pciercx-defs.h +538 −71
  2247. arch/mips/include/asm/octeon/cvmx-pcsx-defs.h +0 −0
  2248. arch/mips/include/asm/octeon/cvmx-pcsxx-defs.h +0 −0
  2249. arch/mips/include/asm/octeon/cvmx-pemx-defs.h +509 −0
  2250. arch/mips/include/asm/octeon/cvmx-pexp-defs.h +9 −10
  2251. arch/mips/include/asm/octeon/cvmx-pip-defs.h +0 −0
  2252. arch/mips/include/asm/octeon/cvmx-pip.h +0 −0
  2253. arch/mips/include/asm/octeon/cvmx-pko-defs.h +0 −0
  2254. arch/mips/include/asm/octeon/cvmx-pko.h +0 −0
  2255. arch/mips/include/asm/octeon/cvmx-pow.h +0 −0
  2256. arch/mips/include/asm/octeon/cvmx-scratch.h +0 −0
  2257. arch/mips/include/asm/octeon/cvmx-sli-defs.h +2172 −0
  2258. arch/mips/include/asm/octeon/cvmx-spi.h +0 −0
  2259. arch/mips/include/asm/octeon/cvmx-spxx-defs.h +0 −0
  2260. arch/mips/include/asm/octeon/cvmx-sriox-defs.h +1036 −0
  2261. arch/mips/include/asm/octeon/cvmx-srxx-defs.h +0 −0
  2262. arch/mips/include/asm/octeon/cvmx-stxx-defs.h +0 −0
  2263. arch/mips/include/asm/octeon/cvmx-wqe.h +0 −0
  2264. arch/mips/include/asm/octeon/cvmx.h +21 −21
  2265. arch/mips/include/asm/octeon/octeon-feature.h +105 −9
  2266. arch/mips/include/asm/octeon/octeon-model.h +96 −119
  2267. arch/mips/include/asm/octeon/pci-octeon.h +2 −1
  2268. arch/mips/include/asm/page.h +8 −0
  2269. arch/mips/include/asm/pgtable-32.h +1 −17
  2270. arch/mips/include/asm/ptrace.h +14 −2
  2271. arch/mips/include/asm/socket.h +3 −0
  2272. arch/mips/include/asm/thread_info.h +0 −2
  2273. arch/mips/include/asm/tlbmisc.h +10 −0
  2274. arch/mips/include/asm/traps.h +13 −0
  2275. arch/mips/include/asm/types.h +7 −9
  2276. arch/mips/jazz/irq.c +2 −1
  2277. arch/mips/jazz/setup.c +1 −0
  2278. arch/mips/jz4740/board-qi_lb60.c +1 −1
  2279. arch/mips/kernel/Makefile +2 −0
  2280. arch/mips/kernel/bmips_vec.S +255 −0
  2281. arch/mips/kernel/branch.c +84 −44
  2282. arch/mips/kernel/cevt-bcm1480.c +1 −1
  2283. arch/mips/kernel/cevt-ds1287.c +1 −1
  2284. arch/mips/kernel/cevt-gt641xx.c +1 −1
  2285. arch/mips/kernel/cevt-r4k.c +1 −1
  2286. arch/mips/kernel/cevt-sb1250.c +1 −1
  2287. arch/mips/kernel/cevt-txx9.c +1 −1
  2288. arch/mips/kernel/cpu-probe.c +25 −3
  2289. arch/mips/kernel/i8253.c +1 −1
  2290. arch/mips/kernel/kprobes.c +148 −29
  2291. arch/mips/kernel/perf_event_mipsxx.c +11 −61
  2292. arch/mips/kernel/ptrace.c +4 −7
  2293. arch/mips/kernel/rtlx.c +0 −1
  2294. arch/mips/kernel/setup.c +39 −4
  2295. arch/mips/kernel/smp-bmips.c +458 −0
  2296. arch/mips/kernel/smtc.c +3 −3
  2297. arch/mips/kernel/traps.c +15 −3
  2298. arch/mips/lantiq/clk.c +2 −2
  2299. arch/mips/lantiq/irq.c +6 −7
  2300. arch/mips/lantiq/xway/dma.c +3 −3
  2301. arch/mips/lantiq/xway/ebu.c +3 −3
  2302. arch/mips/lantiq/xway/pmu.c +4 −4
  2303. arch/mips/lantiq/xway/reset.c +3 −3
  2304. arch/mips/lib/Makefile +1 −0
  2305. arch/mips/lib/iomap-pci.c +0 −26
  2306. arch/mips/loongson/common/cs5536/cs5536_mfgpt.c +1 −1
  2307. arch/mips/math-emu/cp1emu.c +1 −1
  2308. arch/mips/mm/Makefile +3 −2
  2309. arch/mips/mm/c-octeon.c +1 −1
  2310. arch/mips/mm/c-r4k.c +3 −0
  2311. arch/mips/mm/gup.c +315 −0
  2312. arch/mips/mm/init.c +7 −2
  2313. arch/mips/mm/tlb-r3k.c +1 −0
  2314. arch/mips/mm/tlb-r4k.c +15 −53
  2315. arch/mips/mti-malta/malta-int.c +2 −2
  2316. arch/mips/netlogic/Kconfig +0 −3
  2317. arch/mips/netlogic/Makefile +3 −0
  2318. arch/mips/netlogic/Platform +7 −6
  2319. arch/mips/netlogic/common/Makefile +3 −0
  2320. arch/mips/netlogic/common/earlycons.c +60 −0
  2321. arch/mips/netlogic/common/irq.c +238 −0
  2322. arch/mips/netlogic/common/smp.c +101 −51
  2323. arch/mips/netlogic/common/smpboot.S +272 −0
  2324. arch/mips/netlogic/common/time.c +3 −3
  2325. arch/mips/netlogic/xlp/Makefile +2 −0
  2326. arch/mips/netlogic/xlp/nlm_hal.c +111 −0
  2327. arch/mips/netlogic/xlp/platform.c +108 −0
  2328. arch/mips/netlogic/xlp/setup.c +105 −0
  2329. arch/mips/netlogic/xlp/wakeup.c +102 −0
  2330. arch/mips/netlogic/xlr/Makefile +2 −5
  2331. arch/mips/netlogic/xlr/irq.c +0 −300
  2332. arch/mips/netlogic/xlr/platform.c +16 −15
  2333. arch/mips/netlogic/xlr/setup.c +22 −9
  2334. arch/mips/netlogic/xlr/wakeup.c +24 −56
  2335. arch/mips/pci/Makefile +2 −1
  2336. arch/mips/pci/msi-octeon.c +1 −1
  2337. arch/mips/pci/ops-pmcmsp.c +1 −1
  2338. arch/mips/pci/ops-tx3927.c +1 −1
  2339. arch/mips/pci/pci-alchemy.c +68 −70
  2340. arch/mips/pci/pci-ath724x.c +174 −0
  2341. arch/mips/pci/pci-bcm63xx.c +2 −2
  2342. arch/mips/pci/pci-octeon.c +6 −10
  2343. arch/mips/pci/pci-tx4927.c +1 −1
  2344. arch/mips/pci/pci-tx4938.c +1 −1
  2345. arch/mips/pci/pci-tx4939.c +1 −1
  2346. arch/mips/pci/pci-xlr.c +127 −1
  2347. arch/mips/pci/pci.c +38 −29
  2348. arch/mips/pci/pcie-octeon.c +1023 −326
  2349. arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c +1 −1
  2350. arch/mips/pmc-sierra/msp71xx/msp_setup.c +1 −1
  2351. arch/mips/pmc-sierra/msp71xx/msp_smp.c +2 −2
  2352. arch/mips/pnx8550/common/int.c +2 −2
  2353. arch/mips/pnx8550/common/time.c +2 −2
  2354. arch/mips/sgi-ip22/Makefile +1 −1
  2355. arch/mips/sgi-ip22/ip22-gio.c +428 −0
  2356. arch/mips/sgi-ip22/ip22-int.c +5 −5
  2357. arch/mips/sgi-ip22/ip22-mc.c +5 −5
  2358. arch/mips/sgi-ip22/ip22-setup.c +0 −21
  2359. arch/mips/sgi-ip27/Kconfig +0 −6
  2360. arch/mips/sgi-ip27/ip27-irq.c +3 −3
  2361. arch/mips/sgi-ip27/ip27-timer.c +1 −1
  2362. arch/mips/sgi-ip32/ip32-irq.c +0 −2
  2363. arch/mips/sibyte/Kconfig +0 −1
  2364. arch/mips/sni/irq.c +1 −1
  2365. arch/mips/sni/time.c +1 −1
  2366. arch/mips/txx9/generic/7segled.c +22 −22
  2367. arch/mips/txx9/generic/pci.c +1 −1
  2368. arch/mips/txx9/generic/setup.c +16 −18
  2369. arch/mips/txx9/generic/setup_tx4939.c +1 −1
  2370. arch/mn10300/Kconfig +1 −0
  2371. arch/mn10300/include/asm/exceptions.h +1 −1
  2372. arch/mn10300/include/asm/io.h +8 −9
  2373. arch/mn10300/include/asm/ipcbuf.h +1 −29
  2374. arch/mn10300/include/asm/param.h +1 −17
  2375. arch/mn10300/include/asm/socket.h +3 −0
  2376. arch/mn10300/include/asm/thread_info.h +0 −2
  2377. arch/mn10300/include/asm/types.h +0 −6
  2378. arch/mn10300/unit-asb2305/Makefile +1 −1
  2379. arch/mn10300/unit-asb2305/pci-asb2305.c +0 −22
  2380. arch/mn10300/unit-asb2305/pci-asb2305.h +0 −2
  2381. arch/mn10300/unit-asb2305/pci-iomap.c +0 −31
  2382. arch/mn10300/unit-asb2305/pci.c +6 −6
  2383. arch/openrisc/Kconfig +1 −3
  2384. arch/openrisc/boot/Makefile +2 −2
  2385. arch/parisc/Kconfig +1 −0
  2386. arch/parisc/hpux/sys_hpux.c +1 −8
  2387. arch/parisc/include/asm/processor.h +0 −2
  2388. arch/parisc/include/asm/socket.h +3 −0
  2389. arch/parisc/include/asm/thread_info.h +0 −2
  2390. arch/parisc/include/asm/types.h +0 −6
  2391. arch/parisc/kernel/process.c +0 −1
  2392. arch/parisc/lib/iomap.c +0 −23
  2393. arch/powerpc/Kconfig +47 −8
  2394. arch/powerpc/Kconfig.debug +12 −0
  2395. arch/powerpc/Makefile +5 −6
  2396. arch/powerpc/boot/Makefile +13 −3
  2397. arch/powerpc/boot/dcr.h +6 −0
  2398. arch/powerpc/boot/div64.S +52 −0
  2399. arch/powerpc/boot/dts/asp834x-redboot.dts +2 −2
  2400. arch/powerpc/boot/dts/currituck.dts +237 −0
  2401. arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi +248 −0
  2402. arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi +63 −0
  2403. arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi +191 −0
  2404. arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi +63 −0
  2405. arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi +143 −0
  2406. arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi +62 −0
  2407. arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi +270 −0
  2408. arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi +65 −0
  2409. arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi +304 −0
  2410. arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi +64 −0
  2411. arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi +196 −0
  2412. arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi +70 −0
  2413. arch/powerpc/boot/dts/fsl/p1010si-post.dtsi +198 −0
  2414. arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi +64 −0
  2415. arch/powerpc/boot/dts/fsl/p1020si-post.dtsi +174 −0
  2416. arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi +68 −0
  2417. arch/powerpc/boot/dts/fsl/p1021si-post.dtsi +225 −0
  2418. arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi +68 −0
  2419. arch/powerpc/boot/dts/fsl/p1022si-post.dtsi +235 −0
  2420. arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi +68 −0
  2421. arch/powerpc/boot/dts/fsl/p1023si-post.dtsi +224 −0
  2422. arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi +76 −0
  2423. arch/powerpc/boot/dts/fsl/p2020si-post.dtsi +194 −0
  2424. arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi +69 −0
  2425. arch/powerpc/boot/dts/fsl/p2041si-post.dtsi +325 −0
  2426. arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi +111 −0
  2427. arch/powerpc/boot/dts/fsl/p3041si-post.dtsi +352 −0
  2428. arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi +112 −0
  2429. arch/powerpc/boot/dts/fsl/p3060si-post.dtsi +296 −0
  2430. arch/powerpc/boot/dts/fsl/p3060si-pre.dtsi +125 −0
  2431. arch/powerpc/boot/dts/fsl/p4080si-post.dtsi +350 −0
  2432. arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi +143 −0
  2433. arch/powerpc/boot/dts/fsl/p5020si-post.dtsi +355 −0
  2434. arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi +96 −0
  2435. arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi +66 −0
  2436. arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi +66 −0
  2437. arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi +51 −0
  2438. arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi +41 −0
  2439. arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi +41 −0
  2440. arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi +53 −0
  2441. arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi +53 −0
  2442. arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi +53 −0
  2443. arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi +53 −0
  2444. arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi +39 −0
  2445. arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi +60 −0
  2446. arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi +60 −0
  2447. arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi +59 −0
  2448. arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi +42 −0
  2449. arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi +42 −0
  2450. arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi +42 −0
  2451. arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi +41 −0
  2452. arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi +43 −0
  2453. arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi +43 −0
  2454. arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi +42 −0
  2455. arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi +66 −0
  2456. arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi +68 −0
  2457. arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi +40 −0
  2458. arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi +40 −0
  2459. arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi +43 −0
  2460. arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi +45 −0
  2461. arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi +45 −0
  2462. arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi +45 −0
  2463. arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi +65 −0
  2464. arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi +41 −0
  2465. arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi +41 −0
  2466. arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi +66 −0
  2467. arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi +66 −0
  2468. arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi +51 −0
  2469. arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi +51 −0
  2470. arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi +40 −0
  2471. arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi +41 −0
  2472. arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi +41 −0
  2473. arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi +53 −0
  2474. arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi +53 −0
  2475. arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi +106 −0
  2476. arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi +68 −0
  2477. arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi +39 −0
  2478. arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi +39 −0
  2479. arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi +100 −0
  2480. arch/powerpc/boot/dts/fsl/qoriq-sec4.1-0.dtsi +109 −0
  2481. arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi +109 −0
  2482. arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi +41 −0
  2483. arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi +41 −0
  2484. arch/powerpc/boot/dts/gef_ppc9a.dts +2 −2
  2485. arch/powerpc/boot/dts/gef_sbc310.dts +2 −2
  2486. arch/powerpc/boot/dts/gef_sbc610.dts +2 −2
  2487. arch/powerpc/boot/dts/klondike.dts +227 −0
  2488. arch/powerpc/boot/dts/kmeter1.dts +1 −1
  2489. arch/powerpc/boot/dts/kuroboxHD.dts +2 −2
  2490. arch/powerpc/boot/dts/kuroboxHG.dts +2 −2
  2491. arch/powerpc/boot/dts/mpc8308_p1m.dts +2 −2
  2492. arch/powerpc/boot/dts/mpc8308rdb.dts +2 −2
  2493. arch/powerpc/boot/dts/mpc8313erdb.dts +2 −2
  2494. arch/powerpc/boot/dts/mpc8315erdb.dts +2 −2
  2495. arch/powerpc/boot/dts/mpc832x_mds.dts +2 −2
  2496. arch/powerpc/boot/dts/mpc832x_rdb.dts +2 −2
  2497. arch/powerpc/boot/dts/mpc8349emitx.dts +2 −2
  2498. arch/powerpc/boot/dts/mpc8349emitxgp.dts +2 −2
  2499. arch/powerpc/boot/dts/mpc834x_mds.dts +2 −2
  2500. arch/powerpc/boot/dts/mpc836x_mds.dts +2 −2
  2501. arch/powerpc/boot/dts/mpc836x_rdk.dts +2 −2
  2502. arch/powerpc/boot/dts/mpc8377_mds.dts +2 −2
  2503. arch/powerpc/boot/dts/mpc8377_rdb.dts +2 −2
  2504. arch/powerpc/boot/dts/mpc8377_wlan.dts +2 −2
  2505. arch/powerpc/boot/dts/mpc8378_mds.dts +2 −2
  2506. arch/powerpc/boot/dts/mpc8378_rdb.dts +2 −2
  2507. arch/powerpc/boot/dts/mpc8379_mds.dts +2 −2
  2508. arch/powerpc/boot/dts/mpc8379_rdb.dts +2 −2
  2509. arch/powerpc/boot/dts/mpc8536ds.dts +17 −439
  2510. arch/powerpc/boot/dts/mpc8536ds.dtsi +141 −0
  2511. arch/powerpc/boot/dts/mpc8536ds_36b.dts +20 −390
  2512. arch/powerpc/boot/dts/mpc8540ads.dts +2 −2
  2513. arch/powerpc/boot/dts/mpc8541cds.dts +2 −2
  2514. arch/powerpc/boot/dts/mpc8544ds.dts +38 −435
  2515. arch/powerpc/boot/dts/mpc8544ds.dtsi +161 −0
  2516. arch/powerpc/boot/dts/mpc8548cds.dts +122 −383
  2517. arch/powerpc/boot/dts/mpc8555cds.dts +2 −2
  2518. arch/powerpc/boot/dts/mpc8568mds.dts +65 −417
  2519. arch/powerpc/boot/dts/mpc8569mds.dts +38 −376
  2520. arch/powerpc/boot/dts/mpc8572ds.dts +13 −744
  2521. arch/powerpc/boot/dts/mpc8572ds.dtsi +397 −0
  2522. arch/powerpc/boot/dts/mpc8572ds_36b.dts +14 −732
  2523. arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts +31 −456
  2524. arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts +67 −178
  2525. arch/powerpc/boot/dts/mpc8610_hpcd.dts +2 −2
  2526. arch/powerpc/boot/dts/mpc8641_hpcn.dts +56 −17
  2527. arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts +2 −2
  2528. arch/powerpc/boot/dts/obs600.dts +314 −0
  2529. arch/powerpc/boot/dts/p1010rdb.dts +10 −218
  2530. arch/powerpc/boot/dts/p1010rdb.dtsi +234 −0
  2531. arch/powerpc/boot/dts/p1010rdb_36b.dts +89 −0
  2532. arch/powerpc/boot/dts/p1010si.dtsi +0 −374
  2533. arch/powerpc/boot/dts/p1020rdb.dts +10 −252
  2534. arch/powerpc/boot/dts/p1020rdb.dtsi +247 −0
  2535. arch/powerpc/boot/dts/p1020rdb_36b.dts +66 −0
  2536. arch/powerpc/boot/dts/p1020rdb_camp_core0.dts +2 −152
  2537. arch/powerpc/boot/dts/p1020rdb_camp_core1.dts +2 −9
  2538. arch/powerpc/boot/dts/p1020si.dtsi +0 −377
  2539. arch/powerpc/boot/dts/p1021mds.dts +25 −400
  2540. arch/powerpc/boot/dts/p1022ds.dts +38 −421
  2541. arch/powerpc/boot/dts/p1023rds.dts +22 −358
  2542. arch/powerpc/boot/dts/p2020ds.dts +19 −334
  2543. arch/powerpc/boot/dts/p2020ds.dtsi +316 −0
  2544. arch/powerpc/boot/dts/p2020rdb.dts +24 −47
  2545. arch/powerpc/boot/dts/p2020rdb_camp_core0.dts +2 −139
  2546. arch/powerpc/boot/dts/p2020rdb_camp_core1.dts +2 −105
  2547. arch/powerpc/boot/dts/p2020si.dtsi +0 −382
  2548. arch/powerpc/boot/dts/p2041rdb.dts +20 −2
  2549. arch/powerpc/boot/dts/p2041si.dtsi +0 −692
  2550. arch/powerpc/boot/dts/p3041ds.dts +21 −2
  2551. arch/powerpc/boot/dts/p3041si.dtsi +0 −729
  2552. arch/powerpc/boot/dts/p3060qds.dts +9 −3
  2553. arch/powerpc/boot/dts/p3060si.dtsi +0 −719
  2554. arch/powerpc/boot/dts/p4080ds.dts +19 −5
  2555. arch/powerpc/boot/dts/p4080si.dtsi +0 −755
  2556. arch/powerpc/boot/dts/p5020ds.dts +21 −3
  2557. arch/powerpc/boot/dts/p5020si.dtsi +0 −716
  2558. arch/powerpc/boot/dts/sbc8349.dts +2 −2
  2559. arch/powerpc/boot/dts/sbc8548.dts +2 −2
  2560. arch/powerpc/boot/dts/sbc8641d.dts +2 −2
  2561. arch/powerpc/boot/dts/socrates.dts +2 −2
  2562. arch/powerpc/boot/dts/storcenter.dts +2 −2
  2563. arch/powerpc/boot/dts/stxssa8555.dts +2 −2
  2564. arch/powerpc/boot/dts/tqm8540.dts +2 −2
  2565. arch/powerpc/boot/dts/tqm8541.dts +2 −2
  2566. arch/powerpc/boot/dts/tqm8548-bigflash.dts +16 −7
  2567. arch/powerpc/boot/dts/tqm8548.dts +16 −7
  2568. arch/powerpc/boot/dts/tqm8555.dts +2 −2
  2569. arch/powerpc/boot/dts/tqm8xx.dts +25 −0
  2570. arch/powerpc/boot/dts/xcalibur1501.dts +2 −2
  2571. arch/powerpc/boot/dts/xpedite5200.dts +2 −2
  2572. arch/powerpc/boot/dts/xpedite5200_xmon.dts +2 −2
  2573. arch/powerpc/boot/dts/xpedite5301.dts +2 −2
  2574. arch/powerpc/boot/dts/xpedite5330.dts +2 −2
  2575. arch/powerpc/boot/dts/xpedite5370.dts +2 −2
  2576. arch/powerpc/boot/treeboot-currituck.c +119 −0
  2577. arch/powerpc/boot/wrapper +44 −1
  2578. arch/powerpc/configs/40x/klondike_defconfig +55 −0
  2579. arch/powerpc/configs/40x/obs600_defconfig +83 −0
  2580. arch/powerpc/configs/44x/currituck_defconfig +110 −0
  2581. arch/powerpc/configs/44x/iss476-smp_defconfig +2 −1
  2582. arch/powerpc/configs/chroma_defconfig +307 −0
  2583. arch/powerpc/configs/corenet32_smp_defconfig +7 −4
  2584. arch/powerpc/configs/corenet64_smp_defconfig +3 −1
  2585. arch/powerpc/configs/mpc85xx_defconfig +12 −5
  2586. arch/powerpc/configs/mpc85xx_smp_defconfig +13 −5
  2587. arch/powerpc/configs/ppc64_defconfig +5 −0
  2588. arch/powerpc/configs/ps3_defconfig +20 −19
  2589. arch/powerpc/configs/pseries_defconfig +5 −0
  2590. arch/powerpc/include/asm/Kbuild +2 −0
  2591. arch/powerpc/include/asm/cputable.h +3 −2
  2592. arch/powerpc/include/asm/cputime.h +3 −3
  2593. arch/powerpc/include/asm/fsl_ifc.h +834 −0
  2594. arch/powerpc/include/asm/fsl_lbc.h +5 −2
  2595. arch/powerpc/include/asm/hugetlb.h +29 −9
  2596. arch/powerpc/include/asm/io.h +1 −1
  2597. arch/powerpc/include/asm/kdump.h +2 −2
  2598. arch/powerpc/include/asm/kexec.h +0 −7
  2599. arch/powerpc/include/asm/keylargo.h +1 −1
  2600. arch/powerpc/include/asm/kvm.h +2 −2
  2601. arch/powerpc/include/asm/lv1call.h +5 −5
  2602. arch/powerpc/include/asm/machdep.h +3 −0
  2603. arch/powerpc/include/asm/mmu-book3e.h +11 −0
  2604. arch/powerpc/include/asm/mmu-hash64.h +3 −4
  2605. arch/powerpc/include/asm/mpic.h +10 −4
  2606. arch/powerpc/include/asm/opal.h +127 −4
  2607. arch/powerpc/include/asm/paca.h +1 −0
  2608. arch/powerpc/include/asm/page.h +85 −5
  2609. arch/powerpc/include/asm/page_64.h +2 −0
  2610. arch/powerpc/include/asm/pci-bridge.h +5 −2
  2611. arch/powerpc/include/asm/pci.h +0 −7
  2612. arch/powerpc/include/asm/pgtable.h +3 −0
  2613. arch/powerpc/include/asm/processor.h +3 −0
  2614. arch/powerpc/include/asm/ptrace.h +12 −1
  2615. arch/powerpc/include/asm/reg.h +1 −0
  2616. arch/powerpc/include/asm/reg_booke.h +4 −0
  2617. arch/powerpc/include/asm/rtas.h +18 −0
  2618. arch/powerpc/include/asm/rwsem.h +0 −132
  2619. arch/powerpc/include/asm/socket.h +3 −0
  2620. arch/powerpc/include/asm/spu.h +7 −7
  2621. arch/powerpc/include/asm/system.h +10 −1
  2622. arch/powerpc/include/asm/tce.h +7 −3
  2623. arch/powerpc/include/asm/thread_info.h +0 −2
  2624. arch/powerpc/include/asm/time.h +2 −0
  2625. arch/powerpc/include/asm/topology.h +5 −5
  2626. arch/powerpc/include/asm/types.h +4 −7
  2627. arch/powerpc/kernel/Makefile +2 −0
  2628. arch/powerpc/kernel/asm-offsets.c +1 −0
  2629. arch/powerpc/kernel/cacheinfo.c +5 −5
  2630. arch/powerpc/kernel/cpu_setup_a2.S +8 −2
  2631. arch/powerpc/kernel/cputable.c +27 −0
  2632. arch/powerpc/kernel/crash.c +106 −114
  2633. arch/powerpc/kernel/crash_dump.c +2 −2
  2634. arch/powerpc/kernel/exceptions-64s.S +1 −1
  2635. arch/powerpc/kernel/head_44x.S +107 −0
  2636. arch/powerpc/kernel/head_fsl_booke.S +1 −1
  2637. arch/powerpc/kernel/idle.c +29 −10
  2638. arch/powerpc/kernel/idle_power7.S +4 −0
  2639. arch/powerpc/kernel/iomap.c +0 −19
  2640. arch/powerpc/kernel/irq.c +17 −11
  2641. arch/powerpc/kernel/legacy_serial.c +3 −0
  2642. arch/powerpc/kernel/lparcfg.c +1 −1
  2643. arch/powerpc/kernel/machine_kexec.c +1 −1
  2644. arch/powerpc/kernel/machine_kexec_32.c +2 −2
  2645. arch/powerpc/kernel/machine_kexec_64.c +3 −3
  2646. arch/powerpc/kernel/pci-common.c +65 −43
  2647. arch/powerpc/kernel/pci_64.c +21 −19
  2648. arch/powerpc/kernel/pci_dn.c +3 −0
  2649. arch/powerpc/kernel/process.c +19 −3
  2650. arch/powerpc/kernel/prom_init.c +22 −15
  2651. arch/powerpc/kernel/ptrace.c +13 −17
  2652. arch/powerpc/kernel/reloc_32.S +208 −0
  2653. arch/powerpc/kernel/rtas_flash.c +6 −0
  2654. arch/powerpc/kernel/rtasd.c +7 −0
  2655. arch/powerpc/kernel/setup_64.c +10 −0
  2656. arch/powerpc/kernel/smp.c +3 −2
  2657. arch/powerpc/kernel/sysfs.c +140 −131
  2658. arch/powerpc/kernel/time.c +30 −75
  2659. arch/powerpc/kernel/traps.c +98 −75
  2660. arch/powerpc/kernel/vio.c +0 −1
  2661. arch/powerpc/kernel/vmlinux.lds.S +7 −1
  2662. arch/powerpc/kvm/book3s.c +1 −1
  2663. arch/powerpc/kvm/book3s_hv_builtin.c +1 −1
  2664. arch/powerpc/kvm/book3s_hv_rmhandlers.S +3 −0
  2665. arch/powerpc/lib/Makefile +3 −1
  2666. arch/powerpc/lib/copyuser_64.S +6 −0
  2667. arch/powerpc/lib/copyuser_power7.S +683 −0
  2668. arch/powerpc/lib/copyuser_power7_vmx.c +50 −0
  2669. arch/powerpc/mm/44x_mmu.c +1 −5
  2670. arch/powerpc/mm/Makefile +2 −0
  2671. arch/powerpc/mm/fault.c +17 −0
  2672. arch/powerpc/mm/hugetlbpage-book3e.c +11 −10
  2673. arch/powerpc/mm/hugetlbpage.c +73 −43
  2674. arch/powerpc/mm/icswx.c +273 −0
  2675. arch/powerpc/mm/icswx.h +62 −0
  2676. arch/powerpc/mm/icswx_pid.c +87 −0
  2677. arch/powerpc/mm/init_32.c +7 −0
  2678. arch/powerpc/mm/mem.c +22 −1
  2679. arch/powerpc/mm/mmap_64.c +3 −11
  2680. arch/powerpc/mm/mmu_context_hash64.c +1 −194
  2681. arch/powerpc/mm/numa.c +8 −8
  2682. arch/powerpc/mm/tlb_low_64e.S +15 −21
  2683. arch/powerpc/mm/tlb_nohash.c +1 −1
  2684. arch/powerpc/platforms/40x/Kconfig +18 −37
  2685. arch/powerpc/platforms/40x/ppc40x_simple.c +3 −1
  2686. arch/powerpc/platforms/44x/Kconfig +15 −17
  2687. arch/powerpc/platforms/44x/Makefile +1 −0
  2688. arch/powerpc/platforms/44x/currituck.c +204 −0
  2689. arch/powerpc/platforms/44x/iss4xx.c +1 −1
  2690. arch/powerpc/platforms/512x/Kconfig +0 −1
  2691. arch/powerpc/platforms/83xx/asp834x.c +2 −33
  2692. arch/powerpc/platforms/83xx/km83xx.c +5 −53
  2693. arch/powerpc/platforms/83xx/misc.c +77 −0
  2694. arch/powerpc/platforms/83xx/mpc830x_rdb.c +3 −37
  2695. arch/powerpc/platforms/83xx/mpc831x_rdb.c +3 −40
  2696. arch/powerpc/platforms/83xx/mpc832x_mds.c +3 −50
  2697. arch/powerpc/platforms/83xx/mpc832x_rdb.c +4 −52
  2698. arch/powerpc/platforms/83xx/mpc834x_itx.c +3 −27
  2699. arch/powerpc/platforms/83xx/mpc834x_mds.c +3 −39
  2700. arch/powerpc/platforms/83xx/mpc836x_mds.c +3 −50
  2701. arch/powerpc/platforms/83xx/mpc836x_rdk.c +3 −45
  2702. arch/powerpc/platforms/83xx/mpc837x_mds.c +3 −43
  2703. arch/powerpc/platforms/83xx/mpc837x_rdb.c +3 −44
  2704. arch/powerpc/platforms/83xx/mpc83xx.h +16 −0
  2705. arch/powerpc/platforms/83xx/sbc834x.c +5 −44
  2706. arch/powerpc/platforms/85xx/Makefile +2 −0
  2707. arch/powerpc/platforms/85xx/common.c +66 −0
  2708. arch/powerpc/platforms/85xx/corenet_ds.c +4 −24
  2709. arch/powerpc/platforms/85xx/ksi8560.c +5 −64
  2710. arch/powerpc/platforms/85xx/mpc8536_ds.c +5 −33
  2711. arch/powerpc/platforms/85xx/mpc85xx.h +11 −0
  2712. arch/powerpc/platforms/85xx/mpc85xx_ads.c +6 −68
  2713. arch/powerpc/platforms/85xx/mpc85xx_cds.c +6 −36
  2714. arch/powerpc/platforms/85xx/mpc85xx_ds.c +10 −40
  2715. arch/powerpc/platforms/85xx/mpc85xx_mds.c +7 −66
  2716. arch/powerpc/platforms/85xx/mpc85xx_rdb.c +8 −41
  2717. arch/powerpc/platforms/85xx/p1010rdb.c +6 −32
  2718. arch/powerpc/platforms/85xx/p1022_ds.c +6 −31
  2719. arch/powerpc/platforms/85xx/p1023_rds.c +6 −41
  2720. arch/powerpc/platforms/85xx/sbc8548.c +5 −38
  2721. arch/powerpc/platforms/85xx/sbc8560.c +6 −68
  2722. arch/powerpc/platforms/85xx/smp.c +1 −0
  2723. arch/powerpc/platforms/85xx/smp.h +15 −0
  2724. arch/powerpc/platforms/85xx/socrates.c +4 −29
  2725. arch/powerpc/platforms/85xx/stx_gp3.c +6 −67
  2726. arch/powerpc/platforms/85xx/tqm85xx.c +6 −67
  2727. arch/powerpc/platforms/85xx/xes_mpc85xx.c +8 −40
  2728. arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +1 −1
  2729. arch/powerpc/platforms/86xx/pic.c +4 −14
  2730. arch/powerpc/platforms/Kconfig +6 −3
  2731. arch/powerpc/platforms/Kconfig.cputype +22 −3
  2732. arch/powerpc/platforms/cell/cbe_thermal.c +72 −72
  2733. arch/powerpc/platforms/cell/iommu.c +2 −0
  2734. arch/powerpc/platforms/cell/setup.c +1 −24
  2735. arch/powerpc/platforms/cell/smp.c +1 −1
  2736. arch/powerpc/platforms/cell/spu_base.c +31 −30
  2737. arch/powerpc/platforms/cell/spu_syscalls.c +2 −2
  2738. arch/powerpc/platforms/cell/spufs/inode.c +8 −9
  2739. arch/powerpc/platforms/cell/spufs/spufs.h +2 −2
  2740. arch/powerpc/platforms/cell/spufs/syscalls.c +1 −1
  2741. arch/powerpc/platforms/chrp/setup.c +1 −2
  2742. arch/powerpc/platforms/embedded6xx/holly.c +3 −20
  2743. arch/powerpc/platforms/embedded6xx/linkstation.c +5 −15
  2744. arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c +3 −21
  2745. arch/powerpc/platforms/embedded6xx/storcenter.c +4 −22
  2746. arch/powerpc/platforms/iseries/smp.c +1 −1
  2747. arch/powerpc/platforms/maple/pci.c +55 −0
  2748. arch/powerpc/platforms/maple/setup.c +1 −1
  2749. arch/powerpc/platforms/pasemi/setup.c +2 −2
  2750. arch/powerpc/platforms/powermac/cpufreq_32.c +1 −1
  2751. arch/powerpc/platforms/powermac/pic.c +13 −67
  2752. arch/powerpc/platforms/powermac/setup.c +6 −2
  2753. arch/powerpc/platforms/powermac/smp.c +3 −3
  2754. arch/powerpc/platforms/powernv/Makefile +1 −1
  2755. arch/powerpc/platforms/powernv/opal-wrappers.S +8 −0
  2756. arch/powerpc/platforms/powernv/pci-ioda.c +1330 −0
  2757. arch/powerpc/platforms/powernv/pci-p5ioc2.c +1 −0
  2758. arch/powerpc/platforms/powernv/pci.c +203 −25
  2759. arch/powerpc/platforms/powernv/pci.h +100 −0
  2760. arch/powerpc/platforms/powernv/smp.c +1 −1
  2761. arch/powerpc/platforms/ps3/interrupt.c +53 −50
  2762. arch/powerpc/platforms/ps3/repository.c +69 −68
  2763. arch/powerpc/platforms/ps3/setup.c +3 −1
  2764. arch/powerpc/platforms/ps3/smp.c +1 −1
  2765. arch/powerpc/platforms/ps3/spu.c +1 −1
  2766. arch/powerpc/platforms/pseries/Kconfig +9 −0
  2767. arch/powerpc/platforms/pseries/Makefile +1 −0
  2768. arch/powerpc/platforms/pseries/cmm.c +34 −33
  2769. arch/powerpc/platforms/pseries/hvCall.S +2 −1
  2770. arch/powerpc/platforms/pseries/hvCall_inst.c +1 −3
  2771. arch/powerpc/platforms/pseries/iommu.c +56 −5
  2772. arch/powerpc/platforms/pseries/lpar.c +12 −4
  2773. arch/powerpc/platforms/pseries/nvram.c +7 −1
  2774. arch/powerpc/platforms/pseries/processor_idle.c +329 −0
  2775. arch/powerpc/platforms/pseries/pseries.h +3 −0
  2776. arch/powerpc/platforms/pseries/pseries_energy.c +34 −37
  2777. arch/powerpc/platforms/pseries/setup.c +20 −89
  2778. arch/powerpc/platforms/pseries/smp.c +2 −1
  2779. arch/powerpc/platforms/pseries/suspend.c +17 −16
  2780. arch/powerpc/platforms/wsp/Kconfig +10 −2
  2781. arch/powerpc/platforms/wsp/Makefile +5 −3
  2782. arch/powerpc/platforms/wsp/chroma.c +56 −0
  2783. arch/powerpc/platforms/wsp/h8.c +134 −0
  2784. arch/powerpc/platforms/wsp/opb_pic.c +2 −1
  2785. arch/powerpc/platforms/wsp/psr2.c +12 −44
  2786. arch/powerpc/platforms/wsp/wsp.c +115 −0
  2787. arch/powerpc/platforms/wsp/wsp.h +13 −3
  2788. arch/powerpc/relocs_check.pl +12 −2
  2789. arch/powerpc/sysdev/Makefile +2 −1
  2790. arch/powerpc/sysdev/axonram.c +0 −1
  2791. arch/powerpc/sysdev/fsl_ifc.c +310 −0
  2792. arch/powerpc/sysdev/fsl_lbc.c +36 −0
  2793. arch/powerpc/sysdev/fsl_msi.c +83 −16
  2794. arch/powerpc/sysdev/fsl_msi.h +7 −3
  2795. arch/powerpc/sysdev/fsl_pci.c +84 −0
  2796. arch/powerpc/sysdev/fsl_rio.c +271 −1248
  2797. arch/powerpc/sysdev/fsl_rio.h +135 −0
  2798. arch/powerpc/sysdev/fsl_rmu.c +1104 −0
  2799. arch/powerpc/sysdev/mpic.c +122 −79
  2800. arch/powerpc/sysdev/ppc4xx_cpm.c +3 −3
  2801. arch/powerpc/sysdev/ppc4xx_pci.c +77 −8
  2802. arch/powerpc/sysdev/ppc4xx_pci.h +7 −0
  2803. arch/powerpc/sysdev/qe_lib/gpio.c +8 −34
  2804. arch/powerpc/sysdev/qe_lib/qe_ic.c +6 −6
  2805. arch/powerpc/sysdev/uic.c +0 −1
  2806. arch/powerpc/sysdev/xics/icp-hv.c +32 −15
  2807. arch/powerpc/sysdev/xics/xics-common.c +1 −1
  2808. arch/powerpc/xmon/xmon.c +6 −10
  2809. arch/s390/Kbuild +7 −6
  2810. arch/s390/Kconfig +3 −9
  2811. arch/s390/Makefile +0 −1
  2812. arch/s390/boot/Makefile +1 −1
  2813. arch/s390/hypfs/inode.c +7 −7
  2814. arch/s390/include/asm/chpid.h +1 −1
  2815. arch/s390/include/asm/debug.h +2 −2
  2816. arch/s390/include/asm/itcw.h +1 −1
  2817. arch/s390/include/asm/kdebug.h +1 −1
  2818. arch/s390/include/asm/lowcore.h +76 −66
  2819. arch/s390/include/asm/mman.h +3 −1
  2820. arch/s390/include/asm/percpu.h +22 −22
  2821. arch/s390/include/asm/pgtable.h +3 −20
  2822. arch/s390/include/asm/processor.h +1 −3
  2823. arch/s390/include/asm/ptrace.h +7 −2
  2824. arch/s390/include/asm/qdio.h +3 −2
  2825. arch/s390/include/asm/sigp.h +1 −0
  2826. arch/s390/include/asm/smp.h +0 −1
  2827. arch/s390/include/asm/socket.h +3 −0
  2828. arch/s390/include/asm/sparsemem.h +2 −2
  2829. arch/s390/include/asm/syscall.h +1 −1
  2830. arch/s390/include/asm/system.h +0 −2
  2831. arch/s390/include/asm/thread_info.h +0 −2
  2832. arch/s390/include/asm/topology.h +34 −6
  2833. arch/s390/include/asm/types.h +0 −2
  2834. arch/s390/include/asm/unistd.h +1 −0
  2835. arch/s390/kernel/Makefile +2 −1
  2836. arch/s390/kernel/asm-offsets.c +5 −3
  2837. arch/s390/kernel/base.S +8 −8
  2838. arch/s390/kernel/compat_linux.c +0 −3
  2839. arch/s390/kernel/compat_signal.c +8 −4
  2840. arch/s390/kernel/debug.c +4 −4
  2841. arch/s390/kernel/dis.c +7 −2
  2842. arch/s390/kernel/early.c +12 −8
  2843. arch/s390/kernel/entry.S +483 −620
  2844. arch/s390/kernel/entry.h +5 −5
  2845. arch/s390/kernel/entry64.S +434 −542
  2846. arch/s390/kernel/head.S +2 −2
  2847. arch/s390/kernel/machine_kexec.c +1 −0
  2848. arch/s390/kernel/mem_detect.c +67 −55
  2849. arch/s390/kernel/nmi.c +1 −1
  2850. arch/s390/kernel/ptrace.c +6 −9
  2851. arch/s390/kernel/reipl64.S +2 −2
  2852. arch/s390/kernel/setup.c +53 −16
  2853. arch/s390/kernel/signal.c +12 −8
  2854. arch/s390/kernel/smp.c +98 −131
  2855. arch/s390/kernel/sys_s390.c +12 −64
  2856. arch/s390/kernel/time.c +131 −129
  2857. arch/s390/kernel/topology.c +190 −91
  2858. arch/s390/kernel/traps.c +60 −110
  2859. arch/s390/mm/fault.c +48 −59
  2860. arch/s390/mm/init.c +10 −6
  2861. arch/s390/mm/pgtable.c +3 −11
  2862. arch/score/Kconfig +2 −3
  2863. arch/sh/Kconfig +1 −3
  2864. arch/sh/boards/board-magicpanelr2.c +2 −32
  2865. arch/sh/boards/board-sh7757lcr.c +39 −0
  2866. arch/sh/boards/mach-ap325rxa/setup.c +1 −13
  2867. arch/sh/boards/mach-ecovec24/setup.c +1 −37
  2868. arch/sh/boards/mach-kfr2r09/setup.c +1 −13
  2869. arch/sh/boards/mach-migor/setup.c +2 −14
  2870. arch/sh/boards/mach-rsk/setup.c +6 −37
  2871. arch/sh/boards/mach-se/7722/setup.c +0 −3
  2872. arch/sh/boards/mach-se/7724/setup.c +14 −32
  2873. arch/sh/drivers/dma/dma-sysfs.c +41 −40
  2874. arch/sh/drivers/pci/pci.c +10 −54
  2875. arch/sh/include/asm/device.h +0 −10
  2876. arch/sh/include/asm/dma.h +2 −2
  2877. arch/sh/include/asm/hwblk.h +0 −70
  2878. arch/sh/include/asm/ptrace_32.h +4 −1
  2879. arch/sh/include/asm/ptrace_64.h +4 −1
  2880. arch/sh/include/asm/thread_info.h +0 −2
  2881. arch/sh/include/cpu-sh4/cpu/sh7722.h +5 −8
  2882. arch/sh/include/cpu-sh4/cpu/sh7723.h +1 −2
  2883. arch/sh/include/cpu-sh4/cpu/sh7724.h +2 −2
  2884. arch/sh/kernel/cpu/Makefile +1 −1
  2885. arch/sh/kernel/cpu/hwblk.c +0 −159
  2886. arch/sh/kernel/cpu/sh4/sq.c +13 −11
  2887. arch/sh/kernel/cpu/sh4a/Makefile +3 −3
  2888. arch/sh/kernel/cpu/sh4a/clock-sh7722.c +40 −37
  2889. arch/sh/kernel/cpu/sh4a/clock-sh7723.c +82 −127
  2890. arch/sh/kernel/cpu/sh4a/clock-sh7724.c +107 −94
  2891. arch/sh/kernel/cpu/sh4a/clock-sh7757.c +1 −1
  2892. arch/sh/kernel/cpu/sh4a/hwblk-sh7722.c +0 −106
  2893. arch/sh/kernel/cpu/sh4a/hwblk-sh7723.c +0 −117
  2894. arch/sh/kernel/cpu/sh4a/hwblk-sh7724.c +0 −121
  2895. arch/sh/kernel/cpu/sh4a/setup-sh7722.c +1 −37
  2896. arch/sh/kernel/cpu/sh4a/setup-sh7723.c +0 −39
  2897. arch/sh/kernel/cpu/sh4a/setup-sh7724.c +2 −62
  2898. arch/sh/kernel/cpu/sh4a/setup-sh7757.c +4 −3
  2899. arch/sh/kernel/cpu/sh4a/setup-sh7780.c +2 −0
  2900. arch/sh/kernel/cpu/sh4a/setup-sh7785.c +2 −0
  2901. arch/sh/kernel/cpu/sh4a/setup-sh7786.c +1 −1
  2902. arch/sh/kernel/cpu/shmobile/Makefile +0 −1
  2903. arch/sh/kernel/cpu/shmobile/cpuidle.c +1 −2
  2904. arch/sh/kernel/cpu/shmobile/pm_runtime.c +0 −319
  2905. arch/sh/kernel/entry-common.S +1 −0
  2906. arch/sh/kernel/process_32.c +1 −1
  2907. arch/sh/kernel/process_64.c +1 −1
  2908. arch/sh/kernel/ptrace_32.c +4 −7
  2909. arch/sh/kernel/ptrace_64.c +4 −7
  2910. arch/sh/kernel/signal_32.c +0 −4
  2911. arch/sh/kernel/signal_64.c +0 −4
  2912. arch/sh/kernel/time.c +0 −2
  2913. arch/sh/mm/cache-sh2a.c +84 −39
  2914. arch/sparc/Kconfig +2 −2
  2915. arch/sparc/include/asm/atomic_32.h +1 −103
  2916. arch/sparc/include/asm/io_32.h +1 −1
  2917. arch/sparc/include/asm/io_64.h +1 −1
  2918. arch/sparc/include/asm/page_32.h +3 −7
  2919. arch/sparc/include/asm/pci_32.h +0 −5
  2920. arch/sparc/include/asm/pci_64.h +0 −5
  2921. arch/sparc/include/asm/pgtsun4.h +0 −171
  2922. arch/sparc/include/asm/posix_types.h +0 −2
  2923. arch/sparc/include/asm/ptrace.h +9 −1
  2924. arch/sparc/include/asm/siginfo.h +0 −2
  2925. arch/sparc/include/asm/signal.h +2 −1
  2926. arch/sparc/include/asm/socket.h +3 −0
  2927. arch/sparc/include/asm/thread_info_32.h +1 −3
  2928. arch/sparc/include/asm/thread_info_64.h +0 −2
  2929. arch/sparc/include/asm/types.h +0 −6
  2930. arch/sparc/kernel/leon_pci.c +8 −17
  2931. arch/sparc/kernel/pci.c +11 −11
  2932. arch/sparc/kernel/ptrace_64.c +9 −19
  2933. arch/sparc/kernel/smp_64.c +1 −1
  2934. arch/sparc/kernel/sys_sparc_64.c +3 −3
  2935. arch/sparc/kernel/sysfs.c +61 −61
  2936. arch/sparc/lib/atomic_32.S +0 −55
  2937. arch/sparc/lib/iomap.c +0 −23
  2938. arch/sparc/lib/ksyms.c +0 −6
  2939. arch/tile/Kconfig +1 −0
  2940. arch/tile/include/asm/io.h +2 −1
  2941. arch/tile/include/asm/pci.h +1 −8
  2942. arch/tile/include/asm/signal.h +3 −1
  2943. arch/tile/kernel/machine_kexec.c +3 −3
  2944. arch/tile/kernel/pci.c +5 −21
  2945. arch/tile/kernel/sysfs.c +30 −31
  2946. arch/um/Kconfig.common +1 −0
  2947. arch/um/Makefile +7 −2
  2948. arch/um/include/asm/thread_info.h +0 −2
  2949. arch/um/kernel/ptrace.c +9 −11
  2950. arch/unicore32/Kconfig +1 −3
  2951. arch/unicore32/include/asm/io.h +1 −7
  2952. arch/unicore32/include/asm/pci.h +0 −5
  2953. arch/unicore32/include/asm/thread_info.h +0 −2
  2954. arch/unicore32/kernel/pci.c +5 −0
  2955. arch/unicore32/kernel/puv3-core.c +0 −1
  2956. arch/unicore32/kernel/puv3-nb0916.c +2 −3
  2957. arch/unicore32/kernel/setup.c +1 −1
  2958. arch/unicore32/kernel/signal.c +5 −10
  2959. arch/unicore32/kernel/time.c +1 −1
  2960. arch/x86/Kconfig +40 −8
  2961. arch/x86/Kconfig.cpu +0 −6
  2962. arch/x86/Kconfig.debug +20 −5
  2963. arch/x86/Makefile +6 −0
  2964. arch/x86/boot/compressed/Makefile +9 −1
  2965. arch/x86/boot/compressed/eboot.c +1022 −0
  2966. arch/x86/boot/compressed/eboot.h +61 −0
  2967. arch/x86/boot/compressed/efi_stub_32.S +86 −0
  2968. arch/x86/boot/compressed/efi_stub_64.S +1 −0
  2969. arch/x86/boot/compressed/head_32.S +22 −0
  2970. arch/x86/boot/compressed/head_64.S +20 −0
  2971. arch/x86/boot/compressed/string.c +9 −0
  2972. arch/x86/boot/header.S +158 −0
  2973. arch/x86/boot/string.c +35 −0
  2974. arch/x86/boot/tools/build.c +39 −0
  2975. arch/x86/crypto/Makefile +4 −0
  2976. arch/x86/crypto/serpent-sse2-i586-asm_32.S +638 −0
  2977. arch/x86/crypto/serpent-sse2-x86_64-asm_64.S +761 −0
  2978. arch/x86/crypto/serpent_sse2_glue.c +1070 −0
  2979. arch/x86/crypto/twofish_glue_3way.c +218 −0
  2980. arch/x86/ia32/Makefile +1 −0
  2981. arch/x86/ia32/ia32entry.S +8 −365
  2982. arch/x86/ia32/nosyscall.c +7 −0
  2983. arch/x86/ia32/syscall_ia32.c +25 −0
  2984. arch/x86/include/asm/Kbuild +3 −2
  2985. arch/x86/include/asm/amd_nb.h +2 −0
  2986. arch/x86/include/asm/bootparam.h +2 −0
  2987. arch/x86/include/asm/cpufeature.h +3 −0
  2988. arch/x86/include/asm/debugreg.h +22 −0
  2989. arch/x86/include/asm/desc.h +12 −0
  2990. arch/x86/include/asm/efi.h +4 −0
  2991. arch/x86/include/asm/fixmap.h +1 −1
  2992. arch/x86/include/asm/ia32_unistd.h +3 −10
  2993. arch/x86/include/asm/init.h +2 −0
  2994. arch/x86/include/asm/iommu.h +1 −0
  2995. arch/x86/include/asm/kvm_emulate.h +2 −0
  2996. arch/x86/include/asm/kvm_host.h +68 −22
  2997. arch/x86/include/asm/mce.h +1 −1
  2998. arch/x86/include/asm/mrst.h +1 −1
  2999. arch/x86/include/asm/pci.h +9 −0
  3000. arch/x86/include/asm/pci_x86.h +0 −2
  3001. arch/x86/include/asm/percpu.h +0 −28
  3002. arch/x86/include/asm/serpent.h +63 −0
  3003. arch/x86/include/asm/setup.h +1 −1
  3004. arch/x86/include/asm/smp.h +6 −0
  3005. arch/x86/include/asm/syscall.h +1 −0
  3006. arch/x86/include/asm/thread_info.h +0 −2
  3007. arch/x86/include/asm/topology.h +1 −1
  3008. arch/x86/include/asm/unistd.h +50 −4
  3009. arch/x86/include/asm/unistd_32.h +0 −401
  3010. arch/x86/include/asm/unistd_64.h +0 −732
  3011. arch/x86/include/asm/x86_init.h +1 −0
  3012. arch/x86/kernel/Makefile +3 −1
  3013. arch/x86/kernel/amd_nb.c +31 −0
  3014. arch/x86/kernel/apm_32.c +8 −8
  3015. arch/x86/kernel/asm-offsets.c +2 −0
  3016. arch/x86/kernel/asm-offsets_32.c +8 −0
  3017. arch/x86/kernel/asm-offsets_64.c +12 −7
  3018. arch/x86/kernel/cpu/common.c +24 −0
  3019. arch/x86/kernel/cpu/intel_cacheinfo.c +12 −13
  3020. arch/x86/kernel/cpu/mcheck/mce-internal.h +2 −2
  3021. arch/x86/kernel/cpu/mcheck/mce.c +74 −64
  3022. arch/x86/kernel/cpu/mcheck/mce_amd.c +11 −8
  3023. arch/x86/kernel/cpu/mcheck/therm_throt.c +31 −32
  3024. arch/x86/kernel/cpuid.c +1 −1
  3025. arch/x86/kernel/e820.c +26 −37
  3026. arch/x86/kernel/early_printk.c +2 −2
  3027. arch/x86/kernel/entry_32.S +19 −28
  3028. arch/x86/kernel/entry_64.S +192 −40
  3029. arch/x86/kernel/head_64.S +4 −0
  3030. arch/x86/kernel/hpet.c +0 −1
  3031. arch/x86/kernel/irq_32.c +5 −0
  3032. arch/x86/kernel/irq_64.c +29 −6
  3033. arch/x86/kernel/irqinit.c +1 −1
  3034. arch/x86/kernel/kvm.c +0 −181
  3035. arch/x86/kernel/microcode_core.c +33 −31
  3036. arch/x86/kernel/msr.c +1 −1
  3037. arch/x86/kernel/nmi.c +102 −0
  3038. arch/x86/kernel/nmi_selftest.c +180 −0
  3039. arch/x86/kernel/pci-dma.c +11 −0
  3040. arch/x86/kernel/ptrace.c +11 −14
  3041. arch/x86/kernel/setup.c +1 −6
  3042. arch/x86/kernel/signal.c +1 −5
  3043. arch/x86/kernel/smp.c +70 −2
  3044. arch/x86/kernel/smpboot.c +12 −5
  3045. arch/x86/kernel/syscall_32.c +25 −0
  3046. arch/x86/kernel/syscall_64.c +8 −12
  3047. arch/x86/kernel/syscall_table_32.S +0 −350
  3048. arch/x86/kernel/traps.c +20 −0
  3049. arch/x86/kernel/tsc.c +20 −0
  3050. arch/x86/kernel/vm86_32.c +4 −2
  3051. arch/x86/kernel/x86_init.c +1 −0
  3052. arch/x86/kvm/Kconfig +3 −0
  3053. arch/x86/kvm/Makefile +1 −1
  3054. arch/x86/kvm/cpuid.c +670 −0
  3055. arch/x86/kvm/cpuid.h +46 −0
  3056. arch/x86/kvm/emulate.c +226 −210
  3057. arch/x86/kvm/i8254.c +3 −7
  3058. arch/x86/kvm/i8259.c +16 −8
  3059. arch/x86/kvm/lapic.c +2 −1
  3060. arch/x86/kvm/lapic.h +1 −0
  3061. arch/x86/kvm/mmu.c +229 −318
  3062. arch/x86/kvm/mmu_audit.c +20 −9
  3063. arch/x86/kvm/mmutrace.h +0 −19
  3064. arch/x86/kvm/paging_tmpl.h +40 −46
  3065. arch/x86/kvm/pmu.c +533 −0
  3066. arch/x86/kvm/svm.c +15 −0
  3067. arch/x86/kvm/timer.c +4 −22
  3068. arch/x86/kvm/vmx.c +39 −24
  3069. arch/x86/kvm/x86.c +226 −779
  3070. arch/x86/kvm/x86.h +2 −3
  3071. arch/x86/lguest/boot.c +13 −8
  3072. arch/x86/mm/init.c +23 −0
  3073. arch/x86/mm/init_32.c +11 −18
  3074. arch/x86/mm/init_64.c +1 −10
  3075. arch/x86/mm/mmap.c +2 −2
  3076. arch/x86/mm/mmio-mod.c +2 −2
  3077. arch/x86/mm/numa.c +7 −5
  3078. arch/x86/mm/pageattr.c +0 −6
  3079. arch/x86/mm/srat.c +4 −0
  3080. arch/x86/pci/Makefile +3 −2
  3081. arch/x86/pci/acpi.c +59 −16
  3082. arch/x86/pci/amd_bus.c +11 −32
  3083. arch/x86/pci/broadcom_bus.c +39 −23
  3084. arch/x86/pci/bus_numa.c +18 −13
  3085. arch/x86/pci/common.c +12 −7
  3086. arch/x86/pci/i386.c +0 −20
  3087. arch/x86/pci/legacy.c +0 −3
  3088. arch/x86/pci/numaq_32.c +0 −2
  3089. arch/x86/pci/pcbios.c +1 −1
  3090. arch/x86/platform/geode/alix.c +1 −1
  3091. arch/x86/platform/iris/iris.c +1 −1
  3092. arch/x86/platform/mrst/Makefile +3 −3
  3093. arch/x86/platform/mrst/early_printk_mrst.c +12 −4
  3094. arch/x86/platform/mrst/mrst.c +2 −2
  3095. arch/x86/platform/uv/uv_sysfs.c +1 −1
  3096. arch/x86/syscalls/Makefile +43 −0
  3097. arch/x86/syscalls/syscall_32.tbl +357 −0
  3098. arch/x86/syscalls/syscall_64.tbl +320 −0
  3099. arch/x86/syscalls/syscallhdr.sh +27 −0
  3100. arch/x86/syscalls/syscalltbl.sh +15 −0
  3101. arch/x86/um/Kconfig +0 −8
  3102. arch/x86/um/Makefile +2 −1
  3103. arch/x86/um/shared/sysdep/ptrace.h +10 −0
  3104. arch/x86/um/sys_call_table_32.S +0 −26
  3105. arch/x86/um/sys_call_table_32.c +55 −0
  3106. arch/x86/um/sys_call_table_64.c +13 −20
  3107. arch/x86/um/user-offsets.c +15 −0
  3108. arch/x86/xen/Kconfig +3 −1
  3109. arch/x86/xen/debugfs.c +1 −1
  3110. arch/x86/xen/debugfs.h +1 −1
  3111. arch/x86/xen/grant-table.c +40 −4
  3112. arch/x86/xen/mmu.c +1 −1
  3113. arch/xtensa/Kconfig +1 −0
  3114. arch/xtensa/include/asm/pci.h +0 −5
  3115. arch/xtensa/include/asm/socket.h +3 −0
  3116. arch/xtensa/include/asm/thread_info.h +0 −2
  3117. arch/xtensa/include/asm/types.h +0 −2
  3118. arch/xtensa/kernel/pci.c +47 −43
  3119. arch/xtensa/kernel/ptrace.c +1 −2
  3120. block/Kconfig +6 −0
  3121. block/Makefile +2 −1
  3122. block/blk-cgroup.c +29 −17
  3123. block/blk-core.c +122 −81
  3124. block/blk-exec.c +5 −3
  3125. block/blk-ioc.c +400 −85
  3126. block/blk-settings.c +24 −8
  3127. block/blk-sysfs.c +9 −3
  3128. block/blk-throttle.c +2 −2
  3129. block/blk.h +50 −8
  3130. block/bsg.c +2 −4
  3131. block/cfq-iosched.c +116 −510
  3132. block/compat_ioctl.c +3 −0
  3133. block/deadline-iosched.c +1 −3
  3134. block/elevator.c +107 −110
  3135. block/genhd.c +3 −4
  3136. block/ioctl.c +3 −1
  3137. block/noop-iosched.c +1 −3
  3138. block/partition-generic.c +1 −151
  3139. block/partitions/Kconfig +0 −0
  3140. block/partitions/Makefile +0 −0
  3141. block/partitions/acorn.c +0 −0
  3142. block/partitions/acorn.h +0 −0
  3143. block/partitions/amiga.c +0 −0
  3144. block/partitions/amiga.h +0 −0
  3145. block/partitions/atari.c +0 −0
  3146. block/partitions/atari.h +0 −0
  3147. block/partitions/check.c +166 −0
  3148. block/partitions/check.h +3 −0
  3149. block/partitions/efi.c +0 −0
  3150. block/partitions/efi.h +0 −0
  3151. block/partitions/ibm.c +0 −0
  3152. block/partitions/ibm.h +0 −0
  3153. block/partitions/karma.c +0 −0
  3154. block/partitions/karma.h +0 −0
  3155. block/partitions/ldm.c +0 −0
  3156. block/partitions/ldm.h +0 −0
  3157. block/partitions/mac.c +0 −0
  3158. block/partitions/mac.h +0 −0
  3159. block/partitions/msdos.c +0 −0
  3160. block/partitions/msdos.h +0 −0
  3161. block/partitions/osf.c +0 −0
  3162. block/partitions/osf.h +0 −0
  3163. block/partitions/sgi.c +0 −0
  3164. block/partitions/sgi.h +0 −0
  3165. block/partitions/sun.c +0 −0
  3166. block/partitions/sun.h +0 −0
  3167. block/partitions/sysv68.c +0 −0
  3168. block/partitions/sysv68.h +0 −0
  3169. block/partitions/ultrix.c +0 −0
  3170. block/partitions/ultrix.h +0 −0
  3171. block/scsi_ioctl.c +52 −0
  3172. crypto/Kconfig +46 −8
  3173. crypto/Makefile +1 −1
  3174. crypto/algapi.c +29 −0
  3175. crypto/ansi_cprng.c +8 −0
  3176. crypto/crypto_user.c +2 −2
  3177. crypto/lrw.c +122 −34
  3178. crypto/serpent.c +0 −587
  3179. crypto/serpent_generic.c +684 −0
  3180. crypto/tcrypt.c +310 −0
  3181. crypto/tcrypt.h +2 −0
  3182. crypto/testmgr.c +150 −0
  3183. crypto/testmgr.h +2892 −137
  3184. crypto/twofish_common.c +8 −5
  3185. crypto/xts.c +76 −3
  3186. drivers/Kconfig +2 −2
  3187. drivers/Makefile +1 −1
  3188. drivers/accessibility/braille/braille_console.c +1 −1
  3189. drivers/acpi/Kconfig +1 −1
  3190. drivers/acpi/Makefile +2 −1
  3191. drivers/acpi/acpica/Makefile +134 −24
  3192. drivers/acpi/acpica/accommon.h +1 −1
  3193. drivers/acpi/acpica/acconfig.h +7 −2
  3194. drivers/acpi/acpica/acdebug.h +1 −1
  3195. drivers/acpi/acpica/acdispat.h +1 −1
  3196. drivers/acpi/acpica/acevents.h +2 −1
  3197. drivers/acpi/acpica/acglobal.h +16 −3
  3198. drivers/acpi/acpica/achware.h +1 −1
  3199. drivers/acpi/acpica/acinterp.h +3 −1
  3200. drivers/acpi/acpica/aclocal.h +21 −5
  3201. drivers/acpi/acpica/acmacros.h +1 −1
  3202. drivers/acpi/acpica/acnamesp.h +1 −1
  3203. drivers/acpi/acpica/acobject.h +6 −2
  3204. drivers/acpi/acpica/acopcode.h +5 −1
  3205. drivers/acpi/acpica/acparser.h +1 −1
  3206. drivers/acpi/acpica/acpredef.h +39 −2
  3207. drivers/acpi/acpica/acresrc.h +78 −37
  3208. drivers/acpi/acpica/acstruct.h +1 −1
  3209. drivers/acpi/acpica/actables.h +1 −1
  3210. drivers/acpi/acpica/acutils.h +20 −1
  3211. drivers/acpi/acpica/amlcode.h +21 −8
  3212. drivers/acpi/acpica/amlresrc.h +137 −1
  3213. drivers/acpi/acpica/dsargs.c +16 −2
  3214. drivers/acpi/acpica/dscontrol.c +1 −1
  3215. drivers/acpi/acpica/dsfield.c +67 −16
  3216. drivers/acpi/acpica/dsinit.c +1 −1
  3217. drivers/acpi/acpica/dsmethod.c +1 −1
  3218. drivers/acpi/acpica/dsmthdat.c +1 −1
  3219. drivers/acpi/acpica/dsobject.c +1 −1
  3220. drivers/acpi/acpica/dsopcode.c +1 −1
  3221. drivers/acpi/acpica/dsutils.c +1 −1
  3222. drivers/acpi/acpica/dswexec.c +1 −1
  3223. drivers/acpi/acpica/dswload.c +1 −1
  3224. drivers/acpi/acpica/dswload2.c +1 −1
  3225. drivers/acpi/acpica/dswscope.c +1 −1
  3226. drivers/acpi/acpica/dswstate.c +1 −1
  3227. drivers/acpi/acpica/evevent.c +13 −1
  3228. drivers/acpi/acpica/evglock.c +7 −1
  3229. drivers/acpi/acpica/evgpe.c +1 −1
  3230. drivers/acpi/acpica/evgpeblk.c +1 −1
  3231. drivers/acpi/acpica/evgpeinit.c +1 −1
  3232. drivers/acpi/acpica/evgpeutil.c +1 −1
  3233. drivers/acpi/acpica/evmisc.c +1 −1
  3234. drivers/acpi/acpica/evregion.c +27 −4
  3235. drivers/acpi/acpica/evrgnini.c +1 −1
  3236. drivers/acpi/acpica/evsci.c +1 −1
  3237. drivers/acpi/acpica/evxface.c +1 −1
  3238. drivers/acpi/acpica/evxfevnt.c +1 −1
  3239. drivers/acpi/acpica/evxfgpe.c +1 −1
  3240. drivers/acpi/acpica/evxfregn.c +1 −1
  3241. drivers/acpi/acpica/exconfig.c +4 −4
  3242. drivers/acpi/acpica/exconvrt.c +1 −1
  3243. drivers/acpi/acpica/excreate.c +20 −11
  3244. drivers/acpi/acpica/exdebug.c +1 −1
  3245. drivers/acpi/acpica/exdump.c +6 −3
  3246. drivers/acpi/acpica/exfield.c +22 −8
  3247. drivers/acpi/acpica/exfldio.c +29 −9
  3248. drivers/acpi/acpica/exmisc.c +1 −1
  3249. drivers/acpi/acpica/exmutex.c +1 −1
  3250. drivers/acpi/acpica/exnames.c +1 −1
  3251. drivers/acpi/acpica/exoparg1.c +1 −1
  3252. drivers/acpi/acpica/exoparg2.c +1 −1
  3253. drivers/acpi/acpica/exoparg3.c +1 −1
  3254. drivers/acpi/acpica/exoparg6.c +1 −1
  3255. drivers/acpi/acpica/exprep.c +26 −1
  3256. drivers/acpi/acpica/exregion.c +1 −1
  3257. drivers/acpi/acpica/exresnte.c +1 −1
  3258. drivers/acpi/acpica/exresolv.c +1 −1
  3259. drivers/acpi/acpica/exresop.c +1 −1
  3260. drivers/acpi/acpica/exstore.c +1 −1
  3261. drivers/acpi/acpica/exstoren.c +1 −1
  3262. drivers/acpi/acpica/exstorob.c +1 −1
  3263. drivers/acpi/acpica/exsystem.c +1 −1
  3264. drivers/acpi/acpica/exutils.c +26 −1
  3265. drivers/acpi/acpica/hwacpi.c +1 −1
  3266. drivers/acpi/acpica/hwgpe.c +1 −1
  3267. drivers/acpi/acpica/hwpci.c +1 −1
  3268. drivers/acpi/acpica/hwregs.c +1 −1
  3269. drivers/acpi/acpica/hwsleep.c +1 −1
  3270. drivers/acpi/acpica/hwtimer.c +1 −1
  3271. drivers/acpi/acpica/hwvalid.c +3 −1
  3272. drivers/acpi/acpica/hwxface.c +2 −2
  3273. drivers/acpi/acpica/nsaccess.c +1 −1
  3274. drivers/acpi/acpica/nsalloc.c +1 −1
  3275. drivers/acpi/acpica/nsdump.c +1 −1
  3276. drivers/acpi/acpica/nsdumpdv.c +1 −1
  3277. drivers/acpi/acpica/nseval.c +1 −1
  3278. drivers/acpi/acpica/nsinit.c +1 −1
  3279. drivers/acpi/acpica/nsload.c +1 −1
  3280. drivers/acpi/acpica/nsnames.c +1 −1
  3281. drivers/acpi/acpica/nsobject.c +1 −1
  3282. drivers/acpi/acpica/nsparse.c +1 −1
  3283. drivers/acpi/acpica/nspredef.c +30 −1
  3284. drivers/acpi/acpica/nsrepair.c +2 −1
  3285. drivers/acpi/acpica/nsrepair2.c +4 −3
  3286. drivers/acpi/acpica/nssearch.c +1 −1
  3287. drivers/acpi/acpica/nsutils.c +1 −1
  3288. drivers/acpi/acpica/nswalk.c +1 −1
  3289. drivers/acpi/acpica/nsxfeval.c +1 −1
  3290. drivers/acpi/acpica/nsxfname.c +1 −1
  3291. drivers/acpi/acpica/nsxfobj.c +1 −1
  3292. drivers/acpi/acpica/psargs.c +129 −14
  3293. drivers/acpi/acpica/psloop.c +1 −1
  3294. drivers/acpi/acpica/psopcode.c +12 −3
  3295. drivers/acpi/acpica/psparse.c +1 −1
  3296. drivers/acpi/acpica/psscope.c +1 −1
  3297. drivers/acpi/acpica/pstree.c +7 −1
  3298. drivers/acpi/acpica/psutils.c +1 −1
  3299. drivers/acpi/acpica/pswalk.c +1 −1
  3300. drivers/acpi/acpica/psxface.c +1 −1
  3301. drivers/acpi/acpica/rsaddr.c +1 −1
  3302. drivers/acpi/acpica/rscalc.c +81 −8
  3303. drivers/acpi/acpica/rscreate.c +67 −2
  3304. drivers/acpi/acpica/rsdump.c +186 −10
  3305. drivers/acpi/acpica/rsinfo.c +51 −7
  3306. drivers/acpi/acpica/rsio.c +1 −1
  3307. drivers/acpi/acpica/rsirq.c +32 −1
  3308. drivers/acpi/acpica/rslist.c +62 −15
  3309. drivers/acpi/acpica/rsmemory.c +1 −1
  3310. drivers/acpi/acpica/rsmisc.c +263 −6
  3311. drivers/acpi/acpica/rsserial.c +441 −0
  3312. drivers/acpi/acpica/rsutils.c +55 −1
  3313. drivers/acpi/acpica/rsxface.c +47 −5
  3314. drivers/acpi/acpica/tbfadt.c +30 −11
  3315. drivers/acpi/acpica/tbfind.c +1 −1
  3316. drivers/acpi/acpica/tbinstal.c +1 −1
  3317. drivers/acpi/acpica/tbutils.c +8 −1
  3318. drivers/acpi/acpica/tbxface.c +1 −1
  3319. drivers/acpi/acpica/tbxfroot.c +1 −1
  3320. drivers/acpi/acpica/utaddress.c +294 −0
  3321. drivers/acpi/acpica/utalloc.c +1 −1
  3322. drivers/acpi/acpica/utcopy.c +1 −1
  3323. drivers/acpi/acpica/utdebug.c +1 −1
  3324. drivers/acpi/acpica/utdecode.c +4 −2
  3325. drivers/acpi/acpica/utdelete.c +9 −6
  3326. drivers/acpi/acpica/uteval.c +1 −1
  3327. drivers/acpi/acpica/utglobal.c +7 −1
  3328. drivers/acpi/acpica/utids.c +1 −1
  3329. drivers/acpi/acpica/utinit.c +2 −1
  3330. drivers/acpi/acpica/utlock.c +1 −1
  3331. drivers/acpi/acpica/utmath.c +1 −1
  3332. drivers/acpi/acpica/utmisc.c +1 −1
  3333. drivers/acpi/acpica/utmutex.c +4 −7
  3334. drivers/acpi/acpica/utobject.c +1 −1
  3335. drivers/acpi/acpica/utosi.c +1 −1
  3336. drivers/acpi/acpica/utresrc.c +243 −35
  3337. drivers/acpi/acpica/utstate.c +1 −1
  3338. drivers/acpi/acpica/utxface.c +39 −1
  3339. drivers/acpi/acpica/utxferror.c +1 −1
  3340. drivers/acpi/acpica/utxfmutex.c +187 −0
  3341. drivers/acpi/apei/apei-base.c +139 −11
  3342. drivers/acpi/apei/apei-internal.h +6 −0
  3343. drivers/acpi/apei/einj.c +244 −46
  3344. drivers/acpi/apei/erst.c +6 −5
  3345. drivers/acpi/apei/ghes.c +84 −20
  3346. drivers/acpi/apei/hest.c +3 −4
  3347. drivers/acpi/atomicio.c +67 −10
  3348. drivers/acpi/battery.c +1 −1
  3349. drivers/acpi/dock.c +1 −1
  3350. drivers/acpi/ec_sys.c +1 −1
  3351. drivers/acpi/numa.c +6 −0
  3352. drivers/acpi/nvs.c +52 −1
  3353. drivers/acpi/osl.c +38 −204
  3354. drivers/acpi/pci_irq.c +5 −5
  3355. drivers/acpi/pci_root.c +7 −0
  3356. drivers/acpi/pci_slot.c +1 −1
  3357. drivers/acpi/processor_core.c +24 −2
  3358. drivers/acpi/processor_driver.c +12 −14
  3359. drivers/acpi/processor_thermal.c +0 −1
  3360. drivers/acpi/sleep.c +16 −0
  3361. drivers/acpi/video.c +3 −3
  3362. drivers/amba/bus.c +5 −135
  3363. drivers/ata/Kconfig +1 −1
  3364. drivers/ata/ahci.c +21 −5
  3365. drivers/ata/ahci_platform.c +68 −0
  3366. drivers/ata/ata_piix.c +7 −0
  3367. drivers/ata/libahci.c +1 −4
  3368. drivers/ata/libata-core.c +126 −64
  3369. drivers/ata/libata-scsi.c +2 −1
  3370. drivers/ata/libata-sff.c +2 −2
  3371. drivers/ata/libata-transport.c +6 −0
  3372. drivers/ata/libata.h +1 −0
  3373. drivers/ata/pata_arasan_cf.c +1 −11
  3374. drivers/ata/pata_at91.c +4 −17
  3375. drivers/ata/pata_bf54x.c +90 −97
  3376. drivers/ata/pata_cs5536.c +42 −57
  3377. drivers/ata/pata_imx.c +1 −11
  3378. drivers/ata/pata_ixp4xx_cf.c +1 −12
  3379. drivers/ata/pata_mpc52xx.c +1 −20
  3380. drivers/ata/pata_of_platform.c +7 −20
  3381. drivers/ata/pata_palmld.c +1 −12
  3382. drivers/ata/pata_platform.c +1 −11
  3383. drivers/ata/pata_pxa.c +1 −12
  3384. drivers/ata/pata_rb532_cf.c +2 −19
  3385. drivers/ata/sata_dwc_460ex.c +1 −12
  3386. drivers/ata/sata_fsl.c +12 −13
  3387. drivers/ata/sata_mv.c +11 −8
  3388. drivers/ata/sata_nv.c +3 −3
  3389. drivers/ata/sata_sil24.c +1 −1
  3390. drivers/atm/he.c +3 −3
  3391. drivers/atm/iphase.c +2 −2
  3392. drivers/base/Kconfig +15 −0
  3393. drivers/base/Makefile +3 −2
  3394. drivers/base/base.h +7 −7
  3395. drivers/base/bus.c +274 −19
  3396. drivers/base/class.c +7 −7
  3397. drivers/base/core.c +71 −18
  3398. drivers/base/cpu.c +97 −73
  3399. drivers/base/devres.c +1 −1
  3400. drivers/base/devtmpfs.c +5 −6
  3401. drivers/base/dma-buf.c +291 −0
  3402. drivers/base/firmware_class.c +11 −7
  3403. drivers/base/init.c +0 −1
  3404. drivers/base/memory.c +80 −97
  3405. drivers/base/node.c +80 −74
  3406. drivers/base/platform.c +1 −116
  3407. drivers/base/power/Makefile +1 −1
  3408. drivers/base/power/domain.c +409 −145
  3409. drivers/base/power/domain_governor.c +170 −0
  3410. drivers/base/power/generic_ops.c +14 −77
  3411. drivers/base/power/main.c +165 −210
  3412. drivers/base/power/qos.c +41 −8
  3413. drivers/base/power/runtime.c +137 −20
  3414. drivers/base/regmap/Kconfig +3 −0
  3415. drivers/base/regmap/Makefile +3 −1
  3416. drivers/base/regmap/internal.h +2 −4
  3417. drivers/base/regmap/regcache-indexed.c +0 −64
  3418. drivers/base/regmap/regcache-lzo.c +13 −8
  3419. drivers/base/regmap/regcache-rbtree.c +60 −1
  3420. drivers/base/regmap/regcache.c +57 −30
  3421. drivers/base/regmap/regmap-irq.c +302 −0
  3422. drivers/base/regmap/regmap.c +134 −45
  3423. drivers/base/sys.c +1 −9
  3424. drivers/base/topology.c +25 −26
  3425. drivers/bcma/bcma_private.h +4 −0
  3426. drivers/bcma/host_pci.c +51 −11
  3427. drivers/bcma/main.c +40 −0
  3428. drivers/bcma/sprom.c +61 −0
  3429. drivers/block/Kconfig +13 −0
  3430. drivers/block/Makefile +2 −0
  3431. drivers/block/amiflop.c +1 −1
  3432. drivers/block/aoe/aoechr.c +1 −1
  3433. drivers/block/brd.c +4 −5
  3434. drivers/block/cciss.c +3 −3
  3435. drivers/block/drbd/drbd_int.h +2 −2
  3436. drivers/block/drbd/drbd_main.c +2 −2
  3437. drivers/block/floppy.c +0 −1
  3438. drivers/block/loop.c +0 −1
  3439. drivers/block/mtip32xx/Kconfig +9 −0
  3440. drivers/block/mtip32xx/Makefile +5 −0
  3441. drivers/block/mtip32xx/mtip32xx.c +3651 −0
  3442. drivers/block/mtip32xx/mtip32xx.h +423 −0
  3443. drivers/block/nvme.c +1739 −0
  3444. drivers/block/paride/bpck6.c +2 −3
  3445. drivers/block/paride/pcd.c +1 −1
  3446. drivers/block/paride/pd.c +2 −1
  3447. drivers/block/paride/pf.c +3 −1
  3448. drivers/block/paride/pg.c +2 −1
  3449. drivers/block/paride/pt.c +3 −1
  3450. drivers/block/pktcdvd.c +1 −1
  3451. drivers/block/rbd.c +2 −0
  3452. drivers/block/swim.c +0 −1
  3453. drivers/block/sx8.c +8 −4
  3454. drivers/block/ub.c +1 −2
  3455. drivers/block/virtio_blk.c +82 −9
  3456. drivers/block/xd.c +1 −1
  3457. drivers/block/xen-blkback/blkback.c +35 −49
  3458. drivers/block/xen-blkback/common.h +39 −28
  3459. drivers/block/xen-blkback/xenbus.c +16 −7
  3460. drivers/block/xen-blkfront.c +55 −35
  3461. drivers/block/xsysace.c +5 −5
  3462. drivers/bluetooth/ath3k.c +12 −17
  3463. drivers/bluetooth/bcm203x.c +1 −20
  3464. drivers/bluetooth/bfusb.c +2 −23
  3465. drivers/bluetooth/bluecard_cs.c +1 −3
  3466. drivers/bluetooth/bpa10x.c +1 −14
  3467. drivers/bluetooth/bt3c_cs.c +1 −3
  3468. drivers/bluetooth/btmrvl_main.c +0 −2
  3469. drivers/bluetooth/btuart_cs.c +1 −3
  3470. drivers/bluetooth/btusb.c +22 −31
  3471. drivers/bluetooth/dtl1_cs.c +1 −3
  3472. drivers/bluetooth/hci_bcsp.c +2 −2
  3473. drivers/bluetooth/hci_ldisc.c +1 −1
  3474. drivers/bluetooth/hci_vhci.c +9 −4
  3475. drivers/cdrom/cdrom.c +7 −9
  3476. drivers/char/agp/amd64-agp.c +1 −1
  3477. drivers/char/agp/generic.c +4 −4
  3478. drivers/char/agp/sis-agp.c +1 −1
  3479. drivers/char/hw_random/atmel-rng.c +1 −11
  3480. drivers/char/hw_random/n2-drv.c +1 −12
  3481. drivers/char/hw_random/nomadik-rng.c +2 −0
  3482. drivers/char/hw_random/octeon-rng.c +1 −12
  3483. drivers/char/hw_random/pasemi-rng.c +1 −11
  3484. drivers/char/hw_random/picoxcell-rng.c +1 −11
  3485. drivers/char/hw_random/ppc4xx-rng.c +1 −11
  3486. drivers/char/hw_random/timeriomem-rng.c +1 −12
  3487. drivers/char/hw_random/virtio-rng.c +1 −1
  3488. drivers/char/i8k.c +4 −4
  3489. drivers/char/ipmi/ipmi_bt_sm.c +1 −1
  3490. drivers/char/ipmi/ipmi_si_intf.c +1 −1
  3491. drivers/char/lp.c +1 −1
  3492. drivers/char/mem.c +2 −2
  3493. drivers/char/misc.c +1 −1
  3494. drivers/char/nwflash.c +1 −1
  3495. drivers/char/pcmcia/synclink_cs.c +1 −1
  3496. drivers/char/ramoops.c +12 −12
  3497. drivers/char/random.c +7 −1
  3498. drivers/char/raw.c +1 −1
  3499. drivers/char/tile-srom.c +1 −1
  3500. drivers/char/tpm/Kconfig +2 −0
  3501. drivers/char/tpm/tpm.c +126 −20
  3502. drivers/char/tpm/tpm.h +9 −3
  3503. drivers/char/tpm/tpm_tis.c +30 −60
  3504. drivers/char/virtio_console.c +109 −31
  3505. drivers/clk/Kconfig +3 −0
  3506. drivers/clocksource/clksrc-dbx500-prcmu.c +3 −13
  3507. drivers/cpufreq/Kconfig.arm +11 −4
  3508. drivers/cpufreq/Makefile +2 −0
  3509. drivers/cpufreq/cpufreq.c +40 −42
  3510. drivers/cpufreq/cpufreq_ondemand.c +1 −2
  3511. drivers/cpufreq/cpufreq_stats.c +0 −1
  3512. drivers/cpufreq/cpufreq_userspace.c +5 −3
  3513. drivers/cpufreq/exynos-cpufreq.c +290 −0
  3514. drivers/cpufreq/exynos4210-cpufreq.c +130 −513
  3515. drivers/cpufreq/omap-cpufreq.c +274 −0
  3516. drivers/cpufreq/powernow-k8.c +29 −18
  3517. drivers/cpufreq/s3c64xx-cpufreq.c +22 −13
  3518. drivers/cpuidle/cpuidle.c +6 −6
  3519. drivers/cpuidle/cpuidle.h +5 −5
  3520. drivers/cpuidle/sysfs.c +36 −38
  3521. drivers/crypto/amcc/crypto4xx_core.c +1 −12
  3522. drivers/crypto/caam/caamalg.c +62 −5
  3523. drivers/crypto/caam/compat.h +1 −0
  3524. drivers/crypto/caam/ctrl.c +1 −25
CREDITS+5−0
@@ -514,6 +514,11 @@ S: Bessemerstraat 21 · 513 unmodified lines
514S: Amsterdam514S: Amsterdam
515S: The Netherlands515S: The Netherlands
516 516
517N: NeilBrown
518E: neil@brown.name
519P: 4096R/566281B9 1BC6 29EB D390 D870 7B5F 497A 39EC 9EDD 5662 81B9
520D: NFSD Maintainer 2000-2007
521
517N: Zach Brown522N: Zach Brown
518E: zab@zabbo.net523E: zab@zabbo.net
519D: maestro pci sound524D: maestro pci sound
Documentation/ABI/stable/sysfs-bus-xen-backend+75−0
@@ -0,0 +1,75 @@
1What: /sys/bus/xen-backend/devices/*/devtype
2Date: Feb 2009
3KernelVersion: 2.6.38
4Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
5Description:
6 The type of the device. e.g., one of: 'vbd' (block),
7 'vif' (network), or 'vfb' (framebuffer).
8
9What: /sys/bus/xen-backend/devices/*/nodename
10Date: Feb 2009
11KernelVersion: 2.6.38
12Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
13Description:
14 XenStore node (under /local/domain/NNN/) for this
15 backend device.
16
17What: /sys/bus/xen-backend/devices/vbd-*/physical_device
18Date: April 2011
19KernelVersion: 3.0
20Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
21Description:
22 The major:minor number (in hexidecimal) of the
23 physical device providing the storage for this backend
24 block device.
25
26What: /sys/bus/xen-backend/devices/vbd-*/mode
27Date: April 2011
28KernelVersion: 3.0
29Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
30Description:
31 Whether the block device is read-only ('r') or
32 read-write ('w').
33
34What: /sys/bus/xen-backend/devices/vbd-*/statistics/f_req
35Date: April 2011
36KernelVersion: 3.0
37Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
38Description:
39 Number of flush requests from the frontend.
40
41What: /sys/bus/xen-backend/devices/vbd-*/statistics/oo_req
42Date: April 2011
43KernelVersion: 3.0
44Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
45Description:
46 Number of requests delayed because the backend was too
47 busy processing previous requests.
48
49What: /sys/bus/xen-backend/devices/vbd-*/statistics/rd_req
50Date: April 2011
51KernelVersion: 3.0
52Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
53Description:
54 Number of read requests from the frontend.
55
56What: /sys/bus/xen-backend/devices/vbd-*/statistics/rd_sect
57Date: April 2011
58KernelVersion: 3.0
59Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
60Description:
61 Number of sectors read by the frontend.
62
63What: /sys/bus/xen-backend/devices/vbd-*/statistics/wr_req
64Date: April 2011
65KernelVersion: 3.0
66Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
67Description:
68 Number of write requests from the frontend.
69
70What: /sys/bus/xen-backend/devices/vbd-*/statistics/wr_sect
71Date: April 2011
72KernelVersion: 3.0
73Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
74Description:
75 Number of sectors written by the frontend.
Documentation/ABI/stable/sysfs-devices-system-xen_memory+77−0
@@ -0,0 +1,77 @@
1What: /sys/devices/system/xen_memory/xen_memory0/max_retry_count
2Date: May 2011
3KernelVersion: 2.6.39
4Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
5Description:
6 The maximum number of times the balloon driver will
7 attempt to increase the balloon before giving up. See
8 also 'retry_count' below.
9 A value of zero means retry forever and is the default one.
10
11What: /sys/devices/system/xen_memory/xen_memory0/max_schedule_delay
12Date: May 2011
13KernelVersion: 2.6.39
14Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
15Description:
16 The limit that 'schedule_delay' (see below) will be
17 increased to. The default value is 32 seconds.
18
19What: /sys/devices/system/xen_memory/xen_memory0/retry_count
20Date: May 2011
21KernelVersion: 2.6.39
22Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
23Description:
24 The current number of times that the balloon driver
25 has attempted to increase the size of the balloon.
26 The default value is one. With max_retry_count being
27 zero (unlimited), this means that the driver will attempt
28 to retry with a 'schedule_delay' delay.
29
30What: /sys/devices/system/xen_memory/xen_memory0/schedule_delay
31Date: May 2011
32KernelVersion: 2.6.39
33Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
34Description:
35 The time (in seconds) to wait between attempts to
36 increase the balloon. Each time the balloon cannot be
37 increased, 'schedule_delay' is increased (until
38 'max_schedule_delay' is reached at which point it
39 will use the max value).
40
41What: /sys/devices/system/xen_memory/xen_memory0/target
42Date: April 2008
43KernelVersion: 2.6.26
44Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
45Description:
46 The target number of pages to adjust this domain's
47 memory reservation to.
48
49What: /sys/devices/system/xen_memory/xen_memory0/target_kb
50Date: April 2008
51KernelVersion: 2.6.26
52Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
53Description:
54 As target above, except the value is in KiB.
55
56What: /sys/devices/system/xen_memory/xen_memory0/info/current_kb
57Date: April 2008
58KernelVersion: 2.6.26
59Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
60Description:
61 Current size (in KiB) of this domain's memory
62 reservation.
63
64What: /sys/devices/system/xen_memory/xen_memory0/info/high_kb
65Date: April 2008
66KernelVersion: 2.6.26
67Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
68Description:
69 Amount (in KiB) of high memory in the balloon.
70
71What: /sys/devices/system/xen_memory/xen_memory0/info/low_kb
72Date: April 2008
73KernelVersion: 2.6.26
74Contact: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
75Description:
76 Amount (in KiB) of low (or normal) memory in the
77 balloon.
Documentation/ABI/testing/sysfs-bus-pci+18−0
@@ -66,6 +66,24 @@ Description: · 65 unmodified lines
66 re-discover previously removed devices.66 re-discover previously removed devices.
67 Depends on CONFIG_HOTPLUG.67 Depends on CONFIG_HOTPLUG.
68 68
69What: /sys/bus/pci/devices/.../msi_irqs/
70Date: September, 2011
71Contact: Neil Horman <nhorman@tuxdriver.com>
72Description:
73 The /sys/devices/.../msi_irqs directory contains a variable set
74 of sub-directories, with each sub-directory being named after a
75 corresponding msi irq vector allocated to that device. Each
76 numbered sub-directory N contains attributes of that irq.
77 Note that this directory is not created for device drivers which
78 do not support msi irqs
79
80What: /sys/bus/pci/devices/.../msi_irqs/<N>/mode
81Date: September 2011
82Contact: Neil Horman <nhorman@tuxdriver.com>
83Description:
84 This attribute indicates the mode that the irq vector named by
85 the parent directory is in (msi vs. msix)
86
69What: /sys/bus/pci/devices/.../remove87What: /sys/bus/pci/devices/.../remove
70Date: January 200988Date: January 2009
71Contact: Linux PCI developers <linux-pci@vger.kernel.org>89Contact: Linux PCI developers <linux-pci@vger.kernel.org>
Documentation/ABI/testing/sysfs-bus-usb+25−0
@@ -119,6 +119,31 @@ Description: · 118 unmodified lines
119 Write a 1 to force the device to disconnect119 Write a 1 to force the device to disconnect
120 (equivalent to unplugging a wired USB device).120 (equivalent to unplugging a wired USB device).
121 121
122What: /sys/bus/usb/drivers/.../new_id
123Date: October 2011
124Contact: linux-usb@vger.kernel.org
125Description:
126 Writing a device ID to this file will attempt to
127 dynamically add a new device ID to a USB device driver.
128 This may allow the driver to support more hardware than
129 was included in the driver's static device ID support
130 table at compile time. The format for the device ID is:
131 idVendor idProduct bInterfaceClass.
132 The vendor ID and device ID fields are required, the
133 interface class is optional.
134 Upon successfully adding an ID, the driver will probe
135 for the device and attempt to bind to it. For example:
136 # echo "8086 10f5" > /sys/bus/usb/drivers/foo/new_id
137
138What: /sys/bus/usb-serial/drivers/.../new_id
139Date: October 2011
140Contact: linux-usb@vger.kernel.org
141Description:
142 For serial USB drivers, this attribute appears under the
143 extra bus folder "usb-serial" in sysfs; apart from that
144 difference, all descriptions from the entry
145 "/sys/bus/usb/drivers/.../new_id" apply.
146
122What: /sys/bus/usb/drivers/.../remove_id147What: /sys/bus/usb/drivers/.../remove_id
123Date: November 2009148Date: November 2009
124Contact: CHENG Renquan <rqcheng@smu.edu.sg>149Contact: CHENG Renquan <rqcheng@smu.edu.sg>
Documentation/ABI/testing/sysfs-class-rtc-rtc0-device-rtc_calibration+12−0
@@ -0,0 +1,12 @@
1What: Attribute for calibrating ST-Ericsson AB8500 Real Time Clock
2Date: Oct 2011
3KernelVersion: 3.0
4Contact: Mark Godfrey <mark.godfrey@stericsson.com>
5Description: The rtc_calibration attribute allows the userspace to
6 calibrate the AB8500.s 32KHz Real Time Clock.
7 Every 60 seconds the AB8500 will correct the RTC's value
8 by adding to it the value of this attribute.
9 The range of the attribute is -127 to +127 in units of
10 30.5 micro-seconds (half-parts-per-million of the 32KHz clock)
11Users: The /vendor/st-ericsson/base_utilities/core/rtc_calibration
12 daemon uses this interface.
Documentation/ABI/testing/sysfs-devices-platform-docg3+34−0
@@ -0,0 +1,34 @@
1What: /sys/devices/platform/docg3/f[0-3]_dps[01]_is_keylocked
2Date: November 2011
3KernelVersion: 3.3
4Contact: Robert Jarzmik <robert.jarzmik@free.fr>
5Description:
6 Show whether the floor (0 to 4), protection area (0 or 1) is
7 keylocked. Each docg3 chip (or floor) has 2 protection areas,
8 which can cover any part of it, block aligned, called DPS.
9 The protection has information embedded whether it blocks reads,
10 writes or both.
11 The result is:
12 0 -> the DPS is not keylocked
13 1 -> the DPS is keylocked
14Users: None identified so far.
15
16What: /sys/devices/platform/docg3/f[0-3]_dps[01]_protection_key
17Date: November 2011
18KernelVersion: 3.3
19Contact: Robert Jarzmik <robert.jarzmik@free.fr>
20Description:
21 Enter the protection key for the floor (0 to 4), protection area
22 (0 or 1). Each docg3 chip (or floor) has 2 protection areas,
23 which can cover any part of it, block aligned, called DPS.
24 The protection has information embedded whether it blocks reads,
25 writes or both.
26 The protection key is a string of 8 bytes (value 0-255).
27 Entering the correct value toggle the lock, and can be observed
28 through f[0-3]_dps[01]_is_keylocked.
29 Possible values are:
30 - 8 bytes
31 Typical values are:
32 - "00000000"
33 - "12345678"
34Users: None identified so far.
Documentation/ABI/testing/sysfs-driver-hid-logitech-lg4ff+1−1
@@ -1,7 +1,7 @@
1What: /sys/module/hid_logitech/drivers/hid:logitech/<dev>/range.1What: /sys/module/hid_logitech/drivers/hid:logitech/<dev>/range.
2Date: July 20112Date: July 2011
3KernelVersion: 3.23KernelVersion: 3.2
4Contact: Michal Mal� <madcatxster@gmail.com>4Contact: Michal Malý <madcatxster@gmail.com>
5Description: Display minimum, maximum and current range of the steering5Description: Display minimum, maximum and current range of the steering
6 wheel. Writing a value within min and max boundaries sets the6 wheel. Writing a value within min and max boundaries sets the
7 range of the wheel.7 range of the wheel.
Documentation/ABI/testing/sysfs-driver-hid-multitouch+9−0
@@ -0,0 +1,9 @@
1What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/quirks
2Date: November 2011
3Contact: Benjamin Tissoires <benjamin.tissoires@gmail.com>
4Description: The integer value of this attribute corresponds to the
5 quirks actually in place to handle the device's protocol.
6 When read, this attribute returns the current settings (see
7 MT_QUIRKS_* in hid-multitouch.c).
8 When written this attribute change on the fly the quirks, then
9 the protocol to handle the device.
Documentation/ABI/testing/sysfs-driver-hid-roccat-isku+135−0
@@ -0,0 +1,135 @@
1What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/actual_profile
2Date: June 2011
3Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
4Description: The integer value of this attribute ranges from 0-4.
5 When read, this attribute returns the number of the actual
6 profile. This value is persistent, so its equivalent to the
7 profile that's active when the device is powered on next time.
8 When written, this file sets the number of the startup profile
9 and the device activates this profile immediately.
10Users: http://roccat.sourceforge.net
11
12What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/info
13Date: June 2011
14Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
15Description: When read, this file returns general data like firmware version.
16 The data is 6 bytes long.
17 This file is readonly.
18Users: http://roccat.sourceforge.net
19
20What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/key_mask
21Date: June 2011
22Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
23Description: When written, this file lets one deactivate certain keys like
24 windows and application keys, to prevent accidental presses.
25 Profile number for which this settings occur is included in
26 written data. The data has to be 6 bytes long.
27 Before reading this file, control has to be written to select
28 which profile to read.
29Users: http://roccat.sourceforge.net
30
31What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_capslock
32Date: June 2011
33Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
34Description: When written, this file lets one set the function of the
35 capslock key for a specific profile. Profile number is included
36 in written data. The data has to be 6 bytes long.
37 Before reading this file, control has to be written to select
38 which profile to read.
39Users: http://roccat.sourceforge.net
40
41What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_easyzone
42Date: June 2011
43Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
44Description: When written, this file lets one set the function of the
45 easyzone keys for a specific profile. Profile number is included
46 in written data. The data has to be 65 bytes long.
47 Before reading this file, control has to be written to select
48 which profile to read.
49Users: http://roccat.sourceforge.net
50
51What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_function
52Date: June 2011
53Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
54Description: When written, this file lets one set the function of the
55 function keys for a specific profile. Profile number is included
56 in written data. The data has to be 41 bytes long.
57 Before reading this file, control has to be written to select
58 which profile to read.
59Users: http://roccat.sourceforge.net
60
61What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_macro
62Date: June 2011
63Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
64Description: When written, this file lets one set the function of the macro
65 keys for a specific profile. Profile number is included in
66 written data. The data has to be 35 bytes long.
67 Before reading this file, control has to be written to select
68 which profile to read.
69Users: http://roccat.sourceforge.net
70
71What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_media
72Date: June 2011
73Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
74Description: When written, this file lets one set the function of the media
75 keys for a specific profile. Profile number is included in
76 written data. The data has to be 29 bytes long.
77 Before reading this file, control has to be written to select
78 which profile to read.
79Users: http://roccat.sourceforge.net
80
81What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_thumbster
82Date: June 2011
83Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
84Description: When written, this file lets one set the function of the
85 thumbster keys for a specific profile. Profile number is included
86 in written data. The data has to be 23 bytes long.
87 Before reading this file, control has to be written to select
88 which profile to read.
89Users: http://roccat.sourceforge.net
90
91What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/last_set
92Date: June 2011
93Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
94Description: When written, this file lets one set the time in secs since
95 epoch in which the last configuration took place.
96 The data has to be 20 bytes long.
97Users: http://roccat.sourceforge.net
98
99What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/light
100Date: June 2011
101Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
102Description: When written, this file lets one set the backlight intensity for
103 a specific profile. Profile number is included in written data.
104 The data has to be 10 bytes long.
105 Before reading this file, control has to be written to select
106 which profile to read.
107Users: http://roccat.sourceforge.net
108
109What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/macro
110Date: June 2011
111Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
112Description: When written, this file lets one store macros with max 500
113 keystrokes for a specific button for a specific profile.
114 Button and profile numbers are included in written data.
115 The data has to be 2083 bytes long.
116 Before reading this file, control has to be written to select
117 which profile and key to read.
118Users: http://roccat.sourceforge.net
119
120What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/control
121Date: June 2011
122Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
123Description: When written, this file lets one select which data from which
124 profile will be read next. The data has to be 3 bytes long.
125 This file is writeonly.
126Users: http://roccat.sourceforge.net
127
128What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/talk
129Date: June 2011
130Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
131Description: When written, this file lets one trigger easyshift functionality
132 from the host.
133 The data has to be 16 bytes long.
134 This file is writeonly.
135Users: http://roccat.sourceforge.net
Documentation/ABI/testing/sysfs-driver-hid-wiimote+12−0
@@ -8,3 +8,15 @@ Contact: David Herrmann <dh.herrmann@googlemail.com> · 7 unmodified lines
8Description: Make it possible to set/get current led state. Reading from it8Description: Make it possible to set/get current led state. Reading from it
9 returns 0 if led is off and 1 if it is on. Writing 0 to it9 returns 0 if led is off and 1 if it is on. Writing 0 to it
10 disables the led, writing 1 enables it.10 disables the led, writing 1 enables it.
11
12What: /sys/bus/hid/drivers/wiimote/<dev>/extension
13Date: August 2011
14KernelVersion: 3.2
15Contact: David Herrmann <dh.herrmann@googlemail.com>
16Description: This file contains the currently connected and initialized
17 extensions. It can be one of: none, motionp, nunchuck, classic,
18 motionp+nunchuck, motionp+classic
19 motionp is the official Nintendo Motion+ extension, nunchuck is
20 the official Nintendo Nunchuck extension and classic is the
21 Nintendo Classic Controller extension. The motionp extension can
22 be combined with the other two.
Documentation/ABI/testing/sysfs-driver-wacom+9−8
@@ -15,9 +15,9 @@ Contact: linux-input@vger.kernel.org · 14 unmodified lines
15Description:15Description:
16 Attribute group for control of the status LEDs and the OLEDs.16 Attribute group for control of the status LEDs and the OLEDs.
17 This attribute group is only available for Intuos 4 M, L,17 This attribute group is only available for Intuos 4 M, L,
18 and XL (with LEDs and OLEDs) and Cintiq 21UX2 (LEDs only).18 and XL (with LEDs and OLEDs) and Cintiq 21UX2 and Cintiq 24HD
19 Therefore its presence implicitly signifies the presence of19 (LEDs only). Therefore its presence implicitly signifies the
20 said LEDs and OLEDs on the tablet device.20 presence of said LEDs and OLEDs on the tablet device.
21 21
22What: /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/status0_luminance22What: /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/status0_luminance
23Date: August 201123Date: August 2011
@@ -41,16 +41,17 @@ Date: August 2011 · 17 unmodified lines
41Contact: linux-input@vger.kernel.org41Contact: linux-input@vger.kernel.org
42Description:42Description:
43 Writing to this file sets which one of the four (for Intuos 4)43 Writing to this file sets which one of the four (for Intuos 4)
44 or of the right four (for Cintiq 21UX2) status LEDs is active (0..3).44 or of the right four (for Cintiq 21UX2 and Cintiq 24HD) status
45 The other three LEDs on the same side are always inactive.45 LEDs is active (0..3). The other three LEDs on the same side are
46 always inactive.
46 47
47What: /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/status_led1_select48What: /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/status_led1_select
48Date: September 201149Date: September 2011
49Contact: linux-input@vger.kernel.org50Contact: linux-input@vger.kernel.org
50Description:51Description:
51 Writing to this file sets which one of the left four (for Cintiq 21UX2)52 Writing to this file sets which one of the left four (for Cintiq 21UX2
52 status LEDs is active (0..3). The other three LEDs on the left are always53 and Cintiq 24HD) status LEDs is active (0..3). The other three LEDs on
53 inactive.54 the left are always inactive.
54 55
55What: /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/buttons_luminance56What: /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/buttons_luminance
56Date: August 201157Date: August 2011
Documentation/ABI/testing/sysfs-kernel-slab+4−0
@@ -346,6 +346,10 @@ Description: · 345 unmodified lines
346 number of objects per slab. If a slab cannot be allocated346 number of objects per slab. If a slab cannot be allocated
347 because of fragmentation, SLUB will retry with the minimum order347 because of fragmentation, SLUB will retry with the minimum order
348 possible depending on its characteristics.348 possible depending on its characteristics.
349 When debug_guardpage_minorder=N (N > 0) parameter is specified
350 (see Documentation/kernel-parameters.txt), the minimum possible
351 order is used and this sysfs entry can not be used to change
352 the order at run time.
349 353
350What: /sys/kernel/slab/cache/order_fallback354What: /sys/kernel/slab/cache/order_fallback
351Date: April 2008355Date: April 2008
Documentation/ABI/testing/sysfs-module+16−0
@@ -33,3 +33,19 @@ Description: Maximum time allowed for periodic transfers per microframe (μs) · 32 unmodified lines
33 Beware, non-standard modes are usually not thoroughly tested by33 Beware, non-standard modes are usually not thoroughly tested by
34 hardware designers, and the hardware can malfunction when this34 hardware designers, and the hardware can malfunction when this
35 setting differ from default 100.35 setting differ from default 100.
36
37What: /sys/module/*/{coresize,initsize}
38Date: Jan 2012
39KernelVersion:»·3.3
40Contact: Kay Sievers <kay.sievers@vrfy.org>
41Description: Module size in bytes.
42
43What: /sys/module/*/taint
44Date: Jan 2012
45KernelVersion:»·3.3
46Contact: Kay Sievers <kay.sievers@vrfy.org>
47Description: Module taint flags:
48 P - proprietary module
49 O - out-of-tree module
50 F - force-loaded module
51 C - staging driver module
Documentation/DocBook/media/constraints.png.b64+59−0
@@ -0,0 +1,59 @@
1iVBORw0KGgoAAAANSUhEUgAAAlQAAAFYCAYAAACVsmLPAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
2/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sLCBIAKVtZsMAAAAxxSURBVHja
37d3ZbqvIAkDRLsv//8v0QytXvpYZap7Wko56OAnE2AXbBSbhOI7jHwAAkr1sAgAAQQUAIKgAAAQV
4AICgAgBAUAEACCoAAEEFACCoAAAQVAAAzb2jvyMEWw0AmFvh37xnhgoAQFABAPT1zvruwtNlAADV
5VLxsyQwVAICgAgAQVAAAggoAQFABACCoYEohuFkugKACsmLq178DIKiAyJgSVQCCCigQU6IKQFAB
6BWJKVAEIKqBgKIkqAEEFFAgkUQUgqIACYSSqAAQViKkwxjIAEFSwbUyJKgBBBWJq8GUCIKhgm5gS
7VQCCCsSUqAIQVMBYoSOqAAQVLOk41lwXAIIKhoqqJyFUYhkACCpYMqpiQqjEMgAQVLBUVKWEUIll
8ACCoYImoygmhEssAQFDBElHVexkACCoAAEEFACCoAAAQVAAAggoAQFABAAgqAAAEFQCAoAIAEFQA
9AIIKAABBBQAgqAAABBUAgKACAOA/b5sAGjsO2wBgMWaoAAAEFQCAoAIAEFQAADtzUXohIQQbAYDi
10Dh9kmYIZKgAAQQUAIKgAAAQVAICgAgAgmU/5VeSTGQDE8InxeZmhAgAQVAAAggoAQFABAAgqAAAE
11FQCAoAIAEFQAAHtyY0/o4O7efe4JCzAXM1QAAIIKAEBQAQAIKgAAQQUAgKACABBUAACCCgBAUAEA
12IKgAAAQVAICgAgAQVAAACCoAAEEFACCoAAAEFVBICGMsAwBBBVPHVE4QlVgGAIIKpo6ps/9utQwA
13BBUsEVMpQVRiGQAIKlgqpmKCqMQyABBUsGRMzbouAAQVNHMca64LAEEFy0WVmAIQVCCqxBSAoAL6
14hI+YAhBUIKrEFICgAvqEkJgCEFQgqo4+3wuAoILto0pMAQgqICOQxBSAoAIyQklMAQgqICOYxBSA
15oAIyokpMAQgqICOqxBTAvN42AYwTVQDMyQwVAICgAgAQVAAAggoAQFABAJDMp/y4FIJtwJx8ehJo
16yQwVAICgAgDoyyk/HnMKhdE5RQ30YoYKAEBQAQAIKgAAQQUAIKgAABBUAACCCgBAUAEACCoAAAQV
17AICgAgAQVAAAggoAAEEFACCoAAAEFQCAoAIAQFABAAgqAABBBQAgqAAAEFQAAIIKAEBQAQAIKgAA
18BBUAgKACABBUAACCCgAAQQUAIKgAAAQVAICgAgBAUAEACCoAAEEFACCoAAAQVAAAggoAQFABAAgq
19AACGCKoQPAs2JQAIquwCUAI2JQAIqowCOPtvbEoAEFQRBaAEbEoAEFQFCkAJ2JQAIKgKFIASsClh
20szEKrDGoXkNuiOPwwim4iezYoc9+39iDfQbVq+mGEFOiCjZ7E23swR6D6tV8Q4gpUQWb7PeNPdhn
21UL26bAgxJapgk/2+sQd7DKr3EDE1y96mUPT1fqgh6Ffosbsz9mDdQfXquiEY/rUKlBtLYgoqDJZB
22Dmjlg8qRWlSBMSSmYLOoKhtUjtCiCowdMQUbRtXLswUgpkBU5XkXf9CmPJZ9nQJrft6Gife9XmC/
23t0mHg9tr3FcJYgrmjilgn8Fa55SfI7WYAvtnYKNBW+8+VLGn/zY6wtd4qDY1iCngx+BtdNCre1G6
24W3gPt7MXUwAwW1CJKjEFCzB2wODtH1SiSkyB/TKw+KB9DfnARJWYAvtnYKLB+m7+AJ+UgL2WTQmT
25jz1jEJVf0ASD7jXck2/vY1PCQscwE+6wfkz1CaqrB6wAbEoQVcBkMdUvqH49cAVgU4KoAiaMqb5B
269bkBFIBNCaIKmDSm+geVArApYaOxZ4zCuoPq5VkDqL//F1Ow9qASVACV9/9iCtYfVIIKoOL+X0zB
27HoNKUAFU2v+LKdhnUAkqgAZvqoG1B5WgAgAQVAAAggoAQFABAAgqAAAEFQCAoAIAEFQAAIIKAABB
28BQAgqAAABBUAgKACAEBQAQAIKgAAQQUAIKgAABBUAACCCgBAUAEACCoAAAQVAICgAgAY3NsmIEYI
29//3zONK/7u/v/nx+zdPl/1rO0++LWd6vZZ59Xe7jSfnZSq3z6jnJ2ValX09PHj9AD2aoiPJ34Lo6
30wJWKiJQD7N2BN/WAzbNtZTsCuzJDRZeD8XHkH3zPZo5CSJudeTKbdrX+lkE7QkzFbq8VHj/AGTNU
31dDkY1ziw1jjY7nAA/wzKqxnIu5gSPICggoTIuDroXh1YRz3ohuCUlcgESOOUH81iZdR1fJ9+zL1Q
32use1Y6nrvLsearR46rHNAQQVw6l14HtyOurJz5USVqs9LynXt8V+ShBAUMHHQfdzFuMsQGqHSW5M
33PQmrVtdsjRCkOwY5gKBiGne3Okg5WJaMqbuw2uX5+P6aX4H8/f922F4AgorlgyD3hp47z3ycPfZf
34p/FSb00BIKjg4kD8/cm4mFNjKfd/OpsJyb2GJ+V+UzEXSK9wAfuvqGr9s7ooHRiV2yYgDCe8xUOp
35gHny2GNjVdwAOzJDRbUYSfnep8srfdCOWV6tr225ztzt3PpxiTRgdGaoAAAEFQBAX075sbS7C6dH
36OJU0w8/ocQEIKjY2w0F71bAQTMBOnPIDABBUAAB9OeXHY36tCAD8ZoYKAEBQAQD05ZQfl3xSCwDu
37maECABBUAACCCgBAUAEACCqgiRDczwtAUAFZMfXr3wEQVEBkTIkqAEEFFIgpUQUgqIACMSWqAAQV
38UDCURBWAoAIKBJKoAhBUQIEwElUAggrEVBhjGQAIKtg2pkQVgKACMTX4MgEQVLBNTIkqAEEFYkpU
39AQgqYKzQEVUAggqWdBxrrgsAQQVDRdWTECqxDAAEFSwZVTEhVGIZAAgqWCqqUkKoxDIAEFSwRFTl
40hFCJZQAgqGCJqOq9DAAEFQCAoAIAEFQAAAgqAABBBQAwibdNAECqcPKLJo8fH1cNN7+U8up7jpOP
41v6as//PvPr+/xPpTlsEazFABUDSmnsRTie/pvX74ZIYKgKz4+J55+fu7EMLPWZmU2auY9YsjejBD
42BUDRmDk7pdZq/Vf/P2bZT7/2OI7/rU/ICSoAiHIVLS2uFyq5Dtc3kcspPwCairmQvHUghhBOT1U+
43eQx/fyfQBBUALBNrtcPmc/l/QYagAoDqYi9ib/2zPZ2l+hVw7Ms1VAAkKXXbgpIXkH9eIF7r8T15
44bEJLUAHA4wD6FQ5PPoVXc/0ll3/3db/+sCen/ABIio7PU3U5YfIdY0++78n6RzPqxfiUYYYKqh94
45rv/AzFGV8nelouLue3JC5e5XzTx57E777SUcsa+4zxeIo8HlOw/vOgBwLBlqA1drGDNUAACCCgBA
46UAEATM2n/CpyQSIA7MEMFQCAoAIAEFQAAIIKAGBnLkovxI3XAGBfZqgAAAQVAEBfTvlBbXf3I3O6
47GGB6ZqgAAAQVAICgAgAQVAAAggoAAEEFACCoAAAEFQCAoAIAQFABAAgqAABBBQAgqAAAEFQAAIIK
48AEBQAQAIKiBFCGMsAwBBBVPHVE4QlVgGAM29bQIoGFOf/30c7ZcBrV/zd6/Rq6/7fs1/fs3T5Z+9
49AckZO2dvaL6XeffGJ/XxpPxspdZ59ZzkbKve278BM1RQOqaeDvbSy4CW/g5WV6/RUhHRcuwYc2W2
50VY3tP/hzY4YKar5bfLIDeLIMM1WsOnaOI/9AeTZzETt2YmbTrtbfMmhH2PfFbq/Syxxk/2iGCmrF
511Kzrgplez78OpjUOsDu8qfkMyqsZyLvwSdleNZYpqGASLQe3GSpGHgNXB92r1+6or+sQvInptV+a
52eF/nlB/kDv7aO14xxUpahErqOr7Hc+yF9y3Hbul13l27NPJ+aJBTgYIKRo4qMcXK46b2wTVlHb9m
533VpcXD/i85Kyb4v9lGCvZQoq2CiqxBQzvfY/ZzHOAqR2mOTG1JOwanXN1ghBunucR3INFYw4qMUU
54K/sLsO9rlXKuXSoZU99jcfXxmPpp5LP7f5W+B9Ukz4GggtGiSkxBn5ja/UL0v3D5/nO1jyq1zWos
55szGn/KDGTinnoliY9TV/FzZnr++U+z+dfcIw93qblPtNxVwUvcIF7N/7uZJRlbLMQS5KN0MFtQ4w
56YgrWGberjs+Y21vExmqN/eDAz0M4jsifrtZ5alh5ZyWmAMbaJxfe75qhgl7veMUUwDIEFfSMKjEF
57sAQXpUOrqJrk5nSwpLvT7yOMxxl+Ro9LUMFQUSWmoP348zN6XIIK7FgAWDWo/DZuAAAXpQMACCoA
58gM7iT/m5BgQA4P+YoQIAEFQAAIIKAEBQAQAIKgAABBUAgKACABBUAAB7+hfHbDX87cMFJQAAAABJ
59RU5ErkJggg==
Documentation/DocBook/media/dvb/dvbproperty.xml+22−9
@@ -163,14 +163,16 @@ get/set up to 64 properties. The actual meaning of each property is described on · 162 unmodified lines
163 <section id="DTV-FREQUENCY">163 <section id="DTV-FREQUENCY">
164 <title><constant>DTV_FREQUENCY</constant></title>164 <title><constant>DTV_FREQUENCY</constant></title>
165 165
166 <para>Central frequency of the channel, in HZ.</para>166 <para>Central frequency of the channel.</para>
167 167
168 <para>Notes:</para>168 <para>Notes:</para>
169 <para>1)For ISDB-T, the channels are usually transmitted with an offset of 143kHz.169 <para>1)For satellital delivery systems, it is measured in kHz.
170 For the other ones, it is measured in Hz.</para>
171 <para>2)For ISDB-T, the channels are usually transmitted with an offset of 143kHz.
170 E.g. a valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of172 E.g. a valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of
171 the channel which is 6MHz.</para>173 the channel which is 6MHz.</para>
172 174
173 <para>2)As in ISDB-Tsb the channel consists of only one or three segments the175 <para>3)As in ISDB-Tsb the channel consists of only one or three segments the
174 frequency step is 429kHz, 3*429 respectively. As for ISDB-T the176 frequency step is 429kHz, 3*429 respectively. As for ISDB-T the
175 central frequency of the channel is expected.</para>177 central frequency of the channel is expected.</para>
176 </section>178 </section>
@@ -334,9 +336,10 @@ typedef enum fe_rolloff { · 157 unmodified lines
334 <title>fe_delivery_system type</title>336 <title>fe_delivery_system type</title>
335 <para>Possible values: </para>337 <para>Possible values: </para>
336<programlisting>338<programlisting>
339
337typedef enum fe_delivery_system {340typedef enum fe_delivery_system {
338 SYS_UNDEFINED,341 SYS_UNDEFINED,
339 SYS_DVBC_ANNEX_AC,342 SYS_DVBC_ANNEX_A,
340 SYS_DVBC_ANNEX_B,343 SYS_DVBC_ANNEX_B,
341 SYS_DVBT,344 SYS_DVBT,
342 SYS_DSS,345 SYS_DSS,
@@ -353,6 +356,7 @@ typedef enum fe_delivery_system { · 10 unmodified lines
353 SYS_DAB,356 SYS_DAB,
354 SYS_DVBT2,357 SYS_DVBT2,
355 SYS_TURBO,358 SYS_TURBO,
359 SYS_DVBC_ANNEX_C,
356} fe_delivery_system_t;360} fe_delivery_system_t;
357</programlisting>361</programlisting>
358 </section>362 </section>
@@ -647,6 +651,18 @@ typedef enum fe_hierarchy { · 288 unmodified lines
647 many data types via a single multiplex. The API will soon support this651 many data types via a single multiplex. The API will soon support this
648 at which point this section will be expanded.</para>652 at which point this section will be expanded.</para>
649 </section>653 </section>
654 <section id="DTV_ENUM_DELSYS">
655 <title><constant>DTV_ENUM_DELSYS</constant></title>
656 <para>A Multi standard frontend needs to advertise the delivery systems provided.
657 Applications need to enumerate the provided delivery systems, before using
658 any other operation with the frontend. Prior to it's introduction,
659 FE_GET_INFO was used to determine a frontend type. A frontend which
660 provides more than a single delivery system, FE_GET_INFO doesn't help much.
661 Applications which intends to use a multistandard frontend must enumerate
662 the delivery systems associated with it, rather than trying to use
663 FE_GET_INFO. In the case of a legacy frontend, the result is just the same
664 as with FE_GET_INFO, but in a more structured format </para>
665 </section>
650</section>666</section>
651 <section id="frontend-property-terrestrial-systems">667 <section id="frontend-property-terrestrial-systems">
652 <title>Properties used on terrestrial delivery systems</title>668 <title>Properties used on terrestrial delivery systems</title>
@@ -721,14 +737,10 @@ typedef enum fe_hierarchy { · 68 unmodified lines
721 <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>737 <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
722 <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>738 <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
723 <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>739 <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
724 <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
725 <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>740 <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
726 <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>741 <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
727 <listitem><para><link linkend="DTV-CODE-RATE-HP"><constant>DTV_CODE_RATE_HP</constant></link></para></listitem>
728 <listitem><para><link linkend="DTV-CODE-RATE-LP"><constant>DTV_CODE_RATE_LP</constant></link></para></listitem>
729 <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>742 <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
730 <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>743 <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
731 <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem>
732 <listitem><para><link linkend="DTV-ISDBT-LAYER-ENABLED"><constant>DTV_ISDBT_LAYER_ENABLED</constant></link></para></listitem>744 <listitem><para><link linkend="DTV-ISDBT-LAYER-ENABLED"><constant>DTV_ISDBT_LAYER_ENABLED</constant></link></para></listitem>
733 <listitem><para><link linkend="DTV-ISDBT-PARTIAL-RECEPTION"><constant>DTV_ISDBT_PARTIAL_RECEPTION</constant></link></para></listitem>745 <listitem><para><link linkend="DTV-ISDBT-PARTIAL-RECEPTION"><constant>DTV_ISDBT_PARTIAL_RECEPTION</constant></link></para></listitem>
734 <listitem><para><link linkend="DTV-ISDBT-SOUND-BROADCASTING"><constant>DTV_ISDBT_SOUND_BROADCASTING</constant></link></para></listitem>746 <listitem><para><link linkend="DTV-ISDBT-SOUND-BROADCASTING"><constant>DTV_ISDBT_SOUND_BROADCASTING</constant></link></para></listitem>
@@ -767,7 +779,8 @@ typedef enum fe_hierarchy { · 32 unmodified lines
767 <title>Properties used on cable delivery systems</title>779 <title>Properties used on cable delivery systems</title>
768 <section id="dvbc-params">780 <section id="dvbc-params">
769 <title>DVB-C delivery system</title>781 <title>DVB-C delivery system</title>
770 <para>The DVB-C Annex-A/C is the widely used cable standard. Transmission uses QAM modulation.</para>782 <para>The DVB-C Annex-A is the widely used cable standard. Transmission uses QAM modulation.</para>
783 <para>The DVB-C Annex-C is optimized for 6MHz, and is used in Japan. It supports a subset of the Annex A modulation types, and a roll-off of 0.13, instead of 0.15</para>
771 <para>The following parameters are valid for DVB-C Annex A/C:</para>784 <para>The following parameters are valid for DVB-C Annex A/C:</para>
772 <itemizedlist mark='opencircle'>785 <itemizedlist mark='opencircle'>
773 <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>786 <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
Documentation/DocBook/media/dvb/frontend.xml+6−2
@@ -45,8 +45,8 @@ transmission. The fontend types are given by fe_type_t type, defined as:</para> · 44 unmodified lines
45 </row>45 </row>
46 <row>46 <row>
47 <entry id="FE_QAM"><constant>FE_QAM</constant></entry>47 <entry id="FE_QAM"><constant>FE_QAM</constant></entry>
48 <entry>For DVB-C annex A/C standard</entry>48 <entry>For DVB-C annex A standard</entry>
49 <entry><constant>SYS_DVBC_ANNEX_AC</constant></entry>49 <entry><constant>SYS_DVBC_ANNEX_A</constant></entry>
50 </row>50 </row>
51 <row>51 <row>
52 <entry id="FE_OFDM"><constant>FE_OFDM</constant></entry>52 <entry id="FE_OFDM"><constant>FE_OFDM</constant></entry>
@@ -63,6 +63,10 @@ transmission. The fontend types are given by fe_type_t type, defined as:</para> · 10 unmodified lines
63<para>Newer formats like DVB-S2, ISDB-T, ISDB-S and DVB-T2 are not described at the above, as they're63<para>Newer formats like DVB-S2, ISDB-T, ISDB-S and DVB-T2 are not described at the above, as they're
64supported via the new <link linkend="FE_GET_SET_PROPERTY">FE_GET_PROPERTY/FE_GET_SET_PROPERTY</link> ioctl's, using the <link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> parameter.64supported via the new <link linkend="FE_GET_SET_PROPERTY">FE_GET_PROPERTY/FE_GET_SET_PROPERTY</link> ioctl's, using the <link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> parameter.
65</para>65</para>
66
67<para>The usage of this field is deprecated, as it doesn't report all supported standards, and
68will provide an incomplete information for frontends that support multiple delivery systems.
69Please use <link linkend="DTV_ENUM_DELSYS">DTV_ENUM_DELSYS</link> instead.</para>
66</section>70</section>
67 71
68<section id="fe-caps-t">72<section id="fe-caps-t">
Documentation/DocBook/media/selection.png.b64+206−0
@@ -0,0 +1,206 @@
1iVBORw0KGgoAAAANSUhEUgAABIsAAAHpCAYAAAACi7yYAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
2/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sLCBAiCLMGMtAAACAASURBVHja
37d3rkds4FgZQaMohTBY7ObRCV+fgyWJy4P6wJavVIgmSAIjHOVWu3bElPkBSAj5dgpdpmqYAAAAA
4ACGEvzQBAAAAAHfCIgAAAAAehEUAAAAAPAiLAAAAAHgQFgEAAADwICwCAAAA4EFYBAAAAMDDD00A
521wul9XXTNN0aHnP749Z39o2rK0jRzssLX/pvVve9+61S69Jdey2bn/sMTx6TAAA/cIW+oVb+2tb
63p+izwioLIJsHYe9X+a979vae89ut6Pb1+txBwD0C3vZN0ERrFNZBAct/ZJxuVx2Vdg8v+/oLyEx
769j7xbq2/1u2e0u75Th2Mevf8ytVzDkDAOgXjtYv3LquVP0nQRHEUVkEBTsJve/r0hfu2hdz7e0W
827HQ4QAA9Avr7BcJiiCesAhO+GKK/YIt8SV+RscoNmippUPl1jIAQL/w3PUc7Y8JimAbYRGc9KVY
9Yu6b3OsYNUTRuQAA9AvL9AtT9LsERbCdOYsAX74ZOiVbO1M6LQCAfmH7/TzohcoiqOhLK+eXV4p1
10xP4y1krF0X1bn7dXBwIA0C+ss19oagAoR1gEJ4j9osv5iPq965imKUk59eidwNc/AIB+oX7h/HpK
11tzeMzm1oQJIv7Ra/eO/7sOWxtgAAtN0v1N+DdcIiyPQFlPP1JbZpTyehl19q1joQOhgAgH7hOf3C
12Pct9tz36c7DMbWhQwPMXUYkOQ6517P3Sj/216axJEdfWoyMBAOgXpukX5uqv7Xm/W9JgnsoiSGxr
134FHiiyvlOu7v21pu/PqLzuuvOTHtlmIZW/bz+f1r6177ewBAv1C/8FwqjCCesAgSdwK2dAh63e+5
14fX8XuBxtt1SdkZhy6djt37vNOioAoF84Sr8wV39tzzIERvCd29Agg7knQ8T+unTk15mc64j5El17
15KsbRW75inrqR6glj79rELWsAgH5hmn7hmcckpt8HI7tMRjYAAAAA/KayCAAAAIAHYREAAAAAD8Ii
16AAAAAB6ERQAAAAA8CIsAAAAAeBAWAQAAAPAgLAIAAADgQVgEAAAAwIOwCAAAAIAHYREAAAAADz80
17AQAAqVwuF40AABWbpmn1NbvDIh0BAKDGzg3n0T8EgD7sCot0BAAAmDNNUwj6iwBQlS3fzIduQ7vd
18blobAMjuer1qhKZ6o4IiAGiZOYsAAMji0w+LAHC6jx0/unkaGgAAAAAPwiIAAAAAHoRFAAAAADwI
19iwAAAAB4EBYBAAAA8OBpaAAAFDf3ZJa5J6htef3za5eeyDb3urWnxsQuM/V7jmxX7Dr3HIMUbfj6
20+qXjurZ977Zja1vuaVOAnqgsAgCgqKWB+rt/2/r6s7Z/z3aesf0x+1fjdgFQjsoiALpyfRng3J5+
21Fb7/2+3NL8Xv/m1pWa/veX7t/XXXN4OtuWXs+fe59c/t45H2erd/Mdu/9XX0b63q5zWkWHr9/d8+
22rtfFapOY9byz9L7X5e7ZzqVKmT2VP3ts2cc966+1MmfuGKkkAvhFZREA3XgON94FNnMhzlJQNLes
231/ffX/f62ue/fw1d3r3m9d/nlhu7/rX22rv8LW20d/voT8ztYbEBzNJrS4YMubbzzNCidLs+BzX3
24datsAjiXsAiALrwLfPYGE1uXtaVK5l2YNLes2OXurdI5svwtbaSKiFdbg5Cl18f821y1UupAZu92
251njblwobgLG5DQ0AZqSofjkSnOSuvsmxf2fsB5SUMtT5vN2+LC82xNoziXaJNthyO11MBdHS7YUA
265CUsAmAo91u97rdGLc1jdKQi5t08QiH8uSVrTcwcSkekWv7avuTeD1hzD2TuwcOWqqIS8wa9C01G
27nD/neV9fQzQAyhMWAUAma5NVA23KEeLMhUZHJ5g+e/9jXyscAqiLOYsA6MK7+XLW5gWK/fdnsYHP
282uvWJtveu969ti5/bxsJzNgTDOx5JP2z1yAmNsC4T7j8+ifXdj6vs7VjlGsdQiSAc6gsAqAbz7eY
29Pf9dqmVtWd7cbWivE0LPbe/rv80tL1Vb7Vl+TBvl3g/a8nx70dIj7e9/v/b6mKer1bBfc9tZ65w8
30pdt1bh1zQdFaGwNw3GWapmnzmy6XQx1wAIAt7gHTjm4LJTuWv/uI084QYC482Pv6LfMSvXtc/Nag
31pNR+xb7+yLYeXX9MG669ZunYpN7mEeeJAsZx/4y7/P7vmP6U29AAAChq6yPm9z6S3n7t34/c648J
32Z97N49TKuQDQOpVFAED1VBY10rGMrCwCAMpRWQQAAADAIcIiAAAAAB48DQ0AADqSciJsAMYkLAIA
33gI4IgwA4SlgEAADAZh9/X9/+/ed/t8Ovf37t3PKWXje3rq3LTP2eI9sVs961969t59r2LbX16zJi
34t+Xzv1vyduE4YVHpD9SZsuDnX4COlA7HLD/Ferase2lZW7Zh6/a+vn6pDda27912rK0vVbsCAEB1
3545qFwf3H39dNIcm715fY/rWQKsV7Wj5me93Dn6VlxgZKnEdYVPLiXAgTPq7X6BBh7rWpln/kPWv7
36LigBAIDGxzUrVT+vocTS6+//thYs7A1plt73utw927kUeixt3xnhWEybzO13qe0VHtVDWFTq4nwK
37cmKDni2B0NLy7/82F/4srWdPYLRneVvWUWvgNNfuAjIAALoZ10TcHhYbwNz/LiYwStpvf3PbU47t
38zL0v727/WqvqijlmEEIIf2mCAh+oK0HR0UBhbflbbuVKsT1ry4vdhhRt/nm7PdZdYr0AADCCreHC
390utj/m0u3EkdcuzdzntQ09MxS7Gud23iFrQ2qCwqeXFmrjBZWv7n7XZ6WFLDNgAAAGNLGeq8Vilt
40ndz53fKO7sMZc0DlPjaCpfKERTVfKBsmqy617hr2de21qeduAgAAzvM6YfKWypQS8wa9q6IpVT3z
41vPyYp4pBLGERu55i1sSXytO2q2oCAAAe44MMIc5caDQ3B1KSsVzF4dC7p6KthWgqiOohLKr5A2zj
42RNW511/LurY8NQ4AAEhv661OMY9RXxwDPAUP9/+OGjtsDB+ObufzOnMFOTHLnZvoWhhDLBNcl/xA
43PRherIUka7dfLS333Z/a9j/VOoRIAACwc0wy86SzL/3tmadvLU12/Pra2vZryz6V3OZ3f44eMwhB
44ZVGZi/jpFqi5qqAj1UJry495Gltupbdhbh1zQdFauwEAAL/72i+PkU/x+hoeRb93O/fMi1R6Iuet
45xyz1emNDQRNc10NYVOoieQl0jnoNN2KWXyoo2jMH0lnbfKTdzm5nAAA4bXyzMJnyXHVLC0FA7fsV
46cxveu7mCWjoG1EFYVPKDZ2GS5diAYW0ZtQYYJZ/gtrSuexs9h201txsAAFQ7vtkYMGx5/dHXHgk/
47atmvI+9PNYF0ioqvGqrG2O4yTdO0+U2XSwghhJuBNABQwPV3qL+j20LJjuXvPuL9KPnRBWCbtVvE
48hCrsOq9+96Muv/87pj+lsggAAKDFAeBLsCBIaJ9jSC2ERQAAAB0QHgGpCIuI++JZmZRbmTkAAFTW
49h98QHn1cPzQYFPR5+6x6+4RFRJ7IN40AAAA19dGfwp+Yx6HHPr4cQFgEAADQuNfwZy08inkEOzAu
50YREAAECjYiqKdvl50bg04Ujg+Xr7Ze5bw1q63VNYlPzgXzUCAP13zNyeDJB/bJErCAKKB0WtERYB
51AACcNWA9IRBy6xnDX3eColXCoowUbgLQk0kTAMQPRguFQItPOHuzDXuCoss/jieV9Ul+Hrg2TwqK
52WnvioLAIAABgy6CvgiBoz/apKGL4a1dQFE1YBAAA8DywK3hrWOoAJ1U1EXR3XQuKNhEWAQAAYwwW
53Gw6B9u6foAgERXsIiwAAgLYHgoUnia4tgBESwcL1UUlQ9Hn7bCo8EhYBAAB1DvJOenR860GLoAh+
54f4ZUFBS1RlgEAACUH8R5ZLx9hJyfMYKiQ4RFAABAuoGSEMj+w9mfQ4Kiw4RFAADA+iBICAS08Fkl
55KEpCWAQAACMPrMwLBPTyeSYoSkZYBAAAPQ6ahEDASJ95gqKkhEUAANDaoMgtYQB/PhMFRckJiwAA
56oJYBjxAIYNvnpqAoC2ERAADkHlQIgQDyf+4JipIRFgEAwN4Bg3mBAKogKEpLWAQAAK+DASEQQDME
57RekJiwAAGIpbwgD6ISjKQ1gEAEAXhEAAZPl+GSwoCkFYBABA7Z10IRAAZ30HDRgUhSAsAgDgrA64
58eYEAqPl7atCgKARhEQAAR/17CSGEMP186WSHa9HNEAIB70zTNMy+Xi4XBzyRkYOiEIRFAAAs+ff8
59gYcQCICSRg+KQhAWAQCMSQgE0J25KioVR/EERb8IiwAAenJGCPS/6ctgZHp0sG+OB0AFXkMk4dF7
60gqI/hEUAAC04qxLof5O2B6B7gqKvhEUAAGcSAgFQ2HOlkSojQdE7wiIAgFxOvCUMAFgnKHpPWAQA
61sJUQCIBOjFxlJCiaJywCALgTAgHAEARFy4RFAED/zAsEAKvuVUa9VxgJitYJi6DmD+uf7//+8s/6
62a969ds/yU6xn636uLWttu9e2dakdX5cRuy2Xf/K2ETBDCAQAbHBWUPS63toJi6BSS8HD9DM+eJh7
63barlH3nPme2y5h7+LC0zNlACdnaq/r5+v/Zzh0NCIADotsJIUBRPWAQ1fjg/BSKxQc+WQGhp+fd/
64mwtJltaTOzCKbZe5fSoV6giPYKXD9BQCFSMEAoCx+x+Cok2ERVCZtUBk6e9TLP/5dqrY8CfmFqy1
657Xm+/evdenO3C5CgMyQEAoC+xibT1EV1kaBoO2ERVCp38LG0/CPhT+vt8q4dlsIrARVDdBTffB58
66hGv29X7+d3v8/+v1+ui0AgDEqiUo+rx9NhUeCYug48FcCOfPI7T3faXmQOrtWECJa/eo5xAIAKi8
67v9Dw/EU1BUWtERYByQaXe8OQ5/fVXNUEvVyruQiBAIBaCIqOERZBJ7ZOVJ17/bUParfs1+utaGu3
68oKkgIqczrpfHuf+l43NzMABgpD5IQ/MXCYqOExZBxQPCI6HDWoVOzCPhlwaNJQa8c3MFCWPo9Zov
69zbUEAPRGUJSGsAgqE/M0siOBydryY546VmKw+jpwzt0ukMtZlXOuBQAgeb+m8uoiQVE6wiKo0Gsw
70kmKwOjcvUEuTMadul63rjQ3STHA9SGdJCAQAUA1BUVrCIqjU0m1ksYPFtWWcFWrEPHZ+7rH1Z243
7143BLGADATD+pwuoiQVF6wiKoWMzgce01a4HMGQPZLWFXim3J3Y4G+w11boRAAABdERTlISwCoHlC
72IACAgn2v6dczUmurMBIUpSMsAqDejoh5gQAAiCAoSktYBBQf4BuIIwQCACAVQVF6wiLAgJyk3BIG
73AEApgqI8hEUARBECAQDwpX9Y4ZPRchgtKApBWATgS14IBAAAb40YFIUgLALolnmBAADI3ufsuLpo
741KAoBGERQHtfyEIgAADIauSgKARhEUBV3BIGAEBzfdjOqotGD4pCEBYBlPkCFQIBAED1BEW/CIsA
75DhACAQCMpbYKmmmaqtmO1quLBEV/CIsA3n3ZmRcIAACGISj6SlgEDEUIBABAT16reWqpNGqJoOg7
76YRHQDbeEAQAAWwiK3hMWAdUTAgEAQGQ/9qnSqHSVUWvzFgmK5gmLgNMIgQAAgDMIipYJi4DkzAsE
77AADnu1f5mMfoK0HROmEREE0IBAAAtOysoOh1vbUTFgEhBLeEAQBAr0pWGNU8b5GgKJ6wCDonBAIA
78AEYnKNpGWASNEgIBAACb+vODzmEkKNpOWASVMS8QAABAGrUERZ+3z6bCI2ERFCIEAgAAanC5XLJW
79F9Uyb1FNQVFrhEWQ+oOxUCgkBAIAAHaPJzIHRmcTFB0jLILaPrSFQAAAALsJio4TFkEhQiAAAKCq
80MUqH1UWCojSERZD6A1coBAAAUJygKJ2/nE4AAABASqUrlgRFaaksghQfhD+1Af1QHQcAQEsERemp
81LAIAAIBB1fCI+yMERXkIiwAAAIDmCYrScRsaJOYWHlrkVkoAgIHHMB08FU1QlJbKIgAAAKBZgqL0
82hEUAAABAkwRFeQiLAAAAAGaMFhSFICwCAAAAeGvEoCgEYREAAADAN6MGRSEIiwAAAGB4l8sl+TJb
83fsLayEFRCCH8cEkAQJkOTo5OGAAAaY0eFIUgLAJgcCV/8VpalyAJAOB8gqJfhEUADKPmUuh32yZA
84AgAoR1D0h7CIrgduBlp9DqqdM4xyHj9vv3MTACAfQdFXwiKAmcH5K4P19o9hT/vlfAQASENQ9J2w
85iO4HjQZUGKyPeXxG2V/nIQCQyuVyGa5PJSh6T1iEgR0kOIcN2H2OOA8BANoiKJonLAIwYG+6vfne
86Ls5BAIBlgqJlf2kCeh/oGVRyxvntvNO22gkAoE6ConUqiwAyDthDUOWRsi1xDgIAHHFWUPS63tqp
87LAIoMGAXdhxrP5yDAABHCYriCYsYYuBnkIQBu/ZCmwIA4xIUbSMsAjhhwI42Ort9tTEAMApB0XbC
88IoYZABoY4Vpoo120jfMQACCVWoKi1ibRFhYBGKhrD+0OANAdQdF+wiKAkwfqBusCCwAA0hIUHSMs
89YqjBoAEp1Pe54LoEACAlQdFxP5xGAOebpilcLpfh9rkVKY6NUAwAID9BURrCIoBKjBQY1Rqc5Gz/
90uWULkQAA0hAUpSMsYriB4YgVHLR1rfR+ftb0eVBDW79ug/AIAGA7QVFawiJgqIH5O7UNznsOjGpo
9169rb9nn7BEcAAOsERekJixhuIN77YJxjg3OD9D4/C1q93gVHAADLBEV5CIsAKhyk9xZonhV09NSG
92giMAgGWConSERQCRg3QD9PaOmXMSAGAMgqJkHc0Qpin85ZQip5oHMgZZ7BmglwwhejlHS+/HSLeY
93lj4nAQBqJChK2nkPIQRhEW0NisAAvbXvmslxse8AgDFcNoKiPIRFGMhCxV9+LZ+jpYMitAMAQA6j
94BUUhCItoZKB4HwAZCGFwPt71v9b+joE2AQDa6sO1ZMSgKARhEUCSwTnaXfsAAPRl1KAoBGERmbSU
95SEvPcY62t72CkPh20lYAANuNHBSFICyikcGOQSKtnaejEhQ5PwEAWjd6UBSCsAjAgFwbD9N22g8A
96YJmg6BdhEcnlmNi6pW0G134egg7tCACQk6DoD2ERBjuAa157AgAMTVD0lbCIpFqu0FFdRM2D8NrP
97z5zbJ9jQrgBAe/25lvoagqLvhEU0O5Ax0IE+OxbU8zkLANA7QdF7wiIAqiXM0MYAALkIiuYJi0im
98xYmtc+4DBt+ue+0IAECdBEXLhEUYlAMAAAxstB/NBUXrhEUAVNepEAQDAJDDWUHR63prJyyiukHj
991kFi6kGlW9HgXIIiAAD9uRwERfGERQAAAEDXBEXbCIs4rMdKHNVFcM41oqoIAMDYJzVB0XbCIqqy
100d6BogAkAAMCrWoKi1ibRFhYBsImqIgAA/boW+nSCov2ERVTz4VLbQNGtaAAAAG0SFB0jLKIbqhLA
1019QsAQJyefxwXFB0nLIJBP0BpSy1himsCAICaCYrSEBZRxaAx1UBYdQK9XRsAANBKf/Xs8ZigKB1h
102EQCnEvICAHCUoCgtYRG79Dyxdc59Bdc9AABn9ud67NMJitITFtEdVQoAAABjEBTl8cOpBZBOjl9q
103eg5AhbsAAG32UWvs1wmK0lFZxKkfNLk+UFIv1+03AAAA9RIUpaWyCCCRnkNFgSkAgD7cnLOrigRF
1046akswoDRvlMxt2kBAMA8QVEeKovodhB8uVwEPBTjXKvvMwAAQL9Uny6F0YKiEFQWAVT7hSxMAQCA
105c40YFIWgsoiTBsSlBsGpq4umaTKAJ9t1AQAALfVHex8bjRoUhaCyCKDKL+aavngFYgAAjGbkoCgE
106lUUAmwlPjlOhBwDoC+rP1Wr0oCgElUWc8IFY+kMl9fp8OYx9HZQ4/oIUAAA4h6DoF5VFACtKBoSC
107IgAAatdrn1VQ9IewiKID5V4+VEx07bz3pQsAAP0QFH0lLGIIqZ+KRl9qODcERQAAtDK26o2g6Dth
108EVCMwG6cL1wAAGiBoOg9E1xTbHB/9oDYRNfUSFAEAEAr/dbe+q6ConnCIoATv3BrJxQFAKBHgqJl
109bkMDKGz0aiLVVAAA+m5nEhStU1nErB6fguZWNM4+/wQlAABwnrOCotf11k5lEUBmAiIAAPRjzyco
110iqeyiLd6rCrKtT2qi5g7z1QSAQBAHQRF26gsAjhIIAQAgL5tvQRF26ksAjhomqYvfwAAgDrUEhS1
111Nom2yiLeDnxTqTWVvlwuBvUUuYZUHQEAUKve+6qCov2ERQAZCY4AAGihr9pbf1VQdIzb0Fj8sDjC
112wBi+X18q2gAAIC9B0XHCIoYlzOIsQiMAAGrup7bcVxUUpSEsAjjxyxgAAEhDUJSOsIgsA9dWqnZU
113F1HDdSc0AgBAP/UYQVFawiKASr6MAQCA7QRF6QmLACohMAIAoMY+as39VEFRHj+c+qQepLZ2a9fl
114ckm6/9M0ub2t4XPj7C9C5w8AAOwjKEpHWATw5F1QUzpAEhgBAFCbe5+41n6qoCgtt6ExdFVRru12
115O1FfLpfL40+L1yUAAPRMUJSesAhgg5LBkcAIAIDa1NZHFRTlISwC2KlEaCQwAgCAc40WFIUgLBqe
116W9Dybb9B/jgERgAAjDaOHKWPOmJQFIKwCCCJ0nMaAQAAeY0aFIUgLCLhQBnIdy2oLgIAoDY991FH
117DopCEBa5sMk60NfGzqPWz6cc++K6AACgZqMHRSEIiwCyUG0HAMAIevshUFD0i7DIBW1QnHl/VFHg
118fAIAgPoJiv744XQAyONyuQh3AIDmTdOkavqlj1fzsXKO7CMo+kplEUBjnQkBFAAApCMo+k5YNCC3
119oJXfL4N7AACgxDjm+U+r48ySBEXvCYsACnxp+zIGAIC6CIrmCYsGo6rovP0zuAfXAwD47qb0mKZk
120lVFL54mgaJkJrvGFAax2MlzvAAD0QlC0TmURQAGeIAIAwNn90RJVRrX/yHhWUPS63toJiwaiMsAx
121wPkEAACjEhTFExYBcAphFwDAOXJXGNXYzxMUbSMsAgAAALolKNpOWDQIv+A7Fpyv5XmLzLkEAOjH
1226p+2eL7UEhS1Nom2sAgAAADojqBoP2HRAPwC4JjgXLL9AAC8U+IJaWcQFB0jLAIAAAC6ISg6TlgE
123QBTzFgEA6OttcUYVuaAoDWFR59zi4diAawEAgBEIitIRFgEAABDFjzx9a7m6SFCUlrAIgFM7EAAA
124cISgKD1hUcek/o4RuBYAANiitR8HBUV5CIsAAACA5gmK0hEWdcqv9I4V5JLr1ybXAgDov+Kc2UtQ
125lJawCAAAAGiWoCi9H04rYpjU9iu/puAz4ZLlOpimyecNAECnfb0cBEV5qCzqkCDDMcNxBgAA0hgt
126KApBWEQEv/IDJQnVAACMA2sxYlAUgrDIIItqPjgdO1wHrgcAMO6AeowaFIUgLAJoml98AAAgvZGD
127ohCERRiIahuK6PXXN9VFAAD01rcbPSgKQVjk4sMxBNeENgYAIIQgKLoTFjFL5Qzgs6JvgiIAfI/A
128H4KiP4RFYJCMjpT2064AAEMTFH0lLNLpx7GkUTWFlbm3xXWhPQEAchEUfScsovpBKBiU+9wYrS21
129IwBAGYKi94RFOv5UOEB2TF2baNMcbaf9AICzxzo1ERTNExYB+OJuarsEHtoMAOAoQdEyYRHNDELB
1304NxniPbVVgD4nsH5cpSgaJ2wyMWGY4tjp507bR9tBADw1VlB0et6aycsAkg8QM+theq/UtsoENEm
131AACxBEXxhEU0NwgFA3SfJ+/aH+0AADBHULSNsMigAMeYho5Ta4Fu6cBo1GtGWAkAME9QtJ2wiGYH
132oWCA7rNl7rg4BwEACKGeoKi1SbSFRQ0PEHCsOW9wfsZxEehuP072DwD0Vxm3Dyoo2u+HUx+g/g5Q
13360HR5XI5pR3v6+whaNMRBwCIJyg6RlhENwMpMCCv/3PmrPZ9Xm9rn3fOSQCAbQRFxwmLDGZpYEA8
134TZPKiMHPKddHnvOwxrZ1nQAA7CcoSkNYBFCxHqv+agiM7l6344z2Fg4B0INeftyk7XNFUJSOsAgf
1356uDaPGXfagxJ5rYpxbEQCgEA5CMoSktY1BiDjXEHwn6tGe8ccp347AUAYJ2gKL2/nFYGpIDr8sx9
1369TkEAMBegqI8hEUN8cu2Ab9zwHljv9H2AADvCYrSERYBGLTbf20OANA0QVFa5iwySABci1W1hQo6
1375xwAwBaCovRUFjXC4MmAzLngHBmpTbSLcw4AIIagKA+VRQAG7FW3kYDUOQcAcKbRgqIQVBY1IcdA
138yaDBOcF5A3bXn88r5xwAQBtGDIpCUFkERQZqwh0M1tO0n2vJOQcAUMqoQVEIwiIAA/YG21No5JwD
139AMhp5KAoBLehVc8taAZvJc8N0h1vt/6UaWO0CQB9j13gDKMHRSGoLAJINlDn3HYfsYPqvAMASEtQ
1409IuwyMACcB11dVxGCI2cgwAA6QmK/hAWVUwZZ3+Du9THdJomg0aDcRaOXS+fo85HAIC8BEVfCYsM
141DnBMnX8Mc821FB65BgFokR8zaZGg6DthEaT+gvypDaBW7zqvNQRIOtUAAOcQFL0nLAJgaEtBTcog
142SSAEAFAXQdE8YREAzBDwAAD0SVC0TFgEKQaU//z637lb0O7/DgAAwLkEReuERVBAzDxGAiUAAIC8
143zgqKXtdbO2ERVGItUBImAQDQRL/WE9G6O569EBTFExZBQnOBToonpKlOAgAA2EdQtI2wCAqICXEE
144SgAAAOkJirYTFkEl1kKcFGFS7HIESgAAHOpzuhWNStQSFH3ePpsKj4RF0IhS1UkxyxEmAQAAtasp
145KGqNsAg64nY3AACg6jFLoYozQdExwiIY7cPZ7W4AAEDHBEXHCYuAL2q63S12ewAAgPSmaWpumwVF
146aQiLgM3MnwQAANRGUJSOsAjIwvxJAABj80Q0ShIUpSUsAk5j/iQA8i3Z/QAADThJREFUAOAoQVF6
147wiKgWm53AwAAlgiK8hAWAU1zuxsAABCCoCglYRHQPYESAAD0TVCUlrAIIJg/CQAAWiUoSk9YBBDB
148/EkAADv6NZ6IxnM/NsO5ICjKQ1gEkOrLz+1uAADQndGCohCERQBFCZQAAGjBNE0aIYwZFIUgLAKo
149jvmTAADgfKMGRSEIiwCaY/4kAKAl5i1q85iNbuSgKARhEUCX3O4GAAD7jB4UhSAsAhiW290AACjW
15092ykukxQ9IuwCID3X+gV3e4Wuz0AALCXoOgPYREAu5k/CQCgL6POVyQo+kpYBEBW5k8CAKBmgqLv
151hEUAnM78SQDQN09Ea+c4jUZQ9J6wCIDqmT8JAIDUBEXzhEUAdMH8SQAAB/o3g1UVCYqWCYsAGIb5
152kwAAEBStExYBwBPzJwEAI1FR9HnKemsnLAKADdzuBgDQJkFRPGERACTmdjcAePO95YloVR6TIn2j
153Co67oGgbYREAnECgBABQhqBoO2ERAFTK/EkAQA4jzVNUS1D0eftsKjwSFgFAo86cP+kjXL92gP67
154OSAAQFVqCopaIywCgI6VCpQ+/r6uvkagBIB5i85t+1P6Iicdb0HRMcIiABhcqdvdBEoAQAmCouOE
155RQDAonuYNH3p/Ny+do4igqCoTtbMch6B1b+XEP43OSgAEOHsuYnOqCoSFKUhLAIADoupCEoVKIV/
156VzqewiQAGJKgKB1hEQBQRLFA6d+IXzEFSgB0aKSnnH3rQwiKkhIWAQDVmAuUrtfrr05wovmTBEoA
1570A9BUXrCIgCgHTEBzr+J5kcQKAGEEH7NO5OyYqX1J6KNXL2z9bwpQVCUh7AIAOhLTYGSMAkAihEU
158pSMsAgDGUypQUp0EwIDOqBwTFKUlLAIAeGctxHG7GwBUQVCUnrAIAGAPt7sBwDelq4oERXkIiwAA
159cnG7G9BRAGCSa2LOkx6NFhSFICwCADiXQAkAqjViUBSCsAgAoH7mTwKgcj1WFY0aFIUgLAIAaF8l
1608ydNP0O4/ONwANC+kYOiEIRFAABjKBQoTT+fOtrhGvWez/9ujg80wLxFLJ0bPRk9KApBWAQAwF2p
161291eO+V/X1dfI1ACoARB0S/CIgAA4qyESZfL5UtlUdLOu0AJoEo9VRUJiv4QFgEAkG7Q8E8I06OT
162fYvrnEcEQSmWI0wCYPY7RFD0hbAIAIBTxYQ4KQIl1UkA6ago6puwCACA6q2FOKWqk2K2BYB2CIre
163ExYBANC8UtVJscsRKNErT0Tjfh70QFA0T1gEAMAQagqUhEkA5xIULRMWAQDAfbBg/iSAWSqKxiEs
164AgCADcyfBNCus4Ki1/XWTlgEAAAJud0NtjFvUf1UFKVdbwuERQAAUJjb3QDKEhRtIywCAIAKCZSo
165VeonolH3se6BoGg7YREAADTK/EkAK59flQRFn7fPpsIjYREAAHTK/EnAXj1UFdUUFLVGWAQAAANz
166uxvQI0HRMcIiAABgkUCJV6nnLfJEtHqOaw8ERccJiwAAgMPMnwTUQFCUhrAIAADIzvxJUKeeKroE
167RekIiwAAgCq43S3xAPZpPwVk9E5QlJawCAAAaEYNt7u1GLx8/H0VGNHtvFCCovSERQAAQDdKVCe1
168WpkkMKJHgqI8hEUAAMBQSlQn1TBv0ud/t2/bkTIw8kS0Oo3choKidIRFAAAAzwO/CsKkmO2I3Zec
169gRFUc90KipISFgEAAGwZlJ44b9KekCdnYNRCFYtqpQGuSUFRcsIiAACAlAPXjPMm7b29TYUR3V5v
170gqIshEUAAAClB7iZAqWt74kJjKafjhdjGy0oCkFYBAAAUKV3IU6qW9y+L3PS4PDu+hgwKApBWAQA
171ANCMUvMlAeMGRSEIiwAAALqR6va2PXMZnTWwtl7r7Wm9tRAWAQAADCBn1ZEgwXqtty/Coozc9QsA
172AJwt5glqHwb01mu9p663NsIiAACAzsQERAb01mu9day3RsIiAACATpQKiUYc0Fuv9Y5EWJTY5+2m
173EQAAgHrGKAkDolEH9NZrvaMRFgEAAHQoR0g04oDeeq13RMIiAACATuQKiEYd0Fuv9Y7qL00AAACA
174Ab31Wi93wiIAAAAM6K3XenkQFgEAAGBAb73WW3C9tRMWAQAAYEBvvdZbaL0tEBYBAABgQG+91ltg
175va0QFgEAAGBAb73Wm3m9LREWAQAAMEuQYL3W2856UxEWAQAA8JYBvfVabzvrTekyTdO0+U2XSwgh
176hNvt5tMTAMjuer2GEELY0W2hZMfydx9xenSO9RWhFS3fLgMtKhkgffzuR11+/3dMf0plEQAAAAAP
177wiIAAAAAHn5oAgAAgLG1OKcKkI/KIgAAAAAehEUAAAAAPAiLAAAAAHgQFgEAAADwYIJrAAAAivq4
178frz9+7mJtre8/vm1SxN3z71ubl1bl5n6PUe2K3adW4/DWvsfPb5737PlmJrc/T2VRQAAABSzNHB/
179929bX3/W9u/ZzjO2/+gxOrrcrcve856alt8qlUUAAAAUsVb18zpoX3r9/d8+rh+L1Sdbq19itu91
180uXu28/73qapz9tiyjyWWneo9Z+xvb1QWAQAAkF3M7WGxAczSa3Pac9vbnu08M7RYu+3r8/b5eM3W
181dj/aFjmO8xnnUQuERQAAABSzNQhZen3Mv81VK6UOZPZu52i3Qe1p99zhmYqi79yGBgAAABFShjqf
182t88vy4sNsfZMon10H9fmYzozbMndHqMSFgEAANCleyBzDzS2VBWVmDfoXfVTrsqnFPv4/HevYRd9
183ERYBAABApBwhzlxodHRC59T7WGM4pIIoD2ERAAAAxWy9bWntaWdrnquL7v8dY2sIcXQ7n9d55oTd
184e7Z9yzHds2+520OF1HcmuAYAACC7mKdOzT1ZbG0enVqeHrZlO1sLKO5PQXv9s8WeY5b7ONdyHtVG
185ZREAAABFPM9zs6UqaOn1MQP8Ek/T2rOde+ZFamVC55T7lqo9SsxD1QuVRQAAABSz9RHzex9Jb7+O
186i7l1b8utc3uqkfa8p6blt+oyTdO0+U2XSwghhNvtpgUBgOyu12sIIYQd3RZKdix/9xGnRwdcXxEA
187zvbxux91+f3fMf0plUUAAAAAPJizCACA09yrxl7NVbBvef3za5cq4udeN7eurctM/Z4j2xW7ztT7
188eH/t2nGda//YZS7tz1q77DlmAL1SWQQAwCmWBvbv/m3r68/a/j3becb2x+5jDccixTLn9qXm9oc9
189Pq4fi38gRrHKopikvvQvG3vWs+fLxS8yfpEBAOb7DDH9taXX3//ter0u9pP29AvXtu91uXu2c6mP
190d6RftsWWdR89FiXsOWZ7zw+ojcmaSaFIZVGqXx5S/nqzd3v37r9fZAAA1sOGd3+/9votPz6msue2
191tz3bWWvgcsaxOLq81tof4EzZK4u2/mq05XVry1/7ZWPLLw4pvlBTbXcNHQS/yAAAOfoae19/u90W
192K5zvP3jN9V9S9lf2budaFXlpe6uacrRnquW11P4AZ8paWbT1V6PUy6/h1wO/yPjCBQD6kzNcWqrk
193fve61z9792duOTX05e7bkONHyL3tD9CzIreh5f6CWftlo9aORMntzn1Puy9XAKBmr2HDliqSEkHK
1947XYTWpx8fmh/gD9+1LhRZ06SfOQLodQEhEe+BN+VYKdc9mtbqCoCAHqVo5/zroJmy5QKqfclV9+x
195tr7snvYH6NmPkXe+9nCn1Q6T0AgAiO2LbekjrD3tLKav8lwtErvuPU/KPbKdc/2qVo5diW0+crtd
196D+0PkNtfNW7UvQz0tRz0zKdb7Nnu5+2v5YumxPbMlfECALz2tbY+DGTtCbO1PBxky3a21E86eiy2
197PiE4VT+9l/YHKKVIZdHR0s21JyDs/WWjhvmM/CIDAIzouX+3pSpo6fUxfbsSc2nu2c49fdaUUzds
198DWy27mOq45dif1K1P0DPslYWbf3VKPXya3uKQ6rt9osMANCDrQ/7qPmhJr3u17uK8b3bnGo/j94F
1990Op5BVDSZZqmafObLpdNH55rQcJrBcrWx83HLv/19ak+/Pc+Qn7rdqfc19flbA1+UuwLAGz9rt3R
200baFkx/J3H/F+lD59/wPA6T5+96Muv/87pj9VZM6iFGn93mXU8uQGv8gAAAAALShSWQQAcITKokY6
201liqLAKA6eyqLfmg2AADoj2kCANhLWAQAAB0SBgGwl7BohV9kAAAAgJEIi1YIgwAAAICRCIsAAMji
202Y6VCGwCo01+aAAAAAIA7lUUAACR10QQA0PZ3+TRN0+Y3XXQBAIDydnRbKNmx1EcEgC76UyqLAAAo
2031vkEAOq3KyzSEQAAAADokwmuAQAAAHgQFgEAAADwICwCAAAA4EFYBAAAAMCDsAgAAACAB2ERAAAA
204AA/CIgAAAAAehEUAAAAAPAiLAAAAAHgQFgEAAADwICwCAAAA4EFYBAAAAMCDsAgAAACAB2ERAAAA
205AA/CIgAAAAAehEUAAAAAPAiLAAAAAHgQFgEAAADwICwCAAAA4EFYBAAAAMCDsAgAAACAB2ERAAAA
206AA/CIgAAAAAe/g/10lQlA3JSSwAAAABJRU5ErkJggg==
Documentation/DocBook/media/v4l/biblio.xml+0−8
@@ -178,11 +178,3 @@ in the frequency range from 87,5 to 108,0 MHz</title> · 177 unmodified lines
178 </biblioentry>178 </biblioentry>
179 179
180 </bibliography>180 </bibliography>
181
182 <!--
183Local Variables:
184mode: sgml
185sgml-parent-document: "v4l2.sgml"
186indent-tabs-mode: nil
187End:
188 -->
Documentation/DocBook/media/v4l/common.xml+2−8
@@ -1168,6 +1168,8 @@ dheight = format.fmt.pix.height; · 1167 unmodified lines
1168 </section>1168 </section>
1169 </section>1169 </section>
1170 1170
1171 &sub-selection-api;
1172
1171 <section id="streaming-par">1173 <section id="streaming-par">
1172 <title>Streaming Parameters</title>1174 <title>Streaming Parameters</title>
1173 1175
@@ -1195,11 +1197,3 @@ separate parameters for input and output devices.</para> · 21 unmodified lines
1195 <para>These ioctls are optional, drivers need not implement1197 <para>These ioctls are optional, drivers need not implement
1196them. If so, they return the &EINVAL;.</para>1198them. If so, they return the &EINVAL;.</para>
1197 </section>1199 </section>
1198
1199 <!--
1200Local Variables:
1201mode: sgml
1202sgml-parent-document: "v4l2.sgml"
1203indent-tabs-mode: nil
1204End:
1205 -->
Documentation/DocBook/media/v4l/compat.xml+21−9
@@ -1082,7 +1082,7 @@ until the time in the timestamp field has arrived. I would like to · 1081 unmodified lines
1082follow SGI's lead, and adopt a multimedia timestamping system like1082follow SGI's lead, and adopt a multimedia timestamping system like
1083their UST (Unadjusted System Time). See1083their UST (Unadjusted System Time). See
1084http://web.archive.org/web/*/http://reality.sgi.com1084http://web.archive.org/web/*/http://reality.sgi.com
1085/cpirazzi_engr/lg/time/intro.html. 1085/cpirazzi_engr/lg/time/intro.html.
1086UST uses timestamps that are 64-bit signed integers1086UST uses timestamps that are 64-bit signed integers
1087(not struct timeval's) and given in nanosecond units. The UST clock1087(not struct timeval's) and given in nanosecond units. The UST clock
1088starts at zero when the system is booted and runs continuously and1088starts at zero when the system is booted and runs continuously and
@@ -2376,6 +2376,23 @@ that used it. It was originally scheduled for removal in 2.6.35. · 1287 unmodified lines
2376 <listitem>2376 <listitem>
2377 <para>V4L2_CTRL_FLAG_VOLATILE was added to signal volatile controls to userspace.</para>2377 <para>V4L2_CTRL_FLAG_VOLATILE was added to signal volatile controls to userspace.</para>
2378 </listitem>2378 </listitem>
2379 <listitem>
2380 <para>Add selection API for extended control over cropping and
2381composing. Does not affect the compatibility of current drivers and
2382applications. See <link linkend="selection-api"> selection API </link> for
2383details.</para>
2384 </listitem>
2385 </orderedlist>
2386 </section>
2387
2388 <section>
2389 <title>V4L2 in Linux 3.3</title>
2390 <orderedlist>
2391 <listitem>
2392 <para>Added <constant>V4L2_CID_ALPHA_COMPONENT</constant> control
2393 to the <link linkend="control">User controls class</link>.
2394 </para>
2395 </listitem>
2379 </orderedlist>2396 </orderedlist>
2380 </section>2397 </section>
2381 2398
@@ -2489,6 +2506,9 @@ ioctls.</para> · 107 unmodified lines
2489 <listitem>2506 <listitem>
2490 <para>&VIDIOC-CREATE-BUFS; and &VIDIOC-PREPARE-BUF; ioctls.</para>2507 <para>&VIDIOC-CREATE-BUFS; and &VIDIOC-PREPARE-BUF; ioctls.</para>
2491 </listitem>2508 </listitem>
2509 <listitem>
2510 <para>Selection API. <xref linkend="selection-api" /></para>
2511 </listitem>
2492 </itemizedlist>2512 </itemizedlist>
2493 </section>2513 </section>
2494 2514
@@ -2507,11 +2527,3 @@ interfaces and should not be implemented in new drivers.</para> · 12 unmodified lines
2507 </itemizedlist>2527 </itemizedlist>
2508 </section>2528 </section>
2509 </section>2529 </section>
2510
2511 <!--
2512Local Variables:
2513mode: sgml
2514sgml-parent-document: "v4l2.sgml"
2515indent-tabs-mode: nil
2516End:
2517 -->
Documentation/DocBook/media/v4l/controls.xml+29−14
@@ -323,12 +323,6 @@ minimum value disables backlight compensation.</entry> · 322 unmodified lines
323 <entry>Switch on or off the illuminator 1 or 2 of the device323 <entry>Switch on or off the illuminator 1 or 2 of the device
324 (usually a microscope).</entry>324 (usually a microscope).</entry>
325 </row>325 </row>
326 <row>
327 <entry><constant>V4L2_CID_LASTP1</constant></entry>
328 <entry></entry>
329 <entry>End of the predefined control IDs (currently
330<constant>V4L2_CID_ILLUMINATORS_2</constant> + 1).</entry>
331 </row>
332 <row>326 <row>
333 <entry><constant>V4L2_CID_MIN_BUFFERS_FOR_CAPTURE</constant></entry>327 <entry><constant>V4L2_CID_MIN_BUFFERS_FOR_CAPTURE</constant></entry>
334 <entry>integer</entry>328 <entry>integer</entry>
@@ -345,6 +339,25 @@ and used as a hint to determine the number of OUTPUT buffers to pass to REQBUFS. · 10 unmodified lines
345The value is the minimum number of OUTPUT buffers that is necessary for hardware339The value is the minimum number of OUTPUT buffers that is necessary for hardware
346to work.</entry>340to work.</entry>
347 </row>341 </row>
342 <row id="v4l2-alpha-component">
343 <entry><constant>V4L2_CID_ALPHA_COMPONENT</constant></entry>
344 <entry>integer</entry>
345 <entry> Sets the alpha color component on the capture device or on
346 the capture buffer queue of a mem-to-mem device. When a mem-to-mem
347 device produces frame format that includes an alpha component
348 (e.g. <link linkend="rgb-formats">packed RGB image formats</link>)
349 and the alpha value is not defined by the mem-to-mem input data
350 this control lets you select the alpha component value of all
351 pixels. It is applicable to any pixel format that contains an alpha
352 component.
353 </entry>
354 </row>
355 <row>
356 <entry><constant>V4L2_CID_LASTP1</constant></entry>
357 <entry></entry>
358 <entry>End of the predefined control IDs (currently
359 <constant>V4L2_CID_ALPHA_COMPONENT</constant> + 1).</entry>
360 </row>
348 <row>361 <row>
349 <entry><constant>V4L2_CID_PRIVATE_BASE</constant></entry>362 <entry><constant>V4L2_CID_PRIVATE_BASE</constant></entry>
350 <entry></entry>363 <entry></entry>
@@ -3329,6 +3342,16 @@ interface and may change in the future.</para> · 2978 unmodified lines
3329 <entry>The short circuit protection of the flash3342 <entry>The short circuit protection of the flash
3330 controller has been triggered.</entry>3343 controller has been triggered.</entry>
3331 </row>3344 </row>
3345 <row>
3346 <entry><constant>V4L2_FLASH_FAULT_OVER_CURRENT</constant></entry>
3347 <entry>Current in the LED power supply has exceeded the limit
3348 specific to the flash controller.</entry>
3349 </row>
3350 <row>
3351 <entry><constant>V4L2_FLASH_FAULT_INDICATOR</constant></entry>
3352 <entry>The flash controller has detected a short or open
3353 circuit condition on the indicator LED.</entry>
3354 </row>
3332 </tbody>3355 </tbody>
3333 </entrytbl>3356 </entrytbl>
3334 </row>3357 </row>
@@ -3357,11 +3380,3 @@ interface and may change in the future.</para> · 22 unmodified lines
3357 3380
3358 </section>3381 </section>
3359</section>3382</section>
3360
3361 <!--
3362Local Variables:
3363mode: sgml
3364sgml-parent-document: "common.sgml"
3365indent-tabs-mode: nil
3366End:
3367 -->
Documentation/DocBook/media/v4l/dev-capture.xml+0−8
@@ -108,11 +108,3 @@ linkend="mmap">memory mapping</link> or <link · 107 unmodified lines
108linkend="userp">user pointer</link>) I/O. See <xref108linkend="userp">user pointer</link>) I/O. See <xref
109linkend="io" /> for details.</para>109linkend="io" /> for details.</para>
110 </section>110 </section>
111
112 <!--
113Local Variables:
114mode: sgml
115sgml-parent-document: "v4l2.sgml"
116indent-tabs-mode: nil
117End:
118 -->
Documentation/DocBook/media/v4l/dev-codec.xml+0−8
@@ -16,11 +16,3 @@ Applications send data to be converted to the driver through a · 15 unmodified lines
16I/O.</para>16I/O.</para>
17 17
18 <para>[to do]</para>18 <para>[to do]</para>
19
20 <!--
21Local Variables:
22mode: sgml
23sgml-parent-document: "v4l2.sgml"
24indent-tabs-mode: nil
25End:
26 -->
Documentation/DocBook/media/v4l/dev-effect.xml+0−8
@@ -15,11 +15,3 @@ receive the result data either with &func-read; and &func-write; · 14 unmodified lines
15functions, or through the streaming I/O mechanism.</para>15functions, or through the streaming I/O mechanism.</para>
16 16
17 <para>[to do]</para>17 <para>[to do]</para>
18
19 <!--
20Local Variables:
21mode: sgml
22sgml-parent-document: "v4l2.sgml"
23indent-tabs-mode: nil
24End:
25 -->
Documentation/DocBook/media/v4l/dev-event.xml+0−8
@@ -41,11 +41,3 @@ intermediate step leading up to that information. See the documentation for the · 40 unmodified lines
41event you want to subscribe to whether this is applicable for that event or not.</para>41event you want to subscribe to whether this is applicable for that event or not.</para>
42 </listitem>42 </listitem>
43 </orderedlist></para>43 </orderedlist></para>
44
45 <!--
46Local Variables:
47mode: sgml
48sgml-parent-document: "v4l2.sgml"
49indent-tabs-mode: nil
50End:
51 -->
Documentation/DocBook/media/v4l/dev-osd.xml+0−8
@@ -154,11 +154,3 @@ data flow. For more information see <xref linkend="crop" />.</para> · 153 unmodified lines
154however the framebuffer interface of the driver may support the154however the framebuffer interface of the driver may support the
155<constant>FBIOBLANK</constant> ioctl.</para>155<constant>FBIOBLANK</constant> ioctl.</para>
156 </section>156 </section>
157
158 <!--
159Local Variables:
160mode: sgml
161sgml-parent-document: "v4l2.sgml"
162indent-tabs-mode: nil
163End:
164 -->
Documentation/DocBook/media/v4l/dev-output.xml+0−8
@@ -104,11 +104,3 @@ linkend="mmap">memory mapping</link> or <link · 103 unmodified lines
104linkend="userp">user pointer</link>) I/O. See <xref104linkend="userp">user pointer</link>) I/O. See <xref
105linkend="io" /> for details.</para>105linkend="io" /> for details.</para>
106 </section>106 </section>
107
108 <!--
109Local Variables:
110mode: sgml
111sgml-parent-document: "v4l2.sgml"
112indent-tabs-mode: nil
113End:
114 -->
Documentation/DocBook/media/v4l/dev-overlay.xml+0−8
@@ -369,11 +369,3 @@ reasons. <!-- video4linux-list@redhat.com on 22 Oct 2002 subject · 368 unmodified lines
369 <para>To start or stop the frame buffer overlay applications call369 <para>To start or stop the frame buffer overlay applications call
370the &VIDIOC-OVERLAY; ioctl.</para>370the &VIDIOC-OVERLAY; ioctl.</para>
371 </section>371 </section>
372
373 <!--
374Local Variables:
375mode: sgml
376sgml-parent-document: "v4l2.sgml"
377indent-tabs-mode: nil
378End:
379 -->
Documentation/DocBook/media/v4l/dev-radio.xml+0−8
@@ -47,11 +47,3 @@ depending on the selected frequency. The &VIDIOC-G-TUNER; or · 46 unmodified lines
47&VIDIOC-G-MODULATOR; ioctl47&VIDIOC-G-MODULATOR; ioctl
48reports the supported frequency range.</para>48reports the supported frequency range.</para>
49 </section>49 </section>
50
51<!--
52Local Variables:
53mode: sgml
54sgml-parent-document: "v4l2.sgml"
55indent-tabs-mode: nil
56End:
57 -->
Documentation/DocBook/media/v4l/dev-raw-vbi.xml+0−8
@@ -337,11 +337,3 @@ an &EBUSY; if the required hardware resources are temporarily · 336 unmodified lines
337unavailable, for example the device is already in use by another337unavailable, for example the device is already in use by another
338process.</para>338process.</para>
339 </section>339 </section>
340
341 <!--
342Local Variables:
343mode: sgml
344sgml-parent-document: "v4l2.sgml"
345indent-tabs-mode: nil
346End:
347 -->
Documentation/DocBook/media/v4l/dev-rds.xml+4−12
@@ -29,10 +29,10 @@ returned by the &VIDIOC-QUERYCAP; ioctl. Any tuner that supports RDS · 28 unmodified lines
29will set the <constant>V4L2_TUNER_CAP_RDS</constant> flag in29will set the <constant>V4L2_TUNER_CAP_RDS</constant> flag in
30the <structfield>capability</structfield> field of &v4l2-tuner;. If30the <structfield>capability</structfield> field of &v4l2-tuner;. If
31the driver only passes RDS blocks without interpreting the data31the driver only passes RDS blocks without interpreting the data
32the <constant>V4L2_TUNER_SUB_RDS_BLOCK_IO</constant> flag has to be32the <constant>V4L2_TUNER_CAP_RDS_BLOCK_IO</constant> flag has to be
33set, see <link linkend="reading-rds-data">Reading RDS data</link>.33set, see <link linkend="reading-rds-data">Reading RDS data</link>.
34For future use the34For future use the
35flag <constant>V4L2_TUNER_SUB_RDS_CONTROLS</constant> has also been35flag <constant>V4L2_TUNER_CAP_RDS_CONTROLS</constant> has also been
36defined. However, a driver for a radio tuner with this capability does36defined. However, a driver for a radio tuner with this capability does
37not yet exist, so if you are planning to write such a driver you37not yet exist, so if you are planning to write such a driver you
38should discuss this on the linux-media mailing list: &v4l-ml;.</para>38should discuss this on the linux-media mailing list: &v4l-ml;.</para>
@@ -52,9 +52,9 @@ field of &v4l2-modulator;. · 13 unmodified lines
52In order to enable the RDS transmission one must set the <constant>V4L2_TUNER_SUB_RDS</constant>52In order to enable the RDS transmission one must set the <constant>V4L2_TUNER_SUB_RDS</constant>
53bit in the <structfield>txsubchans</structfield> field of &v4l2-modulator;.53bit in the <structfield>txsubchans</structfield> field of &v4l2-modulator;.
54If the driver only passes RDS blocks without interpreting the data54If the driver only passes RDS blocks without interpreting the data
55the <constant>V4L2_TUNER_SUB_RDS_BLOCK_IO</constant> flag has to be set. If the55the <constant>V4L2_TUNER_CAP_RDS_BLOCK_IO</constant> flag has to be set. If the
56tuner is capable of handling RDS entities like program identification codes and radio56tuner is capable of handling RDS entities like program identification codes and radio
57text, the flag <constant>V4L2_TUNER_SUB_RDS_CONTROLS</constant> should be set,57text, the flag <constant>V4L2_TUNER_CAP_RDS_CONTROLS</constant> should be set,
58see <link linkend="writing-rds-data">Writing RDS data</link> and58see <link linkend="writing-rds-data">Writing RDS data</link> and
59<link linkend="fm-tx-controls">FM Transmitter Control Reference</link>.</para>59<link linkend="fm-tx-controls">FM Transmitter Control Reference</link>.</para>
60 </section>60 </section>
@@ -194,11 +194,3 @@ as follows:</para> · 133 unmodified lines
194 </tgroup>194 </tgroup>
195 </table>195 </table>
196 </section>196 </section>
197
198<!--
199Local Variables:
200mode: sgml
201sgml-parent-document: "v4l2.sgml"
202indent-tabs-mode: nil
203End:
204 -->
Documentation/DocBook/media/v4l/dev-sliced-vbi.xml+0−9
@@ -697,12 +697,3 @@ Sliced VBI services</link> for a description of the line payload.</entry> · 696 unmodified lines
697 697
698 </section>698 </section>
699 </section>699 </section>
700
701
702<!--
703Local Variables:
704mode: sgml
705sgml-parent-document: "v4l2.sgml"
706indent-tabs-mode: nil
707End:
708 -->
Documentation/DocBook/media/v4l/dev-teletext.xml+0−8
@@ -27,11 +27,3 @@ kernel 2.6.37.</para> · 26 unmodified lines
27 27
28 <para>Modern devices all use the <link linkend="raw-vbi">raw</link> or28 <para>Modern devices all use the <link linkend="raw-vbi">raw</link> or
29<link linkend="sliced">sliced</link> VBI API.</para>29<link linkend="sliced">sliced</link> VBI API.</para>
30
31 <!--
32Local Variables:
33mode: sgml
34sgml-parent-document: "v4l2.sgml"
35indent-tabs-mode: nil
36End:
37 -->
Documentation/DocBook/media/v4l/driver.xml+0−8
@@ -198,11 +198,3 @@ devices with the videodev module.</para> · 197 unmodified lines
198 <para>to do</para>198 <para>to do</para>
199 </section>199 </section>
200-->200-->
201
202<!--
203Local Variables:
204mode: sgml
205sgml-parent-document: "v4l2.sgml"
206indent-tabs-mode: nil
207End:
208-->
Documentation/DocBook/media/v4l/func-close.xml+0−8
@@ -60,11 +60,3 @@ descriptor.</para> · 59 unmodified lines
60 </variablelist>60 </variablelist>
61 </refsect1>61 </refsect1>
62</refentry>62</refentry>
63
64<!--
65Local Variables:
66mode: sgml
67sgml-parent-document: "v4l2.sgml"
68indent-tabs-mode: nil
69End:
70-->
Documentation/DocBook/media/v4l/func-ioctl.xml+0−8
@@ -69,11 +69,3 @@ their respective function and parameters are specified in <xref · 68 unmodified lines
69 the parameter remains unmodified.</para>69 the parameter remains unmodified.</para>
70 </refsect1>70 </refsect1>
71</refentry>71</refentry>
72
73<!--
74Local Variables:
75mode: sgml
76sgml-parent-document: "v4l2.sgml"
77indent-tabs-mode: nil
78End:
79-->
Documentation/DocBook/media/v4l/func-mmap.xml+0−8
@@ -181,11 +181,3 @@ complete the request.</para> · 180 unmodified lines
181 </variablelist>181 </variablelist>
182 </refsect1>182 </refsect1>
183</refentry>183</refentry>
184
185<!--
186Local Variables:
187mode: sgml
188sgml-parent-document: "v4l2.sgml"
189indent-tabs-mode: nil
190End:
191-->
Documentation/DocBook/media/v4l/func-munmap.xml+0−8
@@ -74,11 +74,3 @@ mapped yet.</para> · 73 unmodified lines
74 </variablelist>74 </variablelist>
75 </refsect1>75 </refsect1>
76</refentry>76</refentry>
77
78<!--
79Local Variables:
80mode: sgml
81sgml-parent-document: "v4l2.sgml"
82indent-tabs-mode: nil
83End:
84-->
Documentation/DocBook/media/v4l/func-open.xml+0−8
@@ -111,11 +111,3 @@ system has been reached.</para> · 110 unmodified lines
111 </variablelist>111 </variablelist>
112 </refsect1>112 </refsect1>
113</refentry>113</refentry>
114
115<!--
116Local Variables:
117mode: sgml
118sgml-parent-document: "v4l2.sgml"
119indent-tabs-mode: nil
120End:
121-->
Documentation/DocBook/media/v4l/func-poll.xml+0−8
@@ -117,11 +117,3 @@ than <constant>OPEN_MAX</constant>.</para> · 116 unmodified lines
117 </variablelist>117 </variablelist>
118 </refsect1>118 </refsect1>
119</refentry>119</refentry>
120
121<!--
122Local Variables:
123mode: sgml
124sgml-parent-document: "v4l2.sgml"
125indent-tabs-mode: nil
126End:
127-->
Documentation/DocBook/media/v4l/func-read.xml+0−8
@@ -179,11 +179,3 @@ type of device.</para> · 178 unmodified lines
179 </variablelist>179 </variablelist>
180 </refsect1>180 </refsect1>
181</refentry>181</refentry>
182
183<!--
184Local Variables:
185mode: sgml
186sgml-parent-document: "v4l2.sgml"
187indent-tabs-mode: nil
188End:
189-->
Documentation/DocBook/media/v4l/func-select.xml+0−8
@@ -128,11 +128,3 @@ zero or greater than <constant>FD_SETSIZE</constant>.</para> · 127 unmodified lines
128 </variablelist>128 </variablelist>
129 </refsect1>129 </refsect1>
130</refentry>130</refentry>
131
132<!--
133Local Variables:
134mode: sgml
135sgml-parent-document: "v4l2.sgml"
136indent-tabs-mode: nil
137End:
138-->
Documentation/DocBook/media/v4l/func-write.xml+0−8
@@ -126,11 +126,3 @@ type of device.</para> · 125 unmodified lines
126 </variablelist>126 </variablelist>
127 </refsect1>127 </refsect1>
128</refentry>128</refentry>
129
130<!--
131Local Variables:
132mode: sgml
133sgml-parent-document: "v4l2.sgml"
134indent-tabs-mode: nil
135End:
136-->
Documentation/DocBook/media/v4l/io.xml+0−8
@@ -1282,11 +1282,3 @@ line, top field first. The bottom field is transmitted first.</entry> · 1281 unmodified lines
1282 </mediaobject>1282 </mediaobject>
1283 </figure>1283 </figure>
1284 </section>1284 </section>
1285
1286 <!--
1287Local Variables:
1288mode: sgml
1289sgml-parent-document: "v4l2.sgml"
1290indent-tabs-mode: nil
1291End:
1292 -->
Documentation/DocBook/media/v4l/libv4l.xml+0−7
@@ -158,10 +158,3 @@ still don't use libv4l.</para> · 157 unmodified lines
158 </section>158 </section>
159 159
160</section>160</section>
161<!--
162Local Variables:
163mode: sgml
164sgml-parent-document: "v4l2.sgml"
165indent-tabs-mode: nil
166End:
167-->
Documentation/DocBook/media/v4l/pixfmt-grey.xml+0−8
@@ -60,11 +60,3 @@ pixel image</title> · 59 unmodified lines
60 </example>60 </example>
61 </refsect1>61 </refsect1>
62 </refentry>62 </refentry>
63
64 <!--
65Local Variables:
66mode: sgml
67sgml-parent-document: "pixfmt.sgml"
68indent-tabs-mode: nil
69End:
70 -->
Documentation/DocBook/media/v4l/pixfmt-m420.xml+0−8
@@ -137,11 +137,3 @@ pixel image</title> · 136 unmodified lines
137 </example>137 </example>
138 </refsect1>138 </refsect1>
139 </refentry>139 </refentry>
140
141 <!--
142Local Variables:
143mode: sgml
144sgml-parent-document: "pixfmt.sgml"
145indent-tabs-mode: nil
146End:
147 -->
Documentation/DocBook/media/v4l/pixfmt-nv12.xml+0−8
@@ -141,11 +141,3 @@ pixel image</title> · 140 unmodified lines
141 </example>141 </example>
142 </refsect1>142 </refsect1>
143 </refentry>143 </refentry>
144
145 <!--
146Local Variables:
147mode: sgml
148sgml-parent-document: "pixfmt.sgml"
149indent-tabs-mode: nil
150End:
151 -->
Documentation/DocBook/media/v4l/pixfmt-nv12m.xml+0−8
@@ -144,11 +144,3 @@ CbCr plane has as many pad bytes after its rows.</para> · 143 unmodified lines
144 </example>144 </example>
145 </refsect1>145 </refsect1>
146 </refentry>146 </refentry>
147
148 <!--
149Local Variables:
150mode: sgml
151sgml-parent-document: "pixfmt.sgml"
152indent-tabs-mode: nil
153End:
154 -->
Documentation/DocBook/media/v4l/pixfmt-nv12mt.xml+0−8
@@ -64,11 +64,3 @@ layout of macroblocks</title> · 63 unmodified lines
64 </example>64 </example>
65 </refsect1>65 </refsect1>
66 </refentry>66 </refentry>
67
68 <!--
69Local Variables:
70mode: sgml
71sgml-parent-document: "pixfmt.sgml"
72indent-tabs-mode: nil
73End:
74 -->
Documentation/DocBook/media/v4l/pixfmt-nv16.xml+0−8
@@ -164,11 +164,3 @@ pixel image</title> · 163 unmodified lines
164 </example>164 </example>
165 </refsect1>165 </refsect1>
166 </refentry>166 </refentry>
167
168 <!--
169Local Variables:
170mode: sgml
171sgml-parent-document: "pixfmt.sgml"
172indent-tabs-mode: nil
173End:
174 -->
Documentation/DocBook/media/v4l/pixfmt-nv24.xml+121−0
@@ -0,0 +1,121 @@
1 <refentry>
2 <refmeta>
3 <refentrytitle>V4L2_PIX_FMT_NV24 ('NV24'), V4L2_PIX_FMT_NV42 ('NV42')</refentrytitle>
4 &manvol;
5 </refmeta>
6 <refnamediv>
7 <refname id="V4L2-PIX-FMT-NV24"><constant>V4L2_PIX_FMT_NV24</constant></refname>
8 <refname id="V4L2-PIX-FMT-NV42"><constant>V4L2_PIX_FMT_NV42</constant></refname>
9 <refpurpose>Formats with full horizontal and vertical
10chroma resolutions, also known as YUV 4:4:4. One luminance and one
11chrominance plane with alternating chroma samples as opposed to
12<constant>V4L2_PIX_FMT_YVU420</constant></refpurpose>
13 </refnamediv>
14 <refsect1>
15 <title>Description</title>
16
17 <para>These are two-plane versions of the YUV 4:4:4 format. The three
18 components are separated into two sub-images or planes. The Y plane is
19 first, with each Y sample stored in one byte per pixel. For
20 <constant>V4L2_PIX_FMT_NV24</constant>, a combined CbCr plane
21 immediately follows the Y plane in memory. The CbCr plane has the same
22 width and height, in pixels, as the Y plane (and the image). Each line
23 contains one CbCr pair per pixel, with each Cb and Cr sample stored in
24 one byte. <constant>V4L2_PIX_FMT_NV42</constant> is the same except that
25 the Cb and Cr samples are swapped, the CrCb plane starts with a Cr
26 sample.</para>
27
28 <para>If the Y plane has pad bytes after each row, then the CbCr plane
29 has twice as many pad bytes after its rows.</para>
30
31 <example>
32 <title><constant>V4L2_PIX_FMT_NV24</constant> 4 &times; 4
33pixel image</title>
34
35 <formalpara>
36 <title>Byte Order.</title>
37 <para>Each cell is one byte.
38 <informaltable frame="none">
39 <tgroup cols="9" align="center">
40 <colspec align="left" colwidth="2*" />
41 <tbody valign="top">
42 <row>
43 <entry>start&nbsp;+&nbsp;0:</entry>
44 <entry>Y'<subscript>00</subscript></entry>
45 <entry>Y'<subscript>01</subscript></entry>
46 <entry>Y'<subscript>02</subscript></entry>
47 <entry>Y'<subscript>03</subscript></entry>
48 </row>
49 <row>
50 <entry>start&nbsp;+&nbsp;4:</entry>
51 <entry>Y'<subscript>10</subscript></entry>
52 <entry>Y'<subscript>11</subscript></entry>
53 <entry>Y'<subscript>12</subscript></entry>
54 <entry>Y'<subscript>13</subscript></entry>
55 </row>
56 <row>
57 <entry>start&nbsp;+&nbsp;8:</entry>
58 <entry>Y'<subscript>20</subscript></entry>
59 <entry>Y'<subscript>21</subscript></entry>
60 <entry>Y'<subscript>22</subscript></entry>
61 <entry>Y'<subscript>23</subscript></entry>
62 </row>
63 <row>
64 <entry>start&nbsp;+&nbsp;12:</entry>
65 <entry>Y'<subscript>30</subscript></entry>
66 <entry>Y'<subscript>31</subscript></entry>
67 <entry>Y'<subscript>32</subscript></entry>
68 <entry>Y'<subscript>33</subscript></entry>
69 </row>
70 <row>
71 <entry>start&nbsp;+&nbsp;16:</entry>
72 <entry>Cb<subscript>00</subscript></entry>
73 <entry>Cr<subscript>00</subscript></entry>
74 <entry>Cb<subscript>01</subscript></entry>
75 <entry>Cr<subscript>01</subscript></entry>
76 <entry>Cb<subscript>02</subscript></entry>
77 <entry>Cr<subscript>02</subscript></entry>
78 <entry>Cb<subscript>03</subscript></entry>
79 <entry>Cr<subscript>03</subscript></entry>
80 </row>
81 <row>
82 <entry>start&nbsp;+&nbsp;24:</entry>
83 <entry>Cb<subscript>10</subscript></entry>
84 <entry>Cr<subscript>10</subscript></entry>
85 <entry>Cb<subscript>11</subscript></entry>
86 <entry>Cr<subscript>11</subscript></entry>
87 <entry>Cb<subscript>12</subscript></entry>
88 <entry>Cr<subscript>12</subscript></entry>
89 <entry>Cb<subscript>13</subscript></entry>
90 <entry>Cr<subscript>13</subscript></entry>
91 </row>
92 <row>
93 <entry>start&nbsp;+&nbsp;32:</entry>
94 <entry>Cb<subscript>20</subscript></entry>
95 <entry>Cr<subscript>20</subscript></entry>
96 <entry>Cb<subscript>21</subscript></entry>
97 <entry>Cr<subscript>21</subscript></entry>
98 <entry>Cb<subscript>22</subscript></entry>
99 <entry>Cr<subscript>22</subscript></entry>
100 <entry>Cb<subscript>23</subscript></entry>
101 <entry>Cr<subscript>23</subscript></entry>
102 </row>
103 <row>
104 <entry>start&nbsp;+&nbsp;40:</entry>
105 <entry>Cb<subscript>30</subscript></entry>
106 <entry>Cr<subscript>30</subscript></entry>
107 <entry>Cb<subscript>31</subscript></entry>
108 <entry>Cr<subscript>31</subscript></entry>
109 <entry>Cb<subscript>32</subscript></entry>
110 <entry>Cr<subscript>32</subscript></entry>
111 <entry>Cb<subscript>33</subscript></entry>
112 <entry>Cr<subscript>33</subscript></entry>
113 </row>
114 </tbody>
115 </tgroup>
116 </informaltable>
117 </para>
118 </formalpara>
119 </example>
120 </refsect1>
121 </refentry>
Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml+5−10
@@ -428,8 +428,11 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para> · 427 unmodified lines
428 <para>Bit 7 is the most significant bit. The value of a = alpha428 <para>Bit 7 is the most significant bit. The value of a = alpha
429bits is undefined when reading from the driver, ignored when writing429bits is undefined when reading from the driver, ignored when writing
430to the driver, except when alpha blending has been negotiated for a430to the driver, except when alpha blending has been negotiated for a
431<link linkend="overlay">Video Overlay</link> or <link431<link linkend="overlay">Video Overlay</link> or <link linkend="osd">
432linkend="osd">Video Output Overlay</link>.</para>432Video Output Overlay</link> or when alpha component has been configured
433for a <link linkend="capture">Video Capture</link> by means of <link
434linkend="v4l2-alpha-component"> <constant>V4L2_CID_ALPHA_COMPONENT
435</constant> </link> control.</para>
433 436
434 <example>437 <example>
435 <title><constant>V4L2_PIX_FMT_BGR24</constant> 4 &times; 4 pixel438 <title><constant>V4L2_PIX_FMT_BGR24</constant> 4 &times; 4 pixel
@@ -930,11 +933,3 @@ See &v4l-dvb; for access instructions.</para> · 494 unmodified lines
930 933
931 </refsect1>934 </refsect1>
932 </refentry>935 </refentry>
933
934 <!--
935Local Variables:
936mode: sgml
937sgml-parent-document: "pixfmt.sgml"
938indent-tabs-mode: nil
939End:
940 -->
Documentation/DocBook/media/v4l/pixfmt-packed-yuv.xml+0−8
@@ -234,11 +234,3 @@ linkend="osd">Video Output Overlay</link>.</para> · 233 unmodified lines
234 234
235 </refsect1>235 </refsect1>
236 </refentry>236 </refentry>
237
238 <!--
239Local Variables:
240mode: sgml
241sgml-parent-document: "pixfmt.sgml"
242indent-tabs-mode: nil
243End:
244 -->
Documentation/DocBook/media/v4l/pixfmt-sbggr16.xml+0−8
@@ -81,11 +81,3 @@ pixel image</title> · 80 unmodified lines
81 </example>81 </example>
82 </refsect1>82 </refsect1>
83</refentry>83</refentry>
84
85 <!--
86Local Variables:
87mode: sgml
88sgml-parent-document: "pixfmt.sgml"
89indent-tabs-mode: nil
90End:
91 -->
Documentation/DocBook/media/v4l/pixfmt-sbggr8.xml+0−8
@@ -65,11 +65,3 @@ pixel image</title> · 64 unmodified lines
65 </example>65 </example>
66 </refsect1>66 </refsect1>
67 </refentry>67 </refentry>
68
69 <!--
70Local Variables:
71mode: sgml
72sgml-parent-document: "pixfmt.sgml"
73indent-tabs-mode: nil
74End:
75 -->
Documentation/DocBook/media/v4l/pixfmt-sgbrg8.xml+0−8
@@ -65,11 +65,3 @@ pixel image</title> · 64 unmodified lines
65 </example>65 </example>
66 </refsect1>66 </refsect1>
67 </refentry>67 </refentry>
68
69 <!--
70Local Variables:
71mode: sgml
72sgml-parent-document: "pixfmt.sgml"
73indent-tabs-mode: nil
74End:
75 -->
Documentation/DocBook/media/v4l/pixfmt-sgrbg8.xml+0−8
@@ -65,11 +65,3 @@ columns and rows.</para> · 64 unmodified lines
65 </example>65 </example>
66 </refsect1>66 </refsect1>
67 </refentry>67 </refentry>
68
69 <!--
70Local Variables:
71mode: sgml
72sgml-parent-document: "pixfmt.sgml"
73indent-tabs-mode: nil
74End:
75 -->
Documentation/DocBook/media/v4l/pixfmt-uyvy.xml+0−8
@@ -118,11 +118,3 @@ pixel image</title> · 117 unmodified lines
118 </example>118 </example>
119 </refsect1>119 </refsect1>
120 </refentry>120 </refentry>
121
122 <!--
123Local Variables:
124mode: sgml
125sgml-parent-document: "pixfmt.sgml"
126indent-tabs-mode: nil
127End:
128 -->
Documentation/DocBook/media/v4l/pixfmt-vyuy.xml+0−8
@@ -118,11 +118,3 @@ pixel image</title> · 117 unmodified lines
118 </example>118 </example>
119 </refsect1>119 </refsect1>
120 </refentry>120 </refentry>
121
122 <!--
123Local Variables:
124mode: sgml
125sgml-parent-document: "pixfmt.sgml"
126indent-tabs-mode: nil
127End:
128 -->
Documentation/DocBook/media/v4l/pixfmt-y16.xml+0−8
@@ -79,11 +79,3 @@ pixel image</title> · 78 unmodified lines
79 </example>79 </example>
80 </refsect1>80 </refsect1>
81</refentry>81</refentry>
82
83 <!--
84Local Variables:
85mode: sgml
86sgml-parent-document: "pixfmt.sgml"
87indent-tabs-mode: nil
88End:
89 -->
Documentation/DocBook/media/v4l/pixfmt-y41p.xml+0−8
@@ -147,11 +147,3 @@ pixel image</title> · 146 unmodified lines
147 </example>147 </example>
148 </refsect1>148 </refsect1>
149 </refentry>149 </refentry>
150
151 <!--
152Local Variables:
153mode: sgml
154sgml-parent-document: "pixfmt.sgml"
155indent-tabs-mode: nil
156End:
157 -->
Documentation/DocBook/media/v4l/pixfmt-yuv410.xml+0−8
@@ -131,11 +131,3 @@ pixel image</title> · 130 unmodified lines
131 </example>131 </example>
132 </refsect1>132 </refsect1>
133 </refentry>133 </refentry>
134
135 <!--
136Local Variables:
137mode: sgml
138sgml-parent-document: "pixfmt.sgml"
139indent-tabs-mode: nil
140End:
141 -->
Documentation/DocBook/media/v4l/pixfmt-yuv411p.xml+0−8
@@ -145,11 +145,3 @@ pixel image</title> · 144 unmodified lines
145 </example>145 </example>
146 </refsect1>146 </refsect1>
147 </refentry>147 </refentry>
148
149 <!--
150Local Variables:
151mode: sgml
152sgml-parent-document: "v4l2.sgml"
153indent-tabs-mode: nil
154End:
155 -->
Documentation/DocBook/media/v4l/pixfmt-yuv420.xml+0−8
@@ -147,11 +147,3 @@ pixel image</title> · 146 unmodified lines
147 </example>147 </example>
148 </refsect1>148 </refsect1>
149 </refentry>149 </refentry>
150
151 <!--
152Local Variables:
153mode: sgml
154sgml-parent-document: "pixfmt.sgml"
155indent-tabs-mode: nil
156End:
157 -->
Documentation/DocBook/media/v4l/pixfmt-yuv420m.xml+0−8
@@ -152,11 +152,3 @@ pixel image</title> · 151 unmodified lines
152 </example>152 </example>
153 </refsect1>153 </refsect1>
154 </refentry>154 </refentry>
155
156 <!--
157Local Variables:
158mode: sgml
159sgml-parent-document: "pixfmt.sgml"
160indent-tabs-mode: nil
161End:
162 -->
Documentation/DocBook/media/v4l/pixfmt-yuv422p.xml+0−8
@@ -151,11 +151,3 @@ pixel image</title> · 150 unmodified lines
151 </example>151 </example>
152 </refsect1>152 </refsect1>
153 </refentry>153 </refentry>
154
155 <!--
156Local Variables:
157mode: sgml
158sgml-parent-document: "pixfmt.sgml"
159indent-tabs-mode: nil
160End:
161 -->
Documentation/DocBook/media/v4l/pixfmt-yuyv.xml+0−8
@@ -118,11 +118,3 @@ pixel image</title> · 117 unmodified lines
118 </example>118 </example>
119 </refsect1>119 </refsect1>
120 </refentry>120 </refentry>
121
122 <!--
123Local Variables:
124mode: sgml
125sgml-parent-document: "pixfmt.sgml"
126indent-tabs-mode: nil
127End:
128 -->
Documentation/DocBook/media/v4l/pixfmt-yvyu.xml+0−8
@@ -118,11 +118,3 @@ pixel image</title> · 117 unmodified lines
118 </example>118 </example>
119 </refsect1>119 </refsect1>
120 </refentry>120 </refentry>
121
122 <!--
123Local Variables:
124mode: sgml
125sgml-parent-document: "pixfmt.sgml"
126indent-tabs-mode: nil
127End:
128 -->
Documentation/DocBook/media/v4l/pixfmt.xml+6−8
@@ -714,6 +714,7 @@ information.</para> · 713 unmodified lines
714 &sub-nv12m;714 &sub-nv12m;
715 &sub-nv12mt;715 &sub-nv12mt;
716 &sub-nv16;716 &sub-nv16;
717 &sub-nv24;
717 &sub-m420;718 &sub-m420;
718 </section>719 </section>
719 720
@@ -890,6 +891,11 @@ kernel sources in the file <filename>Documentation/video4linux/cx2341x/README.hm · 170 unmodified lines
890 <entry>'M310'</entry>891 <entry>'M310'</entry>
891 <entry>Compressed BGGR Bayer format used by the gspca driver.</entry>892 <entry>Compressed BGGR Bayer format used by the gspca driver.</entry>
892 </row>893 </row>
894 <row id="V4L2-PIX-FMT-JL2005BCD">
895 <entry><constant>V4L2_PIX_FMT_JL2005BCD</constant></entry>
896 <entry>'JL20'</entry>
897 <entry>JPEG compressed RGGB Bayer format used by the gspca driver.</entry>
898 </row>
893 <row id="V4L2-PIX-FMT-OV511">899 <row id="V4L2-PIX-FMT-OV511">
894 <entry><constant>V4L2_PIX_FMT_OV511</constant></entry>900 <entry><constant>V4L2_PIX_FMT_OV511</constant></entry>
895 <entry>'O511'</entry>901 <entry>'O511'</entry>
@@ -997,11 +1003,3 @@ the other bits are set to 0.</entry> · 101 unmodified lines
997 </tgroup>1003 </tgroup>
998 </table>1004 </table>
999 </section>1005 </section>
1000
1001 <!--
1002Local Variables:
1003mode: sgml
1004sgml-parent-document: "v4l2.sgml"
1005indent-tabs-mode: nil
1006End:
1007 -->
Documentation/DocBook/media/v4l/selection-api.xml+321−0
@@ -0,0 +1,321 @@
1<section id="selection-api">
2
3 <title>Experimental API for cropping, composing and scaling</title>
4
5 <note>
6 <title>Experimental</title>
7
8 <para>This is an <link linkend="experimental">experimental</link>
9interface and may change in the future.</para>
10 </note>
11
12 <section>
13 <title>Introduction</title>
14
15<para>Some video capture devices can sample a subsection of a picture and
16shrink or enlarge it to an image of arbitrary size. Next, the devices can
17insert the image into larger one. Some video output devices can crop part of an
18input image, scale it up or down and insert it at an arbitrary scan line and
19horizontal offset into a video signal. We call these abilities cropping,
20scaling and composing.</para>
21
22<para>On a video <emphasis>capture</emphasis> device the source is a video
23signal, and the cropping target determine the area actually sampled. The sink
24is an image stored in a memory buffer. The composing area specifies which part
25of the buffer is actually written to by the hardware. </para>
26
27<para>On a video <emphasis>output</emphasis> device the source is an image in a
28memory buffer, and the cropping target is a part of an image to be shown on a
29display. The sink is the display or the graphics screen. The application may
30select the part of display where the image should be displayed. The size and
31position of such a window is controlled by the compose target.</para>
32
33<para>Rectangles for all cropping and composing targets are defined even if the
34device does supports neither cropping nor composing. Their size and position
35will be fixed in such a case. If the device does not support scaling then the
36cropping and composing rectangles have the same size.</para>
37
38 </section>
39
40 <section>
41 <title>Selection targets</title>
42
43 <figure id="sel-targets-capture">
44 <title>Cropping and composing targets</title>
45 <mediaobject>
46 <imageobject>
47 <imagedata fileref="selection.png" format="PNG" />
48 </imageobject>
49 <textobject>
50 <phrase>Targets used by a cropping, composing and scaling
51 process</phrase>
52 </textobject>
53 </mediaobject>
54 </figure>
55 </section>
56
57 <section>
58
59 <title>Configuration</title>
60
61<para>Applications can use the <link linkend="vidioc-g-selection">selection
62API</link> to select an area in a video signal or a buffer, and to query for
63default settings and hardware limits.</para>
64
65<para>Video hardware can have various cropping, composing and scaling
66limitations. It may only scale up or down, support only discrete scaling
67factors, or have different scaling abilities in the horizontal and vertical
68directions. Also it may not support scaling at all. At the same time the
69cropping/composing rectangles may have to be aligned, and both the source and
70the sink may have arbitrary upper and lower size limits. Therefore, as usual,
71drivers are expected to adjust the requested parameters and return the actual
72values selected. An application can control the rounding behaviour using <link
73linkend="v4l2-sel-flags"> constraint flags </link>.</para>
74
75 <section>
76
77 <title>Configuration of video capture</title>
78
79<para>See figure <xref linkend="sel-targets-capture" /> for examples of the
80selection targets available for a video capture device. It is recommended to
81configure the cropping targets before to the composing targets.</para>
82
83<para>The range of coordinates of the top left corner, width and height of
84areas that can be sampled is given by the <constant> V4L2_SEL_TGT_CROP_BOUNDS
85</constant> target. It is recommended for the driver developers to put the
86top/left corner at position <constant> (0,0) </constant>. The rectangle's
87coordinates are expressed in pixels.</para>
88
89<para>The top left corner, width and height of the source rectangle, that is
90the area actually sampled, is given by the <constant> V4L2_SEL_TGT_CROP_ACTIVE
91</constant> target. It uses the same coordinate system as <constant>
92V4L2_SEL_TGT_CROP_BOUNDS </constant>. The active cropping area must lie
93completely inside the capture boundaries. The driver may further adjust the
94requested size and/or position according to hardware limitations.</para>
95
96<para>Each capture device has a default source rectangle, given by the
97<constant> V4L2_SEL_TGT_CROP_DEFAULT </constant> target. This rectangle shall
98over what the driver writer considers the complete picture. Drivers shall set
99the active crop rectangle to the default when the driver is first loaded, but
100not later.</para>
101
102<para>The composing targets refer to a memory buffer. The limits of composing
103coordinates are obtained using <constant> V4L2_SEL_TGT_COMPOSE_BOUNDS
104</constant>. All coordinates are expressed in pixels. The rectangle's top/left
105corner must be located at position <constant> (0,0) </constant>. The width and
106height are equal to the image size set by <constant> VIDIOC_S_FMT </constant>.
107</para>
108
109<para>The part of a buffer into which the image is inserted by the hardware is
110controlled by the <constant> V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> target.
111The rectangle's coordinates are also expressed in the same coordinate system as
112the bounds rectangle. The composing rectangle must lie completely inside bounds
113rectangle. The driver must adjust the composing rectangle to fit to the
114bounding limits. Moreover, the driver can perform other adjustments according
115to hardware limitations. The application can control rounding behaviour using
116<link linkend="v4l2-sel-flags"> constraint flags </link>.</para>
117
118<para>For capture devices the default composing rectangle is queried using
119<constant> V4L2_SEL_TGT_COMPOSE_DEFAULT </constant>. It is usually equal to the
120bounding rectangle.</para>
121
122<para>The part of a buffer that is modified by the hardware is given by
123<constant> V4L2_SEL_TGT_COMPOSE_PADDED </constant>. It contains all pixels
124defined using <constant> V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> plus all
125padding data modified by hardware during insertion process. All pixels outside
126this rectangle <emphasis>must not</emphasis> be changed by the hardware. The
127content of pixels that lie inside the padded area but outside active area is
128undefined. The application can use the padded and active rectangles to detect
129where the rubbish pixels are located and remove them if needed.</para>
130
131 </section>
132
133 <section>
134
135 <title>Configuration of video output</title>
136
137<para>For output devices targets and ioctls are used similarly to the video
138capture case. The <emphasis> composing </emphasis> rectangle refers to the
139insertion of an image into a video signal. The cropping rectangles refer to a
140memory buffer. It is recommended to configure the composing targets before to
141the cropping targets.</para>
142
143<para>The cropping targets refer to the memory buffer that contains an image to
144be inserted into a video signal or graphical screen. The limits of cropping
145coordinates are obtained using <constant> V4L2_SEL_TGT_CROP_BOUNDS </constant>.
146All coordinates are expressed in pixels. The top/left corner is always point
147<constant> (0,0) </constant>. The width and height is equal to the image size
148specified using <constant> VIDIOC_S_FMT </constant> ioctl.</para>
149
150<para>The top left corner, width and height of the source rectangle, that is
151the area from which image date are processed by the hardware, is given by the
152<constant> V4L2_SEL_TGT_CROP_ACTIVE </constant>. Its coordinates are expressed
153in in the same coordinate system as the bounds rectangle. The active cropping
154area must lie completely inside the crop boundaries and the driver may further
155adjust the requested size and/or position according to hardware
156limitations.</para>
157
158<para>For output devices the default cropping rectangle is queried using
159<constant> V4L2_SEL_TGT_CROP_DEFAULT </constant>. It is usually equal to the
160bounding rectangle.</para>
161
162<para>The part of a video signal or graphics display where the image is
163inserted by the hardware is controlled by <constant>
164V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> target. The rectangle's coordinates
165are expressed in pixels. The composing rectangle must lie completely inside the
166bounds rectangle. The driver must adjust the area to fit to the bounding
167limits. Moreover, the driver can perform other adjustments according to
168hardware limitations. </para>
169
170<para>The device has a default composing rectangle, given by the <constant>
171V4L2_SEL_TGT_COMPOSE_DEFAULT </constant> target. This rectangle shall cover what
172the driver writer considers the complete picture. It is recommended for the
173driver developers to put the top/left corner at position <constant> (0,0)
174</constant>. Drivers shall set the active composing rectangle to the default
175one when the driver is first loaded.</para>
176
177<para>The devices may introduce additional content to video signal other than
178an image from memory buffers. It includes borders around an image. However,
179such a padded area is driver-dependent feature not covered by this document.
180Driver developers are encouraged to keep padded rectangle equal to active one.
181The padded target is accessed by the <constant> V4L2_SEL_TGT_COMPOSE_PADDED
182</constant> identifier. It must contain all pixels from the <constant>
183V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> target.</para>
184
185 </section>
186
187 <section>
188
189 <title>Scaling control.</title>
190
191<para>An application can detect if scaling is performed by comparing the width
192and the height of rectangles obtained using <constant> V4L2_SEL_TGT_CROP_ACTIVE
193</constant> and <constant> V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> targets. If
194these are not equal then the scaling is applied. The application can compute
195the scaling ratios using these values.</para>
196
197 </section>
198
199 </section>
200
201 <section>
202
203 <title>Comparison with old cropping API.</title>
204
205<para>The selection API was introduced to cope with deficiencies of previous
206<link linkend="crop"> API </link>, that was designed to control simple capture
207devices. Later the cropping API was adopted by video output drivers. The ioctls
208are used to select a part of the display were the video signal is inserted. It
209should be considered as an API abuse because the described operation is
210actually the composing. The selection API makes a clear distinction between
211composing and cropping operations by setting the appropriate targets. The V4L2
212API lacks any support for composing to and cropping from an image inside a
213memory buffer. The application could configure a capture device to fill only a
214part of an image by abusing V4L2 API. Cropping a smaller image from a larger
215one is achieved by setting the field <structfield>
216&v4l2-pix-format;::bytesperline </structfield>. Introducing an image offsets
217could be done by modifying field <structfield> &v4l2-buffer;::m:userptr
218</structfield> before calling <constant> VIDIOC_QBUF </constant>. Those
219operations should be avoided because they are not portable (endianness), and do
220not work for macroblock and Bayer formats and mmap buffers. The selection API
221deals with configuration of buffer cropping/composing in a clear, intuitive and
222portable way. Next, with the selection API the concepts of the padded target
223and constraints flags are introduced. Finally, <structname> &v4l2-crop;
224</structname> and <structname> &v4l2-cropcap; </structname> have no reserved
225fields. Therefore there is no way to extend their functionality. The new
226<structname> &v4l2-selection; </structname> provides a lot of place for future
227extensions. Driver developers are encouraged to implement only selection API.
228The former cropping API would be simulated using the new one. </para>
229
230 </section>
231
232 <section>
233 <title>Examples</title>
234 <example>
235 <title>Resetting the cropping parameters</title>
236
237 <para>(A video capture device is assumed; change <constant>
238V4L2_BUF_TYPE_VIDEO_CAPTURE </constant> for other devices; change target to
239<constant> V4L2_SEL_TGT_COMPOSE_* </constant> family to configure composing
240area)</para>
241
242 <programlisting>
243
244 &v4l2-selection; sel = {
245 .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
246 .target = V4L2_SEL_TGT_CROP_DEFAULT,
247 };
248 ret = ioctl(fd, &VIDIOC-G-SELECTION;, &amp;sel);
249 if (ret)
250 exit(-1);
251 sel.target = V4L2_SEL_TGT_CROP_ACTIVE;
252 ret = ioctl(fd, &VIDIOC-S-SELECTION;, &amp;sel);
253 if (ret)
254 exit(-1);
255
256 </programlisting>
257 </example>
258
259 <example>
260 <title>Simple downscaling</title>
261 <para>Setting a composing area on output of size of <emphasis> at most
262</emphasis> half of limit placed at a center of a display.</para>
263 <programlisting>
264
265 &v4l2-selection; sel = {
266 .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
267 .target = V4L2_SEL_TGT_COMPOSE_BOUNDS,
268 };
269 struct v4l2_rect r;
270
271 ret = ioctl(fd, &VIDIOC-G-SELECTION;, &amp;sel);
272 if (ret)
273 exit(-1);
274 /* setting smaller compose rectangle */
275 r.width = sel.r.width / 2;
276 r.height = sel.r.height / 2;
277 r.left = sel.r.width / 4;
278 r.top = sel.r.height / 4;
279 sel.r = r;
280 sel.target = V4L2_SEL_TGT_COMPOSE_ACTIVE;
281 sel.flags = V4L2_SEL_FLAG_LE;
282 ret = ioctl(fd, &VIDIOC-S-SELECTION;, &amp;sel);
283 if (ret)
284 exit(-1);
285
286 </programlisting>
287 </example>
288
289 <example>
290 <title>Querying for scaling factors</title>
291 <para>A video output device is assumed; change <constant>
292V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> for other devices</para>
293 <programlisting>
294
295 &v4l2-selection; compose = {
296 .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
297 .target = V4L2_SEL_TGT_COMPOSE_ACTIVE,
298 };
299 &v4l2-selection; crop = {
300 .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
301 .target = V4L2_SEL_TGT_CROP_ACTIVE,
302 };
303 double hscale, vscale;
304
305 ret = ioctl(fd, &VIDIOC-G-SELECTION;, &amp;compose);
306 if (ret)
307 exit(-1);
308 ret = ioctl(fd, &VIDIOC-G-SELECTION;, &amp;crop);
309 if (ret)
310 exit(-1);
311
312 /* computing scaling factors */
313 hscale = (double)compose.r.width / crop.r.width;
314 vscale = (double)compose.r.height / crop.r.height;
315
316 </programlisting>
317 </example>
318
319 </section>
320
321</section>
Documentation/DocBook/media/v4l/v4l2.xml+1−0
@@ -501,6 +501,7 @@ and discussions on the V4L mailing list.</revremark> · 500 unmodified lines
501 &sub-g-output;501 &sub-g-output;
502 &sub-g-parm;502 &sub-g-parm;
503 &sub-g-priority;503 &sub-g-priority;
504 &sub-g-selection;
504 &sub-g-sliced-vbi-cap;505 &sub-g-sliced-vbi-cap;
505 &sub-g-std;506 &sub-g-std;
506 &sub-g-tuner;507 &sub-g-tuner;
Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml+0−8
@@ -228,11 +228,3 @@ is out of bounds.</para> · 227 unmodified lines
228 </variablelist>228 </variablelist>
229 </refsect1>229 </refsect1>
230</refentry>230</refentry>
231
232<!--
233Local Variables:
234mode: sgml
235sgml-parent-document: "v4l2.sgml"
236indent-tabs-mode: nil
237End:
238-->
Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml+0−8
@@ -156,11 +156,3 @@ bounds.</para> · 155 unmodified lines
156 </variablelist>156 </variablelist>
157 </refsect1>157 </refsect1>
158</refentry>158</refentry>
159
160<!--
161Local Variables:
162mode: sgml
163sgml-parent-document: "v4l2.sgml"
164indent-tabs-mode: nil
165End:
166-->
Documentation/DocBook/media/v4l/vidioc-enuminput.xml+0−8
@@ -311,11 +311,3 @@ out of bounds.</para> · 310 unmodified lines
311 </variablelist>311 </variablelist>
312 </refsect1>312 </refsect1>
313</refentry>313</refentry>
314
315<!--
316Local Variables:
317mode: sgml
318sgml-parent-document: "v4l2.sgml"
319indent-tabs-mode: nil
320End:
321-->
Documentation/DocBook/media/v4l/vidioc-enumoutput.xml+0−8
@@ -196,11 +196,3 @@ is out of bounds.</para> · 195 unmodified lines
196 </variablelist>196 </variablelist>
197 </refsect1>197 </refsect1>
198</refentry>198</refentry>
199
200<!--
201Local Variables:
202mode: sgml
203sgml-parent-document: "v4l2.sgml"
204indent-tabs-mode: nil
205End:
206-->
Documentation/DocBook/media/v4l/vidioc-enumstd.xml+0−8
@@ -381,11 +381,3 @@ is out of bounds.</para> · 380 unmodified lines
381 </variablelist>381 </variablelist>
382 </refsect1>382 </refsect1>
383</refentry>383</refentry>
384
385<!--
386Local Variables:
387mode: sgml
388sgml-parent-document: "v4l2.sgml"
389indent-tabs-mode: nil
390End:
391-->
Documentation/DocBook/media/v4l/vidioc-g-ctrl.xml+0−8
@@ -127,11 +127,3 @@ this control belongs to.</para> · 126 unmodified lines
127 </variablelist>127 </variablelist>
128 </refsect1>128 </refsect1>
129</refentry>129</refentry>
130
131<!--
132Local Variables:
133mode: sgml
134sgml-parent-document: "v4l2.sgml"
135indent-tabs-mode: nil
136End:
137-->
Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml+13−12
@@ -183,7 +183,12 @@ applications must set the array to zero.</entry> · 182 unmodified lines
183 <entry>__u32</entry>183 <entry>__u32</entry>
184 <entry><structfield>ctrl_class</structfield></entry>184 <entry><structfield>ctrl_class</structfield></entry>
185 <entry>The control class to which all controls belong, see185 <entry>The control class to which all controls belong, see
186<xref linkend="ctrl-class" />.</entry>186<xref linkend="ctrl-class" />. Drivers that use a kernel framework for handling
187controls will also accept a value of 0 here, meaning that the controls can
188belong to any control class. Whether drivers support this can be tested by setting
189<structfield>ctrl_class</structfield> to 0 and calling <constant>VIDIOC_TRY_EXT_CTRLS</constant>
190with a <structfield>count</structfield> of 0. If that succeeds, then the driver
191supports this feature.</entry>
187 </row>192 </row>
188 <row>193 <row>
189 <entry>__u32</entry>194 <entry>__u32</entry>
@@ -194,10 +199,13 @@ also be zero.</entry> · 4 unmodified lines
194 <row>199 <row>
195 <entry>__u32</entry>200 <entry>__u32</entry>
196 <entry><structfield>error_idx</structfield></entry>201 <entry><structfield>error_idx</structfield></entry>
197 <entry>Set by the driver in case of an error. It is the202 <entry>Set by the driver in case of an error. If it is equal
198index of the control causing the error or equal to 'count' when the203to <structfield>count</structfield>, then no actual changes were made to
199error is not associated with a particular control. Undefined when the204controls. In other words, the error was not associated with setting a particular
200ioctl returns 0 (success).</entry>205control. If it is another value, then only the controls up to <structfield>error_idx-1</structfield>
206were modified and control <structfield>error_idx</structfield> is the one that
207caused the error. The <structfield>error_idx</structfield> value is undefined
208if the ioctl returned 0 (success).</entry>
201 </row>209 </row>
202 <row>210 <row>
203 <entry>__u32</entry>211 <entry>__u32</entry>
@@ -312,10 +320,3 @@ to store the payload and this error code is returned.</para> · 108 unmodified lines
312 </refsect1>320 </refsect1>
313</refentry>321</refentry>
314 322
315<!--
316Local Variables:
317mode: sgml
318sgml-parent-document: "v4l2.sgml"
319indent-tabs-mode: nil
320End:
321-->
Documentation/DocBook/media/v4l/vidioc-g-fbuf.xml+21−14
@@ -295,7 +295,8 @@ set this field to zero.</entry> · 294 unmodified lines
295 <entry>The device is capable of non-destructive overlays.295 <entry>The device is capable of non-destructive overlays.
296When the driver clears this flag, only destructive overlays are296When the driver clears this flag, only destructive overlays are
297supported. There are no drivers yet which support both destructive and297supported. There are no drivers yet which support both destructive and
298non-destructive overlays.</entry>298non-destructive overlays. Video Output Overlays are in practice always
299non-destructive.</entry>
299 </row>300 </row>
300 <row>301 <row>
301 <entry><constant>V4L2_FBUF_CAP_CHROMAKEY</constant></entry>302 <entry><constant>V4L2_FBUF_CAP_CHROMAKEY</constant></entry>
@@ -339,8 +340,8 @@ blending makes no sense for destructive overlays.</entry> · 37 unmodified lines
339 <row>340 <row>
340 <entry><constant>V4L2_FBUF_CAP_SRC_CHROMAKEY</constant></entry>341 <entry><constant>V4L2_FBUF_CAP_SRC_CHROMAKEY</constant></entry>
341 <entry>0x0080</entry>342 <entry>0x0080</entry>
342 <entry>The device supports Source Chroma-keying. Framebuffer pixels343 <entry>The device supports Source Chroma-keying. Video pixels
343with the chroma-key colors are replaced by video pixels, which is exactly opposite of344with the chroma-key colors are replaced by framebuffer pixels, which is exactly opposite of
344<constant>V4L2_FBUF_CAP_CHROMAKEY</constant></entry>345<constant>V4L2_FBUF_CAP_CHROMAKEY</constant></entry>
345 </row>346 </row>
346 </tbody>347 </tbody>
@@ -356,21 +357,27 @@ with the chroma-key colors are replaced by video pixels, which is exactly opposi · 9 unmodified lines
356 <entry><constant>V4L2_FBUF_FLAG_PRIMARY</constant></entry>357 <entry><constant>V4L2_FBUF_FLAG_PRIMARY</constant></entry>
357 <entry>0x0001</entry>358 <entry>0x0001</entry>
358 <entry>The framebuffer is the primary graphics surface.359 <entry>The framebuffer is the primary graphics surface.
359In other words, the overlay is destructive. [?]</entry>360In other words, the overlay is destructive. This flag is typically set by any
361driver that doesn't have the <constant>V4L2_FBUF_CAP_EXTERNOVERLAY</constant>
362capability and it is cleared otherwise.</entry>
360 </row>363 </row>
361 <row>364 <row>
362 <entry><constant>V4L2_FBUF_FLAG_OVERLAY</constant></entry>365 <entry><constant>V4L2_FBUF_FLAG_OVERLAY</constant></entry>
363 <entry>0x0002</entry>366 <entry>0x0002</entry>
364 <entry>The frame buffer is an overlay surface the same367 <entry>If this flag is set for a video capture device, then the
365size as the capture. [?]</entry>368driver will set the initial overlay size to cover the full framebuffer size,
366 </row>369otherwise the existing overlay size (as set by &VIDIOC-S-FMT;) will be used.
367 <row>370
368 <entry spanname="hspan">The purpose of371Only one video capture driver (bttv) supports this flag. The use of this flag
369<constant>V4L2_FBUF_FLAG_PRIMARY</constant> and372for capture devices is deprecated. There is no way to detect which drivers
370<constant>V4L2_FBUF_FLAG_OVERLAY</constant> was never quite clear.373support this flag, so the only reliable method of setting the overlay size is
371Most drivers seem to ignore these flags. For compatibility with the374through &VIDIOC-S-FMT;.
372<wordasword>bttv</wordasword> driver applications should set the375
373<constant>V4L2_FBUF_FLAG_OVERLAY</constant> flag.</entry>376If this flag is set for a video output device, then the video output overlay
377window is relative to the top-left corner of the framebuffer and restricted
378to the size of the framebuffer. If it is cleared, then the video output
379overlay window is relative to the video output display.
380 </entry>
374 </row>381 </row>
375 <row>382 <row>
376 <entry><constant>V4L2_FBUF_FLAG_CHROMAKEY</constant></entry>383 <entry><constant>V4L2_FBUF_FLAG_CHROMAKEY</constant></entry>
Documentation/DocBook/media/v4l/vidioc-g-frequency.xml+5−10
@@ -98,8 +98,11 @@ the &v4l2-output; <structfield>modulator</structfield> field and the · 97 unmodified lines
98 <entry>&v4l2-tuner-type;</entry>98 <entry>&v4l2-tuner-type;</entry>
99 <entry><structfield>type</structfield></entry>99 <entry><structfield>type</structfield></entry>
100 <entry>The tuner type. This is the same value as in the100 <entry>The tuner type. This is the same value as in the
101&v4l2-tuner; <structfield>type</structfield> field. The field is not101&v4l2-tuner; <structfield>type</structfield> field. The type must be set
102applicable to modulators, &ie; ignored by drivers.</entry>102to <constant>V4L2_TUNER_RADIO</constant> for <filename>/dev/radioX</filename>
103device nodes, and to <constant>V4L2_TUNER_ANALOG_TV</constant>
104for all others. The field is not applicable to modulators, &ie; ignored
105by drivers.</entry>
103 </row>106 </row>
104 <row>107 <row>
105 <entry>__u32</entry>108 <entry>__u32</entry>
@@ -135,11 +138,3 @@ wrong.</para> · 29 unmodified lines
135 </variablelist>138 </variablelist>
136 </refsect1>139 </refsect1>
137</refentry>140</refentry>
138
139<!--
140Local Variables:
141mode: sgml
142sgml-parent-document: "v4l2.sgml"
143indent-tabs-mode: nil
144End:
145-->
Documentation/DocBook/media/v4l/vidioc-g-input.xml+2−2
@@ -61,8 +61,8 @@ desired input in an integer and call the · 60 unmodified lines
61<constant>VIDIOC_S_INPUT</constant> ioctl with a pointer to this61<constant>VIDIOC_S_INPUT</constant> ioctl with a pointer to this
62integer. Side effects are possible. For example inputs may support62integer. Side effects are possible. For example inputs may support
63different video standards, so the driver may implicitly switch the63different video standards, so the driver may implicitly switch the
64current standard. It is good practice to select an input before64current standard. Because of these possible side effects applications
65querying or negotiating any other parameters.</para>65must select an input before querying or negotiating any other parameters.</para>
66 66
67 <para>Information about video inputs is available using the67 <para>Information about video inputs is available using the
68&VIDIOC-ENUMINPUT; ioctl.</para>68&VIDIOC-ENUMINPUT; ioctl.</para>
Documentation/DocBook/media/v4l/vidioc-g-modulator.xml+0−8
@@ -236,11 +236,3 @@ mode.</entry> · 235 unmodified lines
236 </variablelist>236 </variablelist>
237 </refsect1>237 </refsect1>
238</refentry>238</refentry>
239
240<!--
241Local Variables:
242mode: sgml
243sgml-parent-document: "v4l2.sgml"
244indent-tabs-mode: nil
245End:
246-->
Documentation/DocBook/media/v4l/vidioc-g-output.xml+3−2
@@ -61,8 +61,9 @@ desired output in an integer and call the · 60 unmodified lines
61<constant>VIDIOC_S_OUTPUT</constant> ioctl with a pointer to this integer.61<constant>VIDIOC_S_OUTPUT</constant> ioctl with a pointer to this integer.
62Side effects are possible. For example outputs may support different62Side effects are possible. For example outputs may support different
63video standards, so the driver may implicitly switch the current63video standards, so the driver may implicitly switch the current
64standard. It is good practice to select an output before querying or64standard.
65negotiating any other parameters.</para>65standard. Because of these possible side effects applications
66must select an output before querying or negotiating any other parameters.</para>
66 67
67 <para>Information about video outputs is available using the68 <para>Information about video outputs is available using the
68&VIDIOC-ENUMOUTPUT; ioctl.</para>69&VIDIOC-ENUMOUTPUT; ioctl.</para>
Documentation/DocBook/media/v4l/vidioc-g-priority.xml+0−8
@@ -133,11 +133,3 @@ priority.</para> · 132 unmodified lines
133 </variablelist>133 </variablelist>
134 </refsect1>134 </refsect1>
135</refentry>135</refentry>
136
137<!--
138Local Variables:
139mode: sgml
140sgml-parent-document: "v4l2.sgml"
141indent-tabs-mode: nil
142End:
143-->
Documentation/DocBook/media/v4l/vidioc-g-selection.xml+304−0
@@ -0,0 +1,304 @@
1<refentry id="vidioc-g-selection">
2
3 <refmeta>
4 <refentrytitle>ioctl VIDIOC_G_SELECTION, VIDIOC_S_SELECTION</refentrytitle>
5 &manvol;
6 </refmeta>
7
8 <refnamediv>
9 <refname>VIDIOC_G_SELECTION</refname>
10 <refname>VIDIOC_S_SELECTION</refname>
11 <refpurpose>Get or set one of the selection rectangles</refpurpose>
12 </refnamediv>
13
14 <refsynopsisdiv>
15 <funcsynopsis>
16 <funcprototype>
17 <funcdef>int <function>ioctl</function></funcdef>
18 <paramdef>int <parameter>fd</parameter></paramdef>
19 <paramdef>int <parameter>request</parameter></paramdef>
20 <paramdef>struct v4l2_selection *<parameter>argp</parameter></paramdef>
21 </funcprototype>
22 </funcsynopsis>
23 </refsynopsisdiv>
24
25 <refsect1>
26 <title>Arguments</title>
27
28 <variablelist>
29 <varlistentry>
30 <term><parameter>fd</parameter></term>
31 <listitem>
32 <para>&fd;</para>
33 </listitem>
34 </varlistentry>
35 <varlistentry>
36 <term><parameter>request</parameter></term>
37 <listitem>
38 <para>VIDIOC_G_SELECTION, VIDIOC_S_SELECTION</para>
39 </listitem>
40 </varlistentry>
41 <varlistentry>
42 <term><parameter>argp</parameter></term>
43 <listitem>
44 <para></para>
45 </listitem>
46 </varlistentry>
47 </variablelist>
48 </refsect1>
49
50 <refsect1>
51 <title>Description</title>
52
53 <note>
54 <title>Experimental</title>
55 <para>This is an <link linkend="experimental"> experimental </link>
56 interface and may change in the future.</para>
57 </note>
58
59 <para>The ioctls are used to query and configure selection rectangles.</para>
60
61<para> To query the cropping (composing) rectangle set <structfield>
62&v4l2-selection;::type </structfield> to the respective buffer type. Do not
63use multiplanar buffers. Use <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE
64</constant> instead of <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE
65</constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of
66<constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is
67setting <structfield> &v4l2-selection;::target </structfield> to value
68<constant> V4L2_SEL_TGT_CROP_ACTIVE </constant> (<constant>
69V4L2_SEL_TGT_COMPOSE_ACTIVE </constant>). Please refer to table <xref
70linkend="v4l2-sel-target" /> or <xref linkend="selection-api" /> for additional
71targets. Fields <structfield> &v4l2-selection;::flags </structfield> and
72<structfield> &v4l2-selection;::reserved </structfield> are ignored and they
73must be filled with zeros. The driver fills the rest of the structure or
74returns &EINVAL; if incorrect buffer type or target was used. If cropping
75(composing) is not supported then the active rectangle is not mutable and it is
76always equal to the bounds rectangle. Finally, structure <structfield>
77&v4l2-selection;::r </structfield> is filled with the current cropping
78(composing) coordinates. The coordinates are expressed in driver-dependent
79units. The only exception are rectangles for images in raw formats, whose
80coordinates are always expressed in pixels. </para>
81
82<para> To change the cropping (composing) rectangle set <structfield>
83&v4l2-selection;::type </structfield> to the respective buffer type. Do not
84use multiplanar buffers. Use <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE
85</constant> instead of <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE
86</constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of
87<constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is
88setting <structfield> &v4l2-selection;::target </structfield> to value
89<constant> V4L2_SEL_TGT_CROP_ACTIVE </constant> (<constant>
90V4L2_SEL_TGT_COMPOSE_ACTIVE </constant>). Please refer to table <xref
91linkend="v4l2-sel-target" /> or <xref linkend="selection-api" /> for additional
92targets. Set desired active area into the field <structfield>
93&v4l2-selection;::r </structfield>. Field <structfield>
94&v4l2-selection;::reserved </structfield> is ignored and must be filled with
95zeros. The driver may adjust the rectangle coordinates. An application may
96introduce constraints to control rounding behaviour. Set the field
97<structfield> &v4l2-selection;::flags </structfield> to one of values:
98
99<itemizedlist>
100 <listitem>
101<para><constant>0</constant> - The driver can adjust the rectangle size freely
102and shall choose a crop/compose rectangle as close as possible to the requested
103one.</para>
104 </listitem>
105 <listitem>
106<para><constant>V4L2_SEL_FLAG_GE</constant> - The driver is not allowed to
107shrink the rectangle. The original rectangle must lay inside the adjusted
108one.</para>
109 </listitem>
110 <listitem>
111<para><constant>V4L2_SEL_FLAG_LE</constant> - The driver is not allowed to
112enlarge the rectangle. The adjusted rectangle must lay inside the original
113one.</para>
114 </listitem>
115 <listitem>
116<para><constant>V4L2_SEL_FLAG_GE | V4L2_SEL_FLAG_LE</constant> - The driver
117must choose the size exactly the same as in the requested rectangle.</para>
118 </listitem>
119</itemizedlist>
120
121Please refer to <xref linkend="sel-const-adjust" />.
122
123</para>
124
125<para> The driver may have to adjusts the requested dimensions against hardware
126limits and other parts as the pipeline, i.e. the bounds given by the
127capture/output window or TV display. The closest possible values of horizontal
128and vertical offset and sizes are chosen according to following priority:
129
130<orderedlist>
131 <listitem>
132 <para>Satisfy constraints from <structfield>&v4l2-selection;::flags</structfield>.</para>
133 </listitem>
134 <listitem>
135 <para>Adjust width, height, left, and top to hardware limits and alignments.</para>
136 </listitem>
137 <listitem>
138 <para>Keep center of adjusted rectangle as close as possible to the original one.</para>
139 </listitem>
140 <listitem>
141 <para>Keep width and height as close as possible to original ones.</para>
142 </listitem>
143 <listitem>
144 <para>Keep horizontal and vertical offset as close as possible to original ones.</para>
145 </listitem>
146</orderedlist>
147
148On success the field <structfield> &v4l2-selection;::r </structfield> contains
149the adjusted rectangle. When the parameters are unsuitable the application may
150modify the cropping (composing) or image parameters and repeat the cycle until
151satisfactory parameters have been negotiated. If constraints flags have to be
152violated at then ERANGE is returned. The error indicates that <emphasis> there
153exist no rectangle </emphasis> that satisfies the constraints.</para>
154
155 </refsect1>
156
157 <refsect1>
158 <table frame="none" pgwide="1" id="v4l2-sel-target">
159 <title>Selection targets.</title>
160 <tgroup cols="3">
161 &cs-def;
162 <tbody valign="top">
163 <row>
164 <entry><constant>V4L2_SEL_TGT_CROP_ACTIVE</constant></entry>
165 <entry>0</entry>
166 <entry>area that is currently cropped by hardware</entry>
167 </row>
168 <row>
169 <entry><constant>V4L2_SEL_TGT_CROP_DEFAULT</constant></entry>
170 <entry>1</entry>
171 <entry>suggested cropping rectangle that covers the "whole picture"</entry>
172 </row>
173 <row>
174 <entry><constant>V4L2_SEL_TGT_CROP_BOUNDS</constant></entry>
175 <entry>2</entry>
176 <entry>limits for the cropping rectangle</entry>
177 </row>
178 <row>
179 <entry><constant>V4L2_SEL_TGT_COMPOSE_ACTIVE</constant></entry>
180 <entry>256</entry>
181 <entry>area to which data are composed by hardware</entry>
182 </row>
183 <row>
184 <entry><constant>V4L2_SEL_TGT_COMPOSE_DEFAULT</constant></entry>
185 <entry>257</entry>
186 <entry>suggested composing rectangle that covers the "whole picture"</entry>
187 </row>
188 <row>
189 <entry><constant>V4L2_SEL_TGT_COMPOSE_BOUNDS</constant></entry>
190 <entry>258</entry>
191 <entry>limits for the composing rectangle</entry>
192 </row>
193 <row>
194 <entry><constant>V4L2_SEL_TGT_COMPOSE_PADDED</constant></entry>
195 <entry>259</entry>
196 <entry>the active area and all padding pixels that are inserted or modified by the hardware</entry>
197 </row>
198 </tbody>
199 </tgroup>
200 </table>
201 </refsect1>
202
203 <refsect1>
204 <table frame="none" pgwide="1" id="v4l2-sel-flags">
205 <title>Selection constraint flags</title>
206 <tgroup cols="3">
207 &cs-def;
208 <tbody valign="top">
209 <row>
210 <entry><constant>V4L2_SEL_FLAG_GE</constant></entry>
211 <entry>0x00000001</entry>
212 <entry>indicate that adjusted rectangle must contain a rectangle from <structfield>&v4l2-selection;::r</structfield></entry>
213 </row>
214 <row>
215 <entry><constant>V4L2_SEL_FLAG_LE</constant></entry>
216 <entry>0x00000002</entry>
217 <entry>indicate that adjusted rectangle must be inside a rectangle from <structfield>&v4l2-selection;::r</structfield></entry>
218 </row>
219 </tbody>
220 </tgroup>
221 </table>
222 </refsect1>
223
224 <section>
225 <figure id="sel-const-adjust">
226 <title>Size adjustments with constraint flags.</title>
227 <mediaobject>
228 <imageobject>
229 <imagedata fileref="constraints.png" format="PNG" />
230 </imageobject>
231 <textobject>
232 <phrase>Behaviour of rectangle adjustment for different constraint
233 flags.</phrase>
234 </textobject>
235 </mediaobject>
236 </figure>
237 </section>
238
239 <refsect1>
240 <table pgwide="1" frame="none" id="v4l2-selection">
241 <title>struct <structname>v4l2_selection</structname></title>
242 <tgroup cols="3">
243 &cs-str;
244 <tbody valign="top">
245 <row>
246 <entry>__u32</entry>
247 <entry><structfield>type</structfield></entry>
248 <entry>Type of the buffer (from &v4l2-buf-type;)</entry>
249 </row>
250 <row>
251 <entry>__u32</entry>
252 <entry><structfield>target</structfield></entry>
253 <entry>used to select between <link linkend="v4l2-sel-target"> cropping and composing rectangles </link></entry>
254 </row>
255 <row>
256 <entry>__u32</entry>
257 <entry><structfield>flags</structfield></entry>
258 <entry>control over coordinates adjustments, refer to <link linkend="v4l2-sel-flags">selection flags</link></entry>
259 </row>
260 <row>
261 <entry>&v4l2-rect;</entry>
262 <entry><structfield>r</structfield></entry>
263 <entry>selection rectangle</entry>
264 </row>
265 <row>
266 <entry>__u32</entry>
267 <entry><structfield>reserved[9]</structfield></entry>
268 <entry>Reserved fields for future use</entry>
269 </row>
270 </tbody>
271 </tgroup>
272 </table>
273 </refsect1>
274
275 <refsect1>
276 &return-value;
277 <variablelist>
278 <varlistentry>
279 <term><errorcode>EINVAL</errorcode></term>
280 <listitem>
281 <para>The buffer <structfield> &v4l2-selection;::type </structfield>
282or <structfield> &v4l2-selection;::target </structfield> is not supported, or
283the <structfield> &v4l2-selection;::flags </structfield> are invalid.</para>
284 </listitem>
285 </varlistentry>
286 <varlistentry>
287 <term><errorcode>ERANGE</errorcode></term>
288 <listitem>
289 <para>it is not possible to adjust a rectangle <structfield>
290&v4l2-selection;::r </structfield> that satisfies all contraints from
291<structfield> &v4l2-selection;::flags </structfield>.</para>
292 </listitem>
293 </varlistentry>
294 <varlistentry>
295 <term><errorcode>EBUSY</errorcode></term>
296 <listitem>
297 <para>it is not possible to apply change of selection rectangle at the moment.
298Usually because streaming is in progress.</para>
299 </listitem>
300 </varlistentry>
301 </variablelist>
302 </refsect1>
303
304</refentry>
Documentation/DocBook/media/v4l/vidioc-g-std.xml+0−8
@@ -88,11 +88,3 @@ standards.</para> · 87 unmodified lines
88 </variablelist>88 </variablelist>
89 </refsect1>89 </refsect1>
90</refentry>90</refentry>
91
92<!--
93Local Variables:
94mode: sgml
95sgml-parent-document: "v4l2.sgml"
96indent-tabs-mode: nil
97End:
98-->
Documentation/DocBook/media/v4l/vidioc-g-tuner.xml+10−8
@@ -318,6 +318,16 @@ standard.</para><!-- FIXME what if PAL+NTSC and Bi but not SAP? --></entry> · 317 unmodified lines
318 <entry>RDS capture is supported. This capability is only valid for318 <entry>RDS capture is supported. This capability is only valid for
319radio tuners.</entry>319radio tuners.</entry>
320 </row>320 </row>
321 <row>
322 <entry><constant>V4L2_TUNER_CAP_RDS_BLOCK_IO</constant></entry>
323 <entry>0x0100</entry>
324 <entry>The RDS data is passed as unparsed RDS blocks.</entry>
325 </row>
326 <row>
327 <entry><constant>V4L2_TUNER_CAP_RDS_CONTROLS</constant></entry>
328 <entry>0x0200</entry>
329 <entry>The RDS data is parsed by the hardware and set via controls.</entry>
330 </row>
321 </tbody>331 </tbody>
322 </tgroup>332 </tgroup>
323 </table>333 </table>
@@ -525,11 +535,3 @@ out of bounds.</para> · 201 unmodified lines
525 </variablelist>535 </variablelist>
526 </refsect1>536 </refsect1>
527</refentry>537</refentry>
528
529<!--
530Local Variables:
531mode: sgml
532sgml-parent-document: "v4l2.sgml"
533indent-tabs-mode: nil
534End:
535-->
Documentation/DocBook/media/v4l/vidioc-querybuf.xml+0−8
@@ -100,11 +100,3 @@ supported, or the <structfield>index</structfield> is out of bounds.</para> · 99 unmodified lines
100 </variablelist>100 </variablelist>
101 </refsect1>101 </refsect1>
102</refentry>102</refentry>
103
104<!--
105Local Variables:
106mode: sgml
107sgml-parent-document: "v4l2.sgml"
108indent-tabs-mode: nil
109End:
110-->
Documentation/DocBook/media/v4l/vidioc-queryctrl.xml+0−8
@@ -443,11 +443,3 @@ or this particular menu item is not supported by the driver.</para> · 442 unmodified lines
443 </variablelist>443 </variablelist>
444 </refsect1>444 </refsect1>
445</refentry>445</refentry>
446
447<!--
448Local Variables:
449mode: sgml
450sgml-parent-document: "v4l2.sgml"
451indent-tabs-mode: nil
452End:
453-->
Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml+0−8
@@ -125,11 +125,3 @@ wrong.</para> · 124 unmodified lines
125 </variablelist>125 </variablelist>
126 </refsect1>126 </refsect1>
127</refentry>127</refentry>
128
129<!--
130Local Variables:
131mode: sgml
132sgml-parent-document: "v4l2.sgml"
133indent-tabs-mode: nil
134End:
135-->
Documentation/DocBook/writing-an-alsa-driver.tmpl+1−1
@@ -404,7 +404,7 @@ · 403 unmodified lines
404 /* SNDRV_CARDS: maximum number of cards supported by this module */404 /* SNDRV_CARDS: maximum number of cards supported by this module */
405 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;405 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
406 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;406 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
407 static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;407 static bool enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;
408 408
409 /* definition of the chip-specific record */409 /* definition of the chip-specific record */
410 struct mychip {410 struct mychip {
Documentation/HOWTO+2−2
@@ -275,8 +275,8 @@ versions. · 274 unmodified lines
275If no 2.6.x.y kernel is available, then the highest numbered 2.6.x275If no 2.6.x.y kernel is available, then the highest numbered 2.6.x
276kernel is the current stable kernel.276kernel is the current stable kernel.
277 277
2782.6.x.y are maintained by the "stable" team <stable@kernel.org>, and are2782.6.x.y are maintained by the "stable" team <stable@vger.kernel.org>, and
279released as needs dictate. The normal release period is approximately 279are released as needs dictate. The normal release period is approximately
280two weeks, but it can be longer if there are no pressing problems. A280two weeks, but it can be longer if there are no pressing problems. A
281security-related problem, instead, can cause a release to happen almost281security-related problem, instead, can cause a release to happen almost
282instantly.282instantly.
Documentation/acpi/apei/einj.txt+44−11
@@ -47,20 +47,53 @@ directory apei/einj. The following files are provided. · 46 unmodified lines
47 47
48- param148- param1
49 This file is used to set the first error parameter value. Effect of49 This file is used to set the first error parameter value. Effect of
50 parameter depends on error_type specified. For memory error, this is50 parameter depends on error_type specified.
51 physical memory address. Only available if param_extension module
52 parameter is specified.
53 51
54- param252- param2
55 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
56 parameter depends on error_type specified. For memory error, this is54 parameter depends on error_type specified.
57 physical memory address mask. Only available if param_extension55
58 module parameter is specified.56BIOS versions based in the ACPI 4.0 specification have limited options
57to control where the errors are injected. Your BIOS may support an
58extension (enabled with the param_extension=1 module parameter, or
59boot command line einj.param_extension=1). This allows the address
60and mask for memory injections to be specified by the param1 and
61param2 files in apei/einj.
62
63BIOS versions using the ACPI 5.0 specification have more control over
64the target of the injection. For processor related errors (type 0x1,
650x2 and 0x4) the APICID of the target should be provided using the
66param1 file in apei/einj. For memory errors (type 0x8, 0x10 and 0x20)
67the address is set using param1 with a mask in param2 (0x0 is equivalent
68to all ones). For PCI express errors (type 0x40, 0x80 and 0x100) the
69segment, bus, device and function are specified using param1:
70
71 31 24 23 16 15 11 10 8 7 0
72 +-------------------------------------------------+
73 | segment | bus | device | function | reserved |
74 +-------------------------------------------------+
75
76An ACPI 5.0 BIOS may also allow vendor specific errors to be injected.
77In this case a file named vendor will contain identifying information
78from the BIOS that hopefully will allow an application wishing to use
79the vendor specific extension to tell that they are running on a BIOS
80that supports it. All vendor extensions have the 0x80000000 bit set in
81error_type. A file vendor_flags controls the interpretation of param1
82and param2 (1 = PROCESSOR, 2 = MEMORY, 4 = PCI). See your BIOS vendor
83documentation for details (and expect changes to this API if vendors
84creativity in using this feature expands beyond our expectations).
85
86Example:
87# cd /sys/kernel/debug/apei/einj
88# cat available_error_type # See which errors can be injected
890x00000002 Processor Uncorrectable non-fatal
900x00000008 Memory Correctable
910x00000010 Memory Uncorrectable non-fatal
92# echo 0x12345000 > param1 # Set memory address for injection
93# echo 0xfffffffffffff000 > param2 # Mask - anywhere in this page
94# echo 0x8 > error_type # Choose correctable memory error
95# echo 1 > error_inject # Inject now
59 96
60Injecting parameter support is a BIOS version specific extension, that
61is, it only works on some BIOS version. If you want to use it, please
62make sure your BIOS version has the proper support and specify
63"param_extension=y" in module parameter.
64 97
65For more information about EINJ, please refer to ACPI specification98For more information about EINJ, please refer to ACPI specification
66version 4.0, section 17.5.99version 4.0, section 17.5 and ACPI 5.0, section 18.6.
Documentation/arm/memory.txt+5−6
@@ -51,15 +51,14 @@ ffc00000 ffefffff DMA memory mapping region. Memory returned · 50 unmodified lines
51ff000000 ffbfffff Reserved for future expansion of DMA51ff000000 ffbfffff Reserved for future expansion of DMA
52 mapping region.52 mapping region.
53 53
54VMALLOC_END feffffff Free for platform use, recommended.
55 VMALLOC_END must be aligned to a 2MB
56 boundary.
57
58VMALLOC_START VMALLOC_END-1 vmalloc() / ioremap() space.54VMALLOC_START VMALLOC_END-1 vmalloc() / ioremap() space.
59 Memory returned by vmalloc/ioremap will55 Memory returned by vmalloc/ioremap will
60 be dynamically placed in this region.56 be dynamically placed in this region.
61 VMALLOC_START may be based upon the value57 Machine specific static mappings are also
62 of the high_memory variable.58 located here through iotable_init().
59 VMALLOC_START is based upon the value
60 of the high_memory variable, and VMALLOC_END
61 is equal to 0xff000000.
63 62
64PAGE_OFFSET high_memory-1 Kernel direct-mapped RAM region.63PAGE_OFFSET high_memory-1 Kernel direct-mapped RAM region.
65 This maps the platforms RAM, and typically64 This maps the platforms RAM, and typically
Documentation/cgroups/cgroups.txt+21−30
@@ -594,53 +594,44 @@ rmdir() will fail with it. From this behavior, pre_destroy() can be · 593 unmodified lines
594called multiple times against a cgroup.594called multiple times against a cgroup.
595 595
596int can_attach(struct cgroup_subsys *ss, struct cgroup *cgrp,596int can_attach(struct cgroup_subsys *ss, struct cgroup *cgrp,
597 struct task_struct *task)597 struct cgroup_taskset *tset)
598(cgroup_mutex held by caller)598(cgroup_mutex held by caller)
599 599
600Called prior to moving a task into a cgroup; if the subsystem600Called prior to moving one or more tasks into a cgroup; if the
601returns an error, this will abort the attach operation. If a NULL601subsystem returns an error, this will abort the attach operation.
602task is passed, then a successful result indicates that *any*602@tset contains the tasks to be attached and is guaranteed to have at
603unspecified task can be moved into the cgroup. Note that this isn't603least one task in it.
604called on a fork. If this method returns 0 (success) then this should604
605remain valid while the caller holds cgroup_mutex and it is ensured that either605If there are multiple tasks in the taskset, then:
606 - it's guaranteed that all are from the same thread group
607 - @tset contains all tasks from the thread group whether or not
608 they're switching cgroups
609 - the first task is the leader
610
611Each @tset entry also contains the task's old cgroup and tasks which
612aren't switching cgroup can be skipped easily using the
613cgroup_taskset_for_each() iterator. Note that this isn't called on a
614fork. If this method returns 0 (success) then this should remain valid
615while the caller holds cgroup_mutex and it is ensured that either
606attach() or cancel_attach() will be called in future.616attach() or cancel_attach() will be called in future.
607 617
608int can_attach_task(struct cgroup *cgrp, struct task_struct *tsk);
609(cgroup_mutex held by caller)
610
611As can_attach, but for operations that must be run once per task to be
612attached (possibly many when using cgroup_attach_proc). Called after
613can_attach.
614
615void cancel_attach(struct cgroup_subsys *ss, struct cgroup *cgrp,618void cancel_attach(struct cgroup_subsys *ss, struct cgroup *cgrp,
616 struct task_struct *task, bool threadgroup)619 struct cgroup_taskset *tset)
617(cgroup_mutex held by caller)620(cgroup_mutex held by caller)
618 621
619Called when a task attach operation has failed after can_attach() has succeeded.622Called when a task attach operation has failed after can_attach() has succeeded.
620A subsystem whose can_attach() has some side-effects should provide this623A subsystem whose can_attach() has some side-effects should provide this
621function, so that the subsystem can implement a rollback. If not, not necessary.624function, so that the subsystem can implement a rollback. If not, not necessary.
622This will be called only about subsystems whose can_attach() operation have625This will be called only about subsystems whose can_attach() operation have
623succeeded.626succeeded. The parameters are identical to can_attach().
624
625void pre_attach(struct cgroup *cgrp);
626(cgroup_mutex held by caller)
627
628For any non-per-thread attachment work that needs to happen before
629attach_task. Needed by cpuset.
630 627
631void attach(struct cgroup_subsys *ss, struct cgroup *cgrp,628void attach(struct cgroup_subsys *ss, struct cgroup *cgrp,
632 struct cgroup *old_cgrp, struct task_struct *task)629 struct cgroup_taskset *tset)
633(cgroup_mutex held by caller)630(cgroup_mutex held by caller)
634 631
635Called after the task has been attached to the cgroup, to allow any632Called after the task has been attached to the cgroup, to allow any
636post-attachment activity that requires memory allocations or blocking.633post-attachment activity that requires memory allocations or blocking.
637 634The parameters are identical to can_attach().
638void attach_task(struct cgroup *cgrp, struct task_struct *tsk);
639(cgroup_mutex held by caller)
640
641As attach, but for operations that must be run once per task to be attached,
642like can_attach_task. Called before attach. Currently does not support any
643subsystem that might need the old_cgrp for every thread in the group.
644 635
645void fork(struct cgroup_subsy *ss, struct task_struct *task)636void fork(struct cgroup_subsy *ss, struct task_struct *task)
646 637
Documentation/cgroups/memory.txt+32−5
@@ -44,8 +44,8 @@ Features: · 43 unmodified lines
44 - oom-killer disable knob and oom-notifier44 - oom-killer disable knob and oom-notifier
45 - Root cgroup has no limit controls.45 - Root cgroup has no limit controls.
46 46
47 Kernel memory and Hugepages are not under control yet. We just manage47 Kernel memory support is work in progress, and the current version provides
48 pages on LRU. To add more controls, we have to take care of performance.48 basically functionality. (See Section 2.7)
49 49
50Brief summary of control files.50Brief summary of control files.
51 51
@@ -61,7 +61,7 @@ Brief summary of control files. · 9 unmodified lines
61 memory.failcnt # show the number of memory usage hits limits61 memory.failcnt # show the number of memory usage hits limits
62 memory.memsw.failcnt # show the number of memory+Swap hits limits62 memory.memsw.failcnt # show the number of memory+Swap hits limits
63 memory.max_usage_in_bytes # show max memory usage recorded63 memory.max_usage_in_bytes # show max memory usage recorded
64 memory.memsw.usage_in_bytes # show max memory+Swap usage recorded64 memory.memsw.max_usage_in_bytes # show max memory+Swap usage recorded
65 memory.soft_limit_in_bytes # set/show soft limit of memory usage65 memory.soft_limit_in_bytes # set/show soft limit of memory usage
66 memory.stat # show various statistics66 memory.stat # show various statistics
67 memory.use_hierarchy # set/show hierarchical account enabled67 memory.use_hierarchy # set/show hierarchical account enabled
@@ -72,6 +72,9 @@ Brief summary of control files. · 4 unmodified lines
72 memory.oom_control # set/show oom controls.72 memory.oom_control # set/show oom controls.
73 memory.numa_stat # show the number of memory usage per numa node73 memory.numa_stat # show the number of memory usage per numa node
74 74
75 memory.kmem.tcp.limit_in_bytes # set/show hard limit for tcp buf memory
76 memory.kmem.tcp.usage_in_bytes # show current tcp buf memory allocation
77
751. History781. History
76 79
77The memory controller has a long history. A request for comments for the memory80The memory controller has a long history. A request for comments for the memory
@@ -255,6 +258,27 @@ When oom event notifier is registered, event will be delivered. · 177 unmodified lines
255 per-zone-per-cgroup LRU (cgroup's private LRU) is just guarded by258 per-zone-per-cgroup LRU (cgroup's private LRU) is just guarded by
256 zone->lru_lock, it has no lock of its own.259 zone->lru_lock, it has no lock of its own.
257 260
2612.7 Kernel Memory Extension (CONFIG_CGROUP_MEM_RES_CTLR_KMEM)
262
263With the Kernel memory extension, the Memory Controller is able to limit
264the amount of kernel memory used by the system. Kernel memory is fundamentally
265different than user memory, since it can't be swapped out, which makes it
266possible to DoS the system by consuming too much of this precious resource.
267
268Kernel memory limits are not imposed for the root cgroup. Usage for the root
269cgroup may or may not be accounted.
270
271Currently no soft limit is implemented for kernel memory. It is future work
272to trigger slab reclaim when those limits are reached.
273
2742.7.1 Current Kernel Memory resources accounted
275
276* sockets memory pressure: some sockets protocols have memory pressure
277thresholds. The Memory Controller allows them to be controlled individually
278per cgroup, instead of globally.
279
280* tcp memory pressure: sockets memory pressure for the tcp protocol.
281
2583. User Interface2823. User Interface
259 283
2600. Configuration2840. Configuration
@@ -386,8 +410,11 @@ memory.stat file includes following statistics · 125 unmodified lines
386cache - # of bytes of page cache memory.410cache - # of bytes of page cache memory.
387rss - # of bytes of anonymous and swap cache memory.411rss - # of bytes of anonymous and swap cache memory.
388mapped_file - # of bytes of mapped file (includes tmpfs/shmem)412mapped_file - # of bytes of mapped file (includes tmpfs/shmem)
389pgpgin - # of pages paged in (equivalent to # of charging events).413pgpgin - # of charging events to the memory cgroup. The charging
390pgpgout - # of pages paged out (equivalent to # of uncharging events).414 event happens each time a page is accounted as either mapped
415 anon page(RSS) or cache page(Page Cache) to the cgroup.
416pgpgout - # of uncharging events to the memory cgroup. The uncharging
417 event happens each time a page is unaccounted from the cgroup.
391swap - # of bytes of swap usage418swap - # of bytes of swap usage
392inactive_anon - # of bytes of anonymous memory and swap cache memory on419inactive_anon - # of bytes of anonymous memory and swap cache memory on
393 LRU list.420 LRU list.
Documentation/cgroups/net_prio.txt+53−0
@@ -0,0 +1,53 @@
1Network priority cgroup
2-------------------------
3
4The Network priority cgroup provides an interface to allow an administrator to
5dynamically set the priority of network traffic generated by various
6applications
7
8Nominally, an application would set the priority of its traffic via the
9SO_PRIORITY socket option. This however, is not always possible because:
10
111) The application may not have been coded to set this value
122) The priority of application traffic is often a site-specific administrative
13 decision rather than an application defined one.
14
15This cgroup allows an administrator to assign a process to a group which defines
16the priority of egress traffic on a given interface. Network priority groups can
17be created by first mounting the cgroup filesystem.
18
19# mount -t cgroup -onet_prio none /sys/fs/cgroup/net_prio
20
21With the above step, the initial group acting as the parent accounting group
22becomes visible at '/sys/fs/cgroup/net_prio'. This group includes all tasks in
23the system. '/sys/fs/cgroup/net_prio/tasks' lists the tasks in this cgroup.
24
25Each net_prio cgroup contains two files that are subsystem specific
26
27net_prio.prioidx
28This file is read-only, and is simply informative. It contains a unique integer
29value that the kernel uses as an internal representation of this cgroup.
30
31net_prio.ifpriomap
32This file contains a map of the priorities assigned to traffic originating from
33processes in this group and egressing the system on various interfaces. It
34contains a list of tuples in the form <ifname priority>. Contents of this file
35can be modified by echoing a string into the file using the same tuple format.
36for example:
37
38echo "eth0 5" > /sys/fs/cgroups/net_prio/iscsi/net_prio.ifpriomap
39
40This command would force any traffic originating from processes belonging to the
41iscsi net_prio cgroup and egressing on interface eth0 to have the priority of
42said traffic set to the value 5. The parent accounting group also has a
43writeable 'net_prio.ifpriomap' file that can be used to set a system default
44priority.
45
46Priorities are set immediately prior to queueing a frame to the device
47queueing discipline (qdisc) so priorities will be assigned prior to the hardware
48queue selection being made.
49
50One usage for the net_prio cgroup is with mqprio qdisc allowing application
51traffic to be steered to hardware/driver based traffic classes. These mappings
52can then be managed by administrators or other networking protocols such as
53DCBX.
Documentation/coccinelle.txt+8−2
@@ -102,9 +102,15 @@ or · 101 unmodified lines
102 make coccicheck COCCI=<my_SP.cocci> MODE=report102 make coccicheck COCCI=<my_SP.cocci> MODE=report
103 103
104 104
105 Using Coccinelle on (modified) files105 Controlling Which Files are Processed by Coccinelle
106~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~106~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107By default the entire kernel source tree is checked.
108
109To apply Coccinelle to a specific directory, M= can be used.
110For example, to check drivers/net/wireless/ one may write:
107 111
112 make coccicheck M=drivers/net/wireless/
113
108To apply Coccinelle on a file basis, instead of a directory basis, the114To apply Coccinelle on a file basis, instead of a directory basis, the
109following command may be used:115following command may be used:
110 116
Documentation/cpu-freq/governors.txt+1−3
@@ -127,7 +127,7 @@ in the bash (as said, 1000 is default), do: · 126 unmodified lines
127echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) \127echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) \
128 >ondemand/sampling_rate128 >ondemand/sampling_rate
129 129
130show_sampling_rate_min:130sampling_rate_min:
131The sampling rate is limited by the HW transition latency:131The sampling rate is limited by the HW transition latency:
132transition_latency * 100132transition_latency * 100
133Or by kernel restrictions:133Or by kernel restrictions:
@@ -140,8 +140,6 @@ HZ=100: min=200000us (200ms) · 6 unmodified lines
140The highest value of kernel and HW latency restrictions is shown and140The highest value of kernel and HW latency restrictions is shown and
141used as the minimum sampling rate.141used as the minimum sampling rate.
142 142
143show_sampling_rate_max: THIS INTERFACE IS DEPRECATED, DON'T USE IT.
144
145up_threshold: defines what the average CPU usage between the samplings143up_threshold: defines what the average CPU usage between the samplings
146of 'sampling_rate' needs to be for the kernel to make a decision on144of 'sampling_rate' needs to be for the kernel to make a decision on
147whether it should increase the frequency. For example when it is set145whether it should increase the frequency. For example when it is set
Documentation/development-process/5.Posting+4−4
@@ -271,10 +271,10 @@ copies should go to: · 270 unmodified lines
271 the linux-kernel list.271 the linux-kernel list.
272 272
273 - If you are fixing a bug, think about whether the fix should go into the273 - If you are fixing a bug, think about whether the fix should go into the
274 next stable update. If so, stable@kernel.org should get a copy of the274 next stable update. If so, stable@vger.kernel.org should get a copy of
275 patch. Also add a "Cc: stable@kernel.org" to the tags within the patch275 the patch. Also add a "Cc: stable@vger.kernel.org" to the tags within
276 itself; that will cause the stable team to get a notification when your276 the patch itself; that will cause the stable team to get a notification
277 fix goes into the mainline.277 when your fix goes into the mainline.
278 278
279When selecting recipients for a patch, it is good to have an idea of who279When selecting recipients for a patch, it is good to have an idea of who
280you think will eventually accept the patch and get it merged. While it280you think will eventually accept the patch and get it merged. While it
Documentation/devices.txt+4−1
@@ -379,7 +379,7 @@ Your cooperation is appreciated. · 378 unmodified lines
379 162 = /dev/smbus System Management Bus379 162 = /dev/smbus System Management Bus
380 163 = /dev/lik Logitech Internet Keyboard380 163 = /dev/lik Logitech Internet Keyboard
381 164 = /dev/ipmo Intel Intelligent Platform Management381 164 = /dev/ipmo Intel Intelligent Platform Management
382 165 = /dev/vmmon VMWare virtual machine monitor382 165 = /dev/vmmon VMware virtual machine monitor
383 166 = /dev/i2o/ctl I2O configuration manager383 166 = /dev/i2o/ctl I2O configuration manager
384 167 = /dev/specialix_sxctl Specialix serial control384 167 = /dev/specialix_sxctl Specialix serial control
385 168 = /dev/tcldrv Technology Concepts serial control385 168 = /dev/tcldrv Technology Concepts serial control
@@ -447,6 +447,9 @@ Your cooperation is appreciated. · 61 unmodified lines
447 234 = /dev/btrfs-control Btrfs control device447 234 = /dev/btrfs-control Btrfs control device
448 235 = /dev/autofs Autofs control device448 235 = /dev/autofs Autofs control device
449 236 = /dev/mapper/control Device-Mapper control device449 236 = /dev/mapper/control Device-Mapper control device
450 237 = /dev/loop-control Loopback control device
451 238 = /dev/vhost-net Host kernel accelerator for virtio net
452
450 240-254 Reserved for local use453 240-254 Reserved for local use
451 255 Reserved for MISC_DYNAMIC_MINOR454 255 Reserved for MISC_DYNAMIC_MINOR
452 455
Documentation/devicetree/bindings/arm/fsl.txt+6−2
@@ -21,6 +21,10 @@ i.MX53 Smart Mobile Reference Design Board · 20 unmodified lines
21Required root node properties:21Required root node properties:
22 - compatible = "fsl,imx53-smd", "fsl,imx53";22 - compatible = "fsl,imx53-smd", "fsl,imx53";
23 23
24i.MX6 Quad SABRE Automotive Board24i.MX6 Quad Armadillo2 Board
25Required root node properties:25Required root node properties:
26 - compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";26 - compatible = "fsl,imx6q-arm2", "fsl,imx6q";
27
28i.MX6 Quad SABRE Lite Board
29Required root node properties:
30 - compatible = "fsl,imx6q-sabrelite", "fsl,imx6q";
Documentation/devicetree/bindings/arm/gic.txt+4−0
@@ -42,6 +42,10 @@ Optional · 41 unmodified lines
42- interrupts : Interrupt source of the parent interrupt controller. Only42- interrupts : Interrupt source of the parent interrupt controller. Only
43 present on secondary GICs.43 present on secondary GICs.
44 44
45- cpu-offset : per-cpu offset within the distributor and cpu interface
46 regions, used when the GIC doesn't have banked registers. The offset is
47 cpu-offset * cpu-nr.
48
45Example:49Example:
46 50
47 intc: interrupt-controller@fff11000 {51 intc: interrupt-controller@fff11000 {
Documentation/devicetree/bindings/arm/insignal-boards.txt+8−0
@@ -0,0 +1,8 @@
1* Insignal's Exynos4210 based Origen evaluation board
2
3Origen low-cost evaluation board is based on Samsung's Exynos4210 SoC.
4
5Required root node properties:
6 - compatible = should be one or more of the following.
7 (a) "samsung,smdkv310" - for Samsung's SMDKV310 eval board.
8 (b) "samsung,exynos4210" - for boards based on Exynos4210 SoC.
Documentation/devicetree/bindings/arm/samsung-boards.txt+8−0
@@ -0,0 +1,8 @@
1* Samsung's Exynos4210 based SMDKV310 evaluation board
2
3SMDKV310 evaluation board is based on Samsung's Exynos4210 SoC.
4
5Required root node properties:
6 - compatible = should be one or more of the following.
7 (a) "samsung,smdkv310" - for Samsung's SMDKV310 eval board.
8 (b) "samsung,exynos4210" - for boards based on Exynos4210 SoC.
Documentation/devicetree/bindings/arm/tegra.txt+14−0
@@ -0,0 +1,14 @@
1NVIDIA Tegra device tree bindings
2-------------------------------------------
3
4Boards with the tegra20 SoC shall have the following properties:
5
6Required root node property:
7
8compatible = "nvidia,tegra20";
9
10Boards with the tegra30 SoC shall have the following properties:
11
12Required root node property:
13
14compatible = "nvidia,tegra30";
Documentation/devicetree/bindings/arm/vic.txt+29−0
@@ -0,0 +1,29 @@
1* ARM Vectored Interrupt Controller
2
3One or more Vectored Interrupt Controllers (VIC's) can be connected in an ARM
4system for interrupt routing. For multiple controllers they can either be
5nested or have the outputs wire-OR'd together.
6
7Required properties:
8
9- compatible : should be one of
10 "arm,pl190-vic"
11 "arm,pl192-vic"
12- interrupt-controller : Identifies the node as an interrupt controller
13- #interrupt-cells : The number of cells to define the interrupts. Must be 1 as
14 the VIC has no configuration options for interrupt sources. The cell is a u32
15 and defines the interrupt number.
16- reg : The register bank for the VIC.
17
18Optional properties:
19
20- interrupts : Interrupt source for parent controllers if the VIC is nested.
21
22Example:
23
24 vic0: interrupt-controller@60000 {
25 compatible = "arm,pl192-vic";
26 interrupt-controller;
27 #interrupt-cells = <1>;
28 reg = <0x60000 0x1000>;
29 };
Documentation/devicetree/bindings/c6x/clocks.txt+40−0
@@ -0,0 +1,40 @@
1C6X PLL Clock Controllers
2-------------------------
3
4This is a first-cut support for the SoC clock controllers. This is still
5under development and will probably change as the common device tree
6clock support is added to the kernel.
7
8Required properties:
9
10- compatible: "ti,c64x+pll"
11 May also have SoC-specific value to support SoC-specific initialization
12 in the driver. One of:
13 "ti,c6455-pll"
14 "ti,c6457-pll"
15 "ti,c6472-pll"
16 "ti,c6474-pll"
17
18- reg: base address and size of register area
19- clock-frequency: input clock frequency in hz
20
21
22Optional properties:
23
24- ti,c64x+pll-bypass-delay: CPU cycles to delay when entering bypass mode
25
26- ti,c64x+pll-reset-delay: CPU cycles to delay after PLL reset
27
28- ti,c64x+pll-lock-delay: CPU cycles to delay after PLL frequency change
29
30Example:
31
32 clock-controller@29a0000 {
33 compatible = "ti,c6472-pll", "ti,c64x+pll";
34 reg = <0x029a0000 0x200>;
35 clock-frequency = <25000000>;
36
37 ti,c64x+pll-bypass-delay = <200>;
38 ti,c64x+pll-reset-delay = <12000>;
39 ti,c64x+pll-lock-delay = <80000>;
40 };
Documentation/devicetree/bindings/c6x/dscr.txt+127−0
@@ -0,0 +1,127 @@
1Device State Configuration Registers
2------------------------------------
3
4TI C6X SoCs contain a region of miscellaneous registers which provide various
5function for SoC control or status. Details vary considerably among from SoC
6to SoC with no two being alike.
7
8In general, the Device State Configuraion Registers (DSCR) will provide one or
9more configuration registers often protected by a lock register where one or
10more key values must be written to a lock register in order to unlock the
11configuration register for writes. These configuration register may be used to
12enable (and disable in some cases) SoC pin drivers, select peripheral clock
13sources (internal or pin), etc. In some cases, a configuration register is
14write once or the individual bits are write once. In addition to device config,
15the DSCR block may provide registers which which are used to reset peripherals,
16provide device ID information, provide ethernet MAC addresses, as well as other
17miscellaneous functions.
18
19For device state control (enable/disable), each device control is assigned an
20id which is used by individual device drivers to control the state as needed.
21
22Required properties:
23
24- compatible: must be "ti,c64x+dscr"
25- reg: register area base and size
26
27Optional properties:
28
29 NOTE: These are optional in that not all SoCs will have all properties. For
30 SoCs which do support a given property, leaving the property out of the
31 device tree will result in reduced functionality or possibly driver
32 failure.
33
34- ti,dscr-devstat
35 offset of the devstat register
36
37- ti,dscr-silicon-rev
38 offset, start bit, and bitsize of silicon revision field
39
40- ti,dscr-rmii-resets
41 offset and bitmask of RMII reset field. May have multiple tuples if more
42 than one ethernet port is available.
43
44- ti,dscr-locked-regs
45 possibly multiple tuples describing registers which are write protected by
46 a lock register. Each tuple consists of the register offset, lock register
47 offsset, and the key value used to unlock the register.
48
49- ti,dscr-kick-regs
50 offset and key values of two "kick" registers used to write protect other
51 registers in DSCR. On SoCs using kick registers, the first key must be
52 written to the first kick register and the second key must be written to
53 the second register before other registers in the area are write-enabled.
54
55- ti,dscr-mac-fuse-regs
56 MAC addresses are contained in two registers. Each element of a MAC address
57 is contained in a single byte. This property has two tuples. Each tuple has
58 a register offset and four cells representing bytes in the register from
59 most significant to least. The value of these four cells is the MAC byte
60 index (1-6) of the byte within the register. A value of 0 means the byte
61 is unused in the MAC address.
62
63- ti,dscr-devstate-ctl-regs
64 This property describes the bitfields used to control the state of devices.
65 Each tuple describes a range of identical bitfields used to control one or
66 more devices (one bitfield per device). The layout of each tuple is:
67
68 start_id num_ids reg enable disable start_bit nbits
69
70 Where:
71 start_id is device id for the first device control in the range
72 num_ids is the number of device controls in the range
73 reg is the offset of the register holding the control bits
74 enable is the value to enable a device
75 disable is the value to disable a device (0xffffffff if cannot disable)
76 start_bit is the bit number of the first bit in the range
77 nbits is the number of bits per device control
78
79- ti,dscr-devstate-stat-regs
80 This property describes the bitfields used to provide device state status
81 for device states controlled by the DSCR. Each tuple describes a range of
82 identical bitfields used to provide status for one or more devices (one
83 bitfield per device). The layout of each tuple is:
84
85 start_id num_ids reg enable disable start_bit nbits
86
87 Where:
88 start_id is device id for the first device status in the range
89 num_ids is the number of devices covered by the range
90 reg is the offset of the register holding the status bits
91 enable is the value indicating device is enabled
92 disable is the value indicating device is disabled
93 start_bit is the bit number of the first bit in the range
94 nbits is the number of bits per device status
95
96- ti,dscr-privperm
97 Offset and default value for register used to set access privilege for
98 some SoC devices.
99
100
101Example:
102
103 device-state-config-regs@2a80000 {
104 compatible = "ti,c64x+dscr";
105 reg = <0x02a80000 0x41000>;
106
107 ti,dscr-devstat = <0>;
108 ti,dscr-silicon-rev = <8 28 0xf>;
109 ti,dscr-rmii-resets = <0x40020 0x00040000>;
110
111 ti,dscr-locked-regs = <0x40008 0x40004 0x0f0a0b00>;
112 ti,dscr-devstate-ctl-regs =
113 <0 12 0x40008 1 0 0 2
114 12 1 0x40008 3 0 30 2
115 13 2 0x4002c 1 0xffffffff 0 1>;
116 ti,dscr-devstate-stat-regs =
117 <0 10 0x40014 1 0 0 3
118 10 2 0x40018 1 0 0 3>;
119
120 ti,dscr-mac-fuse-regs = <0x700 1 2 3 4
121 0x704 5 6 0 0>;
122
123 ti,dscr-privperm = <0x41c 0xaaaaaaaa>;
124
125 ti,dscr-kick-regs = <0x38 0x83E70B13
126 0x3c 0x95A4F1E0>;
127 };
Documentation/devicetree/bindings/c6x/emifa.txt+62−0
@@ -0,0 +1,62 @@
1External Memory Interface
2-------------------------
3
4The emifa node describes a simple external bus controller found on some C6X
5SoCs. This interface provides external busses with a number of chip selects.
6
7Required properties:
8
9- compatible: must be "ti,c64x+emifa", "simple-bus"
10- reg: register area base and size
11- #address-cells: must be 2 (chip-select + offset)
12- #size-cells: must be 1
13- ranges: mapping from EMIFA space to parent space
14
15
16Optional properties:
17
18- ti,dscr-dev-enable: Device ID if EMIF is enabled/disabled from DSCR
19
20- ti,emifa-burst-priority:
21 Number of memory transfers after which the EMIF will elevate the priority
22 of the oldest command in the command FIFO. Setting this field to 255
23 disables this feature, thereby allowing old commands to stay in the FIFO
24 indefinitely.
25
26- ti,emifa-ce-config:
27 Configuration values for each of the supported chip selects.
28
29Example:
30
31 emifa@70000000 {
32 compatible = "ti,c64x+emifa", "simple-bus";
33 #address-cells = <2>;
34 #size-cells = <1>;
35 reg = <0x70000000 0x100>;
36 ranges = <0x2 0x0 0xa0000000 0x00000008
37 0x3 0x0 0xb0000000 0x00400000
38 0x4 0x0 0xc0000000 0x10000000
39 0x5 0x0 0xD0000000 0x10000000>;
40
41 ti,dscr-dev-enable = <13>;
42 ti,emifa-burst-priority = <255>;
43 ti,emifa-ce-config = <0x00240120
44 0x00240120
45 0x00240122
46 0x00240122>;
47
48 flash@3,0 {
49 #address-cells = <1>;
50 #size-cells = <1>;
51 compatible = "cfi-flash";
52 reg = <0x3 0x0 0x400000>;
53 bank-width = <1>;
54 device-width = <1>;
55 partition@0 {
56 reg = <0x0 0x400000>;
57 label = "NOR";
58 };
59 };
60 };
61
62This shows a flash chip attached to chip select 3.
Documentation/devicetree/bindings/c6x/interrupt.txt+104−0
@@ -0,0 +1,104 @@
1C6X Interrupt Chips
2-------------------
3
4* C64X+ Core Interrupt Controller
5
6 The core interrupt controller provides 16 prioritized interrupts to the
7 C64X+ core. Priority 0 and 1 are used for reset and NMI respectively.
8 Priority 2 and 3 are reserved. Priority 4-15 are used for interrupt
9 sources coming from outside the core.
10
11 Required properties:
12 --------------------
13 - compatible: Should be "ti,c64x+core-pic";
14 - #interrupt-cells: <1>
15
16 Interrupt Specifier Definition
17 ------------------------------
18 Single cell specifying the core interrupt priority level (4-15) where
19 4 is highest priority and 15 is lowest priority.
20
21 Example
22 -------
23 core_pic: interrupt-controller@0 {
24 interrupt-controller;
25 #interrupt-cells = <1>;
26 compatible = "ti,c64x+core-pic";
27 };
28
29
30
31* C64x+ Megamodule Interrupt Controller
32
33 The megamodule PIC consists of four interrupt mupliplexers each of which
34 combine up to 32 interrupt inputs into a single interrupt output which
35 may be cascaded into the core interrupt controller. The megamodule PIC
36 has a total of 12 outputs cascading into the core interrupt controller.
37 One for each core interrupt priority level. In addition to the combined
38 interrupt sources, individual megamodule interrupts may be cascaded to
39 the core interrupt controller. When an individual interrupt is cascaded,
40 it is no longer handled through a megamodule interrupt combiner and is
41 considered to have the core interrupt controller as the parent.
42
43 Required properties:
44 --------------------
45 - compatible: "ti,c64x+megamod-pic"
46 - interrupt-controller
47 - #interrupt-cells: <1>
48 - reg: base address and size of register area
49 - interrupt-parent: must be core interrupt controller
50 - interrupts: This should have four cells; one for each interrupt combiner.
51 The cells contain the core priority interrupt to which the
52 corresponding combiner output is wired.
53
54 Optional properties:
55 --------------------
56 - ti,c64x+megamod-pic-mux: Array of 12 cells correspnding to the 12 core
57 priority interrupts. The first cell corresponds to
58 core priority 4 and the last cell corresponds to
59 core priority 15. The value of each cell is the
60 megamodule interrupt source which is MUXed to
61 the core interrupt corresponding to the cell
62 position. Allowed values are 4 - 127. Mapping for
63 interrupts 0 - 3 (combined interrupt sources) are
64 ignored.
65
66 Interrupt Specifier Definition
67 ------------------------------
68 Single cell specifying the megamodule interrupt source (4-127). Note that
69 interrupts mapped directly to the core with "ti,c64x+megamod-pic-mux" will
70 use the core interrupt controller as their parent and the specifier will
71 be the core priority level, not the megamodule interrupt number.
72
73 Examples
74 --------
75 megamod_pic: interrupt-controller@1800000 {
76 compatible = "ti,c64x+megamod-pic";
77 interrupt-controller;
78 #interrupt-cells = <1>;
79 reg = <0x1800000 0x1000>;
80 interrupt-parent = <&core_pic>;
81 interrupts = < 12 13 14 15 >;
82 };
83
84 This is a minimal example where all individual interrupts go through a
85 combiner. Combiner-0 is mapped to core interrupt 12, combiner-1 is mapped
86 to interrupt 13, etc.
87
88
89 megamod_pic: interrupt-controller@1800000 {
90 compatible = "ti,c64x+megamod-pic";
91 interrupt-controller;
92 #interrupt-cells = <1>;
93 reg = <0x1800000 0x1000>;
94 interrupt-parent = <&core_pic>;
95 interrupts = < 12 13 14 15 >;
96 ti,c64x+megamod-pic-mux = < 0 0 0 0
97 32 0 0 0
98 0 0 0 0 >;
99 };
100
101 This the same as the first example except that megamodule interrupt 32 is
102 mapped directly to core priority interrupt 8. The node using this interrupt
103 must set the core controller as its interrupt parent and use 8 in the
104 interrupt specifier value.
Documentation/devicetree/bindings/c6x/soc.txt+28−0
@@ -0,0 +1,28 @@
1C6X System-on-Chip
2------------------
3
4Required properties:
5
6- compatible: "simple-bus"
7- #address-cells: must be 1
8- #size-cells: must be 1
9- ranges
10
11Optional properties:
12
13- model: specific SoC model
14
15- nodes for IP blocks within SoC
16
17
18Example:
19
20 soc {
21 compatible = "simple-bus";
22 model = "tms320c6455";
23 #address-cells = <1>;
24 #size-cells = <1>;
25 ranges;
26
27 ...
28 };
Documentation/devicetree/bindings/c6x/timer64.txt+26−0
@@ -0,0 +1,26 @@
1Timer64
2-------
3
4The timer64 node describes C6X event timers.
5
6Required properties:
7
8- compatible: must be "ti,c64x+timer64"
9- reg: base address and size of register region
10- interrupt-parent: interrupt controller
11- interrupts: interrupt id
12
13Optional properties:
14
15- ti,dscr-dev-enable: Device ID used to enable timer IP through DSCR interface.
16
17- ti,core-mask: on multi-core SoCs, bitmask of cores allowed to use this timer.
18
19Example:
20 timer0: timer@25e0000 {
21 compatible = "ti,c64x+timer64";
22 ti,core-mask = < 0x01 >;
23 reg = <0x25e0000 0x40>;
24 interrupt-parent = <&megamod_pic>;
25 interrupts = < 16 >;
26 };
Documentation/devicetree/bindings/dma/arm-pl330.txt+30−0
@@ -0,0 +1,30 @@
1* ARM PrimeCell PL330 DMA Controller
2
3The ARM PrimeCell PL330 DMA controller can move blocks of memory contents
4between memory and peripherals or memory to memory.
5
6Required properties:
7 - compatible: should include both "arm,pl330" and "arm,primecell".
8 - reg: physical base address of the controller and length of memory mapped
9 region.
10 - interrupts: interrupt number to the cpu.
11
12Example:
13
14 pdma0: pdma@12680000 {
15 compatible = "arm,pl330", "arm,primecell";
16 reg = <0x12680000 0x1000>;
17 interrupts = <99>;
18 };
19
20Client drivers (device nodes requiring dma transfers from dev-to-mem or
21mem-to-dev) should specify the DMA channel numbers using a two-value pair
22as shown below.
23
24 [property name] = <[phandle of the dma controller] [dma request id]>;
25
26 where 'dma request id' is the dma request number which is connected
27 to the client controller. The 'property name' is recommended to be
28 of the form <name>-dma-channel.
29
30 Example: tx-dma-channel = <&pdma0 12>;
Documentation/devicetree/bindings/dma/atmel-dma.txt+14−0
@@ -0,0 +1,14 @@
1* Atmel Direct Memory Access Controller (DMA)
2
3Required properties:
4- compatible: Should be "atmel,<chip>-dma"
5- reg: Should contain DMA registers location and length
6- interrupts: Should contain DMA interrupt
7
8Examples:
9
10dma@ffffec00 {
11 compatible = "atmel,at91sam9g45-dma";
12 reg = <0xffffec00 0x200>;
13 interrupts = <21>;
14};
Documentation/devicetree/bindings/gpio/gpio-samsung.txt+40−0
@@ -0,0 +1,40 @@
1Samsung Exynos4 GPIO Controller
2
3Required properties:
4- compatible: Compatible property value should be "samsung,exynos4-gpio>".
5
6- reg: Physical base address of the controller and length of memory mapped
7 region.
8
9- #gpio-cells: Should be 4. The syntax of the gpio specifier used by client nodes
10 should be the following with values derived from the SoC user manual.
11 <[phandle of the gpio controller node]
12 [pin number within the gpio controller]
13 [mux function]
14 [pull up/down]
15 [drive strength]>
16
17 Values for gpio specifier:
18 - Pin number: is a value between 0 to 7.
19 - Pull Up/Down: 0 - Pull Up/Down Disabled.
20 1 - Pull Down Enabled.
21 3 - Pull Up Enabled.
22 - Drive Strength: 0 - 1x,
23 1 - 3x,
24 2 - 2x,
25 3 - 4x
26
27- gpio-controller: Specifies that the node is a gpio controller.
28- #address-cells: should be 1.
29- #size-cells: should be 1.
30
31Example:
32
33 gpa0: gpio-controller@11400000 {
34 #address-cells = <1>;
35 #size-cells = <1>;
36 compatible = "samsung,exynos4-gpio";
37 reg = <0x11400000 0x20>;
38 #gpio-cells = <4>;
39 gpio-controller;
40 };
Documentation/devicetree/bindings/i2c/i2c-designware.txt+22−0
@@ -0,0 +1,22 @@
1* Synopsys DesignWare I2C
2
3Required properties :
4
5 - compatible : should be "snps,designware-i2c"
6 - reg : Offset and length of the register set for the device
7 - interrupts : <IRQ> where IRQ is the interrupt number.
8
9Recommended properties :
10
11 - clock-frequency : desired I2C bus clock frequency in Hz.
12
13Example :
14
15 i2c@f0000 {
16 #address-cells = <1>;
17 #size-cells = <0>;
18 compatible = "snps,designware-i2c";
19 reg = <0xf0000 0x1000>;
20 interrupts = <11>;
21 clock-frequency = <400000>;
22 };
Documentation/devicetree/bindings/i2c/omap-i2c.txt+30−0
@@ -0,0 +1,30 @@
1I2C for OMAP platforms
2
3Required properties :
4- compatible : Must be "ti,omap3-i2c" or "ti,omap4-i2c"
5- ti,hwmods : Must be "i2c<n>", n being the instance number (1-based)
6- #address-cells = <1>;
7- #size-cells = <0>;
8
9Recommended properties :
10- clock-frequency : Desired I2C bus clock frequency in Hz. Otherwise
11 the default 100 kHz frequency will be used.
12
13Optional properties:
14- Child nodes conforming to i2c bus binding
15
16Note: Current implementation will fetch base address, irq and dma
17from omap hwmod data base during device registration.
18Future plan is to migrate hwmod data base contents into device tree
19blob so that, all the required data will be used from device tree dts
20file.
21
22Examples :
23
24i2c1: i2c@0 {
25 compatible = "ti,omap3-i2c";
26 #address-cells = <1>;
27 #size-cells = <0>;
28 ti,hwmods = "i2c1";
29 clock-frequency = <400000>;
30};
Documentation/devicetree/bindings/i2c/trivial-devices.txt+58−0
@@ -0,0 +1,58 @@
1This is a list of trivial i2c devices that have simple device tree
2bindings, consisting only of a compatible field, an address and
3possibly an interrupt line.
4
5If a device needs more specific bindings, such as properties to
6describe some aspect of it, there needs to be a specific binding
7document for it just like any other devices.
8
9
10Compatible Vendor / Chip
11========== =============
12ad,ad7414 SMBus/I2C Digital Temperature Sensor in 6-Pin SOT with SMBus Alert and Over Temperature Pin
13ad,adm9240 ADM9240: Complete System Hardware Monitor for uProcessor-Based Systems
14adi,adt7461 +/-1C TDM Extended Temp Range I.C
15adt7461 +/-1C TDM Extended Temp Range I.C
16at,24c08 i2c serial eeprom (24cxx)
17atmel,24c02 i2c serial eeprom (24cxx)
18catalyst,24c32 i2c serial eeprom
19dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock
20dallas,ds1338 I2C RTC with 56-Byte NV RAM
21dallas,ds1339 I2C Serial Real-Time Clock
22dallas,ds1340 I2C RTC with Trickle Charger
23dallas,ds1374 I2C, 32-Bit Binary Counter Watchdog RTC with Trickle Charger and Reset Input/Output
24dallas,ds1631 High-Precision Digital Thermometer
25dallas,ds1682 Total-Elapsed-Time Recorder with Alarm
26dallas,ds1775 Tiny Digital Thermometer and Thermostat
27dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM
28dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O
29dallas,ds75 Digital Thermometer and Thermostat
30dialog,da9053 DA9053: flexible system level PMIC with multicore support
31epson,rx8025 High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE
32epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE
33fsl,mag3110 MAG3110: Xtrinsic High Accuracy, 3D Magnetometer
34fsl,mc13892 MC13892: Power Management Integrated Circuit (PMIC) for i.MX35/51
35fsl,mma8450 MMA8450Q: Xtrinsic Low-power, 3-axis Xtrinsic Accelerometer
36fsl,mpr121 MPR121: Proximity Capacitive Touch Sensor Controller
37fsl,sgtl5000 SGTL5000: Ultra Low-Power Audio Codec
38maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator
39maxim,max1237 Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
40maxim,max6625 9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface
41mc,rv3029c2 Real Time Clock Module with I2C-Bus
42national,lm75 I2C TEMP SENSOR
43national,lm80 Serial Interface ACPI-Compatible Microprocessor System Hardware Monitor
44national,lm92 ±0.33°C Accurate, 12-Bit + Sign Temperature Sensor and Thermal Window Comparator with Two-Wire Interface
45nxp,pca9556 Octal SMBus and I2C registered interface
46nxp,pca9557 8-bit I2C-bus and SMBus I/O port with reset
47nxp,pcf8563 Real-time clock/calendar
48ovti,ov5642 OV5642: Color CMOS QSXGA (5-megapixel) Image Sensor with OmniBSI and Embedded TrueFocus
49pericom,pt7c4338 Real-time Clock Module
50plx,pex8648 48-Lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch
51ramtron,24c64 i2c serial eeprom (24cxx)
52ricoh,rs5c372a I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
53samsung,24ad0xd1 S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power)
54st-micro,24c256 i2c serial eeprom (24cxx)
55stm,m41t00 Serial Access TIMEKEEPER
56stm,m41t62 Serial real-time clock (RTC) with alarm
57stm,m41t80 M41T80 - SERIAL ACCESS RTC WITH ALARMS
58ti,tsc2003 I2C Touch-Screen Controller
Documentation/devicetree/bindings/input/samsung-keypad.txt+88−0
@@ -0,0 +1,88 @@
1* Samsung's Keypad Controller device tree bindings
2
3Samsung's Keypad controller is used to interface a SoC with a matrix-type
4keypad device. The keypad controller supports multiple row and column lines.
5A key can be placed at each intersection of a unique row and a unique column.
6The keypad controller can sense a key-press and key-release and report the
7event using a interrupt to the cpu.
8
9Required SoC Specific Properties:
10- compatible: should be one of the following
11 - "samsung,s3c6410-keypad": For controllers compatible with s3c6410 keypad
12 controller.
13 - "samsung,s5pv210-keypad": For controllers compatible with s5pv210 keypad
14 controller.
15
16- reg: physical base address of the controller and length of memory mapped
17 region.
18
19- interrupts: The interrupt number to the cpu.
20
21Required Board Specific Properties:
22- samsung,keypad-num-rows: Number of row lines connected to the keypad
23 controller.
24
25- samsung,keypad-num-columns: Number of column lines connected to the
26 keypad controller.
27
28- row-gpios: List of gpios used as row lines. The gpio specifier for
29 this property depends on the gpio controller to which these row lines
30 are connected.
31
32- col-gpios: List of gpios used as column lines. The gpio specifier for
33 this property depends on the gpio controller to which these column
34 lines are connected.
35
36- Keys represented as child nodes: Each key connected to the keypad
37 controller is represented as a child node to the keypad controller
38 device node and should include the following properties.
39 - keypad,row: the row number to which the key is connected.
40 - keypad,column: the column number to which the key is connected.
41 - linux,code: the key-code to be reported when the key is pressed
42 and released.
43
44Optional Properties specific to linux:
45- linux,keypad-no-autorepeat: do no enable autorepeat feature.
46- linux,keypad-wakeup: use any event on keypad as wakeup event.
47
48
49Example:
50 keypad@100A0000 {
51 compatible = "samsung,s5pv210-keypad";
52 reg = <0x100A0000 0x100>;
53 interrupts = <173>;
54 samsung,keypad-num-rows = <2>;
55 samsung,keypad-num-columns = <8>;
56 linux,input-no-autorepeat;
57 linux,input-wakeup;
58
59 row-gpios = <&gpx2 0 3 3 0
60 &gpx2 1 3 3 0>;
61
62 col-gpios = <&gpx1 0 3 0 0
63 &gpx1 1 3 0 0
64 &gpx1 2 3 0 0
65 &gpx1 3 3 0 0
66 &gpx1 4 3 0 0
67 &gpx1 5 3 0 0
68 &gpx1 6 3 0 0
69 &gpx1 7 3 0 0>;
70
71 key_1 {
72 keypad,row = <0>;
73 keypad,column = <3>;
74 linux,code = <2>;
75 };
76
77 key_2 {
78 keypad,row = <0>;
79 keypad,column = <4>;
80 linux,code = <3>;
81 };
82
83 key_3 {
84 keypad,row = <0>;
85 keypad,column = <5>;
86 linux,code = <4>;
87 };
88 };
Documentation/devicetree/bindings/input/tegra-kbc.txt+18−0
@@ -0,0 +1,18 @@
1* Tegra keyboard controller
2
3Required properties:
4- compatible: "nvidia,tegra20-kbc"
5
6Optional properties:
7- debounce-delay: delay in milliseconds per row scan for debouncing
8- repeat-delay: delay in milliseconds before repeat starts
9- ghost-filter: enable ghost filtering for this device
10- wakeup-source: configure keyboard as a wakeup source for suspend/resume
11
12Example:
13
14keyboard: keyboard {
15 compatible = "nvidia,tegra20-kbc";
16 reg = <0x7000e200 0x100>;
17 ghost-filter;
18};
Documentation/devicetree/bindings/mfd/mc13xxx.txt+78−0
@@ -0,0 +1,78 @@
1* Freescale MC13783/MC13892 Power Management Integrated Circuit (PMIC)
2
3Required properties:
4- compatible : Should be "fsl,mc13783" or "fsl,mc13892"
5
6Optional properties:
7- fsl,mc13xxx-uses-adc : Indicate the ADC is being used
8- fsl,mc13xxx-uses-codec : Indicate the Audio Codec is being used
9- fsl,mc13xxx-uses-rtc : Indicate the RTC is being used
10- fsl,mc13xxx-uses-touch : Indicate the touchscreen controller is being used
11
12Sub-nodes:
13- regulators : Contain the regulator nodes. The MC13892 regulators are
14 bound using their names as listed below with their registers and bits
15 for enabling.
16
17 vcoincell : regulator VCOINCELL (register 13, bit 23)
18 sw1 : regulator SW1 (register 24, bit 0)
19 sw2 : regulator SW2 (register 25, bit 0)
20 sw3 : regulator SW3 (register 26, bit 0)
21 sw4 : regulator SW4 (register 27, bit 0)
22 swbst : regulator SWBST (register 29, bit 20)
23 vgen1 : regulator VGEN1 (register 32, bit 0)
24 viohi : regulator VIOHI (register 32, bit 3)
25 vdig : regulator VDIG (register 32, bit 9)
26 vgen2 : regulator VGEN2 (register 32, bit 12)
27 vpll : regulator VPLL (register 32, bit 15)
28 vusb2 : regulator VUSB2 (register 32, bit 18)
29 vgen3 : regulator VGEN3 (register 33, bit 0)
30 vcam : regulator VCAM (register 33, bit 6)
31 vvideo : regulator VVIDEO (register 33, bit 12)
32 vaudio : regulator VAUDIO (register 33, bit 15)
33 vsd : regulator VSD (register 33, bit 18)
34 gpo1 : regulator GPO1 (register 34, bit 6)
35 gpo2 : regulator GPO2 (register 34, bit 8)
36 gpo3 : regulator GPO3 (register 34, bit 10)
37 gpo4 : regulator GPO4 (register 34, bit 12)
38 pwgt1spi : regulator PWGT1SPI (register 34, bit 15)
39 pwgt2spi : regulator PWGT2SPI (register 34, bit 16)
40 vusb : regulator VUSB (register 50, bit 3)
41
42 The bindings details of individual regulator device can be found in:
43 Documentation/devicetree/bindings/regulator/regulator.txt
44
45Examples:
46
47ecspi@70010000 { /* ECSPI1 */
48 fsl,spi-num-chipselects = <2>;
49 cs-gpios = <&gpio3 24 0>, /* GPIO4_24 */
50 <&gpio3 25 0>; /* GPIO4_25 */
51 status = "okay";
52
53 pmic: mc13892@0 {
54 #address-cells = <1>;
55 #size-cells = <0>;
56 compatible = "fsl,mc13892";
57 spi-max-frequency = <6000000>;
58 reg = <0>;
59 interrupt-parent = <&gpio0>;
60 interrupts = <8>;
61
62 regulators {
63 sw1_reg: mc13892__sw1 {
64 regulator-min-microvolt = <600000>;
65 regulator-max-microvolt = <1375000>;
66 regulator-boot-on;
67 regulator-always-on;
68 };
69
70 sw2_reg: mc13892__sw2 {
71 regulator-min-microvolt = <900000>;
72 regulator-max-microvolt = <1850000>;
73 regulator-boot-on;
74 regulator-always-on;
75 };
76 };
77 };
78};
Documentation/devicetree/bindings/mfd/twl-familly.txt+47−0
@@ -0,0 +1,47 @@
1Texas Instruments TWL family
2
3The TWLs are Integrated Power Management Chips.
4Some version might contain much more analog function like
5USB transceiver or Audio amplifier.
6These chips are connected to an i2c bus.
7
8
9Required properties:
10- compatible : Must be "ti,twl4030";
11 For Integrated power-management/audio CODEC device used in OMAP3
12 based boards
13- compatible : Must be "ti,twl6030";
14 For Integrated power-management used in OMAP4 based boards
15- interrupts : This i2c device has an IRQ line connected to the main SoC
16- interrupt-controller : Since the twl support several interrupts internally,
17 it is considered as an interrupt controller cascaded to the SoC one.
18- #interrupt-cells = <1>;
19- interrupt-parent : The parent interrupt controller.
20
21Optional node:
22- Child nodes contain in the twl. The twl family is made of several variants
23 that support a different number of features.
24 The children nodes will thus depend of the capability of the variant.
25
26
27Example:
28/*
29 * Integrated Power Management Chip
30 * http://www.ti.com/lit/ds/symlink/twl6030.pdf
31 */
32twl@48 {
33 compatible = "ti,twl6030";
34 reg = <0x48>;
35 interrupts = <39>; /* IRQ_SYS_1N cascaded to gic */
36 interrupt-controller;
37 #interrupt-cells = <1>;
38 interrupt-parent = <&gic>;
39 #address-cells = <1>;
40 #size-cells = <0>;
41
42 twl_rtc {
43 compatible = "ti,twl_rtc";
44 interrupts = <11>;
45 reg = <0>;
46 };
47};
Documentation/devicetree/bindings/mtd/gpio-control-nand.txt+44−0
@@ -0,0 +1,44 @@
1GPIO assisted NAND flash
2
3The GPIO assisted NAND flash uses a memory mapped interface to
4read/write the NAND commands and data and GPIO pins for the control
5signals.
6
7Required properties:
8- compatible : "gpio-control-nand"
9- reg : should specify localbus chip select and size used for the chip. The
10 resource describes the data bus connected to the NAND flash and all accesses
11 are made in native endianness.
12- #address-cells, #size-cells : Must be present if the device has sub-nodes
13 representing partitions.
14- gpios : specifies the gpio pins to control the NAND device. nwp is an
15 optional gpio and may be set to 0 if not present.
16
17Optional properties:
18- bank-width : Width (in bytes) of the device. If not present, the width
19 defaults to 1 byte.
20- chip-delay : chip dependent delay for transferring data from array to
21 read registers (tR). If not present then a default of 20us is used.
22- gpio-control-nand,io-sync-reg : A 64-bit physical address for a read
23 location used to guard against bus reordering with regards to accesses to
24 the GPIO's and the NAND flash data bus. If present, then after changing
25 GPIO state and before and after command byte writes, this register will be
26 read to ensure that the GPIO accesses have completed.
27
28Examples:
29
30gpio-nand@1,0 {
31 compatible = "gpio-control-nand";
32 reg = <1 0x0000 0x2>;
33 #address-cells = <1>;
34 #size-cells = <1>;
35 gpios = <&banka 1 0 /* rdy */
36 &banka 2 0 /* nce */
37 &banka 3 0 /* ale */
38 &banka 4 0 /* cle */
39 0 /* nwp */>;
40
41 partition@0 {
42 ...
43 };
44};
Documentation/devicetree/bindings/net/calxeda-xgmac.txt+15−0
@@ -0,0 +1,15 @@
1* Calxeda Highbank 10Gb XGMAC Ethernet
2
3Required properties:
4- compatible : Should be "calxeda,hb-xgmac"
5- reg : Address and length of the register set for the device
6- interrupts : Should contain 3 xgmac interrupts. The 1st is main interrupt.
7 The 2nd is pwr mgt interrupt. The 3rd is low power state interrupt.
8
9Example:
10
11ethernet@fff50000 {
12 compatible = "calxeda,hb-xgmac";
13 reg = <0xfff50000 0x1000>;
14 interrupts = <0 77 4 0 78 4 0 79 4>;
15};
Documentation/devicetree/bindings/net/can/cc770.txt+53−0
@@ -0,0 +1,53 @@
1Memory mapped Bosch CC770 and Intel AN82527 CAN controller
2
3Note: The CC770 is a CAN controller from Bosch, which is 100%
4compatible with the old AN82527 from Intel, but with "bugs" being fixed.
5
6Required properties:
7
8- compatible : should be "bosch,cc770" for the CC770 and "intc,82527"
9 for the AN82527.
10
11- reg : should specify the chip select, address offset and size required
12 to map the registers of the controller. The size is usually 0x80.
13
14- interrupts : property with a value describing the interrupt source
15 (number and sensitivity) required for the controller.
16
17Optional properties:
18
19- bosch,external-clock-frequency : frequency of the external oscillator
20 clock in Hz. Note that the internal clock frequency used by the
21 controller is half of that value. If not specified, a default
22 value of 16000000 (16 MHz) is used.
23
24- bosch,clock-out-frequency : slock frequency in Hz on the CLKOUT pin.
25 If not specified or if the specified value is 0, the CLKOUT pin
26 will be disabled.
27
28- bosch,slew-rate : slew rate of the CLKOUT signal. If not specified,
29 a resonable value will be calculated.
30
31- bosch,disconnect-rx0-input : see data sheet.
32
33- bosch,disconnect-rx1-input : see data sheet.
34
35- bosch,disconnect-tx1-output : see data sheet.
36
37- bosch,polarity-dominant : see data sheet.
38
39- bosch,divide-memory-clock : see data sheet.
40
41- bosch,iso-low-speed-mux : see data sheet.
42
43For further information, please have a look to the CC770 or AN82527.
44
45Examples:
46
47can@3,100 {
48 compatible = "bosch,cc770";
49 reg = <3 0x100 0x80>;
50 interrupts = <2 0>;
51 interrupt-parent = <&mpic>;
52 bosch,external-clock-frequency = <16000000>;
53};
Documentation/devicetree/bindings/net/macb.txt+25−0
@@ -0,0 +1,25 @@
1* Cadence MACB/GEM Ethernet controller
2
3Required properties:
4- compatible: Should be "cdns,[<chip>-]{macb|gem}"
5 Use "cdns,at91sam9260-macb" Atmel at91sam9260 and at91sam9263 SoCs.
6 Use "cdns,at32ap7000-macb" for other 10/100 usage or use the generic form: "cdns,macb".
7 Use "cnds,pc302-gem" for Picochip picoXcell pc302 and later devices based on
8 the Cadence GEM, or the generic form: "cdns,gem".
9- reg: Address and length of the register set for the device
10- interrupts: Should contain macb interrupt
11- phy-mode: String, operation mode of the PHY interface.
12 Supported values are: "mii", "rmii", "gmii", "rgmii".
13
14Optional properties:
15- local-mac-address: 6 bytes, mac address
16
17Examples:
18
19 macb0: ethernet@fffc4000 {
20 compatible = "cdns,at32ap7000-macb";
21 reg = <0xfffc4000 0x4000>;
22 interrupts = <21>;
23 phy-mode = "rmii";
24 local-mac-address = [3a 0e 03 04 05 06];
25 };
Documentation/devicetree/bindings/nvec/nvec_nvidia.txt+9−0
@@ -0,0 +1,9 @@
1NVIDIA compliant embedded controller
2
3Required properties:
4- compatible : should be "nvidia,nvec".
5- reg : the iomem of the i2c slave controller
6- interrupts : the interrupt line of the i2c slave controller
7- clock-frequency : the frequency of the i2c bus
8- gpios : the gpio used for ec request
9- slave-addr: the i2c address of the slave controller
Documentation/devicetree/bindings/power_supply/olpc_battery.txt+5−0
@@ -0,0 +1,5 @@
1OLPC battery
2~~~~~~~~~~~~
3
4Required properties:
5 - compatible : "olpc,xo1-battery"
Documentation/devicetree/bindings/power_supply/sbs_sbs-battery.txt+23−0
@@ -0,0 +1,23 @@
1SBS sbs-battery
2~~~~~~~~~~
3
4Required properties :
5 - compatible : "sbs,sbs-battery"
6
7Optional properties :
8 - sbs,i2c-retry-count : The number of times to retry i2c transactions on i2c
9 IO failure.
10 - sbs,poll-retry-count : The number of times to try looking for new status
11 after an external change notification.
12 - sbs,battery-detect-gpios : The gpio which signals battery detection and
13 a flag specifying its polarity.
14
15Example:
16
17 bq20z75@b {
18 compatible = "sbs,sbs-battery";
19 reg = < 0xb >;
20 sbs,i2c-retry-count = <2>;
21 sbs,poll-retry-count = <10>;
22 sbs,battery-detect-gpios = <&gpio-controller 122 1>;
23 }
Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt+163−0
@@ -0,0 +1,163 @@
1Message unit node:
2
3For SRIO controllers that implement the message unit as part of the controller
4this node is required. For devices with RMAN this node should NOT exist. The
5node is composed of three types of sub-nodes ("fsl-srio-msg-unit",
6"fsl-srio-dbell-unit" and "fsl-srio-port-write-unit").
7
8See srio.txt for more details about generic SRIO controller details.
9
10 - compatible
11 Usage: required
12 Value type: <string>
13 Definition: Must include "fsl,srio-rmu-vX.Y", "fsl,srio-rmu".
14
15 The version X.Y should match the general SRIO controller's IP Block
16 revision register's Major(X) and Minor (Y) value.
17
18 - reg
19 Usage: required
20 Value type: <prop-encoded-array>
21 Definition: A standard property. Specifies the physical address and
22 length of the SRIO configuration registers for message units
23 and doorbell units.
24
25 - fsl,liodn
26 Usage: optional-but-recommended (for devices with PAMU)
27 Value type: <prop-encoded-array>
28 Definition: The logical I/O device number for the PAMU (IOMMU) to be
29 correctly configured for SRIO accesses. The property should
30 not exist on devices that do not support PAMU.
31
32 The LIODN value is associated with all RMU transactions
33 (msg-unit, doorbell, port-write).
34
35Sub-Nodes for RMU: The RMU node is composed of multiple sub-nodes that
36correspond to the actual sub-controllers in the RMU. The manual for a given
37SoC will detail which and how many of these sub-controllers are implemented.
38
39Message Unit:
40
41 - compatible
42 Usage: required
43 Value type: <string>
44 Definition: Must include "fsl,srio-msg-unit-vX.Y", "fsl,srio-msg-unit".
45
46 The version X.Y should match the general SRIO controller's IP Block
47 revision register's Major(X) and Minor (Y) value.
48
49 - reg
50 Usage: required
51 Value type: <prop-encoded-array>
52 Definition: A standard property. Specifies the physical address and
53 length of the SRIO configuration registers for message units
54 and doorbell units.
55
56 - interrupts
57 Usage: required
58 Value type: <prop_encoded-array>
59 Definition: Specifies the interrupts generated by this device. The
60 value of the interrupts property consists of one interrupt
61 specifier. The format of the specifier is defined by the
62 binding document describing the node's interrupt parent.
63
64 A pair of IRQs are specified in this property. The first
65 element is associated with the transmit (TX) interrupt and the
66 second element is associated with the receive (RX) interrupt.
67
68Doorbell Unit:
69
70 - compatible
71 Usage: required
72 Value type: <string>
73 Definition: Must include:
74 "fsl,srio-dbell-unit-vX.Y", "fsl,srio-dbell-unit"
75
76 The version X.Y should match the general SRIO controller's IP Block
77 revision register's Major(X) and Minor (Y) value.
78
79 - reg
80 Usage: required
81 Value type: <prop-encoded-array>
82 Definition: A standard property. Specifies the physical address and
83 length of the SRIO configuration registers for message units
84 and doorbell units.
85
86 - interrupts
87 Usage: required
88 Value type: <prop_encoded-array>
89 Definition: Specifies the interrupts generated by this device. The
90 value of the interrupts property consists of one interrupt
91 specifier. The format of the specifier is defined by the
92 binding document describing the node's interrupt parent.
93
94 A pair of IRQs are specified in this property. The first
95 element is associated with the transmit (TX) interrupt and the
96 second element is associated with the receive (RX) interrupt.
97
98Port-Write Unit:
99
100 - compatible
101 Usage: required
102 Value type: <string>
103 Definition: Must include:
104 "fsl,srio-port-write-unit-vX.Y", "fsl,srio-port-write-unit"
105
106 The version X.Y should match the general SRIO controller's IP Block
107 revision register's Major(X) and Minor (Y) value.
108
109 - reg
110 Usage: required
111 Value type: <prop-encoded-array>
112 Definition: A standard property. Specifies the physical address and
113 length of the SRIO configuration registers for message units
114 and doorbell units.
115
116 - interrupts
117 Usage: required
118 Value type: <prop_encoded-array>
119 Definition: Specifies the interrupts generated by this device. The
120 value of the interrupts property consists of one interrupt
121 specifier. The format of the specifier is defined by the
122 binding document describing the node's interrupt parent.
123
124 A single IRQ that handles port-write conditions is
125 specified by this property. (Typically shared with error).
126
127 Note: All other standard properties (see the ePAPR) are allowed
128 but are optional.
129
130Example:
131 rmu: rmu@d3000 {
132 compatible = "fsl,srio-rmu";
133 reg = <0xd3000 0x400>;
134 ranges = <0x0 0xd3000 0x400>;
135 fsl,liodn = <0xc8>;
136
137 message-unit@0 {
138 compatible = "fsl,srio-msg-unit";
139 reg = <0x0 0x100>;
140 interrupts = <
141 60 2 0 0 /* msg1_tx_irq */
142 61 2 0 0>;/* msg1_rx_irq */
143 };
144 message-unit@100 {
145 compatible = "fsl,srio-msg-unit";
146 reg = <0x100 0x100>;
147 interrupts = <
148 62 2 0 0 /* msg2_tx_irq */
149 63 2 0 0>;/* msg2_rx_irq */
150 };
151 doorbell-unit@400 {
152 compatible = "fsl,srio-dbell-unit";
153 reg = <0x400 0x80>;
154 interrupts = <
155 56 2 0 0 /* bell_outb_irq */
156 57 2 0 0>;/* bell_inb_irq */
157 };
158 port-write-unit@4e0 {
159 compatible = "fsl,srio-port-write-unit";
160 reg = <0x4e0 0x20>;
161 interrupts = <16 2 1 11>;
162 };
163 };
Documentation/devicetree/bindings/powerpc/fsl/srio.txt+103−0
@@ -0,0 +1,103 @@
1* Freescale Serial RapidIO (SRIO) Controller
2
3RapidIO port node:
4Properties:
5 - compatible
6 Usage: required
7 Value type: <string>
8 Definition: Must include "fsl,srio" for IP blocks with IP Block
9 Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0.
10
11 Optionally, a compatiable string of "fsl,srio-vX.Y" where X is Major
12 version in IP Block Revision Register and Y is Minor version. If this
13 compatiable is provided it should be ordered before "fsl,srio".
14
15 - reg
16 Usage: required
17 Value type: <prop-encoded-array>
18 Definition: A standard property. Specifies the physical address and
19 length of the SRIO configuration registers. The size should
20 be set to 0x11000.
21
22 - interrupts
23 Usage: required
24 Value type: <prop_encoded-array>
25 Definition: Specifies the interrupts generated by this device. The
26 value of the interrupts property consists of one interrupt
27 specifier. The format of the specifier is defined by the
28 binding document describing the node's interrupt parent.
29
30 A single IRQ that handles error conditions is specified by this
31 property. (Typically shared with port-write).
32
33 - fsl,srio-rmu-handle:
34 Usage: required if rmu node is defined
35 Value type: <phandle>
36 Definition: A single <phandle> value that points to the RMU.
37 (See srio-rmu.txt for more details on RMU node binding)
38
39Port Child Nodes: There should a port child node for each port that exists in
40the controller. The ports are numbered starting at one (1) and should have
41the following properties:
42
43 - cell-index
44 Usage: required
45 Value type: <u32>
46 Definition: A standard property. Matches the port id.
47
48 - ranges
49 Usage: required if local access windows preset
50 Value type: <prop-encoded-array>
51 Definition: A standard property. Utilized to describe the memory mapped
52 IO space utilized by the controller. This corresponds to the
53 setting of the local access windows that are targeted to this
54 SRIO port.
55
56 - fsl,liodn
57 Usage: optional-but-recommended (for devices with PAMU)
58 Value type: <prop-encoded-array>
59 Definition: The logical I/O device number for the PAMU (IOMMU) to be
60 correctly configured for SRIO accesses. The property should
61 not exist on devices that do not support PAMU.
62
63 For HW (ie, the P4080) that only supports a LIODN for both
64 memory and maintenance transactions then a single LIODN is
65 represented in the property for both transactions.
66
67 For HW (ie, the P304x/P5020, etc) that supports an LIODN for
68 memory transactions and a unique LIODN for maintenance
69 transactions then a pair of LIODNs are represented in the
70 property. Within the pair, the first element represents the
71 LIODN associated with memory transactions and the second element
72 represents the LIODN associated with maintenance transactions
73 for the port.
74
75Note: All other standard properties (see ePAPR) are allowed but are optional.
76
77Example:
78
79 rapidio: rapidio@ffe0c0000 {
80 #address-cells = <2>;
81 #size-cells = <2>;
82 reg = <0xf 0xfe0c0000 0 0x11000>;
83 compatible = "fsl,srio";
84 interrupts = <16 2 1 11>; /* err_irq */
85 fsl,srio-rmu-handle = <&rmu>;
86 ranges;
87
88 port1 {
89 cell-index = <1>;
90 #address-cells = <2>;
91 #size-cells = <2>;
92 fsl,liodn = <34>;
93 ranges = <0 0 0xc 0x20000000 0 0x10000000>;
94 };
95
96 port2 {
97 cell-index = <2>;
98 #address-cells = <2>;
99 #size-cells = <2>;
100 fsl,liodn = <48>;
101 ranges = <0 0 0xc 0x30000000 0 0x10000000>;
102 };
103 };
Documentation/devicetree/bindings/regulator/fixed-regulator.txt+29−0
@@ -0,0 +1,29 @@
1Fixed Voltage regulators
2
3Required properties:
4- compatible: Must be "regulator-fixed";
5
6Optional properties:
7- gpio: gpio to use for enable control
8- startup-delay-us: startup time in microseconds
9- enable-active-high: Polarity of GPIO is Active high
10If this property is missing, the default assumed is Active low.
11
12Any property defined as part of the core regulator
13binding, defined in regulator.txt, can also be used.
14However a fixed voltage regulator is expected to have the
15regulator-min-microvolt and regulator-max-microvolt
16to be the same.
17
18Example:
19
20 abc: fixedregulator@0 {
21 compatible = "regulator-fixed";
22 regulator-name = "fixed-supply";
23 regulator-min-microvolt = <1800000>;
24 regulator-max-microvolt = <1800000>;
25 gpio = <&gpio1 16 0>;
26 startup-delay-us = <70000>;
27 enable-active-high;
28 regulator-boot-on
29 };
Documentation/devicetree/bindings/regulator/regulator.txt+54−0
@@ -0,0 +1,54 @@
1Voltage/Current Regulators
2
3Optional properties:
4- regulator-name: A string used as a descriptive name for regulator outputs
5- regulator-min-microvolt: smallest voltage consumers may set
6- regulator-max-microvolt: largest voltage consumers may set
7- regulator-microvolt-offset: Offset applied to voltages to compensate for voltage drops
8- regulator-min-microamp: smallest current consumers may set
9- regulator-max-microamp: largest current consumers may set
10- regulator-always-on: boolean, regulator should never be disabled
11- regulator-boot-on: bootloader/firmware enabled regulator
12- <name>-supply: phandle to the parent supply/regulator node
13
14Example:
15
16 xyzreg: regulator@0 {
17 regulator-min-microvolt = <1000000>;
18 regulator-max-microvolt = <2500000>;
19 regulator-always-on;
20 vin-supply = <&vin>;
21 };
22
23Regulator Consumers:
24Consumer nodes can reference one or more of its supplies/
25regulators using the below bindings.
26
27- <name>-supply: phandle to the regulator node
28
29These are the same bindings that a regulator in the above
30example used to reference its own supply, in which case
31its just seen as a special case of a regulator being a
32consumer itself.
33
34Example of a consumer device node (mmc) referencing two
35regulators (twl_reg1 and twl_reg2),
36
37 twl_reg1: regulator@0 {
38 ...
39 ...
40 ...
41 };
42
43 twl_reg2: regulator@1 {
44 ...
45 ...
46 ...
47 };
48
49 mmc: mmc@0x0 {
50 ...
51 ...
52 vmmc-supply = <&twl_reg1>;
53 vmmcaux-supply = <&twl_reg2>;
54 };
Documentation/devicetree/bindings/resource-names.txt+54−0
@@ -0,0 +1,54 @@
1Some properties contain an ordered list of 1 or more datum which are
2normally accessed by index. However, some devices will have multiple
3values which are more naturally accessed by name. Device nodes can
4include a supplemental property for assigning names to each of the list
5items. The names property consists of a list of strings in the same
6order as the data in the resource property.
7
8The following supplemental names properties are defined.
9
10Resource Property Supplemental Names Property
11----------------- ---------------------------
12reg reg-names
13clocks clock-names
14interrupts interrupt-names
15
16Usage:
17
18The -names property must be used in conjunction with the normal resource
19property. If not it will be ignored.
20
21Examples:
22
23l4-abe {
24 compatible = "simple-bus";
25 #address-cells = <2>;
26 #size-cells = <1>;
27 ranges = <0 0 0x48000000 0x00001000>, /* MPU path */
28 <1 0 0x49000000 0x00001000>; /* L3 path */
29 mcasp {
30 compatible = "ti,mcasp";
31 reg = <0 0x10 0x10>, <0 0x20 0x10>,
32 <1 0x10 0x10>, <1 0x20 0x10>;
33 reg-names = "mpu", "dat",
34 "dma", "dma_dat";
35 interrupts = <11>, <12>;
36 interrupt-names = "rx", "tx";
37 };
38
39 timer {
40 compatible = "ti,timer";
41 reg = <0 0x40 0x10>, <1 0x40 0x10>;
42 reg-names = "mpu", "dma";
43 };
44};
45
46
47usb {
48 compatible = "ti,usb-host";
49 reg = <0x4a064000 0x800>, <0x4a064800 0x200>,
50 <0x4a064c00 0x200>;
51 reg-names = "config", "ohci", "ehci";
52 interrupts = <14>, <15>;
53 interrupt-names = "ohci", "ehci";
54};
Documentation/devicetree/bindings/rtc/s3c-rtc.txt+20−0
@@ -0,0 +1,20 @@
1* Samsung's S3C Real Time Clock controller
2
3Required properties:
4- compatible: should be one of the following.
5 * "samsung,s3c2410-rtc" - for controllers compatible with s3c2410 rtc.
6 * "samsung,s3c6410-rtc" - for controllers compatible with s3c6410 rtc.
7- reg: physical base address of the controller and length of memory mapped
8 region.
9- interrupts: Two interrupt numbers to the cpu should be specified. First
10 interrupt number is the rtc alarm interupt and second interrupt number
11 is the rtc tick interrupt. The number of cells representing a interrupt
12 depends on the parent interrupt controller.
13
14Example:
15
16 rtc@10070000 {
17 compatible = "samsung,s3c6410-rtc";
18 reg = <0x10070000 0x100>;
19 interrupts = <44 0 45 0>;
20 };
Documentation/devicetree/bindings/rtc/twl-rtc.txt+12−0
@@ -0,0 +1,12 @@
1* TI twl RTC
2
3The TWL family (twl4030/6030) contains a RTC.
4
5Required properties:
6- compatible : Should be twl4030-rtc
7
8Examples:
9
10rtc@0 {
11 compatible = "ti,twl4030-rtc";
12};
Documentation/devicetree/bindings/serial/omap_serial.txt+10−0
@@ -0,0 +1,10 @@
1OMAP UART controller
2
3Required properties:
4- compatible : should be "ti,omap2-uart" for OMAP2 controllers
5- compatible : should be "ti,omap3-uart" for OMAP3 controllers
6- compatible : should be "ti,omap4-uart" for OMAP4 controllers
7- ti,hwmods : Must be "uart<n>", n being the instance number (1-based)
8
9Optional properties:
10- clock-frequency : frequency of the clock input to the UART
Documentation/devicetree/bindings/serial/samsung_uart.txt+14−0
@@ -0,0 +1,14 @@
1* Samsung's UART Controller
2
3The Samsung's UART controller is used for interfacing SoC with serial communicaion
4devices.
5
6Required properties:
7- compatible: should be
8 - "samsung,exynos4210-uart", for UART's compatible with Exynos4210 uart ports.
9
10- reg: base physical address of the controller and length of memory mapped
11 region.
12
13- interrupts: interrupt number to the cpu. The interrupt specifier format depends
14 on the interrupt controller parent.
Documentation/devicetree/bindings/sound/tegra-audio-wm8903.txt+71−0
@@ -0,0 +1,71 @@
1NVIDIA Tegra audio complex
2
3Required properties:
4- compatible : "nvidia,tegra-audio-wm8903"
5- nvidia,model : The user-visible name of this sound complex.
6- nvidia,audio-routing : A list of the connections between audio components.
7 Each entry is a pair of strings, the first being the connection's sink,
8 the second being the connection's source. Valid names for sources and
9 sinks are the WM8903's pins, and the jacks on the board:
10
11 WM8903 pins:
12
13 * IN1L
14 * IN1R
15 * IN2L
16 * IN2R
17 * IN3L
18 * IN3R
19 * DMICDAT
20 * HPOUTL
21 * HPOUTR
22 * LINEOUTL
23 * LINEOUTR
24 * LOP
25 * LON
26 * ROP
27 * RON
28 * MICBIAS
29
30 Board connectors:
31
32 * Headphone Jack
33 * Int Spk
34 * Mic Jack
35
36- nvidia,i2s-controller : The phandle of the Tegra I2S1 controller
37- nvidia,audio-codec : The phandle of the WM8903 audio codec
38
39Optional properties:
40- nvidia,spkr-en-gpios : The GPIO that enables the speakers
41- nvidia,hp-mute-gpios : The GPIO that mutes the headphones
42- nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in
43- nvidia,int-mic-en-gpios : The GPIO that enables the internal microphone
44- nvidia,ext-mic-en-gpios : The GPIO that enables the external microphone
45
46Example:
47
48sound {
49 compatible = "nvidia,tegra-audio-wm8903-harmony",
50 "nvidia,tegra-audio-wm8903"
51 nvidia,model = "tegra-wm8903-harmony";
52
53 nvidia,audio-routing =
54 "Headphone Jack", "HPOUTR",
55 "Headphone Jack", "HPOUTL",
56 "Int Spk", "ROP",
57 "Int Spk", "RON",
58 "Int Spk", "LOP",
59 "Int Spk", "LON",
60 "Mic Jack", "MICBIAS",
61 "IN1L", "Mic Jack";
62
63 nvidia,i2s-controller = <&i2s1>;
64 nvidia,audio-codec = <&wm8903>;
65
66 nvidia,spkr-en-gpios = <&codec 2 0>;
67 nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
68 nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */
69 nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */
70};
71
Documentation/devicetree/bindings/sound/tegra20-das.txt+12−0
@@ -0,0 +1,12 @@
1NVIDIA Tegra 20 DAS (Digital Audio Switch) controller
2
3Required properties:
4- compatible : "nvidia,tegra20-das"
5- reg : Should contain DAS registers location and length
6
7Example:
8
9das@70000c00 {
10 compatible = "nvidia,tegra20-das";
11 reg = <0x70000c00 0x80>;
12};
Documentation/devicetree/bindings/sound/tegra20-i2s.txt+17−0
@@ -0,0 +1,17 @@
1NVIDIA Tegra 20 I2S controller
2
3Required properties:
4- compatible : "nvidia,tegra20-i2s"
5- reg : Should contain I2S registers location and length
6- interrupts : Should contain I2S interrupt
7- nvidia,dma-request-selector : The Tegra DMA controller's phandle and
8 request selector for this I2S controller
9
10Example:
11
12i2s@70002800 {
13 compatible = "nvidia,tegra20-i2s";
14 reg = <0x70002800 0x200>;
15 interrupts = < 45 >;
16 nvidia,dma-request-selector = < &apbdma 2 >;
17};
Documentation/devicetree/bindings/sound/wm8903.txt+50−0
@@ -0,0 +1,50 @@
1WM8903 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7 - compatible : "wlf,wm8903"
8
9 - reg : the I2C address of the device.
10
11 - gpio-controller : Indicates this device is a GPIO controller.
12
13 - #gpio-cells : Should be two. The first cell is the pin number and the
14 second cell is used to specify optional parameters (currently unused).
15
16Optional properties:
17
18 - interrupts : The interrupt line the codec is connected to.
19
20 - micdet-cfg : Default register value for R6 (Mic Bias). If absent, the
21 default is 0.
22
23 - micdet-delay : The debounce delay for microphone detection in mS. If
24 absent, the default is 100.
25
26 - gpio-cfg : A list of GPIO configuration register values. The list must
27 be 5 entries long. If absent, no configuration of these registers is
28 performed. If any entry has the value 0xffffffff, that GPIO's
29 configuration will not be modified.
30
31Example:
32
33codec: wm8903@1a {
34 compatible = "wlf,wm8903";
35 reg = <0x1a>;
36 interrupts = < 347 >;
37
38 gpio-controller;
39 #gpio-cells = <2>;
40
41 micdet-cfg = <0>;
42 micdet-delay = <100>;
43 gpio-cfg = <
44 0x0600 /* DMIC_LR, output */
45 0x0680 /* DMIC_DAT, input */
46 0x0000 /* GPIO, output, low */
47 0x0200 /* Interrupt, output */
48 0x01a0 /* BCLK, input, active high */
49 >;
50};
Documentation/devicetree/bindings/sound/wm8994.txt+18−0
@@ -0,0 +1,18 @@
1WM1811/WM8994/WM8958 audio CODEC
2
3These devices support both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : "wlf,wm1811", "wlf,wm8994", "wlf,wm8958"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13Example:
14
15codec: wm8994@1a {
16 compatible = "wlf,wm8994";
17 reg = <0x1a>;
18};
Documentation/devicetree/bindings/usb/tegra-usb.txt+13−0
@@ -0,0 +1,13 @@
1Tegra SOC USB controllers
2
3The device node for a USB controller that is part of a Tegra
4SOC is as described in the document "Open Firmware Recommended
5Practice : Universal Serial Bus" with the following modifications
6and additions :
7
8Required properties :
9 - compatible : Should be "nvidia,tegra20-ehci" for USB controllers
10 used in host mode.
11 - phy_type : Should be one of "ulpi" or "utmi".
12 - nvidia,vbus-gpio : If present, specifies a gpio that needs to be
13 activated for the bus to be powered.
Documentation/devicetree/bindings/vendor-prefixes.txt+5−0
@@ -8,7 +8,9 @@ amcc Applied Micro Circuits Corporation (APM, formally AMCC) · 7 unmodified lines
8apm Applied Micro Circuits Corporation (APM)8apm Applied Micro Circuits Corporation (APM)
9arm ARM Ltd.9arm ARM Ltd.
10atmel Atmel Corporation10atmel Atmel Corporation
11cavium Cavium, Inc.
11chrp Common Hardware Reference Platform12chrp Common Hardware Reference Platform
13cortina Cortina Systems, Inc.
12dallas Maxim Integrated Products (formerly Dallas Semiconductor)14dallas Maxim Integrated Products (formerly Dallas Semiconductor)
13denx Denx Software Engineering15denx Denx Software Engineering
14epson Seiko Epson Corp.16epson Seiko Epson Corp.
@@ -32,10 +34,13 @@ powervr Imagination Technologies · 17 unmodified lines
32qcom Qualcomm, Inc.34qcom Qualcomm, Inc.
33ramtron Ramtron International35ramtron Ramtron International
34samsung Samsung Semiconductor36samsung Samsung Semiconductor
37sbs Smart Battery System
35schindler Schindler38schindler Schindler
36sil Silicon Image39sil Silicon Image
37simtek40simtek
38sirf SiRF Technology, Inc.41sirf SiRF Technology, Inc.
42st STMicroelectronics
39stericsson ST-Ericsson43stericsson ST-Ericsson
40ti Texas Instruments44ti Texas Instruments
45wlf Wolfson Microelectronics
41xlnx Xilinx46xlnx Xilinx
Documentation/digsig.txt+96−0
@@ -0,0 +1,96 @@
1Digital Signature Verification API
2
3CONTENTS
4
51. Introduction
62. API
73. User-space utilities
8
9
101. Introduction
11
12Digital signature verification API provides a method to verify digital signature.
13Currently digital signatures are used by the IMA/EVM integrity protection subsystem.
14
15Digital signature verification is implemented using cut-down kernel port of
16GnuPG multi-precision integers (MPI) library. The kernel port provides
17memory allocation errors handling, has been refactored according to kernel
18coding style, and checkpatch.pl reported errors and warnings have been fixed.
19
20Public key and signature consist of header and MPIs.
21
22struct pubkey_hdr {
23 uint8_t version; /* key format version */
24 time_t timestamp; /* key made, always 0 for now */
25 uint8_t algo;
26 uint8_t nmpi;
27 char mpi[0];
28} __packed;
29
30struct signature_hdr {
31 uint8_t version; /* signature format version */
32 time_t timestamp; /* signature made */
33 uint8_t algo;
34 uint8_t hash;
35 uint8_t keyid[8];
36 uint8_t nmpi;
37 char mpi[0];
38} __packed;
39
40keyid equals to SHA1[12-19] over the total key content.
41Signature header is used as an input to generate a signature.
42Such approach insures that key or signature header could not be changed.
43It protects timestamp from been changed and can be used for rollback
44protection.
45
462. API
47
48API currently includes only 1 function:
49
50 digsig_verify() - digital signature verification with public key
51
52
53/**
54 * digsig_verify() - digital signature verification with public key
55 * @keyring: keyring to search key in
56 * @sig: digital signature
57 * @sigen: length of the signature
58 * @data: data
59 * @datalen: length of the data
60 * @return: 0 on success, -EINVAL otherwise
61 *
62 * Verifies data integrity against digital signature.
63 * Currently only RSA is supported.
64 * Normally hash of the content is used as a data for this function.
65 *
66 */
67int digsig_verify(struct key *keyring, const char *sig, int siglen,
68 const char *data, int datalen);
69
703. User-space utilities
71
72The signing and key management utilities evm-utils provide functionality
73to generate signatures, to load keys into the kernel keyring.
74Keys can be in PEM or converted to the kernel format.
75When the key is added to the kernel keyring, the keyid defines the name
76of the key: 5D2B05FC633EE3E8 in the example bellow.
77
78Here is example output of the keyctl utility.
79
80$ keyctl show
81Session Keyring
82 -3 --alswrv 0 0 keyring: _ses
83603976250 --alswrv 0 -1 \_ keyring: _uid.0
84817777377 --alswrv 0 0 \_ user: kmk
85891974900 --alswrv 0 0 \_ encrypted: evm-key
86170323636 --alswrv 0 0 \_ keyring: _module
87548221616 --alswrv 0 0 \_ keyring: _ima
88128198054 --alswrv 0 0 \_ keyring: _evm
89
90$ keyctl list 128198054
911 key in keyring:
92620789745: --alswrv 0 0 user: 5D2B05FC633EE3E8
93
94
95Dmitry Kasatkin
9606.10.2011
Documentation/dma-buf-sharing.txt+228−0
@@ -0,0 +1,228 @@
1 DMA Buffer Sharing API Guide
2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
4 Sumit Semwal
5 <sumit dot semwal at linaro dot org>
6 <sumit dot semwal at ti dot com>
7
8This document serves as a guide to device-driver writers on what is the dma-buf
9buffer sharing API, how to use it for exporting and using shared buffers.
10
11Any device driver which wishes to be a part of DMA buffer sharing, can do so as
12either the 'exporter' of buffers, or the 'user' of buffers.
13
14Say a driver A wants to use buffers created by driver B, then we call B as the
15exporter, and A as buffer-user.
16
17The exporter
18- implements and manages operations[1] for the buffer
19- allows other users to share the buffer by using dma_buf sharing APIs,
20- manages the details of buffer allocation,
21- decides about the actual backing storage where this allocation happens,
22- takes care of any migration of scatterlist - for all (shared) users of this
23 buffer,
24
25The buffer-user
26- is one of (many) sharing users of the buffer.
27- doesn't need to worry about how the buffer is allocated, or where.
28- needs a mechanism to get access to the scatterlist that makes up this buffer
29 in memory, mapped into its own address space, so it can access the same area
30 of memory.
31
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:
34- *may* be exported to user space using "mmap" *ONLY* by exporter, outside of
35 this framework.
36- may be used *ONLY* by importers that do not need CPU access to the buffer.
37
38The dma_buf buffer sharing API usage contains the following steps:
39
401. Exporter announces that it wishes to export a buffer
412. Userspace gets the file descriptor associated with the exported buffer, and
42 passes it around to potential buffer-users based on use case
433. Each buffer-user 'connects' itself to the buffer
444. When needed, buffer-user requests access to the buffer from exporter
455. When finished with its use, the buffer-user notifies end-of-DMA to exporter
466. when buffer-user is done using this buffer completely, it 'disconnects'
47 itself from the buffer.
48
49
501. Exporter's announcement of buffer export
51
52 The buffer exporter announces its wish to export a buffer. In this, it
53 connects its own private buffer data, provides implementation for operations
54 that can be performed on the exported dma_buf, and flags for the file
55 associated with this buffer.
56
57 Interface:
58 struct dma_buf *dma_buf_export(void *priv, struct dma_buf_ops *ops,
59 size_t size, int flags)
60
61 If this succeeds, dma_buf_export allocates a dma_buf structure, and returns a
62 pointer to the same. It also associates an anonymous file with this buffer,
63 so it can be exported. On failure to allocate the dma_buf object, it returns
64 NULL.
65
662. Userspace gets a handle to pass around to potential buffer-users
67
68 Userspace entity requests for a file-descriptor (fd) which is a handle to the
69 anonymous file associated with the buffer. It can then share the fd with other
70 drivers and/or processes.
71
72 Interface:
73 int dma_buf_fd(struct dma_buf *dmabuf)
74
75 This API installs an fd for the anonymous file associated with this buffer;
76 returns either 'fd', or error.
77
783. Each buffer-user 'connects' itself to the buffer
79
80 Each buffer-user now gets a reference to the buffer, using the fd passed to
81 it.
82
83 Interface:
84 struct dma_buf *dma_buf_get(int fd)
85
86 This API will return a reference to the dma_buf, and increment refcount for
87 it.
88
89 After this, the buffer-user needs to attach its device with the buffer, which
90 helps the exporter to know of device buffer constraints.
91
92 Interface:
93 struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf,
94 struct device *dev)
95
96 This API returns reference to an attachment structure, which is then used
97 for scatterlist operations. It will optionally call the 'attach' dma_buf
98 operation, if provided by the exporter.
99
100 The dma-buf sharing framework does the bookkeeping bits related to managing
101 the list of all attachments to a buffer.
102
103Until this stage, the buffer-exporter has the option to choose not to actually
104allocate the backing storage for this buffer, but wait for the first buffer-user
105to request use of buffer for allocation.
106
107
1084. When needed, buffer-user requests access to the buffer
109
110 Whenever a buffer-user wants to use the buffer for any DMA, it asks for
111 access to the buffer using dma_buf_map_attachment API. At least one attach to
112 the buffer must have happened before map_dma_buf can be called.
113
114 Interface:
115 struct sg_table * dma_buf_map_attachment(struct dma_buf_attachment *,
116 enum dma_data_direction);
117
118 This is a wrapper to dma_buf->ops->map_dma_buf operation, which hides the
119 "dma_buf->ops->" indirection from the users of this interface.
120
121 In struct dma_buf_ops, map_dma_buf is defined as
122 struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *,
123 enum dma_data_direction);
124
125 It is one of the buffer operations that must be implemented by the exporter.
126 It should return the sg_table containing scatterlist for this buffer, mapped
127 into caller's address space.
128
129 If this is being called for the first time, the exporter can now choose to
130 scan through the list of attachments for this buffer, collate the requirements
131 of the attached devices, and choose an appropriate backing storage for the
132 buffer.
133
134 Based on enum dma_data_direction, it might be possible to have multiple users
135 accessing at the same time (for reading, maybe), or any other kind of sharing
136 that the exporter might wish to make available to buffer-users.
137
138 map_dma_buf() operation can return -EINTR if it is interrupted by a signal.
139
140
1415. When finished, the buffer-user notifies end-of-DMA to exporter
142
143 Once the DMA for the current buffer-user is over, it signals 'end-of-DMA' to
144 the exporter using the dma_buf_unmap_attachment API.
145
146 Interface:
147 void dma_buf_unmap_attachment(struct dma_buf_attachment *,
148 struct sg_table *);
149
150 This is a wrapper to dma_buf->ops->unmap_dma_buf() operation, which hides the
151 "dma_buf->ops->" indirection from the users of this interface.
152
153 In struct dma_buf_ops, unmap_dma_buf is defined as
154 void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *);
155
156 unmap_dma_buf signifies the end-of-DMA for the attachment provided. Like
157 map_dma_buf, this API also must be implemented by the exporter.
158
159
1606. when buffer-user is done using this buffer, it 'disconnects' itself from the
161 buffer.
162
163 After the buffer-user has no more interest in using this buffer, it should
164 disconnect itself from the buffer:
165
166 - it first detaches itself from the buffer.
167
168 Interface:
169 void dma_buf_detach(struct dma_buf *dmabuf,
170 struct dma_buf_attachment *dmabuf_attach);
171
172 This API removes the attachment from the list in dmabuf, and optionally calls
173 dma_buf->ops->detach(), if provided by exporter, for any housekeeping bits.
174
175 - Then, the buffer-user returns the buffer reference to exporter.
176
177 Interface:
178 void dma_buf_put(struct dma_buf *dmabuf);
179
180 This API then reduces the refcount for this buffer.
181
182 If, as a result of this call, the refcount becomes 0, the 'release' file
183 operation related to this fd is called. It calls the dmabuf->ops->release()
184 operation in turn, and frees the memory allocated for dmabuf when exported.
185
186NOTES:
187- Importance of attach-detach and {map,unmap}_dma_buf operation pairs
188 The attach-detach calls allow the exporter to figure out backing-storage
189 constraints for the currently-interested devices. This allows preferential
190 allocation, and/or migration of pages across different types of storage
191 available, if possible.
192
193 Bracketing of DMA access with {map,unmap}_dma_buf operations is essential
194 to allow just-in-time backing of storage, and migration mid-way through a
195 use-case.
196
197- Migration of backing storage if needed
198 If after
199 - at least one map_dma_buf has happened,
200 - and the backing storage has been allocated for this buffer,
201 another new buffer-user intends to attach itself to this buffer, it might
202 be allowed, if possible for the exporter.
203
204 In case it is allowed by the exporter:
205 if the new buffer-user has stricter 'backing-storage constraints', and the
206 exporter can handle these constraints, the exporter can just stall on the
207 map_dma_buf until all outstanding access is completed (as signalled by
208 unmap_dma_buf).
209 Once all users have finished accessing and have unmapped this buffer, the
210 exporter could potentially move the buffer to the stricter backing-storage,
211 and then allow further {map,unmap}_dma_buf operations from any buffer-user
212 from the migrated backing-storage.
213
214 If the exporter cannot fulfil the backing-storage constraints of the new
215 buffer-user device as requested, dma_buf_attach() would return an error to
216 denote non-compatibility of the new buffer-sharing request with the current
217 buffer.
218
219 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.
221
222Miscellaneous notes:
223- Any exporters or users of the dma-buf buffer sharing framework must have
224 a 'select DMA_SHARED_BUFFER' in their respective Kconfigs.
225
226References:
227[1] struct dma_buf_ops in include/linux/dma-buf.h
228[2] All interfaces mentioned above defined in include/linux/dma-buf.h
Documentation/dmaengine.txt+8−0
@@ -75,6 +75,10 @@ The slave DMA usage consists of following steps: · 74 unmodified lines
75 slave_sg - DMA a list of scatter gather buffers from/to a peripheral75 slave_sg - DMA a list of scatter gather buffers from/to a peripheral
76 dma_cyclic - Perform a cyclic DMA operation from/to a peripheral till the76 dma_cyclic - Perform a cyclic DMA operation from/to a peripheral till the
77 operation is explicitly stopped.77 operation is explicitly stopped.
78 interleaved_dma - This is common to Slave as well as M2M clients. For slave
79 address of devices' fifo could be already known to the driver.
80 Various types of operations could be expressed by setting
81 appropriate values to the 'dma_interleaved_template' members.
78 82
79 A non-NULL return of this transfer API represents a "descriptor" for83 A non-NULL return of this transfer API represents a "descriptor" for
80 the given transaction.84 the given transaction.
@@ -89,6 +93,10 @@ The slave DMA usage consists of following steps: · 8 unmodified lines
89 struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,93 struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
90 size_t period_len, enum dma_data_direction direction);94 size_t period_len, enum dma_data_direction direction);
91 95
96 struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)(
97 struct dma_chan *chan, struct dma_interleaved_template *xt,
98 unsigned long flags);
99
92 The peripheral driver is expected to have mapped the scatterlist for100 The peripheral driver is expected to have mapped the scatterlist for
93 the DMA operation prior to calling device_prep_slave_sg, and must101 the DMA operation prior to calling device_prep_slave_sg, and must
94 keep the scatterlist mapped until the DMA operation has completed.102 keep the scatterlist mapped until the DMA operation has completed.
Documentation/dontdiff+0−1
@@ -66,7 +66,6 @@ GRTAGS · 65 unmodified lines
66GSYMS66GSYMS
67GTAGS67GTAGS
68Image68Image
69Kerntypes
70Module.markers69Module.markers
71Module.symvers70Module.symvers
72PENDING71PENDING
Documentation/driver-model/devres.txt+1−0
@@ -262,6 +262,7 @@ IOMAP · 261 unmodified lines
262 devm_ioremap()262 devm_ioremap()
263 devm_ioremap_nocache()263 devm_ioremap_nocache()
264 devm_iounmap()264 devm_iounmap()
265 devm_request_and_ioremap() : checks resource, requests region, ioremaps
265 pcim_iomap()266 pcim_iomap()
266 pcim_iounmap()267 pcim_iounmap()
267 pcim_iomap_table() : array of mapped addresses indexed by BAR268 pcim_iomap_table() : array of mapped addresses indexed by BAR
Documentation/dvb/get_dvb_firmware+40−2
@@ -27,8 +27,8 @@ use IO::Handle; · 26 unmodified lines
27 "or51211", "or51132_qam", "or51132_vsb", "bluebird",27 "or51211", "or51132_qam", "or51132_vsb", "bluebird",
28 "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",28 "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",
29 "af9015", "ngene", "az6027", "lme2510_lg", "lme2510c_s7395",29 "af9015", "ngene", "az6027", "lme2510_lg", "lme2510c_s7395",
30 "lme2510c_s7395_old", "drxk", "drxk_terratec_h5", "tda10071",30 "lme2510c_s7395_old", "drxk", "drxk_terratec_h5",
31 "it9135" );31 "drxk_hauppauge_hvr930c", "tda10071", "it9135", "it9137");
32 32
33# Check args33# Check args
34syntax() if (scalar(@ARGV) != 1);34syntax() if (scalar(@ARGV) != 1);
@@ -644,6 +644,24 @@ sub drxk { · 609 unmodified lines
644 "$fwfile"644 "$fwfile"
645}645}
646 646
647sub drxk_hauppauge_hvr930c {
648 my $url = "http://www.wintvcd.co.uk/drivers/";
649 my $zipfile = "HVR-9x0_5_10_325_28153_SIGNED.zip";
650 my $hash = "83ab82e7e9480ec8bf1ae0155ca63c88";
651 my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
652 my $drvfile = "HVR-900/emOEM.sys";
653 my $fwfile = "dvb-usb-hauppauge-hvr930c-drxk.fw";
654
655 checkstandard();
656
657 wgetfile($zipfile, $url . $zipfile);
658 verify($zipfile, $hash);
659 unzip($zipfile, $tmpdir);
660 extract("$tmpdir/$drvfile", 0x117b0, 42692, "$fwfile");
661
662 "$fwfile"
663}
664
647sub drxk_terratec_h5 {665sub drxk_terratec_h5 {
648 my $url = "http://www.linuxtv.org/downloads/firmware/";666 my $url = "http://www.linuxtv.org/downloads/firmware/";
649 my $hash = "19000dada8e2741162ccc50cc91fa7f1";667 my $hash = "19000dada8e2741162ccc50cc91fa7f1";
@@ -658,6 +676,26 @@ sub drxk_terratec_h5 { · 8 unmodified lines
658}676}
659 677
660sub it9135 {678sub it9135 {
679 my $sourcefile = "dvb-usb-it9135.zip";
680 my $url = "http://www.ite.com.tw/uploads/firmware/v3.6.0.0/$sourcefile";
681 my $hash = "1e55f6c8833f1d0ae067c2bb2953e6a9";
682 my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 0);
683 my $outfile = "dvb-usb-it9135.fw";
684 my $fwfile1 = "dvb-usb-it9135-01.fw";
685 my $fwfile2 = "dvb-usb-it9135-02.fw";
686
687 checkstandard();
688
689 wgetfile($sourcefile, $url);
690 unzip($sourcefile, $tmpdir);
691 verify("$tmpdir/$outfile", $hash);
692 extract("$tmpdir/$outfile", 64, 8128, "$fwfile1");
693 extract("$tmpdir/$outfile", 12866, 5817, "$fwfile2");
694
695 "$fwfile1 $fwfile2"
696}
697
698sub it9137 {
661 my $url = "http://kworld.server261.com/kworld/CD/ITE_TiVme/V1.00/";699 my $url = "http://kworld.server261.com/kworld/CD/ITE_TiVme/V1.00/";
662 my $zipfile = "Driver_V10.323.1.0412.100412.zip";700 my $zipfile = "Driver_V10.323.1.0412.100412.zip";
663 my $hash = "79b597dc648698ed6820845c0c9d0d37";701 my $hash = "79b597dc648698ed6820845c0c9d0d37";
Documentation/fb/api.txt+306−0
@@ -0,0 +1,306 @@
1 The Frame Buffer Device API
2 ---------------------------
3
4Last revised: June 21, 2011
5
6
70. Introduction
8---------------
9
10This document describes the frame buffer API used by applications to interact
11with frame buffer devices. In-kernel APIs between device drivers and the frame
12buffer core are not described.
13
14Due to a lack of documentation in the original frame buffer API, drivers
15behaviours differ in subtle (and not so subtle) ways. This document describes
16the recommended API implementation, but applications should be prepared to
17deal with different behaviours.
18
19
201. Capabilities
21---------------
22
23Device and driver capabilities are reported in the fixed screen information
24capabilities field.
25
26struct fb_fix_screeninfo {
27 ...
28 __u16 capabilities; /* see FB_CAP_* */
29 ...
30};
31
32Application should use those capabilities to find out what features they can
33expect from the device and driver.
34
35- FB_CAP_FOURCC
36
37The driver supports the four character code (FOURCC) based format setting API.
38When supported, formats are configured using a FOURCC instead of manually
39specifying color components layout.
40
41
422. Types and visuals
43--------------------
44
45Pixels are stored in memory in hardware-dependent formats. Applications need
46to be aware of the pixel storage format in order to write image data to the
47frame buffer memory in the format expected by the hardware.
48
49Formats are described by frame buffer types and visuals. Some visuals require
50additional information, which are stored in the variable screen information
51bits_per_pixel, grayscale, red, green, blue and transp fields.
52
53Visuals describe how color information is encoded and assembled to create
54macropixels. Types describe how macropixels are stored in memory. The following
55types and visuals are supported.
56
57- FB_TYPE_PACKED_PIXELS
58
59Macropixels are stored contiguously in a single plane. If the number of bits
60per macropixel is not a multiple of 8, whether macropixels are padded to the
61next multiple of 8 bits or packed together into bytes depends on the visual.
62
63Padding at end of lines may be present and is then reported through the fixed
64screen information line_length field.
65
66- FB_TYPE_PLANES
67
68Macropixels are split across multiple planes. The number of planes is equal to
69the number of bits per macropixel, with plane i'th storing i'th bit from all
70macropixels.
71
72Planes are located contiguously in memory.
73
74- FB_TYPE_INTERLEAVED_PLANES
75
76Macropixels are split across multiple planes. The number of planes is equal to
77the number of bits per macropixel, with plane i'th storing i'th bit from all
78macropixels.
79
80Planes are interleaved in memory. The interleave factor, defined as the
81distance in bytes between the beginning of two consecutive interleaved blocks
82belonging to different planes, is stored in the fixed screen information
83type_aux field.
84
85- FB_TYPE_FOURCC
86
87Macropixels are stored in memory as described by the format FOURCC identifier
88stored in the variable screen information grayscale field.
89
90- FB_VISUAL_MONO01
91
92Pixels are black or white and stored on a number of bits (typically one)
93specified by the variable screen information bpp field.
94
95Black pixels are represented by all bits set to 1 and white pixels by all bits
96set to 0. When the number of bits per pixel is smaller than 8, several pixels
97are packed together in a byte.
98
99FB_VISUAL_MONO01 is currently used with FB_TYPE_PACKED_PIXELS only.
100
101- FB_VISUAL_MONO10
102
103Pixels are black or white and stored on a number of bits (typically one)
104specified by the variable screen information bpp field.
105
106Black pixels are represented by all bits set to 0 and white pixels by all bits
107set to 1. When the number of bits per pixel is smaller than 8, several pixels
108are packed together in a byte.
109
110FB_VISUAL_MONO01 is currently used with FB_TYPE_PACKED_PIXELS only.
111
112- FB_VISUAL_TRUECOLOR
113
114Pixels are broken into red, green and blue components, and each component
115indexes a read-only lookup table for the corresponding value. Lookup tables
116are device-dependent, and provide linear or non-linear ramps.
117
118Each component is stored in a macropixel according to the variable screen
119information red, green, blue and transp fields.
120
121- FB_VISUAL_PSEUDOCOLOR and FB_VISUAL_STATIC_PSEUDOCOLOR
122
123Pixel values are encoded as indices into a colormap that stores red, green and
124blue components. The colormap is read-only for FB_VISUAL_STATIC_PSEUDOCOLOR
125and read-write for FB_VISUAL_PSEUDOCOLOR.
126
127Each pixel value is stored in the number of bits reported by the variable
128screen information bits_per_pixel field.
129
130- FB_VISUAL_DIRECTCOLOR
131
132Pixels are broken into red, green and blue components, and each component
133indexes a programmable lookup table for the corresponding value.
134
135Each component is stored in a macropixel according to the variable screen
136information red, green, blue and transp fields.
137
138- FB_VISUAL_FOURCC
139
140Pixels are encoded and interpreted as described by the format FOURCC
141identifier stored in the variable screen information grayscale field.
142
143
1443. Screen information
145---------------------
146
147Screen information are queried by applications using the FBIOGET_FSCREENINFO
148and FBIOGET_VSCREENINFO ioctls. Those ioctls take a pointer to a
149fb_fix_screeninfo and fb_var_screeninfo structure respectively.
150
151struct fb_fix_screeninfo stores device independent unchangeable information
152about the frame buffer device and the current format. Those information can't
153be directly modified by applications, but can be changed by the driver when an
154application modifies the format.
155
156struct fb_fix_screeninfo {
157 char id[16]; /* identification string eg "TT Builtin" */
158 unsigned long smem_start; /* Start of frame buffer mem */
159 /* (physical address) */
160 __u32 smem_len; /* Length of frame buffer mem */
161 __u32 type; /* see FB_TYPE_* */
162 __u32 type_aux; /* Interleave for interleaved Planes */
163 __u32 visual; /* see FB_VISUAL_* */
164 __u16 xpanstep; /* zero if no hardware panning */
165 __u16 ypanstep; /* zero if no hardware panning */
166 __u16 ywrapstep; /* zero if no hardware ywrap */
167 __u32 line_length; /* length of a line in bytes */
168 unsigned long mmio_start; /* Start of Memory Mapped I/O */
169 /* (physical address) */
170 __u32 mmio_len; /* Length of Memory Mapped I/O */
171 __u32 accel; /* Indicate to driver which */
172 /* specific chip/card we have */
173 __u16 capabilities; /* see FB_CAP_* */
174 __u16 reserved[2]; /* Reserved for future compatibility */
175};
176
177struct fb_var_screeninfo stores device independent changeable information
178about a frame buffer device, its current format and video mode, as well as
179other miscellaneous parameters.
180
181struct fb_var_screeninfo {
182 __u32 xres; /* visible resolution */
183 __u32 yres;
184 __u32 xres_virtual; /* virtual resolution */
185 __u32 yres_virtual;
186 __u32 xoffset; /* offset from virtual to visible */
187 __u32 yoffset; /* resolution */
188
189 __u32 bits_per_pixel; /* guess what */
190 __u32 grayscale; /* 0 = color, 1 = grayscale, */
191 /* >1 = FOURCC */
192 struct fb_bitfield red; /* bitfield in fb mem if true color, */
193 struct fb_bitfield green; /* else only length is significant */
194 struct fb_bitfield blue;
195 struct fb_bitfield transp; /* transparency */
196
197 __u32 nonstd; /* != 0 Non standard pixel format */
198
199 __u32 activate; /* see FB_ACTIVATE_* */
200
201 __u32 height; /* height of picture in mm */
202 __u32 width; /* width of picture in mm */
203
204 __u32 accel_flags; /* (OBSOLETE) see fb_info.flags */
205
206 /* Timing: All values in pixclocks, except pixclock (of course) */
207 __u32 pixclock; /* pixel clock in ps (pico seconds) */
208 __u32 left_margin; /* time from sync to picture */
209 __u32 right_margin; /* time from picture to sync */
210 __u32 upper_margin; /* time from sync to picture */
211 __u32 lower_margin;
212 __u32 hsync_len; /* length of horizontal sync */
213 __u32 vsync_len; /* length of vertical sync */
214 __u32 sync; /* see FB_SYNC_* */
215 __u32 vmode; /* see FB_VMODE_* */
216 __u32 rotate; /* angle we rotate counter clockwise */
217 __u32 colorspace; /* colorspace for FOURCC-based modes */
218 __u32 reserved[4]; /* Reserved for future compatibility */
219};
220
221To modify variable information, applications call the FBIOPUT_VSCREENINFO
222ioctl with a pointer to a fb_var_screeninfo structure. If the call is
223successful, the driver will update the fixed screen information accordingly.
224
225Instead of filling the complete fb_var_screeninfo structure manually,
226applications should call the FBIOGET_VSCREENINFO ioctl and modify only the
227fields they care about.
228
229
2304. Format configuration
231-----------------------
232
233Frame buffer devices offer two ways to configure the frame buffer format: the
234legacy API and the FOURCC-based API.
235
236
237The legacy API has been the only frame buffer format configuration API for a
238long time and is thus widely used by application. It is the recommended API
239for applications when using RGB and grayscale formats, as well as legacy
240non-standard formats.
241
242To select a format, applications set the fb_var_screeninfo bits_per_pixel field
243to the desired frame buffer depth. Values up to 8 will usually map to
244monochrome, grayscale or pseudocolor visuals, although this is not required.
245
246- For grayscale formats, applications set the grayscale field to one. The red,
247 blue, green and transp fields must be set to 0 by applications and ignored by
248 drivers. Drivers must fill the red, blue and green offsets to 0 and lengths
249 to the bits_per_pixel value.
250
251- For pseudocolor formats, applications set the grayscale field to zero. The
252 red, blue, green and transp fields must be set to 0 by applications and
253 ignored by drivers. Drivers must fill the red, blue and green offsets to 0
254 and lengths to the bits_per_pixel value.
255
256- For truecolor and directcolor formats, applications set the grayscale field
257 to zero, and the red, blue, green and transp fields to describe the layout of
258 color components in memory.
259
260struct fb_bitfield {
261 __u32 offset; /* beginning of bitfield */
262 __u32 length; /* length of bitfield */
263 __u32 msb_right; /* != 0 : Most significant bit is */
264 /* right */
265};
266
267 Pixel values are bits_per_pixel wide and are split in non-overlapping red,
268 green, blue and alpha (transparency) components. Location and size of each
269 component in the pixel value are described by the fb_bitfield offset and
270 length fields. Offset are computed from the right.
271
272 Pixels are always stored in an integer number of bytes. If the number of
273 bits per pixel is not a multiple of 8, pixel values are padded to the next
274 multiple of 8 bits.
275
276Upon successful format configuration, drivers update the fb_fix_screeninfo
277type, visual and line_length fields depending on the selected format.
278
279
280The FOURCC-based API replaces format descriptions by four character codes
281(FOURCC). FOURCCs are abstract identifiers that uniquely define a format
282without explicitly describing it. This is the only API that supports YUV
283formats. Drivers are also encouraged to implement the FOURCC-based API for RGB
284and grayscale formats.
285
286Drivers that support the FOURCC-based API report this capability by setting
287the FB_CAP_FOURCC bit in the fb_fix_screeninfo capabilities field.
288
289FOURCC definitions are located in the linux/videodev2.h header. However, and
290despite starting with the V4L2_PIX_FMT_prefix, they are not restricted to V4L2
291and don't require usage of the V4L2 subsystem. FOURCC documentation is
292available in Documentation/DocBook/v4l/pixfmt.xml.
293
294To select a format, applications set the grayscale field to the desired FOURCC.
295For YUV formats, they should also select the appropriate colorspace by setting
296the colorspace field to one of the colorspaces listed in linux/videodev2.h and
297documented in Documentation/DocBook/v4l/colorspaces.xml.
298
299The red, green, blue and transp fields are not used with the FOURCC-based API.
300For forward compatibility reasons applications must zero those fields, and
301drivers must ignore them. Values other than 0 may get a meaning in future
302extensions.
303
304Upon successful format configuration, drivers update the fb_fix_screeninfo
305type, visual and line_length fields depending on the selected format. The type
306and visual fields are set to FB_TYPE_FOURCC and FB_VISUAL_FOURCC respectively.
Documentation/feature-removal-schedule.txt+27−68
@@ -85,17 +85,6 @@ Who: Robin Getz <rgetz@blackfin.uclinux.org> & Matt Mackall <mpm@selenic.com> · 84 unmodified lines
85 85
86---------------------------86---------------------------
87 87
88What: Deprecated snapshot ioctls
89When: 2.6.36
90
91Why: The ioctls in kernel/power/user.c were marked as deprecated long time
92 ago. Now they notify users about that so that they need to replace
93 their userspace. After some more time, remove them completely.
94
95Who: Jiri Slaby <jirislaby@gmail.com>
96
97---------------------------
98
99What: The ieee80211_regdom module parameter88What: The ieee80211_regdom module parameter
100When: March 2010 / desktop catchup89When: March 2010 / desktop catchup
101 90
@@ -263,8 +252,7 @@ Who: Ravikiran Thirumalai <kiran@scalex86.org> · 161 unmodified lines
263 252
264What: Code that is now under CONFIG_WIRELESS_EXT_SYSFS253What: Code that is now under CONFIG_WIRELESS_EXT_SYSFS
265 (in net/core/net-sysfs.c)254 (in net/core/net-sysfs.c)
266When: After the only user (hal) has seen a release with the patches255When: 3.5
267 for enough time, probably some time in 2010.
268Why: Over 1K .text/.data size reduction, data is available in other256Why: Over 1K .text/.data size reduction, data is available in other
269 ways (ioctls)257 ways (ioctls)
270Who: Johannes Berg <johannes@sipsolutions.net>258Who: Johannes Berg <johannes@sipsolutions.net>
@@ -362,15 +350,6 @@ Who: anybody or Florian Mickler <florian@mickler.org> · 91 unmodified lines
362 350
363----------------------------351----------------------------
364 352
365What: KVM paravirt mmu host support
366When: January 2011
367Why: The paravirt mmu host support is slower than non-paravirt mmu, both
368 on newer and older hardware. It is already not exposed to the guest,
369 and kept only for live migration purposes.
370Who: Avi Kivity <avi@redhat.com>
371
372----------------------------
373
374What: iwlwifi 50XX module parameters353What: iwlwifi 50XX module parameters
375When: 3.0354When: 3.0
376Why: The "..50" modules parameters were used to configure 5000 series and355Why: The "..50" modules parameters were used to configure 5000 series and
@@ -460,52 +439,6 @@ Who: Jean Delvare <khali@linux-fr.org> · 83 unmodified lines
460 439
461----------------------------440----------------------------
462 441
463What: Support for driver specific ioctls in the pwc driver (everything
464 defined in media/pwc-ioctl.h)
465When: 3.3
466Why: This stems from the v4l1 era, with v4l2 everything can be done with
467 standardized v4l2 API calls
468Who: Hans de Goede <hdegoede@redhat.com>
469
470----------------------------
471
472What: Driver specific sysfs API in the pwc driver
473When: 3.3
474Why: Setting pan/tilt should be done with v4l2 controls, like with other
475 cams. The button is available as a standard input device
476Who: Hans de Goede <hdegoede@redhat.com>
477
478----------------------------
479
480What: Driver specific use of pixfmt.priv in the pwc driver
481When: 3.3
482Why: The .priv field never was intended for this, setting a framerate is
483 support using the standardized S_PARM ioctl
484Who: Hans de Goede <hdegoede@redhat.com>
485
486----------------------------
487
488What: Software emulation of arbritary resolutions in the pwc driver
489When: 3.3
490Why: The pwc driver claims to support any resolution between 160x120
491 and 640x480, but emulates this by simply drawing a black border
492 around the image. Userspace can draw its own black border if it
493 really wants one.
494Who: Hans de Goede <hdegoede@redhat.com>
495
496----------------------------
497
498What: For VIDIOC_S_FREQUENCY the type field must match the device node's type.
499 If not, return -EINVAL.
500When: 3.2
501Why: It makes no sense to switch the tuner to radio mode by calling
502 VIDIOC_S_FREQUENCY on a video node, or to switch the tuner to tv mode by
503 calling VIDIOC_S_FREQUENCY on a radio node. This is the first step of a
504 move to more consistent handling of tv and radio tuners.
505Who: Hans Verkuil <hans.verkuil@cisco.com>
506
507----------------------------
508
509What: Opening a radio device node will no longer automatically switch the442What: Opening a radio device node will no longer automatically switch the
510 tuner mode from tv to radio.443 tuner mode from tv to radio.
511When: 3.3444When: 3.3
@@ -535,6 +468,20 @@ Why: In 3.0, we can now autodetect internal 3G device and already have · 23 unmodified lines
535 information log when acer-wmi initial.468 information log when acer-wmi initial.
536Who: Lee, Chun-Yi <jlee@novell.com>469Who: Lee, Chun-Yi <jlee@novell.com>
537 470
471---------------------------
472
473What: /sys/devices/platform/_UDC_/udc/_UDC_/is_dualspeed file and
474 is_dualspeed line in /sys/devices/platform/ci13xxx_*/udc/device file.
475When: 3.8
476Why: The is_dualspeed file is superseded by maximum_speed in the same
477 directory and is_dualspeed line in device file is superseded by
478 max_speed line in the same file.
479
480 The maximum_speed/max_speed specifies maximum speed supported by UDC.
481 To check if dualspeeed is supported, check if the value is >= 3.
482 Various possible speeds are defined in <linux/usb/ch9.h>.
483Who: Michal Nazarewicz <mina86@mina86.com>
484
538----------------------------485----------------------------
539 486
540What: The XFS nodelaylog mount option487What: The XFS nodelaylog mount option
@@ -551,3 +498,15 @@ When: 3.5 · 10 unmodified lines
551Why: The iwlagn module has been renamed iwlwifi. The alias will be around498Why: The iwlagn module has been renamed iwlwifi. The alias will be around
552 for backward compatibility for several cycles and then dropped.499 for backward compatibility for several cycles and then dropped.
553Who: Don Fry <donald.h.fry@intel.com>500Who: Don Fry <donald.h.fry@intel.com>
501
502----------------------------
503
504What: pci_scan_bus_parented()
505When: 3.5
506Why: The pci_scan_bus_parented() interface creates a new root bus. The
507 bus is created with default resources (ioport_resource and
508 iomem_resource) that are always wrong, so we rely on arch code to
509 correct them later. Callers of pci_scan_bus_parented() should
510 convert to using pci_scan_root_bus() so they can supply a list of
511 bus resources when the bus is created.
512Who: Bjorn Helgaas <bhelgaas@google.com>
Documentation/filesystems/Locking+4−4
@@ -37,15 +37,15 @@ d_manage: no no yes (ref-walk) maybe · 36 unmodified lines
37 37
38--------------------------- inode_operations --------------------------- 38--------------------------- inode_operations ---------------------------
39prototypes:39prototypes:
40 int (*create) (struct inode *,struct dentry *,int, struct nameidata *);40 int (*create) (struct inode *,struct dentry *,umode_t, struct nameidata *);
41 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameid41 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameid
42ata *);42ata *);
43 int (*link) (struct dentry *,struct inode *,struct dentry *);43 int (*link) (struct dentry *,struct inode *,struct dentry *);
44 int (*unlink) (struct inode *,struct dentry *);44 int (*unlink) (struct inode *,struct dentry *);
45 int (*symlink) (struct inode *,struct dentry *,const char *);45 int (*symlink) (struct inode *,struct dentry *,const char *);
46 int (*mkdir) (struct inode *,struct dentry *,int);46 int (*mkdir) (struct inode *,struct dentry *,umode_t);
47 int (*rmdir) (struct inode *,struct dentry *);47 int (*rmdir) (struct inode *,struct dentry *);
48 int (*mknod) (struct inode *,struct dentry *,int,dev_t);48 int (*mknod) (struct inode *,struct dentry *,umode_t,dev_t);
49 int (*rename) (struct inode *, struct dentry *,49 int (*rename) (struct inode *, struct dentry *,
50 struct inode *, struct dentry *);50 struct inode *, struct dentry *);
51 int (*readlink) (struct dentry *, char __user *,int);51 int (*readlink) (struct dentry *, char __user *,int);
@@ -117,7 +117,7 @@ prototypes: · 65 unmodified lines
117 int (*statfs) (struct dentry *, struct kstatfs *);117 int (*statfs) (struct dentry *, struct kstatfs *);
118 int (*remount_fs) (struct super_block *, int *, char *);118 int (*remount_fs) (struct super_block *, int *, char *);
119 void (*umount_begin) (struct super_block *);119 void (*umount_begin) (struct super_block *);
120 int (*show_options)(struct seq_file *, struct vfsmount *);120 int (*show_options)(struct seq_file *, struct dentry *);
121 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);121 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
122 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);122 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
123 int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);123 int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
Documentation/filesystems/ceph.txt+13−5
@@ -119,12 +119,20 @@ Mount Options · 118 unmodified lines
119 must rely on TCP's error correction to detect data corruption119 must rely on TCP's error correction to detect data corruption
120 in the data payload.120 in the data payload.
121 121
122 noasyncreaddir122 dcache
123 Disable client's use its local cache to satisfy readdir123 Use the dcache contents to perform negative lookups and
124 requests. (This does not change correctness; the client uses124 readdir when the client has the entire directory contents in
125 cached metadata only when a lease or capability ensures it is125 its cache. (This does not change correctness; the client uses
126 valid.)126 cached metadata only when a lease or capability ensures it is
127 valid.)
128
129 nodcache
130 Do not use the dcache as above. This avoids a significant amount of
131 complex code, sacrificing performance without affecting correctness,
132 and is useful for tracking down bugs.
127 133
134 noasyncreaddir
135 Do not use the dcache as above for readdir.
128 136
129More Information137More Information
130================138================
Documentation/filesystems/configfs/configfs.txt+1−1
@@ -192,7 +192,7 @@ attribute value uses the store_attribute() method. · 191 unmodified lines
192 struct configfs_attribute {192 struct configfs_attribute {
193 char *ca_name;193 char *ca_name;
194 struct module *ca_owner;194 struct module *ca_owner;
195 mode_t ca_mode;195 umode_t ca_mode;
196 };196 };
197 197
198When a config_item wants an attribute to appear as a file in the item's198When a config_item wants an attribute to appear as a file in the item's
Documentation/filesystems/debugfs.txt+43−13
@@ -35,7 +35,7 @@ described below will work. · 34 unmodified lines
35 35
36The most general way to create a file within a debugfs directory is with:36The most general way to create a file within a debugfs directory is with:
37 37
38 struct dentry *debugfs_create_file(const char *name, mode_t mode,38 struct dentry *debugfs_create_file(const char *name, umode_t mode,
39 struct dentry *parent, void *data,39 struct dentry *parent, void *data,
40 const struct file_operations *fops);40 const struct file_operations *fops);
41 41
@@ -53,13 +53,13 @@ actually necessary; the debugfs code provides a number of helper functions · 11 unmodified lines
53for simple situations. Files containing a single integer value can be53for simple situations. Files containing a single integer value can be
54created with any of:54created with any of:
55 55
56 struct dentry *debugfs_create_u8(const char *name, mode_t mode,56 struct dentry *debugfs_create_u8(const char *name, umode_t mode,
57 struct dentry *parent, u8 *value);57 struct dentry *parent, u8 *value);
58 struct dentry *debugfs_create_u16(const char *name, mode_t mode,58 struct dentry *debugfs_create_u16(const char *name, umode_t mode,
59 struct dentry *parent, u16 *value);59 struct dentry *parent, u16 *value);
60 struct dentry *debugfs_create_u32(const char *name, mode_t mode,60 struct dentry *debugfs_create_u32(const char *name, umode_t mode,
61 struct dentry *parent, u32 *value);61 struct dentry *parent, u32 *value);
62 struct dentry *debugfs_create_u64(const char *name, mode_t mode,62 struct dentry *debugfs_create_u64(const char *name, umode_t mode,
63 struct dentry *parent, u64 *value);63 struct dentry *parent, u64 *value);
64 64
65These files support both reading and writing the given value; if a specific65These files support both reading and writing the given value; if a specific
@@ -67,13 +67,13 @@ file should not be written to, simply set the mode bits accordingly. The · 1 unmodified line
67values in these files are in decimal; if hexadecimal is more appropriate,67values in these files are in decimal; if hexadecimal is more appropriate,
68the following functions can be used instead:68the following functions can be used instead:
69 69
70 struct dentry *debugfs_create_x8(const char *name, mode_t mode,70 struct dentry *debugfs_create_x8(const char *name, umode_t mode,
71 struct dentry *parent, u8 *value);71 struct dentry *parent, u8 *value);
72 struct dentry *debugfs_create_x16(const char *name, mode_t mode,72 struct dentry *debugfs_create_x16(const char *name, umode_t mode,
73 struct dentry *parent, u16 *value);73 struct dentry *parent, u16 *value);
74 struct dentry *debugfs_create_x32(const char *name, mode_t mode,74 struct dentry *debugfs_create_x32(const char *name, umode_t mode,
75 struct dentry *parent, u32 *value);75 struct dentry *parent, u32 *value);
76 struct dentry *debugfs_create_x64(const char *name, mode_t mode,76 struct dentry *debugfs_create_x64(const char *name, umode_t mode,
77 struct dentry *parent, u64 *value);77 struct dentry *parent, u64 *value);
78 78
79These functions are useful as long as the developer knows the size of the79These functions are useful as long as the developer knows the size of the
@@ -81,7 +81,7 @@ value to be exported. Some types can have different widths on different · 1 unmodified line
81architectures, though, complicating the situation somewhat. There is a81architectures, though, complicating the situation somewhat. There is a
82function meant to help out in one special case:82function meant to help out in one special case:
83 83
84 struct dentry *debugfs_create_size_t(const char *name, mode_t mode,84 struct dentry *debugfs_create_size_t(const char *name, umode_t mode,
85 struct dentry *parent, 85 struct dentry *parent,
86 size_t *value);86 size_t *value);
87 87
@@ -90,21 +90,22 @@ a variable of type size_t. · 2 unmodified lines
90 90
91Boolean values can be placed in debugfs with:91Boolean values can be placed in debugfs with:
92 92
93 struct dentry *debugfs_create_bool(const char *name, mode_t mode,93 struct dentry *debugfs_create_bool(const char *name, umode_t mode,
94 struct dentry *parent, u32 *value);94 struct dentry *parent, u32 *value);
95 95
96A read on the resulting file will yield either Y (for non-zero values) or96A read on the resulting file will yield either Y (for non-zero values) or
97N, followed by a newline. If written to, it will accept either upper- or97N, followed by a newline. If written to, it will accept either upper- or
98lower-case values, or 1 or 0. Any other input will be silently ignored.98lower-case values, or 1 or 0. Any other input will be silently ignored.
99 99
100Finally, a block of arbitrary binary data can be exported with:100Another option is exporting a block of arbitrary binary data, with
101this structure and function:
101 102
102 struct debugfs_blob_wrapper {103 struct debugfs_blob_wrapper {
103 void *data;104 void *data;
104 unsigned long size;105 unsigned long size;
105 };106 };
106 107
107 struct dentry *debugfs_create_blob(const char *name, mode_t mode,108 struct dentry *debugfs_create_blob(const char *name, umode_t mode,
108 struct dentry *parent,109 struct dentry *parent,
109 struct debugfs_blob_wrapper *blob);110 struct debugfs_blob_wrapper *blob);
110 111
@@ -115,6 +116,35 @@ can be used to export binary information, but there does not appear to be · 4 unmodified lines
115any code which does so in the mainline. Note that all files created with116any code which does so in the mainline. Note that all files created with
116debugfs_create_blob() are read-only.117debugfs_create_blob() are read-only.
117 118
119If you want to dump a block of registers (something that happens quite
120often during development, even if little such code reaches mainline.
121Debugfs offers two functions: one to make a registers-only file, and
122another to insert a register block in the middle of another sequential
123file.
124
125 struct debugfs_reg32 {
126 char *name;
127 unsigned long offset;
128 };
129
130 struct debugfs_regset32 {
131 struct debugfs_reg32 *regs;
132 int nregs;
133 void __iomem *base;
134 };
135
136 struct dentry *debugfs_create_regset32(const char *name, mode_t mode,
137 struct dentry *parent,
138 struct debugfs_regset32 *regset);
139
140 int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs,
141 int nregs, void __iomem *base, char *prefix);
142
143The "base" argument may be 0, but you may want to build the reg32 array
144using __stringify, and a number of register names (macros) are actually
145byte offsets over a base for the register block.
146
147
118There are a couple of other directory-oriented helper functions:148There are a couple of other directory-oriented helper functions:
119 149
120 struct dentry *debugfs_rename(struct dentry *old_dir, 150 struct dentry *debugfs_rename(struct dentry *old_dir,
Documentation/filesystems/ext4.txt+7−0
@@ -581,6 +581,13 @@ Table of Ext4 specific ioctls · 580 unmodified lines
581 behaviour may change in the future as it is581 behaviour may change in the future as it is
582 not necessary and has been done this way only582 not necessary and has been done this way only
583 for sake of simplicity.583 for sake of simplicity.
584
585 EXT4_IOC_RESIZE_FS Resize the filesystem to a new size. The number
586 of blocks of resized filesystem is passed in via
587 64 bit integer argument. The kernel allocates
588 bitmaps and inode table, the userspace tool thus
589 just passes the new number of blocks.
590
584..............................................................................591..............................................................................
585 592
586References593References
Documentation/filesystems/nfs/00-INDEX+2−0
@@ -2,6 +2,8 @@ · 1 unmodified line
2 - this file (nfs-related documentation).2 - this file (nfs-related documentation).
3Exporting3Exporting
4 - explanation of how to make filesystems exportable.4 - explanation of how to make filesystems exportable.
5fault_injection.txt
6 - information for using fault injection on the server
5knfsd-stats.txt7knfsd-stats.txt
6 - statistics which the NFS server makes available to user space.8 - statistics which the NFS server makes available to user space.
7nfs.txt9nfs.txt
Documentation/filesystems/nfs/fault_injection.txt+69−0
@@ -0,0 +1,69 @@
1
2Fault Injection
3===============
4Fault injection is a method for forcing errors that may not normally occur, or
5may be difficult to reproduce. Forcing these errors in a controlled environment
6can help the developer find and fix bugs before their code is shipped in a
7production system. Injecting an error on the Linux NFS server will allow us to
8observe how the client reacts and if it manages to recover its state correctly.
9
10NFSD_FAULT_INJECTION must be selected when configuring the kernel to use this
11feature.
12
13
14Using Fault Injection
15=====================
16On the client, mount the fault injection server through NFS v4.0+ and do some
17work over NFS (open files, take locks, ...).
18
19On the server, mount the debugfs filesystem to <debug_dir> and ls
20<debug_dir>/nfsd. This will show a list of files that will be used for
21injecting faults on the NFS server. As root, write a number n to the file
22corresponding to the action you want the server to take. The server will then
23process the first n items it finds. So if you want to forget 5 locks, echo '5'
24to <debug_dir>/nfsd/forget_locks. A value of 0 will tell the server to forget
25all corresponding items. A log message will be created containing the number
26of items forgotten (check dmesg).
27
28Go back to work on the client and check if the client recovered from the error
29correctly.
30
31
32Available Faults
33================
34forget_clients:
35 The NFS server keeps a list of clients that have placed a mount call. If
36 this list is cleared, the server will have no knowledge of who the client
37 is, forcing the client to reauthenticate with the server.
38
39forget_openowners:
40 The NFS server keeps a list of what files are currently opened and who
41 they were opened by. Clearing this list will force the client to reopen
42 its files.
43
44forget_locks:
45 The NFS server keeps a list of what files are currently locked in the VFS.
46 Clearing this list will force the client to reclaim its locks (files are
47 unlocked through the VFS as they are cleared from this list).
48
49forget_delegations:
50 A delegation is used to assure the client that a file, or part of a file,
51 has not changed since the delegation was awarded. Clearing this list will
52 force the client to reaquire its delegation before accessing the file
53 again.
54
55recall_delegations:
56 Delegations can be recalled by the server when another client attempts to
57 access a file. This test will notify the client that its delegation has
58 been revoked, forcing the client to reaquire the delegation before using
59 the file again.
60
61
62tools/nfs/inject_faults.sh script
63=================================
64This script has been created to ease the fault injection process. This script
65will detect the mounted debugfs directory and write to the files located there
66based on the arguments passed by the user. For example, running
67`inject_faults.sh forget_locks 1` as root will instruct the server to forget
68one lock. Running `inject_faults forget_locks` will instruct the server to
69forgetall locks.
Documentation/filesystems/proc.txt+42−0
@@ -41,6 +41,8 @@ Table of Contents · 40 unmodified lines
41 3.5 /proc/<pid>/mountinfo - Information about mounts41 3.5 /proc/<pid>/mountinfo - Information about mounts
42 3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm42 3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
43 43
44 4 Configuring procfs
45 4.1 Mount options
44 46
45------------------------------------------------------------------------------47------------------------------------------------------------------------------
46Preface48Preface
@@ -305,6 +307,9 @@ Table 1-4: Contents of the stat files (as of 2.6.30-rc7) · 258 unmodified lines
305 blkio_ticks time spent waiting for block IO307 blkio_ticks time spent waiting for block IO
306 gtime guest time of the task in jiffies308 gtime guest time of the task in jiffies
307 cgtime guest time of the task children in jiffies309 cgtime guest time of the task children in jiffies
310 start_data address above which program data+bss is placed
311 end_data address below which program data+bss is placed
312 start_brk address above which program heap can be expanded with brk()
308..............................................................................313..............................................................................
309 314
310The /proc/PID/maps file containing the currently mapped memory regions and315The /proc/PID/maps file containing the currently mapped memory regions and
@@ -1542,3 +1547,40 @@ a task to set its own or one of its thread siblings comm value. The comm value · 1231 unmodified lines
1542is limited in size compared to the cmdline value, so writing anything longer1547is limited in size compared to the cmdline value, so writing anything longer
1543then the kernel's TASK_COMM_LEN (currently 16 chars) will result in a truncated1548then the kernel's TASK_COMM_LEN (currently 16 chars) will result in a truncated
1544comm value.1549comm value.
1550
1551
1552------------------------------------------------------------------------------
1553Configuring procfs
1554------------------------------------------------------------------------------
1555
15564.1 Mount options
1557---------------------
1558
1559The following mount options are supported:
1560
1561 hidepid= Set /proc/<pid>/ access mode.
1562 gid= Set the group authorized to learn processes information.
1563
1564hidepid=0 means classic mode - everybody may access all /proc/<pid>/ directories
1565(default).
1566
1567hidepid=1 means users may not access any /proc/<pid>/ directories but their
1568own. Sensitive files like cmdline, sched*, status are now protected against
1569other users. This makes it impossible to learn whether any user runs
1570specific program (given the program doesn't reveal itself by its behaviour).
1571As an additional bonus, as /proc/<pid>/cmdline is unaccessible for other users,
1572poorly written programs passing sensitive information via program arguments are
1573now protected against local eavesdroppers.
1574
1575hidepid=2 means hidepid=1 plus all /proc/<pid>/ will be fully invisible to other
1576users. It doesn't mean that it hides a fact whether a process with a specific
1577pid value exists (it can be learned by other means, e.g. by "kill -0 $PID"),
1578but it hides process' uid and gid, which may be learned by stat()'ing
1579/proc/<pid>/ otherwise. It greatly complicates an intruder's task of gathering
1580information about running processes, whether some daemon runs with elevated
1581privileges, whether other user runs some sensitive program, whether other users
1582run any program at all, etc.
1583
1584gid= defines a group authorized to learn processes information otherwise
1585prohibited by hidepid=. If you use some daemon like identd which needs to learn
1586information about processes information, just add identd to this group.
Documentation/filesystems/squashfs.txt+3−3
@@ -93,8 +93,8 @@ byte alignment: · 92 unmodified lines
93 93
94Compressed data blocks are written to the filesystem as files are read from94Compressed data blocks are written to the filesystem as files are read from
95the source directory, and checked for duplicates. Once all file data has been95the source directory, and checked for duplicates. Once all file data has been
96written the completed inode, directory, fragment, export and uid/gid lookup96written the completed inode, directory, fragment, export, uid/gid lookup and
97tables are written.97xattr tables are written.
98 98
993.1 Compression options993.1 Compression options
100-----------------------100-----------------------
@@ -151,7 +151,7 @@ in each metadata block. Directories are sorted in alphabetical order, · 50 unmodified lines
151and at lookup the index is scanned linearly looking for the first filename151and at lookup the index is scanned linearly looking for the first filename
152alphabetically larger than the filename being looked up. At this point the152alphabetically larger than the filename being looked up. At this point the
153location of the metadata block the filename is in has been found.153location of the metadata block the filename is in has been found.
154The general idea of the index is ensure only one metadata block needs to be154The general idea of the index is to ensure only one metadata block needs to be
155decompressed to do a lookup irrespective of the length of the directory.155decompressed to do a lookup irrespective of the length of the directory.
156This scheme has the advantage that it doesn't require extra memory overhead156This scheme has the advantage that it doesn't require extra memory overhead
157and doesn't require much extra storage on disk.157and doesn't require much extra storage on disk.
Documentation/filesystems/sysfs.txt+1−1
@@ -70,7 +70,7 @@ An attribute definition is simply: · 69 unmodified lines
70struct attribute {70struct attribute {
71 char * name;71 char * name;
72 struct module *owner;72 struct module *owner;
73 mode_t mode;73 umode_t mode;
74};74};
75 75
76 76
Documentation/filesystems/vfs.txt+4−4
@@ -225,7 +225,7 @@ struct super_operations { · 224 unmodified lines
225 void (*clear_inode) (struct inode *);225 void (*clear_inode) (struct inode *);
226 void (*umount_begin) (struct super_block *);226 void (*umount_begin) (struct super_block *);
227 227
228 int (*show_options)(struct seq_file *, struct vfsmount *);228 int (*show_options)(struct seq_file *, struct dentry *);
229 229
230 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);230 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
231 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);231 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
@@ -341,14 +341,14 @@ This describes how the VFS can manipulate an inode in your · 109 unmodified lines
341filesystem. As of kernel 2.6.22, the following members are defined:341filesystem. As of kernel 2.6.22, the following members are defined:
342 342
343struct inode_operations {343struct inode_operations {
344 int (*create) (struct inode *,struct dentry *,int, struct nameidata *);344 int (*create) (struct inode *,struct dentry *, umode_t, struct nameidata *);
345 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);345 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
346 int (*link) (struct dentry *,struct inode *,struct dentry *);346 int (*link) (struct dentry *,struct inode *,struct dentry *);
347 int (*unlink) (struct inode *,struct dentry *);347 int (*unlink) (struct inode *,struct dentry *);
348 int (*symlink) (struct inode *,struct dentry *,const char *);348 int (*symlink) (struct inode *,struct dentry *,const char *);
349 int (*mkdir) (struct inode *,struct dentry *,int);349 int (*mkdir) (struct inode *,struct dentry *,umode_t);
350 int (*rmdir) (struct inode *,struct dentry *);350 int (*rmdir) (struct inode *,struct dentry *);
351 int (*mknod) (struct inode *,struct dentry *,int,dev_t);351 int (*mknod) (struct inode *,struct dentry *,umode_t,dev_t);
352 int (*rename) (struct inode *, struct dentry *,352 int (*rename) (struct inode *, struct dentry *,
353 struct inode *, struct dentry *);353 struct inode *, struct dentry *);
354 int (*readlink) (struct dentry *, char __user *,int);354 int (*readlink) (struct dentry *, char __user *,int);
Documentation/hwmon/it87+10−3
@@ -26,6 +26,10 @@ Supported chips: · 25 unmodified lines
26 Prefix: 'it8721'26 Prefix: 'it8721'
27 Addresses scanned: from Super I/O config space (8 I/O ports)27 Addresses scanned: from Super I/O config space (8 I/O ports)
28 Datasheet: Not publicly available28 Datasheet: Not publicly available
29 * IT8728F
30 Prefix: 'it8728'
31 Addresses scanned: from Super I/O config space (8 I/O ports)
32 Datasheet: Not publicly available
29 * SiS950 [clone of IT8705F]33 * SiS950 [clone of IT8705F]
30 Prefix: 'it87'34 Prefix: 'it87'
31 Addresses scanned: from Super I/O config space (8 I/O ports)35 Addresses scanned: from Super I/O config space (8 I/O ports)
@@ -71,7 +75,7 @@ Description · 39 unmodified lines
71-----------75-----------
72 76
73This driver implements support for the IT8705F, IT8712F, IT8716F,77This driver implements support for the IT8705F, IT8712F, IT8716F,
74IT8718F, IT8720F, IT8721F, IT8726F, IT8758E and SiS950 chips.78IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E and SiS950 chips.
75 79
76These chips are 'Super I/O chips', supporting floppy disks, infrared ports,80These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
77joysticks and other miscellaneous stuff. For hardware monitoring, they81joysticks and other miscellaneous stuff. For hardware monitoring, they
@@ -105,6 +109,9 @@ The IT8726F is just bit enhanced IT8716F with additional hardware · 27 unmodified lines
105for AMD power sequencing. Therefore the chip will appear as IT8716F109for AMD power sequencing. Therefore the chip will appear as IT8716F
106to userspace applications.110to userspace applications.
107 111
112The IT8728F is considered compatible with the IT8721F, until a datasheet
113becomes available (hopefully.)
114
108Temperatures are measured in degrees Celsius. An alarm is triggered once115Temperatures are measured in degrees Celsius. An alarm is triggered once
109when the Overtemperature Shutdown limit is crossed.116when the Overtemperature Shutdown limit is crossed.
110 117
@@ -121,8 +128,8 @@ alarm is triggered if the voltage has crossed a programmable minimum or · 10 unmodified lines
121maximum limit. Note that minimum in this case always means 'closest to128maximum limit. Note that minimum in this case always means 'closest to
122zero'; this is important for negative voltage measurements. All voltage129zero'; this is important for negative voltage measurements. All voltage
123inputs can measure voltages between 0 and 4.08 volts, with a resolution of130inputs can measure voltages between 0 and 4.08 volts, with a resolution of
1240.016 volt (except IT8721F/IT8758E: 0.012 volt.) The battery voltage in8 does1310.016 volt (except IT8721F/IT8758E and IT8728F: 0.012 volt.) The battery
125not have limit registers.132voltage in8 does not have limit registers.
126 133
127On the IT8721F/IT8758E, some voltage inputs are internal and scaled inside134On the IT8721F/IT8758E, some voltage inputs are internal and scaled inside
128the chip (in7, in8 and optionally in3). The driver handles this transparently135the chip (in7, in8 and optionally in3). The driver handles this transparently
Documentation/hwmon/lm63+17−4
@@ -12,6 +12,11 @@ Supported chips: · 11 unmodified lines
12 Addresses scanned: I2C 0x18 and 0x4e12 Addresses scanned: I2C 0x18 and 0x4e
13 Datasheet: Publicly available at the National Semiconductor website13 Datasheet: Publicly available at the National Semiconductor website
14 http://www.national.com/pf/LM/LM64.html14 http://www.national.com/pf/LM/LM64.html
15 * National Semiconductor LM96163
16 Prefix: 'lm96163'
17 Addresses scanned: I2C 0x4c
18 Datasheet: Publicly available at the National Semiconductor website
19 http://www.national.com/pf/LM/LM96163.html
15 20
16Author: Jean Delvare <khali@linux-fr.org>21Author: Jean Delvare <khali@linux-fr.org>
17 22
@@ -49,16 +54,24 @@ value for measuring the speed of the fan. It can measure fan speeds down to · 31 unmodified lines
49Note that the pin used for fan monitoring is shared with an alert out54Note that the pin used for fan monitoring is shared with an alert out
50function. Depending on how the board designer wanted to use the chip, fan55function. Depending on how the board designer wanted to use the chip, fan
51speed monitoring will or will not be possible. The proper chip configuration56speed monitoring will or will not be possible. The proper chip configuration
52is left to the BIOS, and the driver will blindly trust it.57is left to the BIOS, and the driver will blindly trust it. Only the original
58LM63 suffers from this limitation, the LM64 and LM96163 have separate pins
59for fan monitoring and alert out. On the LM64, monitoring is always enabled;
60on the LM96163 it can be disabled.
53 61
54A PWM output can be used to control the speed of the fan. The LM63 has two62A PWM output can be used to control the speed of the fan. The LM63 has two
55PWM modes: manual and automatic. Automatic mode is not fully implemented yet63PWM modes: manual and automatic. Automatic mode is not fully implemented yet
56(you cannot define your custom PWM/temperature curve), and mode change isn't64(you cannot define your custom PWM/temperature curve), and mode change isn't
57supported either.65supported either.
58 66
59The lm63 driver will not update its values more frequently than every67The lm63 driver will not update its values more frequently than configured with
60second; reading them more often will do no harm, but will return 'old'68the update_interval sysfs attribute; reading them more often will do no harm,
61values.69but will return 'old' values. Values in the automatic fan control lookup table
70(attributes pwm1_auto_*) have their own independent lifetime of 5 seconds.
62 71
63The LM64 is effectively an LM63 with GPIO lines. The driver does not72The LM64 is effectively an LM63 with GPIO lines. The driver does not
64support these GPIO lines at present.73support these GPIO lines at present.
74
75The LM96163 is an enhanced version of LM63 with improved temperature accuracy
76and better PWM resolution. For LM96163, the external temperature sensor type is
77configurable as CPU embedded diode(1) or 3904 transistor(2).
Documentation/hwmon/pmbus+2−3
@@ -2,9 +2,8 @@ Kernel driver pmbus · 1 unmodified line
2====================2====================
3 3
4Supported chips:4Supported chips:
5 * Ericsson BMR45X series5 * Ericsson BMR453, BMR454
6 DC/DC Converter6 Prefixes: 'bmr453', 'bmr454'
7 Prefixes: 'bmr450', 'bmr451', 'bmr453', 'bmr454'
8 Addresses scanned: -7 Addresses scanned: -
9 Datasheet:8 Datasheet:
10 http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT1463959 http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146395
Documentation/hwmon/sysfs-interface+1−1
@@ -304,7 +304,7 @@ value (fastest fan speed) wins. · 303 unmodified lines
304temp[1-*]_type Sensor type selection.304temp[1-*]_type Sensor type selection.
305 Integers 1 to 6305 Integers 1 to 6
306 RW306 RW
307 1: PII/Celeron Diode307 1: CPU embedded diode
308 2: 3904 transistor308 2: 3904 transistor
309 3: thermal diode309 3: thermal diode
310 4: thermistor310 4: thermistor
Documentation/hwmon/zl6100+15−0
@@ -6,6 +6,10 @@ Supported chips: · 5 unmodified lines
6 Prefix: 'zl2004'6 Prefix: 'zl2004'
7 Addresses scanned: -7 Addresses scanned: -
8 Datasheet: http://www.intersil.com/data/fn/fn6847.pdf8 Datasheet: http://www.intersil.com/data/fn/fn6847.pdf
9 * Intersil / Zilker Labs ZL2005
10 Prefix: 'zl2005'
11 Addresses scanned: -
12 Datasheet: http://www.intersil.com/data/fn/fn6848.pdf
9 * Intersil / Zilker Labs ZL200613 * Intersil / Zilker Labs ZL2006
10 Prefix: 'zl2006'14 Prefix: 'zl2006'
11 Addresses scanned: -15 Addresses scanned: -
@@ -30,6 +34,17 @@ Supported chips: · 18 unmodified lines
30 Prefix: 'zl6105'34 Prefix: 'zl6105'
31 Addresses scanned: -35 Addresses scanned: -
32 Datasheet: http://www.intersil.com/data/fn/fn6906.pdf36 Datasheet: http://www.intersil.com/data/fn/fn6906.pdf
37 * Ericsson BMR450, BMR451
38 Prefix: 'bmr450', 'bmr451'
39 Addresses scanned: -
40 Datasheet:
41http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146401
42 * Ericsson BMR462, BMR463, BMR464
43 Prefixes: 'bmr462', 'bmr463', 'bmr464'
44 Addresses scanned: -
45 Datasheet:
46http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146256
47
33 48
34Author: Guenter Roeck <guenter.roeck@ericsson.com>49Author: Guenter Roeck <guenter.roeck@ericsson.com>
35 50
Documentation/input/alps.txt+188−0
@@ -0,0 +1,188 @@
1ALPS Touchpad Protocol
2----------------------
3
4Introduction
5------------
6
7Currently the ALPS touchpad driver supports four protocol versions in use by
8ALPS touchpads, called versions 1, 2, 3, and 4. Information about the various
9protocol versions is contained in the following sections.
10
11Detection
12---------
13
14All ALPS touchpads should respond to the "E6 report" command sequence:
15E8-E6-E6-E6-E9. An ALPS touchpad should respond with either 00-00-0A or
1600-00-64.
17
18If the E6 report is successful, the touchpad model is identified using the "E7
19report" sequence: E8-E7-E7-E7-E9. The response is the model signature and is
20matched against known models in the alps_model_data_array.
21
22With protocol versions 3 and 4, the E7 report model signature is always
2373-02-64. To differentiate between these versions, the response from the
24"Enter Command Mode" sequence must be inspected as described below.
25
26Command Mode
27------------
28
29Protocol versions 3 and 4 have a command mode that is used to read and write
30one-byte device registers in a 16-bit address space. The command sequence
31EC-EC-EC-E9 places the device in command mode, and the device will respond
32with 88-07 followed by a third byte. This third byte can be used to determine
33whether the devices uses the version 3 or 4 protocol.
34
35To exit command mode, PSMOUSE_CMD_SETSTREAM (EA) is sent to the touchpad.
36
37While in command mode, register addresses can be set by first sending a
38specific command, either EC for v3 devices or F5 for v4 devices. Then the
39address is sent one nibble at a time, where each nibble is encoded as a
40command with optional data. This enoding differs slightly between the v3 and
41v4 protocols.
42
43Once an address has been set, the addressed register can be read by sending
44PSMOUSE_CMD_GETINFO (E9). The first two bytes of the response contains the
45address of the register being read, and the third contains the value of the
46register. Registers are written by writing the value one nibble at a time
47using the same encoding used for addresses.
48
49Packet Format
50-------------
51
52In the following tables, the following notation is used.
53
54 CAPITALS = stick, miniscules = touchpad
55
56?'s can have different meanings on different models, such as wheel rotation,
57extra buttons, stick buttons on a dualpoint, etc.
58
59PS/2 packet format
60------------------
61
62 byte 0: 0 0 YSGN XSGN 1 M R L
63 byte 1: X7 X6 X5 X4 X3 X2 X1 X0
64 byte 2: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
65
66Note that the device never signals overflow condition.
67
68ALPS Absolute Mode - Protocol Verion 1
69--------------------------------------
70
71 byte 0: 1 0 0 0 1 x9 x8 x7
72 byte 1: 0 x6 x5 x4 x3 x2 x1 x0
73 byte 2: 0 ? ? l r ? fin ges
74 byte 3: 0 ? ? ? ? y9 y8 y7
75 byte 4: 0 y6 y5 y4 y3 y2 y1 y0
76 byte 5: 0 z6 z5 z4 z3 z2 z1 z0
77
78ALPS Absolute Mode - Protocol Version 2
79---------------------------------------
80
81 byte 0: 1 ? ? ? 1 ? ? ?
82 byte 1: 0 x6 x5 x4 x3 x2 x1 x0
83 byte 2: 0 x10 x9 x8 x7 ? fin ges
84 byte 3: 0 y9 y8 y7 1 M R L
85 byte 4: 0 y6 y5 y4 y3 y2 y1 y0
86 byte 5: 0 z6 z5 z4 z3 z2 z1 z0
87
88Dualpoint device -- interleaved packet format
89---------------------------------------------
90
91 byte 0: 1 1 0 0 1 1 1 1
92 byte 1: 0 x6 x5 x4 x3 x2 x1 x0
93 byte 2: 0 x10 x9 x8 x7 0 fin ges
94 byte 3: 0 0 YSGN XSGN 1 1 1 1
95 byte 4: X7 X6 X5 X4 X3 X2 X1 X0
96 byte 5: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
97 byte 6: 0 y9 y8 y7 1 m r l
98 byte 7: 0 y6 y5 y4 y3 y2 y1 y0
99 byte 8: 0 z6 z5 z4 z3 z2 z1 z0
100
101ALPS Absolute Mode - Protocol Version 3
102---------------------------------------
103
104ALPS protocol version 3 has three different packet formats. The first two are
105associated with touchpad events, and the third is associatd with trackstick
106events.
107
108The first type is the touchpad position packet.
109
110 byte 0: 1 ? x1 x0 1 1 1 1
111 byte 1: 0 x10 x9 x8 x7 x6 x5 x4
112 byte 2: 0 y10 y9 y8 y7 y6 y5 y4
113 byte 3: 0 M R L 1 m r l
114 byte 4: 0 mt x3 x2 y3 y2 y1 y0
115 byte 5: 0 z6 z5 z4 z3 z2 z1 z0
116
117Note that for some devices the trackstick buttons are reported in this packet,
118and on others it is reported in the trackstick packets.
119
120The second packet type contains bitmaps representing the x and y axes. In the
121bitmaps a given bit is set if there is a finger covering that position on the
122given axis. Thus the bitmap packet can be used for low-resolution multi-touch
123data, although finger tracking is not possible. This packet also encodes the
124number of contacts (f1 and f0 in the table below).
125
126 byte 0: 1 1 x1 x0 1 1 1 1
127 byte 1: 0 x8 x7 x6 x5 x4 x3 x2
128 byte 2: 0 y7 y6 y5 y4 y3 y2 y1
129 byte 3: 0 y10 y9 y8 1 1 1 1
130 byte 4: 0 x14 x13 x12 x11 x10 x9 y0
131 byte 5: 0 1 ? ? ? ? f1 f0
132
133This packet only appears after a position packet with the mt bit set, and
134ususally only appears when there are two or more contacts (although
135ocassionally it's seen with only a single contact).
136
137The final v3 packet type is the trackstick packet.
138
139 byte 0: 1 1 x7 y7 1 1 1 1
140 byte 1: 0 x6 x5 x4 x3 x2 x1 x0
141 byte 2: 0 y6 y5 y4 y3 y2 y1 y0
142 byte 3: 0 1 0 0 1 0 0 0
143 byte 4: 0 z4 z3 z2 z1 z0 ? ?
144 byte 5: 0 0 1 1 1 1 1 1
145
146ALPS Absolute Mode - Protocol Version 4
147---------------------------------------
148
149Protocol version 4 has an 8-byte packet format.
150
151 byte 0: 1 ? x1 x0 1 1 1 1
152 byte 1: 0 x10 x9 x8 x7 x6 x5 x4
153 byte 2: 0 y10 y9 y8 y7 y6 y5 y4
154 byte 3: 0 1 x3 x2 y3 y2 y1 y0
155 byte 4: 0 ? ? ? 1 ? r l
156 byte 5: 0 z6 z5 z4 z3 z2 z1 z0
157 byte 6: bitmap data (described below)
158 byte 7: bitmap data (described below)
159
160The last two bytes represent a partial bitmap packet, with 3 full packets
161required to construct a complete bitmap packet. Once assembled, the 6-byte
162bitmap packet has the following format:
163
164 byte 0: 0 1 x7 x6 x5 x4 x3 x2
165 byte 1: 0 x1 x0 y4 y3 y2 y1 y0
166 byte 2: 0 0 ? x14 x13 x12 x11 x10
167 byte 3: 0 x9 x8 y9 y8 y7 y6 y5
168 byte 4: 0 0 0 0 0 0 0 0
169 byte 5: 0 0 0 0 0 0 0 y10
170
171There are several things worth noting here.
172
173 1) In the bitmap data, bit 6 of byte 0 serves as a sync byte to
174 identify the first fragment of a bitmap packet.
175
176 2) The bitmaps represent the same data as in the v3 bitmap packets, although
177 the packet layout is different.
178
179 3) There doesn't seem to be a count of the contact points anywhere in the v4
180 protocol packets. Deriving a count of contact points must be done by
181 analyzing the bitmaps.
182
183 4) There is a 3 to 1 ratio of position packets to bitmap packets. Therefore
184 MT position can only be updated for every third ST position update, and
185 the count of contact points can only be updated every third packet as
186 well.
187
188So far no v4 devices with tracksticks have been encountered.
Documentation/input/gpio-tilt.txt+103−0
@@ -0,0 +1,103 @@
1Driver for tilt-switches connected via GPIOs
2============================================
3
4Generic driver to read data from tilt switches connected via gpios.
5Orientation can be provided by one or more than one tilt switches,
6i.e. each tilt switch providing one axis, and the number of axes
7is also not limited.
8
9
10Data structures:
11----------------
12
13The array of struct gpio in the gpios field is used to list the gpios
14that represent the current tilt state.
15
16The array of struct gpio_tilt_axis describes the axes that are reported
17to the input system. The values set therein are used for the
18input_set_abs_params calls needed to init the axes.
19
20The array of struct gpio_tilt_state maps gpio states to the corresponding
21values to report. The gpio state is represented as a bitfield where the
22bit-index corresponds to the index of the gpio in the struct gpio array.
23In the same manner the values stored in the axes array correspond to
24the elements of the gpio_tilt_axis-array.
25
26
27Example:
28--------
29
30Example configuration for a single TS1003 tilt switch that rotates around
31one axis in 4 steps and emitts the current tilt via two GPIOs.
32
33static int sg060_tilt_enable(struct device *dev) {
34 /* code to enable the sensors */
35};
36
37static void sg060_tilt_disable(struct device *dev) {
38 /* code to disable the sensors */
39};
40
41static struct gpio sg060_tilt_gpios[] = {
42 { SG060_TILT_GPIO_SENSOR1, GPIOF_IN, "tilt_sensor1" },
43 { SG060_TILT_GPIO_SENSOR2, GPIOF_IN, "tilt_sensor2" },
44};
45
46static struct gpio_tilt_state sg060_tilt_states[] = {
47 {
48 .gpios = (0 << 1) | (0 << 0),
49 .axes = (int[]) {
50 0,
51 },
52 }, {
53 .gpios = (0 << 1) | (1 << 0),
54 .axes = (int[]) {
55 1, /* 90 degrees */
56 },
57 }, {
58 .gpios = (1 << 1) | (1 << 0),
59 .axes = (int[]) {
60 2, /* 180 degrees */
61 },
62 }, {
63 .gpios = (1 << 1) | (0 << 0),
64 .axes = (int[]) {
65 3, /* 270 degrees */
66 },
67 },
68};
69
70static struct gpio_tilt_axis sg060_tilt_axes[] = {
71 {
72 .axis = ABS_RY,
73 .min = 0,
74 .max = 3,
75 .fuzz = 0,
76 .flat = 0,
77 },
78};
79
80static struct gpio_tilt_platform_data sg060_tilt_pdata= {
81 .gpios = sg060_tilt_gpios,
82 .nr_gpios = ARRAY_SIZE(sg060_tilt_gpios),
83
84 .axes = sg060_tilt_axes,
85 .nr_axes = ARRAY_SIZE(sg060_tilt_axes),
86
87 .states = sg060_tilt_states,
88 .nr_states = ARRAY_SIZE(sg060_tilt_states),
89
90 .debounce_interval = 100,
91
92 .poll_interval = 1000,
93 .enable = sg060_tilt_enable,
94 .disable = sg060_tilt_disable,
95};
96
97static struct platform_device sg060_device_tilt = {
98 .name = "gpio-tilt-polled",
99 .id = -1,
100 .dev = {
101 .platform_data = &sg060_tilt_pdata,
102 },
103};
Documentation/input/sentelic.txt+333−31
@@ -1,5 +1,5 @@
1Copyright (C) 2002-2010 Sentelic Corporation.1Copyright (C) 2002-2011 Sentelic Corporation.
2Last update: Jan-13-20102Last update: Dec-07-2011
3 3
4==============================================================================4==============================================================================
5* Finger Sensing Pad Intellimouse Mode(scrolling wheel, 4th and 5th buttons)5* Finger Sensing Pad Intellimouse Mode(scrolling wheel, 4th and 5th buttons)
@@ -140,6 +140,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|--------- · 134 unmodified lines
140Byte 1: Bit7~Bit6 => 00, Normal data packet140Byte 1: Bit7~Bit6 => 00, Normal data packet
141 => 01, Absolute coordination packet141 => 01, Absolute coordination packet
142 => 10, Notify packet142 => 10, Notify packet
143 => 11, Normal data packet with on-pad click
143 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.144 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
144 When both fingers are up, the last two reports have zero valid145 When both fingers are up, the last two reports have zero valid
145 bit.146 bit.
@@ -164,6 +165,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|--------- · 18 unmodified lines
164Byte 1: Bit7~Bit6 => 00, Normal data packet165Byte 1: Bit7~Bit6 => 00, Normal data packet
165 => 01, Absolute coordinates packet166 => 01, Absolute coordinates packet
166 => 10, Notify packet167 => 10, Notify packet
168 => 11, Normal data packet with on-pad click
167 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.169 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
168 When both fingers are up, the last two reports have zero valid170 When both fingers are up, the last two reports have zero valid
169 bit.171 bit.
@@ -188,6 +190,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|--------- · 18 unmodified lines
188Byte 1: Bit7~Bit6 => 00, Normal data packet190Byte 1: Bit7~Bit6 => 00, Normal data packet
189 => 01, Absolute coordinates packet191 => 01, Absolute coordinates packet
190 => 10, Notify packet192 => 10, Notify packet
193 => 11, Normal data packet with on-pad click
191 Bit5 => 1194 Bit5 => 1
192 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1):195 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1):
193 0: left button is generated by the on-pad command196 0: left button is generated by the on-pad command
@@ -205,7 +208,7 @@ Byte 4: Bit7 => scroll right button · 11 unmodified lines
205 Bit6 => scroll left button208 Bit6 => scroll left button
206 Bit5 => scroll down button209 Bit5 => scroll down button
207 Bit4 => scroll up button210 Bit4 => scroll up button
208 * Note that if gesture and additional buttoni (Bit4~Bit7)211 * Note that if gesture and additional button (Bit4~Bit7)
209 happen at the same time, the button information will not212 happen at the same time, the button information will not
210 be sent.213 be sent.
211 Bit3~Bit0 => Reserved214 Bit3~Bit0 => Reserved
@@ -227,6 +230,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|--------- · 15 unmodified lines
227Byte 1: Bit7~Bit6 => 00, Normal data packet230Byte 1: Bit7~Bit6 => 00, Normal data packet
228 => 01, Absolute coordinates packet231 => 01, Absolute coordinates packet
229 => 10, Notify packet232 => 10, Notify packet
233 => 11, Normal data packet with on-pad click
230 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.234 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
231 When both fingers are up, the last two reports have zero valid235 When both fingers are up, the last two reports have zero valid
232 bit.236 bit.
@@ -253,6 +257,7 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|--------- · 20 unmodified lines
253Byte 1: Bit7~Bit6 => 00, Normal data packet257Byte 1: Bit7~Bit6 => 00, Normal data packet
254 => 01, Absolute coordination packet258 => 01, Absolute coordination packet
255 => 10, Notify packet259 => 10, Notify packet
260 => 11, Normal data packet with on-pad click
256 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.261 Bit5 => Valid bit, 0 means that the coordinate is invalid or finger up.
257 When both fingers are up, the last two reports have zero valid262 When both fingers are up, the last two reports have zero valid
258 bit.263 bit.
@@ -279,8 +284,9 @@ BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|--------- · 20 unmodified lines
279Byte 1: Bit7~Bit6 => 00, Normal data packet284Byte 1: Bit7~Bit6 => 00, Normal data packet
280 => 01, Absolute coordination packet285 => 01, Absolute coordination packet
281 => 10, Notify packet286 => 10, Notify packet
287 => 11, Normal data packet with on-pad click
282 Bit5 => 1288 Bit5 => 1
283 Bit4 => when in absolute coordinate mode (valid when EN_PKT_GO is 1):289 Bit4 => when in absolute coordinates mode (valid when EN_PKT_GO is 1):
284 0: left button is generated by the on-pad command290 0: left button is generated by the on-pad command
285 1: left button is generated by the external button291 1: left button is generated by the external button
286 Bit3 => 1292 Bit3 => 1
@@ -306,6 +312,110 @@ Sample sequence of Multi-finger, Multi-coordinate mode: · 19 unmodified lines
306 notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1,312 notify packet (valid bit == 1), abs pkt 1, abs pkt 2, abs pkt 1,
307 abs pkt 2, ..., notify packet (valid bit == 0)313 abs pkt 2, ..., notify packet (valid bit == 0)
308 314
315==============================================================================
316* Absolute position for STL3888-Cx and STL3888-Dx.
317==============================================================================
318Single Finger, Absolute Coordinate Mode (SFAC)
319 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
320BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
321 1 |0|1|0|P|1|M|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |r|l|B|F|X|X|Y|Y|
322 |---------------| |---------------| |---------------| |---------------|
323
324Byte 1: Bit7~Bit6 => 00, Normal data packet
325 => 01, Absolute coordinates packet
326 => 10, Notify packet
327 Bit5 => Coordinate mode(always 0 in SFAC mode):
328 0: single-finger absolute coordinates (SFAC) mode
329 1: multi-finger, multiple coordinates (MFMC) mode
330 Bit4 => 0: The LEFT button is generated by on-pad command (OPC)
331 1: The LEFT button is generated by external button
332 Default is 1 even if the LEFT button is not pressed.
333 Bit3 => Always 1, as specified by PS/2 protocol.
334 Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
335 Bit1 => Right Button, 1 is pressed, 0 is not pressed.
336 Bit0 => Left Button, 1 is pressed, 0 is not pressed.
337Byte 2: X coordinate (xpos[9:2])
338Byte 3: Y coordinate (ypos[9:2])
339Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
340 Bit3~Bit2 => X coordinate (ypos[1:0])
341 Bit4 => 4th mouse button(forward one page)
342 Bit5 => 5th mouse button(backward one page)
343 Bit6 => scroll left button
344 Bit7 => scroll right button
345
346Multi Finger, Multiple Coordinates Mode (MFMC):
347 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
348BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
349 1 |0|1|1|P|1|F|R|L| 2 |X|X|X|X|X|X|X|X| 3 |Y|Y|Y|Y|Y|Y|Y|Y| 4 |r|l|B|F|X|X|Y|Y|
350 |---------------| |---------------| |---------------| |---------------|
351
352Byte 1: Bit7~Bit6 => 00, Normal data packet
353 => 01, Absolute coordination packet
354 => 10, Notify packet
355 Bit5 => Coordinate mode (always 1 in MFMC mode):
356 0: single-finger absolute coordinates (SFAC) mode
357 1: multi-finger, multiple coordinates (MFMC) mode
358 Bit4 => 0: The LEFT button is generated by on-pad command (OPC)
359 1: The LEFT button is generated by external button
360 Default is 1 even if the LEFT button is not pressed.
361 Bit3 => Always 1, as specified by PS/2 protocol.
362 Bit2 => Finger index, 0 is the first finger, 1 is the second finger.
363 If bit 1 and 0 are all 1 and bit 4 is 0, the middle external
364 button is pressed.
365 Bit1 => Right Button, 1 is pressed, 0 is not pressed.
366 Bit0 => Left Button, 1 is pressed, 0 is not pressed.
367Byte 2: X coordinate (xpos[9:2])
368Byte 3: Y coordinate (ypos[9:2])
369Byte 4: Bit1~Bit0 => Y coordinate (xpos[1:0])
370 Bit3~Bit2 => X coordinate (ypos[1:0])
371 Bit4 => 4th mouse button(forward one page)
372 Bit5 => 5th mouse button(backward one page)
373 Bit6 => scroll left button
374 Bit7 => scroll right button
375
376 When one of the two fingers is up, the device will output four consecutive
377MFMC#0 report packets with zero X and Y to represent 1st finger is up or
378four consecutive MFMC#1 report packets with zero X and Y to represent that
379the 2nd finger is up. On the other hand, if both fingers are up, the device
380will output four consecutive single-finger, absolute coordinate(SFAC) packets
381with zero X and Y.
382
383Notify Packet for STL3888-Cx/Dx
384 Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
385BYTE |---------------|BYTE |---------------|BYTE|---------------|BYTE|---------------|
386 1 |1|0|0|P|1|M|R|L| 2 |C|C|C|C|C|C|C|C| 3 |0|0|F|F|0|0|0|i| 4 |r|l|u|d|0|0|0|0|
387 |---------------| |---------------| |---------------| |---------------|
388
389Byte 1: Bit7~Bit6 => 00, Normal data packet
390 => 01, Absolute coordinates packet
391 => 10, Notify packet
392 Bit5 => Always 0
393 Bit4 => 0: The LEFT button is generated by on-pad command(OPC)
394 1: The LEFT button is generated by external button
395 Default is 1 even if the LEFT button is not pressed.
396 Bit3 => 1
397 Bit2 => Middle Button, 1 is pressed, 0 is not pressed.
398 Bit1 => Right Button, 1 is pressed, 0 is not pressed.
399 Bit0 => Left Button, 1 is pressed, 0 is not pressed.
400Byte 2: Message type:
401 0xba => gesture information
402 0xc0 => one finger hold-rotating gesture
403Byte 3: The first parameter for the received message:
404 0xba => gesture ID (refer to the 'Gesture ID' section)
405 0xc0 => region ID
406Byte 4: The second parameter for the received message:
407 0xba => N/A
408 0xc0 => finger up/down information
409
410Sample sequence of Multi-finger, Multi-coordinates mode:
411
412 notify packet (valid bit == 1), MFMC packet 1 (byte 1, bit 2 == 0),
413 MFMC packet 2 (byte 1, bit 2 == 1), MFMC packet 1, MFMC packet 2,
414 ..., notify packet (valid bit == 0)
415
416 That is, when the device is in MFMC mode, the host will receive
417 interleaved absolute coordinate packets for each finger.
418
309==============================================================================419==============================================================================
310* FSP Enable/Disable packet420* FSP Enable/Disable packet
311==============================================================================421==============================================================================
@@ -348,9 +458,10 @@ http://www.computer-engineering.org/ps2mouse/ · 36 unmodified lines
348==============================================================================458==============================================================================
3491. Identify FSP by reading device ID(0x00) and version(0x01) register4591. Identify FSP by reading device ID(0x00) and version(0x01) register
350 460
3512. Determine number of buttons by reading status2 (0x0b) register4612a. For FSP version < STL3888 Cx, determine number of buttons by reading
462 the 'test mode status' (0x20) register:
352 463
353 buttons = reg[0x0b] & 0x30464 buttons = reg[0x20] & 0x30
354 465
355 if buttons == 0x30 or buttons == 0x20:466 if buttons == 0x30 or buttons == 0x20:
356 # two/four buttons467 # two/four buttons
@@ -365,6 +476,10 @@ http://www.computer-engineering.org/ps2mouse/ · 8 unmodified lines
365 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse'476 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse'
366 section A for packet parsing detail477 section A for packet parsing detail
367 478
4792b. For FSP version >= STL3888 Cx:
480 Refer to 'Finger Sensing Pad PS/2 Mouse Intellimouse'
481 section A for packet parsing detail (ignore byte 4, bit ~ 7)
482
368==============================================================================483==============================================================================
369* Programming Sequence for Register Reading/Writing484* Programming Sequence for Register Reading/Writing
370==============================================================================485==============================================================================
@@ -374,7 +489,7 @@ Register inversion requirement: · 3 unmodified lines
374 Following values needed to be inverted(the '~' operator in C) before being489 Following values needed to be inverted(the '~' operator in C) before being
375sent to FSP:490sent to FSP:
376 491
377 0xe9, 0xee, 0xf2 and 0xff.492 0xe8, 0xe9, 0xee, 0xf2, 0xf3 and 0xff.
378 493
379Register swapping requirement:494Register swapping requirement:
380 495
@@ -415,7 +530,18 @@ Register reading sequence: · 34 unmodified lines
415 530
416 8. send 0xe9(status request) PS/2 command to FSP;531 8. send 0xe9(status request) PS/2 command to FSP;
417 532
418 9. the response read from FSP should be the requested register value.533 9. the 4th byte of the response read from FSP should be the
534 requested register value(?? indicates don't care byte):
535
536 host: 0xe9
537 3888: 0xfa (??) (??) (val)
538
539 * Note that since the Cx release, the hardware will return 1's
540 complement of the register value at the 3rd byte of status request
541 result:
542
543 host: 0xe9
544 3888: 0xfa (??) (~val) (val)
419 545
420Register writing sequence:546Register writing sequence:
421 547
@@ -465,71 +591,194 @@ Register writing sequence: · 43 unmodified lines
465 591
466 9. the register writing sequence is completed.592 9. the register writing sequence is completed.
467 593
594 * Note that since the Cx release, the hardware will return 1's
595 complement of the register value at the 3rd byte of status request
596 result. Host can optionally send another 0xe9 (status request) PS/2
597 command to FSP at the end of register writing to verify that the
598 register writing operation is successful (?? indicates don't care
599 byte):
600
601 host: 0xe9
602 3888: 0xfa (??) (~val) (val)
603
604==============================================================================
605* Programming Sequence for Page Register Reading/Writing
606==============================================================================
607
608 In order to overcome the limitation of maximum number of registers
609supported, the hardware separates register into different groups called
610'pages.' Each page is able to include up to 255 registers.
611
612 The default page after power up is 0x82; therefore, if one has to get
613access to register 0x8301, one has to use following sequence to switch
614to page 0x83, then start reading/writing from/to offset 0x01 by using
615the register read/write sequence described in previous section.
616
617Page register reading sequence:
618
619 1. send 0xf3 PS/2 command to FSP;
620
621 2. send 0x66 PS/2 command to FSP;
622
623 3. send 0x88 PS/2 command to FSP;
624
625 4. send 0xf3 PS/2 command to FSP;
626
627 5. send 0x83 PS/2 command to FSP;
628
629 6. send 0x88 PS/2 command to FSP;
630
631 7. send 0xe9(status request) PS/2 command to FSP;
632
633 8. the response read from FSP should be the requested page value.
634
635Page register writing sequence:
636
637 1. send 0xf3 PS/2 command to FSP;
638
639 2. send 0x38 PS/2 command to FSP;
640
641 3. send 0x88 PS/2 command to FSP;
642
643 4. send 0xf3 PS/2 command to FSP;
644
645 5. if the page address being written is not required to be
646 inverted(refer to the 'Register inversion requirement' section),
647 goto step 6
648
649 5a. send 0x47 PS/2 command to FSP;
650
651 5b. send the inverted page address to FSP and goto step 9;
652
653 6. if the page address being written is not required to be
654 swapped(refer to the 'Register swapping requirement' section),
655 goto step 7
656
657 6a. send 0x44 PS/2 command to FSP;
658
659 6b. send the swapped page address to FSP and goto step 9;
660
661 7. send 0x33 PS/2 command to FSP;
662
663 8. send the page address to FSP;
664
665 9. the page register writing sequence is completed.
666
667==============================================================================
668* Gesture ID
669==============================================================================
670
671 Unlike other devices which sends multiple fingers' coordinates to host,
672FSP processes multiple fingers' coordinates internally and convert them
673into a 8 bits integer, namely 'Gesture ID.' Following is a list of
674supported gesture IDs:
675
676 ID Description
677 0x86 2 finger straight up
678 0x82 2 finger straight down
679 0x80 2 finger straight right
680 0x84 2 finger straight left
681 0x8f 2 finger zoom in
682 0x8b 2 finger zoom out
683 0xc0 2 finger curve, counter clockwise
684 0xc4 2 finger curve, clockwise
685 0x2e 3 finger straight up
686 0x2a 3 finger straight down
687 0x28 3 finger straight right
688 0x2c 3 finger straight left
689 0x38 palm
690
468==============================================================================691==============================================================================
469* Register Listing692* Register Listing
470==============================================================================693==============================================================================
471 694
695 Registers are represented in 16 bits values. The higher 8 bits represent
696the page address and the lower 8 bits represent the relative offset within
697that particular page. Refer to the 'Programming Sequence for Page Register
698Reading/Writing' section for instructions on how to change current page
699address.
700
472offset width default r/w name701offset width default r/w name
4730x00 bit7~bit0 0x01 RO device ID7020x8200 bit7~bit0 0x01 RO device ID
474 703
4750x01 bit7~bit0 0xc0 RW version ID7040x8201 bit7~bit0 RW version ID
705 0xc1: STL3888 Ax
706 0xd0 ~ 0xd2: STL3888 Bx
707 0xe0 ~ 0xe1: STL3888 Cx
708 0xe2 ~ 0xe3: STL3888 Dx
476 709
4770x02 bit7~bit0 0x01 RO vendor ID7100x8202 bit7~bit0 0x01 RO vendor ID
478 711
4790x03 bit7~bit0 0x01 RO product ID7120x8203 bit7~bit0 0x01 RO product ID
480 713
4810x04 bit3~bit0 0x01 RW revision ID7140x8204 bit3~bit0 0x01 RW revision ID
482 715
4830x0b RO test mode status 17160x820b test mode status 1
484 bit3 1 RO 0: rotate 180 degree, 1: no rotation717 bit3 1 RO 0: rotate 180 degree
718 1: no rotation
719 *only supported by H/W prior to Cx
485 720
486 bit5~bit4 RO number of buttons7210x820f register file page control
487 11 => 2, lbtn/rbtn722 bit2 0 RW 1: rotate 180 degree
488 10 => 4, lbtn/rbtn/scru/scrd723 0: no rotation
489 01 => 6, lbtn/rbtn/scru/scrd/scrl/scrr724 *supported since Cx
490 00 => 6, lbtn/rbtn/scru/scrd/fbtn/bbtn
491 725
4920x0f RW register file page control
493 bit0 0 RW 1 to enable page 1 register files726 bit0 0 RW 1 to enable page 1 register files
727 *only supported by H/W prior to Cx
494 728
4950x10 RW system control 17290x8210 RW system control 1
496 bit0 1 RW Reserved, must be 1730 bit0 1 RW Reserved, must be 1
497 bit1 0 RW Reserved, must be 0731 bit1 0 RW Reserved, must be 0
498 bit4 1 RW Reserved, must be 0732 bit4 0 RW Reserved, must be 0
499 bit5 0 RW register clock gating enable733 bit5 1 RW register clock gating enable
500 0: read only, 1: read/write enable734 0: read only, 1: read/write enable
501 (Note that following registers does not require clock gating being735 (Note that following registers does not require clock gating being
502 enabled prior to write: 05 06 07 08 09 0c 0f 10 11 12 16 17 18 23 2e736 enabled prior to write: 05 06 07 08 09 0c 0f 10 11 12 16 17 18 23 2e
503 40 41 42 43. In addition to that, this bit must be 1 when gesture737 40 41 42 43. In addition to that, this bit must be 1 when gesture
504 mode is enabled)738 mode is enabled)
505 739
5060x31 RW on-pad command detection7400x8220 test mode status
741 bit5~bit4 RO number of buttons
742 11 => 2, lbtn/rbtn
743 10 => 4, lbtn/rbtn/scru/scrd
744 01 => 6, lbtn/rbtn/scru/scrd/scrl/scrr
745 00 => 6, lbtn/rbtn/scru/scrd/fbtn/bbtn
746 *only supported by H/W prior to Cx
747
7480x8231 RW on-pad command detection
507 bit7 0 RW on-pad command left button down tag749 bit7 0 RW on-pad command left button down tag
508 enable750 enable
509 0: disable, 1: enable751 0: disable, 1: enable
752 *only supported by H/W prior to Cx
510 753
5110x34 RW on-pad command control 57540x8234 RW on-pad command control 5
512 bit4~bit0 0x05 RW XLO in 0s/4/1, so 03h = 0010.1b = 2.5755 bit4~bit0 0x05 RW XLO in 0s/4/1, so 03h = 0010.1b = 2.5
513 (Note that position unit is in 0.5 scanline)756 (Note that position unit is in 0.5 scanline)
757 *only supported by H/W prior to Cx
514 758
515 bit7 0 RW on-pad tap zone enable759 bit7 0 RW on-pad tap zone enable
516 0: disable, 1: enable760 0: disable, 1: enable
761 *only supported by H/W prior to Cx
517 762
5180x35 RW on-pad command control 67630x8235 RW on-pad command control 6
519 bit4~bit0 0x1d RW XHI in 0s/4/1, so 19h = 1100.1b = 12.5764 bit4~bit0 0x1d RW XHI in 0s/4/1, so 19h = 1100.1b = 12.5
520 (Note that position unit is in 0.5 scanline)765 (Note that position unit is in 0.5 scanline)
766 *only supported by H/W prior to Cx
521 767
5220x36 RW on-pad command control 77680x8236 RW on-pad command control 7
523 bit4~bit0 0x04 RW YLO in 0s/4/1, so 03h = 0010.1b = 2.5769 bit4~bit0 0x04 RW YLO in 0s/4/1, so 03h = 0010.1b = 2.5
524 (Note that position unit is in 0.5 scanline)770 (Note that position unit is in 0.5 scanline)
771 *only supported by H/W prior to Cx
525 772
5260x37 RW on-pad command control 87730x8237 RW on-pad command control 8
527 bit4~bit0 0x13 RW YHI in 0s/4/1, so 11h = 1000.1b = 8.5774 bit4~bit0 0x13 RW YHI in 0s/4/1, so 11h = 1000.1b = 8.5
528 (Note that position unit is in 0.5 scanline)775 (Note that position unit is in 0.5 scanline)
776 *only supported by H/W prior to Cx
529 777
5300x40 RW system control 57780x8240 RW system control 5
531 bit1 0 RW FSP Intellimouse mode enable779 bit1 0 RW FSP Intellimouse mode enable
532 0: disable, 1: enable780 0: disable, 1: enable
781 *only supported by H/W prior to Cx
533 782
534 bit2 0 RW movement + abs. coordinate mode enable783 bit2 0 RW movement + abs. coordinate mode enable
535 0: disable, 1: enable784 0: disable, 1: enable
@@ -537,6 +786,7 @@ offset width default r/w name · 1 unmodified line
537 bit 1 is not set. However, the format is different from that of bit 1.786 bit 1 is not set. However, the format is different from that of bit 1.
538 In addition, when bit 1 and bit 2 are set at the same time, bit 2 will787 In addition, when bit 1 and bit 2 are set at the same time, bit 2 will
539 override bit 1.)788 override bit 1.)
789 *only supported by H/W prior to Cx
540 790
541 bit3 0 RW abs. coordinate only mode enable791 bit3 0 RW abs. coordinate only mode enable
542 0: disable, 1: enable792 0: disable, 1: enable
@@ -544,9 +794,11 @@ offset width default r/w name · 1 unmodified line
544 bit 1 is not set. However, the format is different from that of bit 1.794 bit 1 is not set. However, the format is different from that of bit 1.
545 In addition, when bit 1, bit 2 and bit 3 are set at the same time,795 In addition, when bit 1, bit 2 and bit 3 are set at the same time,
546 bit 3 will override bit 1 and 2.)796 bit 3 will override bit 1 and 2.)
797 *only supported by H/W prior to Cx
547 798
548 bit5 0 RW auto switch enable799 bit5 0 RW auto switch enable
549 0: disable, 1: enable800 0: disable, 1: enable
801 *only supported by H/W prior to Cx
550 802
551 bit6 0 RW G0 abs. + notify packet format enable803 bit6 0 RW G0 abs. + notify packet format enable
552 0: disable, 1: enable804 0: disable, 1: enable
@@ -554,18 +806,68 @@ offset width default r/w name · 1 unmodified line
554 bit 2 and 3. That is, if any of those bit is 1, host will receive806 bit 2 and 3. That is, if any of those bit is 1, host will receive
555 absolute coordinates; otherwise, host only receives packets with807 absolute coordinates; otherwise, host only receives packets with
556 relative coordinate.)808 relative coordinate.)
809 *only supported by H/W prior to Cx
557 810
558 bit7 0 RW EN_PS2_F2: PS/2 gesture mode 2nd811 bit7 0 RW EN_PS2_F2: PS/2 gesture mode 2nd
559 finger packet enable812 finger packet enable
560 0: disable, 1: enable813 0: disable, 1: enable
814 *only supported by H/W prior to Cx
561 815
5620x43 RW on-pad control8160x8243 RW on-pad control
563 bit0 0 RW on-pad control enable817 bit0 0 RW on-pad control enable
564 0: disable, 1: enable818 0: disable, 1: enable
565 (Note that if this bit is cleared, bit 3/5 will be ineffective)819 (Note that if this bit is cleared, bit 3/5 will be ineffective)
820 *only supported by H/W prior to Cx
566 821
567 bit3 0 RW on-pad fix vertical scrolling enable822 bit3 0 RW on-pad fix vertical scrolling enable
568 0: disable, 1: enable823 0: disable, 1: enable
824 *only supported by H/W prior to Cx
569 825
570 bit5 0 RW on-pad fix horizontal scrolling enable826 bit5 0 RW on-pad fix horizontal scrolling enable
571 0: disable, 1: enable827 0: disable, 1: enable
828 *only supported by H/W prior to Cx
829
8300x8290 RW software control register 1
831 bit0 0 RW absolute coordination mode
832 0: disable, 1: enable
833 *supported since Cx
834
835 bit1 0 RW gesture ID output
836 0: disable, 1: enable
837 *supported since Cx
838
839 bit2 0 RW two fingers' coordinates output
840 0: disable, 1: enable
841 *supported since Cx
842
843 bit3 0 RW finger up one packet output
844 0: disable, 1: enable
845 *supported since Cx
846
847 bit4 0 RW absolute coordination continuous mode
848 0: disable, 1: enable
849 *supported since Cx
850
851 bit6~bit5 00 RW gesture group selection
852 00: basic
853 01: suite
854 10: suite pro
855 11: advanced
856 *supported since Cx
857
858 bit7 0 RW Bx packet output compatible mode
859 0: disable, 1: enable *supported since Cx
860 *supported since Cx
861
862
8630x833d RW on-pad command control 1
864 bit7 1 RW on-pad command detection enable
865 0: disable, 1: enable
866 *supported since Cx
867
8680x833e RW on-pad command detection
869 bit7 0 RW on-pad command left button down tag
870 enable. Works only in H/W based PS/2
871 data packet mode.
872 0: disable, 1: enable
873 *supported since Cx
Documentation/ioctl/ioctl-number.txt+1−0
@@ -149,6 +149,7 @@ Code Seq#(hex) Include File Comments · 148 unmodified lines
149'M' 01-03 drivers/scsi/megaraid/megaraid_sas.h149'M' 01-03 drivers/scsi/megaraid/megaraid_sas.h
150'M' 00-0F drivers/video/fsl-diu-fb.h conflict!150'M' 00-0F drivers/video/fsl-diu-fb.h conflict!
151'N' 00-1F drivers/usb/scanner.h151'N' 00-1F drivers/usb/scanner.h
152'N' 40-7F drivers/block/nvme.c
152'O' 00-06 mtd/ubi-user.h UBI153'O' 00-06 mtd/ubi-user.h UBI
153'P' all linux/soundcard.h conflict!154'P' all linux/soundcard.h conflict!
154'P' 60-6F sound/sscape_ioctl.h conflict!155'P' 60-6F sound/sscape_ioctl.h conflict!
Documentation/kbuild/makefiles.txt+32−18
@@ -33,14 +33,15 @@ This document describes the Linux kernel Makefiles. · 32 unmodified lines
33 33
34 === 6 Architecture Makefiles34 === 6 Architecture Makefiles
35 --- 6.1 Set variables to tweak the build to the architecture35 --- 6.1 Set variables to tweak the build to the architecture
36 --- 6.2 Add prerequisites to archprepare:36 --- 6.2 Add prerequisites to archheaders:
37 --- 6.3 List directories to visit when descending37 --- 6.3 Add prerequisites to archprepare:
38 --- 6.4 Architecture-specific boot images38 --- 6.4 List directories to visit when descending
39 --- 6.5 Building non-kbuild targets39 --- 6.5 Architecture-specific boot images
40 --- 6.6 Commands useful for building a boot image40 --- 6.6 Building non-kbuild targets
41 --- 6.7 Custom kbuild commands41 --- 6.7 Commands useful for building a boot image
42 --- 6.8 Preprocessing linker scripts42 --- 6.8 Custom kbuild commands
43 --- 6.9 Generic header files43 --- 6.9 Preprocessing linker scripts
44 --- 6.10 Generic header files
44 45
45 === 7 Kbuild syntax for exported headers46 === 7 Kbuild syntax for exported headers
46 --- 7.1 header-y47 --- 7.1 header-y
@@ -252,7 +253,7 @@ more details, with real examples. · 205 unmodified lines
252 This will create a library lib.a based on delay.o. For kbuild to253 This will create a library lib.a based on delay.o. For kbuild to
253 actually recognize that there is a lib.a being built, the directory254 actually recognize that there is a lib.a being built, the directory
254 shall be listed in libs-y.255 shall be listed in libs-y.
255 See also "6.3 List directories to visit when descending".256 See also "6.4 List directories to visit when descending".
256 257
257 Use of lib-y is normally restricted to lib/ and arch/*/lib.258 Use of lib-y is normally restricted to lib/ and arch/*/lib.
258 259
@@ -974,7 +975,20 @@ When kbuild executes, the following steps are followed (roughly): · 715 unmodified lines
974 $(KBUILD_ARFLAGS) set by the top level Makefile to "D" (deterministic975 $(KBUILD_ARFLAGS) set by the top level Makefile to "D" (deterministic
975 mode) if this option is supported by $(AR).976 mode) if this option is supported by $(AR).
976 977
977--- 6.2 Add prerequisites to archprepare:978--- 6.2 Add prerequisites to archheaders:
979
980 The archheaders: rule is used to generate header files that
981 may be installed into user space by "make header_install" or
982 "make headers_install_all". In order to support
983 "make headers_install_all", this target has to be able to run
984 on an unconfigured tree, or a tree configured for another
985 architecture.
986
987 It is run before "make archprepare" when run on the
988 architecture itself.
989
990
991--- 6.3 Add prerequisites to archprepare:
978 992
979 The archprepare: rule is used to list prerequisites that need to be993 The archprepare: rule is used to list prerequisites that need to be
980 built before starting to descend down in the subdirectories.994 built before starting to descend down in the subdirectories.
@@ -990,7 +1004,7 @@ When kbuild executes, the following steps are followed (roughly): · 9 unmodified lines
990 generating offset header files.1004 generating offset header files.
991 1005
992 1006
993--- 6.3 List directories to visit when descending1007--- 6.4 List directories to visit when descending
994 1008
995 An arch Makefile cooperates with the top Makefile to define variables1009 An arch Makefile cooperates with the top Makefile to define variables
996 which specify how to build the vmlinux file. Note that there is no1010 which specify how to build the vmlinux file. Note that there is no
@@ -1019,7 +1033,7 @@ When kbuild executes, the following steps are followed (roughly): · 22 unmodified lines
1019 drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/1033 drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/
1020 1034
1021 1035
1022--- 6.4 Architecture-specific boot images1036--- 6.5 Architecture-specific boot images
1023 1037
1024 An arch Makefile specifies goals that take the vmlinux file, compress1038 An arch Makefile specifies goals that take the vmlinux file, compress
1025 it, wrap it in bootstrapping code, and copy the resulting files1039 it, wrap it in bootstrapping code, and copy the resulting files
@@ -1070,7 +1084,7 @@ When kbuild executes, the following steps are followed (roughly): · 44 unmodified lines
1070 1084
1071 When "make" is executed without arguments, bzImage will be built.1085 When "make" is executed without arguments, bzImage will be built.
1072 1086
1073--- 6.5 Building non-kbuild targets1087--- 6.6 Building non-kbuild targets
1074 1088
1075 extra-y1089 extra-y
1076 1090
@@ -1090,7 +1104,7 @@ When kbuild executes, the following steps are followed (roughly): · 13 unmodified lines
1090 shall be built, but shall not be linked as part of built-in.o.1104 shall be built, but shall not be linked as part of built-in.o.
1091 1105
1092 1106
1093--- 6.6 Commands useful for building a boot image1107--- 6.7 Commands useful for building a boot image
1094 1108
1095 Kbuild provides a few macros that are useful when building a1109 Kbuild provides a few macros that are useful when building a
1096 boot image.1110 boot image.
@@ -1112,7 +1126,7 @@ When kbuild executes, the following steps are followed (roughly): · 15 unmodified lines
1112 always be built.1126 always be built.
1113 Assignments to $(targets) are without $(obj)/ prefix.1127 Assignments to $(targets) are without $(obj)/ prefix.
1114 if_changed may be used in conjunction with custom commands as1128 if_changed may be used in conjunction with custom commands as
1115 defined in 6.7 "Custom kbuild commands".1129 defined in 6.8 "Custom kbuild commands".
1116 1130
1117 Note: It is a typical mistake to forget the FORCE prerequisite.1131 Note: It is a typical mistake to forget the FORCE prerequisite.
1118 Another common pitfall is that whitespace is sometimes1132 Another common pitfall is that whitespace is sometimes
@@ -1171,7 +1185,7 @@ When kbuild executes, the following steps are followed (roughly): · 52 unmodified lines
1171 $(obj)/%.dtb: $(src)/%.dts1185 $(obj)/%.dtb: $(src)/%.dts
1172 $(call cmd,dtc)1186 $(call cmd,dtc)
1173 1187
1174--- 6.7 Custom kbuild commands1188--- 6.8 Custom kbuild commands
1175 1189
1176 When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand1190 When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand
1177 of a command is normally displayed.1191 of a command is normally displayed.
@@ -1198,7 +1212,7 @@ When kbuild executes, the following steps are followed (roughly): · 20 unmodified lines
1198 will be displayed with "make KBUILD_VERBOSE=0".1212 will be displayed with "make KBUILD_VERBOSE=0".
1199 1213
1200 1214
1201--- 6.8 Preprocessing linker scripts1215--- 6.9 Preprocessing linker scripts
1202 1216
1203 When the vmlinux image is built, the linker script1217 When the vmlinux image is built, the linker script
1204 arch/$(ARCH)/kernel/vmlinux.lds is used.1218 arch/$(ARCH)/kernel/vmlinux.lds is used.
@@ -1228,7 +1242,7 @@ When kbuild executes, the following steps are followed (roughly): · 23 unmodified lines
1228 The kbuild infrastructure for *lds file are used in several1242 The kbuild infrastructure for *lds file are used in several
1229 architecture-specific files.1243 architecture-specific files.
1230 1244
1231--- 6.9 Generic header files1245--- 6.10 Generic header files
1232 1246
1233 The directory include/asm-generic contains the header files1247 The directory include/asm-generic contains the header files
1234 that may be shared between individual architectures.1248 that may be shared between individual architectures.
Documentation/kdump/kdump.txt+32−3
@@ -17,8 +17,8 @@ You can use common commands, such as cp and scp, to copy the · 16 unmodified lines
17memory image to a dump file on the local disk, or across the network to17memory image to a dump file on the local disk, or across the network to
18a remote system.18a remote system.
19 19
20Kdump and kexec are currently supported on the x86, x86_64, ppc64 and ia6420Kdump and kexec are currently supported on the x86, x86_64, ppc64, ia64,
21architectures.21and s390x architectures.
22 22
23When the system kernel boots, it reserves a small section of memory for23When the system kernel boots, it reserves a small section of memory for
24the dump-capture kernel. This ensures that ongoing Direct Memory Access24the dump-capture kernel. This ensures that ongoing Direct Memory Access
@@ -34,11 +34,18 @@ Similarly on PPC64 machines first 32KB of physical memory is needed for · 9 unmodified lines
34booting regardless of where the kernel is loaded and to support 64K page34booting regardless of where the kernel is loaded and to support 64K page
35size kexec backs up the first 64KB memory.35size kexec backs up the first 64KB memory.
36 36
37For s390x, when kdump is triggered, the crashkernel region is exchanged
38with the region [0, crashkernel region size] and then the kdump kernel
39runs in [0, crashkernel region size]. Therefore no relocatable kernel is
40needed for s390x.
41
37All of the necessary information about the system kernel's core image is42All of the necessary information about the system kernel's core image is
38encoded in the ELF format, and stored in a reserved area of memory43encoded in the ELF format, and stored in a reserved area of memory
39before a crash. The physical address of the start of the ELF header is44before a crash. The physical address of the start of the ELF header is
40passed to the dump-capture kernel through the elfcorehdr= boot45passed to the dump-capture kernel through the elfcorehdr= boot
41parameter.46parameter. Optionally the size of the ELF header can also be passed
47when using the elfcorehdr=[size[KMG]@]offset[KMG] syntax.
48
42 49
43With the dump-capture kernel, you can access the memory image, or "old50With the dump-capture kernel, you can access the memory image, or "old
44memory," in two ways:51memory," in two ways:
@@ -291,6 +298,10 @@ Boot into System Kernel · 246 unmodified lines
291 The region may be automatically placed on ia64, see the298 The region may be automatically placed on ia64, see the
292 dump-capture kernel config option notes above.299 dump-capture kernel config option notes above.
293 300
301 On s390x, typically use "crashkernel=xxM". The value of xx is dependent
302 on the memory consumption of the kdump system. In general this is not
303 dependent on the memory size of the production system.
304
294Load the Dump-capture Kernel305Load the Dump-capture Kernel
295============================306============================
296 307
@@ -308,6 +319,8 @@ For ppc64: · 11 unmodified lines
308 - Use vmlinux319 - Use vmlinux
309For ia64:320For ia64:
310 - Use vmlinux or vmlinuz.gz321 - Use vmlinux or vmlinuz.gz
322For s390x:
323 - Use image or bzImage
311 324
312 325
313If you are using a uncompressed vmlinux image then use following command326If you are using a uncompressed vmlinux image then use following command
@@ -337,6 +350,8 @@ For i386, x86_64 and ia64: · 23 unmodified lines
337For ppc64:350For ppc64:
338 "1 maxcpus=1 noirqdistrib reset_devices"351 "1 maxcpus=1 noirqdistrib reset_devices"
339 352
353For s390x:
354 "1 maxcpus=1 cgroup_disable=memory"
340 355
341Notes on loading the dump-capture kernel:356Notes on loading the dump-capture kernel:
342 357
@@ -362,6 +377,20 @@ Notes on loading the dump-capture kernel: · 19 unmodified lines
362 dump. Hence generally it is useful either to build a UP dump-capture377 dump. Hence generally it is useful either to build a UP dump-capture
363 kernel or specify maxcpus=1 option while loading dump-capture kernel.378 kernel or specify maxcpus=1 option while loading dump-capture kernel.
364 379
380* For s390x there are two kdump modes: If a ELF header is specified with
381 the elfcorehdr= kernel parameter, it is used by the kdump kernel as it
382 is done on all other architectures. If no elfcorehdr= kernel parameter is
383 specified, the s390x kdump kernel dynamically creates the header. The
384 second mode has the advantage that for CPU and memory hotplug, kdump has
385 not to be reloaded with kexec_load().
386
387* For s390x systems with many attached devices the "cio_ignore" kernel
388 parameter should be used for the kdump kernel in order to prevent allocation
389 of kernel memory for devices that are not relevant for kdump. The same
390 applies to systems that use SCSI/FCP devices. In that case the
391 "allow_lun_scan" zfcp module parameter should be set to zero before
392 setting FCP devices online.
393
365Kernel Panic394Kernel Panic
366============395============
367 396
Documentation/kernel-parameters.txt+65−10
@@ -329,6 +329,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 328 unmodified lines
329 is a lot of faster329 is a lot of faster
330 off - do not initialize any AMD IOMMU found in330 off - do not initialize any AMD IOMMU found in
331 the system331 the system
332 force_isolation - Force device isolation for all
333 devices. The IOMMU driver is not
334 allowed anymore to lift isolation
335 requirements as needed. This option
336 does not override iommu=pt
332 337
333 amijoy.map= [HW,JOY] Amiga joystick support338 amijoy.map= [HW,JOY] Amiga joystick support
334 Map of devices attached to JOY0DAT and JOY1DAT339 Map of devices attached to JOY0DAT and JOY1DAT
@@ -623,6 +628,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 288 unmodified lines
623 no_debug_objects628 no_debug_objects
624 [KNL] Disable object debugging629 [KNL] Disable object debugging
625 630
631 debug_guardpage_minorder=
632 [KNL] When CONFIG_DEBUG_PAGEALLOC is set, this
633 parameter allows control of the order of pages that will
634 be intentionally kept free (and hence protected) by the
635 buddy allocator. Bigger value increase the probability
636 of catching random memory corruption, but reduce the
637 amount of memory for normal system use. The maximum
638 possible value is MAX_ORDER/2. Setting this parameter
639 to 1 or 2 should be enough to identify most random
640 memory corruption problems caused by bugs in kernel or
641 driver code when a CPU writes to (or reads from) a
642 random memory location. Note that there exists a class
643 of memory corruptions problems caused by buggy H/W or
644 F/W or by drivers badly programing DMA (basically when
645 memory is written at bus level and the CPU MMU is
646 bypassed) which are not detectable by
647 CONFIG_DEBUG_PAGEALLOC, hence this option will not help
648 tracking down these problems.
649
626 debugpat [X86] Enable PAT debugging650 debugpat [X86] Enable PAT debugging
627 651
628 decnet.addr= [HW,NET]652 decnet.addr= [HW,NET]
@@ -1035,6 +1059,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 406 unmodified lines
1035 By default, super page will be supported if Intel IOMMU1059 By default, super page will be supported if Intel IOMMU
1036 has the capability. With this option, super page will1060 has the capability. With this option, super page will
1037 not be supported.1061 not be supported.
1062
1063 intel_idle.max_cstate= [KNL,HW,ACPI,X86]
1064 0 disables intel_idle and fall back on acpi_idle.
1065 1 to 6 specify maximum depth of C-state.
1066
1038 intremap= [X86-64, Intel-IOMMU]1067 intremap= [X86-64, Intel-IOMMU]
1039 on enable Interrupt Remapping (default)1068 on enable Interrupt Remapping (default)
1040 off disable Interrupt Remapping1069 off disable Interrupt Remapping
@@ -1059,7 +1088,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 18 unmodified lines
1059 nomerge1088 nomerge
1060 forcesac1089 forcesac
1061 soft1090 soft
1062 pt [x86, IA-64]1091 pt [x86, IA-64]
1092 group_mf [x86, IA-64]
1093
1063 1094
1064 io7= [HW] IO7 for Marvel based alpha systems1095 io7= [HW] IO7 for Marvel based alpha systems
1065 See comment before marvel_specify_io7 in1096 See comment before marvel_specify_io7 in
@@ -1178,9 +1209,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 112 unmodified lines
1178 kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.1209 kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.
1179 Default is 0 (don't ignore, but inject #GP)1210 Default is 0 (don't ignore, but inject #GP)
1180 1211
1181 kvm.oos_shadow= [KVM] Disable out-of-sync shadow paging.
1182 Default is 1 (enabled)
1183
1184 kvm.mmu_audit= [KVM] This is a R/W parameter which allows audit1212 kvm.mmu_audit= [KVM] This is a R/W parameter which allows audit
1185 KVM MMU at runtime.1213 KVM MMU at runtime.
1186 Default is 0 (off)1214 Default is 0 (off)
@@ -1630,12 +1658,17 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 443 unmodified lines
1630 The default is to return 64-bit inode numbers.1658 The default is to return 64-bit inode numbers.
1631 1659
1632 nfs.nfs4_disable_idmapping=1660 nfs.nfs4_disable_idmapping=
1633 [NFSv4] When set, this option disables the NFSv41661 [NFSv4] When set to the default of '1', this option
1634 idmapper on the client, but only if the mount1662 ensures that both the RPC level authentication
1635 is using the 'sec=sys' security flavour. This may1663 scheme and the NFS level operations agree to use
1636 make migration from legacy NFSv2/v3 systems easier1664 numeric uids/gids if the mount is using the
1637 provided that the server has the appropriate support.1665 'sec=sys' security flavour. In effect it is
1638 The default is to always enable NFSv4 idmapping.1666 disabling idmapping, which can make migration from
1667 legacy NFSv2/v3 systems to NFSv4 easier.
1668 Servers that do not support this mode of operation
1669 will be autodetected by the client, and it will fall
1670 back to using the idmapper.
1671 To turn off this behaviour, set the value to '0'.
1639 1672
1640 nmi_debug= [KNL,AVR32,SH] Specify one or more actions to take1673 nmi_debug= [KNL,AVR32,SH] Specify one or more actions to take
1641 when a NMI is triggered.1674 when a NMI is triggered.
@@ -1796,6 +1829,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 154 unmodified lines
1796 nomfgpt [X86-32] Disable Multi-Function General Purpose1829 nomfgpt [X86-32] Disable Multi-Function General Purpose
1797 Timer usage (for AMD Geode machines).1830 Timer usage (for AMD Geode machines).
1798 1831
1832 nonmi_ipi [X86] Disable using NMI IPIs during panic/reboot to
1833 shutdown the other cpus. Instead use the REBOOT_VECTOR
1834 irq.
1835
1799 nopat [X86] Disable PAT (page attribute table extension of1836 nopat [X86] Disable PAT (page attribute table extension of
1800 pagetables) support.1837 pagetables) support.
1801 1838
@@ -2367,6 +2404,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 565 unmodified lines
2367 2404
2368 slram= [HW,MTD]2405 slram= [HW,MTD]
2369 2406
2407 slab_max_order= [MM, SLAB]
2408 Determines the maximum allowed order for slabs.
2409 A high setting may cause OOMs due to memory
2410 fragmentation. Defaults to 1 for systems with
2411 more than 32MB of RAM, 0 otherwise.
2412
2370 slub_debug[=options[,slabs]] [MM, SLUB]2413 slub_debug[=options[,slabs]] [MM, SLUB]
2371 Enabling slub_debug allows one to determine the2414 Enabling slub_debug allows one to determine the
2372 culprit if slab objects become corrupted. Enabling2415 culprit if slab objects become corrupted. Enabling
@@ -2437,6 +2480,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 64 unmodified lines
2437 stacktrace [FTRACE]2480 stacktrace [FTRACE]
2438 Enabled the stack tracer on boot up.2481 Enabled the stack tracer on boot up.
2439 2482
2483 stacktrace_filter=[function-list]
2484 [FTRACE] Limit the functions that the stack tracer
2485 will trace at boot up. function-list is a comma separated
2486 list of functions. This list can be changed at run
2487 time by the stack_trace_filter file in the debugfs
2488 tracing directory. Note, this enables stack tracing
2489 and the stacktrace above is not needed.
2490
2440 sti= [PARISC,HW]2491 sti= [PARISC,HW]
2441 Format: <num>2492 Format: <num>
2442 Set the STI (builtin display/keyboard on the HP-PARISC2493 Set the STI (builtin display/keyboard on the HP-PARISC
@@ -2637,6 +2688,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. · 194 unmodified lines
2637 [USB] Start with the old device initialization2688 [USB] Start with the old device initialization
2638 scheme (default 0 = off).2689 scheme (default 0 = off).
2639 2690
2691 usbcore.usbfs_memory_mb=
2692 [USB] Memory limit (in MB) for buffers allocated by
2693 usbfs (default = 16, 0 = max = 2047).
2694
2640 usbcore.use_both_schemes=2695 usbcore.use_both_schemes=
2641 [USB] Try the other device initialization scheme2696 [USB] Try the other device initialization scheme
2642 if the first one fails (default 1 = enabled).2697 if the first one fails (default 1 = enabled).
Documentation/kmemleak.txt+3−0
@@ -127,7 +127,10 @@ See the include/linux/kmemleak.h header for the functions prototype. · 126 unmodified lines
127 127
128kmemleak_init - initialize kmemleak128kmemleak_init - initialize kmemleak
129kmemleak_alloc - notify of a memory block allocation129kmemleak_alloc - notify of a memory block allocation
130kmemleak_alloc_percpu - notify of a percpu memory block allocation
130kmemleak_free - notify of a memory block freeing131kmemleak_free - notify of a memory block freeing
132kmemleak_free_part - notify of a partial memory block freeing
133kmemleak_free_percpu - notify of a percpu memory block freeing
131kmemleak_not_leak - mark an object as not a leak134kmemleak_not_leak - mark an object as not a leak
132kmemleak_ignore - do not scan or report an object as leak135kmemleak_ignore - do not scan or report an object as leak
133kmemleak_scan_area - add scan areas inside a memory block136kmemleak_scan_area - add scan areas inside a memory block
Documentation/md.txt+18−4
@@ -357,14 +357,14 @@ Each directory contains: · 356 unmodified lines
357 written to, that device.357 written to, that device.
358 358
359 state359 state
360 A file recording the current state of the device in the array360 A file recording the current state of the device in the array
361 which can be a comma separated list of361 which can be a comma separated list of
362 faulty - device has been kicked from active use due to362 faulty - device has been kicked from active use due to
363 a detected fault or it has unacknowledged bad363 a detected fault, or it has unacknowledged bad
364 blocks364 blocks
365 in_sync - device is a fully in-sync member of the array365 in_sync - device is a fully in-sync member of the array
366 writemostly - device will only be subject to read366 writemostly - device will only be subject to read
367 requests if there are no other options.367 requests if there are no other options.
368 This applies only to raid1 arrays.368 This applies only to raid1 arrays.
369 blocked - device has failed, and the failure hasn't been369 blocked - device has failed, and the failure hasn't been
370 acknowledged yet by the metadata handler.370 acknowledged yet by the metadata handler.
@@ -374,6 +374,13 @@ Each directory contains: · 3 unmodified lines
374 This includes spares that are in the process374 This includes spares that are in the process
375 of being recovered to375 of being recovered to
376 write_error - device has ever seen a write error.376 write_error - device has ever seen a write error.
377 want_replacement - device is (mostly) working but probably
378 should be replaced, either due to errors or
379 due to user request.
380 replacement - device is a replacement for another active
381 device with same raid_disk.
382
383
377 This list may grow in future.384 This list may grow in future.
378 This can be written to.385 This can be written to.
379 Writing "faulty" simulates a failure on the device.386 Writing "faulty" simulates a failure on the device.
@@ -386,6 +393,13 @@ Each directory contains: · 6 unmodified lines
386 Writing "in_sync" sets the in_sync flag.393 Writing "in_sync" sets the in_sync flag.
387 Writing "write_error" sets writeerrorseen flag.394 Writing "write_error" sets writeerrorseen flag.
388 Writing "-write_error" clears writeerrorseen flag.395 Writing "-write_error" clears writeerrorseen flag.
396 Writing "want_replacement" is allowed at any time except to a
397 replacement device or a spare. It sets the flag.
398 Writing "-want_replacement" is allowed at any time. It clears
399 the flag.
400 Writing "replacement" or "-replacement" is only allowed before
401 starting the array. It sets or clears the flag.
402
389 403
390 This file responds to select/poll. Any change to 'faulty'404 This file responds to select/poll. Any change to 'faulty'
391 or 'blocked' causes an event.405 or 'blocked' causes an event.
Documentation/mmc/mmc-dev-attrs.txt+10−0
@@ -64,3 +64,13 @@ Note on Erase Size and Preferred Erase Size: · 63 unmodified lines
64 size specified by the card.64 size specified by the card.
65 65
66 "preferred_erase_size" is in bytes.66 "preferred_erase_size" is in bytes.
67
68SD/MMC/SDIO Clock Gating Attribute
69==================================
70
71Read and write access is provided to following attribute.
72This attribute appears only if CONFIG_MMC_CLKGATE is enabled.
73
74 clkgate_delay Tune the clock gating delay with desired value in milliseconds.
75
76echo <desired delay> > /sys/class/mmc_host/mmcX/clkgate_delay
Documentation/mmc/mmc-dev-parts.txt+13−0
@@ -25,3 +25,16 @@ echo 0 > /sys/block/mmcblkXbootY/force_ro · 24 unmodified lines
25To re-enable read-only access:25To re-enable read-only access:
26 26
27echo 1 > /sys/block/mmcblkXbootY/force_ro27echo 1 > /sys/block/mmcblkXbootY/force_ro
28
29The boot partitions can also be locked read only until the next power on,
30with:
31
32echo 1 > /sys/block/mmcblkXbootY/ro_lock_until_next_power_on
33
34This is a feature of the card and not of the kernel. If the card does
35not support boot partition locking, the file will not exist. If the
36feature has been disabled on the card, the file will be read-only.
37
38The boot partitions can also be locked permanently, but this feature is
39not accessible through sysfs in order to avoid accidental or malicious
40bricking.
Documentation/networking/00-INDEX+2−0
@@ -144,6 +144,8 @@ nfc.txt · 143 unmodified lines
144 - The Linux Near Field Communication (NFS) subsystem.144 - The Linux Near Field Communication (NFS) subsystem.
145olympic.txt145olympic.txt
146 - IBM PCI Pit/Pit-Phy/Olympic Token Ring driver info.146 - IBM PCI Pit/Pit-Phy/Olympic Token Ring driver info.
147openvswitch.txt
148 - Open vSwitch developer documentation.
147operstates.txt149operstates.txt
148 - Overview of network interface operational states.150 - Overview of network interface operational states.
149packet_mmap.txt151packet_mmap.txt
Documentation/networking/batman-adv.txt+4−3
@@ -200,15 +200,16 @@ abled during run time. Following log_levels are defined: · 199 unmodified lines
200 200
2010 - All debug output disabled2010 - All debug output disabled
2021 - Enable messages related to routing / flooding / broadcasting2021 - Enable messages related to routing / flooding / broadcasting
2032 - Enable route or tt entry added / changed / deleted2032 - Enable messages related to route added / changed / deleted
2043 - Enable all messages2044 - Enable messages related to translation table operations
2057 - Enable all messages
205 206
206The debug output can be changed at runtime using the file207The debug output can be changed at runtime using the file
207/sys/class/net/bat0/mesh/log_level. e.g.208/sys/class/net/bat0/mesh/log_level. e.g.
208 209
209# echo 2 > /sys/class/net/bat0/mesh/log_level210# echo 2 > /sys/class/net/bat0/mesh/log_level
210 211
211will enable debug messages for when routes or TTs change.212will enable debug messages for when routes change.
212 213
213 214
214BATCTL215BATCTL
Documentation/networking/bonding.txt+17−0
@@ -196,6 +196,23 @@ or, for backwards compatibility, the option value. E.g., · 195 unmodified lines
196 196
197 The parameters are as follows:197 The parameters are as follows:
198 198
199active_slave
200
201 Specifies the new active slave for modes that support it
202 (active-backup, balance-alb and balance-tlb). Possible values
203 are the name of any currently enslaved interface, or an empty
204 string. If a name is given, the slave and its link must be up in order
205 to be selected as the new active slave. If an empty string is
206 specified, the current active slave is cleared, and a new active
207 slave is selected automatically.
208
209 Note that this is only available through the sysfs interface. No module
210 parameter by this name exists.
211
212 The normal value of this option is the name of the currently
213 active slave, or the empty string if there is no active slave or
214 the current mode does not use an active slave.
215
199ad_select216ad_select
200 217
201 Specifies the 802.3ad aggregation selection logic to use. The218 Specifies the 802.3ad aggregation selection logic to use. The
Documentation/networking/ieee802154.txt+27−0
@@ -78,3 +78,30 @@ in software. This is currently WIP. · 77 unmodified lines
78 78
79See header include/net/mac802154.h and several drivers in drivers/ieee802154/.79See header include/net/mac802154.h and several drivers in drivers/ieee802154/.
80 80
816LoWPAN Linux implementation
82============================
83
84The IEEE 802.15.4 standard specifies an MTU of 128 bytes, yielding about 80
85octets of actual MAC payload once security is turned on, on a wireless link
86with a link throughput of 250 kbps or less. The 6LoWPAN adaptation format
87[RFC4944] was specified to carry IPv6 datagrams over such constrained links,
88taking into account limited bandwidth, memory, or energy resources that are
89expected in applications such as wireless Sensor Networks. [RFC4944] defines
90a Mesh Addressing header to support sub-IP forwarding, a Fragmentation header
91to support the IPv6 minimum MTU requirement [RFC2460], and stateless header
92compression for IPv6 datagrams (LOWPAN_HC1 and LOWPAN_HC2) to reduce the
93relatively large IPv6 and UDP headers down to (in the best case) several bytes.
94
95In Semptember 2011 the standard update was published - [RFC6282].
96It deprecates HC1 and HC2 compression and defines IPHC encoding format which is
97used in this Linux implementation.
98
99All the code related to 6lowpan you may find in files: net/ieee802154/6lowpan.*
100
101To setup 6lowpan interface you need (busybox release > 1.17.0):
1021. Add IEEE802.15.4 interface and initialize PANid;
1032. Add 6lowpan interface by command like:
104 # ip link add link wpan0 name lowpan0 type lowpan
1053. Set MAC (if needs):
106 # ip link set lowpan0 address de:ad:be:ef:ca:fe:ba:be
1074. Bring up 'lowpan0' interface
Documentation/networking/ifenslave.c+2−0
@@ -539,12 +539,14 @@ static int if_getconfig(char *ifname) · 538 unmodified lines
539 metric = 0;539 metric = 0;
540 } else540 } else
541 metric = ifr.ifr_metric;541 metric = ifr.ifr_metric;
542 printf("The result of SIOCGIFMETRIC is %d\n", metric);
542 543
543 strcpy(ifr.ifr_name, ifname);544 strcpy(ifr.ifr_name, ifname);
544 if (ioctl(skfd, SIOCGIFMTU, &ifr) < 0)545 if (ioctl(skfd, SIOCGIFMTU, &ifr) < 0)
545 mtu = 0;546 mtu = 0;
546 else547 else
547 mtu = ifr.ifr_mtu;548 mtu = ifr.ifr_mtu;
549 printf("The result of SIOCGIFMTU is %d\n", mtu);
548 550
549 strcpy(ifr.ifr_name, ifname);551 strcpy(ifr.ifr_name, ifname);
550 if (ioctl(skfd, SIOCGIFDSTADDR, &ifr) < 0) {552 if (ioctl(skfd, SIOCGIFDSTADDR, &ifr) < 0) {
Documentation/networking/ip-sysctl.txt+13−0
@@ -31,6 +31,16 @@ neigh/default/gc_thresh3 - INTEGER · 30 unmodified lines
31 when using large numbers of interfaces and when communicating31 when using large numbers of interfaces and when communicating
32 with large numbers of directly-connected peers.32 with large numbers of directly-connected peers.
33 33
34neigh/default/unres_qlen_bytes - INTEGER
35 The maximum number of bytes which may be used by packets
36 queued for each unresolved address by other network layers.
37 (added in linux 3.3)
38
39neigh/default/unres_qlen - INTEGER
40 The maximum number of packets which may be queued for each
41 unresolved address by other network layers.
42 (deprecated in linux 3.3) : use unres_qlen_bytes instead.
43
34mtu_expires - INTEGER44mtu_expires - INTEGER
35 Time, in seconds, that cached PMTU information is kept.45 Time, in seconds, that cached PMTU information is kept.
36 46
@@ -165,6 +175,9 @@ tcp_congestion_control - STRING · 128 unmodified lines
165 connections. The algorithm "reno" is always available, but175 connections. The algorithm "reno" is always available, but
166 additional choices may be available based on kernel configuration.176 additional choices may be available based on kernel configuration.
167 Default is set as part of kernel configuration.177 Default is set as part of kernel configuration.
178 For passive connections, the listener congestion control choice
179 is inherited.
180 [see setsockopt(listenfd, SOL_TCP, TCP_CONGESTION, "name" ...) ]
168 181
169tcp_cookie_size - INTEGER182tcp_cookie_size - INTEGER
170 Default size of TCP Cookie Transactions (TCPCT) option, that may be183 Default size of TCP Cookie Transactions (TCPCT) option, that may be
Documentation/networking/openvswitch.txt+195−0
@@ -0,0 +1,195 @@
1Open vSwitch datapath developer documentation
2=============================================
3
4The Open vSwitch kernel module allows flexible userspace control over
5flow-level packet processing on selected network devices. It can be
6used to implement a plain Ethernet switch, network device bonding,
7VLAN processing, network access control, flow-based network control,
8and so on.
9
10The kernel module implements multiple "datapaths" (analogous to
11bridges), each of which can have multiple "vports" (analogous to ports
12within a bridge). Each datapath also has associated with it a "flow
13table" that userspace populates with "flows" that map from keys based
14on packet headers and metadata to sets of actions. The most common
15action forwards the packet to another vport; other actions are also
16implemented.
17
18When a packet arrives on a vport, the kernel module processes it by
19extracting its flow key and looking it up in the flow table. If there
20is a matching flow, it executes the associated actions. If there is
21no match, it queues the packet to userspace for processing (as part of
22its processing, userspace will likely set up a flow to handle further
23packets of the same type entirely in-kernel).
24
25
26Flow key compatibility
27----------------------
28
29Network protocols evolve over time. New protocols become important
30and existing protocols lose their prominence. For the Open vSwitch
31kernel module to remain relevant, it must be possible for newer
32versions to parse additional protocols as part of the flow key. It
33might even be desirable, someday, to drop support for parsing
34protocols that have become obsolete. Therefore, the Netlink interface
35to Open vSwitch is designed to allow carefully written userspace
36applications to work with any version of the flow key, past or future.
37
38To support this forward and backward compatibility, whenever the
39kernel module passes a packet to userspace, it also passes along the
40flow key that it parsed from the packet. Userspace then extracts its
41own notion of a flow key from the packet and compares it against the
42kernel-provided version:
43
44 - If userspace's notion of the flow key for the packet matches the
45 kernel's, then nothing special is necessary.
46
47 - If the kernel's flow key includes more fields than the userspace
48 version of the flow key, for example if the kernel decoded IPv6
49 headers but userspace stopped at the Ethernet type (because it
50 does not understand IPv6), then again nothing special is
51 necessary. Userspace can still set up a flow in the usual way,
52 as long as it uses the kernel-provided flow key to do it.
53
54 - If the userspace flow key includes more fields than the
55 kernel's, for example if userspace decoded an IPv6 header but
56 the kernel stopped at the Ethernet type, then userspace can
57 forward the packet manually, without setting up a flow in the
58 kernel. This case is bad for performance because every packet
59 that the kernel considers part of the flow must go to userspace,
60 but the forwarding behavior is correct. (If userspace can
61 determine that the values of the extra fields would not affect
62 forwarding behavior, then it could set up a flow anyway.)
63
64How flow keys evolve over time is important to making this work, so
65the following sections go into detail.
66
67
68Flow key format
69---------------
70
71A flow key is passed over a Netlink socket as a sequence of Netlink
72attributes. Some attributes represent packet metadata, defined as any
73information about a packet that cannot be extracted from the packet
74itself, e.g. the vport on which the packet was received. Most
75attributes, however, are extracted from headers within the packet,
76e.g. source and destination addresses from Ethernet, IP, or TCP
77headers.
78
79The <linux/openvswitch.h> header file defines the exact format of the
80flow key attributes. For informal explanatory purposes here, we write
81them as comma-separated strings, with parentheses indicating arguments
82and nesting. For example, the following could represent a flow key
83corresponding to a TCP packet that arrived on vport 1:
84
85 in_port(1), eth(src=e0:91:f5:21:d0:b2, dst=00:02:e3:0f:80:a4),
86 eth_type(0x0800), ipv4(src=172.16.0.20, dst=172.18.0.52, proto=17, tos=0,
87 frag=no), tcp(src=49163, dst=80)
88
89Often we ellipsize arguments not important to the discussion, e.g.:
90
91 in_port(1), eth(...), eth_type(0x0800), ipv4(...), tcp(...)
92
93
94Basic rule for evolving flow keys
95---------------------------------
96
97Some care is needed to really maintain forward and backward
98compatibility for applications that follow the rules listed under
99"Flow key compatibility" above.
100
101The basic rule is obvious:
102
103 ------------------------------------------------------------------
104 New network protocol support must only supplement existing flow
105 key attributes. It must not change the meaning of already defined
106 flow key attributes.
107 ------------------------------------------------------------------
108
109This rule does have less-obvious consequences so it is worth working
110through a few examples. Suppose, for example, that the kernel module
111did not already implement VLAN parsing. Instead, it just interpreted
112the 802.1Q TPID (0x8100) as the Ethertype then stopped parsing the
113packet. The flow key for any packet with an 802.1Q header would look
114essentially like this, ignoring metadata:
115
116 eth(...), eth_type(0x8100)
117
118Naively, to add VLAN support, it makes sense to add a new "vlan" flow
119key attribute to contain the VLAN tag, then continue to decode the
120encapsulated headers beyond the VLAN tag using the existing field
121definitions. With this change, an TCP packet in VLAN 10 would have a
122flow key much like this:
123
124 eth(...), vlan(vid=10, pcp=0), eth_type(0x0800), ip(proto=6, ...), tcp(...)
125
126But this change would negatively affect a userspace application that
127has not been updated to understand the new "vlan" flow key attribute.
128The application could, following the flow compatibility rules above,
129ignore the "vlan" attribute that it does not understand and therefore
130assume that the flow contained IP packets. This is a bad assumption
131(the flow only contains IP packets if one parses and skips over the
132802.1Q header) and it could cause the application's behavior to change
133across kernel versions even though it follows the compatibility rules.
134
135The solution is to use a set of nested attributes. This is, for
136example, why 802.1Q support uses nested attributes. A TCP packet in
137VLAN 10 is actually expressed as:
138
139 eth(...), eth_type(0x8100), vlan(vid=10, pcp=0), encap(eth_type(0x0800),
140 ip(proto=6, ...), tcp(...)))
141
142Notice how the "eth_type", "ip", and "tcp" flow key attributes are
143nested inside the "encap" attribute. Thus, an application that does
144not understand the "vlan" key will not see either of those attributes
145and therefore will not misinterpret them. (Also, the outer eth_type
146is still 0x8100, not changed to 0x0800.)
147
148Handling malformed packets
149--------------------------
150
151Don't drop packets in the kernel for malformed protocol headers, bad
152checksums, etc. This would prevent userspace from implementing a
153simple Ethernet switch that forwards every packet.
154
155Instead, in such a case, include an attribute with "empty" content.
156It doesn't matter if the empty content could be valid protocol values,
157as long as those values are rarely seen in practice, because userspace
158can always forward all packets with those values to userspace and
159handle them individually.
160
161For example, consider a packet that contains an IP header that
162indicates protocol 6 for TCP, but which is truncated just after the IP
163header, so that the TCP header is missing. The flow key for this
164packet would include a tcp attribute with all-zero src and dst, like
165this:
166
167 eth(...), eth_type(0x0800), ip(proto=6, ...), tcp(src=0, dst=0)
168
169As another example, consider a packet with an Ethernet type of 0x8100,
170indicating that a VLAN TCI should follow, but which is truncated just
171after the Ethernet type. The flow key for this packet would include
172an all-zero-bits vlan and an empty encap attribute, like this:
173
174 eth(...), eth_type(0x8100), vlan(0), encap()
175
176Unlike a TCP packet with source and destination ports 0, an
177all-zero-bits VLAN TCI is not that rare, so the CFI bit (aka
178VLAN_TAG_PRESENT inside the kernel) is ordinarily set in a vlan
179attribute expressly to allow this situation to be distinguished.
180Thus, the flow key in this second example unambiguously indicates a
181missing or malformed VLAN TCI.
182
183Other rules
184-----------
185
186The other rules for flow keys are much less subtle:
187
188 - Duplicate attributes are not allowed at a given nesting level.
189
190 - Ordering of attributes is not significant.
191
192 - When the kernel sends a given flow key to userspace, it always
193 composes it the same way. This allows userspace to hash and
194 compare entire flow keys that it may not be able to fully
195 interpret.
Documentation/networking/packet_mmap.txt+1−1
@@ -155,7 +155,7 @@ As capture, each frame contains two parts: · 154 unmodified lines
155 155
156 /* fill sockaddr_ll struct to prepare binding */156 /* fill sockaddr_ll struct to prepare binding */
157 my_addr.sll_family = AF_PACKET;157 my_addr.sll_family = AF_PACKET;
158 my_addr.sll_protocol = ETH_P_ALL;158 my_addr.sll_protocol = htons(ETH_P_ALL);
159 my_addr.sll_ifindex = s_ifr.ifr_ifindex;159 my_addr.sll_ifindex = s_ifr.ifr_ifindex;
160 160
161 /* bind socket to eth0 */161 /* bind socket to eth0 */
Documentation/networking/scaling.txt+4−4
@@ -208,7 +208,7 @@ The counter in rps_dev_flow_table values records the length of the current · 207 unmodified lines
208CPU's backlog when a packet in this flow was last enqueued. Each backlog208CPU's backlog when a packet in this flow was last enqueued. Each backlog
209queue has a head counter that is incremented on dequeue. A tail counter209queue has a head counter that is incremented on dequeue. A tail counter
210is computed as head counter + queue length. In other words, the counter210is computed as head counter + queue length. In other words, the counter
211in rps_dev_flow_table[i] records the last element in flow i that has211in rps_dev_flow[i] records the last element in flow i that has
212been enqueued onto the currently designated CPU for flow i (of course,212been enqueued onto the currently designated CPU for flow i (of course,
213entry i is actually selected by hash and multiple flows may hash to the213entry i is actually selected by hash and multiple flows may hash to the
214same entry i).214same entry i).
@@ -224,7 +224,7 @@ following is true: · 9 unmodified lines
224 224
225- The current CPU's queue head counter >= the recorded tail counter225- The current CPU's queue head counter >= the recorded tail counter
226 value in rps_dev_flow[i]226 value in rps_dev_flow[i]
227- The current CPU is unset (equal to NR_CPUS)227- The current CPU is unset (equal to RPS_NO_CPU)
228- The current CPU is offline228- The current CPU is offline
229 229
230After this check, the packet is sent to the (possibly updated) current230After this check, the packet is sent to the (possibly updated) current
@@ -235,7 +235,7 @@ CPU. · 4 unmodified lines
235 235
236==== RFS Configuration236==== RFS Configuration
237 237
238RFS is only available if the kconfig symbol CONFIG_RFS is enabled (on238RFS is only available if the kconfig symbol CONFIG_RPS is enabled (on
239by default for SMP). The functionality remains disabled until explicitly239by default for SMP). The functionality remains disabled until explicitly
240configured. The number of entries in the global flow table is set through:240configured. The number of entries in the global flow table is set through:
241 241
@@ -258,7 +258,7 @@ For a single queue device, the rps_flow_cnt value for the single queue · 16 unmodified lines
258would normally be configured to the same value as rps_sock_flow_entries.258would normally be configured to the same value as rps_sock_flow_entries.
259For a multi-queue device, the rps_flow_cnt for each queue might be259For a multi-queue device, the rps_flow_cnt for each queue might be
260configured as rps_sock_flow_entries / N, where N is the number of260configured as rps_sock_flow_entries / N, where N is the number of
261queues. So for instance, if rps_flow_entries is set to 32768 and there261queues. So for instance, if rps_sock_flow_entries is set to 32768 and there
262are 16 configured receive queues, rps_flow_cnt for each queue might be262are 16 configured receive queues, rps_flow_cnt for each queue might be
263configured as 2048.263configured as 2048.
264 264
Documentation/networking/stmmac.txt+9−7
@@ -4,14 +4,16 @@ Copyright (C) 2007-2010 STMicroelectronics Ltd · 3 unmodified lines
4Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>4Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
5 5
6This is the driver for the MAC 10/100/1000 on-chip Ethernet controllers6This is the driver for the MAC 10/100/1000 on-chip Ethernet controllers
7(Synopsys IP blocks); it has been fully tested on STLinux platforms.7(Synopsys IP blocks).
8 8
9Currently this network device driver is for all STM embedded MAC/GMAC9Currently this network device driver is for all STM embedded MAC/GMAC
10(i.e. 7xxx/5xxx SoCs) and it's known working on other platforms i.e. ARM SPEAr.10(i.e. 7xxx/5xxx SoCs), SPEAr (arm), Loongson1B (mips) and XLINX XC2V3000
11FF1152AMT0221 D1215994A VIRTEX FPGA board.
11 12
12DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/10013DWC Ether MAC 10/100/1000 Universal version 3.60a (and older) and DWC Ether MAC 10/100
13Universal version 4.0 have been used for developing the first code14Universal version 4.0 have been used for developing this driver.
14implementation.15
16This driver supports both the platform bus and PCI.
15 17
16Please, for more information also visit: www.stlinux.com18Please, for more information also visit: www.stlinux.com
17 19
@@ -277,5 +279,5 @@ In fact, these can generate an huge amount of debug messages. · 259 unmodified lines
277 279
2786) TODO:2806) TODO:
279 o XGMAC is not supported.281 o XGMAC is not supported.
280 o Review the timer optimisation code to use an embedded device that will be282 o Add the EEE - Energy Efficient Ethernet
281 available in new chip generations.283 o Add the PTP - precision time protocol
Documentation/networking/team.txt+2−0
@@ -0,0 +1,2 @@
1Team devices are driven from userspace via libteam library which is here:
2 https://github.com/jpirko/libteam
Documentation/pinctrl.txt+178−80
@@ -7,12 +7,9 @@ This subsystem deals with: · 6 unmodified lines
7 7
8- Multiplexing of pins, pads, fingers (etc) see below for details8- Multiplexing of pins, pads, fingers (etc) see below for details
9 9
10The intention is to also deal with:10- Configuration of pins, pads, fingers (etc), such as software-controlled
11 11 biasing and driving mode specific pins, such as pull-up/down, open drain,
12- Software-controlled biasing and driving mode specific pins, such as12 load capacitance etc.
13 pull-up/down, open drain etc, load capacitance configuration when controlled
14 by software, etc.
15
16 13
17Top-level interface14Top-level interface
18===================15===================
@@ -32,7 +29,7 @@ Definition of PIN: · 13 unmodified lines
32 be sparse - i.e. there may be gaps in the space with numbers where no29 be sparse - i.e. there may be gaps in the space with numbers where no
33 pin exists.30 pin exists.
34 31
35When a PIN CONTROLLER is instatiated, it will register a descriptor to the32When a PIN CONTROLLER is instantiated, it will register a descriptor to the
36pin control framework, and this descriptor contains an array of pin descriptors33pin control framework, and this descriptor contains an array of pin descriptors
37describing the pins handled by this specific pin controller.34describing the pins handled by this specific pin controller.
38 35
@@ -61,14 +58,14 @@ this in our driver: · 22 unmodified lines
61 58
62#include <linux/pinctrl/pinctrl.h>59#include <linux/pinctrl/pinctrl.h>
63 60
64const struct pinctrl_pin_desc __refdata foo_pins[] = {61const struct pinctrl_pin_desc foo_pins[] = {
65 PINCTRL_PIN(0, "A1"),62 PINCTRL_PIN(0, "A8"),
66 PINCTRL_PIN(1, "A2"),63 PINCTRL_PIN(1, "B8"),
67 PINCTRL_PIN(2, "A3"),64 PINCTRL_PIN(2, "C8"),
68 ...65 ...
69 PINCTRL_PIN(61, "H6"),66 PINCTRL_PIN(61, "F1"),
70 PINCTRL_PIN(62, "H7"),67 PINCTRL_PIN(62, "G1"),
71 PINCTRL_PIN(63, "H8"),68 PINCTRL_PIN(63, "H1"),
72};69};
73 70
74static struct pinctrl_desc foo_desc = {71static struct pinctrl_desc foo_desc = {
@@ -88,11 +85,16 @@ int __init foo_probe(void) · 13 unmodified lines
88 pr_err("could not register foo pin driver\n");85 pr_err("could not register foo pin driver\n");
89}86}
90 87
88To enable the pinctrl subsystem and the subgroups for PINMUX and PINCONF and
89selected drivers, you need to select them from your machine's Kconfig entry,
90since these are so tightly integrated with the machines they are used on.
91See for example arch/arm/mach-u300/Kconfig for an example.
92
91Pins usually have fancier names than this. You can find these in the dataheet93Pins usually have fancier names than this. You can find these in the dataheet
92for your chip. Notice that the core pinctrl.h file provides a fancy macro94for your chip. Notice that the core pinctrl.h file provides a fancy macro
93called PINCTRL_PIN() to create the struct entries. As you can see I enumerated95called PINCTRL_PIN() to create the struct entries. As you can see I enumerated
94the pins from 0 in the upper left corner to 63 in the lower right corner,96the pins from 0 in the upper left corner to 63 in the lower right corner.
95this enumeration was arbitrarily chosen, in practice you need to think97This enumeration was arbitrarily chosen, in practice you need to think
96through your numbering system so that it matches the layout of registers98through your numbering system so that it matches the layout of registers
97and such things in your driver, or the code may become complicated. You must99and such things in your driver, or the code may become complicated. You must
98also consider matching of offsets to the GPIO ranges that may be handled by100also consider matching of offsets to the GPIO ranges that may be handled by
@@ -133,8 +135,8 @@ struct foo_group { · 34 unmodified lines
133 const unsigned num_pins;135 const unsigned num_pins;
134};136};
135 137
136static unsigned int spi0_pins[] = { 0, 8, 16, 24 };138static const unsigned int spi0_pins[] = { 0, 8, 16, 24 };
137static unsigned int i2c0_pins[] = { 24, 25 };139static const unsigned int i2c0_pins[] = { 24, 25 };
138 140
139static const struct foo_group foo_groups[] = {141static const struct foo_group foo_groups[] = {
140 {142 {
@@ -193,6 +195,88 @@ structure, for example specific register ranges associated with each group · 52 unmodified lines
193and so on.195and so on.
194 196
195 197
198Pin configuration
199=================
200
201Pins can sometimes be software-configured in an various ways, mostly related
202to their electronic properties when used as inputs or outputs. For example you
203may be able to make an output pin high impedance, or "tristate" meaning it is
204effectively disconnected. You may be able to connect an input pin to VDD or GND
205using a certain resistor value - pull up and pull down - so that the pin has a
206stable value when nothing is driving the rail it is connected to, or when it's
207unconnected.
208
209For example, a platform may do this:
210
211ret = pin_config_set("foo-dev", "FOO_GPIO_PIN", PLATFORM_X_PULL_UP);
212
213To pull up a pin to VDD. The pin configuration driver implements callbacks for
214changing pin configuration in the pin controller ops like this:
215
216#include <linux/pinctrl/pinctrl.h>
217#include <linux/pinctrl/pinconf.h>
218#include "platform_x_pindefs.h"
219
220static int foo_pin_config_get(struct pinctrl_dev *pctldev,
221 unsigned offset,
222 unsigned long *config)
223{
224 struct my_conftype conf;
225
226 ... Find setting for pin @ offset ...
227
228 *config = (unsigned long) conf;
229}
230
231static int foo_pin_config_set(struct pinctrl_dev *pctldev,
232 unsigned offset,
233 unsigned long config)
234{
235 struct my_conftype *conf = (struct my_conftype *) config;
236
237 switch (conf) {
238 case PLATFORM_X_PULL_UP:
239 ...
240 }
241 }
242}
243
244static int foo_pin_config_group_get (struct pinctrl_dev *pctldev,
245 unsigned selector,
246 unsigned long *config)
247{
248 ...
249}
250
251static int foo_pin_config_group_set (struct pinctrl_dev *pctldev,
252 unsigned selector,
253 unsigned long config)
254{
255 ...
256}
257
258static struct pinconf_ops foo_pconf_ops = {
259 .pin_config_get = foo_pin_config_get,
260 .pin_config_set = foo_pin_config_set,
261 .pin_config_group_get = foo_pin_config_group_get,
262 .pin_config_group_set = foo_pin_config_group_set,
263};
264
265/* Pin config operations are handled by some pin controller */
266static struct pinctrl_desc foo_desc = {
267 ...
268 .confops = &foo_pconf_ops,
269};
270
271Since some controllers have special logic for handling entire groups of pins
272they can exploit the special whole-group pin control function. The
273pin_config_group_set() callback is allowed to return the error code -EAGAIN,
274for groups it does not want to handle, or if it just wants to do some
275group-level handling and then fall through to iterate over all pins, in which
276case each individual pin will be treated by separate pin_config_set() calls as
277well.
278
279
196Interaction with the GPIO subsystem280Interaction with the GPIO subsystem
197===================================281===================================
198 282
@@ -214,19 +298,20 @@ static struct pinctrl_gpio_range gpio_range_a = { · 15 unmodified lines
214 .name = "chip a",298 .name = "chip a",
215 .id = 0,299 .id = 0,
216 .base = 32,300 .base = 32,
301 .pin_base = 32,
217 .npins = 16,302 .npins = 16,
218 .gc = &chip_a;303 .gc = &chip_a;
219};304};
220 305
221static struct pinctrl_gpio_range gpio_range_a = {306static struct pinctrl_gpio_range gpio_range_b = {
222 .name = "chip b",307 .name = "chip b",
223 .id = 0,308 .id = 0,
224 .base = 48,309 .base = 48,
310 .pin_base = 64,
225 .npins = 8,311 .npins = 8,
226 .gc = &chip_b;312 .gc = &chip_b;
227};313};
228 314
229
230{315{
231 struct pinctrl_dev *pctl;316 struct pinctrl_dev *pctl;
232 ...317 ...
@@ -235,42 +320,39 @@ static struct pinctrl_gpio_range gpio_range_a = { · 2 unmodified lines
235}320}
236 321
237So this complex system has one pin controller handling two different322So this complex system has one pin controller handling two different
238GPIO chips. Chip a has 16 pins and chip b has 8 pins. They are mapped in323GPIO chips. "chip a" has 16 pins and "chip b" has 8 pins. The "chip a" and
239the global GPIO pin space at:324"chip b" have different .pin_base, which means a start pin number of the
325GPIO range.
326
327The GPIO range of "chip a" starts from the GPIO base of 32 and actual
328pin range also starts from 32. However "chip b" has different starting
329offset for the GPIO range and pin range. The GPIO range of "chip b" starts
330from GPIO number 48, while the pin range of "chip b" starts from 64.
331
332We can convert a gpio number to actual pin number using this "pin_base".
333They are mapped in the global GPIO pin space at:
240 334
241chip a: [32 .. 47]335chip a:
242chip b: [48 .. 55]336 - GPIO range : [32 .. 47]
337 - pin range : [32 .. 47]
338chip b:
339 - GPIO range : [48 .. 55]
340 - pin range : [64 .. 71]
243 341
244When GPIO-specific functions in the pin control subsystem are called, these342When GPIO-specific functions in the pin control subsystem are called, these
245ranges will be used to look up the apropriate pin controller by inspecting343ranges will be used to look up the appropriate pin controller by inspecting
246and matching the pin to the pin ranges across all controllers. When a344and matching the pin to the pin ranges across all controllers. When a
247pin controller handling the matching range is found, GPIO-specific functions345pin controller handling the matching range is found, GPIO-specific functions
248will be called on that specific pin controller.346will be called on that specific pin controller.
249 347
250For all functionalities dealing with pin biasing, pin muxing etc, the pin348For all functionalities dealing with pin biasing, pin muxing etc, the pin
251controller subsystem will subtract the range's .base offset from the passed349controller subsystem will subtract the range's .base offset from the passed
252in gpio pin number, and pass that on to the pin control driver, so the driver350in gpio number, and add the ranges's .pin_base offset to retrive a pin number.
253will get an offset into its handled number range. Further it is also passed351After that, the subsystem passes it on to the pin control driver, so the driver
352will get an pin number into its handled number range. Further it is also passed
254the range ID value, so that the pin controller knows which range it should353the range ID value, so that the pin controller knows which range it should
255deal with.354deal with.
256 355
257For example: if a user issues pinctrl_gpio_set_foo(50), the pin control
258subsystem will find that the second range on this pin controller matches,
259subtract the base 48 and call the
260pinctrl_driver_gpio_set_foo(pinctrl, range, 2) where the latter function has
261this signature:
262
263int pinctrl_driver_gpio_set_foo(struct pinctrl_dev *pctldev,
264 struct pinctrl_gpio_range *rangeid,
265 unsigned offset);
266
267Now the driver knows that we want to do some GPIO-specific operation on the
268second GPIO range handled by "chip b", at offset 2 in that specific range.
269
270(If the GPIO subsystem is ever refactored to use a local per-GPIO controller
271pin space, this mapping will need to be augmented accordingly.)
272
273
274PINMUX interfaces356PINMUX interfaces
275=================357=================
276 358
@@ -438,7 +520,7 @@ you. Define enumerators only for the pins you can control if that makes sense. · 161 unmodified lines
438 520
439Assumptions:521Assumptions:
440 522
441We assume that the number possible function maps to pin groups is limited by523We assume that the number of possible function maps to pin groups is limited by
442the hardware. I.e. we assume that there is no system where any function can be524the hardware. I.e. we assume that there is no system where any function can be
443mapped to any pin, like in a phone exchange. So the available pins groups for525mapped to any pin, like in a phone exchange. So the available pins groups for
444a certain function will be limited to a few choices (say up to eight or so),526a certain function will be limited to a few choices (say up to eight or so),
@@ -585,7 +667,7 @@ int foo_list_funcs(struct pinctrl_dev *pctldev, unsigned selector) · 140 unmodified lines
585 667
586const char *foo_get_fname(struct pinctrl_dev *pctldev, unsigned selector)668const char *foo_get_fname(struct pinctrl_dev *pctldev, unsigned selector)
587{669{
588 return myfuncs[selector].name;670 return foo_functions[selector].name;
589}671}
590 672
591static int foo_get_groups(struct pinctrl_dev *pctldev, unsigned selector,673static int foo_get_groups(struct pinctrl_dev *pctldev, unsigned selector,
@@ -600,16 +682,16 @@ static int foo_get_groups(struct pinctrl_dev *pctldev, unsigned selector, · 8 unmodified lines
600int foo_enable(struct pinctrl_dev *pctldev, unsigned selector,682int foo_enable(struct pinctrl_dev *pctldev, unsigned selector,
601 unsigned group)683 unsigned group)
602{684{
603 u8 regbit = (1 << group);685 u8 regbit = (1 << selector + group);
604 686
605 writeb((readb(MUX)|regbit), MUX)687 writeb((readb(MUX)|regbit), MUX)
606 return 0;688 return 0;
607}689}
608 690
609int foo_disable(struct pinctrl_dev *pctldev, unsigned selector,691void foo_disable(struct pinctrl_dev *pctldev, unsigned selector,
610 unsigned group)692 unsigned group)
611{693{
612 u8 regbit = (1 << group);694 u8 regbit = (1 << selector + group);
613 695
614 writeb((readb(MUX) & ~(regbit)), MUX)696 writeb((readb(MUX) & ~(regbit)), MUX)
615 return 0;697 return 0;
@@ -647,6 +729,17 @@ All the above functions are mandatory to implement for a pinmux driver. · 31 unmodified lines
647Pinmux interaction with the GPIO subsystem729Pinmux interaction with the GPIO subsystem
648==========================================730==========================================
649 731
732The public pinmux API contains two functions named pinmux_request_gpio()
733and pinmux_free_gpio(). These two functions shall *ONLY* be called from
734gpiolib-based drivers as part of their gpio_request() and
735gpio_free() semantics. Likewise the pinmux_gpio_direction_[input|output]
736shall only be called from within respective gpio_direction_[input|output]
737gpiolib implementation.
738
739NOTE that platforms and individual drivers shall *NOT* request GPIO pins to be
740muxed in. Instead, implement a proper gpiolib driver and have that driver
741request proper muxing for its pins.
742
650The function list could become long, especially if you can convert every743The function list could become long, especially if you can convert every
651individual pin into a GPIO pin independent of any other pins, and then try744individual pin into a GPIO pin independent of any other pins, and then try
652the approach to define every pin as a function.745the approach to define every pin as a function.
@@ -654,19 +747,24 @@ the approach to define every pin as a function. · 1 unmodified line
654In this case, the function array would become 64 entries for each GPIO747In this case, the function array would become 64 entries for each GPIO
655setting and then the device functions.748setting and then the device functions.
656 749
657For this reason there is an additional function a pinmux driver can implement750For this reason there are two functions a pinmux driver can implement
658to enable only GPIO on an individual pin: .gpio_request_enable(). The same751to enable only GPIO on an individual pin: .gpio_request_enable() and
659.free() function as for other functions is assumed to be usable also for752.gpio_disable_free().
660GPIO pins.
661 753
662This function will pass in the affected GPIO range identified by the pin754This function will pass in the affected GPIO range identified by the pin
663controller core, so you know which GPIO pins are being affected by the request755controller core, so you know which GPIO pins are being affected by the request
664operation.756operation.
665 757
666Alternatively it is fully allowed to use named functions for each GPIO758If your driver needs to have an indication from the framework of whether the
667pin, the pinmux_request_gpio() will attempt to obtain the function "gpioN"759GPIO pin shall be used for input or output you can implement the
668where "N" is the global GPIO pin number if no special GPIO-handler is760.gpio_set_direction() function. As described this shall be called from the
669registered.761gpiolib driver and the affected GPIO range, pin offset and desired direction
762will be passed along to this function.
763
764Alternatively to using these special functions, it is fully allowed to use
765named functions for each GPIO pin, the pinmux_request_gpio() will attempt to
766obtain the function "gpioN" where "N" is the global GPIO pin number if no
767special GPIO-handler is registered.
670 768
671 769
672Pinmux board/machine configuration770Pinmux board/machine configuration
@@ -683,19 +781,19 @@ spi on the second function mapping: · 10 unmodified lines
683 781
684#include <linux/pinctrl/machine.h>782#include <linux/pinctrl/machine.h>
685 783
686static struct pinmux_map pmx_mapping[] = {784static const struct pinmux_map __initdata pmx_mapping[] = {
687 {785 {
688 .ctrl_dev_name = "pinctrl.0",786 .ctrl_dev_name = "pinctrl-foo",
689 .function = "spi0",787 .function = "spi0",
690 .dev_name = "foo-spi.0",788 .dev_name = "foo-spi.0",
691 },789 },
692 {790 {
693 .ctrl_dev_name = "pinctrl.0",791 .ctrl_dev_name = "pinctrl-foo",
694 .function = "i2c0",792 .function = "i2c0",
695 .dev_name = "foo-i2c.0",793 .dev_name = "foo-i2c.0",
696 },794 },
697 {795 {
698 .ctrl_dev_name = "pinctrl.0",796 .ctrl_dev_name = "pinctrl-foo",
699 .function = "mmc0",797 .function = "mmc0",
700 .dev_name = "foo-mmc.0",798 .dev_name = "foo-mmc.0",
701 },799 },
@@ -714,14 +812,14 @@ for example if they are not yet instantiated or cumbersome to obtain. · 12 unmodified lines
714 812
715You register this pinmux mapping to the pinmux subsystem by simply:813You register this pinmux mapping to the pinmux subsystem by simply:
716 814
717 ret = pinmux_register_mappings(&pmx_mapping, ARRAY_SIZE(pmx_mapping));815 ret = pinmux_register_mappings(pmx_mapping, ARRAY_SIZE(pmx_mapping));
718 816
719Since the above construct is pretty common there is a helper macro to make817Since the above construct is pretty common there is a helper macro to make
720it even more compact which assumes you want to use pinctrl.0 and position818it even more compact which assumes you want to use pinctrl-foo and position
7210 for mapping, for example:8190 for mapping, for example:
722 820
723static struct pinmux_map pmx_mapping[] = {821static struct pinmux_map __initdata pmx_mapping[] = {
724 PINMUX_MAP_PRIMARY("I2CMAP", "i2c0", "foo-i2c.0"),822 PINMUX_MAP("I2CMAP", "pinctrl-foo", "i2c0", "foo-i2c.0"),
725};823};
726 824
727 825
@@ -734,14 +832,14 @@ As it is possible to map a function to different groups of pins an optional · 6 unmodified lines
734...832...
735{833{
736 .name = "spi0-pos-A",834 .name = "spi0-pos-A",
737 .ctrl_dev_name = "pinctrl.0",835 .ctrl_dev_name = "pinctrl-foo",
738 .function = "spi0",836 .function = "spi0",
739 .group = "spi0_0_grp",837 .group = "spi0_0_grp",
740 .dev_name = "foo-spi.0",838 .dev_name = "foo-spi.0",
741},839},
742{840{
743 .name = "spi0-pos-B",841 .name = "spi0-pos-B",
744 .ctrl_dev_name = "pinctrl.0",842 .ctrl_dev_name = "pinctrl-foo",
745 .function = "spi0",843 .function = "spi0",
746 .group = "spi0_1_grp",844 .group = "spi0_1_grp",
747 .dev_name = "foo-spi.0",845 .dev_name = "foo-spi.0",
@@ -760,44 +858,44 @@ case), we define a mapping like this: · 12 unmodified lines
760...858...
761{859{
762 .name "2bit"860 .name "2bit"
763 .ctrl_dev_name = "pinctrl.0",861 .ctrl_dev_name = "pinctrl-foo",
764 .function = "mmc0",862 .function = "mmc0",
765 .group = "mmc0_0_grp",863 .group = "mmc0_1_grp",
766 .dev_name = "foo-mmc.0",864 .dev_name = "foo-mmc.0",
767},865},
768{866{
769 .name "4bit"867 .name "4bit"
770 .ctrl_dev_name = "pinctrl.0",868 .ctrl_dev_name = "pinctrl-foo",
771 .function = "mmc0",869 .function = "mmc0",
772 .group = "mmc0_0_grp",870 .group = "mmc0_1_grp",
773 .dev_name = "foo-mmc.0",871 .dev_name = "foo-mmc.0",
774},872},
775{873{
776 .name "4bit"874 .name "4bit"
777 .ctrl_dev_name = "pinctrl.0",875 .ctrl_dev_name = "pinctrl-foo",
778 .function = "mmc0",876 .function = "mmc0",
779 .group = "mmc0_1_grp",877 .group = "mmc0_2_grp",
780 .dev_name = "foo-mmc.0",878 .dev_name = "foo-mmc.0",
781},879},
782{880{
783 .name "8bit"881 .name "8bit"
784 .ctrl_dev_name = "pinctrl.0",882 .ctrl_dev_name = "pinctrl-foo",
785 .function = "mmc0",883 .function = "mmc0",
786 .group = "mmc0_0_grp",884 .group = "mmc0_1_grp",
787 .dev_name = "foo-mmc.0",885 .dev_name = "foo-mmc.0",
788},886},
789{887{
790 .name "8bit"888 .name "8bit"
791 .ctrl_dev_name = "pinctrl.0",889 .ctrl_dev_name = "pinctrl-foo",
792 .function = "mmc0",890 .function = "mmc0",
793 .group = "mmc0_1_grp",891 .group = "mmc0_2_grp",
794 .dev_name = "foo-mmc.0",892 .dev_name = "foo-mmc.0",
795},893},
796{894{
797 .name "8bit"895 .name "8bit"
798 .ctrl_dev_name = "pinctrl.0",896 .ctrl_dev_name = "pinctrl-foo",
799 .function = "mmc0",897 .function = "mmc0",
800 .group = "mmc0_2_grp",898 .group = "mmc0_3_grp",
801 .dev_name = "foo-mmc.0",899 .dev_name = "foo-mmc.0",
802},900},
803...901...
@@ -898,7 +996,7 @@ like this: · 94 unmodified lines
898 996
899{997{
900 .name "POWERMAP"998 .name "POWERMAP"
901 .ctrl_dev_name = "pinctrl.0",999 .ctrl_dev_name = "pinctrl-foo",
902 .function = "power_func",1000 .function = "power_func",
903 .hog_on_boot = true,1001 .hog_on_boot = true,
904},1002},
Documentation/power/charger-manager.txt+163−0
@@ -0,0 +1,163 @@
1Charger Manager
2 (C) 2011 MyungJoo Ham <myungjoo.ham@samsung.com>, GPL
3
4Charger Manager provides in-kernel battery charger management that
5requires temperature monitoring during suspend-to-RAM state
6and where each battery may have multiple chargers attached and the userland
7wants to look at the aggregated information of the multiple chargers.
8
9Charger Manager is a platform_driver with power-supply-class entries.
10An instance of Charger Manager (a platform-device created with Charger-Manager)
11represents an independent battery with chargers. If there are multiple
12batteries with their own chargers acting independently in a system,
13the system may need multiple instances of Charger Manager.
14
151. Introduction
16===============
17
18Charger Manager supports the following:
19
20* Support for multiple chargers (e.g., a device with USB, AC, and solar panels)
21 A system may have multiple chargers (or power sources) and some of
22 they may be activated at the same time. Each charger may have its
23 own power-supply-class and each power-supply-class can provide
24 different information about the battery status. This framework
25 aggregates charger-related information from multiple sources and
26 shows combined information as a single power-supply-class.
27
28* Support for in suspend-to-RAM polling (with suspend_again callback)
29 While the battery is being charged and the system is in suspend-to-RAM,
30 we may need to monitor the battery health by looking at the ambient or
31 battery temperature. We can accomplish this by waking up the system
32 periodically. However, such a method wakes up devices unncessary for
33 monitoring the battery health and tasks, and user processes that are
34 supposed to be kept suspended. That, in turn, incurs unnecessary power
35 consumption and slow down charging process. Or even, such peak power
36 consumption can stop chargers in the middle of charging
37 (external power input < device power consumption), which not
38 only affects the charging time, but the lifespan of the battery.
39
40 Charger Manager provides a function "cm_suspend_again" that can be
41 used as suspend_again callback of platform_suspend_ops. If the platform
42 requires tasks other than cm_suspend_again, it may implement its own
43 suspend_again callback that calls cm_suspend_again in the middle.
44 Normally, the platform will need to resume and suspend some devices
45 that are used by Charger Manager.
46
472. Global Charger-Manager Data related with suspend_again
48========================================================
49In order to setup Charger Manager with suspend-again feature
50(in-suspend monitoring), the user should provide charger_global_desc
51with setup_charger_manager(struct charger_global_desc *).
52This charger_global_desc data for in-suspend monitoring is global
53as the name suggests. Thus, the user needs to provide only once even
54if there are multiple batteries. If there are multiple batteries, the
55multiple instances of Charger Manager share the same charger_global_desc
56and it will manage in-suspend monitoring for all instances of Charger Manager.
57
58The user needs to provide all the two entries properly in order to activate
59in-suspend monitoring:
60
61struct charger_global_desc {
62
63char *rtc_name;
64 : The name of rtc (e.g., "rtc0") used to wakeup the system from
65 suspend for Charger Manager. The alarm interrupt (AIE) of the rtc
66 should be able to wake up the system from suspend. Charger Manager
67 saves and restores the alarm value and use the previously-defined
68 alarm if it is going to go off earlier than Charger Manager so that
69 Charger Manager does not interfere with previously-defined alarms.
70
71bool (*rtc_only_wakeup)(void);
72 : This callback should let CM know whether
73 the wakeup-from-suspend is caused only by the alarm of "rtc" in the
74 same struct. If there is any other wakeup source triggered the
75 wakeup, it should return false. If the "rtc" is the only wakeup
76 reason, it should return true.
77};
78
793. How to setup suspend_again
80=============================
81Charger Manager provides a function "extern bool cm_suspend_again(void)".
82When cm_suspend_again is called, it monitors every battery. The suspend_ops
83callback of the system's platform_suspend_ops can call cm_suspend_again
84function to know whether Charger Manager wants to suspend again or not.
85If there are no other devices or tasks that want to use suspend_again
86feature, the platform_suspend_ops may directly refer to cm_suspend_again
87for its suspend_again callback.
88
89The cm_suspend_again() returns true (meaning "I want to suspend again")
90if the system was woken up by Charger Manager and the polling
91(in-suspend monitoring) results in "normal".
92
934. Charger-Manager Data (struct charger_desc)
94=============================================
95For each battery charged independently from other batteries (if a series of
96batteries are charged by a single charger, they are counted as one independent
97battery), an instance of Charger Manager is attached to it.
98
99struct charger_desc {
100
101char *psy_name;
102 : The power-supply-class name of the battery. Default is
103 "battery" if psy_name is NULL. Users can access the psy entries
104 at "/sys/class/power_supply/[psy_name]/".
105
106enum polling_modes polling_mode;
107 : CM_POLL_DISABLE: do not poll this battery.
108 CM_POLL_ALWAYS: always poll this battery.
109 CM_POLL_EXTERNAL_POWER_ONLY: poll this battery if and only if
110 an external power source is attached.
111 CM_POLL_CHARGING_ONLY: poll this battery if and only if the
112 battery is being charged.
113
114unsigned int fullbatt_uV;
115 : If specified with a non-zero value, Charger Manager assumes
116 that the battery is full (capacity = 100) if the battery is not being
117 charged and the battery voltage is equal to or greater than
118 fullbatt_uV.
119
120unsigned int polling_interval_ms;
121 : Required polling interval in ms. Charger Manager will poll
122 this battery every polling_interval_ms or more frequently.
123
124enum data_source battery_present;
125 CM_FUEL_GAUGE: get battery presence information from fuel gauge.
126 CM_CHARGER_STAT: get battery presence from chargers.
127
128char **psy_charger_stat;
129 : An array ending with NULL that has power-supply-class names of
130 chargers. Each power-supply-class should provide "PRESENT" (if
131 battery_present is "CM_CHARGER_STAT"), "ONLINE" (shows whether an
132 external power source is attached or not), and "STATUS" (shows whether
133 the battery is {"FULL" or not FULL} or {"FULL", "Charging",
134 "Discharging", "NotCharging"}).
135
136int num_charger_regulators;
137struct regulator_bulk_data *charger_regulators;
138 : Regulators representing the chargers in the form for
139 regulator framework's bulk functions.
140
141char *psy_fuel_gauge;
142 : Power-supply-class name of the fuel gauge.
143
144int (*temperature_out_of_range)(int *mC);
145bool measure_battery_temp;
146 : This callback returns 0 if the temperature is safe for charging,
147 a positive number if it is too hot to charge, and a negative number
148 if it is too cold to charge. With the variable mC, the callback returns
149 the temperature in 1/1000 of centigrade.
150 The source of temperature can be battery or ambient one according to
151 the value of measure_battery_temp.
152};
153
1545. Other Considerations
155=======================
156
157At the charger/battery-related events such as battery-pulled-out,
158charger-pulled-out, charger-inserted, DCIN-over/under-voltage, charger-stopped,
159and others critical to chargers, the system should be configured to wake up.
160At least the following should wake up the system from a suspend:
161a) charger-on/off b) external-power-in/out c) battery-in/out (while charging)
162
163It is usually accomplished by configuring the PMIC as a wakeup source.
Documentation/power/devices.txt+21−16
@@ -126,7 +126,9 @@ The core methods to suspend and resume devices reside in struct dev_pm_ops · 125 unmodified lines
126pointed to by the ops member of struct dev_pm_domain, or by the pm member of126pointed to by the ops member of struct dev_pm_domain, or by the pm member of
127struct bus_type, struct device_type and struct class. They are mostly of127struct bus_type, struct device_type and struct class. They are mostly of
128interest to the people writing infrastructure for platforms and buses, like PCI128interest to the people writing infrastructure for platforms and buses, like PCI
129or USB, or device type and device class drivers.129or USB, or device type and device class drivers. They also are relevant to the
130writers of device drivers whose subsystems (PM domains, device types, device
131classes and bus types) don't provide all power management methods.
130 132
131Bus drivers implement these methods as appropriate for the hardware and the133Bus drivers implement these methods as appropriate for the hardware and the
132drivers using it; PCI works differently from USB, and so on. Not many people134drivers using it; PCI works differently from USB, and so on. Not many people
@@ -268,32 +270,35 @@ various phases always run after tasks have been frozen and before they are · 135 unmodified lines
268unfrozen. Furthermore, the *_noirq phases run at a time when IRQ handlers have270unfrozen. Furthermore, the *_noirq phases run at a time when IRQ handlers have
269been disabled (except for those marked with the IRQF_NO_SUSPEND flag).271been disabled (except for those marked with the IRQF_NO_SUSPEND flag).
270 272
271All phases use PM domain, bus, type, or class callbacks (that is, methods273All phases use PM domain, bus, type, class or driver callbacks (that is, methods
272defined in dev->pm_domain->ops, dev->bus->pm, dev->type->pm, or dev->class->pm).274defined in dev->pm_domain->ops, dev->bus->pm, dev->type->pm, dev->class->pm or
273These callbacks are regarded by the PM core as mutually exclusive. Moreover,275dev->driver->pm). These callbacks are regarded by the PM core as mutually
274PM domain callbacks always take precedence over bus, type and class callbacks,276exclusive. Moreover, PM domain callbacks always take precedence over all of the
275while type callbacks take precedence over bus and class callbacks, and class277other callbacks and, for example, type callbacks take precedence over bus, class
276callbacks take precedence over bus callbacks. To be precise, the following278and driver callbacks. To be precise, the following rules are used to determine
277rules are used to determine which callback to execute in the given phase:279which callback to execute in the given phase:
278 280
279 1. If dev->pm_domain is present, the PM core will attempt to execute the281 1. If dev->pm_domain is present, the PM core will choose the callback
280 callback included in dev->pm_domain->ops. If that callback is not282 included in dev->pm_domain->ops for execution
281 present, no action will be carried out for the given device.
282 283
283 2. Otherwise, if both dev->type and dev->type->pm are present, the callback284 2. Otherwise, if both dev->type and dev->type->pm are present, the callback
284 included in dev->type->pm will be executed.285 included in dev->type->pm will be chosen for execution.
285 286
286 3. Otherwise, if both dev->class and dev->class->pm are present, the287 3. Otherwise, if both dev->class and dev->class->pm are present, the
287 callback included in dev->class->pm will be executed.288 callback included in dev->class->pm will be chosen for execution.
288 289
289 4. Otherwise, if both dev->bus and dev->bus->pm are present, the callback290 4. Otherwise, if both dev->bus and dev->bus->pm are present, the callback
290 included in dev->bus->pm will be executed.291 included in dev->bus->pm will be chosen for execution.
291 292
292This allows PM domains and device types to override callbacks provided by bus293This allows PM domains and device types to override callbacks provided by bus
293types or device classes if necessary.294types or device classes if necessary.
294 295
295These callbacks may in turn invoke device- or driver-specific methods stored in296The PM domain, type, class and bus callbacks may in turn invoke device- or
296dev->driver->pm, but they don't have to.297driver-specific methods stored in dev->driver->pm, but they don't have to do
298that.
299
300If the subsystem callback chosen for execution is not present, the PM core will
301execute the corresponding method from dev->driver->pm instead if there is one.
297 302
298 303
299Entering System Suspend304Entering System Suspend
Documentation/power/freezing-of-tasks.txt+32−7
@@ -21,7 +21,7 @@ freeze_processes() (defined in kernel/power/process.c) is called. It executes · 20 unmodified lines
21try_to_freeze_tasks() that sets TIF_FREEZE for all of the freezable tasks and21try_to_freeze_tasks() that sets TIF_FREEZE for all of the freezable tasks and
22either wakes them up, if they are kernel threads, or sends fake signals to them,22either wakes them up, if they are kernel threads, or sends fake signals to them,
23if they are user space processes. A task that has TIF_FREEZE set, should react23if they are user space processes. A task that has TIF_FREEZE set, should react
24to it by calling the function called refrigerator() (defined in24to it by calling the function called __refrigerator() (defined in
25kernel/freezer.c), which sets the task's PF_FROZEN flag, changes its state25kernel/freezer.c), which sets the task's PF_FROZEN flag, changes its state
26to TASK_UNINTERRUPTIBLE and makes it loop until PF_FROZEN is cleared for it.26to TASK_UNINTERRUPTIBLE and makes it loop until PF_FROZEN is cleared for it.
27Then, we say that the task is 'frozen' and therefore the set of functions27Then, we say that the task is 'frozen' and therefore the set of functions
@@ -29,10 +29,10 @@ handling this mechanism is referred to as 'the freezer' (these functions are · 1 unmodified line
29defined in kernel/power/process.c, kernel/freezer.c & include/linux/freezer.h).29defined in kernel/power/process.c, kernel/freezer.c & include/linux/freezer.h).
30User space processes are generally frozen before kernel threads.30User space processes are generally frozen before kernel threads.
31 31
32It is not recommended to call refrigerator() directly. Instead, it is32__refrigerator() must not be called directly. Instead, use the
33recommended to use the try_to_freeze() function (defined in33try_to_freeze() function (defined in include/linux/freezer.h), that checks
34include/linux/freezer.h), that checks the task's TIF_FREEZE flag and makes the34the task's TIF_FREEZE flag and makes the task enter __refrigerator() if the
35task enter refrigerator() if the flag is set.35flag is set.
36 36
37For user space processes try_to_freeze() is called automatically from the37For user space processes try_to_freeze() is called automatically from the
38signal-handling code, but the freezable kernel threads need to call it38signal-handling code, but the freezable kernel threads need to call it
@@ -61,13 +61,13 @@ wait_event_freezable() and wait_event_freezable_timeout() macros. · 22 unmodified lines
61After the system memory state has been restored from a hibernation image and61After the system memory state has been restored from a hibernation image and
62devices have been reinitialized, the function thaw_processes() is called in62devices have been reinitialized, the function thaw_processes() is called in
63order to clear the PF_FROZEN flag for each frozen task. Then, the tasks that63order to clear the PF_FROZEN flag for each frozen task. Then, the tasks that
64have been frozen leave refrigerator() and continue running.64have been frozen leave __refrigerator() and continue running.
65 65
66III. Which kernel threads are freezable?66III. Which kernel threads are freezable?
67 67
68Kernel threads are not freezable by default. However, a kernel thread may clear68Kernel threads are not freezable by default. However, a kernel thread may clear
69PF_NOFREEZE for itself by calling set_freezable() (the resetting of PF_NOFREEZE69PF_NOFREEZE for itself by calling set_freezable() (the resetting of PF_NOFREEZE
70directly is strongly discouraged). From this point it is regarded as freezable70directly is not allowed). From this point it is regarded as freezable
71and must call try_to_freeze() in a suitable place.71and must call try_to_freeze() in a suitable place.
72 72
73IV. Why do we do that?73IV. Why do we do that?
@@ -176,3 +176,28 @@ tasks, since it generally exists anyway. · 102 unmodified lines
176A driver must have all firmwares it may need in RAM before suspend() is called.176A driver must have all firmwares it may need in RAM before suspend() is called.
177If keeping them is not practical, for example due to their size, they must be177If keeping them is not practical, for example due to their size, they must be
178requested early enough using the suspend notifier API described in notifiers.txt.178requested early enough using the suspend notifier API described in notifiers.txt.
179
180VI. Are there any precautions to be taken to prevent freezing failures?
181
182Yes, there are.
183
184First of all, grabbing the 'pm_mutex' lock to mutually exclude a piece of code
185from system-wide sleep such as suspend/hibernation is not encouraged.
186If possible, that piece of code must instead hook onto the suspend/hibernation
187notifiers to achieve mutual exclusion. Look at the CPU-Hotplug code
188(kernel/cpu.c) for an example.
189
190However, if that is not feasible, and grabbing 'pm_mutex' is deemed necessary,
191it is strongly discouraged to directly call mutex_[un]lock(&pm_mutex) since
192that could lead to freezing failures, because if the suspend/hibernate code
193successfully acquired the 'pm_mutex' lock, and hence that other entity failed
194to acquire the lock, then that task would get blocked in TASK_UNINTERRUPTIBLE
195state. As a consequence, the freezer would not be able to freeze that task,
196leading to freezing failure.
197
198However, the [un]lock_system_sleep() APIs are safe to use in this scenario,
199since they ask the freezer to skip freezing this task, since it is anyway
200"frozen enough" as it is blocked on 'pm_mutex', which will be released
201only after the entire suspend/hibernation sequence is complete.
202So, to summarize, use [un]lock_system_sleep() instead of directly using
203mutex_[un]lock(&pm_mutex). That would prevent freezing failures.
Documentation/power/regulator/regulator.txt+1−1
@@ -12,7 +12,7 @@ Drivers can register a regulator by calling :- · 11 unmodified lines
12 12
13struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,13struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
14 struct device *dev, struct regulator_init_data *init_data,14 struct device *dev, struct regulator_init_data *init_data,
15 void *driver_data);15 void *driver_data, struct device_node *of_node);
16 16
17This will register the regulators capabilities and operations to the regulator17This will register the regulators capabilities and operations to the regulator
18core.18core.
Documentation/power/runtime_pm.txt+68−62
@@ -57,6 +57,10 @@ the following: · 56 unmodified lines
57 57
58 4. Bus type of the device, if both dev->bus and dev->bus->pm are present.58 4. Bus type of the device, if both dev->bus and dev->bus->pm are present.
59 59
60If the subsystem chosen by applying the above rules doesn't provide the relevant
61callback, the PM core will invoke the corresponding driver callback stored in
62dev->driver->pm directly (if present).
63
60The PM core always checks which callback to use in the order given above, so the64The PM core always checks which callback to use in the order given above, so the
61priority order of callbacks from high to low is: PM domain, device type, class65priority order of callbacks from high to low is: PM domain, device type, class
62and bus type. Moreover, the high-priority one will always take precedence over66and bus type. Moreover, the high-priority one will always take precedence over
@@ -64,86 +68,88 @@ a low-priority one. The PM domain, bus type, device type and class callbacks · 1 unmodified line
64are referred to as subsystem-level callbacks in what follows.68are referred to as subsystem-level callbacks in what follows.
65 69
66By default, the callbacks are always invoked in process context with interrupts70By default, the callbacks are always invoked in process context with interrupts
67enabled. However, subsystems can use the pm_runtime_irq_safe() helper function71enabled. However, the pm_runtime_irq_safe() helper function can be used to tell
68to tell the PM core that their ->runtime_suspend(), ->runtime_resume() and72the PM core that it is safe to run the ->runtime_suspend(), ->runtime_resume()
69->runtime_idle() callbacks may be invoked in atomic context with interrupts73and ->runtime_idle() callbacks for the given device in atomic context with
70disabled for a given device. This implies that the callback routines in74interrupts disabled. This implies that the callback routines in question must
71question must not block or sleep, but it also means that the synchronous helper75not block or sleep, but it also means that the synchronous helper functions
72functions listed at the end of Section 4 may be used for that device within an76listed at the end of Section 4 may be used for that device within an interrupt
73interrupt handler or generally in an atomic context.77handler or generally in an atomic context.
74 78
75The subsystem-level suspend callback is _entirely_ _responsible_ for handling79The subsystem-level suspend callback, if present, is _entirely_ _responsible_
76the suspend of the device as appropriate, which may, but need not include80for handling the suspend of the device as appropriate, which may, but need not
77executing the device driver's own ->runtime_suspend() callback (from the81include executing the device driver's own ->runtime_suspend() callback (from the
78PM core's point of view it is not necessary to implement a ->runtime_suspend()82PM core's point of view it is not necessary to implement a ->runtime_suspend()
79callback in a device driver as long as the subsystem-level suspend callback83callback in a device driver as long as the subsystem-level suspend callback
80knows what to do to handle the device).84knows what to do to handle the device).
81 85
82 * Once the subsystem-level suspend callback has completed successfully86 * Once the subsystem-level suspend callback (or the driver suspend callback,
83 for given device, the PM core regards the device as suspended, which need87 if invoked directly) has completed successfully for the given device, the PM
84 not mean that the device has been put into a low power state. It is88 core regards the device as suspended, which need not mean that it has been
85 supposed to mean, however, that the device will not process data and will89 put into a low power state. It is supposed to mean, however, that the
86 not communicate with the CPU(s) and RAM until the subsystem-level resume90 device will not process data and will not communicate with the CPU(s) and
87 callback is executed for it. The runtime PM status of a device after91 RAM until the appropriate resume callback is executed for it. The runtime
88 successful execution of the subsystem-level suspend callback is 'suspended'.92 PM status of a device after successful execution of the suspend callback is
89 93 'suspended'.
90 * If the subsystem-level suspend callback returns -EBUSY or -EAGAIN,94
91 the device's runtime PM status is 'active', which means that the device95 * If the suspend callback returns -EBUSY or -EAGAIN, the device's runtime PM
92 _must_ be fully operational afterwards.96 status remains 'active', which means that the device _must_ be fully
93 97 operational afterwards.
94 * If the subsystem-level suspend callback returns an error code different98
95 from -EBUSY or -EAGAIN, the PM core regards this as a fatal error and will99 * If the suspend callback returns an error code different from -EBUSY and
96 refuse to run the helper functions described in Section 4 for the device,100 -EAGAIN, the PM core regards this as a fatal error and will refuse to run
97 until the status of it is directly set either to 'active', or to 'suspended'101 the helper functions described in Section 4 for the device until its status
98 (the PM core provides special helper functions for this purpose).102 is directly set to either'active', or 'suspended' (the PM core provides
99 103 special helper functions for this purpose).
100In particular, if the driver requires remote wake-up capability (i.e. hardware104
105In particular, if the driver requires remote wakeup capability (i.e. hardware
101mechanism allowing the device to request a change of its power state, such as106mechanism allowing the device to request a change of its power state, such as
102PCI PME) for proper functioning and device_run_wake() returns 'false' for the107PCI PME) for proper functioning and device_run_wake() returns 'false' for the
103device, then ->runtime_suspend() should return -EBUSY. On the other hand, if108device, then ->runtime_suspend() should return -EBUSY. On the other hand, if
104device_run_wake() returns 'true' for the device and the device is put into a low109device_run_wake() returns 'true' for the device and the device is put into a
105power state during the execution of the subsystem-level suspend callback, it is110low-power state during the execution of the suspend callback, it is expected
106expected that remote wake-up will be enabled for the device. Generally, remote111that remote wakeup will be enabled for the device. Generally, remote wakeup
107wake-up should be enabled for all input devices put into a low power state at112should be enabled for all input devices put into low-power states at run time.
108run time.113
109 114The subsystem-level resume callback, if present, is _entirely_ _responsible_ for
110The subsystem-level resume callback is _entirely_ _responsible_ for handling the115handling the resume of the device as appropriate, which may, but need not
111resume of the device as appropriate, which may, but need not include executing116include executing the device driver's own ->runtime_resume() callback (from the
112the device driver's own ->runtime_resume() callback (from the PM core's point of117PM core's point of view it is not necessary to implement a ->runtime_resume()
113view it is not necessary to implement a ->runtime_resume() callback in a device118callback in a device driver as long as the subsystem-level resume callback knows
114driver as long as the subsystem-level resume callback knows what to do to handle119what to do to handle the device).
115the device).120
116 121 * Once the subsystem-level resume callback (or the driver resume callback, if
117 * Once the subsystem-level resume callback has completed successfully, the PM122 invoked directly) has completed successfully, the PM core regards the device
118 core regards the device as fully operational, which means that the device123 as fully operational, which means that the device _must_ be able to complete
119 _must_ be able to complete I/O operations as needed. The runtime PM status124 I/O operations as needed. The runtime PM status of the device is then
120 of the device is then 'active'.125 'active'.
121 126
122 * If the subsystem-level resume callback returns an error code, the PM core127 * If the resume callback returns an error code, the PM core regards this as a
123 regards this as a fatal error and will refuse to run the helper functions128 fatal error and will refuse to run the helper functions described in Section
124 described in Section 4 for the device, until its status is directly set129 4 for the device, until its status is directly set to either 'active', or
125 either to 'active' or to 'suspended' (the PM core provides special helper130 'suspended' (by means of special helper functions provided by the PM core
126 functions for this purpose).131 for this purpose).
127 132
128The subsystem-level idle callback is executed by the PM core whenever the device133The idle callback (a subsystem-level one, if present, or the driver one) is
129appears to be idle, which is indicated to the PM core by two counters, the134executed by the PM core whenever the device appears to be idle, which is
130device's usage counter and the counter of 'active' children of the device.135indicated to the PM core by two counters, the device's usage counter and the
136counter of 'active' children of the device.
131 137
132 * If any of these counters is decreased using a helper function provided by138 * If any of these counters is decreased using a helper function provided by
133 the PM core and it turns out to be equal to zero, the other counter is139 the PM core and it turns out to be equal to zero, the other counter is
134 checked. If that counter also is equal to zero, the PM core executes the140 checked. If that counter also is equal to zero, the PM core executes the
135 subsystem-level idle callback with the device as an argument.141 idle callback with the device as its argument.
136 142
137The action performed by a subsystem-level idle callback is totally dependent on143The action performed by the idle callback is totally dependent on the subsystem
138the subsystem in question, but the expected and recommended action is to check144(or driver) in question, but the expected and recommended action is to check
139if the device can be suspended (i.e. if all of the conditions necessary for145if the device can be suspended (i.e. if all of the conditions necessary for
140suspending the device are satisfied) and to queue up a suspend request for the146suspending the device are satisfied) and to queue up a suspend request for the
141device in that case. The value returned by this callback is ignored by the PM147device in that case. The value returned by this callback is ignored by the PM
142core.148core.
143 149
144The helper functions provided by the PM core, described in Section 4, guarantee150The helper functions provided by the PM core, described in Section 4, guarantee
145that the following constraints are met with respect to the bus type's runtime151that the following constraints are met with respect to runtime PM callbacks for
146PM callbacks:152one device:
147 153
148(1) The callbacks are mutually exclusive (e.g. it is forbidden to execute154(1) The callbacks are mutually exclusive (e.g. it is forbidden to execute
149 ->runtime_suspend() in parallel with ->runtime_resume() or with another155 ->runtime_suspend() in parallel with ->runtime_resume() or with another
Documentation/s390/Debugging390.txt+0−34
@@ -41,7 +41,6 @@ ldd · 40 unmodified lines
41Debugging modules41Debugging modules
42The proc file system42The proc file system
43Starting points for debugging scripting languages etc.43Starting points for debugging scripting languages etc.
44Dumptool & Lcrash
45SysRq44SysRq
46References45References
47Special Thanks46Special Thanks
@@ -2455,39 +2454,6 @@ jdb <filename> another fully interactive gdb style debugger. · 2407 unmodified lines
2455 2454
2456 2455
2457 2456
2458Dumptool & Lcrash ( lkcd )
2459==========================
2460Michael Holzheu & others here at IBM have a fairly mature port of
2461SGI's lcrash tool which allows one to look at kernel structures in a
2462running kernel.
2463
2464It also complements a tool called dumptool which dumps all the kernel's
2465memory pages & registers to either a tape or a disk.
2466This can be used by tech support or an ambitious end user do
2467post mortem debugging of a machine like gdb core dumps.
2468
2469Going into how to use this tool in detail will be explained
2470in other documentation supplied by IBM with the patches & the
2471lcrash homepage http://oss.sgi.com/projects/lkcd/ & the lcrash manpage.
2472
2473How they work
2474-------------
2475Lcrash is a perfectly normal program,however, it requires 2
2476additional files, Kerntypes which is built using a patch to the
2477linux kernel sources in the linux root directory & the System.map.
2478
2479Kerntypes is an objectfile whose sole purpose in life
2480is to provide stabs debug info to lcrash, to do this
2481Kerntypes is built from kerntypes.c which just includes the most commonly
2482referenced header files used when debugging, lcrash can then read the
2483.stabs section of this file.
2484
2485Debugging a live system it uses /dev/mem
2486alternatively for post mortem debugging it uses the data
2487collected by dumptool.
2488
2489
2490
2491SysRq2457SysRq
2492=====2458=====
2493This is now supported by linux for s/390 & z/Architecture.2459This is now supported by linux for s/390 & z/Architecture.
Documentation/scsi/53c700.txt+1−20
@@ -16,32 +16,13 @@ fill in to get the driver working. · 15 unmodified lines
16Compile Time Flags16Compile Time Flags
17==================17==================
18 18
19The driver may be either io mapped or memory mapped. This is19A compile time flag is:
20selectable by configuration flags:
21
22CONFIG_53C700_MEM_MAPPED
23
24define if the driver is memory mapped.
25
26CONFIG_53C700_IO_MAPPED
27
28define if the driver is to be io mapped.
29
30One or other of the above flags *must* be defined.
31
32Other flags are:
33 20
34CONFIG_53C700_LE_ON_BE21CONFIG_53C700_LE_ON_BE
35 22
36define if the chipset must be supported in little endian mode on a big23define if the chipset must be supported in little endian mode on a big
37endian architecture (used for the 700 on parisc).24endian architecture (used for the 700 on parisc).
38 25
39CONFIG_53C700_USE_CONSISTENT
40
41allocate consistent memory (should only be used if your architecture
42has a mixture of consistent and inconsistent memory). Fully
43consistent or fully inconsistent architectures should not define this.
44
45 26
46Using the Chip Core Driver27Using the Chip Core Driver
47==========================28==========================
Documentation/scsi/ChangeLog.megaraid_sas+10−0
@@ -1,3 +1,13 @@
1Release Date : Fri. Jan 6, 2012 17:00:00 PST 2010 -
2 (emaild-id:megaraidlinux@lsi.com)
3 Adam Radford
4Current Version : 00.00.06.14-rc1
5Old Version : 00.00.06.12-rc1
6 1. Fix reglockFlags for degraded raid5/6 for MR 9360/9380.
7 2. Mask off flags in ioctl path to prevent memory scribble with older
8 MegaCLI versions.
9 3. Remove poll_mode_io module paramater, sysfs node, and associated code.
10-------------------------------------------------------------------------------
1Release Date : Wed. Oct 5, 2011 17:00:00 PST 2010 -11Release Date : Wed. Oct 5, 2011 17:00:00 PST 2010 -
2 (emaild-id:megaraidlinux@lsi.com)12 (emaild-id:megaraidlinux@lsi.com)
3 Adam Radford13 Adam Radford
Documentation/scsi/LICENSE.qla4xxx+1−22
@@ -1,32 +1,11 @@
1Copyright (c) 2003-2011 QLogic Corporation1Copyright (c) 2003-2011 QLogic Corporation
2QLogic Linux iSCSI HBA Driver2QLogic Linux iSCSI Driver
3 3
4This program includes a device driver for Linux 3.x.4This program includes a device driver for Linux 3.x.
5You may modify and redistribute the device driver code under the5You may modify and redistribute the device driver code under the
6GNU General Public License (a copy of which is attached hereto as6GNU General Public License (a copy of which is attached hereto as
7Exhibit A) published by the Free Software Foundation (version 2).7Exhibit A) published by the Free Software Foundation (version 2).
8 8
9REGARDLESS OF WHAT LICENSING MECHANISM IS USED OR APPLICABLE,
10THIS PROGRAM IS PROVIDED BY QLOGIC CORPORATION "AS IS'' AND ANY
11EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
13PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
14BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
15EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
16TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
17DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
18ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
19OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
20OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21POSSIBILITY OF SUCH DAMAGE.
22
23USER ACKNOWLEDGES AND AGREES THAT USE OF THIS PROGRAM WILL NOT
24CREATE OR GIVE GROUNDS FOR A LICENSE BY IMPLICATION, ESTOPPEL, OR
25OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT,
26TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN
27ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN
28COMBINATION WITH THIS PROGRAM.
29
30 9
31EXHIBIT A10EXHIBIT A
32 11
Documentation/security/00-INDEX+2−0
@@ -1,5 +1,7 @@
100-INDEX100-INDEX
2 - this file.2 - this file.
3LSM.txt
4 - description of the Linux Security Module framework.
3SELinux.txt5SELinux.txt
4 - how to get started with the SELinux security enhancement.6 - how to get started with the SELinux security enhancement.
5Smack.txt7Smack.txt
Documentation/security/LSM.txt+34−0
@@ -0,0 +1,34 @@
1Linux Security Module framework
2-------------------------------
3
4The Linux Security Module (LSM) framework provides a mechanism for
5various security checks to be hooked by new kernel extensions. The name
6"module" is a bit of a misnomer since these extensions are not actually
7loadable kernel modules. Instead, they are selectable at build-time via
8CONFIG_DEFAULT_SECURITY and can be overridden at boot-time via the
9"security=..." kernel command line argument, in the case where multiple
10LSMs were built into a given kernel.
11
12The primary users of the LSM interface are Mandatory Access Control
13(MAC) extensions which provide a comprehensive security policy. Examples
14include SELinux, Smack, Tomoyo, and AppArmor. In addition to the larger
15MAC extensions, other extensions can be built using the LSM to provide
16specific changes to system operation when these tweaks are not available
17in the core functionality of Linux itself.
18
19Without a specific LSM built into the kernel, the default LSM will be the
20Linux capabilities system. Most LSMs choose to extend the capabilities
21system, building their checks on top of the defined capability hooks.
22For more details on capabilities, see capabilities(7) in the Linux
23man-pages project.
24
25Based on http://kerneltrap.org/Linux/Documenting_Security_Module_Intent,
26a new LSM is accepted into the kernel when its intent (a description of
27what it tries to protect against and in what cases one would expect to
28use it) has been appropriately documented in Documentation/security/.
29This allows an LSM's code to be easily compared to its goals, and so
30that end users and distros can make a more informed decision about which
31LSMs suit their requirements.
32
33For extensive documentation on the available LSM hook interfaces, please
34see include/linux/security.h.
Documentation/security/credentials.txt+3−3
@@ -221,10 +221,10 @@ The Linux kernel supports the following types of credentials: · 220 unmodified lines
221 (5) LSM221 (5) LSM
222 222
223 The Linux Security Module allows extra controls to be placed over the223 The Linux Security Module allows extra controls to be placed over the
224 operations that a task may do. Currently Linux supports two main224 operations that a task may do. Currently Linux supports several LSM
225 alternate LSM options: SELinux and Smack.225 options.
226 226
227 Both work by labelling the objects in a system and then applying sets of227 Some work by labelling the objects in a system and then applying sets of
228 rules (policies) that say what operations a task with one label may do to228 rules (policies) that say what operations a task with one label may do to
229 an object with another label.229 an object with another label.
230 230
Documentation/serial/driver+1−1
@@ -101,7 +101,7 @@ hardware. · 100 unmodified lines
101 Returns the current state of modem control inputs. The state101 Returns the current state of modem control inputs. The state
102 of the outputs should not be returned, since the core keeps102 of the outputs should not be returned, since the core keeps
103 track of their state. The state information should include:103 track of their state. The state information should include:
104 - TIOCM_DCD state of DCD signal104 - TIOCM_CAR state of DCD signal
105 - TIOCM_CTS state of CTS signal105 - TIOCM_CTS state of CTS signal
106 - TIOCM_DSR state of DSR signal106 - TIOCM_DSR state of DSR signal
107 - TIOCM_RI state of RI signal107 - TIOCM_RI state of RI signal
Documentation/sound/alsa/HD-Audio-Models.txt+1−14
@@ -42,19 +42,7 @@ ALC260 · 41 unmodified lines
42 42
43ALC26243ALC262
44======44======
45 fujitsu Fujitsu Laptop45 N/A
46 benq Benq ED8
47 benq-t31 Benq T31
48 hippo Hippo (ATI) with jack detection, Sony UX-90s
49 hippo_1 Hippo (Benq) with jack detection
50 toshiba-s06 Toshiba S06
51 toshiba-rx1 Toshiba RX1
52 tyan Tyan Thunder n6650W (S2915-E)
53 ultra Samsung Q1 Ultra Vista model
54 lenovo-3000 Lenovo 3000 y410
55 nec NEC Versa S9100
56 basic fixed pin assignment w/o SPDIF
57 auto auto-config reading BIOS (default)
58 46
59ALC267/26847ALC267/268
60==========48==========
@@ -350,7 +338,6 @@ STAC92HD83* · 289 unmodified lines
350 mic-ref Reference board with power management for ports338 mic-ref Reference board with power management for ports
351 dell-s14 Dell laptop339 dell-s14 Dell laptop
352 dell-vostro-3500 Dell Vostro 3500 laptop340 dell-vostro-3500 Dell Vostro 3500 laptop
353 hp HP laptops with (inverted) mute-LED
354 hp-dv7-4000 HP dv-7 4000341 hp-dv7-4000 HP dv-7 4000
355 auto BIOS setup (default)342 auto BIOS setup (default)
356 343
Documentation/sound/alsa/compress_offload.txt+188−0
@@ -0,0 +1,188 @@
1 compress_offload.txt
2 =====================
3 Pierre-Louis.Bossart <pierre-louis.bossart@linux.intel.com>
4 Vinod Koul <vinod.koul@linux.intel.com>
5
6Overview
7
8Since its early days, the ALSA API was defined with PCM support or
9constant bitrates payloads such as IEC61937 in mind. Arguments and
10returned values in frames are the norm, making it a challenge to
11extend the existing API to compressed data streams.
12
13In recent years, audio digital signal processors (DSP) were integrated
14in system-on-chip designs, and DSPs are also integrated in audio
15codecs. Processing compressed data on such DSPs results in a dramatic
16reduction of power consumption compared to host-based
17processing. Support for such hardware has not been very good in Linux,
18mostly because of a lack of a generic API available in the mainline
19kernel.
20
21Rather than requiring a compability break with an API change of the
22ALSA PCM interface, a new 'Compressed Data' API is introduced to
23provide a control and data-streaming interface for audio DSPs.
24
25The design of this API was inspired by the 2-year experience with the
26Intel Moorestown SOC, with many corrections required to upstream the
27API in the mainline kernel instead of the staging tree and make it
28usable by others.
29
30Requirements
31
32The main requirements are:
33
34- separation between byte counts and time. Compressed formats may have
35 a header per file, per frame, or no header at all. The payload size
36 may vary from frame-to-frame. As a result, it is not possible to
37 estimate reliably the duration of audio buffers when handling
38 compressed data. Dedicated mechanisms are required to allow for
39 reliable audio-video synchronization, which requires precise
40 reporting of the number of samples rendered at any given time.
41
42- Handling of multiple formats. PCM data only requires a specification
43 of the sampling rate, number of channels and bits per sample. In
44 contrast, compressed data comes in a variety of formats. Audio DSPs
45 may also provide support for a limited number of audio encoders and
46 decoders embedded in firmware, or may support more choices through
47 dynamic download of libraries.
48
49- Focus on main formats. This API provides support for the most
50 popular formats used for audio and video capture and playback. It is
51 likely that as audio compression technology advances, new formats
52 will be added.
53
54- Handling of multiple configurations. Even for a given format like
55 AAC, some implementations may support AAC multichannel but HE-AAC
56 stereo. Likewise WMA10 level M3 may require too much memory and cpu
57 cycles. The new API needs to provide a generic way of listing these
58 formats.
59
60- Rendering/Grabbing only. This API does not provide any means of
61 hardware acceleration, where PCM samples are provided back to
62 user-space for additional processing. This API focuses instead on
63 streaming compressed data to a DSP, with the assumption that the
64 decoded samples are routed to a physical output or logical back-end.
65
66 - Complexity hiding. Existing user-space multimedia frameworks all
67 have existing enums/structures for each compressed format. This new
68 API assumes the existence of a platform-specific compatibility layer
69 to expose, translate and make use of the capabilities of the audio
70 DSP, eg. Android HAL or PulseAudio sinks. By construction, regular
71 applications are not supposed to make use of this API.
72
73
74Design
75
76The new API shares a number of concepts with with the PCM API for flow
77control. Start, pause, resume, drain and stop commands have the same
78semantics no matter what the content is.
79
80The concept of memory ring buffer divided in a set of fragments is
81borrowed from the ALSA PCM API. However, only sizes in bytes can be
82specified.
83
84Seeks/trick modes are assumed to be handled by the host.
85
86The notion of rewinds/forwards is not supported. Data committed to the
87ring buffer cannot be invalidated, except when dropping all buffers.
88
89The Compressed Data API does not make any assumptions on how the data
90is transmitted to the audio DSP. DMA transfers from main memory to an
91embedded audio cluster or to a SPI interface for external DSPs are
92possible. As in the ALSA PCM case, a core set of routines is exposed;
93each driver implementer will have to write support for a set of
94mandatory routines and possibly make use of optional ones.
95
96The main additions are
97
98- get_caps
99This routine returns the list of audio formats supported. Querying the
100codecs on a capture stream will return encoders, decoders will be
101listed for playback streams.
102
103- get_codec_caps For each codec, this routine returns a list of
104capabilities. The intent is to make sure all the capabilities
105correspond to valid settings, and to minimize the risks of
106configuration failures. For example, for a complex codec such as AAC,
107the number of channels supported may depend on a specific profile. If
108the capabilities were exposed with a single descriptor, it may happen
109that a specific combination of profiles/channels/formats may not be
110supported. Likewise, embedded DSPs have limited memory and cpu cycles,
111it is likely that some implementations make the list of capabilities
112dynamic and dependent on existing workloads. In addition to codec
113settings, this routine returns the minimum buffer size handled by the
114implementation. This information can be a function of the DMA buffer
115sizes, the number of bytes required to synchronize, etc, and can be
116used by userspace to define how much needs to be written in the ring
117buffer before playback can start.
118
119- set_params
120This routine sets the configuration chosen for a specific codec. The
121most important field in the parameters is the codec type; in most
122cases decoders will ignore other fields, while encoders will strictly
123comply to the settings
124
125- get_params
126This routines returns the actual settings used by the DSP. Changes to
127the settings should remain the exception.
128
129- get_timestamp
130The timestamp becomes a multiple field structure. It lists the number
131of bytes transferred, the number of samples processed and the number
132of samples rendered/grabbed. All these values can be used to determine
133the avarage bitrate, figure out if the ring buffer needs to be
134refilled or the delay due to decoding/encoding/io on the DSP.
135
136Note that the list of codecs/profiles/modes was derived from the
137OpenMAX AL specification instead of reinventing the wheel.
138Modifications include:
139- Addition of FLAC and IEC formats
140- Merge of encoder/decoder capabilities
141- Profiles/modes listed as bitmasks to make descriptors more compact
142- Addition of set_params for decoders (missing in OpenMAX AL)
143- Addition of AMR/AMR-WB encoding modes (missing in OpenMAX AL)
144- Addition of format information for WMA
145- Addition of encoding options when required (derived from OpenMAX IL)
146- Addition of rateControlSupported (missing in OpenMAX AL)
147
148Not supported:
149
150- Support for VoIP/circuit-switched calls is not the target of this
151 API. Support for dynamic bit-rate changes would require a tight
152 coupling between the DSP and the host stack, limiting power savings.
153
154- Packet-loss concealment is not supported. This would require an
155 additional interface to let the decoder synthesize data when frames
156 are lost during transmission. This may be added in the future.
157
158- Volume control/routing is not handled by this API. Devices exposing a
159 compressed data interface will be considered as regular ALSA devices;
160 volume changes and routing information will be provided with regular
161 ALSA kcontrols.
162
163- Embedded audio effects. Such effects should be enabled in the same
164 manner, no matter if the input was PCM or compressed.
165
166- multichannel IEC encoding. Unclear if this is required.
167
168- Encoding/decoding acceleration is not supported as mentioned
169 above. It is possible to route the output of a decoder to a capture
170 stream, or even implement transcoding capabilities. This routing
171 would be enabled with ALSA kcontrols.
172
173- Audio policy/resource management. This API does not provide any
174 hooks to query the utilization of the audio DSP, nor any premption
175 mechanisms.
176
177- No notion of underun/overrun. Since the bytes written are compressed
178 in nature and data written/read doesn't translate directly to
179 rendered output in time, this does not deal with underrun/overun and
180 maybe dealt in user-library
181
182Credits:
183- Mark Brown and Liam Girdwood for discussions on the need for this API
184- Harsha Priya for her work on intel_sst compressed API
185- Rakesh Ughreja for valuable feedback
186- Sing Nallasellan, Sikkandar Madar and Prasanna Samaga for
187 demonstrating and quantifying the benefits of audio offload on a
188 real platform.
Documentation/sysctl/kernel.txt+22−0
@@ -49,6 +49,7 @@ show up in /proc/sys/kernel: · 48 unmodified lines
49- panic49- panic
50- panic_on_oops50- panic_on_oops
51- panic_on_unrecovered_nmi51- panic_on_unrecovered_nmi
52- panic_on_stackoverflow
52- pid_max53- pid_max
53- powersave-nap [ PPC only ]54- powersave-nap [ PPC only ]
54- printk55- printk
@@ -393,6 +394,19 @@ Controls the kernel's behaviour when an oops or BUG is encountered. · 338 unmodified lines
393 394
394==============================================================395==============================================================
395 396
397panic_on_stackoverflow:
398
399Controls the kernel's behavior when detecting the overflows of
400kernel, IRQ and exception stacks except a user stack.
401This file shows up if CONFIG_DEBUG_STACKOVERFLOW is enabled.
402
4030: try to continue operation.
404
4051: panic immediately.
406
407==============================================================
408
409
396pid_max:410pid_max:
397 411
398PID allocation wrap value. When the kernel's next PID value412PID allocation wrap value. When the kernel's next PID value
@@ -401,6 +415,14 @@ PIDs of value pid_max or larger are not allocated. · 2 unmodified lines
401 415
402==============================================================416==============================================================
403 417
418ns_last_pid:
419
420The last pid allocated in the current (the one task using this sysctl
421lives in) pid namespace. When selecting a pid for a next task on fork
422kernel tries to allocate a number starting from this one.
423
424==============================================================
425
404powersave-nap: (PPC only)426powersave-nap: (PPC only)
405 427
406If set, Linux-PPC will use the 'nap' mode of powersaving,428If set, Linux-PPC will use the 'nap' mode of powersaving,
Documentation/target/tcm_mod_builder.py+15−45
@@ -230,14 +230,9 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 229 unmodified lines
230 buf += "#include <linux/ctype.h>\n"230 buf += "#include <linux/ctype.h>\n"
231 buf += "#include <asm/unaligned.h>\n\n"231 buf += "#include <asm/unaligned.h>\n\n"
232 buf += "#include <target/target_core_base.h>\n"232 buf += "#include <target/target_core_base.h>\n"
233 buf += "#include <target/target_core_transport.h>\n"233 buf += "#include <target/target_core_fabric.h>\n"
234 buf += "#include <target/target_core_fabric_ops.h>\n"
235 buf += "#include <target/target_core_fabric_configfs.h>\n"234 buf += "#include <target/target_core_fabric_configfs.h>\n"
236 buf += "#include <target/target_core_fabric_lib.h>\n"
237 buf += "#include <target/target_core_device.h>\n"
238 buf += "#include <target/target_core_tpg.h>\n"
239 buf += "#include <target/target_core_configfs.h>\n"235 buf += "#include <target/target_core_configfs.h>\n"
240 buf += "#include <target/target_core_base.h>\n"
241 buf += "#include <target/configfs_macros.h>\n\n"236 buf += "#include <target/configfs_macros.h>\n\n"
242 buf += "#include \"" + fabric_mod_name + "_base.h\"\n"237 buf += "#include \"" + fabric_mod_name + "_base.h\"\n"
243 buf += "#include \"" + fabric_mod_name + "_fabric.h\"\n\n"238 buf += "#include \"" + fabric_mod_name + "_fabric.h\"\n\n"
@@ -260,7 +255,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 16 unmodified lines
260 buf += " /* " + fabric_mod_name + "_parse_wwn(name, &wwpn, 1) < 0)\n"255 buf += " /* " + fabric_mod_name + "_parse_wwn(name, &wwpn, 1) < 0)\n"
261 buf += " return ERR_PTR(-EINVAL); */\n"256 buf += " return ERR_PTR(-EINVAL); */\n"
262 buf += " se_nacl_new = " + fabric_mod_name + "_alloc_fabric_acl(se_tpg);\n"257 buf += " se_nacl_new = " + fabric_mod_name + "_alloc_fabric_acl(se_tpg);\n"
263 buf += " if (!(se_nacl_new))\n"258 buf += " if (!se_nacl_new)\n"
264 buf += " return ERR_PTR(-ENOMEM);\n"259 buf += " return ERR_PTR(-ENOMEM);\n"
265 buf += "//#warning FIXME: Hardcoded nexus depth in " + fabric_mod_name + "_make_nodeacl()\n"260 buf += "//#warning FIXME: Hardcoded nexus depth in " + fabric_mod_name + "_make_nodeacl()\n"
266 buf += " nexus_depth = 1;\n"261 buf += " nexus_depth = 1;\n"
@@ -308,7 +303,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 41 unmodified lines
308 buf += " if (strict_strtoul(name + 5, 10, &tpgt) || tpgt > UINT_MAX)\n"303 buf += " if (strict_strtoul(name + 5, 10, &tpgt) || tpgt > UINT_MAX)\n"
309 buf += " return ERR_PTR(-EINVAL);\n\n"304 buf += " return ERR_PTR(-EINVAL);\n\n"
310 buf += " tpg = kzalloc(sizeof(struct " + fabric_mod_name + "_tpg), GFP_KERNEL);\n"305 buf += " tpg = kzalloc(sizeof(struct " + fabric_mod_name + "_tpg), GFP_KERNEL);\n"
311 buf += " if (!(tpg)) {\n"306 buf += " if (!tpg) {\n"
312 buf += " printk(KERN_ERR \"Unable to allocate struct " + fabric_mod_name + "_tpg\");\n"307 buf += " printk(KERN_ERR \"Unable to allocate struct " + fabric_mod_name + "_tpg\");\n"
313 buf += " return ERR_PTR(-ENOMEM);\n"308 buf += " return ERR_PTR(-ENOMEM);\n"
314 buf += " }\n"309 buf += " }\n"
@@ -344,7 +339,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 29 unmodified lines
344 buf += " /* if (" + fabric_mod_name + "_parse_wwn(name, &wwpn, 1) < 0)\n"339 buf += " /* if (" + fabric_mod_name + "_parse_wwn(name, &wwpn, 1) < 0)\n"
345 buf += " return ERR_PTR(-EINVAL); */\n\n"340 buf += " return ERR_PTR(-EINVAL); */\n\n"
346 buf += " " + fabric_mod_port + " = kzalloc(sizeof(struct " + fabric_mod_name + "_" + fabric_mod_port + "), GFP_KERNEL);\n"341 buf += " " + fabric_mod_port + " = kzalloc(sizeof(struct " + fabric_mod_name + "_" + fabric_mod_port + "), GFP_KERNEL);\n"
347 buf += " if (!(" + fabric_mod_port + ")) {\n"342 buf += " if (!" + fabric_mod_port + ") {\n"
348 buf += " printk(KERN_ERR \"Unable to allocate struct " + fabric_mod_name + "_" + fabric_mod_port + "\");\n"343 buf += " printk(KERN_ERR \"Unable to allocate struct " + fabric_mod_name + "_" + fabric_mod_port + "\");\n"
349 buf += " return ERR_PTR(-ENOMEM);\n"344 buf += " return ERR_PTR(-ENOMEM);\n"
350 buf += " }\n"345 buf += " }\n"
@@ -352,7 +347,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 1 unmodified line
352 if proto_ident == "FC" or proto_ident == "SAS":347 if proto_ident == "FC" or proto_ident == "SAS":
353 buf += " " + fabric_mod_port + "->" + fabric_mod_port + "_wwpn = wwpn;\n"348 buf += " " + fabric_mod_port + "->" + fabric_mod_port + "_wwpn = wwpn;\n"
354 349
355 buf += " /* " + fabric_mod_name + "_format_wwn(&" + fabric_mod_port + "->" + fabric_mod_port + "_name[0], " + fabric_mod_name.upper() + "__NAMELEN, wwpn); */\n\n"350 buf += " /* " + fabric_mod_name + "_format_wwn(&" + fabric_mod_port + "->" + fabric_mod_port + "_name[0], " + fabric_mod_name.upper() + "_NAMELEN, wwpn); */\n\n"
356 buf += " return &" + fabric_mod_port + "->" + fabric_mod_port + "_wwn;\n"351 buf += " return &" + fabric_mod_port + "->" + fabric_mod_port + "_wwn;\n"
357 buf += "}\n\n"352 buf += "}\n\n"
358 buf += "static void " + fabric_mod_name + "_drop_" + fabric_mod_port + "(struct se_wwn *wwn)\n"353 buf += "static void " + fabric_mod_name + "_drop_" + fabric_mod_port + "(struct se_wwn *wwn)\n"
@@ -391,8 +386,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 32 unmodified lines
391 buf += " .tpg_alloc_fabric_acl = " + fabric_mod_name + "_alloc_fabric_acl,\n"386 buf += " .tpg_alloc_fabric_acl = " + fabric_mod_name + "_alloc_fabric_acl,\n"
392 buf += " .tpg_release_fabric_acl = " + fabric_mod_name + "_release_fabric_acl,\n"387 buf += " .tpg_release_fabric_acl = " + fabric_mod_name + "_release_fabric_acl,\n"
393 buf += " .tpg_get_inst_index = " + fabric_mod_name + "_tpg_get_inst_index,\n"388 buf += " .tpg_get_inst_index = " + fabric_mod_name + "_tpg_get_inst_index,\n"
394 buf += " .release_cmd_to_pool = " + fabric_mod_name + "_release_cmd,\n"389 buf += " .release_cmd = " + fabric_mod_name + "_release_cmd,\n"
395 buf += " .release_cmd_direct = " + fabric_mod_name + "_release_cmd,\n"
396 buf += " .shutdown_session = " + fabric_mod_name + "_shutdown_session,\n"390 buf += " .shutdown_session = " + fabric_mod_name + "_shutdown_session,\n"
397 buf += " .close_session = " + fabric_mod_name + "_close_session,\n"391 buf += " .close_session = " + fabric_mod_name + "_close_session,\n"
398 buf += " .stop_session = " + fabric_mod_name + "_stop_session,\n"392 buf += " .stop_session = " + fabric_mod_name + "_stop_session,\n"
@@ -405,14 +399,12 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 6 unmodified lines
405 buf += " .set_default_node_attributes = " + fabric_mod_name + "_set_default_node_attrs,\n"399 buf += " .set_default_node_attributes = " + fabric_mod_name + "_set_default_node_attrs,\n"
406 buf += " .get_task_tag = " + fabric_mod_name + "_get_task_tag,\n"400 buf += " .get_task_tag = " + fabric_mod_name + "_get_task_tag,\n"
407 buf += " .get_cmd_state = " + fabric_mod_name + "_get_cmd_state,\n"401 buf += " .get_cmd_state = " + fabric_mod_name + "_get_cmd_state,\n"
408 buf += " .new_cmd_failure = " + fabric_mod_name + "_new_cmd_failure,\n"
409 buf += " .queue_data_in = " + fabric_mod_name + "_queue_data_in,\n"402 buf += " .queue_data_in = " + fabric_mod_name + "_queue_data_in,\n"
410 buf += " .queue_status = " + fabric_mod_name + "_queue_status,\n"403 buf += " .queue_status = " + fabric_mod_name + "_queue_status,\n"
411 buf += " .queue_tm_rsp = " + fabric_mod_name + "_queue_tm_rsp,\n"404 buf += " .queue_tm_rsp = " + fabric_mod_name + "_queue_tm_rsp,\n"
412 buf += " .get_fabric_sense_len = " + fabric_mod_name + "_get_fabric_sense_len,\n"405 buf += " .get_fabric_sense_len = " + fabric_mod_name + "_get_fabric_sense_len,\n"
413 buf += " .set_fabric_sense_len = " + fabric_mod_name + "_set_fabric_sense_len,\n"406 buf += " .set_fabric_sense_len = " + fabric_mod_name + "_set_fabric_sense_len,\n"
414 buf += " .is_state_remove = " + fabric_mod_name + "_is_state_remove,\n"407 buf += " .is_state_remove = " + fabric_mod_name + "_is_state_remove,\n"
415 buf += " .pack_lun = " + fabric_mod_name + "_pack_lun,\n"
416 buf += " /*\n"408 buf += " /*\n"
417 buf += " * Setup function pointers for generic logic in target_core_fabric_configfs.c\n"409 buf += " * Setup function pointers for generic logic in target_core_fabric_configfs.c\n"
418 buf += " */\n"410 buf += " */\n"
@@ -439,9 +431,9 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 20 unmodified lines
439 buf += " * Register the top level struct config_item_type with TCM core\n"431 buf += " * Register the top level struct config_item_type with TCM core\n"
440 buf += " */\n"432 buf += " */\n"
441 buf += " fabric = target_fabric_configfs_init(THIS_MODULE, \"" + fabric_mod_name[4:] + "\");\n"433 buf += " fabric = target_fabric_configfs_init(THIS_MODULE, \"" + fabric_mod_name[4:] + "\");\n"
442 buf += " if (!(fabric)) {\n"434 buf += " if (IS_ERR(fabric)) {\n"
443 buf += " printk(KERN_ERR \"target_fabric_configfs_init() failed\\n\");\n"435 buf += " printk(KERN_ERR \"target_fabric_configfs_init() failed\\n\");\n"
444 buf += " return -ENOMEM;\n"436 buf += " return PTR_ERR(fabric);\n"
445 buf += " }\n"437 buf += " }\n"
446 buf += " /*\n"438 buf += " /*\n"
447 buf += " * Setup fabric->tf_ops from our local " + fabric_mod_name + "_ops\n"439 buf += " * Setup fabric->tf_ops from our local " + fabric_mod_name + "_ops\n"
@@ -475,9 +467,9 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 27 unmodified lines
475 buf += " printk(KERN_INFO \"" + fabric_mod_name.upper() + "[0] - Set fabric -> " + fabric_mod_name + "_fabric_configfs\\n\");\n"467 buf += " printk(KERN_INFO \"" + fabric_mod_name.upper() + "[0] - Set fabric -> " + fabric_mod_name + "_fabric_configfs\\n\");\n"
476 buf += " return 0;\n"468 buf += " return 0;\n"
477 buf += "};\n\n"469 buf += "};\n\n"
478 buf += "static void " + fabric_mod_name + "_deregister_configfs(void)\n"470 buf += "static void __exit " + fabric_mod_name + "_deregister_configfs(void)\n"
479 buf += "{\n"471 buf += "{\n"
480 buf += " if (!(" + fabric_mod_name + "_fabric_configfs))\n"472 buf += " if (!" + fabric_mod_name + "_fabric_configfs)\n"
481 buf += " return;\n\n"473 buf += " return;\n\n"
482 buf += " target_fabric_configfs_deregister(" + fabric_mod_name + "_fabric_configfs);\n"474 buf += " target_fabric_configfs_deregister(" + fabric_mod_name + "_fabric_configfs);\n"
483 buf += " " + fabric_mod_name + "_fabric_configfs = NULL;\n"475 buf += " " + fabric_mod_name + "_fabric_configfs = NULL;\n"
@@ -492,17 +484,15 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 8 unmodified lines
492 buf += " return ret;\n\n"484 buf += " return ret;\n\n"
493 buf += " return 0;\n"485 buf += " return 0;\n"
494 buf += "};\n\n"486 buf += "};\n\n"
495 buf += "static void " + fabric_mod_name + "_exit(void)\n"487 buf += "static void __exit " + fabric_mod_name + "_exit(void)\n"
496 buf += "{\n"488 buf += "{\n"
497 buf += " " + fabric_mod_name + "_deregister_configfs();\n"489 buf += " " + fabric_mod_name + "_deregister_configfs();\n"
498 buf += "};\n\n"490 buf += "};\n\n"
499 491
500 buf += "#ifdef MODULE\n"
501 buf += "MODULE_DESCRIPTION(\"" + fabric_mod_name.upper() + " series fabric driver\");\n"492 buf += "MODULE_DESCRIPTION(\"" + fabric_mod_name.upper() + " series fabric driver\");\n"
502 buf += "MODULE_LICENSE(\"GPL\");\n"493 buf += "MODULE_LICENSE(\"GPL\");\n"
503 buf += "module_init(" + fabric_mod_name + "_init);\n"494 buf += "module_init(" + fabric_mod_name + "_init);\n"
504 buf += "module_exit(" + fabric_mod_name + "_exit);\n"495 buf += "module_exit(" + fabric_mod_name + "_exit);\n"
505 buf += "#endif\n"
506 496
507 ret = p.write(buf)497 ret = p.write(buf)
508 if ret:498 if ret:
@@ -514,7 +504,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 5 unmodified lines
514 504
515def tcm_mod_scan_fabric_ops(tcm_dir):505def tcm_mod_scan_fabric_ops(tcm_dir):
516 506
517 fabric_ops_api = tcm_dir + "include/target/target_core_fabric_ops.h"507 fabric_ops_api = tcm_dir + "include/target/target_core_fabric.h"
518 508
519 print "Using tcm_mod_scan_fabric_ops: " + fabric_ops_api509 print "Using tcm_mod_scan_fabric_ops: " + fabric_ops_api
520 process_fo = 0;510 process_fo = 0;
@@ -579,11 +569,7 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 58 unmodified lines
579 buf += "#include <scsi/scsi_cmnd.h>\n"569 buf += "#include <scsi/scsi_cmnd.h>\n"
580 buf += "#include <scsi/libfc.h>\n\n"570 buf += "#include <scsi/libfc.h>\n\n"
581 buf += "#include <target/target_core_base.h>\n"571 buf += "#include <target/target_core_base.h>\n"
582 buf += "#include <target/target_core_transport.h>\n"572 buf += "#include <target/target_core_fabric.h>\n"
583 buf += "#include <target/target_core_fabric_ops.h>\n"
584 buf += "#include <target/target_core_fabric_lib.h>\n"
585 buf += "#include <target/target_core_device.h>\n"
586 buf += "#include <target/target_core_tpg.h>\n"
587 buf += "#include <target/target_core_configfs.h>\n\n"573 buf += "#include <target/target_core_configfs.h>\n\n"
588 buf += "#include \"" + fabric_mod_name + "_base.h\"\n"574 buf += "#include \"" + fabric_mod_name + "_base.h\"\n"
589 buf += "#include \"" + fabric_mod_name + "_fabric.h\"\n\n"575 buf += "#include \"" + fabric_mod_name + "_fabric.h\"\n\n"
@@ -788,7 +774,7 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 198 unmodified lines
788 buf += "{\n"774 buf += "{\n"
789 buf += " struct " + fabric_mod_name + "_nacl *nacl;\n\n"775 buf += " struct " + fabric_mod_name + "_nacl *nacl;\n\n"
790 buf += " nacl = kzalloc(sizeof(struct " + fabric_mod_name + "_nacl), GFP_KERNEL);\n"776 buf += " nacl = kzalloc(sizeof(struct " + fabric_mod_name + "_nacl), GFP_KERNEL);\n"
791 buf += " if (!(nacl)) {\n"777 buf += " if (!nacl) {\n"
792 buf += " printk(KERN_ERR \"Unable to alocate struct " + fabric_mod_name + "_nacl\\n\");\n"778 buf += " printk(KERN_ERR \"Unable to alocate struct " + fabric_mod_name + "_nacl\\n\");\n"
793 buf += " return NULL;\n"779 buf += " return NULL;\n"
794 buf += " }\n\n"780 buf += " }\n\n"
@@ -815,7 +801,7 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 20 unmodified lines
815 buf += "}\n\n"801 buf += "}\n\n"
816 bufi += "u32 " + fabric_mod_name + "_tpg_get_inst_index(struct se_portal_group *);\n"802 bufi += "u32 " + fabric_mod_name + "_tpg_get_inst_index(struct se_portal_group *);\n"
817 803
818 if re.search('release_cmd_to_pool', fo):804 if re.search('\*release_cmd\)\(', fo):
819 buf += "void " + fabric_mod_name + "_release_cmd(struct se_cmd *se_cmd)\n"805 buf += "void " + fabric_mod_name + "_release_cmd(struct se_cmd *se_cmd)\n"
820 buf += "{\n"806 buf += "{\n"
821 buf += " return;\n"807 buf += " return;\n"
@@ -899,13 +885,6 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 77 unmodified lines
899 buf += "}\n\n"885 buf += "}\n\n"
900 bufi += "int " + fabric_mod_name + "_get_cmd_state(struct se_cmd *);\n"886 bufi += "int " + fabric_mod_name + "_get_cmd_state(struct se_cmd *);\n"
901 887
902 if re.search('new_cmd_failure\)\(', fo):
903 buf += "void " + fabric_mod_name + "_new_cmd_failure(struct se_cmd *se_cmd)\n"
904 buf += "{\n"
905 buf += " return;\n"
906 buf += "}\n\n"
907 bufi += "void " + fabric_mod_name + "_new_cmd_failure(struct se_cmd *);\n"
908
909 if re.search('queue_data_in\)\(', fo):888 if re.search('queue_data_in\)\(', fo):
910 buf += "int " + fabric_mod_name + "_queue_data_in(struct se_cmd *se_cmd)\n"889 buf += "int " + fabric_mod_name + "_queue_data_in(struct se_cmd *se_cmd)\n"
911 buf += "{\n"890 buf += "{\n"
@@ -948,15 +927,6 @@ def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name): · 36 unmodified lines
948 buf += "}\n\n"927 buf += "}\n\n"
949 bufi += "int " + fabric_mod_name + "_is_state_remove(struct se_cmd *);\n"928 bufi += "int " + fabric_mod_name + "_is_state_remove(struct se_cmd *);\n"
950 929
951 if re.search('pack_lun\)\(', fo):
952 buf += "u64 " + fabric_mod_name + "_pack_lun(unsigned int lun)\n"
953 buf += "{\n"
954 buf += " WARN_ON(lun >= 256);\n"
955 buf += " /* Caller wants this byte-swapped */\n"
956 buf += " return cpu_to_le64((lun & 0xff) << 8);\n"
957 buf += "}\n\n"
958 bufi += "u64 " + fabric_mod_name + "_pack_lun(unsigned int);\n"
959
960 930
961 ret = p.write(buf)931 ret = p.write(buf)
962 if ret:932 if ret:
Documentation/trace/events-kmem.txt+6−6
@@ -40,8 +40,8 @@ but the call_site can usually be used to extrapolate that information. · 39 unmodified lines
40==================40==================
41mm_page_alloc page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s41mm_page_alloc page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s
42mm_page_alloc_zone_locked page=%p pfn=%lu order=%u migratetype=%d cpu=%d percpu_refill=%d42mm_page_alloc_zone_locked page=%p pfn=%lu order=%u migratetype=%d cpu=%d percpu_refill=%d
43mm_page_free_direct page=%p pfn=%lu order=%d43mm_page_free page=%p pfn=%lu order=%d
44mm_pagevec_free page=%p pfn=%lu order=%d cold=%d44mm_page_free_batched page=%p pfn=%lu order=%d cold=%d
45 45
46These four events deal with page allocation and freeing. mm_page_alloc is46These four events deal with page allocation and freeing. mm_page_alloc is
47a simple indicator of page allocator activity. Pages may be allocated from47a simple indicator of page allocator activity. Pages may be allocated from
@@ -53,13 +53,13 @@ amounts of activity imply high activity on the zone->lock. Taking this lock · 5 unmodified lines
53impairs performance by disabling interrupts, dirtying cache lines between53impairs performance by disabling interrupts, dirtying cache lines between
54CPUs and serialising many CPUs.54CPUs and serialising many CPUs.
55 55
56When a page is freed directly by the caller, the mm_page_free_direct event56When a page is freed directly by the caller, the only mm_page_free event
57is triggered. Significant amounts of activity here could indicate that the57is triggered. Significant amounts of activity here could indicate that the
58callers should be batching their activities.58callers should be batching their activities.
59 59
60When pages are freed using a pagevec, the mm_pagevec_free is60When pages are freed in batch, the also mm_page_free_batched is triggered.
61triggered. Broadly speaking, pages are taken off the LRU lock in bulk and61Broadly speaking, pages are taken off the LRU lock in bulk and
62freed in batch with a pagevec. Significant amounts of activity here could62freed in batch with a page list. Significant amounts of activity here could
63indicate that the system is under memory pressure and can also indicate63indicate that the system is under memory pressure and can also indicate
64contention on the zone->lru_lock.64contention on the zone->lru_lock.
65 65
Documentation/trace/postprocess/trace-pagealloc-postprocess.pl+10−10
@@ -17,8 +17,8 @@ use Getopt::Long; · 16 unmodified lines
17 17
18# Tracepoint events18# Tracepoint events
19use constant MM_PAGE_ALLOC => 1;19use constant MM_PAGE_ALLOC => 1;
20use constant MM_PAGE_FREE_DIRECT => 2;20use constant MM_PAGE_FREE => 2;
21use constant MM_PAGEVEC_FREE => 3;21use constant MM_PAGE_FREE_BATCHED => 3;
22use constant MM_PAGE_PCPU_DRAIN => 4;22use constant MM_PAGE_PCPU_DRAIN => 4;
23use constant MM_PAGE_ALLOC_ZONE_LOCKED => 5;23use constant MM_PAGE_ALLOC_ZONE_LOCKED => 5;
24use constant MM_PAGE_ALLOC_EXTFRAG => 6;24use constant MM_PAGE_ALLOC_EXTFRAG => 6;
@@ -223,10 +223,10 @@ EVENT_PROCESS: · 198 unmodified lines
223 # Perl Switch() sucks majorly223 # Perl Switch() sucks majorly
224 if ($tracepoint eq "mm_page_alloc") {224 if ($tracepoint eq "mm_page_alloc") {
225 $perprocesspid{$process_pid}->{MM_PAGE_ALLOC}++;225 $perprocesspid{$process_pid}->{MM_PAGE_ALLOC}++;
226 } elsif ($tracepoint eq "mm_page_free_direct") {226 } elsif ($tracepoint eq "mm_page_free") {
227 $perprocesspid{$process_pid}->{MM_PAGE_FREE_DIRECT}++;227 $perprocesspid{$process_pid}->{MM_PAGE_FREE}++
228 } elsif ($tracepoint eq "mm_pagevec_free") {228 } elsif ($tracepoint eq "mm_page_free_batched") {
229 $perprocesspid{$process_pid}->{MM_PAGEVEC_FREE}++;229 $perprocesspid{$process_pid}->{MM_PAGE_FREE_BATCHED}++;
230 } elsif ($tracepoint eq "mm_page_pcpu_drain") {230 } elsif ($tracepoint eq "mm_page_pcpu_drain") {
231 $perprocesspid{$process_pid}->{MM_PAGE_PCPU_DRAIN}++;231 $perprocesspid{$process_pid}->{MM_PAGE_PCPU_DRAIN}++;
232 $perprocesspid{$process_pid}->{STATE_PCPU_PAGES_DRAINED}++;232 $perprocesspid{$process_pid}->{STATE_PCPU_PAGES_DRAINED}++;
@@ -336,8 +336,8 @@ sub dump_stats { · 103 unmodified lines
336 $process_pid,336 $process_pid,
337 $stats{$process_pid}->{MM_PAGE_ALLOC},337 $stats{$process_pid}->{MM_PAGE_ALLOC},
338 $stats{$process_pid}->{MM_PAGE_ALLOC_ZONE_LOCKED},338 $stats{$process_pid}->{MM_PAGE_ALLOC_ZONE_LOCKED},
339 $stats{$process_pid}->{MM_PAGE_FREE_DIRECT},339 $stats{$process_pid}->{MM_PAGE_FREE},
340 $stats{$process_pid}->{MM_PAGEVEC_FREE},340 $stats{$process_pid}->{MM_PAGE_FREE_BATCHED},
341 $stats{$process_pid}->{MM_PAGE_PCPU_DRAIN},341 $stats{$process_pid}->{MM_PAGE_PCPU_DRAIN},
342 $stats{$process_pid}->{HIGH_PCPU_DRAINS},342 $stats{$process_pid}->{HIGH_PCPU_DRAINS},
343 $stats{$process_pid}->{HIGH_PCPU_REFILLS},343 $stats{$process_pid}->{HIGH_PCPU_REFILLS},
@@ -364,8 +364,8 @@ sub aggregate_perprocesspid() { · 20 unmodified lines
364 364
365 $perprocess{$process}->{MM_PAGE_ALLOC} += $perprocesspid{$process_pid}->{MM_PAGE_ALLOC};365 $perprocess{$process}->{MM_PAGE_ALLOC} += $perprocesspid{$process_pid}->{MM_PAGE_ALLOC};
366 $perprocess{$process}->{MM_PAGE_ALLOC_ZONE_LOCKED} += $perprocesspid{$process_pid}->{MM_PAGE_ALLOC_ZONE_LOCKED};366 $perprocess{$process}->{MM_PAGE_ALLOC_ZONE_LOCKED} += $perprocesspid{$process_pid}->{MM_PAGE_ALLOC_ZONE_LOCKED};
367 $perprocess{$process}->{MM_PAGE_FREE_DIRECT} += $perprocesspid{$process_pid}->{MM_PAGE_FREE_DIRECT};367 $perprocess{$process}->{MM_PAGE_FREE} += $perprocesspid{$process_pid}->{MM_PAGE_FREE};
368 $perprocess{$process}->{MM_PAGEVEC_FREE} += $perprocesspid{$process_pid}->{MM_PAGEVEC_FREE};368 $perprocess{$process}->{MM_PAGE_FREE_BATCHED} += $perprocesspid{$process_pid}->{MM_PAGE_FREE_BATCHED};
369 $perprocess{$process}->{MM_PAGE_PCPU_DRAIN} += $perprocesspid{$process_pid}->{MM_PAGE_PCPU_DRAIN};369 $perprocess{$process}->{MM_PAGE_PCPU_DRAIN} += $perprocesspid{$process_pid}->{MM_PAGE_PCPU_DRAIN};
370 $perprocess{$process}->{HIGH_PCPU_DRAINS} += $perprocesspid{$process_pid}->{HIGH_PCPU_DRAINS};370 $perprocess{$process}->{HIGH_PCPU_DRAINS} += $perprocesspid{$process_pid}->{HIGH_PCPU_DRAINS};
371 $perprocess{$process}->{HIGH_PCPU_REFILLS} += $perprocesspid{$process_pid}->{HIGH_PCPU_REFILLS};371 $perprocess{$process}->{HIGH_PCPU_REFILLS} += $perprocesspid{$process_pid}->{HIGH_PCPU_REFILLS};
Documentation/trace/tracepoint-analysis.txt+20−20
@@ -93,14 +93,14 @@ By specifying the -a switch and analysing sleep, the system-wide events · 92 unmodified lines
93for a duration of time can be examined.93for a duration of time can be examined.
94 94
95 $ perf stat -a \95 $ perf stat -a \
96 -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \96 -e kmem:mm_page_alloc -e kmem:mm_page_free \
97 -e kmem:mm_pagevec_free \97 -e kmem:mm_page_free_batched \
98 sleep 1098 sleep 10
99 Performance counter stats for 'sleep 10':99 Performance counter stats for 'sleep 10':
100 100
101 9630 kmem:mm_page_alloc101 9630 kmem:mm_page_alloc
102 2143 kmem:mm_page_free_direct102 2143 kmem:mm_page_free
103 7424 kmem:mm_pagevec_free103 7424 kmem:mm_page_free_batched
104 104
105 10.002577764 seconds time elapsed105 10.002577764 seconds time elapsed
106 106
@@ -119,15 +119,15 @@ basis using set_ftrace_pid. · 12 unmodified lines
119Events can be activated and tracked for the duration of a process on a local119Events can be activated and tracked for the duration of a process on a local
120basis using PCL such as follows.120basis using PCL such as follows.
121 121
122 $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \122 $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free \
123 -e kmem:mm_pagevec_free ./hackbench 10123 -e kmem:mm_page_free_batched ./hackbench 10
124 Time: 0.909124 Time: 0.909
125 125
126 Performance counter stats for './hackbench 10':126 Performance counter stats for './hackbench 10':
127 127
128 17803 kmem:mm_page_alloc128 17803 kmem:mm_page_alloc
129 12398 kmem:mm_page_free_direct129 12398 kmem:mm_page_free
130 4827 kmem:mm_pagevec_free130 4827 kmem:mm_page_free_batched
131 131
132 0.973913387 seconds time elapsed132 0.973913387 seconds time elapsed
133 133
@@ -146,8 +146,8 @@ to know what the standard deviation is. By and large, this is left to the · 12 unmodified lines
146performance analyst to do it by hand. In the event that the discrete event146performance analyst to do it by hand. In the event that the discrete event
147occurrences are useful to the performance analyst, then perf can be used.147occurrences are useful to the performance analyst, then perf can be used.
148 148
149 $ perf stat --repeat 5 -e kmem:mm_page_alloc -e kmem:mm_page_free_direct149 $ perf stat --repeat 5 -e kmem:mm_page_alloc -e kmem:mm_page_free
150 -e kmem:mm_pagevec_free ./hackbench 10150 -e kmem:mm_page_free_batched ./hackbench 10
151 Time: 0.890151 Time: 0.890
152 Time: 0.895152 Time: 0.895
153 Time: 0.915153 Time: 0.915
@@ -157,8 +157,8 @@ occurrences are useful to the performance analyst, then perf can be used. · 3 unmodified lines
157 Performance counter stats for './hackbench 10' (5 runs):157 Performance counter stats for './hackbench 10' (5 runs):
158 158
159 16630 kmem:mm_page_alloc ( +- 3.542% )159 16630 kmem:mm_page_alloc ( +- 3.542% )
160 11486 kmem:mm_page_free_direct ( +- 4.771% )160 11486 kmem:mm_page_free ( +- 4.771% )
161 4730 kmem:mm_pagevec_free ( +- 2.325% )161 4730 kmem:mm_page_free_batched ( +- 2.325% )
162 162
163 0.982653002 seconds time elapsed ( +- 1.448% )163 0.982653002 seconds time elapsed ( +- 1.448% )
164 164
@@ -168,15 +168,15 @@ aggregation of discrete events, then a script would need to be developed. · 3 unmodified lines
168Using --repeat, it is also possible to view how events are fluctuating over168Using --repeat, it is also possible to view how events are fluctuating over
169time on a system-wide basis using -a and sleep.169time on a system-wide basis using -a and sleep.
170 170
171 $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \171 $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free \
172 -e kmem:mm_pagevec_free \172 -e kmem:mm_page_free_batched \
173 -a --repeat 10 \173 -a --repeat 10 \
174 sleep 1174 sleep 1
175 Performance counter stats for 'sleep 1' (10 runs):175 Performance counter stats for 'sleep 1' (10 runs):
176 176
177 1066 kmem:mm_page_alloc ( +- 26.148% )177 1066 kmem:mm_page_alloc ( +- 26.148% )
178 182 kmem:mm_page_free_direct ( +- 5.464% )178 182 kmem:mm_page_free ( +- 5.464% )
179 890 kmem:mm_pagevec_free ( +- 30.079% )179 890 kmem:mm_page_free_batched ( +- 30.079% )
180 180
181 1.002251757 seconds time elapsed ( +- 0.005% )181 1.002251757 seconds time elapsed ( +- 0.005% )
182 182
@@ -220,8 +220,8 @@ were generating events within the kernel. To begin this sort of analysis, the · 37 unmodified lines
220data must be recorded. At the time of writing, this required root:220data must be recorded. At the time of writing, this required root:
221 221
222 $ perf record -c 1 \222 $ perf record -c 1 \
223 -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \223 -e kmem:mm_page_alloc -e kmem:mm_page_free \
224 -e kmem:mm_pagevec_free \224 -e kmem:mm_page_free_batched \
225 ./hackbench 10225 ./hackbench 10
226 Time: 0.894226 Time: 0.894
227 [ perf record: Captured and wrote 0.733 MB perf.data (~32010 samples) ]227 [ perf record: Captured and wrote 0.733 MB perf.data (~32010 samples) ]
@@ -260,8 +260,8 @@ noticed that X was generating an insane amount of page allocations so let's look · 32 unmodified lines
260at it:260at it:
261 261
262 $ perf record -c 1 -f \262 $ perf record -c 1 -f \
263 -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \263 -e kmem:mm_page_alloc -e kmem:mm_page_free \
264 -e kmem:mm_pagevec_free \264 -e kmem:mm_page_free_batched \
265 -p `pidof X`265 -p `pidof X`
266 266
267This was interrupted after a few seconds and267This was interrupted after a few seconds and
Documentation/usb/usbmon.txt+9−5
@@ -47,10 +47,11 @@ This allows to filter away annoying devices that talk continuously. · 46 unmodified lines
47 47
482. Find which bus connects to the desired device482. Find which bus connects to the desired device
49 49
50Run "cat /proc/bus/usb/devices", and find the T-line which corresponds to50Run "cat /sys/kernel/debug/usb/devices", and find the T-line which corresponds
51the device. Usually you do it by looking for the vendor string. If you have51to the device. Usually you do it by looking for the vendor string. If you have
52many similar devices, unplug one and compare two /proc/bus/usb/devices outputs.52many similar devices, unplug one and compare the two
53The T-line will have a bus number. Example:53/sys/kernel/debug/usb/devices outputs. The T-line will have a bus number.
54Example:
54 55
55T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 056T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
56D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 157D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
@@ -58,7 +59,10 @@ P: Vendor=0557 ProdID=2004 Rev= 1.00 · 1 unmodified line
58S: Manufacturer=ATEN59S: Manufacturer=ATEN
59S: Product=UC100KM V2.0060S: Product=UC100KM V2.00
60 61
61Bus=03 means it's bus 3.62"Bus=03" means it's bus 3. Alternatively, you can look at the output from
63"lsusb" and get the bus number from the appropriate line. Example:
64
65Bus 003 Device 002: ID 0557:2004 ATEN UC100KM V2.00
62 66
633. Start 'cat'673. Start 'cat'
64 68
Documentation/vgaarbiter.txt+1−1
@@ -177,7 +177,7 @@ II. Credits · 176 unmodified lines
177 177
178Benjamin Herrenschmidt (IBM?) started this work when he discussed such design178Benjamin Herrenschmidt (IBM?) started this work when he discussed such design
179with the Xorg community in 2005 [1, 2]. In the end of 2007, Paulo Zanoni and179with the Xorg community in 2005 [1, 2]. In the end of 2007, Paulo Zanoni and
180Tiago Vignatti (both of C3SL/Federal University of Paran�) proceeded his work180Tiago Vignatti (both of C3SL/Federal University of Paraná) proceeded his work
181enhancing the kernel code to adapt as a kernel module and also did the181enhancing the kernel code to adapt as a kernel module and also did the
182implementation of the user space side [3]. Now (2009) Tiago Vignatti and Dave182implementation of the user space side [3]. Now (2009) Tiago Vignatti and Dave
183Airlie finally put this work in shape and queued to Jesse Barnes' PCI tree.183Airlie finally put this work in shape and queued to Jesse Barnes' PCI tree.
Documentation/video4linux/CARDLIST.au0828+1−1
@@ -1,5 +1,5 @@
1 0 -> Unknown board (au0828)1 0 -> Unknown board (au0828)
2 1 -> Hauppauge HVR950Q (au0828) [2040:7200,2040:7210,2040:7217,2040:721b,2040:721e,2040:721f,2040:7280,0fd9:0008]2 1 -> Hauppauge HVR950Q (au0828) [2040:7200,2040:7210,2040:7217,2040:721b,2040:721e,2040:721f,2040:7280,0fd9:0008,2040:7260,2040:7213]
3 2 -> Hauppauge HVR850 (au0828) [2040:7240]3 2 -> Hauppauge HVR850 (au0828) [2040:7240]
4 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620]4 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620]
5 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281]5 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281]
Documentation/video4linux/CARDLIST.bttv+2−1
@@ -71,7 +71,7 @@ · 70 unmodified lines
71 70 -> Prolink Pixelview PV-BT878P+ (Rev.4C,8E)71 70 -> Prolink Pixelview PV-BT878P+ (Rev.4C,8E)
72 71 -> Lifeview FlyVideo 98EZ (capture only) LR51 [1851:1851]72 71 -> Lifeview FlyVideo 98EZ (capture only) LR51 [1851:1851]
73 72 -> Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM) [1554:4011]73 72 -> Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM) [1554:4011]
74 73 -> Sensoray 311 [6000:0311]74 73 -> Sensoray 311/611 [6000:0311,6000:0611]
75 74 -> RemoteVision MX (RV605)75 74 -> RemoteVision MX (RV605)
76 75 -> Powercolor MTV878/ MTV878R/ MTV878F76 75 -> Powercolor MTV878/ MTV878R/ MTV878F
77 76 -> Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP) [0e11:0079]77 76 -> Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP) [0e11:0079]
@@ -158,3 +158,4 @@ · 80 unmodified lines
158157 -> Geovision GV-800(S) (master) [800a:763d]158157 -> Geovision GV-800(S) (master) [800a:763d]
159158 -> Geovision GV-800(S) (slave) [800b:763d,800c:763d,800d:763d]159158 -> Geovision GV-800(S) (slave) [800b:763d,800c:763d,800d:763d]
160159 -> ProVideo PV183 [1830:1540,1831:1540,1832:1540,1833:1540,1834:1540,1835:1540,1836:1540,1837:1540]160159 -> ProVideo PV183 [1830:1540,1831:1540,1832:1540,1833:1540,1834:1540,1835:1540,1836:1540,1837:1540]
161160 -> Tongwei Video Technology TD-3116 [f200:3116]
Documentation/video4linux/CARDLIST.cx23885+3−0
@@ -29,3 +29,6 @@ · 28 unmodified lines
29 28 -> LEADTEK WinFast PxTV1200 [107d:6f22]29 28 -> LEADTEK WinFast PxTV1200 [107d:6f22]
30 29 -> GoTView X5 3D Hybrid [5654:2390]30 29 -> GoTView X5 3D Hybrid [5654:2390]
31 30 -> NetUP Dual DVB-T/C-CI RF [1b55:e2e4]31 30 -> NetUP Dual DVB-T/C-CI RF [1b55:e2e4]
32 31 -> Leadtek Winfast PxDVR3200 H XC4000 [107d:6f39]
33 32 -> MPX-885
34 33 -> Mygica X8507 [14f1:8502]
Documentation/video4linux/CARDLIST.cx88+2−0
@@ -85,3 +85,5 @@ · 84 unmodified lines
85 84 -> Samsung SMT 7020 DVB-S [18ac:dc00,18ac:dccd]85 84 -> Samsung SMT 7020 DVB-S [18ac:dc00,18ac:dccd]
86 85 -> Twinhan VP-1027 DVB-S [1822:0023]86 85 -> Twinhan VP-1027 DVB-S [1822:0023]
87 86 -> TeVii S464 DVB-S/S2 [d464:9022]87 86 -> TeVii S464 DVB-S/S2 [d464:9022]
88 87 -> Leadtek WinFast DTV2000 H PLUS [107d:6f42]
89 88 -> Leadtek WinFast DTV1800 H (XC4000) [107d:6f38]
Documentation/video4linux/CARDLIST.em28xx+7−3
@@ -11,7 +11,7 @@ · 10 unmodified lines
11 10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500]11 10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500]
12 11 -> Terratec Hybrid XS (em2880)12 11 -> Terratec Hybrid XS (em2880)
13 12 -> Kworld PVR TV 2800 RF (em2820/em2840)13 12 -> Kworld PVR TV 2800 RF (em2820/em2840)
14 13 -> Terratec Prodigy XS (em2880) [0ccd:0047]14 13 -> Terratec Prodigy XS (em2880)
15 14 -> SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0 (em2820/em2840)15 14 -> SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0 (em2820/em2840)
16 15 -> V-Gear PocketTV (em2800)16 15 -> V-Gear PocketTV (em2800)
17 16 -> Hauppauge WinTV HVR 950 (em2883) [2040:6513,2040:6517,2040:651b]17 16 -> Hauppauge WinTV HVR 950 (em2883) [2040:6513,2040:6517,2040:651b]
@@ -40,7 +40,7 @@ · 22 unmodified lines
40 39 -> KWorld PVRTV 300U (em2861) [eb1a:e300]40 39 -> KWorld PVRTV 300U (em2861) [eb1a:e300]
41 40 -> Plextor ConvertX PX-TV100U (em2861) [093b:a005]41 40 -> Plextor ConvertX PX-TV100U (em2861) [093b:a005]
42 41 -> Kworld 350 U DVB-T (em2870) [eb1a:e350]42 41 -> Kworld 350 U DVB-T (em2870) [eb1a:e350]
43 42 -> Kworld 355 U DVB-T (em2870) [eb1a:e355,eb1a:e357]43 42 -> Kworld 355 U DVB-T (em2870) [eb1a:e355,eb1a:e357,eb1a:e359]
44 43 -> Terratec Cinergy T XS (em2870) [0ccd:0043]44 43 -> Terratec Cinergy T XS (em2870) [0ccd:0043]
45 44 -> Terratec Cinergy T XS (MT2060) (em2870)45 44 -> Terratec Cinergy T XS (MT2060) (em2870)
46 45 -> Pinnacle PCTV DVB-T (em2870)46 45 -> Pinnacle PCTV DVB-T (em2870)
@@ -64,7 +64,7 @@ · 17 unmodified lines
64 64 -> Easy Cap Capture DC-60 (em2860)64 64 -> Easy Cap Capture DC-60 (em2860)
65 65 -> IO-DATA GV-MVP/SZ (em2820/em2840) [04bb:0515]65 65 -> IO-DATA GV-MVP/SZ (em2820/em2840) [04bb:0515]
66 66 -> Empire dual TV (em2880)66 66 -> Empire dual TV (em2880)
67 67 -> Terratec Grabby (em2860) [0ccd:0096]67 67 -> Terratec Grabby (em2860) [0ccd:0096,0ccd:10AF]
68 68 -> Terratec AV350 (em2860) [0ccd:0084]68 68 -> Terratec AV350 (em2860) [0ccd:0084]
69 69 -> KWorld ATSC 315U HDTV TV Box (em2882) [eb1a:a313]69 69 -> KWorld ATSC 315U HDTV TV Box (em2882) [eb1a:a313]
70 70 -> Evga inDtube (em2882)70 70 -> Evga inDtube (em2882)
@@ -76,3 +76,7 @@ · 5 unmodified lines
76 76 -> KWorld PlusTV 340U or UB435-Q (ATSC) (em2870) [1b80:a340]76 76 -> KWorld PlusTV 340U or UB435-Q (ATSC) (em2870) [1b80:a340]
77 77 -> EM2874 Leadership ISDBT (em2874)77 77 -> EM2874 Leadership ISDBT (em2874)
78 78 -> PCTV nanoStick T2 290e (em28174)78 78 -> PCTV nanoStick T2 290e (em28174)
79 79 -> Terratec Cinergy H5 (em2884) [0ccd:10a2,0ccd:10ad]
80 80 -> PCTV DVB-S2 Stick (460e) (em28174)
81 81 -> Hauppauge WinTV HVR 930C (em2884) [2040:1605]
82 82 -> Terratec Cinergy HTC Stick (em2884) [0ccd:00b2]
Documentation/video4linux/CARDLIST.saa7134+1−0
@@ -186,3 +186,4 @@ · 185 unmodified lines
186185 -> MagicPro ProHDTV Pro2 DMB-TH/Hybrid [17de:d136]186185 -> MagicPro ProHDTV Pro2 DMB-TH/Hybrid [17de:d136]
187186 -> Beholder BeholdTV 501 [5ace:5010]187186 -> Beholder BeholdTV 501 [5ace:5010]
188187 -> Beholder BeholdTV 503 FM [5ace:5030]188187 -> Beholder BeholdTV 503 FM [5ace:5030]
189188 -> Sensoray 811/911 [6000:0811,6000:0911]
Documentation/video4linux/CARDLIST.saa7164+2−0
@@ -7,3 +7,5 @@ · 6 unmodified lines
7 6 -> Hauppauge WinTV-HVR2200 [0070:8901]7 6 -> Hauppauge WinTV-HVR2200 [0070:8901]
8 7 -> Hauppauge WinTV-HVR2250 [0070:8891,0070:8851]8 7 -> Hauppauge WinTV-HVR2250 [0070:8891,0070:8851]
9 8 -> Hauppauge WinTV-HVR2250 [0070:88A1]9 8 -> Hauppauge WinTV-HVR2250 [0070:88A1]
10 9 -> Hauppauge WinTV-HVR2200 [0070:8940]
11 10 -> Hauppauge WinTV-HVR2200 [0070:8953]
Documentation/video4linux/gspca.txt+2−0
@@ -189,6 +189,7 @@ ov519 05a9:0511 Video Blaster WebCam 3/WebCam Plus, D-Link USB Digital Video Ca · 188 unmodified lines
189ov519 05a9:0518 Creative WebCam189ov519 05a9:0518 Creative WebCam
190ov519 05a9:0519 OV519 Microphone190ov519 05a9:0519 OV519 Microphone
191ov519 05a9:0530 OmniVision191ov519 05a9:0530 OmniVision
192ov534_9 05a9:1550 OmniVision VEHO Filmscanner
192ov519 05a9:2800 OmniVision SuperCAM193ov519 05a9:2800 OmniVision SuperCAM
193ov519 05a9:4519 Webcam Classic194ov519 05a9:4519 Webcam Classic
194ov534_9 05a9:8065 OmniVision test kit ov538+ov9712195ov534_9 05a9:8065 OmniVision test kit ov538+ov9712
@@ -278,6 +279,7 @@ pac7302 093a:2628 Genius iLook 300 · 83 unmodified lines
278pac7302 093a:2629 Genious iSlim 300279pac7302 093a:2629 Genious iSlim 300
279pac7302 093a:262a Webcam 300k280pac7302 093a:262a Webcam 300k
280pac7302 093a:262c Philips SPC 230 NC281pac7302 093a:262c Philips SPC 230 NC
282jl2005bcd 0979:0227 Various brands, 19 known cameras supported
281jeilinj 0979:0280 Sakar 57379283jeilinj 0979:0280 Sakar 57379
282jeilinj 0979:0280 Sportscam DV15284jeilinj 0979:0280 Sportscam DV15
283zc3xx 0ac8:0302 Z-star Vimicro zc0302285zc3xx 0ac8:0302 Z-star Vimicro zc0302
Documentation/video4linux/v4l2-controls.txt+0−21
@@ -666,27 +666,6 @@ a control of this type whenever the first control belonging to a new control · 665 unmodified lines
666class is added.666class is added.
667 667
668 668
669Differences from the Spec
670=========================
671
672There are a few places where the framework acts slightly differently from the
673V4L2 Specification. Those differences are described in this section. We will
674have to see whether we need to adjust the spec or not.
675
6761) It is no longer required to have all controls contained in a
677v4l2_ext_control array be from the same control class. The framework will be
678able to handle any type of control in the array. You need to set ctrl_class
679to 0 in order to enable this. If ctrl_class is non-zero, then it will still
680check that all controls belong to that control class.
681
682If you set ctrl_class to 0 and count to 0, then it will only return an error
683if there are no controls at all.
684
6852) Clarified the way error_idx works. For get and set it will be equal to
686count if nothing was done yet. If it is less than count then only the controls
687up to error_idx-1 were successfully applied.
688
689
690Proposals for Extensions669Proposals for Extensions
691========================670========================
692 671
Documentation/video4linux/v4l2-framework.txt+11−0
@@ -612,6 +612,12 @@ You can set a pointer to a mutex_lock in struct video_device. Usually this · 611 unmodified lines
612will be either a top-level mutex or a mutex per device node. If you want612will be either a top-level mutex or a mutex per device node. If you want
613finer-grained locking then you have to set it to NULL and do you own locking.613finer-grained locking then you have to set it to NULL and do you own locking.
614 614
615It is up to the driver developer to decide which method to use. However, if
616your driver has high-latency operations (for example, changing the exposure
617of a USB webcam might take a long time), then you might be better off with
618doing your own locking if you want to allow the user to do other things with
619the device while waiting for the high-latency command to finish.
620
615If a lock is specified then all file operations will be serialized on that621If a lock is specified then all file operations will be serialized on that
616lock. If you use videobuf then you must pass the same lock to the videobuf622lock. If you use videobuf then you must pass the same lock to the videobuf
617queue initialize function: if videobuf has to wait for a frame to arrive, then623queue initialize function: if videobuf has to wait for a frame to arrive, then
@@ -619,6 +625,11 @@ it will temporarily unlock the lock and relock it afterwards. If your driver · 1 unmodified line
619also waits in the code, then you should do the same to allow other processes625also waits in the code, then you should do the same to allow other processes
620to access the device node while the first process is waiting for something.626to access the device node while the first process is waiting for something.
621 627
628In the case of videobuf2 you will need to implement the wait_prepare and
629wait_finish callbacks to unlock/lock if applicable. In particular, if you use
630the lock in struct video_device then you must unlock/lock this mutex in
631wait_prepare and wait_finish.
632
622The implementation of a hotplug disconnect should also take the lock before633The implementation of a hotplug disconnect should also take the lock before
623calling v4l2_device_disconnect.634calling v4l2_device_disconnect.
624 635
Documentation/virtual/kvm/api.txt+25−0
@@ -1466,6 +1466,31 @@ is supported; 2 if the processor requires all virtual machines to have · 1465 unmodified lines
1466an RMA, or 1 if the processor can use an RMA but doesn't require it,1466an RMA, or 1 if the processor can use an RMA but doesn't require it,
1467because it supports the Virtual RMA (VRMA) facility.1467because it supports the Virtual RMA (VRMA) facility.
1468 1468
14694.64 KVM_NMI
1470
1471Capability: KVM_CAP_USER_NMI
1472Architectures: x86
1473Type: vcpu ioctl
1474Parameters: none
1475Returns: 0 on success, -1 on error
1476
1477Queues an NMI on the thread's vcpu. Note this is well defined only
1478when KVM_CREATE_IRQCHIP has not been called, since this is an interface
1479between the virtual cpu core and virtual local APIC. After KVM_CREATE_IRQCHIP
1480has been called, this interface is completely emulated within the kernel.
1481
1482To use this to emulate the LINT1 input with KVM_CREATE_IRQCHIP, use the
1483following algorithm:
1484
1485 - pause the vpcu
1486 - read the local APIC's state (KVM_GET_LAPIC)
1487 - check whether changing LINT1 will queue an NMI (see the LVT entry for LINT1)
1488 - if so, issue KVM_NMI
1489 - resume the vcpu
1490
1491Some guests configure the LINT1 NMI input to cause a panic, aiding in
1492debugging.
1493
14695. The kvm_run structure14945. The kvm_run structure
1470 1495
1471Application code obtains a pointer to the kvm_run structure by1496Application code obtains a pointer to the kvm_run structure by
Documentation/vm/slub.txt+5−2
@@ -117,7 +117,7 @@ can be influenced by kernel parameters: · 116 unmodified lines
117 117
118slub_min_objects=x (default 4)118slub_min_objects=x (default 4)
119slub_min_order=x (default 0)119slub_min_order=x (default 0)
120slub_max_order=x (default 1)120slub_max_order=x (default 3 (PAGE_ALLOC_COSTLY_ORDER))
121 121
122slub_min_objects allows to specify how many objects must at least fit122slub_min_objects allows to specify how many objects must at least fit
123into one slab in order for the allocation order to be acceptable.123into one slab in order for the allocation order to be acceptable.
@@ -131,7 +131,10 @@ slub_min_objects. · 7 unmodified lines
131slub_max_order specified the order at which slub_min_objects should no131slub_max_order specified the order at which slub_min_objects should no
132longer be checked. This is useful to avoid SLUB trying to generate132longer be checked. This is useful to avoid SLUB trying to generate
133super large order pages to fit slub_min_objects of a slab cache with133super large order pages to fit slub_min_objects of a slab cache with
134large object sizes into one high order page.134large object sizes into one high order page. Setting command line
135parameter debug_guardpage_minorder=N (N > 0), forces setting
136slub_max_order to 0, what cause minimum possible order of slabs
137allocation.
135 138
136SLUB Debug output139SLUB Debug output
137-----------------140-----------------
Documentation/watchdog/00-INDEX+2−0
@@ -1,5 +1,7 @@
100-INDEX100-INDEX
2 - this file.2 - this file.
3convert_drivers_to_kernel_api.txt
4 - how-to for converting old watchdog drivers to the new kernel API.
3hpwdt.txt5hpwdt.txt
4 - information on the HP iLO2 NMI watchdog6 - information on the HP iLO2 NMI watchdog
5pcwd-watchdog.txt7pcwd-watchdog.txt
Documentation/watchdog/convert_drivers_to_kernel_api.txt+19−0
@@ -163,6 +163,25 @@ Here is a simple example for a watchdog device: · 162 unmodified lines
163+};163+};
164 164
165 165
166Handle the 'nowayout' feature
167-----------------------------
168
169A few drivers use nowayout statically, i.e. there is no module parameter for it
170and only CONFIG_WATCHDOG_NOWAYOUT determines if the feature is going to be
171used. This needs to be converted by initializing the status variable of the
172watchdog_device like this:
173
174 .status = WATCHDOG_NOWAYOUT_INIT_STATUS,
175
176Most drivers, however, also allow runtime configuration of nowayout, usually
177by adding a module parameter. The conversion for this would be something like:
178
179 watchdog_set_nowayout(&s3c2410_wdd, nowayout);
180
181The module parameter itself needs to stay, everything else related to nowayout
182can go, though. This will likely be some code in open(), close() or write().
183
184
166Register the watchdog device185Register the watchdog device
167----------------------------186----------------------------
168 187
Documentation/watchdog/watchdog-kernel-api.txt+9−1
@@ -1,6 +1,6 @@
1The Linux WatchDog Timer Driver Core kernel API.1The Linux WatchDog Timer Driver Core kernel API.
2===============================================2===============================================
3Last reviewed: 22-Jul-20113Last reviewed: 29-Nov-2011
4 4
5Wim Van Sebroeck <wim@iguana.be>5Wim Van Sebroeck <wim@iguana.be>
6 6
@@ -142,6 +142,14 @@ bit-operations. The status bits that are defined are: · 135 unmodified lines
142* WDOG_NO_WAY_OUT: this bit stores the nowayout setting for the watchdog.142* WDOG_NO_WAY_OUT: this bit stores the nowayout setting for the watchdog.
143 If this bit is set then the watchdog timer will not be able to stop.143 If this bit is set then the watchdog timer will not be able to stop.
144 144
145 To set the WDOG_NO_WAY_OUT status bit (before registering your watchdog
146 timer device) you can either:
147 * set it statically in your watchdog_device struct with
148 .status = WATCHDOG_NOWAYOUT_INIT_STATUS,
149 (this will set the value the same as CONFIG_WATCHDOG_NOWAYOUT) or
150 * use the following helper function:
151 static inline void watchdog_set_nowayout(struct watchdog_device *wdd, int nowayout)
152
145Note: The WatchDog Timer Driver Core supports the magic close feature and153Note: The WatchDog Timer Driver Core supports the magic close feature and
146the nowayout feature. To use the magic close feature you must set the154the nowayout feature. To use the magic close feature you must set the
147WDIOF_MAGICCLOSE bit in the options field of the watchdog's info structure.155WDIOF_MAGICCLOSE bit in the options field of the watchdog's info structure.
MAINTAINERS+112−105
@@ -184,11 +184,6 @@ S: Maintained · 183 unmodified lines
184F: Documentation/filesystems/9p.txt184F: Documentation/filesystems/9p.txt
185F: fs/9p/185F: fs/9p/
186 186
187A2232 SERIAL BOARD DRIVER
188L: linux-m68k@lists.linux-m68k.org
189S: Orphan
190F: drivers/staging/generic_serial/ser_a2232*
191
192AACRAID SCSI RAID DRIVER187AACRAID SCSI RAID DRIVER
193M: Adaptec OEM Raid Solutions <aacraid@adaptec.com>188M: Adaptec OEM Raid Solutions <aacraid@adaptec.com>
194L: linux-scsi@vger.kernel.org189L: linux-scsi@vger.kernel.org
@@ -347,7 +342,7 @@ S: Supported · 152 unmodified lines
347F: drivers/mfd/adp5520.c342F: drivers/mfd/adp5520.c
348F: drivers/video/backlight/adp5520_bl.c343F: drivers/video/backlight/adp5520_bl.c
349F: drivers/leds/leds-adp5520.c344F: drivers/leds/leds-adp5520.c
350F: drivers/gpio/adp5520-gpio.c345F: drivers/gpio/gpio-adp5520.c
351F: drivers/input/keyboard/adp5520-keys.c346F: drivers/input/keyboard/adp5520-keys.c
352 347
353ADP5588 QWERTY KEYPAD AND IO EXPANDER DRIVER (ADP5588/ADP5587)348ADP5588 QWERTY KEYPAD AND IO EXPANDER DRIVER (ADP5588/ADP5587)
@@ -356,7 +351,7 @@ L: device-drivers-devel@blackfin.uclinux.org · 2 unmodified lines
356W: http://wiki.analog.com/ADP5588351W: http://wiki.analog.com/ADP5588
357S: Supported352S: Supported
358F: drivers/input/keyboard/adp5588-keys.c353F: drivers/input/keyboard/adp5588-keys.c
359F: drivers/gpio/adp5588-gpio.c354F: drivers/gpio/gpio-adp5588.c
360 355
361ADP8860 BACKLIGHT DRIVER (ADP8860/ADP8861/ADP8863)356ADP8860 BACKLIGHT DRIVER (ADP8860/ADP8861/ADP8863)
362M: Michael Hennerich <michael.hennerich@analog.com>357M: Michael Hennerich <michael.hennerich@analog.com>
@@ -542,6 +537,7 @@ F: sound/soc/codecs/adau* · 179 unmodified lines
542F: sound/soc/codecs/adav*537F: sound/soc/codecs/adav*
543F: sound/soc/codecs/ad1*538F: sound/soc/codecs/ad1*
544F: sound/soc/codecs/ssm*539F: sound/soc/codecs/ssm*
540F: sound/soc/codecs/sigmadsp.*
545 541
546ANALOG DEVICES INC ASOC DRIVERS542ANALOG DEVICES INC ASOC DRIVERS
547L: uclinux-dist-devel@blackfin.uclinux.org543L: uclinux-dist-devel@blackfin.uclinux.org
@@ -749,6 +745,7 @@ M: Barry Song <baohua.song@csr.com> · 201 unmodified lines
749L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)745L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
750S: Maintained746S: Maintained
751F: arch/arm/mach-prima2/747F: arch/arm/mach-prima2/
748F: drivers/dma/sirf-dma*
752 749
753ARM/EBSA110 MACHINE SUPPORT750ARM/EBSA110 MACHINE SUPPORT
754M: Russell King <linux@arm.linux.org.uk>751M: Russell King <linux@arm.linux.org.uk>
@@ -919,7 +916,6 @@ M: Lennert Buytenhek <kernel@wantstofly.org> · 164 unmodified lines
919M: Nicolas Pitre <nico@fluxnic.net>916M: Nicolas Pitre <nico@fluxnic.net>
920L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)917L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
921S: Odd Fixes918S: Odd Fixes
922F: arch/arm/mach-loki/
923F: arch/arm/mach-kirkwood/919F: arch/arm/mach-kirkwood/
924F: arch/arm/mach-mv78xx0/920F: arch/arm/mach-mv78xx0/
925F: arch/arm/mach-orion5x/921F: arch/arm/mach-orion5x/
@@ -1081,8 +1077,8 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) · 155 unmodified lines
1081S: Maintained1077S: Maintained
1082F: arch/arm/mach-s5pv210/mach-aquila.c1078F: arch/arm/mach-s5pv210/mach-aquila.c
1083F: arch/arm/mach-s5pv210/mach-goni.c1079F: arch/arm/mach-s5pv210/mach-goni.c
1084F: arch/arm/mach-exynos4/mach-universal_c210.c1080F: arch/arm/mach-exynos/mach-universal_c210.c
1085F: arch/arm/mach-exynos4/mach-nuri.c1081F: arch/arm/mach-exynos/mach-nuri.c
1086 1082
1087ARM/SAMSUNG S5P SERIES FIMC SUPPORT1083ARM/SAMSUNG S5P SERIES FIMC SUPPORT
1088M: Kyungmin Park <kyungmin.park@samsung.com>1084M: Kyungmin Park <kyungmin.park@samsung.com>
@@ -1110,7 +1106,6 @@ M: Tomasz Stanislawski <t.stanislaws@samsung.com> · 21 unmodified lines
1110L: linux-arm-kernel@lists.infradead.org1106L: linux-arm-kernel@lists.infradead.org
1111L: linux-media@vger.kernel.org1107L: linux-media@vger.kernel.org
1112S: Maintained1108S: Maintained
1113F: arch/arm/plat-s5p/dev-tv.c
1114F: drivers/media/video/s5p-tv/1109F: drivers/media/video/s5p-tv/
1115 1110
1116ARM/SHMOBILE ARM ARCHITECTURE1111ARM/SHMOBILE ARM ARCHITECTURE
@@ -1124,13 +1119,6 @@ S: Supported · 7 unmodified lines
1124F: arch/arm/mach-shmobile/1119F: arch/arm/mach-shmobile/
1125F: drivers/sh/1120F: drivers/sh/
1126 1121
1127ARM/TELECHIPS ARM ARCHITECTURE
1128M: "Hans J. Koch" <hjk@hansjkoch.de>
1129L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1130S: Maintained
1131F: arch/arm/plat-tcc/
1132F: arch/arm/mach-tcc8k/
1133
1134ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT1122ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
1135M: Lennert Buytenhek <kernel@wantstofly.org>1123M: Lennert Buytenhek <kernel@wantstofly.org>
1136L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)1124L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@ -1152,14 +1140,13 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) · 15 unmodified lines
1152W: http://www.mcuos.com1140W: http://www.mcuos.com
1153S: Maintained1141S: Maintained
1154F: arch/arm/mach-w90x900/1142F: arch/arm/mach-w90x900/
1155F: arch/arm/mach-nuc93x/
1156F: drivers/input/keyboard/w90p910_keypad.c1143F: drivers/input/keyboard/w90p910_keypad.c
1157F: drivers/input/touchscreen/w90p910_ts.c1144F: drivers/input/touchscreen/w90p910_ts.c
1158F: drivers/watchdog/nuc900_wdt.c1145F: drivers/watchdog/nuc900_wdt.c
1159F: drivers/net/ethernet/nuvoton/w90p910_ether.c1146F: drivers/net/ethernet/nuvoton/w90p910_ether.c
1160F: drivers/mtd/nand/nuc900_nand.c1147F: drivers/mtd/nand/nuc900_nand.c
1161F: drivers/rtc/rtc-nuc900.c1148F: drivers/rtc/rtc-nuc900.c
1162F: drivers/spi/spi_nuc900.c1149F: drivers/spi/spi-nuc900.c
1163F: drivers/usb/host/ehci-w90x900.c1150F: drivers/usb/host/ehci-w90x900.c
1164F: drivers/video/nuc900fb.c1151F: drivers/video/nuc900fb.c
1165 1152
@@ -1184,7 +1171,6 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) · 18 unmodified lines
1184S: Maintained1171S: Maintained
1185F: arch/arm/mach-ux500/1172F: arch/arm/mach-ux500/
1186F: drivers/dma/ste_dma40*1173F: drivers/dma/ste_dma40*
1187F: drivers/mfd/ab3550*
1188F: drivers/mfd/abx500*1174F: drivers/mfd/abx500*
1189F: drivers/mfd/ab8500*1175F: drivers/mfd/ab8500*
1190F: drivers/mfd/stmpe*1176F: drivers/mfd/stmpe*
@@ -1364,7 +1350,7 @@ F: drivers/net/ethernet/cadence/ · 173 unmodified lines
1364ATMEL SPI DRIVER1350ATMEL SPI DRIVER
1365M: Nicolas Ferre <nicolas.ferre@atmel.com>1351M: Nicolas Ferre <nicolas.ferre@atmel.com>
1366S: Supported1352S: Supported
1367F: drivers/spi/atmel_spi.*1353F: drivers/spi/spi-atmel.*
1368 1354
1369ATMEL USBA UDC DRIVER1355ATMEL USBA UDC DRIVER
1370M: Nicolas Ferre <nicolas.ferre@atmel.com>1356M: Nicolas Ferre <nicolas.ferre@atmel.com>
@@ -1426,6 +1412,7 @@ F: net/ax25/ · 55 unmodified lines
1426B43 WIRELESS DRIVER1412B43 WIRELESS DRIVER
1427M: Stefano Brivio <stefano.brivio@polimi.it>1413M: Stefano Brivio <stefano.brivio@polimi.it>
1428L: linux-wireless@vger.kernel.org1414L: linux-wireless@vger.kernel.org
1415L: b43-dev@lists.infradead.org (moderated for non-subscribers)
1429W: http://linuxwireless.org/en/users/Drivers/b431416W: http://linuxwireless.org/en/users/Drivers/b43
1430S: Maintained1417S: Maintained
1431F: drivers/net/wireless/b43/1418F: drivers/net/wireless/b43/
@@ -1503,7 +1490,7 @@ M: Sonic Zhang <sonic.zhang@analog.com> · 71 unmodified lines
1503L: uclinux-dist-devel@blackfin.uclinux.org1490L: uclinux-dist-devel@blackfin.uclinux.org
1504W: http://blackfin.uclinux.org1491W: http://blackfin.uclinux.org
1505S: Supported1492S: Supported
1506F: drivers/tty/serial/bfin_5xx.c1493F: drivers/tty/serial/bfin_uart.c
1507 1494
1508BLACKFIN WATCHDOG DRIVER1495BLACKFIN WATCHDOG DRIVER
1509M: Mike Frysinger <vapier.adi@gmail.com>1496M: Mike Frysinger <vapier.adi@gmail.com>
@@ -1594,7 +1581,7 @@ M: Franky (Zhenhui) Lin <frankyl@broadcom.com> · 84 unmodified lines
1594M: Kan Yan <kanyan@broadcom.com>1581M: Kan Yan <kanyan@broadcom.com>
1595L: linux-wireless@vger.kernel.org1582L: linux-wireless@vger.kernel.org
1596S: Supported1583S: Supported
1597F: drivers/staging/brcm80211/1584F: drivers/net/wireless/brcm80211/
1598 1585
1599BROADCOM BNX2FC 10 GIGABIT FCOE DRIVER1586BROADCOM BNX2FC 10 GIGABIT FCOE DRIVER
1600M: Bhanu Prakash Gollapudi <bprakash@broadcom.com>1587M: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
@@ -1602,6 +1589,13 @@ L: linux-scsi@vger.kernel.org · 1 unmodified line
1602S: Supported1589S: Supported
1603F: drivers/scsi/bnx2fc/1590F: drivers/scsi/bnx2fc/
1604 1591
1592BROADCOM SPECIFIC AMBA DRIVER (BCMA)
1593M: Rafał Miłecki <zajec5@gmail.com>
1594L: linux-wireless@vger.kernel.org
1595S: Maintained
1596F: drivers/bcma/
1597F: include/linux/bcma/
1598
1605BROCADE BFA FC SCSI DRIVER1599BROCADE BFA FC SCSI DRIVER
1606M: Jing Huang <huangj@brocade.com>1600M: Jing Huang <huangj@brocade.com>
1607L: linux-scsi@vger.kernel.org1601L: linux-scsi@vger.kernel.org
@@ -1633,7 +1627,7 @@ BT8XXGPIO DRIVER · 25 unmodified lines
1633M: Michael Buesch <m@bues.ch>1627M: Michael Buesch <m@bues.ch>
1634W: http://bu3sch.de/btgpio.php1628W: http://bu3sch.de/btgpio.php
1635S: Maintained1629S: Maintained
1636F: drivers/gpio/bt8xxgpio.c1630F: drivers/gpio/gpio-bt8xx.c
1637 1631
1638BTRFS FILE SYSTEM1632BTRFS FILE SYSTEM
1639M: Chris Mason <chris.mason@oracle.com>1633M: Chris Mason <chris.mason@oracle.com>
@@ -1661,6 +1655,14 @@ T: git git://git.alsa-project.org/alsa-kernel.git · 21 unmodified lines
1661S: Maintained1655S: Maintained
1662F: sound/pci/oxygen/1656F: sound/pci/oxygen/
1663 1657
1658C6X ARCHITECTURE
1659M: Mark Salter <msalter@redhat.com>
1660M: Aurelien Jacquiot <a-jacquiot@ti.com>
1661L: linux-c6x-dev@linux-c6x.org
1662W: http://www.linux-c6x.org/wiki/index.php/Main_Page
1663S: Maintained
1664F: arch/c6x/
1665
1664CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS1666CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
1665M: David Howells <dhowells@redhat.com>1667M: David Howells <dhowells@redhat.com>
1666L: linux-cachefs@redhat.com1668L: linux-cachefs@redhat.com
@@ -1674,7 +1676,7 @@ L: linux-media@vger.kernel.org · 7 unmodified lines
1674T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git1676T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
1675S: Maintained1677S: Maintained
1676F: Documentation/video4linux/cafe_ccic1678F: Documentation/video4linux/cafe_ccic
1677F: drivers/media/video/cafe_ccic*1679F: drivers/media/video/marvell-ccic/
1678 1680
1679CAIF NETWORK LAYER1681CAIF NETWORK LAYER
1680M: Sjur Braendeland <sjur.brandeland@stericsson.com>1682M: Sjur Braendeland <sjur.brandeland@stericsson.com>
@@ -1898,12 +1900,6 @@ L: platform-driver-x86@vger.kernel.org · 217 unmodified lines
1898S: Maintained1900S: Maintained
1899F: drivers/platform/x86/compal-laptop.c1901F: drivers/platform/x86/compal-laptop.c
1900 1902
1901COMPUTONE INTELLIPORT MULTIPORT CARD
1902W: http://www.wittsend.com/computone.html
1903S: Orphan
1904F: Documentation/serial/computone.txt
1905F: drivers/staging/tty/ip2/
1906
1907CONEXANT ACCESSRUNNER USB DRIVER1903CONEXANT ACCESSRUNNER USB DRIVER
1908M: Simon Arlott <cxacru@fire.lp0.eu>1904M: Simon Arlott <cxacru@fire.lp0.eu>
1909L: accessrunner-general@lists.sourceforge.net1905L: accessrunner-general@lists.sourceforge.net
@@ -2118,7 +2114,7 @@ DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER · 208 unmodified lines
2118L: netdev@vger.kernel.org2114L: netdev@vger.kernel.org
2119S: Orphan2115S: Orphan
2120F: Documentation/networking/dmfe.txt2116F: Documentation/networking/dmfe.txt
2121F: drivers/net/ethernet/tulip/dmfe.c2117F: drivers/net/ethernet/dec/tulip/dmfe.c
2122 2118
2123DC390/AM53C974 SCSI driver2119DC390/AM53C974 SCSI driver
2124M: Kurt Garloff <garloff@suse.de>2120M: Kurt Garloff <garloff@suse.de>
@@ -2191,6 +2187,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git · 66 unmodified lines
2191S: Maintained2187S: Maintained
2192F: drivers/usb/dwc3/2188F: drivers/usb/dwc3/
2193 2189
2190DEVICE FREQUENCY (DEVFREQ)
2191M: MyungJoo Ham <myungjoo.ham@samsung.com>
2192M: Kyungmin Park <kyungmin.park@samsung.com>
2193L: linux-kernel@vger.kernel.org
2194S: Maintained
2195F: drivers/devfreq/
2196
2194DEVICE NUMBER REGISTRY2197DEVICE NUMBER REGISTRY
2195M: Torben Mathiasen <device@lanana.org>2198M: Torben Mathiasen <device@lanana.org>
2196W: http://lanana.org/docs/device-list/index.html2199W: http://lanana.org/docs/device-list/index.html
@@ -2207,15 +2210,6 @@ F: drivers/md/dm* · 10 unmodified lines
2207F: include/linux/device-mapper.h2210F: include/linux/device-mapper.h
2208F: include/linux/dm-*.h2211F: include/linux/dm-*.h
2209 2212
2210DIGI INTL. EPCA DRIVER
2211M: "Digi International, Inc" <Eng.Linux@digi.com>
2212L: Eng.Linux@digi.com
2213W: http://www.digi.com
2214S: Orphan
2215F: Documentation/serial/digiepca.txt
2216F: drivers/staging/tty/epca*
2217F: drivers/staging/tty/digi*
2218
2219DIOLAN U2C-12 I2C DRIVER2213DIOLAN U2C-12 I2C DRIVER
2220M: Guenter Roeck <guenter.roeck@ericsson.com>2214M: Guenter Roeck <guenter.roeck@ericsson.com>
2221L: linux-i2c@vger.kernel.org2215L: linux-i2c@vger.kernel.org
@@ -2836,6 +2830,14 @@ L: platform-driver-x86@vger.kernel.org · 614 unmodified lines
2836S: Maintained2830S: Maintained
2837F: drivers/platform/x86/fujitsu-laptop.c2831F: drivers/platform/x86/fujitsu-laptop.c
2838 2832
2833FUJITSU M-5MO LS CAMERA ISP DRIVER
2834M: Kyungmin Park <kyungmin.park@samsung.com>
2835M: Heungjun Kim <riverful.kim@samsung.com>
2836L: linux-media@vger.kernel.org
2837S: Maintained
2838F: drivers/media/video/m5mols/
2839F: include/media/m5mols.h
2840
2839FUSE: FILESYSTEM IN USERSPACE2841FUSE: FILESYSTEM IN USERSPACE
2840M: Miklos Szeredi <miklos@szeredi.hu>2842M: Miklos Szeredi <miklos@szeredi.hu>
2841L: fuse-devel@lists.sourceforge.net2843L: fuse-devel@lists.sourceforge.net
@@ -2919,6 +2921,7 @@ F: include/linux/gigaset_dev.h · 77 unmodified lines
2919 2921
2920GPIO SUBSYSTEM2922GPIO SUBSYSTEM
2921M: Grant Likely <grant.likely@secretlab.ca>2923M: Grant Likely <grant.likely@secretlab.ca>
2924M: Linus Walleij <linus.walleij@stericsson.com>
2922S: Maintained2925S: Maintained
2923T: git git://git.secretlab.ca/git/linux-2.6.git2926T: git git://git.secretlab.ca/git/linux-2.6.git
2924F: Documentation/gpio.txt2927F: Documentation/gpio.txt
@@ -2936,7 +2939,7 @@ GRETH 10/100/1G Ethernet MAC device driver · 11 unmodified lines
2936M: Kristoffer Glembo <kristoffer@gaisler.com>2939M: Kristoffer Glembo <kristoffer@gaisler.com>
2937L: netdev@vger.kernel.org2940L: netdev@vger.kernel.org
2938S: Maintained2941S: Maintained
2939F: drivers/net/greth*2942F: drivers/net/ethernet/aeroflex/
2940 2943
2941GSPCA FINEPIX SUBDRIVER2944GSPCA FINEPIX SUBDRIVER
2942M: Frank Zago <frank@zago.net>2945M: Frank Zago <frank@zago.net>
@@ -3188,6 +3191,16 @@ M: William Irwin <wli@holomorphy.com> · 245 unmodified lines
3188S: Maintained3191S: Maintained
3189F: fs/hugetlbfs/3192F: fs/hugetlbfs/
3190 3193
3194Hyper-V CORE AND DRIVERS
3195M: K. Y. Srinivasan <kys@microsoft.com>
3196M: Haiyang Zhang <haiyangz@microsoft.com>
3197L: devel@linuxdriverproject.org
3198S: Maintained
3199F: drivers/hv/
3200F: drivers/hid/hid-hyperv.c
3201F: drivers/net/hyperv/
3202F: drivers/staging/hv/
3203
3191I2C/SMBUS STUB DRIVER3204I2C/SMBUS STUB DRIVER
3192M: "Mark M. Hoffman" <mhoffman@lightlink.com>3205M: "Mark M. Hoffman" <mhoffman@lightlink.com>
3193L: linux-i2c@vger.kernel.org3206L: linux-i2c@vger.kernel.org
@@ -3197,6 +3210,7 @@ F: drivers/i2c/busses/i2c-stub.c · 3 unmodified lines
3197I2C SUBSYSTEM3210I2C SUBSYSTEM
3198M: "Jean Delvare (PC drivers, core)" <khali@linux-fr.org>3211M: "Jean Delvare (PC drivers, core)" <khali@linux-fr.org>
3199M: "Ben Dooks (embedded platforms)" <ben-linux@fluff.org>3212M: "Ben Dooks (embedded platforms)" <ben-linux@fluff.org>
3213M: "Wolfram Sang (embedded platforms)" <w.sang@pengutronix.de>
3200L: linux-i2c@vger.kernel.org3214L: linux-i2c@vger.kernel.org
3201W: http://i2c.wiki.kernel.org/3215W: http://i2c.wiki.kernel.org/
3202T: quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/3216T: quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/
@@ -3583,8 +3597,7 @@ F: net/netfilter/ipvs/ · 380 unmodified lines
3583IPWIRELESS DRIVER3597IPWIRELESS DRIVER
3584M: Jiri Kosina <jkosina@suse.cz>3598M: Jiri Kosina <jkosina@suse.cz>
3585M: David Sterba <dsterba@suse.cz>3599M: David Sterba <dsterba@suse.cz>
3586S: Maintained3600S: Odd Fixes
3587T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/ipwireless_cs.git
3588F: drivers/tty/ipwireless/3601F: drivers/tty/ipwireless/
3589 3602
3590IPX NETWORK LAYER3603IPX NETWORK LAYER
@@ -3779,7 +3792,6 @@ S: Odd Fixes · 188 unmodified lines
3779 3792
3780KERNEL NFSD, SUNRPC, AND LOCKD SERVERS3793KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
3781M: "J. Bruce Fields" <bfields@fieldses.org>3794M: "J. Bruce Fields" <bfields@fieldses.org>
3782M: Neil Brown <neilb@suse.de>
3783L: linux-nfs@vger.kernel.org3795L: linux-nfs@vger.kernel.org
3784W: http://nfs.sourceforge.net/3796W: http://nfs.sourceforge.net/
3785S: Supported3797S: Supported
@@ -3877,8 +3889,7 @@ L: keyrings@linux-nfs.org · 91 unmodified lines
3877S: Supported3889S: Supported
3878F: Documentation/security/keys-trusted-encrypted.txt3890F: Documentation/security/keys-trusted-encrypted.txt
3879F: include/keys/encrypted-type.h3891F: include/keys/encrypted-type.h
3880F: security/keys/encrypted.c3892F: security/keys/encrypted-keys/
3881F: security/keys/encrypted.h
3882 3893
3883KGDB / KDB /debug_core3894KGDB / KDB /debug_core
3884M: Jason Wessel <jason.wessel@windriver.com>3895M: Jason Wessel <jason.wessel@windriver.com>
@@ -4011,7 +4022,7 @@ M: Josh Boyer <jwboyer@gmail.com> · 126 unmodified lines
4011M: Matt Porter <mporter@kernel.crashing.org>4022M: Matt Porter <mporter@kernel.crashing.org>
4012W: http://www.penguinppc.org/4023W: http://www.penguinppc.org/
4013L: linuxppc-dev@lists.ozlabs.org4024L: linuxppc-dev@lists.ozlabs.org
4014T: git git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git4025T: git git://git.infradead.org/users/jwboyer/powerpc-4xx.git
4015S: Maintained4026S: Maintained
4016F: arch/powerpc/platforms/40x/4027F: arch/powerpc/platforms/40x/
4017F: arch/powerpc/platforms/44x/4028F: arch/powerpc/platforms/44x/
@@ -4689,6 +4700,8 @@ Q: http://patchwork.kernel.org/project/linux-omap/list/ · 671 unmodified lines
4689T: git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git4700T: git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
4690S: Maintained4701S: Maintained
4691F: arch/arm/*omap*/4702F: arch/arm/*omap*/
4703F: drivers/i2c/busses/i2c-omap.c
4704F: include/linux/i2c-omap.h
4692 4705
4693OMAP CLOCK FRAMEWORK SUPPORT4706OMAP CLOCK FRAMEWORK SUPPORT
4694M: Paul Walmsley <paul@pwsan.com>4707M: Paul Walmsley <paul@pwsan.com>
@@ -4854,6 +4867,14 @@ S: Maintained · 159 unmodified lines
4854T: git git://openrisc.net/~jonas/linux4867T: git git://openrisc.net/~jonas/linux
4855F: arch/openrisc4868F: arch/openrisc
4856 4869
4870OPENVSWITCH
4871M: Jesse Gross <jesse@nicira.com>
4872L: dev@openvswitch.org
4873W: http://openvswitch.org
4874T: git git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch.git
4875S: Maintained
4876F: net/openvswitch/
4877
4857OPL4 DRIVER4878OPL4 DRIVER
4858M: Clemens Ladisch <clemens@ladisch.de>4879M: Clemens Ladisch <clemens@ladisch.de>
4859L: alsa-devel@alsa-project.org (moderated for non-subscribers)4880L: alsa-devel@alsa-project.org (moderated for non-subscribers)
@@ -5120,10 +5141,19 @@ L: linux-mtd@lists.infradead.org · 260 unmodified lines
5120S: Maintained5141S: Maintained
5121F: drivers/mtd/devices/phram.c5142F: drivers/mtd/devices/phram.c
5122 5143
5144PICOXCELL SUPPORT
5145M: Jamie Iles <jamie@jamieiles.com>
5146L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
5147T: git git://github.com/jamieiles/linux-2.6-ji.git
5148S: Supported
5149F: arch/arm/mach-picoxcell
5150F: drivers/*/picoxcell*
5151F: drivers/*/*/picoxcell*
5152
5123PIN CONTROL SUBSYSTEM5153PIN CONTROL SUBSYSTEM
5124M: Linus Walleij <linus.walleij@linaro.org>5154M: Linus Walleij <linus.walleij@linaro.org>
5125S: Maintained5155S: Maintained
5126F: drivers/pinmux/5156F: drivers/pinctrl/
5127 5157
5128PKTCDVD DRIVER5158PKTCDVD DRIVER
5129M: Peter Osterlund <petero2@telia.com>5159M: Peter Osterlund <petero2@telia.com>
@@ -5306,35 +5336,27 @@ F: drivers/media/video/pvrusb2/ · 176 unmodified lines
5306PXA2xx/PXA3xx SUPPORT5336PXA2xx/PXA3xx SUPPORT
5307M: Eric Miao <eric.y.miao@gmail.com>5337M: Eric Miao <eric.y.miao@gmail.com>
5308M: Russell King <linux@arm.linux.org.uk>5338M: Russell King <linux@arm.linux.org.uk>
5339M: Haojian Zhuang <haojian.zhuang@marvell.com>
5309L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)5340L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
5341T: git git://github.com/hzhuang1/linux.git
5342T: git git://git.linaro.org/people/ycmiao/pxa-linux.git
5310S: Maintained5343S: Maintained
5311F: arch/arm/mach-pxa/5344F: arch/arm/mach-pxa/
5312F: drivers/pcmcia/pxa2xx*5345F: drivers/pcmcia/pxa2xx*
5313F: drivers/spi/pxa2xx*5346F: drivers/spi/spi-pxa2xx*
5314F: drivers/usb/gadget/pxa2*5347F: drivers/usb/gadget/pxa2*
5315F: include/sound/pxa2xx-lib.h5348F: include/sound/pxa2xx-lib.h
5316F: sound/arm/pxa*5349F: sound/arm/pxa*
5317F: sound/soc/pxa5350F: sound/soc/pxa
5318 5351
5319PXA168 SUPPORT5352MMP SUPPORT
5320M: Eric Miao <eric.y.miao@gmail.com>
5321M: Jason Chagas <jason.chagas@marvell.com>
5322L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
5323T: git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
5324S: Maintained
5325
5326PXA910 SUPPORT
5327M: Eric Miao <eric.y.miao@gmail.com>5353M: Eric Miao <eric.y.miao@gmail.com>
5328L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
5329T: git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
5330S: Maintained
5331
5332MMP2 SUPPORT (aka ARMADA610)
5333M: Haojian Zhuang <haojian.zhuang@marvell.com>5354M: Haojian Zhuang <haojian.zhuang@marvell.com>
5334M: Eric Miao <eric.y.miao@gmail.com>
5335L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)5355L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
5336T: git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git5356T: git git://github.com/hzhuang1/linux.git
5357T: git git://git.linaro.org/people/ycmiao/pxa-linux.git
5337S: Maintained5358S: Maintained
5359F: arch/arm/mach-mmp/
5338 5360
5339PXA MMCI DRIVER5361PXA MMCI DRIVER
5340S: Orphan5362S: Orphan
@@ -5373,6 +5395,7 @@ S: Supported · 32 unmodified lines
5373F: drivers/scsi/qla4xxx/5395F: drivers/scsi/qla4xxx/
5374 5396
5375QLOGIC QLA3XXX NETWORK DRIVER5397QLOGIC QLA3XXX NETWORK DRIVER
5398M: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
5376M: Ron Mercer <ron.mercer@qlogic.com>5399M: Ron Mercer <ron.mercer@qlogic.com>
5377M: linux-driver@qlogic.com5400M: linux-driver@qlogic.com
5378L: netdev@vger.kernel.org5401L: netdev@vger.kernel.org
@@ -5543,11 +5566,6 @@ M: Maxim Levitsky <maximlevitsky@gmail.com> · 164 unmodified lines
5543S: Maintained5566S: Maintained
5544F: drivers/memstick/host/r592.*5567F: drivers/memstick/host/r592.*
5545 5568
5546RISCOM8 DRIVER
5547S: Orphan
5548F: Documentation/serial/riscom8.txt
5549F: drivers/staging/tty/riscom8*
5550
5551ROCKETPORT DRIVER5569ROCKETPORT DRIVER
5552P: Comtrol Corp.5570P: Comtrol Corp.
5553W: http://www.comtrol.com5571W: http://www.comtrol.com
@@ -5668,6 +5686,12 @@ L: alsa-devel@alsa-project.org (moderated for non-subscribers) · 114 unmodified lines
5668S: Supported5686S: Supported
5669F: sound/soc/samsung5687F: sound/soc/samsung
5670 5688
5689SAMSUNG FRAMEBUFFER DRIVER
5690M: Jingoo Han <jg1.han@samsung.com>
5691L: linux-fbdev@vger.kernel.org
5692S: Maintained
5693F: drivers/video/s3c-fb.c
5694
5671SERIAL DRIVERS5695SERIAL DRIVERS
5672M: Alan Cox <alan@linux.intel.com>5696M: Alan Cox <alan@linux.intel.com>
5673L: linux-serial@vger.kernel.org5697L: linux-serial@vger.kernel.org
@@ -5807,13 +5831,14 @@ L: linux-mmc@vger.kernel.org · 133 unmodified lines
5807T: git git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git5831T: git git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
5808S: Maintained5832S: Maintained
5809F: drivers/mmc/host/sdhci.*5833F: drivers/mmc/host/sdhci.*
5834F: drivers/mmc/host/sdhci-pltfm.[ch]
5810 5835
5811SECURE DIGITAL HOST CONTROLLER INTERFACE, OPEN FIRMWARE BINDINGS (SDHCI-OF)5836SECURE DIGITAL HOST CONTROLLER INTERFACE, OPEN FIRMWARE BINDINGS (SDHCI-OF)
5812M: Anton Vorontsov <avorontsov@ru.mvista.com>5837M: Anton Vorontsov <avorontsov@ru.mvista.com>
5813L: linuxppc-dev@lists.ozlabs.org5838L: linuxppc-dev@lists.ozlabs.org
5814L: linux-mmc@vger.kernel.org5839L: linux-mmc@vger.kernel.org
5815S: Maintained5840S: Maintained
5816F: drivers/mmc/host/sdhci-of.*5841F: drivers/mmc/host/sdhci-pltfm.[ch]
5817 5842
5818SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) SAMSUNG DRIVER5843SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) SAMSUNG DRIVER
5819M: Ben Dooks <ben-linux@fluff.org>5844M: Ben Dooks <ben-linux@fluff.org>
@@ -5830,7 +5855,7 @@ F: drivers/mmc/host/sdhci-spear.c · 10 unmodified lines
5830SECURITY SUBSYSTEM5855SECURITY SUBSYSTEM
5831M: James Morris <jmorris@namei.org>5856M: James Morris <jmorris@namei.org>
5832L: linux-security-module@vger.kernel.org (suggested Cc:)5857L: linux-security-module@vger.kernel.org (suggested Cc:)
5833T: git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git5858T: git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git
5834W: http://security.wiki.kernel.org/5859W: http://security.wiki.kernel.org/
5835S: Supported5860S: Supported
5836F: security/5861F: security/
@@ -5892,7 +5917,6 @@ F: drivers/net/ethernet/emulex/benet/ · 55 unmodified lines
5892 5917
5893SFC NETWORK DRIVER5918SFC NETWORK DRIVER
5894M: Solarflare linux maintainers <linux-net-drivers@solarflare.com>5919M: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
5895M: Steve Hodgson <shodgson@solarflare.com>
5896M: Ben Hutchings <bhutchings@solarflare.com>5920M: Ben Hutchings <bhutchings@solarflare.com>
5897L: netdev@vger.kernel.org5921L: netdev@vger.kernel.org
5898S: Supported5922S: Supported
@@ -5957,6 +5981,7 @@ L: davinci-linux-open-source@linux.davincidsp.com (subscribers-only) · 58 unmodified lines
5957Q: http://patchwork.kernel.org/project/linux-davinci/list/5981Q: http://patchwork.kernel.org/project/linux-davinci/list/
5958S: Supported5982S: Supported
5959F: arch/arm/mach-davinci5983F: arch/arm/mach-davinci
5984F: drivers/i2c/busses/i2c-davinci.c
5960 5985
5961SIS 190 ETHERNET DRIVER5986SIS 190 ETHERNET DRIVER
5962M: Francois Romieu <romieu@fr.zoreil.com>5987M: Francois Romieu <romieu@fr.zoreil.com>
@@ -6100,13 +6125,6 @@ S: Maintained · 137 unmodified lines
6100F: drivers/ssb/6125F: drivers/ssb/
6101F: include/linux/ssb/6126F: include/linux/ssb/
6102 6127
6103BROADCOM SPECIFIC AMBA DRIVER (BCMA)
6104M: Rafał Miłecki <zajec5@gmail.com>
6105L: linux-wireless@vger.kernel.org
6106S: Maintained
6107F: drivers/bcma/
6108F: include/linux/bcma/
6109
6110SONY VAIO CONTROL DEVICE DRIVER6128SONY VAIO CONTROL DEVICE DRIVER
6111M: Mattia Dongili <malattia@linux.it>6129M: Mattia Dongili <malattia@linux.it>
6112L: platform-driver-x86@vger.kernel.org6130L: platform-driver-x86@vger.kernel.org
@@ -6193,9 +6211,7 @@ M: Viresh Kumar <viresh.kumar@st.com> · 80 unmodified lines
6193W: http://www.st.com/spear6211W: http://www.st.com/spear
6194S: Maintained6212S: Maintained
6195F: arch/arm/mach-spear*/clock.c6213F: arch/arm/mach-spear*/clock.c
6196F: arch/arm/mach-spear*/include/mach/clkdev.h
6197F: arch/arm/plat-spear/clock.c6214F: arch/arm/plat-spear/clock.c
6198F: arch/arm/plat-spear/include/plat/clkdev.h
6199F: arch/arm/plat-spear/include/plat/clock.h6215F: arch/arm/plat-spear/include/plat/clock.h
6200 6216
6201SPEAR PAD MULTIPLEXING SUPPORT6217SPEAR PAD MULTIPLEXING SUPPORT
@@ -6211,11 +6227,6 @@ F: arch/arm/mach-spear3xx/spear3*0_evb.c · 9 unmodified lines
6211F: arch/arm/mach-spear6xx/spear600.c6227F: arch/arm/mach-spear6xx/spear600.c
6212F: arch/arm/mach-spear6xx/spear600_evb.c6228F: arch/arm/mach-spear6xx/spear600_evb.c
6213 6229
6214SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
6215S: Orphan
6216F: Documentation/serial/specialix.txt
6217F: drivers/staging/tty/specialix*
6218
6219SPI SUBSYSTEM6230SPI SUBSYSTEM
6220M: Grant Likely <grant.likely@secretlab.ca>6231M: Grant Likely <grant.likely@secretlab.ca>
6221L: spi-devel-general@lists.sourceforge.net6232L: spi-devel-general@lists.sourceforge.net
@@ -6258,7 +6269,7 @@ F: arch/alpha/kernel/srm_env.c · 36 unmodified lines
6258 6269
6259STABLE BRANCH6270STABLE BRANCH
6260M: Greg Kroah-Hartman <greg@kroah.com>6271M: Greg Kroah-Hartman <greg@kroah.com>
6261L: stable@kernel.org6272L: stable@vger.kernel.org
6262S: Maintained6273S: Maintained
6263 6274
6264STAGING SUBSYSTEM6275STAGING SUBSYSTEM
@@ -6293,11 +6304,6 @@ M: Manu Abraham <abraham.manu@gmail.com> · 28 unmodified lines
6293S: Odd Fixes6304S: Odd Fixes
6294F: drivers/staging/crystalhd/6305F: drivers/staging/crystalhd/
6295 6306
6296STAGING - CYPRESS WESTBRIDGE SUPPORT
6297M: David Cross <david.cross@cypress.com>
6298S: Odd Fixes
6299F: drivers/staging/westbridge/
6300
6301STAGING - ECHO CANCELLER6307STAGING - ECHO CANCELLER
6302M: Steve Underwood <steveu@coppice.org>6308M: Steve Underwood <steveu@coppice.org>
6303M: David Rowe <david@rowetel.com>6309M: David Rowe <david@rowetel.com>
@@ -6319,12 +6325,6 @@ M: David Täht <d@teklibre.com> · 15 unmodified lines
6319S: Odd Fixes6325S: Odd Fixes
6320F: drivers/staging/frontier/6326F: drivers/staging/frontier/
6321 6327
6322STAGING - HYPER-V (MICROSOFT)
6323M: Hank Janssen <hjanssen@microsoft.com>
6324M: Haiyang Zhang <haiyangz@microsoft.com>
6325S: Odd Fixes
6326F: drivers/staging/hv/
6327
6328STAGING - INDUSTRIAL IO6328STAGING - INDUSTRIAL IO
6329M: Jonathan Cameron <jic23@cam.ac.uk>6329M: Jonathan Cameron <jic23@cam.ac.uk>
6330L: linux-iio@vger.kernel.org6330L: linux-iio@vger.kernel.org
@@ -6335,7 +6335,7 @@ STAGING - LIRC (LINUX INFRARED REMOTE CONTROL) DRIVERS · 4 unmodified lines
6335M: Jarod Wilson <jarod@wilsonet.com>6335M: Jarod Wilson <jarod@wilsonet.com>
6336W: http://www.lirc.org/6336W: http://www.lirc.org/
6337S: Odd Fixes6337S: Odd Fixes
6338F: drivers/staging/lirc/6338F: drivers/staging/media/lirc/
6339 6339
6340STAGING - NVIDIA COMPLIANT EMBEDDED CONTROLLER INTERFACE (nvec)6340STAGING - NVIDIA COMPLIANT EMBEDDED CONTROLLER INTERFACE (nvec)
6341M: Julian Andres Klode <jak@jak-linux.org>6341M: Julian Andres Klode <jak@jak-linux.org>
@@ -6371,7 +6371,7 @@ F: drivers/staging/sm7xx/ · 29 unmodified lines
6371STAGING - SOFTLOGIC 6x10 MPEG CODEC6371STAGING - SOFTLOGIC 6x10 MPEG CODEC
6372M: Ben Collins <bcollins@bluecherry.net>6372M: Ben Collins <bcollins@bluecherry.net>
6373S: Odd Fixes6373S: Odd Fixes
6374F: drivers/staging/solo6x10/6374F: drivers/staging/media/solo6x10/
6375 6375
6376STAGING - SPEAKUP CONSOLE SPEECH DRIVER6376STAGING - SPEAKUP CONSOLE SPEECH DRIVER
6377M: William Hubbs <w.d.hubbs@gmail.com>6377M: William Hubbs <w.d.hubbs@gmail.com>
@@ -6409,7 +6409,7 @@ S: Odd Fixes · 31 unmodified lines
6409F: drivers/staging/winbond/6409F: drivers/staging/winbond/
6410 6410
6411STAGING - XGI Z7,Z9,Z11 PCI DISPLAY DRIVER6411STAGING - XGI Z7,Z9,Z11 PCI DISPLAY DRIVER
6412M: Arnaud Patard <apatard@mandriva.com>6412M: Arnaud Patard <arnaud.patard@rtp-net.org>
6413S: Odd Fixes6413S: Odd Fixes
6414F: drivers/staging/xgifb/6414F: drivers/staging/xgifb/
6415 6415
@@ -6500,6 +6500,13 @@ W: http://tcp-lp-mod.sourceforge.net/ · 84 unmodified lines
6500S: Maintained6500S: Maintained
6501F: net/ipv4/tcp_lp.c6501F: net/ipv4/tcp_lp.c
6502 6502
6503TEAM DRIVER
6504M: Jiri Pirko <jpirko@redhat.com>
6505L: netdev@vger.kernel.org
6506S: Supported
6507F: drivers/net/team/
6508F: include/linux/if_team.h
6509
6503TEGRA SUPPORT6510TEGRA SUPPORT
6504M: Colin Cross <ccross@android.com>6511M: Colin Cross <ccross@android.com>
6505M: Olof Johansson <olof@lixom.net>6512M: Olof Johansson <olof@lixom.net>
@@ -6667,7 +6674,7 @@ TULIP NETWORK DRIVERS · 161 unmodified lines
6667M: Grant Grundler <grundler@parisc-linux.org>6674M: Grant Grundler <grundler@parisc-linux.org>
6668L: netdev@vger.kernel.org6675L: netdev@vger.kernel.org
6669S: Maintained6676S: Maintained
6670F: drivers/net/ethernet/tulip/6677F: drivers/net/ethernet/dec/tulip/
6671 6678
6672TUN/TAP driver6679TUN/TAP driver
6673M: Maxim Krasnyansky <maxk@qualcomm.com>6680M: Maxim Krasnyansky <maxk@qualcomm.com>
@@ -7193,7 +7200,7 @@ S: Maintained · 519 unmodified lines
7193F: drivers/net/vmxnet3/7200F: drivers/net/vmxnet3/
7194 7201
7195VMware PVSCSI driver7202VMware PVSCSI driver
7196M: Alok Kataria <akataria@vmware.com>7203M: Arvind Kumar <arvindkumar@vmware.com>
7197M: VMware PV-Drivers <pv-drivers@vmware.com>7204M: VMware PV-Drivers <pv-drivers@vmware.com>
7198L: linux-scsi@vger.kernel.org7205L: linux-scsi@vger.kernel.org
7199S: Maintained7206S: Maintained
Makefile+7−4
@@ -312,7 +312,7 @@ endif · 311 unmodified lines
312# If the user is running make -s (silent mode), suppress echoing of312# If the user is running make -s (silent mode), suppress echoing of
313# commands313# commands
314 314
315ifneq ($(findstring s,$(MAKEFLAGS)),)315ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
316 quiet=silent_316 quiet=silent_
317endif317endif
318 318
@@ -442,7 +442,7 @@ asm-generic: · 123 unmodified lines
442 442
443no-dot-config-targets := clean mrproper distclean \443no-dot-config-targets := clean mrproper distclean \
444 cscope gtags TAGS tags help %docs check% coccicheck \444 cscope gtags TAGS tags help %docs check% coccicheck \
445 include/linux/version.h headers_% \445 include/linux/version.h headers_% archheaders \
446 kernelversion %src-pkg446 kernelversion %src-pkg
447 447
448config-targets := 0448config-targets := 0
@@ -979,7 +979,7 @@ prepare1: prepare2 include/linux/version.h include/generated/utsrelease.h \ · 530 unmodified lines
979 include/config/auto.conf979 include/config/auto.conf
980 $(cmd_crmodverdir)980 $(cmd_crmodverdir)
981 981
982archprepare: prepare1 scripts_basic982archprepare: archheaders prepare1 scripts_basic
983 983
984prepare0: archprepare FORCE984prepare0: archprepare FORCE
985 $(Q)$(MAKE) $(build)=.985 $(Q)$(MAKE) $(build)=.
@@ -1046,8 +1046,11 @@ hdr-inst := -rR -f $(srctree)/scripts/Makefile.headersinst obj · 60 unmodified lines
1046# If we do an all arch process set dst to asm-$(hdr-arch)1046# If we do an all arch process set dst to asm-$(hdr-arch)
1047hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm)1047hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm)
1048 1048
1049PHONY += archheaders
1050archheaders:
1051
1049PHONY += __headers1052PHONY += __headers
1050__headers: include/linux/version.h scripts_basic asm-generic FORCE1053__headers: include/linux/version.h scripts_basic asm-generic archheaders FORCE
1051 $(Q)$(MAKE) $(build)=scripts build_unifdef1054 $(Q)$(MAKE) $(build)=scripts build_unifdef
1052 1055
1053PHONY += headers_install_all1056PHONY += headers_install_all
arch/Kconfig+14−0
@@ -185,4 +185,18 @@ config HAVE_RCU_TABLE_FREE · 184 unmodified lines
185config ARCH_HAVE_NMI_SAFE_CMPXCHG185config ARCH_HAVE_NMI_SAFE_CMPXCHG
186 bool186 bool
187 187
188config HAVE_ALIGNED_STRUCT_PAGE
189 bool
190 help
191 This makes sure that struct pages are double word aligned and that
192 e.g. the SLUB allocator can perform double word atomic operations
193 on a struct page for better performance. However selecting this
194 might increase the size of a struct page by a word.
195
196config HAVE_CMPXCHG_LOCAL
197 bool
198
199config HAVE_CMPXCHG_DOUBLE
200 bool
201
188source "kernel/gcov/Kconfig"202source "kernel/gcov/Kconfig"
arch/alpha/Kconfig+1−4
@@ -70,10 +70,6 @@ config GENERIC_ISA_DMA · 69 unmodified lines
70 bool70 bool
71 default y71 default y
72 72
73config GENERIC_IOMAP
74 bool
75 default n
76
77source "init/Kconfig"73source "init/Kconfig"
78source "kernel/Kconfig.freezer"74source "kernel/Kconfig.freezer"
79 75
@@ -319,6 +315,7 @@ config ISA_DMA_API · 239 unmodified lines
319config PCI315config PCI
320 bool316 bool
321 depends on !ALPHA_JENSEN317 depends on !ALPHA_JENSEN
318 select GENERIC_PCI_IOMAP
322 default y319 default y
323 help320 help
324 Find out whether you have a PCI motherboard. PCI is the name of a321 Find out whether you have a PCI motherboard. PCI is the name of a
arch/alpha/include/asm/ipcbuf.h+1−28
@@ -1,28 +1 @@
1#ifndef _ALPHA_IPCBUF_H1#include <asm-generic/ipcbuf.h>
2#define _ALPHA_IPCBUF_H
3
4/*
5 * The ipc64_perm structure for alpha architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 32-bit seq
11 * - 2 miscellaneous 64-bit values
12 */
13
14struct ipc64_perm
15{
16 __kernel_key_t key;
17 __kernel_uid_t uid;
18 __kernel_gid_t gid;
19 __kernel_uid_t cuid;
20 __kernel_gid_t cgid;
21 __kernel_mode_t mode;
22 unsigned short seq;
23 unsigned short __pad1;
24 unsigned long __unused1;
25 unsigned long __unused2;
26};
27
28#endif /* _ALPHA_IPCBUF_H */
arch/alpha/include/asm/socket.h+3−0
@@ -69,6 +69,9 @@ · 68 unmodified lines
69 69
70#define SO_RXQ_OVFL 4070#define SO_RXQ_OVFL 40
71 71
72#define SO_WIFI_STATUS 41
73#define SCM_WIFI_STATUS SO_WIFI_STATUS
74
72/* O_NONBLOCK clashes with the bits used for socket types. Therefore we75/* O_NONBLOCK clashes with the bits used for socket types. Therefore we
73 * have to define SOCK_NONBLOCK to a different value here.76 * have to define SOCK_NONBLOCK to a different value here.
74 */77 */
arch/alpha/include/asm/thread_info.h+0−2
@@ -79,7 +79,6 @@ register struct thread_info *__current_thread_info __asm__("$8"); · 78 unmodified lines
79#define TIF_UAC_SIGBUS 12 /* ! userspace part of 'osf_sysinfo' */79#define TIF_UAC_SIGBUS 12 /* ! userspace part of 'osf_sysinfo' */
80#define TIF_MEMDIE 13 /* is terminating due to OOM killer */80#define TIF_MEMDIE 13 /* is terminating due to OOM killer */
81#define TIF_RESTORE_SIGMASK 14 /* restore signal mask in do_signal */81#define TIF_RESTORE_SIGMASK 14 /* restore signal mask in do_signal */
82#define TIF_FREEZE 16 /* is freezing for suspend */
83 82
84#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)83#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
85#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)84#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
@@ -87,7 +86,6 @@ register struct thread_info *__current_thread_info __asm__("$8"); · 1 unmodified line
87#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)86#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
88#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)87#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
89#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)88#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
90#define _TIF_FREEZE (1<<TIF_FREEZE)
91 89
92/* Work to do on interrupt/exception return. */90/* Work to do on interrupt/exception return. */
93#define _TIF_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \91#define _TIF_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
arch/alpha/include/asm/types.h+0−5
@@ -15,9 +15,4 @@ · 14 unmodified lines
15#include <asm-generic/int-l64.h>15#include <asm-generic/int-l64.h>
16#endif16#endif
17 17
18#ifndef __ASSEMBLY__
19
20typedef unsigned int umode_t;
21
22#endif /* __ASSEMBLY__ */
23#endif /* _ALPHA_TYPES_H */18#endif /* _ALPHA_TYPES_H */
arch/alpha/kernel/pci-noop.c+0−12
@@ -185,15 +185,3 @@ struct dma_map_ops alpha_noop_ops = { · 184 unmodified lines
185 185
186struct dma_map_ops *dma_ops = &alpha_noop_ops;186struct dma_map_ops *dma_ops = &alpha_noop_ops;
187EXPORT_SYMBOL(dma_ops);187EXPORT_SYMBOL(dma_ops);
188
189void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
190{
191 return NULL;
192}
193
194void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
195{
196}
197
198EXPORT_SYMBOL(pci_iomap);
199EXPORT_SYMBOL(pci_iounmap);
arch/alpha/kernel/pci.c+21−45
@@ -281,27 +281,9 @@ pcibios_fixup_device_resources(struct pci_dev *dev, struct pci_bus *bus) · 280 unmodified lines
281void __devinit281void __devinit
282pcibios_fixup_bus(struct pci_bus *bus)282pcibios_fixup_bus(struct pci_bus *bus)
283{283{
284 /* Propagate hose info into the subordinate devices. */
285
286 struct pci_controller *hose = bus->sysdata;
287 struct pci_dev *dev = bus->self;284 struct pci_dev *dev = bus->self;
288 285
289 if (!dev) {286 if (pci_probe_only && dev &&
290 /* Root bus. */
291 u32 pci_mem_end;
292 u32 sg_base = hose->sg_pci ? hose->sg_pci->dma_base : ~0;
293 unsigned long end;
294
295 bus->resource[0] = hose->io_space;
296 bus->resource[1] = hose->mem_space;
297
298 /* Adjust hose mem_space limit to prevent PCI allocations
299 in the iommu windows. */
300 pci_mem_end = min((u32)__direct_map_base, sg_base) - 1;
301 end = hose->mem_space->start + pci_mem_end;
302 if (hose->mem_space->end > end)
303 hose->mem_space->end = end;
304 } else if (pci_probe_only &&
305 (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {287 (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {
306 pci_read_bridge_bases(bus);288 pci_read_bridge_bases(bus);
307 pcibios_fixup_device_resources(dev, bus);289 pcibios_fixup_device_resources(dev, bus);
@@ -414,13 +396,31 @@ void __init · 106 unmodified lines
414common_init_pci(void)396common_init_pci(void)
415{397{
416 struct pci_controller *hose;398 struct pci_controller *hose;
399 struct list_head resources;
417 struct pci_bus *bus;400 struct pci_bus *bus;
418 int next_busno;401 int next_busno;
419 int need_domain_info = 0;402 int need_domain_info = 0;
403 u32 pci_mem_end;
404 u32 sg_base;
405 unsigned long end;
420 406
421 /* Scan all of the recorded PCI controllers. */407 /* Scan all of the recorded PCI controllers. */
422 for (next_busno = 0, hose = hose_head; hose; hose = hose->next) {408 for (next_busno = 0, hose = hose_head; hose; hose = hose->next) {
423 bus = pci_scan_bus(next_busno, alpha_mv.pci_ops, hose);409 sg_base = hose->sg_pci ? hose->sg_pci->dma_base : ~0;
410
411 /* Adjust hose mem_space limit to prevent PCI allocations
412 in the iommu windows. */
413 pci_mem_end = min((u32)__direct_map_base, sg_base) - 1;
414 end = hose->mem_space->start + pci_mem_end;
415 if (hose->mem_space->end > end)
416 hose->mem_space->end = end;
417
418 INIT_LIST_HEAD(&resources);
419 pci_add_resource(&resources, hose->io_space);
420 pci_add_resource(&resources, hose->mem_space);
421
422 bus = pci_scan_root_bus(NULL, next_busno, alpha_mv.pci_ops,
423 hose, &resources);
424 hose->bus = bus;424 hose->bus = bus;
425 hose->need_domain_info = need_domain_info;425 hose->need_domain_info = need_domain_info;
426 next_busno = bus->subordinate + 1;426 next_busno = bus->subordinate + 1;
@@ -508,30 +508,7 @@ sys_pciconfig_iobase(long which, unsigned long bus, unsigned long dfn) · 81 unmodified lines
508 return -EOPNOTSUPP;508 return -EOPNOTSUPP;
509}509}
510 510
511/* Create an __iomem token from a PCI BAR. Copied from lib/iomap.c with511/* Destroy an __iomem token. Not copied from lib/iomap.c. */
512 no changes, since we don't want the other things in that object file. */
513
514void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
515{
516 resource_size_t start = pci_resource_start(dev, bar);
517 resource_size_t len = pci_resource_len(dev, bar);
518 unsigned long flags = pci_resource_flags(dev, bar);
519
520 if (!len || !start)
521 return NULL;
522 if (maxlen && len > maxlen)
523 len = maxlen;
524 if (flags & IORESOURCE_IO)
525 return ioport_map(start, len);
526 if (flags & IORESOURCE_MEM) {
527 /* Not checking IORESOURCE_CACHEABLE because alpha does
528 not distinguish between ioremap and ioremap_nocache. */
529 return ioremap(start, len);
530 }
531 return NULL;
532}
533
534/* Destroy that token. Not copied from lib/iomap.c. */
535 512
536void pci_iounmap(struct pci_dev *dev, void __iomem * addr)513void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
537{514{
@@ -539,7 +516,6 @@ void pci_iounmap(struct pci_dev *dev, void __iomem * addr) · 1 unmodified line
539 iounmap(addr);516 iounmap(addr);
540}517}
541 518
542EXPORT_SYMBOL(pci_iomap);
543EXPORT_SYMBOL(pci_iounmap);519EXPORT_SYMBOL(pci_iounmap);
544 520
545/* FIXME: Some boxes have multiple ISA bridges! */521/* FIXME: Some boxes have multiple ISA bridges! */
arch/arm/Kconfig+48−22
@@ -16,6 +16,7 @@ config ARM · 15 unmodified lines
16 select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)16 select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)
17 select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL)17 select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL)
18 select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)18 select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
19 select ARCH_BINFMT_ELF_RANDOMIZE_PIE
19 select HAVE_GENERIC_DMA_COHERENT20 select HAVE_GENERIC_DMA_COHERENT
20 select HAVE_KERNEL_GZIP21 select HAVE_KERNEL_GZIP
21 select HAVE_KERNEL_LZO22 select HAVE_KERNEL_LZO
@@ -30,6 +31,7 @@ config ARM · 8 unmodified lines
30 select HAVE_SPARSE_IRQ31 select HAVE_SPARSE_IRQ
31 select GENERIC_IRQ_SHOW32 select GENERIC_IRQ_SHOW
32 select CPU_PM if (SUSPEND || CPU_IDLE)33 select CPU_PM if (SUSPEND || CPU_IDLE)
34 select GENERIC_PCI_IOMAP
33 help35 help
34 The ARM series is a line of low-power-consumption RISC chip designs36 The ARM series is a line of low-power-consumption RISC chip designs
35 licensed by ARM Ltd and targeted at embedded applications and37 licensed by ARM Ltd and targeted at embedded applications and
@@ -258,6 +260,7 @@ config ARCH_INTEGRATOR · 222 unmodified lines
258 select ARCH_HAS_CPUFREQ260 select ARCH_HAS_CPUFREQ
259 select CLKDEV_LOOKUP261 select CLKDEV_LOOKUP
260 select HAVE_MACH_CLKDEV262 select HAVE_MACH_CLKDEV
263 select HAVE_TCM
261 select ICST264 select ICST
262 select GENERIC_CLOCKEVENTS265 select GENERIC_CLOCKEVENTS
263 select PLAT_VERSATILE266 select PLAT_VERSATILE
@@ -341,10 +344,12 @@ config ARCH_HIGHBANK · 77 unmodified lines
341 select ARM_AMBA344 select ARM_AMBA
342 select ARM_GIC345 select ARM_GIC
343 select ARM_TIMER_SP804346 select ARM_TIMER_SP804
347 select CACHE_L2X0
344 select CLKDEV_LOOKUP348 select CLKDEV_LOOKUP
345 select CPU_V7349 select CPU_V7
346 select GENERIC_CLOCKEVENTS350 select GENERIC_CLOCKEVENTS
347 select HAVE_ARM_SCU351 select HAVE_ARM_SCU
352 select HAVE_SMP
348 select USE_OF353 select USE_OF
349 help354 help
350 Support for the Calxeda Highbank SoC based boards.355 Support for the Calxeda Highbank SoC based boards.
@@ -362,6 +367,7 @@ config ARCH_CNS3XXX · 11 unmodified lines
362 select CPU_V6K367 select CPU_V6K
363 select GENERIC_CLOCKEVENTS368 select GENERIC_CLOCKEVENTS
364 select ARM_GIC369 select ARM_GIC
370 select MIGHT_HAVE_CACHE_L2X0
365 select MIGHT_HAVE_PCI371 select MIGHT_HAVE_PCI
366 select PCI_DOMAINS if PCI372 select PCI_DOMAINS if PCI
367 help373 help
@@ -382,6 +388,7 @@ config ARCH_PRIMA2 · 14 unmodified lines
382 select GENERIC_CLOCKEVENTS388 select GENERIC_CLOCKEVENTS
383 select CLKDEV_LOOKUP389 select CLKDEV_LOOKUP
384 select GENERIC_IRQ_CHIP390 select GENERIC_IRQ_CHIP
391 select MIGHT_HAVE_CACHE_L2X0
385 select USE_OF392 select USE_OF
386 select ZONE_DMA393 select ZONE_DMA
387 help394 help
@@ -442,6 +449,7 @@ config ARCH_MXS · 54 unmodified lines
442 select ARCH_REQUIRE_GPIOLIB449 select ARCH_REQUIRE_GPIOLIB
443 select CLKDEV_LOOKUP450 select CLKDEV_LOOKUP
444 select CLKSRC_MMIO451 select CLKSRC_MMIO
452 select HAVE_CLK_PREPARE
445 help453 help
446 Support for Freescale MXS-based family of processors454 Support for Freescale MXS-based family of processors
447 455
@@ -592,6 +600,7 @@ config ARCH_MMP · 144 unmodified lines
592 select ARCH_REQUIRE_GPIOLIB600 select ARCH_REQUIRE_GPIOLIB
593 select CLKDEV_LOOKUP601 select CLKDEV_LOOKUP
594 select GENERIC_CLOCKEVENTS602 select GENERIC_CLOCKEVENTS
603 select GPIO_PXA
595 select HAVE_SCHED_CLOCK604 select HAVE_SCHED_CLOCK
596 select TICK_ONESHOT605 select TICK_ONESHOT
597 select PLAT_PXA606 select PLAT_PXA
@@ -634,6 +643,8 @@ config ARCH_TEGRA · 36 unmodified lines
634 select GENERIC_GPIO643 select GENERIC_GPIO
635 select HAVE_CLK644 select HAVE_CLK
636 select HAVE_SCHED_CLOCK645 select HAVE_SCHED_CLOCK
646 select HAVE_SMP
647 select MIGHT_HAVE_CACHE_L2X0
637 select ARCH_HAS_CPUFREQ648 select ARCH_HAS_CPUFREQ
638 help649 help
639 This enables support for NVIDIA Tegra based systems (Tegra APX,650 This enables support for NVIDIA Tegra based systems (Tegra APX,
@@ -651,6 +662,7 @@ config ARCH_PICOXCELL · 11 unmodified lines
651 select HAVE_SCHED_CLOCK662 select HAVE_SCHED_CLOCK
652 select HAVE_TCM663 select HAVE_TCM
653 select NO_IOPORT664 select NO_IOPORT
665 select SPARSE_IRQ
654 select USE_OF666 select USE_OF
655 help667 help
656 This enables support for systems based on the Picochip picoXcell668 This enables support for systems based on the Picochip picoXcell
@@ -674,6 +686,7 @@ config ARCH_PXA · 17 unmodified lines
674 select CLKSRC_MMIO686 select CLKSRC_MMIO
675 select ARCH_REQUIRE_GPIOLIB687 select ARCH_REQUIRE_GPIOLIB
676 select GENERIC_CLOCKEVENTS688 select GENERIC_CLOCKEVENTS
689 select GPIO_PXA
677 select HAVE_SCHED_CLOCK690 select HAVE_SCHED_CLOCK
678 select TICK_ONESHOT691 select TICK_ONESHOT
679 select PLAT_PXA692 select PLAT_PXA
@@ -703,7 +716,9 @@ config ARCH_SHMOBILE · 23 unmodified lines
703 select HAVE_CLK716 select HAVE_CLK
704 select CLKDEV_LOOKUP717 select CLKDEV_LOOKUP
705 select HAVE_MACH_CLKDEV718 select HAVE_MACH_CLKDEV
719 select HAVE_SMP
706 select GENERIC_CLOCKEVENTS720 select GENERIC_CLOCKEVENTS
721 select MIGHT_HAVE_CACHE_L2X0
707 select NO_IOPORT722 select NO_IOPORT
708 select SPARSE_IRQ723 select SPARSE_IRQ
709 select MULTI_IRQ_HANDLER724 select MULTI_IRQ_HANDLER
@@ -739,7 +754,7 @@ config ARCH_SA1100 · 29 unmodified lines
739 select ARCH_HAS_CPUFREQ754 select ARCH_HAS_CPUFREQ
740 select CPU_FREQ755 select CPU_FREQ
741 select GENERIC_CLOCKEVENTS756 select GENERIC_CLOCKEVENTS
742 select HAVE_CLK757 select CLKDEV_LOOKUP
743 select HAVE_SCHED_CLOCK758 select HAVE_SCHED_CLOCK
744 select TICK_ONESHOT759 select TICK_ONESHOT
745 select ARCH_REQUIRE_GPIOLIB760 select ARCH_REQUIRE_GPIOLIB
@@ -868,16 +883,6 @@ config ARCH_SHARK · 122 unmodified lines
868 Support for the StrongARM based Digital DNARD machine, also known883 Support for the StrongARM based Digital DNARD machine, also known
869 as "Shark" (<http://www.shark-linux.de/shark.html>).884 as "Shark" (<http://www.shark-linux.de/shark.html>).
870 885
871config ARCH_TCC_926
872 bool "Telechips TCC ARM926-based systems"
873 select CLKSRC_MMIO
874 select CPU_ARM926T
875 select HAVE_CLK
876 select CLKDEV_LOOKUP
877 select GENERIC_CLOCKEVENTS
878 help
879 Support for Telechips TCC ARM926-based systems.
880
881config ARCH_U300886config ARCH_U300
882 bool "ST-Ericsson U300 Series"887 bool "ST-Ericsson U300 Series"
883 depends on MMU888 depends on MMU
@@ -893,7 +898,6 @@ config ARCH_U300 · 9 unmodified lines
893 select HAVE_MACH_CLKDEV898 select HAVE_MACH_CLKDEV
894 select GENERIC_GPIO899 select GENERIC_GPIO
895 select ARCH_REQUIRE_GPIOLIB900 select ARCH_REQUIRE_GPIOLIB
896 select NEED_MACH_MEMORY_H
897 help901 help
898 Support for ST-Ericsson U300 series mobile platforms.902 Support for ST-Ericsson U300 series mobile platforms.
899 903
@@ -905,6 +909,8 @@ config ARCH_U8500 · 5 unmodified lines
905 select CLKDEV_LOOKUP909 select CLKDEV_LOOKUP
906 select ARCH_REQUIRE_GPIOLIB910 select ARCH_REQUIRE_GPIOLIB
907 select ARCH_HAS_CPUFREQ911 select ARCH_HAS_CPUFREQ
912 select HAVE_SMP
913 select MIGHT_HAVE_CACHE_L2X0
908 help914 help
909 Support for ST-Ericsson's Ux500 architecture915 Support for ST-Ericsson's Ux500 architecture
910 916
@@ -915,6 +921,7 @@ config ARCH_NOMADIK · 4 unmodified lines
915 select CPU_ARM926T921 select CPU_ARM926T
916 select CLKDEV_LOOKUP922 select CLKDEV_LOOKUP
917 select GENERIC_CLOCKEVENTS923 select GENERIC_CLOCKEVENTS
924 select MIGHT_HAVE_CACHE_L2X0
918 select ARCH_REQUIRE_GPIOLIB925 select ARCH_REQUIRE_GPIOLIB
919 help926 help
920 Support for the Nomadik platform by ST-Ericsson927 Support for the Nomadik platform by ST-Ericsson
@@ -974,6 +981,7 @@ config ARCH_ZYNQ · 53 unmodified lines
974 select ARM_GIC981 select ARM_GIC
975 select ARM_AMBA982 select ARM_AMBA
976 select ICST983 select ICST
984 select MIGHT_HAVE_CACHE_L2X0
977 select USE_OF985 select USE_OF
978 help986 help
979 Support for Xilinx Zynq ARM Cortex A9 Platform987 Support for Xilinx Zynq ARM Cortex A9 Platform
@@ -1060,8 +1068,6 @@ source "arch/arm/plat-s5p/Kconfig" · 80 unmodified lines
1060 1068
1061source "arch/arm/plat-spear/Kconfig"1069source "arch/arm/plat-spear/Kconfig"
1062 1070
1063source "arch/arm/plat-tcc/Kconfig"
1064
1065if ARCH_S3C24101071if ARCH_S3C2410
1066source "arch/arm/mach-s3c2410/Kconfig"1072source "arch/arm/mach-s3c2410/Kconfig"
1067source "arch/arm/mach-s3c2412/Kconfig"1073source "arch/arm/mach-s3c2412/Kconfig"
@@ -1126,6 +1132,11 @@ config ARM_TIMER_SP804 · 58 unmodified lines
1126 1132
1127source arch/arm/mm/Kconfig1133source arch/arm/mm/Kconfig
1128 1134
1135config ARM_NR_BANKS
1136 int
1137 default 16 if ARCH_EP93XX
1138 default 8
1139
1129config IWMMXT1140config IWMMXT
1130 bool "Enable iWMMXt support"1141 bool "Enable iWMMXt support"
1131 depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ41142 depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
@@ -1134,10 +1145,9 @@ config IWMMXT · 2 unmodified lines
1134 Enable support for iWMMXt context switching at run time if1145 Enable support for iWMMXt context switching at run time if
1135 running on a CPU that supports it.1146 running on a CPU that supports it.
1136 1147
1137# bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
1138config XSCALE_PMU1148config XSCALE_PMU
1139 bool1149 bool
1140 depends on CPU_XSCALE && !XSCALE_PMU_TIMER1150 depends on CPU_XSCALE
1141 default y1151 default y
1142 1152
1143config CPU_HAS_PMU1153config CPU_HAS_PMU
@@ -1435,14 +1445,20 @@ menu "Kernel Features" · 291 unmodified lines
1435 1445
1436source "kernel/time/Kconfig"1446source "kernel/time/Kconfig"
1437 1447
1448config HAVE_SMP
1449 bool
1450 help
1451 This option should be selected by machines which have an SMP-
1452 capable CPU.
1453
1454 The only effect of this option is to make the SMP-related
1455 options available to the user for configuration.
1456
1438config SMP1457config SMP
1439 bool "Symmetric Multi-Processing"1458 bool "Symmetric Multi-Processing"
1440 depends on CPU_V6K || CPU_V71459 depends on CPU_V6K || CPU_V7
1441 depends on GENERIC_CLOCKEVENTS1460 depends on GENERIC_CLOCKEVENTS
1442 depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \1461 depends on HAVE_SMP
1443 MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
1444 ARCH_EXYNOS4 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \
1445 ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE || ARCH_HIGHBANK || SOC_IMX6Q
1446 depends on MMU1462 depends on MMU
1447 select USE_GENERIC_SMP_HELPERS1463 select USE_GENERIC_SMP_HELPERS
1448 select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP1464 select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
@@ -1560,6 +1576,16 @@ config LOCAL_TIMERS · 111 unmodified lines
1560 accounting to be spread across the timer interval, preventing a1576 accounting to be spread across the timer interval, preventing a
1561 "thundering herd" at every timer tick.1577 "thundering herd" at every timer tick.
1562 1578
1579config ARCH_NR_GPIO
1580 int
1581 default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
1582 default 350 if ARCH_U8500
1583 default 0
1584 help
1585 Maximum number of GPIOs in the system.
1586
1587 If unsure, leave the default value.
1588
1563source kernel/Kconfig.preempt1589source kernel/Kconfig.preempt
1564 1590
1565config HZ1591config HZ
@@ -1972,7 +1998,7 @@ endchoice · 406 unmodified lines
1972 1998
1973config XIP_KERNEL1999config XIP_KERNEL
1974 bool "Kernel Execute-In-Place from ROM"2000 bool "Kernel Execute-In-Place from ROM"
1975 depends on !ZBOOT_ROM2001 depends on !ZBOOT_ROM && !ARM_LPAE
1976 help2002 help
1977 Execute-In-Place allows the kernel to run from non-volatile storage2003 Execute-In-Place allows the kernel to run from non-volatile storage
1978 directly addressable by the CPU, such as NOR flash. This saves RAM2004 directly addressable by the CPU, such as NOR flash. This saves RAM
@@ -2002,7 +2028,7 @@ config XIP_PHYS_ADDR · 23 unmodified lines
2002 2028
2003config KEXEC2029config KEXEC
2004 bool "Kexec system call (EXPERIMENTAL)"2030 bool "Kexec system call (EXPERIMENTAL)"
2005 depends on EXPERIMENTAL2031 depends on EXPERIMENTAL && (!SMP || HOTPLUG_CPU)
2006 help2032 help
2007 kexec is a system call that implements the ability to shutdown your2033 kexec is a system call that implements the ability to shutdown your
2008 current kernel, and to start another kernel. It is like a reboot2034 current kernel, and to start another kernel. It is like a reboot
arch/arm/Kconfig.debug+45−0
@@ -100,6 +100,14 @@ choice · 99 unmodified lines
100 Note that the system will appear to hang during boot if there100 Note that the system will appear to hang during boot if there
101 is nothing connected to read from the DCC.101 is nothing connected to read from the DCC.
102 102
103 config AT91_DEBUG_LL_DBGU0
104 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl"
105 depends on HAVE_AT91_DBGU0
106
107 config AT91_DEBUG_LL_DBGU1
108 bool "Kernel low-level debugging on 9263, 9g45 and cap9"
109 depends on HAVE_AT91_DBGU1
110
103 config DEBUG_FOOTBRIDGE_COM1111 config DEBUG_FOOTBRIDGE_COM1
104 bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"112 bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
105 depends on FOOTBRIDGE113 depends on FOOTBRIDGE
@@ -247,6 +255,43 @@ choice · 141 unmodified lines
247 their output to the standard serial port on the RealView255 their output to the standard serial port on the RealView
248 PB1176 platform.256 PB1176 platform.
249 257
258 config DEBUG_MSM_UART1
259 bool "Kernel low-level debugging messages via MSM UART1"
260 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
261 help
262 Say Y here if you want the debug print routines to direct
263 their output to the first serial port on MSM devices.
264
265 config DEBUG_MSM_UART2
266 bool "Kernel low-level debugging messages via MSM UART2"
267 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
268 help
269 Say Y here if you want the debug print routines to direct
270 their output to the second serial port on MSM devices.
271
272 config DEBUG_MSM_UART3
273 bool "Kernel low-level debugging messages via MSM UART3"
274 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
275 help
276 Say Y here if you want the debug print routines to direct
277 their output to the third serial port on MSM devices.
278
279 config DEBUG_MSM8660_UART
280 bool "Kernel low-level debugging messages via MSM 8660 UART"
281 depends on ARCH_MSM8X60
282 select MSM_HAS_DEBUG_UART_HS
283 help
284 Say Y here if you want the debug print routines to direct
285 their output to the serial port on MSM 8660 devices.
286
287 config DEBUG_MSM8960_UART
288 bool "Kernel low-level debugging messages via MSM 8960 UART"
289 depends on ARCH_MSM8960
290 select MSM_HAS_DEBUG_UART_HS
291 help
292 Say Y here if you want the debug print routines to direct
293 their output to the serial port on MSM 8960 devices.
294
250endchoice295endchoice
251 296
252config EARLY_PRINTK297config EARLY_PRINTK
arch/arm/Makefile+0−2
@@ -184,7 +184,6 @@ machine-$(CONFIG_ARCH_EXYNOS4) := exynos · 183 unmodified lines
184machine-$(CONFIG_ARCH_SA1100) := sa1100184machine-$(CONFIG_ARCH_SA1100) := sa1100
185machine-$(CONFIG_ARCH_SHARK) := shark185machine-$(CONFIG_ARCH_SHARK) := shark
186machine-$(CONFIG_ARCH_SHMOBILE) := shmobile186machine-$(CONFIG_ARCH_SHMOBILE) := shmobile
187machine-$(CONFIG_ARCH_TCC8K) := tcc8k
188machine-$(CONFIG_ARCH_TEGRA) := tegra187machine-$(CONFIG_ARCH_TEGRA) := tegra
189machine-$(CONFIG_ARCH_U300) := u300188machine-$(CONFIG_ARCH_U300) := u300
190machine-$(CONFIG_ARCH_U8500) := ux500189machine-$(CONFIG_ARCH_U8500) := ux500
@@ -204,7 +203,6 @@ machine-$(CONFIG_ARCH_ZYNQ) := zynq · 13 unmodified lines
204plat-$(CONFIG_ARCH_MXC) := mxc203plat-$(CONFIG_ARCH_MXC) := mxc
205plat-$(CONFIG_ARCH_OMAP) := omap204plat-$(CONFIG_ARCH_OMAP) := omap
206plat-$(CONFIG_ARCH_S3C64XX) := samsung205plat-$(CONFIG_ARCH_S3C64XX) := samsung
207plat-$(CONFIG_ARCH_TCC_926) := tcc
208plat-$(CONFIG_ARCH_ZYNQ) := versatile206plat-$(CONFIG_ARCH_ZYNQ) := versatile
209plat-$(CONFIG_PLAT_IOP) := iop207plat-$(CONFIG_PLAT_IOP) := iop
210plat-$(CONFIG_PLAT_NOMADIK) := nomadik208plat-$(CONFIG_PLAT_NOMADIK) := nomadik
arch/arm/boot/Makefile+4−2
@@ -59,9 +59,11 @@ $(obj)/zImage: $(obj)/compressed/vmlinux FORCE · 58 unmodified lines
59 59
60endif60endif
61 61
62targets += $(dtb-y)
63
62# Rule to build device tree blobs64# Rule to build device tree blobs
63$(obj)/%.dtb: $(src)/dts/%.dts65$(obj)/%.dtb: $(src)/dts/%.dts FORCE
64 $(call cmd,dtc)66 $(call if_changed_dep,dtc)
65 67
66$(obj)/dtbs: $(addprefix $(obj)/, $(dtb-y))68$(obj)/dtbs: $(addprefix $(obj)/, $(dtb-y))
67 69
arch/arm/boot/compressed/Makefile+2−1
@@ -126,7 +126,8 @@ ccflags-y := -fpic -fno-builtin -I$(obj) · 125 unmodified lines
126asflags-y := -Wa,-march=all126asflags-y := -Wa,-march=all
127 127
128# Supply kernel BSS size to the decompressor via a linker symbol.128# Supply kernel BSS size to the decompressor via a linker symbol.
129KBSS_SZ = $(shell size $(obj)/../../../../vmlinux | awk 'END{print $$3}')129KBSS_SZ = $(shell $(CROSS_COMPILE)size $(obj)/../../../../vmlinux | \
130 awk 'END{print $$3}')
130LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ)131LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ)
131# Supply ZRELADDR to the decompressor via a linker symbol.132# Supply ZRELADDR to the decompressor via a linker symbol.
132ifneq ($(CONFIG_AUTO_ZRELADDR),y)133ifneq ($(CONFIG_AUTO_ZRELADDR),y)
arch/arm/boot/compressed/head.S+1−0
@@ -659,6 +659,7 @@ __armv7_mmu_cache_on: · 658 unmodified lines
659 mcrne p15, 0, r3, c2, c0, 0 @ load page table pointer659 mcrne p15, 0, r3, c2, c0, 0 @ load page table pointer
660 mcrne p15, 0, r1, c3, c0, 0 @ load domain access control660 mcrne p15, 0, r1, c3, c0, 0 @ load domain access control
661#endif661#endif
662 mcr p15, 0, r0, c7, c5, 4 @ ISB
662 mcr p15, 0, r0, c1, c0, 0 @ load control register663 mcr p15, 0, r0, c1, c0, 0 @ load control register
663 mrc p15, 0, r0, c1, c0, 0 @ and read it back664 mrc p15, 0, r0, c1, c0, 0 @ and read it back
664 mov r0, #0665 mov r0, #0
arch/arm/boot/dts/at91sam9g20.dtsi+7−0
@@ -114,6 +114,13 @@ · 113 unmodified lines
114 atmel,use-dma-tx;114 atmel,use-dma-tx;
115 status = "disabled";115 status = "disabled";
116 };116 };
117
118 macb0: ethernet@fffc4000 {
119 compatible = "cdns,at32ap7000-macb", "cdns,macb";
120 reg = <0xfffc4000 0x100>;
121 interrupts = <21>;
122 status = "disabled";
123 };
117 };124 };
118 };125 };
119};126};
arch/arm/boot/dts/at91sam9g45.dtsi+7−0
@@ -101,6 +101,13 @@ · 100 unmodified lines
101 atmel,use-dma-tx;101 atmel,use-dma-tx;
102 status = "disabled";102 status = "disabled";
103 };103 };
104
105 macb0: ethernet@fffbc000 {
106 compatible = "cdns,at32ap7000-macb", "cdns,macb";
107 reg = <0xfffbc000 0x100>;
108 interrupts = <25>;
109 status = "disabled";
110 };
104 };111 };
105 };112 };
106};113};
arch/arm/boot/dts/at91sam9m10g45ek.dts+5−0
@@ -30,6 +30,11 @@ · 29 unmodified lines
30 usart1: serial@fff90000 {30 usart1: serial@fff90000 {
31 status = "okay";31 status = "okay";
32 };32 };
33
34 macb0: ethernet@fffbc000 {
35 phy-mode = "rmii";
36 status = "okay";
37 };
33 };38 };
34 };39 };
35};40};
arch/arm/boot/dts/exynos4210-origen.dts+137−0
@@ -0,0 +1,137 @@
1/*
2 * Samsung's Exynos4210 based Origen board device tree source
3 *
4 * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 * Copyright (c) 2010-2011 Linaro Ltd.
7 * www.linaro.org
8 *
9 * Device tree source file for Insignal's Origen board which is based on
10 * Samsung's Exynos4210 SoC.
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2 as
14 * published by the Free Software Foundation.
15*/
16
17/dts-v1/;
18/include/ "exynos4210.dtsi"
19
20/ {
21 model = "Insignal Origen evaluation board based on Exynos4210";
22 compatible = "insignal,origen", "samsung,exynos4210";
23
24 memory {
25 reg = <0x40000000 0x40000000>;
26 };
27
28 chosen {
29 bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
30 };
31
32 sdhci@12530000 {
33 samsung,sdhci-bus-width = <4>;
34 linux,mmc_cap_4_bit_data;
35 samsung,sdhci-cd-internal;
36 gpio-cd = <&gpk2 2 2 3 3>;
37 gpios = <&gpk2 0 2 0 3>,
38 <&gpk2 1 2 0 3>,
39 <&gpk2 3 2 3 3>,
40 <&gpk2 4 2 3 3>,
41 <&gpk2 5 2 3 3>,
42 <&gpk2 6 2 3 3>;
43 };
44
45 sdhci@12510000 {
46 samsung,sdhci-bus-width = <4>;
47 linux,mmc_cap_4_bit_data;
48 samsung,sdhci-cd-internal;
49 gpio-cd = <&gpk0 2 2 3 3>;
50 gpios = <&gpk0 0 2 0 3>,
51 <&gpk0 1 2 0 3>,
52 <&gpk0 3 2 3 3>,
53 <&gpk0 4 2 3 3>,
54 <&gpk0 5 2 3 3>,
55 <&gpk0 6 2 3 3>;
56 };
57
58 gpio_keys {
59 compatible = "gpio-keys";
60 #address-cells = <1>;
61 #size-cells = <0>;
62
63 up {
64 label = "Up";
65 gpios = <&gpx2 0 0 0 2>;
66 linux,code = <103>;
67 };
68
69 down {
70 label = "Down";
71 gpios = <&gpx2 1 0 0 2>;
72 linux,code = <108>;
73 };
74
75 back {
76 label = "Back";
77 gpios = <&gpx1 7 0 0 2>;
78 linux,code = <158>;
79 };
80
81 home {
82 label = "Home";
83 gpios = <&gpx1 6 0 0 2>;
84 linux,code = <102>;
85 };
86
87 menu {
88 label = "Menu";
89 gpios = <&gpx1 5 0 0 2>;
90 linux,code = <139>;
91 };
92 };
93
94 keypad@100A0000 {
95 status = "disabled";
96 };
97
98 sdhci@12520000 {
99 status = "disabled";
100 };
101
102 sdhci@12540000 {
103 status = "disabled";
104 };
105
106 i2c@13860000 {
107 status = "disabled";
108 };
109
110 i2c@13870000 {
111 status = "disabled";
112 };
113
114 i2c@13880000 {
115 status = "disabled";
116 };
117
118 i2c@13890000 {
119 status = "disabled";
120 };
121
122 i2c@138A0000 {
123 status = "disabled";
124 };
125
126 i2c@138B0000 {
127 status = "disabled";
128 };
129
130 i2c@138C0000 {
131 status = "disabled";
132 };
133
134 i2c@138D0000 {
135 status = "disabled";
136 };
137};
arch/arm/boot/dts/exynos4210-smdkv310.dts+182−0
@@ -0,0 +1,182 @@
1/*
2 * Samsung's Exynos4210 based SMDKV310 board device tree source
3 *
4 * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 * Copyright (c) 2010-2011 Linaro Ltd.
7 * www.linaro.org
8 *
9 * Device tree source file for Samsung's SMDKV310 board which is based on
10 * Samsung's Exynos4210 SoC.
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2 as
14 * published by the Free Software Foundation.
15*/
16
17/dts-v1/;
18/include/ "exynos4210.dtsi"
19
20/ {
21 model = "Samsung smdkv310 evaluation board based on Exynos4210";
22 compatible = "samsung,smdkv310", "samsung,exynos4210";
23
24 memory {
25 reg = <0x40000000 0x80000000>;
26 };
27
28 chosen {
29 bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc";
30 };
31
32 sdhci@12530000 {
33 samsung,sdhci-bus-width = <4>;
34 linux,mmc_cap_4_bit_data;
35 samsung,sdhci-cd-internal;
36 gpio-cd = <&gpk2 2 2 3 3>;
37 gpios = <&gpk2 0 2 0 3>,
38 <&gpk2 1 2 0 3>,
39 <&gpk2 3 2 3 3>,
40 <&gpk2 4 2 3 3>,
41 <&gpk2 5 2 3 3>,
42 <&gpk2 6 2 3 3>;
43 };
44
45 keypad@100A0000 {
46 samsung,keypad-num-rows = <2>;
47 samsung,keypad-num-columns = <8>;
48 linux,keypad-no-autorepeat;
49 linux,keypad-wakeup;
50
51 row-gpios = <&gpx2 0 3 3 0>,
52 <&gpx2 1 3 3 0>;
53
54 col-gpios = <&gpx1 0 3 0 0>,
55 <&gpx1 1 3 0 0>,
56 <&gpx1 2 3 0 0>,
57 <&gpx1 3 3 0 0>,
58 <&gpx1 4 3 0 0>,
59 <&gpx1 5 3 0 0>,
60 <&gpx1 6 3 0 0>,
61 <&gpx1 7 3 0 0>;
62
63 key_1 {
64 keypad,row = <0>;
65 keypad,column = <3>;
66 linux,code = <2>;
67 };
68
69 key_2 {
70 keypad,row = <0>;
71 keypad,column = <4>;
72 linux,code = <3>;
73 };
74
75 key_3 {
76 keypad,row = <0>;
77 keypad,column = <5>;
78 linux,code = <4>;
79 };
80
81 key_4 {
82 keypad,row = <0>;
83 keypad,column = <6>;
84 linux,code = <5>;
85 };
86
87 key_5 {
88 keypad,row = <0>;
89 keypad,column = <7>;
90 linux,code = <6>;
91 };
92
93 key_a {
94 keypad,row = <1>;
95 keypad,column = <3>;
96 linux,code = <30>;
97 };
98
99 key_b {
100 keypad,row = <1>;
101 keypad,column = <4>;
102 linux,code = <48>;
103 };
104
105 key_c {
106 keypad,row = <1>;
107 keypad,column = <5>;
108 linux,code = <46>;
109 };
110
111 key_d {
112 keypad,row = <1>;
113 keypad,column = <6>;
114 linux,code = <32>;
115 };
116
117 key_e {
118 keypad,row = <1>;
119 keypad,column = <7>;
120 linux,code = <18>;
121 };
122 };
123
124 i2c@13860000 {
125 #address-cells = <1>;
126 #size-cells = <0>;
127 samsung,i2c-sda-delay = <100>;
128 samsung,i2c-max-bus-freq = <20000>;
129 gpios = <&gpd1 0 2 3 0>,
130 <&gpd1 1 2 3 0>;
131
132 eeprom@50 {
133 compatible = "samsung,24ad0xd1";
134 reg = <0x50>;
135 };
136
137 eeprom@52 {
138 compatible = "samsung,24ad0xd1";
139 reg = <0x52>;
140 };
141 };
142
143 sdhci@12510000 {
144 status = "disabled";
145 };
146
147 sdhci@12520000 {
148 status = "disabled";
149 };
150
151 sdhci@12540000 {
152 status = "disabled";
153 };
154
155 i2c@13870000 {
156 status = "disabled";
157 };
158
159 i2c@13880000 {
160 status = "disabled";
161 };
162
163 i2c@13890000 {
164 status = "disabled";
165 };
166
167 i2c@138A0000 {
168 status = "disabled";
169 };
170
171 i2c@138B0000 {
172 status = "disabled";
173 };
174
175 i2c@138C0000 {
176 status = "disabled";
177 };
178
179 i2c@138D0000 {
180 status = "disabled";
181 };
182};
arch/arm/boot/dts/exynos4210.dtsi+397−0
@@ -0,0 +1,397 @@
1/*
2 * Samsung's Exynos4210 SoC device tree source
3 *
4 * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 * Copyright (c) 2010-2011 Linaro Ltd.
7 * www.linaro.org
8 *
9 * Samsung's Exynos4210 SoC device nodes are listed in this file. Exynos4210
10 * based board files can include this file and provide values for board specfic
11 * bindings.
12 *
13 * Note: This file does not include device nodes for all the controllers in
14 * Exynos4210 SoC. As device tree coverage for Exynos4210 increases, additional
15 * nodes can be added to this file.
16 *
17 * This program is free software; you can redistribute it and/or modify
18 * it under the terms of the GNU General Public License version 2 as
19 * published by the Free Software Foundation.
20*/
21
22/include/ "skeleton.dtsi"
23
24/ {
25 compatible = "samsung,exynos4210";
26 interrupt-parent = <&gic>;
27
28 gic:interrupt-controller@10490000 {
29 compatible = "arm,cortex-a9-gic";
30 #interrupt-cells = <3>;
31 interrupt-controller;
32 reg = <0x10490000 0x1000>, <0x10480000 0x100>;
33 };
34
35 watchdog@10060000 {
36 compatible = "samsung,s3c2410-wdt";
37 reg = <0x10060000 0x100>;
38 interrupts = <0 43 0>;
39 };
40
41 rtc@10070000 {
42 compatible = "samsung,s3c6410-rtc";
43 reg = <0x10070000 0x100>;
44 interrupts = <0 44 0>, <0 45 0>;
45 };
46
47 keypad@100A0000 {
48 compatible = "samsung,s5pv210-keypad";
49 reg = <0x100A0000 0x100>;
50 interrupts = <0 109 0>;
51 };
52
53 sdhci@12510000 {
54 compatible = "samsung,exynos4210-sdhci";
55 reg = <0x12510000 0x100>;
56 interrupts = <0 73 0>;
57 };
58
59 sdhci@12520000 {
60 compatible = "samsung,exynos4210-sdhci";
61 reg = <0x12520000 0x100>;
62 interrupts = <0 74 0>;
63 };
64
65 sdhci@12530000 {
66 compatible = "samsung,exynos4210-sdhci";
67 reg = <0x12530000 0x100>;
68 interrupts = <0 75 0>;
69 };
70
71 sdhci@12540000 {
72 compatible = "samsung,exynos4210-sdhci";
73 reg = <0x12540000 0x100>;
74 interrupts = <0 76 0>;
75 };
76
77 serial@13800000 {
78 compatible = "samsung,exynos4210-uart";
79 reg = <0x13800000 0x100>;
80 interrupts = <0 52 0>;
81 };
82
83 serial@13810000 {
84 compatible = "samsung,exynos4210-uart";
85 reg = <0x13810000 0x100>;
86 interrupts = <0 53 0>;
87 };
88
89 serial@13820000 {
90 compatible = "samsung,exynos4210-uart";
91 reg = <0x13820000 0x100>;
92 interrupts = <0 54 0>;
93 };
94
95 serial@13830000 {
96 compatible = "samsung,exynos4210-uart";
97 reg = <0x13830000 0x100>;
98 interrupts = <0 55 0>;
99 };
100
101 i2c@13860000 {
102 compatible = "samsung,s3c2440-i2c";
103 reg = <0x13860000 0x100>;
104 interrupts = <0 58 0>;
105 };
106
107 i2c@13870000 {
108 compatible = "samsung,s3c2440-i2c";
109 reg = <0x13870000 0x100>;
110 interrupts = <0 59 0>;
111 };
112
113 i2c@13880000 {
114 compatible = "samsung,s3c2440-i2c";
115 reg = <0x13880000 0x100>;
116 interrupts = <0 60 0>;
117 };
118
119 i2c@13890000 {
120 compatible = "samsung,s3c2440-i2c";
121 reg = <0x13890000 0x100>;
122 interrupts = <0 61 0>;
123 };
124
125 i2c@138A0000 {
126 compatible = "samsung,s3c2440-i2c";
127 reg = <0x138A0000 0x100>;
128 interrupts = <0 62 0>;
129 };
130
131 i2c@138B0000 {
132 compatible = "samsung,s3c2440-i2c";
133 reg = <0x138B0000 0x100>;
134 interrupts = <0 63 0>;
135 };
136
137 i2c@138C0000 {
138 compatible = "samsung,s3c2440-i2c";
139 reg = <0x138C0000 0x100>;
140 interrupts = <0 64 0>;
141 };
142
143 i2c@138D0000 {
144 compatible = "samsung,s3c2440-i2c";
145 reg = <0x138D0000 0x100>;
146 interrupts = <0 65 0>;
147 };
148
149 amba {
150 #address-cells = <1>;
151 #size-cells = <1>;
152 compatible = "arm,amba-bus";
153 interrupt-parent = <&gic>;
154 ranges;
155
156 pdma0: pdma@12680000 {
157 compatible = "arm,pl330", "arm,primecell";
158 reg = <0x12680000 0x1000>;
159 interrupts = <0 35 0>;
160 };
161
162 pdma1: pdma@12690000 {
163 compatible = "arm,pl330", "arm,primecell";
164 reg = <0x12690000 0x1000>;
165 interrupts = <0 36 0>;
166 };
167 };
168
169 gpio-controllers {
170 #address-cells = <1>;
171 #size-cells = <1>;
172 gpio-controller;
173 ranges;
174
175 gpa0: gpio-controller@11400000 {
176 compatible = "samsung,exynos4-gpio";
177 reg = <0x11400000 0x20>;
178 #gpio-cells = <4>;
179 };
180
181 gpa1: gpio-controller@11400020 {
182 compatible = "samsung,exynos4-gpio";
183 reg = <0x11400020 0x20>;
184 #gpio-cells = <4>;
185 };
186
187 gpb: gpio-controller@11400040 {
188 compatible = "samsung,exynos4-gpio";
189 reg = <0x11400040 0x20>;
190 #gpio-cells = <4>;
191 };
192
193 gpc0: gpio-controller@11400060 {
194 compatible = "samsung,exynos4-gpio";
195 reg = <0x11400060 0x20>;
196 #gpio-cells = <4>;
197 };
198
199 gpc1: gpio-controller@11400080 {
200 compatible = "samsung,exynos4-gpio";
201 reg = <0x11400080 0x20>;
202 #gpio-cells = <4>;
203 };
204
205 gpd0: gpio-controller@114000A0 {
206 compatible = "samsung,exynos4-gpio";
207 reg = <0x114000A0 0x20>;
208 #gpio-cells = <4>;
209 };
210
211 gpd1: gpio-controller@114000C0 {
212 compatible = "samsung,exynos4-gpio";
213 reg = <0x114000C0 0x20>;
214 #gpio-cells = <4>;
215 };
216
217 gpe0: gpio-controller@114000E0 {
218 compatible = "samsung,exynos4-gpio";
219 reg = <0x114000E0 0x20>;
220 #gpio-cells = <4>;
221 };
222
223 gpe1: gpio-controller@11400100 {
224 compatible = "samsung,exynos4-gpio";
225 reg = <0x11400100 0x20>;
226 #gpio-cells = <4>;
227 };
228
229 gpe2: gpio-controller@11400120 {
230 compatible = "samsung,exynos4-gpio";
231 reg = <0x11400120 0x20>;
232 #gpio-cells = <4>;
233 };
234
235 gpe3: gpio-controller@11400140 {
236 compatible = "samsung,exynos4-gpio";
237 reg = <0x11400140 0x20>;
238 #gpio-cells = <4>;
239 };
240
241 gpe4: gpio-controller@11400160 {
242 compatible = "samsung,exynos4-gpio";
243 reg = <0x11400160 0x20>;
244 #gpio-cells = <4>;
245 };
246
247 gpf0: gpio-controller@11400180 {
248 compatible = "samsung,exynos4-gpio";
249 reg = <0x11400180 0x20>;
250 #gpio-cells = <4>;
251 };
252
253 gpf1: gpio-controller@114001A0 {
254 compatible = "samsung,exynos4-gpio";
255 reg = <0x114001A0 0x20>;
256 #gpio-cells = <4>;
257 };
258
259 gpf2: gpio-controller@114001C0 {
260 compatible = "samsung,exynos4-gpio";
261 reg = <0x114001C0 0x20>;
262 #gpio-cells = <4>;
263 };
264
265 gpf3: gpio-controller@114001E0 {
266 compatible = "samsung,exynos4-gpio";
267 reg = <0x114001E0 0x20>;
268 #gpio-cells = <4>;
269 };
270
271 gpj0: gpio-controller@11000000 {
272 compatible = "samsung,exynos4-gpio";
273 reg = <0x11000000 0x20>;
274 #gpio-cells = <4>;
275 };
276
277 gpj1: gpio-controller@11000020 {
278 compatible = "samsung,exynos4-gpio";
279 reg = <0x11000020 0x20>;
280 #gpio-cells = <4>;
281 };
282
283 gpk0: gpio-controller@11000040 {
284 compatible = "samsung,exynos4-gpio";
285 reg = <0x11000040 0x20>;
286 #gpio-cells = <4>;
287 };
288
289 gpk1: gpio-controller@11000060 {
290 compatible = "samsung,exynos4-gpio";
291 reg = <0x11000060 0x20>;
292 #gpio-cells = <4>;
293 };
294
295 gpk2: gpio-controller@11000080 {
296 compatible = "samsung,exynos4-gpio";
297 reg = <0x11000080 0x20>;
298 #gpio-cells = <4>;
299 };
300
301 gpk3: gpio-controller@110000A0 {
302 compatible = "samsung,exynos4-gpio";
303 reg = <0x110000A0 0x20>;
304 #gpio-cells = <4>;
305 };
306
307 gpl0: gpio-controller@110000C0 {
308 compatible = "samsung,exynos4-gpio";
309 reg = <0x110000C0 0x20>;
310 #gpio-cells = <4>;
311 };
312
313 gpl1: gpio-controller@110000E0 {
314 compatible = "samsung,exynos4-gpio";
315 reg = <0x110000E0 0x20>;
316 #gpio-cells = <4>;
317 };
318
319 gpl2: gpio-controller@11000100 {
320 compatible = "samsung,exynos4-gpio";
321 reg = <0x11000100 0x20>;
322 #gpio-cells = <4>;
323 };
324
325 gpy0: gpio-controller@11000120 {
326 compatible = "samsung,exynos4-gpio";
327 reg = <0x11000120 0x20>;
328 #gpio-cells = <4>;
329 };
330
331 gpy1: gpio-controller@11000140 {
332 compatible = "samsung,exynos4-gpio";
333 reg = <0x11000140 0x20>;
334 #gpio-cells = <4>;
335 };
336
337 gpy2: gpio-controller@11000160 {
338 compatible = "samsung,exynos4-gpio";
339 reg = <0x11000160 0x20>;
340 #gpio-cells = <4>;
341 };
342
343 gpy3: gpio-controller@11000180 {
344 compatible = "samsung,exynos4-gpio";
345 reg = <0x11000180 0x20>;
346 #gpio-cells = <4>;
347 };
348
349 gpy4: gpio-controller@110001A0 {
350 compatible = "samsung,exynos4-gpio";
351 reg = <0x110001A0 0x20>;
352 #gpio-cells = <4>;
353 };
354
355 gpy5: gpio-controller@110001C0 {
356 compatible = "samsung,exynos4-gpio";
357 reg = <0x110001C0 0x20>;
358 #gpio-cells = <4>;
359 };
360
361 gpy6: gpio-controller@110001E0 {
362 compatible = "samsung,exynos4-gpio";
363 reg = <0x110001E0 0x20>;
364 #gpio-cells = <4>;
365 };
366
367 gpx0: gpio-controller@11000C00 {
368 compatible = "samsung,exynos4-gpio";
369 reg = <0x11000C00 0x20>;
370 #gpio-cells = <4>;
371 };
372
373 gpx1: gpio-controller@11000C20 {
374 compatible = "samsung,exynos4-gpio";
375 reg = <0x11000C20 0x20>;
376 #gpio-cells = <4>;
377 };
378
379 gpx2: gpio-controller@11000C40 {
380 compatible = "samsung,exynos4-gpio";
381 reg = <0x11000C40 0x20>;
382 #gpio-cells = <4>;
383 };
384
385 gpx3: gpio-controller@11000C60 {
386 compatible = "samsung,exynos4-gpio";
387 reg = <0x11000C60 0x20>;
388 #gpio-cells = <4>;
389 };
390
391 gpz: gpio-controller@03860000 {
392 compatible = "samsung,exynos4-gpio";
393 reg = <0x03860000 0x20>;
394 #gpio-cells = <4>;
395 };
396 };
397};
arch/arm/boot/dts/highbank.dts+12−0
@@ -194,5 +194,17 @@ · 193 unmodified lines
194 reg = <0xfff3d000 0x1000>;194 reg = <0xfff3d000 0x1000>;
195 interrupts = <0 92 4>;195 interrupts = <0 92 4>;
196 };196 };
197
198 ethernet@fff50000 {
199 compatible = "calxeda,hb-xgmac";
200 reg = <0xfff50000 0x1000>;
201 interrupts = <0 77 4 0 78 4 0 79 4>;
202 };
203
204 ethernet@fff51000 {
205 compatible = "calxeda,hb-xgmac";
206 reg = <0xfff51000 0x1000>;
207 interrupts = <0 80 4 0 81 4 0 82 4>;
208 };
197 };209 };
198};210};
arch/arm/boot/dts/imx51-babbage.dts+8−9
@@ -35,20 +35,19 @@ · 34 unmodified lines
35 };35 };
36 36
37 esdhc@70008000 { /* ESDHC2 */37 esdhc@70008000 { /* ESDHC2 */
38 cd-gpios = <&gpio0 6 0>; /* GPIO1_6 */38 cd-gpios = <&gpio1 6 0>;
39 wp-gpios = <&gpio0 5 0>; /* GPIO1_5 */39 wp-gpios = <&gpio1 5 0>;
40 status = "okay";40 status = "okay";
41 };41 };
42 42
43 uart2: uart@7000c000 { /* UART3 */43 uart3: uart@7000c000 {
44 fsl,uart-has-rtscts;44 fsl,uart-has-rtscts;
45 status = "okay";45 status = "okay";
46 };46 };
47 47
48 ecspi@70010000 { /* ECSPI1 */48 ecspi@70010000 { /* ECSPI1 */
49 fsl,spi-num-chipselects = <2>;49 fsl,spi-num-chipselects = <2>;
50 cs-gpios = <&gpio3 24 0>, /* GPIO4_24 */50 cs-gpios = <&gpio4 24 0>, <&gpio4 25 0>;
51 <&gpio3 25 0>; /* GPIO4_25 */
52 status = "okay";51 status = "okay";
53 52
54 pmic: mc13892@0 {53 pmic: mc13892@0 {
@@ -57,7 +56,7 @@ · 2 unmodified lines
57 compatible = "fsl,mc13892";56 compatible = "fsl,mc13892";
58 spi-max-frequency = <6000000>;57 spi-max-frequency = <6000000>;
59 reg = <0>;58 reg = <0>;
60 mc13xxx-irq-gpios = <&gpio0 8 0>; /* GPIO1_8 */59 mc13xxx-irq-gpios = <&gpio1 8 0>;
61 fsl,mc13xxx-uses-regulator;60 fsl,mc13xxx-uses-regulator;
62 };61 };
63 62
@@ -91,12 +90,12 @@ · 27 unmodified lines
91 reg = <0x73fa8000 0x4000>;90 reg = <0x73fa8000 0x4000>;
92 };91 };
93 92
94 uart0: uart@73fbc000 {93 uart1: uart@73fbc000 {
95 fsl,uart-has-rtscts;94 fsl,uart-has-rtscts;
96 status = "okay";95 status = "okay";
97 };96 };
98 97
99 uart1: uart@73fc0000 {98 uart2: uart@73fc0000 {
100 status = "okay";99 status = "okay";
101 };100 };
102 };101 };
@@ -127,7 +126,7 @@ · 24 unmodified lines
127 126
128 power {127 power {
129 label = "Power Button";128 label = "Power Button";
130 gpios = <&gpio1 21 0>;129 gpios = <&gpio2 21 0>;
131 linux,code = <116>; /* KEY_POWER */130 linux,code = <116>; /* KEY_POWER */
132 gpio-key,wakeup;131 gpio-key,wakeup;
133 };132 };
arch/arm/boot/dts/imx51.dtsi+10−10
@@ -14,9 +14,9 @@ · 13 unmodified lines
14 14
15/ {15/ {
16 aliases {16 aliases {
17 serial0 = &uart0;17 serial0 = &uart1;
18 serial1 = &uart1;18 serial1 = &uart2;
19 serial2 = &uart2;19 serial2 = &uart3;
20 };20 };
21 21
22 tzic: tz-interrupt-controller@e0000000 {22 tzic: tz-interrupt-controller@e0000000 {
@@ -86,7 +86,7 @@ · 63 unmodified lines
86 status = "disabled";86 status = "disabled";
87 };87 };
88 88
89 uart2: uart@7000c000 { /* UART3 */89 uart3: uart@7000c000 {
90 compatible = "fsl,imx51-uart", "fsl,imx21-uart";90 compatible = "fsl,imx51-uart", "fsl,imx21-uart";
91 reg = <0x7000c000 0x4000>;91 reg = <0x7000c000 0x4000>;
92 interrupts = <33>;92 interrupts = <33>;
@@ -117,7 +117,7 @@ · 24 unmodified lines
117 };117 };
118 };118 };
119 119
120 gpio0: gpio@73f84000 { /* GPIO1 */120 gpio1: gpio@73f84000 {
121 compatible = "fsl,imx51-gpio", "fsl,imx31-gpio";121 compatible = "fsl,imx51-gpio", "fsl,imx31-gpio";
122 reg = <0x73f84000 0x4000>;122 reg = <0x73f84000 0x4000>;
123 interrupts = <50 51>;123 interrupts = <50 51>;
@@ -127,7 +127,7 @@ · 3 unmodified lines
127 #interrupt-cells = <1>;127 #interrupt-cells = <1>;
128 };128 };
129 129
130 gpio1: gpio@73f88000 { /* GPIO2 */130 gpio2: gpio@73f88000 {
131 compatible = "fsl,imx51-gpio", "fsl,imx31-gpio";131 compatible = "fsl,imx51-gpio", "fsl,imx31-gpio";
132 reg = <0x73f88000 0x4000>;132 reg = <0x73f88000 0x4000>;
133 interrupts = <52 53>;133 interrupts = <52 53>;
@@ -137,7 +137,7 @@ · 3 unmodified lines
137 #interrupt-cells = <1>;137 #interrupt-cells = <1>;
138 };138 };
139 139
140 gpio2: gpio@73f8c000 { /* GPIO3 */140 gpio3: gpio@73f8c000 {
141 compatible = "fsl,imx51-gpio", "fsl,imx31-gpio";141 compatible = "fsl,imx51-gpio", "fsl,imx31-gpio";
142 reg = <0x73f8c000 0x4000>;142 reg = <0x73f8c000 0x4000>;
143 interrupts = <54 55>;143 interrupts = <54 55>;
@@ -147,7 +147,7 @@ · 3 unmodified lines
147 #interrupt-cells = <1>;147 #interrupt-cells = <1>;
148 };148 };
149 149
150 gpio3: gpio@73f90000 { /* GPIO4 */150 gpio4: gpio@73f90000 {
151 compatible = "fsl,imx51-gpio", "fsl,imx31-gpio";151 compatible = "fsl,imx51-gpio", "fsl,imx31-gpio";
152 reg = <0x73f90000 0x4000>;152 reg = <0x73f90000 0x4000>;
153 interrupts = <56 57>;153 interrupts = <56 57>;
@@ -171,14 +171,14 @@ · 17 unmodified lines
171 status = "disabled";171 status = "disabled";
172 };172 };
173 173
174 uart0: uart@73fbc000 {174 uart1: uart@73fbc000 {
175 compatible = "fsl,imx51-uart", "fsl,imx21-uart";175 compatible = "fsl,imx51-uart", "fsl,imx21-uart";
176 reg = <0x73fbc000 0x4000>;176 reg = <0x73fbc000 0x4000>;
177 interrupts = <31>;177 interrupts = <31>;
178 status = "disabled";178 status = "disabled";
179 };179 };
180 180
181 uart1: uart@73fc0000 {181 uart2: uart@73fc0000 {
182 compatible = "fsl,imx51-uart", "fsl,imx21-uart";182 compatible = "fsl,imx51-uart", "fsl,imx21-uart";
183 reg = <0x73fc0000 0x4000>;183 reg = <0x73fc0000 0x4000>;
184 interrupts = <32>;184 interrupts = <32>;
arch/arm/boot/dts/imx53-ard.dts+9−9
@@ -29,8 +29,8 @@ · 28 unmodified lines
29 aips@50000000 { /* AIPS1 */29 aips@50000000 { /* AIPS1 */
30 spba@50000000 {30 spba@50000000 {
31 esdhc@50004000 { /* ESDHC1 */31 esdhc@50004000 { /* ESDHC1 */
32 cd-gpios = <&gpio0 1 0>; /* GPIO1_1 */32 cd-gpios = <&gpio1 1 0>;
33 wp-gpios = <&gpio0 9 0>; /* GPIO1_9 */33 wp-gpios = <&gpio1 9 0>;
34 status = "okay";34 status = "okay";
35 };35 };
36 };36 };
@@ -44,7 +44,7 @@ · 7 unmodified lines
44 reg = <0x53fa8000 0x4000>;44 reg = <0x53fa8000 0x4000>;
45 };45 };
46 46
47 uart0: uart@53fbc000 { /* UART1 */47 uart1: uart@53fbc000 {
48 status = "okay";48 status = "okay";
49 };49 };
50 };50 };
@@ -67,7 +67,7 @@ · 16 unmodified lines
67 compatible = "smsc,lan9220", "smsc,lan9115";67 compatible = "smsc,lan9220", "smsc,lan9115";
68 reg = <0xf4000000 0x2000000>;68 reg = <0xf4000000 0x2000000>;
69 phy-mode = "mii";69 phy-mode = "mii";
70 interrupt-parent = <&gpio1>;70 interrupt-parent = <&gpio2>;
71 interrupts = <31>;71 interrupts = <31>;
72 reg-io-width = <4>;72 reg-io-width = <4>;
73 smsc,irq-push-pull;73 smsc,irq-push-pull;
@@ -79,34 +79,34 @@ · 5 unmodified lines
79 79
80 home {80 home {
81 label = "Home";81 label = "Home";
82 gpios = <&gpio4 10 0>; /* GPIO5_10 */82 gpios = <&gpio5 10 0>;
83 linux,code = <102>; /* KEY_HOME */83 linux,code = <102>; /* KEY_HOME */
84 gpio-key,wakeup;84 gpio-key,wakeup;
85 };85 };
86 86
87 back {87 back {
88 label = "Back";88 label = "Back";
89 gpios = <&gpio4 11 0>; /* GPIO5_11 */89 gpios = <&gpio5 11 0>;
90 linux,code = <158>; /* KEY_BACK */90 linux,code = <158>; /* KEY_BACK */
91 gpio-key,wakeup;91 gpio-key,wakeup;
92 };92 };
93 93
94 program {94 program {
95 label = "Program";95 label = "Program";
96 gpios = <&gpio4 12 0>; /* GPIO5_12 */96 gpios = <&gpio5 12 0>;
97 linux,code = <362>; /* KEY_PROGRAM */97 linux,code = <362>; /* KEY_PROGRAM */
98 gpio-key,wakeup;98 gpio-key,wakeup;
99 };99 };
100 100
101 volume-up {101 volume-up {
102 label = "Volume Up";102 label = "Volume Up";
103 gpios = <&gpio4 13 0>; /* GPIO5_13 */103 gpios = <&gpio5 13 0>;
104 linux,code = <115>; /* KEY_VOLUMEUP */104 linux,code = <115>; /* KEY_VOLUMEUP */
105 };105 };
106 106
107 volume-down {107 volume-down {
108 label = "Volume Down";108 label = "Volume Down";
109 gpios = <&gpio3 0 0>; /* GPIO4_0 */109 gpios = <&gpio4 0 0>;
110 linux,code = <114>; /* KEY_VOLUMEDOWN */110 linux,code = <114>; /* KEY_VOLUMEDOWN */
111 };111 };
112 };112 };
arch/arm/boot/dts/imx53-evk.dts+8−9
@@ -29,15 +29,14 @@ · 28 unmodified lines
29 aips@50000000 { /* AIPS1 */29 aips@50000000 { /* AIPS1 */
30 spba@50000000 {30 spba@50000000 {
31 esdhc@50004000 { /* ESDHC1 */31 esdhc@50004000 { /* ESDHC1 */
32 cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */32 cd-gpios = <&gpio3 13 0>;
33 wp-gpios = <&gpio2 14 0>; /* GPIO3_14 */33 wp-gpios = <&gpio3 14 0>;
34 status = "okay";34 status = "okay";
35 };35 };
36 36
37 ecspi@50010000 { /* ECSPI1 */37 ecspi@50010000 { /* ECSPI1 */
38 fsl,spi-num-chipselects = <2>;38 fsl,spi-num-chipselects = <2>;
39 cs-gpios = <&gpio1 30 0>, /* GPIO2_30 */39 cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>;
40 <&gpio2 19 0>; /* GPIO3_19 */
41 status = "okay";40 status = "okay";
42 41
43 flash: at45db321d@1 {42 flash: at45db321d@1 {
@@ -61,8 +60,8 @@ · 17 unmodified lines
61 };60 };
62 61
63 esdhc@50020000 { /* ESDHC3 */62 esdhc@50020000 { /* ESDHC3 */
64 cd-gpios = <&gpio2 11 0>; /* GPIO3_11 */63 cd-gpios = <&gpio3 11 0>;
65 wp-gpios = <&gpio2 12 0>; /* GPIO3_12 */64 wp-gpios = <&gpio3 12 0>;
66 status = "okay";65 status = "okay";
67 };66 };
68 };67 };
@@ -76,7 +75,7 @@ · 7 unmodified lines
76 reg = <0x53fa8000 0x4000>;75 reg = <0x53fa8000 0x4000>;
77 };76 };
78 77
79 uart0: uart@53fbc000 { /* UART1 */78 uart1: uart@53fbc000 {
80 status = "okay";79 status = "okay";
81 };80 };
82 };81 };
@@ -102,7 +101,7 @@ · 19 unmodified lines
102 101
103 fec@63fec000 {102 fec@63fec000 {
104 phy-mode = "rmii";103 phy-mode = "rmii";
105 phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */104 phy-reset-gpios = <&gpio7 6 0>;
106 status = "okay";105 status = "okay";
107 };106 };
108 };107 };
@@ -113,7 +112,7 @@ · 4 unmodified lines
113 112
114 green {113 green {
115 label = "Heartbeat";114 label = "Heartbeat";
116 gpios = <&gpio6 7 0>; /* GPIO7_7 */115 gpios = <&gpio7 7 0>;
117 linux,default-trigger = "heartbeat";116 linux,default-trigger = "heartbeat";
118 };117 };
119 };118 };
arch/arm/boot/dts/imx53-qsb.dts+9−9
@@ -29,13 +29,13 @@ · 28 unmodified lines
29 aips@50000000 { /* AIPS1 */29 aips@50000000 { /* AIPS1 */
30 spba@50000000 {30 spba@50000000 {
31 esdhc@50004000 { /* ESDHC1 */31 esdhc@50004000 { /* ESDHC1 */
32 cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */32 cd-gpios = <&gpio3 13 0>;
33 status = "okay";33 status = "okay";
34 };34 };
35 35
36 esdhc@50020000 { /* ESDHC3 */36 esdhc@50020000 { /* ESDHC3 */
37 cd-gpios = <&gpio2 11 0>; /* GPIO3_11 */37 cd-gpios = <&gpio3 11 0>;
38 wp-gpios = <&gpio2 12 0>; /* GPIO3_12 */38 wp-gpios = <&gpio3 12 0>;
39 status = "okay";39 status = "okay";
40 };40 };
41 };41 };
@@ -49,7 +49,7 @@ · 7 unmodified lines
49 reg = <0x53fa8000 0x4000>;49 reg = <0x53fa8000 0x4000>;
50 };50 };
51 51
52 uart0: uart@53fbc000 { /* UART1 */52 uart1: uart@53fbc000 {
53 status = "okay";53 status = "okay";
54 };54 };
55 };55 };
@@ -84,7 +84,7 @@ · 28 unmodified lines
84 84
85 fec@63fec000 {85 fec@63fec000 {
86 phy-mode = "rmii";86 phy-mode = "rmii";
87 phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */87 phy-reset-gpios = <&gpio7 6 0>;
88 status = "okay";88 status = "okay";
89 };89 };
90 };90 };
@@ -95,20 +95,20 @@ · 4 unmodified lines
95 95
96 power {96 power {
97 label = "Power Button";97 label = "Power Button";
98 gpios = <&gpio0 8 0>; /* GPIO1_8 */98 gpios = <&gpio1 8 0>;
99 linux,code = <116>; /* KEY_POWER */99 linux,code = <116>; /* KEY_POWER */
100 gpio-key,wakeup;100 gpio-key,wakeup;
101 };101 };
102 102
103 volume-up {103 volume-up {
104 label = "Volume Up";104 label = "Volume Up";
105 gpios = <&gpio1 14 0>; /* GPIO2_14 */105 gpios = <&gpio2 14 0>;
106 linux,code = <115>; /* KEY_VOLUMEUP */106 linux,code = <115>; /* KEY_VOLUMEUP */
107 };107 };
108 108
109 volume-down {109 volume-down {
110 label = "Volume Down";110 label = "Volume Down";
111 gpios = <&gpio1 15 0>; /* GPIO2_15 */111 gpios = <&gpio2 15 0>;
112 linux,code = <114>; /* KEY_VOLUMEDOWN */112 linux,code = <114>; /* KEY_VOLUMEDOWN */
113 };113 };
114 };114 };
@@ -118,7 +118,7 @@ · 3 unmodified lines
118 118
119 user {119 user {
120 label = "Heartbeat";120 label = "Heartbeat";
121 gpios = <&gpio6 7 0>; /* GPIO7_7 */121 gpios = <&gpio7 7 0>;
122 linux,default-trigger = "heartbeat";122 linux,default-trigger = "heartbeat";
123 };123 };
124 };124 };
arch/arm/boot/dts/imx53-smd.dts+9−10
@@ -29,8 +29,8 @@ · 28 unmodified lines
29 aips@50000000 { /* AIPS1 */29 aips@50000000 { /* AIPS1 */
30 spba@50000000 {30 spba@50000000 {
31 esdhc@50004000 { /* ESDHC1 */31 esdhc@50004000 { /* ESDHC1 */
32 cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */32 cd-gpios = <&gpio3 13 0>;
33 wp-gpios = <&gpio3 11 0>; /* GPIO4_11 */33 wp-gpios = <&gpio4 11 0>;
34 status = "okay";34 status = "okay";
35 };35 };
36 36
@@ -39,15 +39,14 @@ · 2 unmodified lines
39 status = "okay";39 status = "okay";
40 };40 };
41 41
42 uart2: uart@5000c000 { /* UART3 */42 uart3: uart@5000c000 {
43 fsl,uart-has-rtscts;43 fsl,uart-has-rtscts;
44 status = "okay";44 status = "okay";
45 };45 };
46 46
47 ecspi@50010000 { /* ECSPI1 */47 ecspi@50010000 { /* ECSPI1 */
48 fsl,spi-num-chipselects = <2>;48 fsl,spi-num-chipselects = <2>;
49 cs-gpios = <&gpio1 30 0>, /* GPIO2_30 */49 cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>;
50 <&gpio2 19 0>; /* GPIO3_19 */
51 status = "okay";50 status = "okay";
52 51
53 zigbee: mc1323@0 {52 zigbee: mc1323@0 {
@@ -91,11 +90,11 @@ · 37 unmodified lines
91 reg = <0x53fa8000 0x4000>;90 reg = <0x53fa8000 0x4000>;
92 };91 };
93 92
94 uart0: uart@53fbc000 { /* UART1 */93 uart1: uart@53fbc000 {
95 status = "okay";94 status = "okay";
96 };95 };
97 96
98 uart1: uart@53fc0000 { /* UART2 */97 uart2: uart@53fc0000 {
99 status = "okay";98 status = "okay";
100 };99 };
101 };100 };
@@ -145,7 +144,7 @@ · 43 unmodified lines
145 144
146 fec@63fec000 {145 fec@63fec000 {
147 phy-mode = "rmii";146 phy-mode = "rmii";
148 phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */147 phy-reset-gpios = <&gpio7 6 0>;
149 status = "okay";148 status = "okay";
150 };149 };
151 };150 };
@@ -156,13 +155,13 @@ · 4 unmodified lines
156 155
157 volume-up {156 volume-up {
158 label = "Volume Up";157 label = "Volume Up";
159 gpios = <&gpio1 14 0>; /* GPIO2_14 */158 gpios = <&gpio2 14 0>;
160 linux,code = <115>; /* KEY_VOLUMEUP */159 linux,code = <115>; /* KEY_VOLUMEUP */
161 };160 };
162 161
163 volume-down {162 volume-down {
164 label = "Volume Down";163 label = "Volume Down";
165 gpios = <&gpio1 15 0>; /* GPIO2_15 */164 gpios = <&gpio2 15 0>;
166 linux,code = <114>; /* KEY_VOLUMEDOWN */165 linux,code = <114>; /* KEY_VOLUMEDOWN */
167 };166 };
168 };167 };
arch/arm/boot/dts/imx53.dtsi+17−17
@@ -14,11 +14,11 @@ · 13 unmodified lines
14 14
15/ {15/ {
16 aliases {16 aliases {
17 serial0 = &uart0;17 serial0 = &uart1;
18 serial1 = &uart1;18 serial1 = &uart2;
19 serial2 = &uart2;19 serial2 = &uart3;
20 serial3 = &uart3;20 serial3 = &uart4;
21 serial4 = &uart4;21 serial4 = &uart5;
22 };22 };
23 23
24 tzic: tz-interrupt-controller@0fffc000 {24 tzic: tz-interrupt-controller@0fffc000 {
@@ -88,7 +88,7 @@ · 63 unmodified lines
88 status = "disabled";88 status = "disabled";
89 };89 };
90 90
91 uart2: uart@5000c000 { /* UART3 */91 uart3: uart@5000c000 {
92 compatible = "fsl,imx53-uart", "fsl,imx21-uart";92 compatible = "fsl,imx53-uart", "fsl,imx21-uart";
93 reg = <0x5000c000 0x4000>;93 reg = <0x5000c000 0x4000>;
94 interrupts = <33>;94 interrupts = <33>;
@@ -119,7 +119,7 @@ · 24 unmodified lines
119 };119 };
120 };120 };
121 121
122 gpio0: gpio@53f84000 { /* GPIO1 */122 gpio1: gpio@53f84000 {
123 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";123 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
124 reg = <0x53f84000 0x4000>;124 reg = <0x53f84000 0x4000>;
125 interrupts = <50 51>;125 interrupts = <50 51>;
@@ -129,7 +129,7 @@ · 3 unmodified lines
129 #interrupt-cells = <1>;129 #interrupt-cells = <1>;
130 };130 };
131 131
132 gpio1: gpio@53f88000 { /* GPIO2 */132 gpio2: gpio@53f88000 {
133 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";133 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
134 reg = <0x53f88000 0x4000>;134 reg = <0x53f88000 0x4000>;
135 interrupts = <52 53>;135 interrupts = <52 53>;
@@ -139,7 +139,7 @@ · 3 unmodified lines
139 #interrupt-cells = <1>;139 #interrupt-cells = <1>;
140 };140 };
141 141
142 gpio2: gpio@53f8c000 { /* GPIO3 */142 gpio3: gpio@53f8c000 {
143 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";143 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
144 reg = <0x53f8c000 0x4000>;144 reg = <0x53f8c000 0x4000>;
145 interrupts = <54 55>;145 interrupts = <54 55>;
@@ -149,7 +149,7 @@ · 3 unmodified lines
149 #interrupt-cells = <1>;149 #interrupt-cells = <1>;
150 };150 };
151 151
152 gpio3: gpio@53f90000 { /* GPIO4 */152 gpio4: gpio@53f90000 {
153 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";153 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
154 reg = <0x53f90000 0x4000>;154 reg = <0x53f90000 0x4000>;
155 interrupts = <56 57>;155 interrupts = <56 57>;
@@ -173,21 +173,21 @@ · 17 unmodified lines
173 status = "disabled";173 status = "disabled";
174 };174 };
175 175
176 uart0: uart@53fbc000 { /* UART1 */176 uart1: uart@53fbc000 {
177 compatible = "fsl,imx53-uart", "fsl,imx21-uart";177 compatible = "fsl,imx53-uart", "fsl,imx21-uart";
178 reg = <0x53fbc000 0x4000>;178 reg = <0x53fbc000 0x4000>;
179 interrupts = <31>;179 interrupts = <31>;
180 status = "disabled";180 status = "disabled";
181 };181 };
182 182
183 uart1: uart@53fc0000 { /* UART2 */183 uart2: uart@53fc0000 {
184 compatible = "fsl,imx53-uart", "fsl,imx21-uart";184 compatible = "fsl,imx53-uart", "fsl,imx21-uart";
185 reg = <0x53fc0000 0x4000>;185 reg = <0x53fc0000 0x4000>;
186 interrupts = <32>;186 interrupts = <32>;
187 status = "disabled";187 status = "disabled";
188 };188 };
189 189
190 gpio4: gpio@53fdc000 { /* GPIO5 */190 gpio5: gpio@53fdc000 {
191 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";191 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
192 reg = <0x53fdc000 0x4000>;192 reg = <0x53fdc000 0x4000>;
193 interrupts = <103 104>;193 interrupts = <103 104>;
@@ -197,7 +197,7 @@ · 3 unmodified lines
197 #interrupt-cells = <1>;197 #interrupt-cells = <1>;
198 };198 };
199 199
200 gpio5: gpio@53fe0000 { /* GPIO6 */200 gpio6: gpio@53fe0000 {
201 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";201 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
202 reg = <0x53fe0000 0x4000>;202 reg = <0x53fe0000 0x4000>;
203 interrupts = <105 106>;203 interrupts = <105 106>;
@@ -207,7 +207,7 @@ · 3 unmodified lines
207 #interrupt-cells = <1>;207 #interrupt-cells = <1>;
208 };208 };
209 209
210 gpio6: gpio@53fe4000 { /* GPIO7 */210 gpio7: gpio@53fe4000 {
211 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";211 compatible = "fsl,imx53-gpio", "fsl,imx31-gpio";
212 reg = <0x53fe4000 0x4000>;212 reg = <0x53fe4000 0x4000>;
213 interrupts = <107 108>;213 interrupts = <107 108>;
@@ -226,7 +226,7 @@ · 12 unmodified lines
226 status = "disabled";226 status = "disabled";
227 };227 };
228 228
229 uart3: uart@53ff0000 { /* UART4 */229 uart4: uart@53ff0000 {
230 compatible = "fsl,imx53-uart", "fsl,imx21-uart";230 compatible = "fsl,imx53-uart", "fsl,imx21-uart";
231 reg = <0x53ff0000 0x4000>;231 reg = <0x53ff0000 0x4000>;
232 interrupts = <13>;232 interrupts = <13>;
@@ -241,7 +241,7 @@ · 8 unmodified lines
241 reg = <0x60000000 0x10000000>;241 reg = <0x60000000 0x10000000>;
242 ranges;242 ranges;
243 243
244 uart4: uart@63f90000 { /* UART5 */244 uart5: uart@63f90000 {
245 compatible = "fsl,imx53-uart", "fsl,imx21-uart";245 compatible = "fsl,imx53-uart", "fsl,imx21-uart";
246 reg = <0x63f90000 0x4000>;246 reg = <0x63f90000 0x4000>;
247 interrupts = <86>;247 interrupts = <86>;
arch/arm/boot/dts/imx6q-arm2.dtsrenamed from arch/arm/boot/dts/imx6q-sabreauto.dts+6−6
@@ -14,8 +14,8 @@ · 13 unmodified lines
14/include/ "imx6q.dtsi"14/include/ "imx6q.dtsi"
15 15
16/ {16/ {
17 model = "Freescale i.MX6 Quad SABRE Automotive Board";17 model = "Freescale i.MX6 Quad Armadillo2 Board";
18 compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";18 compatible = "fsl,imx6q-arm2", "fsl,imx6q";
19 19
20 chosen {20 chosen {
21 bootargs = "console=ttymxc0,115200 root=/dev/mmcblk3p3 rootwait";21 bootargs = "console=ttymxc0,115200 root=/dev/mmcblk3p3 rootwait";
@@ -34,8 +34,8 @@ · 12 unmodified lines
34 };34 };
35 35
36 usdhc@02198000 { /* uSDHC3 */36 usdhc@02198000 { /* uSDHC3 */
37 cd-gpios = <&gpio5 11 0>; /* GPIO6_11 */37 cd-gpios = <&gpio6 11 0>;
38 wp-gpios = <&gpio5 14 0>; /* GPIO6_14 */38 wp-gpios = <&gpio6 14 0>;
39 status = "okay";39 status = "okay";
40 };40 };
41 41
@@ -44,7 +44,7 @@ · 2 unmodified lines
44 status = "okay";44 status = "okay";
45 };45 };
46 46
47 uart3: uart@021f0000 { /* UART4 */47 uart4: uart@021f0000 {
48 status = "okay";48 status = "okay";
49 };49 };
50 };50 };
@@ -55,7 +55,7 @@ · 4 unmodified lines
55 55
56 debug-led {56 debug-led {
57 label = "Heartbeat";57 label = "Heartbeat";
58 gpios = <&gpio2 25 0>; /* GPIO3_25 */58 gpios = <&gpio3 25 0>;
59 linux,default-trigger = "heartbeat";59 linux,default-trigger = "heartbeat";
60 };60 };
61 };61 };
arch/arm/boot/dts/imx6q-sabrelite.dts+49−0
@@ -0,0 +1,49 @@
1/*
2 * Copyright 2011 Freescale Semiconductor, Inc.
3 * Copyright 2011 Linaro Ltd.
4 *
5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations:
8 *
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
11 */
12
13/dts-v1/;
14/include/ "imx6q.dtsi"
15
16/ {
17 model = "Freescale i.MX6 Quad SABRE Lite Board";
18 compatible = "fsl,imx6q-sabrelite", "fsl,imx6q";
19
20 memory {
21 reg = <0x10000000 0x40000000>;
22 };
23
24 soc {
25 aips-bus@02100000 { /* AIPS2 */
26 enet@02188000 {
27 phy-mode = "rgmii";
28 phy-reset-gpios = <&gpio3 23 0>;
29 status = "okay";
30 };
31
32 usdhc@02198000 { /* uSDHC3 */
33 cd-gpios = <&gpio7 0 0>;
34 wp-gpios = <&gpio7 1 0>;
35 status = "okay";
36 };
37
38 usdhc@0219c000 { /* uSDHC4 */
39 cd-gpios = <&gpio2 6 0>;
40 wp-gpios = <&gpio2 7 0>;
41 status = "okay";
42 };
43
44 uart2: uart@021e8000 {
45 status = "okay";
46 };
47 };
48 };
49};
arch/arm/boot/dts/imx6q.dtsi+17−17
@@ -14,11 +14,11 @@ · 13 unmodified lines
14 14
15/ {15/ {
16 aliases {16 aliases {
17 serial0 = &uart0;17 serial0 = &uart1;
18 serial1 = &uart1;18 serial1 = &uart2;
19 serial2 = &uart2;19 serial2 = &uart3;
20 serial3 = &uart3;20 serial3 = &uart4;
21 serial4 = &uart4;21 serial4 = &uart5;
22 };22 };
23 23
24 cpus {24 cpus {
@@ -165,7 +165,7 @@ · 140 unmodified lines
165 status = "disabled";165 status = "disabled";
166 };166 };
167 167
168 uart0: uart@02020000 { /* UART1 */168 uart1: uart@02020000 {
169 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";169 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
170 reg = <0x02020000 0x4000>;170 reg = <0x02020000 0x4000>;
171 interrupts = <0 26 0x04>;171 interrupts = <0 26 0x04>;
@@ -247,7 +247,7 @@ · 75 unmodified lines
247 interrupts = <0 55 0x04>;247 interrupts = <0 55 0x04>;
248 };248 };
249 249
250 gpio0: gpio@0209c000 { /* GPIO1 */250 gpio1: gpio@0209c000 {
251 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";251 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
252 reg = <0x0209c000 0x4000>;252 reg = <0x0209c000 0x4000>;
253 interrupts = <0 66 0x04 0 67 0x04>;253 interrupts = <0 66 0x04 0 67 0x04>;
@@ -257,7 +257,7 @@ · 3 unmodified lines
257 #interrupt-cells = <1>;257 #interrupt-cells = <1>;
258 };258 };
259 259
260 gpio1: gpio@020a0000 { /* GPIO2 */260 gpio2: gpio@020a0000 {
261 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";261 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
262 reg = <0x020a0000 0x4000>;262 reg = <0x020a0000 0x4000>;
263 interrupts = <0 68 0x04 0 69 0x04>;263 interrupts = <0 68 0x04 0 69 0x04>;
@@ -267,7 +267,7 @@ · 3 unmodified lines
267 #interrupt-cells = <1>;267 #interrupt-cells = <1>;
268 };268 };
269 269
270 gpio2: gpio@020a4000 { /* GPIO3 */270 gpio3: gpio@020a4000 {
271 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";271 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
272 reg = <0x020a4000 0x4000>;272 reg = <0x020a4000 0x4000>;
273 interrupts = <0 70 0x04 0 71 0x04>;273 interrupts = <0 70 0x04 0 71 0x04>;
@@ -277,7 +277,7 @@ · 3 unmodified lines
277 #interrupt-cells = <1>;277 #interrupt-cells = <1>;
278 };278 };
279 279
280 gpio3: gpio@020a8000 { /* GPIO4 */280 gpio4: gpio@020a8000 {
281 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";281 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
282 reg = <0x020a8000 0x4000>;282 reg = <0x020a8000 0x4000>;
283 interrupts = <0 72 0x04 0 73 0x04>;283 interrupts = <0 72 0x04 0 73 0x04>;
@@ -287,7 +287,7 @@ · 3 unmodified lines
287 #interrupt-cells = <1>;287 #interrupt-cells = <1>;
288 };288 };
289 289
290 gpio4: gpio@020ac000 { /* GPIO5 */290 gpio5: gpio@020ac000 {
291 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";291 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
292 reg = <0x020ac000 0x4000>;292 reg = <0x020ac000 0x4000>;
293 interrupts = <0 74 0x04 0 75 0x04>;293 interrupts = <0 74 0x04 0 75 0x04>;
@@ -297,7 +297,7 @@ · 3 unmodified lines
297 #interrupt-cells = <1>;297 #interrupt-cells = <1>;
298 };298 };
299 299
300 gpio5: gpio@020b0000 { /* GPIO6 */300 gpio6: gpio@020b0000 {
301 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";301 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
302 reg = <0x020b0000 0x4000>;302 reg = <0x020b0000 0x4000>;
303 interrupts = <0 76 0x04 0 77 0x04>;303 interrupts = <0 76 0x04 0 77 0x04>;
@@ -307,7 +307,7 @@ · 3 unmodified lines
307 #interrupt-cells = <1>;307 #interrupt-cells = <1>;
308 };308 };
309 309
310 gpio6: gpio@020b4000 { /* GPIO7 */310 gpio7: gpio@020b4000 {
311 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";311 compatible = "fsl,imx6q-gpio", "fsl,imx31-gpio";
312 reg = <0x020b4000 0x4000>;312 reg = <0x020b4000 0x4000>;
313 interrupts = <0 78 0x04 0 79 0x04>;313 interrupts = <0 78 0x04 0 79 0x04>;
@@ -543,28 +543,28 @@ · 229 unmodified lines
543 interrupts = <0 18 0x04>;543 interrupts = <0 18 0x04>;
544 };544 };
545 545
546 uart1: uart@021e8000 { /* UART2 */546 uart2: uart@021e8000 {
547 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";547 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
548 reg = <0x021e8000 0x4000>;548 reg = <0x021e8000 0x4000>;
549 interrupts = <0 27 0x04>;549 interrupts = <0 27 0x04>;
550 status = "disabled";550 status = "disabled";
551 };551 };
552 552
553 uart2: uart@021ec000 { /* UART3 */553 uart3: uart@021ec000 {
554 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";554 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
555 reg = <0x021ec000 0x4000>;555 reg = <0x021ec000 0x4000>;
556 interrupts = <0 28 0x04>;556 interrupts = <0 28 0x04>;
557 status = "disabled";557 status = "disabled";
558 };558 };
559 559
560 uart3: uart@021f0000 { /* UART4 */560 uart4: uart@021f0000 {
561 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";561 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
562 reg = <0x021f0000 0x4000>;562 reg = <0x021f0000 0x4000>;
563 interrupts = <0 29 0x04>;563 interrupts = <0 29 0x04>;
564 status = "disabled";564 status = "disabled";
565 };565 };
566 566
567 uart4: uart@021f4000 { /* UART5 */567 uart5: uart@021f4000 {
568 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";568 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
569 reg = <0x021f4000 0x4000>;569 reg = <0x021f4000 0x4000>;
570 interrupts = <0 30 0x04>;570 interrupts = <0 30 0x04>;
arch/arm/boot/dts/omap2.dtsi+67−0
@@ -0,0 +1,67 @@
1/*
2 * Device Tree Source for OMAP2 SoC
3 *
4 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/include/ "skeleton.dtsi"
12
13/ {
14 compatible = "ti,omap2430", "ti,omap2420", "ti,omap2";
15
16 aliases {
17 serial0 = &uart1;
18 serial1 = &uart2;
19 serial2 = &uart3;
20 };
21
22 cpus {
23 cpu@0 {
24 compatible = "arm,arm1136jf-s";
25 };
26 };
27
28 soc {
29 compatible = "ti,omap-infra";
30 mpu {
31 compatible = "ti,omap2-mpu";
32 ti,hwmods = "mpu";
33 };
34 };
35
36 ocp {
37 compatible = "simple-bus";
38 #address-cells = <1>;
39 #size-cells = <1>;
40 ranges;
41 ti,hwmods = "l3_main";
42
43 intc: interrupt-controller@1 {
44 compatible = "ti,omap2-intc";
45 interrupt-controller;
46 #interrupt-cells = <1>;
47 };
48
49 uart1: serial@4806a000 {
50 compatible = "ti,omap2-uart";
51 ti,hwmods = "uart1";
52 clock-frequency = <48000000>;
53 };
54
55 uart2: serial@4806c000 {
56 compatible = "ti,omap2-uart";
57 ti,hwmods = "uart2";
58 clock-frequency = <48000000>;
59 };
60
61 uart3: serial@4806e000 {
62 compatible = "ti,omap2-uart";
63 ti,hwmods = "uart3";
64 clock-frequency = <48000000>;
65 };
66 };
67};
arch/arm/boot/dts/omap3.dtsi+31−0
@@ -13,6 +13,13 @@ · 12 unmodified lines
13/ {13/ {
14 compatible = "ti,omap3430", "ti,omap3";14 compatible = "ti,omap3430", "ti,omap3";
15 15
16 aliases {
17 serial0 = &uart1;
18 serial1 = &uart2;
19 serial2 = &uart3;
20 serial3 = &uart4;
21 };
22
16 cpus {23 cpus {
17 cpu@0 {24 cpu@0 {
18 compatible = "arm,cortex-a8";25 compatible = "arm,cortex-a8";
@@ -59,5 +66,29 @@ · 40 unmodified lines
59 interrupt-controller;66 interrupt-controller;
60 #interrupt-cells = <1>;67 #interrupt-cells = <1>;
61 };68 };
69
70 uart1: serial@0x4806a000 {
71 compatible = "ti,omap3-uart";
72 ti,hwmods = "uart1";
73 clock-frequency = <48000000>;
74 };
75
76 uart2: serial@0x4806c000 {
77 compatible = "ti,omap3-uart";
78 ti,hwmods = "uart2";
79 clock-frequency = <48000000>;
80 };
81
82 uart3: serial@0x49020000 {
83 compatible = "ti,omap3-uart";
84 ti,hwmods = "uart3";
85 clock-frequency = <48000000>;
86 };
87
88 uart4: serial@0x49042000 {
89 compatible = "ti,omap3-uart";
90 ti,hwmods = "uart4";
91 clock-frequency = <48000000>;
92 };
62 };93 };
63};94};
arch/arm/boot/dts/omap4.dtsi+28−0
@@ -21,6 +21,10 @@ · 20 unmodified lines
21 interrupt-parent = <&gic>;21 interrupt-parent = <&gic>;
22 22
23 aliases {23 aliases {
24 serial0 = &uart1;
25 serial1 = &uart2;
26 serial2 = &uart3;
27 serial3 = &uart4;
24 };28 };
25 29
26 cpus {30 cpus {
@@ -99,5 +103,29 @@ · 72 unmodified lines
99 reg = <0x48241000 0x1000>,103 reg = <0x48241000 0x1000>,
100 <0x48240100 0x0100>;104 <0x48240100 0x0100>;
101 };105 };
106
107 uart1: serial@0x4806a000 {
108 compatible = "ti,omap4-uart";
109 ti,hwmods = "uart1";
110 clock-frequency = <48000000>;
111 };
112
113 uart2: serial@0x4806c000 {
114 compatible = "ti,omap4-uart";
115 ti,hwmods = "uart2";
116 clock-frequency = <48000000>;
117 };
118
119 uart3: serial@0x48020000 {
120 compatible = "ti,omap4-uart";
121 ti,hwmods = "uart3";
122 clock-frequency = <48000000>;
123 };
124
125 uart4: serial@0x4806e000 {
126 compatible = "ti,omap4-uart";
127 ti,hwmods = "uart4";
128 clock-frequency = <48000000>;
129 };
102 };130 };
103};131};
arch/arm/boot/dts/tegra-cardhu.dts+36−0
@@ -0,0 +1,36 @@
1/dts-v1/;
2
3/include/ "tegra30.dtsi"
4
5/ {
6 model = "NVIDIA Tegra30 Cardhu evaluation board";
7 compatible = "nvidia,cardhu", "nvidia,tegra30";
8
9 memory {
10 reg = < 0x80000000 0x40000000 >;
11 };
12
13 serial@70006000 {
14 clock-frequency = < 408000000 >;
15 };
16
17 i2c@7000c000 {
18 clock-frequency = <100000>;
19 };
20
21 i2c@7000c400 {
22 clock-frequency = <100000>;
23 };
24
25 i2c@7000c500 {
26 clock-frequency = <100000>;
27 };
28
29 i2c@7000c700 {
30 clock-frequency = <100000>;
31 };
32
33 i2c@7000d000 {
34 clock-frequency = <100000>;
35 };
36};
arch/arm/boot/dts/tegra-harmony.dts+24−5
@@ -1,16 +1,11 @@
1/dts-v1/;1/dts-v1/;
2 2
3/memreserve/ 0x1c000000 0x04000000;
4/include/ "tegra20.dtsi"3/include/ "tegra20.dtsi"
5 4
6/ {5/ {
7 model = "NVIDIA Tegra2 Harmony evaluation board";6 model = "NVIDIA Tegra2 Harmony evaluation board";
8 compatible = "nvidia,harmony", "nvidia,tegra20";7 compatible = "nvidia,harmony", "nvidia,tegra20";
9 8
10 chosen {
11 bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootwait";
12 };
13
14 memory@0 {9 memory@0 {
15 reg = < 0x00000000 0x40000000 >;10 reg = < 0x00000000 0x40000000 >;
16 };11 };
@@ -52,16 +47,40 @@ · 35 unmodified lines
52 ext-mic-en-gpios = <&gpio 185 0>;47 ext-mic-en-gpios = <&gpio 185 0>;
53 };48 };
54 49
50 serial@70006000 {
51 status = "disable";
52 };
53
54 serial@70006040 {
55 status = "disable";
56 };
57
58 serial@70006200 {
59 status = "disable";
60 };
61
55 serial@70006300 {62 serial@70006300 {
56 clock-frequency = < 216000000 >;63 clock-frequency = < 216000000 >;
57 };64 };
58 65
66 serial@70006400 {
67 status = "disable";
68 };
69
70 sdhci@c8000000 {
71 status = "disable";
72 };
73
59 sdhci@c8000200 {74 sdhci@c8000200 {
60 cd-gpios = <&gpio 69 0>; /* gpio PI5 */75 cd-gpios = <&gpio 69 0>; /* gpio PI5 */
61 wp-gpios = <&gpio 57 0>; /* gpio PH1 */76 wp-gpios = <&gpio 57 0>; /* gpio PH1 */
62 power-gpios = <&gpio 155 0>; /* gpio PT3 */77 power-gpios = <&gpio 155 0>; /* gpio PT3 */
63 };78 };
64 79
80 sdhci@c8000400 {
81 status = "disable";
82 };
83
65 sdhci@c8000600 {84 sdhci@c8000600 {
66 cd-gpios = <&gpio 58 0>; /* gpio PH2 */85 cd-gpios = <&gpio 58 0>; /* gpio PH2 */
67 wp-gpios = <&gpio 59 0>; /* gpio PH3 */86 wp-gpios = <&gpio 59 0>; /* gpio PH3 */
arch/arm/boot/dts/tegra-paz00.dts+77−0
@@ -0,0 +1,77 @@
1/dts-v1/;
2
3/include/ "tegra20.dtsi"
4
5/ {
6 model = "Toshiba AC100 / Dynabook AZ";
7 compatible = "compal,paz00", "nvidia,tegra20";
8
9 memory@0 {
10 reg = <0x00000000 0x20000000>;
11 };
12
13 i2c@7000c000 {
14 clock-frequency = <400000>;
15 };
16
17 i2c@7000c400 {
18 clock-frequency = <400000>;
19 };
20
21 i2c@7000c500 {
22 status = "disable";
23 };
24
25 nvec@7000c500 {
26 #address-cells = <1>;
27 #size-cells = <0>;
28 compatible = "nvidia,nvec";
29 reg = <0x7000C500 0x100>;
30 interrupts = <0 92 0x04>;
31 clock-frequency = <80000>;
32 request-gpios = <&gpio 170 0>;
33 slave-addr = <138>;
34 };
35
36 i2c@7000d000 {
37 clock-frequency = <400000>;
38 };
39
40 serial@70006000 {
41 clock-frequency = <216000000>;
42 };
43
44 serial@70006040 {
45 status = "disable";
46 };
47
48 serial@70006200 {
49 status = "disable";
50 };
51
52 serial@70006300 {
53 clock-frequency = <216000000>;
54 };
55
56 serial@70006400 {
57 status = "disable";
58 };
59
60 sdhci@c8000000 {
61 cd-gpios = <&gpio 173 0>; /* gpio PV5 */
62 wp-gpios = <&gpio 57 0>; /* gpio PH1 */
63 power-gpios = <&gpio 155 0>; /* gpio PT3 */
64 };
65
66 sdhci@c8000200 {
67 status = "disable";
68 };
69
70 sdhci@c8000400 {
71 status = "disable";
72 };
73
74 sdhci@c8000600 {
75 support-8bit;
76 };
77};
arch/arm/boot/dts/tegra-seaboard.dts+69−5
@@ -1,25 +1,65 @@
1/dts-v1/;1/dts-v1/;
2 2
3/memreserve/ 0x1c000000 0x04000000;
4/include/ "tegra20.dtsi"3/include/ "tegra20.dtsi"
5 4
6/ {5/ {
7 model = "NVIDIA Seaboard";6 model = "NVIDIA Seaboard";
8 compatible = "nvidia,seaboard", "nvidia,tegra20";7 compatible = "nvidia,seaboard", "nvidia,tegra20";
9 8
10 chosen {
11 bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk1p3 rw rootwait";
12 };
13
14 memory {9 memory {
15 device_type = "memory";10 device_type = "memory";
16 reg = < 0x00000000 0x40000000 >;11 reg = < 0x00000000 0x40000000 >;
17 };12 };
18 13
14 i2c@7000c000 {
15 clock-frequency = <400000>;
16 };
17
18 i2c@7000c400 {
19 clock-frequency = <400000>;
20 };
21
22 i2c@7000c500 {
23 clock-frequency = <400000>;
24 };
25
26 i2c@7000d000 {
27 clock-frequency = <400000>;
28
29 adt7461@4c {
30 compatible = "adt7461";
31 reg = <0x4c>;
32 };
33 };
34
35 serial@70006000 {
36 status = "disable";
37 };
38
39 serial@70006040 {
40 status = "disable";
41 };
42
43 serial@70006200 {
44 status = "disable";
45 };
46
19 serial@70006300 {47 serial@70006300 {
20 clock-frequency = < 216000000 >;48 clock-frequency = < 216000000 >;
21 };49 };
22 50
51 serial@70006400 {
52 status = "disable";
53 };
54
55 sdhci@c8000000 {
56 status = "disable";
57 };
58
59 sdhci@c8000200 {
60 status = "disable";
61 };
62
23 sdhci@c8000400 {63 sdhci@c8000400 {
24 cd-gpios = <&gpio 69 0>; /* gpio PI5 */64 cd-gpios = <&gpio 69 0>; /* gpio PI5 */
25 wp-gpios = <&gpio 57 0>; /* gpio PH1 */65 wp-gpios = <&gpio 57 0>; /* gpio PH1 */
@@ -29,4 +69,28 @@ · 3 unmodified lines
29 sdhci@c8000600 {69 sdhci@c8000600 {
30 support-8bit;70 support-8bit;
31 };71 };
72
73 usb@c5000000 {
74 nvidia,vbus-gpio = <&gpio 24 0>; /* PD0 */
75 };
76
77 gpio-keys {
78 compatible = "gpio-keys";
79
80 power {
81 label = "Power";
82 gpios = <&gpio 170 1>; /* gpio PV2, active low */
83 linux,code = <116>; /* KEY_POWER */
84 gpio-key,wakeup;
85 };
86
87 lid {
88 label = "Lid";
89 gpios = <&gpio 23 0>; /* gpio PC7 */
90 linux,input-type = <5>; /* EV_SW */
91 linux,code = <0>; /* SW_LID */
92 debounce-interval = <1>;
93 gpio-key,wakeup;
94 };
95 };
32};96};
arch/arm/boot/dts/tegra-trimslice.dts+65−0
@@ -0,0 +1,65 @@
1/dts-v1/;
2
3/include/ "tegra20.dtsi"
4
5/ {
6 model = "Compulab TrimSlice board";
7 compatible = "compulab,trimslice", "nvidia,tegra20";
8
9 memory@0 {
10 reg = < 0x00000000 0x40000000 >;
11 };
12
13 i2c@7000c000 {
14 clock-frequency = <400000>;
15 };
16
17 i2c@7000c400 {
18 clock-frequency = <400000>;
19 };
20
21 i2c@7000c500 {
22 clock-frequency = <400000>;
23 };
24
25 i2c@7000d000 {
26 status = "disable";
27 };
28
29 serial@70006000 {
30 clock-frequency = < 216000000 >;
31 };
32
33 serial@70006040 {
34 status = "disable";
35 };
36
37 serial@70006200 {
38 status = "disable";
39 };
40
41 serial@70006300 {
42 status = "disable";
43 };
44
45 serial@70006400 {
46 status = "disable";
47 };
48
49 sdhci@c8000000 {
50 status = "disable";
51 };
52
53 sdhci@c8000200 {
54 status = "disable";
55 };
56
57 sdhci@c8000400 {
58 status = "disable";
59 };
60
61 sdhci@c8000600 {
62 cd-gpios = <&gpio 121 0>;
63 wp-gpios = <&gpio 122 0>;
64 };
65};
arch/arm/boot/dts/tegra-ventana.dts+40−5
@@ -1,24 +1,59 @@
1/dts-v1/;1/dts-v1/;
2 2
3/memreserve/ 0x1c000000 0x04000000;
4/include/ "tegra20.dtsi"3/include/ "tegra20.dtsi"
5 4
6/ {5/ {
7 model = "NVIDIA Tegra2 Ventana evaluation board";6 model = "NVIDIA Tegra2 Ventana evaluation board";
8 compatible = "nvidia,ventana", "nvidia,tegra20";7 compatible = "nvidia,ventana", "nvidia,tegra20";
9 8
10 chosen {
11 bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/ram rdinit=/sbin/init";
12 };
13
14 memory {9 memory {
15 reg = < 0x00000000 0x40000000 >;10 reg = < 0x00000000 0x40000000 >;
16 };11 };
17 12
13 i2c@7000c000 {
14 clock-frequency = <400000>;
15 };
16
17 i2c@7000c400 {
18 clock-frequency = <400000>;
19 };
20
21 i2c@7000c500 {
22 clock-frequency = <400000>;
23 };
24
25 i2c@7000d000 {
26 clock-frequency = <400000>;
27 };
28
29 serial@70006000 {
30 status = "disable";
31 };
32
33 serial@70006040 {
34 status = "disable";
35 };
36
37 serial@70006200 {
38 status = "disable";
39 };
40
18 serial@70006300 {41 serial@70006300 {
19 clock-frequency = < 216000000 >;42 clock-frequency = < 216000000 >;
20 };43 };
21 44
45 serial@70006400 {
46 status = "disable";
47 };
48
49 sdhci@c8000000 {
50 status = "disable";
51 };
52
53 sdhci@c8000200 {
54 status = "disable";
55 };
56
22 sdhci@c8000400 {57 sdhci@c8000400 {
23 cd-gpios = <&gpio 69 0>; /* gpio PI5 */58 cd-gpios = <&gpio 69 0>; /* gpio PI5 */
24 wp-gpios = <&gpio 57 0>; /* gpio PH1 */59 wp-gpios = <&gpio 57 0>; /* gpio PH1 */
arch/arm/boot/dts/tegra20.dtsi+46−25
@@ -5,9 +5,9 @@ · 4 unmodified lines
5 interrupt-parent = <&intc>;5 interrupt-parent = <&intc>;
6 6
7 intc: interrupt-controller@50041000 {7 intc: interrupt-controller@50041000 {
8 compatible = "nvidia,tegra20-gic";8 compatible = "arm,cortex-a9-gic";
9 interrupt-controller;9 interrupt-controller;
10 #interrupt-cells = <1>;10 #interrupt-cells = <3>;
11 reg = < 0x50041000 0x1000 >,11 reg = < 0x50041000 0x1000 >,
12 < 0x50040100 0x0100 >;12 < 0x50040100 0x0100 >;
13 };13 };
@@ -17,7 +17,7 @@ · 3 unmodified lines
17 #size-cells = <0>;17 #size-cells = <0>;
18 compatible = "nvidia,tegra20-i2c";18 compatible = "nvidia,tegra20-i2c";
19 reg = <0x7000C000 0x100>;19 reg = <0x7000C000 0x100>;
20 interrupts = < 70 >;20 interrupts = < 0 38 0x04 >;
21 };21 };
22 22
23 i2c@7000c400 {23 i2c@7000c400 {
@@ -25,7 +25,7 @@ · 1 unmodified line
25 #size-cells = <0>;25 #size-cells = <0>;
26 compatible = "nvidia,tegra20-i2c";26 compatible = "nvidia,tegra20-i2c";
27 reg = <0x7000C400 0x100>;27 reg = <0x7000C400 0x100>;
28 interrupts = < 116 >;28 interrupts = < 0 84 0x04 >;
29 };29 };
30 30
31 i2c@7000c500 {31 i2c@7000c500 {
@@ -33,38 +33,32 @@ · 1 unmodified line
33 #size-cells = <0>;33 #size-cells = <0>;
34 compatible = "nvidia,tegra20-i2c";34 compatible = "nvidia,tegra20-i2c";
35 reg = <0x7000C500 0x100>;35 reg = <0x7000C500 0x100>;
36 interrupts = < 124 >;36 interrupts = < 0 92 0x04 >;
37 };37 };
38 38
39 i2c@7000d000 {39 i2c@7000d000 {
40 #address-cells = <1>;40 #address-cells = <1>;
41 #size-cells = <0>;41 #size-cells = <0>;
42 compatible = "nvidia,tegra20-i2c";42 compatible = "nvidia,tegra20-i2c-dvc";
43 reg = <0x7000D000 0x200>;43 reg = <0x7000D000 0x200>;
44 interrupts = < 85 >;44 interrupts = < 0 53 0x04 >;
45 };45 };
46 46
47 i2s@70002800 {47 i2s@70002800 {
48 #address-cells = <1>;
49 #size-cells = <0>;
50 compatible = "nvidia,tegra20-i2s";48 compatible = "nvidia,tegra20-i2s";
51 reg = <0x70002800 0x200>;49 reg = <0x70002800 0x200>;
52 interrupts = < 45 >;50 interrupts = < 0 13 0x04 >;
53 dma-channel = < 2 >;51 dma-channel = < 2 >;
54 };52 };
55 53
56 i2s@70002a00 {54 i2s@70002a00 {
57 #address-cells = <1>;
58 #size-cells = <0>;
59 compatible = "nvidia,tegra20-i2s";55 compatible = "nvidia,tegra20-i2s";
60 reg = <0x70002a00 0x200>;56 reg = <0x70002a00 0x200>;
61 interrupts = < 35 >;57 interrupts = < 0 3 0x04 >;
62 dma-channel = < 1 >;58 dma-channel = < 1 >;
63 };59 };
64 60
65 das@70000c00 {61 das@70000c00 {
66 #address-cells = <1>;
67 #size-cells = <0>;
68 compatible = "nvidia,tegra20-das";62 compatible = "nvidia,tegra20-das";
69 reg = <0x70000c00 0x80>;63 reg = <0x70000c00 0x80>;
70 };64 };
@@ -72,7 +66,13 @@ · 1 unmodified line
72 gpio: gpio@6000d000 {66 gpio: gpio@6000d000 {
73 compatible = "nvidia,tegra20-gpio";67 compatible = "nvidia,tegra20-gpio";
74 reg = < 0x6000d000 0x1000 >;68 reg = < 0x6000d000 0x1000 >;
75 interrupts = < 64 65 66 67 87 119 121 >;69 interrupts = < 0 32 0x04
70 0 33 0x04
71 0 34 0x04
72 0 35 0x04
73 0 55 0x04
74 0 87 0x04
75 0 89 0x04 >;
76 #gpio-cells = <2>;76 #gpio-cells = <2>;
77 gpio-controller;77 gpio-controller;
78 };78 };
@@ -89,59 +89,80 @@ · 10 unmodified lines
89 compatible = "nvidia,tegra20-uart";89 compatible = "nvidia,tegra20-uart";
90 reg = <0x70006000 0x40>;90 reg = <0x70006000 0x40>;
91 reg-shift = <2>;91 reg-shift = <2>;
92 interrupts = < 68 >;92 interrupts = < 0 36 0x04 >;
93 };93 };
94 94
95 serial@70006040 {95 serial@70006040 {
96 compatible = "nvidia,tegra20-uart";96 compatible = "nvidia,tegra20-uart";
97 reg = <0x70006040 0x40>;97 reg = <0x70006040 0x40>;
98 reg-shift = <2>;98 reg-shift = <2>;
99 interrupts = < 69 >;99 interrupts = < 0 37 0x04 >;
100 };100 };
101 101
102 serial@70006200 {102 serial@70006200 {
103 compatible = "nvidia,tegra20-uart";103 compatible = "nvidia,tegra20-uart";
104 reg = <0x70006200 0x100>;104 reg = <0x70006200 0x100>;
105 reg-shift = <2>;105 reg-shift = <2>;
106 interrupts = < 78 >;106 interrupts = < 0 46 0x04 >;
107 };107 };
108 108
109 serial@70006300 {109 serial@70006300 {
110 compatible = "nvidia,tegra20-uart";110 compatible = "nvidia,tegra20-uart";
111 reg = <0x70006300 0x100>;111 reg = <0x70006300 0x100>;
112 reg-shift = <2>;112 reg-shift = <2>;
113 interrupts = < 122 >;113 interrupts = < 0 90 0x04 >;
114 };114 };
115 115
116 serial@70006400 {116 serial@70006400 {
117 compatible = "nvidia,tegra20-uart";117 compatible = "nvidia,tegra20-uart";
118 reg = <0x70006400 0x100>;118 reg = <0x70006400 0x100>;
119 reg-shift = <2>;119 reg-shift = <2>;
120 interrupts = < 123 >;120 interrupts = < 0 91 0x04 >;
121 };121 };
122 122
123 sdhci@c8000000 {123 sdhci@c8000000 {
124 compatible = "nvidia,tegra20-sdhci";124 compatible = "nvidia,tegra20-sdhci";
125 reg = <0xc8000000 0x200>;125 reg = <0xc8000000 0x200>;
126 interrupts = < 46 >;126 interrupts = < 0 14 0x04 >;
127 };127 };
128 128
129 sdhci@c8000200 {129 sdhci@c8000200 {
130 compatible = "nvidia,tegra20-sdhci";130 compatible = "nvidia,tegra20-sdhci";
131 reg = <0xc8000200 0x200>;131 reg = <0xc8000200 0x200>;
132 interrupts = < 47 >;132 interrupts = < 0 15 0x04 >;
133 };133 };
134 134
135 sdhci@c8000400 {135 sdhci@c8000400 {
136 compatible = "nvidia,tegra20-sdhci";136 compatible = "nvidia,tegra20-sdhci";
137 reg = <0xc8000400 0x200>;137 reg = <0xc8000400 0x200>;
138 interrupts = < 51 >;138 interrupts = < 0 19 0x04 >;
139 };139 };
140 140
141 sdhci@c8000600 {141 sdhci@c8000600 {
142 compatible = "nvidia,tegra20-sdhci";142 compatible = "nvidia,tegra20-sdhci";
143 reg = <0xc8000600 0x200>;143 reg = <0xc8000600 0x200>;
144 interrupts = < 63 >;144 interrupts = < 0 31 0x04 >;
145 };
146
147 usb@c5000000 {
148 compatible = "nvidia,tegra20-ehci", "usb-ehci";
149 reg = <0xc5000000 0x4000>;
150 interrupts = < 0 20 0x04 >;
151 phy_type = "utmi";
152 };
153
154 usb@c5004000 {
155 compatible = "nvidia,tegra20-ehci", "usb-ehci";
156 reg = <0xc5004000 0x4000>;
157 interrupts = < 0 21 0x04 >;
158 phy_type = "ulpi";
159 };
160
161 usb@c5008000 {
162 compatible = "nvidia,tegra20-ehci", "usb-ehci";
163 reg = <0xc5008000 0x4000>;
164 interrupts = < 0 97 0x04 >;
165 phy_type = "utmi";
145 };166 };
146};167};
147 168
arch/arm/boot/dts/tegra30.dtsi+127−0
@@ -0,0 +1,127 @@
1/include/ "skeleton.dtsi"
2
3/ {
4 compatible = "nvidia,tegra30";
5 interrupt-parent = <&intc>;
6
7 intc: interrupt-controller@50041000 {
8 compatible = "arm,cortex-a9-gic";
9 interrupt-controller;
10 #interrupt-cells = <3>;
11 reg = < 0x50041000 0x1000 >,
12 < 0x50040100 0x0100 >;
13 };
14
15 i2c@7000c000 {
16 #address-cells = <1>;
17 #size-cells = <0>;
18 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
19 reg = <0x7000C000 0x100>;
20 interrupts = < 0 38 0x04 >;
21 };
22
23 i2c@7000c400 {
24 #address-cells = <1>;
25 #size-cells = <0>;
26 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
27 reg = <0x7000C400 0x100>;
28 interrupts = < 0 84 0x04 >;
29 };
30
31 i2c@7000c500 {
32 #address-cells = <1>;
33 #size-cells = <0>;
34 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
35 reg = <0x7000C500 0x100>;
36 interrupts = < 0 92 0x04 >;
37 };
38
39 i2c@7000c700 {
40 #address-cells = <1>;
41 #size-cells = <0>;
42 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
43 reg = <0x7000c700 0x100>;
44 interrupts = < 0 120 0x04 >;
45 };
46
47 i2c@7000d000 {
48 #address-cells = <1>;
49 #size-cells = <0>;
50 compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
51 reg = <0x7000D000 0x100>;
52 interrupts = < 0 53 0x04 >;
53 };
54
55 gpio: gpio@6000d000 {
56 compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio";
57 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 >;
59 #gpio-cells = <2>;
60 gpio-controller;
61 };
62
63 serial@70006000 {
64 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
65 reg = <0x70006000 0x40>;
66 reg-shift = <2>;
67 interrupts = < 0 36 0x04 >;
68 };
69
70 serial@70006040 {
71 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
72 reg = <0x70006040 0x40>;
73 reg-shift = <2>;
74 interrupts = < 0 37 0x04 >;
75 };
76
77 serial@70006200 {
78 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
79 reg = <0x70006200 0x100>;
80 reg-shift = <2>;
81 interrupts = < 0 46 0x04 >;
82 };
83
84 serial@70006300 {
85 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
86 reg = <0x70006300 0x100>;
87 reg-shift = <2>;
88 interrupts = < 0 90 0x04 >;
89 };
90
91 serial@70006400 {
92 compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
93 reg = <0x70006400 0x100>;
94 reg-shift = <2>;
95 interrupts = < 0 91 0x04 >;
96 };
97
98 sdhci@78000000 {
99 compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
100 reg = <0x78000000 0x200>;
101 interrupts = < 0 14 0x04 >;
102 };
103
104 sdhci@78000200 {
105 compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
106 reg = <0x78000200 0x200>;
107 interrupts = < 0 15 0x04 >;
108 };
109
110 sdhci@78000400 {
111 compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
112 reg = <0x78000400 0x200>;
113 interrupts = < 0 19 0x04 >;
114 };
115
116 sdhci@78000600 {
117 compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
118 reg = <0x78000600 0x200>;
119 interrupts = < 0 31 0x04 >;
120 };
121
122 pinmux: pinmux@70000000 {
123 compatible = "nvidia,tegra30-pinmux";
124 reg = < 0x70000868 0xd0 /* Pad control registers */
125 0x70003000 0x3e0 >; /* Mux registers */
126 };
127};
arch/arm/boot/dts/testcases/tests-phandle.dtsi+37−0
@@ -0,0 +1,37 @@
1
2/ {
3 testcase-data {
4 phandle-tests {
5 provider0: provider0 {
6 #phandle-cells = <0>;
7 };
8
9 provider1: provider1 {
10 #phandle-cells = <1>;
11 };
12
13 provider2: provider2 {
14 #phandle-cells = <2>;
15 };
16
17 provider3: provider3 {
18 #phandle-cells = <3>;
19 };
20
21 consumer-a {
22 phandle-list = <&provider1 1>,
23 <&provider2 2 0>,
24 <0>,
25 <&provider3 4 4 3>,
26 <&provider2 5 100>,
27 <&provider0>,
28 <&provider1 7>;
29 phandle-list-names = "first", "second", "third";
30
31 phandle-list-bad-phandle = <12345678 0 0>;
32 phandle-list-bad-args = <&provider2 1 0>,
33 <&provider3 0>;
34 };
35 };
36 };
37};
arch/arm/boot/dts/testcases/tests.dtsi+1−0
@@ -0,0 +1 @@
1/include/ "tests-phandle.dtsi"
arch/arm/boot/dts/usb_a9g20.dts+5−0
@@ -25,6 +25,11 @@ · 24 unmodified lines
25 dbgu: serial@fffff200 {25 dbgu: serial@fffff200 {
26 status = "okay";26 status = "okay";
27 };27 };
28
29 macb0: ethernet@fffc4000 {
30 phy-mode = "rmii";
31 status = "okay";
32 };
28 };33 };
29 };34 };
30};35};
arch/arm/boot/dts/versatile-pb.dts+2−0
@@ -46,3 +46,5 @@ · 45 unmodified lines
46 };46 };
47 };47 };
48};48};
49
50/include/ "testcases/tests.dtsi"
arch/arm/common/Kconfig+6−0
@@ -1,8 +1,14 @@
1config ARM_GIC1config ARM_GIC
2 select IRQ_DOMAIN2 select IRQ_DOMAIN
3 select MULTI_IRQ_HANDLER
4 bool
5
6config GIC_NON_BANKED
3 bool7 bool
4 8
5config ARM_VIC9config ARM_VIC
10 select IRQ_DOMAIN
11 select MULTI_IRQ_HANDLER
6 bool12 bool
7 13
8config ARM_VIC_NR14config ARM_VIC_NR
arch/arm/common/gic.c+141−24
@@ -40,13 +40,36 @@ · 39 unmodified lines
40#include <linux/slab.h>40#include <linux/slab.h>
41 41
42#include <asm/irq.h>42#include <asm/irq.h>
43#include <asm/exception.h>
43#include <asm/mach/irq.h>44#include <asm/mach/irq.h>
44#include <asm/hardware/gic.h>45#include <asm/hardware/gic.h>
45 46
46static DEFINE_RAW_SPINLOCK(irq_controller_lock);47union gic_base {
48 void __iomem *common_base;
49 void __percpu __iomem **percpu_base;
50};
47 51
48/* Address of GIC 0 CPU interface */52struct gic_chip_data {
49void __iomem *gic_cpu_base_addr __read_mostly;53 unsigned int irq_offset;
54 union gic_base dist_base;
55 union gic_base cpu_base;
56#ifdef CONFIG_CPU_PM
57 u32 saved_spi_enable[DIV_ROUND_UP(1020, 32)];
58 u32 saved_spi_conf[DIV_ROUND_UP(1020, 16)];
59 u32 saved_spi_target[DIV_ROUND_UP(1020, 4)];
60 u32 __percpu *saved_ppi_enable;
61 u32 __percpu *saved_ppi_conf;
62#endif
63#ifdef CONFIG_IRQ_DOMAIN
64 struct irq_domain domain;
65#endif
66 unsigned int gic_irqs;
67#ifdef CONFIG_GIC_NON_BANKED
68 void __iomem *(*get_base)(union gic_base *);
69#endif
70};
71
72static DEFINE_RAW_SPINLOCK(irq_controller_lock);
50 73
51/*74/*
52 * Supported arch specific GIC irq extension.75 * Supported arch specific GIC irq extension.
@@ -67,16 +90,48 @@ struct irq_chip gic_arch_extn = { · 14 unmodified lines
67 90
68static struct gic_chip_data gic_data[MAX_GIC_NR] __read_mostly;91static struct gic_chip_data gic_data[MAX_GIC_NR] __read_mostly;
69 92
93#ifdef CONFIG_GIC_NON_BANKED
94static void __iomem *gic_get_percpu_base(union gic_base *base)
95{
96 return *__this_cpu_ptr(base->percpu_base);
97}
98
99static void __iomem *gic_get_common_base(union gic_base *base)
100{
101 return base->common_base;
102}
103
104static inline void __iomem *gic_data_dist_base(struct gic_chip_data *data)
105{
106 return data->get_base(&data->dist_base);
107}
108
109static inline void __iomem *gic_data_cpu_base(struct gic_chip_data *data)
110{
111 return data->get_base(&data->cpu_base);
112}
113
114static inline void gic_set_base_accessor(struct gic_chip_data *data,
115 void __iomem *(*f)(union gic_base *))
116{
117 data->get_base = f;
118}
119#else
120#define gic_data_dist_base(d) ((d)->dist_base.common_base)
121#define gic_data_cpu_base(d) ((d)->cpu_base.common_base)
122#define gic_set_base_accessor(d,f)
123#endif
124
70static inline void __iomem *gic_dist_base(struct irq_data *d)125static inline void __iomem *gic_dist_base(struct irq_data *d)
71{126{
72 struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);127 struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);
73 return gic_data->dist_base;128 return gic_data_dist_base(gic_data);
74}129}
75 130
76static inline void __iomem *gic_cpu_base(struct irq_data *d)131static inline void __iomem *gic_cpu_base(struct irq_data *d)
77{132{
78 struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);133 struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);
79 return gic_data->cpu_base;134 return gic_data_cpu_base(gic_data);
80}135}
81 136
82static inline unsigned int gic_irq(struct irq_data *d)137static inline unsigned int gic_irq(struct irq_data *d)
@@ -215,6 +270,32 @@ static int gic_set_wake(struct irq_data *d, unsigned int on) · 132 unmodified lines
215#define gic_set_wake NULL270#define gic_set_wake NULL
216#endif271#endif
217 272
273asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
274{
275 u32 irqstat, irqnr;
276 struct gic_chip_data *gic = &gic_data[0];
277 void __iomem *cpu_base = gic_data_cpu_base(gic);
278
279 do {
280 irqstat = readl_relaxed(cpu_base + GIC_CPU_INTACK);
281 irqnr = irqstat & ~0x1c00;
282
283 if (likely(irqnr > 15 && irqnr < 1021)) {
284 irqnr = irq_domain_to_irq(&gic->domain, irqnr);
285 handle_IRQ(irqnr, regs);
286 continue;
287 }
288 if (irqnr < 16) {
289 writel_relaxed(irqstat, cpu_base + GIC_CPU_EOI);
290#ifdef CONFIG_SMP
291 handle_IPI(irqnr, regs);
292#endif
293 continue;
294 }
295 break;
296 } while (1);
297}
298
218static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)299static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
219{300{
220 struct gic_chip_data *chip_data = irq_get_handler_data(irq);301 struct gic_chip_data *chip_data = irq_get_handler_data(irq);
@@ -225,7 +306,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) · 4 unmodified lines
225 chained_irq_enter(chip, desc);306 chained_irq_enter(chip, desc);
226 307
227 raw_spin_lock(&irq_controller_lock);308 raw_spin_lock(&irq_controller_lock);
228 status = readl_relaxed(chip_data->cpu_base + GIC_CPU_INTACK);309 status = readl_relaxed(gic_data_cpu_base(chip_data) + GIC_CPU_INTACK);
229 raw_spin_unlock(&irq_controller_lock);310 raw_spin_unlock(&irq_controller_lock);
230 311
231 gic_irq = (status & 0x3ff);312 gic_irq = (status & 0x3ff);
@@ -270,7 +351,7 @@ static void __init gic_dist_init(struct gic_chip_data *gic) · 38 unmodified lines
270 u32 cpumask;351 u32 cpumask;
271 unsigned int gic_irqs = gic->gic_irqs;352 unsigned int gic_irqs = gic->gic_irqs;
272 struct irq_domain *domain = &gic->domain;353 struct irq_domain *domain = &gic->domain;
273 void __iomem *base = gic->dist_base;354 void __iomem *base = gic_data_dist_base(gic);
274 u32 cpu = 0;355 u32 cpu = 0;
275 356
276#ifdef CONFIG_SMP357#ifdef CONFIG_SMP
@@ -330,8 +411,8 @@ static void __init gic_dist_init(struct gic_chip_data *gic) · 53 unmodified lines
330 411
331static void __cpuinit gic_cpu_init(struct gic_chip_data *gic)412static void __cpuinit gic_cpu_init(struct gic_chip_data *gic)
332{413{
333 void __iomem *dist_base = gic->dist_base;414 void __iomem *dist_base = gic_data_dist_base(gic);
334 void __iomem *base = gic->cpu_base;415 void __iomem *base = gic_data_cpu_base(gic);
335 int i;416 int i;
336 417
337 /*418 /*
@@ -368,7 +449,7 @@ static void gic_dist_save(unsigned int gic_nr) · 30 unmodified lines
368 BUG();449 BUG();
369 450
370 gic_irqs = gic_data[gic_nr].gic_irqs;451 gic_irqs = gic_data[gic_nr].gic_irqs;
371 dist_base = gic_data[gic_nr].dist_base;452 dist_base = gic_data_dist_base(&gic_data[gic_nr]);
372 453
373 if (!dist_base)454 if (!dist_base)
374 return;455 return;
@@ -403,7 +484,7 @@ static void gic_dist_restore(unsigned int gic_nr) · 28 unmodified lines
403 BUG();484 BUG();
404 485
405 gic_irqs = gic_data[gic_nr].gic_irqs;486 gic_irqs = gic_data[gic_nr].gic_irqs;
406 dist_base = gic_data[gic_nr].dist_base;487 dist_base = gic_data_dist_base(&gic_data[gic_nr]);
407 488
408 if (!dist_base)489 if (!dist_base)
409 return;490 return;
@@ -439,8 +520,8 @@ static void gic_cpu_save(unsigned int gic_nr) · 29 unmodified lines
439 if (gic_nr >= MAX_GIC_NR)520 if (gic_nr >= MAX_GIC_NR)
440 BUG();521 BUG();
441 522
442 dist_base = gic_data[gic_nr].dist_base;523 dist_base = gic_data_dist_base(&gic_data[gic_nr]);
443 cpu_base = gic_data[gic_nr].cpu_base;524 cpu_base = gic_data_cpu_base(&gic_data[gic_nr]);
444 525
445 if (!dist_base || !cpu_base)526 if (!dist_base || !cpu_base)
446 return;527 return;
@@ -465,8 +546,8 @@ static void gic_cpu_restore(unsigned int gic_nr) · 18 unmodified lines
465 if (gic_nr >= MAX_GIC_NR)546 if (gic_nr >= MAX_GIC_NR)
466 BUG();547 BUG();
467 548
468 dist_base = gic_data[gic_nr].dist_base;549 dist_base = gic_data_dist_base(&gic_data[gic_nr]);
469 cpu_base = gic_data[gic_nr].cpu_base;550 cpu_base = gic_data_cpu_base(&gic_data[gic_nr]);
470 551
471 if (!dist_base || !cpu_base)552 if (!dist_base || !cpu_base)
472 return;553 return;
@@ -491,6 +572,11 @@ static int gic_notifier(struct notifier_block *self, unsigned long cmd, void *v) · 18 unmodified lines
491 int i;572 int i;
492 573
493 for (i = 0; i < MAX_GIC_NR; i++) {574 for (i = 0; i < MAX_GIC_NR; i++) {
575#ifdef CONFIG_GIC_NON_BANKED
576 /* Skip over unused GICs */
577 if (!gic_data[i].get_base)
578 continue;
579#endif
494 switch (cmd) {580 switch (cmd) {
495 case CPU_PM_ENTER:581 case CPU_PM_ENTER:
496 gic_cpu_save(i);582 gic_cpu_save(i);
@@ -564,8 +650,9 @@ const struct irq_domain_ops gic_irq_domain_ops = { · 67 unmodified lines
564#endif650#endif
565};651};
566 652
567void __init gic_init(unsigned int gic_nr, int irq_start,653void __init gic_init_bases(unsigned int gic_nr, int irq_start,
568 void __iomem *dist_base, void __iomem *cpu_base)654 void __iomem *dist_base, void __iomem *cpu_base,
655 u32 percpu_offset)
569{656{
570 struct gic_chip_data *gic;657 struct gic_chip_data *gic;
571 struct irq_domain *domain;658 struct irq_domain *domain;
@@ -575,8 +662,36 @@ void __init gic_init(unsigned int gic_nr, int irq_start, · 3 unmodified lines
575 662
576 gic = &gic_data[gic_nr];663 gic = &gic_data[gic_nr];
577 domain = &gic->domain;664 domain = &gic->domain;
578 gic->dist_base = dist_base;665#ifdef CONFIG_GIC_NON_BANKED
579 gic->cpu_base = cpu_base;666 if (percpu_offset) { /* Frankein-GIC without banked registers... */
667 unsigned int cpu;
668
669 gic->dist_base.percpu_base = alloc_percpu(void __iomem *);
670 gic->cpu_base.percpu_base = alloc_percpu(void __iomem *);
671 if (WARN_ON(!gic->dist_base.percpu_base ||
672 !gic->cpu_base.percpu_base)) {
673 free_percpu(gic->dist_base.percpu_base);
674 free_percpu(gic->cpu_base.percpu_base);
675 return;
676 }
677
678 for_each_possible_cpu(cpu) {
679 unsigned long offset = percpu_offset * cpu_logical_map(cpu);
680 *per_cpu_ptr(gic->dist_base.percpu_base, cpu) = dist_base + offset;
681 *per_cpu_ptr(gic->cpu_base.percpu_base, cpu) = cpu_base + offset;
682 }
683
684 gic_set_base_accessor(gic, gic_get_percpu_base);
685 } else
686#endif
687 { /* Normal, sane GIC... */
688 WARN(percpu_offset,
689 "GIC_NON_BANKED not enabled, ignoring %08x offset!",
690 percpu_offset);
691 gic->dist_base.common_base = dist_base;
692 gic->cpu_base.common_base = cpu_base;
693 gic_set_base_accessor(gic, gic_get_common_base);
694 }
580 695
581 /*696 /*
582 * For primary GICs, skip over SGIs.697 * For primary GICs, skip over SGIs.
@@ -584,8 +699,6 @@ void __init gic_init(unsigned int gic_nr, int irq_start, · 1 unmodified line
584 */699 */
585 domain->hwirq_base = 32;700 domain->hwirq_base = 32;
586 if (gic_nr == 0) {701 if (gic_nr == 0) {
587 gic_cpu_base_addr = cpu_base;
588
589 if ((irq_start & 31) > 0) {702 if ((irq_start & 31) > 0) {
590 domain->hwirq_base = 16;703 domain->hwirq_base = 16;
591 if (irq_start != -1)704 if (irq_start != -1)
@@ -597,7 +710,7 @@ void __init gic_init(unsigned int gic_nr, int irq_start, · 5 unmodified lines
597 * Find out how many interrupts are supported.710 * Find out how many interrupts are supported.
598 * The GIC only supports up to 1020 interrupt sources.711 * The GIC only supports up to 1020 interrupt sources.
599 */712 */
600 gic_irqs = readl_relaxed(dist_base + GIC_DIST_CTR) & 0x1f;713 gic_irqs = readl_relaxed(gic_data_dist_base(gic) + GIC_DIST_CTR) & 0x1f;
601 gic_irqs = (gic_irqs + 1) * 32;714 gic_irqs = (gic_irqs + 1) * 32;
602 if (gic_irqs > 1020)715 if (gic_irqs > 1020)
603 gic_irqs = 1020;716 gic_irqs = 1020;
@@ -645,7 +758,7 @@ void gic_raise_softirq(const struct cpumask *mask, unsigned int irq) · 41 unmodified lines
645 dsb();758 dsb();
646 759
647 /* this always happens on GIC0 */760 /* this always happens on GIC0 */
648 writel_relaxed(map << 16 | irq, gic_data[0].dist_base + GIC_DIST_SOFTINT);761 writel_relaxed(map << 16 | irq, gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT);
649}762}
650#endif763#endif
651 764
@@ -656,6 +769,7 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent) · 4 unmodified lines
656{769{
657 void __iomem *cpu_base;770 void __iomem *cpu_base;
658 void __iomem *dist_base;771 void __iomem *dist_base;
772 u32 percpu_offset;
659 int irq;773 int irq;
660 struct irq_domain *domain = &gic_data[gic_cnt].domain;774 struct irq_domain *domain = &gic_data[gic_cnt].domain;
661 775
@@ -668,9 +782,12 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent) · 6 unmodified lines
668 cpu_base = of_iomap(node, 1);782 cpu_base = of_iomap(node, 1);
669 WARN(!cpu_base, "unable to map gic cpu registers\n");783 WARN(!cpu_base, "unable to map gic cpu registers\n");
670 784
785 if (of_property_read_u32(node, "cpu-offset", &percpu_offset))
786 percpu_offset = 0;
787
671 domain->of_node = of_node_get(node);788 domain->of_node = of_node_get(node);
672 789
673 gic_init(gic_cnt, -1, dist_base, cpu_base);790 gic_init_bases(gic_cnt, -1, dist_base, cpu_base, percpu_offset);
674 791
675 if (parent) {792 if (parent) {
676 irq = irq_of_parse_and_map(node, 0);793 irq = irq_of_parse_and_map(node, 0);
arch/arm/common/it8152.c+6−3
@@ -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 sys->resource[0] = &it8152_io;302 pci_add_resource(&sys->resources, &it8152_io);
303 sys->resource[1] = &it8152_mem;303 pci_add_resource(&sys->resources, &it8152_mem);
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");
@@ -327,6 +327,9 @@ err0: · 20 unmodified lines
327 */327 */
328unsigned int pcibios_max_latency = 255;328unsigned int pcibios_max_latency = 255;
329 329
330/* ITE bridge requires setting latency timer to avoid early bus access
331 termination by PCI bus master devices
332*/
330void pcibios_set_master(struct pci_dev *dev)333void pcibios_set_master(struct pci_dev *dev)
331{334{
332 u8 lat;335 u8 lat;
@@ -352,7 +355,7 @@ void pcibios_set_master(struct pci_dev *dev) · 19 unmodified lines
352 355
353struct pci_bus * __init it8152_pci_scan_bus(int nr, struct pci_sys_data *sys)356struct pci_bus * __init it8152_pci_scan_bus(int nr, struct pci_sys_data *sys)
354{357{
355 return pci_scan_bus(nr, &it8152_ops, sys);358 return pci_scan_root_bus(NULL, nr, &it8152_ops, sys, &sys->resources);
356}359}
357 360
358EXPORT_SYMBOL(dma_set_coherent_mask);361EXPORT_SYMBOL(dma_set_coherent_mask);
arch/arm/common/pl330.c+7−1
@@ -1467,13 +1467,19 @@ int pl330_update(const struct pl330_info *pi) · 1466 unmodified lines
1467 1467
1468 /* Now that we are in no hurry, do the callbacks */1468 /* Now that we are in no hurry, do the callbacks */
1469 while (!list_empty(&pl330->req_done)) {1469 while (!list_empty(&pl330->req_done)) {
1470 struct pl330_req *r;
1471
1470 rqdone = container_of(pl330->req_done.next,1472 rqdone = container_of(pl330->req_done.next,
1471 struct _pl330_req, rqd);1473 struct _pl330_req, rqd);
1472 1474
1473 list_del_init(&rqdone->rqd);1475 list_del_init(&rqdone->rqd);
1474 1476
1477 /* Detach the req */
1478 r = rqdone->r;
1479 rqdone->r = NULL;
1480
1475 spin_unlock_irqrestore(&pl330->lock, flags);1481 spin_unlock_irqrestore(&pl330->lock, flags);
1476 _callback(rqdone->r, PL330_ERR_NONE);1482 _callback(r, PL330_ERR_NONE);
1477 spin_lock_irqsave(&pl330->lock, flags);1483 spin_lock_irqsave(&pl330->lock, flags);
1478 }1484 }
1479 1485
arch/arm/common/timer-sp.c+1−6
@@ -143,7 +143,6 @@ static int sp804_set_next_event(unsigned long next, · 142 unmodified lines
143}143}
144 144
145static struct clock_event_device sp804_clockevent = {145static struct clock_event_device sp804_clockevent = {
146 .shift = 32,
147 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,146 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
148 .set_mode = sp804_set_mode,147 .set_mode = sp804_set_mode,
149 .set_next_event = sp804_set_next_event,148 .set_next_event = sp804_set_next_event,
@@ -169,13 +168,9 @@ void __init sp804_clockevents_init(void __iomem *base, unsigned int irq, · 19 unmodified lines
169 168
170 clkevt_base = base;169 clkevt_base = base;
171 clkevt_reload = DIV_ROUND_CLOSEST(rate, HZ);170 clkevt_reload = DIV_ROUND_CLOSEST(rate, HZ);
172
173 evt->name = name;171 evt->name = name;
174 evt->irq = irq;172 evt->irq = irq;
175 evt->mult = div_sc(rate, NSEC_PER_SEC, evt->shift);
176 evt->max_delta_ns = clockevent_delta2ns(0xffffffff, evt);
177 evt->min_delta_ns = clockevent_delta2ns(0xf, evt);
178 173
179 setup_irq(irq, &sp804_timer_irq);174 setup_irq(irq, &sp804_timer_irq);
180 clockevents_register_device(evt);175 clockevents_config_and_register(evt, rate, 0xf, 0xffffffff);
181}176}
arch/arm/common/via82c505.c+2−1
@@ -86,7 +86,8 @@ int __init via82c505_setup(int nr, struct pci_sys_data *sys) · 85 unmodified lines
86struct pci_bus * __init via82c505_scan_bus(int nr, struct pci_sys_data *sysdata)86struct pci_bus * __init via82c505_scan_bus(int nr, struct pci_sys_data *sysdata)
87{87{
88 if (nr == 0)88 if (nr == 0)
89 return pci_scan_bus(0, &via82c505_ops, sysdata);89 return pci_scan_root_bus(NULL, 0, &via82c505_ops, sysdata,
90 &sysdata->resources);
90 91
91 return NULL;92 return NULL;
92}93}
arch/arm/common/vic.c+118−30
@@ -19,17 +19,22 @@ · 18 unmodified lines
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */20 */
21 21
22#include <linux/export.h>
22#include <linux/init.h>23#include <linux/init.h>
23#include <linux/list.h>24#include <linux/list.h>
24#include <linux/io.h>25#include <linux/io.h>
26#include <linux/irqdomain.h>
27#include <linux/of.h>
28#include <linux/of_address.h>
29#include <linux/of_irq.h>
25#include <linux/syscore_ops.h>30#include <linux/syscore_ops.h>
26#include <linux/device.h>31#include <linux/device.h>
27#include <linux/amba/bus.h>32#include <linux/amba/bus.h>
28 33
34#include <asm/exception.h>
29#include <asm/mach/irq.h>35#include <asm/mach/irq.h>
30#include <asm/hardware/vic.h>36#include <asm/hardware/vic.h>
31 37
32#ifdef CONFIG_PM
33/**38/**
34 * struct vic_device - VIC PM device39 * struct vic_device - VIC PM device
35 * @irq: The IRQ number for the base of the VIC.40 * @irq: The IRQ number for the base of the VIC.
@@ -40,6 +45,7 @@ · 4 unmodified lines
40 * @int_enable: Save for VIC_INT_ENABLE.45 * @int_enable: Save for VIC_INT_ENABLE.
41 * @soft_int: Save for VIC_INT_SOFT.46 * @soft_int: Save for VIC_INT_SOFT.
42 * @protect: Save for VIC_PROTECT.47 * @protect: Save for VIC_PROTECT.
48 * @domain: The IRQ domain for the VIC.
43 */49 */
44struct vic_device {50struct vic_device {
45 void __iomem *base;51 void __iomem *base;
@@ -50,13 +56,13 @@ struct vic_device { · 4 unmodified lines
50 u32 int_enable;56 u32 int_enable;
51 u32 soft_int;57 u32 soft_int;
52 u32 protect;58 u32 protect;
59 struct irq_domain domain;
53};60};
54 61
55/* we cannot allocate memory when VICs are initially registered */62/* we cannot allocate memory when VICs are initially registered */
56static struct vic_device vic_devices[CONFIG_ARM_VIC_NR];63static struct vic_device vic_devices[CONFIG_ARM_VIC_NR];
57 64
58static int vic_id;65static int vic_id;
59#endif /* CONFIG_PM */
60 66
61/**67/**
62 * vic_init2 - common initialisation code68 * vic_init2 - common initialisation code
@@ -156,39 +162,50 @@ static int __init vic_pm_init(void) · 93 unmodified lines
156 return 0;162 return 0;
157}163}
158late_initcall(vic_pm_init);164late_initcall(vic_pm_init);
165#endif /* CONFIG_PM */
159 166
160/**167/**
161 * vic_pm_register - Register a VIC for later power management control168 * vic_register() - Register a VIC.
162 * @base: The base address of the VIC.169 * @base: The base address of the VIC.
163 * @irq: The base IRQ for the VIC.170 * @irq: The base IRQ for the VIC.
164 * @resume_sources: bitmask of interrupts allowed for resume sources.171 * @resume_sources: bitmask of interrupts allowed for resume sources.
172 * @node: The device tree node associated with the VIC.
165 *173 *
166 * Register the VIC with the system device tree so that it can be notified174 * Register the VIC with the system device tree so that it can be notified
167 * of suspend and resume requests and ensure that the correct actions are175 * of suspend and resume requests and ensure that the correct actions are
168 * taken to re-instate the settings on resume.176 * taken to re-instate the settings on resume.
177 *
178 * This also configures the IRQ domain for the VIC.
169 */179 */
170static void __init vic_pm_register(void __iomem *base, unsigned int irq, u32 resume_sources)180static void __init vic_register(void __iomem *base, unsigned int irq,
181 u32 resume_sources, struct device_node *node)
171{182{
172 struct vic_device *v;183 struct vic_device *v;
173 184
174 if (vic_id >= ARRAY_SIZE(vic_devices))185 if (vic_id >= ARRAY_SIZE(vic_devices)) {
175 printk(KERN_ERR "%s: too few VICs, increase CONFIG_ARM_VIC_NR\n", __func__);186 printk(KERN_ERR "%s: too few VICs, increase CONFIG_ARM_VIC_NR\n", __func__);
176 else {187 return;
177 v = &vic_devices[vic_id];
178 v->base = base;
179 v->resume_sources = resume_sources;
180 v->irq = irq;
181 vic_id++;
182 }188 }
189
190 v = &vic_devices[vic_id];
191 v->base = base;
192 v->resume_sources = resume_sources;
193 v->irq = irq;
194 vic_id++;
195
196 v->domain.irq_base = irq;
197 v->domain.nr_irq = 32;
198#ifdef CONFIG_OF_IRQ
199 v->domain.of_node = of_node_get(node);
200#endif /* CONFIG_OF */
201 v->domain.ops = &irq_domain_simple_ops;
202 irq_domain_add(&v->domain);
183}203}
184#else
185static inline void vic_pm_register(void __iomem *base, unsigned int irq, u32 arg1) { }
186#endif /* CONFIG_PM */
187 204
188static void vic_ack_irq(struct irq_data *d)205static void vic_ack_irq(struct irq_data *d)
189{206{
190 void __iomem *base = irq_data_get_irq_chip_data(d);207 void __iomem *base = irq_data_get_irq_chip_data(d);
191 unsigned int irq = d->irq & 31;208 unsigned int irq = d->hwirq;
192 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);209 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
193 /* moreover, clear the soft-triggered, in case it was the reason */210 /* moreover, clear the soft-triggered, in case it was the reason */
194 writel(1 << irq, base + VIC_INT_SOFT_CLEAR);211 writel(1 << irq, base + VIC_INT_SOFT_CLEAR);
@@ -197,14 +214,14 @@ static void vic_ack_irq(struct irq_data *d) · 2 unmodified lines
197static void vic_mask_irq(struct irq_data *d)214static void vic_mask_irq(struct irq_data *d)
198{215{
199 void __iomem *base = irq_data_get_irq_chip_data(d);216 void __iomem *base = irq_data_get_irq_chip_data(d);
200 unsigned int irq = d->irq & 31;217 unsigned int irq = d->hwirq;
201 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);218 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
202}219}
203 220
204static void vic_unmask_irq(struct irq_data *d)221static void vic_unmask_irq(struct irq_data *d)
205{222{
206 void __iomem *base = irq_data_get_irq_chip_data(d);223 void __iomem *base = irq_data_get_irq_chip_data(d);
207 unsigned int irq = d->irq & 31;224 unsigned int irq = d->hwirq;
208 writel(1 << irq, base + VIC_INT_ENABLE);225 writel(1 << irq, base + VIC_INT_ENABLE);
209}226}
210 227
@@ -226,7 +243,7 @@ static struct vic_device *vic_from_irq(unsigned int irq) · 15 unmodified lines
226static int vic_set_wake(struct irq_data *d, unsigned int on)243static int vic_set_wake(struct irq_data *d, unsigned int on)
227{244{
228 struct vic_device *v = vic_from_irq(d->irq);245 struct vic_device *v = vic_from_irq(d->irq);
229 unsigned int off = d->irq & 31;246 unsigned int off = d->hwirq;
230 u32 bit = 1 << off;247 u32 bit = 1 << off;
231 248
232 if (!v)249 if (!v)
@@ -301,7 +318,7 @@ static void __init vic_set_irq_sources(void __iomem *base, · 68 unmodified lines
301 * and 020 within the page. We call this "second block".318 * and 020 within the page. We call this "second block".
302 */319 */
303static void __init vic_init_st(void __iomem *base, unsigned int irq_start,320static void __init vic_init_st(void __iomem *base, unsigned int irq_start,
304 u32 vic_sources)321 u32 vic_sources, struct device_node *node)
305{322{
306 unsigned int i;323 unsigned int i;
307 int vic_2nd_block = ((unsigned long)base & ~PAGE_MASK) != 0;324 int vic_2nd_block = ((unsigned long)base & ~PAGE_MASK) != 0;
@@ -328,17 +345,12 @@ static void __init vic_init_st(void __iomem *base, unsigned int irq_start, · 20 unmodified lines
328 }345 }
329 346
330 vic_set_irq_sources(base, irq_start, vic_sources);347 vic_set_irq_sources(base, irq_start, vic_sources);
348 vic_register(base, irq_start, 0, node);
331}349}
332 350
333/**351static void __init __vic_init(void __iomem *base, unsigned int irq_start,
334 * vic_init - initialise a vectored interrupt controller352 u32 vic_sources, u32 resume_sources,
335 * @base: iomem base address353 struct device_node *node)
336 * @irq_start: starting interrupt number, must be muliple of 32
337 * @vic_sources: bitmask of interrupt sources to allow
338 * @resume_sources: bitmask of interrupt sources to allow for resume
339 */
340void __init vic_init(void __iomem *base, unsigned int irq_start,
341 u32 vic_sources, u32 resume_sources)
342{354{
343 unsigned int i;355 unsigned int i;
344 u32 cellid = 0;356 u32 cellid = 0;
@@ -356,7 +368,7 @@ void __init vic_init(void __iomem *base, unsigned int irq_start, · 11 unmodified lines
356 368
357 switch(vendor) {369 switch(vendor) {
358 case AMBA_VENDOR_ST:370 case AMBA_VENDOR_ST:
359 vic_init_st(base, irq_start, vic_sources);371 vic_init_st(base, irq_start, vic_sources, node);
360 return;372 return;
361 default:373 default:
362 printk(KERN_WARNING "VIC: unknown vendor, continuing anyways\n");374 printk(KERN_WARNING "VIC: unknown vendor, continuing anyways\n");
@@ -375,5 +387,81 @@ void __init vic_init(void __iomem *base, unsigned int irq_start, · 12 unmodified lines
375 387
376 vic_set_irq_sources(base, irq_start, vic_sources);388 vic_set_irq_sources(base, irq_start, vic_sources);
377 389
378 vic_pm_register(base, irq_start, resume_sources);390 vic_register(base, irq_start, resume_sources, node);
391}
392
393/**
394 * vic_init() - initialise a vectored interrupt controller
395 * @base: iomem base address
396 * @irq_start: starting interrupt number, must be muliple of 32
397 * @vic_sources: bitmask of interrupt sources to allow
398 * @resume_sources: bitmask of interrupt sources to allow for resume
399 */
400void __init vic_init(void __iomem *base, unsigned int irq_start,
401 u32 vic_sources, u32 resume_sources)
402{
403 __vic_init(base, irq_start, vic_sources, resume_sources, NULL);
404}
405
406#ifdef CONFIG_OF
407int __init vic_of_init(struct device_node *node, struct device_node *parent)
408{
409 void __iomem *regs;
410 int irq_base;
411
412 if (WARN(parent, "non-root VICs are not supported"))
413 return -EINVAL;
414
415 regs = of_iomap(node, 0);
416 if (WARN_ON(!regs))
417 return -EIO;
418
419 irq_base = irq_alloc_descs(-1, 0, 32, numa_node_id());
420 if (WARN_ON(irq_base < 0))
421 goto out_unmap;
422
423 __vic_init(regs, irq_base, ~0, ~0, node);
424
425 return 0;
426
427 out_unmap:
428 iounmap(regs);
429
430 return -EIO;
431}
432#endif /* CONFIG OF */
433
434/*
435 * Handle each interrupt in a single VIC. Returns non-zero if we've
436 * handled at least one interrupt. This does a single read of the
437 * status register and handles all interrupts in order from LSB first.
438 */
439static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)
440{
441 u32 stat, irq;
442 int handled = 0;
443
444 stat = readl_relaxed(vic->base + VIC_IRQ_STATUS);
445 while (stat) {
446 irq = ffs(stat) - 1;
447 handle_IRQ(irq_domain_to_irq(&vic->domain, irq), regs);
448 stat &= ~(1 << irq);
449 handled = 1;
450 }
451
452 return handled;
453}
454
455/*
456 * Keep iterating over all registered VIC's until there are no pending
457 * interrupts.
458 */
459asmlinkage void __exception_irq_entry vic_handle_irq(struct pt_regs *regs)
460{
461 int i, handled;
462
463 do {
464 for (i = 0, handled = 0; i < vic_id; ++i)
465 handled |= handle_one_vic(&vic_devices[i], regs);
466 } while (handled);
379}467}
arch/arm/configs/bonito_defconfig+72−0
@@ -0,0 +1,72 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y
3CONFIG_IKCONFIG=y
4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=16
6# CONFIG_UTS_NS is not set
7# CONFIG_IPC_NS is not set
8# CONFIG_USER_NS is not set
9# CONFIG_PID_NS is not set
10CONFIG_BLK_DEV_INITRD=y
11CONFIG_INITRAMFS_SOURCE=""
12CONFIG_CC_OPTIMIZE_FOR_SIZE=y
13CONFIG_SLAB=y
14CONFIG_MODULES=y
15CONFIG_MODULE_UNLOAD=y
16CONFIG_MODULE_FORCE_UNLOAD=y
17# CONFIG_BLK_DEV_BSG is not set
18# CONFIG_IOSCHED_DEADLINE is not set
19# CONFIG_IOSCHED_CFQ is not set
20CONFIG_ARCH_SHMOBILE=y
21CONFIG_ARCH_R8A7740=y
22CONFIG_MACH_BONITO=y
23# CONFIG_SH_TIMER_TMU is not set
24CONFIG_AEABI=y
25# CONFIG_OABI_COMPAT is not set
26CONFIG_FORCE_MAX_ZONEORDER=12
27CONFIG_ZBOOT_ROM_TEXT=0x0
28CONFIG_ZBOOT_ROM_BSS=0x0
29CONFIG_CMDLINE="console=ttySC5,115200 earlyprintk=sh-sci.5,115200 ignore_loglevel"
30CONFIG_KEXEC=y
31# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
32# CONFIG_SUSPEND is not set
33CONFIG_PM_RUNTIME=y
34CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
35# CONFIG_FIRMWARE_IN_KERNEL is not set
36CONFIG_MTD=y
37CONFIG_MTD_CHAR=y
38CONFIG_MTD_BLOCK=y
39CONFIG_MTD_CFI=y
40CONFIG_MTD_CFI_ADV_OPTIONS=y
41CONFIG_MTD_CFI_INTELEXT=y
42CONFIG_MTD_PHYSMAP=y
43CONFIG_MTD_ARM_INTEGRATOR=y
44CONFIG_MTD_BLOCK2MTD=y
45CONFIG_SCSI=y
46CONFIG_BLK_DEV_SD=y
47# CONFIG_SCSI_LOWLEVEL is not set
48# CONFIG_INPUT_KEYBOARD is not set
49# CONFIG_INPUT_MOUSE is not set
50# CONFIG_LEGACY_PTYS is not set
51CONFIG_SERIAL_SH_SCI=y
52CONFIG_SERIAL_SH_SCI_NR_UARTS=9
53CONFIG_SERIAL_SH_SCI_CONSOLE=y
54# CONFIG_HW_RANDOM is not set
55CONFIG_I2C=y
56CONFIG_I2C_CHARDEV=y
57CONFIG_I2C_SH_MOBILE=y
58CONFIG_GPIO_SYSFS=y
59# CONFIG_HWMON is not set
60# CONFIG_MFD_SUPPORT is not set
61# CONFIG_HID_SUPPORT is not set
62# CONFIG_USB_SUPPORT is not set
63CONFIG_UIO=y
64CONFIG_UIO_PDRV=y
65CONFIG_UIO_PDRV_GENIRQ=y
66# CONFIG_DNOTIFY is not set
67# CONFIG_INOTIFY_USER is not set
68CONFIG_TMPFS=y
69# CONFIG_MISC_FILESYSTEMS is not set
70# CONFIG_ENABLE_WARN_DEPRECATED is not set
71# CONFIG_ENABLE_MUST_CHECK is not set
72# CONFIG_ARM_UNWIND is not set
arch/arm/configs/imx_v4_v5_defconfig+0−1
@@ -68,7 +68,6 @@ CONFIG_MTD_CFI=y · 67 unmodified lines
68CONFIG_MTD_CFI_ADV_OPTIONS=y68CONFIG_MTD_CFI_ADV_OPTIONS=y
69CONFIG_MTD_CFI_GEOMETRY=y69CONFIG_MTD_CFI_GEOMETRY=y
70# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set70# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
71# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
72# CONFIG_MTD_CFI_I2 is not set71# CONFIG_MTD_CFI_I2 is not set
73CONFIG_MTD_CFI_INTELEXT=y72CONFIG_MTD_CFI_INTELEXT=y
74CONFIG_MTD_PHYSMAP=y73CONFIG_MTD_PHYSMAP=y
arch/arm/configs/kota2_defconfig+122−0
@@ -0,0 +1,122 @@
1# CONFIG_ARM_PATCH_PHYS_VIRT is not set
2CONFIG_EXPERIMENTAL=y
3CONFIG_SYSVIPC=y
4CONFIG_IKCONFIG=y
5CONFIG_IKCONFIG_PROC=y
6CONFIG_LOG_BUF_SHIFT=16
7CONFIG_CGROUPS=y
8CONFIG_CPUSETS=y
9CONFIG_NAMESPACES=y
10# CONFIG_UTS_NS is not set
11# CONFIG_IPC_NS is not set
12# CONFIG_USER_NS is not set
13# CONFIG_PID_NS is not set
14CONFIG_SYSCTL_SYSCALL=y
15CONFIG_EMBEDDED=y
16CONFIG_SLAB=y
17# CONFIG_BLK_DEV_BSG is not set
18# CONFIG_IOSCHED_DEADLINE is not set
19# CONFIG_IOSCHED_CFQ is not set
20CONFIG_ARCH_SHMOBILE=y
21CONFIG_KEYBOARD_GPIO_POLLED=y
22CONFIG_ARCH_SH73A0=y
23CONFIG_MACH_KOTA2=y
24CONFIG_MEMORY_SIZE=0x1e0000000
25# CONFIG_SH_TIMER_TMU is not set
26# CONFIG_SWP_EMULATE is not set
27CONFIG_CPU_BPREDICT_DISABLE=y
28CONFIG_ARM_ERRATA_460075=y
29CONFIG_ARM_ERRATA_742230=y
30CONFIG_ARM_ERRATA_742231=y
31CONFIG_PL310_ERRATA_588369=y
32CONFIG_ARM_ERRATA_720789=y
33CONFIG_PL310_ERRATA_727915=y
34CONFIG_ARM_ERRATA_743622=y
35CONFIG_ARM_ERRATA_751472=y
36CONFIG_PL310_ERRATA_753970=y
37CONFIG_ARM_ERRATA_754322=y
38CONFIG_PL310_ERRATA_769419=y
39CONFIG_NO_HZ=y
40CONFIG_SMP=y
41CONFIG_AEABI=y
42# CONFIG_OABI_COMPAT is not set
43CONFIG_HIGHMEM=y
44CONFIG_ZBOOT_ROM_TEXT=0x0
45CONFIG_ZBOOT_ROM_BSS=0x0
46CONFIG_CMDLINE="console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel"
47CONFIG_CMDLINE_FORCE=y
48CONFIG_KEXEC=y
49CONFIG_CPU_IDLE=y
50# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
51CONFIG_PM_RUNTIME=y
52CONFIG_NET=y
53CONFIG_PACKET=y
54CONFIG_UNIX=y
55CONFIG_INET=y
56CONFIG_IP_PNP=y
57CONFIG_IP_PNP_DHCP=y
58# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
59# CONFIG_INET_XFRM_MODE_TUNNEL is not set
60# CONFIG_INET_XFRM_MODE_BEET is not set
61# CONFIG_INET_LRO is not set
62# CONFIG_INET_DIAG is not set
63# CONFIG_IPV6 is not set
64CONFIG_CFG80211=y
65CONFIG_WIRELESS_EXT_SYSFS=y
66CONFIG_MAC80211=y
67CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
68# CONFIG_BLK_DEV is not set
69CONFIG_NETDEVICES=y
70# CONFIG_NET_VENDOR_BROADCOM is not set
71# CONFIG_NET_VENDOR_CHELSIO is not set
72# CONFIG_NET_VENDOR_FARADAY is not set
73# CONFIG_NET_VENDOR_INTEL is not set
74# CONFIG_NET_VENDOR_MARVELL is not set
75# CONFIG_NET_VENDOR_MICREL is not set
76# CONFIG_NET_VENDOR_NATSEMI is not set
77# CONFIG_NET_VENDOR_SEEQ is not set
78CONFIG_SMSC911X=y
79# CONFIG_NET_VENDOR_STMICRO is not set
80CONFIG_B43=y
81CONFIG_B43_PHY_N=y
82CONFIG_B43_DEBUG=y
83CONFIG_INPUT_SPARSEKMAP=y
84# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
85CONFIG_INPUT_EVDEV=y
86# CONFIG_KEYBOARD_ATKBD is not set
87CONFIG_KEYBOARD_GPIO=y
88CONFIG_KEYBOARD_SH_KEYSC=y
89# CONFIG_INPUT_MOUSE is not set
90# CONFIG_LEGACY_PTYS is not set
91CONFIG_SERIAL_SH_SCI=y
92CONFIG_SERIAL_SH_SCI_NR_UARTS=9
93CONFIG_SERIAL_SH_SCI_CONSOLE=y
94# CONFIG_HW_RANDOM is not set
95CONFIG_I2C_SH_MOBILE=y
96# CONFIG_HWMON is not set
97CONFIG_BCMA=y
98CONFIG_BCMA_DEBUG=y
99CONFIG_FB=y
100CONFIG_FB_SH_MOBILE_LCDC=y
101CONFIG_LCD_PLATFORM=y
102CONFIG_FRAMEBUFFER_CONSOLE=y
103CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
104# CONFIG_HID_SUPPORT is not set
105# CONFIG_USB_SUPPORT is not set
106CONFIG_MMC=y
107CONFIG_MMC_SDHI=y
108CONFIG_MMC_SH_MMCIF=y
109CONFIG_NEW_LEDS=y
110CONFIG_LEDS_CLASS=y
111CONFIG_LEDS_GPIO=y
112CONFIG_LEDS_RENESAS_TPU=y
113CONFIG_LEDS_TRIGGERS=y
114# CONFIG_DNOTIFY is not set
115# CONFIG_INOTIFY_USER is not set
116CONFIG_TMPFS=y
117# CONFIG_MISC_FILESYSTEMS is not set
118CONFIG_MAGIC_SYSRQ=y
119CONFIG_DEBUG_INFO=y
120CONFIG_DEBUG_INFO_REDUCED=y
121# CONFIG_FTRACE is not set
122CONFIG_DEBUG_USER=y
arch/arm/configs/marzen_defconfig+87−0
@@ -0,0 +1,87 @@
1# CONFIG_ARM_PATCH_PHYS_VIRT is not set
2CONFIG_EXPERIMENTAL=y
3CONFIG_KERNEL_LZMA=y
4CONFIG_IKCONFIG=y
5CONFIG_IKCONFIG_PROC=y
6CONFIG_LOG_BUF_SHIFT=16
7CONFIG_SYSCTL_SYSCALL=y
8CONFIG_EMBEDDED=y
9CONFIG_SLAB=y
10# CONFIG_BLOCK is not set
11CONFIG_ARCH_SHMOBILE=y
12CONFIG_ARCH_R8A7779=y
13CONFIG_MACH_MARZEN=y
14CONFIG_MEMORY_START=0x60000000
15CONFIG_MEMORY_SIZE=0x10000000
16CONFIG_SHMOBILE_TIMER_HZ=1024
17# CONFIG_SH_TIMER_CMT is not set
18# CONFIG_SWP_EMULATE is not set
19CONFIG_ARM_ERRATA_430973=y
20CONFIG_ARM_ERRATA_458693=y
21CONFIG_ARM_ERRATA_460075=y
22CONFIG_ARM_ERRATA_743622=y
23CONFIG_ARM_ERRATA_754322=y
24CONFIG_NO_HZ=y
25CONFIG_SMP=y
26# CONFIG_ARM_CPU_TOPOLOGY is not set
27CONFIG_AEABI=y
28# CONFIG_OABI_COMPAT is not set
29CONFIG_HIGHMEM=y
30CONFIG_ZBOOT_ROM_TEXT=0x0
31CONFIG_ZBOOT_ROM_BSS=0x0
32CONFIG_CMDLINE="console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel"
33CONFIG_CMDLINE_FORCE=y
34CONFIG_KEXEC=y
35# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
36CONFIG_PM_RUNTIME=y
37CONFIG_NET=y
38CONFIG_INET=y
39# CONFIG_IPV6 is not set
40# CONFIG_WIRELESS is not set
41CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
42CONFIG_DEVTMPFS=y
43CONFIG_DEVTMPFS_MOUNT=y
44# CONFIG_STANDALONE is not set
45# CONFIG_PREVENT_FIRMWARE_BUILD is not set
46# CONFIG_FW_LOADER is not set
47CONFIG_NETDEVICES=y
48# CONFIG_NET_VENDOR_BROADCOM is not set
49# CONFIG_NET_VENDOR_FARADAY is not set
50# CONFIG_NET_VENDOR_INTEL is not set
51# CONFIG_NET_VENDOR_MICREL is not set
52# CONFIG_NET_VENDOR_NATSEMI is not set
53# CONFIG_NET_VENDOR_SEEQ is not set
54CONFIG_SMC911X=y
55CONFIG_SMSC911X=y
56# CONFIG_NET_VENDOR_STMICRO is not set
57# CONFIG_WLAN is not set
58# CONFIG_INPUT_MOUSEDEV is not set
59# CONFIG_INPUT_KEYBOARD is not set
60# CONFIG_INPUT_MOUSE is not set
61# CONFIG_SERIO is not set
62# CONFIG_VT is not set
63# CONFIG_LEGACY_PTYS is not set
64# CONFIG_DEVKMEM is not set
65CONFIG_SERIAL_SH_SCI=y
66CONFIG_SERIAL_SH_SCI_NR_UARTS=6
67CONFIG_SERIAL_SH_SCI_CONSOLE=y
68# CONFIG_HW_RANDOM is not set
69CONFIG_GPIO_SYSFS=y
70# CONFIG_HWMON is not set
71CONFIG_SSB=y
72# CONFIG_HID_SUPPORT is not set
73# CONFIG_USB_SUPPORT is not set
74CONFIG_UIO=y
75CONFIG_UIO_PDRV_GENIRQ=y
76# CONFIG_IOMMU_SUPPORT is not set
77# CONFIG_FILE_LOCKING is not set
78# CONFIG_DNOTIFY is not set
79# CONFIG_INOTIFY_USER is not set
80CONFIG_TMPFS=y
81# CONFIG_MISC_FILESYSTEMS is not set
82CONFIG_MAGIC_SYSRQ=y
83CONFIG_DEBUG_INFO=y
84CONFIG_DEBUG_INFO_REDUCED=y
85# CONFIG_FTRACE is not set
86CONFIG_DEBUG_USER=y
87CONFIG_AVERAGE=y
arch/arm/configs/omap1_defconfig+0−1
@@ -48,7 +48,6 @@ CONFIG_MACH_SX1=y · 47 unmodified lines
48CONFIG_MACH_NOKIA770=y48CONFIG_MACH_NOKIA770=y
49CONFIG_MACH_AMS_DELTA=y49CONFIG_MACH_AMS_DELTA=y
50CONFIG_MACH_OMAP_GENERIC=y50CONFIG_MACH_OMAP_GENERIC=y
51CONFIG_OMAP_ARM_182MHZ=y
52# CONFIG_ARM_THUMB is not set51# CONFIG_ARM_THUMB is not set
53CONFIG_PCCARD=y52CONFIG_PCCARD=y
54CONFIG_OMAP_CF=y53CONFIG_OMAP_CF=y
arch/arm/configs/pcontrol_g20_defconfig+0−175
@@ -1,175 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_CROSS_COMPILE="/opt/arm-2010q1/bin/arm-none-linux-gnueabi-"
3# CONFIG_LOCALVERSION_AUTO is not set
4# CONFIG_SWAP is not set
5CONFIG_SYSVIPC=y
6CONFIG_POSIX_MQUEUE=y
7CONFIG_TREE_PREEMPT_RCU=y
8CONFIG_IKCONFIG=y
9CONFIG_IKCONFIG_PROC=y
10CONFIG_LOG_BUF_SHIFT=14
11CONFIG_NAMESPACES=y
12CONFIG_BLK_DEV_INITRD=y
13CONFIG_EXPERT=y
14# CONFIG_SYSCTL_SYSCALL is not set
15# CONFIG_KALLSYMS is not set
16# CONFIG_VM_EVENT_COUNTERS is not set
17# CONFIG_COMPAT_BRK is not set
18CONFIG_SLAB=y
19CONFIG_MODULES=y
20CONFIG_MODULE_UNLOAD=y
21# CONFIG_LBDAF is not set
22# CONFIG_BLK_DEV_BSG is not set
23CONFIG_DEFAULT_DEADLINE=y
24CONFIG_ARCH_AT91=y
25CONFIG_ARCH_AT91SAM9G20=y
26CONFIG_MACH_PCONTROL_G20=y
27CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
28CONFIG_NO_HZ=y
29CONFIG_HIGH_RES_TIMERS=y
30CONFIG_PREEMPT=y
31CONFIG_AEABI=y
32# CONFIG_OABI_COMPAT is not set
33CONFIG_ZBOOT_ROM_TEXT=0x0
34CONFIG_ZBOOT_ROM_BSS=0x0
35CONFIG_CMDLINE="console=ttyS0,115200 mem=128M mtdparts=atmel_nand:128k(bootstrap)ro,256k(uboot)ro,128k(env1)ro,128k(env2)ro,2M(linux),-(root) root=/dev/mmcblk0p1 rootwait rw"
36CONFIG_VFP=y
37CONFIG_BINFMT_MISC=y
38CONFIG_NET=y
39CONFIG_PACKET=y
40CONFIG_UNIX=y
41CONFIG_INET=y
42# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
43# CONFIG_INET_XFRM_MODE_TUNNEL is not set
44# CONFIG_INET_XFRM_MODE_BEET is not set
45# CONFIG_INET_LRO is not set
46# CONFIG_IPV6 is not set
47CONFIG_VLAN_8021Q=y
48# CONFIG_WIRELESS is not set
49CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
50# CONFIG_FW_LOADER is not set
51CONFIG_MTD=y
52CONFIG_MTD_PARTITIONS=y
53CONFIG_MTD_CMDLINE_PARTS=y
54CONFIG_MTD_CHAR=y
55CONFIG_MTD_BLOCK=y
56CONFIG_MTD_COMPLEX_MAPPINGS=y
57CONFIG_MTD_PHRAM=m
58CONFIG_MTD_NAND=y
59CONFIG_MTD_NAND_ATMEL=y
60CONFIG_BLK_DEV_LOOP=y
61CONFIG_BLK_DEV_RAM=y
62CONFIG_BLK_DEV_RAM_SIZE=8192
63CONFIG_ATMEL_TCLIB=y
64CONFIG_EEPROM_AT24=m
65CONFIG_SCSI=m
66# CONFIG_SCSI_PROC_FS is not set
67CONFIG_BLK_DEV_SD=m
68CONFIG_SCSI_MULTI_LUN=y
69# CONFIG_SCSI_LOWLEVEL is not set
70CONFIG_NETDEVICES=y
71CONFIG_MACVLAN=m
72CONFIG_TUN=m
73CONFIG_SMSC_PHY=m
74CONFIG_BROADCOM_PHY=m
75CONFIG_NET_ETHERNET=y
76CONFIG_MII=y
77CONFIG_MACB=y
78CONFIG_SMSC911X=m
79# CONFIG_NETDEV_1000 is not set
80# CONFIG_NETDEV_10000 is not set
81# CONFIG_WLAN is not set
82CONFIG_PPP=m
83CONFIG_PPP_ASYNC=m
84CONFIG_PPP_DEFLATE=m
85CONFIG_PPP_MPPE=m
86CONFIG_INPUT_POLLDEV=y
87CONFIG_INPUT_SPARSEKMAP=y
88# CONFIG_INPUT_MOUSEDEV is not set
89CONFIG_INPUT_EVDEV=m
90CONFIG_INPUT_EVBUG=m
91# CONFIG_KEYBOARD_ATKBD is not set
92CONFIG_KEYBOARD_GPIO=m
93CONFIG_KEYBOARD_MATRIX=m
94# CONFIG_INPUT_MOUSE is not set
95CONFIG_INPUT_TOUCHSCREEN=y
96CONFIG_INPUT_MISC=y
97CONFIG_INPUT_UINPUT=m
98CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
99# CONFIG_SERIO is not set
100# CONFIG_DEVKMEM is not set
101CONFIG_SERIAL_ATMEL=y
102CONFIG_SERIAL_ATMEL_CONSOLE=y
103CONFIG_SERIAL_MAX3100=m
104# CONFIG_LEGACY_PTYS is not set
105# CONFIG_HW_RANDOM is not set
106CONFIG_R3964=m
107CONFIG_I2C=m
108CONFIG_I2C_CHARDEV=m
109# CONFIG_I2C_HELPER_AUTO is not set
110CONFIG_I2C_GPIO=m
111CONFIG_SPI=y
112CONFIG_SPI_ATMEL=m
113CONFIG_SPI_SPIDEV=m
114CONFIG_GPIO_SYSFS=y
115CONFIG_W1=m
116CONFIG_W1_MASTER_GPIO=m
117CONFIG_W1_SLAVE_DS2431=m
118# CONFIG_HWMON is not set
119CONFIG_WATCHDOG=y
120CONFIG_AT91SAM9X_WATCHDOG=y
121# CONFIG_MFD_SUPPORT is not set
122# CONFIG_HID_SUPPORT is not set
123CONFIG_USB=y
124# CONFIG_USB_DEVICE_CLASS is not set
125CONFIG_USB_OHCI_HCD=y
126CONFIG_USB_STORAGE=m
127CONFIG_USB_LIBUSUAL=y
128CONFIG_USB_SERIAL=m
129CONFIG_USB_SERIAL_GENERIC=y
130CONFIG_USB_SERIAL_FTDI_SIO=m
131CONFIG_USB_SERIAL_PL2303=m
132CONFIG_USB_GADGET=y
133CONFIG_USB_ZERO=m
134CONFIG_USB_ETH=m
135CONFIG_USB_FILE_STORAGE=m
136CONFIG_USB_G_SERIAL=m
137CONFIG_USB_G_HID=m
138CONFIG_MMC=y
139CONFIG_MMC_UNSAFE_RESUME=y
140CONFIG_MMC_ATMELMCI=y
141CONFIG_NEW_LEDS=y
142CONFIG_LEDS_CLASS=y
143CONFIG_LEDS_GPIO=y
144CONFIG_LEDS_TRIGGERS=y
145CONFIG_LEDS_TRIGGER_TIMER=y
146CONFIG_LEDS_TRIGGER_HEARTBEAT=y
147CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
148CONFIG_RTC_CLASS=y
149CONFIG_RTC_DRV_AT91SAM9=y
150CONFIG_AUXDISPLAY=y
151CONFIG_UIO=y
152CONFIG_UIO_PDRV=y
153CONFIG_STAGING=y
154# CONFIG_STAGING_EXCLUDE_BUILD is not set
155CONFIG_IIO=y
156CONFIG_EXT2_FS=y
157CONFIG_EXT3_FS=y
158# CONFIG_EXT3_FS_XATTR is not set
159CONFIG_VFAT_FS=y
160CONFIG_TMPFS=y
161CONFIG_JFFS2_FS=y
162CONFIG_NFS_FS=y
163CONFIG_NFS_V3=y
164CONFIG_NFS_V4=y
165CONFIG_PARTITION_ADVANCED=y
166CONFIG_NLS_CODEPAGE_437=y
167CONFIG_NLS_CODEPAGE_850=y
168CONFIG_NLS_ISO8859_1=y
169CONFIG_NLS_ISO8859_15=y
170CONFIG_NLS_UTF8=y
171# CONFIG_RCU_CPU_STALL_DETECTOR is not set
172CONFIG_CRYPTO=y
173CONFIG_CRYPTO_ANSI_CPRNG=y
174# CONFIG_CRYPTO_HW is not set
175CONFIG_CRC_CCITT=y
arch/arm/configs/tegra_defconfig+4−5
@@ -9,9 +9,8 @@ CONFIG_RESOURCE_COUNTERS=y · 8 unmodified lines
9CONFIG_CGROUP_SCHED=y9CONFIG_CGROUP_SCHED=y
10CONFIG_RT_GROUP_SCHED=y10CONFIG_RT_GROUP_SCHED=y
11CONFIG_BLK_DEV_INITRD=y11CONFIG_BLK_DEV_INITRD=y
12CONFIG_EMBEDDED=y
13# CONFIG_SYSCTL_SYSCALL is not set
14# CONFIG_ELF_CORE is not set12# CONFIG_ELF_CORE is not set
13CONFIG_EMBEDDED=y
15CONFIG_SLAB=y14CONFIG_SLAB=y
16CONFIG_MODULES=y15CONFIG_MODULES=y
17CONFIG_MODULE_UNLOAD=y16CONFIG_MODULE_UNLOAD=y
@@ -20,6 +19,8 @@ CONFIG_MODULE_FORCE_UNLOAD=y · 2 unmodified lines
20# CONFIG_IOSCHED_DEADLINE is not set19# CONFIG_IOSCHED_DEADLINE is not set
21# CONFIG_IOSCHED_CFQ is not set20# CONFIG_IOSCHED_CFQ is not set
22CONFIG_ARCH_TEGRA=y21CONFIG_ARCH_TEGRA=y
22CONFIG_ARCH_TEGRA_2x_SOC=y
23CONFIG_ARCH_TEGRA_3x_SOC=y
23CONFIG_MACH_HARMONY=y24CONFIG_MACH_HARMONY=y
24CONFIG_MACH_KAEN=y25CONFIG_MACH_KAEN=y
25CONFIG_MACH_PAZ00=y26CONFIG_MACH_PAZ00=y
@@ -78,14 +79,12 @@ CONFIG_BLK_DEV_SD=y · 52 unmodified lines
78# CONFIG_SCSI_LOWLEVEL is not set79# CONFIG_SCSI_LOWLEVEL is not set
79CONFIG_NETDEVICES=y80CONFIG_NETDEVICES=y
80CONFIG_DUMMY=y81CONFIG_DUMMY=y
81CONFIG_NET_ETHERNET=y
82CONFIG_R8169=y82CONFIG_R8169=y
83# CONFIG_NETDEV_10000 is not set
84# CONFIG_WLAN is not set
85CONFIG_USB_PEGASUS=y83CONFIG_USB_PEGASUS=y
86CONFIG_USB_USBNET=y84CONFIG_USB_USBNET=y
87CONFIG_USB_NET_SMSC75XX=y85CONFIG_USB_NET_SMSC75XX=y
88CONFIG_USB_NET_SMSC95XX=y86CONFIG_USB_NET_SMSC95XX=y
87# CONFIG_WLAN is not set
89# CONFIG_INPUT is not set88# CONFIG_INPUT is not set
90# CONFIG_SERIO is not set89# CONFIG_SERIO is not set
91# CONFIG_VT is not set90# CONFIG_VT is not set
arch/arm/include/asm/assembler.h+11−0
@@ -186,6 +186,17 @@ · 185 unmodified lines
186#define ALT_UP_B(label) b label186#define ALT_UP_B(label) b label
187#endif187#endif
188 188
189/*
190 * Instruction barrier
191 */
192 .macro instr_sync
193#if __LINUX_ARM_ARCH__ >= 7
194 isb
195#elif __LINUX_ARM_ARCH__ == 6
196 mcr p15, 0, r0, c7, c5, 4
197#endif
198 .endm
199
189/*200/*
190 * SMP data memory barrier201 * SMP data memory barrier
191 */202 */
arch/arm/include/asm/bug.h+0−1
@@ -32,7 +32,6 @@ · 31 unmodified lines
32 32
33#define __BUG(__file, __line, __value) \33#define __BUG(__file, __line, __value) \
34do { \34do { \
35 BUILD_BUG_ON(sizeof(struct bug_entry) != 12); \
36 asm volatile("1:\t" BUG_INSTR_TYPE #__value "\n" \35 asm volatile("1:\t" BUG_INSTR_TYPE #__value "\n" \
37 ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" \36 ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" \
38 "2:\t.asciz " #__file "\n" \37 "2:\t.asciz " #__file "\n" \
arch/arm/include/asm/cti.h+179−0
@@ -0,0 +1,179 @@
1#ifndef __ASMARM_CTI_H
2#define __ASMARM_CTI_H
3
4#include <asm/io.h>
5
6/* The registers' definition is from section 3.2 of
7 * Embedded Cross Trigger Revision: r0p0
8 */
9#define CTICONTROL 0x000
10#define CTISTATUS 0x004
11#define CTILOCK 0x008
12#define CTIPROTECTION 0x00C
13#define CTIINTACK 0x010
14#define CTIAPPSET 0x014
15#define CTIAPPCLEAR 0x018
16#define CTIAPPPULSE 0x01c
17#define CTIINEN 0x020
18#define CTIOUTEN 0x0A0
19#define CTITRIGINSTATUS 0x130
20#define CTITRIGOUTSTATUS 0x134
21#define CTICHINSTATUS 0x138
22#define CTICHOUTSTATUS 0x13c
23#define CTIPERIPHID0 0xFE0
24#define CTIPERIPHID1 0xFE4
25#define CTIPERIPHID2 0xFE8
26#define CTIPERIPHID3 0xFEC
27#define CTIPCELLID0 0xFF0
28#define CTIPCELLID1 0xFF4
29#define CTIPCELLID2 0xFF8
30#define CTIPCELLID3 0xFFC
31
32/* The below are from section 3.6.4 of
33 * CoreSight v1.0 Architecture Specification
34 */
35#define LOCKACCESS 0xFB0
36#define LOCKSTATUS 0xFB4
37
38/* write this value to LOCKACCESS will unlock the module, and
39 * other value will lock the module
40 */
41#define LOCKCODE 0xC5ACCE55
42
43/**
44 * struct cti - cross trigger interface struct
45 * @base: mapped virtual address for the cti base
46 * @irq: irq number for the cti
47 * @trig_out_for_irq: triger out number which will cause
48 * the @irq happen
49 *
50 * cti struct used to operate cti registers.
51 */
52struct cti {
53 void __iomem *base;
54 int irq;
55 int trig_out_for_irq;
56};
57
58/**
59 * cti_init - initialize the cti instance
60 * @cti: cti instance
61 * @base: mapped virtual address for the cti base
62 * @irq: irq number for the cti
63 * @trig_out: triger out number which will cause
64 * the @irq happen
65 *
66 * called by machine code to pass the board dependent
67 * @base, @irq and @trig_out to cti.
68 */
69static inline void cti_init(struct cti *cti,
70 void __iomem *base, int irq, int trig_out)
71{
72 cti->base = base;
73 cti->irq = irq;
74 cti->trig_out_for_irq = trig_out;
75}
76
77/**
78 * cti_map_trigger - use the @chan to map @trig_in to @trig_out
79 * @cti: cti instance
80 * @trig_in: trigger in number
81 * @trig_out: trigger out number
82 * @channel: channel number
83 *
84 * This function maps one trigger in of @trig_in to one trigger
85 * out of @trig_out using the channel @chan.
86 */
87static inline void cti_map_trigger(struct cti *cti,
88 int trig_in, int trig_out, int chan)
89{
90 void __iomem *base = cti->base;
91 unsigned long val;
92
93 val = __raw_readl(base + CTIINEN + trig_in * 4);
94 val |= BIT(chan);
95 __raw_writel(val, base + CTIINEN + trig_in * 4);
96
97 val = __raw_readl(base + CTIOUTEN + trig_out * 4);
98 val |= BIT(chan);
99 __raw_writel(val, base + CTIOUTEN + trig_out * 4);
100}
101
102/**
103 * cti_enable - enable the cti module
104 * @cti: cti instance
105 *
106 * enable the cti module
107 */
108static inline void cti_enable(struct cti *cti)
109{
110 __raw_writel(0x1, cti->base + CTICONTROL);
111}
112
113/**
114 * cti_disable - disable the cti module
115 * @cti: cti instance
116 *
117 * enable the cti module
118 */
119static inline void cti_disable(struct cti *cti)
120{
121 __raw_writel(0, cti->base + CTICONTROL);
122}
123
124/**
125 * cti_irq_ack - clear the cti irq
126 * @cti: cti instance
127 *
128 * clear the cti irq
129 */
130static inline void cti_irq_ack(struct cti *cti)
131{
132 void __iomem *base = cti->base;
133 unsigned long val;
134
135 val = __raw_readl(base + CTIINTACK);
136 val |= BIT(cti->trig_out_for_irq);
137 __raw_writel(val, base + CTIINTACK);
138}
139
140/**
141 * cti_unlock - unlock cti module
142 * @cti: cti instance
143 *
144 * unlock the cti module, or else any writes to the cti
145 * module is not allowed.
146 */
147static inline void cti_unlock(struct cti *cti)
148{
149 void __iomem *base = cti->base;
150 unsigned long val;
151
152 val = __raw_readl(base + LOCKSTATUS);
153
154 if (val & 1) {
155 val = LOCKCODE;
156 __raw_writel(val, base + LOCKACCESS);
157 }
158}
159
160/**
161 * cti_lock - lock cti module
162 * @cti: cti instance
163 *
164 * lock the cti module, so any writes to the cti
165 * module will be not allowed.
166 */
167static inline void cti_lock(struct cti *cti)
168{
169 void __iomem *base = cti->base;
170 unsigned long val;
171
172 val = __raw_readl(base + LOCKSTATUS);
173
174 if (!(val & 1)) {
175 val = ~LOCKCODE;
176 __raw_writel(val, base + LOCKACCESS);
177 }
178}
179#endif
arch/arm/include/asm/edac.h+48−0
@@ -0,0 +1,48 @@
1/*
2 * Copyright 2011 Calxeda, Inc.
3 * Based on PPC version Copyright 2007 MontaVista Software, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along with
15 * this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17#ifndef ASM_EDAC_H
18#define ASM_EDAC_H
19/*
20 * ECC atomic, DMA, SMP and interrupt safe scrub function.
21 * Implements the per arch atomic_scrub() that EDAC use for software
22 * ECC scrubbing. It reads memory and then writes back the original
23 * value, allowing the hardware to detect and correct memory errors.
24 */
25static inline void atomic_scrub(void *va, u32 size)
26{
27#if __LINUX_ARM_ARCH__ >= 6
28 unsigned int *virt_addr = va;
29 unsigned int temp, temp2;
30 unsigned int i;
31
32 for (i = 0; i < size / sizeof(*virt_addr); i++, virt_addr++) {
33 /* Very carefully read and write to memory atomically
34 * so we are interrupt, DMA and SMP safe.
35 */
36 __asm__ __volatile__("\n"
37 "1: ldrex %0, [%2]\n"
38 " strex %1, %0, [%2]\n"
39 " teq %1, #0\n"
40 " bne 1b\n"
41 : "=&r"(temp), "=&r"(temp2)
42 : "r"(virt_addr)
43 : "cc");
44 }
45#endif
46}
47
48#endif
arch/arm/include/asm/entry-macro-vic2.S+0−57
@@ -1,57 +0,0 @@
1/* arch/arm/include/asm/entry-macro-vic2.S
2 *
3 * Originally arch/arm/mach-s3c6400/include/mach/entry-macro.S
4 *
5 * Copyright 2008 Openmoko, Inc.
6 * Copyright 2008 Simtec Electronics
7 * http://armlinux.simtec.co.uk/
8 * Ben Dooks <ben@simtec.co.uk>
9 *
10 * Low-level IRQ helper macros for a device with two VICs
11 *
12 * This file is licensed under the terms of the GNU General Public
13 * License version 2. This program is licensed "as is" without any
14 * warranty of any kind, whether express or implied.
15*/
16
17/* This should be included from <mach/entry-macro.S> with the necessary
18 * defines for virtual addresses and IRQ bases for the two vics.
19 *
20 * The code needs the following defined:
21 * IRQ_VIC0_BASE IRQ number of VIC0's first IRQ
22 * IRQ_VIC1_BASE IRQ number of VIC1's first IRQ
23 * VA_VIC0 Virtual address of VIC0
24 * VA_VIC1 Virtual address of VIC1
25 *
26 * Note, code assumes VIC0's virtual address is an ARM immediate constant
27 * away from VIC1.
28*/
29
30#include <asm/hardware/vic.h>
31
32 .macro disable_fiq
33 .endm
34
35 .macro get_irqnr_preamble, base, tmp
36 ldr \base, =VA_VIC0
37 .endm
38
39 .macro arch_ret_to_user, tmp1, tmp2
40 .endm
41
42 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
43
44 @ check the vic0
45 mov \irqnr, #IRQ_VIC0_BASE + 31
46 ldr \irqstat, [ \base, # VIC_IRQ_STATUS ]
47 teq \irqstat, #0
48
49 @ otherwise try vic1
50 addeq \tmp, \base, #(VA_VIC1 - VA_VIC0)
51 addeq \irqnr, \irqnr, #(IRQ_VIC1_BASE - IRQ_VIC0_BASE)
52 ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ]
53 teqeq \irqstat, #0
54
55 clzne \irqstat, \irqstat
56 subne \irqnr, \irqnr, \irqstat
57 .endm
arch/arm/include/asm/gpio.h+4−0
@@ -1,6 +1,10 @@
1#ifndef _ARCH_ARM_GPIO_H1#ifndef _ARCH_ARM_GPIO_H
2#define _ARCH_ARM_GPIO_H2#define _ARCH_ARM_GPIO_H
3 3
4#if CONFIG_ARCH_NR_GPIO > 0
5#define ARCH_NR_GPIOS CONFIG_ARCH_NR_GPIO
6#endif
7
4/* not all ARM platforms necessarily support this API ... */8/* not all ARM platforms necessarily support this API ... */
5#include <mach/gpio.h>9#include <mach/gpio.h>
6 10
arch/arm/include/asm/hardirq.h+0−17
@@ -27,23 +27,6 @@ u64 smp_irq_stat_cpu(unsigned int cpu); · 26 unmodified lines
27 27
28#define arch_irq_stat_cpu smp_irq_stat_cpu28#define arch_irq_stat_cpu smp_irq_stat_cpu
29 29
30#if NR_IRQS > 512
31#define HARDIRQ_BITS 10
32#elif NR_IRQS > 256
33#define HARDIRQ_BITS 9
34#else
35#define HARDIRQ_BITS 8
36#endif
37
38/*
39 * The hardirq mask has to be large enough to have space
40 * for potentially all IRQ sources in the system nesting
41 * on a single CPU:
42 */
43#if (1 << HARDIRQ_BITS) < NR_IRQS
44# error HARDIRQ_BITS is too low!
45#endif
46
47#define __ARCH_IRQ_EXIT_IRQS_DISABLED 130#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
48 31
49#endif /* __ASM_HARDIRQ_H */32#endif /* __ASM_HARDIRQ_H */
arch/arm/include/asm/hardware/entry-macro-gic.S+0−60
@@ -1,60 +0,0 @@
1/*
2 * arch/arm/include/asm/hardware/entry-macro-gic.S
3 *
4 * Low-level IRQ helper macros for GIC
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#include <asm/hardware/gic.h>
12
13#ifndef HAVE_GET_IRQNR_PREAMBLE
14 .macro get_irqnr_preamble, base, tmp
15 ldr \base, =gic_cpu_base_addr
16 ldr \base, [\base]
17 .endm
18#endif
19
20/*
21 * The interrupt numbering scheme is defined in the
22 * interrupt controller spec. To wit:
23 *
24 * Interrupts 0-15 are IPI
25 * 16-31 are local. We allow 30 to be used for the watchdog.
26 * 32-1020 are global
27 * 1021-1022 are reserved
28 * 1023 is "spurious" (no interrupt)
29 *
30 * A simple read from the controller will tell us the number of the highest
31 * priority enabled interrupt. We then just need to check whether it is in the
32 * valid range for an IRQ (30-1020 inclusive).
33 */
34
35 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
36
37 ldr \irqstat, [\base, #GIC_CPU_INTACK]
38 /* bits 12-10 = src CPU, 9-0 = int # */
39
40 ldr \tmp, =1021
41 bic \irqnr, \irqstat, #0x1c00
42 cmp \irqnr, #15
43 cmpcc \irqnr, \irqnr
44 cmpne \irqnr, \tmp
45 cmpcs \irqnr, \irqnr
46 .endm
47
48/* We assume that irqstat (the raw value of the IRQ acknowledge
49 * register) is preserved from the macro above.
50 * If there is an IPI, we immediately signal end of interrupt on the
51 * controller, since this requires the original irqstat value which
52 * we won't easily be able to recreate later.
53 */
54
55 .macro test_for_ipi, irqnr, irqstat, base, tmp
56 bic \irqnr, \irqstat, #0x1c00
57 cmp \irqnr, #16
58 strcc \irqstat, [\base, #GIC_CPU_EOI]
59 cmpcs \irqnr, \irqnr
60 .endm
arch/arm/include/asm/hardware/gic.h+9−17
@@ -36,30 +36,22 @@ · 35 unmodified lines
36#include <linux/irqdomain.h>36#include <linux/irqdomain.h>
37struct device_node;37struct device_node;
38 38
39extern void __iomem *gic_cpu_base_addr;
40extern struct irq_chip gic_arch_extn;39extern struct irq_chip gic_arch_extn;
41 40
42void gic_init(unsigned int, int, void __iomem *, void __iomem *);41void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *,
42 u32 offset);
43int gic_of_init(struct device_node *node, struct device_node *parent);43int gic_of_init(struct device_node *node, struct device_node *parent);
44void gic_secondary_init(unsigned int);44void gic_secondary_init(unsigned int);
45void gic_handle_irq(struct pt_regs *regs);
45void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);46void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);
46void gic_raise_softirq(const struct cpumask *mask, unsigned int irq);47void gic_raise_softirq(const struct cpumask *mask, unsigned int irq);
47 48
48struct gic_chip_data {49static inline void gic_init(unsigned int nr, int start,
49 void __iomem *dist_base;50 void __iomem *dist , void __iomem *cpu)
50 void __iomem *cpu_base;51{
51#ifdef CONFIG_CPU_PM52 gic_init_bases(nr, start, dist, cpu, 0);
52 u32 saved_spi_enable[DIV_ROUND_UP(1020, 32)];53}
53 u32 saved_spi_conf[DIV_ROUND_UP(1020, 16)];54
54 u32 saved_spi_target[DIV_ROUND_UP(1020, 4)];
55 u32 __percpu *saved_ppi_enable;
56 u32 __percpu *saved_ppi_conf;
57#endif
58#ifdef CONFIG_IRQ_DOMAIN
59 struct irq_domain domain;
60#endif
61 unsigned int gic_irqs;
62};
63#endif55#endif
64 56
65#endif57#endif
arch/arm/include/asm/hardware/iop3xx.h+1−0
@@ -234,6 +234,7 @@ extern int iop3xx_get_init_atu(void); · 233 unmodified lines
234void iop3xx_map_io(void);234void iop3xx_map_io(void);
235void iop_init_cp6_handler(void);235void iop_init_cp6_handler(void);
236void iop_init_time(unsigned long tickrate);236void iop_init_time(unsigned long tickrate);
237void iop3xx_restart(char, const char *);
237 238
238static inline u32 read_tmr0(void)239static inline u32 read_tmr0(void)
239{240{
arch/arm/include/asm/hardware/vic.h+9−1
@@ -41,7 +41,15 @@ · 40 unmodified lines
41#define VIC_PL192_VECT_ADDR 0xF0041#define VIC_PL192_VECT_ADDR 0xF00
42 42
43#ifndef __ASSEMBLY__43#ifndef __ASSEMBLY__
44#include <linux/compiler.h>
45#include <linux/types.h>
46
47struct device_node;
48struct pt_regs;
49
44void vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, u32 resume_sources);50void vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, u32 resume_sources);
45#endif51int vic_of_init(struct device_node *node, struct device_node *parent);
52void vic_handle_irq(struct pt_regs *regs);
46 53
54#endif /* __ASSEMBLY__ */
47#endif55#endif
arch/arm/include/asm/hwcap.h+3−1
@@ -25,7 +25,8 @@ · 24 unmodified lines
25#define HWCAP_IDIVT (1 << 18)25#define HWCAP_IDIVT (1 << 18)
26#define HWCAP_IDIV (HWCAP_IDIVA | HWCAP_IDIVT)26#define HWCAP_IDIV (HWCAP_IDIVA | HWCAP_IDIVT)
27 27
28#if defined(__KERNEL__) && !defined(__ASSEMBLY__)28#if defined(__KERNEL__)
29#if !defined(__ASSEMBLY__)
29/*30/*
30 * This yields a mask that user programs can use to figure out what31 * This yields a mask that user programs can use to figure out what
31 * instruction set this cpu supports.32 * instruction set this cpu supports.
@@ -33,5 +34,6 @@ · 1 unmodified line
33#define ELF_HWCAP (elf_hwcap)34#define ELF_HWCAP (elf_hwcap)
34extern unsigned int elf_hwcap;35extern unsigned int elf_hwcap;
35#endif36#endif
37#endif
36 38
37#endif39#endif
arch/arm/include/asm/idmap.h+14−0
@@ -0,0 +1,14 @@
1#ifndef __ASM_IDMAP_H
2#define __ASM_IDMAP_H
3
4#include <linux/compiler.h>
5#include <asm/pgtable.h>
6
7/* Tag a function as requiring to be executed via an identity mapping. */
8#define __idmap __section(.idmap.text) noinline notrace
9
10extern pgd_t *idmap_pgd;
11
12void setup_mm_for_reboot(void);
13
14#endif /* __ASM_IDMAP_H */
arch/arm/include/asm/io.h+1−1
@@ -27,6 +27,7 @@ · 26 unmodified lines
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>29#include <asm/system.h>
30#include <asm-generic/pci_iomap.h>
30 31
31/*32/*
32 * ISA I/O bus memory addresses are 1:1 with the physical address.33 * ISA I/O bus memory addresses are 1:1 with the physical address.
@@ -306,7 +307,6 @@ extern void ioport_unmap(void __iomem *addr); · 273 unmodified lines
306 307
307struct pci_dev;308struct pci_dev;
308 309
309extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen);
310extern void pci_iounmap(struct pci_dev *dev, void __iomem *addr);310extern void pci_iounmap(struct pci_dev *dev, void __iomem *addr);
311 311
312/*312/*
arch/arm/include/asm/ipcbuf.h+1−29
@@ -1,29 +1 @@
1#ifndef __ASMARM_IPCBUF_H1#include <asm-generic/ipcbuf.h>
2#define __ASMARM_IPCBUF_H
3
4/*
5 * The ipc64_perm structure for arm architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * Pad space is left for:
10 * - 32-bit mode_t and seq
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct ipc64_perm
15{
16 __kernel_key_t key;
17 __kernel_uid32_t uid;
18 __kernel_gid32_t gid;
19 __kernel_uid32_t cuid;
20 __kernel_gid32_t cgid;
21 __kernel_mode_t mode;
22 unsigned short __pad1;
23 unsigned short seq;
24 unsigned short __pad2;
25 unsigned long __unused1;
26 unsigned long __unused2;
27};
28
29#endif /* __ASMARM_IPCBUF_H */
arch/arm/include/asm/kprobes.h+0−1
@@ -24,7 +24,6 @@ · 23 unmodified lines
24#define MAX_INSN_SIZE 224#define MAX_INSN_SIZE 2
25#define MAX_STACK_SIZE 64 /* 32 would probably be OK */25#define MAX_STACK_SIZE 64 /* 32 would probably be OK */
26 26
27#define regs_return_value(regs) ((regs)->ARM_r0)
28#define flush_insn_slot(p) do { } while (0)27#define flush_insn_slot(p) do { } while (0)
29#define kretprobe_blacklist_size 028#define kretprobe_blacklist_size 0
30 29
arch/arm/include/asm/mach/arch.h+6−5
@@ -19,7 +19,7 @@ struct machine_desc { · 18 unmodified lines
19 unsigned int nr; /* architecture number */19 unsigned int nr; /* architecture number */
20 const char *name; /* architecture name */20 const char *name; /* architecture name */
21 unsigned long atag_offset; /* tagged list (relative) */21 unsigned long atag_offset; /* tagged list (relative) */
22 const char **dt_compat; /* array of device tree22 const char *const *dt_compat; /* array of device tree
23 * 'compatible' strings */23 * 'compatible' strings */
24 24
25 unsigned int nr_irqs; /* number of IRQs */25 unsigned int nr_irqs; /* number of IRQs */
@@ -31,10 +31,10 @@ struct machine_desc { · 5 unmodified lines
31 unsigned int video_start; /* start of video RAM */31 unsigned int video_start; /* start of video RAM */
32 unsigned int video_end; /* end of video RAM */32 unsigned int video_end; /* end of video RAM */
33 33
34 unsigned int reserve_lp0 :1; /* never has lp0 */34 unsigned char reserve_lp0 :1; /* never has lp0 */
35 unsigned int reserve_lp1 :1; /* never has lp1 */35 unsigned char reserve_lp1 :1; /* never has lp1 */
36 unsigned int reserve_lp2 :1; /* never has lp2 */36 unsigned char reserve_lp2 :1; /* never has lp2 */
37 unsigned int soft_reboot :1; /* soft reboot */37 char restart_mode; /* default restart mode */
38 void (*fixup)(struct tag *, char **,38 void (*fixup)(struct tag *, char **,
39 struct meminfo *);39 struct meminfo *);
40 void (*reserve)(void);/* reserve mem blocks */40 void (*reserve)(void);/* reserve mem blocks */
@@ -46,6 +46,7 @@ struct machine_desc { · 5 unmodified lines
46#ifdef CONFIG_MULTI_IRQ_HANDLER46#ifdef CONFIG_MULTI_IRQ_HANDLER
47 void (*handle_irq)(struct pt_regs *);47 void (*handle_irq)(struct pt_regs *);
48#endif48#endif
49 void (*restart)(char, const char *);
49};50};
50 51
51/*52/*
arch/arm/include/asm/mach/pci.h+1−1
@@ -40,7 +40,7 @@ struct pci_sys_data { · 39 unmodified lines
40 u64 mem_offset; /* bus->cpu memory mapping offset */40 u64 mem_offset; /* bus->cpu memory mapping offset */
41 unsigned long io_offset; /* bus->cpu IO mapping offset */41 unsigned long io_offset; /* bus->cpu IO mapping offset */
42 struct pci_bus *bus; /* PCI bus */42 struct pci_bus *bus; /* PCI bus */
43 struct resource *resource[3]; /* Primary PCI bus resources */43 struct list_head resources; /* root bus resources (apertures) */
44 /* Bridge swizzling */44 /* Bridge swizzling */
45 u8 (*swizzle)(struct pci_dev *, u8 *);45 u8 (*swizzle)(struct pci_dev *, u8 *);
46 /* IRQ mapping */46 /* IRQ mapping */
arch/arm/include/asm/mach/time.h+0−2
@@ -10,8 +10,6 @@ · 9 unmodified lines
10#ifndef __ASM_ARM_MACH_TIME_H10#ifndef __ASM_ARM_MACH_TIME_H
11#define __ASM_ARM_MACH_TIME_H11#define __ASM_ARM_MACH_TIME_H
12 12
13#include <linux/sysdev.h>
14
15/*13/*
16 * This is our kernel timer structure.14 * This is our kernel timer structure.
17 *15 *
arch/arm/include/asm/memblock.h+2−0
@@ -6,4 +6,6 @@ struct machine_desc; · 5 unmodified lines
6 6
7extern void arm_memblock_init(struct meminfo *, struct machine_desc *);7extern void arm_memblock_init(struct meminfo *, struct machine_desc *);
8 8
9phys_addr_t arm_memblock_steal(phys_addr_t size, phys_addr_t align);
10
9#endif11#endif
arch/arm/include/asm/opcodes.h+20−0
@@ -0,0 +1,20 @@
1/*
2 * arch/arm/include/asm/opcodes.h
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
9#ifndef __ASM_ARM_OPCODES_H
10#define __ASM_ARM_OPCODES_H
11
12#ifndef __ASSEMBLY__
13extern asmlinkage unsigned int arm_check_condition(u32 opcode, u32 psr);
14#endif
15
16#define ARM_OPCODE_CONDTEST_FAIL 0
17#define ARM_OPCODE_CONDTEST_PASS 1
18#define ARM_OPCODE_CONDTEST_UNCOND 2
19
20#endif /* __ASM_ARM_OPCODES_H */
arch/arm/include/asm/page.h+4−0
@@ -151,7 +151,11 @@ 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#ifdef CONFIG_ARM_LPAE
155#include <asm/pgtable-3level-types.h>
156#else
154#include <asm/pgtable-2level-types.h>157#include <asm/pgtable-2level-types.h>
158#endif
155 159
156#endif /* CONFIG_MMU */160#endif /* CONFIG_MMU */
157 161
arch/arm/include/asm/pci.h+0−12
@@ -31,18 +31,6 @@ static inline int pci_proc_domain(struct pci_bus *bus) · 30 unmodified lines
31}31}
32#endif /* CONFIG_PCI_DOMAINS */32#endif /* CONFIG_PCI_DOMAINS */
33 33
34#ifdef CONFIG_PCI_HOST_ITE8152
35/* ITE bridge requires setting latency timer to avoid early bus access
36 termination by PIC bus mater devices
37*/
38extern void pcibios_set_master(struct pci_dev *dev);
39#else
40static inline void pcibios_set_master(struct pci_dev *dev)
41{
42 /* No special bus mastering setup handling */
43}
44#endif
45
46static inline void pcibios_penalize_isa_irq(int irq, int active)34static inline void pcibios_penalize_isa_irq(int irq, int active)
47{35{
48 /* We don't do dynamic PCI IRQ allocation */36 /* We don't do dynamic PCI IRQ allocation */
arch/arm/include/asm/perf_event.h+0−3
@@ -32,7 +32,4 @@ enum arm_perf_pmu_ids { · 31 unmodified lines
32extern enum arm_perf_pmu_ids32extern enum arm_perf_pmu_ids
33armpmu_get_pmu_id(void);33armpmu_get_pmu_id(void);
34 34
35extern int
36armpmu_get_max_events(void);
37
38#endif /* __ARM_PERF_EVENT_H__ */35#endif /* __ARM_PERF_EVENT_H__ */
arch/arm/include/asm/pgalloc.h+25−1
@@ -25,12 +25,34 @@ · 24 unmodified lines
25#define _PAGE_USER_TABLE (PMD_TYPE_TABLE | PMD_BIT4 | PMD_DOMAIN(DOMAIN_USER))25#define _PAGE_USER_TABLE (PMD_TYPE_TABLE | PMD_BIT4 | PMD_DOMAIN(DOMAIN_USER))
26#define _PAGE_KERNEL_TABLE (PMD_TYPE_TABLE | PMD_BIT4 | PMD_DOMAIN(DOMAIN_KERNEL))26#define _PAGE_KERNEL_TABLE (PMD_TYPE_TABLE | PMD_BIT4 | PMD_DOMAIN(DOMAIN_KERNEL))
27 27
28#ifdef CONFIG_ARM_LPAE
29
30static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr)
31{
32 return (pmd_t *)get_zeroed_page(GFP_KERNEL | __GFP_REPEAT);
33}
34
35static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
36{
37 BUG_ON((unsigned long)pmd & (PAGE_SIZE-1));
38 free_page((unsigned long)pmd);
39}
40
41static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
42{
43 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
44}
45
46#else /* !CONFIG_ARM_LPAE */
47
28/*48/*
29 * Since we have only two-level page tables, these are trivial49 * Since we have only two-level page tables, these are trivial
30 */50 */
31#define pmd_alloc_one(mm,addr) ({ BUG(); ((pmd_t *)2); })51#define pmd_alloc_one(mm,addr) ({ BUG(); ((pmd_t *)2); })
32#define pmd_free(mm, pmd) do { } while (0)52#define pmd_free(mm, pmd) do { } while (0)
33#define pgd_populate(mm,pmd,pte) BUG()53#define pud_populate(mm,pmd,pte) BUG()
54
55#endif /* CONFIG_ARM_LPAE */
34 56
35extern pgd_t *pgd_alloc(struct mm_struct *mm);57extern pgd_t *pgd_alloc(struct mm_struct *mm);
36extern void pgd_free(struct mm_struct *mm, pgd_t *pgd);58extern void pgd_free(struct mm_struct *mm, pgd_t *pgd);
@@ -109,7 +131,9 @@ static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte, · 72 unmodified lines
109{131{
110 pmdval_t pmdval = (pte + PTE_HWTABLE_OFF) | prot;132 pmdval_t pmdval = (pte + PTE_HWTABLE_OFF) | prot;
111 pmdp[0] = __pmd(pmdval);133 pmdp[0] = __pmd(pmdval);
134#ifndef CONFIG_ARM_LPAE
112 pmdp[1] = __pmd(pmdval + 256 * sizeof(pte_t));135 pmdp[1] = __pmd(pmdval + 256 * sizeof(pte_t));
136#endif
113 flush_pmd_entry(pmdp);137 flush_pmd_entry(pmdp);
114}138}
115 139
arch/arm/include/asm/pgtable-2level.h+41−0
@@ -140,4 +140,45 @@ · 139 unmodified lines
140#define L_PTE_MT_DEV_CACHED (_AT(pteval_t, 0x0b) << 2) /* 1011 */140#define L_PTE_MT_DEV_CACHED (_AT(pteval_t, 0x0b) << 2) /* 1011 */
141#define L_PTE_MT_MASK (_AT(pteval_t, 0x0f) << 2)141#define L_PTE_MT_MASK (_AT(pteval_t, 0x0f) << 2)
142 142
143#ifndef __ASSEMBLY__
144
145/*
146 * The "pud_xxx()" functions here are trivial when the pmd is folded into
147 * the pud: the pud entry is never bad, always exists, and can't be set or
148 * cleared.
149 */
150#define pud_none(pud) (0)
151#define pud_bad(pud) (0)
152#define pud_present(pud) (1)
153#define pud_clear(pudp) do { } while (0)
154#define set_pud(pud,pudp) do { } while (0)
155
156static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr)
157{
158 return (pmd_t *)pud;
159}
160
161#define pmd_bad(pmd) (pmd_val(pmd) & 2)
162
163#define copy_pmd(pmdpd,pmdps) \
164 do { \
165 pmdpd[0] = pmdps[0]; \
166 pmdpd[1] = pmdps[1]; \
167 flush_pmd_entry(pmdpd); \
168 } while (0)
169
170#define pmd_clear(pmdp) \
171 do { \
172 pmdp[0] = __pmd(0); \
173 pmdp[1] = __pmd(0); \
174 clean_pmd_entry(pmdp); \
175 } while (0)
176
177/* we don't need complex calculations here as the pmd is folded into the pgd */
178#define pmd_addr_end(addr,end) (end)
179
180#define set_pte_ext(ptep,pte,ext) cpu_set_pte_ext(ptep,pte,ext)
181
182#endif /* __ASSEMBLY__ */
183
143#endif /* _ASM_PGTABLE_2LEVEL_H */184#endif /* _ASM_PGTABLE_2LEVEL_H */
arch/arm/include/asm/pgtable-3level-hwdef.h+77−0
@@ -0,0 +1,77 @@
1/*
2 * arch/arm/include/asm/pgtable-3level-hwdef.h
3 *
4 * Copyright (C) 2011 ARM Ltd.
5 * Author: Catalin Marinas <catalin.marinas@arm.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 * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef _ASM_PGTABLE_3LEVEL_HWDEF_H
21#define _ASM_PGTABLE_3LEVEL_HWDEF_H
22
23/*
24 * Hardware page table definitions.
25 *
26 * + Level 1/2 descriptor
27 * - common
28 */
29#define PMD_TYPE_MASK (_AT(pmdval_t, 3) << 0)
30#define PMD_TYPE_FAULT (_AT(pmdval_t, 0) << 0)
31#define PMD_TYPE_TABLE (_AT(pmdval_t, 3) << 0)
32#define PMD_TYPE_SECT (_AT(pmdval_t, 1) << 0)
33#define PMD_BIT4 (_AT(pmdval_t, 0))
34#define PMD_DOMAIN(x) (_AT(pmdval_t, 0))
35
36/*
37 * - section
38 */
39#define PMD_SECT_BUFFERABLE (_AT(pmdval_t, 1) << 2)
40#define PMD_SECT_CACHEABLE (_AT(pmdval_t, 1) << 3)
41#define PMD_SECT_S (_AT(pmdval_t, 3) << 8)
42#define PMD_SECT_AF (_AT(pmdval_t, 1) << 10)
43#define PMD_SECT_nG (_AT(pmdval_t, 1) << 11)
44#define PMD_SECT_XN (_AT(pmdval_t, 1) << 54)
45#define PMD_SECT_AP_WRITE (_AT(pmdval_t, 0))
46#define PMD_SECT_AP_READ (_AT(pmdval_t, 0))
47#define PMD_SECT_TEX(x) (_AT(pmdval_t, 0))
48
49/*
50 * AttrIndx[2:0] encoding (mapping attributes defined in the MAIR* registers).
51 */
52#define PMD_SECT_UNCACHED (_AT(pmdval_t, 0) << 2) /* strongly ordered */
53#define PMD_SECT_BUFFERED (_AT(pmdval_t, 1) << 2) /* normal non-cacheable */
54#define PMD_SECT_WT (_AT(pmdval_t, 2) << 2) /* normal inner write-through */
55#define PMD_SECT_WB (_AT(pmdval_t, 3) << 2) /* normal inner write-back */
56#define PMD_SECT_WBWA (_AT(pmdval_t, 7) << 2) /* normal inner write-alloc */
57
58/*
59 * + Level 3 descriptor (PTE)
60 */
61#define PTE_TYPE_MASK (_AT(pteval_t, 3) << 0)
62#define PTE_TYPE_FAULT (_AT(pteval_t, 0) << 0)
63#define PTE_TYPE_PAGE (_AT(pteval_t, 3) << 0)
64#define PTE_BUFFERABLE (_AT(pteval_t, 1) << 2) /* AttrIndx[0] */
65#define PTE_CACHEABLE (_AT(pteval_t, 1) << 3) /* AttrIndx[1] */
66#define PTE_EXT_SHARED (_AT(pteval_t, 3) << 8) /* SH[1:0], inner shareable */
67#define PTE_EXT_AF (_AT(pteval_t, 1) << 10) /* Access Flag */
68#define PTE_EXT_NG (_AT(pteval_t, 1) << 11) /* nG */
69#define PTE_EXT_XN (_AT(pteval_t, 1) << 54) /* XN */
70
71/*
72 * 40-bit physical address supported.
73 */
74#define PHYS_MASK_SHIFT (40)
75#define PHYS_MASK ((1ULL << PHYS_MASK_SHIFT) - 1)
76
77#endif
arch/arm/include/asm/pgtable-3level-types.h+70−0
@@ -0,0 +1,70 @@
1/*
2 * arch/arm/include/asm/pgtable-3level-types.h
3 *
4 * Copyright (C) 2011 ARM Ltd.
5 * Author: Catalin Marinas <catalin.marinas@arm.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 * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef _ASM_PGTABLE_3LEVEL_TYPES_H
21#define _ASM_PGTABLE_3LEVEL_TYPES_H
22
23#include <asm/types.h>
24
25typedef u64 pteval_t;
26typedef u64 pmdval_t;
27typedef u64 pgdval_t;
28
29#undef STRICT_MM_TYPECHECKS
30
31#ifdef STRICT_MM_TYPECHECKS
32
33/*
34 * These are used to make use of C type-checking..
35 */
36typedef struct { pteval_t pte; } pte_t;
37typedef struct { pmdval_t pmd; } pmd_t;
38typedef struct { pgdval_t pgd; } pgd_t;
39typedef struct { pteval_t pgprot; } pgprot_t;
40
41#define pte_val(x) ((x).pte)
42#define pmd_val(x) ((x).pmd)
43#define pgd_val(x) ((x).pgd)
44#define pgprot_val(x) ((x).pgprot)
45
46#define __pte(x) ((pte_t) { (x) } )
47#define __pmd(x) ((pmd_t) { (x) } )
48#define __pgd(x) ((pgd_t) { (x) } )
49#define __pgprot(x) ((pgprot_t) { (x) } )
50
51#else /* !STRICT_MM_TYPECHECKS */
52
53typedef pteval_t pte_t;
54typedef pmdval_t pmd_t;
55typedef pgdval_t pgd_t;
56typedef pteval_t pgprot_t;
57
58#define pte_val(x) (x)
59#define pmd_val(x) (x)
60#define pgd_val(x) (x)
61#define pgprot_val(x) (x)
62
63#define __pte(x) (x)
64#define __pmd(x) (x)
65#define __pgd(x) (x)
66#define __pgprot(x) (x)
67
68#endif /* STRICT_MM_TYPECHECKS */
69
70#endif /* _ASM_PGTABLE_3LEVEL_TYPES_H */
arch/arm/include/asm/pgtable-3level.h+155−0
@@ -0,0 +1,155 @@
1/*
2 * arch/arm/include/asm/pgtable-3level.h
3 *
4 * Copyright (C) 2011 ARM Ltd.
5 * Author: Catalin Marinas <catalin.marinas@arm.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 * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef _ASM_PGTABLE_3LEVEL_H
21#define _ASM_PGTABLE_3LEVEL_H
22
23/*
24 * With LPAE, there are 3 levels of page tables. Each level has 512 entries of
25 * 8 bytes each, occupying a 4K page. The first level table covers a range of
26 * 512GB, each entry representing 1GB. Since we are limited to 4GB input
27 * address range, only 4 entries in the PGD are used.
28 *
29 * There are enough spare bits in a page table entry for the kernel specific
30 * state.
31 */
32#define PTRS_PER_PTE 512
33#define PTRS_PER_PMD 512
34#define PTRS_PER_PGD 4
35
36#define PTE_HWTABLE_PTRS (PTRS_PER_PTE)
37#define PTE_HWTABLE_OFF (0)
38#define PTE_HWTABLE_SIZE (PTRS_PER_PTE * sizeof(u64))
39
40/*
41 * PGDIR_SHIFT determines the size a top-level page table entry can map.
42 */
43#define PGDIR_SHIFT 30
44
45/*
46 * PMD_SHIFT determines the size a middle-level page table entry can map.
47 */
48#define PMD_SHIFT 21
49
50#define PMD_SIZE (1UL << PMD_SHIFT)
51#define PMD_MASK (~(PMD_SIZE-1))
52#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
53#define PGDIR_MASK (~(PGDIR_SIZE-1))
54
55/*
56 * section address mask and size definitions.
57 */
58#define SECTION_SHIFT 21
59#define SECTION_SIZE (1UL << SECTION_SHIFT)
60#define SECTION_MASK (~(SECTION_SIZE-1))
61
62#define USER_PTRS_PER_PGD (PAGE_OFFSET / PGDIR_SIZE)
63
64/*
65 * "Linux" PTE definitions for LPAE.
66 *
67 * These bits overlap with the hardware bits but the naming is preserved for
68 * consistency with the classic page table format.
69 */
70#define L_PTE_PRESENT (_AT(pteval_t, 3) << 0) /* Valid */
71#define L_PTE_FILE (_AT(pteval_t, 1) << 2) /* only when !PRESENT */
72#define L_PTE_BUFFERABLE (_AT(pteval_t, 1) << 2) /* AttrIndx[0] */
73#define L_PTE_CACHEABLE (_AT(pteval_t, 1) << 3) /* AttrIndx[1] */
74#define L_PTE_USER (_AT(pteval_t, 1) << 6) /* AP[1] */
75#define L_PTE_RDONLY (_AT(pteval_t, 1) << 7) /* AP[2] */
76#define L_PTE_SHARED (_AT(pteval_t, 3) << 8) /* SH[1:0], inner shareable */
77#define L_PTE_YOUNG (_AT(pteval_t, 1) << 10) /* AF */
78#define L_PTE_XN (_AT(pteval_t, 1) << 54) /* XN */
79#define L_PTE_DIRTY (_AT(pteval_t, 1) << 55) /* unused */
80#define L_PTE_SPECIAL (_AT(pteval_t, 1) << 56) /* unused */
81
82/*
83 * To be used in assembly code with the upper page attributes.
84 */
85#define L_PTE_XN_HIGH (1 << (54 - 32))
86#define L_PTE_DIRTY_HIGH (1 << (55 - 32))
87
88/*
89 * AttrIndx[2:0] encoding (mapping attributes defined in the MAIR* registers).
90 */
91#define L_PTE_MT_UNCACHED (_AT(pteval_t, 0) << 2) /* strongly ordered */
92#define L_PTE_MT_BUFFERABLE (_AT(pteval_t, 1) << 2) /* normal non-cacheable */
93#define L_PTE_MT_WRITETHROUGH (_AT(pteval_t, 2) << 2) /* normal inner write-through */
94#define L_PTE_MT_WRITEBACK (_AT(pteval_t, 3) << 2) /* normal inner write-back */
95#define L_PTE_MT_WRITEALLOC (_AT(pteval_t, 7) << 2) /* normal inner write-alloc */
96#define L_PTE_MT_DEV_SHARED (_AT(pteval_t, 4) << 2) /* device */
97#define L_PTE_MT_DEV_NONSHARED (_AT(pteval_t, 4) << 2) /* device */
98#define L_PTE_MT_DEV_WC (_AT(pteval_t, 1) << 2) /* normal non-cacheable */
99#define L_PTE_MT_DEV_CACHED (_AT(pteval_t, 3) << 2) /* normal inner write-back */
100#define L_PTE_MT_MASK (_AT(pteval_t, 7) << 2)
101
102/*
103 * Software PGD flags.
104 */
105#define L_PGD_SWAPPER (_AT(pgdval_t, 1) << 55) /* swapper_pg_dir entry */
106
107#ifndef __ASSEMBLY__
108
109#define pud_none(pud) (!pud_val(pud))
110#define pud_bad(pud) (!(pud_val(pud) & 2))
111#define pud_present(pud) (pud_val(pud))
112
113#define pud_clear(pudp) \
114 do { \
115 *pudp = __pud(0); \
116 clean_pmd_entry(pudp); \
117 } while (0)
118
119#define set_pud(pudp, pud) \
120 do { \
121 *pudp = pud; \
122 flush_pmd_entry(pudp); \
123 } while (0)
124
125static inline pmd_t *pud_page_vaddr(pud_t pud)
126{
127 return __va(pud_val(pud) & PHYS_MASK & (s32)PAGE_MASK);
128}
129
130/* Find an entry in the second-level page table.. */
131#define pmd_index(addr) (((addr) >> PMD_SHIFT) & (PTRS_PER_PMD - 1))
132static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr)
133{
134 return (pmd_t *)pud_page_vaddr(*pud) + pmd_index(addr);
135}
136
137#define pmd_bad(pmd) (!(pmd_val(pmd) & 2))
138
139#define copy_pmd(pmdpd,pmdps) \
140 do { \
141 *pmdpd = *pmdps; \
142 flush_pmd_entry(pmdpd); \
143 } while (0)
144
145#define pmd_clear(pmdp) \
146 do { \
147 *pmdp = __pmd(0); \
148 clean_pmd_entry(pmdp); \
149 } while (0)
150
151#define set_pte_ext(ptep,pte,ext) cpu_set_pte_ext(ptep,__pte(pte_val(pte)|(ext)))
152
153#endif /* __ASSEMBLY__ */
154
155#endif /* _ASM_PGTABLE_3LEVEL_H */
arch/arm/include/asm/pgtable-hwdef.h+4−0
@@ -10,6 +10,10 @@ · 9 unmodified lines
10#ifndef _ASMARM_PGTABLE_HWDEF_H10#ifndef _ASMARM_PGTABLE_HWDEF_H
11#define _ASMARM_PGTABLE_HWDEF_H11#define _ASMARM_PGTABLE_HWDEF_H
12 12
13#ifdef CONFIG_ARM_LPAE
14#include <asm/pgtable-3level-hwdef.h>
15#else
13#include <asm/pgtable-2level-hwdef.h>16#include <asm/pgtable-2level-hwdef.h>
17#endif
14 18
15#endif19#endif
arch/arm/include/asm/pgtable.h+8−47
@@ -11,20 +11,24 @@ · 10 unmodified lines
11#define _ASMARM_PGTABLE_H11#define _ASMARM_PGTABLE_H
12 12
13#include <linux/const.h>13#include <linux/const.h>
14#include <asm-generic/4level-fixup.h>
15#include <asm/proc-fns.h>14#include <asm/proc-fns.h>
16 15
17#ifndef CONFIG_MMU16#ifndef CONFIG_MMU
18 17
18#include <asm-generic/4level-fixup.h>
19#include "pgtable-nommu.h"19#include "pgtable-nommu.h"
20 20
21#else21#else
22 22
23#include <asm-generic/pgtable-nopud.h>
23#include <asm/memory.h>24#include <asm/memory.h>
24#include <mach/vmalloc.h>
25#include <asm/pgtable-hwdef.h>25#include <asm/pgtable-hwdef.h>
26 26
27#ifdef CONFIG_ARM_LPAE
28#include <asm/pgtable-3level.h>
29#else
27#include <asm/pgtable-2level.h>30#include <asm/pgtable-2level.h>
31#endif
28 32
29/*33/*
30 * Just any arbitrary offset to the start of the vmalloc VM area: the34 * Just any arbitrary offset to the start of the vmalloc VM area: the
@@ -33,15 +37,10 @@ · 2 unmodified lines
33 * any out-of-bounds memory accesses will hopefully be caught.37 * any out-of-bounds memory accesses will hopefully be caught.
34 * The vmalloc() routines leaves a hole of 4kB between each vmalloced38 * The vmalloc() routines leaves a hole of 4kB between each vmalloced
35 * area for the same reason. ;)39 * area for the same reason. ;)
36 *
37 * Note that platforms may override VMALLOC_START, but they must provide
38 * VMALLOC_END. VMALLOC_END defines the (exclusive) limit of this space,
39 * which may not overlap IO space.
40 */40 */
41#ifndef VMALLOC_START
42#define VMALLOC_OFFSET (8*1024*1024)41#define VMALLOC_OFFSET (8*1024*1024)
43#define VMALLOC_START (((unsigned long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))42#define VMALLOC_START (((unsigned long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
44#endif43#define VMALLOC_END 0xff000000UL
45 44
46#define LIBRARY_TEXT_START 0x0c00000045#define LIBRARY_TEXT_START 0x0c000000
47 46
@@ -163,39 +162,8 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; · 115 unmodified lines
163/* to find an entry in a kernel page-table-directory */162/* to find an entry in a kernel page-table-directory */
164#define pgd_offset_k(addr) pgd_offset(&init_mm, addr)163#define pgd_offset_k(addr) pgd_offset(&init_mm, addr)
165 164
166/*
167 * The "pgd_xxx()" functions here are trivial for a folded two-level
168 * setup: the pgd is never bad, and a pmd always exists (as it's folded
169 * into the pgd entry)
170 */
171#define pgd_none(pgd) (0)
172#define pgd_bad(pgd) (0)
173#define pgd_present(pgd) (1)
174#define pgd_clear(pgdp) do { } while (0)
175#define set_pgd(pgd,pgdp) do { } while (0)
176#define set_pud(pud,pudp) do { } while (0)
177
178
179/* Find an entry in the second-level page table.. */
180#define pmd_offset(dir, addr) ((pmd_t *)(dir))
181
182#define pmd_none(pmd) (!pmd_val(pmd))165#define pmd_none(pmd) (!pmd_val(pmd))
183#define pmd_present(pmd) (pmd_val(pmd))166#define pmd_present(pmd) (pmd_val(pmd))
184#define pmd_bad(pmd) (pmd_val(pmd) & 2)
185
186#define copy_pmd(pmdpd,pmdps) \
187 do { \
188 pmdpd[0] = pmdps[0]; \
189 pmdpd[1] = pmdps[1]; \
190 flush_pmd_entry(pmdpd); \
191 } while (0)
192
193#define pmd_clear(pmdp) \
194 do { \
195 pmdp[0] = __pmd(0); \
196 pmdp[1] = __pmd(0); \
197 clean_pmd_entry(pmdp); \
198 } while (0)
199 167
200static inline pte_t *pmd_page_vaddr(pmd_t pmd)168static inline pte_t *pmd_page_vaddr(pmd_t pmd)
201{169{
@@ -204,10 +172,6 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd) · 2 unmodified lines
204 172
205#define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))173#define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
206 174
207/* we don't need complex calculations here as the pmd is folded into the pgd */
208#define pmd_addr_end(addr,end) (end)
209
210
211#ifndef CONFIG_HIGHPTE175#ifndef CONFIG_HIGHPTE
212#define __pte_map(pmd) pmd_page_vaddr(*(pmd))176#define __pte_map(pmd) pmd_page_vaddr(*(pmd))
213#define __pte_unmap(pte) do { } while (0)177#define __pte_unmap(pte) do { } while (0)
@@ -229,7 +193,6 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd) · 15 unmodified lines
229#define pte_page(pte) pfn_to_page(pte_pfn(pte))193#define pte_page(pte) pfn_to_page(pte_pfn(pte))
230#define mk_pte(page,prot) pfn_pte(page_to_pfn(page), prot)194#define mk_pte(page,prot) pfn_pte(page_to_pfn(page), prot)
231 195
232#define set_pte_ext(ptep,pte,ext) cpu_set_pte_ext(ptep,pte,ext)
233#define pte_clear(mm,addr,ptep) set_pte_ext(ptep, __pte(0), 0)196#define pte_clear(mm,addr,ptep) set_pte_ext(ptep, __pte(0), 0)
234 197
235#if __LINUX_ARM_ARCH__ < 6198#if __LINUX_ARM_ARCH__ < 6
@@ -336,6 +299,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) · 100 unmodified lines
336 * We provide our own arch_get_unmapped_area to cope with VIPT caches.299 * We provide our own arch_get_unmapped_area to cope with VIPT caches.
337 */300 */
338#define HAVE_ARCH_UNMAPPED_AREA301#define HAVE_ARCH_UNMAPPED_AREA
302#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
339 303
340/*304/*
341 * remap a physical page `pfn' of size `size' with page protection `prot'305 * remap a physical page `pfn' of size `size' with page protection `prot'
@@ -346,9 +310,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) · 4 unmodified lines
346 310
347#define pgtable_cache_init() do { } while (0)311#define pgtable_cache_init() do { } while (0)
348 312
349void identity_mapping_add(pgd_t *, unsigned long, unsigned long);
350void identity_mapping_del(pgd_t *, unsigned long, unsigned long);
351
352#endif /* !__ASSEMBLY__ */313#endif /* !__ASSEMBLY__ */
353 314
354#endif /* CONFIG_MMU */315#endif /* CONFIG_MMU */
arch/arm/include/asm/pmu.h+12−3
@@ -27,13 +27,22 @@ enum arm_pmu_type { · 26 unmodified lines
27/*27/*
28 * struct arm_pmu_platdata - ARM PMU platform data28 * struct arm_pmu_platdata - ARM PMU platform data
29 *29 *
30 * @handle_irq: an optional handler which will be called from the interrupt and30 * @handle_irq: an optional handler which will be called from the
31 * passed the address of the low level handler, and can be used to implement31 * interrupt and passed the address of the low level handler,
32 * any platform specific handling before or after calling it.32 * and can be used to implement any platform specific handling
33 * before or after calling it.
34 * @enable_irq: an optional handler which will be called after
35 * request_irq and be used to handle some platform specific
36 * irq enablement
37 * @disable_irq: an optional handler which will be called before
38 * free_irq and be used to handle some platform specific
39 * irq disablement
33 */40 */
34struct arm_pmu_platdata {41struct arm_pmu_platdata {
35 irqreturn_t (*handle_irq)(int irq, void *dev,42 irqreturn_t (*handle_irq)(int irq, void *dev,
36 irq_handler_t pmu_handler);43 irq_handler_t pmu_handler);
44 void (*enable_irq)(int irq);
45 void (*disable_irq)(int irq);
37};46};
38 47
39#ifdef CONFIG_CPU_HAS_PMU48#ifdef CONFIG_CPU_HAS_PMU
arch/arm/include/asm/proc-fns.h+21−0
@@ -65,7 +65,11 @@ extern struct processor { · 64 unmodified lines
65 * Set a possibly extended PTE. Non-extended PTEs should65 * Set a possibly extended PTE. Non-extended PTEs should
66 * ignore 'ext'.66 * ignore 'ext'.
67 */67 */
68#ifdef CONFIG_ARM_LPAE
69 void (*set_pte_ext)(pte_t *ptep, pte_t pte);
70#else
68 void (*set_pte_ext)(pte_t *ptep, pte_t pte, unsigned int ext);71 void (*set_pte_ext)(pte_t *ptep, pte_t pte, unsigned int ext);
72#endif
69 73
70 /* Suspend/resume */74 /* Suspend/resume */
71 unsigned int suspend_size;75 unsigned int suspend_size;
@@ -79,7 +83,11 @@ extern void cpu_proc_fin(void); · 7 unmodified lines
79extern int cpu_do_idle(void);83extern int cpu_do_idle(void);
80extern void cpu_dcache_clean_area(void *, int);84extern void cpu_dcache_clean_area(void *, int);
81extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm);85extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm);
86#ifdef CONFIG_ARM_LPAE
87extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte);
88#else
82extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext);89extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext);
90#endif
83extern void cpu_reset(unsigned long addr) __attribute__((noreturn));91extern void cpu_reset(unsigned long addr) __attribute__((noreturn));
84 92
85/* These three are private to arch/arm/kernel/suspend.c */93/* These three are private to arch/arm/kernel/suspend.c */
@@ -107,6 +115,18 @@ extern void cpu_resume(void); · 21 unmodified lines
107 115
108#define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)116#define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)
109 117
118#ifdef CONFIG_ARM_LPAE
119#define cpu_get_pgd() \
120 ({ \
121 unsigned long pg, pg2; \
122 __asm__("mrrc p15, 0, %0, %1, c2" \
123 : "=r" (pg), "=r" (pg2) \
124 : \
125 : "cc"); \
126 pg &= ~(PTRS_PER_PGD*sizeof(pgd_t)-1); \
127 (pgd_t *)phys_to_virt(pg); \
128 })
129#else
110#define cpu_get_pgd() \130#define cpu_get_pgd() \
111 ({ \131 ({ \
112 unsigned long pg; \132 unsigned long pg; \
@@ -115,6 +135,7 @@ extern void cpu_resume(void); · 2 unmodified lines
115 pg &= ~0x3fff; \135 pg &= ~0x3fff; \
116 (pgd_t *)phys_to_virt(pg); \136 (pgd_t *)phys_to_virt(pg); \
117 })137 })
138#endif
118 139
119#endif140#endif
120 141
arch/arm/include/asm/processor.h+2−0
@@ -123,6 +123,8 @@ static inline void prefetch(const void *ptr) · 122 unmodified lines
123 123
124#endif124#endif
125 125
126#define HAVE_ARCH_PICK_MMAP_LAYOUT
127
126#endif128#endif
127 129
128#endif /* __ASM_ARM_PROCESSOR_H */130#endif /* __ASM_ARM_PROCESSOR_H */
arch/arm/include/asm/prom.h+0−1
@@ -13,7 +13,6 @@ · 12 unmodified lines
13 13
14#ifdef CONFIG_OF14#ifdef CONFIG_OF
15 15
16#include <asm/setup.h>
17#include <asm/irq.h>16#include <asm/irq.h>
18 17
19extern struct machine_desc *setup_machine_fdt(unsigned int dt_phys);18extern struct machine_desc *setup_machine_fdt(unsigned int dt_phys);
arch/arm/include/asm/ptrace.h+5−0
@@ -189,6 +189,11 @@ static inline int valid_user_regs(struct pt_regs *regs) · 188 unmodified lines
189 return 0;189 return 0;
190}190}
191 191
192static inline long regs_return_value(struct pt_regs *regs)
193{
194 return regs->ARM_r0;
195}
196
192#define instruction_pointer(regs) (regs)->ARM_pc197#define instruction_pointer(regs) (regs)->ARM_pc
193 198
194#ifdef CONFIG_SMP199#ifdef CONFIG_SMP
arch/arm/include/asm/sched_clock.h+1−107
@@ -8,113 +8,7 @@ · 7 unmodified lines
8#ifndef ASM_SCHED_CLOCK8#ifndef ASM_SCHED_CLOCK
9#define ASM_SCHED_CLOCK9#define ASM_SCHED_CLOCK
10 10
11#include <linux/kernel.h>
12#include <linux/types.h>
13
14struct clock_data {
15 u64 epoch_ns;
16 u32 epoch_cyc;
17 u32 epoch_cyc_copy;
18 u32 mult;
19 u32 shift;
20};
21
22#define DEFINE_CLOCK_DATA(name) struct clock_data name
23
24static inline u64 cyc_to_ns(u64 cyc, u32 mult, u32 shift)
25{
26 return (cyc * mult) >> shift;
27}
28
29/*
30 * Atomically update the sched_clock epoch. Your update callback will
31 * be called from a timer before the counter wraps - read the current
32 * counter value, and call this function to safely move the epochs
33 * forward. Only use this from the update callback.
34 */
35static inline void update_sched_clock(struct clock_data *cd, u32 cyc, u32 mask)
36{
37 unsigned long flags;
38 u64 ns = cd->epoch_ns +
39 cyc_to_ns((cyc - cd->epoch_cyc) & mask, cd->mult, cd->shift);
40
41 /*
42 * Write epoch_cyc and epoch_ns in a way that the update is
43 * detectable in cyc_to_fixed_sched_clock().
44 */
45 raw_local_irq_save(flags);
46 cd->epoch_cyc = cyc;
47 smp_wmb();
48 cd->epoch_ns = ns;
49 smp_wmb();
50 cd->epoch_cyc_copy = cyc;
51 raw_local_irq_restore(flags);
52}
53
54/*
55 * If your clock rate is known at compile time, using this will allow
56 * you to optimize the mult/shift loads away. This is paired with
57 * init_fixed_sched_clock() to ensure that your mult/shift are correct.
58 */
59static inline unsigned long long cyc_to_fixed_sched_clock(struct clock_data *cd,
60 u32 cyc, u32 mask, u32 mult, u32 shift)
61{
62 u64 epoch_ns;
63 u32 epoch_cyc;
64
65 /*
66 * Load the epoch_cyc and epoch_ns atomically. We do this by
67 * ensuring that we always write epoch_cyc, epoch_ns and
68 * epoch_cyc_copy in strict order, and read them in strict order.
69 * If epoch_cyc and epoch_cyc_copy are not equal, then we're in
70 * the middle of an update, and we should repeat the load.
71 */
72 do {
73 epoch_cyc = cd->epoch_cyc;
74 smp_rmb();
75 epoch_ns = cd->epoch_ns;
76 smp_rmb();
77 } while (epoch_cyc != cd->epoch_cyc_copy);
78
79 return epoch_ns + cyc_to_ns((cyc - epoch_cyc) & mask, mult, shift);
80}
81
82/*
83 * Otherwise, you need to use this, which will obtain the mult/shift
84 * from the clock_data structure. Use init_sched_clock() with this.
85 */
86static inline unsigned long long cyc_to_sched_clock(struct clock_data *cd,
87 u32 cyc, u32 mask)
88{
89 return cyc_to_fixed_sched_clock(cd, cyc, mask, cd->mult, cd->shift);
90}
91
92/*
93 * Initialize the clock data - calculate the appropriate multiplier
94 * and shift. Also setup a timer to ensure that the epoch is refreshed
95 * at the appropriate time interval, which will call your update
96 * handler.
97 */
98void init_sched_clock(struct clock_data *, void (*)(void),
99 unsigned int, unsigned long);
100
101/*
102 * Use this initialization function rather than init_sched_clock() if
103 * you're using cyc_to_fixed_sched_clock, which will warn if your
104 * constants are incorrect.
105 */
106static inline void init_fixed_sched_clock(struct clock_data *cd,
107 void (*update)(void), unsigned int bits, unsigned long rate,
108 u32 mult, u32 shift)
109{
110 init_sched_clock(cd, update, bits, rate);
111 if (cd->mult != mult || cd->shift != shift) {
112 pr_crit("sched_clock: wrong multiply/shift: %u>>%u vs calculated %u>>%u\n"
113 "sched_clock: fix multiply/shift to avoid scheduler hiccups\n",
114 mult, shift, cd->mult, cd->shift);
115 }
116}
117
118extern void sched_clock_postinit(void);11extern void sched_clock_postinit(void);
12extern void setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate);
119 13
120#endif14#endif
arch/arm/include/asm/setup.h+1−5
@@ -192,11 +192,7 @@ static const struct tagtable __tagtable_##fn __tag = { tag, fn } · 191 unmodified lines
192/*192/*
193 * Memory map description193 * Memory map description
194 */194 */
195#ifdef CONFIG_ARCH_EP93XX195#define NR_BANKS CONFIG_ARM_NR_BANKS
196# define NR_BANKS 16
197#else
198# define NR_BANKS 8
199#endif
200 196
201struct membank {197struct membank {
202 phys_addr_t start;198 phys_addr_t start;
arch/arm/include/asm/socket.h+3−0
@@ -62,4 +62,7 @@ · 61 unmodified lines
62 62
63#define SO_RXQ_OVFL 4063#define SO_RXQ_OVFL 40
64 64
65#define SO_WIFI_STATUS 41
66#define SCM_WIFI_STATUS SO_WIFI_STATUS
67
65#endif /* _ASM_SOCKET_H */68#endif /* _ASM_SOCKET_H */
arch/arm/include/asm/swab.h+8−4
@@ -22,14 +22,16 @@ · 21 unmodified lines
22# define __SWAB_64_THRU_32__22# define __SWAB_64_THRU_32__
23#endif23#endif
24 24
25#if defined(__KERNEL__) && __LINUX_ARM_ARCH__ >= 625#if defined(__KERNEL__)
26#if __LINUX_ARM_ARCH__ >= 6
26 27
27static inline __attribute_const__ __u16 __arch_swab16(__u16 x)28static inline __attribute_const__ __u32 __arch_swahb32(__u32 x)
28{29{
29 __asm__ ("rev16 %0, %1" : "=r" (x) : "r" (x));30 __asm__ ("rev16 %0, %1" : "=r" (x) : "r" (x));
30 return x;31 return x;
31}32}
32#define __arch_swab16 __arch_swab1633#define __arch_swahb32 __arch_swahb32
34#define __arch_swab16(x) ((__u16)__arch_swahb32(x))
33 35
34static inline __attribute_const__ __u32 __arch_swab32(__u32 x)36static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
35{37{
@@ -38,8 +40,10 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x) · 2 unmodified lines
38}40}
39#define __arch_swab32 __arch_swab3241#define __arch_swab32 __arch_swab32
40 42
41#else43#endif
44#endif
42 45
46#if !defined(__KERNEL__) || __LINUX_ARM_ARCH__ < 6
43static inline __attribute_const__ __u32 __arch_swab32(__u32 x)47static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
44{48{
45 __u32 t;49 __u32 t;
arch/arm/include/asm/system.h+9−1
@@ -80,6 +80,14 @@ struct siginfo; · 79 unmodified lines
80void arm_notify_die(const char *str, struct pt_regs *regs, struct siginfo *info,80void arm_notify_die(const char *str, struct pt_regs *regs, struct siginfo *info,
81 unsigned long err, unsigned long trap);81 unsigned long err, unsigned long trap);
82 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
83void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,91void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
84 struct pt_regs *),92 struct pt_regs *),
85 int sig, int code, const char *name);93 int sig, int code, const char *name);
@@ -100,7 +108,7 @@ extern void __show_regs(struct pt_regs *); · 14 unmodified lines
100extern int __pure cpu_architecture(void);108extern int __pure cpu_architecture(void);
101extern void cpu_init(void);109extern void cpu_init(void);
102 110
103void arm_machine_restart(char mode, const char *cmd);111void soft_restart(unsigned long);
104extern void (*arm_pm_restart)(char str, const char *cmd);112extern void (*arm_pm_restart)(char str, const char *cmd);
105 113
106#define UDBG_UNDEFINED (1 << 0)114#define UDBG_UNDEFINED (1 << 0)
arch/arm/include/asm/thread_info.h+6−2
@@ -129,6 +129,7 @@ extern void vfp_flush_hwstate(struct thread_info *); · 128 unmodified lines
129/*129/*
130 * thread information flags:130 * thread information flags:
131 * TIF_SYSCALL_TRACE - syscall trace active131 * TIF_SYSCALL_TRACE - syscall trace active
132 * TIF_SYSCAL_AUDIT - syscall auditing active
132 * TIF_SIGPENDING - signal pending133 * TIF_SIGPENDING - signal pending
133 * TIF_NEED_RESCHED - rescheduling necessary134 * TIF_NEED_RESCHED - rescheduling necessary
134 * TIF_NOTIFY_RESUME - callback before returning to user135 * TIF_NOTIFY_RESUME - callback before returning to user
@@ -139,10 +140,10 @@ extern void vfp_flush_hwstate(struct thread_info *); · 4 unmodified lines
139#define TIF_NEED_RESCHED 1140#define TIF_NEED_RESCHED 1
140#define TIF_NOTIFY_RESUME 2 /* callback before returning to user */141#define TIF_NOTIFY_RESUME 2 /* callback before returning to user */
141#define TIF_SYSCALL_TRACE 8142#define TIF_SYSCALL_TRACE 8
143#define TIF_SYSCALL_AUDIT 9
142#define TIF_POLLING_NRFLAG 16144#define TIF_POLLING_NRFLAG 16
143#define TIF_USING_IWMMXT 17145#define TIF_USING_IWMMXT 17
144#define TIF_MEMDIE 18 /* is terminating due to OOM killer */146#define TIF_MEMDIE 18 /* is terminating due to OOM killer */
145#define TIF_FREEZE 19
146#define TIF_RESTORE_SIGMASK 20147#define TIF_RESTORE_SIGMASK 20
147#define TIF_SECCOMP 21148#define TIF_SECCOMP 21
148 149
@@ -150,12 +151,15 @@ extern void vfp_flush_hwstate(struct thread_info *); · 1 unmodified line
150#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)151#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
151#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)152#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
152#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)153#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
154#define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
153#define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG)155#define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG)
154#define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)156#define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)
155#define _TIF_FREEZE (1 << TIF_FREEZE)
156#define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK)157#define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK)
157#define _TIF_SECCOMP (1 << TIF_SECCOMP)158#define _TIF_SECCOMP (1 << TIF_SECCOMP)
158 159
160/* Checks for any syscall work in entry-common.S */
161#define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT)
162
159/*163/*
160 * Change these and you break ASM code in entry-common.S164 * Change these and you break ASM code in entry-common.S
161 */165 */
arch/arm/include/asm/tlb.h+11−1
@@ -202,8 +202,18 @@ static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, · 201 unmodified lines
202 tlb_remove_page(tlb, pte);202 tlb_remove_page(tlb, pte);
203}203}
204 204
205static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp,
206 unsigned long addr)
207{
208#ifdef CONFIG_ARM_LPAE
209 tlb_add_flush(tlb, addr);
210 tlb_remove_page(tlb, virt_to_page(pmdp));
211#endif
212}
213
205#define pte_free_tlb(tlb, ptep, addr) __pte_free_tlb(tlb, ptep, addr)214#define pte_free_tlb(tlb, ptep, addr) __pte_free_tlb(tlb, ptep, addr)
206#define pmd_free_tlb(tlb, pmdp, addr) pmd_free((tlb)->mm, pmdp)215#define pmd_free_tlb(tlb, pmdp, addr) __pmd_free_tlb(tlb, pmdp, addr)
216#define pud_free_tlb(tlb, pudp, addr) pud_free((tlb)->mm, pudp)
207 217
208#define tlb_migrate_finish(mm) do { } while (0)218#define tlb_migrate_finish(mm) do { } while (0)
209 219
arch/arm/include/asm/types.h+0−6
@@ -3,12 +3,6 @@ · 2 unmodified lines
3 3
4#include <asm-generic/int-ll64.h>4#include <asm-generic/int-ll64.h>
5 5
6#ifndef __ASSEMBLY__
7
8typedef unsigned short umode_t;
9
10#endif /* __ASSEMBLY__ */
11
12/*6/*
13 * These aren't exported outside the kernel to avoid name space clashes7 * These aren't exported outside the kernel to avoid name space clashes
14 */8 */
arch/arm/include/asm/unified.h+2−2
@@ -37,8 +37,8 @@ · 36 unmodified lines
37#define THUMB(x...) x37#define THUMB(x...) x
38#ifdef __ASSEMBLY__38#ifdef __ASSEMBLY__
39#define W(instr) instr.w39#define W(instr) instr.w
40#endif
41#define BSYM(sym) sym + 140#define BSYM(sym) sym + 1
41#endif
42 42
43#else /* !CONFIG_THUMB2_KERNEL */43#else /* !CONFIG_THUMB2_KERNEL */
44 44
@@ -49,8 +49,8 @@ · 4 unmodified lines
49#define THUMB(x...)49#define THUMB(x...)
50#ifdef __ASSEMBLY__50#ifdef __ASSEMBLY__
51#define W(instr) instr51#define W(instr) instr
52#endif
53#define BSYM(sym) sym52#define BSYM(sym) sym
53#endif
54 54
55#endif /* CONFIG_THUMB2_KERNEL */55#endif /* CONFIG_THUMB2_KERNEL */
56 56
arch/arm/include/asm/unistd.h+3−1
@@ -427,7 +427,8 @@ · 426 unmodified lines
427/*427/*
428 * The following syscalls are obsolete and no longer available for EABI.428 * The following syscalls are obsolete and no longer available for EABI.
429 */429 */
430#if defined(__ARM_EABI__) && !defined(__KERNEL__)430#if !defined(__KERNEL__)
431#if defined(__ARM_EABI__)
431#undef __NR_time432#undef __NR_time
432#undef __NR_umount433#undef __NR_umount
433#undef __NR_stime434#undef __NR_stime
@@ -441,6 +442,7 @@ · 7 unmodified lines
441#undef __NR_syscall442#undef __NR_syscall
442#undef __NR_ipc443#undef __NR_ipc
443#endif444#endif
445#endif
444 446
445#ifdef __KERNEL__447#ifdef __KERNEL__
446 448
arch/arm/kernel/Makefile+1−1
@@ -13,7 +13,7 @@ CFLAGS_REMOVE_return_address.o = -pg · 12 unmodified lines
13 13
14# Object file lists.14# Object file lists.
15 15
16obj-y := elf.o entry-armv.o entry-common.o irq.o \16obj-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 \17 process.o ptrace.o return_address.o setup.o signal.o \
18 sys_arm.o stacktrace.o time.o traps.o18 sys_arm.o stacktrace.o time.o traps.o
19 19
arch/arm/kernel/bios32.c+15−19
@@ -316,21 +316,6 @@ pdev_fixup_device_resources(struct pci_sys_data *root, struct pci_dev *dev) · 315 unmodified lines
316 }316 }
317}317}
318 318
319static void __devinit
320pbus_assign_bus_resources(struct pci_bus *bus, struct pci_sys_data *root)
321{
322 struct pci_dev *dev = bus->self;
323 int i;
324
325 if (!dev) {
326 /*
327 * Assign root bus resources.
328 */
329 for (i = 0; i < 3; i++)
330 bus->resource[i] = root->resource[i];
331 }
332}
333
334/*319/*
335 * pcibios_fixup_bus - Called after each bus is probed,320 * pcibios_fixup_bus - Called after each bus is probed,
336 * but before its children are examined.321 * but before its children are examined.
@@ -341,8 +326,6 @@ void pcibios_fixup_bus(struct pci_bus *bus) · 4 unmodified lines
341 struct pci_dev *dev;326 struct pci_dev *dev;
342 u16 features = PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_FAST_BACK;327 u16 features = PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_FAST_BACK;
343 328
344 pbus_assign_bus_resources(bus, root);
345
346 /*329 /*
347 * Walk the devices on this bus, working out what we can330 * Walk the devices on this bus, working out what we can
348 * and can't support.331 * and can't support.
@@ -508,12 +491,18 @@ static void __init pcibios_init_hw(struct hw_pci *hw) · 159 unmodified lines
508 sys->busnr = busnr;491 sys->busnr = busnr;
509 sys->swizzle = hw->swizzle;492 sys->swizzle = hw->swizzle;
510 sys->map_irq = hw->map_irq;493 sys->map_irq = hw->map_irq;
511 sys->resource[0] = &ioport_resource;494 INIT_LIST_HEAD(&sys->resources);
512 sys->resource[1] = &iomem_resource;
513 495
514 ret = hw->setup(nr, sys);496 ret = hw->setup(nr, sys);
515 497
516 if (ret > 0) {498 if (ret > 0) {
499 if (list_empty(&sys->resources)) {
500 pci_add_resource(&sys->resources,
501 &ioport_resource);
502 pci_add_resource(&sys->resources,
503 &iomem_resource);
504 }
505
517 sys->bus = hw->scan(nr, sys);506 sys->bus = hw->scan(nr, sys);
518 507
519 if (!sys->bus)508 if (!sys->bus)
@@ -571,6 +560,13 @@ void __init pci_common_init(struct hw_pci *hw) · 51 unmodified lines
571 }560 }
572}561}
573 562
563#ifndef CONFIG_PCI_HOST_ITE8152
564void pcibios_set_master(struct pci_dev *dev)
565{
566 /* No special bus mastering setup handling */
567}
568#endif
569
574char * __init pcibios_setup(char *str)570char * __init pcibios_setup(char *str)
575{571{
576 if (!strcmp(str, "debug")) {572 if (!strcmp(str, "debug")) {
arch/arm/kernel/entry-armv.S+3−4
@@ -36,12 +36,11 @@ · 35 unmodified lines
36#ifdef CONFIG_MULTI_IRQ_HANDLER36#ifdef CONFIG_MULTI_IRQ_HANDLER
37 ldr r1, =handle_arch_irq37 ldr r1, =handle_arch_irq
38 mov r0, sp38 mov r0, sp
39 ldr r1, [r1]
40 adr lr, BSYM(9997f)39 adr lr, BSYM(9997f)
41 teq r1, #040 ldr pc, [r1]
42 movne pc, r141#else
43#endif
44 arch_irq_handler_default42 arch_irq_handler_default
43#endif
459997:449997:
46 .endm45 .endm
47 46
arch/arm/kernel/entry-common.S+2−2
@@ -87,7 +87,7 @@ ENTRY(ret_from_fork) · 86 unmodified lines
87 get_thread_info tsk87 get_thread_info tsk
88 ldr r1, [tsk, #TI_FLAGS] @ check for syscall tracing88 ldr r1, [tsk, #TI_FLAGS] @ check for syscall tracing
89 mov why, #189 mov why, #1
90 tst r1, #_TIF_SYSCALL_TRACE @ are we tracing syscalls?90 tst r1, #_TIF_SYSCALL_WORK @ are we tracing syscalls?
91 beq ret_slow_syscall91 beq ret_slow_syscall
92 mov r1, sp92 mov r1, sp
93 mov r0, #1 @ trace exit [IP = 1]93 mov r0, #1 @ trace exit [IP = 1]
@@ -443,7 +443,7 @@ ENTRY(vector_swi) · 349 unmodified lines
4431:4431:
444#endif444#endif
445 445
446 tst r10, #_TIF_SYSCALL_TRACE @ are we tracing syscalls?446 tst r10, #_TIF_SYSCALL_WORK @ are we tracing syscalls?
447 bne __sys_trace447 bne __sys_trace
448 448
449 cmp scno, #NR_syscalls @ check upper syscall limit449 cmp scno, #NR_syscalls @ check upper syscall limit
arch/arm/kernel/head.S+63−10
@@ -39,8 +39,14 @@ · 38 unmodified lines
39#error KERNEL_RAM_VADDR must start at 0xXXXX800039#error KERNEL_RAM_VADDR must start at 0xXXXX8000
40#endif40#endif
41 41
42#ifdef CONFIG_ARM_LPAE
43 /* LPAE requires an additional page for the PGD */
44#define PG_DIR_SIZE 0x5000
45#define PMD_ORDER 3
46#else
42#define PG_DIR_SIZE 0x400047#define PG_DIR_SIZE 0x4000
43#define PMD_ORDER 248#define PMD_ORDER 2
49#endif
44 50
45 .globl swapper_pg_dir51 .globl swapper_pg_dir
46 .equ swapper_pg_dir, KERNEL_RAM_VADDR - PG_DIR_SIZE52 .equ swapper_pg_dir, KERNEL_RAM_VADDR - PG_DIR_SIZE
@@ -93,6 +99,14 @@ ENTRY(stext) · 46 unmodified lines
93 THUMB( it eq ) @ force fixup-able long branch encoding99 THUMB( it eq ) @ force fixup-able long branch encoding
94 beq __error_p @ yes, error 'p'100 beq __error_p @ yes, error 'p'
95 101
102#ifdef CONFIG_ARM_LPAE
103 mrc p15, 0, r3, c0, c1, 4 @ read ID_MMFR0
104 and r3, r3, #0xf @ extract VMSA support
105 cmp r3, #5 @ long-descriptor translation table format?
106 THUMB( it lo ) @ force fixup-able long branch encoding
107 blo __error_p @ only classic page table format
108#endif
109
96#ifndef CONFIG_XIP_KERNEL110#ifndef CONFIG_XIP_KERNEL
97 adr r3, 2f111 adr r3, 2f
98 ldmia r3, {r4, r8}112 ldmia r3, {r4, r8}
@@ -164,17 +178,36 @@ __create_page_tables: · 65 unmodified lines
164 teq r0, r6178 teq r0, r6
165 bne 1b179 bne 1b
166 180
181#ifdef CONFIG_ARM_LPAE
182 /*
183 * Build the PGD table (first level) to point to the PMD table. A PGD
184 * entry is 64-bit wide.
185 */
186 mov r0, r4
187 add r3, r4, #0x1000 @ first PMD table address
188 orr r3, r3, #3 @ PGD block type
189 mov r6, #4 @ PTRS_PER_PGD
190 mov r7, #1 << (55 - 32) @ L_PGD_SWAPPER
1911: str r3, [r0], #4 @ set bottom PGD entry bits
192 str r7, [r0], #4 @ set top PGD entry bits
193 add r3, r3, #0x1000 @ next PMD table
194 subs r6, r6, #1
195 bne 1b
196
197 add r4, r4, #0x1000 @ point to the PMD tables
198#endif
199
167 ldr r7, [r10, #PROCINFO_MM_MMUFLAGS] @ mm_mmuflags200 ldr r7, [r10, #PROCINFO_MM_MMUFLAGS] @ mm_mmuflags
168 201
169 /*202 /*
170 * Create identity mapping to cater for __enable_mmu.203 * Create identity mapping to cater for __enable_mmu.
171 * This identity mapping will be removed by paging_init().204 * This identity mapping will be removed by paging_init().
172 */205 */
173 adr r0, __enable_mmu_loc206 adr r0, __turn_mmu_on_loc
174 ldmia r0, {r3, r5, r6}207 ldmia r0, {r3, r5, r6}
175 sub r0, r0, r3 @ virt->phys offset208 sub r0, r0, r3 @ virt->phys offset
176 add r5, r5, r0 @ phys __enable_mmu209 add r5, r5, r0 @ phys __turn_mmu_on
177 add r6, r6, r0 @ phys __enable_mmu_end210 add r6, r6, r0 @ phys __turn_mmu_on_end
178 mov r5, r5, lsr #SECTION_SHIFT211 mov r5, r5, lsr #SECTION_SHIFT
179 mov r6, r6, lsr #SECTION_SHIFT212 mov r6, r6, lsr #SECTION_SHIFT
180 213
@@ -219,8 +252,8 @@ __create_page_tables: · 38 unmodified lines
219#endif252#endif
220 253
221 /*254 /*
222 * Then map boot params address in r2 or255 * Then map boot params address in r2 or the first 1MB (2MB with LPAE)
223 * the first 1MB of ram if boot params address is not specified.256 * of ram if boot params address is not specified.
224 */257 */
225 mov r0, r2, lsr #SECTION_SHIFT258 mov r0, r2, lsr #SECTION_SHIFT
226 movs r0, r0, lsl #SECTION_SHIFT259 movs r0, r0, lsl #SECTION_SHIFT
@@ -251,7 +284,15 @@ __create_page_tables: · 24 unmodified lines
251 mov r3, r7, lsr #SECTION_SHIFT284 mov r3, r7, lsr #SECTION_SHIFT
252 ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags285 ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags
253 orr r3, r7, r3, lsl #SECTION_SHIFT286 orr r3, r7, r3, lsl #SECTION_SHIFT
287#ifdef CONFIG_ARM_LPAE
288 mov r7, #1 << (54 - 32) @ XN
289#else
290 orr r3, r3, #PMD_SECT_XN
291#endif
2541: str r3, [r0], #42921: str r3, [r0], #4
293#ifdef CONFIG_ARM_LPAE
294 str r7, [r0], #4
295#endif
255 add r3, r3, #1 << SECTION_SHIFT296 add r3, r3, #1 << SECTION_SHIFT
256 cmp r0, r6297 cmp r0, r6
257 blo 1b298 blo 1b
@@ -282,15 +323,18 @@ __create_page_tables: · 24 unmodified lines
282 add r0, r4, #0xd8000000 >> (SECTION_SHIFT - PMD_ORDER)323 add r0, r4, #0xd8000000 >> (SECTION_SHIFT - PMD_ORDER)
283 str r3, [r0]324 str r3, [r0]
284#endif325#endif
326#endif
327#ifdef CONFIG_ARM_LPAE
328 sub r4, r4, #0x1000 @ point to the PGD table
285#endif329#endif
286 mov pc, lr330 mov pc, lr
287ENDPROC(__create_page_tables)331ENDPROC(__create_page_tables)
288 .ltorg332 .ltorg
289 .align333 .align
290__enable_mmu_loc:334__turn_mmu_on_loc:
291 .long .335 .long .
292 .long __enable_mmu336 .long __turn_mmu_on
293 .long __enable_mmu_end337 .long __turn_mmu_on_end
294 338
295#if defined(CONFIG_SMP)339#if defined(CONFIG_SMP)
296 __CPUINIT340 __CPUINIT
@@ -374,12 +418,17 @@ __enable_mmu: · 77 unmodified lines
374#ifdef CONFIG_CPU_ICACHE_DISABLE418#ifdef CONFIG_CPU_ICACHE_DISABLE
375 bic r0, r0, #CR_I419 bic r0, r0, #CR_I
376#endif420#endif
421#ifdef CONFIG_ARM_LPAE
422 mov r5, #0
423 mcrr p15, 0, r4, r5, c2 @ load TTBR0
424#else
377 mov r5, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \425 mov r5, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \
378 domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \426 domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
379 domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \427 domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \
380 domain_val(DOMAIN_IO, DOMAIN_CLIENT))428 domain_val(DOMAIN_IO, DOMAIN_CLIENT))
381 mcr p15, 0, r5, c3, c0, 0 @ load domain access register429 mcr p15, 0, r5, c3, c0, 0 @ load domain access register
382 mcr p15, 0, r4, c2, c0, 0 @ load page table pointer430 mcr p15, 0, r4, c2, c0, 0 @ load page table pointer
431#endif
383 b __turn_mmu_on432 b __turn_mmu_on
384ENDPROC(__enable_mmu)433ENDPROC(__enable_mmu)
385 434
@@ -398,15 +447,19 @@ ENDPROC(__enable_mmu) · 12 unmodified lines
398 * other registers depend on the function called upon completion447 * other registers depend on the function called upon completion
399 */448 */
400 .align 5449 .align 5
401__turn_mmu_on:450 .pushsection .idmap.text, "ax"
451ENTRY(__turn_mmu_on)
402 mov r0, r0452 mov r0, r0
453 instr_sync
403 mcr p15, 0, r0, c1, c0, 0 @ write control reg454 mcr p15, 0, r0, c1, c0, 0 @ write control reg
404 mrc p15, 0, r3, c0, c0, 0 @ read id reg455 mrc p15, 0, r3, c0, c0, 0 @ read id reg
456 instr_sync
405 mov r3, r3457 mov r3, r3
406 mov r3, r13458 mov r3, r13
407 mov pc, r3459 mov pc, r3
408__enable_mmu_end:460__turn_mmu_on_end:
409ENDPROC(__turn_mmu_on)461ENDPROC(__turn_mmu_on)
462 .popsection
410 463
411 464
412#ifdef CONFIG_SMP_ON_UP465#ifdef CONFIG_SMP_ON_UP
arch/arm/kernel/hw_breakpoint.c+4−4
@@ -1016,10 +1016,10 @@ static int __init arch_hw_breakpoint_init(void) · 1015 unmodified lines
1016 }1016 }
1017 1017
1018 /* Register debug fault handler. */1018 /* Register debug fault handler. */
1019 hook_fault_code(2, hw_breakpoint_pending, SIGTRAP, TRAP_HWBKPT,1019 hook_fault_code(FAULT_CODE_DEBUG, hw_breakpoint_pending, SIGTRAP,
1020 "watchpoint debug exception");1020 TRAP_HWBKPT, "watchpoint debug exception");
1021 hook_ifault_code(2, hw_breakpoint_pending, SIGTRAP, TRAP_HWBKPT,1021 hook_ifault_code(FAULT_CODE_DEBUG, hw_breakpoint_pending, SIGTRAP,
1022 "breakpoint debug exception");1022 TRAP_HWBKPT, "breakpoint debug exception");
1023 1023
1024 /* Register hotplug notifier. */1024 /* Register hotplug notifier. */
1025 register_cpu_notifier(&dbg_reset_nb);1025 register_cpu_notifier(&dbg_reset_nb);
arch/arm/kernel/kprobes-test.c+7−59
@@ -202,6 +202,8 @@ · 201 unmodified lines
202#include <linux/slab.h>202#include <linux/slab.h>
203#include <linux/kprobes.h>203#include <linux/kprobes.h>
204 204
205#include <asm/opcodes.h>
206
205#include "kprobes.h"207#include "kprobes.h"
206#include "kprobes-test.h"208#include "kprobes-test.h"
207 209
@@ -1050,65 +1052,9 @@ static int test_instance; · 842 unmodified lines
1050 1052
1051static unsigned long test_check_cc(int cc, unsigned long cpsr)1053static unsigned long test_check_cc(int cc, unsigned long cpsr)
1052{1054{
1053 unsigned long temp;1055 int ret = arm_check_condition(cc << 28, cpsr);
1054
1055 switch (cc) {
1056 case 0x0: /* eq */
1057 return cpsr & PSR_Z_BIT;
1058
1059 case 0x1: /* ne */
1060 return (~cpsr) & PSR_Z_BIT;
1061
1062 case 0x2: /* cs */
1063 return cpsr & PSR_C_BIT;
1064
1065 case 0x3: /* cc */
1066 return (~cpsr) & PSR_C_BIT;
1067
1068 case 0x4: /* mi */
1069 return cpsr & PSR_N_BIT;
1070
1071 case 0x5: /* pl */
1072 return (~cpsr) & PSR_N_BIT;
1073
1074 case 0x6: /* vs */
1075 return cpsr & PSR_V_BIT;
1076
1077 case 0x7: /* vc */
1078 return (~cpsr) & PSR_V_BIT;
1079 1056
1080 case 0x8: /* hi */1057 return (ret != ARM_OPCODE_CONDTEST_FAIL);
1081 cpsr &= ~(cpsr >> 1); /* PSR_C_BIT &= ~PSR_Z_BIT */
1082 return cpsr & PSR_C_BIT;
1083
1084 case 0x9: /* ls */
1085 cpsr &= ~(cpsr >> 1); /* PSR_C_BIT &= ~PSR_Z_BIT */
1086 return (~cpsr) & PSR_C_BIT;
1087
1088 case 0xa: /* ge */
1089 cpsr ^= (cpsr << 3); /* PSR_N_BIT ^= PSR_V_BIT */
1090 return (~cpsr) & PSR_N_BIT;
1091
1092 case 0xb: /* lt */
1093 cpsr ^= (cpsr << 3); /* PSR_N_BIT ^= PSR_V_BIT */
1094 return cpsr & PSR_N_BIT;
1095
1096 case 0xc: /* gt */
1097 temp = cpsr ^ (cpsr << 3); /* PSR_N_BIT ^= PSR_V_BIT */
1098 temp |= (cpsr << 1); /* PSR_N_BIT |= PSR_Z_BIT */
1099 return (~temp) & PSR_N_BIT;
1100
1101 case 0xd: /* le */
1102 temp = cpsr ^ (cpsr << 3); /* PSR_N_BIT ^= PSR_V_BIT */
1103 temp |= (cpsr << 1); /* PSR_N_BIT |= PSR_Z_BIT */
1104 return temp & PSR_N_BIT;
1105
1106 case 0xe: /* al */
1107 case 0xf: /* unconditional */
1108 return true;
1109 }
1110 BUG();
1111 return false;
1112}1058}
1113 1059
1114static int is_last_scenario;1060static int is_last_scenario;
@@ -1128,7 +1074,9 @@ static unsigned long test_context_cpsr(int scenario) · 13 unmodified lines
1128 1074
1129 if (!test_case_is_thumb) {1075 if (!test_case_is_thumb) {
1130 /* Testing ARM code */1076 /* Testing ARM code */
1131 probe_should_run = test_check_cc(current_instruction >> 28, cpsr) != 0;1077 int cc = current_instruction >> 28;
1078
1079 probe_should_run = test_check_cc(cc, cpsr) != 0;
1132 if (scenario == 15)1080 if (scenario == 15)
1133 is_last_scenario = true;1081 is_last_scenario = true;
1134 1082
arch/arm/kernel/leds.c+11−10
@@ -9,7 +9,7 @@ · 8 unmodified lines
9 */9 */
10#include <linux/export.h>10#include <linux/export.h>
11#include <linux/init.h>11#include <linux/init.h>
12#include <linux/sysdev.h>12#include <linux/device.h>
13#include <linux/syscore_ops.h>13#include <linux/syscore_ops.h>
14#include <linux/string.h>14#include <linux/string.h>
15 15
@@ -34,8 +34,8 @@ static const struct leds_evt_name evt_names[] = { · 18 unmodified lines
34 { "red", led_red_on, led_red_off },34 { "red", led_red_on, led_red_off },
35};35};
36 36
37static ssize_t leds_store(struct sys_device *dev,37static ssize_t leds_store(struct device *dev,
38 struct sysdev_attribute *attr,38 struct device_attribute *attr,
39 const char *buf, size_t size)39 const char *buf, size_t size)
40{40{
41 int ret = -EINVAL, len = strcspn(buf, " ");41 int ret = -EINVAL, len = strcspn(buf, " ");
@@ -69,15 +69,16 @@ static ssize_t leds_store(struct sys_device *dev, · 27 unmodified lines
69 return ret;69 return ret;
70}70}
71 71
72static SYSDEV_ATTR(event, 0200, NULL, leds_store);72static DEVICE_ATTR(event, 0200, NULL, leds_store);
73 73
74static struct sysdev_class leds_sysclass = {74static struct bus_type leds_subsys = {
75 .name = "leds",75 .name = "leds",
76 .dev_name = "leds",
76};77};
77 78
78static struct sys_device leds_device = {79static struct device leds_device = {
79 .id = 0,80 .id = 0,
80 .cls = &leds_sysclass,81 .bus = &leds_subsys,
81};82};
82 83
83static int leds_suspend(void)84static int leds_suspend(void)
@@ -105,11 +106,11 @@ static struct syscore_ops leds_syscore_ops = { · 21 unmodified lines
105static int __init leds_init(void)106static int __init leds_init(void)
106{107{
107 int ret;108 int ret;
108 ret = sysdev_class_register(&leds_sysclass);109 ret = subsys_system_register(&leds_subsys, NULL);
109 if (ret == 0)110 if (ret == 0)
110 ret = sysdev_register(&leds_device);111 ret = device_register(&leds_device);
111 if (ret == 0)112 if (ret == 0)
112 ret = sysdev_create_file(&leds_device, &attr_event);113 ret = device_create_file(&leds_device, &dev_attr_event);
113 if (ret == 0)114 if (ret == 0)
114 register_syscore_ops(&leds_syscore_ops);115 register_syscore_ops(&leds_syscore_ops);
115 return ret;116 return ret;
arch/arm/kernel/machine_kexec.c+3−12
@@ -12,12 +12,11 @@ · 11 unmodified lines
12#include <asm/mmu_context.h>12#include <asm/mmu_context.h>
13#include <asm/cacheflush.h>13#include <asm/cacheflush.h>
14#include <asm/mach-types.h>14#include <asm/mach-types.h>
15#include <asm/system.h>
15 16
16extern const unsigned char relocate_new_kernel[];17extern const unsigned char relocate_new_kernel[];
17extern const unsigned int relocate_new_kernel_size;18extern const unsigned int relocate_new_kernel_size;
18 19
19extern void setup_mm_for_reboot(char mode);
20
21extern unsigned long kexec_start_address;20extern unsigned long kexec_start_address;
22extern unsigned long kexec_indirection_page;21extern unsigned long kexec_indirection_page;
23extern unsigned long kexec_mach_type;22extern unsigned long kexec_mach_type;
@@ -111,14 +110,6 @@ void machine_kexec(struct kimage *image) · 87 unmodified lines
111 110
112 if (kexec_reinit)111 if (kexec_reinit)
113 kexec_reinit();112 kexec_reinit();
114 local_irq_disable();113
115 local_fiq_disable();114 soft_restart(reboot_code_buffer_phys);
116 setup_mm_for_reboot(0); /* mode is not used, so just pass 0*/
117 flush_cache_all();
118 outer_flush_all();
119 outer_disable();
120 cpu_proc_fin();
121 outer_inv_all();
122 flush_cache_all();
123 cpu_reset(reboot_code_buffer_phys);
124}115}
arch/arm/kernel/opcodes.c+72−0
@@ -0,0 +1,72 @@
1/*
2 * linux/arch/arm/kernel/opcodes.c
3 *
4 * A32 condition code lookup feature moved from nwfpe/fpopcode.c
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 version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#include <linux/module.h>
12#include <asm/opcodes.h>
13
14#define ARM_OPCODE_CONDITION_UNCOND 0xf
15
16/*
17 * condition code lookup table
18 * index into the table is test code: EQ, NE, ... LT, GT, AL, NV
19 *
20 * bit position in short is condition code: NZCV
21 */
22static const unsigned short cc_map[16] = {
23 0xF0F0, /* EQ == Z set */
24 0x0F0F, /* NE */
25 0xCCCC, /* CS == C set */
26 0x3333, /* CC */
27 0xFF00, /* MI == N set */
28 0x00FF, /* PL */
29 0xAAAA, /* VS == V set */
30 0x5555, /* VC */
31 0x0C0C, /* HI == C set && Z clear */
32 0xF3F3, /* LS == C clear || Z set */
33 0xAA55, /* GE == (N==V) */
34 0x55AA, /* LT == (N!=V) */
35 0x0A05, /* GT == (!Z && (N==V)) */
36 0xF5FA, /* LE == (Z || (N!=V)) */
37 0xFFFF, /* AL always */
38 0 /* NV */
39};
40
41/*
42 * Returns:
43 * ARM_OPCODE_CONDTEST_FAIL - if condition fails
44 * ARM_OPCODE_CONDTEST_PASS - if condition passes (including AL)
45 * ARM_OPCODE_CONDTEST_UNCOND - if NV condition, or separate unconditional
46 * opcode space from v5 onwards
47 *
48 * Code that tests whether a conditional instruction would pass its condition
49 * check should check that return value == ARM_OPCODE_CONDTEST_PASS.
50 *
51 * Code that tests if a condition means that the instruction would be executed
52 * (regardless of conditional or unconditional) should instead check that the
53 * return value != ARM_OPCODE_CONDTEST_FAIL.
54 */
55asmlinkage unsigned int arm_check_condition(u32 opcode, u32 psr)
56{
57 u32 cc_bits = opcode >> 28;
58 u32 psr_cond = psr >> 28;
59 unsigned int ret;
60
61 if (cc_bits != ARM_OPCODE_CONDITION_UNCOND) {
62 if ((cc_map[cc_bits] >> (psr_cond)) & 1)
63 ret = ARM_OPCODE_CONDTEST_PASS;
64 else
65 ret = ARM_OPCODE_CONDTEST_FAIL;
66 } else {
67 ret = ARM_OPCODE_CONDTEST_UNCOND;
68 }
69
70 return ret;
71}
72EXPORT_SYMBOL_GPL(arm_check_condition);
arch/arm/kernel/perf_event.c+9−10
@@ -59,8 +59,7 @@ armpmu_get_pmu_id(void) · 58 unmodified lines
59}59}
60EXPORT_SYMBOL_GPL(armpmu_get_pmu_id);60EXPORT_SYMBOL_GPL(armpmu_get_pmu_id);
61 61
62int62int perf_num_counters(void)
63armpmu_get_max_events(void)
64{63{
65 int max_events = 0;64 int max_events = 0;
66 65
@@ -69,12 +68,6 @@ armpmu_get_max_events(void) · 2 unmodified lines
69 68
70 return max_events;69 return max_events;
71}70}
72EXPORT_SYMBOL_GPL(armpmu_get_max_events);
73
74int perf_num_counters(void)
75{
76 return armpmu_get_max_events();
77}
78EXPORT_SYMBOL_GPL(perf_num_counters);71EXPORT_SYMBOL_GPL(perf_num_counters);
79 72
80#define HW_OP_UNSUPPORTED 0xFFFF73#define HW_OP_UNSUPPORTED 0xFFFF
@@ -380,6 +373,8 @@ armpmu_release_hardware(struct arm_pmu *armpmu) · 299 unmodified lines
380{373{
381 int i, irq, irqs;374 int i, irq, irqs;
382 struct platform_device *pmu_device = armpmu->plat_device;375 struct platform_device *pmu_device = armpmu->plat_device;
376 struct arm_pmu_platdata *plat =
377 dev_get_platdata(&pmu_device->dev);
383 378
384 irqs = min(pmu_device->num_resources, num_possible_cpus());379 irqs = min(pmu_device->num_resources, num_possible_cpus());
385 380
@@ -387,8 +382,11 @@ armpmu_release_hardware(struct arm_pmu *armpmu) · 1 unmodified line
387 if (!cpumask_test_and_clear_cpu(i, &armpmu->active_irqs))382 if (!cpumask_test_and_clear_cpu(i, &armpmu->active_irqs))
388 continue;383 continue;
389 irq = platform_get_irq(pmu_device, i);384 irq = platform_get_irq(pmu_device, i);
390 if (irq >= 0)385 if (irq >= 0) {
386 if (plat && plat->disable_irq)
387 plat->disable_irq(irq);
391 free_irq(irq, armpmu);388 free_irq(irq, armpmu);
389 }
392 }390 }
393 391
394 release_pmu(armpmu->type);392 release_pmu(armpmu->type);
@@ -448,7 +446,8 @@ armpmu_reserve_hardware(struct arm_pmu *armpmu) · 53 unmodified lines
448 irq);446 irq);
449 armpmu_release_hardware(armpmu);447 armpmu_release_hardware(armpmu);
450 return err;448 return err;
451 }449 } else if (plat && plat->enable_irq)
450 plat->enable_irq(irq);
452 451
453 cpumask_set_cpu(i, &armpmu->active_irqs);452 cpumask_set_cpu(i, &armpmu->active_irqs);
454 }453 }
arch/arm/kernel/perf_event_v6.c+18−14
@@ -65,13 +65,15 @@ enum armv6_counters { · 64 unmodified lines
65 * accesses/misses in hardware.65 * accesses/misses in hardware.
66 */66 */
67static const unsigned armv6_perf_map[PERF_COUNT_HW_MAX] = {67static const unsigned armv6_perf_map[PERF_COUNT_HW_MAX] = {
68 [PERF_COUNT_HW_CPU_CYCLES] = ARMV6_PERFCTR_CPU_CYCLES,68 [PERF_COUNT_HW_CPU_CYCLES] = ARMV6_PERFCTR_CPU_CYCLES,
69 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV6_PERFCTR_INSTR_EXEC,69 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV6_PERFCTR_INSTR_EXEC,
70 [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,70 [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,
71 [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,71 [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,
72 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV6_PERFCTR_BR_EXEC,72 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV6_PERFCTR_BR_EXEC,
73 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV6_PERFCTR_BR_MISPREDICT,73 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV6_PERFCTR_BR_MISPREDICT,
74 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,74 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
75 [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = ARMV6_PERFCTR_IBUF_STALL,
76 [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = ARMV6_PERFCTR_LSU_FULL_STALL,
75};77};
76 78
77static const unsigned armv6_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]79static const unsigned armv6_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
@@ -218,13 +220,15 @@ enum armv6mpcore_perf_types { · 140 unmodified lines
218 * accesses/misses in hardware.220 * accesses/misses in hardware.
219 */221 */
220static const unsigned armv6mpcore_perf_map[PERF_COUNT_HW_MAX] = {222static const unsigned armv6mpcore_perf_map[PERF_COUNT_HW_MAX] = {
221 [PERF_COUNT_HW_CPU_CYCLES] = ARMV6MPCORE_PERFCTR_CPU_CYCLES,223 [PERF_COUNT_HW_CPU_CYCLES] = ARMV6MPCORE_PERFCTR_CPU_CYCLES,
222 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV6MPCORE_PERFCTR_INSTR_EXEC,224 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV6MPCORE_PERFCTR_INSTR_EXEC,
223 [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,225 [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,
224 [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,226 [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,
225 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV6MPCORE_PERFCTR_BR_EXEC,227 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV6MPCORE_PERFCTR_BR_EXEC,
226 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV6MPCORE_PERFCTR_BR_MISPREDICT,228 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV6MPCORE_PERFCTR_BR_MISPREDICT,
227 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,229 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
230 [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = ARMV6MPCORE_PERFCTR_IBUF_STALL,
231 [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = ARMV6MPCORE_PERFCTR_LSU_FULL_STALL,
228};232};
229 233
230static const unsigned armv6mpcore_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]234static const unsigned armv6mpcore_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
arch/arm/kernel/perf_event_v7.c+152−249
@@ -28,165 +28,87 @@ static struct arm_pmu armv7pmu; · 27 unmodified lines
28 * they are not available.28 * they are not available.
29 */29 */
30enum armv7_perf_types {30enum armv7_perf_types {
31 ARMV7_PERFCTR_PMNC_SW_INCR = 0x00,31 ARMV7_PERFCTR_PMNC_SW_INCR = 0x00,
32 ARMV7_PERFCTR_IFETCH_MISS = 0x01,32 ARMV7_PERFCTR_L1_ICACHE_REFILL = 0x01,
33 ARMV7_PERFCTR_ITLB_MISS = 0x02,33 ARMV7_PERFCTR_ITLB_REFILL = 0x02,
34 ARMV7_PERFCTR_DCACHE_REFILL = 0x03, /* L1 */34 ARMV7_PERFCTR_L1_DCACHE_REFILL = 0x03,
35 ARMV7_PERFCTR_DCACHE_ACCESS = 0x04, /* L1 */35 ARMV7_PERFCTR_L1_DCACHE_ACCESS = 0x04,
36 ARMV7_PERFCTR_DTLB_REFILL = 0x05,36 ARMV7_PERFCTR_DTLB_REFILL = 0x05,
37 ARMV7_PERFCTR_DREAD = 0x06,37 ARMV7_PERFCTR_MEM_READ = 0x06,
38 ARMV7_PERFCTR_DWRITE = 0x07,38 ARMV7_PERFCTR_MEM_WRITE = 0x07,
39 ARMV7_PERFCTR_INSTR_EXECUTED = 0x08,39 ARMV7_PERFCTR_INSTR_EXECUTED = 0x08,
40 ARMV7_PERFCTR_EXC_TAKEN = 0x09,40 ARMV7_PERFCTR_EXC_TAKEN = 0x09,
41 ARMV7_PERFCTR_EXC_EXECUTED = 0x0A,41 ARMV7_PERFCTR_EXC_EXECUTED = 0x0A,
42 ARMV7_PERFCTR_CID_WRITE = 0x0B,42 ARMV7_PERFCTR_CID_WRITE = 0x0B,
43 /* ARMV7_PERFCTR_PC_WRITE is equivalent to HW_BRANCH_INSTRUCTIONS.43
44 /*
45 * ARMV7_PERFCTR_PC_WRITE is equivalent to HW_BRANCH_INSTRUCTIONS.
44 * It counts:46 * It counts:
45 * - all branch instructions,47 * - all (taken) branch instructions,
46 * - instructions that explicitly write the PC,48 * - instructions that explicitly write the PC,
47 * - exception generating instructions.49 * - exception generating instructions.
48 */50 */
49 ARMV7_PERFCTR_PC_WRITE = 0x0C,51 ARMV7_PERFCTR_PC_WRITE = 0x0C,
50 ARMV7_PERFCTR_PC_IMM_BRANCH = 0x0D,52 ARMV7_PERFCTR_PC_IMM_BRANCH = 0x0D,
51 ARMV7_PERFCTR_PC_PROC_RETURN = 0x0E,53 ARMV7_PERFCTR_PC_PROC_RETURN = 0x0E,
52 ARMV7_PERFCTR_UNALIGNED_ACCESS = 0x0F,54 ARMV7_PERFCTR_MEM_UNALIGNED_ACCESS = 0x0F,
55 ARMV7_PERFCTR_PC_BRANCH_MIS_PRED = 0x10,
56 ARMV7_PERFCTR_CLOCK_CYCLES = 0x11,
57 ARMV7_PERFCTR_PC_BRANCH_PRED = 0x12,
53 58
54 /* These events are defined by the PMUv2 supplement (ARM DDI 0457A). */59 /* These events are defined by the PMUv2 supplement (ARM DDI 0457A). */
55 ARMV7_PERFCTR_PC_BRANCH_MIS_PRED = 0x10,60 ARMV7_PERFCTR_MEM_ACCESS = 0x13,
56 ARMV7_PERFCTR_CLOCK_CYCLES = 0x11,61 ARMV7_PERFCTR_L1_ICACHE_ACCESS = 0x14,
57 ARMV7_PERFCTR_PC_BRANCH_PRED = 0x12,62 ARMV7_PERFCTR_L1_DCACHE_WB = 0x15,
58 ARMV7_PERFCTR_MEM_ACCESS = 0x13,63 ARMV7_PERFCTR_L2_CACHE_ACCESS = 0x16,
59 ARMV7_PERFCTR_L1_ICACHE_ACCESS = 0x14,64 ARMV7_PERFCTR_L2_CACHE_REFILL = 0x17,
60 ARMV7_PERFCTR_L1_DCACHE_WB = 0x15,65 ARMV7_PERFCTR_L2_CACHE_WB = 0x18,
61 ARMV7_PERFCTR_L2_DCACHE_ACCESS = 0x16,66 ARMV7_PERFCTR_BUS_ACCESS = 0x19,
62 ARMV7_PERFCTR_L2_DCACHE_REFILL = 0x17,67 ARMV7_PERFCTR_MEM_ERROR = 0x1A,
63 ARMV7_PERFCTR_L2_DCACHE_WB = 0x18,68 ARMV7_PERFCTR_INSTR_SPEC = 0x1B,
64 ARMV7_PERFCTR_BUS_ACCESS = 0x19,69 ARMV7_PERFCTR_TTBR_WRITE = 0x1C,
65 ARMV7_PERFCTR_MEMORY_ERROR = 0x1A,70 ARMV7_PERFCTR_BUS_CYCLES = 0x1D,
66 ARMV7_PERFCTR_INSTR_SPEC = 0x1B,71
67 ARMV7_PERFCTR_TTBR_WRITE = 0x1C,72 ARMV7_PERFCTR_CPU_CYCLES = 0xFF
68 ARMV7_PERFCTR_BUS_CYCLES = 0x1D,
69
70 ARMV7_PERFCTR_CPU_CYCLES = 0xFF
71};73};
72 74
73/* ARMv7 Cortex-A8 specific event types */75/* ARMv7 Cortex-A8 specific event types */
74enum armv7_a8_perf_types {76enum armv7_a8_perf_types {
75 ARMV7_PERFCTR_WRITE_BUFFER_FULL = 0x40,77 ARMV7_A8_PERFCTR_L2_CACHE_ACCESS = 0x43,
76 ARMV7_PERFCTR_L2_STORE_MERGED = 0x41,78 ARMV7_A8_PERFCTR_L2_CACHE_REFILL = 0x44,
77 ARMV7_PERFCTR_L2_STORE_BUFF = 0x42,79 ARMV7_A8_PERFCTR_L1_ICACHE_ACCESS = 0x50,
78 ARMV7_PERFCTR_L2_ACCESS = 0x43,80 ARMV7_A8_PERFCTR_STALL_ISIDE = 0x56,
79 ARMV7_PERFCTR_L2_CACH_MISS = 0x44,
80 ARMV7_PERFCTR_AXI_READ_CYCLES = 0x45,
81 ARMV7_PERFCTR_AXI_WRITE_CYCLES = 0x46,
82 ARMV7_PERFCTR_MEMORY_REPLAY = 0x47,
83 ARMV7_PERFCTR_UNALIGNED_ACCESS_REPLAY = 0x48,
84 ARMV7_PERFCTR_L1_DATA_MISS = 0x49,
85 ARMV7_PERFCTR_L1_INST_MISS = 0x4A,
86 ARMV7_PERFCTR_L1_DATA_COLORING = 0x4B,
87 ARMV7_PERFCTR_L1_NEON_DATA = 0x4C,
88 ARMV7_PERFCTR_L1_NEON_CACH_DATA = 0x4D,
89 ARMV7_PERFCTR_L2_NEON = 0x4E,
90 ARMV7_PERFCTR_L2_NEON_HIT = 0x4F,
91 ARMV7_PERFCTR_L1_INST = 0x50,
92 ARMV7_PERFCTR_PC_RETURN_MIS_PRED = 0x51,
93 ARMV7_PERFCTR_PC_BRANCH_FAILED = 0x52,
94 ARMV7_PERFCTR_PC_BRANCH_TAKEN = 0x53,
95 ARMV7_PERFCTR_PC_BRANCH_EXECUTED = 0x54,
96 ARMV7_PERFCTR_OP_EXECUTED = 0x55,
97 ARMV7_PERFCTR_CYCLES_INST_STALL = 0x56,
98 ARMV7_PERFCTR_CYCLES_INST = 0x57,
99 ARMV7_PERFCTR_CYCLES_NEON_DATA_STALL = 0x58,
100 ARMV7_PERFCTR_CYCLES_NEON_INST_STALL = 0x59,
101 ARMV7_PERFCTR_NEON_CYCLES = 0x5A,
102
103 ARMV7_PERFCTR_PMU0_EVENTS = 0x70,
104 ARMV7_PERFCTR_PMU1_EVENTS = 0x71,
105 ARMV7_PERFCTR_PMU_EVENTS = 0x72,
106};81};
107 82
108/* ARMv7 Cortex-A9 specific event types */83/* ARMv7 Cortex-A9 specific event types */
109enum armv7_a9_perf_types {84enum armv7_a9_perf_types {
110 ARMV7_PERFCTR_JAVA_HW_BYTECODE_EXEC = 0x40,85 ARMV7_A9_PERFCTR_INSTR_CORE_RENAME = 0x68,
111 ARMV7_PERFCTR_JAVA_SW_BYTECODE_EXEC = 0x41,86 ARMV7_A9_PERFCTR_STALL_ICACHE = 0x60,
112 ARMV7_PERFCTR_JAZELLE_BRANCH_EXEC = 0x42,87 ARMV7_A9_PERFCTR_STALL_DISPATCH = 0x66,
113
114 ARMV7_PERFCTR_COHERENT_LINE_MISS = 0x50,
115 ARMV7_PERFCTR_COHERENT_LINE_HIT = 0x51,
116
117 ARMV7_PERFCTR_ICACHE_DEP_STALL_CYCLES = 0x60,
118 ARMV7_PERFCTR_DCACHE_DEP_STALL_CYCLES = 0x61,
119 ARMV7_PERFCTR_TLB_MISS_DEP_STALL_CYCLES = 0x62,
120 ARMV7_PERFCTR_STREX_EXECUTED_PASSED = 0x63,
121 ARMV7_PERFCTR_STREX_EXECUTED_FAILED = 0x64,
122 ARMV7_PERFCTR_DATA_EVICTION = 0x65,
123 ARMV7_PERFCTR_ISSUE_STAGE_NO_INST = 0x66,
124 ARMV7_PERFCTR_ISSUE_STAGE_EMPTY = 0x67,
125 ARMV7_PERFCTR_INST_OUT_OF_RENAME_STAGE = 0x68,
126
127 ARMV7_PERFCTR_PREDICTABLE_FUNCT_RETURNS = 0x6E,
128
129 ARMV7_PERFCTR_MAIN_UNIT_EXECUTED_INST = 0x70,
130 ARMV7_PERFCTR_SECOND_UNIT_EXECUTED_INST = 0x71,
131 ARMV7_PERFCTR_LD_ST_UNIT_EXECUTED_INST = 0x72,
132 ARMV7_PERFCTR_FP_EXECUTED_INST = 0x73,
133 ARMV7_PERFCTR_NEON_EXECUTED_INST = 0x74,
134
135 ARMV7_PERFCTR_PLD_FULL_DEP_STALL_CYCLES = 0x80,
136 ARMV7_PERFCTR_DATA_WR_DEP_STALL_CYCLES = 0x81,
137 ARMV7_PERFCTR_ITLB_MISS_DEP_STALL_CYCLES = 0x82,
138 ARMV7_PERFCTR_DTLB_MISS_DEP_STALL_CYCLES = 0x83,
139 ARMV7_PERFCTR_MICRO_ITLB_MISS_DEP_STALL_CYCLES = 0x84,
140 ARMV7_PERFCTR_MICRO_DTLB_MISS_DEP_STALL_CYCLES = 0x85,
141 ARMV7_PERFCTR_DMB_DEP_STALL_CYCLES = 0x86,
142
143 ARMV7_PERFCTR_INTGR_CLK_ENABLED_CYCLES = 0x8A,
144 ARMV7_PERFCTR_DATA_ENGINE_CLK_EN_CYCLES = 0x8B,
145
146 ARMV7_PERFCTR_ISB_INST = 0x90,
147 ARMV7_PERFCTR_DSB_INST = 0x91,
148 ARMV7_PERFCTR_DMB_INST = 0x92,
149 ARMV7_PERFCTR_EXT_INTERRUPTS = 0x93,
150
151 ARMV7_PERFCTR_PLE_CACHE_LINE_RQST_COMPLETED = 0xA0,
152 ARMV7_PERFCTR_PLE_CACHE_LINE_RQST_SKIPPED = 0xA1,
153 ARMV7_PERFCTR_PLE_FIFO_FLUSH = 0xA2,
154 ARMV7_PERFCTR_PLE_RQST_COMPLETED = 0xA3,
155 ARMV7_PERFCTR_PLE_FIFO_OVERFLOW = 0xA4,
156 ARMV7_PERFCTR_PLE_RQST_PROG = 0xA5
157};88};
158 89
159/* ARMv7 Cortex-A5 specific event types */90/* ARMv7 Cortex-A5 specific event types */
160enum armv7_a5_perf_types {91enum armv7_a5_perf_types {
161 ARMV7_PERFCTR_IRQ_TAKEN = 0x86,92 ARMV7_A5_PERFCTR_PREFETCH_LINEFILL = 0xc2,
162 ARMV7_PERFCTR_FIQ_TAKEN = 0x87,93 ARMV7_A5_PERFCTR_PREFETCH_LINEFILL_DROP = 0xc3,
163
164 ARMV7_PERFCTR_EXT_MEM_RQST = 0xc0,
165 ARMV7_PERFCTR_NC_EXT_MEM_RQST = 0xc1,
166 ARMV7_PERFCTR_PREFETCH_LINEFILL = 0xc2,
167 ARMV7_PERFCTR_PREFETCH_LINEFILL_DROP = 0xc3,
168 ARMV7_PERFCTR_ENTER_READ_ALLOC = 0xc4,
169 ARMV7_PERFCTR_READ_ALLOC = 0xc5,
170
171 ARMV7_PERFCTR_STALL_SB_FULL = 0xc9,
172};94};
173 95
174/* ARMv7 Cortex-A15 specific event types */96/* ARMv7 Cortex-A15 specific event types */
175enum armv7_a15_perf_types {97enum armv7_a15_perf_types {
176 ARMV7_PERFCTR_L1_DCACHE_READ_ACCESS = 0x40,98 ARMV7_A15_PERFCTR_L1_DCACHE_ACCESS_READ = 0x40,
177 ARMV7_PERFCTR_L1_DCACHE_WRITE_ACCESS = 0x41,99 ARMV7_A15_PERFCTR_L1_DCACHE_ACCESS_WRITE = 0x41,
178 ARMV7_PERFCTR_L1_DCACHE_READ_REFILL = 0x42,100 ARMV7_A15_PERFCTR_L1_DCACHE_REFILL_READ = 0x42,
179 ARMV7_PERFCTR_L1_DCACHE_WRITE_REFILL = 0x43,101 ARMV7_A15_PERFCTR_L1_DCACHE_REFILL_WRITE = 0x43,
180 102
181 ARMV7_PERFCTR_L1_DTLB_READ_REFILL = 0x4C,103 ARMV7_A15_PERFCTR_DTLB_REFILL_L1_READ = 0x4C,
182 ARMV7_PERFCTR_L1_DTLB_WRITE_REFILL = 0x4D,104 ARMV7_A15_PERFCTR_DTLB_REFILL_L1_WRITE = 0x4D,
183 105
184 ARMV7_PERFCTR_L2_DCACHE_READ_ACCESS = 0x50,106 ARMV7_A15_PERFCTR_L2_CACHE_ACCESS_READ = 0x50,
185 ARMV7_PERFCTR_L2_DCACHE_WRITE_ACCESS = 0x51,107 ARMV7_A15_PERFCTR_L2_CACHE_ACCESS_WRITE = 0x51,
186 ARMV7_PERFCTR_L2_DCACHE_READ_REFILL = 0x52,108 ARMV7_A15_PERFCTR_L2_CACHE_REFILL_READ = 0x52,
187 ARMV7_PERFCTR_L2_DCACHE_WRITE_REFILL = 0x53,109 ARMV7_A15_PERFCTR_L2_CACHE_REFILL_WRITE = 0x53,
188 110
189 ARMV7_PERFCTR_SPEC_PC_WRITE = 0x76,111 ARMV7_A15_PERFCTR_PC_WRITE_SPEC = 0x76,
190};112};
191 113
192/*114/*
@@ -197,13 +119,15 @@ enum armv7_a15_perf_types { · 4 unmodified lines
197 * accesses/misses in hardware.119 * accesses/misses in hardware.
198 */120 */
199static const unsigned armv7_a8_perf_map[PERF_COUNT_HW_MAX] = {121static const unsigned armv7_a8_perf_map[PERF_COUNT_HW_MAX] = {
200 [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,122 [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,
201 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV7_PERFCTR_INSTR_EXECUTED,123 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV7_PERFCTR_INSTR_EXECUTED,
202 [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,124 [PERF_COUNT_HW_CACHE_REFERENCES] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
203 [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,125 [PERF_COUNT_HW_CACHE_MISSES] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
204 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_PC_WRITE,126 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_PC_WRITE,
205 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,127 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
206 [PERF_COUNT_HW_BUS_CYCLES] = ARMV7_PERFCTR_CLOCK_CYCLES,128 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
129 [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = ARMV7_A8_PERFCTR_STALL_ISIDE,
130 [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = HW_OP_UNSUPPORTED,
207};131};
208 132
209static const unsigned armv7_a8_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]133static const unsigned armv7_a8_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
@@ -217,12 +141,12 @@ static const unsigned armv7_a8_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 7 unmodified lines
217 * combined.141 * combined.
218 */142 */
219 [C(OP_READ)] = {143 [C(OP_READ)] = {
220 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_DCACHE_ACCESS,144 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
221 [C(RESULT_MISS)] = ARMV7_PERFCTR_DCACHE_REFILL,145 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
222 },146 },
223 [C(OP_WRITE)] = {147 [C(OP_WRITE)] = {
224 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_DCACHE_ACCESS,148 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
225 [C(RESULT_MISS)] = ARMV7_PERFCTR_DCACHE_REFILL,149 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
226 },150 },
227 [C(OP_PREFETCH)] = {151 [C(OP_PREFETCH)] = {
228 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,152 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -231,12 +155,12 @@ static const unsigned armv7_a8_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 2 unmodified lines
231 },155 },
232 [C(L1I)] = {156 [C(L1I)] = {
233 [C(OP_READ)] = {157 [C(OP_READ)] = {
234 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_INST,158 [C(RESULT_ACCESS)] = ARMV7_A8_PERFCTR_L1_ICACHE_ACCESS,
235 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_INST_MISS,159 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_ICACHE_REFILL,
236 },160 },
237 [C(OP_WRITE)] = {161 [C(OP_WRITE)] = {
238 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_INST,162 [C(RESULT_ACCESS)] = ARMV7_A8_PERFCTR_L1_ICACHE_ACCESS,
239 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_INST_MISS,163 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_ICACHE_REFILL,
240 },164 },
241 [C(OP_PREFETCH)] = {165 [C(OP_PREFETCH)] = {
242 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,166 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -245,12 +169,12 @@ static const unsigned armv7_a8_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 2 unmodified lines
245 },169 },
246 [C(LL)] = {170 [C(LL)] = {
247 [C(OP_READ)] = {171 [C(OP_READ)] = {
248 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L2_ACCESS,172 [C(RESULT_ACCESS)] = ARMV7_A8_PERFCTR_L2_CACHE_ACCESS,
249 [C(RESULT_MISS)] = ARMV7_PERFCTR_L2_CACH_MISS,173 [C(RESULT_MISS)] = ARMV7_A8_PERFCTR_L2_CACHE_REFILL,
250 },174 },
251 [C(OP_WRITE)] = {175 [C(OP_WRITE)] = {
252 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L2_ACCESS,176 [C(RESULT_ACCESS)] = ARMV7_A8_PERFCTR_L2_CACHE_ACCESS,
253 [C(RESULT_MISS)] = ARMV7_PERFCTR_L2_CACH_MISS,177 [C(RESULT_MISS)] = ARMV7_A8_PERFCTR_L2_CACHE_REFILL,
254 },178 },
255 [C(OP_PREFETCH)] = {179 [C(OP_PREFETCH)] = {
256 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,180 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -274,11 +198,11 @@ static const unsigned armv7_a8_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 17 unmodified lines
274 [C(ITLB)] = {198 [C(ITLB)] = {
275 [C(OP_READ)] = {199 [C(OP_READ)] = {
276 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,200 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
277 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,201 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_REFILL,
278 },202 },
279 [C(OP_WRITE)] = {203 [C(OP_WRITE)] = {
280 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,204 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
281 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,205 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_REFILL,
282 },206 },
283 [C(OP_PREFETCH)] = {207 [C(OP_PREFETCH)] = {
284 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,208 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -287,14 +211,12 @@ static const unsigned armv7_a8_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 2 unmodified lines
287 },211 },
288 [C(BPU)] = {212 [C(BPU)] = {
289 [C(OP_READ)] = {213 [C(OP_READ)] = {
290 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_WRITE,214 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,
291 [C(RESULT_MISS)]215 [C(RESULT_MISS)] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
292 = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
293 },216 },
294 [C(OP_WRITE)] = {217 [C(OP_WRITE)] = {
295 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_WRITE,218 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,
296 [C(RESULT_MISS)]219 [C(RESULT_MISS)] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
297 = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
298 },220 },
299 [C(OP_PREFETCH)] = {221 [C(OP_PREFETCH)] = {
300 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,222 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -321,14 +243,15 @@ static const unsigned armv7_a8_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 20 unmodified lines
321 * Cortex-A9 HW events mapping243 * Cortex-A9 HW events mapping
322 */244 */
323static const unsigned armv7_a9_perf_map[PERF_COUNT_HW_MAX] = {245static const unsigned armv7_a9_perf_map[PERF_COUNT_HW_MAX] = {
324 [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,246 [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,
325 [PERF_COUNT_HW_INSTRUCTIONS] =247 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV7_A9_PERFCTR_INSTR_CORE_RENAME,
326 ARMV7_PERFCTR_INST_OUT_OF_RENAME_STAGE,248 [PERF_COUNT_HW_CACHE_REFERENCES] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
327 [PERF_COUNT_HW_CACHE_REFERENCES] = ARMV7_PERFCTR_DCACHE_ACCESS,249 [PERF_COUNT_HW_CACHE_MISSES] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
328 [PERF_COUNT_HW_CACHE_MISSES] = ARMV7_PERFCTR_DCACHE_REFILL,250 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_PC_WRITE,
329 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_PC_WRITE,251 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
330 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,252 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
331 [PERF_COUNT_HW_BUS_CYCLES] = ARMV7_PERFCTR_CLOCK_CYCLES,253 [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = ARMV7_A9_PERFCTR_STALL_ICACHE,
254 [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = ARMV7_A9_PERFCTR_STALL_DISPATCH,
332};255};
333 256
334static const unsigned armv7_a9_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]257static const unsigned armv7_a9_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
@@ -342,12 +265,12 @@ static const unsigned armv7_a9_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 7 unmodified lines
342 * combined.265 * combined.
343 */266 */
344 [C(OP_READ)] = {267 [C(OP_READ)] = {
345 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_DCACHE_ACCESS,268 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
346 [C(RESULT_MISS)] = ARMV7_PERFCTR_DCACHE_REFILL,269 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
347 },270 },
348 [C(OP_WRITE)] = {271 [C(OP_WRITE)] = {
349 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_DCACHE_ACCESS,272 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
350 [C(RESULT_MISS)] = ARMV7_PERFCTR_DCACHE_REFILL,273 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
351 },274 },
352 [C(OP_PREFETCH)] = {275 [C(OP_PREFETCH)] = {
353 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,276 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -357,11 +280,11 @@ static const unsigned armv7_a9_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 3 unmodified lines
357 [C(L1I)] = {280 [C(L1I)] = {
358 [C(OP_READ)] = {281 [C(OP_READ)] = {
359 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,282 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
360 [C(RESULT_MISS)] = ARMV7_PERFCTR_IFETCH_MISS,283 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_ICACHE_REFILL,
361 },284 },
362 [C(OP_WRITE)] = {285 [C(OP_WRITE)] = {
363 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,286 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
364 [C(RESULT_MISS)] = ARMV7_PERFCTR_IFETCH_MISS,287 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_ICACHE_REFILL,
365 },288 },
366 [C(OP_PREFETCH)] = {289 [C(OP_PREFETCH)] = {
367 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,290 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -399,11 +322,11 @@ static const unsigned armv7_a9_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 31 unmodified lines
399 [C(ITLB)] = {322 [C(ITLB)] = {
400 [C(OP_READ)] = {323 [C(OP_READ)] = {
401 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,324 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
402 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,325 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_REFILL,
403 },326 },
404 [C(OP_WRITE)] = {327 [C(OP_WRITE)] = {
405 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,328 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
406 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,329 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_REFILL,
407 },330 },
408 [C(OP_PREFETCH)] = {331 [C(OP_PREFETCH)] = {
409 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,332 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -412,14 +335,12 @@ static const unsigned armv7_a9_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 2 unmodified lines
412 },335 },
413 [C(BPU)] = {336 [C(BPU)] = {
414 [C(OP_READ)] = {337 [C(OP_READ)] = {
415 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_WRITE,338 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,
416 [C(RESULT_MISS)]339 [C(RESULT_MISS)] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
417 = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
418 },340 },
419 [C(OP_WRITE)] = {341 [C(OP_WRITE)] = {
420 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_WRITE,342 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,
421 [C(RESULT_MISS)]343 [C(RESULT_MISS)] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
422 = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
423 },344 },
424 [C(OP_PREFETCH)] = {345 [C(OP_PREFETCH)] = {
425 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,346 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -446,13 +367,15 @@ static const unsigned armv7_a9_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 20 unmodified lines
446 * Cortex-A5 HW events mapping367 * Cortex-A5 HW events mapping
447 */368 */
448static const unsigned armv7_a5_perf_map[PERF_COUNT_HW_MAX] = {369static const unsigned armv7_a5_perf_map[PERF_COUNT_HW_MAX] = {
449 [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,370 [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,
450 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV7_PERFCTR_INSTR_EXECUTED,371 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV7_PERFCTR_INSTR_EXECUTED,
451 [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,372 [PERF_COUNT_HW_CACHE_REFERENCES] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
452 [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,373 [PERF_COUNT_HW_CACHE_MISSES] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
453 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_PC_WRITE,374 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_PC_WRITE,
454 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,375 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
455 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,376 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
377 [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = HW_OP_UNSUPPORTED,
378 [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = HW_OP_UNSUPPORTED,
456};379};
457 380
458static const unsigned armv7_a5_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]381static const unsigned armv7_a5_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
@@ -460,42 +383,34 @@ static const unsigned armv7_a5_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 1 unmodified line
460 [PERF_COUNT_HW_CACHE_RESULT_MAX] = {383 [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
461 [C(L1D)] = {384 [C(L1D)] = {
462 [C(OP_READ)] = {385 [C(OP_READ)] = {
463 [C(RESULT_ACCESS)]386 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
464 = ARMV7_PERFCTR_DCACHE_ACCESS,387 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
465 [C(RESULT_MISS)]
466 = ARMV7_PERFCTR_DCACHE_REFILL,
467 },388 },
468 [C(OP_WRITE)] = {389 [C(OP_WRITE)] = {
469 [C(RESULT_ACCESS)]390 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
470 = ARMV7_PERFCTR_DCACHE_ACCESS,391 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
471 [C(RESULT_MISS)]
472 = ARMV7_PERFCTR_DCACHE_REFILL,
473 },392 },
474 [C(OP_PREFETCH)] = {393 [C(OP_PREFETCH)] = {
475 [C(RESULT_ACCESS)]394 [C(RESULT_ACCESS)] = ARMV7_A5_PERFCTR_PREFETCH_LINEFILL,
476 = ARMV7_PERFCTR_PREFETCH_LINEFILL,395 [C(RESULT_MISS)] = ARMV7_A5_PERFCTR_PREFETCH_LINEFILL_DROP,
477 [C(RESULT_MISS)]
478 = ARMV7_PERFCTR_PREFETCH_LINEFILL_DROP,
479 },396 },
480 },397 },
481 [C(L1I)] = {398 [C(L1I)] = {
482 [C(OP_READ)] = {399 [C(OP_READ)] = {
483 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_ICACHE_ACCESS,400 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_ICACHE_ACCESS,
484 [C(RESULT_MISS)] = ARMV7_PERFCTR_IFETCH_MISS,401 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_ICACHE_REFILL,
485 },402 },
486 [C(OP_WRITE)] = {403 [C(OP_WRITE)] = {
487 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_ICACHE_ACCESS,404 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_ICACHE_ACCESS,
488 [C(RESULT_MISS)] = ARMV7_PERFCTR_IFETCH_MISS,405 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_ICACHE_REFILL,
489 },406 },
490 /*407 /*
491 * The prefetch counters don't differentiate between the I408 * The prefetch counters don't differentiate between the I
492 * side and the D side.409 * side and the D side.
493 */410 */
494 [C(OP_PREFETCH)] = {411 [C(OP_PREFETCH)] = {
495 [C(RESULT_ACCESS)]412 [C(RESULT_ACCESS)] = ARMV7_A5_PERFCTR_PREFETCH_LINEFILL,
496 = ARMV7_PERFCTR_PREFETCH_LINEFILL,413 [C(RESULT_MISS)] = ARMV7_A5_PERFCTR_PREFETCH_LINEFILL_DROP,
497 [C(RESULT_MISS)]
498 = ARMV7_PERFCTR_PREFETCH_LINEFILL_DROP,
499 },414 },
500 },415 },
501 [C(LL)] = {416 [C(LL)] = {
@@ -529,11 +444,11 @@ static const unsigned armv7_a5_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 27 unmodified lines
529 [C(ITLB)] = {444 [C(ITLB)] = {
530 [C(OP_READ)] = {445 [C(OP_READ)] = {
531 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,446 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
532 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,447 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_REFILL,
533 },448 },
534 [C(OP_WRITE)] = {449 [C(OP_WRITE)] = {
535 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,450 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
536 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,451 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_REFILL,
537 },452 },
538 [C(OP_PREFETCH)] = {453 [C(OP_PREFETCH)] = {
539 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,454 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -543,13 +458,11 @@ static const unsigned armv7_a5_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 3 unmodified lines
543 [C(BPU)] = {458 [C(BPU)] = {
544 [C(OP_READ)] = {459 [C(OP_READ)] = {
545 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,460 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,
546 [C(RESULT_MISS)]461 [C(RESULT_MISS)] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
547 = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
548 },462 },
549 [C(OP_WRITE)] = {463 [C(OP_WRITE)] = {
550 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,464 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,
551 [C(RESULT_MISS)]465 [C(RESULT_MISS)] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
552 = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
553 },466 },
554 [C(OP_PREFETCH)] = {467 [C(OP_PREFETCH)] = {
555 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,468 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -562,13 +475,15 @@ static const unsigned armv7_a5_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 6 unmodified lines
562 * Cortex-A15 HW events mapping475 * Cortex-A15 HW events mapping
563 */476 */
564static const unsigned armv7_a15_perf_map[PERF_COUNT_HW_MAX] = {477static const unsigned armv7_a15_perf_map[PERF_COUNT_HW_MAX] = {
565 [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,478 [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES,
566 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV7_PERFCTR_INSTR_EXECUTED,479 [PERF_COUNT_HW_INSTRUCTIONS] = ARMV7_PERFCTR_INSTR_EXECUTED,
567 [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,480 [PERF_COUNT_HW_CACHE_REFERENCES] = ARMV7_PERFCTR_L1_DCACHE_ACCESS,
568 [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,481 [PERF_COUNT_HW_CACHE_MISSES] = ARMV7_PERFCTR_L1_DCACHE_REFILL,
569 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_SPEC_PC_WRITE,482 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_A15_PERFCTR_PC_WRITE_SPEC,
570 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,483 [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
571 [PERF_COUNT_HW_BUS_CYCLES] = ARMV7_PERFCTR_BUS_CYCLES,484 [PERF_COUNT_HW_BUS_CYCLES] = ARMV7_PERFCTR_BUS_CYCLES,
485 [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = HW_OP_UNSUPPORTED,
486 [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = HW_OP_UNSUPPORTED,
572};487};
573 488
574static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]489static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
@@ -576,16 +491,12 @@ static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 1 unmodified line
576 [PERF_COUNT_HW_CACHE_RESULT_MAX] = {491 [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
577 [C(L1D)] = {492 [C(L1D)] = {
578 [C(OP_READ)] = {493 [C(OP_READ)] = {
579 [C(RESULT_ACCESS)]494 [C(RESULT_ACCESS)] = ARMV7_A15_PERFCTR_L1_DCACHE_ACCESS_READ,
580 = ARMV7_PERFCTR_L1_DCACHE_READ_ACCESS,495 [C(RESULT_MISS)] = ARMV7_A15_PERFCTR_L1_DCACHE_REFILL_READ,
581 [C(RESULT_MISS)]
582 = ARMV7_PERFCTR_L1_DCACHE_READ_REFILL,
583 },496 },
584 [C(OP_WRITE)] = {497 [C(OP_WRITE)] = {
585 [C(RESULT_ACCESS)]498 [C(RESULT_ACCESS)] = ARMV7_A15_PERFCTR_L1_DCACHE_ACCESS_WRITE,
586 = ARMV7_PERFCTR_L1_DCACHE_WRITE_ACCESS,499 [C(RESULT_MISS)] = ARMV7_A15_PERFCTR_L1_DCACHE_REFILL_WRITE,
587 [C(RESULT_MISS)]
588 = ARMV7_PERFCTR_L1_DCACHE_WRITE_REFILL,
589 },500 },
590 [C(OP_PREFETCH)] = {501 [C(OP_PREFETCH)] = {
591 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,502 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -601,11 +512,11 @@ static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 9 unmodified lines
601 */512 */
602 [C(OP_READ)] = {513 [C(OP_READ)] = {
603 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_ICACHE_ACCESS,514 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_ICACHE_ACCESS,
604 [C(RESULT_MISS)] = ARMV7_PERFCTR_IFETCH_MISS,515 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_ICACHE_REFILL,
605 },516 },
606 [C(OP_WRITE)] = {517 [C(OP_WRITE)] = {
607 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_ICACHE_ACCESS,518 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_L1_ICACHE_ACCESS,
608 [C(RESULT_MISS)] = ARMV7_PERFCTR_IFETCH_MISS,519 [C(RESULT_MISS)] = ARMV7_PERFCTR_L1_ICACHE_REFILL,
609 },520 },
610 [C(OP_PREFETCH)] = {521 [C(OP_PREFETCH)] = {
611 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,522 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -614,16 +525,12 @@ static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 2 unmodified lines
614 },525 },
615 [C(LL)] = {526 [C(LL)] = {
616 [C(OP_READ)] = {527 [C(OP_READ)] = {
617 [C(RESULT_ACCESS)]528 [C(RESULT_ACCESS)] = ARMV7_A15_PERFCTR_L2_CACHE_ACCESS_READ,
618 = ARMV7_PERFCTR_L2_DCACHE_READ_ACCESS,529 [C(RESULT_MISS)] = ARMV7_A15_PERFCTR_L2_CACHE_REFILL_READ,
619 [C(RESULT_MISS)]
620 = ARMV7_PERFCTR_L2_DCACHE_READ_REFILL,
621 },530 },
622 [C(OP_WRITE)] = {531 [C(OP_WRITE)] = {
623 [C(RESULT_ACCESS)]532 [C(RESULT_ACCESS)] = ARMV7_A15_PERFCTR_L2_CACHE_ACCESS_WRITE,
624 = ARMV7_PERFCTR_L2_DCACHE_WRITE_ACCESS,533 [C(RESULT_MISS)] = ARMV7_A15_PERFCTR_L2_CACHE_REFILL_WRITE,
625 [C(RESULT_MISS)]
626 = ARMV7_PERFCTR_L2_DCACHE_WRITE_REFILL,
627 },534 },
628 [C(OP_PREFETCH)] = {535 [C(OP_PREFETCH)] = {
629 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,536 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -633,13 +540,11 @@ static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 3 unmodified lines
633 [C(DTLB)] = {540 [C(DTLB)] = {
634 [C(OP_READ)] = {541 [C(OP_READ)] = {
635 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,542 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
636 [C(RESULT_MISS)]543 [C(RESULT_MISS)] = ARMV7_A15_PERFCTR_DTLB_REFILL_L1_READ,
637 = ARMV7_PERFCTR_L1_DTLB_READ_REFILL,
638 },544 },
639 [C(OP_WRITE)] = {545 [C(OP_WRITE)] = {
640 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,546 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
641 [C(RESULT_MISS)]547 [C(RESULT_MISS)] = ARMV7_A15_PERFCTR_DTLB_REFILL_L1_WRITE,
642 = ARMV7_PERFCTR_L1_DTLB_WRITE_REFILL,
643 },548 },
644 [C(OP_PREFETCH)] = {549 [C(OP_PREFETCH)] = {
645 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,550 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -649,11 +554,11 @@ static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 3 unmodified lines
649 [C(ITLB)] = {554 [C(ITLB)] = {
650 [C(OP_READ)] = {555 [C(OP_READ)] = {
651 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,556 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
652 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,557 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_REFILL,
653 },558 },
654 [C(OP_WRITE)] = {559 [C(OP_WRITE)] = {
655 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,560 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
656 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_MISS,561 [C(RESULT_MISS)] = ARMV7_PERFCTR_ITLB_REFILL,
657 },562 },
658 [C(OP_PREFETCH)] = {563 [C(OP_PREFETCH)] = {
659 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,564 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
@@ -663,13 +568,11 @@ static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] · 3 unmodified lines
663 [C(BPU)] = {568 [C(BPU)] = {
664 [C(OP_READ)] = {569 [C(OP_READ)] = {
665 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,570 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,
666 [C(RESULT_MISS)]571 [C(RESULT_MISS)] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
667 = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
668 },572 },
669 [C(OP_WRITE)] = {573 [C(OP_WRITE)] = {
670 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,574 [C(RESULT_ACCESS)] = ARMV7_PERFCTR_PC_BRANCH_PRED,
671 [C(RESULT_MISS)]575 [C(RESULT_MISS)] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
672 = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED,
673 },576 },
674 [C(OP_PREFETCH)] = {577 [C(OP_PREFETCH)] = {
675 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,578 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
arch/arm/kernel/perf_event_xscale.c+9−7
@@ -48,13 +48,15 @@ enum xscale_counters { · 47 unmodified lines
48};48};
49 49
50static const unsigned xscale_perf_map[PERF_COUNT_HW_MAX] = {50static const unsigned xscale_perf_map[PERF_COUNT_HW_MAX] = {
51 [PERF_COUNT_HW_CPU_CYCLES] = XSCALE_PERFCTR_CCNT,51 [PERF_COUNT_HW_CPU_CYCLES] = XSCALE_PERFCTR_CCNT,
52 [PERF_COUNT_HW_INSTRUCTIONS] = XSCALE_PERFCTR_INSTRUCTION,52 [PERF_COUNT_HW_INSTRUCTIONS] = XSCALE_PERFCTR_INSTRUCTION,
53 [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,53 [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,
54 [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,54 [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,
55 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = XSCALE_PERFCTR_BRANCH,55 [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = XSCALE_PERFCTR_BRANCH,
56 [PERF_COUNT_HW_BRANCH_MISSES] = XSCALE_PERFCTR_BRANCH_MISS,56 [PERF_COUNT_HW_BRANCH_MISSES] = XSCALE_PERFCTR_BRANCH_MISS,
57 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,57 [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
58 [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = XSCALE_PERFCTR_ICACHE_NO_DELIVER,
59 [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = HW_OP_UNSUPPORTED,
58};60};
59 61
60static const unsigned xscale_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]62static const unsigned xscale_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
arch/arm/kernel/process.c+54−23
@@ -57,7 +57,7 @@ static const char *isa_modes[] = { · 56 unmodified lines
57 "ARM" , "Thumb" , "Jazelle", "ThumbEE"57 "ARM" , "Thumb" , "Jazelle", "ThumbEE"
58};58};
59 59
60extern void setup_mm_for_reboot(char mode);60extern void setup_mm_for_reboot(void);
61 61
62static volatile int hlt_counter;62static volatile int hlt_counter;
63 63
@@ -92,18 +92,24 @@ static int __init hlt_setup(char *__unused) · 28 unmodified lines
92__setup("nohlt", nohlt_setup);92__setup("nohlt", nohlt_setup);
93__setup("hlt", hlt_setup);93__setup("hlt", hlt_setup);
94 94
95void arm_machine_restart(char mode, const char *cmd)95extern void call_with_stack(void (*fn)(void *), void *arg, void *sp);
96typedef void (*phys_reset_t)(unsigned long);
97
98/*
99 * A temporary stack to use for CPU reset. This is static so that we
100 * don't clobber it with the identity mapping. When running with this
101 * stack, any references to the current task *will not work* so you
102 * should really do as little as possible before jumping to your reset
103 * code.
104 */
105static u64 soft_restart_stack[16];
106
107static void __soft_restart(void *addr)
96{108{
97 /* Disable interrupts first */109 phys_reset_t phys_reset;
98 local_irq_disable();
99 local_fiq_disable();
100 110
101 /*111 /* Take out a flat memory mapping. */
102 * Tell the mm system that we are going to reboot -112 setup_mm_for_reboot();
103 * we may need it to insert some 1:1 mappings so that
104 * soft boot works.
105 */
106 setup_mm_for_reboot(mode);
107 113
108 /* Clean and invalidate caches */114 /* Clean and invalidate caches */
109 flush_cache_all();115 flush_cache_all();
@@ -114,18 +120,35 @@ void arm_machine_restart(char mode, const char *cmd) · 4 unmodified lines
114 /* Push out any further dirty data, and ensure cache is empty */120 /* Push out any further dirty data, and ensure cache is empty */
115 flush_cache_all();121 flush_cache_all();
116 122
117 /*123 /* Switch to the identity mapping. */
118 * Now call the architecture specific reboot code.124 phys_reset = (phys_reset_t)(unsigned long)virt_to_phys(cpu_reset);
119 */125 phys_reset((unsigned long)addr);
120 arch_reset(mode, cmd);
121 126
122 /*127 /* Should never get here. */
123 * Whoops - the architecture was unable to reboot.128 BUG();
124 * Tell the user!129}
125 */130
126 mdelay(1000);131void soft_restart(unsigned long addr)
127 printk("Reboot failed -- System halted\n");132{
128 while (1);133 u64 *stack = soft_restart_stack + ARRAY_SIZE(soft_restart_stack);
134
135 /* Disable interrupts first */
136 local_irq_disable();
137 local_fiq_disable();
138
139 /* Disable the L2 if we're the last man standing. */
140 if (num_online_cpus() == 1)
141 outer_disable();
142
143 /* Change to the new stack and continue with the reset. */
144 call_with_stack(__soft_restart, (void *)addr, (void *)stack);
145
146 /* Should never get here. */
147 BUG();
148}
149
150static void null_restart(char mode, const char *cmd)
151{
129}152}
130 153
131/*154/*
@@ -134,7 +157,7 @@ void arm_machine_restart(char mode, const char *cmd) · 2 unmodified lines
134void (*pm_power_off)(void);157void (*pm_power_off)(void);
135EXPORT_SYMBOL(pm_power_off);158EXPORT_SYMBOL(pm_power_off);
136 159
137void (*arm_pm_restart)(char str, const char *cmd) = arm_machine_restart;160void (*arm_pm_restart)(char str, const char *cmd) = null_restart;
138EXPORT_SYMBOL_GPL(arm_pm_restart);161EXPORT_SYMBOL_GPL(arm_pm_restart);
139 162
140static void do_nothing(void *unused)163static void do_nothing(void *unused)
@@ -255,7 +278,15 @@ void machine_power_off(void) · 114 unmodified lines
255void machine_restart(char *cmd)278void machine_restart(char *cmd)
256{279{
257 machine_shutdown();280 machine_shutdown();
281
258 arm_pm_restart(reboot_mode, cmd);282 arm_pm_restart(reboot_mode, cmd);
283
284 /* Give a grace period for failure to restart of 1s */
285 mdelay(1000);
286
287 /* Whoops - the platform was unable to reboot. Tell the user! */
288 printk("Reboot failed -- System halted\n");
289 while (1);
259}290}
260 291
261void __show_regs(struct pt_regs *regs)292void __show_regs(struct pt_regs *regs)
arch/arm/kernel/ptrace.c+11−5
@@ -906,11 +906,6 @@ asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno) · 905 unmodified lines
906{906{
907 unsigned long ip;907 unsigned long ip;
908 908
909 if (!test_thread_flag(TIF_SYSCALL_TRACE))
910 return scno;
911 if (!(current->ptrace & PT_PTRACED))
912 return scno;
913
914 /*909 /*
915 * Save IP. IP is used to denote syscall entry/exit:910 * Save IP. IP is used to denote syscall entry/exit:
916 * IP = 0 -> entry, = 1 -> exit911 * IP = 0 -> entry, = 1 -> exit
@@ -918,6 +913,17 @@ asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno) · 1 unmodified line
918 ip = regs->ARM_ip;913 ip = regs->ARM_ip;
919 regs->ARM_ip = why;914 regs->ARM_ip = why;
920 915
916 if (!ip)
917 audit_syscall_exit(regs);
918 else
919 audit_syscall_entry(AUDIT_ARCH_ARMEB, scno, regs->ARM_r0,
920 regs->ARM_r1, regs->ARM_r2, regs->ARM_r3);
921
922 if (!test_thread_flag(TIF_SYSCALL_TRACE))
923 return scno;
924 if (!(current->ptrace & PT_PTRACED))
925 return scno;
926
921 current_thread_info()->syscall = scno;927 current_thread_info()->syscall = scno;
922 928
923 /* the 0x80 provides a way for the tracing parent to distinguish929 /* the 0x80 provides a way for the tracing parent to distinguish
arch/arm/kernel/sched_clock.c+105−13
@@ -14,61 +14,153 @@ · 13 unmodified lines
14 14
15#include <asm/sched_clock.h>15#include <asm/sched_clock.h>
16 16
17struct clock_data {
18 u64 epoch_ns;
19 u32 epoch_cyc;
20 u32 epoch_cyc_copy;
21 u32 mult;
22 u32 shift;
23};
24
17static void sched_clock_poll(unsigned long wrap_ticks);25static void sched_clock_poll(unsigned long wrap_ticks);
18static DEFINE_TIMER(sched_clock_timer, sched_clock_poll, 0, 0);26static DEFINE_TIMER(sched_clock_timer, sched_clock_poll, 0, 0);
19static void (*sched_clock_update_fn)(void);27
28static struct clock_data cd = {
29 .mult = NSEC_PER_SEC / HZ,
30};
31
32static u32 __read_mostly sched_clock_mask = 0xffffffff;
33
34static u32 notrace jiffy_sched_clock_read(void)
35{
36 return (u32)(jiffies - INITIAL_JIFFIES);
37}
38
39static u32 __read_mostly (*read_sched_clock)(void) = jiffy_sched_clock_read;
40
41static inline u64 cyc_to_ns(u64 cyc, u32 mult, u32 shift)
42{
43 return (cyc * mult) >> shift;
44}
45
46static unsigned long long cyc_to_sched_clock(u32 cyc, u32 mask)
47{
48 u64 epoch_ns;
49 u32 epoch_cyc;
50
51 /*
52 * Load the epoch_cyc and epoch_ns atomically. We do this by
53 * ensuring that we always write epoch_cyc, epoch_ns and
54 * epoch_cyc_copy in strict order, and read them in strict order.
55 * If epoch_cyc and epoch_cyc_copy are not equal, then we're in
56 * the middle of an update, and we should repeat the load.
57 */
58 do {
59 epoch_cyc = cd.epoch_cyc;
60 smp_rmb();
61 epoch_ns = cd.epoch_ns;
62 smp_rmb();
63 } while (epoch_cyc != cd.epoch_cyc_copy);
64
65 return epoch_ns + cyc_to_ns((cyc - epoch_cyc) & mask, cd.mult, cd.shift);
66}
67
68/*
69 * Atomically update the sched_clock epoch.
70 */
71static void notrace update_sched_clock(void)
72{
73 unsigned long flags;
74 u32 cyc;
75 u64 ns;
76
77 cyc = read_sched_clock();
78 ns = cd.epoch_ns +
79 cyc_to_ns((cyc - cd.epoch_cyc) & sched_clock_mask,
80 cd.mult, cd.shift);
81 /*
82 * Write epoch_cyc and epoch_ns in a way that the update is
83 * detectable in cyc_to_fixed_sched_clock().
84 */
85 raw_local_irq_save(flags);
86 cd.epoch_cyc = cyc;
87 smp_wmb();
88 cd.epoch_ns = ns;
89 smp_wmb();
90 cd.epoch_cyc_copy = cyc;
91 raw_local_irq_restore(flags);
92}
20 93
21static void sched_clock_poll(unsigned long wrap_ticks)94static void sched_clock_poll(unsigned long wrap_ticks)
22{95{
23 mod_timer(&sched_clock_timer, round_jiffies(jiffies + wrap_ticks));96 mod_timer(&sched_clock_timer, round_jiffies(jiffies + wrap_ticks));
24 sched_clock_update_fn();97 update_sched_clock();
25}98}
26 99
27void __init init_sched_clock(struct clock_data *cd, void (*update)(void),100void __init setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate)
28 unsigned int clock_bits, unsigned long rate)
29{101{
30 unsigned long r, w;102 unsigned long r, w;
31 u64 res, wrap;103 u64 res, wrap;
32 char r_unit;104 char r_unit;
33 105
34 sched_clock_update_fn = update;106 BUG_ON(bits > 32);
107 WARN_ON(!irqs_disabled());
108 WARN_ON(read_sched_clock != jiffy_sched_clock_read);
109 read_sched_clock = read;
110 sched_clock_mask = (1 << bits) - 1;
35 111
36 /* calculate the mult/shift to convert counter ticks to ns. */112 /* calculate the mult/shift to convert counter ticks to ns. */
37 clocks_calc_mult_shift(&cd->mult, &cd->shift, rate, NSEC_PER_SEC, 0);113 clocks_calc_mult_shift(&cd.mult, &cd.shift, rate, NSEC_PER_SEC, 0);
38 114
39 r = rate;115 r = rate;
40 if (r >= 4000000) {116 if (r >= 4000000) {
41 r /= 1000000;117 r /= 1000000;
42 r_unit = 'M';118 r_unit = 'M';
43 } else {119 } else if (r >= 1000) {
44 r /= 1000;120 r /= 1000;
45 r_unit = 'k';121 r_unit = 'k';
46 }122 } else
123 r_unit = ' ';
47 124
48 /* calculate how many ns until we wrap */125 /* calculate how many ns until we wrap */
49 wrap = cyc_to_ns((1ULL << clock_bits) - 1, cd->mult, cd->shift);126 wrap = cyc_to_ns((1ULL << bits) - 1, cd.mult, cd.shift);
50 do_div(wrap, NSEC_PER_MSEC);127 do_div(wrap, NSEC_PER_MSEC);
51 w = wrap;128 w = wrap;
52 129
53 /* calculate the ns resolution of this counter */130 /* calculate the ns resolution of this counter */
54 res = cyc_to_ns(1ULL, cd->mult, cd->shift);131 res = cyc_to_ns(1ULL, cd.mult, cd.shift);
55 pr_info("sched_clock: %u bits at %lu%cHz, resolution %lluns, wraps every %lums\n",132 pr_info("sched_clock: %u bits at %lu%cHz, resolution %lluns, wraps every %lums\n",
56 clock_bits, r, r_unit, res, w);133 bits, r, r_unit, res, w);
57 134
58 /*135 /*
59 * Start the timer to keep sched_clock() properly updated and136 * Start the timer to keep sched_clock() properly updated and
60 * sets the initial epoch.137 * sets the initial epoch.
61 */138 */
62 sched_clock_timer.data = msecs_to_jiffies(w - (w / 10));139 sched_clock_timer.data = msecs_to_jiffies(w - (w / 10));
63 update();140 update_sched_clock();
64 141
65 /*142 /*
66 * Ensure that sched_clock() starts off at 0ns143 * Ensure that sched_clock() starts off at 0ns
67 */144 */
68 cd->epoch_ns = 0;145 cd.epoch_ns = 0;
146
147 pr_debug("Registered %pF as sched_clock source\n", read);
148}
149
150unsigned long long notrace sched_clock(void)
151{
152 u32 cyc = read_sched_clock();
153 return cyc_to_sched_clock(cyc, sched_clock_mask);
69}154}
70 155
71void __init sched_clock_postinit(void)156void __init sched_clock_postinit(void)
72{157{
158 /*
159 * If no sched_clock function has been provided at that point,
160 * make it the final one one.
161 */
162 if (read_sched_clock == jiffy_sched_clock_read)
163 setup_sched_clock(jiffy_sched_clock_read, 32, HZ);
164
73 sched_clock_poll(sched_clock_timer.data);165 sched_clock_poll(sched_clock_timer.data);
74}166}
arch/arm/kernel/setup.c+13−2
@@ -31,6 +31,7 @@ · 30 unmodified lines
31#include <linux/memblock.h>31#include <linux/memblock.h>
32#include <linux/bug.h>32#include <linux/bug.h>
33#include <linux/compiler.h>33#include <linux/compiler.h>
34#include <linux/sort.h>
34 35
35#include <asm/unified.h>36#include <asm/unified.h>
36#include <asm/cpu.h>37#include <asm/cpu.h>
@@ -891,6 +892,12 @@ static struct machine_desc * __init setup_machine_tags(unsigned int nr) · 854 unmodified lines
891 return mdesc;892 return mdesc;
892}893}
893 894
895static int __init meminfo_cmp(const void *_a, const void *_b)
896{
897 const struct membank *a = _a, *b = _b;
898 long cmp = bank_pfn_start(a) - bank_pfn_start(b);
899 return cmp < 0 ? -1 : cmp > 0 ? 1 : 0;
900}
894 901
895void __init setup_arch(char **cmdline_p)902void __init setup_arch(char **cmdline_p)
896{903{
@@ -909,8 +916,8 @@ void __init setup_arch(char **cmdline_p) · 12 unmodified lines
909 arm_dma_zone_size = mdesc->dma_zone_size;916 arm_dma_zone_size = mdesc->dma_zone_size;
910 }917 }
911#endif918#endif
912 if (mdesc->soft_reboot)919 if (mdesc->restart_mode)
913 reboot_setup("s");920 reboot_setup(&mdesc->restart_mode);
914 921
915 init_mm.start_code = (unsigned long) _text;922 init_mm.start_code = (unsigned long) _text;
916 init_mm.end_code = (unsigned long) _etext;923 init_mm.end_code = (unsigned long) _etext;
@@ -923,12 +930,16 @@ void __init setup_arch(char **cmdline_p) · 6 unmodified lines
923 930
924 parse_early_param();931 parse_early_param();
925 932
933 sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL);
926 sanity_check_meminfo();934 sanity_check_meminfo();
927 arm_memblock_init(&meminfo, mdesc);935 arm_memblock_init(&meminfo, mdesc);
928 936
929 paging_init(mdesc);937 paging_init(mdesc);
930 request_standard_resources(mdesc);938 request_standard_resources(mdesc);
931 939
940 if (mdesc->restart)
941 arm_pm_restart = mdesc->restart;
942
932 unflatten_device_tree();943 unflatten_device_tree();
933 944
934#ifdef CONFIG_SMP945#ifdef CONFIG_SMP
arch/arm/kernel/sleep.S+4−0
@@ -54,14 +54,18 @@ ENDPROC(cpu_suspend_abort) · 53 unmodified lines
54 * r0 = control register value54 * r0 = control register value
55 */55 */
56 .align 556 .align 5
57 .pushsection .idmap.text,"ax"
57ENTRY(cpu_resume_mmu)58ENTRY(cpu_resume_mmu)
58 ldr r3, =cpu_resume_after_mmu59 ldr r3, =cpu_resume_after_mmu
60 instr_sync
59 mcr p15, 0, r0, c1, c0, 0 @ turn on MMU, I-cache, etc61 mcr p15, 0, r0, c1, c0, 0 @ turn on MMU, I-cache, etc
60 mrc p15, 0, r0, c0, c0, 0 @ read id reg62 mrc p15, 0, r0, c0, c0, 0 @ read id reg
63 instr_sync
61 mov r0, r064 mov r0, r0
62 mov r0, r065 mov r0, r0
63 mov pc, r3 @ jump to virtual address66 mov pc, r3 @ jump to virtual address
64ENDPROC(cpu_resume_mmu)67ENDPROC(cpu_resume_mmu)
68 .popsection
65cpu_resume_after_mmu:69cpu_resume_after_mmu:
66 bl cpu_init @ restore the und/abt/irq banked regs70 bl cpu_init @ restore the und/abt/irq banked regs
67 mov r0, #0 @ return zero on success71 mov r0, #0 @ return zero on success
arch/arm/kernel/smp.c+6−30
@@ -31,6 +31,7 @@ · 30 unmodified lines
31#include <asm/cpu.h>31#include <asm/cpu.h>
32#include <asm/cputype.h>32#include <asm/cputype.h>
33#include <asm/exception.h>33#include <asm/exception.h>
34#include <asm/idmap.h>
34#include <asm/topology.h>35#include <asm/topology.h>
35#include <asm/mmu_context.h>36#include <asm/mmu_context.h>
36#include <asm/pgtable.h>37#include <asm/pgtable.h>
@@ -61,7 +62,6 @@ int __cpuinit __cpu_up(unsigned int cpu) · 24 unmodified lines
61{62{
62 struct cpuinfo_arm *ci = &per_cpu(cpu_data, cpu);63 struct cpuinfo_arm *ci = &per_cpu(cpu_data, cpu);
63 struct task_struct *idle = ci->idle;64 struct task_struct *idle = ci->idle;
64 pgd_t *pgd;
65 int ret;65 int ret;
66 66
67 /*67 /*
@@ -83,30 +83,12 @@ int __cpuinit __cpu_up(unsigned int cpu) · 15 unmodified lines
83 init_idle(idle, cpu);83 init_idle(idle, cpu);
84 }84 }
85 85
86 /*
87 * Allocate initial page tables to allow the new CPU to
88 * enable the MMU safely. This essentially means a set
89 * of our "standard" page tables, with the addition of
90 * a 1:1 mapping for the physical address of the kernel.
91 */
92 pgd = pgd_alloc(&init_mm);
93 if (!pgd)
94 return -ENOMEM;
95
96 if (PHYS_OFFSET != PAGE_OFFSET) {
97#ifndef CONFIG_HOTPLUG_CPU
98 identity_mapping_add(pgd, __pa(__init_begin), __pa(__init_end));
99#endif
100 identity_mapping_add(pgd, __pa(_stext), __pa(_etext));
101 identity_mapping_add(pgd, __pa(_sdata), __pa(_edata));
102 }
103
104 /*86 /*
105 * We need to tell the secondary core where to find87 * We need to tell the secondary core where to find
106 * its stack and the page tables.88 * its stack and the page tables.
107 */89 */
108 secondary_data.stack = task_stack_page(idle) + THREAD_START_SP;90 secondary_data.stack = task_stack_page(idle) + THREAD_START_SP;
109 secondary_data.pgdir = virt_to_phys(pgd);91 secondary_data.pgdir = virt_to_phys(idmap_pgd);
110 secondary_data.swapper_pg_dir = virt_to_phys(swapper_pg_dir);92 secondary_data.swapper_pg_dir = virt_to_phys(swapper_pg_dir);
111 __cpuc_flush_dcache_area(&secondary_data, sizeof(secondary_data));93 __cpuc_flush_dcache_area(&secondary_data, sizeof(secondary_data));
112 outer_clean_range(__pa(&secondary_data), __pa(&secondary_data + 1));94 outer_clean_range(__pa(&secondary_data), __pa(&secondary_data + 1));
@@ -142,16 +124,6 @@ int __cpuinit __cpu_up(unsigned int cpu) · 29 unmodified lines
142 secondary_data.stack = NULL;124 secondary_data.stack = NULL;
143 secondary_data.pgdir = 0;125 secondary_data.pgdir = 0;
144 126
145 if (PHYS_OFFSET != PAGE_OFFSET) {
146#ifndef CONFIG_HOTPLUG_CPU
147 identity_mapping_del(pgd, __pa(__init_begin), __pa(__init_end));
148#endif
149 identity_mapping_del(pgd, __pa(_stext), __pa(_etext));
150 identity_mapping_del(pgd, __pa(_sdata), __pa(_edata));
151 }
152
153 pgd_free(&init_mm, pgd);
154
155 return ret;127 return ret;
156}128}
157 129
@@ -550,6 +522,10 @@ static void ipi_cpu_stop(unsigned int cpu) · 392 unmodified lines
550 local_fiq_disable();522 local_fiq_disable();
551 local_irq_disable();523 local_irq_disable();
552 524
525#ifdef CONFIG_HOTPLUG_CPU
526 platform_cpu_kill(cpu);
527#endif
528
553 while (1)529 while (1)
554 cpu_relax();530 cpu_relax();
555}531}
arch/arm/kernel/smp_twd.c+88−7
@@ -10,8 +10,11 @@ · 9 unmodified lines
10 */10 */
11#include <linux/init.h>11#include <linux/init.h>
12#include <linux/kernel.h>12#include <linux/kernel.h>
13#include <linux/clk.h>
14#include <linux/cpufreq.h>
13#include <linux/delay.h>15#include <linux/delay.h>
14#include <linux/device.h>16#include <linux/device.h>
17#include <linux/err.h>
15#include <linux/smp.h>18#include <linux/smp.h>
16#include <linux/jiffies.h>19#include <linux/jiffies.h>
17#include <linux/clockchips.h>20#include <linux/clockchips.h>
@@ -25,6 +28,7 @@ · 7 unmodified lines
25/* set up by the platform code */28/* set up by the platform code */
26void __iomem *twd_base;29void __iomem *twd_base;
27 30
31static struct clk *twd_clk;
28static unsigned long twd_timer_rate;32static unsigned long twd_timer_rate;
29 33
30static struct clock_event_device __percpu **twd_evt;34static struct clock_event_device __percpu **twd_evt;
@@ -89,6 +93,52 @@ void twd_timer_stop(struct clock_event_device *clk) · 58 unmodified lines
89 disable_percpu_irq(clk->irq);93 disable_percpu_irq(clk->irq);
90}94}
91 95
96#ifdef CONFIG_CPU_FREQ
97
98/*
99 * Updates clockevent frequency when the cpu frequency changes.
100 * Called on the cpu that is changing frequency with interrupts disabled.
101 */
102static void twd_update_frequency(void *data)
103{
104 twd_timer_rate = clk_get_rate(twd_clk);
105
106 clockevents_update_freq(*__this_cpu_ptr(twd_evt), twd_timer_rate);
107}
108
109static int twd_cpufreq_transition(struct notifier_block *nb,
110 unsigned long state, void *data)
111{
112 struct cpufreq_freqs *freqs = data;
113
114 /*
115 * The twd clock events must be reprogrammed to account for the new
116 * frequency. The timer is local to a cpu, so cross-call to the
117 * changing cpu.
118 */
119 if (state == CPUFREQ_POSTCHANGE || state == CPUFREQ_RESUMECHANGE)
120 smp_call_function_single(freqs->cpu, twd_update_frequency,
121 NULL, 1);
122
123 return NOTIFY_OK;
124}
125
126static struct notifier_block twd_cpufreq_nb = {
127 .notifier_call = twd_cpufreq_transition,
128};
129
130static int twd_cpufreq_init(void)
131{
132 if (!IS_ERR(twd_clk))
133 return cpufreq_register_notifier(&twd_cpufreq_nb,
134 CPUFREQ_TRANSITION_NOTIFIER);
135
136 return 0;
137}
138core_initcall(twd_cpufreq_init);
139
140#endif
141
92static void __cpuinit twd_calibrate_rate(void)142static void __cpuinit twd_calibrate_rate(void)
93{143{
94 unsigned long count;144 unsigned long count;
@@ -140,6 +190,35 @@ static irqreturn_t twd_handler(int irq, void *dev_id) · 45 unmodified lines
140 return IRQ_NONE;190 return IRQ_NONE;
141}191}
142 192
193static struct clk *twd_get_clock(void)
194{
195 struct clk *clk;
196 int err;
197
198 clk = clk_get_sys("smp_twd", NULL);
199 if (IS_ERR(clk)) {
200 pr_err("smp_twd: clock not found: %d\n", (int)PTR_ERR(clk));
201 return clk;
202 }
203
204 err = clk_prepare(clk);
205 if (err) {
206 pr_err("smp_twd: clock failed to prepare: %d\n", err);
207 clk_put(clk);
208 return ERR_PTR(err);
209 }
210
211 err = clk_enable(clk);
212 if (err) {
213 pr_err("smp_twd: clock failed to enable: %d\n", err);
214 clk_unprepare(clk);
215 clk_put(clk);
216 return ERR_PTR(err);
217 }
218
219 return clk;
220}
221
143/*222/*
144 * Setup the local clock events for a CPU.223 * Setup the local clock events for a CPU.
145 */224 */
@@ -165,7 +244,13 @@ void __cpuinit twd_timer_setup(struct clock_event_device *clk) · 19 unmodified lines
165 }244 }
166 }245 }
167 246
168 twd_calibrate_rate();247 if (!twd_clk)
248 twd_clk = twd_get_clock();
249
250 if (!IS_ERR_OR_NULL(twd_clk))
251 twd_timer_rate = clk_get_rate(twd_clk);
252 else
253 twd_calibrate_rate();
169 254
170 clk->name = "local_timer";255 clk->name = "local_timer";
171 clk->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT |256 clk->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT |
@@ -173,15 +258,11 @@ void __cpuinit twd_timer_setup(struct clock_event_device *clk) · 1 unmodified line
173 clk->rating = 350;258 clk->rating = 350;
174 clk->set_mode = twd_set_mode;259 clk->set_mode = twd_set_mode;
175 clk->set_next_event = twd_set_next_event;260 clk->set_next_event = twd_set_next_event;
176 clk->shift = 20;
177 clk->mult = div_sc(twd_timer_rate, NSEC_PER_SEC, clk->shift);
178 clk->max_delta_ns = clockevent_delta2ns(0xffffffff, clk);
179 clk->min_delta_ns = clockevent_delta2ns(0xf, clk);
180 261
181 this_cpu_clk = __this_cpu_ptr(twd_evt);262 this_cpu_clk = __this_cpu_ptr(twd_evt);
182 *this_cpu_clk = clk;263 *this_cpu_clk = clk;
183 264
184 clockevents_register_device(clk);265 clockevents_config_and_register(clk, twd_timer_rate,
185 266 0xf, 0xffffffff);
186 enable_percpu_irq(clk->irq, 0);267 enable_percpu_irq(clk->irq, 0);
187}268}
arch/arm/kernel/suspend.c+3−15
@@ -1,13 +1,12 @@
1#include <linux/init.h>1#include <linux/init.h>
2 2
3#include <asm/idmap.h>
3#include <asm/pgalloc.h>4#include <asm/pgalloc.h>
4#include <asm/pgtable.h>5#include <asm/pgtable.h>
5#include <asm/memory.h>6#include <asm/memory.h>
6#include <asm/suspend.h>7#include <asm/suspend.h>
7#include <asm/tlbflush.h>8#include <asm/tlbflush.h>
8 9
9static pgd_t *suspend_pgd;
10
11extern int __cpu_suspend(unsigned long, int (*)(unsigned long));10extern int __cpu_suspend(unsigned long, int (*)(unsigned long));
12extern void cpu_resume_mmu(void);11extern void cpu_resume_mmu(void);
13 12
@@ -21,7 +20,7 @@ void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr) · 7 unmodified lines
21 *save_ptr = virt_to_phys(ptr);20 *save_ptr = virt_to_phys(ptr);
22 21
23 /* This must correspond to the LDM in cpu_resume() assembly */22 /* This must correspond to the LDM in cpu_resume() assembly */
24 *ptr++ = virt_to_phys(suspend_pgd);23 *ptr++ = virt_to_phys(idmap_pgd);
25 *ptr++ = sp;24 *ptr++ = sp;
26 *ptr++ = virt_to_phys(cpu_do_resume);25 *ptr++ = virt_to_phys(cpu_do_resume);
27 26
@@ -42,7 +41,7 @@ int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) · 14 unmodified lines
42 struct mm_struct *mm = current->active_mm;41 struct mm_struct *mm = current->active_mm;
43 int ret;42 int ret;
44 43
45 if (!suspend_pgd)44 if (!idmap_pgd)
46 return -EINVAL;45 return -EINVAL;
47 46
48 /*47 /*
@@ -59,14 +58,3 @@ int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) · 10 unmodified lines
59 58
60 return ret;59 return ret;
61}60}
62
63static int __init cpu_suspend_init(void)
64{
65 suspend_pgd = pgd_alloc(&init_mm);
66 if (suspend_pgd) {
67 unsigned long addr = virt_to_phys(cpu_resume_mmu);
68 identity_mapping_add(suspend_pgd, addr, addr + SECTION_SIZE);
69 }
70 return suspend_pgd ? 0 : -ENOMEM;
71}
72core_initcall(cpu_suspend_init);
arch/arm/kernel/swp_emulate.c+16−0
@@ -25,6 +25,7 @@ · 24 unmodified lines
25#include <linux/syscalls.h>25#include <linux/syscalls.h>
26#include <linux/perf_event.h>26#include <linux/perf_event.h>
27 27
28#include <asm/opcodes.h>
28#include <asm/traps.h>29#include <asm/traps.h>
29#include <asm/uaccess.h>30#include <asm/uaccess.h>
30 31
@@ -185,6 +186,21 @@ static int swp_handler(struct pt_regs *regs, unsigned int instr) · 154 unmodified lines
185 186
186 perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, regs, regs->ARM_pc);187 perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, regs, regs->ARM_pc);
187 188
189 res = arm_check_condition(instr, regs->ARM_cpsr);
190 switch (res) {
191 case ARM_OPCODE_CONDTEST_PASS:
192 break;
193 case ARM_OPCODE_CONDTEST_FAIL:
194 /* Condition failed - return to next instruction */
195 regs->ARM_pc += 4;
196 return 0;
197 case ARM_OPCODE_CONDTEST_UNCOND:
198 /* If unconditional encoding - not a SWP, undef */
199 return -EFAULT;
200 default:
201 return -EINVAL;
202 }
203
188 if (current->pid != previous_pid) {204 if (current->pid != previous_pid) {
189 pr_debug("\"%s\" (%ld) uses deprecated SWP{B} instruction\n",205 pr_debug("\"%s\" (%ld) uses deprecated SWP{B} instruction\n",
190 current->comm, (unsigned long)current->pid);206 current->comm, (unsigned long)current->pid);
arch/arm/kernel/tcm.c+19−3
@@ -180,9 +180,9 @@ static int __init setup_tcm_bank(u8 type, u8 bank, u8 banks, · 179 unmodified lines
180 */180 */
181void __init tcm_init(void)181void __init tcm_init(void)
182{182{
183 u32 tcm_status = read_cpuid_tcmstatus();183 u32 tcm_status;
184 u8 dtcm_banks = (tcm_status >> 16) & 0x03;184 u8 dtcm_banks;
185 u8 itcm_banks = (tcm_status & 0x03);185 u8 itcm_banks;
186 size_t dtcm_code_sz = &__edtcm_data - &__sdtcm_data;186 size_t dtcm_code_sz = &__edtcm_data - &__sdtcm_data;
187 size_t itcm_code_sz = &__eitcm_text - &__sitcm_text;187 size_t itcm_code_sz = &__eitcm_text - &__sitcm_text;
188 char *start;188 char *start;
@@ -191,6 +191,22 @@ void __init tcm_init(void) · 2 unmodified lines
191 int ret;191 int ret;
192 int i;192 int i;
193 193
194 /*
195 * Prior to ARMv5 there is no TCM, and trying to read the status
196 * register will hang the processor.
197 */
198 if (cpu_architecture() < CPU_ARCH_ARMv5) {
199 if (dtcm_code_sz || itcm_code_sz)
200 pr_info("CPU TCM: %u bytes of DTCM and %u bytes of "
201 "ITCM code compiled in, but no TCM present "
202 "in pre-v5 CPU\n", dtcm_code_sz, itcm_code_sz);
203 return;
204 }
205
206 tcm_status = read_cpuid_tcmstatus();
207 dtcm_banks = (tcm_status >> 16) & 0x03;
208 itcm_banks = (tcm_status & 0x03);
209
194 /* Values greater than 2 for D/ITCM banks are "reserved" */210 /* Values greater than 2 for D/ITCM banks are "reserved" */
195 if (dtcm_banks > 2)211 if (dtcm_banks > 2)
196 dtcm_banks = 0;212 dtcm_banks = 0;
arch/arm/kernel/vmlinux.lds.S+7−0
@@ -13,6 +13,12 @@ · 12 unmodified lines
13 *(.proc.info.init) \13 *(.proc.info.init) \
14 VMLINUX_SYMBOL(__proc_info_end) = .;14 VMLINUX_SYMBOL(__proc_info_end) = .;
15 15
16#define IDMAP_TEXT \
17 ALIGN_FUNCTION(); \
18 VMLINUX_SYMBOL(__idmap_text_start) = .; \
19 *(.idmap.text) \
20 VMLINUX_SYMBOL(__idmap_text_end) = .;
21
16#ifdef CONFIG_HOTPLUG_CPU22#ifdef CONFIG_HOTPLUG_CPU
17#define ARM_CPU_DISCARD(x)23#define ARM_CPU_DISCARD(x)
18#define ARM_CPU_KEEP(x) x24#define ARM_CPU_KEEP(x) x
@@ -92,6 +98,7 @@ SECTIONS · 73 unmodified lines
92 SCHED_TEXT98 SCHED_TEXT
93 LOCK_TEXT99 LOCK_TEXT
94 KPROBES_TEXT100 KPROBES_TEXT
101 IDMAP_TEXT
95#ifdef CONFIG_MMU102#ifdef CONFIG_MMU
96 *(.fixup)103 *(.fixup)
97#endif104#endif
arch/arm/lib/Makefile+2−1
@@ -13,7 +13,8 @@ lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ · 12 unmodified lines
13 testchangebit.o testclearbit.o testsetbit.o \13 testchangebit.o testclearbit.o testsetbit.o \
14 ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \14 ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \
15 ucmpdi2.o lib1funcs.o div64.o \15 ucmpdi2.o lib1funcs.o div64.o \
16 io-readsb.o io-writesb.o io-readsl.o io-writesl.o16 io-readsb.o io-writesb.o io-readsl.o io-writesl.o \
17 call_with_stack.o
17 18
18mmu-y := clear_user.o copy_page.o getuser.o putuser.o19mmu-y := clear_user.o copy_page.o getuser.o putuser.o
19 20
arch/arm/lib/call_with_stack.S+44−0
@@ -0,0 +1,44 @@
1/*
2 * arch/arm/lib/call_with_stack.S
3 *
4 * Copyright (C) 2011 ARM Ltd.
5 * Written by Will Deacon <will.deacon@arm.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 * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21#include <linux/linkage.h>
22#include <asm/assembler.h>
23
24/*
25 * void call_with_stack(void (*fn)(void *), void *arg, void *sp)
26 *
27 * Change the stack to that pointed at by sp, then invoke fn(arg) with
28 * the new stack.
29 */
30ENTRY(call_with_stack)
31 str sp, [r2, #-4]!
32 str lr, [r2, #-4]!
33
34 mov sp, r2
35 mov r2, r0
36 mov r0, r1
37
38 adr lr, BSYM(1f)
39 mov pc, r2
40
411: ldr lr, [sp]
42 ldr sp, [sp, #4]
43 mov pc, lr
44ENDPROC(call_with_stack)
arch/arm/mach-at91/Kconfig+22−2
@@ -3,6 +3,12 @@ if ARCH_AT91 · 2 unmodified lines
3config HAVE_AT91_DATAFLASH_CARD3config HAVE_AT91_DATAFLASH_CARD
4 bool4 bool
5 5
6config HAVE_AT91_DBGU0
7 bool
8
9config HAVE_AT91_DBGU1
10 bool
11
6config HAVE_AT91_USART312config HAVE_AT91_USART3
7 bool13 bool
8 14
@@ -21,12 +27,14 @@ config ARCH_AT91RM9200 · 12 unmodified lines
21 bool "AT91RM9200"27 bool "AT91RM9200"
22 select CPU_ARM920T28 select CPU_ARM920T
23 select GENERIC_CLOCKEVENTS29 select GENERIC_CLOCKEVENTS
30 select HAVE_AT91_DBGU0
24 select HAVE_AT91_USART331 select HAVE_AT91_USART3
25 32
26config ARCH_AT91SAM926033config ARCH_AT91SAM9260
27 bool "AT91SAM9260 or AT91SAM9XE"34 bool "AT91SAM9260 or AT91SAM9XE"
28 select CPU_ARM926T35 select CPU_ARM926T
29 select GENERIC_CLOCKEVENTS36 select GENERIC_CLOCKEVENTS
37 select HAVE_AT91_DBGU0
30 select HAVE_AT91_USART338 select HAVE_AT91_USART3
31 select HAVE_AT91_USART439 select HAVE_AT91_USART4
32 select HAVE_AT91_USART540 select HAVE_AT91_USART5
@@ -37,11 +45,13 @@ config ARCH_AT91SAM9261 · 4 unmodified lines
37 select CPU_ARM926T45 select CPU_ARM926T
38 select GENERIC_CLOCKEVENTS46 select GENERIC_CLOCKEVENTS
39 select HAVE_FB_ATMEL47 select HAVE_FB_ATMEL
48 select HAVE_AT91_DBGU0
40 49
41config ARCH_AT91SAM9G1050config ARCH_AT91SAM9G10
42 bool "AT91SAM9G10"51 bool "AT91SAM9G10"
43 select CPU_ARM926T52 select CPU_ARM926T
44 select GENERIC_CLOCKEVENTS53 select GENERIC_CLOCKEVENTS
54 select HAVE_AT91_DBGU0
45 select HAVE_FB_ATMEL55 select HAVE_FB_ATMEL
46 56
47config ARCH_AT91SAM926357config ARCH_AT91SAM9263
@@ -50,6 +60,7 @@ config ARCH_AT91SAM9263 · 2 unmodified lines
50 select GENERIC_CLOCKEVENTS60 select GENERIC_CLOCKEVENTS
51 select HAVE_FB_ATMEL61 select HAVE_FB_ATMEL
52 select HAVE_NET_MACB62 select HAVE_NET_MACB
63 select HAVE_AT91_DBGU1
53 64
54config ARCH_AT91SAM9RL65config ARCH_AT91SAM9RL
55 bool "AT91SAM9RL"66 bool "AT91SAM9RL"
@@ -57,11 +68,13 @@ config ARCH_AT91SAM9RL · 1 unmodified line
57 select GENERIC_CLOCKEVENTS68 select GENERIC_CLOCKEVENTS
58 select HAVE_AT91_USART369 select HAVE_AT91_USART3
59 select HAVE_FB_ATMEL70 select HAVE_FB_ATMEL
71 select HAVE_AT91_DBGU0
60 72
61config ARCH_AT91SAM9G2073config ARCH_AT91SAM9G20
62 bool "AT91SAM9G20"74 bool "AT91SAM9G20"
63 select CPU_ARM926T75 select CPU_ARM926T
64 select GENERIC_CLOCKEVENTS76 select GENERIC_CLOCKEVENTS
77 select HAVE_AT91_DBGU0
65 select HAVE_AT91_USART378 select HAVE_AT91_USART3
66 select HAVE_AT91_USART479 select HAVE_AT91_USART4
67 select HAVE_AT91_USART580 select HAVE_AT91_USART5
@@ -74,6 +87,7 @@ config ARCH_AT91SAM9G45 · 6 unmodified lines
74 select HAVE_AT91_USART387 select HAVE_AT91_USART3
75 select HAVE_FB_ATMEL88 select HAVE_FB_ATMEL
76 select HAVE_NET_MACB89 select HAVE_NET_MACB
90 select HAVE_AT91_DBGU1
77 91
78config ARCH_AT91CAP992config ARCH_AT91CAP9
79 bool "AT91CAP9"93 bool "AT91CAP9"
@@ -81,6 +95,7 @@ config ARCH_AT91CAP9 · 1 unmodified line
81 select GENERIC_CLOCKEVENTS95 select GENERIC_CLOCKEVENTS
82 select HAVE_FB_ATMEL96 select HAVE_FB_ATMEL
83 select HAVE_NET_MACB97 select HAVE_NET_MACB
98 select HAVE_AT91_DBGU1
84 99
85config ARCH_AT91X40100config ARCH_AT91X40
86 bool "AT91x40"101 bool "AT91x40"
@@ -510,8 +525,13 @@ config AT91_TIMER_HZ · 423 unmodified lines
510choice525choice
511 prompt "Select a UART for early kernel messages"526 prompt "Select a UART for early kernel messages"
512 527
513config AT91_EARLY_DBGU528config AT91_EARLY_DBGU0
514 bool "DBGU"529 bool "DBGU on rm9200, 9260/9g20, 9261/9g10 and 9rl"
530 depends on HAVE_AT91_DBGU0
531
532config AT91_EARLY_DBGU1
533 bool "DBGU on 9263, 9g45 and cap9"
534 depends on HAVE_AT91_DBGU1
515 535
516config AT91_EARLY_USART0536config AT91_EARLY_USART0
517 bool "USART0"537 bool "USART0"
arch/arm/mach-at91/at91cap9.c+23−21
@@ -13,7 +13,6 @@ · 12 unmodified lines
13 */13 */
14 14
15#include <linux/module.h>15#include <linux/module.h>
16#include <linux/pm.h>
17 16
18#include <asm/irq.h>17#include <asm/irq.h>
19#include <asm/mach/arch.h>18#include <asm/mach/arch.h>
@@ -23,11 +22,11 @@ · 3 unmodified lines
23#include <mach/at91cap9.h>22#include <mach/at91cap9.h>
24#include <mach/at91_pmc.h>23#include <mach/at91_pmc.h>
25#include <mach/at91_rstc.h>24#include <mach/at91_rstc.h>
26#include <mach/at91_shdwc.h>
27 25
28#include "soc.h"26#include "soc.h"
29#include "generic.h"27#include "generic.h"
30#include "clock.h"28#include "clock.h"
29#include "sam9_smc.h"
31 30
32/* --------------------------------------------------------------------31/* --------------------------------------------------------------------
33 * Clocks32 * Clocks
@@ -137,7 +136,7 @@ static struct clk pwm_clk = { · 103 unmodified lines
137 .type = CLK_TYPE_PERIPHERAL,136 .type = CLK_TYPE_PERIPHERAL,
138};137};
139static struct clk macb_clk = {138static struct clk macb_clk = {
140 .name = "macb_clk",139 .name = "pclk",
141 .pmc_mask = 1 << AT91CAP9_ID_EMAC,140 .pmc_mask = 1 << AT91CAP9_ID_EMAC,
142 .type = CLK_TYPE_PERIPHERAL,141 .type = CLK_TYPE_PERIPHERAL,
143};142};
@@ -210,6 +209,8 @@ static struct clk *periph_clocks[] __initdata = { · 66 unmodified lines
210};209};
211 210
212static struct clk_lookup periph_clocks_lookups[] = {211static struct clk_lookup periph_clocks_lookups[] = {
212 /* One additional fake clock for macb_hclk */
213 CLKDEV_CON_ID("hclk", &macb_clk),
213 CLKDEV_CON_DEV_ID("hclk", "atmel_usba_udc", &utmi_clk),214 CLKDEV_CON_DEV_ID("hclk", "atmel_usba_udc", &utmi_clk),
214 CLKDEV_CON_DEV_ID("pclk", "atmel_usba_udc", &udphs_clk),215 CLKDEV_CON_DEV_ID("pclk", "atmel_usba_udc", &udphs_clk),
215 CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.0", &mmc0_clk),216 CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.0", &mmc0_clk),
@@ -221,6 +222,10 @@ static struct clk_lookup periph_clocks_lookups[] = { · 5 unmodified lines
221 CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),222 CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),
222 /* fake hclk clock */223 /* fake hclk clock */
223 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),224 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),
225 CLKDEV_CON_ID("pioA", &pioABCD_clk),
226 CLKDEV_CON_ID("pioB", &pioABCD_clk),
227 CLKDEV_CON_ID("pioC", &pioABCD_clk),
228 CLKDEV_CON_ID("pioD", &pioABCD_clk),
224};229};
225 230
226static struct clk_lookup usart_clocks_lookups[] = {231static struct clk_lookup usart_clocks_lookups[] = {
@@ -293,37 +298,27 @@ void __init at91cap9_set_console_clock(int id) · 66 unmodified lines
293 * GPIO298 * GPIO
294 * -------------------------------------------------------------------- */299 * -------------------------------------------------------------------- */
295 300
296static struct at91_gpio_bank at91cap9_gpio[] = {301static struct at91_gpio_bank at91cap9_gpio[] __initdata = {
297 {302 {
298 .id = AT91CAP9_ID_PIOABCD,303 .id = AT91CAP9_ID_PIOABCD,
299 .offset = AT91_PIOA,304 .regbase = AT91CAP9_BASE_PIOA,
300 .clock = &pioABCD_clk,
301 }, {305 }, {
302 .id = AT91CAP9_ID_PIOABCD,306 .id = AT91CAP9_ID_PIOABCD,
303 .offset = AT91_PIOB,307 .regbase = AT91CAP9_BASE_PIOB,
304 .clock = &pioABCD_clk,
305 }, {308 }, {
306 .id = AT91CAP9_ID_PIOABCD,309 .id = AT91CAP9_ID_PIOABCD,
307 .offset = AT91_PIOC,310 .regbase = AT91CAP9_BASE_PIOC,
308 .clock = &pioABCD_clk,
309 }, {311 }, {
310 .id = AT91CAP9_ID_PIOABCD,312 .id = AT91CAP9_ID_PIOABCD,
311 .offset = AT91_PIOD,313 .regbase = AT91CAP9_BASE_PIOD,
312 .clock = &pioABCD_clk,
313 }314 }
314};315};
315 316
316static void at91cap9_reset(void)317static void at91cap9_restart(char mode, const char *cmd)
317{318{
318 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);319 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
319}320}
320 321
321static void at91cap9_poweroff(void)
322{
323 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
324}
325
326
327/* --------------------------------------------------------------------322/* --------------------------------------------------------------------
328 * AT91CAP9 processor initialization323 * AT91CAP9 processor initialization
329 * -------------------------------------------------------------------- */324 * -------------------------------------------------------------------- */
@@ -333,10 +328,16 @@ static void __init at91cap9_map_io(void) · 3 unmodified lines
333 at91_init_sram(0, AT91CAP9_SRAM_BASE, AT91CAP9_SRAM_SIZE);328 at91_init_sram(0, AT91CAP9_SRAM_BASE, AT91CAP9_SRAM_SIZE);
334}329}
335 330
331static void __init at91cap9_ioremap_registers(void)
332{
333 at91_ioremap_shdwc(AT91CAP9_BASE_SHDWC);
334 at91sam926x_ioremap_pit(AT91CAP9_BASE_PIT);
335 at91sam9_ioremap_smc(0, AT91CAP9_BASE_SMC);
336}
337
336static void __init at91cap9_initialize(void)338static void __init at91cap9_initialize(void)
337{339{
338 at91_arch_reset = at91cap9_reset;340 arm_pm_restart = at91cap9_restart;
339 pm_power_off = at91cap9_poweroff;
340 at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1);341 at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1);
341 342
342 /* Register GPIO subsystem */343 /* Register GPIO subsystem */
@@ -394,6 +395,7 @@ static unsigned int at91cap9_default_irq_priority[NR_AIC_IRQS] __initdata = { · 51 unmodified lines
394struct at91_init_soc __initdata at91cap9_soc = {395struct at91_init_soc __initdata at91cap9_soc = {
395 .map_io = at91cap9_map_io,396 .map_io = at91cap9_map_io,
396 .default_irq_priority = at91cap9_default_irq_priority,397 .default_irq_priority = at91cap9_default_irq_priority,
398 .ioremap_registers = at91cap9_ioremap_registers,
397 .register_clocks = at91cap9_register_clocks,399 .register_clocks = at91cap9_register_clocks,
398 .init = at91cap9_initialize,400 .init = at91cap9_initialize,
399};401};
arch/arm/mach-at91/at91cap9_devices.c+29−20
@@ -76,7 +76,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) · 75 unmodified lines
76 76
77 /* Enable VBus control for UHP ports */77 /* Enable VBus control for UHP ports */
78 for (i = 0; i < data->ports; i++) {78 for (i = 0; i < data->ports; i++) {
79 if (data->vbus_pin[i])79 if (gpio_is_valid(data->vbus_pin[i]))
80 at91_set_gpio_output(data->vbus_pin[i], 0);80 at91_set_gpio_output(data->vbus_pin[i], 0);
81 }81 }
82 82
@@ -179,7 +179,7 @@ void __init at91_add_device_usba(struct usba_platform_data *data) · 96 unmodified lines
179 usba_udc_data.pdata.num_ep = ARRAY_SIZE(usba_udc_ep);179 usba_udc_data.pdata.num_ep = ARRAY_SIZE(usba_udc_ep);
180 memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));180 memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));
181 181
182 if (data && data->vbus_pin > 0) {182 if (data && gpio_is_valid(data->vbus_pin)) {
183 at91_set_gpio_input(data->vbus_pin, 0);183 at91_set_gpio_input(data->vbus_pin, 0);
184 at91_set_deglitch(data->vbus_pin, 1);184 at91_set_deglitch(data->vbus_pin, 1);
185 usba_udc_data.pdata.vbus_pin = data->vbus_pin;185 usba_udc_data.pdata.vbus_pin = data->vbus_pin;
@@ -200,7 +200,7 @@ void __init at91_add_device_usba(struct usba_platform_data *data) {} · 14 unmodified lines
200 200
201#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)201#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
202static u64 eth_dmamask = DMA_BIT_MASK(32);202static u64 eth_dmamask = DMA_BIT_MASK(32);
203static struct at91_eth_data eth_data;203static struct macb_platform_data eth_data;
204 204
205static struct resource eth_resources[] = {205static struct resource eth_resources[] = {
206 [0] = {206 [0] = {
@@ -227,12 +227,12 @@ static struct platform_device at91cap9_eth_device = { · 20 unmodified lines
227 .num_resources = ARRAY_SIZE(eth_resources),227 .num_resources = ARRAY_SIZE(eth_resources),
228};228};
229 229
230void __init at91_add_device_eth(struct at91_eth_data *data)230void __init at91_add_device_eth(struct macb_platform_data *data)
231{231{
232 if (!data)232 if (!data)
233 return;233 return;
234 234
235 if (data->phy_irq_pin) {235 if (gpio_is_valid(data->phy_irq_pin)) {
236 at91_set_gpio_input(data->phy_irq_pin, 0);236 at91_set_gpio_input(data->phy_irq_pin, 0);
237 at91_set_deglitch(data->phy_irq_pin, 1);237 at91_set_deglitch(data->phy_irq_pin, 1);
238 }238 }
@@ -264,7 +264,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data) · 25 unmodified lines
264 platform_device_register(&at91cap9_eth_device);264 platform_device_register(&at91cap9_eth_device);
265}265}
266#else266#else
267void __init at91_add_device_eth(struct at91_eth_data *data) {}267void __init at91_add_device_eth(struct macb_platform_data *data) {}
268#endif268#endif
269 269
270 270
@@ -332,13 +332,13 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) · 61 unmodified lines
332 return;332 return;
333 333
334 /* input/irq */334 /* input/irq */
335 if (data->det_pin) {335 if (gpio_is_valid(data->det_pin)) {
336 at91_set_gpio_input(data->det_pin, 1);336 at91_set_gpio_input(data->det_pin, 1);
337 at91_set_deglitch(data->det_pin, 1);337 at91_set_deglitch(data->det_pin, 1);
338 }338 }
339 if (data->wp_pin)339 if (gpio_is_valid(data->wp_pin))
340 at91_set_gpio_input(data->wp_pin, 1);340 at91_set_gpio_input(data->wp_pin, 1);
341 if (data->vcc_pin)341 if (gpio_is_valid(data->vcc_pin))
342 at91_set_gpio_output(data->vcc_pin, 0);342 at91_set_gpio_output(data->vcc_pin, 0);
343 343
344 if (mmc_id == 0) { /* MCI0 */344 if (mmc_id == 0) { /* MCI0 */
@@ -398,8 +398,8 @@ static struct resource nand_resources[] = { · 53 unmodified lines
398 .flags = IORESOURCE_MEM,398 .flags = IORESOURCE_MEM,
399 },399 },
400 [1] = {400 [1] = {
401 .start = AT91_BASE_SYS + AT91_ECC,401 .start = AT91CAP9_BASE_ECC,
402 .end = AT91_BASE_SYS + AT91_ECC + SZ_512 - 1,402 .end = AT91CAP9_BASE_ECC + SZ_512 - 1,
403 .flags = IORESOURCE_MEM,403 .flags = IORESOURCE_MEM,
404 }404 }
405};405};
@@ -425,15 +425,15 @@ void __init at91_add_device_nand(struct atmel_nand_data *data) · 19 unmodified lines
425 at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA);425 at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA);
426 426
427 /* enable pin */427 /* enable pin */
428 if (data->enable_pin)428 if (gpio_is_valid(data->enable_pin))
429 at91_set_gpio_output(data->enable_pin, 1);429 at91_set_gpio_output(data->enable_pin, 1);
430 430
431 /* ready/busy pin */431 /* ready/busy pin */
432 if (data->rdy_pin)432 if (gpio_is_valid(data->rdy_pin))
433 at91_set_gpio_input(data->rdy_pin, 1);433 at91_set_gpio_input(data->rdy_pin, 1);
434 434
435 /* card detect pin */435 /* card detect pin */
436 if (data->det_pin)436 if (gpio_is_valid(data->det_pin))
437 at91_set_gpio_input(data->det_pin, 1);437 at91_set_gpio_input(data->det_pin, 1);
438 438
439 nand_data = *data;439 nand_data = *data;
@@ -670,8 +670,8 @@ static void __init at91_add_device_tc(void) { } · 230 unmodified lines
670 670
671static struct resource rtt_resources[] = {671static struct resource rtt_resources[] = {
672 {672 {
673 .start = AT91_BASE_SYS + AT91_RTT,673 .start = AT91CAP9_BASE_RTT,
674 .end = AT91_BASE_SYS + AT91_RTT + SZ_16 - 1,674 .end = AT91CAP9_BASE_RTT + SZ_16 - 1,
675 .flags = IORESOURCE_MEM,675 .flags = IORESOURCE_MEM,
676 }676 }
677};677};
@@ -694,10 +694,19 @@ static void __init at91_add_device_rtt(void) · 16 unmodified lines
694 * -------------------------------------------------------------------- */694 * -------------------------------------------------------------------- */
695 695
696#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)696#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
697static struct resource wdt_resources[] = {
698 {
699 .start = AT91CAP9_BASE_WDT,
700 .end = AT91CAP9_BASE_WDT + SZ_16 - 1,
701 .flags = IORESOURCE_MEM,
702 }
703};
704
697static struct platform_device at91cap9_wdt_device = {705static struct platform_device at91cap9_wdt_device = {
698 .name = "at91_wdt",706 .name = "at91_wdt",
699 .id = -1,707 .id = -1,
700 .num_resources = 0,708 .resource = wdt_resources,
709 .num_resources = ARRAY_SIZE(wdt_resources),
701};710};
702 711
703static void __init at91_add_device_watchdog(void)712static void __init at91_add_device_watchdog(void)
@@ -807,7 +816,7 @@ void __init at91_add_device_ac97(struct ac97c_platform_data *data) · 103 unmodified lines
807 at91_set_A_periph(AT91_PIN_PA9, 0); /* AC97RX */816 at91_set_A_periph(AT91_PIN_PA9, 0); /* AC97RX */
808 817
809 /* reset */818 /* reset */
810 if (data->reset_pin)819 if (gpio_is_valid(data->reset_pin))
811 at91_set_gpio_output(data->reset_pin, 0);820 at91_set_gpio_output(data->reset_pin, 0);
812 821
813 ac97_data = *data;822 ac97_data = *data;
@@ -1021,8 +1030,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} · 207 unmodified lines
1021#if defined(CONFIG_SERIAL_ATMEL)1030#if defined(CONFIG_SERIAL_ATMEL)
1022static struct resource dbgu_resources[] = {1031static struct resource dbgu_resources[] = {
1023 [0] = {1032 [0] = {
1024 .start = AT91_BASE_SYS + AT91_DBGU,1033 .start = AT91CAP9_BASE_DBGU,
1025 .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1,1034 .end = AT91CAP9_BASE_DBGU + SZ_512 - 1,
1026 .flags = IORESOURCE_MEM,1035 .flags = IORESOURCE_MEM,
1027 },1036 },
1028 [1] = {1037 [1] = {
arch/arm/mach-at91/at91rm9200.c+17−11
@@ -23,6 +23,7 @@ · 22 unmodified lines
23#include "soc.h"23#include "soc.h"
24#include "generic.h"24#include "generic.h"
25#include "clock.h"25#include "clock.h"
26#include "sam9_smc.h"
26 27
27static struct map_desc at91rm9200_io_desc[] __initdata = {28static struct map_desc at91rm9200_io_desc[] __initdata = {
28 {29 {
@@ -195,6 +196,10 @@ static struct clk_lookup periph_clocks_lookups[] = { · 166 unmodified lines
195 CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk),196 CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk),
196 /* fake hclk clock */197 /* fake hclk clock */
197 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),198 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),
199 CLKDEV_CON_ID("pioA", &pioA_clk),
200 CLKDEV_CON_ID("pioB", &pioB_clk),
201 CLKDEV_CON_ID("pioC", &pioC_clk),
202 CLKDEV_CON_ID("pioD", &pioD_clk),
198};203};
199 204
200static struct clk_lookup usart_clocks_lookups[] = {205static struct clk_lookup usart_clocks_lookups[] = {
@@ -268,27 +273,23 @@ void __init at91rm9200_set_console_clock(int id) · 67 unmodified lines
268 * GPIO273 * GPIO
269 * -------------------------------------------------------------------- */274 * -------------------------------------------------------------------- */
270 275
271static struct at91_gpio_bank at91rm9200_gpio[] = {276static struct at91_gpio_bank at91rm9200_gpio[] __initdata = {
272 {277 {
273 .id = AT91RM9200_ID_PIOA,278 .id = AT91RM9200_ID_PIOA,
274 .offset = AT91_PIOA,279 .regbase = AT91RM9200_BASE_PIOA,
275 .clock = &pioA_clk,
276 }, {280 }, {
277 .id = AT91RM9200_ID_PIOB,281 .id = AT91RM9200_ID_PIOB,
278 .offset = AT91_PIOB,282 .regbase = AT91RM9200_BASE_PIOB,
279 .clock = &pioB_clk,
280 }, {283 }, {
281 .id = AT91RM9200_ID_PIOC,284 .id = AT91RM9200_ID_PIOC,
282 .offset = AT91_PIOC,285 .regbase = AT91RM9200_BASE_PIOC,
283 .clock = &pioC_clk,
284 }, {286 }, {
285 .id = AT91RM9200_ID_PIOD,287 .id = AT91RM9200_ID_PIOD,
286 .offset = AT91_PIOD,288 .regbase = AT91RM9200_BASE_PIOD,
287 .clock = &pioD_clk,
288 }289 }
289};290};
290 291
291static void at91rm9200_reset(void)292static void at91rm9200_restart(char mode, const char *cmd)
292{293{
293 /*294 /*
294 * Perform a hardware reset with the use of the Watchdog timer.295 * Perform a hardware reset with the use of the Watchdog timer.
@@ -307,9 +308,13 @@ static void __init at91rm9200_map_io(void) · 12 unmodified lines
307 iotable_init(at91rm9200_io_desc, ARRAY_SIZE(at91rm9200_io_desc));308 iotable_init(at91rm9200_io_desc, ARRAY_SIZE(at91rm9200_io_desc));
308}309}
309 310
311static void __init at91rm9200_ioremap_registers(void)
312{
313}
314
310static void __init at91rm9200_initialize(void)315static void __init at91rm9200_initialize(void)
311{316{
312 at91_arch_reset = at91rm9200_reset;317 arm_pm_restart = at91rm9200_restart;
313 at91_extern_irq = (1 << AT91RM9200_ID_IRQ0) | (1 << AT91RM9200_ID_IRQ1)318 at91_extern_irq = (1 << AT91RM9200_ID_IRQ0) | (1 << AT91RM9200_ID_IRQ1)
314 | (1 << AT91RM9200_ID_IRQ2) | (1 << AT91RM9200_ID_IRQ3)319 | (1 << AT91RM9200_ID_IRQ2) | (1 << AT91RM9200_ID_IRQ3)
315 | (1 << AT91RM9200_ID_IRQ4) | (1 << AT91RM9200_ID_IRQ5)320 | (1 << AT91RM9200_ID_IRQ4) | (1 << AT91RM9200_ID_IRQ5)
@@ -366,6 +371,7 @@ static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = { · 50 unmodified lines
366struct at91_init_soc __initdata at91rm9200_soc = {371struct at91_init_soc __initdata at91rm9200_soc = {
367 .map_io = at91rm9200_map_io,372 .map_io = at91rm9200_map_io,
368 .default_irq_priority = at91rm9200_default_irq_priority,373 .default_irq_priority = at91rm9200_default_irq_priority,
374 .ioremap_registers = at91rm9200_ioremap_registers,
369 .register_clocks = at91rm9200_register_clocks,375 .register_clocks = at91rm9200_register_clocks,
370 .init = at91rm9200_initialize,376 .init = at91rm9200_initialize,
371};377};
arch/arm/mach-at91/at91rm9200_devices.c+31−17
@@ -114,11 +114,11 @@ void __init at91_add_device_udc(struct at91_udc_data *data) · 113 unmodified lines
114 if (!data)114 if (!data)
115 return;115 return;
116 116
117 if (data->vbus_pin) {117 if (gpio_is_valid(data->vbus_pin)) {
118 at91_set_gpio_input(data->vbus_pin, 0);118 at91_set_gpio_input(data->vbus_pin, 0);
119 at91_set_deglitch(data->vbus_pin, 1);119 at91_set_deglitch(data->vbus_pin, 1);
120 }120 }
121 if (data->pullup_pin)121 if (gpio_is_valid(data->pullup_pin))
122 at91_set_gpio_output(data->pullup_pin, 0);122 at91_set_gpio_output(data->pullup_pin, 0);
123 123
124 udc_data = *data;124 udc_data = *data;
@@ -135,7 +135,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {} · 10 unmodified lines
135 135
136#if defined(CONFIG_ARM_AT91_ETHER) || defined(CONFIG_ARM_AT91_ETHER_MODULE)136#if defined(CONFIG_ARM_AT91_ETHER) || defined(CONFIG_ARM_AT91_ETHER_MODULE)
137static u64 eth_dmamask = DMA_BIT_MASK(32);137static u64 eth_dmamask = DMA_BIT_MASK(32);
138static struct at91_eth_data eth_data;138static struct macb_platform_data eth_data;
139 139
140static struct resource eth_resources[] = {140static struct resource eth_resources[] = {
141 [0] = {141 [0] = {
@@ -162,12 +162,12 @@ static struct platform_device at91rm9200_eth_device = { · 20 unmodified lines
162 .num_resources = ARRAY_SIZE(eth_resources),162 .num_resources = ARRAY_SIZE(eth_resources),
163};163};
164 164
165void __init at91_add_device_eth(struct at91_eth_data *data)165void __init at91_add_device_eth(struct macb_platform_data *data)
166{166{
167 if (!data)167 if (!data)
168 return;168 return;
169 169
170 if (data->phy_irq_pin) {170 if (gpio_is_valid(data->phy_irq_pin)) {
171 at91_set_gpio_input(data->phy_irq_pin, 0);171 at91_set_gpio_input(data->phy_irq_pin, 0);
172 at91_set_deglitch(data->phy_irq_pin, 1);172 at91_set_deglitch(data->phy_irq_pin, 1);
173 }173 }
@@ -199,7 +199,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data) · 25 unmodified lines
199 platform_device_register(&at91rm9200_eth_device);199 platform_device_register(&at91rm9200_eth_device);
200}200}
201#else201#else
202void __init at91_add_device_eth(struct at91_eth_data *data) {}202void __init at91_add_device_eth(struct macb_platform_data *data) {}
203#endif203#endif
204 204
205 205
@@ -260,7 +260,7 @@ void __init at91_add_device_cf(struct at91_cf_data *data) · 54 unmodified lines
260 );260 );
261 261
262 /* input/irq */262 /* input/irq */
263 if (data->irq_pin) {263 if (gpio_is_valid(data->irq_pin)) {
264 at91_set_gpio_input(data->irq_pin, 1);264 at91_set_gpio_input(data->irq_pin, 1);
265 at91_set_deglitch(data->irq_pin, 1);265 at91_set_deglitch(data->irq_pin, 1);
266 }266 }
@@ -268,7 +268,7 @@ void __init at91_add_device_cf(struct at91_cf_data *data) · 1 unmodified line
268 at91_set_deglitch(data->det_pin, 1);268 at91_set_deglitch(data->det_pin, 1);
269 269
270 /* outputs, initially off */270 /* outputs, initially off */
271 if (data->vcc_pin)271 if (gpio_is_valid(data->vcc_pin))
272 at91_set_gpio_output(data->vcc_pin, 0);272 at91_set_gpio_output(data->vcc_pin, 0);
273 at91_set_gpio_output(data->rst_pin, 0);273 at91_set_gpio_output(data->rst_pin, 0);
274 274
@@ -328,13 +328,13 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) · 53 unmodified lines
328 return;328 return;
329 329
330 /* input/irq */330 /* input/irq */
331 if (data->det_pin) {331 if (gpio_is_valid(data->det_pin)) {
332 at91_set_gpio_input(data->det_pin, 1);332 at91_set_gpio_input(data->det_pin, 1);
333 at91_set_deglitch(data->det_pin, 1);333 at91_set_deglitch(data->det_pin, 1);
334 }334 }
335 if (data->wp_pin)335 if (gpio_is_valid(data->wp_pin))
336 at91_set_gpio_input(data->wp_pin, 1);336 at91_set_gpio_input(data->wp_pin, 1);
337 if (data->vcc_pin)337 if (gpio_is_valid(data->vcc_pin))
338 at91_set_gpio_output(data->vcc_pin, 0);338 at91_set_gpio_output(data->vcc_pin, 0);
339 339
340 /* CLK */340 /* CLK */
@@ -419,15 +419,15 @@ void __init at91_add_device_nand(struct atmel_nand_data *data) · 78 unmodified lines
419 );419 );
420 420
421 /* enable pin */421 /* enable pin */
422 if (data->enable_pin)422 if (gpio_is_valid(data->enable_pin))
423 at91_set_gpio_output(data->enable_pin, 1);423 at91_set_gpio_output(data->enable_pin, 1);
424 424
425 /* ready/busy pin */425 /* ready/busy pin */
426 if (data->rdy_pin)426 if (gpio_is_valid(data->rdy_pin))
427 at91_set_gpio_input(data->rdy_pin, 1);427 at91_set_gpio_input(data->rdy_pin, 1);
428 428
429 /* card detect pin */429 /* card detect pin */
430 if (data->det_pin)430 if (gpio_is_valid(data->det_pin))
431 at91_set_gpio_input(data->det_pin, 1);431 at91_set_gpio_input(data->det_pin, 1);
432 432
433 at91_set_A_periph(AT91_PIN_PC1, 0); /* SMOE */433 at91_set_A_periph(AT91_PIN_PC1, 0); /* SMOE */
@@ -665,10 +665,24 @@ static void __init at91_add_device_tc(void) { } · 231 unmodified lines
665 * -------------------------------------------------------------------- */665 * -------------------------------------------------------------------- */
666 666
667#if defined(CONFIG_RTC_DRV_AT91RM9200) || defined(CONFIG_RTC_DRV_AT91RM9200_MODULE)667#if defined(CONFIG_RTC_DRV_AT91RM9200) || defined(CONFIG_RTC_DRV_AT91RM9200_MODULE)
668static struct resource rtc_resources[] = {
669 [0] = {
670 .start = AT91RM9200_BASE_RTC,
671 .end = AT91RM9200_BASE_RTC + SZ_256 - 1,
672 .flags = IORESOURCE_MEM,
673 },
674 [1] = {
675 .start = AT91_ID_SYS,
676 .end = AT91_ID_SYS,
677 .flags = IORESOURCE_IRQ,
678 },
679};
680
668static struct platform_device at91rm9200_rtc_device = {681static struct platform_device at91rm9200_rtc_device = {
669 .name = "at91_rtc",682 .name = "at91_rtc",
670 .id = -1,683 .id = -1,
671 .num_resources = 0,684 .resource = rtc_resources,
685 .num_resources = ARRAY_SIZE(rtc_resources),
672};686};
673 687
674static void __init at91_add_device_rtc(void)688static void __init at91_add_device_rtc(void)
@@ -877,8 +891,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} · 202 unmodified lines
877#if defined(CONFIG_SERIAL_ATMEL)891#if defined(CONFIG_SERIAL_ATMEL)
878static struct resource dbgu_resources[] = {892static struct resource dbgu_resources[] = {
879 [0] = {893 [0] = {
880 .start = AT91_BASE_SYS + AT91_DBGU,894 .start = AT91RM9200_BASE_DBGU,
881 .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1,895 .end = AT91RM9200_BASE_DBGU + SZ_512 - 1,
882 .flags = IORESOURCE_MEM,896 .flags = IORESOURCE_MEM,
883 },897 },
884 [1] = {898 [1] = {
arch/arm/mach-at91/at91rm9200_time.c+5−3
@@ -32,6 +32,8 @@ static unsigned long last_crtr; · 31 unmodified lines
32static u32 irqmask;32static u32 irqmask;
33static struct clock_event_device clkevt;33static struct clock_event_device clkevt;
34 34
35#define RM9200_TIMER_LATCH ((AT91_SLOW_CLOCK + HZ/2) / HZ)
36
35/*37/*
36 * The ST_CRTR is updated asynchronously to the master clock ... but38 * The ST_CRTR is updated asynchronously to the master clock ... but
37 * the updates as seen by the CPU don't seem to be strictly monotonic.39 * the updates as seen by the CPU don't seem to be strictly monotonic.
@@ -74,8 +76,8 @@ static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id) · 36 unmodified lines
74 if (sr & AT91_ST_PITS) {76 if (sr & AT91_ST_PITS) {
75 u32 crtr = read_CRTR();77 u32 crtr = read_CRTR();
76 78
77 while (((crtr - last_crtr) & AT91_ST_CRTV) >= LATCH) {79 while (((crtr - last_crtr) & AT91_ST_CRTV) >= RM9200_TIMER_LATCH) {
78 last_crtr += LATCH;80 last_crtr += RM9200_TIMER_LATCH;
79 clkevt.event_handler(&clkevt);81 clkevt.event_handler(&clkevt);
80 }82 }
81 return IRQ_HANDLED;83 return IRQ_HANDLED;
@@ -116,7 +118,7 @@ clkevt32k_mode(enum clock_event_mode mode, struct clock_event_device *dev) · 34 unmodified lines
116 case CLOCK_EVT_MODE_PERIODIC:118 case CLOCK_EVT_MODE_PERIODIC:
117 /* PIT for periodic irqs; fixed rate of 1/HZ */119 /* PIT for periodic irqs; fixed rate of 1/HZ */
118 irqmask = AT91_ST_PITS;120 irqmask = AT91_ST_PITS;
119 at91_sys_write(AT91_ST_PIMR, LATCH);121 at91_sys_write(AT91_ST_PIMR, RM9200_TIMER_LATCH);
120 break;122 break;
121 case CLOCK_EVT_MODE_ONESHOT:123 case CLOCK_EVT_MODE_ONESHOT:
122 /* ALM for oneshot irqs, set by next_event()124 /* ALM for oneshot irqs, set by next_event()
arch/arm/mach-at91/at91sam9260.c+20−18
@@ -11,7 +11,6 @@ · 10 unmodified lines
11 */11 */
12 12
13#include <linux/module.h>13#include <linux/module.h>
14#include <linux/pm.h>
15 14
16#include <asm/irq.h>15#include <asm/irq.h>
17#include <asm/mach/arch.h>16#include <asm/mach/arch.h>
@@ -21,11 +20,11 @@ · 3 unmodified lines
21#include <mach/at91sam9260.h>20#include <mach/at91sam9260.h>
22#include <mach/at91_pmc.h>21#include <mach/at91_pmc.h>
23#include <mach/at91_rstc.h>22#include <mach/at91_rstc.h>
24#include <mach/at91_shdwc.h>
25 23
26#include "soc.h"24#include "soc.h"
27#include "generic.h"25#include "generic.h"
28#include "clock.h"26#include "clock.h"
27#include "sam9_smc.h"
29 28
30/* --------------------------------------------------------------------29/* --------------------------------------------------------------------
31 * Clocks30 * Clocks
@@ -120,7 +119,7 @@ static struct clk ohci_clk = { · 88 unmodified lines
120 .type = CLK_TYPE_PERIPHERAL,119 .type = CLK_TYPE_PERIPHERAL,
121};120};
122static struct clk macb_clk = {121static struct clk macb_clk = {
123 .name = "macb_clk",122 .name = "pclk",
124 .pmc_mask = 1 << AT91SAM9260_ID_EMAC,123 .pmc_mask = 1 << AT91SAM9260_ID_EMAC,
125 .type = CLK_TYPE_PERIPHERAL,124 .type = CLK_TYPE_PERIPHERAL,
126};125};
@@ -190,6 +189,8 @@ static struct clk *periph_clocks[] __initdata = { · 63 unmodified lines
190};189};
191 190
192static struct clk_lookup periph_clocks_lookups[] = {191static struct clk_lookup periph_clocks_lookups[] = {
192 /* One additional fake clock for macb_hclk */
193 CLKDEV_CON_ID("hclk", &macb_clk),
193 CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.0", &spi0_clk),194 CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.0", &spi0_clk),
194 CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk),195 CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk),
195 CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tc0_clk),196 CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tc0_clk),
@@ -209,6 +210,9 @@ static struct clk_lookup periph_clocks_lookups[] = { · 13 unmodified lines
209 CLKDEV_CON_DEV_ID("usart", "fffd8000.serial", &usart5_clk),210 CLKDEV_CON_DEV_ID("usart", "fffd8000.serial", &usart5_clk),
210 /* fake hclk clock */211 /* fake hclk clock */
211 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),212 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),
213 CLKDEV_CON_ID("pioA", &pioA_clk),
214 CLKDEV_CON_ID("pioB", &pioB_clk),
215 CLKDEV_CON_ID("pioC", &pioC_clk),
212};216};
213 217
214static struct clk_lookup usart_clocks_lookups[] = {218static struct clk_lookup usart_clocks_lookups[] = {
@@ -270,28 +274,19 @@ void __init at91sam9260_set_console_clock(int id) · 55 unmodified lines
270 * GPIO274 * GPIO
271 * -------------------------------------------------------------------- */275 * -------------------------------------------------------------------- */
272 276
273static struct at91_gpio_bank at91sam9260_gpio[] = {277static struct at91_gpio_bank at91sam9260_gpio[] __initdata = {
274 {278 {
275 .id = AT91SAM9260_ID_PIOA,279 .id = AT91SAM9260_ID_PIOA,
276 .offset = AT91_PIOA,280 .regbase = AT91SAM9260_BASE_PIOA,
277 .clock = &pioA_clk,
278 }, {281 }, {
279 .id = AT91SAM9260_ID_PIOB,282 .id = AT91SAM9260_ID_PIOB,
280 .offset = AT91_PIOB,283 .regbase = AT91SAM9260_BASE_PIOB,
281 .clock = &pioB_clk,
282 }, {284 }, {
283 .id = AT91SAM9260_ID_PIOC,285 .id = AT91SAM9260_ID_PIOC,
284 .offset = AT91_PIOC,286 .regbase = AT91SAM9260_BASE_PIOC,
285 .clock = &pioC_clk,
286 }287 }
287};288};
288 289
289static void at91sam9260_poweroff(void)
290{
291 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
292}
293
294
295/* --------------------------------------------------------------------290/* --------------------------------------------------------------------
296 * AT91SAM9260 processor initialization291 * AT91SAM9260 processor initialization
297 * -------------------------------------------------------------------- */292 * -------------------------------------------------------------------- */
@@ -325,10 +320,16 @@ static void __init at91sam9260_map_io(void) · 27 unmodified lines
325 }320 }
326}321}
327 322
323static void __init at91sam9260_ioremap_registers(void)
324{
325 at91_ioremap_shdwc(AT91SAM9260_BASE_SHDWC);
326 at91sam926x_ioremap_pit(AT91SAM9260_BASE_PIT);
327 at91sam9_ioremap_smc(0, AT91SAM9260_BASE_SMC);
328}
329
328static void __init at91sam9260_initialize(void)330static void __init at91sam9260_initialize(void)
329{331{
330 at91_arch_reset = at91sam9_alt_reset;332 arm_pm_restart = at91sam9_alt_restart;
331 pm_power_off = at91sam9260_poweroff;
332 at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)333 at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
333 | (1 << AT91SAM9260_ID_IRQ2);334 | (1 << AT91SAM9260_ID_IRQ2);
334 335
@@ -381,6 +382,7 @@ static unsigned int at91sam9260_default_irq_priority[NR_AIC_IRQS] __initdata = { · 46 unmodified lines
381struct at91_init_soc __initdata at91sam9260_soc = {382struct at91_init_soc __initdata at91sam9260_soc = {
382 .map_io = at91sam9260_map_io,383 .map_io = at91sam9260_map_io,
383 .default_irq_priority = at91sam9260_default_irq_priority,384 .default_irq_priority = at91sam9260_default_irq_priority,
385 .ioremap_registers = at91sam9260_ioremap_registers,
384 .register_clocks = at91sam9260_register_clocks,386 .register_clocks = at91sam9260_register_clocks,
385 .init = at91sam9260_initialize,387 .init = at91sam9260_initialize,
386};388};
arch/arm/mach-at91/at91sam9260_devices.c+32−23
@@ -115,7 +115,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) · 114 unmodified lines
115 if (!data)115 if (!data)
116 return;116 return;
117 117
118 if (data->vbus_pin) {118 if (gpio_is_valid(data->vbus_pin)) {
119 at91_set_gpio_input(data->vbus_pin, 0);119 at91_set_gpio_input(data->vbus_pin, 0);
120 at91_set_deglitch(data->vbus_pin, 1);120 at91_set_deglitch(data->vbus_pin, 1);
121 }121 }
@@ -136,7 +136,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {} · 14 unmodified lines
136 136
137#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)137#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
138static u64 eth_dmamask = DMA_BIT_MASK(32);138static u64 eth_dmamask = DMA_BIT_MASK(32);
139static struct at91_eth_data eth_data;139static struct macb_platform_data eth_data;
140 140
141static struct resource eth_resources[] = {141static struct resource eth_resources[] = {
142 [0] = {142 [0] = {
@@ -163,12 +163,12 @@ static struct platform_device at91sam9260_eth_device = { · 20 unmodified lines
163 .num_resources = ARRAY_SIZE(eth_resources),163 .num_resources = ARRAY_SIZE(eth_resources),
164};164};
165 165
166void __init at91_add_device_eth(struct at91_eth_data *data)166void __init at91_add_device_eth(struct macb_platform_data *data)
167{167{
168 if (!data)168 if (!data)
169 return;169 return;
170 170
171 if (data->phy_irq_pin) {171 if (gpio_is_valid(data->phy_irq_pin)) {
172 at91_set_gpio_input(data->phy_irq_pin, 0);172 at91_set_gpio_input(data->phy_irq_pin, 0);
173 at91_set_deglitch(data->phy_irq_pin, 1);173 at91_set_deglitch(data->phy_irq_pin, 1);
174 }174 }
@@ -200,7 +200,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data) · 25 unmodified lines
200 platform_device_register(&at91sam9260_eth_device);200 platform_device_register(&at91sam9260_eth_device);
201}201}
202#else202#else
203void __init at91_add_device_eth(struct at91_eth_data *data) {}203void __init at91_add_device_eth(struct macb_platform_data *data) {}
204#endif204#endif
205 205
206 206
@@ -243,13 +243,13 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) · 36 unmodified lines
243 return;243 return;
244 244
245 /* input/irq */245 /* input/irq */
246 if (data->det_pin) {246 if (gpio_is_valid(data->det_pin)) {
247 at91_set_gpio_input(data->det_pin, 1);247 at91_set_gpio_input(data->det_pin, 1);
248 at91_set_deglitch(data->det_pin, 1);248 at91_set_deglitch(data->det_pin, 1);
249 }249 }
250 if (data->wp_pin)250 if (gpio_is_valid(data->wp_pin))
251 at91_set_gpio_input(data->wp_pin, 1);251 at91_set_gpio_input(data->wp_pin, 1);
252 if (data->vcc_pin)252 if (gpio_is_valid(data->vcc_pin))
253 at91_set_gpio_output(data->vcc_pin, 0);253 at91_set_gpio_output(data->vcc_pin, 0);
254 254
255 /* CLK */255 /* CLK */
@@ -330,11 +330,11 @@ void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data) · 74 unmodified lines
330 for (i = 0; i < ATMCI_MAX_NR_SLOTS; i++) {330 for (i = 0; i < ATMCI_MAX_NR_SLOTS; i++) {
331 if (data->slot[i].bus_width) {331 if (data->slot[i].bus_width) {
332 /* input/irq */332 /* input/irq */
333 if (data->slot[i].detect_pin) {333 if (gpio_is_valid(data->slot[i].detect_pin)) {
334 at91_set_gpio_input(data->slot[i].detect_pin, 1);334 at91_set_gpio_input(data->slot[i].detect_pin, 1);
335 at91_set_deglitch(data->slot[i].detect_pin, 1);335 at91_set_deglitch(data->slot[i].detect_pin, 1);
336 }336 }
337 if (data->slot[i].wp_pin)337 if (gpio_is_valid(data->slot[i].wp_pin))
338 at91_set_gpio_input(data->slot[i].wp_pin, 1);338 at91_set_gpio_input(data->slot[i].wp_pin, 1);
339 339
340 switch (i) {340 switch (i) {
@@ -399,8 +399,8 @@ static struct resource nand_resources[] = { · 58 unmodified lines
399 .flags = IORESOURCE_MEM,399 .flags = IORESOURCE_MEM,
400 },400 },
401 [1] = {401 [1] = {
402 .start = AT91_BASE_SYS + AT91_ECC,402 .start = AT91SAM9260_BASE_ECC,
403 .end = AT91_BASE_SYS + AT91_ECC + SZ_512 - 1,403 .end = AT91SAM9260_BASE_ECC + SZ_512 - 1,
404 .flags = IORESOURCE_MEM,404 .flags = IORESOURCE_MEM,
405 }405 }
406};406};
@@ -426,15 +426,15 @@ void __init at91_add_device_nand(struct atmel_nand_data *data) · 19 unmodified lines
426 at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);426 at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
427 427
428 /* enable pin */428 /* enable pin */
429 if (data->enable_pin)429 if (gpio_is_valid(data->enable_pin))
430 at91_set_gpio_output(data->enable_pin, 1);430 at91_set_gpio_output(data->enable_pin, 1);
431 431
432 /* ready/busy pin */432 /* ready/busy pin */
433 if (data->rdy_pin)433 if (gpio_is_valid(data->rdy_pin))
434 at91_set_gpio_input(data->rdy_pin, 1);434 at91_set_gpio_input(data->rdy_pin, 1);
435 435
436 /* card detect pin */436 /* card detect pin */
437 if (data->det_pin)437 if (gpio_is_valid(data->det_pin))
438 at91_set_gpio_input(data->det_pin, 1);438 at91_set_gpio_input(data->det_pin, 1);
439 439
440 nand_data = *data;440 nand_data = *data;
@@ -714,8 +714,8 @@ static void __init at91_add_device_tc(void) { } · 273 unmodified lines
714 714
715static struct resource rtt_resources[] = {715static struct resource rtt_resources[] = {
716 {716 {
717 .start = AT91_BASE_SYS + AT91_RTT,717 .start = AT91SAM9260_BASE_RTT,
718 .end = AT91_BASE_SYS + AT91_RTT + SZ_16 - 1,718 .end = AT91SAM9260_BASE_RTT + SZ_16 - 1,
719 .flags = IORESOURCE_MEM,719 .flags = IORESOURCE_MEM,
720 }720 }
721};721};
@@ -738,10 +738,19 @@ static void __init at91_add_device_rtt(void) · 16 unmodified lines
738 * -------------------------------------------------------------------- */738 * -------------------------------------------------------------------- */
739 739
740#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)740#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
741static struct resource wdt_resources[] = {
742 {
743 .start = AT91SAM9260_BASE_WDT,
744 .end = AT91SAM9260_BASE_WDT + SZ_16 - 1,
745 .flags = IORESOURCE_MEM,
746 }
747};
748
741static struct platform_device at91sam9260_wdt_device = {749static struct platform_device at91sam9260_wdt_device = {
742 .name = "at91_wdt",750 .name = "at91_wdt",
743 .id = -1,751 .id = -1,
744 .num_resources = 0,752 .resource = wdt_resources,
753 .num_resources = ARRAY_SIZE(wdt_resources),
745};754};
746 755
747static void __init at91_add_device_watchdog(void)756static void __init at91_add_device_watchdog(void)
@@ -837,8 +846,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} · 89 unmodified lines
837#if defined(CONFIG_SERIAL_ATMEL)846#if defined(CONFIG_SERIAL_ATMEL)
838static struct resource dbgu_resources[] = {847static struct resource dbgu_resources[] = {
839 [0] = {848 [0] = {
840 .start = AT91_BASE_SYS + AT91_DBGU,849 .start = AT91SAM9260_BASE_DBGU,
841 .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1,850 .end = AT91SAM9260_BASE_DBGU + SZ_512 - 1,
842 .flags = IORESOURCE_MEM,851 .flags = IORESOURCE_MEM,
843 },852 },
844 [1] = {853 [1] = {
@@ -1281,17 +1290,17 @@ void __init at91_add_device_cf(struct at91_cf_data *data) · 436 unmodified lines
1281 1290
1282 at91_sys_write(AT91_MATRIX_EBICSA, csa);1291 at91_sys_write(AT91_MATRIX_EBICSA, csa);
1283 1292
1284 if (data->rst_pin) {1293 if (gpio_is_valid(data->rst_pin)) {
1285 at91_set_multi_drive(data->rst_pin, 0);1294 at91_set_multi_drive(data->rst_pin, 0);
1286 at91_set_gpio_output(data->rst_pin, 1);1295 at91_set_gpio_output(data->rst_pin, 1);
1287 }1296 }
1288 1297
1289 if (data->irq_pin) {1298 if (gpio_is_valid(data->irq_pin)) {
1290 at91_set_gpio_input(data->irq_pin, 0);1299 at91_set_gpio_input(data->irq_pin, 0);
1291 at91_set_deglitch(data->irq_pin, 1);1300 at91_set_deglitch(data->irq_pin, 1);
1292 }1301 }
1293 1302
1294 if (data->det_pin) {1303 if (gpio_is_valid(data->det_pin)) {
1295 at91_set_gpio_input(data->det_pin, 0);1304 at91_set_gpio_input(data->det_pin, 0);
1296 at91_set_deglitch(data->det_pin, 1);1305 at91_set_deglitch(data->det_pin, 1);
1297 }1306 }
arch/arm/mach-at91/at91sam9261.c+17−17
@@ -11,7 +11,6 @@ · 10 unmodified lines
11 */11 */
12 12
13#include <linux/module.h>13#include <linux/module.h>
14#include <linux/pm.h>
15 14
16#include <asm/irq.h>15#include <asm/irq.h>
17#include <asm/mach/arch.h>16#include <asm/mach/arch.h>
@@ -20,11 +19,11 @@ · 2 unmodified lines
20#include <mach/at91sam9261.h>19#include <mach/at91sam9261.h>
21#include <mach/at91_pmc.h>20#include <mach/at91_pmc.h>
22#include <mach/at91_rstc.h>21#include <mach/at91_rstc.h>
23#include <mach/at91_shdwc.h>
24 22
25#include "soc.h"23#include "soc.h"
26#include "generic.h"24#include "generic.h"
27#include "clock.h"25#include "clock.h"
26#include "sam9_smc.h"
28 27
29/* --------------------------------------------------------------------28/* --------------------------------------------------------------------
30 * Clocks29 * Clocks
@@ -176,6 +175,9 @@ static struct clk_lookup periph_clocks_lookups[] = { · 145 unmodified lines
176 CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),175 CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),
177 CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk),176 CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk),
178 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &hck0),177 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &hck0),
178 CLKDEV_CON_ID("pioA", &pioA_clk),
179 CLKDEV_CON_ID("pioB", &pioB_clk),
180 CLKDEV_CON_ID("pioC", &pioC_clk),
179};181};
180 182
181static struct clk_lookup usart_clocks_lookups[] = {183static struct clk_lookup usart_clocks_lookups[] = {
@@ -251,28 +253,19 @@ void __init at91sam9261_set_console_clock(int id) · 69 unmodified lines
251 * GPIO253 * GPIO
252 * -------------------------------------------------------------------- */254 * -------------------------------------------------------------------- */
253 255
254static struct at91_gpio_bank at91sam9261_gpio[] = {256static struct at91_gpio_bank at91sam9261_gpio[] __initdata = {
255 {257 {
256 .id = AT91SAM9261_ID_PIOA,258 .id = AT91SAM9261_ID_PIOA,
257 .offset = AT91_PIOA,259 .regbase = AT91SAM9261_BASE_PIOA,
258 .clock = &pioA_clk,
259 }, {260 }, {
260 .id = AT91SAM9261_ID_PIOB,261 .id = AT91SAM9261_ID_PIOB,
261 .offset = AT91_PIOB,262 .regbase = AT91SAM9261_BASE_PIOB,
262 .clock = &pioB_clk,
263 }, {263 }, {
264 .id = AT91SAM9261_ID_PIOC,264 .id = AT91SAM9261_ID_PIOC,
265 .offset = AT91_PIOC,265 .regbase = AT91SAM9261_BASE_PIOC,
266 .clock = &pioC_clk,
267 }266 }
268};267};
269 268
270static void at91sam9261_poweroff(void)
271{
272 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
273}
274
275
276/* --------------------------------------------------------------------269/* --------------------------------------------------------------------
277 * AT91SAM9261 processor initialization270 * AT91SAM9261 processor initialization
278 * -------------------------------------------------------------------- */271 * -------------------------------------------------------------------- */
@@ -285,10 +278,16 @@ static void __init at91sam9261_map_io(void) · 6 unmodified lines
285 at91_init_sram(0, AT91SAM9261_SRAM_BASE, AT91SAM9261_SRAM_SIZE);278 at91_init_sram(0, AT91SAM9261_SRAM_BASE, AT91SAM9261_SRAM_SIZE);
286}279}
287 280
281static void __init at91sam9261_ioremap_registers(void)
282{
283 at91_ioremap_shdwc(AT91SAM9261_BASE_SHDWC);
284 at91sam926x_ioremap_pit(AT91SAM9261_BASE_PIT);
285 at91sam9_ioremap_smc(0, AT91SAM9261_BASE_SMC);
286}
287
288static void __init at91sam9261_initialize(void)288static void __init at91sam9261_initialize(void)
289{289{
290 at91_arch_reset = at91sam9_alt_reset;290 arm_pm_restart = at91sam9_alt_restart;
291 pm_power_off = at91sam9261_poweroff;
292 at91_extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1)291 at91_extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1)
293 | (1 << AT91SAM9261_ID_IRQ2);292 | (1 << AT91SAM9261_ID_IRQ2);
294 293
@@ -341,6 +340,7 @@ static unsigned int at91sam9261_default_irq_priority[NR_AIC_IRQS] __initdata = { · 46 unmodified lines
341struct at91_init_soc __initdata at91sam9261_soc = {340struct at91_init_soc __initdata at91sam9261_soc = {
342 .map_io = at91sam9261_map_io,341 .map_io = at91sam9261_map_io,
343 .default_irq_priority = at91sam9261_default_irq_priority,342 .default_irq_priority = at91sam9261_default_irq_priority,
343 .ioremap_registers = at91sam9261_ioremap_registers,
344 .register_clocks = at91sam9261_register_clocks,344 .register_clocks = at91sam9261_register_clocks,
345 .init = at91sam9261_initialize,345 .init = at91sam9261_initialize,
346};346};
arch/arm/mach-at91/at91sam9261_devices.c+21−12
@@ -118,7 +118,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) · 117 unmodified lines
118 if (!data)118 if (!data)
119 return;119 return;
120 120
121 if (data->vbus_pin) {121 if (gpio_is_valid(data->vbus_pin)) {
122 at91_set_gpio_input(data->vbus_pin, 0);122 at91_set_gpio_input(data->vbus_pin, 0);
123 at91_set_deglitch(data->vbus_pin, 1);123 at91_set_deglitch(data->vbus_pin, 1);
124 }124 }
@@ -171,13 +171,13 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) · 46 unmodified lines
171 return;171 return;
172 172
173 /* input/irq */173 /* input/irq */
174 if (data->det_pin) {174 if (gpio_is_valid(data->det_pin)) {
175 at91_set_gpio_input(data->det_pin, 1);175 at91_set_gpio_input(data->det_pin, 1);
176 at91_set_deglitch(data->det_pin, 1);176 at91_set_deglitch(data->det_pin, 1);
177 }177 }
178 if (data->wp_pin)178 if (gpio_is_valid(data->wp_pin))
179 at91_set_gpio_input(data->wp_pin, 1);179 at91_set_gpio_input(data->wp_pin, 1);
180 if (data->vcc_pin)180 if (gpio_is_valid(data->vcc_pin))
181 at91_set_gpio_output(data->vcc_pin, 0);181 at91_set_gpio_output(data->vcc_pin, 0);
182 182
183 /* CLK */183 /* CLK */
@@ -240,15 +240,15 @@ void __init at91_add_device_nand(struct atmel_nand_data *data) · 56 unmodified lines
240 at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);240 at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
241 241
242 /* enable pin */242 /* enable pin */
243 if (data->enable_pin)243 if (gpio_is_valid(data->enable_pin))
244 at91_set_gpio_output(data->enable_pin, 1);244 at91_set_gpio_output(data->enable_pin, 1);
245 245
246 /* ready/busy pin */246 /* ready/busy pin */
247 if (data->rdy_pin)247 if (gpio_is_valid(data->rdy_pin))
248 at91_set_gpio_input(data->rdy_pin, 1);248 at91_set_gpio_input(data->rdy_pin, 1);
249 249
250 /* card detect pin */250 /* card detect pin */
251 if (data->det_pin)251 if (gpio_is_valid(data->det_pin))
252 at91_set_gpio_input(data->det_pin, 1);252 at91_set_gpio_input(data->det_pin, 1);
253 253
254 at91_set_A_periph(AT91_PIN_PC0, 0); /* NANDOE */254 at91_set_A_periph(AT91_PIN_PC0, 0); /* NANDOE */
@@ -600,8 +600,8 @@ static void __init at91_add_device_tc(void) { } · 345 unmodified lines
600 600
601static struct resource rtt_resources[] = {601static struct resource rtt_resources[] = {
602 {602 {
603 .start = AT91_BASE_SYS + AT91_RTT,603 .start = AT91SAM9261_BASE_RTT,
604 .end = AT91_BASE_SYS + AT91_RTT + SZ_16 - 1,604 .end = AT91SAM9261_BASE_RTT + SZ_16 - 1,
605 .flags = IORESOURCE_MEM,605 .flags = IORESOURCE_MEM,
606 }606 }
607};607};
@@ -624,10 +624,19 @@ static void __init at91_add_device_rtt(void) · 16 unmodified lines
624 * -------------------------------------------------------------------- */624 * -------------------------------------------------------------------- */
625 625
626#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)626#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
627static struct resource wdt_resources[] = {
628 {
629 .start = AT91SAM9261_BASE_WDT,
630 .end = AT91SAM9261_BASE_WDT + SZ_16 - 1,
631 .flags = IORESOURCE_MEM,
632 }
633};
634
627static struct platform_device at91sam9261_wdt_device = {635static struct platform_device at91sam9261_wdt_device = {
628 .name = "at91_wdt",636 .name = "at91_wdt",
629 .id = -1,637 .id = -1,
630 .num_resources = 0,638 .resource = wdt_resources,
639 .num_resources = ARRAY_SIZE(wdt_resources),
631};640};
632 641
633static void __init at91_add_device_watchdog(void)642static void __init at91_add_device_watchdog(void)
@@ -816,8 +825,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} · 182 unmodified lines
816#if defined(CONFIG_SERIAL_ATMEL)825#if defined(CONFIG_SERIAL_ATMEL)
817static struct resource dbgu_resources[] = {826static struct resource dbgu_resources[] = {
818 [0] = {827 [0] = {
819 .start = AT91_BASE_SYS + AT91_DBGU,828 .start = AT91SAM9261_BASE_DBGU,
820 .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1,829 .end = AT91SAM9261_BASE_DBGU + SZ_512 - 1,
821 .flags = IORESOURCE_MEM,830 .flags = IORESOURCE_MEM,
822 },831 },
823 [1] = {832 [1] = {
arch/arm/mach-at91/at91sam9263.c+25−22
@@ -11,7 +11,6 @@ · 10 unmodified lines
11 */11 */
12 12
13#include <linux/module.h>13#include <linux/module.h>
14#include <linux/pm.h>
15 14
16#include <asm/irq.h>15#include <asm/irq.h>
17#include <asm/mach/arch.h>16#include <asm/mach/arch.h>
@@ -19,11 +18,11 @@ · 1 unmodified line
19#include <mach/at91sam9263.h>18#include <mach/at91sam9263.h>
20#include <mach/at91_pmc.h>19#include <mach/at91_pmc.h>
21#include <mach/at91_rstc.h>20#include <mach/at91_rstc.h>
22#include <mach/at91_shdwc.h>
23 21
24#include "soc.h"22#include "soc.h"
25#include "generic.h"23#include "generic.h"
26#include "clock.h"24#include "clock.h"
25#include "sam9_smc.h"
27 26
28/* --------------------------------------------------------------------27/* --------------------------------------------------------------------
29 * Clocks28 * Clocks
@@ -118,7 +117,7 @@ static struct clk pwm_clk = { · 88 unmodified lines
118 .type = CLK_TYPE_PERIPHERAL,117 .type = CLK_TYPE_PERIPHERAL,
119};118};
120static struct clk macb_clk = {119static struct clk macb_clk = {
121 .name = "macb_clk",120 .name = "pclk",
122 .pmc_mask = 1 << AT91SAM9263_ID_EMAC,121 .pmc_mask = 1 << AT91SAM9263_ID_EMAC,
123 .type = CLK_TYPE_PERIPHERAL,122 .type = CLK_TYPE_PERIPHERAL,
124};123};
@@ -182,6 +181,8 @@ static struct clk *periph_clocks[] __initdata = { · 57 unmodified lines
182};181};
183 182
184static struct clk_lookup periph_clocks_lookups[] = {183static struct clk_lookup periph_clocks_lookups[] = {
184 /* One additional fake clock for macb_hclk */
185 CLKDEV_CON_ID("hclk", &macb_clk),
185 CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk),186 CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk),
186 CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),187 CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),
187 CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.0", &mmc0_clk),188 CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.0", &mmc0_clk),
@@ -191,6 +192,11 @@ static struct clk_lookup periph_clocks_lookups[] = { · 3 unmodified lines
191 CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk),192 CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk),
192 /* fake hclk clock */193 /* fake hclk clock */
193 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),194 CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),
195 CLKDEV_CON_ID("pioA", &pioA_clk),
196 CLKDEV_CON_ID("pioB", &pioB_clk),
197 CLKDEV_CON_ID("pioC", &pioCDE_clk),
198 CLKDEV_CON_ID("pioD", &pioCDE_clk),
199 CLKDEV_CON_ID("pioE", &pioCDE_clk),
194};200};
195 201
196static struct clk_lookup usart_clocks_lookups[] = {202static struct clk_lookup usart_clocks_lookups[] = {
@@ -263,36 +269,25 @@ void __init at91sam9263_set_console_clock(int id) · 66 unmodified lines
263 * GPIO269 * GPIO
264 * -------------------------------------------------------------------- */270 * -------------------------------------------------------------------- */
265 271
266static struct at91_gpio_bank at91sam9263_gpio[] = {272static struct at91_gpio_bank at91sam9263_gpio[] __initdata = {
267 {273 {
268 .id = AT91SAM9263_ID_PIOA,274 .id = AT91SAM9263_ID_PIOA,
269 .offset = AT91_PIOA,275 .regbase = AT91SAM9263_BASE_PIOA,
270 .clock = &pioA_clk,
271 }, {276 }, {
272 .id = AT91SAM9263_ID_PIOB,277 .id = AT91SAM9263_ID_PIOB,
273 .offset = AT91_PIOB,278 .regbase = AT91SAM9263_BASE_PIOB,
274 .clock = &pioB_clk,
275 }, {279 }, {
276 .id = AT91SAM9263_ID_PIOCDE,280 .id = AT91SAM9263_ID_PIOCDE,
277 .offset = AT91_PIOC,281 .regbase = AT91SAM9263_BASE_PIOC,
278 .clock = &pioCDE_clk,
279 }, {282 }, {
280 .id = AT91SAM9263_ID_PIOCDE,283 .id = AT91SAM9263_ID_PIOCDE,
281 .offset = AT91_PIOD,284 .regbase = AT91SAM9263_BASE_PIOD,
282 .clock = &pioCDE_clk,
283 }, {285 }, {
284 .id = AT91SAM9263_ID_PIOCDE,286 .id = AT91SAM9263_ID_PIOCDE,
285 .offset = AT91_PIOE,287 .regbase = AT91SAM9263_BASE_PIOE,
286 .clock = &pioCDE_clk,
287 }288 }
288};289};
289 290
290static void at91sam9263_poweroff(void)
291{
292 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
293}
294
295
296/* --------------------------------------------------------------------291/* --------------------------------------------------------------------
297 * AT91SAM9263 processor initialization292 * AT91SAM9263 processor initialization
298 * -------------------------------------------------------------------- */293 * -------------------------------------------------------------------- */
@@ -303,10 +298,17 @@ static void __init at91sam9263_map_io(void) · 4 unmodified lines
303 at91_init_sram(1, AT91SAM9263_SRAM1_BASE, AT91SAM9263_SRAM1_SIZE);298 at91_init_sram(1, AT91SAM9263_SRAM1_BASE, AT91SAM9263_SRAM1_SIZE);
304}299}
305 300
301static void __init at91sam9263_ioremap_registers(void)
302{
303 at91_ioremap_shdwc(AT91SAM9263_BASE_SHDWC);
304 at91sam926x_ioremap_pit(AT91SAM9263_BASE_PIT);
305 at91sam9_ioremap_smc(0, AT91SAM9263_BASE_SMC0);
306 at91sam9_ioremap_smc(1, AT91SAM9263_BASE_SMC1);
307}
308
306static void __init at91sam9263_initialize(void)309static void __init at91sam9263_initialize(void)
307{310{
308 at91_arch_reset = at91sam9_alt_reset;311 arm_pm_restart = at91sam9_alt_restart;
309 pm_power_off = at91sam9263_poweroff;
310 at91_extern_irq = (1 << AT91SAM9263_ID_IRQ0) | (1 << AT91SAM9263_ID_IRQ1);312 at91_extern_irq = (1 << AT91SAM9263_ID_IRQ0) | (1 << AT91SAM9263_ID_IRQ1);
311 313
312 /* Register GPIO subsystem */314 /* Register GPIO subsystem */
@@ -358,6 +360,7 @@ static unsigned int at91sam9263_default_irq_priority[NR_AIC_IRQS] __initdata = { · 45 unmodified lines
358struct at91_init_soc __initdata at91sam9263_soc = {360struct at91_init_soc __initdata at91sam9263_soc = {
359 .map_io = at91sam9263_map_io,361 .map_io = at91sam9263_map_io,
360 .default_irq_priority = at91sam9263_default_irq_priority,362 .default_irq_priority = at91sam9263_default_irq_priority,
363 .ioremap_registers = at91sam9263_ioremap_registers,
361 .register_clocks = at91sam9263_register_clocks,364 .register_clocks = at91sam9263_register_clocks,
362 .init = at91sam9263_initialize,365 .init = at91sam9263_initialize,
363};366};
arch/arm/mach-at91/at91sam9263_devices.c+34−25
@@ -70,7 +70,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) · 69 unmodified lines
70 70
71 /* Enable VBus control for UHP ports */71 /* Enable VBus control for UHP ports */
72 for (i = 0; i < data->ports; i++) {72 for (i = 0; i < data->ports; i++) {
73 if (data->vbus_pin[i])73 if (gpio_is_valid(data->vbus_pin[i]))
74 at91_set_gpio_output(data->vbus_pin[i], 0);74 at91_set_gpio_output(data->vbus_pin[i], 0);
75 }75 }
76 76
@@ -123,7 +123,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) · 46 unmodified lines
123 if (!data)123 if (!data)
124 return;124 return;
125 125
126 if (data->vbus_pin) {126 if (gpio_is_valid(data->vbus_pin)) {
127 at91_set_gpio_input(data->vbus_pin, 0);127 at91_set_gpio_input(data->vbus_pin, 0);
128 at91_set_deglitch(data->vbus_pin, 1);128 at91_set_deglitch(data->vbus_pin, 1);
129 }129 }
@@ -144,7 +144,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {} · 14 unmodified lines
144 144
145#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)145#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
146static u64 eth_dmamask = DMA_BIT_MASK(32);146static u64 eth_dmamask = DMA_BIT_MASK(32);
147static struct at91_eth_data eth_data;147static struct macb_platform_data eth_data;
148 148
149static struct resource eth_resources[] = {149static struct resource eth_resources[] = {
150 [0] = {150 [0] = {
@@ -171,12 +171,12 @@ static struct platform_device at91sam9263_eth_device = { · 20 unmodified lines
171 .num_resources = ARRAY_SIZE(eth_resources),171 .num_resources = ARRAY_SIZE(eth_resources),
172};172};
173 173
174void __init at91_add_device_eth(struct at91_eth_data *data)174void __init at91_add_device_eth(struct macb_platform_data *data)
175{175{
176 if (!data)176 if (!data)
177 return;177 return;
178 178
179 if (data->phy_irq_pin) {179 if (gpio_is_valid(data->phy_irq_pin)) {
180 at91_set_gpio_input(data->phy_irq_pin, 0);180 at91_set_gpio_input(data->phy_irq_pin, 0);
181 at91_set_deglitch(data->phy_irq_pin, 1);181 at91_set_deglitch(data->phy_irq_pin, 1);
182 }182 }
@@ -208,7 +208,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data) · 25 unmodified lines
208 platform_device_register(&at91sam9263_eth_device);208 platform_device_register(&at91sam9263_eth_device);
209}209}
210#else210#else
211void __init at91_add_device_eth(struct at91_eth_data *data) {}211void __init at91_add_device_eth(struct macb_platform_data *data) {}
212#endif212#endif
213 213
214 214
@@ -276,13 +276,13 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) · 61 unmodified lines
276 return;276 return;
277 277
278 /* input/irq */278 /* input/irq */
279 if (data->det_pin) {279 if (gpio_is_valid(data->det_pin)) {
280 at91_set_gpio_input(data->det_pin, 1);280 at91_set_gpio_input(data->det_pin, 1);
281 at91_set_deglitch(data->det_pin, 1);281 at91_set_deglitch(data->det_pin, 1);
282 }282 }
283 if (data->wp_pin)283 if (gpio_is_valid(data->wp_pin))
284 at91_set_gpio_input(data->wp_pin, 1);284 at91_set_gpio_input(data->wp_pin, 1);
285 if (data->vcc_pin)285 if (gpio_is_valid(data->vcc_pin))
286 at91_set_gpio_output(data->vcc_pin, 0);286 at91_set_gpio_output(data->vcc_pin, 0);
287 287
288 if (mmc_id == 0) { /* MCI0 */288 if (mmc_id == 0) { /* MCI0 */
@@ -430,17 +430,17 @@ void __init at91_add_device_cf(struct at91_cf_data *data) · 141 unmodified lines
430 }430 }
431 at91_sys_write(AT91_MATRIX_EBI0CSA, ebi0_csa);431 at91_sys_write(AT91_MATRIX_EBI0CSA, ebi0_csa);
432 432
433 if (data->det_pin) {433 if (gpio_is_valid(data->det_pin)) {
434 at91_set_gpio_input(data->det_pin, 1);434 at91_set_gpio_input(data->det_pin, 1);
435 at91_set_deglitch(data->det_pin, 1);435 at91_set_deglitch(data->det_pin, 1);
436 }436 }
437 437
438 if (data->irq_pin) {438 if (gpio_is_valid(data->irq_pin)) {
439 at91_set_gpio_input(data->irq_pin, 1);439 at91_set_gpio_input(data->irq_pin, 1);
440 at91_set_deglitch(data->irq_pin, 1);440 at91_set_deglitch(data->irq_pin, 1);
441 }441 }
442 442
443 if (data->vcc_pin)443 if (gpio_is_valid(data->vcc_pin))
444 /* initially off */444 /* initially off */
445 at91_set_gpio_output(data->vcc_pin, 0);445 at91_set_gpio_output(data->vcc_pin, 0);
446 446
@@ -473,8 +473,8 @@ static struct resource nand_resources[] = { · 26 unmodified lines
473 .flags = IORESOURCE_MEM,473 .flags = IORESOURCE_MEM,
474 },474 },
475 [1] = {475 [1] = {
476 .start = AT91_BASE_SYS + AT91_ECC0,476 .start = AT91SAM9263_BASE_ECC0,
477 .end = AT91_BASE_SYS + AT91_ECC0 + SZ_512 - 1,477 .end = AT91SAM9263_BASE_ECC0 + SZ_512 - 1,
478 .flags = IORESOURCE_MEM,478 .flags = IORESOURCE_MEM,
479 }479 }
480};480};
@@ -500,15 +500,15 @@ void __init at91_add_device_nand(struct atmel_nand_data *data) · 19 unmodified lines
500 at91_sys_write(AT91_MATRIX_EBI0CSA, csa | AT91_MATRIX_EBI0_CS3A_SMC_SMARTMEDIA);500 at91_sys_write(AT91_MATRIX_EBI0CSA, csa | AT91_MATRIX_EBI0_CS3A_SMC_SMARTMEDIA);
501 501
502 /* enable pin */502 /* enable pin */
503 if (data->enable_pin)503 if (gpio_is_valid(data->enable_pin))
504 at91_set_gpio_output(data->enable_pin, 1);504 at91_set_gpio_output(data->enable_pin, 1);
505 505
506 /* ready/busy pin */506 /* ready/busy pin */
507 if (data->rdy_pin)507 if (gpio_is_valid(data->rdy_pin))
508 at91_set_gpio_input(data->rdy_pin, 1);508 at91_set_gpio_input(data->rdy_pin, 1);
509 509
510 /* card detect pin */510 /* card detect pin */
511 if (data->det_pin)511 if (gpio_is_valid(data->det_pin))
512 at91_set_gpio_input(data->det_pin, 1);512 at91_set_gpio_input(data->det_pin, 1);
513 513
514 nand_data = *data;514 nand_data = *data;
@@ -749,7 +749,7 @@ void __init at91_add_device_ac97(struct ac97c_platform_data *data) · 234 unmodified lines
749 at91_set_A_periph(AT91_PIN_PB3, 0); /* AC97RX */749 at91_set_A_periph(AT91_PIN_PB3, 0); /* AC97RX */
750 750
751 /* reset */751 /* reset */
752 if (data->reset_pin)752 if (gpio_is_valid(data->reset_pin))
753 at91_set_gpio_output(data->reset_pin, 0);753 at91_set_gpio_output(data->reset_pin, 0);
754 754
755 ac97_data = *data;755 ac97_data = *data;
@@ -956,8 +956,8 @@ static void __init at91_add_device_tc(void) { } · 200 unmodified lines
956 956
957static struct resource rtt0_resources[] = {957static struct resource rtt0_resources[] = {
958 {958 {
959 .start = AT91_BASE_SYS + AT91_RTT0,959 .start = AT91SAM9263_BASE_RTT0,
960 .end = AT91_BASE_SYS + AT91_RTT0 + SZ_16 - 1,960 .end = AT91SAM9263_BASE_RTT0 + SZ_16 - 1,
961 .flags = IORESOURCE_MEM,961 .flags = IORESOURCE_MEM,
962 }962 }
963};963};
@@ -971,8 +971,8 @@ static struct platform_device at91sam9263_rtt0_device = { · 7 unmodified lines
971 971
972static struct resource rtt1_resources[] = {972static struct resource rtt1_resources[] = {
973 {973 {
974 .start = AT91_BASE_SYS + AT91_RTT1,974 .start = AT91SAM9263_BASE_RTT1,
975 .end = AT91_BASE_SYS + AT91_RTT1 + SZ_16 - 1,975 .end = AT91SAM9263_BASE_RTT1 + SZ_16 - 1,
976 .flags = IORESOURCE_MEM,976 .flags = IORESOURCE_MEM,
977 }977 }
978};978};
@@ -996,10 +996,19 @@ static void __init at91_add_device_rtt(void) · 17 unmodified lines
996 * -------------------------------------------------------------------- */996 * -------------------------------------------------------------------- */
997 997
998#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)998#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
999static struct resource wdt_resources[] = {
1000 {
1001 .start = AT91SAM9263_BASE_WDT,
1002 .end = AT91SAM9263_BASE_WDT + SZ_16 - 1,
1003 .flags = IORESOURCE_MEM,
1004 }
1005};
1006
999static struct platform_device at91sam9263_wdt_device = {1007static struct platform_device at91sam9263_wdt_device = {
1000 .name = "at91_wdt",1008 .name = "at91_wdt",
1001 .id = -1,1009 .id = -1,
1002 .num_resources = 0,1010 .resource = wdt_resources,
1011 .num_resources = ARRAY_SIZE(wdt_resources),
1003};1012};
1004 1013
1005static void __init at91_add_device_watchdog(void)1014static void __init at91_add_device_watchdog(void)
@@ -1196,8 +1205,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} · 190 unmodified lines
1196 1205
1197static struct resource dbgu_resources[] = {1206static struct resource dbgu_resources[] = {
1198 [0] = {1207 [0] = {
1199 .start = AT91_BASE_SYS + AT91_DBGU,1208 .start = AT91SAM9263_BASE_DBGU,
1200 .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1,1209 .end = AT91SAM9263_BASE_DBGU + SZ_512 - 1,
1201 .flags = IORESOURCE_MEM,1210 .flags = IORESOURCE_MEM,
1202 },1211 },
1203 [1] = {1212 [1] = {
arch/arm/mach-at91/at91sam926x_time.c+28−10
@@ -25,7 +25,17 @@ · 24 unmodified lines
25 25
26static u32 pit_cycle; /* write-once */26static u32 pit_cycle; /* write-once */
27static u32 pit_cnt; /* access only w/system irq blocked */27static u32 pit_cnt; /* access only w/system irq blocked */
28static void __iomem *pit_base_addr __read_mostly;
28 29
30static inline unsigned int pit_read(unsigned int reg_offset)
31{
32 return __raw_readl(pit_base_addr + reg_offset);
33}
34
35static inline void pit_write(unsigned int reg_offset, unsigned long value)
36{
37 __raw_writel(value, pit_base_addr + reg_offset);
38}
29 39
30/*40/*
31 * Clocksource: just a monotonic counter of MCK/16 cycles.41 * Clocksource: just a monotonic counter of MCK/16 cycles.
@@ -39,7 +49,7 @@ static cycle_t read_pit_clk(struct clocksource *cs) · 7 unmodified lines
39 49
40 raw_local_irq_save(flags);50 raw_local_irq_save(flags);
41 elapsed = pit_cnt;51 elapsed = pit_cnt;
42 t = at91_sys_read(AT91_PIT_PIIR);52 t = pit_read(AT91_PIT_PIIR);
43 raw_local_irq_restore(flags);53 raw_local_irq_restore(flags);
44 54
45 elapsed += PIT_PICNT(t) * pit_cycle;55 elapsed += PIT_PICNT(t) * pit_cycle;
@@ -64,8 +74,8 @@ pit_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *dev) · 18 unmodified lines
64 switch (mode) {74 switch (mode) {
65 case CLOCK_EVT_MODE_PERIODIC:75 case CLOCK_EVT_MODE_PERIODIC:
66 /* update clocksource counter */76 /* update clocksource counter */

65 more lines aren’t shown here.

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

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

arch/arm/mach-at91/at91sam9g45.c+25−23

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

arch/arm/mach-at91/at91sam9g45_devices.c+46−23

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

arch/arm/mach-at91/at91sam9rl.c+19−19

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

arch/arm/mach-at91/at91sam9rl_devices.c+26−17

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

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

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

arch/arm/mach-at91/board-afeb-9260v1.c+8−2

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

arch/arm/mach-at91/board-cam60.c+5−3

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

arch/arm/mach-at91/board-cap9adk.c+12−9

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

arch/arm/mach-at91/board-carmeva.c+6−3

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

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

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

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

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

arch/arm/mach-at91/board-csb337.c+5−2

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

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

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

arch/arm/mach-at91/board-dt.c+2−1

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

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

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

arch/arm/mach-at91/board-ecbat91.c+6−1

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

arch/arm/mach-at91/board-eco920.c+6−1

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

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

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

arch/arm/mach-at91/board-foxg20.c+7−2

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

arch/arm/mach-at91/board-gsia18s.c+5−2

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

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

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

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

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

arch/arm/mach-at91/board-neocore926.c+6−3

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

arch/arm/mach-at91/board-pcontrol-g20.c+5−3

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

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

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

arch/arm/mach-at91/board-qil-a9260.c+10−8

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

arch/arm/mach-at91/board-rm9200dk.c+9−4

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

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

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

arch/arm/mach-at91/board-rsi-ews.c+3−1

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

arch/arm/mach-at91/board-sam9-l9260.c+7−5

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

arch/arm/mach-at91/board-sam9260ek.c+9−7

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

arch/arm/mach-at91/board-sam9261ek.c+9−4

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

arch/arm/mach-at91/board-sam9263ek.c+7−5

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

arch/arm/mach-at91/board-sam9g20ek.c+10−3

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

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

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

arch/arm/mach-at91/board-sam9rlek.c+5−4

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

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

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

arch/arm/mach-at91/board-stamp9g20.c+12−4

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

arch/arm/mach-at91/board-usb-a926x.c+8−6

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

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

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

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

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

arch/arm/mach-at91/gpio.c+49−36

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-at91/include/mach/at91cap9.h+13−14

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

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

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

arch/arm/mach-at91/include/mach/at91sam9260.h+11−12

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

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

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

arch/arm/mach-at91/include/mach/at91sam9263.h+16−17

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

arch/arm/mach-at91/include/mach/at91sam9_smc.h+6−11

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

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

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

arch/arm/mach-at91/include/mach/at91sam9rl.h+14−15

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

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

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

arch/arm/mach-at91/include/mach/board.h+16−26

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

arch/arm/mach-at91/include/mach/debug-macro.S+8−2

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

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

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

arch/arm/mach-at91/include/mach/gpio.h+167−169

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

arch/arm/mach-at91/include/mach/hardware.h+12−0

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

arch/arm/mach-at91/include/mach/io.h+0−8

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

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

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

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

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

arch/arm/mach-at91/include/mach/timex.h+5−60

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

arch/arm/mach-at91/include/mach/uncompress.h+4−2

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

arch/arm/mach-at91/irq.c+22−16

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

arch/arm/mach-at91/pm.c+7−4

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

arch/arm/mach-at91/sam9_smc.c+41−21

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

arch/arm/mach-at91/sam9_smc.h+2−1

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

arch/arm/mach-at91/setup.c+21−23

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

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

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

arch/arm/mach-bcmring/arch.c+24−1

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

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

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

arch/arm/mach-bcmring/dma.c+1−1

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

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

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

arch/arm/mach-bcmring/include/mach/vmalloc.h+0−25

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-clps711x/common.crenamed from arch/arm/mach-clps711x/irq.c+92−8

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

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

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

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

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

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

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

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

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

arch/arm/mach-clps711x/include/mach/vmalloc.h+0−20

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

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

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

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

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

arch/arm/mach-clps711x/time.c+0−84

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

arch/arm/mach-cns3xxx/cns3420vb.c+3−0

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

arch/arm/mach-cns3xxx/core.h+1−0

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

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

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

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

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

arch/arm/mach-cns3xxx/include/mach/vmalloc.h+0−11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-davinci/board-dm646x-evm.c+2−0

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

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

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

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

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

arch/arm/mach-davinci/board-omapl138-hawk.c+1−0

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

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

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

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

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

arch/arm/mach-davinci/clock.c+3−10

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

arch/arm/mach-davinci/clock.h+5−5

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

arch/arm/mach-davinci/common.c+0−3

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

arch/arm/mach-davinci/da830.c+0−1

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

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

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

arch/arm/mach-davinci/devices-da8xx.c+5−0

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

arch/arm/mach-davinci/devices.c+5−0

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

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

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

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

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

arch/arm/mach-davinci/dm644x.c+2−3

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

arch/arm/mach-davinci/dm646x.c+0−1

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

arch/arm/mach-davinci/include/mach/common.h+1−2

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-davinci/include/mach/vmalloc.h+0−14

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

arch/arm/mach-davinci/io.c+0−48

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

arch/arm/mach-davinci/tnetv107x.c+5−2

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

arch/arm/mach-dove/addr-map.c+48−73

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

arch/arm/mach-dove/cm-a510.c+1−0

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

arch/arm/mach-dove/common.c+22−10

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

arch/arm/mach-dove/common.h+1−1

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

arch/arm/mach-dove/dove-db-setup.c+1−0

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

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

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

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

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

arch/arm/mach-dove/include/mach/vmalloc.h+0−5

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

arch/arm/mach-dove/pcie.c+6−7

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

arch/arm/mach-ebsa110/core.c+7−1

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

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

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

arch/arm/mach-ebsa110/include/mach/vmalloc.h+0−10

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

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

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

arch/arm/mach-ep93xx/core.c+12−0

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

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

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

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

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

arch/arm/mach-ep93xx/include/mach/dma.h+3−3

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

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

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

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

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

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

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

arch/arm/mach-ep93xx/include/mach/vmalloc.h+0−5

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

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

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-exynos/Makefile+11−4

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

arch/arm/mach-exynos/clock-exynos4210.c+2−1

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

arch/arm/mach-exynos/clock-exynos4212.c+2−1

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

arch/arm/mach-exynos/clock.c+188−117

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

arch/arm/mach-exynos/common.c+699−0

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

arch/arm/mach-exynos/common.h+41−0

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

arch/arm/mach-exynos/cpu.c+0−293

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

arch/arm/mach-exynos/dev-ohci.c+52−0

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

arch/arm/mach-exynos/dma.c+68−161

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

arch/arm/mach-exynos/headsmp.S+2−0

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

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

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

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

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

arch/arm/mach-exynos/include/mach/irqs.h+8−3

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

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

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

arch/arm/mach-exynos/include/mach/ohci.h+21−0

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

arch/arm/mach-exynos/include/mach/spi-clocks.h+16−0

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

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

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

arch/arm/mach-exynos/include/mach/vmalloc.h+0−22

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

arch/arm/mach-exynos/init.c+0−42

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

arch/arm/mach-exynos/irq-combiner.c+0−124

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

arch/arm/mach-exynos/irq-eint.c+0−237

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

arch/arm/mach-exynos/mach-armlex4210.c+6−2

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

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

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

arch/arm/mach-exynos/mach-nuri.c+8−9

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

arch/arm/mach-exynos/mach-origen.c+21−3

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

arch/arm/mach-exynos/mach-smdk4x12.c+8−2

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

arch/arm/mach-exynos/mach-smdkv310.c+22−5

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

arch/arm/mach-exynos/mach-universal_c210.c+9−9

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

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

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

arch/arm/mach-exynos/pm.c+8−26

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

arch/arm/mach-exynos/setup-sdhci.c+0−22

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

arch/arm/mach-exynos/setup-spi.c+72−0

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

arch/arm/mach-exynos/setup-usb-phy.c+15−0

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

arch/arm/mach-footbridge/cats-hw.c+2−1

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-footbridge/include/mach/vmalloc.h+0−10

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

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

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

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

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

arch/arm/mach-gemini/include/mach/vmalloc.h+0−10

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

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

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

arch/arm/mach-h720x/common.h+1−0

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

arch/arm/mach-h720x/h7201-eval.c+1−0

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

arch/arm/mach-h720x/h7202-eval.c+1−0

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

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

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

arch/arm/mach-h720x/include/mach/vmalloc.h+0−10

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

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

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

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

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

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

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

arch/arm/mach-highbank/include/mach/system.h+0−2

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

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

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

arch/arm/mach-highbank/system.c+1−1

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

arch/arm/mach-imx/Kconfig+3−1

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

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

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

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

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

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

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

arch/arm/mach-imx/head-v7.S+12−5

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

arch/arm/mach-imx/mach-apf9328.c+11−0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-imx/mach-mx1ads.c+2−0

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

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

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

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

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

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

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

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

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

arch/arm/mach-imx/mach-mx31_3ds.c+4−4

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

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

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

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

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

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

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

arch/arm/mach-imx/mach-mx31moboard.c+3−3

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

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

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

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

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

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

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

arch/arm/mach-imx/mach-pcm037.c+3−3

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

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

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-imx/src.c+24−2

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

arch/arm/mach-integrator/Kconfig+4−0

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

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

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

arch/arm/mach-integrator/core.c+22−5

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

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

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

arch/arm/mach-integrator/include/mach/vmalloc.h+0−20

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

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

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

arch/arm/mach-integrator/integrator_cp.c+2−1

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

arch/arm/mach-integrator/pci_v3.c+10−9

This diff is large: its 48 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−14

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

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

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

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

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

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

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

arch/arm/mach-iop13xx/pci.c+8−9

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

arch/arm/mach-iop13xx/setup.c+11−0

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

arch/arm/mach-iop32x/em7210.c+1−0

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

arch/arm/mach-iop32x/glantank.c+1−0

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

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

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

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

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

arch/arm/mach-iop32x/include/mach/vmalloc.h+0−5

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

arch/arm/mach-iop32x/iq31244.c+2−0

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

arch/arm/mach-iop32x/iq80321.c+1−0

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

arch/arm/mach-iop32x/n2100.c+9−0

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

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

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

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

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

arch/arm/mach-iop33x/include/mach/vmalloc.h+0−5

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

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

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-ixp2000/include/mach/vmalloc.h+0−20

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

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

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

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

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

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

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

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

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

arch/arm/mach-ixp23xx/core.c+6−0

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

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

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

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

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

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

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

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

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

arch/arm/mach-ixp23xx/include/mach/vmalloc.h+0−10

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

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

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

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

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

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

This diff is large: its 6 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+4−4

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

arch/arm/mach-ixp4xx/common.c+23−13

This diff is large: its 62 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 6 lines aren’t shown here.

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

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

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

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

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

This diff is large: its 6 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/platform.h+1−0

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

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

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

arch/arm/mach-ixp4xx/include/mach/vmalloc.h+0−5

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

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

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-kirkwood/addr-map.c+37−100

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

arch/arm/mach-kirkwood/common.c+24−11

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

arch/arm/mach-kirkwood/common.h+1−1

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

arch/arm/mach-kirkwood/d2net_v2-setup.c+1−0

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

arch/arm/mach-kirkwood/db88f6281-bp-setup.c+1−0

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

arch/arm/mach-kirkwood/dockstar-setup.c+1−0

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

arch/arm/mach-kirkwood/guruplug-setup.c+1−0

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

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

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

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

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

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

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

arch/arm/mach-kirkwood/include/mach/vmalloc.h+0−5

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

arch/arm/mach-kirkwood/mpp.c+0−1

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

arch/arm/mach-kirkwood/mpp.h+1−0

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

arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c+1−0

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

arch/arm/mach-kirkwood/netspace_v2-setup.c+3−0

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

arch/arm/mach-kirkwood/netxbig_v2-setup.c+2−0

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

arch/arm/mach-kirkwood/openrd-setup.c+3−0

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

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

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

arch/arm/mach-kirkwood/rd88f6192-nas-setup.c+1−0

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

arch/arm/mach-kirkwood/rd88f6281-setup.c+1−0

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

arch/arm/mach-kirkwood/sheevaplug-setup.c+5−3

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

arch/arm/mach-kirkwood/t5325-setup.c+1−0

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

arch/arm/mach-kirkwood/ts219-setup.c+1−0

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

arch/arm/mach-kirkwood/ts41x-setup.c+1−0

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

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

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

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

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

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

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

arch/arm/mach-ks8695/generic.h+1−0

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

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

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

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

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

arch/arm/mach-ks8695/irq.c+1−1

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

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

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

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

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

arch/arm/mach-lpc32xx/common.c+19−1

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

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

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

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

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

arch/arm/mach-lpc32xx/include/mach/vmalloc.h+0−24

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

arch/arm/mach-lpc32xx/phy3250.c+2−1

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

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

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

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

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

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

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

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

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

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

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

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

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

arch/arm/mach-mmp/gplugd.c+2−0

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

arch/arm/mach-mmp/include/mach/gpio-pxa.h+1−2

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

arch/arm/mach-mmp/include/mach/gpio.h+1−6

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

arch/arm/mach-mmp/include/mach/irqs.h+3−3

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

arch/arm/mach-mmp/include/mach/mmp2.h+2−0

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

arch/arm/mach-mmp/include/mach/pxa168.h+3−0

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

arch/arm/mach-mmp/include/mach/pxa910.h+2−0

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

arch/arm/mach-mmp/include/mach/system.h+0−10

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

arch/arm/mach-mmp/include/mach/vmalloc.h+0−5

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

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

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

arch/arm/mach-mmp/mmp2.c+21−18

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

arch/arm/mach-mmp/pxa168.c+27−18

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

arch/arm/mach-mmp/pxa910.c+22−18

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

arch/arm/mach-mmp/tavorevb.c+5−2

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

arch/arm/mach-mmp/teton_bga.c+3−1

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

arch/arm/mach-mmp/time.c+3−13

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

arch/arm/mach-mmp/ttc_dkb.c+6−3

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

arch/arm/mach-msm/Kconfig+4−32

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

arch/arm/mach-msm/board-msm8960.c+2−0

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

arch/arm/mach-msm/board-msm8x60.c+4−0

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

arch/arm/mach-msm/board-sapphire.c+1−1

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

arch/arm/mach-msm/headsmp.S+1−0

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

arch/arm/mach-msm/include/mach/debug-macro.S+32−19

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

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

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

arch/arm/mach-msm/include/mach/entry-macro-vic.S+0−37

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

arch/arm/mach-msm/include/mach/entry-macro.S+23−4

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

arch/arm/mach-msm/include/mach/msm_iomap-7x00.h+0−12

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

arch/arm/mach-msm/include/mach/msm_iomap-7x30.h+0−12

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

arch/arm/mach-msm/include/mach/msm_iomap-8960.h+5−0

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

arch/arm/mach-msm/include/mach/msm_iomap-8x50.h+0−12

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

arch/arm/mach-msm/include/mach/msm_iomap-8x60.h+5−0

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

arch/arm/mach-msm/include/mach/msm_iomap.h+12−0

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

arch/arm/mach-msm/include/mach/system.h+0−8

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

arch/arm/mach-msm/include/mach/uncompress.h+31−8

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

arch/arm/mach-msm/io.c+12−3

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

arch/arm/mach-msm/platsmp.c+1−1

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

arch/arm/mach-msm/smd_debug.c+1−1

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

arch/arm/mach-msm/timer.c+124−223

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

arch/arm/mach-msm/vreg.c+1−0

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

arch/arm/mach-mv78xx0/addr-map.c+19−83

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

arch/arm/mach-mv78xx0/buffalo-wxl-setup.c+1−0

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

arch/arm/mach-mv78xx0/common.c+25−13

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

arch/arm/mach-mv78xx0/common.h+1−1

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

arch/arm/mach-mv78xx0/db78x00-bp-setup.c+1−0

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

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

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

arch/arm/mach-mv78xx0/include/mach/vmalloc.h+0−5

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

arch/arm/mach-mv78xx0/mpp.c+0−1

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

arch/arm/mach-mv78xx0/pcie.c+6−6

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

arch/arm/mach-mv78xx0/rd78x00-masa-setup.c+1−0

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

arch/arm/mach-mx5/board-cpuimx51.c+1−0

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

arch/arm/mach-mx5/board-cpuimx51sd.c+1−0

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

arch/arm/mach-mx5/board-mx50_rdp.c+1−0

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

arch/arm/mach-mx5/board-mx51_3ds.c+1−0

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

arch/arm/mach-mx5/board-mx51_babbage.c+1−0

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

arch/arm/mach-mx5/board-mx51_efikamx.c+2−1

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

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

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

arch/arm/mach-mx5/board-mx53_ard.c+1−0

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

arch/arm/mach-mx5/board-mx53_evk.c+1−0

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

arch/arm/mach-mx5/board-mx53_loco.c+1−0

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

arch/arm/mach-mx5/board-mx53_smd.c+1−0

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

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

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

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

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

arch/arm/mach-mx5/mm.c+18−1

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

arch/arm/mach-mx5/system.c+0−3

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

arch/arm/mach-mxs/clock-mx23.c+5−5

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

arch/arm/mach-mxs/clock-mx28.c+43−5

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

arch/arm/mach-mxs/clock.c+23−10

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

arch/arm/mach-mxs/devices-mx28.h+2−1

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

arch/arm/mach-mxs/devices/platform-mxs-saif.c+3−2

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

arch/arm/mach-mxs/include/mach/common.h+2−0

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

arch/arm/mach-mxs/include/mach/devices-common.h+3−1

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

arch/arm/mach-mxs/include/mach/digctl.h+21−0

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

arch/arm/mach-mxs/include/mach/system.h+0−2

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

arch/arm/mach-mxs/include/mach/vmalloc.h+0−22

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

arch/arm/mach-mxs/mach-m28evk.c+1−0

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

arch/arm/mach-mxs/mach-mx23evk.c+1−0

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

arch/arm/mach-mxs/mach-mx28evk.c+18−3

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

arch/arm/mach-mxs/mach-stmp378x_devb.c+1−0

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

arch/arm/mach-mxs/mach-tx28.c+1−0

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

arch/arm/mach-mxs/system.c+3−3

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

arch/arm/mach-mxs/timer.c+1−1

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

arch/arm/mach-netx/generic.c+5−0

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

arch/arm/mach-netx/generic.h+1−0

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

arch/arm/mach-netx/include/mach/entry-macro.S+0−13

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

arch/arm/mach-netx/include/mach/system.h+0−10

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

arch/arm/mach-netx/nxdb500.c+3−0

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

arch/arm/mach-netx/nxdkn.c+3−0

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

arch/arm/mach-netx/nxeb500hmi.c+3−0

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

arch/arm/mach-nomadik/board-nhk8815.c+5−0

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

arch/arm/mach-nomadik/cpu-8815.c+12−0

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

arch/arm/mach-nomadik/cpu-8815.h+4−0

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

arch/arm/mach-nomadik/include/mach/entry-macro.S+0−30

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

arch/arm/mach-nomadik/include/mach/setup.h+0−3

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

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

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

arch/arm/mach-nomadik/include/mach/vmalloc.h+0−2

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

arch/arm/mach-omap1/Kconfig+0−64

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

arch/arm/mach-omap1/board-ams-delta.c+2−1

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

arch/arm/mach-omap1/board-fsample.c+2−1

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

arch/arm/mach-omap1/board-generic.c+2−1

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

arch/arm/mach-omap1/board-h2.c+2−1

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

arch/arm/mach-omap1/board-h3.c+2−1

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

arch/arm/mach-omap1/board-htcherald.c+2−1

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

arch/arm/mach-omap1/board-innovator.c+2−1

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

arch/arm/mach-omap1/board-nokia770.c+2−1

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

arch/arm/mach-omap1/board-osk.c+2−1

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

arch/arm/mach-omap1/board-palmte.c+2−1

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

arch/arm/mach-omap1/board-palmtt.c+2−1

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

arch/arm/mach-omap1/board-palmz71.c+2−1

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

arch/arm/mach-omap1/board-perseus2.c+2−1

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

arch/arm/mach-omap1/board-sx1.c+2−1

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

arch/arm/mach-omap1/board-voiceblue.c+3−5

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

arch/arm/mach-omap1/clock.c+6−8

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

arch/arm/mach-omap1/clock.h+3−0

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

arch/arm/mach-omap1/clock_data.c+10−9

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

arch/arm/mach-omap1/common.h+62−0

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

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

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

arch/arm/mach-omap1/include/mach/vmalloc.h+0−20

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

arch/arm/mach-omap1/io.c+0−1

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

arch/arm/mach-omap1/opp.h+1−0

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

arch/arm/mach-omap1/opp_data.c+29−34

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

arch/arm/mach-omap1/reset.c+1−4

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

arch/arm/mach-omap1/time.c+5−55

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

arch/arm/mach-omap1/timer32k.c+1−1

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

arch/arm/mach-omap2/Kconfig+38−3

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

arch/arm/mach-omap2/Makefile+13−7

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

arch/arm/mach-omap2/board-2430sdp.c+3−1

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

arch/arm/mach-omap2/board-3430sdp.c+4−100

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

arch/arm/mach-omap2/board-3630sdp.c+3−1

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

arch/arm/mach-omap2/board-4430sdp.c+20−84

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

arch/arm/mach-omap2/board-am3517crane.c+3−1

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

arch/arm/mach-omap2/board-am3517evm.c+25−1

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

arch/arm/mach-omap2/board-apollon.c+3−1

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

arch/arm/mach-omap2/board-cm-t35.c+63−25

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

arch/arm/mach-omap2/board-cm-t3517.c+3−1

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

arch/arm/mach-omap2/board-devkit8000.c+3−1

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

arch/arm/mach-omap2/board-generic.c+6−3

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

arch/arm/mach-omap2/board-h4.c+3−1

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

arch/arm/mach-omap2/board-igep0020.c+5−1

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

arch/arm/mach-omap2/board-ldp.c+3−1

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

arch/arm/mach-omap2/board-n8x0.c+11−5

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

arch/arm/mach-omap2/board-omap3beagle.c+3−1

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

arch/arm/mach-omap2/board-omap3evm.c+3−1

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

arch/arm/mach-omap2/board-omap3logic.c+5−1

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

arch/arm/mach-omap2/board-omap3pandora.c+3−1

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

arch/arm/mach-omap2/board-omap3stalker.c+3−1

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

arch/arm/mach-omap2/board-omap3touchbook.c+3−1

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

arch/arm/mach-omap2/board-omap4panda.c+14−85

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

arch/arm/mach-omap2/board-overo.c+3−1

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

arch/arm/mach-omap2/board-rm680.c+3−1

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

arch/arm/mach-omap2/board-rx51-peripherals.c+48−3

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

arch/arm/mach-omap2/board-rx51.c+3−1

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

arch/arm/mach-omap2/board-ti8168evm.c+31−15

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

arch/arm/mach-omap2/board-zoom-peripherals.c+1−1

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

arch/arm/mach-omap2/board-zoom.c+5−1

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

arch/arm/mach-omap2/clock.c+1−1

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

arch/arm/mach-omap2/clock.h+1−1

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

arch/arm/mach-omap2/clock3xxx_data.c+28−15

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

arch/arm/mach-omap2/clock44xx_data.c+14−5

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

arch/arm/mach-omap2/cm2xxx_3xxx.c+1−1

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

arch/arm/mach-omap2/cm44xx.c+1−1

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

arch/arm/mach-omap2/cminst44xx.c+1−1

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

arch/arm/mach-omap2/common.c+38−12

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

arch/arm/mach-omap2/common.h+239−0

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

arch/arm/mach-omap2/control.c+1−1

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

arch/arm/mach-omap2/control.h+4−4

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

arch/arm/mach-omap2/cpuidle34xx.c+16−6

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

arch/arm/mach-omap2/cpuidle44xx.c+245−0

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

arch/arm/mach-omap2/devices.c+41−0

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

arch/arm/mach-omap2/display.c+41−1

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

arch/arm/mach-omap2/hsmmc.c+44−15

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

arch/arm/mach-omap2/hsmmc.h+1−0

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

arch/arm/mach-omap2/i2c.c+1−1

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

arch/arm/mach-omap2/id.c+46−8

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

arch/arm/mach-omap2/include/mach/barriers.hrenamed from arch/arm/mach-netx/include/mach/vmalloc.h+18−6

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

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

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

arch/arm/mach-omap2/include/mach/entry-macro.S+0−137

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

arch/arm/mach-omap2/include/mach/omap-secure.h+57−0

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

arch/arm/mach-omap2/include/mach/omap-wakeupgen.h+39−0

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

arch/arm/mach-omap2/include/mach/omap4-common.h+0−43

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

arch/arm/mach-omap2/include/mach/vmalloc.h+0−20

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

arch/arm/mach-omap2/io.c+42−13

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

arch/arm/mach-omap2/irq.c+52−1

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

arch/arm/mach-omap2/mcbsp.c+3−0

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

arch/arm/mach-omap2/mux.c+87−2

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

arch/arm/mach-omap2/omap-headsmp.S+0−5

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

arch/arm/mach-omap2/omap-hotplug.c+11−6

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

arch/arm/mach-omap2/omap-mpuss-lowpower.c+398−0

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

arch/arm/mach-omap2/omap-secure.c+72−0

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

arch/arm/mach-omap2/omap-smc.Srenamed from arch/arm/mach-omap2/omap44xx-smc.S+23−0

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

arch/arm/mach-omap2/omap-smp.c+47−1

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

arch/arm/mach-omap2/omap-wakeupgen.c+389−0

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

arch/arm/mach-omap2/omap4-common.c+91−4

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

arch/arm/mach-omap2/omap4-sar-layout.h+50−0

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

arch/arm/mach-omap2/omap_hwmod.c+174−51

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

arch/arm/mach-omap2/omap_hwmod_3xxx_data.c+380−8

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

arch/arm/mach-omap2/omap_hwmod_44xx_data.c+212−5

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

arch/arm/mach-omap2/omap_phy_internal.c+35−0

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

arch/arm/mach-omap2/opp2xxx.h+1−1

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

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

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

arch/arm/mach-omap2/pm.h+1−0

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

arch/arm/mach-omap2/pm24xx.c+1−20

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

arch/arm/mach-omap2/pm34xx.c+45−114

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

arch/arm/mach-omap2/pm44xx.c+150−5

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

arch/arm/mach-omap2/prcm-common.h+76−1

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

arch/arm/mach-omap2/prcm.c+2−5

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

arch/arm/mach-omap2/prcm_mpu44xx.c+1−1

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

arch/arm/mach-omap2/prm2xxx_3xxx.c+97−2

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

arch/arm/mach-omap2/prm2xxx_3xxx.h+8−1

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

arch/arm/mach-omap2/prm44xx.c+117−1

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

arch/arm/mach-omap2/prm44xx.h+7−1

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

arch/arm/mach-omap2/prm_common.c+320−0

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

arch/arm/mach-omap2/prminst44xx.c+1−1

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

arch/arm/mach-omap2/sdram-nokia.c+25−2

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

arch/arm/mach-omap2/sdrc.c+1−1

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

arch/arm/mach-omap2/sdrc2xxx.c+1−1

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

arch/arm/mach-omap2/serial.c+243−666

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

arch/arm/mach-omap2/sleep44xx.S+379−0

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

arch/arm/mach-omap2/smartreflex.c+1−1

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

arch/arm/mach-omap2/timer.c+5−17

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

arch/arm/mach-omap2/usb-host.c+34−66

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

arch/arm/mach-omap2/usb-musb.c+3−0

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

arch/arm/mach-omap2/vc3xxx_data.c+1−1

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

arch/arm/mach-omap2/vc44xx_data.c+1−1

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

arch/arm/mach-omap2/voltage.c+1−1

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

arch/arm/mach-omap2/voltagedomains3xxx_data.c+35−7

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

arch/arm/mach-omap2/voltagedomains44xx_data.c+1−1

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

arch/arm/mach-omap2/vp.c+1−1

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

arch/arm/mach-omap2/vp3xxx_data.c+1−1

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

arch/arm/mach-omap2/vp44xx_data.c+1−1

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

arch/arm/mach-orion5x/addr-map.c+47−99

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

arch/arm/mach-orion5x/common.c+19−16

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

arch/arm/mach-orion5x/common.h+2−2

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

arch/arm/mach-orion5x/d2net-setup.c+2−0

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

arch/arm/mach-orion5x/db88f5281-setup.c+1−0

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

arch/arm/mach-orion5x/dns323-setup.c+1−0

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

arch/arm/mach-orion5x/edmini_v2-setup.c+1−0

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

arch/arm/mach-orion5x/include/mach/io.h+0−25

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

arch/arm/mach-orion5x/include/mach/orion5x.h+1−1

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

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

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

arch/arm/mach-orion5x/include/mach/vmalloc.h+0−5

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

arch/arm/mach-orion5x/kurobox_pro-setup.c+2−0

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

arch/arm/mach-orion5x/ls-chl-setup.c+2−1

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

arch/arm/mach-orion5x/ls_hgl-setup.c+2−1

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

arch/arm/mach-orion5x/lsmini-setup.c+2−1

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

arch/arm/mach-orion5x/mpp.c+0−1

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

arch/arm/mach-orion5x/mss2-setup.c+2−1

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

arch/arm/mach-orion5x/mv2120-setup.c+2−1

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

arch/arm/mach-orion5x/net2big-setup.c+1−0

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

arch/arm/mach-orion5x/pci.c+11−10

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

arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c+1−0

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

arch/arm/mach-orion5x/rd88f5181l-ge-setup.c+1−0

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

arch/arm/mach-orion5x/rd88f5182-setup.c+1−0

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

arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c+1−0

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

arch/arm/mach-orion5x/terastation_pro2-setup.c+1−0

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

arch/arm/mach-orion5x/ts209-setup.c+2−1

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

arch/arm/mach-orion5x/ts409-setup.c+1−0

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

arch/arm/mach-orion5x/ts78xx-setup.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-orion5x/wnr854t-setup.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-orion5x/wrt350n-v2-setup.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-picoxcell/Makefile+0−1

This diff is large: its 4 lines aren’t shown here.

arch/arm/mach-picoxcell/common.c+55−6

This diff is large: its 103 lines aren’t shown here.

arch/arm/mach-picoxcell/common.h+0−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-picoxcell/include/mach/entry-macro.S+4−7

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-picoxcell/include/mach/irqs.h+2−7

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-picoxcell/include/mach/memory.h+0−1

This diff is large: its 2 lines aren’t shown here.

arch/arm/mach-picoxcell/include/mach/system.h+0−5

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-picoxcell/include/mach/vmalloc.h+0−14

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-picoxcell/io.c+0−32

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-picoxcell/time.c+3−14

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-pnx4008/core.c+6−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-pnx4008/include/mach/system.h+0−9

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-pnx4008/include/mach/vmalloc.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-prima2/common.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-prima2/include/mach/map.h+4−2

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-prima2/include/mach/system.h+0−12

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-prima2/include/mach/vmalloc.h+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-prima2/prima2.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-prima2/rstc.c+7−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-pxa/am200epd.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-pxa/am300epd.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-pxa/balloon3.c+3−1

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-pxa/capc7117.c+8−7

This diff is large: its 55 lines aren’t shown here.

arch/arm/mach-pxa/cm-x270.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-pxa/cm-x2xx.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-pxa/cm-x300.c+4−3

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-pxa/colibri-pxa270-income.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pxa/colibri-pxa270.c+5−3

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-pxa/colibri-pxa300.c+3−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-pxa/colibri-pxa320.c+3−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-pxa/corgi.c+15−4

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-pxa/corgi_pm.c+18−3

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-pxa/csb726.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-pxa/devices.c+50−0

This diff is large: its 67 lines aren’t shown here.

arch/arm/mach-pxa/devices.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/em-x270.c+5−3

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-pxa/eseries.c+26−2

This diff is large: its 115 lines aren’t shown here.

arch/arm/mach-pxa/ezx.c+6−0

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-pxa/generic.h+2−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-pxa/gumstix.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-pxa/h5000.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-pxa/himalaya.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-pxa/hx4700.c+10−9

This diff is large: its 57 lines aren’t shown here.

arch/arm/mach-pxa/icontrol.c+6−5

This diff is large: its 44 lines aren’t shown here.

arch/arm/mach-pxa/idp.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/balloon3.h+3−3

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/corgi.h+13−13

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/csb726.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/entry-macro.S+0−36

This diff is large: its 46 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/gpio-pxa.h+0−133

This diff is large: its 134 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/gpio.h+2−18

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/gumstix.h+10−10

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/hx4700.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/idp.h+7−9

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/irqs.h+3−5

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/littleton.h+1−3

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/magician.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/palmld.h+4−4

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/palmt5.h+4−4

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/palmtc.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/palmtx.h+4−4

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/pcm027.h+4−4

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/pcm990_baseboard.h+7−7

This diff is large: its 57 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/poodle.h+13−13

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/spitz.h+20−20

This diff is large: its 68 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/system.h+0−8

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/tosa.h+27−27

This diff is large: its 82 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/trizeps4.h+8−8

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-pxa/include/mach/vmalloc.h+0−11

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-pxa/irq.c+1−60

This diff is large: its 89 lines aren’t shown here.

arch/arm/mach-pxa/littleton.c+4−3

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-pxa/lpd270.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-pxa/lubbock.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-pxa/magician.c+5−4

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-pxa/mainstone.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-pxa/mfp-pxa2xx.c+5−1

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-pxa/mioa701.c+25−19

This diff is large: its 120 lines aren’t shown here.

arch/arm/mach-pxa/mp900.c+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-pxa/mxm8x10.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-pxa/palmld.c+2−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmt5.c+2−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmtc.c+2−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmte2.c+2−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmtreo.c+2−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-pxa/palmtx.c+2−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/palmz72.c+2−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-pxa/pcm027.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-pxa/pcm990-baseboard.c+3−3

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-pxa/poodle.c+11−10

This diff is large: its 68 lines aren’t shown here.

arch/arm/mach-pxa/pxa25x.c+4−3

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-pxa/pxa27x.c+5−2

This diff is large: its 42 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+6−3

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-pxa/pxa95x.c+4−2

This diff is large: its 44 lines aren’t shown here.

arch/arm/mach-pxa/raumfeld.c+7−4

This diff is large: its 52 lines aren’t shown here.

arch/arm/mach-pxa/reset.c+5−2

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-pxa/saar.c+4−3

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-pxa/saarb.c+2−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-pxa/sharpsl_pm.c+12−12

This diff is large: its 52 lines aren’t shown here.

arch/arm/mach-pxa/spitz.c+8−3

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-pxa/spitz_pm.c+9−2

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-pxa/stargate2.c+21−13

This diff is large: its 132 lines aren’t shown here.

arch/arm/mach-pxa/tavorevb.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-pxa/tavorevb3.c+2−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-pxa/time.c+3−12

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-pxa/tosa.c+11−4

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-pxa/trizeps4.c+2−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-pxa/viper.c+7−6

This diff is large: its 46 lines aren’t shown here.

arch/arm/mach-pxa/vpac270.c+7−6

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-pxa/xcep.c+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-pxa/z2.c+2−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-pxa/zeus.c+11−10

This diff is large: its 83 lines aren’t shown here.

arch/arm/mach-pxa/zylonite.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-pxa/zylonite_pxa300.c+2−2

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-realview/Kconfig+9−0

This diff is large: its 44 lines aren’t shown here.

arch/arm/mach-realview/core.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-realview/core.h+0−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-realview/include/mach/entry-macro.S+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-realview/include/mach/system.h+0−17

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-realview/include/mach/vmalloc.h+0−21

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-realview/platsmp.c+1−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-realview/realview_eb.c+7−8

This diff is large: its 74 lines aren’t shown here.

arch/arm/mach-realview/realview_pb1176.c+5−6

This diff is large: its 61 lines aren’t shown here.

arch/arm/mach-realview/realview_pb11mp.c+5−6

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-realview/realview_pba8.c+5−6

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-realview/realview_pbx.c+7−8

This diff is large: its 74 lines aren’t shown here.

arch/arm/mach-rpc/include/mach/system.h+0−14

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-rpc/include/mach/vmalloc.h+0−10

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-rpc/riscpc.c+12−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-s3c2410/bast-irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c2410/common.h+17−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-s3c2410/cpu-freq.c+14−12

This diff is large: its 65 lines aren’t shown here.

arch/arm/mach-s3c2410/dma.c+17−11

This diff is large: its 72 lines aren’t shown here.

arch/arm/mach-s3c2410/include/mach/dma.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-s3c2410/include/mach/reset.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-s3c2410/include/mach/system-reset.h+0−32

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-s3c2410/include/mach/system.h+0−4

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-s3c2410/include/mach/vmalloc.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-s3c2410/mach-amlm5900.c+3−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-s3c2410/mach-bast.c+2−22

This diff is large: its 64 lines aren’t shown here.

arch/arm/mach-s3c2410/mach-h1940.c+4−1

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-s3c2410/mach-n30.c+4−0

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-s3c2410/mach-otom.c+3−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-s3c2410/mach-qt2410.c+4−3

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-s3c2410/mach-smdk2410.c+3−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-s3c2410/mach-tct_hammer.c+3−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-s3c2410/mach-vr1000.c+2−24

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-s3c2410/pll.c+12−8

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-s3c2410/pm.c+22−14

This diff is large: its 91 lines aren’t shown here.

arch/arm/mach-s3c2410/s3c2410.c+32−11

This diff is large: its 105 lines aren’t shown here.

arch/arm/mach-s3c2412/clock.c+8−1

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-s3c2412/cpu-freq.c+7−6

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-s3c2412/dma.c+7−5

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-s3c2412/irq.c+7−5

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-s3c2412/mach-jive.c+2−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-s3c2412/mach-smdk2413.c+3−0

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-s3c2412/mach-vstms.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-s3c2412/pm.c+7−5

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-s3c2412/s3c2412.c+12−13

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-s3c2416/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s3c2416/clock.c+37−31

This diff is large: its 93 lines aren’t shown here.

arch/arm/mach-s3c2416/irq.c+7−5

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-s3c2416/mach-smdk2416.c+2−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-s3c2416/pm.c+7−5

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-s3c2416/s3c2416.c+12−10

This diff is large: its 77 lines aren’t shown here.

arch/arm/mach-s3c2416/setup-sdhci.c+0−24

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-s3c2440/clock.c+52−7

This diff is large: its 105 lines aren’t shown here.

arch/arm/mach-s3c2440/common.h+17−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-s3c2440/dma.c+7−5

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-s3c2440/irq.c+7−5

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-s3c2440/mach-anubis.c+5−20

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-s3c2440/mach-at2440evb.c+5−20

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-s3c2440/mach-gta02.c+2−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-s3c2440/mach-mini2440.c+21−0

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-s3c2440/mach-nexcoder.c+3−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-s3c2440/mach-osiris.c+6−21

This diff is large: its 67 lines aren’t shown here.

arch/arm/mach-s3c2440/mach-rx1950.c+7−16

This diff is large: its 69 lines aren’t shown here.

arch/arm/mach-s3c2440/mach-rx3715.c+7−17

This diff is large: its 71 lines aren’t shown here.

arch/arm/mach-s3c2440/mach-smdk2440.c+3−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-s3c2440/s3c2440-cpufreq.c+12−10

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-s3c2440/s3c2440-pll-12000000.c+12−8

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-s3c2440/s3c2440-pll-16934400.c+12−12

This diff is large: its 57 lines aren’t shown here.

arch/arm/mach-s3c2440/s3c2440.c+17−4

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-s3c2440/s3c2442.c+9−8

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-s3c2440/s3c244x-clock.c+11−8

This diff is large: its 52 lines aren’t shown here.

arch/arm/mach-s3c2440/s3c244x-irq.c+12−8

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-s3c2440/s3c244x.c+9−7

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-s3c2443/clock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c2443/dma.c+7−5

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-s3c2443/irq.c+7−5

This diff is large: its 37 lines aren’t shown here.

arch/arm/mach-s3c2443/mach-smdk2443.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-s3c2443/s3c2443.c+12−11

This diff is large: its 78 lines aren’t shown here.

arch/arm/mach-s3c64xx/Kconfig+11−4

This diff is large: its 57 lines aren’t shown here.

arch/arm/mach-s3c64xx/Makefile+30−35

This diff is large: its 85 lines aren’t shown here.

arch/arm/mach-s3c64xx/clock.c+156−91

This diff is large: its 326 lines aren’t shown here.

arch/arm/mach-s3c64xx/common.c+385−0

This diff is large: its 386 lines aren’t shown here.

arch/arm/mach-s3c64xx/common.h+56−0

This diff is large: its 57 lines aren’t shown here.

arch/arm/mach-s3c64xx/cpu.c+0−161

This diff is large: its 162 lines aren’t shown here.

arch/arm/mach-s3c64xx/dev-spi.c+0−180

This diff is large: its 181 lines aren’t shown here.

arch/arm/mach-s3c64xx/dma.c+12−11

This diff is large: its 76 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/crag6410.h+5−2

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/entry-macro.S+4−3

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/gpio.h+1−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/irqs.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/map.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/system.h+0−11

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/vmalloc.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-s3c64xx/irq-eint.c+0−213

This diff is large: its 214 lines aren’t shown here.

arch/arm/mach-s3c64xx/irq.c+0−47

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-anw6410.c+5−1

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-crag6410-module.c+53−3

This diff is large: its 105 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-crag6410.c+48−18

This diff is large: its 201 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-hmt.c+5−1

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-mini6410.c+5−1

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-ncp.c+5−1

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-real6410.c+5−1

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-smartq.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-smartq5.c+4−1

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-smartq7.c+4−1

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-smdk6400.c+5−1

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-smdk6410.c+5−1

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-s3c64xx/pm.c+174−2

This diff is large: its 213 lines aren’t shown here.

arch/arm/mach-s3c64xx/s3c6400.c+11−9

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-s3c64xx/s3c6410.c+11−10

This diff is large: its 60 lines aren’t shown here.

arch/arm/mach-s3c64xx/setup-sdhci.c+0−24

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-s3c64xx/setup-spi.c+45−0

This diff is large: its 46 lines aren’t shown here.

arch/arm/mach-s5p64x0/Kconfig+29−2

This diff is large: its 65 lines aren’t shown here.

arch/arm/mach-s5p64x0/Makefile+8−4

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-s5p64x0/clock-s5p6440.c+97−73

This diff is large: its 222 lines aren’t shown here.

arch/arm/mach-s5p64x0/clock-s5p6450.c+97−61

This diff is large: its 196 lines aren’t shown here.

arch/arm/mach-s5p64x0/clock.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-s5p64x0/common.c+447−0

This diff is large: its 448 lines aren’t shown here.

arch/arm/mach-s5p64x0/common.h+57−0

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-s5p64x0/cpu.c+0−215

This diff is large: its 216 lines aren’t shown here.

arch/arm/mach-s5p64x0/dev-spi.c+0−224

This diff is large: its 225 lines aren’t shown here.

arch/arm/mach-s5p64x0/dma.c+65−162

This diff is large: its 253 lines aren’t shown here.

arch/arm/mach-s5p64x0/include/mach/entry-macro.S+4−3

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-s5p64x0/include/mach/irqs.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s5p64x0/include/mach/map.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s5p64x0/include/mach/system.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s5p64x0/include/mach/vmalloc.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-s5p64x0/init.c+0−73

This diff is large: its 74 lines aren’t shown here.

arch/arm/mach-s5p64x0/irq-eint.c+0−155

This diff is large: its 156 lines aren’t shown here.

arch/arm/mach-s5p64x0/mach-smdk6440.c+31−2

This diff is large: its 86 lines aren’t shown here.

arch/arm/mach-s5p64x0/mach-smdk6450.c+31−3

This diff is large: its 90 lines aren’t shown here.

arch/arm/mach-s5p64x0/pm.c+6−4

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-s5p64x0/setup-sdhci-gpio.c+104−0

This diff is large: its 105 lines aren’t shown here.

arch/arm/mach-s5p64x0/setup-spi.c+55−0

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-s5pc100/Kconfig+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-s5pc100/Makefile+12−16

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-s5pc100/clock.c+177−113

This diff is large: its 363 lines aren’t shown here.

arch/arm/mach-s5pc100/common.crenamed from arch/arm/mach-s5pc100/cpu.c+91−27

This diff is large: its 192 lines aren’t shown here.

arch/arm/mach-s5pc100/common.h+37−0

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-s5pc100/dev-spi.c+0−227

This diff is large: its 228 lines aren’t shown here.

arch/arm/mach-s5pc100/dma.c+69−178

This diff is large: its 277 lines aren’t shown here.

arch/arm/mach-s5pc100/include/mach/entry-macro.S+0−25

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-s5pc100/include/mach/irqs.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s5pc100/include/mach/map.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-s5pc100/include/mach/system.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s5pc100/include/mach/vmalloc.h+0−17

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-s5pc100/init.c+0−24

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-s5pc100/mach-smdkc100.c+6−2

This diff is large: its 44 lines aren’t shown here.

arch/arm/mach-s5pc100/setup-sdhci.c+0−23

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-s5pc100/setup-spi.c+65−0

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-s5pv210/Kconfig+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-s5pv210/Makefile+11−9

This diff is large: its 42 lines aren’t shown here.

arch/arm/mach-s5pv210/clock.c+203−126

This diff is large: its 404 lines aren’t shown here.

arch/arm/mach-s5pv210/common.crenamed from arch/arm/mach-s5pv210/cpu.c+83−24

This diff is large: its 183 lines aren’t shown here.

arch/arm/mach-s5pv210/common.h+37−0

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-s5pv210/dev-spi.c+0−175

This diff is large: its 176 lines aren’t shown here.

arch/arm/mach-s5pv210/dma.c+69−172

This diff is large: its 271 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/entry-macro.S+0−37

This diff is large: its 46 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/irqs.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/map.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/system.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s5pv210/include/mach/vmalloc.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-s5pv210/init.c+0−44

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-s5pv210/mach-aquila.c+7−4

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-s5pv210/mach-goni.c+8−6

This diff is large: its 65 lines aren’t shown here.

arch/arm/mach-s5pv210/mach-smdkc110.c+7−3

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-s5pv210/mach-smdkv210.c+10−10

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-s5pv210/mach-torbreck.c+6−2

This diff is large: its 42 lines aren’t shown here.

arch/arm/mach-s5pv210/pm.c+6−4

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-s5pv210/setup-sdhci.c+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-s5pv210/setup-spi.c+51−0

This diff is large: its 52 lines aren’t shown here.

arch/arm/mach-sa1100/assabet.c+14−1

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-sa1100/badge4.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-sa1100/cerf.c+12−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-sa1100/clock.c+66−25

This diff is large: its 137 lines aren’t shown here.

arch/arm/mach-sa1100/collie.c+18−1

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-sa1100/generic.c+37−1

This diff is large: its 65 lines aren’t shown here.

arch/arm/mach-sa1100/generic.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sa1100/h3100.c+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-sa1100/h3600.c+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-sa1100/hackkit.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/gpio.h+0−3

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/mcp.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/system.h+0−13

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/vmalloc.h+0−4

This diff is large: its 5 lines aren’t shown here.

arch/arm/mach-sa1100/jornada720.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-sa1100/lart.c+11−0

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-sa1100/nanoengine.c+2−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-sa1100/pci-nanoengine.c+7−6

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-sa1100/pleb.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-sa1100/shannon.c+12−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-sa1100/simpad.c+18−1

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-sa1100/time.c+3−25

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-shark/core.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-shark/include/mach/system.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-shark/include/mach/vmalloc.h+0−4

This diff is large: its 5 lines aren’t shown here.

arch/arm/mach-shmobile/Kconfig+25−2

This diff is large: its 55 lines aren’t shown here.

arch/arm/mach-shmobile/Makefile+9−1

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-shmobile/board-ag5evm.c+37−10

This diff is large: its 93 lines aren’t shown here.

arch/arm/mach-shmobile/board-ap4evb.c+44−5

This diff is large: its 94 lines aren’t shown here.

arch/arm/mach-shmobile/board-bonito.c+522−0

This diff is large: its 523 lines aren’t shown here.

arch/arm/mach-shmobile/board-g3evm.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/board-g4evm.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/board-kota2.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/board-mackerel.c+15−5

This diff is large: its 49 lines aren’t shown here.

arch/arm/mach-shmobile/board-marzen.c+157−0

This diff is large: its 158 lines aren’t shown here.

arch/arm/mach-shmobile/clock-r8a7740.c+382−0

This diff is large: its 383 lines aren’t shown here.

arch/arm/mach-shmobile/clock-r8a7779.c+176−0

This diff is large: its 177 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh7372.c+5−5

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh73a0.c+120−24

This diff is large: its 192 lines aren’t shown here.

arch/arm/mach-shmobile/entry-gic.S+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-shmobile/headsmp.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/hotplug.c+31−1

This diff is large: its 53 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/common.h+24−3

This diff is large: its 55 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/entry-macro.S+0−9

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/gpio.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/r8a7740.h+584−0

This diff is large: its 585 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/r8a7779.h+363−0

This diff is large: its 364 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/sh7372.h+4−2

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/system.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/vmalloc.h+0−7

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/intc-r8a7740.c+631−0

This diff is large: its 632 lines aren’t shown here.

arch/arm/mach-shmobile/intc-r8a7779.c+58−0

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-shmobile/intc-sh7372.c+50−0

This diff is large: its 61 lines aren’t shown here.

arch/arm/mach-shmobile/pfc-r8a7740.c+2562−0

This diff is large: its 2563 lines aren’t shown here.

arch/arm/mach-shmobile/pfc-r8a7779.c+2645−0

This diff is large: its 2646 lines aren’t shown here.

arch/arm/mach-shmobile/platsmp.c+21−0

This diff is large: its 55 lines aren’t shown here.

arch/arm/mach-shmobile/pm-r8a7779.c+249−0

This diff is large: its 250 lines aren’t shown here.

arch/arm/mach-shmobile/pm-sh7372.c+146−50

This diff is large: its 360 lines aren’t shown here.

arch/arm/mach-shmobile/setup-r8a7740.c+352−0

This diff is large: its 353 lines aren’t shown here.

arch/arm/mach-shmobile/setup-r8a7779.c+239−0

This diff is large: its 240 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh7372.c+20−7

This diff is large: its 120 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh73a0.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/sleep-sh7372.S+11−10

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-shmobile/smp-r8a7779.c+153−0

This diff is large: its 154 lines aren’t shown here.

arch/arm/mach-spear3xx/include/mach/entry-macro.S+0−27

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-spear3xx/include/mach/generic.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-spear3xx/include/mach/vmalloc.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-spear3xx/spear300_evb.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-spear3xx/spear310_evb.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-spear3xx/spear320_evb.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-spear6xx/include/mach/entry-macro.S+0−36

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-spear6xx/include/mach/generic.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-spear6xx/include/mach/vmalloc.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-spear6xx/spear600_evb.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-tcc8k/Kconfig+0−11

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-tcc8k/Makefile+0−9

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-tcc8k/Makefile.boot+0−3

This diff is large: its 4 lines aren’t shown here.

arch/arm/mach-tcc8k/board-tcc8000-sdk.c+0−81

This diff is large: its 82 lines aren’t shown here.

arch/arm/mach-tcc8k/clock.c+0−580

This diff is large: its 581 lines aren’t shown here.

arch/arm/mach-tcc8k/common.h+0−15

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-tcc8k/devices.c+0−239

This diff is large: its 240 lines aren’t shown here.

arch/arm/mach-tcc8k/io.c+0−62

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-tcc8k/irq.c+0−111

This diff is large: its 112 lines aren’t shown here.

arch/arm/mach-tcc8k/time.c+0−134

This diff is large: its 135 lines aren’t shown here.

arch/arm/mach-tegra/Kconfig+24−7

This diff is large: its 97 lines aren’t shown here.

arch/arm/mach-tegra/Makefile+20−16

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-tegra/Makefile.boot+3−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-tegra/board-dt-tegra20.crenamed from arch/arm/mach-tegra/board-dt.c+40−25

This diff is large: its 140 lines aren’t shown here.

arch/arm/mach-tegra/board-dt-tegra30.c+63−0

This diff is large: its 64 lines aren’t shown here.

arch/arm/mach-tegra/board-harmony-pcie.c+0−9

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-tegra/board-harmony-pinmux.c+10−13

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-tegra/board-harmony.c+8−5

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-tegra/board-paz00-pinmux.c+11−14

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-tegra/board-paz00.c+31−1

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-tegra/board-paz00.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-tegra/board-pinmux.c+104−0

This diff is large: its 105 lines aren’t shown here.

arch/arm/mach-tegra/board-pinmux.h+38−0

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-tegra/board-seaboard-pinmux.c+57−65

This diff is large: its 217 lines aren’t shown here.

arch/arm/mach-tegra/board-seaboard.c+14−7

This diff is large: its 60 lines aren’t shown here.

arch/arm/mach-tegra/board-trimslice-pinmux.c+13−14

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-tegra/board-trimslice.c+4−1

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-tegra/board.h+3−2

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-tegra/clock.c+4−21

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-tegra/clock.h+0−4

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-tegra/common.c+41−14

This diff is large: its 102 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/clk.h+1−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/entry-macro.S+0−36

This diff is large: its 46 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/io.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/irqs.h+0−2

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/kbc.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/pinmux-tegra20.hrenamed from arch/arm/mach-tegra/include/mach/pinmux-t2.h+3−3

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/pinmux-tegra30.h+320−0

This diff is large: its 321 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/pinmux.h+73−15

This diff is large: its 160 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/system.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-tegra/io.c+0−21

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-tegra/irq.c+8−6

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-tegra/pcie.c+5−5

This diff is large: its 45 lines aren’t shown here.

arch/arm/mach-tegra/pinmux-tegra20-tables.crenamed from arch/arm/mach-tegra/pinmux-t2-tables.c+20−4

This diff is large: its 57 lines aren’t shown here.

arch/arm/mach-tegra/pinmux-tegra30-tables.c+376−0

This diff is large: its 377 lines aren’t shown here.

arch/arm/mach-tegra/pinmux.c+107−46

This diff is large: its 384 lines aren’t shown here.

arch/arm/mach-tegra/tegra2_clocks.c+6−13

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-tegra/timer.c+16−26

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-u300/Kconfig+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-u300/core.c+27−7

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-u300/include/mach/entry-macro.S+0−24

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-u300/include/mach/gpio-u300.h+0−115

This diff is large: its 122 lines aren’t shown here.

arch/arm/mach-u300/include/mach/irqs.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-u300/include/mach/memory.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-u300/include/mach/platform.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-u300/include/mach/system.h+0−28

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-u300/include/mach/vmalloc.h+0−12

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-u300/mmc.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-u300/timer.c+3−12

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-u300/u300-gpio.h+114−0

This diff is large: its 115 lines aren’t shown here.

arch/arm/mach-u300/u300.c+4−1

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-sdi.c+56−32

This diff is large: its 142 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500.c+7−3

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500.h+50−13

This diff is large: its 91 lines aren’t shown here.

arch/arm/mach-ux500/board-u5500.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-ux500/clock.c+51−156

This diff is large: its 319 lines aren’t shown here.

arch/arm/mach-ux500/cpu-db5500.c+22−24

This diff is large: its 84 lines aren’t shown here.

arch/arm/mach-ux500/cpu-db8500.c+4−31

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-ux500/devices-db8500.c+0−10

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-ux500/headsmp.S+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ux500/id.c+4−2

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/db5500-regs.h+4−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/db8500-regs.h+6−14

This diff is large: its 57 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/devices.h+0−2

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/entry-macro.S+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/gpio.h+0−5

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/hardware.h+5−5

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/id.h+24−0

This diff is large: its 31 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/system.h+0−5

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/vmalloc.h+0−18

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-versatile/core.c+13−6

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-versatile/core.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-versatile/include/mach/entry-macro.S+0−30

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-versatile/include/mach/system.h+0−16

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-versatile/include/mach/vmalloc.h+0−21

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-versatile/pci.c+10−9

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-versatile/versatile_ab.c+3−1

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-versatile/versatile_dt.c+3−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-versatile/versatile_pb.c+3−1

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-vexpress/Kconfig+2−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/entry-macro.S+0−2

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/system.h+0−4

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/vmalloc.h+0−21

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-vexpress/platsmp.c+1−3

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-vexpress/v2m.c+4−2

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-vt8500/include/mach/vmalloc.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-w90x900/clksel.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-w90x900/cpu.c+17−1

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-w90x900/dev.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-w90x900/include/mach/system.h+0−22

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-w90x900/include/mach/vmalloc.h+0−23

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-w90x900/irq.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-w90x900/mach-nuc910evb.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-w90x900/mach-nuc950evb.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-w90x900/mach-nuc960evb.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-w90x900/mfp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-w90x900/nuc910.h+1−8

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-w90x900/nuc950.h+1−8

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-w90x900/nuc960.h+1−8

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-w90x900/nuc9xx.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-w90x900/time.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-zynq/common.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-zynq/include/mach/entry-macro.S+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-zynq/include/mach/system.h+0−5

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-zynq/include/mach/vmalloc.h+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/mm/Kconfig+33−7

This diff is large: its 55 lines aren’t shown here.

arch/arm/mm/alignment.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mm/context.c+17−2

This diff is large: its 40 lines aren’t shown here.

arch/arm/mm/fault.c+58−111

This diff is large: its 267 lines aren’t shown here.

arch/arm/mm/fault.h+26−1

This diff is large: its 30 lines aren’t shown here.

arch/arm/mm/fsr-2level.c+78−0

This diff is large: its 79 lines aren’t shown here.

arch/arm/mm/fsr-3level.c+68−0

This diff is large: its 69 lines aren’t shown here.

arch/arm/mm/idmap.c+58−35

This diff is large: its 136 lines aren’t shown here.

arch/arm/mm/init.c+22−29

This diff is large: its 99 lines aren’t shown here.

arch/arm/mm/iomap.c+0−21

This diff is large: its 28 lines aren’t shown here.

arch/arm/mm/ioremap.c+75−44

This diff is large: its 233 lines aren’t shown here.

arch/arm/mm/mm.h+14−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/mm/mmap.c+168−5

This diff is large: its 200 lines aren’t shown here.

arch/arm/mm/mmu.c+82−15

This diff is large: its 274 lines aren’t shown here.

arch/arm/mm/nommu.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/mm/pgd.c+47−4

This diff is large: its 94 lines aren’t shown here.

arch/arm/mm/proc-arm1020.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm1020e.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm1022.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm1026.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm6_7.S+4−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/mm/proc-arm720.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm740.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm7tdmi.S+3−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/mm/proc-arm920.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm922.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm925.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm926.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm940.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm946.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-arm9tdmi.S+3−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/mm/proc-fa526.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-feroceon.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-macros.S+3−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/mm/proc-mohawk.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-sa110.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-sa1100.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-v6.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-v7-2level.S+171−0

This diff is large: its 172 lines aren’t shown here.

arch/arm/mm/proc-v7-3level.S+150−0

This diff is large: its 151 lines aren’t shown here.

arch/arm/mm/proc-v7.S+33−157

This diff is large: its 295 lines aren’t shown here.

arch/arm/mm/proc-xsc3.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mm/proc-xscale.S+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/nwfpe/entry.S+5−3

This diff is large: its 24 lines aren’t shown here.

arch/arm/nwfpe/fpopcode.c+0−26

This diff is large: its 30 lines aren’t shown here.

arch/arm/nwfpe/fpopcode.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/plat-iop/Makefile+2−2

This diff is large: its 24 lines aren’t shown here.

arch/arm/plat-iop/io.c+0−59

This diff is large: its 60 lines aren’t shown here.

arch/arm/plat-iop/pci.c+4−4

This diff is large: its 21 lines aren’t shown here.

arch/arm/plat-iop/restart.c+19−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/plat-iop/time.c+3−13

This diff is large: its 41 lines aren’t shown here.

arch/arm/plat-mxc/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-mxc/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-mxc/gic.c+0−41

This diff is large: its 42 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/common.h+9−3

This diff is large: its 40 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/entry-macro.S+0−11

This diff is large: its 20 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/iomux-mx25.h+4−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx1.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx3fb.h+15−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mxc.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/system.h+0−2

This diff is large: its 7 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/vmalloc.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/arm/plat-mxc/system.c+2−9

This diff is large: its 28 lines aren’t shown here.

arch/arm/plat-mxc/time.c+3−12

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-mxc/tzic.c+29−11

This diff is large: its 74 lines aren’t shown here.

arch/arm/plat-nomadik/include/plat/ste_dma40.h+8−3

This diff is large: its 46 lines aren’t shown here.

arch/arm/plat-nomadik/timer.c+5−15

This diff is large: its 47 lines aren’t shown here.

arch/arm/plat-omap/Makefile+1−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/plat-omap/common.c+11−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-omap/counter_32k.c+3−37

This diff is large: its 62 lines aren’t shown here.

arch/arm/plat-omap/cpu-omap.c+0−171

This diff is large: its 172 lines aren’t shown here.

arch/arm/plat-omap/devices.c+2−3

This diff is large: its 24 lines aren’t shown here.

arch/arm/plat-omap/dma.c+21−1

This diff is large: its 37 lines aren’t shown here.

arch/arm/plat-omap/include/plat/am33xx.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-omap/include/plat/clkdev_omap.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/include/plat/clock.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/plat-omap/include/plat/common.h+0−83

This diff is large: its 98 lines aren’t shown here.

arch/arm/plat-omap/include/plat/cpu.h+56−0

This diff is large: its 144 lines aren’t shown here.

arch/arm/plat-omap/include/plat/hardware.h+2−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-omap/include/plat/io.h+12−76

This diff is large: its 119 lines aren’t shown here.

arch/arm/plat-omap/include/plat/iommu.h+28−3

This diff is large: its 51 lines aren’t shown here.

arch/arm/plat-omap/include/plat/iovmm.h+6−6

This diff is large: its 25 lines aren’t shown here.

arch/arm/plat-omap/include/plat/irqs.h+1−15

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-omap/include/plat/mmc.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap-secure.h+13−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap-serial.h+31−6

This diff is large: its 87 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap34xx.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap44xx.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap_hwmod.h+6−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/plat-omap/include/plat/serial.h+13−14

This diff is large: its 65 lines aren’t shown here.

arch/arm/plat-omap/include/plat/sram.h+5−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/plat-omap/include/plat/system.h+0−2

This diff is large: its 7 lines aren’t shown here.

arch/arm/plat-omap/include/plat/ti81xx.hrenamed from arch/arm/plat-omap/include/plat/ti816x.h+9−9

This diff is large: its 31 lines aren’t shown here.

arch/arm/plat-omap/include/plat/uncompress.h+7−4

This diff is large: its 25 lines aren’t shown here.

arch/arm/plat-omap/include/plat/usb.h+32−3

This diff is large: its 56 lines aren’t shown here.

arch/arm/plat-omap/io.c+0−159

This diff is large: its 160 lines aren’t shown here.

arch/arm/plat-omap/sram.c+13−4

This diff is large: its 47 lines aren’t shown here.

arch/arm/plat-orion/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-orion/addr-map.c+174−0

This diff is large: its 175 lines aren’t shown here.

arch/arm/plat-orion/common.c+9−34

This diff is large: its 187 lines aren’t shown here.

arch/arm/plat-orion/include/plat/addr-map.h+53−0

This diff is large: its 54 lines aren’t shown here.

arch/arm/plat-orion/include/plat/audio.h+0−3

This diff is large: its 12 lines aren’t shown here.

arch/arm/plat-orion/include/plat/common.h+4−13

This diff is large: its 63 lines aren’t shown here.

arch/arm/plat-orion/include/plat/ehci-orion.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-orion/include/plat/mv_xor.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/plat-orion/include/plat/mvsdio.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-orion/include/plat/pcie.h+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/plat-orion/pcie.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/arm/plat-orion/time.c+3−18

This diff is large: its 44 lines aren’t shown here.

arch/arm/plat-pxa/include/plat/gpio-pxa.h+0−44

This diff is large: its 45 lines aren’t shown here.

arch/arm/plat-pxa/include/plat/gpio.h+0−30

This diff is large: its 31 lines aren’t shown here.

arch/arm/plat-s3c24xx/common-smdk.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-s3c24xx/cpu-freq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-s3c24xx/cpu.c+0−25

This diff is large: its 45 lines aren’t shown here.

arch/arm/plat-s3c24xx/dma.c+1−2

This diff is large: its 13 lines aren’t shown here.

arch/arm/plat-s3c24xx/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-s3c24xx/pm-simtec.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-s3c24xx/s3c2410-clock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-s3c24xx/s3c2412-iotiming.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-s3c24xx/s3c2443-clock.c+26−13

This diff is large: its 88 lines aren’t shown here.

arch/arm/plat-s5p/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-s5p/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-s5p/clock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-s5p/cpu.c+0−144

This diff is large: its 145 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/s5p-time.c+3−16

This diff is large: its 46 lines aren’t shown here.

arch/arm/plat-samsung/Kconfig+22−2

This diff is large: its 47 lines aren’t shown here.

arch/arm/plat-samsung/clock-clksrc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/clock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/devs.c+128−0

This diff is large: its 146 lines aren’t shown here.

arch/arm/plat-samsung/dma-ops.c+10−9

This diff is large: its 43 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/cpu.h+14−20

This diff is large: its 51 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/devs.h+2−7

This diff is large: its 44 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/dma-ops.h+4−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/dma-pl330.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/dma-s3c24xx.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/dma.h+5−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/exynos4.h+0−35

This diff is large: its 36 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/irqs.h+2−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/keypad.h+1−26

This diff is large: its 34 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/pm.h+7−1

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/regs-serial.h+22−23

This diff is large: its 101 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/reset.h+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s3c2412.h+3−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s3c2416.h+2−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s3c2443.h+2−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s3c6400.h+0−36

This diff is large: its 37 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s3c6410.h+0−29

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s3c64xx-spi.h+18−8

This diff is large: its 60 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s5p6440.h+0−36

This diff is large: its 37 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s5p6450.h+0−36

This diff is large: its 37 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s5pc100.h+0−33

This diff is large: its 34 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/s5pv210.h+0−33

This diff is large: its 34 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/sdhci.h+45−31

This diff is large: its 244 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/system-reset.h+0−31

This diff is large: its 32 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/udc.h+1−14

This diff is large: its 22 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/watchdog-reset.h+1−0

This diff is large: its 8 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/pm-gpio.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/wakeup-mask.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-spear/Makefile+1−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-spear/include/plat/system.h+0−15

This diff is large: its 27 lines aren’t shown here.

arch/arm/plat-spear/include/plat/vmalloc.h+0−19

This diff is large: its 20 lines aren’t shown here.

arch/arm/plat-spear/restart.c+27−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/plat-tcc/Kconfig+0−20

This diff is large: its 21 lines aren’t shown here.

arch/arm/plat-tcc/Makefile+0−3

This diff is large: its 4 lines aren’t shown here.

arch/arm/plat-tcc/clock.c+0−179

This diff is large: its 180 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/clock.h+0−48

This diff is large: its 49 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/debug-macro.S+0−32

This diff is large: its 33 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/entry-macro.S+0−68

This diff is large: its 69 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/hardware.h+0−43

This diff is large: its 44 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/io.h+0−23

This diff is large: its 24 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/irqs.h+0−83

This diff is large: its 84 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/system.h+0−31

This diff is large: its 32 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/tcc8k-regs.h+0−807

This diff is large: its 808 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/timex.h+0−5

This diff is large: its 6 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/uncompress.h+0−34

This diff is large: its 35 lines aren’t shown here.

arch/arm/plat-tcc/include/mach/vmalloc.h+0−10

This diff is large: its 11 lines aren’t shown here.

arch/arm/plat-tcc/system.c+0−25

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-versatile/headsmp.S+1−0

This diff is large: its 5 lines aren’t shown here.

arch/arm/plat-versatile/sched-clock.c+6−23

This diff is large: its 48 lines aren’t shown here.

arch/arm/tools/mach-types+378−335

This diff is large: its 826 lines aren’t shown here.

arch/avr32/boards/atngw100/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/boards/atstk1000/atstk1002.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/boards/favr-32/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/boards/hammerhead/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/boards/merisc/merisc_sysfs.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/avr32/boards/merisc/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/boards/mimc200/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/include/asm/ipcbuf.h+1−29

This diff is large: its 31 lines aren’t shown here.

arch/avr32/include/asm/socket.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/avr32/include/asm/system.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/avr32/include/asm/types.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/avr32/kernel/cpu.c+37−37

This diff is large: its 173 lines aren’t shown here.

arch/avr32/kernel/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/kernel/traps.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/mach-at32ap/at32ap700x.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/avr32/mach-at32ap/include/mach/board.h+2−5

This diff is large: its 22 lines aren’t shown here.

arch/blackfin/configs/BF518F-EZBRD_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF526-EZBRD_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF527-AD7160-EVAL_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF527-EZKIT-V2_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF527-EZKIT_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF533-EZKIT_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF533-STAMP_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF537-STAMP_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF538-EZKIT_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF548-EZKIT_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF561-ACVILON_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF561-EZKIT-SMP_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BF561-EZKIT_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/BlackStamp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/CM-BF527_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/CM-BF533_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/CM-BF537E_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/CM-BF537U_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/CM-BF548_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/CM-BF561_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/DNP5370_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/H8606_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/IP0X_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/PNAV-10_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/SRV1_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/TCM-BF518_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/configs/TCM-BF537_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/include/asm/bfin_serial.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/blackfin/include/asm/cpu.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/blackfin/include/asm/pci.h+0−4

This diff is large: its 11 lines aren’t shown here.

arch/blackfin/include/asm/smp.h+4−1

This diff is large: its 17 lines aren’t shown here.

arch/blackfin/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/blackfin/kernel/setup.c+12−4

This diff is large: its 23 lines aren’t shown here.

arch/blackfin/kernel/time-ts.c+7−1

This diff is large: its 29 lines aren’t shown here.

arch/blackfin/mach-bf518/boards/ezbrd.c+6−4

This diff is large: its 45 lines aren’t shown here.

arch/blackfin/mach-bf518/boards/tcm-bf518.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/ad7160eval.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/cm_bf527.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/ezbrd.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/ezkit.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/tll6527m.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/H8606.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/blackstamp.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/cm_bf533.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/ezkit.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/ip0x.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/stamp.c+166−13

This diff is large: its 251 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/cm_bf537e.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/cm_bf537u.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/dnp5370.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/minotaur.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/pnav10.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/stamp.c+74−4

This diff is large: its 120 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/tcm_bf537.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf538/boards/ezkit.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf548/boards/cm_bf548.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf548/boards/ezkit.c+71−2

This diff is large: its 97 lines aren’t shown here.

arch/blackfin/mach-bf561/boards/acvilon.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf561/boards/cm_bf561.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf561/boards/ezkit.c+98−3

This diff is large: its 136 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/pll.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf561/smp.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/blackfin/mach-common/smp.c+44−17

This diff is large: its 137 lines aren’t shown here.

arch/c6x/Kconfig+174−0

This diff is large: its 175 lines aren’t shown here.

arch/c6x/Makefile+60−0

This diff is large: its 61 lines aren’t shown here.

arch/c6x/boot/Makefile+30−0

This diff is large: its 31 lines aren’t shown here.

arch/c6x/boot/dts/dsk6455.dts+62−0

This diff is large: its 63 lines aren’t shown here.

arch/c6x/boot/dts/evmc6457.dts+48−0

This diff is large: its 49 lines aren’t shown here.

arch/c6x/boot/dts/evmc6472.dts+73−0

This diff is large: its 74 lines aren’t shown here.

arch/c6x/boot/dts/evmc6474.dts+58−0

This diff is large: its 59 lines aren’t shown here.

arch/c6x/boot/dts/tms320c6455.dtsi+96−0

This diff is large: its 97 lines aren’t shown here.

arch/c6x/boot/dts/tms320c6457.dtsi+68−0

This diff is large: its 69 lines aren’t shown here.

arch/c6x/boot/dts/tms320c6472.dtsi+134−0

This diff is large: its 135 lines aren’t shown here.

arch/c6x/boot/dts/tms320c6474.dtsi+89−0

This diff is large: its 90 lines aren’t shown here.

arch/c6x/boot/linked_dtb.S+2−0

This diff is large: its 3 lines aren’t shown here.

arch/c6x/configs/dsk6455_defconfig+44−0

This diff is large: its 45 lines aren’t shown here.

arch/c6x/configs/evmc6457_defconfig+41−0

This diff is large: its 42 lines aren’t shown here.

arch/c6x/configs/evmc6472_defconfig+42−0

This diff is large: its 43 lines aren’t shown here.

arch/c6x/configs/evmc6474_defconfig+42−0

This diff is large: its 43 lines aren’t shown here.

arch/c6x/include/asm/Kbuild+54−0

This diff is large: its 55 lines aren’t shown here.

arch/c6x/include/asm/asm-offsets.h+1−0

This diff is large: its 2 lines aren’t shown here.

arch/c6x/include/asm/bitops.h+105−0

This diff is large: its 106 lines aren’t shown here.

arch/c6x/include/asm/byteorder.h+12−0

This diff is large: its 13 lines aren’t shown here.

arch/c6x/include/asm/cache.h+90−0

This diff is large: its 91 lines aren’t shown here.

arch/c6x/include/asm/cacheflush.h+65−0

This diff is large: its 66 lines aren’t shown here.

arch/c6x/include/asm/checksum.h+34−0

This diff is large: its 35 lines aren’t shown here.

arch/c6x/include/asm/clkdev.h+22−0

This diff is large: its 23 lines aren’t shown here.

arch/c6x/include/asm/clock.h+148−0

This diff is large: its 149 lines aren’t shown here.

arch/c6x/include/asm/delay.h+67−0

This diff is large: its 68 lines aren’t shown here.

arch/c6x/include/asm/dma-mapping.h+91−0

This diff is large: its 92 lines aren’t shown here.

arch/c6x/include/asm/dscr.h+34−0

This diff is large: its 35 lines aren’t shown here.

arch/c6x/include/asm/elf.h+113−0

This diff is large: its 114 lines aren’t shown here.

arch/c6x/include/asm/ftrace.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/c6x/include/asm/hardirq.h+20−0

This diff is large: its 21 lines aren’t shown here.

arch/c6x/include/asm/irq.h+302−0

This diff is large: its 303 lines aren’t shown here.

arch/c6x/include/asm/irqflags.h+72−0

This diff is large: its 73 lines aren’t shown here.

arch/c6x/include/asm/linkage.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/c6x/include/asm/megamod-pic.h+9−0

This diff is large: its 10 lines aren’t shown here.

arch/c6x/include/asm/mmu.h+18−0

This diff is large: its 19 lines aren’t shown here.

arch/c6x/include/asm/module.h+33−0

This diff is large: its 34 lines aren’t shown here.

arch/c6x/include/asm/mutex.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/c6x/include/asm/page.h+11−0

This diff is large: its 12 lines aren’t shown here.

arch/c6x/include/asm/pgtable.h+81−0

This diff is large: its 82 lines aren’t shown here.

arch/c6x/include/asm/processor.h+132−0

This diff is large: its 133 lines aren’t shown here.

arch/c6x/include/asm/procinfo.h+28−0

This diff is large: its 29 lines aren’t shown here.

arch/c6x/include/asm/prom.h+1−0

This diff is large: its 2 lines aren’t shown here.

arch/c6x/include/asm/ptrace.h+174−0

This diff is large: its 175 lines aren’t shown here.

arch/c6x/include/asm/sections.h+12−0

This diff is large: its 13 lines aren’t shown here.

arch/c6x/include/asm/setup.h+32−0

This diff is large: its 33 lines aren’t shown here.

arch/c6x/include/asm/sigcontext.h+80−0

This diff is large: its 81 lines aren’t shown here.

arch/c6x/include/asm/signal.h+17−0

This diff is large: its 18 lines aren’t shown here.

arch/c6x/include/asm/soc.h+35−0

This diff is large: its 36 lines aren’t shown here.

arch/c6x/include/asm/string.h+21−0

This diff is large: its 22 lines aren’t shown here.

arch/c6x/include/asm/swab.h+54−0

This diff is large: its 55 lines aren’t shown here.

arch/c6x/include/asm/syscall.h+123−0

This diff is large: its 124 lines aren’t shown here.

arch/c6x/include/asm/syscalls.h+55−0

This diff is large: its 56 lines aren’t shown here.

arch/c6x/include/asm/system.h+168−0

This diff is large: its 169 lines aren’t shown here.

arch/c6x/include/asm/thread_info.h+121−0

This diff is large: its 122 lines aren’t shown here.

arch/c6x/include/asm/timer64.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/c6x/include/asm/timex.h+33−0

This diff is large: its 34 lines aren’t shown here.

arch/c6x/include/asm/tlb.h+8−0

This diff is large: its 9 lines aren’t shown here.

arch/c6x/include/asm/traps.h+36−0

This diff is large: its 37 lines aren’t shown here.

arch/c6x/include/asm/uaccess.h+107−0

This diff is large: its 108 lines aren’t shown here.

arch/c6x/include/asm/unaligned.h+170−0

This diff is large: its 171 lines aren’t shown here.

arch/c6x/include/asm/unistd.h+26−0

This diff is large: its 27 lines aren’t shown here.

arch/c6x/kernel/Makefile+12−0

This diff is large: its 13 lines aren’t shown here.

arch/c6x/kernel/asm-offsets.c+123−0

This diff is large: its 124 lines aren’t shown here.

arch/c6x/kernel/c6x_ksyms.c+66−0

This diff is large: its 67 lines aren’t shown here.

arch/c6x/kernel/devicetree.c+53−0

This diff is large: its 54 lines aren’t shown here.

arch/c6x/kernel/dma.c+153−0

This diff is large: its 154 lines aren’t shown here.

arch/c6x/kernel/entry.S+803−0

This diff is large: its 804 lines aren’t shown here.

arch/c6x/kernel/head.S+84−0

This diff is large: its 85 lines aren’t shown here.

arch/c6x/kernel/irq.c+728−0

This diff is large: its 729 lines aren’t shown here.

arch/c6x/kernel/module.c+123−0

This diff is large: its 124 lines aren’t shown here.

arch/c6x/kernel/process.c+265−0

This diff is large: its 266 lines aren’t shown here.

arch/c6x/kernel/ptrace.c+187−0

This diff is large: its 188 lines aren’t shown here.

arch/c6x/kernel/setup.c+510−0

This diff is large: its 511 lines aren’t shown here.

arch/c6x/kernel/signal.c+377−0

This diff is large: its 378 lines aren’t shown here.

arch/c6x/kernel/soc.c+91−0

This diff is large: its 92 lines aren’t shown here.

arch/c6x/kernel/switch_to.S+74−0

This diff is large: its 75 lines aren’t shown here.

arch/c6x/kernel/sys_c6x.c+74−0

This diff is large: its 75 lines aren’t shown here.

arch/c6x/kernel/time.c+65−0

This diff is large: its 66 lines aren’t shown here.

arch/c6x/kernel/traps.c+423−0

This diff is large: its 424 lines aren’t shown here.

arch/c6x/kernel/vectors.S+81−0

This diff is large: its 82 lines aren’t shown here.

arch/c6x/kernel/vmlinux.lds.S+162−0

This diff is large: its 163 lines aren’t shown here.

arch/c6x/lib/Makefile+7−0

This diff is large: its 8 lines aren’t shown here.

arch/c6x/lib/checksum.c+36−0

This diff is large: its 37 lines aren’t shown here.

arch/c6x/lib/csum_64plus.S+419−0

This diff is large: its 420 lines aren’t shown here.

arch/c6x/lib/divi.S+53−0

This diff is large: its 54 lines aren’t shown here.

arch/c6x/lib/divremi.S+46−0

This diff is large: its 47 lines aren’t shown here.

arch/c6x/lib/divremu.S+87−0

This diff is large: its 88 lines aren’t shown here.

arch/c6x/lib/divu.S+98−0

This diff is large: its 99 lines aren’t shown here.

arch/c6x/lib/llshl.S+37−0

This diff is large: its 38 lines aren’t shown here.

arch/c6x/lib/llshr.S+38−0

This diff is large: its 39 lines aren’t shown here.

arch/c6x/lib/llshru.S+38−0

This diff is large: its 39 lines aren’t shown here.

arch/c6x/lib/memcpy_64plus.S+46−0

This diff is large: its 47 lines aren’t shown here.

arch/c6x/lib/mpyll.S+49−0

This diff is large: its 50 lines aren’t shown here.

arch/c6x/lib/negll.S+31−0

This diff is large: its 32 lines aren’t shown here.

arch/c6x/lib/pop_rts.S+32−0

This diff is large: its 33 lines aren’t shown here.

arch/c6x/lib/push_rts.S+31−0

This diff is large: its 32 lines aren’t shown here.

arch/c6x/lib/remi.S+64−0

This diff is large: its 65 lines aren’t shown here.

arch/c6x/lib/remu.S+82−0

This diff is large: its 83 lines aren’t shown here.

arch/c6x/lib/strasgi.S+89−0

This diff is large: its 90 lines aren’t shown here.

arch/c6x/lib/strasgi_64plus.S+39−0

This diff is large: its 40 lines aren’t shown here.

arch/c6x/mm/Makefile+5−0

This diff is large: its 6 lines aren’t shown here.

arch/c6x/mm/dma-coherent.c+143−0

This diff is large: its 144 lines aren’t shown here.

arch/c6x/mm/init.c+113−0

This diff is large: its 114 lines aren’t shown here.

arch/c6x/platforms/Kconfig+16−0

This diff is large: its 17 lines aren’t shown here.

arch/c6x/platforms/Makefile+12−0

This diff is large: its 13 lines aren’t shown here.

arch/c6x/platforms/cache.c+445−0

This diff is large: its 446 lines aren’t shown here.

arch/c6x/platforms/dscr.c+598−0

This diff is large: its 599 lines aren’t shown here.

arch/c6x/platforms/emif.c+87−0

This diff is large: its 88 lines aren’t shown here.

arch/c6x/platforms/megamod-pic.c+349−0

This diff is large: its 350 lines aren’t shown here.

arch/c6x/platforms/platform.c+17−0

This diff is large: its 18 lines aren’t shown here.

arch/c6x/platforms/pll.c+444−0

This diff is large: its 445 lines aren’t shown here.

arch/c6x/platforms/plldata.c+404−0

This diff is large: its 405 lines aren’t shown here.

arch/c6x/platforms/timer64.c+244−0

This diff is large: its 245 lines aren’t shown here.

arch/cris/Kconfig+1−4

This diff is large: its 19 lines aren’t shown here.

arch/cris/Kconfig.debug+0−1

This diff is large: its 7 lines aren’t shown here.

arch/cris/arch-v32/drivers/axisflashmap.c+3−4

This diff is large: its 21 lines aren’t shown here.

arch/cris/include/asm/ipcbuf.h+1−29

This diff is large: its 31 lines aren’t shown here.

arch/cris/include/asm/socket.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/cris/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/cris/include/asm/types.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/frv/Kconfig+2−10

This diff is large: its 33 lines aren’t shown here.

arch/frv/include/asm/io.h+1−1

This diff is large: its 16 lines aren’t shown here.

arch/frv/include/asm/ipcbuf.h+1−30

This diff is large: its 32 lines aren’t shown here.

arch/frv/include/asm/param.h+1−15

This diff is large: its 24 lines aren’t shown here.

arch/frv/include/asm/socket.h+3−0

This diff is large: its 9 lines aren’t shown here.

arch/frv/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/frv/include/asm/types.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/frv/mb93090-mb00/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/frv/mb93090-mb00/pci-frv.c+0−20

This diff is large: its 24 lines aren’t shown here.

arch/frv/mb93090-mb00/pci-frv.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/frv/mb93090-mb00/pci-iomap.c+0−29

This diff is large: its 30 lines aren’t shown here.

arch/frv/mb93090-mb00/pci-vdk.c+5−6

This diff is large: its 32 lines aren’t shown here.

arch/h8300/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/h8300/include/asm/ipcbuf.h+1−29

This diff is large: its 31 lines aren’t shown here.

arch/h8300/include/asm/pci.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/h8300/include/asm/socket.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/h8300/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/h8300/include/asm/types.h+0−17

This diff is large: its 28 lines aren’t shown here.

arch/hexagon/Kconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/ia64/Kconfig+1−4

This diff is large: its 19 lines aren’t shown here.

arch/ia64/hp/common/aml_nfw.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/include/asm/intrinsics.h+13−8

This diff is large: its 30 lines aren’t shown here.

arch/ia64/include/asm/iommu.h+2−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/include/asm/ipcbuf.h+1−28

This diff is large: its 30 lines aren’t shown here.

arch/ia64/include/asm/pci.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/ia64/include/asm/processor.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/ptrace.h+12−1

This diff is large: its 20 lines aren’t shown here.

arch/ia64/include/asm/socket.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/ia64/include/asm/types.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/ia64/include/asm/unistd.h+2−1

This diff is large: its 14 lines aren’t shown here.

arch/ia64/include/asm/xen/interface.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/acpi.c+6−4

This diff is large: its 29 lines aren’t shown here.

arch/ia64/kernel/entry.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/err_inject.c+26−26

This diff is large: its 155 lines aren’t shown here.

arch/ia64/kernel/machine_kexec.c+2−2

This diff is large: its 14 lines aren’t shown here.

arch/ia64/kernel/pci-dma.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/kernel/perfmon.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/ptrace.c+2−16

This diff is large: its 33 lines aren’t shown here.

arch/ia64/kernel/setup.c+19−0

This diff is large: its 40 lines aren’t shown here.

arch/ia64/kernel/topology.c+5−5

This diff is large: its 39 lines aren’t shown here.

arch/ia64/kvm/kvm-ia64.c+5−7

This diff is large: its 42 lines aren’t shown here.

arch/ia64/pci/pci.c+20−23

This diff is large: its 95 lines aren’t shown here.

arch/ia64/sn/kernel/irq.c+2−3

This diff is large: its 15 lines aren’t shown here.

arch/ia64/sn/pci/pcibr/pcibr_provider.c+1−2

This diff is large: its 14 lines aren’t shown here.

arch/ia64/sn/pci/tioca_provider.c+2−2

This diff is large: its 14 lines aren’t shown here.

arch/m32r/include/asm/ipcbuf.h+1−29

This diff is large: its 31 lines aren’t shown here.

arch/m32r/include/asm/param.h+1−17

This diff is large: its 25 lines aren’t shown here.

arch/m32r/include/asm/socket.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/m32r/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/m32r/include/asm/types.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/m68k/Kconfig+15−5

This diff is large: its 66 lines aren’t shown here.

arch/m68k/Kconfig.cpu+50−28

This diff is large: its 226 lines aren’t shown here.

arch/m68k/Kconfig.debug+19−8

This diff is large: its 41 lines aren’t shown here.

arch/m68k/Kconfig.devices+6−40

This diff is large: its 84 lines aren’t shown here.

arch/m68k/Kconfig.machine+4−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/amiga/config.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/m68k/atari/ataints.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/m68k/atari/debug.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/configs/amiga_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/configs/apollo_defconfig+0−2

This diff is large: its 9 lines aren’t shown here.

arch/m68k/configs/atari_defconfig+0−3

This diff is large: its 11 lines aren’t shown here.

arch/m68k/configs/multi_defconfig+0−5

This diff is large: its 14 lines aren’t shown here.

arch/m68k/configs/mvme16x_defconfig+0−2

This diff is large: its 9 lines aren’t shown here.

arch/m68k/emu/nfeth.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/hp300/config.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/m68k/include/asm/anchor.h+0−112

This diff is large: its 113 lines aren’t shown here.

arch/m68k/include/asm/atarihw.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/m68k/include/asm/atomic.h+10−0

This diff is large: its 17 lines aren’t shown here.

arch/m68k/include/asm/blinken.h+4−4

This diff is large: its 20 lines aren’t shown here.

arch/m68k/include/asm/cacheflush_mm.h+83−5

This diff is large: its 128 lines aren’t shown here.

arch/m68k/include/asm/checksum.h+5−26

This diff is large: its 57 lines aren’t shown here.

arch/m68k/include/asm/div64.h+4−4

This diff is large: its 21 lines aren’t shown here.

arch/m68k/include/asm/elf.h+3−3

This diff is large: its 14 lines aren’t shown here.

arch/m68k/include/asm/entry.h+9−1

This diff is large: its 26 lines aren’t shown here.

arch/m68k/include/asm/fpu.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/m68k/include/asm/gpio.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/m68k/include/asm/ipcbuf.h+1−29

This diff is large: its 31 lines aren’t shown here.

arch/m68k/include/asm/irq.h+3−2

This diff is large: its 19 lines aren’t shown here.

arch/m68k/include/asm/m54xxacr.h+31−1

This diff is large: its 67 lines aren’t shown here.

arch/m68k/include/asm/mac_baboon.h+6−0

This diff is large: its 11 lines aren’t shown here.

arch/m68k/include/asm/mac_iop.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/m68k/include/asm/mac_oss.h+4−19

This diff is large: its 35 lines aren’t shown here.

arch/m68k/include/asm/mac_psc.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/m68k/include/asm/mac_via.h+9−0

This diff is large: its 16 lines aren’t shown here.

arch/m68k/include/asm/macintosh.h+2−8

This diff is large: its 27 lines aren’t shown here.

arch/m68k/include/asm/macints.h+3−3

This diff is large: its 20 lines aren’t shown here.

arch/m68k/include/asm/mcf_pgalloc.h+102−0

This diff is large: its 103 lines aren’t shown here.

arch/m68k/include/asm/mcf_pgtable.h+425−0

This diff is large: its 426 lines aren’t shown here.

arch/m68k/include/asm/mcfmmu.h+112−0

This diff is large: its 113 lines aren’t shown here.

arch/m68k/include/asm/mmu_context.h+201−49

This diff is large: its 265 lines aren’t shown here.

arch/m68k/include/asm/motorola_pgtable.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/include/asm/page.h+7−3

This diff is large: its 25 lines aren’t shown here.

arch/m68k/include/asm/page_no.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/m68k/include/asm/page_offset.h+4−6

This diff is large: its 16 lines aren’t shown here.

arch/m68k/include/asm/pgalloc.h+3−1

This diff is large: its 11 lines aren’t shown here.

arch/m68k/include/asm/pgtable_mm.h+24−6

This diff is large: its 84 lines aren’t shown here.

arch/m68k/include/asm/processor.h+10−8

This diff is large: its 47 lines aren’t shown here.

arch/m68k/include/asm/segment.h+16−14

This diff is large: its 55 lines aren’t shown here.

arch/m68k/include/asm/serial.h+2−0

This diff is large: its 12 lines aren’t shown here.

arch/m68k/include/asm/setup.h+14−0

This diff is large: its 66 lines aren’t shown here.

arch/m68k/include/asm/sigcontext.h+0−4

This diff is large: its 12 lines aren’t shown here.

arch/m68k/include/asm/socket.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/include/asm/thread_info.h+3−31

This diff is large: its 76 lines aren’t shown here.

arch/m68k/include/asm/tlbflush.h+17−6

This diff is large: its 62 lines aren’t shown here.

arch/m68k/include/asm/traps.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/include/asm/types.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/m68k/include/asm/uaccess_mm.h+29−13

This diff is large: its 102 lines aren’t shown here.

arch/m68k/include/asm/ucontext.h+0−4

This diff is large: its 12 lines aren’t shown here.

arch/m68k/include/asm/unistd.h+5−5

This diff is large: its 33 lines aren’t shown here.

arch/m68k/kernel/Makefile+13−8

This diff is large: its 33 lines aren’t shown here.

arch/m68k/kernel/asm-offsets.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/m68k/kernel/entry.S+1−1

This diff is large: its 6 lines aren’t shown here.

arch/m68k/kernel/entry_mm.S+21−10

This diff is large: its 103 lines aren’t shown here.

arch/m68k/kernel/entry_no.S+3−6

This diff is large: its 30 lines aren’t shown here.

arch/m68k/kernel/head.S+59−58

This diff is large: its 251 lines aren’t shown here.

arch/m68k/kernel/init_task.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/m68k/kernel/m68k_ksyms.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/kernel/process_mm.c+45−30

This diff is large: its 103 lines aren’t shown here.

arch/m68k/kernel/ptrace_mm.c+18−0

This diff is large: its 29 lines aren’t shown here.

arch/m68k/kernel/setup_mm.c+20−2

This diff is large: its 78 lines aren’t shown here.

arch/m68k/kernel/setup_no.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/signal_mm.c+151−53

This diff is large: its 330 lines aren’t shown here.

arch/m68k/kernel/time.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/m68k/kernel/time_no.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/m68k/kernel/traps.c+104−0

This diff is large: its 118 lines aren’t shown here.

arch/m68k/kernel/vmlinux-nommu.ldsrenamed from arch/m68k/kernel/vmlinux.lds_no.S+8−0

This diff is large: its 22 lines aren’t shown here.

arch/m68k/kernel/vmlinux-std.lds+2−0

This diff is large: its 10 lines aren’t shown here.

arch/m68k/kernel/vmlinux-sun3.lds+2−0

This diff is large: its 10 lines aren’t shown here.

arch/m68k/kernel/vmlinux.lds.S+12−3

This diff is large: its 18 lines aren’t shown here.

arch/m68k/kernel/vmlinux.lds_mm.S+0−10

This diff is large: its 11 lines aren’t shown here.

arch/m68k/lib/Makefile+6−4

This diff is large: its 16 lines aren’t shown here.

arch/m68k/lib/checksum.crenamed from arch/m68k/lib/checksum_mm.c+0−0

File renamed without changes.

arch/m68k/lib/checksum_no.c+0−156

This diff is large: its 157 lines aren’t shown here.

arch/m68k/lib/uaccess.c+11−11

This diff is large: its 79 lines aren’t shown here.

arch/m68k/mac/baboon.c+8−33

This diff is large: its 82 lines aren’t shown here.

arch/m68k/mac/config.c+62−31

This diff is large: its 288 lines aren’t shown here.

arch/m68k/mac/iop.c+2−6

This diff is large: its 31 lines aren’t shown here.

arch/m68k/mac/macints.c+49−148

This diff is large: its 310 lines aren’t shown here.

arch/m68k/mac/oss.c+52−105

This diff is large: its 244 lines aren’t shown here.

arch/m68k/mac/psc.c+0−17

This diff is large: its 21 lines aren’t shown here.

arch/m68k/mac/via.c+122−133

This diff is large: its 343 lines aren’t shown here.

arch/m68k/mm/Makefile+5−3

This diff is large: its 12 lines aren’t shown here.

arch/m68k/mm/cache.c+21−3

This diff is large: its 38 lines aren’t shown here.

arch/m68k/mm/init_mm.c+35−1

This diff is large: its 64 lines aren’t shown here.

arch/m68k/mm/kmap.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/m68k/mm/mcfmmu.c+198−0

This diff is large: its 199 lines aren’t shown here.

arch/m68k/mm/memory.c+6−2

This diff is large: its 22 lines aren’t shown here.

arch/m68k/mvme16x/config.c+160−0

This diff is large: its 174 lines aren’t shown here.

arch/m68k/platform/54xx/config.c+47−0

This diff is large: its 68 lines aren’t shown here.

arch/m68k/platform/68328/Makefile+1−5

This diff is large: its 14 lines aren’t shown here.

arch/m68k/platform/68328/bootlogo.h+1−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/platform/68328/bootlogo.pl+0−10

This diff is large: its 11 lines aren’t shown here.

arch/m68k/platform/68328/config.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/m68k/platform/68328/head-pilot.S+2−17

This diff is large: its 40 lines aren’t shown here.

arch/m68k/platform/68328/head-rom.S+2−7

This diff is large: its 27 lines aren’t shown here.

arch/m68k/platform/coldfire/entry.S+5−2

This diff is large: its 35 lines aren’t shown here.

arch/m68k/platform/coldfire/gpio.c+5−4

This diff is large: its 27 lines aren’t shown here.

arch/m68k/platform/coldfire/head.S+49−4

This diff is large: its 102 lines aren’t shown here.

arch/m68k/platform/coldfire/sltimers.c+6−3

This diff is large: its 23 lines aren’t shown here.

arch/microblaze/Kconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/boot/Makefile+1−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/include/asm/irq.h+8−3

This diff is large: its 25 lines aren’t shown here.

arch/microblaze/include/asm/page.h+2−9

This diff is large: its 18 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−5

This diff is large: its 12 lines aren’t shown here.

arch/microblaze/include/asm/ptrace.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/microblaze/include/asm/setup.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/microblaze/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/microblaze/include/asm/unistd.h+4−1

This diff is large: its 13 lines aren’t shown here.

arch/microblaze/kernel/early_printk.c+2−2

This diff is large: its 22 lines aren’t shown here.

arch/microblaze/kernel/entry.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/kernel/intc.c+22−30

This diff is large: its 119 lines aren’t shown here.

arch/microblaze/kernel/irq.c+6−5

This diff is large: its 32 lines aren’t shown here.

arch/microblaze/kernel/module.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/kernel/ptrace.c+3−6

This diff is large: its 23 lines aren’t shown here.

arch/microblaze/kernel/reset.c+2−41

This diff is large: its 53 lines aren’t shown here.

arch/microblaze/kernel/setup.c+29−10

This diff is large: its 75 lines aren’t shown here.

arch/microblaze/kernel/syscall_table.S+3−0

This diff is large: its 7 lines aren’t shown here.

arch/microblaze/kernel/timer.c+6−15

This diff is large: its 48 lines aren’t shown here.

arch/microblaze/lib/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/lib/cmpdi2.c+26−0

This diff is large: its 27 lines aren’t shown here.

arch/microblaze/pci/iomap.c+0−19

This diff is large: its 26 lines aren’t shown here.

arch/microblaze/pci/pci-common.c+23−24

This diff is large: its 136 lines aren’t shown here.

arch/mips/Kconfig+63−28

This diff is large: its 214 lines aren’t shown here.

arch/mips/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/alchemy/Kconfig+13−47

This diff is large: its 107 lines aren’t shown here.

arch/mips/alchemy/Makefile+3−0

This diff is large: its 4 lines aren’t shown here.

arch/mips/alchemy/Platform+10−48

This diff is large: its 116 lines aren’t shown here.

arch/mips/alchemy/board-gpr.crenamed from arch/mips/alchemy/gpr/platform.c+77−4

This diff is large: its 116 lines aren’t shown here.

arch/mips/alchemy/board-mtx1.crenamed from arch/mips/alchemy/mtx-1/platform.c+88−5

This diff is large: its 138 lines aren’t shown here.

arch/mips/alchemy/board-xxs1500.c+154−0

This diff is large: its 155 lines aren’t shown here.

arch/mips/alchemy/common/Makefile+1−3

This diff is large: its 11 lines aren’t shown here.

arch/mips/alchemy/common/dbdma.c+47−2

This diff is large: its 70 lines aren’t shown here.

arch/mips/alchemy/common/gpiolib.c+42−0

This diff is large: its 70 lines aren’t shown here.

arch/mips/alchemy/common/irq.c+613−262

This diff is large: its 980 lines aren’t shown here.

arch/mips/alchemy/common/platform.c+29−2

This diff is large: its 63 lines aren’t shown here.

arch/mips/alchemy/common/power.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/alchemy/common/sleeper.S+73−0

This diff is large: its 80 lines aren’t shown here.

arch/mips/alchemy/common/time.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/mips/alchemy/common/vss.c+84−0

This diff is large: its 85 lines aren’t shown here.

arch/mips/alchemy/devboards/Makefile+7−12

This diff is large: its 23 lines aren’t shown here.

arch/mips/alchemy/devboards/bcsr.c+2−9

This diff is large: its 43 lines aren’t shown here.

arch/mips/alchemy/devboards/db1000.c+565−0

This diff is large: its 566 lines aren’t shown here.

arch/mips/alchemy/devboards/db1200.crenamed from arch/mips/alchemy/devboards/db1200/platform.c+340−61

This diff is large: its 549 lines aren’t shown here.

arch/mips/alchemy/devboards/db1200/Makefile+0−1

This diff is large: its 2 lines aren’t shown here.

arch/mips/alchemy/devboards/db1200/setup.c+0−81

This diff is large: its 82 lines aren’t shown here.

arch/mips/alchemy/devboards/db1300.c+785−0

This diff is large: its 786 lines aren’t shown here.

arch/mips/alchemy/devboards/db1550.c+498−0

This diff is large: its 499 lines aren’t shown here.

arch/mips/alchemy/devboards/db1x00/Makefile+0−8

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/devboards/db1x00/board_setup.c+0−229

This diff is large: its 230 lines aren’t shown here.

arch/mips/alchemy/devboards/db1x00/platform.c+0−316

This diff is large: its 317 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1000/Makefile+0−8

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1000/board_setup.c+0−209

This diff is large: its 210 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1100.crenamed from arch/mips/alchemy/devboards/pb1100/board_setup.c+66−26

This diff is large: its 123 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1100/Makefile+0−8

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1100/platform.c+0−77

This diff is large: its 78 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1200/Makefile+0−5

This diff is large: its 6 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1200/board_setup.c+0−174

This diff is large: its 175 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1200/platform.c+0−339

This diff is large: its 340 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1500.crenamed from arch/mips/alchemy/devboards/pb1500/board_setup.c+86−27

This diff is large: its 146 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1500/Makefile+0−8

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1500/platform.c+0−94

This diff is large: its 95 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1550.crenamed from arch/mips/alchemy/devboards/pb1550/platform.c+108−4

This diff is large: its 148 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1550/Makefile+0−8

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/devboards/pb1550/board_setup.c+0−80

This diff is large: its 81 lines aren’t shown here.

arch/mips/alchemy/devboards/platform.c+11−2

This diff is large: its 36 lines aren’t shown here.

arch/mips/alchemy/devboards/prom.c+7−4

This diff is large: its 24 lines aren’t shown here.

arch/mips/alchemy/gpr/Makefile+0−8

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/gpr/board_setup.c+0−75

This diff is large: its 76 lines aren’t shown here.

arch/mips/alchemy/gpr/init.c+0−63

This diff is large: its 64 lines aren’t shown here.

arch/mips/alchemy/mtx-1/Makefile+0−9

This diff is large: its 10 lines aren’t shown here.

arch/mips/alchemy/mtx-1/board_setup.c+0−94

This diff is large: its 95 lines aren’t shown here.

arch/mips/alchemy/mtx-1/init.c+0−66

This diff is large: its 67 lines aren’t shown here.

arch/mips/alchemy/xxs1500/Makefile+0−8

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/xxs1500/board_setup.c+0−93

This diff is large: its 94 lines aren’t shown here.

arch/mips/alchemy/xxs1500/init.c+0−63

This diff is large: its 64 lines aren’t shown here.

arch/mips/alchemy/xxs1500/platform.c+0−63

This diff is large: its 64 lines aren’t shown here.

arch/mips/ar7/gpio.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/ar7/platform.c+38−1

This diff is large: its 60 lines aren’t shown here.

arch/mips/ar7/prom.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/ar7/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/ath79/Kconfig+35−3

This diff is large: its 80 lines aren’t shown here.

arch/mips/ath79/Makefile+4−1

This diff is large: its 18 lines aren’t shown here.

arch/mips/ath79/clock.c+55−0

This diff is large: its 69 lines aren’t shown here.

arch/mips/ath79/common.c+5−0

This diff is large: its 26 lines aren’t shown here.

arch/mips/ath79/dev-ar913x-wmac.c+0−60

This diff is large: its 61 lines aren’t shown here.

arch/mips/ath79/dev-common.c+36−2

This diff is large: its 59 lines aren’t shown here.

arch/mips/ath79/dev-usb.c+197−0

This diff is large: its 198 lines aren’t shown here.

arch/mips/ath79/dev-usb.hrenamed from arch/mips/ath79/dev-ar913x-wmac.h+5−5

This diff is large: its 21 lines aren’t shown here.

arch/mips/ath79/dev-wmac.c+109−0

This diff is large: its 110 lines aren’t shown here.

arch/mips/ath79/dev-wmac.h+17−0

This diff is large: its 18 lines aren’t shown here.

arch/mips/ath79/early_printk.c+67−9

This diff is large: its 103 lines aren’t shown here.

arch/mips/ath79/gpio.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/ath79/irq.c+16−1

This diff is large: its 45 lines aren’t shown here.

arch/mips/ath79/mach-ap121.c+92−0

This diff is large: its 93 lines aren’t shown here.

arch/mips/ath79/mach-ap81.c+4−2

This diff is large: its 23 lines aren’t shown here.

arch/mips/ath79/mach-pb44.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/mips/ath79/mach-ubnt-xm.c+119−0

This diff is large: its 120 lines aren’t shown here.

arch/mips/ath79/machtypes.h+2−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/ath79/setup.c+18−4

This diff is large: its 48 lines aren’t shown here.

arch/mips/bcm47xx/setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/bcm63xx/Kconfig+4−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/bcm63xx/boards/board_bcm963xx.c+22−27

This diff is large: its 82 lines aren’t shown here.

arch/mips/bcm63xx/clk.c+67−3

This diff is large: its 111 lines aren’t shown here.

arch/mips/bcm63xx/cpu.c+91−170

This diff is large: its 339 lines aren’t shown here.

arch/mips/bcm63xx/dev-uart.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/bcm63xx/gpio.c+36−5

This diff is large: its 76 lines aren’t shown here.

arch/mips/bcm63xx/irq.c+333−70

This diff is large: its 526 lines aren’t shown here.

arch/mips/bcm63xx/prom.c+5−2

This diff is large: its 15 lines aren’t shown here.

arch/mips/bcm63xx/setup.c+26−6

This diff is large: its 45 lines aren’t shown here.

arch/mips/boot/compressed/uart-alchemy.c+4−1

This diff is large: its 11 lines aren’t shown here.

arch/mips/cavium-octeon/Kconfig+0−4

This diff is large: its 11 lines aren’t shown here.

arch/mips/cavium-octeon/dma-octeon.c+21−2

This diff is large: its 54 lines aren’t shown here.

arch/mips/cavium-octeon/executive/Makefile+6−1

This diff is large: its 12 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-cmd-queue.crenamed from drivers/staging/octeon/cvmx-cmd-queue.c+4−4

This diff is large: its 18 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-fpa.crenamed from drivers/staging/octeon/cvmx-fpa.c+0−0

File renamed without changes.

arch/mips/cavium-octeon/executive/cvmx-helper-board.crenamed from drivers/staging/octeon/cvmx-helper-board.c+27−11

This diff is large: its 83 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-fpa.crenamed from drivers/staging/octeon/cvmx-helper-fpa.c+0−0

File renamed without changes.

arch/mips/cavium-octeon/executive/cvmx-helper-loop.crenamed from drivers/staging/octeon/cvmx-helper-loop.c+3−3

This diff is large: its 14 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-npi.crenamed from drivers/staging/octeon/cvmx-helper-npi.c+3−3

This diff is large: its 15 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-rgmii.crenamed from drivers/staging/octeon/cvmx-helper-rgmii.c+9−8

This diff is large: its 35 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-sgmii.crenamed from drivers/staging/octeon/cvmx-helper-sgmii.c+11−7

This diff is large: its 41 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-spi.crenamed from drivers/staging/octeon/cvmx-helper-spi.c+15−5

This diff is large: its 35 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-util.crenamed from drivers/staging/octeon/cvmx-helper-util.c+8−8

This diff is large: its 25 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-xaui.crenamed from drivers/staging/octeon/cvmx-helper-xaui.c+19−13

This diff is large: its 59 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper.crenamed from drivers/staging/octeon/cvmx-helper.c+89−31

This diff is large: its 202 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-interrupt-decodes.crenamed from drivers/staging/octeon/cvmx-interrupt-decodes.c+5−5

This diff is large: its 17 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-interrupt-rsl.crenamed from drivers/staging/octeon/cvmx-interrupt-rsl.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-pko.crenamed from drivers/staging/octeon/cvmx-pko.c+4−4

This diff is large: its 22 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-spi.crenamed from drivers/staging/octeon/cvmx-spi.c+6−6

This diff is large: its 21 lines aren’t shown here.

arch/mips/cavium-octeon/executive/octeon-model.c+85−34

This diff is large: its 204 lines aren’t shown here.

arch/mips/cavium-octeon/setup.c+3−11

This diff is large: its 38 lines aren’t shown here.

arch/mips/cavium-octeon/smp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/db1000_defconfig+305−64

This diff is large: its 424 lines aren’t shown here.

arch/mips/configs/db1100_defconfig+0−122

This diff is large: its 123 lines aren’t shown here.

arch/mips/configs/db1300_defconfig+391−0

This diff is large: its 392 lines aren’t shown here.

arch/mips/configs/db1500_defconfig+0−128

This diff is large: its 129 lines aren’t shown here.

arch/mips/configs/db1550_defconfig+208−80

This diff is large: its 365 lines aren’t shown here.

arch/mips/configs/nlm_xlp_defconfig+570−0

This diff is large: its 571 lines aren’t shown here.

arch/mips/configs/nlm_xlr_defconfig+8−8

This diff is large: its 75 lines aren’t shown here.

arch/mips/configs/pb1200_defconfig+0−170

This diff is large: its 171 lines aren’t shown here.

arch/mips/dec/setup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/Kbuild+3−1

This diff is large: its 7 lines aren’t shown here.

arch/mips/include/asm/bmips.h+110−0

This diff is large: its 111 lines aren’t shown here.

arch/mips/include/asm/bootinfo.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/branch.h+5−0

This diff is large: its 20 lines aren’t shown here.

arch/mips/include/asm/cpu.h+5−1

This diff is large: its 20 lines aren’t shown here.

arch/mips/include/asm/gio_device.h+56−0

This diff is large: its 57 lines aren’t shown here.

arch/mips/include/asm/hazards.h+4−3

This diff is large: its 21 lines aren’t shown here.

arch/mips/include/asm/hugetlb.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/ip32/mace.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/ipcbuf.h+1−28

This diff is large: its 30 lines aren’t shown here.

arch/mips/include/asm/kprobes.h+5−0

This diff is large: its 19 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/ar71xx_regs.h+80−1

This diff is large: its 160 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/ar933x_uart.h+67−0

This diff is large: its 68 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/ar933x_uart_platform.h+18−0

This diff is large: its 19 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/ath79.h+10−1

This diff is large: its 28 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/irq.h+6−2

This diff is large: its 24 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/pci-ath724x.h+21−0

This diff is large: its 22 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/au1000.h+223−50

This diff is large: its 381 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/au1100_mmc.h+2−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/au1200fb.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/au1550nd.h+16−0

This diff is large: its 17 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h+31−0

This diff is large: its 38 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h+3−0

This diff is large: its 23 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/gpio-au1300.h+241−0

This diff is large: its 242 lines aren’t shown here.

arch/mips/include/asm/mach-au1x00/gpio.h+3−0

This diff is large: its 17 lines aren’t shown here.

arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h+382−215

This diff is large: its 821 lines aren’t shown here.

arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h+2−0

This diff is large: its 12 lines aren’t shown here.

arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h+5−7

This diff is large: its 19 lines aren’t shown here.

arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h+218−13

This diff is large: its 305 lines aren’t shown here.

arch/mips/include/asm/mach-bcm63xx/bcm963xx_tag.h+5−6

This diff is large: its 33 lines aren’t shown here.

arch/mips/include/asm/mach-bcm63xx/ioremap.h+42−0

This diff is large: its 43 lines aren’t shown here.

arch/mips/include/asm/mach-bcm63xx/irq.h+7−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/mach-db1x00/bcsr.h+28−8

This diff is large: its 102 lines aren’t shown here.

arch/mips/include/asm/mach-db1x00/db1200.h+9−2

This diff is large: its 32 lines aren’t shown here.

arch/mips/include/asm/mach-db1x00/db1300.h+40−0

This diff is large: its 41 lines aren’t shown here.

arch/mips/include/asm/mach-db1x00/db1x00.h+0−79

This diff is large: its 80 lines aren’t shown here.

arch/mips/include/asm/mach-db1x00/irq.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/mips/include/asm/mach-generic/floppy.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-jazz/floppy.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-netlogic/cpu-feature-overrides.h+16−7

This diff is large: its 41 lines aren’t shown here.

arch/mips/include/asm/mach-pb1x00/mc146818rtc.h+0−34

This diff is large: its 35 lines aren’t shown here.

arch/mips/include/asm/mach-pb1x00/pb1000.h+0−87

This diff is large: its 88 lines aren’t shown here.

arch/mips/include/asm/mach-pb1x00/pb1200.h+0−139

This diff is large: its 140 lines aren’t shown here.

arch/mips/include/asm/mach-pb1x00/pb1550.h+0−73

This diff is large: its 74 lines aren’t shown here.

arch/mips/include/asm/mipsregs.h+8−1

This diff is large: its 23 lines aren’t shown here.

arch/mips/include/asm/module.h+5−1

This diff is large: its 20 lines aren’t shown here.

arch/mips/include/asm/netlogic/common.h+76−0

This diff is large: its 77 lines aren’t shown here.

arch/mips/include/asm/netlogic/haldefs.h+163−0

This diff is large: its 164 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlp-hal/bridge.h+187−0

This diff is large: its 188 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h+83−0

This diff is large: its 84 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlp-hal/iomap.h+153−0

This diff is large: its 154 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlp-hal/pic.h+411−0

This diff is large: its 412 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlp-hal/sys.h+129−0

This diff is large: its 130 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlp-hal/uart.h+191−0

This diff is large: its 192 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlp-hal/xlp.hrenamed from arch/mips/netlogic/xlr/xlr_console.c+15−10

This diff is large: its 31 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlr/iomap.h+0−22

This diff is large: its 27 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlr/msidef.h+84−0

This diff is large: its 85 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlr/pic.h+51−18

This diff is large: its 91 lines aren’t shown here.

arch/mips/include/asm/netlogic/xlr/xlr.h+2−11

This diff is large: its 20 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-address.hrenamed from drivers/staging/octeon/cvmx-address.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-asxx-defs.hrenamed from drivers/staging/octeon/cvmx-asxx-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-bootinfo.h+77−5

This diff is large: its 131 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-cmd-queue.hrenamed from drivers/staging/octeon/cvmx-cmd-queue.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-config.hrenamed from drivers/staging/octeon/cvmx-config.h+0−1

This diff is large: its 5 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-dbg-defs.hrenamed from drivers/staging/octeon/cvmx-dbg-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-dpi-defs.h+643−0

This diff is large: its 644 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-fau.hrenamed from drivers/staging/octeon/cvmx-fau.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-fpa-defs.hrenamed from drivers/staging/octeon/cvmx-fpa-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-fpa.hrenamed from drivers/staging/octeon/cvmx-fpa.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-gmxx-defs.hrenamed from drivers/staging/octeon/cvmx-gmxx-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-helper-board.hrenamed from drivers/staging/octeon/cvmx-helper-board.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-helper-fpa.hrenamed from drivers/staging/octeon/cvmx-helper-fpa.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-helper-loop.hrenamed from drivers/staging/octeon/cvmx-helper-loop.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-helper-npi.hrenamed from drivers/staging/octeon/cvmx-helper-npi.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-helper-rgmii.hrenamed from drivers/staging/octeon/cvmx-helper-rgmii.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-helper-sgmii.hrenamed from drivers/staging/octeon/cvmx-helper-sgmii.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-helper-spi.hrenamed from drivers/staging/octeon/cvmx-helper-spi.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-helper-util.hrenamed from drivers/staging/octeon/cvmx-helper-util.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-helper-xaui.hrenamed from drivers/staging/octeon/cvmx-helper-xaui.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-helper.hrenamed from drivers/staging/octeon/cvmx-helper.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-ipd.hrenamed from drivers/staging/octeon/cvmx-ipd.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-mdio.hrenamed from drivers/staging/octeon/cvmx-mdio.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-mio-defs.h+998−35

This diff is large: its 1834 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-npei-defs.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-pciercx-defs.h+538−71

This diff is large: its 1327 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-pcsx-defs.hrenamed from drivers/staging/octeon/cvmx-pcsx-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-pcsxx-defs.hrenamed from drivers/staging/octeon/cvmx-pcsxx-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-pemx-defs.h+509−0

This diff is large: its 510 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-pexp-defs.h+9−10

This diff is large: its 67 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-pip-defs.hrenamed from drivers/staging/octeon/cvmx-pip-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-pip.hrenamed from drivers/staging/octeon/cvmx-pip.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-pko-defs.hrenamed from drivers/staging/octeon/cvmx-pko-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-pko.hrenamed from drivers/staging/octeon/cvmx-pko.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-pow.hrenamed from drivers/staging/octeon/cvmx-pow.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-scratch.hrenamed from drivers/staging/octeon/cvmx-scratch.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-sli-defs.h+2172−0

This diff is large: its 2173 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-spi.hrenamed from drivers/staging/octeon/cvmx-spi.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-spxx-defs.hrenamed from drivers/staging/octeon/cvmx-spxx-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-sriox-defs.h+1036−0

This diff is large: its 1037 lines aren’t shown here.

arch/mips/include/asm/octeon/cvmx-srxx-defs.hrenamed from drivers/staging/octeon/cvmx-srxx-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-stxx-defs.hrenamed from drivers/staging/octeon/cvmx-stxx-defs.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx-wqe.hrenamed from drivers/staging/octeon/cvmx-wqe.h+0−0

File renamed without changes.

arch/mips/include/asm/octeon/cvmx.h+21−21

This diff is large: its 56 lines aren’t shown here.

arch/mips/include/asm/octeon/octeon-feature.h+105−9

This diff is large: its 176 lines aren’t shown here.

arch/mips/include/asm/octeon/octeon-model.h+96−119

This diff is large: its 333 lines aren’t shown here.

arch/mips/include/asm/octeon/pci-octeon.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/asm/page.h+8−0

This diff is large: its 15 lines aren’t shown here.

arch/mips/include/asm/pgtable-32.h+1−17

This diff is large: its 25 lines aren’t shown here.

arch/mips/include/asm/ptrace.h+14−2

This diff is large: its 29 lines aren’t shown here.

arch/mips/include/asm/socket.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/include/asm/tlbmisc.h+10−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/include/asm/traps.h+13−0

This diff is large: its 19 lines aren’t shown here.

arch/mips/include/asm/types.h+7−9

This diff is large: its 26 lines aren’t shown here.

arch/mips/jazz/irq.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/mips/jazz/setup.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/jz4740/board-qi_lb60.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/Makefile+2−0

This diff is large: its 12 lines aren’t shown here.

arch/mips/kernel/bmips_vec.S+255−0

This diff is large: its 256 lines aren’t shown here.

arch/mips/kernel/branch.c+84−44

This diff is large: its 237 lines aren’t shown here.

arch/mips/kernel/cevt-bcm1480.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/cevt-ds1287.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/cevt-gt641xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/cevt-r4k.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/cevt-sb1250.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/cevt-txx9.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/cpu-probe.c+25−3

This diff is large: its 61 lines aren’t shown here.

arch/mips/kernel/i8253.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/kprobes.c+148−29

This diff is large: its 248 lines aren’t shown here.

arch/mips/kernel/perf_event_mipsxx.c+11−61

This diff is large: its 168 lines aren’t shown here.

arch/mips/kernel/ptrace.c+4−7

This diff is large: its 25 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+39−4

This diff is large: its 81 lines aren’t shown here.

arch/mips/kernel/smp-bmips.c+458−0

This diff is large: its 459 lines aren’t shown here.

arch/mips/kernel/smtc.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/mips/kernel/traps.c+15−3

This diff is large: its 55 lines aren’t shown here.

arch/mips/lantiq/clk.c+2−2

This diff is large: its 14 lines aren’t shown here.

arch/mips/lantiq/irq.c+6−7

This diff is large: its 43 lines aren’t shown here.

arch/mips/lantiq/xway/dma.c+3−3

This diff is large: its 21 lines aren’t shown here.

arch/mips/lantiq/xway/ebu.c+3−3

This diff is large: its 21 lines aren’t shown here.

arch/mips/lantiq/xway/pmu.c+4−4

This diff is large: its 29 lines aren’t shown here.

arch/mips/lantiq/xway/reset.c+3−3

This diff is large: its 21 lines aren’t shown here.

arch/mips/lib/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/lib/iomap-pci.c+0−26

This diff is large: its 33 lines aren’t shown here.

arch/mips/loongson/common/cs5536/cs5536_mfgpt.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/math-emu/cp1emu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/Makefile+3−2

This diff is large: its 19 lines aren’t shown here.

arch/mips/mm/c-octeon.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/c-r4k.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/mm/gup.c+315−0

This diff is large: its 316 lines aren’t shown here.

arch/mips/mm/init.c+7−2

This diff is large: its 25 lines aren’t shown here.

arch/mips/mm/tlb-r3k.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/mm/tlb-r4k.c+15−53

This diff is large: its 106 lines aren’t shown here.

arch/mips/mti-malta/malta-int.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/netlogic/Kconfig+0−3

This diff is large: its 6 lines aren’t shown here.

arch/mips/netlogic/Makefile+3−0

This diff is large: its 4 lines aren’t shown here.

arch/mips/netlogic/Platform+7−6

This diff is large: its 24 lines aren’t shown here.

arch/mips/netlogic/common/Makefile+3−0

This diff is large: its 4 lines aren’t shown here.

arch/mips/netlogic/common/earlycons.c+60−0

This diff is large: its 61 lines aren’t shown here.

arch/mips/netlogic/common/irq.c+238−0

This diff is large: its 239 lines aren’t shown here.

arch/mips/netlogic/common/smp.crenamed from arch/mips/netlogic/xlr/smp.c+101−51

This diff is large: its 242 lines aren’t shown here.

arch/mips/netlogic/common/smpboot.S+272−0

This diff is large: its 273 lines aren’t shown here.

arch/mips/netlogic/common/time.crenamed from arch/mips/netlogic/xlr/time.c+3−3

This diff is large: its 19 lines aren’t shown here.

arch/mips/netlogic/xlp/Makefile+2−0

This diff is large: its 3 lines aren’t shown here.

arch/mips/netlogic/xlp/nlm_hal.c+111−0

This diff is large: its 112 lines aren’t shown here.

arch/mips/netlogic/xlp/platform.c+108−0

This diff is large: its 109 lines aren’t shown here.

arch/mips/netlogic/xlp/setup.c+105−0

This diff is large: its 106 lines aren’t shown here.

arch/mips/netlogic/xlp/wakeup.c+102−0

This diff is large: its 103 lines aren’t shown here.

arch/mips/netlogic/xlr/Makefile+2−5

This diff is large: its 8 lines aren’t shown here.

arch/mips/netlogic/xlr/irq.c+0−300

This diff is large: its 301 lines aren’t shown here.

arch/mips/netlogic/xlr/platform.c+16−15

This diff is large: its 70 lines aren’t shown here.

arch/mips/netlogic/xlr/setup.c+22−9

This diff is large: its 82 lines aren’t shown here.

arch/mips/netlogic/xlr/wakeup.crenamed from arch/mips/netlogic/xlr/smpboot.S+24−56

This diff is large: its 93 lines aren’t shown here.

arch/mips/pci/Makefile+2−1

This diff is large: its 17 lines aren’t shown here.

arch/mips/pci/msi-octeon.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/ops-pmcmsp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/ops-tx3927.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-alchemy.c+68−70

This diff is large: its 196 lines aren’t shown here.

arch/mips/pci/pci-ath724x.c+174−0

This diff is large: its 175 lines aren’t shown here.

arch/mips/pci/pci-bcm63xx.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/pci/pci-octeon.c+6−10

This diff is large: its 37 lines aren’t shown here.

arch/mips/pci/pci-tx4927.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-tx4938.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-tx4939.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pci-xlr.c+127−1

This diff is large: its 162 lines aren’t shown here.

arch/mips/pci/pci.c+38−29

This diff is large: its 124 lines aren’t shown here.

arch/mips/pci/pcie-octeon.c+1023−326

This diff is large: its 1819 lines aren’t shown here.

arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pmc-sierra/msp71xx/msp_setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pmc-sierra/msp71xx/msp_smp.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/pnx8550/common/int.c+2−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/pnx8550/common/time.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/sgi-ip22/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sgi-ip22/ip22-gio.c+428−0

This diff is large: its 429 lines aren’t shown here.

arch/mips/sgi-ip22/ip22-int.c+5−5

This diff is large: its 38 lines aren’t shown here.

arch/mips/sgi-ip22/ip22-mc.c+5−5

This diff is large: its 33 lines aren’t shown here.

arch/mips/sgi-ip22/ip22-setup.c+0−21

This diff is large: its 33 lines aren’t shown here.

arch/mips/sgi-ip27/Kconfig+0−6

This diff is large: its 10 lines aren’t shown here.

arch/mips/sgi-ip27/ip27-irq.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/mips/sgi-ip27/ip27-timer.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sgi-ip32/ip32-irq.c+0−2

This diff is large: its 14 lines aren’t shown here.

arch/mips/sibyte/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/sni/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sni/time.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/txx9/generic/7segled.c+22−22

This diff is large: its 106 lines aren’t shown here.

arch/mips/txx9/generic/pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/txx9/generic/setup.c+16−18

This diff is large: its 91 lines aren’t shown here.

arch/mips/txx9/generic/setup_tx4939.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mn10300/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/include/asm/exceptions.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mn10300/include/asm/io.h+8−9

This diff is large: its 47 lines aren’t shown here.

arch/mn10300/include/asm/ipcbuf.h+1−29

This diff is large: its 31 lines aren’t shown here.

arch/mn10300/include/asm/param.h+1−17

This diff is large: its 26 lines aren’t shown here.

arch/mn10300/include/asm/socket.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/mn10300/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/mn10300/include/asm/types.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/mn10300/unit-asb2305/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/mn10300/unit-asb2305/pci-asb2305.c+0−22

This diff is large: its 29 lines aren’t shown here.

arch/mn10300/unit-asb2305/pci-asb2305.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/mn10300/unit-asb2305/pci-iomap.c+0−31

This diff is large: its 32 lines aren’t shown here.

arch/mn10300/unit-asb2305/pci.c+6−6

This diff is large: its 33 lines aren’t shown here.

arch/openrisc/Kconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/openrisc/boot/Makefile+2−2

This diff is large: its 8 lines aren’t shown here.

arch/parisc/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/parisc/hpux/sys_hpux.c+1−8

This diff is large: its 18 lines aren’t shown here.

arch/parisc/include/asm/processor.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/parisc/include/asm/socket.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/parisc/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/parisc/include/asm/types.h+0−6

This diff is large: its 11 lines aren’t shown here.

arch/parisc/kernel/process.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/parisc/lib/iomap.c+0−23

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/Kconfig+47−8

This diff is large: its 136 lines aren’t shown here.

arch/powerpc/Kconfig.debug+12−0

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/Makefile+5−6

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/boot/Makefile+13−3

This diff is large: its 58 lines aren’t shown here.

arch/powerpc/boot/dcr.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/boot/div64.S+52−0

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/boot/dts/asp834x-redboot.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/currituck.dts+237−0

This diff is large: its 238 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi+248−0

This diff is large: its 249 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi+63−0

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi+191−0

This diff is large: its 192 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi+63−0

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi+143−0

This diff is large: its 144 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi+62−0

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi+270−0

This diff is large: its 271 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi+65−0

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi+304−0

This diff is large: its 305 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi+64−0

This diff is large: its 65 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi+196−0

This diff is large: its 197 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi+70−0

This diff is large: its 71 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1010si-post.dtsi+198−0

This diff is large: its 199 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi+64−0

This diff is large: its 65 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1020si-post.dtsi+174−0

This diff is large: its 175 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi+68−0

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1021si-post.dtsi+225−0

This diff is large: its 226 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi+68−0

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1022si-post.dtsi+235−0

This diff is large: its 236 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi+68−0

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1023si-post.dtsi+224−0

This diff is large: its 225 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi+76−0

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p2020si-post.dtsi+194−0

This diff is large: its 195 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi+69−0

This diff is large: its 70 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p2041si-post.dtsi+325−0

This diff is large: its 326 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi+111−0

This diff is large: its 112 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p3041si-post.dtsi+352−0

This diff is large: its 353 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi+112−0

This diff is large: its 113 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p3060si-post.dtsi+296−0

This diff is large: its 297 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p3060si-pre.dtsi+125−0

This diff is large: its 126 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p4080si-post.dtsi+350−0

This diff is large: its 351 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi+143−0

This diff is large: its 144 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p5020si-post.dtsi+355−0

This diff is large: its 356 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi+96−0

This diff is large: its 97 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi+66−0

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi+66−0

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi+51−0

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi+41−0

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi+41−0

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi+53−0

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi+53−0

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi+53−0

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi+53−0

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi+39−0

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi+60−0

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi+60−0

This diff is large: its 61 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi+59−0

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi+42−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi+42−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi+42−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi+41−0

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi+43−0

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi+43−0

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi+42−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi+66−0

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi+68−0

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi+40−0

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi+40−0

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi+43−0

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi+45−0

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi+45−0

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi+45−0

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi+65−0

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi+41−0

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi+41−0

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi+66−0

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi+66−0

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi+51−0

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi+51−0

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi+40−0

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi+41−0

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi+41−0

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi+53−0

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi+53−0

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi+106−0

This diff is large: its 107 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi+68−0

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi+39−0

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi+39−0

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi+100−0

This diff is large: its 101 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-sec4.1-0.dtsi+109−0

This diff is large: its 110 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi+109−0

This diff is large: its 110 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi+41−0

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi+41−0

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/boot/dts/gef_ppc9a.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/gef_sbc310.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/gef_sbc610.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/klondike.dts+227−0

This diff is large: its 228 lines aren’t shown here.

arch/powerpc/boot/dts/kmeter1.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/boot/dts/kuroboxHD.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/kuroboxHG.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8308_p1m.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8308rdb.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8313erdb.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8315erdb.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc832x_mds.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc832x_rdb.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8349emitx.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8349emitxgp.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc834x_mds.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc836x_mds.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc836x_rdk.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8377_mds.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8377_rdb.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8377_wlan.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8378_mds.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8378_rdb.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8379_mds.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8379_rdb.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8536ds.dts+17−439

This diff is large: its 515 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8536ds.dtsi+141−0

This diff is large: its 142 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8536ds_36b.dts+20−390

This diff is large: its 472 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8540ads.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8541cds.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8544ds.dts+38−435

This diff is large: its 526 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8544ds.dtsi+161−0

This diff is large: its 162 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8548cds.dts+122−383

This diff is large: its 634 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8555cds.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8568mds.dts+65−417

This diff is large: its 614 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8569mds.dts+38−376

This diff is large: its 569 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8572ds.dts+13−744

This diff is large: its 819 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8572ds.dtsi+397−0

This diff is large: its 398 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8572ds_36b.dts+14−732

This diff is large: its 813 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts+31−456

This diff is large: its 526 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts+67−178

This diff is large: its 279 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8610_hpcd.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8641_hpcn.dts+56−17

This diff is large: its 110 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/obs600.dts+314−0

This diff is large: its 315 lines aren’t shown here.

arch/powerpc/boot/dts/p1010rdb.dts+10−218

This diff is large: its 270 lines aren’t shown here.

arch/powerpc/boot/dts/p1010rdb.dtsi+234−0

This diff is large: its 235 lines aren’t shown here.

arch/powerpc/boot/dts/p1010rdb_36b.dts+89−0

This diff is large: its 90 lines aren’t shown here.

arch/powerpc/boot/dts/p1010si.dtsi+0−374

This diff is large: its 375 lines aren’t shown here.

arch/powerpc/boot/dts/p1020rdb.dts+10−252

This diff is large: its 304 lines aren’t shown here.

arch/powerpc/boot/dts/p1020rdb.dtsi+247−0

This diff is large: its 248 lines aren’t shown here.

arch/powerpc/boot/dts/p1020rdb_36b.dts+66−0

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/boot/dts/p1020rdb_camp_core0.dts+2−152

This diff is large: its 188 lines aren’t shown here.

arch/powerpc/boot/dts/p1020rdb_camp_core1.dts+2−9

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/boot/dts/p1020si.dtsi+0−377

This diff is large: its 378 lines aren’t shown here.

arch/powerpc/boot/dts/p1021mds.dts+25−400

This diff is large: its 578 lines aren’t shown here.

arch/powerpc/boot/dts/p1022ds.dts+38−421

This diff is large: its 564 lines aren’t shown here.

arch/powerpc/boot/dts/p1023rds.dts+22−358

This diff is large: its 474 lines aren’t shown here.

arch/powerpc/boot/dts/p2020ds.dts+19−334

This diff is large: its 410 lines aren’t shown here.

arch/powerpc/boot/dts/p2020ds.dtsi+316−0

This diff is large: its 317 lines aren’t shown here.

arch/powerpc/boot/dts/p2020rdb.dts+24−47

This diff is large: its 150 lines aren’t shown here.

arch/powerpc/boot/dts/p2020rdb_camp_core0.dts+2−139

This diff is large: its 188 lines aren’t shown here.

arch/powerpc/boot/dts/p2020rdb_camp_core1.dts+2−105

This diff is large: its 154 lines aren’t shown here.

arch/powerpc/boot/dts/p2020si.dtsi+0−382

This diff is large: its 383 lines aren’t shown here.

arch/powerpc/boot/dts/p2041rdb.dts+20−2

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/boot/dts/p2041si.dtsi+0−692

This diff is large: its 693 lines aren’t shown here.

arch/powerpc/boot/dts/p3041ds.dts+21−2

This diff is large: its 76 lines aren’t shown here.

arch/powerpc/boot/dts/p3041si.dtsi+0−729

This diff is large: its 730 lines aren’t shown here.

arch/powerpc/boot/dts/p3060qds.dts+9−3

This diff is large: its 58 lines aren’t shown here.

arch/powerpc/boot/dts/p3060si.dtsi+0−719

This diff is large: its 720 lines aren’t shown here.

arch/powerpc/boot/dts/p4080ds.dts+19−5

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/boot/dts/p4080si.dtsi+0−755

This diff is large: its 756 lines aren’t shown here.

arch/powerpc/boot/dts/p5020ds.dts+21−3

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/boot/dts/p5020si.dtsi+0−716

This diff is large: its 717 lines aren’t shown here.

arch/powerpc/boot/dts/sbc8349.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/sbc8548.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/sbc8641d.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/socrates.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/storcenter.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/stxssa8555.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/tqm8540.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/tqm8541.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/tqm8548-bigflash.dts+16−7

This diff is large: its 59 lines aren’t shown here.

arch/powerpc/boot/dts/tqm8548.dts+16−7

This diff is large: its 59 lines aren’t shown here.

arch/powerpc/boot/dts/tqm8555.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/tqm8xx.dts+25−0

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/boot/dts/xcalibur1501.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/xpedite5200.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/xpedite5200_xmon.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/xpedite5301.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/xpedite5330.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/dts/xpedite5370.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/boot/treeboot-currituck.c+119−0

This diff is large: its 120 lines aren’t shown here.

arch/powerpc/boot/wrapper+44−1

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/configs/40x/klondike_defconfig+55−0

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/configs/40x/obs600_defconfig+83−0

This diff is large: its 84 lines aren’t shown here.

arch/powerpc/configs/44x/currituck_defconfig+110−0

This diff is large: its 111 lines aren’t shown here.

arch/powerpc/configs/44x/iss476-smp_defconfig+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/configs/chroma_defconfig+307−0

This diff is large: its 308 lines aren’t shown here.

arch/powerpc/configs/corenet32_smp_defconfig+7−4

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/configs/corenet64_smp_defconfig+3−1

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/configs/mpc85xx_defconfig+12−5

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/configs/mpc85xx_smp_defconfig+13−5

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/configs/ppc64_defconfig+5−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/configs/ps3_defconfig+20−19

This diff is large: its 117 lines aren’t shown here.

arch/powerpc/configs/pseries_defconfig+5−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/Kbuild+2−0

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/include/asm/cputable.h+3−2

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/cputime.h+3−3

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/include/asm/fsl_ifc.h+834−0

This diff is large: its 835 lines aren’t shown here.

arch/powerpc/include/asm/fsl_lbc.h+5−2

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/include/asm/hugetlb.h+29−9

This diff is large: its 83 lines aren’t shown here.

arch/powerpc/include/asm/io.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/kdump.h+2−2

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/kexec.h+0−7

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/include/asm/keylargo.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/kvm.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/lv1call.h+5−5

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/include/asm/machdep.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/mmu-book3e.h+11−0

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/include/asm/mmu-hash64.h+3−4

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/mpic.h+10−4

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/include/asm/opal.h+127−4

This diff is large: its 172 lines aren’t shown here.

arch/powerpc/include/asm/paca.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/page.h+85−5

This diff is large: its 126 lines aren’t shown here.

arch/powerpc/include/asm/page_64.h+2−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/pci-bridge.h+5−2

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/include/asm/pci.h+0−7

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/include/asm/pgtable.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/processor.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/ptrace.h+12−1

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/include/asm/reg.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/reg_booke.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/rtas.h+18−0

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/include/asm/rwsem.h+0−132

This diff is large: its 133 lines aren’t shown here.

arch/powerpc/include/asm/socket.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/spu.h+7−7

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/include/asm/system.h+10−1

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/tce.h+7−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/include/asm/time.h+2−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/topology.h+5−5

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/include/asm/types.h+4−7

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/kernel/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/asm-offsets.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/cacheinfo.c+5−5

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/kernel/cpu_setup_a2.S+8−2

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/kernel/cputable.c+27−0

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/kernel/crash.c+106−114

This diff is large: its 362 lines aren’t shown here.

arch/powerpc/kernel/crash_dump.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kernel/exceptions-64s.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/head_44x.S+107−0

This diff is large: its 141 lines aren’t shown here.

arch/powerpc/kernel/head_fsl_booke.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/idle.c+29−10

This diff is large: its 74 lines aren’t shown here.

arch/powerpc/kernel/idle_power7.S+4−0

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kernel/iomap.c+0−19

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/kernel/irq.c+17−11

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/kernel/legacy_serial.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kernel/lparcfg.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/machine_kexec.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/machine_kexec_32.c+2−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/machine_kexec_64.c+3−3

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/pci-common.c+65−43

This diff is large: its 243 lines aren’t shown here.

arch/powerpc/kernel/pci_64.c+21−19

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/kernel/pci_dn.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kernel/process.c+19−3

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/kernel/prom_init.c+22−15

This diff is large: its 87 lines aren’t shown here.

arch/powerpc/kernel/ptrace.c+13−17

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/kernel/reloc_32.S+208−0

This diff is large: its 209 lines aren’t shown here.

arch/powerpc/kernel/rtas_flash.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/rtasd.c+7−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/kernel/setup_64.c+10−0

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/kernel/smp.c+3−2

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/kernel/sysfs.c+140−131

This diff is large: its 567 lines aren’t shown here.

arch/powerpc/kernel/time.c+30−75

This diff is large: its 221 lines aren’t shown here.

arch/powerpc/kernel/traps.c+98−75

This diff is large: its 221 lines aren’t shown here.

arch/powerpc/kernel/vio.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/vmlinux.lds.S+7−1

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/kvm/book3s.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_builtin.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rmhandlers.S+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/lib/Makefile+3−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/lib/copyuser_64.S+6−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/lib/copyuser_power7.S+683−0

This diff is large: its 684 lines aren’t shown here.

arch/powerpc/lib/copyuser_power7_vmx.c+50−0

This diff is large: its 51 lines aren’t shown here.

arch/powerpc/mm/44x_mmu.c+1−5

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/mm/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/fault.c+17−0

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage-book3e.c+11−10

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage.c+73−43

This diff is large: its 270 lines aren’t shown here.

arch/powerpc/mm/icswx.c+273−0

This diff is large: its 274 lines aren’t shown here.

arch/powerpc/mm/icswx.h+62−0

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/mm/icswx_pid.c+87−0

This diff is large: its 88 lines aren’t shown here.

arch/powerpc/mm/init_32.c+7−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/mm/mem.c+22−1

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/mm/mmap_64.c+3−11

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/mm/mmu_context_hash64.c+1−194

This diff is large: its 202 lines aren’t shown here.

arch/powerpc/mm/numa.c+8−8

This diff is large: its 58 lines aren’t shown here.

arch/powerpc/mm/tlb_low_64e.S+15−21

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/mm/tlb_nohash.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/40x/Kconfig+18−37

This diff is large: its 77 lines aren’t shown here.

arch/powerpc/platforms/40x/ppc40x_simple.c+3−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/44x/Kconfig+15−17

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/platforms/44x/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/platforms/44x/currituck.c+204−0

This diff is large: its 205 lines aren’t shown here.

arch/powerpc/platforms/44x/iss4xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/512x/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/83xx/asp834x.c+2−33

This diff is large: its 49 lines aren’t shown here.

arch/powerpc/platforms/83xx/km83xx.c+5−53

This diff is large: its 84 lines aren’t shown here.

arch/powerpc/platforms/83xx/misc.c+77−0

This diff is large: its 92 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc830x_rdb.c+3−37

This diff is large: its 65 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc831x_rdb.c+3−40

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc832x_mds.c+3−50

This diff is large: its 74 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc832x_rdb.c+4−52

This diff is large: its 83 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc834x_itx.c+3−27

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc834x_mds.c+3−39

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc836x_mds.c+3−50

This diff is large: its 81 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc836x_rdk.c+3−45

This diff is large: its 73 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc837x_mds.c+3−43

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc837x_rdb.c+3−44

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc83xx.h+16−0

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/platforms/83xx/sbc834x.c+5−44

This diff is large: its 73 lines aren’t shown here.

arch/powerpc/platforms/85xx/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/85xx/common.c+66−0

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/platforms/85xx/corenet_ds.c+4−24

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/platforms/85xx/ksi8560.c+5−64

This diff is large: its 96 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc8536_ds.c+5−33

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx.h+11−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_ads.c+6−68

This diff is large: its 101 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_cds.c+6−36

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_ds.c+10−40

This diff is large: its 103 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_mds.c+7−66

This diff is large: its 139 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_rdb.c+8−41

This diff is large: its 93 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1010rdb.c+6−32

This diff is large: its 59 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1022_ds.c+6−31

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1023_rds.c+6−41

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/platforms/85xx/sbc8548.c+5−38

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/platforms/85xx/sbc8560.c+6−68

This diff is large: its 99 lines aren’t shown here.

arch/powerpc/platforms/85xx/smp.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/85xx/smp.h+15−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/platforms/85xx/socrates.c+4−29

This diff is large: its 55 lines aren’t shown here.

arch/powerpc/platforms/85xx/stx_gp3.c+6−67

This diff is large: its 97 lines aren’t shown here.

arch/powerpc/platforms/85xx/tqm85xx.c+6−67

This diff is large: its 97 lines aren’t shown here.

arch/powerpc/platforms/85xx/xes_mpc85xx.c+8−40

This diff is large: its 82 lines aren’t shown here.

arch/powerpc/platforms/86xx/mpc86xx_hpcn.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/86xx/pic.c+4−14

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/platforms/Kconfig+6−3

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/platforms/Kconfig.cputype+22−3

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/platforms/cell/cbe_thermal.c+72−72

This diff is large: its 301 lines aren’t shown here.

arch/powerpc/platforms/cell/iommu.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/setup.c+1−24

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/platforms/cell/smp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_base.c+31−30

This diff is large: its 177 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_syscalls.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/inode.c+8−9

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/spufs.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/syscalls.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/chrp/setup.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/holly.c+3−20

This diff is large: its 50 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/linkstation.c+5−15

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c+3−21

This diff is large: its 51 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/storcenter.c+4−22

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/platforms/iseries/smp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/maple/pci.c+55−0

This diff is large: its 83 lines aren’t shown here.

arch/powerpc/platforms/maple/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pasemi/setup.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/powermac/cpufreq_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powermac/pic.c+13−67

This diff is large: its 177 lines aren’t shown here.

arch/powerpc/platforms/powermac/setup.c+6−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/powermac/smp.c+3−3

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/platforms/powernv/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-wrappers.S+8−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci-ioda.c+1330−0

This diff is large: its 1331 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci-p5ioc2.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci.c+203−25

This diff is large: its 306 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci.h+100−0

This diff is large: its 125 lines aren’t shown here.

arch/powerpc/platforms/powernv/smp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/ps3/interrupt.c+53−50

This diff is large: its 375 lines aren’t shown here.

arch/powerpc/platforms/ps3/repository.c+69−68

This diff is large: its 491 lines aren’t shown here.

arch/powerpc/platforms/ps3/setup.c+3−1

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/platforms/ps3/smp.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/ps3/spu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/Kconfig+9−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/platforms/pseries/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pseries/cmm.c+34−33

This diff is large: its 166 lines aren’t shown here.

arch/powerpc/platforms/pseries/hvCall.S+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/pseries/hvCall_inst.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/pseries/iommu.c+56−5

This diff is large: its 112 lines aren’t shown here.

arch/powerpc/platforms/pseries/lpar.c+12−4

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/platforms/pseries/nvram.c+7−1

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/platforms/pseries/processor_idle.c+329−0

This diff is large: its 330 lines aren’t shown here.

arch/powerpc/platforms/pseries/pseries.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pseries/pseries_energy.c+34−37

This diff is large: its 150 lines aren’t shown here.

arch/powerpc/platforms/pseries/setup.c+20−89

This diff is large: its 155 lines aren’t shown here.

arch/powerpc/platforms/pseries/smp.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/pseries/suspend.c+17−16

This diff is large: its 86 lines aren’t shown here.

arch/powerpc/platforms/wsp/Kconfig+10−2

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/platforms/wsp/Makefile+5−3

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/platforms/wsp/chroma.c+56−0

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/platforms/wsp/h8.c+134−0

This diff is large: its 135 lines aren’t shown here.

arch/powerpc/platforms/wsp/opb_pic.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/wsp/psr2.c+12−44

This diff is large: its 97 lines aren’t shown here.

arch/powerpc/platforms/wsp/wsp.c+115−0

This diff is large: its 116 lines aren’t shown here.

arch/powerpc/platforms/wsp/wsp.h+13−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/relocs_check.pl+12−2

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/sysdev/Makefile+2−1

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/sysdev/axonram.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/sysdev/fsl_ifc.c+310−0

This diff is large: its 311 lines aren’t shown here.

arch/powerpc/sysdev/fsl_lbc.c+36−0

This diff is large: its 50 lines aren’t shown here.

arch/powerpc/sysdev/fsl_msi.c+83−16

This diff is large: its 191 lines aren’t shown here.

arch/powerpc/sysdev/fsl_msi.h+7−3

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/sysdev/fsl_pci.c+84−0

This diff is large: its 112 lines aren’t shown here.

arch/powerpc/sysdev/fsl_rio.c+271−1248

This diff is large: its 1676 lines aren’t shown here.

arch/powerpc/sysdev/fsl_rio.h+135−0

This diff is large: its 136 lines aren’t shown here.

arch/powerpc/sysdev/fsl_rmu.c+1104−0

This diff is large: its 1105 lines aren’t shown here.

arch/powerpc/sysdev/mpic.c+122−79

This diff is large: its 379 lines aren’t shown here.

arch/powerpc/sysdev/ppc4xx_cpm.c+3−3

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/sysdev/ppc4xx_pci.c+77−8

This diff is large: its 174 lines aren’t shown here.

arch/powerpc/sysdev/ppc4xx_pci.h+7−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/sysdev/qe_lib/gpio.c+8−34

This diff is large: its 78 lines aren’t shown here.

arch/powerpc/sysdev/qe_lib/qe_ic.c+6−6

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/sysdev/uic.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/sysdev/xics/icp-hv.c+32−15

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/sysdev/xics/xics-common.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/xmon/xmon.c+6−10

This diff is large: its 42 lines aren’t shown here.

arch/s390/Kbuild+7−6

This diff is large: its 14 lines aren’t shown here.

arch/s390/Kconfig+3−9

This diff is large: its 30 lines aren’t shown here.

arch/s390/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/boot/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/s390/hypfs/inode.c+7−7

This diff is large: its 55 lines aren’t shown here.

arch/s390/include/asm/chpid.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/debug.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/s390/include/asm/itcw.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/kdebug.h+1−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/lowcore.h+76−66

This diff is large: its 182 lines aren’t shown here.

arch/s390/include/asm/mman.h+3−1

This diff is large: its 13 lines aren’t shown here.

arch/s390/include/asm/percpu.h+22−22

This diff is large: its 69 lines aren’t shown here.

arch/s390/include/asm/pgtable.h+3−20

This diff is large: its 32 lines aren’t shown here.

arch/s390/include/asm/processor.h+1−3

This diff is large: its 18 lines aren’t shown here.

arch/s390/include/asm/ptrace.h+7−2

This diff is large: its 25 lines aren’t shown here.

arch/s390/include/asm/qdio.h+3−2

This diff is large: its 19 lines aren’t shown here.

arch/s390/include/asm/sigp.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/smp.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/socket.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/sparsemem.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/s390/include/asm/syscall.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/system.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/s390/include/asm/topology.h+34−6

This diff is large: its 70 lines aren’t shown here.

arch/s390/include/asm/types.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/unistd.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/Makefile+2−1

This diff is large: its 10 lines aren’t shown here.

arch/s390/kernel/asm-offsets.c+5−3

This diff is large: its 29 lines aren’t shown here.

arch/s390/kernel/base.S+8−8

This diff is large: its 72 lines aren’t shown here.

arch/s390/kernel/compat_linux.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/s390/kernel/compat_signal.c+8−4

This diff is large: its 27 lines aren’t shown here.

arch/s390/kernel/debug.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/s390/kernel/dis.c+7−2

This diff is large: its 18 lines aren’t shown here.

arch/s390/kernel/early.c+12−8

This diff is large: its 31 lines aren’t shown here.

arch/s390/kernel/entry.S+483−620

This diff is large: its 1473 lines aren’t shown here.

arch/s390/kernel/entry.h+5−5

This diff is large: its 29 lines aren’t shown here.

arch/s390/kernel/entry64.S+434−542

This diff is large: its 1344 lines aren’t shown here.

arch/s390/kernel/head.S+2−2

This diff is large: its 11 lines aren’t shown here.

arch/s390/kernel/machine_kexec.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/mem_detect.c+67−55

This diff is large: its 139 lines aren’t shown here.

arch/s390/kernel/nmi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/ptrace.c+6−9

This diff is large: its 27 lines aren’t shown here.

arch/s390/kernel/reipl64.S+2−2

This diff is large: its 14 lines aren’t shown here.

arch/s390/kernel/setup.c+53−16

This diff is large: its 129 lines aren’t shown here.

arch/s390/kernel/signal.c+12−8

This diff is large: its 56 lines aren’t shown here.

arch/s390/kernel/smp.c+98−131

This diff is large: its 430 lines aren’t shown here.

arch/s390/kernel/sys_s390.c+12−64

This diff is large: its 87 lines aren’t shown here.

arch/s390/kernel/time.c+131−129

This diff is large: its 550 lines aren’t shown here.

arch/s390/kernel/topology.c+190−91

This diff is large: its 453 lines aren’t shown here.

arch/s390/kernel/traps.c+60−110

This diff is large: its 329 lines aren’t shown here.

arch/s390/mm/fault.c+48−59

This diff is large: its 293 lines aren’t shown here.

arch/s390/mm/init.c+10−6

This diff is large: its 29 lines aren’t shown here.

arch/s390/mm/pgtable.c+3−11

This diff is large: its 29 lines aren’t shown here.

arch/score/Kconfig+2−3

This diff is large: its 22 lines aren’t shown here.

arch/sh/Kconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/sh/boards/board-magicpanelr2.c+2−32

This diff is large: its 69 lines aren’t shown here.

arch/sh/boards/board-sh7757lcr.c+39−0

This diff is large: its 60 lines aren’t shown here.

arch/sh/boards/mach-ap325rxa/setup.c+1−13

This diff is large: its 49 lines aren’t shown here.

arch/sh/boards/mach-ecovec24/setup.c+1−37

This diff is large: its 129 lines aren’t shown here.

arch/sh/boards/mach-kfr2r09/setup.c+1−13

This diff is large: its 49 lines aren’t shown here.

arch/sh/boards/mach-migor/setup.c+2−14

This diff is large: its 58 lines aren’t shown here.

arch/sh/boards/mach-rsk/setup.c+6−37

This diff is large: its 74 lines aren’t shown here.

arch/sh/boards/mach-se/7722/setup.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/sh/boards/mach-se/7724/setup.c+14−32

This diff is large: its 126 lines aren’t shown here.

arch/sh/drivers/dma/dma-sysfs.c+41−40

This diff is large: its 176 lines aren’t shown here.

arch/sh/drivers/pci/pci.c+10−54

This diff is large: its 102 lines aren’t shown here.

arch/sh/include/asm/device.h+0−10

This diff is large: its 16 lines aren’t shown here.

arch/sh/include/asm/dma.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/include/asm/hwblk.h+0−70

This diff is large: its 71 lines aren’t shown here.

arch/sh/include/asm/ptrace_32.h+4−1

This diff is large: its 12 lines aren’t shown here.

arch/sh/include/asm/ptrace_64.h+4−1

This diff is large: its 12 lines aren’t shown here.

arch/sh/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/sh7722.h+5−8

This diff is large: its 20 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/sh7723.h+1−2

This diff is large: its 12 lines aren’t shown here.

arch/sh/include/cpu-sh4/cpu/sh7724.h+2−2

This diff is large: its 19 lines aren’t shown here.

arch/sh/kernel/cpu/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/sh/kernel/cpu/hwblk.c+0−159

This diff is large: its 160 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/sq.c+13−11

This diff is large: its 73 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/Makefile+3−3

This diff is large: its 13 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7722.c+40−37

This diff is large: its 124 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7723.c+82−127

This diff is large: its 263 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7724.c+107−94

This diff is large: its 310 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7757.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/hwblk-sh7722.c+0−106

This diff is large: its 107 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/hwblk-sh7723.c+0−117

This diff is large: its 118 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/hwblk-sh7724.c+0−121

This diff is large: its 122 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7722.c+1−37

This diff is large: its 129 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7723.c+0−39

This diff is large: its 130 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7724.c+2−62

This diff is large: its 218 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7757.c+4−3

This diff is large: its 35 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7780.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7785.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7786.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/shmobile/Makefile+0−1

This diff is large: its 5 lines aren’t shown here.

arch/sh/kernel/cpu/shmobile/cpuidle.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/sh/kernel/cpu/shmobile/pm_runtime.c+0−319

This diff is large: its 320 lines aren’t shown here.

arch/sh/kernel/entry-common.S+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 9 lines aren’t shown here.

arch/sh/kernel/process_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/ptrace_32.c+4−7

This diff is large: its 25 lines aren’t shown here.

arch/sh/kernel/ptrace_64.c+4−7

This diff is large: its 25 lines aren’t shown here.

arch/sh/kernel/signal_32.c+0−4

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/signal_64.c+0−4

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/time.c+0−2

This diff is large: its 16 lines aren’t shown here.

arch/sh/mm/cache-sh2a.c+84−39

This diff is large: its 188 lines aren’t shown here.

arch/sparc/Kconfig+2−2

This diff is large: its 22 lines aren’t shown here.

arch/sparc/include/asm/atomic_32.h+1−103

This diff is large: its 122 lines aren’t shown here.

arch/sparc/include/asm/io_32.h+1−1

This diff is large: its 16 lines aren’t shown here.

arch/sparc/include/asm/io_64.h+1−1

This diff is large: its 16 lines aren’t shown here.

arch/sparc/include/asm/page_32.h+3−7

This diff is large: its 18 lines aren’t shown here.

arch/sparc/include/asm/pci_32.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/sparc/include/asm/pci_64.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/sparc/include/asm/pgtsun4.h+0−171

This diff is large: its 172 lines aren’t shown here.

arch/sparc/include/asm/posix_types.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/sparc/include/asm/ptrace.h+9−1

This diff is large: its 17 lines aren’t shown here.

arch/sparc/include/asm/siginfo.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/sparc/include/asm/signal.h+2−1

This diff is large: its 13 lines aren’t shown here.

arch/sparc/include/asm/socket.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/sparc/include/asm/thread_info_32.h+1−3

This diff is large: its 25 lines aren’t shown here.

arch/sparc/include/asm/thread_info_64.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/sparc/include/asm/types.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/sparc/kernel/leon_pci.c+8−17

This diff is large: its 47 lines aren’t shown here.

arch/sparc/kernel/pci.c+11−11

This diff is large: its 56 lines aren’t shown here.

arch/sparc/kernel/ptrace_64.c+9−19

This diff is large: its 42 lines aren’t shown here.

arch/sparc/kernel/smp_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/sys_sparc_64.c+3−3

This diff is large: its 15 lines aren’t shown here.

arch/sparc/kernel/sysfs.c+61−61

This diff is large: its 218 lines aren’t shown here.

arch/sparc/lib/atomic_32.S+0−55

This diff is large: its 61 lines aren’t shown here.

arch/sparc/lib/iomap.c+0−23

This diff is large: its 32 lines aren’t shown here.

arch/sparc/lib/ksyms.c+0−6

This diff is large: its 20 lines aren’t shown here.

arch/tile/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/tile/include/asm/io.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/tile/include/asm/pci.h+1−8

This diff is large: its 30 lines aren’t shown here.

arch/tile/include/asm/signal.h+3−1

This diff is large: its 17 lines aren’t shown here.

arch/tile/kernel/machine_kexec.c+3−3

This diff is large: its 15 lines aren’t shown here.

arch/tile/kernel/pci.c+5−21

This diff is large: its 40 lines aren’t shown here.

arch/tile/kernel/sysfs.c+30−31

This diff is large: its 131 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+7−2

This diff is large: its 30 lines aren’t shown here.

arch/um/include/asm/thread_info.h+0−2

This diff is large: its 15 lines aren’t shown here.

arch/um/kernel/ptrace.c+9−11

This diff is large: its 27 lines aren’t shown here.

arch/unicore32/Kconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/unicore32/include/asm/io.h+1−7

This diff is large: its 17 lines aren’t shown here.

arch/unicore32/include/asm/pci.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/unicore32/include/asm/thread_info.h+0−2

This diff is large: its 15 lines aren’t shown here.

arch/unicore32/kernel/pci.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/unicore32/kernel/puv3-core.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/unicore32/kernel/puv3-nb0916.c+2−3

This diff is large: its 26 lines aren’t shown here.

arch/unicore32/kernel/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/unicore32/kernel/signal.c+5−10

This diff is large: its 37 lines aren’t shown here.

arch/unicore32/kernel/time.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/Kconfig+40−8

This diff is large: its 119 lines aren’t shown here.

arch/x86/Kconfig.cpu+0−6

This diff is large: its 13 lines aren’t shown here.

arch/x86/Kconfig.debug+20−5

This diff is large: its 44 lines aren’t shown here.

arch/x86/Makefile+6−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/boot/compressed/Makefile+9−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/boot/compressed/eboot.c+1022−0

This diff is large: its 1023 lines aren’t shown here.

arch/x86/boot/compressed/eboot.h+61−0

This diff is large: its 62 lines aren’t shown here.

arch/x86/boot/compressed/efi_stub_32.S+86−0

This diff is large: its 87 lines aren’t shown here.

arch/x86/boot/compressed/efi_stub_64.S+1−0

This diff is large: its 2 lines aren’t shown here.

arch/x86/boot/compressed/head_32.S+22−0

This diff is large: its 29 lines aren’t shown here.

arch/x86/boot/compressed/head_64.S+20−0

This diff is large: its 27 lines aren’t shown here.

arch/x86/boot/compressed/string.c+9−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/boot/header.S+158−0

This diff is large: its 183 lines aren’t shown here.

arch/x86/boot/string.c+35−0

This diff is large: its 39 lines aren’t shown here.

arch/x86/boot/tools/build.c+39−0

This diff is large: its 53 lines aren’t shown here.

arch/x86/crypto/Makefile+4−0

This diff is large: its 30 lines aren’t shown here.

arch/x86/crypto/serpent-sse2-i586-asm_32.S+638−0

This diff is large: its 639 lines aren’t shown here.

arch/x86/crypto/serpent-sse2-x86_64-asm_64.S+761−0

This diff is large: its 762 lines aren’t shown here.

arch/x86/crypto/serpent_sse2_glue.c+1070−0

This diff is large: its 1071 lines aren’t shown here.

arch/x86/crypto/twofish_glue_3way.c+218−0

This diff is large: its 249 lines aren’t shown here.

arch/x86/ia32/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/ia32/ia32entry.S+8−365

This diff is large: its 413 lines aren’t shown here.

arch/x86/ia32/nosyscall.c+7−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/ia32/syscall_ia32.c+25−0

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/Kbuild+3−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/amd_nb.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/bootparam.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/cpufeature.h+3−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/debugreg.h+22−0

This diff is large: its 29 lines aren’t shown here.

arch/x86/include/asm/desc.h+12−0

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/efi.h+4−0

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/fixmap.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/ia32_unistd.h+3−10

This diff is large: its 21 lines aren’t shown here.

arch/x86/include/asm/init.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/iommu.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/kvm_emulate.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/kvm_host.h+68−22

This diff is large: its 214 lines aren’t shown here.

arch/x86/include/asm/mce.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/mrst.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/pci.h+9−0

This diff is large: its 29 lines aren’t shown here.

arch/x86/include/asm/pci_x86.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/percpu.h+0−28

This diff is large: its 63 lines aren’t shown here.

arch/x86/include/asm/serpent.h+63−0

This diff is large: its 64 lines aren’t shown here.

arch/x86/include/asm/setup.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/smp.h+6−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/syscall.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/topology.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/unistd.h+50−4

This diff is large: its 64 lines aren’t shown here.

arch/x86/include/asm/unistd_32.h+0−401

This diff is large: its 402 lines aren’t shown here.

arch/x86/include/asm/unistd_64.h+0−732

This diff is large: its 733 lines aren’t shown here.

arch/x86/include/asm/x86_init.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/Makefile+3−1

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/amd_nb.c+31−0

This diff is large: its 38 lines aren’t shown here.

arch/x86/kernel/apm_32.c+8−8

This diff is large: its 30 lines aren’t shown here.

arch/x86/kernel/asm-offsets.c+2−0

This diff is large: its 7 lines aren’t shown here.

arch/x86/kernel/asm-offsets_32.c+8−0

This diff is large: its 20 lines aren’t shown here.

arch/x86/kernel/asm-offsets_64.c+12−7

This diff is large: its 32 lines aren’t shown here.

arch/x86/kernel/cpu/common.c+24−0

This diff is large: its 45 lines aren’t shown here.

arch/x86/kernel/cpu/intel_cacheinfo.c+12−13

This diff is large: its 77 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce-internal.h+2−2

This diff is large: its 15 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce.c+74−64

This diff is large: its 301 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce_amd.c+11−8

This diff is large: its 75 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/therm_throt.c+31−32

This diff is large: its 147 lines aren’t shown here.

arch/x86/kernel/cpuid.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/e820.c+26−37

This diff is large: its 108 lines aren’t shown here.

arch/x86/kernel/early_printk.c+2−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/entry_32.S+19−28

This diff is large: its 130 lines aren’t shown here.

arch/x86/kernel/entry_64.S+192−40

This diff is large: its 293 lines aren’t shown here.

arch/x86/kernel/head_64.S+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/kernel/hpet.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/irq_32.c+5−0

This diff is large: its 19 lines aren’t shown here.

arch/x86/kernel/irq_64.c+29−6

This diff is large: its 55 lines aren’t shown here.

arch/x86/kernel/irqinit.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/kvm.c+0−181

This diff is large: its 213 lines aren’t shown here.

arch/x86/kernel/microcode_core.c+33−31

This diff is large: its 177 lines aren’t shown here.

arch/x86/kernel/msr.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/nmi.c+102−0

This diff is large: its 119 lines aren’t shown here.

arch/x86/kernel/nmi_selftest.c+180−0

This diff is large: its 181 lines aren’t shown here.

arch/x86/kernel/pci-dma.c+11−0

This diff is large: its 25 lines aren’t shown here.

arch/x86/kernel/ptrace.c+11−14

This diff is large: its 41 lines aren’t shown here.

arch/x86/kernel/setup.c+1−6

This diff is large: its 14 lines aren’t shown here.

arch/x86/kernel/signal.c+1−5

This diff is large: its 20 lines aren’t shown here.

arch/x86/kernel/smp.c+70−2

This diff is large: its 112 lines aren’t shown here.

arch/x86/kernel/smpboot.c+12−5

This diff is large: its 42 lines aren’t shown here.

arch/x86/kernel/syscall_32.c+25−0

This diff is large: its 26 lines aren’t shown here.

arch/x86/kernel/syscall_64.c+8−12

This diff is large: its 34 lines aren’t shown here.

arch/x86/kernel/syscall_table_32.S+0−350

This diff is large: its 351 lines aren’t shown here.

arch/x86/kernel/traps.c+20−0

This diff is large: its 56 lines aren’t shown here.

arch/x86/kernel/tsc.c+20−0

This diff is large: its 24 lines aren’t shown here.

arch/x86/kernel/vm86_32.c+4−2

This diff is large: its 14 lines aren’t shown here.

arch/x86/kernel/x86_init.c+1−0

This diff is large: its 6 lines aren’t shown here.

arch/x86/kvm/Kconfig+3−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/kvm/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kvm/cpuid.c+670−0

This diff is large: its 671 lines aren’t shown here.

arch/x86/kvm/cpuid.h+46−0

This diff is large: its 47 lines aren’t shown here.

arch/x86/kvm/emulate.c+226−210

This diff is large: its 723 lines aren’t shown here.

arch/x86/kvm/i8254.c+3−7

This diff is large: its 27 lines aren’t shown here.

arch/x86/kvm/i8259.c+16−8

This diff is large: its 39 lines aren’t shown here.

arch/x86/kvm/lapic.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/kvm/lapic.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kvm/mmu.c+229−318

This diff is large: its 901 lines aren’t shown here.

arch/x86/kvm/mmu_audit.c+20−9

This diff is large: its 63 lines aren’t shown here.

arch/x86/kvm/mmutrace.h+0−19

This diff is large: its 26 lines aren’t shown here.

arch/x86/kvm/paging_tmpl.h+40−46

This diff is large: its 179 lines aren’t shown here.

arch/x86/kvm/pmu.c+533−0

This diff is large: its 534 lines aren’t shown here.

arch/x86/kvm/svm.c+15−0

This diff is large: its 36 lines aren’t shown here.

arch/x86/kvm/timer.c+4−22

This diff is large: its 41 lines aren’t shown here.

arch/x86/kvm/vmx.c+39−24

This diff is large: its 187 lines aren’t shown here.

arch/x86/kvm/x86.c+226−779

This diff is large: its 1387 lines aren’t shown here.

arch/x86/kvm/x86.h+2−3

This diff is large: its 17 lines aren’t shown here.

arch/x86/lguest/boot.c+13−8

This diff is large: its 32 lines aren’t shown here.

arch/x86/mm/init.c+23−0

This diff is large: its 41 lines aren’t shown here.

arch/x86/mm/init_32.c+11−18

This diff is large: its 50 lines aren’t shown here.

arch/x86/mm/init_64.c+1−10

This diff is large: its 25 lines aren’t shown here.

arch/x86/mm/mmap.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/x86/mm/mmio-mod.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/mm/numa.c+7−5

This diff is large: its 33 lines aren’t shown here.

arch/x86/mm/pageattr.c+0−6

This diff is large: its 13 lines aren’t shown here.

arch/x86/mm/srat.c+4−0

This diff is large: its 18 lines aren’t shown here.

arch/x86/pci/Makefile+3−2

This diff is large: its 15 lines aren’t shown here.

arch/x86/pci/acpi.c+59−16

This diff is large: its 157 lines aren’t shown here.

arch/x86/pci/amd_bus.c+11−32

This diff is large: its 74 lines aren’t shown here.

arch/x86/pci/broadcom_bus.c+39−23

This diff is large: its 113 lines aren’t shown here.

arch/x86/pci/bus_numa.c+18−13

This diff is large: its 64 lines aren’t shown here.

arch/x86/pci/common.c+12−7

This diff is large: its 56 lines aren’t shown here.

arch/x86/pci/i386.c+0−20

This diff is large: its 27 lines aren’t shown here.

arch/x86/pci/legacy.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/x86/pci/numaq_32.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/pci/pcbios.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/geode/alix.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/iris/iris.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/mrst/Makefile+3−3

This diff is large: its 8 lines aren’t shown here.

arch/x86/platform/mrst/early_printk_mrst.c+12−4

This diff is large: its 29 lines aren’t shown here.

arch/x86/platform/mrst/mrst.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/platform/uv/uv_sysfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/syscalls/Makefile+43−0

This diff is large: its 44 lines aren’t shown here.

arch/x86/syscalls/syscall_32.tbl+357−0

This diff is large: its 358 lines aren’t shown here.

arch/x86/syscalls/syscall_64.tbl+320−0

This diff is large: its 321 lines aren’t shown here.

arch/x86/syscalls/syscallhdr.sh+27−0

This diff is large: its 28 lines aren’t shown here.

arch/x86/syscalls/syscalltbl.sh+15−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/um/Kconfig+0−8

This diff is large: its 15 lines aren’t shown here.

arch/x86/um/Makefile+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/um/shared/sysdep/ptrace.h+10−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/um/sys_call_table_32.S+0−26

This diff is large: its 27 lines aren’t shown here.

arch/x86/um/sys_call_table_32.c+55−0

This diff is large: its 56 lines aren’t shown here.

arch/x86/um/sys_call_table_64.c+13−20

This diff is large: its 57 lines aren’t shown here.

arch/x86/um/user-offsets.c+15−0

This diff is large: its 27 lines aren’t shown here.

arch/x86/xen/Kconfig+3−1

This diff is large: its 15 lines aren’t shown here.

arch/x86/xen/debugfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/debugfs.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/grant-table.c+40−4

This diff is large: its 67 lines aren’t shown here.

arch/x86/xen/mmu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/xtensa/include/asm/pci.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/xtensa/include/asm/socket.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/xtensa/include/asm/thread_info.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/xtensa/include/asm/types.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/kernel/pci.c+47−43

This diff is large: its 121 lines aren’t shown here.

arch/xtensa/kernel/ptrace.c+1−2

This diff is large: its 10 lines aren’t shown here.

block/Kconfig+6−0

This diff is large: its 13 lines aren’t shown here.

block/Makefile+2−1

This diff is large: its 10 lines aren’t shown here.

block/blk-cgroup.c+29−17

This diff is large: its 78 lines aren’t shown here.

block/blk-core.c+122−81

This diff is large: its 359 lines aren’t shown here.

block/blk-exec.c+5−3

This diff is large: its 22 lines aren’t shown here.

block/blk-ioc.c+400−85

This diff is large: its 541 lines aren’t shown here.

block/blk-settings.c+24−8

This diff is large: its 64 lines aren’t shown here.

block/blk-sysfs.c+9−3

This diff is large: its 41 lines aren’t shown here.

block/blk-throttle.c+2−2

This diff is large: its 18 lines aren’t shown here.

block/blk.h+50−8

This diff is large: its 106 lines aren’t shown here.

block/bsg.c+2−4

This diff is large: its 23 lines aren’t shown here.

block/cfq-iosched.c+116−510

This diff is large: its 1035 lines aren’t shown here.

block/compat_ioctl.c+3−0

This diff is large: its 10 lines aren’t shown here.

block/deadline-iosched.c+1−3

This diff is large: its 11 lines aren’t shown here.

block/elevator.c+107−110

This diff is large: its 468 lines aren’t shown here.

block/genhd.c+3−4

This diff is large: its 35 lines aren’t shown here.

block/ioctl.c+3−1

This diff is large: its 18 lines aren’t shown here.

block/noop-iosched.c+1−3

This diff is large: its 11 lines aren’t shown here.

block/partition-generic.crenamed from fs/partitions/check.c+1−151

This diff is large: its 182 lines aren’t shown here.

block/partitions/Kconfigrenamed from fs/partitions/Kconfig+0−0

File renamed without changes.

block/partitions/Makefilerenamed from fs/partitions/Makefile+0−0

File renamed without changes.

block/partitions/acorn.crenamed from fs/partitions/acorn.c+0−0

File renamed without changes.

block/partitions/acorn.hrenamed from fs/partitions/acorn.h+0−0

File renamed without changes.

block/partitions/amiga.crenamed from fs/partitions/amiga.c+0−0

File renamed without changes.

block/partitions/amiga.hrenamed from fs/partitions/amiga.h+0−0

File renamed without changes.

block/partitions/atari.crenamed from fs/partitions/atari.c+0−0

File renamed without changes.

block/partitions/atari.hrenamed from fs/partitions/atari.h+0−0

File renamed without changes.

block/partitions/check.c+166−0

This diff is large: its 167 lines aren’t shown here.

block/partitions/check.hrenamed from fs/partitions/check.h+3−0

This diff is large: its 10 lines aren’t shown here.

block/partitions/efi.crenamed from fs/partitions/efi.c+0−0

File renamed without changes.

block/partitions/efi.hrenamed from fs/partitions/efi.h+0−0

File renamed without changes.

block/partitions/ibm.crenamed from fs/partitions/ibm.c+0−0

File renamed without changes.

block/partitions/ibm.hrenamed from fs/partitions/ibm.h+0−0

File renamed without changes.

block/partitions/karma.crenamed from fs/partitions/karma.c+0−0

File renamed without changes.

block/partitions/karma.hrenamed from fs/partitions/karma.h+0−0

File renamed without changes.

block/partitions/ldm.crenamed from fs/partitions/ldm.c+0−0

File renamed without changes.

block/partitions/ldm.hrenamed from fs/partitions/ldm.h+0−0

File renamed without changes.

block/partitions/mac.crenamed from fs/partitions/mac.c+0−0

File renamed without changes.

block/partitions/mac.hrenamed from fs/partitions/mac.h+0−0

File renamed without changes.

block/partitions/msdos.crenamed from fs/partitions/msdos.c+0−0

File renamed without changes.

block/partitions/msdos.hrenamed from fs/partitions/msdos.h+0−0

File renamed without changes.

block/partitions/osf.crenamed from fs/partitions/osf.c+0−0

File renamed without changes.

block/partitions/osf.hrenamed from fs/partitions/osf.h+0−0

File renamed without changes.

block/partitions/sgi.crenamed from fs/partitions/sgi.c+0−0

File renamed without changes.

block/partitions/sgi.hrenamed from fs/partitions/sgi.h+0−0

File renamed without changes.

block/partitions/sun.crenamed from fs/partitions/sun.c+0−0

File renamed without changes.

block/partitions/sun.hrenamed from fs/partitions/sun.h+0−0

File renamed without changes.

block/partitions/sysv68.crenamed from fs/partitions/sysv68.c+0−0

File renamed without changes.

block/partitions/sysv68.hrenamed from fs/partitions/sysv68.h+0−0

File renamed without changes.

block/partitions/ultrix.crenamed from fs/partitions/ultrix.c+0−0

File renamed without changes.

block/partitions/ultrix.hrenamed from fs/partitions/ultrix.h+0−0

File renamed without changes.

block/scsi_ioctl.c+52−0

This diff is large: its 66 lines aren’t shown here.

crypto/Kconfig+46−8

This diff is large: its 110 lines aren’t shown here.

crypto/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

crypto/algapi.c+29−0

This diff is large: its 36 lines aren’t shown here.

crypto/ansi_cprng.c+8−0

This diff is large: its 19 lines aren’t shown here.

crypto/crypto_user.c+2−2

This diff is large: its 18 lines aren’t shown here.

crypto/lrw.c+122−34

This diff is large: its 244 lines aren’t shown here.

crypto/serpent.c+0−587

This diff is large: its 588 lines aren’t shown here.

crypto/serpent_generic.c+684−0

This diff is large: its 685 lines aren’t shown here.

crypto/tcrypt.c+310−0

This diff is large: its 349 lines aren’t shown here.

crypto/tcrypt.h+2−0

This diff is large: its 10 lines aren’t shown here.

crypto/testmgr.c+150−0

This diff is large: its 206 lines aren’t shown here.

crypto/testmgr.h+2892−137

This diff is large: its 3089 lines aren’t shown here.

crypto/twofish_common.c+8−5

This diff is large: its 29 lines aren’t shown here.

crypto/xts.c+76−3

This diff is large: its 114 lines aren’t shown here.

drivers/Kconfig+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/accessibility/braille/braille_console.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/Makefile+2−1

This diff is large: its 14 lines aren’t shown here.

drivers/acpi/acpica/Makefile+134−24

This diff is large: its 176 lines aren’t shown here.

drivers/acpi/acpica/accommon.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acconfig.h+7−2

This diff is large: its 32 lines aren’t shown here.

drivers/acpi/acpica/acdebug.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acdispat.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acevents.h+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/acpi/acpica/acglobal.h+16−3

This diff is large: its 56 lines aren’t shown here.

drivers/acpi/acpica/achware.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acinterp.h+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/aclocal.h+21−5

This diff is large: its 81 lines aren’t shown here.

drivers/acpi/acpica/acmacros.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acnamesp.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acobject.h+6−2

This diff is large: its 36 lines aren’t shown here.

drivers/acpi/acpica/acopcode.h+5−1

This diff is large: its 41 lines aren’t shown here.

drivers/acpi/acpica/acparser.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acpredef.h+39−2

This diff is large: its 146 lines aren’t shown here.

drivers/acpi/acpica/acresrc.h+78−37

This diff is large: its 185 lines aren’t shown here.

drivers/acpi/acpica/acstruct.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/actables.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acutils.h+20−1

This diff is large: its 42 lines aren’t shown here.

drivers/acpi/acpica/amlcode.h+21−8

This diff is large: its 57 lines aren’t shown here.

drivers/acpi/acpica/amlresrc.h+137−1

This diff is large: its 210 lines aren’t shown here.

drivers/acpi/acpica/dsargs.c+16−2

This diff is large: its 40 lines aren’t shown here.

drivers/acpi/acpica/dscontrol.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsfield.c+67−16

This diff is large: its 146 lines aren’t shown here.

drivers/acpi/acpica/dsinit.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsmethod.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsmthdat.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsobject.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsopcode.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsutils.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dswexec.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dswload.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dswload2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dswscope.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dswstate.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evevent.c+13−1

This diff is large: its 35 lines aren’t shown here.

drivers/acpi/acpica/evglock.c+7−1

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/evgpe.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evgpeblk.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evgpeinit.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evgpeutil.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evmisc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evregion.c+27−4

This diff is large: its 87 lines aren’t shown here.

drivers/acpi/acpica/evrgnini.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evsci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evxface.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evxfevnt.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evxfgpe.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evxfregn.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exconfig.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/exconvrt.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/excreate.c+20−11

This diff is large: its 72 lines aren’t shown here.

drivers/acpi/acpica/exdebug.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exdump.c+6−3

This diff is large: its 25 lines aren’t shown here.

drivers/acpi/acpica/exfield.c+22−8

This diff is large: its 86 lines aren’t shown here.

drivers/acpi/acpica/exfldio.c+29−9

This diff is large: its 89 lines aren’t shown here.

drivers/acpi/acpica/exmisc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exmutex.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exnames.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exoparg1.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exoparg2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exoparg3.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exoparg6.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exprep.c+26−1

This diff is large: its 48 lines aren’t shown here.

drivers/acpi/acpica/exregion.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exresnte.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exresolv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exresop.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exstore.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exstoren.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exstorob.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exsystem.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exutils.c+26−1

This diff is large: its 39 lines aren’t shown here.

drivers/acpi/acpica/hwacpi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/hwgpe.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/hwpci.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/hwregs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/hwsleep.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/hwtimer.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/hwvalid.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/hwxface.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/nsaccess.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsalloc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsdump.c+1−1

This diff is large: its 9 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/nseval.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsinit.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsload.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsnames.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsobject.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsparse.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nspredef.c+30−1

This diff is large: its 52 lines aren’t shown here.

drivers/acpi/acpica/nsrepair.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/acpi/acpica/nsrepair2.c+4−3

This diff is large: its 24 lines aren’t shown here.

drivers/acpi/acpica/nssearch.c+1−1

This diff is large: its 9 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/nswalk.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsxfeval.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsxfname.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsxfobj.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psargs.c+129−14

This diff is large: its 189 lines aren’t shown here.

drivers/acpi/acpica/psloop.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psopcode.c+12−3

This diff is large: its 36 lines aren’t shown here.

drivers/acpi/acpica/psparse.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psscope.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/pstree.c+7−1

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/psutils.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/pswalk.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psxface.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rsaddr.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rscalc.c+81−8

This diff is large: its 145 lines aren’t shown here.

drivers/acpi/acpica/rscreate.c+67−2

This diff is large: its 92 lines aren’t shown here.

drivers/acpi/acpica/rsdump.c+186−10

This diff is large: its 262 lines aren’t shown here.

drivers/acpi/acpica/rsinfo.c+51−7

This diff is large: its 112 lines aren’t shown here.

drivers/acpi/acpica/rsio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rsirq.c+32−1

This diff is large: its 44 lines aren’t shown here.

drivers/acpi/acpica/rslist.c+62−15

This diff is large: its 129 lines aren’t shown here.

drivers/acpi/acpica/rsmemory.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rsmisc.c+263−6

This diff is large: its 356 lines aren’t shown here.

drivers/acpi/acpica/rsserial.c+441−0

This diff is large: its 442 lines aren’t shown here.

drivers/acpi/acpica/rsutils.c+55−1

This diff is large: its 84 lines aren’t shown here.

drivers/acpi/acpica/rsxface.c+47−5

This diff is large: its 83 lines aren’t shown here.

drivers/acpi/acpica/tbfadt.c+30−11

This diff is large: its 113 lines aren’t shown here.

drivers/acpi/acpica/tbfind.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/tbinstal.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/tbutils.c+8−1

This diff is large: its 23 lines aren’t shown here.

drivers/acpi/acpica/tbxface.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/tbxfroot.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utaddress.c+294−0

This diff is large: its 295 lines aren’t shown here.

drivers/acpi/acpica/utalloc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utcopy.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utdebug.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utdecode.c+4−2

This diff is large: its 20 lines aren’t shown here.

drivers/acpi/acpica/utdelete.c+9−6

This diff is large: its 29 lines aren’t shown here.

drivers/acpi/acpica/uteval.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utglobal.c+7−1

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/utids.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utinit.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/acpi/acpica/utlock.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utmath.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utmisc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utmutex.c+4−7

This diff is large: its 35 lines aren’t shown here.

drivers/acpi/acpica/utobject.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utosi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utresrc.c+243−35

This diff is large: its 418 lines aren’t shown here.

drivers/acpi/acpica/utstate.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utxface.c+39−1

This diff is large: its 59 lines aren’t shown here.

drivers/acpi/acpica/utxferror.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/utxfmutex.c+187−0

This diff is large: its 188 lines aren’t shown here.

drivers/acpi/apei/apei-base.c+139−11

This diff is large: its 253 lines aren’t shown here.

drivers/acpi/apei/apei-internal.h+6−0

This diff is large: its 20 lines aren’t shown here.

drivers/acpi/apei/einj.c+244−46

This diff is large: its 404 lines aren’t shown here.

drivers/acpi/apei/erst.c+6−5

This diff is large: its 33 lines aren’t shown here.

drivers/acpi/apei/ghes.c+84−20

This diff is large: its 206 lines aren’t shown here.

drivers/acpi/apei/hest.c+3−4

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/atomicio.c+67−10

This diff is large: its 151 lines aren’t shown here.

drivers/acpi/battery.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/dock.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/ec_sys.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/numa.c+6−0

This diff is large: its 23 lines aren’t shown here.

drivers/acpi/nvs.c+52−1

This diff is large: its 71 lines aren’t shown here.

drivers/acpi/osl.c+38−204

This diff is large: its 320 lines aren’t shown here.

drivers/acpi/pci_irq.c+5−5

This diff is large: its 23 lines aren’t shown here.

drivers/acpi/pci_root.c+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/acpi/pci_slot.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/processor_core.c+24−2

This diff is large: its 33 lines aren’t shown here.

drivers/acpi/processor_driver.c+12−14

This diff is large: its 91 lines aren’t shown here.

drivers/acpi/processor_thermal.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/sleep.c+16−0

This diff is large: its 23 lines aren’t shown here.

drivers/acpi/video.c+3−3

This diff is large: its 25 lines aren’t shown here.

drivers/amba/bus.c+5−135

This diff is large: its 219 lines aren’t shown here.

drivers/ata/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/ahci.c+21−5

This diff is large: its 82 lines aren’t shown here.

drivers/ata/ahci_platform.c+68−0

This diff is large: its 82 lines aren’t shown here.

drivers/ata/ata_piix.c+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/ata/libahci.c+1−4

This diff is large: its 19 lines aren’t shown here.

drivers/ata/libata-core.c+126−64

This diff is large: its 257 lines aren’t shown here.

drivers/ata/libata-scsi.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/ata/libata-sff.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/ata/libata-transport.c+6−0

This diff is large: its 27 lines aren’t shown here.

drivers/ata/libata.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/ata/pata_arasan_cf.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/ata/pata_at91.c+4−17

This diff is large: its 42 lines aren’t shown here.

drivers/ata/pata_bf54x.c+90−97

This diff is large: its 297 lines aren’t shown here.

drivers/ata/pata_cs5536.c+42−57

This diff is large: its 187 lines aren’t shown here.

drivers/ata/pata_imx.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/ata/pata_ixp4xx_cf.c+1−12

This diff is large: its 23 lines aren’t shown here.

drivers/ata/pata_mpc52xx.c+1−20

This diff is large: its 28 lines aren’t shown here.

drivers/ata/pata_of_platform.c+7−20

This diff is large: its 62 lines aren’t shown here.

drivers/ata/pata_palmld.c+1−12

This diff is large: its 22 lines aren’t shown here.

drivers/ata/pata_platform.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/ata/pata_pxa.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/ata/pata_rb532_cf.c+2−19

This diff is large: its 40 lines aren’t shown here.

drivers/ata/sata_dwc_460ex.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/ata/sata_fsl.c+12−13

This diff is large: its 55 lines aren’t shown here.

drivers/ata/sata_mv.c+11−8

This diff is large: its 61 lines aren’t shown here.

drivers/ata/sata_nv.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/ata/sata_sil24.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/he.c+3−3

This diff is large: its 16 lines aren’t shown here.

drivers/atm/iphase.c+2−2

This diff is large: its 20 lines aren’t shown here.

drivers/base/Kconfig+15−0

This diff is large: its 22 lines aren’t shown here.

drivers/base/Makefile+3−2

This diff is large: its 20 lines aren’t shown here.

drivers/base/base.h+7−7

This diff is large: its 59 lines aren’t shown here.

drivers/base/bus.c+274−19

This diff is large: its 378 lines aren’t shown here.

drivers/base/class.c+7−7

This diff is large: its 49 lines aren’t shown here.

drivers/base/core.c+71−18

This diff is large: its 180 lines aren’t shown here.

drivers/base/cpu.c+97−73

This diff is large: its 336 lines aren’t shown here.

drivers/base/devres.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/base/devtmpfs.c+5−6

This diff is large: its 48 lines aren’t shown here.

drivers/base/dma-buf.c+291−0

This diff is large: its 292 lines aren’t shown here.

drivers/base/firmware_class.c+11−7

This diff is large: its 55 lines aren’t shown here.

drivers/base/init.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/base/memory.c+80−97

This diff is large: its 382 lines aren’t shown here.

drivers/base/node.c+80−74

This diff is large: its 340 lines aren’t shown here.

drivers/base/platform.c+1−116

This diff is large: its 173 lines aren’t shown here.

drivers/base/power/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/base/power/domain.c+409−145

This diff is large: its 795 lines aren’t shown here.

drivers/base/power/domain_governor.c+170−0

This diff is large: its 171 lines aren’t shown here.

drivers/base/power/generic_ops.c+14−77

This diff is large: its 152 lines aren’t shown here.

drivers/base/power/main.c+165−210

This diff is large: its 585 lines aren’t shown here.

drivers/base/power/qos.c+41−8

This diff is large: its 67 lines aren’t shown here.

drivers/base/power/runtime.c+137−20

This diff is large: its 228 lines aren’t shown here.

drivers/base/regmap/Kconfig+3−0

This diff is large: its 7 lines aren’t shown here.

drivers/base/regmap/Makefile+3−1

This diff is large: its 8 lines aren’t shown here.

drivers/base/regmap/internal.h+2−4

This diff is large: its 28 lines aren’t shown here.

drivers/base/regmap/regcache-indexed.c+0−64

This diff is large: its 65 lines aren’t shown here.

drivers/base/regmap/regcache-lzo.c+13−8

This diff is large: its 80 lines aren’t shown here.

drivers/base/regmap/regcache-rbtree.c+60−1

This diff is large: its 91 lines aren’t shown here.

drivers/base/regmap/regcache.c+57−30

This diff is large: its 166 lines aren’t shown here.

drivers/base/regmap/regmap-irq.c+302−0

This diff is large: its 303 lines aren’t shown here.

drivers/base/regmap/regmap.c+134−45

This diff is large: its 307 lines aren’t shown here.

drivers/base/sys.c+1−9

This diff is large: its 24 lines aren’t shown here.

drivers/base/topology.c+25−26

This diff is large: its 115 lines aren’t shown here.

drivers/bcma/bcma_private.h+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/bcma/host_pci.c+51−11

This diff is large: its 114 lines aren’t shown here.

drivers/bcma/main.c+40−0

This diff is large: its 47 lines aren’t shown here.

drivers/bcma/sprom.c+61−0

This diff is large: its 81 lines aren’t shown here.

drivers/block/Kconfig+13−0

This diff is large: its 27 lines aren’t shown here.

drivers/block/Makefile+2−0

This diff is large: its 15 lines aren’t shown here.

drivers/block/amiflop.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/aoe/aoechr.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/brd.c+4−5

This diff is large: its 27 lines aren’t shown here.

drivers/block/cciss.c+3−3

This diff is large: its 21 lines aren’t shown here.

drivers/block/drbd/drbd_int.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/block/drbd/drbd_main.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/block/floppy.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/loop.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/mtip32xx/Kconfig+9−0

This diff is large: its 10 lines aren’t shown here.

drivers/block/mtip32xx/Makefile+5−0

This diff is large: its 6 lines aren’t shown here.

drivers/block/mtip32xx/mtip32xx.c+3651−0

This diff is large: its 3652 lines aren’t shown here.

drivers/block/mtip32xx/mtip32xx.h+423−0

This diff is large: its 424 lines aren’t shown here.

drivers/block/nvme.c+1739−0

This diff is large: its 1740 lines aren’t shown here.

drivers/block/paride/bpck6.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/block/paride/pcd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/paride/pd.c+2−1

This diff is large: its 11 lines aren’t shown here.

drivers/block/paride/pf.c+3−1

This diff is large: its 17 lines aren’t shown here.

drivers/block/paride/pg.c+2−1

This diff is large: its 16 lines aren’t shown here.

drivers/block/paride/pt.c+3−1

This diff is large: its 17 lines aren’t shown here.

drivers/block/pktcdvd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/rbd.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/block/swim.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/sx8.c+8−4

This diff is large: its 26 lines aren’t shown here.

drivers/block/ub.c+1−2

This diff is large: its 14 lines aren’t shown here.

drivers/block/virtio_blk.c+82−9

This diff is large: its 178 lines aren’t shown here.

drivers/block/xd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/xen-blkback/blkback.c+35−49

This diff is large: its 175 lines aren’t shown here.

drivers/block/xen-blkback/common.h+39−28

This diff is large: its 151 lines aren’t shown here.

drivers/block/xen-blkback/xenbus.c+16−7

This diff is large: its 56 lines aren’t shown here.

drivers/block/xen-blkfront.c+55−35

This diff is large: its 242 lines aren’t shown here.

drivers/block/xsysace.c+5−5

This diff is large: its 42 lines aren’t shown here.

drivers/bluetooth/ath3k.c+12−17

This diff is large: its 52 lines aren’t shown here.

drivers/bluetooth/bcm203x.c+1−20

This diff is large: its 28 lines aren’t shown here.

drivers/bluetooth/bfusb.c+2−23

This diff is large: its 39 lines aren’t shown here.

drivers/bluetooth/bluecard_cs.c+1−3

This diff is large: its 11 lines aren’t shown here.

drivers/bluetooth/bpa10x.c+1−14

This diff is large: its 22 lines aren’t shown here.

drivers/bluetooth/bt3c_cs.c+1−3

This diff is large: its 11 lines aren’t shown here.

drivers/bluetooth/btmrvl_main.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/btuart_cs.c+1−3

This diff is large: its 11 lines aren’t shown here.

drivers/bluetooth/btusb.c+22−31

This diff is large: its 119 lines aren’t shown here.

drivers/bluetooth/dtl1_cs.c+1−3

This diff is large: its 11 lines aren’t shown here.

drivers/bluetooth/hci_bcsp.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/bluetooth/hci_ldisc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/hci_vhci.c+9−4

This diff is large: its 41 lines aren’t shown here.

drivers/cdrom/cdrom.c+7−9

This diff is large: its 46 lines aren’t shown here.

drivers/char/agp/amd64-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/agp/generic.c+4−4

This diff is large: its 33 lines aren’t shown here.

drivers/char/agp/sis-agp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/hw_random/atmel-rng.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/char/hw_random/n2-drv.c+1−12

This diff is large: its 17 lines aren’t shown here.

drivers/char/hw_random/nomadik-rng.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/char/hw_random/octeon-rng.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/char/hw_random/pasemi-rng.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/char/hw_random/picoxcell-rng.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/char/hw_random/ppc4xx-rng.c+1−11

This diff is large: its 19 lines aren’t shown here.

drivers/char/hw_random/timeriomem-rng.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/char/hw_random/virtio-rng.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/i8k.c+4−4

This diff is large: its 24 lines aren’t shown here.

drivers/char/ipmi/ipmi_bt_sm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/ipmi/ipmi_si_intf.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/lp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/mem.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/char/misc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/nwflash.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/pcmcia/synclink_cs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/ramoops.c+12−12

This diff is large: its 52 lines aren’t shown here.

drivers/char/random.c+7−1

This diff is large: its 29 lines aren’t shown here.

drivers/char/raw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/tile-srom.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/tpm/Kconfig+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/char/tpm/tpm.c+126−20

This diff is large: its 226 lines aren’t shown here.

drivers/char/tpm/tpm.h+9−3

This diff is large: its 34 lines aren’t shown here.

drivers/char/tpm/tpm_tis.c+30−60

This diff is large: its 192 lines aren’t shown here.

drivers/char/virtio_console.c+109−31

This diff is large: its 217 lines aren’t shown here.

drivers/clk/Kconfig+3−0

This diff is large: its 9 lines aren’t shown here.

drivers/clocksource/clksrc-dbx500-prcmu.c+3−13

This diff is large: its 37 lines aren’t shown here.

drivers/cpufreq/Kconfig.arm+11−4

This diff is large: its 24 lines aren’t shown here.

drivers/cpufreq/Makefile+2−0

This diff is large: its 10 lines aren’t shown here.

drivers/cpufreq/cpufreq.c+40−42

This diff is large: its 267 lines aren’t shown here.

drivers/cpufreq/cpufreq_ondemand.c+1−2

This diff is large: its 13 lines aren’t shown here.

drivers/cpufreq/cpufreq_stats.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/cpufreq/cpufreq_userspace.c+5−3

This diff is large: its 15 lines aren’t shown here.

drivers/cpufreq/exynos-cpufreq.c+290−0

This diff is large: its 291 lines aren’t shown here.

drivers/cpufreq/exynos4210-cpufreq.c+130−513

This diff is large: its 779 lines aren’t shown here.

drivers/cpufreq/omap-cpufreq.c+274−0

This diff is large: its 275 lines aren’t shown here.

drivers/cpufreq/powernow-k8.c+29−18

This diff is large: its 110 lines aren’t shown here.

drivers/cpufreq/s3c64xx-cpufreq.c+22−13

This diff is large: its 127 lines aren’t shown here.

drivers/cpuidle/cpuidle.c+6−6

This diff is large: its 49 lines aren’t shown here.

drivers/cpuidle/cpuidle.h+5−5

This diff is large: its 25 lines aren’t shown here.

drivers/cpuidle/sysfs.c+36−38

This diff is large: its 152 lines aren’t shown here.

drivers/crypto/amcc/crypto4xx_core.c+1−12

This diff is large: its 20 lines aren’t shown here.

drivers/crypto/caam/caamalg.c+62−5

This diff is large: its 123 lines aren’t shown here.

drivers/crypto/caam/compat.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/crypto/caam/ctrl.c+1−25

This diff is large: its 47 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.