History

Merge commit 'v2.6.38-rc6' into for-2.6.39/core

Conflicts: block/cfq-iosched.c

Jens Axboe committed 15 years ago

Commit 6fae9c22 parents c186794 f5412be8522 files · +555542 −265643Browse files

Unified · Split

2886 files
  1. .mailmap +2 −0
  2. CREDITS +2 −4
  3. Documentation/ABI/stable/thermal-notification +4 −0
  4. Documentation/ABI/testing/sysfs-class-led +9 −0
  5. Documentation/ABI/testing/sysfs-class-net-batman-adv +0 −0
  6. Documentation/ABI/testing/sysfs-class-net-mesh +28 −0
  7. Documentation/ABI/testing/sysfs-driver-hid-roccat-kone +8 −8
  8. Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus +108 −0
  9. Documentation/ABI/testing/sysfs-driver-hid-roccat-pyra +9 −9
  10. Documentation/ABI/testing/sysfs-platform-at91 +25 −0
  11. Documentation/ABI/testing/sysfs-platform-ideapad-laptop +6 −0
  12. Documentation/ABI/testing/sysfs-tty +19 −0
  13. Documentation/DocBook/80211.tmpl +85 −6
  14. Documentation/DocBook/device-drivers.tmpl +6 −2
  15. Documentation/DocBook/drm.tmpl +3 −3
  16. Documentation/DocBook/dvb/dvbapi.xml +1 −1
  17. Documentation/DocBook/filesystems.tmpl +5 −0
  18. Documentation/DocBook/media.tmpl +2 −2
  19. Documentation/DocBook/mtdnand.tmpl +1 −1
  20. Documentation/DocBook/v4l/dev-rds.xml +4 −2
  21. Documentation/DocBook/v4l/func-ioctl.xml +2 −3
  22. Documentation/DocBook/v4l/pixfmt.xml +2 −2
  23. Documentation/DocBook/v4l/v4l2.xml +2 −1
  24. Documentation/IPMI.txt +27 −0
  25. Documentation/Makefile +1 −1
  26. Documentation/RCU/trace.txt +128 −16
  27. Documentation/acpi/apei/output_format.txt +122 −0
  28. Documentation/arm/00-INDEX +2 −0
  29. Documentation/arm/OMAP/omap_pm +25 −0
  30. Documentation/arm/swp_emulation +27 −0
  31. Documentation/cgroups/blkio-controller.txt +27 −0
  32. Documentation/cgroups/cgroup_event_listener.c +1 −1
  33. Documentation/cgroups/cgroups.txt +4 −4
  34. Documentation/cgroups/memcg_test.txt +1 −1
  35. Documentation/coccinelle.txt +4 −0
  36. Documentation/device-mapper/dm-crypt.txt +6 −1
  37. Documentation/device-mapper/dm-raid.txt +70 −0
  38. Documentation/devicetree/bindings/ata/fsl-sata.txt +0 −0
  39. Documentation/devicetree/bindings/eeprom.txt +28 −0
  40. Documentation/devicetree/bindings/gpio/8xxx_gpio.txt +0 −0
  41. Documentation/devicetree/bindings/gpio/gpio.txt +0 −0
  42. Documentation/devicetree/bindings/gpio/led.txt +0 −0
  43. Documentation/devicetree/bindings/i2c/fsl-i2c.txt +0 −0
  44. Documentation/devicetree/bindings/marvell.txt +0 −0
  45. Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +0 −0
  46. Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt +0 −0
  47. Documentation/devicetree/bindings/mtd/fsl-upm-nand.txt +0 −0
  48. Documentation/devicetree/bindings/mtd/mtd-physmap.txt +0 −0
  49. Documentation/devicetree/bindings/net/can/mpc5xxx-mscan.txt +0 −0
  50. Documentation/devicetree/bindings/net/can/sja1000.txt +0 −0
  51. Documentation/devicetree/bindings/net/fsl-tsec-phy.txt +0 −0
  52. Documentation/devicetree/bindings/net/mdio-gpio.txt +0 −0
  53. Documentation/devicetree/bindings/net/phy.txt +0 −0
  54. Documentation/devicetree/bindings/pci/83xx-512x-pci.txt +0 −0
  55. Documentation/devicetree/bindings/powerpc/4xx/cpm.txt +52 −0
  56. Documentation/devicetree/bindings/powerpc/4xx/emac.txt +0 −0
  57. Documentation/devicetree/bindings/powerpc/4xx/ndfc.txt +0 −0
  58. Documentation/devicetree/bindings/powerpc/4xx/ppc440spe-adma.txt +0 −0
  59. Documentation/devicetree/bindings/powerpc/4xx/reboot.txt +0 −0
  60. Documentation/devicetree/bindings/powerpc/fsl/board.txt +0 −0
  61. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm.txt +0 −0
  62. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/brg.txt +0 −0
  63. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/i2c.txt +0 −0
  64. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/pic.txt +0 −0
  65. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/usb.txt +0 −0
  66. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/gpio.txt +0 −0
  67. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt +0 −0
  68. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe.txt +0 −0
  69. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/firmware.txt +0 −0
  70. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/par_io.txt +0 −0
  71. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt +0 −0
  72. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/ucc.txt +0 −0
  73. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/usb.txt +0 −0
  74. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/serial.txt +0 −0
  75. Documentation/devicetree/bindings/powerpc/fsl/diu.txt +0 −0
  76. Documentation/devicetree/bindings/powerpc/fsl/dma.txt +0 −0
  77. Documentation/devicetree/bindings/powerpc/fsl/ecm.txt +0 −0
  78. Documentation/devicetree/bindings/powerpc/fsl/gtm.txt +0 −0
  79. Documentation/devicetree/bindings/powerpc/fsl/guts.txt +0 −0
  80. Documentation/devicetree/bindings/powerpc/fsl/lbc.txt +0 −0
  81. Documentation/devicetree/bindings/powerpc/fsl/mcm.txt +0 −0
  82. Documentation/devicetree/bindings/powerpc/fsl/mcu-mpc8349emitx.txt +0 −0
  83. Documentation/devicetree/bindings/powerpc/fsl/mpc5121-psc.txt +0 −0
  84. Documentation/devicetree/bindings/powerpc/fsl/mpc5200.txt +0 −0
  85. Documentation/devicetree/bindings/powerpc/fsl/mpic.txt +0 −0
  86. Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt +0 −0
  87. Documentation/devicetree/bindings/powerpc/fsl/pmc.txt +0 −0
  88. Documentation/devicetree/bindings/powerpc/fsl/sec.txt +0 −0
  89. Documentation/devicetree/bindings/powerpc/fsl/ssi.txt +0 −0
  90. Documentation/devicetree/bindings/powerpc/nintendo/gamecube.txt +0 −0
  91. Documentation/devicetree/bindings/powerpc/nintendo/wii.txt +0 −0
  92. Documentation/devicetree/bindings/spi/fsl-spi.txt +0 −0
  93. Documentation/devicetree/bindings/spi/spi-bus.txt +0 −0
  94. Documentation/devicetree/bindings/usb/fsl-usb.txt +0 −0
  95. Documentation/devicetree/bindings/usb/usb-ehci.txt +0 −0
  96. Documentation/devicetree/bindings/xilinx.txt +0 −0
  97. Documentation/devicetree/booting-without-of.txt +57 −114
  98. Documentation/dontdiff +26 −0
  99. Documentation/dvb/lmedm04.txt +1 −1
  100. Documentation/email-clients.txt +30 −20
  101. Documentation/fb/udlfb.txt +0 −0
  102. Documentation/feature-removal-schedule.txt +87 −32
  103. Documentation/filesystems/Locking +21 −17
  104. Documentation/filesystems/dentry-locking.txt +0 −174
  105. Documentation/filesystems/ntfs.txt +5 −0
  106. Documentation/filesystems/path-lookup.txt +382 −0
  107. Documentation/filesystems/porting +77 −1
  108. Documentation/filesystems/proc.txt +31 −0
  109. Documentation/filesystems/vfs.txt +100 −17
  110. Documentation/hwmon/adm9240 +1 −1
  111. Documentation/hwmon/ads7828 +1 −1
  112. Documentation/hwmon/dme1737 +7 −5
  113. Documentation/hwmon/ds620 +34 −0
  114. Documentation/hwmon/jc42 +15 −6
  115. Documentation/hwmon/k10temp +7 −1
  116. Documentation/hwmon/lm93 +7 −0
  117. Documentation/hwmon/sht21 +49 −0
  118. Documentation/hwmon/sysfs-interface +42 −7
  119. Documentation/hwmon/w83627hf +22 −0
  120. Documentation/hwmon/w83793 +1 −1
  121. Documentation/i2c/muxes/gpio-i2cmux +65 −0
  122. Documentation/input/cma3000_d0x.txt +115 −0
  123. Documentation/input/ff.txt +3 −1
  124. Documentation/input/multi-touch-protocol.txt +34 −19
  125. Documentation/ioctl/ioctl-number.txt +1 −7
  126. Documentation/iostats.txt +1 −1
  127. Documentation/kbuild/kbuild.txt +8 −0
  128. Documentation/kbuild/kconfig-language.txt +5 −2
  129. Documentation/kbuild/makefiles.txt +15 −0
  130. Documentation/kdump/kdump.txt +9 −6
  131. Documentation/kernel-docs.txt +2 −25
  132. Documentation/kernel-parameters.txt +38 −33
  133. Documentation/keys-trusted-encrypted.txt +145 −0
  134. Documentation/ko_KR/HOWTO +2 −2
  135. Documentation/kprobes.txt +1 −1
  136. Documentation/kvm/api.txt +179 −1
  137. Documentation/kvm/cpuid.txt +3 −0
  138. Documentation/kvm/msr.txt +35 −1
  139. Documentation/lguest/lguest.c +65 −8
  140. Documentation/lguest/lguest.txt +10 −2
  141. Documentation/magic-number.txt +1 −1
  142. Documentation/make/headers_install.txt +3 −2
  143. Documentation/networking/LICENSE.qlcnic +327 −0
  144. Documentation/networking/Makefile +2 −0
  145. Documentation/networking/batman-adv.txt +3 −3
  146. Documentation/networking/bonding.txt +71 −12
  147. Documentation/networking/bridge.txt +2 −2
  148. Documentation/networking/caif/spi_porting.txt +1 −1
  149. Documentation/networking/dccp.txt +23 −2
  150. Documentation/networking/e100.txt +5 −14
  151. Documentation/networking/e1000.txt +8 −8
  152. Documentation/networking/e1000e.txt +28 −24
  153. Documentation/networking/generic_netlink.txt +1 −1
  154. Documentation/networking/igb.txt +6 −29
  155. Documentation/networking/igbvf.txt +4 −2
  156. Documentation/networking/ip-sysctl.txt +25 −5
  157. Documentation/networking/ixgb.txt +5 −5
  158. Documentation/networking/ixgbe.txt +137 −76
  159. Documentation/networking/ixgbevf.txt +0 −4
  160. Documentation/networking/stmmac.txt +37 −11
  161. Documentation/nfc/nfc-pn544.txt +114 −0
  162. Documentation/power/drivers-testing.txt +4 −4
  163. Documentation/power/runtime_pm.txt +31 −0
  164. Documentation/pps/pps.txt +46 −0
  165. Documentation/scheduler/00-INDEX +1 −1
  166. Documentation/scheduler/sched-stats.txt +15 −18
  167. Documentation/scsi/ChangeLog.lpfc +1 −1
  168. Documentation/scsi/ChangeLog.megaraid_sas +22 −0
  169. Documentation/serial/00-INDEX +2 −0
  170. Documentation/serial/serial-rs485.txt +120 −0
  171. Documentation/serial/tty.txt +1 −1
  172. Documentation/sound/alsa/ALSA-Configuration.txt +9 −11
  173. Documentation/sound/alsa/HD-Audio-Models.txt +1 −1
  174. Documentation/sound/alsa/soc/codec.txt +21 −24
  175. Documentation/sound/alsa/soc/machine.txt +9 −29
  176. Documentation/sound/alsa/soc/platform.txt +10 −2
  177. Documentation/spi/pxa2xx +2 −2
  178. Documentation/sysctl/00-INDEX +0 −2
  179. Documentation/sysctl/kernel.txt +15 −1
  180. Documentation/target/tcm_mod_builder.py +1094 −0
  181. Documentation/target/tcm_mod_builder.txt +145 −0
  182. Documentation/thermal/sysfs-api.txt +12 −0
  183. Documentation/timers/timer_stats.txt +1 −1
  184. Documentation/trace/events-power.txt +90 −0
  185. Documentation/trace/events.txt +4 −4
  186. Documentation/usb/power-management.txt +58 −55
  187. Documentation/video4linux/CARDLIST.em28xx +3 −3
  188. Documentation/video4linux/CARDLIST.saa7134 +2 −0
  189. Documentation/video4linux/Makefile +0 −8
  190. Documentation/video4linux/README.cpia +0 −191
  191. Documentation/video4linux/Zoran +3 −71
  192. Documentation/video4linux/bttv/Cards +0 −4
  193. Documentation/video4linux/gspca.txt +1 −0
  194. Documentation/video4linux/meye.txt +2 −8
  195. Documentation/video4linux/v4l2-controls.txt +12 −0
  196. Documentation/video4linux/v4lgrab.c +0 −201
  197. Documentation/video4linux/videobuf +1 −6
  198. Documentation/vm/Makefile +1 −1
  199. Documentation/vm/transhuge.txt +298 −0
  200. Documentation/w1/slaves/00-INDEX +2 −0
  201. Documentation/w1/slaves/w1_ds2423 +47 −0
  202. Documentation/workqueue.txt +2 −2
  203. Documentation/x86/boot.txt +4 −3
  204. Documentation/xz.txt +121 −0
  205. Documentation/zh_CN/HOWTO +2 −2
  206. Documentation/zh_CN/SubmittingDrivers +1 −1
  207. MAINTAINERS +332 −88
  208. Makefile +3 −2
  209. arch/Kconfig +3 −0
  210. arch/alpha/Kconfig +3 −13
  211. arch/alpha/include/asm/io.h +5 −3
  212. arch/alpha/include/asm/ioctls.h +1 −0
  213. arch/alpha/include/asm/mman.h +3 −0
  214. arch/alpha/include/asm/perf_event.h +0 −6
  215. arch/alpha/kernel/Makefile +2 −2
  216. arch/alpha/kernel/irq.c +20 −11
  217. arch/alpha/kernel/irq_alpha.c +8 −18
  218. arch/alpha/kernel/irq_i8259.c +4 −22
  219. arch/alpha/kernel/irq_pyxis.c +5 −22
  220. arch/alpha/kernel/irq_srm.c +5 −22
  221. arch/alpha/kernel/osf_sys.c +0 −3
  222. arch/alpha/kernel/perf_event.c +7 −4
  223. arch/alpha/kernel/sys_alcor.c +5 −22
  224. arch/alpha/kernel/sys_cabriolet.c +6 −22
  225. arch/alpha/kernel/sys_dp264.c +8 −42
  226. arch/alpha/kernel/sys_eb64p.c +5 −22
  227. arch/alpha/kernel/sys_eiger.c +5 −22
  228. arch/alpha/kernel/sys_jensen.c +10 −45
  229. arch/alpha/kernel/sys_marvel.c +13 −37
  230. arch/alpha/kernel/sys_mikasa.c +5 −22
  231. arch/alpha/kernel/sys_noritake.c +5 −22
  232. arch/alpha/kernel/sys_rawhide.c +5 −22
  233. arch/alpha/kernel/sys_rx164.c +5 −22
  234. arch/alpha/kernel/sys_sable.c +6 −22
  235. arch/alpha/kernel/sys_takara.c +5 −22
  236. arch/alpha/kernel/sys_titan.c +7 −24
  237. arch/alpha/kernel/sys_wildfire.c +12 −30
  238. arch/alpha/kernel/time.c +1 −1
  239. arch/alpha/lib/Makefile +2 −2
  240. arch/alpha/math-emu/Makefile +1 −1
  241. arch/alpha/mm/Makefile +1 −1
  242. arch/alpha/oprofile/Makefile +1 −1
  243. arch/arm/Kconfig +131 −51
  244. arch/arm/Kconfig.debug +2 −2
  245. arch/arm/Makefile +3 −2
  246. arch/arm/boot/compressed/.gitignore +5 −1
  247. arch/arm/boot/compressed/Makefile +4 −0
  248. arch/arm/boot/compressed/head-shmobile.S +53 −0
  249. arch/arm/common/Kconfig +0 −4
  250. arch/arm/common/Makefile +1 −0
  251. arch/arm/common/dmabounce.c +8 −8
  252. arch/arm/common/gic.c +80 −53
  253. arch/arm/common/it8152.c +10 −6
  254. arch/arm/common/locomo.c +12 −12
  255. arch/arm/common/sa1111.c +48 −48
  256. arch/arm/common/timer-sp.c +2 −6
  257. arch/arm/common/vic.c +17 −17
  258. arch/arm/configs/ag5evm_defconfig +83 −0
  259. arch/arm/configs/am200epdkit_defconfig +1 −1
  260. arch/arm/configs/ams_delta_defconfig +0 −121
  261. arch/arm/configs/at572d940hfek_defconfig +1 −1
  262. arch/arm/configs/badge4_defconfig +1 −1
  263. arch/arm/configs/bcmring_defconfig +1 −1
  264. arch/arm/configs/cm_x2xx_defconfig +1 −1
  265. arch/arm/configs/colibri_pxa270_defconfig +1 −1
  266. arch/arm/configs/collie_defconfig +1 −1
  267. arch/arm/configs/corgi_defconfig +1 −1
  268. arch/arm/configs/da8xx_omapl_defconfig +1 −1
  269. arch/arm/configs/davinci_all_defconfig +1 −1
  270. arch/arm/configs/dove_defconfig +1 −1
  271. arch/arm/configs/ebsa110_defconfig +1 −1
  272. arch/arm/configs/edb7211_defconfig +1 −1
  273. arch/arm/configs/em_x270_defconfig +1 −1
  274. arch/arm/configs/ep93xx_defconfig +1 −1
  275. arch/arm/configs/eseries_pxa_defconfig +1 −1
  276. arch/arm/configs/ezx_defconfig +1 −1
  277. arch/arm/configs/footbridge_defconfig +1 −1
  278. arch/arm/configs/fortunet_defconfig +1 −1
  279. arch/arm/configs/h5000_defconfig +1 −1
  280. arch/arm/configs/htcherald_defconfig +0 −73
  281. arch/arm/configs/imote2_defconfig +1 −1
  282. arch/arm/configs/ixp2000_defconfig +1 −1
  283. arch/arm/configs/ixp23xx_defconfig +1 −1
  284. arch/arm/configs/ixp4xx_defconfig +1 −1
  285. arch/arm/configs/loki_defconfig +1 −1
  286. arch/arm/configs/lpd7a400_defconfig +1 −1
  287. arch/arm/configs/lpd7a404_defconfig +1 −1
  288. arch/arm/configs/mackerel_defconfig +138 −0
  289. arch/arm/configs/magician_defconfig +1 −1
  290. arch/arm/configs/mv78xx0_defconfig +1 −1
  291. arch/arm/configs/mx1_defconfig +1 −1
  292. arch/arm/configs/mx21_defconfig +1 −1
  293. arch/arm/configs/mx27_defconfig +1 −1
  294. arch/arm/configs/mx3_defconfig +2 −1
  295. arch/arm/configs/mx51_defconfig +1 −1
  296. arch/arm/configs/n770_defconfig +0 −138
  297. arch/arm/configs/nhk8815_defconfig +1 −1
  298. arch/arm/configs/omap1_defconfig +286 −0
  299. arch/arm/configs/omap2plus_defconfig +1 −1
  300. arch/arm/configs/omap_generic_1510_defconfig +0 −84
  301. arch/arm/configs/omap_generic_1610_defconfig +0 −87
  302. arch/arm/configs/omap_generic_1710_defconfig +0 −75
  303. arch/arm/configs/omap_h2_1610_defconfig +0 −109
  304. arch/arm/configs/omap_innovator_1510_defconfig +0 −102
  305. arch/arm/configs/omap_innovator_1610_defconfig +0 −58
  306. arch/arm/configs/omap_osk_5912_defconfig +0 −87
  307. arch/arm/configs/omap_perseus2_730_defconfig +0 −65
  308. arch/arm/configs/orion5x_defconfig +1 −1
  309. arch/arm/configs/palmte_defconfig +0 −48
  310. arch/arm/configs/palmtt_defconfig +0 −56
  311. arch/arm/configs/palmz71_defconfig +0 −53
  312. arch/arm/configs/pcm027_defconfig +1 −1
  313. arch/arm/configs/pcontrol_g20_defconfig +1 −1
  314. arch/arm/configs/pleb_defconfig +1 −1
  315. arch/arm/configs/pnx4008_defconfig +1 −1
  316. arch/arm/configs/simpad_defconfig +1 −1
  317. arch/arm/configs/spitz_defconfig +1 −1
  318. arch/arm/configs/stmp378x_defconfig +1 −1
  319. arch/arm/configs/stmp37xx_defconfig +1 −1
  320. arch/arm/configs/sx1_defconfig +0 −110
  321. arch/arm/configs/tct_hammer_defconfig +1 −1
  322. arch/arm/configs/trizeps4_defconfig +1 −1
  323. arch/arm/configs/u300_defconfig +1 −1
  324. arch/arm/configs/u8500_defconfig +4 −0
  325. arch/arm/configs/viper_defconfig +1 −1
  326. arch/arm/configs/xcep_defconfig +1 −1
  327. arch/arm/include/asm/assembler.h +26 −9
  328. arch/arm/include/asm/bitops.h +1 −1
  329. arch/arm/include/asm/cache.h +2 −0
  330. arch/arm/include/asm/clkdev.h +6 −16
  331. arch/arm/include/asm/dma-mapping.h +69 −24
  332. arch/arm/include/asm/domain.h +29 −2
  333. arch/arm/include/asm/elf.h +2 −0
  334. arch/arm/include/asm/entry-macro-multi.S +44 −0
  335. arch/arm/include/asm/futex.h +5 −4
  336. arch/arm/include/asm/hardirq.h +18 −0
  337. arch/arm/include/asm/hardware/cache-l2x0.h +12 −1
  338. arch/arm/include/asm/hardware/entry-macro-gic.S +75 −0
  339. arch/arm/include/asm/hardware/gic.h +5 −2
  340. arch/arm/include/asm/hardware/sp810.h +9 −0
  341. arch/arm/include/asm/hardware/timer-sp.h +0 −0
  342. arch/arm/include/asm/hw_breakpoint.h +2 −2
  343. arch/arm/include/asm/io.h +22 −24
  344. arch/arm/include/asm/kexec.h +14 −4
  345. arch/arm/include/asm/localtimer.h +0 −12
  346. arch/arm/include/asm/mach/arch.h +9 −0
  347. arch/arm/include/asm/mach/irq.h +5 −3
  348. arch/arm/include/asm/mach/time.h +0 −1
  349. arch/arm/include/asm/memory.h +1 −1
  350. arch/arm/include/asm/module.h +5 −10
  351. arch/arm/include/asm/page.h +4 −2
  352. arch/arm/include/asm/pgalloc.h +22 −28
  353. arch/arm/include/asm/pgtable.h +155 −160
  354. arch/arm/include/asm/sched_clock.h +120 −0
  355. arch/arm/include/asm/smp.h +9 −8
  356. arch/arm/include/asm/smp_mpidr.h +0 −17
  357. arch/arm/include/asm/smp_twd.h +0 −1
  358. arch/arm/include/asm/system.h +12 −0
  359. arch/arm/include/asm/tlb.h +92 −13
  360. arch/arm/include/asm/tlbflush.h +1 −6
  361. arch/arm/include/asm/traps.h +23 −2
  362. arch/arm/include/asm/uaccess.h +8 −8
  363. arch/arm/kernel/Makefile +7 −2
  364. arch/arm/kernel/ecard.c +14 −14
  365. arch/arm/kernel/entry-armv.S +23 −33
  366. arch/arm/kernel/entry-common.S +137 −65
  367. arch/arm/kernel/entry-header.S +19 −0
  368. arch/arm/kernel/fiq.c +8 −2
  369. arch/arm/kernel/ftrace.c +98 −5
  370. arch/arm/kernel/head-common.S +2 −0
  371. arch/arm/kernel/head.S +45 −21
  372. arch/arm/kernel/hw_breakpoint.c +331 −228
  373. arch/arm/kernel/irq.c +33 −18
  374. arch/arm/kernel/iwmmxt.S +42 −13
  375. arch/arm/kernel/kprobes-decode.c +1 −1
  376. arch/arm/kernel/machine_kexec.c +30 −0
  377. arch/arm/kernel/module.c +77 −66
  378. arch/arm/kernel/perf_event.c +46 −2426
  379. arch/arm/kernel/perf_event_v6.c +672 −0
  380. arch/arm/kernel/perf_event_v7.c +906 −0
  381. arch/arm/kernel/perf_event_xscale.c +807 −0
  382. arch/arm/kernel/pj4-cp0.c +94 −0
  383. arch/arm/kernel/pmu.c +14 −8
  384. arch/arm/kernel/process.c +2 −0
  385. arch/arm/kernel/ptrace.c +2 −2
  386. arch/arm/kernel/sched_clock.c +74 −0
  387. arch/arm/kernel/setup.c +30 −33
  388. arch/arm/kernel/signal.c +3 −1
  389. arch/arm/kernel/smp.c +159 −289
  390. arch/arm/kernel/smp_tlb.c +139 −0
  391. arch/arm/kernel/smp_twd.c +4 −22
  392. arch/arm/kernel/stacktrace.c +6 −3
  393. arch/arm/kernel/swp_emulate.c +267 −0
  394. arch/arm/kernel/time.c +7 −1
  395. arch/arm/kernel/traps.c +16 −10
  396. arch/arm/kernel/vmlinux.lds.S +13 −0
  397. arch/arm/lib/delay.S +4 −0
  398. arch/arm/lib/getuser.S +7 −6
  399. arch/arm/lib/putuser.S +15 −14
  400. arch/arm/lib/uaccess.S +42 −41
  401. arch/arm/mach-aaec2000/core.c +9 −9
  402. arch/arm/mach-at91/Kconfig +13 −0
  403. arch/arm/mach-at91/Makefile +2 −0
  404. arch/arm/mach-at91/at91rm9200_time.c +1 −3
  405. arch/arm/mach-at91/at91sam926x_time.c +1 −3
  406. arch/arm/mach-at91/board-ecbat91.c +3 −3
  407. arch/arm/mach-at91/board-foxg20.c +274 −0
  408. arch/arm/mach-at91/board-gsia18s.c +584 −0
  409. arch/arm/mach-at91/board-sam9m10g45ek.c +0 −1
  410. arch/arm/mach-at91/gpio.c +17 −17
  411. arch/arm/mach-at91/include/mach/gsia18s.h +33 −0
  412. arch/arm/mach-at91/irq.c +18 −18
  413. arch/arm/mach-at91/pm.c +1 −1
  414. arch/arm/mach-bcmring/clock.c +1 −2
  415. arch/arm/mach-bcmring/core.c +5 −11
  416. arch/arm/mach-bcmring/csp/chipc/chipcHw.c +1 −1
  417. arch/arm/mach-bcmring/csp/dmac/dmacHw.c +1 −1
  418. arch/arm/mach-bcmring/csp/dmac/dmacHw_extra.c +1 −1
  419. arch/arm/mach-bcmring/csp/tmr/tmrHw.c +1 −1
  420. arch/arm/mach-bcmring/dma.c +1 −1
  421. arch/arm/mach-bcmring/include/csp/dmacHw.h +1 −1
  422. arch/arm/mach-bcmring/include/csp/tmrHw.h +2 −2
  423. arch/arm/mach-bcmring/include/mach/csp/dmacHw_priv.h +1 −1
  424. arch/arm/mach-bcmring/include/mach/csp/dmacHw_reg.h +1 −1
  425. arch/arm/mach-bcmring/irq.c +21 −21
  426. arch/arm/mach-clps711x/irq.c +20 −20
  427. arch/arm/mach-cns3xxx/Kconfig +1 −0
  428. arch/arm/mach-cns3xxx/cns3420vb.c +54 −0
  429. arch/arm/mach-cns3xxx/core.c +2 −5
  430. arch/arm/mach-cns3xxx/core.h +0 −3
  431. arch/arm/mach-cns3xxx/devices.c +1 −0
  432. arch/arm/mach-cns3xxx/include/mach/cns3xxx.h +0 −2
  433. arch/arm/mach-cns3xxx/include/mach/entry-macro.S +1 −65
  434. arch/arm/mach-cns3xxx/include/mach/pm.h +23 −0
  435. arch/arm/mach-cns3xxx/pm.c +23 −0
  436. arch/arm/mach-davinci/Kconfig +18 −1
  437. arch/arm/mach-davinci/aemif.c +1 −1
  438. arch/arm/mach-davinci/board-da850-evm.c +321 −18
  439. arch/arm/mach-davinci/clock.c +2 −2
  440. arch/arm/mach-davinci/clock.h +1 −1
  441. arch/arm/mach-davinci/cp_intc.c +15 −15
  442. arch/arm/mach-davinci/da850.c +60 −15
  443. arch/arm/mach-davinci/devices-tnetv107x.c +14 −1
  444. arch/arm/mach-davinci/dm355.c +1 −6
  445. arch/arm/mach-davinci/dm365.c +0 −6
  446. arch/arm/mach-davinci/gpio.c +23 −23
  447. arch/arm/mach-davinci/include/mach/da8xx.h +7 −0
  448. arch/arm/mach-davinci/include/mach/io.h +2 −2
  449. arch/arm/mach-davinci/include/mach/spi.h +46 −6
  450. arch/arm/mach-davinci/irq.c +13 −13
  451. arch/arm/mach-davinci/pm.c +1 −1
  452. arch/arm/mach-davinci/psc.c +4 −9
  453. arch/arm/mach-davinci/time.c +25 −6
  454. arch/arm/mach-davinci/tnetv107x.c +12 −11
  455. arch/arm/mach-davinci/usb.c +5 −1
  456. arch/arm/mach-dove/Kconfig +6 −0
  457. arch/arm/mach-dove/Makefile +2 −1
  458. arch/arm/mach-dove/cm-a510.c +95 −0
  459. arch/arm/mach-dove/common.c +2 −2
  460. arch/arm/mach-dove/include/mach/dove.h +8 −1
  461. arch/arm/mach-dove/include/mach/gpio.h +4 −2
  462. arch/arm/mach-dove/irq.c +9 −9
  463. arch/arm/mach-dove/mpp.c +212 −0
  464. arch/arm/mach-dove/mpp.h +220 −0
  465. arch/arm/mach-ebsa110/core.c +7 −7
  466. arch/arm/mach-ep93xx/clock.c +1 −1
  467. arch/arm/mach-ep93xx/core.c +1 −1
  468. arch/arm/mach-ep93xx/gpio.c +25 −18
  469. arch/arm/mach-footbridge/common.c +7 −7
  470. arch/arm/mach-footbridge/include/mach/debug-macro.S +2 −2
  471. arch/arm/mach-footbridge/isa-irq.c +18 −18
  472. arch/arm/mach-gemini/gpio.c +13 −13
  473. arch/arm/mach-gemini/include/mach/hardware.h +1 −1
  474. arch/arm/mach-gemini/irq.c +10 −10
  475. arch/arm/mach-h720x/common.c +19 −19
  476. arch/arm/mach-h720x/cpu-h7202.c +7 −7
  477. arch/arm/mach-h720x/h7201-eval.c +0 −1
  478. arch/arm/mach-h720x/h7202-eval.c +0 −1
  479. arch/arm/mach-imx/Kconfig +119 −20
  480. arch/arm/mach-imx/Makefile +6 −2
  481. arch/arm/mach-imx/Makefile.boot +4 −0
  482. arch/arm/mach-imx/clock-imx1.c +1 −2
  483. arch/arm/mach-imx/clock-imx21.c +2 −2
  484. arch/arm/mach-imx/clock-imx25.c +2 −3
  485. arch/arm/mach-imx/clock-imx27.c +13 −13
  486. arch/arm/mach-imx/cpu-imx27.c +13 −1
  487. arch/arm/mach-imx/devices-imx21.h +24 −0
  488. arch/arm/mach-imx/devices-imx25.h +42 −9
  489. arch/arm/mach-imx/devices-imx27.h +35 −0
  490. arch/arm/mach-imx/devices.c +0 −553
  491. arch/arm/mach-imx/devices.h +0 −29
  492. arch/arm/mach-imx/dma-v1.c +3 −1
  493. arch/arm/mach-imx/eukrea_mbimx27-baseboard.c +7 −10
  494. arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c +4 −6
  495. arch/arm/mach-imx/mach-cpuimx27.c +9 −12
  496. arch/arm/mach-imx/mach-eukrea_cpuimx25.c +8 −11
  497. arch/arm/mach-imx/mach-imx27_visstrim_m10.c +5 −7
  498. arch/arm/mach-imx/mach-imx27lite.c +0 −1
  499. arch/arm/mach-imx/mach-mx1ads.c +0 −1
  500. arch/arm/mach-imx/mach-mx21ads.c +5 −15
  501. arch/arm/mach-imx/mach-mx25_3ds.c +22 −12
  502. arch/arm/mach-imx/mach-mx27_3ds.c +159 −7
  503. arch/arm/mach-imx/mach-mx27ads.c +7 −10
  504. arch/arm/mach-imx/mach-mxt_td60.c +4 −7
  505. arch/arm/mach-imx/mach-pca100.c +12 −21
  506. arch/arm/mach-imx/mach-pcm038.c +7 −9
  507. arch/arm/mach-imx/mach-scb9328.c +0 −1
  508. arch/arm/mach-imx/mm-imx1.c +1 −6
  509. arch/arm/mach-imx/mm-imx21.c +3 −18
  510. arch/arm/mach-imx/mm-imx25.c +7 −20
  511. arch/arm/mach-imx/mm-imx27.c +3 −18
  512. arch/arm/mach-imx/pcm970-baseboard.c +5 −7
  513. arch/arm/mach-imx/pm-imx27.c +4 −1
  514. arch/arm/mach-integrator/Kconfig +1 −0
  515. arch/arm/mach-integrator/core.c +1 −2
  516. arch/arm/mach-integrator/cpu.c +1 −1
  517. arch/arm/mach-integrator/impd1.c +1 −2
  518. arch/arm/mach-integrator/integrator_ap.c +9 −11
  519. arch/arm/mach-integrator/integrator_cp.c +26 −27
  520. arch/arm/mach-iop13xx/include/mach/io.h +2 −2
  521. arch/arm/mach-iop13xx/include/mach/memory.h +3 −3
  522. arch/arm/mach-iop13xx/irq.c +32 −32
  523. arch/arm/mach-iop13xx/msi.c +2 −2
  524. arch/arm/mach-iop32x/include/mach/io.h +2 −2
  525. arch/arm/mach-iop32x/irq.c +8 −8
  526. arch/arm/mach-iop33x/include/mach/io.h +2 −2
  527. arch/arm/mach-iop33x/irq.c +16 −16
  528. arch/arm/mach-ixp2000/core.c +38 −32
  529. arch/arm/mach-ixp2000/ixdp2x00.c +9 −9
  530. arch/arm/mach-ixp2000/ixdp2x01.c +9 −9
  531. arch/arm/mach-ixp23xx/core.c +31 −24
  532. arch/arm/mach-ixp23xx/include/mach/io.h +2 −2
  533. arch/arm/mach-ixp23xx/ixdp2351.c +18 −18
  534. arch/arm/mach-ixp4xx/common.c +43 −38
  535. arch/arm/mach-ixp4xx/include/mach/io.h +2 −2
  536. arch/arm/mach-ixp4xx/include/mach/timex.h +3 −2
  537. arch/arm/mach-ixp4xx/ixp4xx_qmgr.c +5 −4
  538. arch/arm/mach-kirkwood/Kconfig +6 −6
  539. arch/arm/mach-kirkwood/include/mach/io.h +2 −2
  540. arch/arm/mach-kirkwood/openrd-setup.c +1 −1
  541. arch/arm/mach-kirkwood/ts219-setup.c +14 −2
  542. arch/arm/mach-kirkwood/ts41x-setup.c +9 −0
  543. arch/arm/mach-ks8695/Kconfig +1 −0
  544. arch/arm/mach-ks8695/include/mach/memory.h +4 −4
  545. arch/arm/mach-ks8695/irq.c +22 −21
  546. arch/arm/mach-lh7a40x/arch-kev7a400.c +10 −10
  547. arch/arm/mach-lh7a40x/arch-lpd7a40x.c +13 −12
  548. arch/arm/mach-lh7a40x/irq-lh7a400.c +15 −15
  549. arch/arm/mach-lh7a40x/irq-lh7a404.c +30 −30
  550. arch/arm/mach-lh7a40x/irq-lpd7a40x.c +11 −11
  551. arch/arm/mach-lpc32xx/clock.c +1 −2
  552. arch/arm/mach-lpc32xx/irq.c +28 −28
  553. arch/arm/mach-lpc32xx/pm.c +1 −1
  554. arch/arm/mach-lpc32xx/timer.c +1 −4
  555. arch/arm/mach-mmp/Kconfig +17 −5
  556. arch/arm/mach-mmp/Makefile +1 −0
  557. arch/arm/mach-mmp/brownstone.c +204 −0
  558. arch/arm/mach-mmp/clock.h +1 −1
  559. arch/arm/mach-mmp/flint.c +1 −1
  560. arch/arm/mach-mmp/include/mach/mfp-mmp2.h +170 −170
  561. arch/arm/mach-mmp/include/mach/mfp-pxa910.h +1 −1
  562. arch/arm/mach-mmp/include/mach/mmp2.h +22 −0
  563. arch/arm/mach-mmp/include/mach/regs-apmu.h +2 −0
  564. arch/arm/mach-mmp/irq-mmp2.c +24 −22
  565. arch/arm/mach-mmp/irq-pxa168.c +9 −9
  566. arch/arm/mach-mmp/jasper.c +35 −0
  567. arch/arm/mach-mmp/mmp2.c +35 −0
  568. arch/arm/mach-mmp/pxa910.c +2 −0
  569. arch/arm/mach-mmp/time.c +13 −26
  570. arch/arm/mach-msm/Kconfig +15 −0
  571. arch/arm/mach-msm/Makefile +8 −1
  572. arch/arm/mach-msm/board-msm7x30.c +20 −0
  573. arch/arm/mach-msm/board-msm8x60.c +2 −5
  574. arch/arm/mach-msm/board-qsd8x50.c +21 −2
  575. arch/arm/mach-msm/board-trout-gpio.c +29 −21
  576. arch/arm/mach-msm/board-trout-panel.c +297 −0
  577. arch/arm/mach-msm/clock.c +15 −0
  578. arch/arm/mach-msm/devices-msm7x00.c +68 −1
  579. arch/arm/mach-msm/devices-msm7x30.c +72 −0
  580. arch/arm/mach-msm/devices-msm8x60-iommu.c +133 −110
  581. arch/arm/mach-msm/devices-qsd8x50.c +71 −0
  582. arch/arm/mach-msm/devices.h +6 −0
  583. arch/arm/mach-msm/gpio-v2.c +426 −0
  584. arch/arm/mach-msm/gpio.c +24 −24
  585. arch/arm/mach-msm/headsmp.S +40 −0
  586. arch/arm/mach-msm/hotplug.c +91 −0
  587. arch/arm/mach-msm/include/mach/entry-macro-qgic.S +1 −1
  588. arch/arm/mach-msm/include/mach/iommu.h +14 −1
  589. arch/arm/mach-msm/include/mach/iommu_hw-8xxx.h +21 −1
  590. arch/arm/mach-msm/include/mach/irqs-8x60.h +6 −1
  591. arch/arm/mach-msm/include/mach/msm_iomap-7x30.h +3 −0
  592. arch/arm/mach-msm/include/mach/msm_iomap-8x60.h +8 −1
  593. arch/arm/mach-msm/include/mach/smp.h +2 −2
  594. arch/arm/mach-msm/io.c +3 −1
  595. arch/arm/mach-msm/iommu.c +115 −31
  596. arch/arm/mach-msm/iommu_dev.c +2 −2
  597. arch/arm/mach-msm/irq-vic.c +32 −33
  598. arch/arm/mach-msm/irq.c +22 −23
  599. arch/arm/mach-msm/platsmp.c +166 −0
  600. arch/arm/mach-msm/scm-boot.c +39 −0
  601. arch/arm/mach-msm/scm-boot.h +38 −0
  602. arch/arm/mach-msm/scm.c +287 −0
  603. arch/arm/mach-msm/scm.h +41 −0
  604. arch/arm/mach-msm/sirc.c +19 −23
  605. arch/arm/mach-msm/smd.c +6 −11
  606. arch/arm/mach-msm/smd_debug.c +2 −0
  607. arch/arm/mach-msm/timer.c +103 −27
  608. arch/arm/mach-mv78xx0/include/mach/mv78xx0.h +1 −1
  609. arch/arm/mach-mx25/Kconfig +0 −34
  610. arch/arm/mach-mx25/Makefile +0 −5
  611. arch/arm/mach-mx25/Makefile.boot +0 −3
  612. arch/arm/mach-mx25/devices.c +0 −308
  613. arch/arm/mach-mx25/devices.h +0 −13
  614. arch/arm/mach-mx3/Kconfig +63 −21
  615. arch/arm/mach-mx3/Makefile +2 −5
  616. arch/arm/mach-mx3/clock-imx31.c +3 −3
  617. arch/arm/mach-mx3/clock-imx35.c +2 −3
  618. arch/arm/mach-mx3/cpu.c +18 −13
  619. arch/arm/mach-mx3/devices-imx31.h +27 −0
  620. arch/arm/mach-mx3/devices-imx35.h +33 −8
  621. arch/arm/mach-mx3/devices.c +12 −259
  622. arch/arm/mach-mx3/devices.h +0 −10
  623. arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c +2 −2
  624. arch/arm/mach-mx3/mach-armadillo5x0.c +6 −8
  625. arch/arm/mach-mx3/mach-cpuimx35.c +8 −14
  626. arch/arm/mach-mx3/mach-kzm_arm11_01.c +3 −3
  627. arch/arm/mach-mx3/mach-mx31_3ds.c +119 −9
  628. arch/arm/mach-mx3/mach-mx31ads.c +9 −9
  629. arch/arm/mach-mx3/mach-mx31lilly.c +4 −5
  630. arch/arm/mach-mx3/mach-mx31lite.c +2 −3
  631. arch/arm/mach-mx3/mach-mx31moboard.c +14 −10
  632. arch/arm/mach-mx3/mach-mx35_3ds.c +32 −8
  633. arch/arm/mach-mx3/mach-pcm037.c +10 −13
  634. arch/arm/mach-mx3/mach-pcm043.c +23 −25
  635. arch/arm/mach-mx3/mm.c +35 −49
  636. arch/arm/mach-mx3/mx31lilly-db.c +2 −3
  637. arch/arm/mach-mx3/mx31lite-db.c +3 −5
  638. arch/arm/mach-mx3/mx31moboard-devboard.c +11 −9
  639. arch/arm/mach-mx3/mx31moboard-marxbot.c +12 −9
  640. arch/arm/mach-mx3/mx31moboard-smartbot.c +10 −6
  641. arch/arm/mach-mx5/Kconfig +79 −4
  642. arch/arm/mach-mx5/Makefile +6 −1
  643. arch/arm/mach-mx5/Makefile.boot +9 −3
  644. arch/arm/mach-mx5/board-cpuimx51.c +18 −14
  645. arch/arm/mach-mx5/board-cpuimx51sd.c +36 −32
  646. arch/arm/mach-mx5/board-mx50_rdp.c +197 −0
  647. arch/arm/mach-mx5/board-mx51_3ds.c +7 −7
  648. arch/arm/mach-mx5/board-mx51_babbage.c +71 −30
  649. arch/arm/mach-mx5/board-mx51_efikamx.c +246 −1
  650. arch/arm/mach-mx5/board-mx53_evk.c +158 −0
  651. arch/arm/mach-mx5/board-mx53_loco.c +111 −0
  652. arch/arm/mach-mx5/board-mx53_smd.c +111 −0
  653. arch/arm/mach-mx5/clock-mx51-mx53.c +304 −10
  654. arch/arm/mach-mx5/cpu.c +69 −49
  655. arch/arm/mach-mx5/crm_regs.h +9 −1
  656. arch/arm/mach-mx5/devices-imx51.h +16 −3
  657. arch/arm/mach-mx5/devices-imx53.h +31 −0
  658. arch/arm/mach-mx5/devices-mx50.h +26 −0
  659. arch/arm/mach-mx5/devices.c +40 −24
  660. arch/arm/mach-mx5/devices.h +1 −2
  661. arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c +15 −16
  662. arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c +8 −9
  663. arch/arm/mach-mx5/mm-mx50.c +59 −0
  664. arch/arm/mach-mx5/mm.c +44 −31
  665. arch/arm/mach-mxc91231/clock.c +1 −1
  666. arch/arm/mach-mxc91231/mm.c +10 −43
  667. arch/arm/mach-mxs/Kconfig +34 −0
  668. arch/arm/mach-mxs/Makefile +10 −0
  669. arch/arm/mach-mxs/Makefile.boot +1 −0
  670. arch/arm/mach-mxs/clock-mx23.c +535 −0
  671. arch/arm/mach-mxs/clock-mx28.c +745 −0
  672. arch/arm/mach-mxs/clock.c +198 −0
  673. arch/arm/mach-mxs/devices-mx23.h +16 −0
  674. arch/arm/mach-mxs/devices-mx28.h +20 −0
  675. arch/arm/mach-mxs/devices.c +88 −0
  676. arch/arm/mach-mxs/devices/Kconfig +6 −0
  677. arch/arm/mach-mxs/devices/Makefile +2 −0
  678. arch/arm/mach-mxs/devices/amba-duart.c +40 −0
  679. arch/arm/mach-mxs/devices/platform-fec.c +50 −0
  680. arch/arm/mach-mxs/gpio.c +327 −0
  681. arch/arm/mach-mxs/gpio.h +34 −0
  682. arch/arm/mach-mxs/icoll.c +81 −0
  683. arch/arm/mach-mxs/include/mach/clkdev.h +7 −0
  684. arch/arm/mach-mxs/include/mach/clock.h +62 −0
  685. arch/arm/mach-mxs/include/mach/common.h +31 −0
  686. arch/arm/mach-mxs/include/mach/debug-macro.S +38 −0
  687. arch/arm/mach-mxs/include/mach/devices-common.h +43 −0
  688. arch/arm/mach-mxs/include/mach/entry-macro.S +41 −0
  689. arch/arm/mach-mxs/include/mach/gpio.h +35 −0
  690. arch/arm/mach-mxs/include/mach/hardware.h +29 −0
  691. arch/arm/mach-mxs/include/mach/io.h +22 −0
  692. arch/arm/mach-mxs/include/mach/iomux-mx23.h +355 −0
  693. arch/arm/mach-mxs/include/mach/iomux-mx28.h +537 −0
  694. arch/arm/mach-mxs/include/mach/iomux.h +165 −0
  695. arch/arm/mach-mxs/include/mach/irqs.h +32 −0
  696. arch/arm/mach-mxs/include/mach/memory.h +24 −0
  697. arch/arm/mach-mxs/include/mach/mx23.h +145 −0
  698. arch/arm/mach-mxs/include/mach/mx28.h +188 −0
  699. arch/arm/mach-mxs/include/mach/mxs.h +105 −0
  700. arch/arm/mach-mxs/include/mach/system.h +27 −0
  701. arch/arm/mach-mxs/include/mach/timex.h +21 −0
  702. arch/arm/mach-mxs/include/mach/uncompress.h +76 −0
  703. arch/arm/mach-mxs/include/mach/vmalloc.h +22 −0
  704. arch/arm/mach-mxs/iomux.c +101 −0
  705. arch/arm/mach-mxs/mach-mx23evk.c +57 −0
  706. arch/arm/mach-mxs/mach-mx28evk.c +158 −0
  707. arch/arm/mach-mxs/mm-mx23.c +45 −0
  708. arch/arm/mach-mxs/mm-mx28.c +45 −0
  709. arch/arm/mach-mxs/regs-clkctrl-mx23.h +455 −0
  710. arch/arm/mach-mxs/regs-clkctrl-mx28.h +663 −0
  711. arch/arm/mach-mxs/system.c +137 −0
  712. arch/arm/mach-mxs/timer.c +296 −0
  713. arch/arm/mach-netx/generic.c +15 −15
  714. arch/arm/mach-netx/time.c +1 −4
  715. arch/arm/mach-nomadik/clock.c +1 −1
  716. arch/arm/mach-ns9xxx/board-a9m9750dev.c +14 −14
  717. arch/arm/mach-ns9xxx/irq.c +14 −14
  718. arch/arm/mach-ns9xxx/time-ns9360.c +1 −5
  719. arch/arm/mach-nuc93x/clock.h +1 −1
  720. arch/arm/mach-nuc93x/irq.c +8 −8
  721. arch/arm/mach-omap1/Kconfig +3 −10
  722. arch/arm/mach-omap1/Makefile +9 −4
  723. arch/arm/mach-omap1/ams-delta-fiq.c +5 −3
  724. arch/arm/mach-omap1/board-ams-delta.c +87 −67
  725. arch/arm/mach-omap1/board-fsample.c +46 −43
  726. arch/arm/mach-omap1/board-h2.c +41 −38
  727. arch/arm/mach-omap1/board-h3.c +50 −47
  728. arch/arm/mach-omap1/board-htcherald.c +52 −50
  729. arch/arm/mach-omap1/board-innovator.c +16 −16
  730. arch/arm/mach-omap1/board-nokia770.c +16 −14
  731. arch/arm/mach-omap1/board-osk.c +15 −12
  732. arch/arm/mach-omap1/board-palmte.c +16 −13
  733. arch/arm/mach-omap1/board-palmtt.c +16 −12
  734. arch/arm/mach-omap1/board-palmz71.c +17 −14
  735. arch/arm/mach-omap1/board-perseus2.c +47 −44
  736. arch/arm/mach-omap1/board-sx1.c +30 −28
  737. arch/arm/mach-omap1/board-voiceblue.c +6 −1
  738. arch/arm/mach-omap1/clock.c +1 −1
  739. arch/arm/mach-omap1/clock_data.c +13 −14
  740. arch/arm/mach-omap1/devices.c +4 −0
  741. arch/arm/mach-omap1/dma.c +390 −0
  742. arch/arm/mach-omap1/flash.c +1 −0
  743. arch/arm/mach-omap1/fpga.c +20 −18
  744. arch/arm/mach-omap1/gpio15xx.c +99 −0
  745. arch/arm/mach-omap1/gpio16xx.c +200 −0
  746. arch/arm/mach-omap1/gpio7xx.c +262 −0
  747. arch/arm/mach-omap1/include/mach/entry-macro.S +3 −15
  748. arch/arm/mach-omap1/io.c +39 −0
  749. arch/arm/mach-omap1/irq.c +27 −22
  750. arch/arm/mach-omap1/lcd_dma.c +15 −12
  751. arch/arm/mach-omap1/leds.c +3 −0
  752. arch/arm/mach-omap1/mailbox.c +2 −3
  753. arch/arm/mach-omap1/mcbsp.c +4 −1
  754. arch/arm/mach-omap1/mux.c +1 −1
  755. arch/arm/mach-omap1/pm.c +4 −1
  756. arch/arm/mach-omap1/pm_bus.c +3 −1
  757. arch/arm/mach-omap1/serial.c +9 −2
  758. arch/arm/mach-omap1/time.c +95 −12
  759. arch/arm/mach-omap1/timer32k.c +6 −7
  760. arch/arm/mach-omap2/Kconfig +30 −5
  761. arch/arm/mach-omap2/Makefile +70 −22
  762. arch/arm/mach-omap2/board-2430sdp.c +3 −5
  763. arch/arm/mach-omap2/board-3430sdp.c +11 −7
  764. arch/arm/mach-omap2/board-3630sdp.c +4 −5
  765. arch/arm/mach-omap2/board-4430sdp.c +74 −8
  766. arch/arm/mach-omap2/board-am3517crane.c +116 −0
  767. arch/arm/mach-omap2/board-am3517evm.c +19 −11
  768. arch/arm/mach-omap2/board-apollon.c +4 −6
  769. arch/arm/mach-omap2/board-cm-t35.c +22 −16
  770. arch/arm/mach-omap2/board-cm-t3517.c +26 −7
  771. arch/arm/mach-omap2/board-devkit8000.c +42 −28
  772. arch/arm/mach-omap2/board-generic.c +2 −1
  773. arch/arm/mach-omap2/board-h4.c +36 −35
  774. arch/arm/mach-omap2/board-igep0020.c +116 −53
  775. arch/arm/mach-omap2/board-igep0030.c +75 −17
  776. arch/arm/mach-omap2/board-ldp.c +3 −5
  777. arch/arm/mach-omap2/board-n8x0.c +50 −25
  778. arch/arm/mach-omap2/board-omap3beagle.c +66 −14
  779. arch/arm/mach-omap2/board-omap3evm.c +11 −7
  780. arch/arm/mach-omap2/board-omap3logic.c +2 −4
  781. arch/arm/mach-omap2/board-omap3pandora.c +13 −29
  782. arch/arm/mach-omap2/board-omap3stalker.c +19 −10
  783. arch/arm/mach-omap2/board-omap3touchbook.c +3 −5
  784. arch/arm/mach-omap2/board-omap4panda.c +40 −8
  785. arch/arm/mach-omap2/board-overo.c +3 −5
  786. arch/arm/mach-omap2/board-rm680.c +184 −0
  787. arch/arm/mach-omap2/board-rx51-peripherals.c +41 −36
  788. arch/arm/mach-omap2/board-rx51-video.c +8 −1
  789. arch/arm/mach-omap2/board-rx51.c +4 −6
  790. arch/arm/mach-omap2/board-zoom-display.c +168 −0
  791. arch/arm/mach-omap2/board-zoom-peripherals.c +50 −5
  792. arch/arm/mach-omap2/board-zoom.c +61 −42
  793. arch/arm/mach-omap2/board-zoom2.c +0 −117
  794. arch/arm/mach-omap2/clkt2xxx_apll.c +6 −6
  795. arch/arm/mach-omap2/clkt2xxx_dpllcore.c +5 −5
  796. arch/arm/mach-omap2/clkt2xxx_osc.c +1 −1
  797. arch/arm/mach-omap2/clkt2xxx_sys.c +1 −1
  798. arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c +7 −7
  799. arch/arm/mach-omap2/clkt_dpll.c +0 −1
  800. arch/arm/mach-omap2/clock.c +2 −4
  801. arch/arm/mach-omap2/clock.h +0 −1
  802. arch/arm/mach-omap2/clock2420_data.c +8 −8
  803. arch/arm/mach-omap2/clock2430.c +1 −1
  804. arch/arm/mach-omap2/clock2430_data.c +8 −8
  805. arch/arm/mach-omap2/clock34xx.c +1 −1
  806. arch/arm/mach-omap2/clock3517.c +1 −1
  807. arch/arm/mach-omap2/clock3xxx.c +3 −3
  808. arch/arm/mach-omap2/clock3xxx_data.c +126 −115
  809. arch/arm/mach-omap2/clock44xx_data.c +487 −209
  810. arch/arm/mach-omap2/clockdomain.c +150 −100
  811. arch/arm/mach-omap2/clockdomain.h +22 −16
  812. arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c +16 −93
  813. arch/arm/mach-omap2/clockdomains44xx_data.c +113 −54
  814. arch/arm/mach-omap2/cm-regbits-24xx.h +9 −2
  815. arch/arm/mach-omap2/cm-regbits-34xx.h +11 −2
  816. arch/arm/mach-omap2/cm-regbits-44xx.h +0 −3
  817. arch/arm/mach-omap2/cm.c +0 −68
  818. arch/arm/mach-omap2/cm.h +3 −134
  819. arch/arm/mach-omap2/cm1_44xx.h +261 −0
  820. arch/arm/mach-omap2/cm2_44xx.h +508 −0
  821. arch/arm/mach-omap2/cm2xxx_3xxx.c +471 −0
  822. arch/arm/mach-omap2/cm2xxx_3xxx.h +147 −0
  823. arch/arm/mach-omap2/cm44xx.c +52 −0
  824. arch/arm/mach-omap2/cm44xx.h +16 −652
  825. arch/arm/mach-omap2/cm4xxx.c +0 −62
  826. arch/arm/mach-omap2/cminst44xx.c +214 −0
  827. arch/arm/mach-omap2/cminst44xx.h +31 −0
  828. arch/arm/mach-omap2/control.c +110 −23
  829. arch/arm/mach-omap2/control.h +40 −2
  830. arch/arm/mach-omap2/cpuidle34xx.c +31 −13
  831. arch/arm/mach-omap2/devices.c +27 −83
  832. arch/arm/mach-omap2/dma.c +297 −0
  833. arch/arm/mach-omap2/dpll3xxx.c +37 −22
  834. arch/arm/mach-omap2/dsp.c +15 −8
  835. arch/arm/mach-omap2/gpio.c +104 −0
  836. arch/arm/mach-omap2/gpmc-nand.c +1 −1
  837. arch/arm/mach-omap2/gpmc-onenand.c +14 −5
  838. arch/arm/mach-omap2/gpmc.c +11 −1
  839. arch/arm/mach-omap2/include/mach/board-zoom.h +3 −0
  840. arch/arm/mach-omap2/include/mach/entry-macro.S +36 −93
  841. arch/arm/mach-omap2/include/mach/omap4-common.h +0 −1
  842. arch/arm/mach-omap2/io.c +118 −21
  843. arch/arm/mach-omap2/irq.c +16 −11
  844. arch/arm/mach-omap2/mailbox.c +11 −8
  845. arch/arm/mach-omap2/mux.c +397 −131
  846. arch/arm/mach-omap2/mux.h +142 −12
  847. arch/arm/mach-omap2/mux2420.c +6 −4
  848. arch/arm/mach-omap2/mux2430.c +6 −4
  849. arch/arm/mach-omap2/mux34xx.c +7 −6
  850. arch/arm/mach-omap2/mux44xx.c +1625 −0
  851. arch/arm/mach-omap2/mux44xx.h +298 −0
  852. arch/arm/mach-omap2/omap-hotplug.c +1 −13
  853. arch/arm/mach-omap2/omap-iommu.c +9 −1
  854. arch/arm/mach-omap2/omap-smp.c +16 −52
  855. arch/arm/mach-omap2/omap4-common.c +29 −12
  856. arch/arm/mach-omap2/omap_hwmod.c +292 −191
  857. arch/arm/mach-omap2/omap_hwmod_2420_data.c +460 −5
  858. arch/arm/mach-omap2/omap_hwmod_2430_data.c +515 −4
  859. arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +868 −2
  860. arch/arm/mach-omap2/omap_hwmod_44xx_data.c +1436 −208
  861. arch/arm/mach-omap2/omap_opp_data.h +72 −0
  862. arch/arm/mach-omap2/omap_phy_internal.c +149 −0
  863. arch/arm/mach-omap2/omap_twl.c +279 −0
  864. arch/arm/mach-omap2/opp.c +93 −0
  865. arch/arm/mach-omap2/opp3xxx_data.c +107 −0
  866. arch/arm/mach-omap2/opp4xxx_data.c +57 −0
  867. arch/arm/mach-omap2/pm-debug.c +13 −8
  868. arch/arm/mach-omap2/pm.c +132 −12
  869. arch/arm/mach-omap2/pm.h +56 −3
  870. arch/arm/mach-omap2/pm24xx.c +111 −119
  871. arch/arm/mach-omap2/pm34xx.c +137 −112
  872. arch/arm/mach-omap2/pm44xx.c +4 −16
  873. arch/arm/mach-omap2/pm_bus.c +2 −2
  874. arch/arm/mach-omap2/powerdomain-common.c +110 −0
  875. arch/arm/mach-omap2/powerdomain.c +152 −289
  876. arch/arm/mach-omap2/powerdomain.h +75 −9
  877. arch/arm/mach-omap2/powerdomain2xxx_3xxx.c +241 −0
  878. arch/arm/mach-omap2/powerdomain44xx.c +225 −0
  879. arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c +5 −79
  880. arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.h +22 −0
  881. arch/arm/mach-omap2/powerdomains2xxx_data.c +28 −20
  882. arch/arm/mach-omap2/powerdomains3xxx_data.c +42 −14
  883. arch/arm/mach-omap2/powerdomains44xx_data.c +64 −28
  884. arch/arm/mach-omap2/prcm-common.h +13 −72
  885. arch/arm/mach-omap2/prcm.c +51 −505
  886. arch/arm/mach-omap2/prcm44xx.h +42 −0
  887. arch/arm/mach-omap2/prcm_mpu44xx.c +45 −0
  888. arch/arm/mach-omap2/prcm_mpu44xx.h +104 −0
  889. arch/arm/mach-omap2/prm-regbits-24xx.h +1 −1
  890. arch/arm/mach-omap2/prm-regbits-34xx.h +7 −4
  891. arch/arm/mach-omap2/prm-regbits-44xx.h +0 −2
  892. arch/arm/mach-omap2/prm.h +4 −365
  893. arch/arm/mach-omap2/prm2xxx_3xxx.c +55 −9
  894. arch/arm/mach-omap2/prm2xxx_3xxx.h +428 −0
  895. arch/arm/mach-omap2/prm44xx.c +80 −1
  896. arch/arm/mach-omap2/prm44xx.h +396 −370
  897. arch/arm/mach-omap2/prminst44xx.c +66 −0
  898. arch/arm/mach-omap2/prminst44xx.h +25 −0
  899. arch/arm/mach-omap2/scrm44xx.h +175 −0
  900. arch/arm/mach-omap2/sdram-nokia.c +80 −22
  901. arch/arm/mach-omap2/sdram-nokia.h +12 −0
  902. arch/arm/mach-omap2/sdrc.c +0 −2
  903. arch/arm/mach-omap2/sdrc.h +0 −1
  904. arch/arm/mach-omap2/sdrc2xxx.c +5 −1
  905. arch/arm/mach-omap2/serial.c +43 −32
  906. arch/arm/mach-omap2/sleep34xx.S +466 −370
  907. arch/arm/mach-omap2/smartreflex-class3.c +59 −0
  908. arch/arm/mach-omap2/smartreflex.c +1028 −0
  909. arch/arm/mach-omap2/sr_device.c +147 −0
  910. arch/arm/mach-omap2/sram242x.S +8 −2
  911. arch/arm/mach-omap2/sram243x.S +8 −2
  912. arch/arm/mach-omap2/sram34xx.S +7 −1
  913. arch/arm/mach-omap2/timer-gp.c +10 −8
  914. arch/arm/mach-omap2/usb-ehci.c +136 −8
  915. arch/arm/mach-omap2/usb-musb.c +102 −2
  916. arch/arm/mach-omap2/usb-tusb6010.c +4 −3
  917. arch/arm/mach-omap2/voltage.c +1572 −0
  918. arch/arm/mach-omap2/wd_timer.c +56 −0
  919. arch/arm/mach-omap2/wd_timer.h +17 −0
  920. arch/arm/mach-orion5x/Kconfig +7 −0
  921. arch/arm/mach-orion5x/Makefile +1 −0
  922. arch/arm/mach-orion5x/include/mach/io.h +2 −2
  923. arch/arm/mach-orion5x/ls-chl-setup.c +327 −0
  924. arch/arm/mach-pnx4008/clock.c +1 −2
  925. arch/arm/mach-pnx4008/irq.c +33 −29
  926. arch/arm/mach-pnx4008/pm.c +1 −1
  927. arch/arm/mach-pxa/Kconfig +18 −7
  928. arch/arm/mach-pxa/Makefile +6 −4
  929. arch/arm/mach-pxa/balloon3.c +49 −33
  930. arch/arm/mach-pxa/capc7117.c +1 −1
  931. arch/arm/mach-pxa/clock-pxa2xx.c +64 −0
  932. arch/arm/mach-pxa/clock-pxa3xx.c +217 −0
  933. arch/arm/mach-pxa/clock.c +10 −19
  934. arch/arm/mach-pxa/clock.h +29 −20
  935. arch/arm/mach-pxa/cm-x255.c +1 −1
  936. arch/arm/mach-pxa/cm-x270.c +1 −1
  937. arch/arm/mach-pxa/cm-x2xx-pci.c +1 −1
  938. arch/arm/mach-pxa/cm-x2xx.c +18 −8
  939. arch/arm/mach-pxa/cm-x300.c +1 −1
  940. arch/arm/mach-pxa/colibri-evalboard.c +53 −43
  941. arch/arm/mach-pxa/colibri-pxa270-income.c +0 −47
  942. arch/arm/mach-pxa/colibri-pxa270.c +104 −4
  943. arch/arm/mach-pxa/colibri-pxa300.c +35 −38
  944. arch/arm/mach-pxa/colibri-pxa320.c +69 −70
  945. arch/arm/mach-pxa/colibri-pxa3xx.c +0 −49
  946. arch/arm/mach-pxa/corgi.c +4 −4
  947. arch/arm/mach-pxa/cpufreq-pxa2xx.c +6 −4
  948. arch/arm/mach-pxa/csb726.c +5 −4
  949. arch/arm/mach-pxa/devices.c +125 −124
  950. arch/arm/mach-pxa/em-x270.c +3 −3
  951. arch/arm/mach-pxa/eseries.c +6 −6
  952. arch/arm/mach-pxa/ezx.c +6 −6
  953. arch/arm/mach-pxa/generic.c +10 −39
  954. arch/arm/mach-pxa/generic.h +8 −7
  955. arch/arm/mach-pxa/gumstix.c +1 −1
  956. arch/arm/mach-pxa/h5000.c +6 −5
  957. arch/arm/mach-pxa/himalaya.c +1 −1
  958. arch/arm/mach-pxa/hx4700.c +2 −2
  959. arch/arm/mach-pxa/icontrol.c +2 −2
  960. arch/arm/mach-pxa/idp.c +1 −1
  961. arch/arm/mach-pxa/include/mach/addr-map.h +48 −0
  962. arch/arm/mach-pxa/include/mach/balloon3.h +4 −2
  963. arch/arm/mach-pxa/include/mach/colibri.h +10 −4
  964. arch/arm/mach-pxa/include/mach/hardware.h +33 −14
  965. arch/arm/mach-pxa/include/mach/irqs.h +15 −33
  966. arch/arm/mach-pxa/include/mach/pxa2xx-regs.h +0 −66
  967. arch/arm/mach-pxa/include/mach/pxa3xx-regs.h +0 −9
  968. arch/arm/mach-pxa/include/mach/regs-intc.h +0 −4
  969. arch/arm/mach-pxa/include/mach/smemc.h +74 −0
  970. arch/arm/mach-pxa/irq.c +96 −66
  971. arch/arm/mach-pxa/littleton.c +2 −2
  972. arch/arm/mach-pxa/lpd270.c +12 −10
  973. arch/arm/mach-pxa/lubbock.c +13 −11
  974. arch/arm/mach-pxa/magician.c +1 −1
  975. arch/arm/mach-pxa/mainstone.c +12 −10
  976. arch/arm/mach-pxa/mioa701.c +1 −1
  977. arch/arm/mach-pxa/mp900.c +1 −1
  978. arch/arm/mach-pxa/mxm8x10.c +1 −1
  979. arch/arm/mach-pxa/palm27x.c +1 −1
  980. arch/arm/mach-pxa/palmld.c +1 −1
  981. arch/arm/mach-pxa/palmt5.c +1 −1
  982. arch/arm/mach-pxa/palmtc.c +158 −32
  983. arch/arm/mach-pxa/palmte2.c +1 −1
  984. arch/arm/mach-pxa/palmtreo.c +2 −2
  985. arch/arm/mach-pxa/palmtx.c +1 −1
  986. arch/arm/mach-pxa/palmz72.c +1 −1
  987. arch/arm/mach-pxa/pcm027.c +2 −2
  988. arch/arm/mach-pxa/pcm990-baseboard.c +8 −7
  989. arch/arm/mach-pxa/pm.c +3 −3
  990. arch/arm/mach-pxa/poodle.c +2 −2
  991. arch/arm/mach-pxa/pxa25x.c +56 −37
  992. arch/arm/mach-pxa/pxa27x.c +72 −39
  993. arch/arm/mach-pxa/pxa3xx.c +46 −224
  994. arch/arm/mach-pxa/pxa930.c +1 −1
  995. arch/arm/mach-pxa/pxa95x.c +308 −0
  996. arch/arm/mach-pxa/raumfeld.c +8 −3
  997. arch/arm/mach-pxa/saar.c +1 −1
  998. arch/arm/mach-pxa/saarb.c +114 −0
  999. arch/arm/mach-pxa/sharpsl_pm.c +3 −2
  1000. arch/arm/mach-pxa/sleep.S +1 −1
  1001. arch/arm/mach-pxa/smemc.c +17 −34
  1002. arch/arm/mach-pxa/spitz.c +10 −7
  1003. arch/arm/mach-pxa/stargate2.c +5 −4
  1004. arch/arm/mach-pxa/tavorevb.c +1 −1
  1005. arch/arm/mach-pxa/tavorevb3.c +1 −1
  1006. arch/arm/mach-pxa/time.c +10 −25
  1007. arch/arm/mach-pxa/tosa.c +7 −4
  1008. arch/arm/mach-pxa/trizeps4.c +3 −3
  1009. arch/arm/mach-pxa/viper.c +12 −12
  1010. arch/arm/mach-pxa/vpac270.c +1 −1
  1011. arch/arm/mach-pxa/xcep.c +4 −3
  1012. arch/arm/mach-pxa/z2.c +2 −2
  1013. arch/arm/mach-pxa/zeus.c +19 −15
  1014. arch/arm/mach-pxa/zylonite.c +1 −1
  1015. arch/arm/mach-realview/Kconfig +27 −22
  1016. arch/arm/mach-realview/core.c +12 −6
  1017. arch/arm/mach-realview/core.h +0 −1
  1018. arch/arm/mach-realview/hotplug.c +15 −29
  1019. arch/arm/mach-realview/include/mach/entry-macro.S +1 −64
  1020. arch/arm/mach-realview/include/mach/smp.h +2 −3
  1021. arch/arm/mach-realview/platsmp.c +37 −79
  1022. arch/arm/mach-realview/realview_eb.c +6 −8
  1023. arch/arm/mach-realview/realview_pb1176.c +6 −5
  1024. arch/arm/mach-realview/realview_pb11mp.c +5 −5
  1025. arch/arm/mach-realview/realview_pba8.c +3 −3
  1026. arch/arm/mach-realview/realview_pbx.c +5 −8
  1027. arch/arm/mach-rpc/irq.c +30 −30
  1028. arch/arm/mach-s3c2410/bast-irq.c +11 −11
  1029. arch/arm/mach-s3c2410/include/mach/irqs.h +2 −2
  1030. arch/arm/mach-s3c2410/include/mach/map.h +2 −2
  1031. arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h +1 −0
  1032. arch/arm/mach-s3c2410/mach-h1940.c +1 −1
  1033. arch/arm/mach-s3c2412/Kconfig +1 −1
  1034. arch/arm/mach-s3c2412/irq.c +25 −25
  1035. arch/arm/mach-s3c2416/Kconfig +12 −0
  1036. arch/arm/mach-s3c2416/Makefile +4 −0
  1037. arch/arm/mach-s3c2416/clock.c +13 −5
  1038. arch/arm/mach-s3c2416/irq.c +36 −40
  1039. arch/arm/mach-s3c2416/mach-smdk2416.c +23 −0
  1040. arch/arm/mach-s3c2416/s3c2416.c +5 −0
  1041. arch/arm/mach-s3c2416/setup-sdhci-gpio.c +34 −0
  1042. arch/arm/mach-s3c2416/setup-sdhci.c +61 −0
  1043. arch/arm/mach-s3c2440/irq.c +9 −9
  1044. arch/arm/mach-s3c2440/mach-rx1950.c +1 −1
  1045. arch/arm/mach-s3c2440/s3c244x-irq.c +9 −9
  1046. arch/arm/mach-s3c2443/Kconfig +2 −1
  1047. arch/arm/mach-s3c2443/clock.c +2 −2
  1048. arch/arm/mach-s3c2443/irq.c +45 −50
  1049. arch/arm/mach-s3c2443/mach-smdk2443.c +8 −1
  1050. arch/arm/mach-s3c2443/s3c2443.c +7 −0
  1051. arch/arm/mach-s3c64xx/clock.c +4 −17
  1052. arch/arm/mach-s3c64xx/dev-audio.c +35 −40
  1053. arch/arm/mach-s3c64xx/dma.c +2 −1
  1054. arch/arm/mach-s3c64xx/irq-eint.c +19 −18
  1055. arch/arm/mach-s3c64xx/mach-smdk6410.c +1 −1
  1056. arch/arm/mach-s5p6442/clock.c +3 −13
  1057. arch/arm/mach-s5p6442/dev-audio.c +37 −7
  1058. arch/arm/mach-s5p6442/include/mach/map.h +38 −30
  1059. arch/arm/mach-s5p6442/mach-smdk6442.c +11 −0
  1060. arch/arm/mach-s5p6442/setup-i2c0.c +4 −1
  1061. arch/arm/mach-s5p64x0/Makefile +2 −2
  1062. arch/arm/mach-s5p64x0/clock-s5p6440.c +7 −17
  1063. arch/arm/mach-s5p64x0/clock-s5p6450.c +22 −14
  1064. arch/arm/mach-s5p64x0/dev-audio.c +114 −30
  1065. arch/arm/mach-s5p64x0/gpiolib.c +195 −26
  1066. arch/arm/mach-s5p64x0/include/mach/map.h +44 −38
  1067. arch/arm/mach-s5p64x0/include/mach/regs-gpio.h +16 −41
  1068. arch/arm/mach-s5p64x0/mach-smdk6440.c +2 −0
  1069. arch/arm/mach-s5p64x0/mach-smdk6450.c +2 −0
  1070. arch/arm/mach-s5pc100/clock.c +3 −13
  1071. arch/arm/mach-s5pc100/dev-audio.c +42 −14
  1072. arch/arm/mach-s5pc100/include/mach/map.h +82 −107
  1073. arch/arm/mach-s5pc100/mach-smdkc100.c +2 −0
  1074. arch/arm/mach-s5pv210/Kconfig +2 −0
  1075. arch/arm/mach-s5pv210/clock.c +15 −20
  1076. arch/arm/mach-s5pv210/cpu.c +0 −5
  1077. arch/arm/mach-s5pv210/dev-audio.c +43 −15
  1078. arch/arm/mach-s5pv210/include/mach/irqs.h +2 −1
  1079. arch/arm/mach-s5pv210/include/mach/map.h +85 −81
  1080. arch/arm/mach-s5pv210/include/mach/regs-clock.h +1 −4
  1081. arch/arm/mach-s5pv210/mach-aquila.c +9 −6
  1082. arch/arm/mach-s5pv210/mach-goni.c +9 −6
  1083. arch/arm/mach-s5pv210/mach-smdkc110.c +2 −0
  1084. arch/arm/mach-s5pv210/mach-smdkv210.c +136 −4
  1085. arch/arm/mach-s5pv310/Kconfig +23 −0
  1086. arch/arm/mach-s5pv310/Makefile +6 −1
  1087. arch/arm/mach-s5pv310/clock.c +55 −22
  1088. arch/arm/mach-s5pv310/cpu.c +21 −6
  1089. arch/arm/mach-s5pv310/cpufreq.c +580 −0
  1090. arch/arm/mach-s5pv310/dev-audio.c +364 −0
  1091. arch/arm/mach-s5pv310/dev-pd.c +139 −0
  1092. arch/arm/mach-s5pv310/dev-sysmmu.c +187 −0
  1093. arch/arm/mach-s5pv310/dma.c +168 −0
  1094. arch/arm/mach-s5pv310/hotplug.c +15 −29
  1095. arch/arm/mach-s5pv310/include/mach/dma.h +7 −28
  1096. arch/arm/mach-s5pv310/include/mach/irqs.h +34 −3
  1097. arch/arm/mach-s5pv310/include/mach/map.h +83 −38
  1098. arch/arm/mach-s5pv310/include/mach/regs-clock.h +78 −2
  1099. arch/arm/mach-s5pv310/include/mach/regs-mem.h +23 −0
  1100. arch/arm/mach-s5pv310/include/mach/regs-pmu.h +30 −0
  1101. arch/arm/mach-s5pv310/include/mach/regs-srom.h +0 −50
  1102. arch/arm/mach-s5pv310/include/mach/regs-sysmmu.h +24 −0
  1103. arch/arm/mach-s5pv310/include/mach/smp.h +2 −5
  1104. arch/arm/mach-s5pv310/include/mach/sysmmu.h +122 −0
  1105. arch/arm/mach-s5pv310/irq-combiner.c +19 −13
  1106. arch/arm/mach-s5pv310/irq-eint.c +28 −27
  1107. arch/arm/mach-s5pv310/mach-smdkc210.c +37 −16
  1108. arch/arm/mach-s5pv310/mach-smdkv310.c +37 −16
  1109. arch/arm/mach-s5pv310/mach-universal_c210.c +80 −0
  1110. arch/arm/mach-s5pv310/platsmp.c +24 −44
  1111. arch/arm/mach-s5pv310/time.c +1 −5
  1112. arch/arm/mach-sa1100/Kconfig +10 −0
  1113. arch/arm/mach-sa1100/Makefile +3 −0
  1114. arch/arm/mach-sa1100/collie.c +3 −0
  1115. arch/arm/mach-sa1100/cpu-sa1100.c +25 −26
  1116. arch/arm/mach-sa1100/cpu-sa1110.c +33 −24
  1117. arch/arm/mach-sa1100/generic.c +33 −32
  1118. arch/arm/mach-sa1100/include/mach/hardware.h +8 −0
  1119. arch/arm/mach-sa1100/include/mach/nanoengine.h +52 −0
  1120. arch/arm/mach-sa1100/irq.c +42 −42
  1121. arch/arm/mach-sa1100/nanoengine.c +119 −0
  1122. arch/arm/mach-sa1100/neponset.c +4 −4
  1123. arch/arm/mach-sa1100/pci-nanoengine.c +284 −0
  1124. arch/arm/mach-sa1100/pm.c +1 −1
  1125. arch/arm/mach-sa1100/simpad.c +4 −3
  1126. arch/arm/mach-sa1100/time.c +31 −5
  1127. arch/arm/mach-shark/irq.c +13 −13
  1128. arch/arm/mach-shmobile/Kconfig +25 −12
  1129. arch/arm/mach-shmobile/Makefile +24 −4
  1130. arch/arm/mach-shmobile/board-ag5evm.c +491 −0
  1131. arch/arm/mach-shmobile/board-ap4evb.c +59 −49
  1132. arch/arm/mach-shmobile/board-g3evm.c +1 −1
  1133. arch/arm/mach-shmobile/board-g4evm.c +16 −0
  1134. arch/arm/mach-shmobile/board-mackerel.c +1220 −0
  1135. arch/arm/mach-shmobile/clock-sh7367.c +1 −1
  1136. arch/arm/mach-shmobile/clock-sh7372.c +12 −7
  1137. arch/arm/mach-shmobile/clock-sh7377.c +1 −1
  1138. arch/arm/mach-shmobile/clock-sh73a0.c +377 −0
  1139. arch/arm/mach-shmobile/entry-gic.S +18 −0
  1140. arch/arm/mach-shmobile/entry-intc.S +57 −0
  1141. arch/arm/mach-shmobile/headsmp.S +27 −0
  1142. arch/arm/mach-shmobile/hotplug.c +41 −0
  1143. arch/arm/mach-shmobile/include/mach/common.h +16 −0
  1144. arch/arm/mach-shmobile/include/mach/entry-macro.S +7 −34
  1145. arch/arm/mach-shmobile/include/mach/hardware.h +0 −3
  1146. arch/arm/mach-shmobile/include/mach/head-ap4evb.txt +94 −0
  1147. arch/arm/mach-shmobile/include/mach/head-mackerel.txt +94 −0
  1148. arch/arm/mach-shmobile/include/mach/irqs.h +4 −1
  1149. arch/arm/mach-shmobile/include/mach/sh7372.h +2 −0
  1150. arch/arm/mach-shmobile/include/mach/sh73a0.h +467 −0
  1151. arch/arm/mach-shmobile/include/mach/smp.h +16 −0
  1152. arch/arm/mach-shmobile/include/mach/zboot.h +23 −0
  1153. arch/arm/mach-shmobile/include/mach/zboot_macros.h +65 −0
  1154. arch/arm/mach-shmobile/intc-sh7367.c +3 −3
  1155. arch/arm/mach-shmobile/intc-sh7372.c +9 −6
  1156. arch/arm/mach-shmobile/intc-sh7377.c +2 −2
  1157. arch/arm/mach-shmobile/intc-sh73a0.c +268 −0
  1158. arch/arm/mach-shmobile/localtimer.c +25 −0
  1159. arch/arm/mach-shmobile/pfc-sh73a0.c +2746 −0
  1160. arch/arm/mach-shmobile/platsmp.c +70 −0
  1161. arch/arm/mach-shmobile/setup-sh7367.c +14 −0
  1162. arch/arm/mach-shmobile/setup-sh7372.c +24 −0
  1163. arch/arm/mach-shmobile/setup-sh7377.c +16 −0
  1164. arch/arm/mach-shmobile/setup-sh73a0.c +430 −0
  1165. arch/arm/mach-shmobile/smp-sh73a0.c +97 −0
  1166. arch/arm/mach-spear3xx/include/mach/spear320.h +1 −1
  1167. arch/arm/mach-spear3xx/spear300.c +2 −2
  1168. arch/arm/mach-spear3xx/spear310.c +1 −1
  1169. arch/arm/mach-spear3xx/spear320.c +1 −1
  1170. arch/arm/mach-spear3xx/spear3xx.c +3 −3
  1171. arch/arm/mach-spear6xx/spear6xx.c +2 −2
  1172. arch/arm/mach-stmp378x/stmp378x.c +8 −8
  1173. arch/arm/mach-stmp37xx/stmp37xx.c +12 −12
  1174. arch/arm/mach-tcc8k/clock.c +1 −2
  1175. arch/arm/mach-tcc8k/irq.c +28 −28
  1176. arch/arm/mach-tcc8k/time.c +1 −4
  1177. arch/arm/mach-tegra/clock.c +1 −1
  1178. arch/arm/mach-tegra/clock.h +1 −1
  1179. arch/arm/mach-tegra/gpio.c +21 −21
  1180. arch/arm/mach-tegra/hotplug.c +15 −29
  1181. arch/arm/mach-tegra/include/mach/clk.h +2 −0
  1182. arch/arm/mach-tegra/include/mach/clkdev.h +2 −0
  1183. arch/arm/mach-tegra/include/mach/entry-macro.S +2 −64
  1184. arch/arm/mach-tegra/include/mach/io.h +2 −2
  1185. arch/arm/mach-tegra/include/mach/kbc.h +61 −0
  1186. arch/arm/mach-tegra/include/mach/sdhci.h +29 −0
  1187. arch/arm/mach-tegra/include/mach/smp.h +2 −10
  1188. arch/arm/mach-tegra/irq.c +22 −22
  1189. arch/arm/mach-tegra/platsmp.c +9 −26
  1190. arch/arm/mach-tegra/tegra2_clocks.c +1 −2
  1191. arch/arm/mach-tegra/timer.c +25 −6
  1192. arch/arm/mach-u300/Kconfig +1 −1
  1193. arch/arm/mach-u300/clock.c +1 −1
  1194. arch/arm/mach-u300/include/mach/coh901318.h +2 −2
  1195. arch/arm/mach-u300/timer.c +15 −7
  1196. arch/arm/mach-ux500/Kconfig +14 −12
  1197. arch/arm/mach-ux500/Makefile +9 −6
  1198. arch/arm/mach-ux500/board-mop500-keypads.c +229 −0
  1199. arch/arm/mach-ux500/board-mop500-regulators.c +74 −79
  1200. arch/arm/mach-ux500/board-mop500-regulators.h +19 −0
  1201. arch/arm/mach-ux500/board-mop500-sdi.c +74 −5
  1202. arch/arm/mach-ux500/board-mop500.c +65 −166
  1203. arch/arm/mach-ux500/board-mop500.h +9 −0
  1204. arch/arm/mach-ux500/board-u5500-sdi.c +49 −0
  1205. arch/arm/mach-ux500/board-u5500.c +12 −7
  1206. arch/arm/mach-ux500/clock.c +273 −105
  1207. arch/arm/mach-ux500/clock.h +4 −0
  1208. arch/arm/mach-ux500/cpu-db5500.c +47 −9
  1209. arch/arm/mach-ux500/cpu-db8500.c +60 −95
  1210. arch/arm/mach-ux500/cpu.c +41 −48
  1211. arch/arm/mach-ux500/cpufreq.c +211 −0
  1212. arch/arm/mach-ux500/devices-common.c +145 −0
  1213. arch/arm/mach-ux500/devices-common.h +82 −0
  1214. arch/arm/mach-ux500/devices-db5500.c +0 −46
  1215. arch/arm/mach-ux500/devices-db5500.h +66 −0
  1216. arch/arm/mach-ux500/devices-db8500.c +1 −168
  1217. arch/arm/mach-ux500/devices-db8500.h +98 −0
  1218. arch/arm/mach-ux500/devices.c +0 −63
  1219. arch/arm/mach-ux500/dma-db5500.c +120 −0
  1220. arch/arm/mach-ux500/headsmp.S +0 −1
  1221. arch/arm/mach-ux500/hotplug.c +1 −17
  1222. arch/arm/mach-ux500/id.c +107 −0
  1223. arch/arm/mach-ux500/include/mach/db5500-regs.h +4 −0
  1224. arch/arm/mach-ux500/include/mach/db8500-regs.h +2 −1
  1225. arch/arm/mach-ux500/include/mach/debug-macro.S +18 −1
  1226. arch/arm/mach-ux500/include/mach/devices.h +0 −17
  1227. arch/arm/mach-ux500/include/mach/entry-macro.S +1 −70
  1228. arch/arm/mach-ux500/include/mach/gpio.h +0 −38
  1229. arch/arm/mach-ux500/include/mach/hardware.h +2 −106
  1230. arch/arm/mach-ux500/include/mach/id.h +80 −0
  1231. arch/arm/mach-ux500/include/mach/irqs-board-mop500.h +26 −2
  1232. arch/arm/mach-ux500/include/mach/irqs.h +1 −45
  1233. arch/arm/mach-ux500/include/mach/mbox-db5500.h +0 −0
  1234. arch/arm/mach-ux500/include/mach/prcmu-defs.h +30 −0
  1235. arch/arm/mach-ux500/include/mach/prcmu-regs.h +10 −5
  1236. arch/arm/mach-ux500/include/mach/prcmu.h +14 −1
  1237. arch/arm/mach-ux500/include/mach/setup.h +7 −2
  1238. arch/arm/mach-ux500/include/mach/smp.h +2 −3
  1239. arch/arm/mach-ux500/include/mach/uncompress.h +14 −9
  1240. arch/arm/mach-ux500/mbox-db5500.c +1 −1
  1241. arch/arm/mach-ux500/modem-irq-db5500.c +5 −0
  1242. arch/arm/mach-ux500/platsmp.c +54 −54
  1243. arch/arm/mach-ux500/prcmu.c +171 −8
  1244. arch/arm/mach-versatile/Kconfig +7 −4
  1245. arch/arm/mach-versatile/core.c +22 −11
  1246. arch/arm/mach-vexpress/Makefile +1 −0
  1247. arch/arm/mach-vexpress/core.h +0 −2
  1248. arch/arm/mach-vexpress/ct-ca9x4.c +4 −8
  1249. arch/arm/mach-vexpress/hotplug.c +128 −0
  1250. arch/arm/mach-vexpress/include/mach/entry-macro.S +1 −61
  1251. arch/arm/mach-vexpress/include/mach/smp.h +2 −3
  1252. arch/arm/mach-vexpress/platsmp.c +27 −49
  1253. arch/arm/mach-vexpress/v2m.c +14 −3
  1254. arch/arm/mach-w90x900/clock.h +1 −1
  1255. arch/arm/mach-w90x900/irq.c +10 −10
  1256. arch/arm/mach-w90x900/time.c +1 −4
  1257. arch/arm/mm/Kconfig +45 −4
  1258. arch/arm/mm/Makefile +2 −2
  1259. arch/arm/mm/cache-l2x0.c +6 −0
  1260. arch/arm/mm/dma-mapping.c +24 −6
  1261. arch/arm/mm/fault-armv.c +1 −1
  1262. arch/arm/mm/fault.c +1 −1
  1263. arch/arm/mm/flush.c +0 −1
  1264. arch/arm/mm/idmap.c +67 −0
  1265. arch/arm/mm/init.c +6 −0
  1266. arch/arm/mm/ioremap.c +2 −6
  1267. arch/arm/mm/mm.h +1 −1
  1268. arch/arm/mm/mmu.c +16 −52
  1269. arch/arm/mm/pgd.c +19 −20
  1270. arch/arm/mm/proc-macros.S +22 −15
  1271. arch/arm/mm/proc-v7.S +23 −12
  1272. arch/arm/mm/proc-xscale.S +2 −2
  1273. arch/arm/oprofile/common.c +3 −11
  1274. arch/arm/plat-iop/time.c +17 −10
  1275. arch/arm/plat-mxc/3ds_debugboard.c +14 −14
  1276. arch/arm/plat-mxc/Kconfig +4 −11
  1277. arch/arm/plat-mxc/Makefile +3 −2
  1278. arch/arm/plat-mxc/audmux-v2.c +2 −2
  1279. arch/arm/plat-mxc/avic.c +23 −17
  1280. arch/arm/plat-mxc/cpufreq.c +0 −1
  1281. arch/arm/plat-mxc/devices.c +21 −2
  1282. arch/arm/plat-mxc/devices/Kconfig +49 −5
  1283. arch/arm/plat-mxc/devices/Makefile +15 −1
  1284. arch/arm/plat-mxc/devices/platform-esdhc.c +0 −71
  1285. arch/arm/plat-mxc/devices/platform-fec.c +9 −4
  1286. arch/arm/plat-mxc/devices/platform-flexcan.c +38 −10
  1287. arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c +56 −0
  1288. arch/arm/plat-mxc/devices/platform-imx-dma.c +108 −19
  1289. arch/arm/plat-mxc/devices/platform-imx-fb.c +52 −0
  1290. arch/arm/plat-mxc/devices/platform-imx-i2c.c +17 −8
  1291. arch/arm/plat-mxc/devices/platform-imx-keypad.c +67 −0
  1292. arch/arm/plat-mxc/devices/platform-imx-ssi.c +9 −8
  1293. arch/arm/plat-mxc/devices/platform-imx-uart.c +30 −8
  1294. arch/arm/plat-mxc/devices/platform-imx2-wdt.c +68 −0
  1295. arch/arm/plat-mxc/devices/platform-imx21-hcd.c +41 −0
  1296. arch/arm/plat-mxc/devices/platform-imx_udc.c +75 −0
  1297. arch/arm/plat-mxc/devices/platform-imxdi_rtc.c +41 −0
  1298. arch/arm/plat-mxc/devices/platform-mx1-camera.c +42 −0
  1299. arch/arm/plat-mxc/devices/platform-mx2-camera.c +64 −0
  1300. arch/arm/plat-mxc/devices/platform-mxc-ehci.c +69 −0
  1301. arch/arm/plat-mxc/devices/platform-mxc-mmc.c +72 −0
  1302. arch/arm/plat-mxc/devices/platform-mxc_nand.c +5 −5
  1303. arch/arm/plat-mxc/devices/platform-mxc_pwm.c +69 −0
  1304. arch/arm/plat-mxc/devices/platform-mxc_rnga.c +56 −0
  1305. arch/arm/plat-mxc/devices/platform-mxc_w1.c +50 −0
  1306. arch/arm/plat-mxc/devices/platform-sdhci-esdhc-imx.c +86 −0
  1307. arch/arm/plat-mxc/devices/platform-spi_imx.c +20 −8
  1308. arch/arm/plat-mxc/ehci.c +58 −19
  1309. arch/arm/plat-mxc/epit.c +1 −4
  1310. arch/arm/plat-mxc/gpio.c +127 −17
  1311. arch/arm/plat-mxc/include/mach/common.h +8 −1
  1312. arch/arm/plat-mxc/include/mach/debug-macro.S +7 −16
  1313. arch/arm/plat-mxc/include/mach/devices-common.h +159 −15
  1314. arch/arm/plat-mxc/include/mach/entry-macro.S +7 −7
  1315. arch/arm/plat-mxc/include/mach/gpio.h +5 −0
  1316. arch/arm/plat-mxc/include/mach/hardware.h +90 −4
  1317. arch/arm/plat-mxc/include/mach/imxfb.h +3 −0
  1318. arch/arm/plat-mxc/include/mach/iomux-mx50.h +977 −0
  1319. arch/arm/plat-mxc/include/mach/iomux-mx51.h +1539 −359
  1320. arch/arm/plat-mxc/include/mach/iomux-mx53.h +325 −0
  1321. arch/arm/plat-mxc/include/mach/iomux-v3.h +41 −24
  1322. arch/arm/plat-mxc/include/mach/irqs.h +7 −3
  1323. arch/arm/plat-mxc/include/mach/memory.h +7 −1
  1324. arch/arm/plat-mxc/include/mach/mx1.h +15 −140
  1325. arch/arm/plat-mxc/include/mach/mx21.h +8 −42
  1326. arch/arm/plat-mxc/include/mach/mx25.h +29 −17
  1327. arch/arm/plat-mxc/include/mach/mx27.h +17 −88
  1328. arch/arm/plat-mxc/include/mach/mx2x.h +0 −149
  1329. arch/arm/plat-mxc/include/mach/mx31.h +17 −70
  1330. arch/arm/plat-mxc/include/mach/mx35.h +14 −37
  1331. arch/arm/plat-mxc/include/mach/mx3x.h +2 −196
  1332. arch/arm/plat-mxc/include/mach/mx50.h +285 −0
  1333. arch/arm/plat-mxc/include/mach/mx51.h +14 −65
  1334. arch/arm/plat-mxc/include/mach/mx53.h +353 −0
  1335. arch/arm/plat-mxc/include/mach/mxc.h +41 −1
  1336. arch/arm/plat-mxc/include/mach/mxc91231.h +3 −20
  1337. arch/arm/plat-mxc/include/mach/mxc_ehci.h +1 −0
  1338. arch/arm/plat-mxc/include/mach/sdma.h +46 −0
  1339. arch/arm/plat-mxc/include/mach/uncompress.h +10 −0
  1340. arch/arm/plat-mxc/iomux-v3.c +19 −12
  1341. arch/arm/plat-mxc/irq-common.c +60 −0
  1342. arch/arm/plat-mxc/irq-common.h +29 −0
  1343. arch/arm/plat-mxc/pwm.c +1 −1
  1344. arch/arm/plat-mxc/system.c +9 −1
  1345. arch/arm/plat-mxc/time.c +1 −4
  1346. arch/arm/plat-mxc/tzic.c +54 −22
  1347. arch/arm/plat-nomadik/Kconfig +1 −0
  1348. arch/arm/plat-nomadik/gpio.c +73 −35
  1349. arch/arm/plat-nomadik/include/plat/pincfg.h +55 −15
  1350. arch/arm/plat-nomadik/include/plat/ste_dma40.h +8 −0
  1351. arch/arm/plat-nomadik/timer.c +11 −69
  1352. arch/arm/plat-omap/Kconfig +38 −7
  1353. arch/arm/plat-omap/counter_32k.c +45 −22
  1354. arch/arm/plat-omap/devices.c +0 −40
  1355. arch/arm/plat-omap/dma.c +292 −406
  1356. arch/arm/plat-omap/gpio.c +280 −489
  1357. arch/arm/plat-omap/i2c.c +57 −71
  1358. arch/arm/plat-omap/include/plat/clkdev_omap.h +11 −11
  1359. arch/arm/plat-omap/include/plat/clock.h +11 −5
  1360. arch/arm/plat-omap/include/plat/common.h +5 −0
  1361. arch/arm/plat-omap/include/plat/display.h +9 −0
  1362. arch/arm/plat-omap/include/plat/dma.h +99 −133
  1363. arch/arm/plat-omap/include/plat/fpga.h +0 −4
  1364. arch/arm/plat-omap/include/plat/gpio.h +29 −19
  1365. arch/arm/plat-omap/include/plat/gpmc.h +5 −4
  1366. arch/arm/plat-omap/include/plat/i2c.h +13 −0
  1367. arch/arm/plat-omap/include/plat/io.h +5 −4
  1368. arch/arm/plat-omap/include/plat/iommu.h +5 −0
  1369. arch/arm/plat-omap/include/plat/irqs.h +1 −1
  1370. arch/arm/plat-omap/include/plat/keypad.h +20 −15
  1371. arch/arm/plat-omap/include/plat/l4_3xxx.h +24 −0
  1372. arch/arm/plat-omap/include/plat/mailbox.h +5 −3
  1373. arch/arm/plat-omap/include/plat/memory.h +4 −4
  1374. arch/arm/plat-omap/include/plat/omap-pm.h +14 −25
  1375. arch/arm/plat-omap/include/plat/omap-serial.h +1 −13
  1376. arch/arm/plat-omap/include/plat/omap44xx.h +5 −0
  1377. arch/arm/plat-omap/include/plat/omap_device.h +1 −0
  1378. arch/arm/plat-omap/include/plat/omap_hwmod.h +54 −21
  1379. arch/arm/plat-omap/include/plat/onenand.h +1 −0
  1380. arch/arm/plat-omap/include/plat/panel-generic-dpi.h +37 −0
  1381. arch/arm/plat-omap/include/plat/prcm.h +4 −16
  1382. arch/arm/plat-omap/include/plat/serial.h +4 −1
  1383. arch/arm/plat-omap/include/plat/smartreflex.h +245 −0
  1384. arch/arm/plat-omap/include/plat/smp.h +2 −3
  1385. arch/arm/plat-omap/include/plat/sram.h +11 −0
  1386. arch/arm/plat-omap/include/plat/uncompress.h +3 −0
  1387. arch/arm/plat-omap/include/plat/usb.h +10 −0
  1388. arch/arm/plat-omap/include/plat/voltage.h +155 −0
  1389. arch/arm/plat-omap/io.c +0 −58
  1390. arch/arm/plat-omap/iommu.c +24 −0
  1391. arch/arm/plat-omap/iovmm.c +46 −35
  1392. arch/arm/plat-omap/mailbox.c +76 −54
  1393. arch/arm/plat-omap/mcbsp.c +11 −15
  1394. arch/arm/plat-omap/omap-pm-noop.c +55 −23
  1395. arch/arm/plat-omap/omap_device.c +28 −0
  1396. arch/arm/plat-omap/sram.c +6 −8
  1397. arch/arm/plat-orion/gpio.c +18 −19
  1398. arch/arm/plat-orion/irq.c +9 −9
  1399. arch/arm/plat-orion/time.c +11 −39
  1400. arch/arm/plat-pxa/Makefile +1 −0
  1401. arch/arm/plat-pxa/gpio.c +14 −14
  1402. arch/arm/plat-pxa/include/plat/gpio.h +3 −1
  1403. arch/arm/plat-pxa/include/plat/mfp.h +2 −2
  1404. arch/arm/plat-pxa/mfp.c +6 −2
  1405. arch/arm/plat-pxa/ssp.c +1 −1
  1406. arch/arm/plat-s3c24xx/cpu-freq.c +0 −1
  1407. arch/arm/plat-s3c24xx/devs.c +3 −17
  1408. arch/arm/plat-s3c24xx/include/plat/irq.h +2 −2
  1409. arch/arm/plat-s3c24xx/irq-pm.c +6 −3
  1410. arch/arm/plat-s3c24xx/irq.c +87 −95
  1411. arch/arm/plat-s3c24xx/s3c2443-clock.c +1 −1
  1412. arch/arm/plat-s5p/Kconfig +18 −0
  1413. arch/arm/plat-s5p/Makefile +3 −0
  1414. arch/arm/plat-s5p/cpu.c +5 −0
  1415. arch/arm/plat-s5p/dev-csis0.c +34 −0
  1416. arch/arm/plat-s5p/dev-csis1.c +34 −0
  1417. arch/arm/plat-s5p/dev-uart.c +6 −6
  1418. arch/arm/plat-s5p/include/plat/csis.h +28 −0
  1419. arch/arm/plat-s5p/include/plat/map-s5p.h +1 −0
  1420. arch/arm/plat-s5p/include/plat/regs-srom.h +54 −0
  1421. arch/arm/plat-s5p/irq-eint.c +44 −42
  1422. arch/arm/plat-s5p/irq-gpioint.c +25 −25
  1423. arch/arm/plat-s5p/irq-pm.c +3 −3
  1424. arch/arm/plat-s5p/sysmmu.c +326 −0
  1425. arch/arm/plat-samsung/Kconfig +14 −0
  1426. arch/arm/plat-samsung/Makefile +5 −0
  1427. arch/arm/plat-samsung/clock.c +92 −0
  1428. arch/arm/plat-samsung/dev-asocdma.c +25 −0
  1429. arch/arm/plat-samsung/dev-nand.c +0 −2
  1430. arch/arm/plat-samsung/dev-ts.c +0 −1
  1431. arch/arm/plat-samsung/gpio-config.c +42 −0
  1432. arch/arm/plat-samsung/gpiolib.c +7 −0
  1433. arch/arm/plat-samsung/include/plat/audio.h +24 −0
  1434. arch/arm/plat-samsung/include/plat/clock.h +3 −0
  1435. arch/arm/plat-samsung/include/plat/devs.h +18 −1
  1436. arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h +1 −1
  1437. arch/arm/plat-samsung/include/plat/gpio-core.h +2 −0
  1438. arch/arm/plat-samsung/include/plat/pd.h +30 −0
  1439. arch/arm/plat-samsung/include/plat/pm.h +5 −1
  1440. arch/arm/plat-samsung/include/plat/sdhci.h +35 −0
  1441. arch/arm/plat-samsung/irq-uart.c +20 −20
  1442. arch/arm/plat-samsung/irq-vic-timer.c +15 −11
  1443. arch/arm/plat-samsung/pd.c +95 −0
  1444. arch/arm/plat-samsung/pm.c +4 −4
  1445. arch/arm/plat-spear/include/plat/clock.h +1 −1
  1446. arch/arm/plat-spear/include/plat/keyboard.h +141 −0
  1447. arch/arm/plat-spear/include/plat/uncompress.h +2 −2
  1448. arch/arm/plat-spear/include/plat/vmalloc.h +1 −1
  1449. arch/arm/plat-spear/shirq.c +11 −11
  1450. arch/arm/plat-spear/time.c +1 −5
  1451. arch/arm/plat-stmp3xxx/clock.c +1 −1
  1452. arch/arm/plat-stmp3xxx/irq.c +1 −1
  1453. arch/arm/plat-stmp3xxx/pinmux.c +16 −16
  1454. arch/arm/plat-stmp3xxx/timer.c +1 −4
  1455. arch/arm/plat-versatile/Makefile +3 −3
  1456. arch/arm/plat-versatile/include/plat/sched_clock.h +6 −0
  1457. arch/arm/plat-versatile/sched-clock.c +28 −23
  1458. arch/arm/tools/mach-types +101 −4
  1459. arch/arm/vfp/vfpmodule.c +23 −1
  1460. arch/avr32/Kconfig +2 −2
  1461. arch/avr32/boards/atngw100/setup.c +1 −1
  1462. arch/avr32/boards/atstk1000/atstk1002.c +1 −1
  1463. arch/avr32/boards/favr-32/setup.c +1 −1
  1464. arch/avr32/boards/hammerhead/setup.c +1 −1
  1465. arch/avr32/boards/merisc/setup.c +1 −1
  1466. arch/avr32/boards/mimc200/setup.c +1 −1
  1467. arch/avr32/configs/atngw100_defconfig +10 −13
  1468. arch/avr32/configs/atngw100_evklcd100_defconfig +10 −7
  1469. arch/avr32/configs/atngw100_evklcd101_defconfig +10 −7
  1470. arch/avr32/configs/atngw100mkii_defconfig +10 −12
  1471. arch/avr32/configs/atngw100mkii_evklcd100_defconfig +10 −7
  1472. arch/avr32/configs/atngw100mkii_evklcd101_defconfig +10 −7
  1473. arch/avr32/configs/atstk1002_defconfig +11 −14
  1474. arch/avr32/configs/atstk1003_defconfig +19 −22
  1475. arch/avr32/configs/atstk1004_defconfig +93 −16
  1476. arch/avr32/configs/atstk1006_defconfig +10 −13
  1477. arch/avr32/configs/favr-32_defconfig +1 −1
  1478. arch/avr32/configs/hammerhead_defconfig +1 −1
  1479. arch/avr32/include/asm/pgalloc.h +1 −0
  1480. arch/avr32/include/asm/syscalls.h +0 −14
  1481. arch/avr32/kernel/process.c +4 −5
  1482. arch/avr32/kernel/time.c +1 −4
  1483. arch/avr32/mach-at32ap/pm.c +1 −1
  1484. arch/blackfin/Kconfig +3 −14
  1485. arch/blackfin/Makefile +6 −3
  1486. arch/blackfin/boot/Makefile +1 −1
  1487. arch/blackfin/configs/BF518F-EZBRD_defconfig +1 −1
  1488. arch/blackfin/configs/BF526-EZBRD_defconfig +1 −1
  1489. arch/blackfin/configs/BF527-AD7160-EVAL_defconfig +1 −1
  1490. arch/blackfin/configs/BF527-EZKIT-V2_defconfig +1 −1
  1491. arch/blackfin/configs/BF527-EZKIT_defconfig +1 −1
  1492. arch/blackfin/configs/BF527-TLL6527M_defconfig +1 −1
  1493. arch/blackfin/configs/BF533-EZKIT_defconfig +1 −1
  1494. arch/blackfin/configs/BF533-STAMP_defconfig +1 −1
  1495. arch/blackfin/configs/BF537-STAMP_defconfig +1 −1
  1496. arch/blackfin/configs/BF538-EZKIT_defconfig +1 −1
  1497. arch/blackfin/configs/BF548-EZKIT_defconfig +1 −1
  1498. arch/blackfin/configs/BF561-ACVILON_defconfig +1 −1
  1499. arch/blackfin/configs/BF561-EZKIT-SMP_defconfig +113 −0
  1500. arch/blackfin/configs/BF561-EZKIT_defconfig +1 −1
  1501. arch/blackfin/configs/BlackStamp_defconfig +1 −1
  1502. arch/blackfin/configs/CM-BF527_defconfig +1 −1
  1503. arch/blackfin/configs/CM-BF533_defconfig +1 −1
  1504. arch/blackfin/configs/CM-BF537E_defconfig +1 −1
  1505. arch/blackfin/configs/CM-BF537U_defconfig +1 −1
  1506. arch/blackfin/configs/CM-BF548_defconfig +1 −1
  1507. arch/blackfin/configs/CM-BF561_defconfig +1 −1
  1508. arch/blackfin/configs/DNP5370_defconfig +121 −0
  1509. arch/blackfin/configs/H8606_defconfig +1 −1
  1510. arch/blackfin/configs/IP0X_defconfig +1 −1
  1511. arch/blackfin/configs/PNAV-10_defconfig +1 −1
  1512. arch/blackfin/configs/SRV1_defconfig +1 −1
  1513. arch/blackfin/configs/TCM-BF518_defconfig +1 −1
  1514. arch/blackfin/configs/TCM-BF537_defconfig +1 −1
  1515. arch/blackfin/include/asm/bfin_dma.h +91 −0
  1516. arch/blackfin/include/asm/bfin_serial.h +277 −0
  1517. arch/blackfin/include/asm/bitops.h +2 −0
  1518. arch/blackfin/include/asm/cache.h +2 −0
  1519. arch/blackfin/include/asm/cacheflush.h +3 −0
  1520. arch/blackfin/include/asm/dma.h +2 −35
  1521. arch/blackfin/include/asm/dpmc.h +2 −0
  1522. arch/blackfin/include/asm/io.h +37 −231
  1523. arch/blackfin/include/asm/irqflags.h +0 −3
  1524. arch/blackfin/include/asm/processor.h +3 −1
  1525. arch/blackfin/include/asm/spinlock.h +16 −12
  1526. arch/blackfin/include/mach-common/pll.h +86 −0
  1527. arch/blackfin/include/mach-common/ports-a.h +25 −0
  1528. arch/blackfin/include/mach-common/ports-b.h +25 −0
  1529. arch/blackfin/include/mach-common/ports-c.h +25 −0
  1530. arch/blackfin/include/mach-common/ports-d.h +25 −0
  1531. arch/blackfin/include/mach-common/ports-e.h +25 −0
  1532. arch/blackfin/include/mach-common/ports-f.h +25 −0
  1533. arch/blackfin/include/mach-common/ports-g.h +25 −0
  1534. arch/blackfin/include/mach-common/ports-h.h +25 −0
  1535. arch/blackfin/include/mach-common/ports-i.h +25 −0
  1536. arch/blackfin/include/mach-common/ports-j.h +25 −0
  1537. arch/blackfin/kernel/cplb-nompu/cplbinit.c +1 −1
  1538. arch/blackfin/kernel/kgdb.c +26 −0
  1539. arch/blackfin/kernel/kgdb_test.c +4 −0
  1540. arch/blackfin/mach-bf518/boards/ezbrd.c +14 −15
  1541. arch/blackfin/mach-bf518/boards/tcm-bf518.c +6 −6
  1542. arch/blackfin/mach-bf518/dma.c +1 −1
  1543. arch/blackfin/mach-bf518/include/mach/bfin_serial.h +14 −0
  1544. arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h +2 −71
  1545. arch/blackfin/mach-bf518/include/mach/blackfin.h +25 −43
  1546. arch/blackfin/mach-bf518/include/mach/cdefBF512.h +1030 −8
  1547. arch/blackfin/mach-bf518/include/mach/cdefBF514.h +1 −4
  1548. arch/blackfin/mach-bf518/include/mach/cdefBF516.h +1 −4
  1549. arch/blackfin/mach-bf518/include/mach/cdefBF518.h +1 −4
  1550. arch/blackfin/mach-bf518/include/mach/cdefBF51x_base.h +0 −1061
  1551. arch/blackfin/mach-bf518/include/mach/defBF512.h +1382 −6
  1552. arch/blackfin/mach-bf518/include/mach/defBF51x_base.h +0 −1495
  1553. arch/blackfin/mach-bf518/include/mach/gpio.h +4 −0
  1554. arch/blackfin/mach-bf518/include/mach/pll.h +1 −63
  1555. arch/blackfin/mach-bf527/boards/ad7160eval.c +8 −7
  1556. arch/blackfin/mach-bf527/boards/cm_bf527.c +10 −7
  1557. arch/blackfin/mach-bf527/boards/ezbrd.c +10 −7
  1558. arch/blackfin/mach-bf527/boards/ezkit.c +15 −7
  1559. arch/blackfin/mach-bf527/boards/tll6527m.c +8 −8
  1560. arch/blackfin/mach-bf527/dma.c +1 −1
  1561. arch/blackfin/mach-bf527/include/mach/bfin_serial.h +14 −0
  1562. arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h +2 −71
  1563. arch/blackfin/mach-bf527/include/mach/blackfin.h +18 −30
  1564. arch/blackfin/mach-bf527/include/mach/cdefBF522.h +1083 −9
  1565. arch/blackfin/mach-bf527/include/mach/cdefBF525.h +2 −5
  1566. arch/blackfin/mach-bf527/include/mach/cdefBF527.h +2 −5
  1567. arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h +0 −1113
  1568. arch/blackfin/mach-bf527/include/mach/defBF522.h +1387 −6
  1569. arch/blackfin/mach-bf527/include/mach/defBF525.h +1 −1
  1570. arch/blackfin/mach-bf527/include/mach/defBF527.h +1 −1
  1571. arch/blackfin/mach-bf527/include/mach/defBF52x_base.h +0 −1506
  1572. arch/blackfin/mach-bf527/include/mach/gpio.h +4 −0
  1573. arch/blackfin/mach-bf527/include/mach/pll.h +1 −63
  1574. arch/blackfin/mach-bf533/boards/H8606.c +1 −1
  1575. arch/blackfin/mach-bf533/boards/blackstamp.c +15 −10
  1576. arch/blackfin/mach-bf533/boards/cm_bf533.c +5 −5
  1577. arch/blackfin/mach-bf533/boards/ezkit.c +1 −1
  1578. arch/blackfin/mach-bf533/boards/ip0x.c +1 −10
  1579. arch/blackfin/mach-bf533/boards/stamp.c +17 −13
  1580. arch/blackfin/mach-bf533/dma.c +1 −1
  1581. arch/blackfin/mach-bf533/include/mach/bfin_serial.h +14 −0
  1582. arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h +2 −72
  1583. arch/blackfin/mach-bf533/include/mach/blackfin.h +9 −21
  1584. arch/blackfin/mach-bf533/include/mach/cdefBF532.h +46 −17
  1585. arch/blackfin/mach-bf533/include/mach/defBF532.h +3 −125
  1586. arch/blackfin/mach-bf533/include/mach/fio_flag.h +0 −55
  1587. arch/blackfin/mach-bf533/include/mach/gpio.h +2 −0
  1588. arch/blackfin/mach-bf533/include/mach/pll.h +1 −57
  1589. arch/blackfin/mach-bf537/boards/Kconfig +6 −0
  1590. arch/blackfin/mach-bf537/boards/Makefile +1 −0
  1591. arch/blackfin/mach-bf537/boards/cm_bf537e.c +6 −6
  1592. arch/blackfin/mach-bf537/boards/cm_bf537u.c +6 −6
  1593. arch/blackfin/mach-bf537/boards/dnp5370.c +418 −0
  1594. arch/blackfin/mach-bf537/boards/minotaur.c +6 −6
  1595. arch/blackfin/mach-bf537/boards/pnav10.c +2 −2
  1596. arch/blackfin/mach-bf537/boards/stamp.c +9 −9
  1597. arch/blackfin/mach-bf537/boards/tcm_bf537.c +6 −6
  1598. arch/blackfin/mach-bf537/dma.c +1 −1
  1599. arch/blackfin/mach-bf537/include/mach/bfin_serial.h +14 −0
  1600. arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h +2 −70
  1601. arch/blackfin/mach-bf537/include/mach/blackfin.h +14 −24
  1602. arch/blackfin/mach-bf537/include/mach/cdefBF534.h +5 −22
  1603. arch/blackfin/mach-bf537/include/mach/cdefBF537.h +1 −4
  1604. arch/blackfin/mach-bf537/include/mach/defBF534.h +4 −109
  1605. arch/blackfin/mach-bf537/include/mach/defBF537.h +1 −4
  1606. arch/blackfin/mach-bf537/include/mach/gpio.h +4 −0
  1607. arch/blackfin/mach-bf537/include/mach/pll.h +1 −57
  1608. arch/blackfin/mach-bf538/boards/ezkit.c +10 −10
  1609. arch/blackfin/mach-bf538/dma.c +9 −9
  1610. arch/blackfin/mach-bf538/include/mach/bfin_serial.h +14 −0
  1611. arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h +2 −71
  1612. arch/blackfin/mach-bf538/include/mach/blackfin.h +15 −22
  1613. arch/blackfin/mach-bf538/include/mach/cdefBF538.h +217 −287
  1614. arch/blackfin/mach-bf538/include/mach/cdefBF539.h +4 −4
  1615. arch/blackfin/mach-bf538/include/mach/defBF538.h +1825 −0
  1616. arch/blackfin/mach-bf538/include/mach/defBF539.h +2 −2093
  1617. arch/blackfin/mach-bf538/include/mach/gpio.h +5 −0
  1618. arch/blackfin/mach-bf538/include/mach/pll.h +1 −63
  1619. arch/blackfin/mach-bf548/boards/cm_bf548.c +15 −12
  1620. arch/blackfin/mach-bf548/boards/ezkit.c +15 −12
  1621. arch/blackfin/mach-bf548/dma.c +1 −1
  1622. arch/blackfin/mach-bf548/include/mach/bfin_serial.h +16 −0
  1623. arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h +2 −58
  1624. arch/blackfin/mach-bf548/include/mach/blackfin.h +26 −44
  1625. arch/blackfin/mach-bf548/include/mach/cdefBF542.h +1 −9
  1626. arch/blackfin/mach-bf548/include/mach/cdefBF544.h +1 −9
  1627. arch/blackfin/mach-bf548/include/mach/cdefBF547.h +1 −9
  1628. arch/blackfin/mach-bf548/include/mach/cdefBF548.h +1 −9
  1629. arch/blackfin/mach-bf548/include/mach/cdefBF549.h +1 −9
  1630. arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h +1 −22
  1631. arch/blackfin/mach-bf548/include/mach/defBF542.h +1 −6
  1632. arch/blackfin/mach-bf548/include/mach/defBF544.h +1 −6
  1633. arch/blackfin/mach-bf548/include/mach/defBF547.h +1 −6
  1634. arch/blackfin/mach-bf548/include/mach/defBF548.h +1 −6
  1635. arch/blackfin/mach-bf548/include/mach/defBF549.h +1 −6
  1636. arch/blackfin/mach-bf548/include/mach/defBF54x_base.h +3 −318
  1637. arch/blackfin/mach-bf548/include/mach/gpio.h +11 −0
  1638. arch/blackfin/mach-bf548/include/mach/irq.h +22 −0
  1639. arch/blackfin/mach-bf548/include/mach/pll.h +1 −69
  1640. arch/blackfin/mach-bf561/atomic.S +5 −0
  1641. arch/blackfin/mach-bf561/boards/acvilon.c +1 −1
  1642. arch/blackfin/mach-bf561/boards/cm_bf561.c +1 −1
  1643. arch/blackfin/mach-bf561/boards/ezkit.c +1 −1
  1644. arch/blackfin/mach-bf561/boards/tepla.c +1 −1
  1645. arch/blackfin/mach-bf561/dma.c +9 −9
  1646. arch/blackfin/mach-bf561/hotplug.c +2 −0
  1647. arch/blackfin/mach-bf561/include/mach/anomaly.h +5 −1
  1648. arch/blackfin/mach-bf561/include/mach/bfin_serial.h +14 −0
  1649. arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h +2 −72
  1650. arch/blackfin/mach-bf561/include/mach/blackfin.h +7 −19
  1651. arch/blackfin/mach-bf561/include/mach/cdefBF561.h +217 −286
  1652. arch/blackfin/mach-bf561/include/mach/defBF561.h +115 −293
  1653. arch/blackfin/mach-bf561/include/mach/gpio.h +2 −0
  1654. arch/blackfin/mach-bf561/include/mach/mem_map.h +9 −7
  1655. arch/blackfin/mach-bf561/include/mach/pll.h +37 −46
  1656. arch/blackfin/mach-bf561/include/mach/smp.h +6 −4
  1657. arch/blackfin/mach-bf561/smp.c +17 −12
  1658. arch/blackfin/mach-common/entry.S +2 −2
  1659. arch/blackfin/mach-common/ints-priority.c +0 −1
  1660. arch/blackfin/mach-common/pm.c +1 −11
  1661. arch/blackfin/mach-common/smp.c +79 −125
  1662. arch/blackfin/mm/sram-alloc.c +9 −9
  1663. arch/cris/Kconfig +2 −4
  1664. arch/cris/arch-v10/kernel/irq.c +10 −31
  1665. arch/cris/arch-v32/kernel/irq.c +15 −35
  1666. arch/cris/arch-v32/lib/nand_init.S +1 −1
  1667. arch/cris/configs/artpec_3_defconfig +1 −1
  1668. arch/cris/configs/etrax-100lx_v2_defconfig +1 −1
  1669. arch/cris/configs/etraxfs_defconfig +1 −1
  1670. arch/cris/include/asm/etraxgpio.h +1 −1
  1671. arch/cris/kernel/irq.c +3 −3
  1672. arch/cris/kernel/time.c +1 −1
  1673. arch/frv/Kconfig +1 −8
  1674. arch/frv/defconfig +1 −1
  1675. arch/h8300/Kconfig +2 −4
  1676. arch/h8300/Kconfig.debug +1 −1
  1677. arch/h8300/defconfig +1 −1
  1678. arch/h8300/kernel/irq.c +20 −30
  1679. arch/ia64/Kconfig +4 −22
  1680. arch/ia64/include/asm/io.h +5 −0
  1681. arch/ia64/include/asm/kvm_host.h +4 −0
  1682. arch/ia64/include/asm/page.h +1 −0
  1683. arch/ia64/include/asm/processor.h +3 −2
  1684. arch/ia64/kernel/acpi.c +6 −0
  1685. arch/ia64/kernel/irq_ia64.c +1 −1
  1686. arch/ia64/kernel/perfmon.c +7 −6
  1687. arch/ia64/kernel/process.c +1 −5
  1688. arch/ia64/kernel/smp.c +10 −3
  1689. arch/ia64/kernel/time.c +1 −1
  1690. arch/ia64/kvm/kvm-ia64.c +9 −21
  1691. arch/ia64/kvm/mmio.c +1 −1
  1692. arch/ia64/mm/hugetlbpage.c +1 −1
  1693. arch/m32r/Kconfig +3 −8
  1694. arch/m32r/configs/m32700ut.smp_defconfig +1 −1
  1695. arch/m32r/configs/m32700ut.up_defconfig +1 −1
  1696. arch/m32r/configs/mappi.nommu_defconfig +1 −1
  1697. arch/m32r/configs/mappi.smp_defconfig +1 −1
  1698. arch/m32r/configs/mappi.up_defconfig +1 −1
  1699. arch/m32r/configs/mappi2.opsp_defconfig +1 −1
  1700. arch/m32r/configs/mappi2.vdec2_defconfig +1 −1
  1701. arch/m32r/configs/mappi3.smp_defconfig +1 −1
  1702. arch/m32r/configs/oaks32r_defconfig +1 −1
  1703. arch/m32r/configs/opsput_defconfig +1 −1
  1704. arch/m32r/configs/usrv_defconfig +1 −1
  1705. arch/m32r/kernel/irq.c +7 −5
  1706. arch/m32r/platforms/m32104ut/setup.c +21 −37
  1707. arch/m32r/platforms/m32700ut/setup.c +73 −141
  1708. arch/m32r/platforms/mappi/setup.c +26 −52
  1709. arch/m32r/platforms/mappi2/setup.c +30 −59
  1710. arch/m32r/platforms/mappi3/setup.c +31 −61
  1711. arch/m32r/platforms/oaks32r/setup.c +22 −43
  1712. arch/m32r/platforms/opsput/setup.c +75 −145
  1713. arch/m32r/platforms/usrv/setup.c +40 −75
  1714. arch/m68k/amiga/config.c +7 −9
  1715. arch/m68k/atari/ataints.c +2 −2
  1716. arch/m68k/atari/config.c +1 −1
  1717. arch/m68k/atari/debug.c +7 −7
  1718. arch/m68k/ifpsp060/src/fpsp.S +1 −1
  1719. arch/m68k/include/asm/atarihw.h +1 −1
  1720. arch/m68k/include/asm/cacheflush_no.h +41 −54
  1721. arch/m68k/include/asm/coldfire.h +1 −1
  1722. arch/m68k/include/asm/entry_no.h +34 −25
  1723. arch/m68k/include/asm/gpio.h +1 −1
  1724. arch/m68k/include/asm/io_no.h +0 −1
  1725. arch/m68k/include/asm/m5206sim.h +13 −1
  1726. arch/m68k/include/asm/m520xsim.h +16 −1
  1727. arch/m68k/include/asm/m523xsim.h +11 −0
  1728. arch/m68k/include/asm/m5249sim.h +10 −0
  1729. arch/m68k/include/asm/m5272sim.h +8 −0
  1730. arch/m68k/include/asm/m527xsim.h +10 −0
  1731. arch/m68k/include/asm/m528xsim.h +11 −0
  1732. arch/m68k/include/asm/m52xxacr.h +94 −0
  1733. arch/m68k/include/asm/m5307sim.h +16 −27
  1734. arch/m68k/include/asm/m532xsim.h +9 −24
  1735. arch/m68k/include/asm/m53xxacr.h +101 −0
  1736. arch/m68k/include/asm/m5407sim.h +8 −34
  1737. arch/m68k/include/asm/m54xxacr.h +97 −0
  1738. arch/m68k/include/asm/m54xxgpt.h +7 −5
  1739. arch/m68k/include/asm/m54xxsim.h +18 −5
  1740. arch/m68k/include/asm/mcfcache.h +0 −150
  1741. arch/m68k/include/asm/mcfsim.h +2 −2
  1742. arch/m68k/include/asm/mcfuart.h +1 −44
  1743. arch/m68k/include/asm/processor.h +8 −5
  1744. arch/m68k/include/asm/string.h +1 −15
  1745. arch/m68k/include/asm/sun3_pgtable.h +2 −3
  1746. arch/m68k/include/asm/thread_info.h +1 −0
  1747. arch/m68k/include/asm/unistd.h +1 −0
  1748. arch/m68k/kernel/entry.S +6 −24
  1749. arch/m68k/kernel/signal.c +131 −183
  1750. arch/m68k/lib/string.c +0 −11
  1751. arch/m68k/mac/psc.c +1 −1
  1752. arch/m68knommu/Kconfig +88 −19
  1753. arch/m68knommu/Makefile +7 −7
  1754. arch/m68knommu/configs/m5208evb_defconfig +1 −1
  1755. arch/m68knommu/configs/m5249evb_defconfig +1 −1
  1756. arch/m68knommu/configs/m5272c3_defconfig +1 −1
  1757. arch/m68knommu/configs/m5275evb_defconfig +1 −1
  1758. arch/m68knommu/configs/m5307c3_defconfig +1 −1
  1759. arch/m68knommu/configs/m5407c3_defconfig +1 −1
  1760. arch/m68knommu/defconfig +1 −1
  1761. arch/m68knommu/kernel/entry.S +0 −16
  1762. arch/m68knommu/kernel/setup.c +18 −54
  1763. arch/m68knommu/kernel/signal.c +82 −106
  1764. arch/m68knommu/kernel/vmlinux.lds.S +6 −0
  1765. arch/m68knommu/lib/Makefile +1 −1
  1766. arch/m68knommu/lib/memmove.c +105 −0
  1767. arch/m68knommu/mm/Makefile +1 −1
  1768. arch/m68knommu/mm/fault.c +0 −57
  1769. arch/m68knommu/mm/kmap.c +0 −9
  1770. arch/m68knommu/mm/memory.c +0 −33
  1771. arch/m68knommu/platform/5249/intc2.c +3 −1
  1772. arch/m68knommu/platform/54xx/Makefile +0 −0
  1773. arch/m68knommu/platform/54xx/config.c +16 −16
  1774. arch/m68knommu/platform/68328/entry.S +3 −5
  1775. arch/m68knommu/platform/68328/ints.c +2 −2
  1776. arch/m68knommu/platform/68360/commproc.c +1 −1
  1777. arch/m68knommu/platform/68360/config.c +1 −1
  1778. arch/m68knommu/platform/68360/entry.S +3 −5
  1779. arch/m68knommu/platform/68360/ints.c +2 −2
  1780. arch/m68knommu/platform/coldfire/Makefile +2 −2
  1781. arch/m68knommu/platform/coldfire/cache.c +48 −0
  1782. arch/m68knommu/platform/coldfire/entry.S +12 −50
  1783. arch/m68knommu/platform/coldfire/head.S +21 −5
  1784. arch/microblaze/Kconfig +3 −10
  1785. arch/microblaze/Kconfig.debug +0 −4
  1786. arch/microblaze/Makefile +1 −1
  1787. arch/microblaze/boot/Makefile +3 −9
  1788. arch/microblaze/configs/mmu_defconfig +1 −2
  1789. arch/microblaze/configs/nommu_defconfig +1 −1
  1790. arch/microblaze/include/asm/irqflags.h +1 −1
  1791. arch/microblaze/include/asm/pgtable.h +17 −16
  1792. arch/microblaze/include/asm/prom.h +0 −3
  1793. arch/microblaze/include/asm/pvr.h +96 −89
  1794. arch/microblaze/include/asm/tlb.h +1 −0
  1795. arch/microblaze/kernel/cpu/cpuinfo.c +1 −0
  1796. arch/microblaze/kernel/cpu/pvr.c +2 −2
  1797. arch/microblaze/kernel/entry.S +39 −7
  1798. arch/microblaze/kernel/exceptions.c +3 −0
  1799. arch/microblaze/kernel/head.S +19 −10
  1800. arch/microblaze/kernel/hw_exception_handler.S +9 −4
  1801. arch/microblaze/kernel/prom.c +3 −5
  1802. arch/microblaze/kernel/prom_parse.c +0 −38
  1803. arch/microblaze/kernel/setup.c +2 −2
  1804. arch/microblaze/kernel/vmlinux.lds.S +3 −13
  1805. arch/microblaze/lib/fastcopy.S +4 −0
  1806. arch/microblaze/lib/memmove.c +1 −1
  1807. arch/microblaze/lib/muldi3.S +0 −121
  1808. arch/microblaze/lib/muldi3.c +60 −0
  1809. arch/mips/Kbuild.platforms +1 −0
  1810. arch/mips/Kconfig +38 −4
  1811. arch/mips/Kconfig.debug +1 −1
  1812. arch/mips/alchemy/common/power.c +1 −1
  1813. arch/mips/alchemy/devboards/pm.c +1 −1
  1814. arch/mips/ath79/Kconfig +50 −0
  1815. arch/mips/ath79/Makefile +28 −0
  1816. arch/mips/ath79/Platform +7 −0
  1817. arch/mips/ath79/clock.c +183 −0
  1818. arch/mips/ath79/common.c +97 −0
  1819. arch/mips/ath79/common.h +31 −0
  1820. arch/mips/ath79/dev-ar913x-wmac.c +60 −0
  1821. arch/mips/ath79/dev-ar913x-wmac.h +17 −0
  1822. arch/mips/ath79/dev-common.c +77 −0
  1823. arch/mips/ath79/dev-common.h +18 −0
  1824. arch/mips/ath79/dev-gpio-buttons.c +58 −0
  1825. arch/mips/ath79/dev-gpio-buttons.h +23 −0
  1826. arch/mips/ath79/dev-leds-gpio.c +56 −0
  1827. arch/mips/ath79/dev-leds-gpio.h +21 −0
  1828. arch/mips/ath79/dev-spi.c +38 −0
  1829. arch/mips/ath79/dev-spi.h +22 −0
  1830. arch/mips/ath79/early_printk.c +36 −0
  1831. arch/mips/ath79/gpio.c +197 −0
  1832. arch/mips/ath79/irq.c +187 −0
  1833. arch/mips/ath79/mach-ap81.c +98 −0
  1834. arch/mips/ath79/mach-pb44.c +118 −0
  1835. arch/mips/ath79/machtypes.h +23 −0
  1836. arch/mips/ath79/prom.c +57 −0
  1837. arch/mips/ath79/setup.c +206 −0
  1838. arch/mips/configs/ar7_defconfig +1 −1
  1839. arch/mips/configs/bcm47xx_defconfig +1 −1
  1840. arch/mips/configs/bcm63xx_defconfig +1 −1
  1841. arch/mips/configs/bigsur_defconfig +1 −1
  1842. arch/mips/configs/capcella_defconfig +1 −1
  1843. arch/mips/configs/cavium-octeon_defconfig +1 −1
  1844. arch/mips/configs/cobalt_defconfig +1 −1
  1845. arch/mips/configs/db1000_defconfig +1 −1
  1846. arch/mips/configs/db1100_defconfig +1 −1
  1847. arch/mips/configs/db1200_defconfig +1 −1
  1848. arch/mips/configs/db1500_defconfig +1 −1
  1849. arch/mips/configs/db1550_defconfig +1 −1
  1850. arch/mips/configs/decstation_defconfig +1 −1
  1851. arch/mips/configs/e55_defconfig +1 −1
  1852. arch/mips/configs/fuloong2e_defconfig +1 −1
  1853. arch/mips/configs/gpr_defconfig +1 −1
  1854. arch/mips/configs/ip22_defconfig +1 −1
  1855. arch/mips/configs/ip27_defconfig +1 −1
  1856. arch/mips/configs/ip28_defconfig +1 −1
  1857. arch/mips/configs/ip32_defconfig +1 −1
  1858. arch/mips/configs/jazz_defconfig +1 −1
  1859. arch/mips/configs/jmr3927_defconfig +1 −1
  1860. arch/mips/configs/lasat_defconfig +1 −1
  1861. arch/mips/configs/lemote2f_defconfig +1 −1
  1862. arch/mips/configs/malta_defconfig +4 −1
  1863. arch/mips/configs/markeins_defconfig +1 −1
  1864. arch/mips/configs/mipssim_defconfig +1 −1
  1865. arch/mips/configs/mpc30x_defconfig +1 −1
  1866. arch/mips/configs/msp71xx_defconfig +1 −1
  1867. arch/mips/configs/mtx1_defconfig +1 −1
  1868. arch/mips/configs/pb1100_defconfig +1 −1
  1869. arch/mips/configs/pb1200_defconfig +1 −1
  1870. arch/mips/configs/pb1500_defconfig +1 −1
  1871. arch/mips/configs/pb1550_defconfig +1 −1
  1872. arch/mips/configs/pnx8335-stb225_defconfig +1 −1
  1873. arch/mips/configs/pnx8550-jbs_defconfig +1 −1
  1874. arch/mips/configs/pnx8550-stb810_defconfig +1 −1
  1875. arch/mips/configs/powertv_defconfig +1 −1
  1876. arch/mips/configs/rb532_defconfig +1 −1
  1877. arch/mips/configs/rbtx49xx_defconfig +1 −1
  1878. arch/mips/configs/rm200_defconfig +1 −1
  1879. arch/mips/configs/sb1250-swarm_defconfig +1 −1
  1880. arch/mips/configs/tb0219_defconfig +1 −1
  1881. arch/mips/configs/tb0226_defconfig +1 −1
  1882. arch/mips/configs/tb0287_defconfig +1 −1
  1883. arch/mips/configs/workpad_defconfig +1 −1
  1884. arch/mips/configs/wrppmc_defconfig +1 −1
  1885. arch/mips/configs/yosemite_defconfig +1 −1
  1886. arch/mips/dec/time.c +1 −1
  1887. arch/mips/include/asm/cache.h +2 −0
  1888. arch/mips/include/asm/cpu-info.h +1 −0
  1889. arch/mips/include/asm/inst.h +14 −0
  1890. arch/mips/include/asm/ioctls.h +1 −0
  1891. arch/mips/include/asm/jump_label.h +48 −0
  1892. arch/mips/include/asm/mach-ath79/ar71xx_regs.h +233 −0
  1893. arch/mips/include/asm/mach-ath79/ath79.h +96 −0
  1894. arch/mips/include/asm/mach-ath79/ath79_spi_platform.h +23 −0
  1895. arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h +56 −0
  1896. arch/mips/include/asm/mach-ath79/gpio.h +26 −0
  1897. arch/mips/include/asm/mach-ath79/irq.h +36 −0
  1898. arch/mips/include/asm/mach-ath79/kernel-entry-init.h +32 −0
  1899. arch/mips/include/asm/mach-ath79/war.h +25 −0
  1900. arch/mips/include/asm/mach-powertv/ioremap.h +1 −1
  1901. arch/mips/include/asm/mc146818-time.h +1 −1
  1902. arch/mips/include/asm/mips_machine.h +54 −0
  1903. arch/mips/include/asm/mman.h +3 −0
  1904. arch/mips/include/asm/mmu_context.h +1 −7
  1905. arch/mips/include/asm/uasm.h +7 −0
  1906. arch/mips/jz4740/board-qi_lb60.c +2 −2
  1907. arch/mips/jz4740/gpio.c +1 −1
  1908. arch/mips/jz4740/pm.c +1 −1
  1909. arch/mips/kernel/Makefile +3 −0
  1910. arch/mips/kernel/cpu-probe.c +2 −0
  1911. arch/mips/kernel/jump_label.c +54 −0
  1912. arch/mips/kernel/mips_machine.c +86 −0
  1913. arch/mips/kernel/module.c +8 −11
  1914. arch/mips/kernel/perf_event_mipsxx.c +1 −1
  1915. arch/mips/kernel/proc.c +8 −1
  1916. arch/mips/kernel/prom.c +2 −4
  1917. arch/mips/kernel/setup.c +1 −1
  1918. arch/mips/kernel/traps.c +1 −1
  1919. arch/mips/kernel/vmlinux.lds.S +7 −0
  1920. arch/mips/loongson/common/pm.c +1 −1
  1921. arch/mips/mm/tlbex.c +503 −87
  1922. arch/mips/mm/uasm.c +31 −25
  1923. arch/mips/mti-malta/malta-memory.c +1 −1
  1924. arch/mips/pci/pcie-octeon.c +1 −1
  1925. arch/mips/powertv/memory.c +1 −1
  1926. arch/mips/sibyte/common/sb_tbprof.c +1 −2
  1927. arch/mips/txx9/generic/pci.c +3 −6
  1928. arch/mn10300/Kconfig +2 −12
  1929. arch/mn10300/configs/asb2303_defconfig +1 −1
  1930. arch/mn10300/configs/asb2364_defconfig +1 −1
  1931. arch/mn10300/kernel/rtc.c +1 −1
  1932. arch/parisc/Kconfig +4 −14
  1933. arch/parisc/configs/a500_defconfig +1 −1
  1934. arch/parisc/configs/c3000_defconfig +1 −1
  1935. arch/parisc/include/asm/ioctls.h +1 −0
  1936. arch/parisc/include/asm/mman.h +3 −0
  1937. arch/parisc/include/asm/pgtable.h +3 −1
  1938. arch/parisc/kernel/firmware.c +1 −12
  1939. arch/parisc/kernel/pdc_cons.c +4 −4
  1940. arch/powerpc/Kconfig +17 −29
  1941. arch/powerpc/boot/Makefile +4 −6
  1942. arch/powerpc/boot/dts/bluestone.dts +4 −4
  1943. arch/powerpc/boot/dts/canyonlands.dts +9 −22
  1944. arch/powerpc/boot/dts/cm5200.dts +24 −170
  1945. arch/powerpc/boot/dts/digsy_mtc.dts +25 −152
  1946. arch/powerpc/boot/dts/hotfoot.dts +2 −0
  1947. arch/powerpc/boot/dts/kilauea.dts +9 −0
  1948. arch/powerpc/boot/dts/lite5200b.dts +14 −206
  1949. arch/powerpc/boot/dts/media5200.dts +23 −191
  1950. arch/powerpc/boot/dts/motionpro.dts +25 −169
  1951. arch/powerpc/boot/dts/mpc5200b.dtsi +275 −0
  1952. arch/powerpc/boot/dts/mpc8308_p1m.dts +8 −0
  1953. arch/powerpc/boot/dts/mpc8308rdb.dts +9 −1
  1954. arch/powerpc/boot/dts/mucmc52.dts +46 −128
  1955. arch/powerpc/boot/dts/p1022ds.dts +2 −2
  1956. arch/powerpc/boot/dts/pcm030.dts +19 −177
  1957. arch/powerpc/boot/dts/pcm032.dts +35 −207
  1958. arch/powerpc/boot/dts/uc101.dts +33 −127
  1959. arch/powerpc/configs/40x/acadia_defconfig +1 −1
  1960. arch/powerpc/configs/40x/ep405_defconfig +1 −1
  1961. arch/powerpc/configs/40x/hcu4_defconfig +1 −1
  1962. arch/powerpc/configs/40x/kilauea_defconfig +6 −1
  1963. arch/powerpc/configs/40x/makalu_defconfig +1 −1
  1964. arch/powerpc/configs/40x/walnut_defconfig +1 −1
  1965. arch/powerpc/configs/44x/arches_defconfig +1 −1
  1966. arch/powerpc/configs/44x/bamboo_defconfig +1 −1
  1967. arch/powerpc/configs/44x/bluestone_defconfig +1 −1
  1968. arch/powerpc/configs/44x/canyonlands_defconfig +4 −1
  1969. arch/powerpc/configs/44x/ebony_defconfig +1 −1
  1970. arch/powerpc/configs/44x/eiger_defconfig +1 −1
  1971. arch/powerpc/configs/44x/icon_defconfig +1 −1
  1972. arch/powerpc/configs/44x/iss476-smp_defconfig +1 −1
  1973. arch/powerpc/configs/44x/katmai_defconfig +1 −1
  1974. arch/powerpc/configs/44x/rainier_defconfig +1 −1
  1975. arch/powerpc/configs/44x/redwood_defconfig +1 −1
  1976. arch/powerpc/configs/44x/sam440ep_defconfig +1 −1
  1977. arch/powerpc/configs/44x/sequoia_defconfig +1 −1
  1978. arch/powerpc/configs/44x/taishan_defconfig +1 −1
  1979. arch/powerpc/configs/44x/warp_defconfig +1 −1
  1980. arch/powerpc/configs/52xx/cm5200_defconfig +1 −1
  1981. arch/powerpc/configs/52xx/lite5200b_defconfig +1 −1
  1982. arch/powerpc/configs/52xx/motionpro_defconfig +1 −1
  1983. arch/powerpc/configs/52xx/pcm030_defconfig +1 −1
  1984. arch/powerpc/configs/52xx/tqm5200_defconfig +1 −1
  1985. arch/powerpc/configs/83xx/asp8347_defconfig +1 −1
  1986. arch/powerpc/configs/83xx/kmeter1_defconfig +1 −1
  1987. arch/powerpc/configs/83xx/mpc8313_rdb_defconfig +1 −1
  1988. arch/powerpc/configs/83xx/mpc8315_rdb_defconfig +1 −1
  1989. arch/powerpc/configs/83xx/mpc832x_mds_defconfig +1 −1
  1990. arch/powerpc/configs/83xx/mpc832x_rdb_defconfig +1 −1
  1991. arch/powerpc/configs/83xx/mpc834x_itx_defconfig +1 −1
  1992. arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig +1 −1
  1993. arch/powerpc/configs/83xx/mpc834x_mds_defconfig +1 −1
  1994. arch/powerpc/configs/83xx/mpc836x_mds_defconfig +1 −1
  1995. arch/powerpc/configs/83xx/mpc836x_rdk_defconfig +1 −1
  1996. arch/powerpc/configs/83xx/mpc837x_mds_defconfig +1 −1
  1997. arch/powerpc/configs/83xx/mpc837x_rdb_defconfig +1 −1
  1998. arch/powerpc/configs/83xx/sbc834x_defconfig +1 −1
  1999. arch/powerpc/configs/85xx/ksi8560_defconfig +1 −1
  2000. arch/powerpc/configs/85xx/mpc8540_ads_defconfig +1 −1
  2001. arch/powerpc/configs/85xx/mpc8560_ads_defconfig +1 −1
  2002. arch/powerpc/configs/85xx/mpc85xx_cds_defconfig +1 −1
  2003. arch/powerpc/configs/85xx/sbc8548_defconfig +1 −1
  2004. arch/powerpc/configs/85xx/sbc8560_defconfig +1 −1
  2005. arch/powerpc/configs/85xx/socrates_defconfig +1 −1
  2006. arch/powerpc/configs/85xx/stx_gp3_defconfig +1 −1
  2007. arch/powerpc/configs/85xx/tqm8540_defconfig +1 −1
  2008. arch/powerpc/configs/85xx/tqm8541_defconfig +1 −1
  2009. arch/powerpc/configs/85xx/tqm8548_defconfig +1 −1
  2010. arch/powerpc/configs/85xx/tqm8555_defconfig +1 −1
  2011. arch/powerpc/configs/85xx/tqm8560_defconfig +1 −1
  2012. arch/powerpc/configs/85xx/xes_mpc85xx_defconfig +1 −1
  2013. arch/powerpc/configs/86xx/gef_ppc9a_defconfig +1 −1
  2014. arch/powerpc/configs/86xx/gef_sbc310_defconfig +1 −1
  2015. arch/powerpc/configs/86xx/gef_sbc610_defconfig +1 −1
  2016. arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig +1 −1
  2017. arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig +1 −1
  2018. arch/powerpc/configs/86xx/sbc8641d_defconfig +1 −1
  2019. arch/powerpc/configs/adder875_defconfig +1 −1
  2020. arch/powerpc/configs/e55xx_smp_defconfig +1 −1
  2021. arch/powerpc/configs/ep8248e_defconfig +1 −1
  2022. arch/powerpc/configs/ep88xc_defconfig +1 −1
  2023. arch/powerpc/configs/gamecube_defconfig +1 −1
  2024. arch/powerpc/configs/holly_defconfig +1 −1
  2025. arch/powerpc/configs/mgcoge_defconfig +1 −1
  2026. arch/powerpc/configs/mgsuvd_defconfig +1 −1
  2027. arch/powerpc/configs/mpc7448_hpc2_defconfig +1 −1
  2028. arch/powerpc/configs/mpc8272_ads_defconfig +1 −1
  2029. arch/powerpc/configs/mpc83xx_defconfig +1 −1
  2030. arch/powerpc/configs/mpc85xx_defconfig +1 −1
  2031. arch/powerpc/configs/mpc85xx_smp_defconfig +1 −1
  2032. arch/powerpc/configs/mpc866_ads_defconfig +1 −1
  2033. arch/powerpc/configs/mpc86xx_defconfig +1 −1
  2034. arch/powerpc/configs/mpc885_ads_defconfig +1 −1
  2035. arch/powerpc/configs/ppc40x_defconfig +1 −1
  2036. arch/powerpc/configs/ppc44x_defconfig +1 −1
  2037. arch/powerpc/configs/pq2fads_defconfig +1 −1
  2038. arch/powerpc/configs/ps3_defconfig +1 −1
  2039. arch/powerpc/configs/pseries_defconfig +4 −3
  2040. arch/powerpc/configs/storcenter_defconfig +1 −1
  2041. arch/powerpc/configs/tqm8xx_defconfig +1 −1
  2042. arch/powerpc/configs/wii_defconfig +1 −1
  2043. arch/powerpc/include/asm/8xx_immap.h +2 −2
  2044. arch/powerpc/include/asm/bitops.h +9 −0
  2045. arch/powerpc/include/asm/cputable.h +6 −3
  2046. arch/powerpc/include/asm/cputhreads.h +9 −6
  2047. arch/powerpc/include/asm/device.h +6 −0
  2048. arch/powerpc/include/asm/feature-fixups.h +15 −12
  2049. arch/powerpc/include/asm/firmware.h +2 −1
  2050. arch/powerpc/include/asm/hvcall.h +3 −1
  2051. arch/powerpc/include/asm/immap_qe.h +15 −6
  2052. arch/powerpc/include/asm/ioctls.h +1 −0
  2053. arch/powerpc/include/asm/irqflags.h +30 −10
  2054. arch/powerpc/include/asm/lppaca.h +4 −1
  2055. arch/powerpc/include/asm/machdep.h +2 −22
  2056. arch/powerpc/include/asm/mmu-book3e.h +4 −4
  2057. arch/powerpc/include/asm/mmzone.h +5 −0
  2058. arch/powerpc/include/asm/nvram.h +11 −41
  2059. arch/powerpc/include/asm/page.h +1 −1
  2060. arch/powerpc/include/asm/ppc-opcode.h +8 −0
  2061. arch/powerpc/include/asm/processor.h +0 −2
  2062. arch/powerpc/include/asm/prom.h +1 −4
  2063. arch/powerpc/include/asm/reg.h +2 −0
  2064. arch/powerpc/include/asm/reg_booke.h +14 −0
  2065. arch/powerpc/include/asm/spu.h +0 −8
  2066. arch/powerpc/include/asm/topology.h +14 −1
  2067. arch/powerpc/include/asm/vdso_datapage.h +0 −2
  2068. arch/powerpc/kernel/Makefile +4 −5
  2069. arch/powerpc/kernel/asm-offsets.c +0 −1
  2070. arch/powerpc/kernel/cpu_setup_6xx.S +20 −20
  2071. arch/powerpc/kernel/cpu_setup_fsl_booke.S +6 −0
  2072. arch/powerpc/kernel/cputable.c +18 −31
  2073. arch/powerpc/kernel/crash.c +2 −70
  2074. arch/powerpc/kernel/crash_dump.c +33 −0
  2075. arch/powerpc/kernel/dma-iommu.c +1 −1
  2076. arch/powerpc/kernel/e500-pmu.c +1 −1
  2077. arch/powerpc/kernel/entry_32.S +12 −0
  2078. arch/powerpc/kernel/exceptions-64s.S +1 −0
  2079. arch/powerpc/kernel/fpu.S +1 −0
  2080. arch/powerpc/kernel/head_40x.S +1 −0
  2081. arch/powerpc/kernel/head_44x.S +1 −0
  2082. arch/powerpc/kernel/head_64.S +3 −4
  2083. arch/powerpc/kernel/head_8xx.S +1 −0
  2084. arch/powerpc/kernel/head_fsl_booke.S +1 −0
  2085. arch/powerpc/kernel/iommu.c +8 −6
  2086. arch/powerpc/kernel/machine_kexec.c +9 −10
  2087. arch/powerpc/kernel/misc.S +0 −5
  2088. arch/powerpc/kernel/misc_32.S +1 −0
  2089. arch/powerpc/kernel/misc_64.S +1 −0
  2090. arch/powerpc/kernel/mpc7450-pmu.c +1 −1
  2091. arch/powerpc/kernel/nvram_64.c +160 −321
  2092. arch/powerpc/kernel/pci_64.c +1 −2
  2093. arch/powerpc/kernel/perf_event.c +2 −1
  2094. arch/powerpc/kernel/perf_event_fsl_emb.c +2 −1
  2095. arch/powerpc/kernel/power4-pmu.c +1 −1
  2096. arch/powerpc/kernel/power5+-pmu.c +1 −1
  2097. arch/powerpc/kernel/power5-pmu.c +1 −1
  2098. arch/powerpc/kernel/power6-pmu.c +1 −1
  2099. arch/powerpc/kernel/power7-pmu.c +1 −1
  2100. arch/powerpc/kernel/ppc970-pmu.c +1 −1
  2101. arch/powerpc/kernel/ppc_ksyms.c +7 −0
  2102. arch/powerpc/kernel/ppc_save_regs.S +1 −0
  2103. arch/powerpc/kernel/process.c +1 −1
  2104. arch/powerpc/kernel/prom.c +2 −2
  2105. arch/powerpc/kernel/prom_parse.c +0 −38
  2106. arch/powerpc/kernel/ptrace.c +16 −6
  2107. arch/powerpc/kernel/ptrace32.c +7 −0
  2108. arch/powerpc/kernel/rtas.c +3 −0
  2109. arch/powerpc/kernel/rtas_flash.c +6 −47
  2110. arch/powerpc/kernel/rtasd.c +1 −1
  2111. arch/powerpc/kernel/setup_64.c +2 −2
  2112. arch/powerpc/kernel/smp.c +16 −3
  2113. arch/powerpc/kernel/time.c +21 −6
  2114. arch/powerpc/kernel/traps.c +1 −11
  2115. arch/powerpc/kernel/vector.S +1 −0
  2116. arch/powerpc/kernel/vio.c +12 −3
  2117. arch/powerpc/kvm/book3s.c +1 −3
  2118. arch/powerpc/kvm/powerpc.c +3 −17
  2119. arch/powerpc/lib/Makefile +1 −1
  2120. arch/powerpc/lib/feature-fixups-test.S +19 −0
  2121. arch/powerpc/lib/hweight_64.S +110 −0
  2122. arch/powerpc/mm/gup.c +12 −0
  2123. arch/powerpc/mm/hash_utils_64.c +1 −1
  2124. arch/powerpc/mm/mmu_context_nohash.c +6 −6
  2125. arch/powerpc/mm/numa.c +304 −14
  2126. arch/powerpc/mm/pgtable_32.c +2 −1
  2127. arch/powerpc/mm/pgtable_64.c +2 −0
  2128. arch/powerpc/oprofile/op_model_cell.c +1 −1
  2129. arch/powerpc/platforms/40x/ppc40x_simple.c +4 −9
  2130. arch/powerpc/platforms/44x/Makefile +4 −1
  2131. arch/powerpc/platforms/512x/mpc5121_generic.c +2 −11
  2132. arch/powerpc/platforms/52xx/lite5200.c +7 −9
  2133. arch/powerpc/platforms/52xx/lite5200_pm.c +1 −1
  2134. arch/powerpc/platforms/52xx/media5200.c +2 −11
  2135. arch/powerpc/platforms/52xx/mpc5200_simple.c +2 −11
  2136. arch/powerpc/platforms/52xx/mpc52xx_pm.c +1 −1
  2137. arch/powerpc/platforms/83xx/mpc830x_rdb.c +8 −5
  2138. arch/powerpc/platforms/83xx/mpc831x_rdb.c +7 −4
  2139. arch/powerpc/platforms/83xx/mpc837x_rdb.c +9 −6
  2140. arch/powerpc/platforms/83xx/mpc83xx.h +2 −0
  2141. arch/powerpc/platforms/83xx/suspend-asm.S +3 −3
  2142. arch/powerpc/platforms/83xx/suspend.c +1 −1
  2143. arch/powerpc/platforms/83xx/usb.c +16 −5
  2144. arch/powerpc/platforms/85xx/mpc85xx_mds.c +1 −1
  2145. arch/powerpc/platforms/85xx/tqm85xx.c +10 −10
  2146. arch/powerpc/platforms/Kconfig +4 −3
  2147. arch/powerpc/platforms/cell/beat_iommu.c +1 −2
  2148. arch/powerpc/platforms/cell/cpufreq_spudemand.c +3 −17
  2149. arch/powerpc/platforms/cell/qpace_setup.c +0 −5
  2150. arch/powerpc/platforms/cell/spu_base.c +70 −0
  2151. arch/powerpc/platforms/cell/spufs/file.c +7 −20
  2152. arch/powerpc/platforms/cell/spufs/inode.c +12 −6
  2153. arch/powerpc/platforms/cell/spufs/lscsa_alloc.c +1 −2
  2154. arch/powerpc/platforms/chrp/time.c +4 −0
  2155. arch/powerpc/platforms/embedded6xx/gamecube.c +0 −11
  2156. arch/powerpc/platforms/embedded6xx/wii.c +0 −11
  2157. arch/powerpc/platforms/iseries/Kconfig +1 −1
  2158. arch/powerpc/platforms/iseries/mf.c +0 −62
  2159. arch/powerpc/platforms/pasemi/iommu.c +1 −18
  2160. arch/powerpc/platforms/powermac/setup.c +9 −0
  2161. arch/powerpc/platforms/ps3/device-init.c +2 −2
  2162. arch/powerpc/platforms/ps3/interrupt.c +1 −1
  2163. arch/powerpc/platforms/pseries/Kconfig +13 −3
  2164. arch/powerpc/platforms/pseries/Makefile +1 −0
  2165. arch/powerpc/platforms/pseries/eeh_sysfs.c +0 −1
  2166. arch/powerpc/platforms/pseries/firmware.c +1 −0
  2167. arch/powerpc/platforms/pseries/hvCall.S +1 −0
  2168. arch/powerpc/platforms/pseries/hvCall_inst.c +1 −1
  2169. arch/powerpc/platforms/pseries/iommu.c +21 −28
  2170. arch/powerpc/platforms/pseries/kexec.c +0 −10
  2171. arch/powerpc/platforms/pseries/lpar.c +49 −0
  2172. arch/powerpc/platforms/pseries/nvram.c +205 −0
  2173. arch/powerpc/platforms/pseries/pseries_energy.c +326 −0
  2174. arch/powerpc/platforms/pseries/ras.c +69 −33
  2175. arch/powerpc/platforms/pseries/suspend.c +1 −1
  2176. arch/powerpc/sysdev/Makefile +1 −0
  2177. arch/powerpc/sysdev/dart_iommu.c +1 −8
  2178. arch/powerpc/sysdev/fsl_pmc.c +1 −1
  2179. arch/powerpc/sysdev/fsl_rio.c +0 −3
  2180. arch/powerpc/sysdev/mpc8xxx_gpio.c +67 −8
  2181. arch/powerpc/sysdev/mpic.c +4 −2
  2182. arch/powerpc/sysdev/mv64x60_dev.c +1 −0
  2183. arch/powerpc/sysdev/ppc4xx_cpm.c +346 −0
  2184. arch/powerpc/sysdev/tsi108_dev.c +5 −4
  2185. arch/s390/Kconfig +68 −63
  2186. arch/s390/Kconfig.debug +3 −3
  2187. arch/s390/boot/compressed/misc.c +3 −2
  2188. arch/s390/crypto/sha_common.c +1 −0
  2189. arch/s390/defconfig +67 −93
  2190. arch/s390/hypfs/Makefile +1 −1
  2191. arch/s390/hypfs/hypfs.h +31 −2
  2192. arch/s390/hypfs/hypfs_dbfs.c +116 −0
  2193. arch/s390/hypfs/hypfs_diag.c +20 −62
  2194. arch/s390/hypfs/hypfs_vm.c +20 −42
  2195. arch/s390/hypfs/inode.c +7 −11
  2196. arch/s390/include/asm/atomic.h +18 −8
  2197. arch/s390/include/asm/cache.h +1 −0
  2198. arch/s390/include/asm/cacheflush.h +1 −22
  2199. arch/s390/include/asm/ccwdev.h +2 −0
  2200. arch/s390/include/asm/compat.h +1 −1
  2201. arch/s390/include/asm/cputime.h +1 −1
  2202. arch/s390/include/asm/dasd.h +3 −0
  2203. arch/s390/include/asm/elf.h +8 −1
  2204. arch/s390/include/asm/ftrace.h +4 −7
  2205. arch/s390/include/asm/hardirq.h +0 −16
  2206. arch/s390/include/asm/irq.h +22 −12
  2207. arch/s390/include/asm/kprobes.h +2 −18
  2208. arch/s390/include/asm/mutex.h +2 −0
  2209. arch/s390/include/asm/processor.h +2 −7
  2210. arch/s390/include/asm/ptrace.h +51 −1
  2211. arch/s390/include/asm/qdio.h +1 −0
  2212. arch/s390/include/asm/qeth.h +41 −10
  2213. arch/s390/include/asm/s390_ext.h +7 −22
  2214. arch/s390/include/asm/smp.h +2 −1
  2215. arch/s390/include/asm/system.h +3 −3
  2216. arch/s390/include/asm/thread_info.h +12 −4
  2217. arch/s390/include/asm/timex.h +20 −0
  2218. arch/s390/include/asm/tlb.h +1 −0
  2219. arch/s390/kernel/asm-offsets.c +8 −6
  2220. arch/s390/kernel/compat_ptrace.h +16 −37
  2221. arch/s390/kernel/entry.S +137 −137
  2222. arch/s390/kernel/entry.h +1 −1
  2223. arch/s390/kernel/entry64.S +34 −39
  2224. arch/s390/kernel/ftrace.c +117 −121
  2225. arch/s390/kernel/irq.c +35 −6
  2226. arch/s390/kernel/kprobes.c +228 −242
  2227. arch/s390/kernel/mcount.S +9 −23
  2228. arch/s390/kernel/mcount64.S +9 −20
  2229. arch/s390/kernel/nmi.c +2 −1
  2230. arch/s390/kernel/process.c +49 −10
  2231. arch/s390/kernel/processor.c +4 −16
  2232. arch/s390/kernel/ptrace.c +187 −119
  2233. arch/s390/kernel/s390_ext.c +44 −81
  2234. arch/s390/kernel/signal.c +1 −1
  2235. arch/s390/kernel/smp.c +28 −19
  2236. arch/s390/kernel/time.c +5 −1
  2237. arch/s390/kernel/traps.c +7 −45
  2238. arch/s390/kernel/vdso.c +1 −3
  2239. arch/s390/kernel/vtime.c +4 −2
  2240. arch/s390/kvm/Kconfig +4 −3
  2241. arch/s390/kvm/kvm-s390.c +6 −17
  2242. arch/s390/lib/delay.c +0 −2
  2243. arch/s390/lib/uaccess_std.c +4 −6
  2244. arch/s390/mm/fault.c +20 −15
  2245. arch/s390/mm/mmap.c +31 −18
  2246. arch/s390/mm/pgtable.c +2 −1
  2247. arch/score/Kconfig +4 −6
  2248. arch/score/configs/spct6600_defconfig +1 −1
  2249. arch/sh/Kconfig +18 −12
  2250. arch/sh/Makefile +2 −1
  2251. arch/sh/boards/Kconfig +18 −0
  2252. arch/sh/boards/Makefile +2 −0
  2253. arch/sh/boards/board-apsh4a3a.c +175 −0
  2254. arch/sh/boards/board-apsh4ad0a.c +125 −0
  2255. arch/sh/boards/board-edosk7705.c +1 −1
  2256. arch/sh/boards/board-edosk7760.c +1 −1
  2257. arch/sh/boards/board-secureedge5410.c +0 −2
  2258. arch/sh/boards/board-sh7785lcr.c +1 −1
  2259. arch/sh/boards/mach-ap325rxa/setup.c +16 −0
  2260. arch/sh/boards/mach-cayman/setup.c +1 −1
  2261. arch/sh/boards/mach-ecovec24/setup.c +4 −0
  2262. arch/sh/boards/mach-highlander/setup.c +1 −1
  2263. arch/sh/boards/mach-hp6xx/pm.c +1 −1
  2264. arch/sh/boards/mach-kfr2r09/setup.c +2 −0
  2265. arch/sh/boards/mach-landisk/irq.c +35 −24
  2266. arch/sh/boards/mach-landisk/setup.c +1 −3
  2267. arch/sh/boards/mach-migor/setup.c +2 −0
  2268. arch/sh/boards/mach-r2d/setup.c +1 −1
  2269. arch/sh/boards/mach-rsk/devices-rsk7203.c +36 −1
  2270. arch/sh/boards/mach-sdk7786/Makefile +1 −1
  2271. arch/sh/boards/mach-sdk7786/nmi.c +83 −0
  2272. arch/sh/boards/mach-sdk7786/setup.c +3 −2
  2273. arch/sh/boards/mach-se/7206/setup.c +7 −1
  2274. arch/sh/boards/mach-se/7724/setup.c +8 −0
  2275. arch/sh/boards/mach-se/7751/setup.c +1 −1
  2276. arch/sh/boards/mach-se/board-se7619.c +6 −0
  2277. arch/sh/boards/mach-sh03/rtc.c +1 −1
  2278. arch/sh/boards/mach-sh03/setup.c +1 −1
  2279. arch/sh/boot/Makefile +9 −2
  2280. arch/sh/boot/compressed/Makefile +3 −1
  2281. arch/sh/boot/compressed/misc.c +4 −0
  2282. arch/sh/boot/romimage/mmcif-sh7724.c +3 −4
  2283. arch/sh/configs/apsh4a3a_defconfig +102 −0
  2284. arch/sh/configs/apsh4ad0a_defconfig +133 −0
  2285. arch/sh/configs/migor_defconfig +2 −0
  2286. arch/sh/configs/sh7757lcr_defconfig +1 −10
  2287. arch/sh/drivers/pci/fixups-landisk.c +26 −2
  2288. arch/sh/drivers/pci/pci.c +1 −2
  2289. arch/sh/drivers/push-switch.c +1 −1
  2290. arch/sh/include/asm/clkdev.h +17 −21
  2291. arch/sh/include/asm/io.h +146 −174
  2292. arch/sh/include/asm/io_generic.h +0 −25
  2293. arch/sh/include/asm/ioctls.h +1 −0
  2294. arch/sh/include/asm/machvec.h +1 −21
  2295. arch/sh/include/asm/pgtable.h +1 −0
  2296. arch/sh/include/asm/pgtable_32.h +7 −8
  2297. arch/sh/include/asm/processor.h +1 −1
  2298. arch/sh/include/asm/processor_32.h +4 −2
  2299. arch/sh/include/asm/ptrace.h +2 −2
  2300. arch/sh/include/asm/ptrace_32.h +1 −1
  2301. arch/sh/include/asm/ptrace_64.h +1 −1
  2302. arch/sh/include/asm/unaligned-sh4a.h +52 −112
  2303. arch/sh/include/mach-common/mach/romimage.h +1 −1
  2304. arch/sh/include/mach-ecovec24/mach/romimage.h +1 −1
  2305. arch/sh/include/mach-kfr2r09/mach/romimage.h +1 −1
  2306. arch/sh/include/mach-landisk/mach/iodata_landisk.h +4 −2
  2307. arch/sh/include/mach-sdk7786/mach/fpga.h +8 −0
  2308. arch/sh/kernel/Makefile +6 −2
  2309. arch/sh/kernel/clkdev.c +0 −171
  2310. arch/sh/kernel/cpu/Makefile +1 −1
  2311. arch/sh/kernel/cpu/clock-cpg.c +1 −1
  2312. arch/sh/kernel/cpu/clock.c +0 −16
  2313. arch/sh/kernel/cpu/proc.c +148 −0
  2314. arch/sh/kernel/cpu/sh2/clock-sh7619.c +12 −10
  2315. arch/sh/kernel/cpu/sh2/setup-sh7619.c +6 −0
  2316. arch/sh/kernel/cpu/sh2a/clock-sh7201.c +10 −10
  2317. arch/sh/kernel/cpu/sh2a/clock-sh7203.c +9 −12
  2318. arch/sh/kernel/cpu/sh2a/clock-sh7206.c +9 −11
  2319. arch/sh/kernel/cpu/sh2a/setup-mxg.c +2 −0
  2320. arch/sh/kernel/cpu/sh2a/setup-sh7201.c +16 −0
  2321. arch/sh/kernel/cpu/sh2a/setup-sh7203.c +8 −0
  2322. arch/sh/kernel/cpu/sh2a/setup-sh7206.c +8 −0
  2323. arch/sh/kernel/cpu/sh3/setup-sh7705.c +5 −0
  2324. arch/sh/kernel/cpu/sh3/setup-sh770x.c +6 −0
  2325. arch/sh/kernel/cpu/sh3/setup-sh7710.c +6 −0
  2326. arch/sh/kernel/cpu/sh3/setup-sh7720.c +5 −1
  2327. arch/sh/kernel/cpu/sh4/clock-sh4-202.c +1 −1
  2328. arch/sh/kernel/cpu/sh4/perf_event.c +1 −1
  2329. arch/sh/kernel/cpu/sh4/probe.c +6 −0
  2330. arch/sh/kernel/cpu/sh4/setup-sh4-202.c +2 −0
  2331. arch/sh/kernel/cpu/sh4/setup-sh7750.c +26 −10
  2332. arch/sh/kernel/cpu/sh4/setup-sh7760.c +8 −0
  2333. arch/sh/kernel/cpu/sh4a/clock-sh7343.c +1 −1
  2334. arch/sh/kernel/cpu/sh4a/clock-sh7366.c +1 −1
  2335. arch/sh/kernel/cpu/sh4a/clock-sh7722.c +1 −1
  2336. arch/sh/kernel/cpu/sh4a/clock-sh7723.c +1 −1
  2337. arch/sh/kernel/cpu/sh4a/clock-sh7724.c +1 −1
  2338. arch/sh/kernel/cpu/sh4a/clock-sh7757.c +1 −1
  2339. arch/sh/kernel/cpu/sh4a/clock-sh7763.c +1 −1
  2340. arch/sh/kernel/cpu/sh4a/clock-sh7780.c +1 −1
  2341. arch/sh/kernel/cpu/sh4a/clock-sh7785.c +1 −1
  2342. arch/sh/kernel/cpu/sh4a/clock-sh7786.c +1 −1
  2343. arch/sh/kernel/cpu/sh4a/clock-shx3.c +1 −1
  2344. arch/sh/kernel/cpu/sh4a/perf_event.c +1 −1
  2345. arch/sh/kernel/cpu/sh4a/setup-sh7343.c +22 −11
  2346. arch/sh/kernel/cpu/sh4a/setup-sh7366.c +16 −10
  2347. arch/sh/kernel/cpu/sh4a/setup-sh7722.c +7 −1
  2348. arch/sh/kernel/cpu/sh4a/setup-sh7723.c +14 −2
  2349. arch/sh/kernel/cpu/sh4a/setup-sh7724.c +14 −2
  2350. arch/sh/kernel/cpu/sh4a/setup-sh7757.c +6 −0
  2351. arch/sh/kernel/cpu/sh4a/setup-sh7763.c +6 −0
  2352. arch/sh/kernel/cpu/sh4a/setup-sh7770.c +20 −0
  2353. arch/sh/kernel/cpu/sh4a/setup-sh7780.c +12 −0
  2354. arch/sh/kernel/cpu/sh4a/setup-sh7785.c +12 −0
  2355. arch/sh/kernel/cpu/sh4a/setup-sh7786.c +43 −4
  2356. arch/sh/kernel/cpu/sh4a/setup-shx3.c +6 −0
  2357. arch/sh/kernel/cpu/sh5/setup-sh5.c +2 −0
  2358. arch/sh/kernel/cpu/shmobile/cpuidle.c +0 −1
  2359. arch/sh/kernel/cpu/shmobile/pm.c +1 −1
  2360. arch/sh/kernel/io_generic.c +0 −180
  2361. arch/sh/kernel/iomap.c +165 −0
  2362. arch/sh/kernel/ioport.c +43 −0
  2363. arch/sh/kernel/machvec.c +0 −22
  2364. arch/sh/kernel/perf_event.c +1 −1
  2365. arch/sh/kernel/setup.c +0 −144
  2366. arch/sh/kernel/topology.c +1 −0
  2367. arch/sh/mm/cache-sh5.c +1 −1
  2368. arch/sh/mm/hugetlbpage.c +1 −1
  2369. arch/sh/mm/init.c +8 −2
  2370. arch/sh/tools/mach-types +3 −0
  2371. arch/sparc/Kconfig +1 −8
  2372. arch/sparc/boot/Makefile +9 −19
  2373. arch/sparc/boot/piggyback.c +272 −0
  2374. arch/sparc/boot/piggyback_32.c +0 −137
  2375. arch/sparc/boot/piggyback_64.c +0 −110
  2376. arch/sparc/include/asm/ioctls.h +1 −0
  2377. arch/sparc/include/asm/leon.h +12 −0
  2378. arch/sparc/include/asm/leon_amba.h +3 −3
  2379. arch/sparc/include/asm/oplib_32.h +5 −43
  2380. arch/sparc/include/asm/oplib_64.h +2 −2
  2381. arch/sparc/include/asm/pcr.h +2 −0
  2382. arch/sparc/include/asm/perf_event.h +0 −4
  2383. arch/sparc/kernel/auxio_32.c +1 −1
  2384. arch/sparc/kernel/cpu.c +1 −1
  2385. arch/sparc/kernel/head_32.S +1 −2
  2386. arch/sparc/kernel/iommu.c +2 −3
  2387. arch/sparc/kernel/leon_kernel.c +97 −17
  2388. arch/sparc/kernel/module.c +4 −10
  2389. arch/sparc/kernel/nmi.c +0 −2
  2390. arch/sparc/kernel/pcr.c +0 −2
  2391. arch/sparc/kernel/perf_event.c +6 −3
  2392. arch/sparc/kernel/prom_32.c +19 −8
  2393. arch/sparc/kernel/setup_32.c +1 −2
  2394. arch/sparc/kernel/smp_64.c +2 −0
  2395. arch/sparc/kernel/starfire.c +1 −1
  2396. arch/sparc/kernel/traps_64.c +1 −1
  2397. arch/sparc/kernel/una_asm_32.S +2 −2
  2398. arch/sparc/lib/bitext.c +2 −3
  2399. arch/sparc/mm/generic_32.c +1 −1
  2400. arch/sparc/mm/generic_64.c +1 −1
  2401. arch/sparc/mm/hugetlbpage.c +1 −1
  2402. arch/sparc/mm/sun4c.c +3 −5
  2403. arch/sparc/prom/Makefile +0 −2
  2404. arch/sparc/prom/bootstr_32.c +2 −1
  2405. arch/sparc/prom/console_32.c +4 −3
  2406. arch/sparc/prom/console_64.c +0 −2
  2407. arch/sparc/prom/devmap.c +0 −53
  2408. arch/sparc/prom/init_32.c +1 −1
  2409. arch/sparc/prom/init_64.c +3 −4
  2410. arch/sparc/prom/misc_32.c +1 −1
  2411. arch/sparc/prom/mp.c +0 −78
  2412. arch/sparc/prom/palloc.c +0 −43
  2413. arch/sparc/prom/ranges.c +3 −3
  2414. arch/sparc/prom/tree_32.c +16 −51
  2415. arch/sparc/prom/tree_64.c +9 −9
  2416. arch/tile/Kconfig +22 −33
  2417. arch/tile/Kconfig.debug +1 −1
  2418. arch/tile/configs/tile_defconfig +1 −1
  2419. arch/um/Kconfig.common +1 −5
  2420. arch/um/Kconfig.um +1 −4
  2421. arch/um/defconfig +1 −1
  2422. arch/um/drivers/line.c +2 −2
  2423. arch/um/drivers/mmapper_kern.c +2 −7
  2424. arch/um/kernel/skas/mmu.c +1 −1
  2425. arch/x86/Kconfig +62 −22
  2426. arch/x86/Kconfig.cpu +4 −1
  2427. arch/x86/Kconfig.debug +13 −2
  2428. arch/x86/boot/compressed/Makefile +4 −1
  2429. arch/x86/boot/compressed/head_64.S +1 −1
  2430. arch/x86/boot/compressed/misc.c +4 −0
  2431. arch/x86/boot/compressed/mkpiggy.c +1 −1
  2432. arch/x86/crypto/aesni-intel_asm.S +1802 −30
  2433. arch/x86/crypto/aesni-intel_glue.c +533 −7
  2434. arch/x86/include/asm/acpi.h +5 −6
  2435. arch/x86/include/asm/alternative.h +8 −0
  2436. arch/x86/include/asm/amd_nb.h +44 −16
  2437. arch/x86/include/asm/apic.h +3 −1
  2438. arch/x86/include/asm/apicdef.h +1 −0
  2439. arch/x86/include/asm/boot.h +1 −5
  2440. arch/x86/include/asm/bootparam.h +1 −0
  2441. arch/x86/include/asm/cacheflush.h +1 −41
  2442. arch/x86/include/asm/cpu.h +1 −0
  2443. arch/x86/include/asm/debugreg.h +1 −1
  2444. arch/x86/include/asm/fixmap.h +4 −0
  2445. arch/x86/include/asm/gpio.h +1 −4
  2446. arch/x86/include/asm/hypervisor.h +12 −0
  2447. arch/x86/include/asm/i387.h +24 −0
  2448. arch/x86/include/asm/io_apic.h +5 −4
  2449. arch/x86/include/asm/irq.h +3 −4
  2450. arch/x86/include/asm/jump_label.h +1 −1
  2451. arch/x86/include/asm/kdebug.h +1 −2
  2452. arch/x86/include/asm/kvm_emulate.h +24 −11
  2453. arch/x86/include/asm/kvm_host.h +73 −27
  2454. arch/x86/include/asm/kvm_para.h +24 −0
  2455. arch/x86/include/asm/mach_traps.h +11 −1
  2456. arch/x86/include/asm/mce.h +3 −0
  2457. arch/x86/include/asm/microcode.h +6 −0
  2458. arch/x86/include/asm/mmu_context.h +3 −2
  2459. arch/x86/include/asm/mpspec.h +12 −19
  2460. arch/x86/include/asm/mpspec_def.h +0 −7
  2461. arch/x86/include/asm/mrst-vrtc.h +9 −0
  2462. arch/x86/include/asm/mrst.h +13 −1
  2463. arch/x86/include/asm/msr-index.h +16 −0
  2464. arch/x86/include/asm/nmi.h +20 −51
  2465. arch/x86/include/asm/numa_32.h +2 −0
  2466. arch/x86/include/asm/numa_64.h +2 −1
  2467. arch/x86/include/asm/olpc.h +7 −3
  2468. arch/x86/include/asm/olpc_ofw.h +9 −0
  2469. arch/x86/include/asm/paravirt.h +25 −1
  2470. arch/x86/include/asm/paravirt_types.h +6 −0
  2471. arch/x86/include/asm/pci.h +1 −0
  2472. arch/x86/include/asm/percpu.h +157 −1
  2473. arch/x86/include/asm/perf_event.h +0 −2
  2474. arch/x86/include/asm/perf_event_p4.h +58 −8
  2475. arch/x86/include/asm/pgalloc.h +1 −1
  2476. arch/x86/include/asm/pgtable-2level.h +9 −0
  2477. arch/x86/include/asm/pgtable-3level.h +23 −0
  2478. arch/x86/include/asm/pgtable.h +142 −1
  2479. arch/x86/include/asm/pgtable_64.h +21 −7
  2480. arch/x86/include/asm/pgtable_types.h +3 −0
  2481. arch/x86/include/asm/processor.h +5 −5
  2482. arch/x86/include/asm/prom.h +1 −0
  2483. arch/x86/include/asm/setup.h +6 −0
  2484. arch/x86/include/asm/smp.h +1 −4
  2485. arch/x86/include/asm/smpboot_hooks.h +0 −1
  2486. arch/x86/include/asm/stacktrace.h +30 −3
  2487. arch/x86/include/asm/svm.h +38 −19
  2488. arch/x86/include/asm/system_64.h +0 −22
  2489. arch/x86/include/asm/timer.h +0 −6
  2490. arch/x86/include/asm/traps.h +1 −0
  2491. arch/x86/include/asm/uv/uv_bau.h +5 −4
  2492. arch/x86/include/asm/vmx.h +15 −0
  2493. arch/x86/include/asm/xen/hypervisor.h +35 −0
  2494. arch/x86/include/asm/xen/page.h +13 −3
  2495. arch/x86/kernel/Makefile +0 −1
  2496. arch/x86/kernel/acpi/boot.c +14 −46
  2497. arch/x86/kernel/acpi/sleep.c +11 −4
  2498. arch/x86/kernel/alternative.c +42 −10
  2499. arch/x86/kernel/amd_iommu.c +2 −2
  2500. arch/x86/kernel/amd_nb.c +87 −55
  2501. arch/x86/kernel/apb_timer.c +8 −5
  2502. arch/x86/kernel/aperture_64.c +21 −33
  2503. arch/x86/kernel/apic/Makefile +1 −4
  2504. arch/x86/kernel/apic/apic.c +102 −99
  2505. arch/x86/kernel/apic/hw_nmi.c +19 −20
  2506. arch/x86/kernel/apic/io_apic.c +53 −65
  2507. arch/x86/kernel/apic/nmi.c +0 −567
  2508. arch/x86/kernel/apic/x2apic_uv_x.c +38 −31
  2509. arch/x86/kernel/cpu/amd.c +1 −1
  2510. arch/x86/kernel/cpu/common.c +0 −1
  2511. arch/x86/kernel/cpu/cpufreq/powernow-k8.c +2 −2
  2512. arch/x86/kernel/cpu/intel_cacheinfo.c +68 −86
  2513. arch/x86/kernel/cpu/mcheck/mce-inject.c +3 −2
  2514. arch/x86/kernel/cpu/mcheck/mce.c +10 −10
  2515. arch/x86/kernel/cpu/mcheck/mce_amd.c +77 −58
  2516. arch/x86/kernel/cpu/mcheck/mce_intel.c +1 −1
  2517. arch/x86/kernel/cpu/mcheck/therm_throt.c +41 −0
  2518. arch/x86/kernel/cpu/mtrr/main.c +9 −1
  2519. arch/x86/kernel/cpu/perf_event.c +64 −40
  2520. arch/x86/kernel/cpu/perf_event_amd.c +3 −13
  2521. arch/x86/kernel/cpu/perf_event_intel.c +28 −2
  2522. arch/x86/kernel/cpu/perf_event_p4.c +25 −15
  2523. arch/x86/kernel/cpu/perfctr-watchdog.c +1 −643
  2524. arch/x86/kernel/dumpstack.c +7 −12
  2525. arch/x86/kernel/dumpstack_32.c +7 −18
  2526. arch/x86/kernel/dumpstack_64.c +8 −18
  2527. arch/x86/kernel/e820.c +1 −0
  2528. arch/x86/kernel/early_printk.c +1 −2
  2529. arch/x86/kernel/entry_32.S +10 −0
  2530. arch/x86/kernel/entry_64.S +26 −13
  2531. arch/x86/kernel/ftrace.c +6 −3
  2532. arch/x86/kernel/head32.c +3 −0
  2533. arch/x86/kernel/head_32.S +59 −56
  2534. arch/x86/kernel/hw_breakpoint.c +6 −6
  2535. arch/x86/kernel/i387.c +1 −0
  2536. arch/x86/kernel/irq.c +15 −4
  2537. arch/x86/kernel/irq_32.c +4 −7
  2538. arch/x86/kernel/kgdb.c +2 −5
  2539. arch/x86/kernel/kprobes.c +112 −15
  2540. arch/x86/kernel/kvm.c +317 −0
  2541. arch/x86/kernel/kvmclock.c +1 −12
  2542. arch/x86/kernel/microcode_amd.c +10 −24
  2543. arch/x86/kernel/module.c +4 −13
  2544. arch/x86/kernel/mpparse.c +11 −103
  2545. arch/x86/kernel/paravirt.c +3 −0
  2546. arch/x86/kernel/pci-gart_64.c +17 −17
  2547. arch/x86/kernel/process.c +38 −29
  2548. arch/x86/kernel/process_32.c +0 −4
  2549. arch/x86/kernel/process_64.c +0 −4
  2550. arch/x86/kernel/reboot.c +4 −1
  2551. arch/x86/kernel/reboot_fixups_32.c +16 −0
  2552. arch/x86/kernel/rtc.c +1 −1
  2553. arch/x86/kernel/setup.c +5 −8
  2554. arch/x86/kernel/smpboot.c +35 −28
  2555. arch/x86/kernel/stacktrace.c +4 −4
  2556. arch/x86/kernel/tboot.c +1 −1
  2557. arch/x86/kernel/time.c +0 −18
  2558. arch/x86/kernel/trampoline_64.S +1 −1
  2559. arch/x86/kernel/traps.c +64 −67
  2560. arch/x86/kernel/tsc.c +93 −7
  2561. arch/x86/kernel/verify_cpu.S +41 −8
  2562. arch/x86/kernel/vm86_32.c +1 −0
  2563. arch/x86/kernel/vmlinux.lds.S +6 −2
  2564. arch/x86/kvm/Kconfig +1 −0
  2565. arch/x86/kvm/Makefile +2 −1
  2566. arch/x86/kvm/emulate.c +154 −213
  2567. arch/x86/kvm/kvm_cache_regs.h +22 −0
  2568. arch/x86/kvm/lapic.c +2 −1
  2569. arch/x86/kvm/mmu.c +270 −106
  2570. arch/x86/kvm/mmu_audit.c +22 −17
  2571. arch/x86/kvm/paging_tmpl.h +93 −63
  2572. arch/x86/kvm/svm.c +558 −307
  2573. arch/x86/kvm/trace.h +13 −4
  2574. arch/x86/kvm/vmx.c +115 −41
  2575. arch/x86/kvm/x86.c +355 −127
  2576. arch/x86/lguest/Kconfig +1 −0
  2577. arch/x86/lguest/boot.c +1 −1
  2578. arch/x86/lguest/i386_head.S +0 −105
  2579. arch/x86/lib/delay.c +1 −1
  2580. arch/x86/mm/Makefile +1 −1
  2581. arch/x86/mm/amdtopology_64.c +77 −20
  2582. arch/x86/mm/gup.c +27 −1
  2583. arch/x86/mm/init.c +2 −1
  2584. arch/x86/mm/init_32.c +21 −1
  2585. arch/x86/mm/kmemcheck/error.c +1 −1
  2586. arch/x86/mm/numa.c +22 −0
  2587. arch/x86/mm/numa_64.c +138 −61
  2588. arch/x86/mm/pageattr.c +14 −11
  2589. arch/x86/mm/pgtable.c +66 −0
  2590. arch/x86/mm/setup_nx.c +1 −1
  2591. arch/x86/mm/srat_32.c +1 −1
  2592. arch/x86/mm/srat_64.c +28 −8
  2593. arch/x86/oprofile/backtrace.c +1 −1
  2594. arch/x86/oprofile/nmi_int.c +5 −3
  2595. arch/x86/oprofile/nmi_timer_int.c +1 −4
  2596. arch/x86/oprofile/op_model_amd.c +37 −18
  2597. arch/x86/oprofile/op_model_p4.c +1 −1
  2598. arch/x86/oprofile/op_model_ppro.c +4 −4
  2599. arch/x86/pci/Makefile +1 −0
  2600. arch/x86/pci/amd_bus.c +33 −0
  2601. arch/x86/pci/broadcom_bus.c +7 −4
  2602. arch/x86/pci/ce4100.c +315 −0
  2603. arch/x86/pci/common.c +41 −0
  2604. arch/x86/pci/irq.c +2 −1
  2605. arch/x86/pci/pcbios.c +23 −0
  2606. arch/x86/platform/Makefile +2 −0
  2607. arch/x86/platform/ce4100/Makefile +1 −0
  2608. arch/x86/platform/ce4100/ce4100.c +132 −0
  2609. arch/x86/platform/iris/Makefile +1 −0
  2610. arch/x86/platform/iris/iris.c +91 −0
  2611. arch/x86/platform/mrst/Makefile +2 −0
  2612. arch/x86/platform/mrst/early_printk_mrst.c +1 −1
  2613. arch/x86/platform/mrst/mrst.c +537 −39
  2614. arch/x86/platform/mrst/vrtc.c +165 −0
  2615. arch/x86/platform/olpc/Makefile +1 −0
  2616. arch/x86/platform/olpc/olpc-xo1.c +55 −46
  2617. arch/x86/platform/olpc/olpc_dt.c +183 −0
  2618. arch/x86/platform/olpc/olpc_ofw.c +5 −0
  2619. arch/x86/platform/sfi/sfi.c +3 −14
  2620. arch/x86/platform/uv/tlb_uv.c +18 −4
  2621. arch/x86/platform/visws/visws_quirks.c +1 −1
  2622. arch/x86/xen/Makefile +2 −1
  2623. arch/x86/xen/enlighten.c +24 −22
  2624. arch/x86/xen/irq.c +1 −1
  2625. arch/x86/xen/mmu.c +1 −365
  2626. arch/x86/xen/multicalls.h +1 −1
  2627. arch/x86/xen/p2m.c +522 −0
  2628. arch/x86/xen/setup.c +7 −1
  2629. arch/x86/xen/spinlock.c +4 −4
  2630. arch/x86/xen/time.c +4 −4
  2631. arch/xtensa/configs/common_defconfig +1 −1
  2632. arch/xtensa/configs/iss_defconfig +1 −1
  2633. arch/xtensa/configs/s6105_defconfig +1 −1
  2634. arch/xtensa/include/asm/ioctls.h +1 −0
  2635. arch/xtensa/include/asm/mman.h +3 −0
  2636. block/Kconfig +1 −1
  2637. block/blk-cgroup.c +0 −4
  2638. block/blk-core.c +29 −11
  2639. block/blk-ioc.c +2 −3
  2640. block/blk-merge.c +2 −1
  2641. block/blk-throttle.c +9 −1
  2642. block/cfq-iosched.c +84 −56
  2643. block/genhd.c +520 −30
  2644. block/ioctl.c +3 −2
  2645. crypto/Kconfig +28 −6
  2646. crypto/Makefile +10 −7
  2647. crypto/af_alg.c +483 −0
  2648. crypto/algif_hash.c +319 −0
  2649. crypto/algif_skcipher.c +632 −0
  2650. crypto/authenc.c +4 −18
  2651. crypto/cast5.c +24 −50
  2652. crypto/crypto_wq.c +2 −1
  2653. crypto/deflate.c +1 −2
  2654. crypto/eseqiv.c +2 −16
  2655. crypto/gcm.c +2 −17
  2656. crypto/pcrypt.c +2 −1
  2657. crypto/rmd128.c +2 −1
  2658. crypto/rmd160.c +2 −1
  2659. crypto/rmd256.c +2 −1
  2660. crypto/rmd320.c +2 −1
  2661. crypto/shash.c +7 −1
  2662. crypto/tcrypt.c +11 −0
  2663. crypto/testmgr.c +24 −0
  2664. crypto/testmgr.h +361 −0
  2665. crypto/zlib.c +1 −2
  2666. drivers/Kconfig +6 −0
  2667. drivers/Makefile +5 −3
  2668. drivers/acpi/Kconfig +14 −6
  2669. drivers/acpi/Makefile +2 −1
  2670. drivers/acpi/ac.c +2 −1
  2671. drivers/acpi/acpi_ipmi.c +525 −0
  2672. drivers/acpi/acpica/Makefile +1 −1
  2673. drivers/acpi/acpica/accommon.h +1 −1
  2674. drivers/acpi/acpica/acconfig.h +1 −1
  2675. drivers/acpi/acpica/acdebug.h +1 −1
  2676. drivers/acpi/acpica/acdispat.h +1 −1
  2677. drivers/acpi/acpica/acevents.h +12 −11
  2678. drivers/acpi/acpica/acglobal.h +9 −2
  2679. drivers/acpi/acpica/achware.h +2 −2
  2680. drivers/acpi/acpica/acinterp.h +1 −1
  2681. drivers/acpi/acpica/aclocal.h +8 −7
  2682. drivers/acpi/acpica/acmacros.h +1 −1
  2683. drivers/acpi/acpica/acnamesp.h +1 −1
  2684. drivers/acpi/acpica/acobject.h +12 −6
  2685. drivers/acpi/acpica/acopcode.h +1 −1
  2686. drivers/acpi/acpica/acparser.h +1 −1
  2687. drivers/acpi/acpica/acpredef.h +1 −1
  2688. drivers/acpi/acpica/acresrc.h +1 −1
  2689. drivers/acpi/acpica/acstruct.h +1 −1
  2690. drivers/acpi/acpica/actables.h +1 −1
  2691. drivers/acpi/acpica/acutils.h +1 −1
  2692. drivers/acpi/acpica/amlcode.h +2 −8
  2693. drivers/acpi/acpica/amlresrc.h +1 −1
  2694. drivers/acpi/acpica/dsfield.c +1 −1
  2695. drivers/acpi/acpica/dsinit.c +1 −1
  2696. drivers/acpi/acpica/dsmethod.c +48 −16
  2697. drivers/acpi/acpica/dsmthdat.c +1 −1
  2698. drivers/acpi/acpica/dsobject.c +1 −1
  2699. drivers/acpi/acpica/dsopcode.c +1 −1
  2700. drivers/acpi/acpica/dsutils.c +1 −1
  2701. drivers/acpi/acpica/dswexec.c +1 −1
  2702. drivers/acpi/acpica/dswload.c +1 −1
  2703. drivers/acpi/acpica/dswscope.c +1 −1
  2704. drivers/acpi/acpica/dswstate.c +1 −1
  2705. drivers/acpi/acpica/evevent.c +11 −3
  2706. drivers/acpi/acpica/evgpe.c +177 −92
  2707. drivers/acpi/acpica/evgpeblk.c +19 −16
  2708. drivers/acpi/acpica/evgpeinit.c +22 −5
  2709. drivers/acpi/acpica/evgpeutil.c +40 −1
  2710. drivers/acpi/acpica/evmisc.c +54 −40
  2711. drivers/acpi/acpica/evregion.c +1 −1
  2712. drivers/acpi/acpica/evrgnini.c +3 −3
  2713. drivers/acpi/acpica/evsci.c +1 −1
  2714. drivers/acpi/acpica/evxface.c +65 −14
  2715. drivers/acpi/acpica/evxfevnt.c +1 −601
  2716. drivers/acpi/acpica/evxfgpe.c +672 −0
  2717. drivers/acpi/acpica/evxfregn.c +1 −1
  2718. drivers/acpi/acpica/exconfig.c +1 −1
  2719. drivers/acpi/acpica/exconvrt.c +1 −1
  2720. drivers/acpi/acpica/excreate.c +5 −5
  2721. drivers/acpi/acpica/exdebug.c +1 −1
  2722. drivers/acpi/acpica/exdump.c +2 −2
  2723. drivers/acpi/acpica/exfield.c +1 −1
  2724. drivers/acpi/acpica/exfldio.c +1 −1
  2725. drivers/acpi/acpica/exmisc.c +1 −1
  2726. drivers/acpi/acpica/exmutex.c +1 −1
  2727. drivers/acpi/acpica/exnames.c +1 −1
  2728. drivers/acpi/acpica/exoparg1.c +1 −1
  2729. drivers/acpi/acpica/exoparg2.c +1 −1
  2730. drivers/acpi/acpica/exoparg3.c +1 −1
  2731. drivers/acpi/acpica/exoparg6.c +1 −1
  2732. drivers/acpi/acpica/exprep.c +1 −1
  2733. drivers/acpi/acpica/exregion.c +1 −1
  2734. drivers/acpi/acpica/exresnte.c +1 −1
  2735. drivers/acpi/acpica/exresolv.c +1 −1
  2736. drivers/acpi/acpica/exresop.c +1 −1
  2737. drivers/acpi/acpica/exstore.c +1 −1
  2738. drivers/acpi/acpica/exstoren.c +1 −1
  2739. drivers/acpi/acpica/exstorob.c +1 −1
  2740. drivers/acpi/acpica/exsystem.c +1 −1
  2741. drivers/acpi/acpica/exutils.c +1 −1
  2742. drivers/acpi/acpica/hwacpi.c +1 −1
  2743. drivers/acpi/acpica/hwgpe.c +20 −14
  2744. drivers/acpi/acpica/hwpci.c +1 −1
  2745. drivers/acpi/acpica/hwregs.c +1 −1
  2746. drivers/acpi/acpica/hwsleep.c +1 −1
  2747. drivers/acpi/acpica/hwtimer.c +1 −1
  2748. drivers/acpi/acpica/hwvalid.c +1 −1
  2749. drivers/acpi/acpica/hwxface.c +1 −1
  2750. drivers/acpi/acpica/nsaccess.c +4 −4
  2751. drivers/acpi/acpica/nsalloc.c +12 −3
  2752. drivers/acpi/acpica/nsdump.c +16 −1
  2753. drivers/acpi/acpica/nsdumpdv.c +1 −1
  2754. drivers/acpi/acpica/nseval.c +2 −2
  2755. drivers/acpi/acpica/nsinit.c +1 −3
  2756. drivers/acpi/acpica/nsload.c +1 −1
  2757. drivers/acpi/acpica/nsnames.c +1 −1
  2758. drivers/acpi/acpica/nsobject.c +1 −1
  2759. drivers/acpi/acpica/nsparse.c +1 −1
  2760. drivers/acpi/acpica/nspredef.c +1 −1
  2761. drivers/acpi/acpica/nsrepair.c +1 −1
  2762. drivers/acpi/acpica/nsrepair2.c +1 −1
  2763. drivers/acpi/acpica/nssearch.c +1 −1
  2764. drivers/acpi/acpica/nsutils.c +1 −1
  2765. drivers/acpi/acpica/nswalk.c +1 −1
  2766. drivers/acpi/acpica/nsxfeval.c +1 −1
  2767. drivers/acpi/acpica/nsxfname.c +3 −4
  2768. drivers/acpi/acpica/nsxfobj.c +1 −1
  2769. drivers/acpi/acpica/psargs.c +1 −1
  2770. drivers/acpi/acpica/psloop.c +2 −2
  2771. drivers/acpi/acpica/psopcode.c +1 −1
  2772. drivers/acpi/acpica/psparse.c +9 −18
  2773. drivers/acpi/acpica/psscope.c +1 −1
  2774. drivers/acpi/acpica/pstree.c +1 −1
  2775. drivers/acpi/acpica/psutils.c +1 −1
  2776. drivers/acpi/acpica/pswalk.c +1 −1
  2777. drivers/acpi/acpica/psxface.c +4 −5
  2778. drivers/acpi/acpica/rsaddr.c +1 −1
  2779. drivers/acpi/acpica/rscalc.c +1 −1
  2780. drivers/acpi/acpica/rscreate.c +1 −1
  2781. drivers/acpi/acpica/rsdump.c +1 −1
  2782. drivers/acpi/acpica/rsinfo.c +1 −1
  2783. drivers/acpi/acpica/rsio.c +1 −1
  2784. drivers/acpi/acpica/rsirq.c +1 −1
  2785. drivers/acpi/acpica/rslist.c +1 −1
  2786. drivers/acpi/acpica/rsmemory.c +1 −1
  2787. drivers/acpi/acpica/rsmisc.c +1 −1
  2788. drivers/acpi/acpica/rsutils.c +1 −1
  2789. drivers/acpi/acpica/rsxface.c +1 −1
  2790. drivers/acpi/acpica/tbfadt.c +1 −1
  2791. drivers/acpi/acpica/tbfind.c +1 −1
  2792. drivers/acpi/acpica/tbinstal.c +1 −1
  2793. drivers/acpi/acpica/tbutils.c +1 −1
  2794. drivers/acpi/acpica/tbxface.c +1 −1
  2795. drivers/acpi/acpica/tbxfroot.c +1 −1
  2796. drivers/acpi/acpica/utalloc.c +1 −1
  2797. drivers/acpi/acpica/utcopy.c +1 −1
  2798. drivers/acpi/acpica/utdebug.c +1 −1
  2799. drivers/acpi/acpica/utdelete.c +1 −1
  2800. drivers/acpi/acpica/uteval.c +1 −1
  2801. drivers/acpi/acpica/utglobal.c +3 −2
  2802. drivers/acpi/acpica/utids.c +1 −1
  2803. drivers/acpi/acpica/utinit.c +1 −1
  2804. drivers/acpi/acpica/utlock.c +1 −1
  2805. drivers/acpi/acpica/utmath.c +1 −1
  2806. drivers/acpi/acpica/utmisc.c +1 −1
  2807. drivers/acpi/acpica/utmutex.c +2 −1
  2808. drivers/acpi/acpica/utobject.c +1 −1
  2809. drivers/acpi/acpica/utosi.c +1 −1
  2810. drivers/acpi/acpica/utresrc.c +1 −1
  2811. drivers/acpi/acpica/utstate.c +1 −1
  2812. drivers/acpi/acpica/utxface.c +1 −1
  2813. drivers/acpi/acpica/utxferror.c +1 −1
  2814. drivers/acpi/apei/apei-internal.h +2 −0
  2815. drivers/acpi/apei/cper.c +311 −0
  2816. drivers/acpi/apei/einj.c +1 −1
  2817. drivers/acpi/apei/erst.c +1 −1
  2818. drivers/acpi/apei/ghes.c +343 −88
  2819. drivers/acpi/apei/hest.c +11 −15
  2820. drivers/acpi/battery.c +15 −0
  2821. drivers/acpi/bus.c +81 −72
  2822. drivers/acpi/button.c +7 −2
  2823. drivers/acpi/dock.c +1 −1
  2824. drivers/acpi/ec.c +3 −2
  2825. drivers/acpi/fan.c +7 −20
  2826. drivers/acpi/glue.c +1 −4
  2827. drivers/acpi/internal.h +11 −2
  2828. drivers/acpi/numa.c +8 −2
  2829. drivers/acpi/nvs.c +14 −5
  2830. drivers/acpi/osl.c +32 −16
  2831. drivers/acpi/pci_root.c +35 −0
  2832. drivers/acpi/power.c +72 −56
  2833. drivers/acpi/proc.c +12 −29
  2834. drivers/acpi/processor_core.c +2 −2
  2835. drivers/acpi/processor_driver.c +6 −74
  2836. drivers/acpi/processor_idle.c +14 −20
  2837. drivers/acpi/processor_throttling.c +73 −117
  2838. drivers/acpi/sbs.c +2 −0
  2839. drivers/acpi/scan.c +43 −27
  2840. drivers/acpi/sleep.c +15 −8
  2841. drivers/acpi/sysfs.c +17 −2
  2842. drivers/acpi/thermal.c +3 −2
  2843. drivers/acpi/video.c +16 −90
  2844. drivers/acpi/video_detect.c +4 −48
  2845. drivers/acpi/wakeup.c +16 −10
  2846. drivers/amba/bus.c +39 −0
  2847. drivers/ata/Kconfig +19 −11
  2848. drivers/ata/Makefile +1 −0
  2849. drivers/ata/acard-ahci.c +528 −0
  2850. drivers/ata/ahci.c +3 −0
  2851. drivers/ata/ahci.h +3 −0
  2852. drivers/ata/libahci.c +5 −6
  2853. drivers/ata/libata-core.c +4 −3
  2854. drivers/ata/libata-scsi.c +43 −41
  2855. drivers/ata/libata-sff.c +1 −1
  2856. drivers/ata/pata_hpt366.c +31 −24
  2857. drivers/ata/pata_hpt37x.c +154 −104
  2858. drivers/ata/pata_hpt3x2n.c +103 −51
  2859. drivers/ata/pata_mpc52xx.c +1 −1
  2860. drivers/ata/sata_vsc.c +1 −1
  2861. drivers/atm/ambassador.c +12 −7
  2862. drivers/atm/fore200e.c +1 −1
  2863. drivers/atm/idt77105.c +1 −1
  2864. drivers/atm/idt77252.h +1 −1
  2865. drivers/atm/iphase.c +2 −2
  2866. drivers/atm/lanai.c +2 −5
  2867. drivers/atm/solos-pci.c +3 −2
  2868. drivers/base/Kconfig +1 −1
  2869. drivers/base/base.h +25 −37
  2870. drivers/base/bus.c +7 −8
  2871. drivers/base/class.c +21 −21
  2872. drivers/base/core.c +52 −13
  2873. drivers/base/node.c +18 −3
  2874. drivers/base/power/generic_ops.c +3 −3
  2875. drivers/base/power/main.c +63 −113
  2876. drivers/base/power/runtime.c +44 −12
  2877. drivers/base/power/wakeup.c +10 −10
  2878. drivers/block/Kconfig +1 −0
  2879. drivers/block/Makefile +1 −1
  2880. drivers/block/aoe/Makefile +1 −1
  2881. drivers/block/aoe/aoecmd.c +3 −3
  2882. drivers/block/cciss.c +12 −13
  2883. drivers/block/cciss.h +2 −2
  2884. drivers/block/cciss_cmd.h +1 −1
  2885. drivers/block/drbd/drbd_int.h +0 −2
  2886. drivers/block/drbd/drbd_main.c +2 −5
.mailmap+2−0
@@ -23,6 +23,7 @@ Andy Adamson <andros@citi.umich.edu> · 22 unmodified lines
2323 Arnaud Patard <arnaud.patard@rtp-net.org>
2424 Arnd Bergmann <arnd@arndb.de>
2525 Axel Dyks <xl@xlsigned.net>
26+Axel Lin <axel.lin@gmail.com>
2627 Ben Gardner <bgardner@wabtec.com>
2728 Ben M Cahill <ben.m.cahill@intel.com>
2829 Björn Steinbrink <B.Steinbrink@gmx.de>
@@ -105,3 +106,4 @@ Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> · 76 unmodified lines
105106 Uwe Kleine-König <ukl@pengutronix.de>
106107 Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
107108 Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
109+Takashi YOSHII <takashi.yoshii.zj@renesas.com>
CREDITS+2−4
@@ -2365,8 +2365,6 @@ E: acme@redhat.com · 2364 unmodified lines
23652365 W: http://oops.ghostprotocols.net:81/blog/
23662366 P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF01
23672367 D: IPX, LLC, DCCP, cyc2x, wl3501_cs, net/ hacks
2368−S: R. Brasílio Itiberê, 4270/1010 - Água Verde
2369−S: 80240-060 - Curitiba - Paraná
23702368 S: Brazil
23712369
23722370 N: Karsten Merker
@@ -2813,8 +2811,8 @@ D: CDROM driver "sonycd535" (Sony CDU-535/531) · 440 unmodified lines
28132811 N: Stelian Pop
28142812 E: stelian@popies.net
28152813 P: 1024D/EDBB6147 7B36 0E07 04BC 11DC A7A0 D3F7 7185 9E7A EDBB 6147
2816−D: sonypi, meye drivers, mct_u232 usb serial hacks
2817−S: Paris, France
2814+D: random kernel hacks
2815+S: Paimpont, France
28182816
28192817 N: Pete Popov
28202818 E: pete_popov@yahoo.com
Documentation/ABI/stable/thermal-notification+4−0
@@ -0,0 +1,4 @@
1+What: A notification mechanism for thermal related events
2+Description:
3+ This interface enables notification for thermal related events.
4+ The notification is in the form of a netlink event.
Documentation/ABI/testing/sysfs-class-led+9−0
@@ -26,3 +26,12 @@ Description: · 25 unmodified lines
2626 scheduler is chosen. Trigger specific parameters can appear in
2727 /sys/class/leds/<led> once a given trigger is selected.
2828
29+What: /sys/class/leds/<led>/inverted
30+Date: January 2011
31+KernelVersion: 2.6.38
32+Contact: Richard Purdie <rpurdie@rpsys.net>
33+Description:
34+ Invert the LED on/off state. This parameter is specific to
35+ gpio and backlight triggers. In case of the backlight trigger,
36+ it is usefull when driving a LED which is intended to indicate
37+ a device in a standby like state.
Documentation/ABI/testing/sysfs-class-net-batman-advrenamed from drivers/staging/batman-adv/sysfs-class-net-batman-adv+0−0

File renamed without changes.

Documentation/ABI/testing/sysfs-class-net-meshrenamed from drivers/staging/batman-adv/sysfs-class-net-mesh+28−0
@@ -22,6 +22,27 @@ Description: · 21 unmodified lines
2222 mesh will be fragmented or silently discarded if the
2323 packet size exceeds the outgoing interface MTU.
2424
25+What: /sys/class/net/<mesh_iface>/mesh/gw_bandwidth
26+Date: October 2010
27+Contact: Marek Lindner <lindner_marek@yahoo.de>
28+Description:
29+ Defines the bandwidth which is propagated by this
30+ node if gw_mode was set to 'server'.
31+
32+What: /sys/class/net/<mesh_iface>/mesh/gw_mode
33+Date: October 2010
34+Contact: Marek Lindner <lindner_marek@yahoo.de>
35+Description:
36+ Defines the state of the gateway features. Can be
37+ either 'off', 'client' or 'server'.
38+
39+What: /sys/class/net/<mesh_iface>/mesh/gw_sel_class
40+Date: October 2010
41+Contact: Marek Lindner <lindner_marek@yahoo.de>
42+Description:
43+ Defines the selection criteria this node will use
44+ to choose a gateway if gw_mode was set to 'client'.
45+
2546 What: /sys/class/net/<mesh_iface>/mesh/orig_interval
2647 Date: May 2010
2748 Contact: Marek Lindner <lindner_marek@yahoo.de>
@@ -29,6 +50,13 @@ Description: · 1 unmodified line
2950 Defines the interval in milliseconds in which batman
3051 sends its protocol messages.
3152
53+What: /sys/class/net/<mesh_iface>/mesh/hop_penalty
54+Date: Oct 2010
55+Contact: Linus Lüssing <linus.luessing@web.de>
56+Description:
57+ Defines the penalty which will be applied to an
58+ originator message's tq-field on every hop.
59+
3260 What: /sys/class/net/<mesh_iface>/mesh/vis_mode
3361 Date: May 2010
3462 Contact: Marek Lindner <lindner_marek@yahoo.de>
Documentation/ABI/testing/sysfs-driver-hid-roccat-kone+8−8
@@ -1,4 +1,4 @@
1−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_dpi
1+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/actual_dpi
22 Date: March 2010
33 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
44 Description: It is possible to switch the dpi setting of the mouse with the
@@ -17,13 +17,13 @@ Description: It is possible to switch the dpi setting of the mouse with the · 12 unmodified lines
1717
1818 This file is readonly.
1919
20−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_profile
20+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/actual_profile
2121 Date: March 2010
2222 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
2323 Description: When read, this file returns the number of the actual profile.
2424 This file is readonly.
2525
26−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/firmware_version
26+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/firmware_version
2727 Date: March 2010
2828 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
2929 Description: When read, this file returns the raw integer version number of the
@@ -33,7 +33,7 @@ Description: When read, this file returns the raw integer version number of the · 3 unmodified lines
3333 left. E.g. a returned value of 138 means 1.38
3434 This file is readonly.
3535
36−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]
36+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/profile[1-5]
3737 Date: March 2010
3838 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
3939 Description: The mouse can store 5 profiles which can be switched by the
@@ -48,7 +48,7 @@ Description: The mouse can store 5 profiles which can be switched by the · 8 unmodified lines
4848 stored in the profile doesn't need to fit the number of the
4949 store.
5050
51−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/settings
51+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/settings
5252 Date: March 2010
5353 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
5454 Description: When read, this file returns the settings stored in the mouse.
@@ -58,7 +58,7 @@ Description: When read, this file returns the settings stored in the mouse. · 3 unmodified lines
5858 The data has to be 36 bytes long. The mouse will reject invalid
5959 data.
6060
61−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/startup_profile
61+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/startup_profile
6262 Date: March 2010
6363 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
6464 Description: The integer value of this attribute ranges from 1 to 5.
@@ -67,7 +67,7 @@ Description: The integer value of this attribute ranges from 1 to 5. · 2 unmodified lines
6767 When written, this file sets the number of the startup profile
6868 and the mouse activates this profile immediately.
6969
70−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/tcu
70+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/tcu
7171 Date: March 2010
7272 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
7373 Description: The mouse has a "Tracking Control Unit" which lets the user
@@ -78,7 +78,7 @@ Description: The mouse has a "Tracking Control Unit" which lets the user · 4 unmodified lines
7878 Writing 1 in this file will start the calibration which takes
7979 around 6 seconds to complete and activates the TCU.
8080
81−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/weight
81+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/weight
8282 Date: March 2010
8383 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
8484 Description: The mouse can be equipped with one of four supplied weights
Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus+108−0
@@ -0,0 +1,108 @@
1+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/actual_profile
2+Date: October 2010
3+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
4+Description: When read, this file returns the number of the actual profile in
5+ range 0-4.
6+ This file is readonly.
7+
8+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/firmware_version
9+Date: October 2010
10+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
11+Description: When read, this file returns the raw integer version number of the
12+ firmware reported by the mouse. Using the integer value eases
13+ further usage in other programs. To receive the real version
14+ number the decimal point has to be shifted 2 positions to the
15+ left. E.g. a returned value of 121 means 1.21
16+ This file is readonly.
17+
18+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/macro
19+Date: October 2010
20+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
21+Description: The mouse can store a macro with max 500 key/button strokes
22+ internally.
23+ When written, this file lets one set the sequence for a specific
24+ button for a specific profile. Button and profile numbers are
25+ included in written data. The data has to be 2082 bytes long.
26+ This file is writeonly.
27+
28+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile_buttons
29+Date: August 2010
30+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
31+Description: The mouse can store 5 profiles which can be switched by the
32+ press of a button. A profile is split in settings and buttons.
33+ profile_buttons holds informations about button layout.
34+ When written, this file lets one write the respective profile
35+ buttons back to the mouse. The data has to be 77 bytes long.
36+ The mouse will reject invalid data.
37+ Which profile to write is determined by the profile number
38+ contained in the data.
39+ This file is writeonly.
40+
41+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile[1-5]_buttons
42+Date: August 2010
43+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
44+Description: The mouse can store 5 profiles which can be switched by the
45+ press of a button. A profile is split in settings and buttons.
46+ profile_buttons holds informations about button layout.
47+ When read, these files return the respective profile buttons.
48+ The returned data is 77 bytes in size.
49+ This file is readonly.
50+
51+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile_settings
52+Date: October 2010
53+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
54+Description: The mouse can store 5 profiles which can be switched by the
55+ press of a button. A profile is split in settings and buttons.
56+ profile_settings holds informations like resolution, sensitivity
57+ and light effects.
58+ When written, this file lets one write the respective profile
59+ settings back to the mouse. The data has to be 43 bytes long.
60+ The mouse will reject invalid data.
61+ Which profile to write is determined by the profile number
62+ contained in the data.
63+ This file is writeonly.
64+
65+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile[1-5]_settings
66+Date: August 2010
67+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
68+Description: The mouse can store 5 profiles which can be switched by the
69+ press of a button. A profile is split in settings and buttons.
70+ profile_settings holds informations like resolution, sensitivity
71+ and light effects.
72+ When read, these files return the respective profile settings.
73+ The returned data is 43 bytes in size.
74+ This file is readonly.
75+
76+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/sensor
77+Date: October 2010
78+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
79+Description: The mouse has a tracking- and a distance-control-unit. These
80+ can be activated/deactivated and the lift-off distance can be
81+ set. The data has to be 6 bytes long.
82+ This file is writeonly.
83+
84+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/startup_profile
85+Date: October 2010
86+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
87+Description: The integer value of this attribute ranges from 0-4.
88+ When read, this attribute returns the number of the profile
89+ that's active when the mouse is powered on.
90+ When written, this file sets the number of the startup profile
91+ and the mouse activates this profile immediately.
92+
93+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu
94+Date: October 2010
95+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
96+Description: When written a calibration process for the tracking control unit
97+ can be initiated/cancelled.
98+ The data has to be 3 bytes long.
99+ This file is writeonly.
100+
101+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu_image
102+Date: October 2010
103+Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
104+Description: When read the mouse returns a 30x30 pixel image of the
105+ sampled underground. This works only in the course of a
106+ calibration process initiated with tcu.
107+ The returned data is 1028 bytes in size.
108+ This file is readonly.
Documentation/ABI/testing/sysfs-driver-hid-roccat-pyra+9−9
@@ -1,4 +1,4 @@
1−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_cpi
1+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/actual_cpi
22 Date: August 2010
33 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
44 Description: It is possible to switch the cpi setting of the mouse with the
@@ -14,14 +14,14 @@ Description: It is possible to switch the cpi setting of the mouse with the · 9 unmodified lines
1414
1515 This file is readonly.
1616
17−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_profile
17+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/actual_profile
1818 Date: August 2010
1919 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
2020 Description: When read, this file returns the number of the actual profile in
2121 range 0-4.
2222 This file is readonly.
2323
24−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/firmware_version
24+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/firmware_version
2525 Date: August 2010
2626 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
2727 Description: When read, this file returns the raw integer version number of the
@@ -31,7 +31,7 @@ Description: When read, this file returns the raw integer version number of the · 3 unmodified lines
3131 left. E.g. a returned value of 138 means 1.38
3232 This file is readonly.
3333
34−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile_settings
34+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile_settings
3535 Date: August 2010
3636 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
3737 Description: The mouse can store 5 profiles which can be switched by the
@@ -45,7 +45,7 @@ Description: The mouse can store 5 profiles which can be switched by the · 7 unmodified lines
4545 contained in the data.
4646 This file is writeonly.
4747
48−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]_settings
48+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile[1-5]_settings
4949 Date: August 2010
5050 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
5151 Description: The mouse can store 5 profiles which can be switched by the
@@ -56,7 +56,7 @@ Description: The mouse can store 5 profiles which can be switched by the · 4 unmodified lines
5656 The returned data is 13 bytes in size.
5757 This file is readonly.
5858
59−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile_buttons
59+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile_buttons
6060 Date: August 2010
6161 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
6262 Description: The mouse can store 5 profiles which can be switched by the
@@ -69,7 +69,7 @@ Description: The mouse can store 5 profiles which can be switched by the · 6 unmodified lines
6969 contained in the data.
7070 This file is writeonly.
7171
72−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]_buttons
72+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile[1-5]_buttons
7373 Date: August 2010
7474 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
7575 Description: The mouse can store 5 profiles which can be switched by the
@@ -79,7 +79,7 @@ Description: The mouse can store 5 profiles which can be switched by the · 3 unmodified lines
7979 The returned data is 19 bytes in size.
8080 This file is readonly.
8181
82−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/startup_profile
82+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/startup_profile
8383 Date: August 2010
8484 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
8585 Description: The integer value of this attribute ranges from 0-4.
@@ -87,7 +87,7 @@ Description: The integer value of this attribute ranges from 0-4. · 1 unmodified line
8787 that's active when the mouse is powered on.
8888 This file is readonly.
8989
90−What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/settings
90+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/settings
9191 Date: August 2010
9292 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
9393 Description: When read, this file returns the settings stored in the mouse.
Documentation/ABI/testing/sysfs-platform-at91+25−0
@@ -0,0 +1,25 @@
1+What: /sys/devices/platform/at91_can/net/<iface>/mb0_id
2+Date: January 2011
3+KernelVersion: 2.6.38
4+Contact: Marc Kleine-Budde <kernel@pengutronix.de>
5+Description:
6+ Value representing the can_id of mailbox 0.
7+
8+ Default: 0x7ff (standard frame)
9+
10+ Due to a chip bug (errata 50.2.6.3 & 50.3.5.3 in
11+ "AT91SAM9263 Preliminary 6249H-ATARM-27-Jul-09") the
12+ contents of mailbox 0 may be send under certain
13+ conditions (even if disabled or in rx mode).
14+
15+ The workaround in the errata suggests not to use the
16+ mailbox and load it with an unused identifier.
17+
18+ In order to use an extended can_id add the
19+ CAN_EFF_FLAG (0x80000000U) to the can_id. Example:
20+
21+ - standard id 0x7ff:
22+ echo 0x7ff > /sys/class/net/can0/mb0_id
23+
24+ - extended id 0x1fffffff:
25+ echo 0x9fffffff > /sys/class/net/can0/mb0_id
Documentation/ABI/testing/sysfs-platform-ideapad-laptop+6−0
@@ -0,0 +1,6 @@
1+What: /sys/devices/platform/ideapad/camera_power
2+Date: Dec 2010
3+KernelVersion: 2.6.37
4+Contact: "Ike Panhc <ike.pan@canonical.com>"
5+Description:
6+ Control the power of camera module. 1 means on, 0 means off.
Documentation/ABI/testing/sysfs-tty+19−0
@@ -0,0 +1,19 @@
1+What: /sys/class/tty/console/active
2+Date: Nov 2010
3+Contact: Kay Sievers <kay.sievers@vrfy.org>
4+Description:
5+ Shows the list of currently configured
6+ console devices, like 'tty1 ttyS0'.
7+ The last entry in the file is the active
8+ device connected to /dev/console.
9+ The file supports poll() to detect virtual
10+ console switches.
11+
12+What: /sys/class/tty/tty0/active
13+Date: Nov 2010
14+Contact: Kay Sievers <kay.sievers@vrfy.org>
15+Description:
16+ Shows the currently active virtual console
17+ device, like 'tty1'.
18+ The file supports poll() to detect virtual
19+ console switches.
Documentation/DocBook/80211.tmpl+85−6
@@ -146,6 +146,7 @@ · 145 unmodified lines
146146 !Finclude/net/cfg80211.h cfg80211_rx_mgmt
147147 !Finclude/net/cfg80211.h cfg80211_mgmt_tx_status
148148 !Finclude/net/cfg80211.h cfg80211_cqm_rssi_notify
149+!Finclude/net/cfg80211.h cfg80211_cqm_pktloss_notify
149150 !Finclude/net/cfg80211.h cfg80211_michael_mic_failure
150151 </chapter>
151152 <chapter>
@@ -267,10 +268,6 @@ · 115 unmodified lines
267268 !Finclude/net/mac80211.h ieee80211_ops
268269 !Finclude/net/mac80211.h ieee80211_alloc_hw
269270 !Finclude/net/mac80211.h ieee80211_register_hw
270−!Finclude/net/mac80211.h ieee80211_get_tx_led_name
271−!Finclude/net/mac80211.h ieee80211_get_rx_led_name
272−!Finclude/net/mac80211.h ieee80211_get_assoc_led_name
273−!Finclude/net/mac80211.h ieee80211_get_radio_led_name
274271 !Finclude/net/mac80211.h ieee80211_unregister_hw
275272 !Finclude/net/mac80211.h ieee80211_free_hw
276273 </chapter>
@@ -332,10 +329,16 @@ · 55 unmodified lines
332329 <title>functions/definitions</title>
333330 !Finclude/net/mac80211.h ieee80211_rx_status
334331 !Finclude/net/mac80211.h mac80211_rx_flags
332+!Finclude/net/mac80211.h mac80211_tx_control_flags
333+!Finclude/net/mac80211.h mac80211_rate_control_flags
334+!Finclude/net/mac80211.h ieee80211_tx_rate
335335 !Finclude/net/mac80211.h ieee80211_tx_info
336+!Finclude/net/mac80211.h ieee80211_tx_info_clear_status
336337 !Finclude/net/mac80211.h ieee80211_rx
338+!Finclude/net/mac80211.h ieee80211_rx_ni
337339 !Finclude/net/mac80211.h ieee80211_rx_irqsafe
338340 !Finclude/net/mac80211.h ieee80211_tx_status
341+!Finclude/net/mac80211.h ieee80211_tx_status_ni
339342 !Finclude/net/mac80211.h ieee80211_tx_status_irqsafe
340343 !Finclude/net/mac80211.h ieee80211_rts_get
341344 !Finclude/net/mac80211.h ieee80211_rts_duration
@@ -346,6 +349,7 @@ · 4 unmodified lines
346349 !Finclude/net/mac80211.h ieee80211_stop_queue
347350 !Finclude/net/mac80211.h ieee80211_wake_queues
348351 !Finclude/net/mac80211.h ieee80211_stop_queues
352+!Finclude/net/mac80211.h ieee80211_queue_stopped
349353 </sect1>
350354 </chapter>
351355
@@ -354,6 +358,13 @@ · 2 unmodified lines
354358 !Pinclude/net/mac80211.h Frame filtering
355359 !Finclude/net/mac80211.h ieee80211_filter_flags
356360 </chapter>
361+
362+ <chapter id="workqueue">
363+ <title>The mac80211 workqueue</title>
364+!Pinclude/net/mac80211.h mac80211 workqueue
365+!Finclude/net/mac80211.h ieee80211_queue_work
366+!Finclude/net/mac80211.h ieee80211_queue_delayed_work
367+ </chapter>
357368 </part>
358369
359370 <part id="advanced">
@@ -367,6 +378,23 @@ · 7 unmodified lines
367378 </para>
368379 </partintro>
369380
381+ <chapter id="led-support">
382+ <title>LED support</title>
383+ <para>
384+ Mac80211 supports various ways of blinking LEDs. Wherever possible,
385+ device LEDs should be exposed as LED class devices and hooked up to
386+ the appropriate trigger, which will then be triggered appropriately
387+ by mac80211.
388+ </para>
389+!Finclude/net/mac80211.h ieee80211_get_tx_led_name
390+!Finclude/net/mac80211.h ieee80211_get_rx_led_name
391+!Finclude/net/mac80211.h ieee80211_get_assoc_led_name
392+!Finclude/net/mac80211.h ieee80211_get_radio_led_name
393+!Finclude/net/mac80211.h ieee80211_tpt_blink
394+!Finclude/net/mac80211.h ieee80211_tpt_led_trigger_flags
395+!Finclude/net/mac80211.h ieee80211_create_tpt_led_trigger
396+ </chapter>
397+
370398 <chapter id="hardware-crypto-offload">
371399 <title>Hardware crypto acceleration</title>
372400 !Pinclude/net/mac80211.h Hardware crypto acceleration
@@ -374,6 +402,9 @@ · 1 unmodified line
374402 !Finclude/net/mac80211.h set_key_cmd
375403 !Finclude/net/mac80211.h ieee80211_key_conf
376404 !Finclude/net/mac80211.h ieee80211_key_flags
405+!Finclude/net/mac80211.h ieee80211_tkip_key_type
406+!Finclude/net/mac80211.h ieee80211_get_tkip_key
407+!Finclude/net/mac80211.h ieee80211_key_removed
377408 </chapter>
378409
379410 <chapter id="powersave">
@@ -417,6 +448,18 @@ · 37 unmodified lines
417448 supported by mac80211, add notes about supporting hw crypto
418449 with it.
419450 </para>
451+!Finclude/net/mac80211.h ieee80211_iterate_active_interfaces
452+!Finclude/net/mac80211.h ieee80211_iterate_active_interfaces_atomic
453+ </chapter>
454+
455+ <chapter id="station-handling">
456+ <title>Station handling</title>
457+ <para>TODO</para>
458+!Finclude/net/mac80211.h ieee80211_sta
459+!Finclude/net/mac80211.h sta_notify_cmd
460+!Finclude/net/mac80211.h ieee80211_find_sta
461+!Finclude/net/mac80211.h ieee80211_find_sta_by_ifaddr
462+!Finclude/net/mac80211.h ieee80211_sta_block_awake
420463 </chapter>
421464
422465 <chapter id="hardware-scan-offload">
@@ -424,6 +467,28 @@ · 1 unmodified line
424467 <para>TBD</para>
425468 !Finclude/net/mac80211.h ieee80211_scan_completed
426469 </chapter>
470+
471+ <chapter id="aggregation">
472+ <title>Aggregation</title>
473+ <sect1>
474+ <title>TX A-MPDU aggregation</title>
475+!Pnet/mac80211/agg-tx.c TX A-MPDU aggregation
476+!Cnet/mac80211/agg-tx.c
477+ </sect1>
478+ <sect1>
479+ <title>RX A-MPDU aggregation</title>
480+!Pnet/mac80211/agg-rx.c RX A-MPDU aggregation
481+!Cnet/mac80211/agg-rx.c
482+ </sect1>
483+!Finclude/net/mac80211.h ieee80211_ampdu_mlme_action
484+ </chapter>
485+
486+ <chapter id="smps">
487+ <title>Spatial Multiplexing Powersave (SMPS)</title>
488+!Pinclude/net/mac80211.h Spatial multiplexing power save
489+!Finclude/net/mac80211.h ieee80211_request_smps
490+!Finclude/net/mac80211.h ieee80211_smps_mode
491+ </chapter>
427492 </part>
428493
429494 <part id="rate-control">
@@ -435,9 +500,16 @@ · 5 unmodified lines
435500 interface and how it relates to mac80211 and drivers.
436501 </para>
437502 </partintro>
438− <chapter id="dummy">
439− <title>dummy chapter</title>
503+ <chapter id="ratecontrol-api">
504+ <title>Rate Control API</title>
440505 <para>TBD</para>
506+!Finclude/net/mac80211.h ieee80211_start_tx_ba_session
507+!Finclude/net/mac80211.h ieee80211_start_tx_ba_cb_irqsafe
508+!Finclude/net/mac80211.h ieee80211_stop_tx_ba_session
509+!Finclude/net/mac80211.h ieee80211_stop_tx_ba_cb_irqsafe
510+!Finclude/net/mac80211.h rate_control_changed
511+!Finclude/net/mac80211.h ieee80211_tx_rate_control
512+!Finclude/net/mac80211.h rate_control_send_low
441513 </chapter>
442514 </part>
443515
@@ -485,6 +557,13 @@ · 41 unmodified lines
485557 </sect1>
486558 </chapter>
487559
560+ <chapter id="aggregation-internals">
561+ <title>Aggregation</title>
562+!Fnet/mac80211/sta_info.h sta_ampdu_mlme
563+!Fnet/mac80211/sta_info.h tid_ampdu_tx
564+!Fnet/mac80211/sta_info.h tid_ampdu_rx
565+ </chapter>
566+
488567 <chapter id="synchronisation">
489568 <title>Synchronisation</title>
490569 <para>TBD</para>
Documentation/DocBook/device-drivers.tmpl+6−2
@@ -217,8 +217,8 @@ X!Isound/sound_firmware.c · 216 unmodified lines
217217 <chapter id="uart16x50">
218218 <title>16x50 UART Driver</title>
219219 !Iinclude/linux/serial_core.h
220−!Edrivers/serial/serial_core.c
221−!Edrivers/serial/8250.c
220+!Edrivers/tty/serial/serial_core.c
221+!Edrivers/tty/serial/8250.c
222222 </chapter>
223223
224224 <chapter id="fbdev">
@@ -303,6 +303,10 @@ X!Idrivers/video/console/fonts.c · 78 unmodified lines
303303 !Edrivers/input/input.c
304304 !Edrivers/input/ff-core.c
305305 !Edrivers/input/ff-memless.c
306+ </sect1>
307+ <sect1><title>Multitouch Library</title>
308+!Iinclude/linux/input/mt.h
309+!Edrivers/input/input-mt.c
306310 </sect1>
307311 <sect1><title>Polled input devices</title>
308312 !Iinclude/linux/input-polldev.h
Documentation/DocBook/drm.tmpl+3−3
@@ -73,8 +73,8 @@ · 72 unmodified lines
7373 services.
7474 </para>
7575 <para>
76− The core of every DRM driver is struct drm_device. Drivers
77− will typically statically initialize a drm_device structure,
76+ The core of every DRM driver is struct drm_driver. Drivers
77+ will typically statically initialize a drm_driver structure,
7878 then pass it to drm_init() at load time.
7979 </para>
8080
@@ -84,7 +84,7 @@ · 3 unmodified lines
8484 <title>Driver initialization</title>
8585 <para>
8686 Before calling the DRM initialization routines, the driver must
87− first create and fill out a struct drm_device structure.
87+ first create and fill out a struct drm_driver structure.
8888 </para>
8989 <programlisting>
9090 static struct drm_driver driver = {
Documentation/DocBook/dvb/dvbapi.xml+1−1
@@ -28,7 +28,7 @@ · 27 unmodified lines
2828 <holder>Convergence GmbH</holder>
2929 </copyright>
3030 <copyright>
31− <year>2009-2010</year>
31+ <year>2009-2011</year>
3232 <holder>Mauro Carvalho Chehab</holder>
3333 </copyright>
3434
Documentation/DocBook/filesystems.tmpl+5−0
@@ -82,6 +82,11 @@ · 81 unmodified lines
8282 </sect1>
8383 </chapter>
8484
85+ <chapter id="fs_events">
86+ <title>Events based on file descriptors</title>
87+!Efs/eventfd.c
88+ </chapter>
89+
8590 <chapter id="sysfs">
8691 <title>The Filesystem for Exporting Kernel Objects</title>
8792 !Efs/sysfs/file.c
Documentation/DocBook/media.tmpl+2−2
@@ -28,7 +28,7 @@ · 27 unmodified lines
2828 <title>LINUX MEDIA INFRASTRUCTURE API</title>
2929
3030 <copyright>
31− <year>2009-2010</year>
31+ <year>2009-2011</year>
3232 <holder>LinuxTV Developers</holder>
3333 </copyright>
3434
@@ -86,7 +86,7 @@ Foundation. A copy of the license is included in the chapter entitled · 51 unmodified lines
8686 </author>
8787 </authorgroup>
8888 <copyright>
89− <year>2009-2010</year>
89+ <year>2009-2011</year>
9090 <holder>Mauro Carvalho Chehab</holder>
9191 </copyright>
9292
Documentation/DocBook/mtdnand.tmpl+1−1
@@ -250,7 +250,7 @@ static void board_hwcontrol(struct mtd_info *mtd, int cmd) · 249 unmodified lines
250250 <title>Device ready function</title>
251251 <para>
252252 If the hardware interface has the ready busy pin of the NAND chip connected to a
253− GPIO or other accesible I/O pin, this function is used to read back the state of the
253+ GPIO or other accessible I/O pin, this function is used to read back the state of the
254254 pin. The function has no arguments and should return 0, if the device is busy (R/B pin
255255 is low) and 1, if the device is ready (R/B pin is high).
256256 If the hardware interface does not give access to the ready busy pin, then
Documentation/DocBook/v4l/dev-rds.xml+4−2
@@ -75,6 +75,7 @@ as follows:</para> · 74 unmodified lines
7575 </section>
7676
7777 <section>
78+ <title>RDS datastructures</title>
7879 <table frame="none" pgwide="1" id="v4l2-rds-data">
7980 <title>struct
8081 <structname>v4l2_rds_data</structname></title>
@@ -129,10 +130,11 @@ as follows:</para> · 48 unmodified lines
129130
130131 <table frame="none" pgwide="1" id="v4l2-rds-block-codes">
131132 <title>Block defines</title>
132− <tgroup cols="3">
133+ <tgroup cols="4">
133134 <colspec colname="c1" colwidth="1*" />
134135 <colspec colname="c2" colwidth="1*" />
135− <colspec colname="c3" colwidth="5*" />
136+ <colspec colname="c3" colwidth="1*" />
137+ <colspec colname="c4" colwidth="5*" />
136138 <tbody valign="top">
137139 <row>
138140 <entry>V4L2_RDS_BLOCK_MSK</entry>
Documentation/DocBook/v4l/func-ioctl.xml+2−3
@@ -34,8 +34,7 @@ · 33 unmodified lines
3434 <varlistentry>
3535 <term><parameter>request</parameter></term>
3636 <listitem>
37− <para>V4L2 ioctl request code as defined in the <link
38−linkend="videodev">videodev.h</link> header file, for example
37+ <para>V4L2 ioctl request code as defined in the <filename>videodev2.h</filename> header file, for example
3938 VIDIOC_QUERYCAP.</para>
4039 </listitem>
4140 </varlistentry>
@@ -57,7 +56,7 @@ file descriptor. An ioctl <parameter>request</parameter> has encoded · 15 unmodified lines
5756 in it whether the argument is an input, output or read/write
5857 parameter, and the size of the argument <parameter>argp</parameter> in
5958 bytes. Macros and defines specifying V4L2 ioctl requests are located
60−in the <link linkend="videodev">videodev.h</link> header file.
59+in the <filename>videodev2.h</filename> header file.
6160 Applications should use their own copy, not include the version in the
6261 kernel sources on the system they compile on. All V4L2 ioctl requests,
6362 their respective function and parameters are specified in <xref
Documentation/DocBook/v4l/pixfmt.xml+2−2
@@ -142,8 +142,8 @@ leftmost pixel of the second row from the top, and so on. The last row · 141 unmodified lines
142142 has just as many pad bytes after it as the other rows.</para>
143143
144144 <para>In V4L2 each format has an identifier which looks like
145−<constant>PIX_FMT_XXX</constant>, defined in the <link
146−linkend="videodev">videodev.h</link> header file. These identifiers
145+<constant>PIX_FMT_XXX</constant>, defined in the <filename>videodev2.h</filename>
146+header file. These identifiers
147147 represent <link linkend="v4l2-fourcc">four character codes</link>
148148 which are also listed below, however they are not the same as those
149149 used in the Windows world.</para>
Documentation/DocBook/v4l/v4l2.xml+2−1
@@ -100,6 +100,7 @@ Remote Controller chapter.</contrib> · 99 unmodified lines
100100 <year>2008</year>
101101 <year>2009</year>
102102 <year>2010</year>
103+ <year>2011</year>
103104 <holder>Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin
104105 Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab</holder>
105106 </copyright>
@@ -381,7 +382,7 @@ and discussions on the V4L mailing list.</revremark> · 275 unmodified lines
381382 </partinfo>
382383
383384 <title>Video for Linux Two API Specification</title>
384− <subtitle>Revision 2.6.33</subtitle>
385+ <subtitle>Revision 2.6.38</subtitle>
385386
386387 <chapter id="common">
387388 &sub-common;
Documentation/IPMI.txt+27−0
@@ -533,6 +533,33 @@ completion during sending a panic event. · 532 unmodified lines
533533 Other Pieces
534534 ------------
535535
536+Get the detailed info related with the IPMI device
537+--------------------------------------------------
538+
539+Some users need more detailed information about a device, like where
540+the address came from or the raw base device for the IPMI interface.
541+You can use the IPMI smi_watcher to catch the IPMI interfaces as they
542+come or go, and to grab the information, you can use the function
543+ipmi_get_smi_info(), which returns the following structure:
544+
545+struct ipmi_smi_info {
546+ enum ipmi_addr_src addr_src;
547+ struct device *dev;
548+ union {
549+ struct {
550+ void *acpi_handle;
551+ } acpi_info;
552+ } addr_info;
553+};
554+
555+Currently special info for only for SI_ACPI address sources is
556+returned. Others may be added as necessary.
557+
558+Note that the dev pointer is included in the above structure, and
559+assuming ipmi_smi_get_info returns success, you must call put_device
560+on the dev pointer.
561+
562+
536563 Watchdog
537564 --------
538565
Documentation/Makefile+1−1
@@ -1,3 +1,3 @@
11 obj-m := DocBook/ accounting/ auxdisplay/ connector/ \
22 filesystems/ filesystems/configfs/ ia64/ laptops/ networking/ \
3− pcmcia/ spi/ timers/ video4linux/ vm/ watchdog/src/
3+ pcmcia/ spi/ timers/ vm/ watchdog/src/
Documentation/RCU/trace.txt+128−16
@@ -1,18 +1,22 @@
11 CONFIG_RCU_TRACE debugfs Files and Formats
22
33
4−The rcutree implementation of RCU provides debugfs trace output that
5−summarizes counters and state. This information is useful for debugging
6−RCU itself, and can sometimes also help to debug abuses of RCU.
7−The following sections describe the debugfs files and formats.
4+The rcutree and rcutiny implementations of RCU provide debugfs trace
5+output that summarizes counters and state. This information is useful for
6+debugging RCU itself, and can sometimes also help to debug abuses of RCU.
7+The following sections describe the debugfs files and formats, first
8+for rcutree and next for rcutiny.
89
910
10−Hierarchical RCU debugfs Files and Formats
11+CONFIG_TREE_RCU and CONFIG_TREE_PREEMPT_RCU debugfs Files and Formats
1112
12−This implementation of RCU provides three debugfs files under the
13+These implementations of RCU provides five debugfs files under the
1314 top-level directory RCU: rcu/rcudata (which displays fields in struct
14−rcu_data), rcu/rcugp (which displays grace-period counters), and
15−rcu/rcuhier (which displays the struct rcu_node hierarchy).
15+rcu_data), rcu/rcudata.csv (which is a .csv spreadsheet version of
16+rcu/rcudata), rcu/rcugp (which displays grace-period counters),
17+rcu/rcuhier (which displays the struct rcu_node hierarchy), and
18+rcu/rcu_pending (which displays counts of the reasons that the
19+rcu_pending() function decided that there was core RCU work to do).
1620
1721 The output of "cat rcu/rcudata" looks as follows:
1822
@@ -130,7 +134,8 @@ o "ci" is the number of RCU callbacks that have been invoked for · 111 unmodified lines
130134 been registered in absence of CPU-hotplug activity.
131135
132136 o "co" is the number of RCU callbacks that have been orphaned due to
133− this CPU going offline.
137+ this CPU going offline. These orphaned callbacks have been moved
138+ to an arbitrarily chosen online CPU.
134139
135140 o "ca" is the number of RCU callbacks that have been adopted due to
136141 other CPUs going offline. Note that ci+co-ca+ql is the number of
@@ -168,12 +173,12 @@ o "gpnum" is the number of grace periods that have started. It is · 31 unmodified lines
168173
169174 The output of "cat rcu/rcuhier" looks as follows, with very long lines:
170175
171−c=6902 g=6903 s=2 jfq=3 j=72c7 nfqs=13142/nfqsng=0(13142) fqlh=6 oqlen=0
176+c=6902 g=6903 s=2 jfq=3 j=72c7 nfqs=13142/nfqsng=0(13142) fqlh=6
172177 1/1 .>. 0:127 ^0
173178 3/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3
174179 3/3f .>. 0:5 ^0 2/3 .>. 6:11 ^1 0/0 .>. 12:17 ^2 0/0 .>. 18:23 ^3 0/0 .>. 24:29 ^4 0/0 .>. 30:35 ^5 0/0 .>. 36:41 ^0 0/0 .>. 42:47 ^1 0/0 .>. 48:53 ^2 0/0 .>. 54:59 ^3 0/0 .>. 60:65 ^4 0/0 .>. 66:71 ^5 0/0 .>. 72:77 ^0 0/0 .>. 78:83 ^1 0/0 .>. 84:89 ^2 0/0 .>. 90:95 ^3 0/0 .>. 96:101 ^4 0/0 .>. 102:107 ^5 0/0 .>. 108:113 ^0 0/0 .>. 114:119 ^1 0/0 .>. 120:125 ^2 0/0 .>. 126:127 ^3
175180 rcu_bh:
176−c=-226 g=-226 s=1 jfq=-5701 j=72c7 nfqs=88/nfqsng=0(88) fqlh=0 oqlen=0
181+c=-226 g=-226 s=1 jfq=-5701 j=72c7 nfqs=88/nfqsng=0(88) fqlh=0
177182 0/1 .>. 0:127 ^0
178183 0/3 .>. 0:35 ^0 0/0 .>. 36:71 ^1 0/0 .>. 72:107 ^2 0/0 .>. 108:127 ^3
179184 0/3f .>. 0:5 ^0 0/3 .>. 6:11 ^1 0/0 .>. 12:17 ^2 0/0 .>. 18:23 ^3 0/0 .>. 24:29 ^4 0/0 .>. 30:35 ^5 0/0 .>. 36:41 ^0 0/0 .>. 42:47 ^1 0/0 .>. 48:53 ^2 0/0 .>. 54:59 ^3 0/0 .>. 60:65 ^4 0/0 .>. 66:71 ^5 0/0 .>. 72:77 ^0 0/0 .>. 78:83 ^1 0/0 .>. 84:89 ^2 0/0 .>. 90:95 ^3 0/0 .>. 96:101 ^4 0/0 .>. 102:107 ^5 0/0 .>. 108:113 ^0 0/0 .>. 114:119 ^1 0/0 .>. 120:125 ^2 0/0 .>. 126:127 ^3
@@ -212,11 +217,6 @@ o "fqlh" is the number of calls to force_quiescent_state() that · 32 unmodified lines
212217 exited immediately (without even being counted in nfqs above)
213218 due to contention on ->fqslock.
214219
215−o "oqlen" is the number of callbacks on the "orphan" callback
216− list. RCU callbacks are placed on this list by CPUs going
217− offline, and are "adopted" either by the CPU helping the outgoing
218− CPU or by the next rcu_barrier*() call, whichever comes first.
219−
220220 o Each element of the form "1/1 0:127 ^0" represents one struct
221221 rcu_node. Each line represents one level of the hierarchy, from
222222 root to leaves. It is best to think of the rcu_data structures
@@ -326,3 +326,115 @@ o "nn" is the number of times that this CPU needed nothing. Alert · 103 unmodified lines
326326 readers will note that the rcu "nn" number for a given CPU very
327327 closely matches the rcu_bh "np" number for that same CPU. This
328328 is due to short-circuit evaluation in rcu_pending().
329+
330+
331+CONFIG_TINY_RCU and CONFIG_TINY_PREEMPT_RCU debugfs Files and Formats
332+
333+These implementations of RCU provides a single debugfs file under the
334+top-level directory RCU, namely rcu/rcudata, which displays fields in
335+rcu_bh_ctrlblk, rcu_sched_ctrlblk and, for CONFIG_TINY_PREEMPT_RCU,
336+rcu_preempt_ctrlblk.
337+
338+The output of "cat rcu/rcudata" is as follows:
339+
340+rcu_preempt: qlen=24 gp=1097669 g197/p197/c197 tasks=...
341+ ttb=. btg=no ntb=184 neb=0 nnb=183 j=01f7 bt=0274
342+ normal balk: nt=1097669 gt=0 bt=371 b=0 ny=25073378 nos=0
343+ exp balk: bt=0 nos=0
344+rcu_sched: qlen: 0
345+rcu_bh: qlen: 0
346+
347+This is split into rcu_preempt, rcu_sched, and rcu_bh sections, with the
348+rcu_preempt section appearing only in CONFIG_TINY_PREEMPT_RCU builds.
349+The last three lines of the rcu_preempt section appear only in
350+CONFIG_RCU_BOOST kernel builds. The fields are as follows:
351+
352+o "qlen" is the number of RCU callbacks currently waiting either
353+ for an RCU grace period or waiting to be invoked. This is the
354+ only field present for rcu_sched and rcu_bh, due to the
355+ short-circuiting of grace period in those two cases.
356+
357+o "gp" is the number of grace periods that have completed.
358+
359+o "g197/p197/c197" displays the grace-period state, with the
360+ "g" number being the number of grace periods that have started
361+ (mod 256), the "p" number being the number of grace periods
362+ that the CPU has responded to (also mod 256), and the "c"
363+ number being the number of grace periods that have completed
364+ (once again mode 256).
365+
366+ Why have both "gp" and "g"? Because the data flowing into
367+ "gp" is only present in a CONFIG_RCU_TRACE kernel.
368+
369+o "tasks" is a set of bits. The first bit is "T" if there are
370+ currently tasks that have recently blocked within an RCU
371+ read-side critical section, the second bit is "N" if any of the
372+ aforementioned tasks are blocking the current RCU grace period,
373+ and the third bit is "E" if any of the aforementioned tasks are
374+ blocking the current expedited grace period. Each bit is "."
375+ if the corresponding condition does not hold.
376+
377+o "ttb" is a single bit. It is "B" if any of the blocked tasks
378+ need to be priority boosted and "." otherwise.
379+
380+o "btg" indicates whether boosting has been carried out during
381+ the current grace period, with "exp" indicating that boosting
382+ is in progress for an expedited grace period, "no" indicating
383+ that boosting has not yet started for a normal grace period,
384+ "begun" indicating that boosting has bebug for a normal grace
385+ period, and "done" indicating that boosting has completed for
386+ a normal grace period.
387+
388+o "ntb" is the total number of tasks subjected to RCU priority boosting
389+ periods since boot.
390+
391+o "neb" is the number of expedited grace periods that have had
392+ to resort to RCU priority boosting since boot.
393+
394+o "nnb" is the number of normal grace periods that have had
395+ to resort to RCU priority boosting since boot.
396+
397+o "j" is the low-order 12 bits of the jiffies counter in hexadecimal.
398+
399+o "bt" is the low-order 12 bits of the value that the jiffies counter
400+ will have at the next time that boosting is scheduled to begin.
401+
402+o In the line beginning with "normal balk", the fields are as follows:
403+
404+ o "nt" is the number of times that the system balked from
405+ boosting because there were no blocked tasks to boost.
406+ Note that the system will balk from boosting even if the
407+ grace period is overdue when the currently running task
408+ is looping within an RCU read-side critical section.
409+ There is no point in boosting in this case, because
410+ boosting a running task won't make it run any faster.
411+
412+ o "gt" is the number of times that the system balked
413+ from boosting because, although there were blocked tasks,
414+ none of them were preventing the current grace period
415+ from completing.
416+
417+ o "bt" is the number of times that the system balked
418+ from boosting because boosting was already in progress.
419+
420+ o "b" is the number of times that the system balked from
421+ boosting because boosting had already completed for
422+ the grace period in question.
423+
424+ o "ny" is the number of times that the system balked from
425+ boosting because it was not yet time to start boosting
426+ the grace period in question.
427+
428+ o "nos" is the number of times that the system balked from
429+ boosting for inexplicable ("not otherwise specified")
430+ reasons. This can actually happen due to races involving
431+ increments of the jiffies counter.
432+
433+o In the line beginning with "exp balk", the fields are as follows:
434+
435+ o "bt" is the number of times that the system balked from
436+ boosting because there were no blocked tasks to boost.
437+
438+ o "nos" is the number of times that the system balked from
439+ boosting for inexplicable ("not otherwise specified")
440+ reasons.
Documentation/acpi/apei/output_format.txt+122−0
@@ -0,0 +1,122 @@
1+ APEI output format
2+ ~~~~~~~~~~~~~~~~~~
3+
4+APEI uses printk as hardware error reporting interface, the output
5+format is as follow.
6+
7+<error record> :=
8+APEI generic hardware error status
9+severity: <integer>, <severity string>
10+section: <integer>, severity: <integer>, <severity string>
11+flags: <integer>
12+<section flags strings>
13+fru_id: <uuid string>
14+fru_text: <string>
15+section_type: <section type string>
16+<section data>
17+
18+<severity string>* := recoverable | fatal | corrected | info
19+
20+<section flags strings># :=
21+[primary][, containment warning][, reset][, threshold exceeded]\
22+[, resource not accessible][, latent error]
23+
24+<section type string> := generic processor error | memory error | \
25+PCIe error | unknown, <uuid string>
26+
27+<section data> :=
28+<generic processor section data> | <memory section data> | \
29+<pcie section data> | <null>
30+
31+<generic processor section data> :=
32+[processor_type: <integer>, <proc type string>]
33+[processor_isa: <integer>, <proc isa string>]
34+[error_type: <integer>
35+<proc error type strings>]
36+[operation: <integer>, <proc operation string>]
37+[flags: <integer>
38+<proc flags strings>]
39+[level: <integer>]
40+[version_info: <integer>]
41+[processor_id: <integer>]
42+[target_address: <integer>]
43+[requestor_id: <integer>]
44+[responder_id: <integer>]
45+[IP: <integer>]
46+
47+<proc type string>* := IA32/X64 | IA64
48+
49+<proc isa string>* := IA32 | IA64 | X64
50+
51+<processor error type strings># :=
52+[cache error][, TLB error][, bus error][, micro-architectural error]
53+
54+<proc operation string>* := unknown or generic | data read | data write | \
55+instruction execution
56+
57+<proc flags strings># :=
58+[restartable][, precise IP][, overflow][, corrected]
59+
60+<memory section data> :=
61+[error_status: <integer>]
62+[physical_address: <integer>]
63+[physical_address_mask: <integer>]
64+[node: <integer>]
65+[card: <integer>]
66+[module: <integer>]
67+[bank: <integer>]
68+[device: <integer>]
69+[row: <integer>]
70+[column: <integer>]
71+[bit_position: <integer>]
72+[requestor_id: <integer>]
73+[responder_id: <integer>]
74+[target_id: <integer>]
75+[error_type: <integer>, <mem error type string>]
76+
77+<mem error type string>* :=
78+unknown | no error | single-bit ECC | multi-bit ECC | \
79+single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
80+target abort | parity error | watchdog timeout | invalid address | \
81+mirror Broken | memory sparing | scrub corrected error | \
82+scrub uncorrected error
83+
84+<pcie section data> :=
85+[port_type: <integer>, <pcie port type string>]
86+[version: <integer>.<integer>]
87+[command: <integer>, status: <integer>]
88+[device_id: <integer>:<integer>:<integer>.<integer>
89+slot: <integer>
90+secondary_bus: <integer>
91+vendor_id: <integer>, device_id: <integer>
92+class_code: <integer>]
93+[serial number: <integer>, <integer>]
94+[bridge: secondary_status: <integer>, control: <integer>]
95+
96+<pcie port type string>* := PCIe end point | legacy PCI end point | \
97+unknown | unknown | root port | upstream switch port | \
98+downstream switch port | PCIe to PCI/PCI-X bridge | \
99+PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
100+root complex event collector
101+
102+Where, [] designate corresponding content is optional
103+
104+All <field string> description with * has the following format:
105+
106+field: <integer>, <field string>
107+
108+Where value of <integer> should be the position of "string" in <field
109+string> description. Otherwise, <field string> will be "unknown".
110+
111+All <field strings> description with # has the following format:
112+
113+field: <integer>
114+<field strings>
115+
116+Where each string in <fields strings> corresponding to one set bit of
117+<integer>. The bit position is the position of "string" in <field
118+strings> description.
119+
120+For more detailed explanation of every field, please refer to UEFI
121+specification version 2.3 or later, section Appendix N: Common
122+Platform Error Record.
Documentation/arm/00-INDEX+2−0
@@ -34,3 +34,5 @@ memory.txt · 33 unmodified lines
3434 - description of the virtual memory layout
3535 nwfpe/
3636 - NWFPE floating point emulator documentation
37+swp_emulation
38+ - SWP/SWPB emulation handler/logging description
Documentation/arm/OMAP/omap_pm+25−0
@@ -127,3 +127,28 @@ implementation needs: · 126 unmodified lines
127127 10. (*pdata->cpu_set_freq)(unsigned long f)
128128
129129 11. (*pdata->cpu_get_freq)(void)
130+
131+Customizing OPP for platform
132+============================
133+Defining CONFIG_PM should enable OPP layer for the silicon
134+and the registration of OPP table should take place automatically.
135+However, in special cases, the default OPP table may need to be
136+tweaked, for e.g.:
137+ * enable default OPPs which are disabled by default, but which
138+ could be enabled on a platform
139+ * Disable an unsupported OPP on the platform
140+ * Define and add a custom opp table entry
141+in these cases, the board file needs to do additional steps as follows:
142+arch/arm/mach-omapx/board-xyz.c
143+ #include "pm.h"
144+ ....
145+ static void __init omap_xyz_init_irq(void)
146+ {
147+ ....
148+ /* Initialize the default table */
149+ omapx_opp_init();
150+ /* Do customization to the defaults */
151+ ....
152+ }
153+NOTE: omapx_opp_init will be omap3_opp_init or as required
154+based on the omap family.
Documentation/arm/swp_emulation+27−0
@@ -0,0 +1,27 @@
1+Software emulation of deprecated SWP instruction (CONFIG_SWP_EMULATE)
2+---------------------------------------------------------------------
3+
4+ARMv6 architecture deprecates use of the SWP/SWPB instructions, and recommeds
5+moving to the load-locked/store-conditional instructions LDREX and STREX.
6+
7+ARMv7 multiprocessing extensions introduce the ability to disable these
8+instructions, triggering an undefined instruction exception when executed.
9+Trapped instructions are emulated using an LDREX/STREX or LDREXB/STREXB
10+sequence. If a memory access fault (an abort) occurs, a segmentation fault is
11+signalled to the triggering process.
12+
13+/proc/cpu/swp_emulation holds some statistics/information, including the PID of
14+the last process to trigger the emulation to be invocated. For example:
15+---
16+Emulated SWP: 12
17+Emulated SWPB: 0
18+Aborted SWP{B}: 1
19+Last process: 314
20+---
21+
22+NOTE: when accessing uncached shared regions, LDREX/STREX rely on an external
23+transaction monitoring block called a global monitor to maintain update
24+atomicity. If your system does not implement a global monitor, this option can
25+cause programs that perform SWP operations to uncached memory to deadlock, as
26+the STREX operation will always fail.
27+
Documentation/cgroups/blkio-controller.txt+27−0
@@ -89,6 +89,33 @@ Throttling/Upper Limit policy · 88 unmodified lines
8989
9090 Limits for writes can be put using blkio.write_bps_device file.
9191
92+Hierarchical Cgroups
93+====================
94+- Currently none of the IO control policy supports hierarhical groups. But
95+ cgroup interface does allow creation of hierarhical cgroups and internally
96+ IO policies treat them as flat hierarchy.
97+
98+ So this patch will allow creation of cgroup hierarhcy but at the backend
99+ everything will be treated as flat. So if somebody created a hierarchy like
100+ as follows.
101+
102+ root
103+ / \
104+ test1 test2
105+ |
106+ test3
107+
108+ CFQ and throttling will practically treat all groups at same level.
109+
110+ pivot
111+ / | \ \
112+ root test1 test2 test3
113+
114+ Down the line we can implement hierarchical accounting/control support
115+ and also introduce a new cgroup file "use_hierarchy" which will control
116+ whether cgroup hierarchy is viewed as flat or hierarchical by the policy..
117+ This is how memory controller also has implemented the things.
118+
92119 Various user visible config options
93120 ===================================
94121 CONFIG_BLK_CGROUP
Documentation/cgroups/cgroup_event_listener.c+1−1
@@ -91,7 +91,7 @@ int main(int argc, char **argv) · 90 unmodified lines
9191
9292 if (ret == -1) {
9393 perror("cgroup.event_control "
94− "is not accessable any more");
94+ "is not accessible any more");
9595 break;
9696 }
9797
Documentation/cgroups/cgroups.txt+4−4
@@ -355,13 +355,13 @@ subsystems, type: · 354 unmodified lines
355355
356356 To change the set of subsystems bound to a mounted hierarchy, just
357357 remount with different options:
358−# mount -o remount,cpuset,ns hier1 /dev/cgroup
358+# mount -o remount,cpuset,blkio hier1 /dev/cgroup
359359
360−Now memory is removed from the hierarchy and ns is added.
360+Now memory is removed from the hierarchy and blkio is added.
361361
362−Note this will add ns to the hierarchy but won't remove memory or
362+Note this will add blkio to the hierarchy but won't remove memory or
363363 cpuset, because the new options are appended to the old ones:
364−# mount -o remount,ns /dev/cgroup
364+# mount -o remount,blkio /dev/cgroup
365365
366366 To Specify a hierarchy's release_agent:
367367 # mount -t cgroup -o cpuset,release_agent="/sbin/cpuset_release_agent" \
Documentation/cgroups/memcg_test.txt+1−1
@@ -398,7 +398,7 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y. · 397 unmodified lines
398398 written to move_charge_at_immigrate.
399399
400400 9.10 Memory thresholds
401− Memory controler implements memory thresholds using cgroups notification
401+ Memory controller implements memory thresholds using cgroups notification
402402 API. You can use Documentation/cgroups/cgroup_event_listener.c to test
403403 it.
404404
Documentation/coccinelle.txt+4−0
@@ -36,6 +36,10 @@ as a regular user, and install it with · 35 unmodified lines
3636
3737 sudo make install
3838
39+The semantic patches in the kernel will work best with Coccinelle version
40+0.2.4 or later. Using earlier versions may incur some parse errors in the
41+semantic patch code, but any results that are obtained should still be
42+correct.
3943
4044 Using Coccinelle on the Linux kernel
4145 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Documentation/device-mapper/dm-crypt.txt+6−1
@@ -8,7 +8,7 @@ Parameters: <cipher> <key> <iv_offset> <device path> <offset> · 7 unmodified lines
88
99 <cipher>
1010 Encryption cipher and an optional IV generation mode.
11− (In format cipher-chainmode-ivopts:ivmode).
11+ (In format cipher[:keycount]-chainmode-ivopts:ivmode).
1212 Examples:
1313 des
1414 aes-cbc-essiv:sha256
@@ -20,6 +20,11 @@ Parameters: <cipher> <key> <iv_offset> <device path> <offset> · 5 unmodified lines
2020 Key used for encryption. It is encoded as a hexadecimal number.
2121 You can only use key sizes that are valid for the selected cipher.
2222
23+<keycount>
24+ Multi-key compatibility mode. You can define <keycount> keys and
25+ then sectors are encrypted according to their offsets (sector 0 uses key0;
26+ sector 1 uses key1 etc.). <keycount> must be a power of two.
27+
2328 <iv_offset>
2429 The IV offset is a sector count that is added to the sector number
2530 before creating the IV.
Documentation/device-mapper/dm-raid.txt+70−0
@@ -0,0 +1,70 @@
1+Device-mapper RAID (dm-raid) is a bridge from DM to MD. It
2+provides a way to use device-mapper interfaces to access the MD RAID
3+drivers.
4+
5+As with all device-mapper targets, the nominal public interfaces are the
6+constructor (CTR) tables and the status outputs (both STATUSTYPE_INFO
7+and STATUSTYPE_TABLE). The CTR table looks like the following:
8+
9+1: <s> <l> raid \
10+2: <raid_type> <#raid_params> <raid_params> \
11+3: <#raid_devs> <meta_dev1> <dev1> .. <meta_devN> <devN>
12+
13+Line 1 contains the standard first three arguments to any device-mapper
14+target - the start, length, and target type fields. The target type in
15+this case is "raid".
16+
17+Line 2 contains the arguments that define the particular raid
18+type/personality/level, the required arguments for that raid type, and
19+any optional arguments. Possible raid types include: raid4, raid5_la,
20+raid5_ls, raid5_rs, raid6_zr, raid6_nr, and raid6_nc. (raid1 is
21+planned for the future.) The list of required and optional parameters
22+is the same for all the current raid types. The required parameters are
23+positional, while the optional parameters are given as key/value pairs.
24+The possible parameters are as follows:
25+ <chunk_size> Chunk size in sectors.
26+ [[no]sync] Force/Prevent RAID initialization
27+ [rebuild <idx>] Rebuild the drive indicated by the index
28+ [daemon_sleep <ms>] Time between bitmap daemon work to clear bits
29+ [min_recovery_rate <kB/sec/disk>] Throttle RAID initialization
30+ [max_recovery_rate <kB/sec/disk>] Throttle RAID initialization
31+ [max_write_behind <sectors>] See '-write-behind=' (man mdadm)
32+ [stripe_cache <sectors>] Stripe cache size for higher RAIDs
33+
34+Line 3 contains the list of devices that compose the array in
35+metadata/data device pairs. If the metadata is stored separately, a '-'
36+is given for the metadata device position. If a drive has failed or is
37+missing at creation time, a '-' can be given for both the metadata and
38+data drives for a given position.
39+
40+NB. Currently all metadata devices must be specified as '-'.
41+
42+Examples:
43+# RAID4 - 4 data drives, 1 parity
44+# No metadata devices specified to hold superblock/bitmap info
45+# Chunk size of 1MiB
46+# (Lines separated for easy reading)
47+0 1960893648 raid \
48+ raid4 1 2048 \
49+ 5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81
50+
51+# RAID4 - 4 data drives, 1 parity (no metadata devices)
52+# Chunk size of 1MiB, force RAID initialization,
53+# min recovery rate at 20 kiB/sec/disk
54+0 1960893648 raid \
55+ raid4 4 2048 min_recovery_rate 20 sync\
56+ 5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81
57+
58+Performing a 'dmsetup table' should display the CTR table used to
59+construct the mapping (with possible reordering of optional
60+parameters).
61+
62+Performing a 'dmsetup status' will yield information on the state and
63+health of the array. The output is as follows:
64+1: <s> <l> raid \
65+2: <raid_type> <#devices> <1 health char for each dev> <resync_ratio>
66+
67+Line 1 is standard DM output. Line 2 is best shown by example:
68+ 0 1960893648 raid raid4 5 AAAAA 2/490221568
69+Here we can see the RAID type is raid4, there are 5 devices - all of
70+which are 'A'live, and the array is 2/490221568 complete with recovery.
Documentation/devicetree/bindings/ata/fsl-sata.txtrenamed from Documentation/powerpc/dts-bindings/fsl/sata.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/eeprom.txt+28−0
@@ -0,0 +1,28 @@
1+EEPROMs (I2C)
2+
3+Required properties:
4+
5+ - compatible : should be "<manufacturer>,<type>"
6+ If there is no specific driver for <manufacturer>, a generic
7+ driver based on <type> is selected. Possible types are:
8+ 24c00, 24c01, 24c02, 24c04, 24c08, 24c16, 24c32, 24c64,
9+ 24c128, 24c256, 24c512, 24c1024, spd
10+
11+ - reg : the I2C address of the EEPROM
12+
13+Optional properties:
14+
15+ - pagesize : the length of the pagesize for writing. Please consult the
16+ manual of your device, that value varies a lot. A wrong value
17+ may result in data loss! If not specified, a safety value of
18+ '1' is used which will be very slow.
19+
20+ - read-only: this parameterless property disables writes to the eeprom
21+
22+Example:
23+
24+eeprom@52 {
25+ compatible = "atmel,24c32";
26+ reg = <0x52>;
27+ pagesize = <32>;
28+};
Documentation/devicetree/bindings/gpio/8xxx_gpio.txtrenamed from Documentation/powerpc/dts-bindings/fsl/8xxx_gpio.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/gpio/gpio.txtrenamed from Documentation/powerpc/dts-bindings/gpio/gpio.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/gpio/led.txtrenamed from Documentation/powerpc/dts-bindings/gpio/led.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/i2c/fsl-i2c.txtrenamed from Documentation/powerpc/dts-bindings/fsl/i2c.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/marvell.txtrenamed from Documentation/powerpc/dts-bindings/marvell.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/mmc/fsl-esdhc.txtrenamed from Documentation/powerpc/dts-bindings/fsl/esdhc.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/mmc/mmc-spi-slot.txtrenamed from Documentation/powerpc/dts-bindings/mmc-spi-slot.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/mtd/fsl-upm-nand.txtrenamed from Documentation/powerpc/dts-bindings/fsl/upm-nand.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/mtd/mtd-physmap.txtrenamed from Documentation/powerpc/dts-bindings/mtd-physmap.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/net/can/mpc5xxx-mscan.txtrenamed from Documentation/powerpc/dts-bindings/fsl/can.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/net/can/sja1000.txtrenamed from Documentation/powerpc/dts-bindings/can/sja1000.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/net/fsl-tsec-phy.txtrenamed from Documentation/powerpc/dts-bindings/fsl/tsec.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/net/mdio-gpio.txtrenamed from Documentation/powerpc/dts-bindings/gpio/mdio.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/net/phy.txtrenamed from Documentation/powerpc/dts-bindings/phy.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/pci/83xx-512x-pci.txtrenamed from Documentation/powerpc/dts-bindings/fsl/83xx-512x-pci.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/4xx/cpm.txt+52−0
@@ -0,0 +1,52 @@
1+PPC4xx Clock Power Management (CPM) node
2+
3+Required properties:
4+ - compatible : compatible list, currently only "ibm,cpm"
5+ - dcr-access-method : "native"
6+ - dcr-reg : < DCR register range >
7+
8+Optional properties:
9+ - er-offset : All 4xx SoCs with a CPM controller have
10+ one of two different order for the CPM
11+ registers. Some have the CPM registers
12+ in the following order (ER,FR,SR). The
13+ others have them in the following order
14+ (SR,ER,FR). For the second case set
15+ er-offset = <1>.
16+ - unused-units : specifier consist of one cell. For each
17+ bit in the cell, the corresponding bit
18+ in CPM will be set to turn off unused
19+ devices.
20+ - idle-doze : specifier consist of one cell. For each
21+ bit in the cell, the corresponding bit
22+ in CPM will be set to turn off unused
23+ devices. This is usually just CPM[CPU].
24+ - standby : specifier consist of one cell. For each
25+ bit in the cell, the corresponding bit
26+ in CPM will be set on standby and
27+ restored on resume.
28+ - suspend : specifier consist of one cell. For each
29+ bit in the cell, the corresponding bit
30+ in CPM will be set on suspend (mem) and
31+ restored on resume. Note, for standby
32+ and suspend the corresponding bits can
33+ be different or the same. Usually for
34+ standby only class 2 and 3 units are set.
35+ However, the interface does not care.
36+ If they are the same, the additional
37+ power saving will be seeing if support
38+ is available to put the DDR in self
39+ refresh mode and any additional power
40+ saving techniques for the specific SoC.
41+
42+Example:
43+ CPM0: cpm {
44+ compatible = "ibm,cpm";
45+ dcr-access-method = "native";
46+ dcr-reg = <0x160 0x003>;
47+ er-offset = <0>;
48+ unused-units = <0x00000100>;
49+ idle-doze = <0x02000000>;
50+ standby = <0xfeff0000>;
51+ suspend = <0xfeff791d>;
52+};
Documentation/devicetree/bindings/powerpc/4xx/emac.txtrenamed from Documentation/powerpc/dts-bindings/4xx/emac.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/4xx/ndfc.txtrenamed from Documentation/powerpc/dts-bindings/4xx/ndfc.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/4xx/ppc440spe-adma.txtrenamed from Documentation/powerpc/dts-bindings/4xx/ppc440spe-adma.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/4xx/reboot.txtrenamed from Documentation/powerpc/dts-bindings/4xx/reboot.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/board.txtrenamed from Documentation/powerpc/dts-bindings/fsl/board.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/brg.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/brg.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/i2c.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/i2c.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/pic.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/pic.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/usb.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/usb.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/gpio.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/gpio.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/network.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/firmware.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/firmware.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/par_io.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/par_io.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/pincfg.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/ucc.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/ucc.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/usb.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/serial.txtrenamed from Documentation/powerpc/dts-bindings/fsl/cpm_qe/serial.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/diu.txtrenamed from Documentation/powerpc/dts-bindings/fsl/diu.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/dma.txtrenamed from Documentation/powerpc/dts-bindings/fsl/dma.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/ecm.txtrenamed from Documentation/powerpc/dts-bindings/ecm.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/gtm.txtrenamed from Documentation/powerpc/dts-bindings/fsl/gtm.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/guts.txtrenamed from Documentation/powerpc/dts-bindings/fsl/guts.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/lbc.txtrenamed from Documentation/powerpc/dts-bindings/fsl/lbc.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/mcm.txtrenamed from Documentation/powerpc/dts-bindings/fsl/mcm.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/mcu-mpc8349emitx.txtrenamed from Documentation/powerpc/dts-bindings/fsl/mcu-mpc8349emitx.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/mpc5121-psc.txtrenamed from Documentation/powerpc/dts-bindings/fsl/mpc5121-psc.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/mpc5200.txtrenamed from Documentation/powerpc/dts-bindings/fsl/mpc5200.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/mpic.txtrenamed from Documentation/powerpc/dts-bindings/fsl/mpic.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txtrenamed from Documentation/powerpc/dts-bindings/fsl/msi-pic.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/pmc.txtrenamed from Documentation/powerpc/dts-bindings/fsl/pmc.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/sec.txtrenamed from Documentation/powerpc/dts-bindings/fsl/sec.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/fsl/ssi.txtrenamed from Documentation/powerpc/dts-bindings/fsl/ssi.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/nintendo/gamecube.txtrenamed from Documentation/powerpc/dts-bindings/nintendo/gamecube.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/powerpc/nintendo/wii.txtrenamed from Documentation/powerpc/dts-bindings/nintendo/wii.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/spi/fsl-spi.txtrenamed from Documentation/powerpc/dts-bindings/fsl/spi.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/spi/spi-bus.txtrenamed from Documentation/powerpc/dts-bindings/spi-bus.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/usb/fsl-usb.txtrenamed from Documentation/powerpc/dts-bindings/fsl/usb.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/usb/usb-ehci.txtrenamed from Documentation/powerpc/dts-bindings/usb-ehci.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/xilinx.txtrenamed from Documentation/powerpc/dts-bindings/xilinx.txt+0−0

File renamed without changes.

Documentation/devicetree/booting-without-of.txtrenamed from Documentation/powerpc/booting-without-of.txt+57−114
@@ -13,7 +13,6 @@ Table of Contents · 12 unmodified lines
1313
1414 I - Introduction
1515 1) Entry point for arch/powerpc
16− 2) Board support
1716
1817 II - The DT block format
1918 1) Header
@@ -41,13 +40,6 @@ Table of Contents · 21 unmodified lines
4140 VI - System-on-a-chip devices and nodes
4241 1) Defining child nodes of an SOC
4342 2) Representing devices without a current OF specification
44− a) PHY nodes
45− b) Interrupt controllers
46− c) 4xx/Axon EMAC ethernet nodes
47− d) Xilinx IP cores
48− e) USB EHCI controllers
49− f) MDIO on GPIOs
50− g) SPI busses
5143
5244 VII - Specifying interrupt information for devices
5345 1) interrupts property
@@ -123,7 +115,7 @@ Revision Information · 69 unmodified lines
123115 I - Introduction
124116 ================
125117
126−During the recent development of the Linux/ppc64 kernel, and more
118+During the development of the Linux/ppc64 kernel, and more
127119 specifically, the addition of new platform types outside of the old
128120 IBM pSeries/iSeries pair, it was decided to enforce some strict rules
129121 regarding the kernel entry and bootloader <-> kernel interfaces, in
@@ -131,7 +123,7 @@ order to avoid the degeneration that had become the ppc32 kernel entry · 1 unmodified line
131123 point and the way a new platform should be added to the kernel. The
132124 legacy iSeries platform breaks those rules as it predates this scheme,
133125 but no new board support will be accepted in the main tree that
134−doesn't follows them properly. In addition, since the advent of the
126+doesn't follow them properly. In addition, since the advent of the
135127 arch/powerpc merged architecture for ppc32 and ppc64, new 32-bit
136128 platforms and 32-bit platforms which move into arch/powerpc will be
137129 required to use these rules as well.
@@ -146,7 +138,7 @@ section III, but, for example, the kernel does not require you to · 8 unmodified lines
146138 create a node for every PCI device in the system. It is a requirement
147139 to have a node for PCI host bridges in order to provide interrupt
148140 routing informations and memory/IO ranges, among others. It is also
149−recommended to define nodes for on chip devices and other busses that
141+recommended to define nodes for on chip devices and other buses that
150142 don't specifically fit in an existing OF specification. This creates a
151143 great flexibility in the way the kernel can then probe those and match
152144 drivers to device, without having to hard code all sorts of tables. It
@@ -158,7 +150,7 @@ it with special cases. · 5 unmodified lines
158150 1) Entry point for arch/powerpc
159151 -------------------------------
160152
161− There is one and one single entry point to the kernel, at the start
153+ There is one single entry point to the kernel, at the start
162154 of the kernel image. That entry point supports two calling
163155 conventions:
164156
@@ -210,12 +202,6 @@ it with special cases. · 45 unmodified lines
210202 with all CPUs. The way to do that with method b) will be
211203 described in a later revision of this document.
212204
213−
214−2) Board support
215−----------------
216−
217−64-bit kernels:
218−
219205 Board supports (platforms) are not exclusive config options. An
220206 arbitrary set of board supports can be built in a single kernel
221207 image. The kernel will "know" what set of functions to use for a
@@ -234,48 +220,11 @@ it with special cases. · 12 unmodified lines
234220 containing the various callbacks that the generic code will
235221 use to get to your platform specific code
236222
237− c) Add a reference to your "ppc_md" structure in the
238− "machines" table in arch/powerpc/kernel/setup_64.c if you are
239− a 64-bit platform.
240−
241− d) request and get assigned a platform number (see PLATFORM_*
242− constants in arch/powerpc/include/asm/processor.h
243−
244−32-bit embedded kernels:
245−
246− Currently, board support is essentially an exclusive config option.
247− The kernel is configured for a single platform. Part of the reason
248− for this is to keep kernels on embedded systems small and efficient;
249− part of this is due to the fact the code is already that way. In the
250− future, a kernel may support multiple platforms, but only if the
223+ A kernel image may support multiple platforms, but only if the
251224 platforms feature the same core architecture. A single kernel build
252225 cannot support both configurations with Book E and configurations
253226 with classic Powerpc architectures.
254227
255− 32-bit embedded platforms that are moved into arch/powerpc using a
256− flattened device tree should adopt the merged tree practice of
257− setting ppc_md up dynamically, even though the kernel is currently
258− built with support for only a single platform at a time. This allows
259− unification of the setup code, and will make it easier to go to a
260− multiple-platform-support model in the future.
261−
262−NOTE: I believe the above will be true once Ben's done with the merge
263−of the boot sequences.... someone speak up if this is wrong!
264−
265− To add a 32-bit embedded platform support, follow the instructions
266− for 64-bit platforms above, with the exception that the Kconfig
267− option should be set up such that the kernel builds exclusively for
268− the platform selected. The processor type for the platform should
269− enable another config option to select the specific board
270− supported.
271−
272−NOTE: If Ben doesn't merge the setup files, may need to change this to
273−point to setup_32.c
274−
275−
276− I will describe later the boot process and various callbacks that
277− your platform should implement.
278−
279228
280229 II - The DT block format
281230 ========================
@@ -300,8 +249,8 @@ the block to RAM before passing it to the kernel. · 18 unmodified lines
300249 1) Header
301250 ---------
302251
303− The kernel is entered with r3 pointing to an area of memory that is
304− roughly described in arch/powerpc/include/asm/prom.h by the structure
252+ The kernel is passed the physical address pointing to an area of memory
253+ that is roughly described in include/linux/of_fdt.h by the structure
305254 boot_param_header:
306255
307256 struct boot_param_header {
@@ -339,7 +288,7 @@ struct boot_param_header { · 31 unmodified lines
339288 All values in this header are in big endian format, the various
340289 fields in this header are defined more precisely below. All
341290 "offset" values are in bytes from the start of the header; that is
342− from the value of r3.
291+ from the physical base address of the device tree block.
343292
344293 - magic
345294
@@ -437,7 +386,7 @@ struct boot_param_header { · 91 unmodified lines
437386
438387
439388 ------------------------------
440− r3 -> | struct boot_param_header |
389+ base -> | struct boot_param_header |
441390 ------------------------------
442391 | (alignment gap) (*) |
443392 ------------------------------
@@ -457,7 +406,7 @@ struct boot_param_header { · 13 unmodified lines
457406 -----> ------------------------------
458407 |
459408 |
460− --- (r3 + totalsize)
409+ --- (base + totalsize)
461410
462411 (*) The alignment gaps are not necessarily present; their presence
463412 and size are dependent on the various alignment requirements of
@@ -500,7 +449,7 @@ the device-tree structure. It is typically used to represent "path" in · 36 unmodified lines
500449 the device-tree. More details about the actual format of these will be
501450 below.
502451
503−The kernel powerpc generic code does not make any formal use of the
452+The kernel generic code does not make any formal use of the
504453 unit address (though some board support code may do) so the only real
505454 requirement here for the unit address is to ensure uniqueness of
506455 the node unit name at a given level of the tree. Nodes with no notion
@@ -518,20 +467,21 @@ path to the root node is "/". · 11 unmodified lines
518467
519468 Every node which actually represents an actual device (that is, a node
520469 which isn't only a virtual "container" for more nodes, like "/cpus"
521−is) is also required to have a "device_type" property indicating the
522−type of node .
470+is) is also required to have a "compatible" property indicating the
471+specific hardware and an optional list of devices it is fully
472+backwards compatible with.
523473
524474 Finally, every node that can be referenced from a property in another
525−node is required to have a "linux,phandle" property. Real open
526−firmware implementations provide a unique "phandle" value for every
527−node that the "prom_init()" trampoline code turns into
528−"linux,phandle" properties. However, this is made optional if the
529−flattened device tree is used directly. An example of a node
475+node is required to have either a "phandle" or a "linux,phandle"
476+property. Real Open Firmware implementations provide a unique
477+"phandle" value for every node that the "prom_init()" trampoline code
478+turns into "linux,phandle" properties. However, this is made optional
479+if the flattened device tree is used directly. An example of a node
530480 referencing another node via "phandle" is when laying out the
531481 interrupt tree which will be described in a further version of this
532482 document.
533483
534−This "linux, phandle" property is a 32-bit value that uniquely
484+The "phandle" property is a 32-bit value that uniquely
535485 identifies a node. You are free to use whatever values or system of
536486 values, internal pointers, or whatever to generate these, the only
537487 requirement is that every node for which you provide that property has
@@ -694,7 +644,7 @@ made of 3 cells, the bottom two containing the actual address itself · 156 unmodified lines
694644 while the top cell contains address space indication, flags, and pci
695645 bus & device numbers.
696646
697−For busses that support dynamic allocation, it's the accepted practice
647+For buses that support dynamic allocation, it's the accepted practice
698648 to then not provide the address in "reg" (keep it 0) though while
699649 providing a flag indicating the address is dynamically allocated, and
700650 then, to provide a separate "assigned-addresses" property that
@@ -711,7 +661,7 @@ prom_parse.c file of the recent kernels for your bus type. · 10 unmodified lines
711661 The "reg" property only defines addresses and sizes (if #size-cells is
712662 non-0) within a given bus. In order to translate addresses upward
713663 (that is into parent bus addresses, and possibly into CPU physical
714−addresses), all busses must contain a "ranges" property. If the
664+addresses), all buses must contain a "ranges" property. If the
715665 "ranges" property is missing at a given level, it's assumed that
716666 translation isn't possible, i.e., the registers are not visible on the
717667 parent bus. The format of the "ranges" property for a bus is a list
@@ -727,9 +677,9 @@ example, for a PCI host controller, that would be a CPU address. For a · 9 unmodified lines
727677 PCI<->ISA bridge, that would be a PCI address. It defines the base
728678 address in the parent bus where the beginning of that range is mapped.
729679
730−For a new 64-bit powerpc board, I recommend either the 2/2 format or
680+For new 64-bit board support, I recommend either the 2/2 format or
731681 Apple's 2/1 format which is slightly more compact since sizes usually
732−fit in a single 32-bit word. New 32-bit powerpc boards should use a
682+fit in a single 32-bit word. New 32-bit board support should use a
733683 1/1 format, unless the processor supports physical addresses greater
734684 than 32-bits, in which case a 2/1 format is recommended.
735685
@@ -754,7 +704,7 @@ of their actual names. · 18 unmodified lines
754704 While earlier users of Open Firmware like OldWorld macintoshes tended
755705 to use the actual device name for the "name" property, it's nowadays
756706 considered a good practice to use a name that is closer to the device
757−class (often equal to device_type). For example, nowadays, ethernet
707+class (often equal to device_type). For example, nowadays, Ethernet
758708 controllers are named "ethernet", an additional "model" property
759709 defining precisely the chip type/model, and "compatible" property
760710 defining the family in case a single driver can driver more than one
@@ -772,7 +722,7 @@ is present). · 11 unmodified lines
772722 4) Note about node and property names and character set
773723 -------------------------------------------------------
774724
775−While open firmware provides more flexible usage of 8859-1, this
725+While Open Firmware provides more flexible usage of 8859-1, this
776726 specification enforces more strict rules. Nodes and properties should
777727 be comprised only of ASCII characters 'a' to 'z', '0' to
778728 '9', ',', '.', '_', '+', '#', '?', and '-'. Node names additionally
@@ -792,7 +742,7 @@ address which can extend beyond that limit. · 13 unmodified lines
792742 --------------------------------
793743 These are all that are currently required. However, it is strongly
794744 recommended that you expose PCI host bridges as documented in the
795− PCI binding to open firmware, and your interrupt tree as documented
745+ PCI binding to Open Firmware, and your interrupt tree as documented
796746 in OF interrupt tree specification.
797747
798748 a) The root node
@@ -802,20 +752,12 @@ address which can extend beyond that limit. · 3 unmodified lines
802752 - model : this is your board name/model
803753 - #address-cells : address representation for "root" devices
804754 - #size-cells: the size representation for "root" devices
805− - device_type : This property shouldn't be necessary. However, if
806− you decide to create a device_type for your root node, make sure it
807− is _not_ "chrp" unless your platform is a pSeries or PAPR compliant
808− one for 64-bit, or a CHRP-type machine for 32-bit as this will
809− matched by the kernel this way.
810−
811− Additionally, some recommended properties are:
812−
813755 - compatible : the board "family" generally finds its way here,
814756 for example, if you have 2 board models with a similar layout,
815757 that typically get driven by the same platform code in the
816− kernel, you would use a different "model" property but put a
817− value in "compatible". The kernel doesn't directly use that
818− value but it is generally useful.
758+ kernel, you would specify the exact board model in the
759+ compatible property followed by an entry that represents the SoC
760+ model.
819761
820762 The root node is also generally where you add additional properties
821763 specific to your board like the serial number if any, that sort of
@@ -841,8 +783,11 @@ address which can extend beyond that limit. · 19 unmodified lines
841783
842784 So under /cpus, you are supposed to create a node for every CPU on
843785 the machine. There is no specific restriction on the name of the
844− CPU, though It's common practice to call it PowerPC,<name>. For
786+ CPU, though it's common to call it <architecture>,<core>. For
845787 example, Apple uses PowerPC,G5 while IBM uses PowerPC,970FX.
788+ However, the Generic Names convention suggests that it would be
789+ better to simply use 'cpu' for each cpu node and use the compatible
790+ property to identify the specific cpu core.
846791
847792 Required properties:
848793
@@ -923,7 +868,7 @@ compatibility. · 74 unmodified lines
923868
924869 e) The /chosen node
925870
926− This node is a bit "special". Normally, that's where open firmware
871+ This node is a bit "special". Normally, that's where Open Firmware
927872 puts some variable environment information, like the arguments, or
928873 the default input/output devices.
929874
@@ -940,11 +885,7 @@ compatibility. · 10 unmodified lines
940885 console device if any. Typically, if you have serial devices on
941886 your board, you may want to put the full path to the one set as
942887 the default console in the firmware here, for the kernel to pick
943− it up as its own default console. If you look at the function
944− set_preferred_console() in arch/ppc64/kernel/setup.c, you'll see
945− that the kernel tries to find out the default console and has
946− knowledge of various types like 8250 serial ports. You may want
947− to extend this function to add your own.
888+ it up as its own default console.
948889
949890 Note that u-boot creates and fills in the chosen node for platforms
950891 that use it.
@@ -955,23 +896,23 @@ compatibility. · 4 unmodified lines
955896
956897 f) the /soc<SOCname> node
957898
958− This node is used to represent a system-on-a-chip (SOC) and must be
959− present if the processor is a SOC. The top-level soc node contains
960− information that is global to all devices on the SOC. The node name
961− should contain a unit address for the SOC, which is the base address
962− of the memory-mapped register set for the SOC. The name of an soc
899+ This node is used to represent a system-on-a-chip (SoC) and must be
900+ present if the processor is a SoC. The top-level soc node contains
901+ information that is global to all devices on the SoC. The node name
902+ should contain a unit address for the SoC, which is the base address
903+ of the memory-mapped register set for the SoC. The name of an SoC
963904 node should start with "soc", and the remainder of the name should
964905 represent the part number for the soc. For example, the MPC8540's
965906 soc node would be called "soc8540".
966907
967908 Required properties:
968909
969− - device_type : Should be "soc"
970910 - ranges : Should be defined as specified in 1) to describe the
971− translation of SOC addresses for memory mapped SOC registers.
972− - bus-frequency: Contains the bus frequency for the SOC node.
911+ translation of SoC addresses for memory mapped SoC registers.
912+ - bus-frequency: Contains the bus frequency for the SoC node.
973913 Typically, the value of this field is filled in by the boot
974914 loader.
915+ - compatible : Exact model of the SoC
975916
976917
977918 Recommended properties:
@@ -1025,7 +966,7 @@ dtc source code can be found at · 47 unmodified lines
1025966
1026967 WARNING: This version is still in early development stage; the
1027968 resulting device-tree "blobs" have not yet been validated with the
1028−kernel. The current generated bloc lacks a useful reserve map (it will
969+kernel. The current generated block lacks a useful reserve map (it will
1029970 be fixed to generate an empty one, it's up to the bootloader to fill
1030971 it up) among others. The error handling needs work, bugs are lurking,
1031972 etc...
@@ -1098,7 +1039,7 @@ supported currently at the toplevel. · 66 unmodified lines
10981039 * an arbitrary array of bytes
10991040 */
11001041
1101− childnode@addresss { /* define a child node named "childnode"
1042+ childnode@address { /* define a child node named "childnode"
11021043 * whose unit name is "childnode at
11031044 * address"
11041045 */
@@ -1155,12 +1096,13 @@ while all this has been defined and implemented. · 50 unmodified lines
11551096
11561097 - An example of code for iterating nodes & retrieving properties
11571098 directly from the flattened tree format can be found in the kernel
1158− file arch/ppc64/kernel/prom.c, look at scan_flat_dt() function,
1099+ file drivers/of/fdt.c. Look at the of_scan_flat_dt() function,
11591100 its usage in early_init_devtree(), and the corresponding various
11601101 early_init_dt_scan_*() callbacks. That code can be re-used in a
11611102 GPL bootloader, and as the author of that code, I would be happy
11621103 to discuss possible free licensing to any vendor who wishes to
11631104 integrate all or part of this code into a non-GPL bootloader.
1105+ (reference needed; who is 'I' here? ---gcl Jan 31, 2011)
11641106
11651107
11661108
@@ -1203,18 +1145,19 @@ MPC8540. · 36 unmodified lines
12031145 2) Representing devices without a current OF specification
12041146 ----------------------------------------------------------
12051147
1206−Currently, there are many devices on SOCs that do not have a standard
1207−representation pre-defined as part of the open firmware
1208−specifications, mainly because the boards that contain these SOCs are
1209−not currently booted using open firmware. This section contains
1210−descriptions for the SOC devices for which new nodes have been
1211−defined; this list will expand as more and more SOC-containing
1212−platforms are moved over to use the flattened-device-tree model.
1148+Currently, there are many devices on SoCs that do not have a standard
1149+representation defined as part of the Open Firmware specifications,
1150+mainly because the boards that contain these SoCs are not currently
1151+booted using Open Firmware. Binding documentation for new devices
1152+should be added to the Documentation/devicetree/bindings directory.
1153+That directory will expand as device tree support is added to more and
1154+more SoCs.
1155+
12131156
12141157 VII - Specifying interrupt information for devices
12151158 ===================================================
12161159
1217−The device tree represents the busses and devices of a hardware
1160+The device tree represents the buses and devices of a hardware
12181161 system in a form similar to the physical bus topology of the
12191162 hardware.
12201163
Documentation/dontdiff+26−0
@@ -62,6 +62,10 @@ aic7*reg_print.c* · 61 unmodified lines
6262 aic7*seq.h*
6363 aicasm
6464 aicdb.h*
65+altivec1.c
66+altivec2.c
67+altivec4.c
68+altivec8.c
6569 asm-offsets.h
6670 asm_offsets.h
6771 autoconf.h*
@@ -76,6 +80,7 @@ btfixupprep · 8 unmodified lines
7680 build
7781 bvmlinux
7882 bzImage*
83+capflags.c
7984 classlist.h*
8085 comp*.log
8186 compile.h*
@@ -94,6 +99,7 @@ devlist.h* · 12 unmodified lines
9499 docproc
95100 elf2ecoff
96101 elfconfig.h*
102+evergreen_reg_safe.h
97103 fixdep
98104 flask.h
99105 fore200e_mkfirm
@@ -108,9 +114,16 @@ genksyms · 8 unmodified lines
108114 *_gray256.c
109115 ihex2fw
110116 ikconfig.h*
117+inat-tables.c
111118 initramfs_data.cpio
112119 initramfs_data.cpio.gz
113120 initramfs_list
121+int16.c
122+int1.c
123+int2.c
124+int32.c
125+int4.c
126+int8.c
114127 kallsyms
115128 kconfig
116129 keywords.c
@@ -140,6 +153,7 @@ mkprep · 23 unmodified lines
140153 mktables
141154 mktree
142155 modpost
156+modules.builtin
143157 modules.order
144158 modversions.h*
145159 ncscope.*
@@ -153,14 +167,23 @@ pca200e.bin · 7 unmodified lines
153167 pca200e_ecd.bin2
154168 piggy.gz
155169 piggyback
170+piggy.S
156171 pnmtologo
157172 ppc_defs.h*
158173 pss_boot.h
159174 qconf
175+r100_reg_safe.h
176+r200_reg_safe.h
177+r300_reg_safe.h
178+r420_reg_safe.h
179+r600_reg_safe.h
160180 raid6altivec*.c
161181 raid6int*.c
162182 raid6tables.c
163183 relocs
184+rn50_reg_safe.h
185+rs600_reg_safe.h
186+rv515_reg_safe.h
164187 series
165188 setup
166189 setup.bin
@@ -169,6 +192,7 @@ sImage · 2 unmodified lines
169192 sm_tbl*
170193 split-include
171194 syscalltab.h
195+tables.c
172196 tags
173197 tftpboot.img
174198 timeconst.h
@@ -190,6 +214,7 @@ vmlinux · 15 unmodified lines
190214 vmlinux-*
191215 vmlinux.aout
192216 vmlinux.lds
217+voffset.h
193218 vsyscall.lds
194219 vsyscall_32.lds
195220 wanxlfw.inc
@@ -200,3 +225,4 @@ wakeup.elf · 4 unmodified lines
200225 wakeup.lds
201226 zImage*
202227 zconf.hash.c
228+zoffset.h
Documentation/dvb/lmedm04.txt+1−1
@@ -46,7 +46,7 @@ and run · 45 unmodified lines
4646 Other LG firmware can be extracted manually from US280D.sys
4747 only found in windows/system32/driver.
4848
49−dd if=US280D.sys ibs=1 skip=42616 count=3668 of=dvb-usb-lme2510-lg.fw
49+dd if=US280D.sys ibs=1 skip=42360 count=3924 of=dvb-usb-lme2510-lg.fw
5050
5151 for DM04 LME2510C (LG Tuner)
5252 ---------------------------
Documentation/email-clients.txt+30−20
@@ -104,6 +104,13 @@ Then from the "Message" menu item, select insert file and choose your patch. · 103 unmodified lines
104104 As an added bonus you can customise the message creation toolbar menu
105105 and put the "insert file" icon there.
106106
107+Make the the composer window wide enough so that no lines wrap. As of
108+KMail 1.13.5 (KDE 4.5.4), KMail will apply word wrapping when sending
109+the email if the lines wrap in the composer window. Having word wrapping
110+disabled in the Options menu isn't enough. Thus, if your patch has very
111+long lines, you must make the composer window very wide before sending
112+the email. See: https://bugs.kde.org/show_bug.cgi?id=174034
113+
107114 You can safely GPG sign attachments, but inlined text is preferred for
108115 patches so do not GPG sign them. Signing patches that have been inserted
109116 as inlined text will make them tricky to extract from their 7-bit encoding.
@@ -179,26 +186,8 @@ Sylpheed (GUI) · 69 unmodified lines
179186 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
180187 Thunderbird (GUI)
181188
182−By default, thunderbird likes to mangle text, but there are ways to
183−coerce it into being nice.
184−
185−- Under account settings, composition and addressing, uncheck "Compose
186− messages in HTML format".
187−
188−- Edit your Thunderbird config settings to tell it not to wrap lines:
189− user_pref("mailnews.wraplength", 0);
190−
191−- Edit your Thunderbird config settings so that it won't use format=flowed:
192− user_pref("mailnews.send_plaintext_flowed", false);
193−
194−- You need to get Thunderbird into preformat mode:
195−. If you compose HTML messages by default, it's not too hard. Just select
196− "Preformat" from the drop-down box just under the subject line.
197−. If you compose in text by default, you have to tell it to compose a new
198− message in HTML (just as a one-off), and then force it from there back to
199− text, else it will wrap lines. To do this, use shift-click on the Write
200− icon to compose to get HTML compose mode, then select "Preformat" from
201− the drop-down box just under the subject line.
189+Thunderbird is an Outlook clone that likes to mangle text, but there are ways
190+to coerce it into behaving.
202191
203192 - Allows use of an external editor:
204193 The easiest thing to do with Thunderbird and patches is to use an
@@ -208,6 +197,27 @@ coerce it into being nice. · 3 unmodified lines
208197 View->Toolbars->Customize... and finally just click on it when in the
209198 Compose dialog.
210199
200+To beat some sense out of the internal editor, do this:
201+
202+- Under account settings, composition and addressing, uncheck "Compose
203+ messages in HTML format".
204+
205+- Edit your Thunderbird config settings so that it won't use format=flowed.
206+ Go to "edit->preferences->advanced->config editor" to bring up the
207+ thunderbird's registry editor, and set "mailnews.send_plaintext_flowed" to
208+ "false".
209+
210+- Enable "preformat" mode: Shft-click on the Write icon to bring up the HTML
211+ composer, select "Preformat" from the drop-down box just under the subject
212+ line, then close the message without saving. (This setting also applies to
213+ the text composer, but the only control for it is in the HTML composer.)
214+
215+- Install the "toggle wordwrap" extension. Download the file from:
216+ https://addons.mozilla.org/thunderbird/addon/2351/
217+ Then go to "tools->add ons", select "install" at the bottom of the screen,
218+ and browse to where you saved the .xul file. This adds an "Enable
219+ Wordwrap" entry under the Options menu of the message composer.
220+
211221 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
212222 TkRat (GUI)
213223
Documentation/fb/udlfb.txtrenamed from drivers/staging/udlfb/udlfb.txt+0−0

File renamed without changes.

Documentation/feature-removal-schedule.txt+87−32
@@ -97,36 +97,38 @@ Who: Pavel Machek <pavel@ucw.cz> · 96 unmodified lines
9797
9898 ---------------------------
9999
100−What: Video4Linux API 1 ioctls and from Video devices.
101−When: kernel 2.6.38
102−Files: include/linux/videodev.h
103−Check: include/linux/videodev.h
104−Why: V4L1 AP1 was replaced by V4L2 API during migration from 2.4 to 2.6
105− series. The old API have lots of drawbacks and don't provide enough
106− means to work with all video and audio standards. The newer API is
107− already available on the main drivers and should be used instead.
108− Newer drivers should use v4l_compat_translate_ioctl function to handle
109− old calls, replacing to newer ones.
110− Decoder iocts are using internally to allow video drivers to
111− communicate with video decoders. This should also be improved to allow
112− V4L2 calls being translated into compatible internal ioctls.
113− Compatibility ioctls will be provided, for a while, via
114− v4l1-compat module.
115−Who: Mauro Carvalho Chehab <mchehab@infradead.org>
116−
117−---------------------------
118−
119100 What: Video4Linux obsolete drivers using V4L1 API
120−When: kernel 2.6.38
121−Files: drivers/staging/cpia/* drivers/staging/stradis/*
122−Check: drivers/staging/cpia/cpia.c drivers/staging/stradis/stradis.c
101+When: kernel 2.6.39
102+Files: drivers/staging/se401/* drivers/staging/usbvideo/*
103+Check: drivers/staging/se401/se401.c drivers/staging/usbvideo/usbvideo.c
123104 Why: There are some drivers still using V4L1 API, despite all efforts we've done
124105 to migrate. Those drivers are for obsolete hardware that the old maintainer
125106 didn't care (or not have the hardware anymore), and that no other developer
126107 could find any hardware to buy. They probably have no practical usage today,
127108 and people with such old hardware could probably keep using an older version
128− of the kernel. Those drivers will be moved to staging on 2.6.37 and, if nobody
129− care enough to port and test them with V4L2 API, they'll be removed on 2.6.38.
109+ of the kernel. Those drivers will be moved to staging on 2.6.38 and, if nobody
110+ cares enough to port and test them with V4L2 API, they'll be removed on 2.6.39.
111+Who: Mauro Carvalho Chehab <mchehab@infradead.org>
112+
113+---------------------------
114+
115+What: Video4Linux: Remove obsolete ioctl's
116+When: kernel 2.6.39
117+Files: include/media/videodev2.h
118+Why: Some ioctl's were defined wrong on 2.6.2 and 2.6.6, using the wrong
119+ type of R/W arguments. They were fixed, but the old ioctl names are
120+ still there, maintained to avoid breaking binary compatibility:
121+ #define VIDIOC_OVERLAY_OLD _IOWR('V', 14, int)
122+ #define VIDIOC_S_PARM_OLD _IOW('V', 22, struct v4l2_streamparm)
123+ #define VIDIOC_S_CTRL_OLD _IOW('V', 28, struct v4l2_control)
124+ #define VIDIOC_G_AUDIO_OLD _IOWR('V', 33, struct v4l2_audio)
125+ #define VIDIOC_G_AUDOUT_OLD _IOWR('V', 49, struct v4l2_audioout)
126+ #define VIDIOC_CROPCAP_OLD _IOR('V', 58, struct v4l2_cropcap)
127+ There's no sense on preserving those forever, as it is very doubtful
128+ that someone would try to use a such old binary with a modern kernel.
129+ Removing them will allow us to remove some magic done at the V4L ioctl
130+ handler.
131+
130132 Who: Mauro Carvalho Chehab <mchehab@infradead.org>
131133
132134 ---------------------------
@@ -191,6 +193,20 @@ Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's · 58 unmodified lines
191193
192194 ---------------------------
193195
196+What: CS5535/CS5536 obsolete GPIO driver
197+When: June 2011
198+Files: drivers/staging/cs5535_gpio/*
199+Check: drivers/staging/cs5535_gpio/cs5535_gpio.c
200+Why: A newer driver replaces this; it is drivers/gpio/cs5535-gpio.c, and
201+ integrates with the Linux GPIO subsystem. The old driver has been
202+ moved to staging, and will be removed altogether around 2.6.40.
203+ Please test the new driver, and ensure that the functionality you
204+ need and any bugfixes from the old driver are available in the new
205+ one.
206+Who: Andres Salomon <dilinger@queued.net>
207+
208+--------------------------
209+
194210 What: remove EXPORT_SYMBOL(kernel_thread)
195211 When: August 2006
196212 Files: arch/*/kernel/*_ksyms.c
@@ -232,6 +248,17 @@ Who: Zhang Rui <rui.zhang@intel.com> · 35 unmodified lines
232248
233249 ---------------------------
234250
251+What: CONFIG_ACPI_PROCFS_POWER
252+When: 2.6.39
253+Why: sysfs I/F for ACPI power devices, including AC and Battery,
254+ has been working in upstream kenrel since 2.6.24, Sep 2007.
255+ In 2.6.37, we make the sysfs I/F always built in and this option
256+ disabled by default.
257+ Remove this option and the ACPI power procfs interface in 2.6.39.
258+Who: Zhang Rui <rui.zhang@intel.com>
259+
260+---------------------------
261+
235262 What: /proc/acpi/button
236263 When: August 2007
237264 Why: /proc/acpi/button has been replaced by events to the input layer
@@ -330,14 +357,6 @@ Who: Dave Jones <davej@redhat.com>, Matthew Garrett <mjg@redhat.com> · 92 unmodified lines
330357
331358 -----------------------------
332359
333−What: __do_IRQ all in one fits nothing interrupt handler
334−When: 2.6.32
335−Why: __do_IRQ was kept for easy migration to the type flow handlers.
336− More than two years of migration time is enough.
337−Who: Thomas Gleixner <tglx@linutronix.de>
338−
339−-----------------------------
340−
341360 What: fakephp and associated sysfs files in /sys/bus/pci/slots/
342361 When: 2011
343362 Why: In 2.6.27, the semantics of /sys/bus/pci/slots was redefined to
@@ -564,3 +583,39 @@ Why: This field is deprecated. I2C device drivers shouldn't change their · 220 unmodified lines
564583 Who: Jean Delvare <khali@linux-fr.org>
565584
566585 ----------------------------
586+
587+What: cancel_rearming_delayed_work[queue]()
588+When: 2.6.39
589+
590+Why: The functions have been superceded by cancel_delayed_work_sync()
591+ quite some time ago. The conversion is trivial and there is no
592+ in-kernel user left.
593+Who: Tejun Heo <tj@kernel.org>
594+
595+----------------------------
596+
597+What: Legacy, non-standard chassis intrusion detection interface.
598+When: June 2011
599+Why: The adm9240, w83792d and w83793 hardware monitoring drivers have
600+ legacy interfaces for chassis intrusion detection. A standard
601+ interface has been added to each driver, so the legacy interface
602+ can be removed.
603+Who: Jean Delvare <khali@linux-fr.org>
604+
605+----------------------------
606+
607+What: noswapaccount kernel command line parameter
608+When: 2.6.40
609+Why: The original implementation of memsw feature enabled by
610+ CONFIG_CGROUP_MEM_RES_CTLR_SWAP could be disabled by the noswapaccount
611+ kernel parameter (introduced in 2.6.29-rc1). Later on, this decision
612+ turned out to be not ideal because we cannot have the feature compiled
613+ in and disabled by default and let only interested to enable it
614+ (e.g. general distribution kernels might need it). Therefore we have
615+ added swapaccount[=0|1] parameter (introduced in 2.6.37) which provides
616+ the both possibilities. If we remove noswapaccount we will have
617+ less command line parameters with the same functionality and we
618+ can also cleanup the parameter handling a bit ().
619+Who: Michal Hocko <mhocko@suse.cz>
620+
621+----------------------------
Documentation/filesystems/Locking+21−17
@@ -9,23 +9,30 @@ be able to use diff(1). · 8 unmodified lines
99
1010 --------------------------- dentry_operations --------------------------
1111 prototypes:
12− int (*d_revalidate)(struct dentry *, int);
13− int (*d_hash) (struct dentry *, struct qstr *);
14− int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);
12+ int (*d_revalidate)(struct dentry *, struct nameidata *);
13+ int (*d_hash)(const struct dentry *, const struct inode *,
14+ struct qstr *);
15+ int (*d_compare)(const struct dentry *, const struct inode *,
16+ const struct dentry *, const struct inode *,
17+ unsigned int, const char *, const struct qstr *);
1518 int (*d_delete)(struct dentry *);
1619 void (*d_release)(struct dentry *);
1720 void (*d_iput)(struct dentry *, struct inode *);
1821 char *(*d_dname)((struct dentry *dentry, char *buffer, int buflen);
22+ struct vfsmount *(*d_automount)(struct path *path);
23+ int (*d_manage)(struct dentry *, bool);
1924
2025 locking rules:
21− dcache_lock rename_lock ->d_lock may block
22−d_revalidate: no no no yes
23−d_hash no no no yes
24−d_compare: no yes no no
25−d_delete: yes no yes no
26−d_release: no no no yes
27−d_iput: no no no yes
26+ rename_lock ->d_lock may block rcu-walk
27+d_revalidate: no no yes (ref-walk) maybe
28+d_hash no no no maybe
29+d_compare: yes no no maybe
30+d_delete: no yes no no
31+d_release: no no yes no
32+d_iput: no no yes no
2833 d_dname: no no no no
34+d_automount: no no yes no
35+d_manage: no no yes (ref-walk) maybe
2936
3037 --------------------------- inode_operations ---------------------------
3138 prototypes:
@@ -44,8 +51,8 @@ ata *); · 12 unmodified lines
4451 void * (*follow_link) (struct dentry *, struct nameidata *);
4552 void (*put_link) (struct dentry *, struct nameidata *, void *);
4653 void (*truncate) (struct inode *);
47− int (*permission) (struct inode *, int, struct nameidata *);
48− int (*check_acl)(struct inode *, int);
54+ int (*permission) (struct inode *, int, unsigned int);
55+ int (*check_acl)(struct inode *, int, unsigned int);
4956 int (*setattr) (struct dentry *, struct iattr *);
5057 int (*getattr) (struct vfsmount *, struct dentry *, struct kstat *);
5158 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
@@ -53,7 +60,6 @@ ata *); · 1 unmodified line
5360 ssize_t (*listxattr) (struct dentry *, char *, size_t);
5461 int (*removexattr) (struct dentry *, const char *);
5562 void (*truncate_range)(struct inode *, loff_t, loff_t);
56− long (*fallocate)(struct inode *inode, int mode, loff_t offset, loff_t len);
5763 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, u64 len);
5864
5965 locking rules:
@@ -73,7 +79,7 @@ follow_link: no · 13 unmodified lines
7379 put_link: no
7480 truncate: yes (see below)
7581 setattr: yes
76−permission: no
82+permission: no (may not block if called in rcu-walk mode)
7783 check_acl: no
7884 getattr: no
7985 setxattr: yes
@@ -81,7 +87,6 @@ getxattr: no · 1 unmodified line
8187 listxattr: no
8288 removexattr: yes
8389 truncate_range: yes
84−fallocate: no
8590 fiemap: no
8691 Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
8792 victim.
@@ -340,7 +345,6 @@ prototypes: · 252 unmodified lines
340345 int (*fl_grant)(struct file_lock *, struct file_lock *, int);
341346 void (*fl_release_private)(struct file_lock *);
342347 void (*fl_break)(struct file_lock *); /* break_lease callback */
343− int (*fl_mylease)(struct file_lock *, struct file_lock *);
344348 int (*fl_change)(struct file_lock **, int);
345349
346350 locking rules:
@@ -350,7 +354,6 @@ fl_notify: yes no · 3 unmodified lines
350354 fl_grant: no no
351355 fl_release_private: maybe no
352356 fl_break: yes no
353−fl_mylease: yes no
354357 fl_change yes no
355358
356359 --------------------------- buffer_head -----------------------------------
@@ -432,6 +435,7 @@ prototypes: · 75 unmodified lines
432435 ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *,
433436 size_t, unsigned int);
434437 int (*setlease)(struct file *, long, struct file_lock **);
438+ long (*fallocate)(struct file *, int, loff_t, loff_t);
435439 };
436440
437441 locking rules:
Documentation/filesystems/dentry-locking.txt+0−174
@@ -1,174 +0,0 @@
1−RCU-based dcache locking model
2−==============================
3−
4−On many workloads, the most common operation on dcache is to look up a
5−dentry, given a parent dentry and the name of the child. Typically,
6−for every open(), stat() etc., the dentry corresponding to the
7−pathname will be looked up by walking the tree starting with the first
8−component of the pathname and using that dentry along with the next
9−component to look up the next level and so on. Since it is a frequent
10−operation for workloads like multiuser environments and web servers,
11−it is important to optimize this path.
12−
13−Prior to 2.5.10, dcache_lock was acquired in d_lookup and thus in
14−every component during path look-up. Since 2.5.10 onwards, fast-walk
15−algorithm changed this by holding the dcache_lock at the beginning and
16−walking as many cached path component dentries as possible. This
17−significantly decreases the number of acquisition of
18−dcache_lock. However it also increases the lock hold time
19−significantly and affects performance in large SMP machines. Since
20−2.5.62 kernel, dcache has been using a new locking model that uses RCU
21−to make dcache look-up lock-free.
22−
23−The current dcache locking model is not very different from the
24−existing dcache locking model. Prior to 2.5.62 kernel, dcache_lock
25−protected the hash chain, d_child, d_alias, d_lru lists as well as
26−d_inode and several other things like mount look-up. RCU-based changes
27−affect only the way the hash chain is protected. For everything else
28−the dcache_lock must be taken for both traversing as well as
29−updating. The hash chain updates too take the dcache_lock. The
30−significant change is the way d_lookup traverses the hash chain, it
31−doesn't acquire the dcache_lock for this and rely on RCU to ensure
32−that the dentry has not been *freed*.
33−
34−
35−Dcache locking details
36−======================
37−
38−For many multi-user workloads, open() and stat() on files are very
39−frequently occurring operations. Both involve walking of path names to
40−find the dentry corresponding to the concerned file. In 2.4 kernel,
41−dcache_lock was held during look-up of each path component. Contention
42−and cache-line bouncing of this global lock caused significant
43−scalability problems. With the introduction of RCU in Linux kernel,
44−this was worked around by making the look-up of path components during
45−path walking lock-free.
46−
47−
48−Safe lock-free look-up of dcache hash table
49−===========================================
50−
51−Dcache is a complex data structure with the hash table entries also
52−linked together in other lists. In 2.4 kernel, dcache_lock protected
53−all the lists. We applied RCU only on hash chain walking. The rest of
54−the lists are still protected by dcache_lock. Some of the important
55−changes are :
56−
57−1. The deletion from hash chain is done using hlist_del_rcu() macro
58− which doesn't initialize next pointer of the deleted dentry and
59− this allows us to walk safely lock-free while a deletion is
60− happening.
61−
62−2. Insertion of a dentry into the hash table is done using
63− hlist_add_head_rcu() which take care of ordering the writes - the
64− writes to the dentry must be visible before the dentry is
65− inserted. This works in conjunction with hlist_for_each_rcu(),
66− which has since been replaced by hlist_for_each_entry_rcu(), while
67− walking the hash chain. The only requirement is that all
68− initialization to the dentry must be done before
69− hlist_add_head_rcu() since we don't have dcache_lock protection
70− while traversing the hash chain. This isn't different from the
71− existing code.
72−
73−3. The dentry looked up without holding dcache_lock by cannot be
74− returned for walking if it is unhashed. It then may have a NULL
75− d_inode or other bogosity since RCU doesn't protect the other
76− fields in the dentry. We therefore use a flag DCACHE_UNHASHED to
77− indicate unhashed dentries and use this in conjunction with a
78− per-dentry lock (d_lock). Once looked up without the dcache_lock,
79− we acquire the per-dentry lock (d_lock) and check if the dentry is
80− unhashed. If so, the look-up is failed. If not, the reference count
81− of the dentry is increased and the dentry is returned.
82−
83−4. Once a dentry is looked up, it must be ensured during the path walk
84− for that component it doesn't go away. In pre-2.5.10 code, this was
85− done holding a reference to the dentry. dcache_rcu does the same.
86− In some sense, dcache_rcu path walking looks like the pre-2.5.10
87− version.
88−
89−5. All dentry hash chain updates must take the dcache_lock as well as
90− the per-dentry lock in that order. dput() does this to ensure that
91− a dentry that has just been looked up in another CPU doesn't get
92− deleted before dget() can be done on it.
93−
94−6. There are several ways to do reference counting of RCU protected
95− objects. One such example is in ipv4 route cache where deferred
96− freeing (using call_rcu()) is done as soon as the reference count
97− goes to zero. This cannot be done in the case of dentries because
98− tearing down of dentries require blocking (dentry_iput()) which
99− isn't supported from RCU callbacks. Instead, tearing down of
100− dentries happen synchronously in dput(), but actual freeing happens
101− later when RCU grace period is over. This allows safe lock-free
102− walking of the hash chains, but a matched dentry may have been
103− partially torn down. The checking of DCACHE_UNHASHED flag with
104− d_lock held detects such dentries and prevents them from being
105− returned from look-up.
106−
107−
108−Maintaining POSIX rename semantics
109−==================================
110−
111−Since look-up of dentries is lock-free, it can race against a
112−concurrent rename operation. For example, during rename of file A to
113−B, look-up of either A or B must succeed. So, if look-up of B happens
114−after A has been removed from the hash chain but not added to the new
115−hash chain, it may fail. Also, a comparison while the name is being
116−written concurrently by a rename may result in false positive matches
117−violating rename semantics. Issues related to race with rename are
118−handled as described below :
119−
120−1. Look-up can be done in two ways - d_lookup() which is safe from
121− simultaneous renames and __d_lookup() which is not. If
122− __d_lookup() fails, it must be followed up by a d_lookup() to
123− correctly determine whether a dentry is in the hash table or
124− not. d_lookup() protects look-ups using a sequence lock
125− (rename_lock).
126−
127−2. The name associated with a dentry (d_name) may be changed if a
128− rename is allowed to happen simultaneously. To avoid memcmp() in
129− __d_lookup() go out of bounds due to a rename and false positive
130− comparison, the name comparison is done while holding the
131− per-dentry lock. This prevents concurrent renames during this
132− operation.
133−
134−3. Hash table walking during look-up may move to a different bucket as
135− the current dentry is moved to a different bucket due to rename.
136− But we use hlists in dcache hash table and they are
137− null-terminated. So, even if a dentry moves to a different bucket,
138− hash chain walk will terminate. [with a list_head list, it may not
139− since termination is when the list_head in the original bucket is
140− reached]. Since we redo the d_parent check and compare name while
141− holding d_lock, lock-free look-up will not race against d_move().
142−
143−4. There can be a theoretical race when a dentry keeps coming back to
144− original bucket due to double moves. Due to this look-up may
145− consider that it has never moved and can end up in a infinite loop.
146− But this is not any worse that theoretical livelocks we already
147− have in the kernel.
148−
149−
150−Important guidelines for filesystem developers related to dcache_rcu
151−====================================================================
152−
153−1. Existing dcache interfaces (pre-2.5.62) exported to filesystem
154− don't change. Only dcache internal implementation changes. However
155− filesystems *must not* delete from the dentry hash chains directly
156− using the list macros like allowed earlier. They must use dcache
157− APIs like d_drop() or __d_drop() depending on the situation.
158−
159−2. d_flags is now protected by a per-dentry lock (d_lock). All access
160− to d_flags must be protected by it.
161−
162−3. For a hashed dentry, checking of d_count needs to be protected by
163− d_lock.
164−
165−
166−Papers and other documentation on dcache locking
167−================================================
168−
169−1. Scaling dcache with RCU (http://linuxjournal.com/article.php?sid=7124).
170−
171−2. http://lse.sourceforge.net/locking/dcache/dcache.html
172−
173−
174−
Documentation/filesystems/ntfs.txt+5−0
@@ -457,6 +457,11 @@ ChangeLog · 456 unmodified lines
457457
458458 Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
459459
460+2.1.30:
461+ - Fix writev() (it kept writing the first segment over and over again
462+ instead of moving onto subsequent segments).
463+ - Fix crash in ntfs_mft_record_alloc() when mapping the new extent mft
464+ record failed.
460465 2.1.29:
461466 - Fix a deadlock when mounting read-write.
462467 2.1.28:
Documentation/filesystems/path-lookup.txt+382−0
@@ -0,0 +1,382 @@
1+Path walking and name lookup locking
2+====================================
3+
4+Path resolution is the finding a dentry corresponding to a path name string, by
5+performing a path walk. Typically, for every open(), stat() etc., the path name
6+will be resolved. Paths are resolved by walking the namespace tree, starting
7+with the first component of the pathname (eg. root or cwd) with a known dentry,
8+then finding the child of that dentry, which is named the next component in the
9+path string. Then repeating the lookup from the child dentry and finding its
10+child with the next element, and so on.
11+
12+Since it is a frequent operation for workloads like multiuser environments and
13+web servers, it is important to optimize this code.
14+
15+Path walking synchronisation history:
16+Prior to 2.5.10, dcache_lock was acquired in d_lookup (dcache hash lookup) and
17+thus in every component during path look-up. Since 2.5.10 onwards, fast-walk
18+algorithm changed this by holding the dcache_lock at the beginning and walking
19+as many cached path component dentries as possible. This significantly
20+decreases the number of acquisition of dcache_lock. However it also increases
21+the lock hold time significantly and affects performance in large SMP machines.
22+Since 2.5.62 kernel, dcache has been using a new locking model that uses RCU to
23+make dcache look-up lock-free.
24+
25+All the above algorithms required taking a lock and reference count on the
26+dentry that was looked up, so that may be used as the basis for walking the
27+next path element. This is inefficient and unscalable. It is inefficient
28+because of the locks and atomic operations required for every dentry element
29+slows things down. It is not scalable because many parallel applications that
30+are path-walk intensive tend to do path lookups starting from a common dentry
31+(usually, the root "/" or current working directory). So contention on these
32+common path elements causes lock and cacheline queueing.
33+
34+Since 2.6.38, RCU is used to make a significant part of the entire path walk
35+(including dcache look-up) completely "store-free" (so, no locks, atomics, or
36+even stores into cachelines of common dentries). This is known as "rcu-walk"
37+path walking.
38+
39+Path walking overview
40+=====================
41+
42+A name string specifies a start (root directory, cwd, fd-relative) and a
43+sequence of elements (directory entry names), which together refer to a path in
44+the namespace. A path is represented as a (dentry, vfsmount) tuple. The name
45+elements are sub-strings, seperated by '/'.
46+
47+Name lookups will want to find a particular path that a name string refers to
48+(usually the final element, or parent of final element). This is done by taking
49+the path given by the name's starting point (which we know in advance -- eg.
50+current->fs->cwd or current->fs->root) as the first parent of the lookup. Then
51+iteratively for each subsequent name element, look up the child of the current
52+parent with the given name and if it is not the desired entry, make it the
53+parent for the next lookup.
54+
55+A parent, of course, must be a directory, and we must have appropriate
56+permissions on the parent inode to be able to walk into it.
57+
58+Turning the child into a parent for the next lookup requires more checks and
59+procedures. Symlinks essentially substitute the symlink name for the target
60+name in the name string, and require some recursive path walking. Mount points
61+must be followed into (thus changing the vfsmount that subsequent path elements
62+refer to), switching from the mount point path to the root of the particular
63+mounted vfsmount. These behaviours are variously modified depending on the
64+exact path walking flags.
65+
66+Path walking then must, broadly, do several particular things:
67+- find the start point of the walk;
68+- perform permissions and validity checks on inodes;
69+- perform dcache hash name lookups on (parent, name element) tuples;
70+- traverse mount points;
71+- traverse symlinks;
72+- lookup and create missing parts of the path on demand.
73+
74+Safe store-free look-up of dcache hash table
75+============================================
76+
77+Dcache name lookup
78+------------------
79+In order to lookup a dcache (parent, name) tuple, we take a hash on the tuple
80+and use that to select a bucket in the dcache-hash table. The list of entries
81+in that bucket is then walked, and we do a full comparison of each entry
82+against our (parent, name) tuple.
83+
84+The hash lists are RCU protected, so list walking is not serialised with
85+concurrent updates (insertion, deletion from the hash). This is a standard RCU
86+list application with the exception of renames, which will be covered below.
87+
88+Parent and name members of a dentry, as well as its membership in the dcache
89+hash, and its inode are protected by the per-dentry d_lock spinlock. A
90+reference is taken on the dentry (while the fields are verified under d_lock),
91+and this stabilises its d_inode pointer and actual inode. This gives a stable
92+point to perform the next step of our path walk against.
93+
94+These members are also protected by d_seq seqlock, although this offers
95+read-only protection and no durability of results, so care must be taken when
96+using d_seq for synchronisation (see seqcount based lookups, below).
97+
98+Renames
99+-------
100+Back to the rename case. In usual RCU protected lists, the only operations that
101+will happen to an object is insertion, and then eventually removal from the
102+list. The object will not be reused until an RCU grace period is complete.
103+This ensures the RCU list traversal primitives can run over the object without
104+problems (see RCU documentation for how this works).
105+
106+However when a dentry is renamed, its hash value can change, requiring it to be
107+moved to a new hash list. Allocating and inserting a new alias would be
108+expensive and also problematic for directory dentries. Latency would be far to
109+high to wait for a grace period after removing the dentry and before inserting
110+it in the new hash bucket. So what is done is to insert the dentry into the
111+new list immediately.
112+
113+However, when the dentry's list pointers are updated to point to objects in the
114+new list before waiting for a grace period, this can result in a concurrent RCU
115+lookup of the old list veering off into the new (incorrect) list and missing
116+the remaining dentries on the list.
117+
118+There is no fundamental problem with walking down the wrong list, because the
119+dentry comparisons will never match. However it is fatal to miss a matching
120+dentry. So a seqlock is used to detect when a rename has occurred, and so the
121+lookup can be retried.
122+
123+ 1 2 3
124+ +---+ +---+ +---+
125+hlist-->| N-+->| N-+->| N-+->
126+head <--+-P |<-+-P |<-+-P |
127+ +---+ +---+ +---+
128+
129+Rename of dentry 2 may require it deleted from the above list, and inserted
130+into a new list. Deleting 2 gives the following list.
131+
132+ 1 3
133+ +---+ +---+ (don't worry, the longer pointers do not
134+hlist-->| N-+-------->| N-+-> impose a measurable performance overhead
135+head <--+-P |<--------+-P | on modern CPUs)
136+ +---+ +---+
137+ ^ 2 ^
138+ | +---+ |
139+ | | N-+----+
140+ +----+-P |
141+ +---+
142+
143+This is a standard RCU-list deletion, which leaves the deleted object's
144+pointers intact, so a concurrent list walker that is currently looking at
145+object 2 will correctly continue to object 3 when it is time to traverse the
146+next object.
147+
148+However, when inserting object 2 onto a new list, we end up with this:
149+
150+ 1 3
151+ +---+ +---+
152+hlist-->| N-+-------->| N-+->
153+head <--+-P |<--------+-P |
154+ +---+ +---+
155+ 2
156+ +---+
157+ | N-+---->
158+ <----+-P |
159+ +---+
160+
161+Because we didn't wait for a grace period, there may be a concurrent lookup
162+still at 2. Now when it follows 2's 'next' pointer, it will walk off into
163+another list without ever having checked object 3.
164+
165+A related, but distinctly different, issue is that of rename atomicity versus
166+lookup operations. If a file is renamed from 'A' to 'B', a lookup must only
167+find either 'A' or 'B'. So if a lookup of 'A' returns NULL, a subsequent lookup
168+of 'B' must succeed (note the reverse is not true).
169+
170+Between deleting the dentry from the old hash list, and inserting it on the new
171+hash list, a lookup may find neither 'A' nor 'B' matching the dentry. The same
172+rename seqlock is also used to cover this race in much the same way, by
173+retrying a negative lookup result if a rename was in progress.
174+
175+Seqcount based lookups
176+----------------------
177+In refcount based dcache lookups, d_lock is used to serialise access to
178+the dentry, stabilising it while comparing its name and parent and then
179+taking a reference count (the reference count then gives a stable place to
180+start the next part of the path walk from).
181+
182+As explained above, we would like to do path walking without taking locks or
183+reference counts on intermediate dentries along the path. To do this, a per
184+dentry seqlock (d_seq) is used to take a "coherent snapshot" of what the dentry
185+looks like (its name, parent, and inode). That snapshot is then used to start
186+the next part of the path walk. When loading the coherent snapshot under d_seq,
187+care must be taken to load the members up-front, and use those pointers rather
188+than reloading from the dentry later on (otherwise we'd have interesting things
189+like d_inode going NULL underneath us, if the name was unlinked).
190+
191+Also important is to avoid performing any destructive operations (pretty much:
192+no non-atomic stores to shared data), and to recheck the seqcount when we are
193+"done" with the operation. Retry or abort if the seqcount does not match.
194+Avoiding destructive or changing operations means we can easily unwind from
195+failure.
196+
197+What this means is that a caller, provided they are holding RCU lock to
198+protect the dentry object from disappearing, can perform a seqcount based
199+lookup which does not increment the refcount on the dentry or write to
200+it in any way. This returned dentry can be used for subsequent operations,
201+provided that d_seq is rechecked after that operation is complete.
202+
203+Inodes are also rcu freed, so the seqcount lookup dentry's inode may also be
204+queried for permissions.
205+
206+With this two parts of the puzzle, we can do path lookups without taking
207+locks or refcounts on dentry elements.
208+
209+RCU-walk path walking design
210+============================
211+
212+Path walking code now has two distinct modes, ref-walk and rcu-walk. ref-walk
213+is the traditional[*] way of performing dcache lookups using d_lock to
214+serialise concurrent modifications to the dentry and take a reference count on
215+it. ref-walk is simple and obvious, and may sleep, take locks, etc while path
216+walking is operating on each dentry. rcu-walk uses seqcount based dentry
217+lookups, and can perform lookup of intermediate elements without any stores to
218+shared data in the dentry or inode. rcu-walk can not be applied to all cases,
219+eg. if the filesystem must sleep or perform non trivial operations, rcu-walk
220+must be switched to ref-walk mode.
221+
222+[*] RCU is still used for the dentry hash lookup in ref-walk, but not the full
223+ path walk.
224+
225+Where ref-walk uses a stable, refcounted ``parent'' to walk the remaining
226+path string, rcu-walk uses a d_seq protected snapshot. When looking up a
227+child of this parent snapshot, we open d_seq critical section on the child
228+before closing d_seq critical section on the parent. This gives an interlocking
229+ladder of snapshots to walk down.
230+
231+
232+ proc 101
233+ /----------------\
234+ / comm: "vi" \
235+ / fs.root: dentry0 \
236+ \ fs.cwd: dentry2 /
237+ \ /
238+ \----------------/
239+
240+So when vi wants to open("/home/npiggin/test.c", O_RDWR), then it will
241+start from current->fs->root, which is a pinned dentry. Alternatively,
242+"./test.c" would start from cwd; both names refer to the same path in
243+the context of proc101.
244+
245+ dentry 0
246+ +---------------------+ rcu-walk begins here, we note d_seq, check the
247+ | name: "/" | inode's permission, and then look up the next
248+ | inode: 10 | path element which is "home"...
249+ | children:"home", ...|
250+ +---------------------+
251+ |
252+ dentry 1 V
253+ +---------------------+ ... which brings us here. We find dentry1 via
254+ | name: "home" | hash lookup, then note d_seq and compare name
255+ | inode: 678 | string and parent pointer. When we have a match,
256+ | children:"npiggin" | we now recheck the d_seq of dentry0. Then we
257+ +---------------------+ check inode and look up the next element.
258+ |
259+ dentry2 V
260+ +---------------------+ Note: if dentry0 is now modified, lookup is
261+ | name: "npiggin" | not necessarily invalid, so we need only keep a
262+ | inode: 543 | parent for d_seq verification, and grandparents
263+ | children:"a.c", ... | can be forgotten.
264+ +---------------------+
265+ |
266+ dentry3 V
267+ +---------------------+ At this point we have our destination dentry.
268+ | name: "a.c" | We now take its d_lock, verify d_seq of this
269+ | inode: 14221 | dentry. If that checks out, we can increment
270+ | children:NULL | its refcount because we're holding d_lock.
271+ +---------------------+
272+
273+Taking a refcount on a dentry from rcu-walk mode, by taking its d_lock,
274+re-checking its d_seq, and then incrementing its refcount is called
275+"dropping rcu" or dropping from rcu-walk into ref-walk mode.
276+
277+It is, in some sense, a bit of a house of cards. If the seqcount check of the
278+parent snapshot fails, the house comes down, because we had closed the d_seq
279+section on the grandparent, so we have nothing left to stand on. In that case,
280+the path walk must be fully restarted (which we do in ref-walk mode, to avoid
281+live locks). It is costly to have a full restart, but fortunately they are
282+quite rare.
283+
284+When we reach a point where sleeping is required, or a filesystem callout
285+requires ref-walk, then instead of restarting the walk, we attempt to drop rcu
286+at the last known good dentry we have. Avoiding a full restart in ref-walk in
287+these cases is fundamental for performance and scalability because blocking
288+operations such as creates and unlinks are not uncommon.
289+
290+The detailed design for rcu-walk is like this:
291+* LOOKUP_RCU is set in nd->flags, which distinguishes rcu-walk from ref-walk.
292+* Take the RCU lock for the entire path walk, starting with the acquiring
293+ of the starting path (eg. root/cwd/fd-path). So now dentry refcounts are
294+ not required for dentry persistence.
295+* synchronize_rcu is called when unregistering a filesystem, so we can
296+ access d_ops and i_ops during rcu-walk.
297+* Similarly take the vfsmount lock for the entire path walk. So now mnt
298+ refcounts are not required for persistence. Also we are free to perform mount
299+ lookups, and to assume dentry mount points and mount roots are stable up and
300+ down the path.
301+* Have a per-dentry seqlock to protect the dentry name, parent, and inode,
302+ so we can load this tuple atomically, and also check whether any of its
303+ members have changed.
304+* Dentry lookups (based on parent, candidate string tuple) recheck the parent
305+ sequence after the child is found in case anything changed in the parent
306+ during the path walk.
307+* inode is also RCU protected so we can load d_inode and use the inode for
308+ limited things.
309+* i_mode, i_uid, i_gid can be tested for exec permissions during path walk.
310+* i_op can be loaded.
311+* When the destination dentry is reached, drop rcu there (ie. take d_lock,
312+ verify d_seq, increment refcount).
313+* If seqlock verification fails anywhere along the path, do a full restart
314+ of the path lookup in ref-walk mode. -ECHILD tends to be used (for want of
315+ a better errno) to signal an rcu-walk failure.
316+
317+The cases where rcu-walk cannot continue are:
318+* NULL dentry (ie. any uncached path element)
319+* Following links
320+
321+It may be possible eventually to make following links rcu-walk aware.
322+
323+Uncached path elements will always require dropping to ref-walk mode, at the
324+very least because i_mutex needs to be grabbed, and objects allocated.
325+
326+Final note:
327+"store-free" path walking is not strictly store free. We take vfsmount lock
328+and refcounts (both of which can be made per-cpu), and we also store to the
329+stack (which is essentially CPU-local), and we also have to take locks and
330+refcount on final dentry.
331+
332+The point is that shared data, where practically possible, is not locked
333+or stored into. The result is massive improvements in performance and
334+scalability of path resolution.
335+
336+
337+Interesting statistics
338+======================
339+
340+The following table gives rcu lookup statistics for a few simple workloads
341+(2s12c24t Westmere, debian non-graphical system). Ungraceful are attempts to
342+drop rcu that fail due to d_seq failure and requiring the entire path lookup
343+again. Other cases are successful rcu-drops that are required before the final
344+element, nodentry for missing dentry, revalidate for filesystem revalidate
345+routine requiring rcu drop, permission for permission check requiring drop,
346+and link for symlink traversal requiring drop.
347+
348+ rcu-lookups restart nodentry link revalidate permission
349+bootup 47121 0 4624 1010 10283 7852
350+dbench 25386793 0 6778659(26.7%) 55 549 1156
351+kbuild 2696672 10 64442(2.3%) 108764(4.0%) 1 1590
352+git diff 39605 0 28 2 0 106
353+vfstest 24185492 4945 708725(2.9%) 1076136(4.4%) 0 2651
354+
355+What this shows is that failed rcu-walk lookups, ie. ones that are restarted
356+entirely with ref-walk, are quite rare. Even the "vfstest" case which
357+specifically has concurrent renames/mkdir/rmdir/ creat/unlink/etc to excercise
358+such races is not showing a huge amount of restarts.
359+
360+Dropping from rcu-walk to ref-walk mean that we have encountered a dentry where
361+the reference count needs to be taken for some reason. This is either because
362+we have reached the target of the path walk, or because we have encountered a
363+condition that can't be resolved in rcu-walk mode. Ideally, we drop rcu-walk
364+only when we have reached the target dentry, so the other statistics show where
365+this does not happen.
366+
367+Note that a graceful drop from rcu-walk mode due to something such as the
368+dentry not existing (which can be common) is not necessarily a failure of
369+rcu-walk scheme, because some elements of the path may have been walked in
370+rcu-walk mode. The further we get from common path elements (such as cwd or
371+root), the less contended the dentry is likely to be. The closer we are to
372+common path elements, the more likely they will exist in dentry cache.
373+
374+
375+Papers and other documentation on dcache locking
376+================================================
377+
378+1. Scaling dcache with RCU (http://linuxjournal.com/article.php?sid=7124).
379+
380+2. http://lse.sourceforge.net/locking/dcache/dcache.html
381+
382+
Documentation/filesystems/porting+77−1
@@ -216,7 +216,6 @@ had ->revalidate()) add calls in ->follow_link()/->readlink(). · 215 unmodified lines
216216 ->d_parent changes are not protected by BKL anymore. Read access is safe
217217 if at least one of the following is true:
218218 * filesystem has no cross-directory rename()
219− * dcache_lock is held
220219 * we know that parent had been locked (e.g. we are looking at
221220 ->d_parent of ->lookup() argument).
222221 * we are called from ->rename().
@@ -318,3 +317,80 @@ if it's zero is not *and* *never* *had* *been* enough. Final unlink() and iput( · 95 unmodified lines
318317 may happen while the inode is in the middle of ->write_inode(); e.g. if you blindly
319318 free the on-disk inode, you may end up doing that while ->write_inode() is writing
320319 to it.
320+
321+---
322+[mandatory]
323+
324+ .d_delete() now only advises the dcache as to whether or not to cache
325+unreferenced dentries, and is now only called when the dentry refcount goes to
326+0. Even on 0 refcount transition, it must be able to tolerate being called 0,
327+1, or more times (eg. constant, idempotent).
328+
329+---
330+[mandatory]
331+
332+ .d_compare() calling convention and locking rules are significantly
333+changed. Read updated documentation in Documentation/filesystems/vfs.txt (and
334+look at examples of other filesystems) for guidance.
335+
336+---
337+[mandatory]
338+
339+ .d_hash() calling convention and locking rules are significantly
340+changed. Read updated documentation in Documentation/filesystems/vfs.txt (and
341+look at examples of other filesystems) for guidance.
342+
343+---
344+[mandatory]
345+ dcache_lock is gone, replaced by fine grained locks. See fs/dcache.c
346+for details of what locks to replace dcache_lock with in order to protect
347+particular things. Most of the time, a filesystem only needs ->d_lock, which
348+protects *all* the dcache state of a given dentry.
349+
350+--
351+[mandatory]
352+
353+ Filesystems must RCU-free their inodes, if they can have been accessed
354+via rcu-walk path walk (basically, if the file can have had a path name in the
355+vfs namespace).
356+
357+ i_dentry and i_rcu share storage in a union, and the vfs expects
358+i_dentry to be reinitialized before it is freed, so an:
359+
360+ INIT_LIST_HEAD(&inode->i_dentry);
361+
362+must be done in the RCU callback.
363+
364+--
365+[recommended]
366+ vfs now tries to do path walking in "rcu-walk mode", which avoids
367+atomic operations and scalability hazards on dentries and inodes (see
368+Documentation/filesystems/path-lookup.txt). d_hash and d_compare changes
369+(above) are examples of the changes required to support this. For more complex
370+filesystem callbacks, the vfs drops out of rcu-walk mode before the fs call, so
371+no changes are required to the filesystem. However, this is costly and loses
372+the benefits of rcu-walk mode. We will begin to add filesystem callbacks that
373+are rcu-walk aware, shown below. Filesystems should take advantage of this
374+where possible.
375+
376+--
377+[mandatory]
378+ d_revalidate is a callback that is made on every path element (if
379+the filesystem provides it), which requires dropping out of rcu-walk mode. This
380+may now be called in rcu-walk mode (nd->flags & LOOKUP_RCU). -ECHILD should be
381+returned if the filesystem cannot handle rcu-walk. See
382+Documentation/filesystems/vfs.txt for more details.
383+
384+ permission and check_acl are inode permission checks that are called
385+on many or all directory inodes on the way down a path walk (to check for
386+exec permission). These must now be rcu-walk aware (flags & IPERM_FLAG_RCU).
387+See Documentation/filesystems/vfs.txt for more details.
388+
389+--
390+[mandatory]
391+ In ->fallocate() you must check the mode option passed in. If your
392+filesystem does not support hole punching (deallocating space in the middle of a
393+file) you must return -EOPNOTSUPP if FALLOC_FL_PUNCH_HOLE is set in mode.
394+Currently you can only have FALLOC_FL_PUNCH_HOLE with FALLOC_FL_KEEP_SIZE set,
395+so the i_size should not change when hole punching, even when puching the end of
396+a file off.
Documentation/filesystems/proc.txt+31−0
@@ -375,6 +375,7 @@ Anonymous: 0 kB · 374 unmodified lines
375375 Swap: 0 kB
376376 KernelPageSize: 4 kB
377377 MMUPageSize: 4 kB
378+Locked: 374 kB
378379
379380 The first of these lines shows the same information as is displayed for the
380381 mapping in /proc/PID/maps. The remaining lines show the size of the mapping
@@ -670,6 +671,8 @@ varies by architecture and compile options. The following is from a · 289 unmodified lines
670671
671672 > cat /proc/meminfo
672673
674+The "Locked" indicates whether the mapping is locked in memory or not.
675+
673676
674677 MemTotal: 16344972 kB
675678 MemFree: 13634064 kB
@@ -1181,6 +1184,30 @@ Table 1-12: Files in /proc/fs/ext4/<devname> · 505 unmodified lines
11811184 mb_groups details of multiblock allocator buddy cache of free blocks
11821185 ..............................................................................
11831186
1187+2.0 /proc/consoles
1188+------------------
1189+Shows registered system console lines.
1190+
1191+To see which character device lines are currently used for the system console
1192+/dev/console, you may simply look into the file /proc/consoles:
1193+
1194+ > cat /proc/consoles
1195+ tty0 -WU (ECp) 4:7
1196+ ttyS0 -W- (Ep) 4:64
1197+
1198+The columns are:
1199+
1200+ device name of the device
1201+ operations R = can do read operations
1202+ W = can do write operations
1203+ U = can do unblank
1204+ flags E = it is enabled
1205+ C = it is prefered console
1206+ B = it is primary boot console
1207+ p = it is used for printk buffer
1208+ b = it is not a TTY but a Braille device
1209+ a = it is safe to use when cpu is offline
1210+ major:minor major and minor number of the device separated by a colon
11841211
11851212 ------------------------------------------------------------------------------
11861213 Summary
@@ -1296,6 +1323,10 @@ scaled linearly with /proc/<pid>/oom_score_adj. · 109 unmodified lines
12961323 Writing to /proc/<pid>/oom_score_adj or /proc/<pid>/oom_adj will change the
12971324 other with its scaled value.
12981325
1326+The value of /proc/<pid>/oom_score_adj may be reduced no lower than the last
1327+value set by a CAP_SYS_RESOURCE process. To reduce the value any lower
1328+requires CAP_SYS_RESOURCE.
1329+
12991330 NOTICE: /proc/<pid>/oom_adj is deprecated and will be removed, please see
13001331 Documentation/feature-removal-schedule.txt.
13011332
Documentation/filesystems/vfs.txt+100−17
@@ -325,7 +325,8 @@ struct inode_operations { · 324 unmodified lines
325325 void * (*follow_link) (struct dentry *, struct nameidata *);
326326 void (*put_link) (struct dentry *, struct nameidata *, void *);
327327 void (*truncate) (struct inode *);
328− int (*permission) (struct inode *, int, struct nameidata *);
328+ int (*permission) (struct inode *, int, unsigned int);
329+ int (*check_acl)(struct inode *, int, unsigned int);
329330 int (*setattr) (struct dentry *, struct iattr *);
330331 int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
331332 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
@@ -414,6 +415,13 @@ otherwise noted. · 82 unmodified lines
414415 permission: called by the VFS to check for access rights on a POSIX-like
415416 filesystem.
416417
418+ May be called in rcu-walk mode (flags & IPERM_FLAG_RCU). If in rcu-walk
419+ mode, the filesystem must check the permission without blocking or
420+ storing to the inode.
421+
422+ If a situation is encountered that rcu-walk cannot handle, return
423+ -ECHILD and it will be called again in ref-walk mode.
424+
417425 setattr: called by the VFS to set attributes for a file. This method
418426 is called by chmod(2) and related system calls.
419427
@@ -847,12 +855,17 @@ defined: · 427 unmodified lines
847855
848856 struct dentry_operations {
849857 int (*d_revalidate)(struct dentry *, struct nameidata *);
850− int (*d_hash) (struct dentry *, struct qstr *);
851− int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);
852− int (*d_delete)(struct dentry *);
858+ int (*d_hash)(const struct dentry *, const struct inode *,
859+ struct qstr *);
860+ int (*d_compare)(const struct dentry *, const struct inode *,
861+ const struct dentry *, const struct inode *,
862+ unsigned int, const char *, const struct qstr *);
863+ int (*d_delete)(const struct dentry *);
853864 void (*d_release)(struct dentry *);
854865 void (*d_iput)(struct dentry *, struct inode *);
855866 char *(*d_dname)(struct dentry *, char *, int);
867+ struct vfsmount *(*d_automount)(struct path *);
868+ int (*d_manage)(struct dentry *, bool, bool);
856869 };
857870
858871 d_revalidate: called when the VFS needs to revalidate a dentry. This
@@ -860,13 +873,45 @@ struct dentry_operations { · 1 unmodified line
860873 dcache. Most filesystems leave this as NULL, because all their
861874 dentries in the dcache are valid
862875
863− d_hash: called when the VFS adds a dentry to the hash table
876+ d_revalidate may be called in rcu-walk mode (nd->flags & LOOKUP_RCU).
877+ If in rcu-walk mode, the filesystem must revalidate the dentry without
878+ blocking or storing to the dentry, d_parent and d_inode should not be
879+ used without care (because they can go NULL), instead nd->inode should
880+ be used.
881+
882+ If a situation is encountered that rcu-walk cannot handle, return
883+ -ECHILD and it will be called again in ref-walk mode.
884+
885+ d_hash: called when the VFS adds a dentry to the hash table. The first
886+ dentry passed to d_hash is the parent directory that the name is
887+ to be hashed into. The inode is the dentry's inode.
888+
889+ Same locking and synchronisation rules as d_compare regarding
890+ what is safe to dereference etc.
864891
865− d_compare: called when a dentry should be compared with another
892+ d_compare: called to compare a dentry name with a given name. The first
893+ dentry is the parent of the dentry to be compared, the second is
894+ the parent's inode, then the dentry and inode (may be NULL) of the
895+ child dentry. len and name string are properties of the dentry to be
896+ compared. qstr is the name to compare it with.
866897
867− d_delete: called when the last reference to a dentry is
868− deleted. This means no-one is using the dentry, however it is
869− still valid and in the dcache
898+ Must be constant and idempotent, and should not take locks if
899+ possible, and should not or store into the dentry or inodes.
900+ Should not dereference pointers outside the dentry or inodes without
901+ lots of care (eg. d_parent, d_inode, d_name should not be used).
902+
903+ However, our vfsmount is pinned, and RCU held, so the dentries and
904+ inodes won't disappear, neither will our sb or filesystem module.
905+ ->i_sb and ->d_sb may be used.
906+
907+ It is a tricky calling convention because it needs to be called under
908+ "rcu-walk", ie. without any locks or references on things.
909+
910+ d_delete: called when the last reference to a dentry is dropped and the
911+ dcache is deciding whether or not to cache it. Return 1 to delete
912+ immediately, or 0 to cache the dentry. Default is NULL which means to
913+ always cache a reachable dentry. d_delete must be constant and
914+ idempotent.
870915
871916 d_release: called when a dentry is really deallocated
872917
@@ -887,6 +932,47 @@ struct dentry_operations { · 14 unmodified lines
887932 at the end of the buffer, and returns a pointer to the first char.
888933 dynamic_dname() helper function is provided to take care of this.
889934
935+ d_automount: called when an automount dentry is to be traversed (optional).
936+ This should create a new VFS mount record and return the record to the
937+ caller. The caller is supplied with a path parameter giving the
938+ automount directory to describe the automount target and the parent
939+ VFS mount record to provide inheritable mount parameters. NULL should
940+ be returned if someone else managed to make the automount first. If
941+ the vfsmount creation failed, then an error code should be returned.
942+ If -EISDIR is returned, then the directory will be treated as an
943+ ordinary directory and returned to pathwalk to continue walking.
944+
945+ If a vfsmount is returned, the caller will attempt to mount it on the
946+ mountpoint and will remove the vfsmount from its expiration list in
947+ the case of failure. The vfsmount should be returned with 2 refs on
948+ it to prevent automatic expiration - the caller will clean up the
949+ additional ref.
950+
951+ This function is only used if DCACHE_NEED_AUTOMOUNT is set on the
952+ dentry. This is set by __d_instantiate() if S_AUTOMOUNT is set on the
953+ inode being added.
954+
955+ d_manage: called to allow the filesystem to manage the transition from a
956+ dentry (optional). This allows autofs, for example, to hold up clients
957+ waiting to explore behind a 'mountpoint' whilst letting the daemon go
958+ past and construct the subtree there. 0 should be returned to let the
959+ calling process continue. -EISDIR can be returned to tell pathwalk to
960+ use this directory as an ordinary directory and to ignore anything
961+ mounted on it and not to check the automount flag. Any other error
962+ code will abort pathwalk completely.
963+
964+ If the 'mounting_here' parameter is true, then namespace_sem is being
965+ held by the caller and the function should not initiate any mounts or
966+ unmounts that it will then wait for.
967+
968+ If the 'rcu_walk' parameter is true, then the caller is doing a
969+ pathwalk in RCU-walk mode. Sleeping is not permitted in this mode,
970+ and the caller can be asked to leave it and call again by returing
971+ -ECHILD.
972+
973+ This function is only used if DCACHE_MANAGE_TRANSIT is set on the
974+ dentry being transited from.
975+
890976 Example :
891977
892978 static char *pipefs_dname(struct dentry *dent, char *buffer, int buflen)
@@ -910,14 +996,11 @@ manipulate dentries: · 17 unmodified lines
910996 the usage count)
911997
912998 dput: close a handle for a dentry (decrements the usage count). If
913− the usage count drops to 0, the "d_delete" method is called
914− and the dentry is placed on the unused list if the dentry is
915− still in its parents hash list. Putting the dentry on the
916− unused list just means that if the system needs some RAM, it
917− goes through the unused list of dentries and deallocates them.
918− If the dentry has already been unhashed and the usage count
919− drops to 0, in this case the dentry is deallocated after the
920− "d_delete" method is called
999+ the usage count drops to 0, and the dentry is still in its
1000+ parent's hash, the "d_delete" method is called to check whether
1001+ it should be cached. If it should not be cached, or if the dentry
1002+ is not hashed, it is deleted. Otherwise cached dentries are put
1003+ into an LRU list to be reclaimed on memory shortage.
9211004
9221005 d_drop: this unhashes a dentry from its parents hash list. A
9231006 subsequent call to dput() will deallocate the dentry if its
Documentation/hwmon/adm9240+1−1
@@ -155,7 +155,7 @@ connected to a normally open switch. · 154 unmodified lines
155155 The ADM9240 provides an internal open drain on this line, and may output
156156 a 20 ms active low pulse to reset an external Chassis Intrusion latch.
157157
158−Clear the CI latch by writing value 1 to the sysfs chassis_clear file.
158+Clear the CI latch by writing value 0 to the sysfs intrusion0_alarm file.
159159
160160 Alarm flags reported as 16-bit word
161161
Documentation/hwmon/ads7828+1−1
@@ -9,7 +9,7 @@ Supported chips: · 8 unmodified lines
99 http://focus.ti.com/lit/ds/symlink/ads7828.pdf
1010
1111 Authors:
12− Steve Hardy <steve@linuxrealtime.co.uk>
12+ Steve Hardy <shardy@redhat.com>
1313
1414 Module Parameters
1515 -----------------
Documentation/hwmon/dme1737+7−5
@@ -42,7 +42,7 @@ Description · 41 unmodified lines
4242 This driver implements support for the hardware monitoring capabilities of the
4343 SMSC DME1737 and Asus A8000 (which are the same), SMSC SCH5027, SCH311x,
4444 and SCH5127 Super-I/O chips. These chips feature monitoring of 3 temp sensors
45−temp[1-3] (2 remote diodes and 1 internal), 7 voltages in[0-6] (6 external and
45+temp[1-3] (2 remote diodes and 1 internal), 8 voltages in[0-7] (7 external and
4646 1 internal) and up to 6 fan speeds fan[1-6]. Additionally, the chips implement
4747 up to 5 PWM outputs pwm[1-3,5-6] for controlling fan speeds both manually and
4848 automatically.
@@ -105,6 +105,7 @@ SCH5127: · 56 unmodified lines
105105 in4: V1_IN 0V - 1.5V
106106 in5: VTR (+3.3V standby) 0V - 4.38V
107107 in6: Vbat (+3.0V) 0V - 4.38V
108+ in7: Vtrip (+1.5V) 0V - 1.99V
108109
109110 Each voltage input has associated min and max limits which trigger an alarm
110111 when crossed.
@@ -217,10 +218,10 @@ cpu0_vid RO CPU core reference voltage in · 106 unmodified lines
217218 vrm RW Voltage regulator module version
218219 number.
219220
220−in[0-6]_input RO Measured voltage in millivolts.
221−in[0-6]_min RW Low limit for voltage input.
222−in[0-6]_max RW High limit for voltage input.
223−in[0-6]_alarm RO Voltage input alarm. Returns 1 if
221+in[0-7]_input RO Measured voltage in millivolts.
222+in[0-7]_min RW Low limit for voltage input.
223+in[0-7]_max RW High limit for voltage input.
224+in[0-7]_alarm RO Voltage input alarm. Returns 1 if
224225 voltage input is or went outside the
225226 associated min-max range, 0 otherwise.
226227
@@ -324,3 +325,4 @@ fan5 opt opt · 97 unmodified lines
324325 pwm5 opt opt
325326 fan6 opt opt
326327 pwm6 opt opt
328+in7 yes
Documentation/hwmon/ds620+34−0
@@ -0,0 +1,34 @@
1+Kernel driver ds620
2+===================
3+
4+Supported chips:
5+ * Dallas Semiconductor DS620
6+ Prefix: 'ds620'
7+ Datasheet: Publicly available at the Dallas Semiconductor website
8+ http://www.dalsemi.com/
9+
10+Authors:
11+ Roland Stigge <stigge@antcom.de>
12+ based on ds1621.c by
13+ Christian W. Zuckschwerdt <zany@triq.net>
14+
15+Description
16+-----------
17+
18+The DS620 is a (one instance) digital thermometer and thermostat. It has both
19+high and low temperature limits which can be user defined (i.e. programmed
20+into non-volatile on-chip registers). Temperature range is -55 degree Celsius
21+to +125. Between 0 and 70 degree Celsius, accuracy is 0.5 Kelvin. The value
22+returned via sysfs displays post decimal positions.
23+
24+The thermostat function works as follows: When configured via platform_data
25+(struct ds620_platform_data) .pomode == 0 (default), the thermostat output pin
26+PO is always low. If .pomode == 1, the thermostat is in PO_LOW mode. I.e., the
27+output pin PO becomes active when the temperature falls below temp1_min and
28+stays active until the temperature goes above temp1_max.
29+
30+Likewise, with .pomode == 2, the thermostat is in PO_HIGH mode. I.e., the PO
31+output pin becomes active when the temperature goes above temp1_max and stays
32+active until the temperature falls below temp1_min.
33+
34+The PO output pin of the DS620 operates active-low.
Documentation/hwmon/jc42+15−6
@@ -51,7 +51,8 @@ Supported chips: · 50 unmodified lines
5151 * JEDEC JC 42.4 compliant temperature sensor chips
5252 Prefix: 'jc42'
5353 Addresses scanned: I2C 0x18 - 0x1f
54− Datasheet: -
54+ Datasheet:
55+ http://www.jedec.org/sites/default/files/docs/4_01_04R19.pdf
5556
5657 Author:
5758 Guenter Roeck <guenter.roeck@ericsson.com>
@@ -60,7 +61,11 @@ Author: · 2 unmodified lines
6061 Description
6162 -----------
6263
63−This driver implements support for JEDEC JC 42.4 compliant temperature sensors.
64+This driver implements support for JEDEC JC 42.4 compliant temperature sensors,
65+which are used on many DDR3 memory modules for mobile devices and servers. Some
66+systems use the sensor to prevent memory overheating by automatically throttling
67+the memory controller.
68+
6469 The driver auto-detects the chips listed above, but can be manually instantiated
6570 to support other JC 42.4 compliant chips.
6671
@@ -81,15 +86,19 @@ limits. The chip supports only a single register to configure the hysteresis, · 14 unmodified lines
8186 which applies to all limits. This register can be written by writing into
8287 temp1_crit_hyst. Other hysteresis attributes are read-only.
8388
89+If the BIOS has configured the sensor for automatic temperature management, it
90+is likely that it has locked the registers, i.e., that the temperature limits
91+cannot be changed.
92+
8493 Sysfs entries
8594 -------------
8695
8796 temp1_input Temperature (RO)
88−temp1_min Minimum temperature (RW)
89−temp1_max Maximum temperature (RW)
90−temp1_crit Critical high temperature (RW)
97+temp1_min Minimum temperature (RO or RW)
98+temp1_max Maximum temperature (RO or RW)
99+temp1_crit Critical high temperature (RO or RW)
91100
92−temp1_crit_hyst Critical hysteresis temperature (RW)
101+temp1_crit_hyst Critical hysteresis temperature (RO or RW)
93102 temp1_max_hyst Maximum hysteresis temperature (RO)
94103
95104 temp1_min_alarm Temperature low alarm
Documentation/hwmon/k10temp+7−1
@@ -9,6 +9,8 @@ Supported chips: · 8 unmodified lines
99 Socket S1G3: Athlon II, Sempron, Turion II
1010 * AMD Family 11h processors:
1111 Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)
12+* AMD Family 12h processors: "Llano"
13+* AMD Family 14h processors: "Brazos" (C/E/G-Series)
1214
1315 Prefix: 'k10temp'
1416 Addresses scanned: PCI space
@@ -17,10 +19,14 @@ Supported chips: · 2 unmodified lines
1719 http://support.amd.com/us/Processor_TechDocs/31116.pdf
1820 BIOS and Kernel Developer's Guide (BKDG) for AMD Family 11h Processors:
1921 http://support.amd.com/us/Processor_TechDocs/41256.pdf
22+ BIOS and Kernel Developer's Guide (BKDG) for AMD Family 14h Models 00h-0Fh Processors:
23+ http://support.amd.com/us/Processor_TechDocs/43170.pdf
2024 Revision Guide for AMD Family 10h Processors:
2125 http://support.amd.com/us/Processor_TechDocs/41322.pdf
2226 Revision Guide for AMD Family 11h Processors:
2327 http://support.amd.com/us/Processor_TechDocs/41788.pdf
28+ Revision Guide for AMD Family 14h Models 00h-0Fh Processors:
29+ http://support.amd.com/us/Processor_TechDocs/47534.pdf
2430 AMD Family 11h Processor Power and Thermal Data Sheet for Notebooks:
2531 http://support.amd.com/us/Processor_TechDocs/43373.pdf
2632 AMD Family 10h Server and Workstation Processor Power and Thermal Data Sheet:
@@ -34,7 +40,7 @@ Description · 7 unmodified lines
3440 -----------
3541
3642 This driver permits reading of the internal temperature sensor of AMD
37−Family 10h and 11h processors.
43+Family 10h/11h/12h/14h processors.
3844
3945 All these processors have a sensor, but on those for Socket F or AM2+,
4046 the sensor may return inconsistent values (erratum 319). The driver
Documentation/hwmon/lm93+7−0
@@ -6,6 +6,10 @@ Supported chips: · 5 unmodified lines
66 Prefix 'lm93'
77 Addresses scanned: I2C 0x2c-0x2e
88 Datasheet: http://www.national.com/ds.cgi/LM/LM93.pdf
9+ * National Semiconductor LM94
10+ Prefix 'lm94'
11+ Addresses scanned: I2C 0x2c-0x2e
12+ Datasheet: http://www.national.com/ds.cgi/LM/LM94.pdf
913
1014 Authors:
1115 Mark M. Hoffman <mhoffman@lightlink.com>
@@ -56,6 +60,9 @@ previous motherboard management ASICs and uses some of the LM85's features · 44 unmodified lines
5660 for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual
5761 processor Xeon class motherboard with a minimum of external components.
5862
63+LM94 is also supported in LM93 compatible mode. Extra sensors and features of
64+LM94 are not supported.
65+
5966
6067 User Interface
6168 --------------
Documentation/hwmon/sht21+49−0
@@ -0,0 +1,49 @@
1+Kernel driver sht21
2+===================
3+
4+Supported chips:
5+ * Sensirion SHT21
6+ Prefix: 'sht21'
7+ Addresses scanned: none
8+ Datasheet: Publicly available at the Sensirion website
9+ http://www.sensirion.com/en/pdf/product_information/Datasheet-humidity-sensor-SHT21.pdf
10+
11+ * Sensirion SHT25
12+ Prefix: 'sht21'
13+ Addresses scanned: none
14+ Datasheet: Publicly available at the Sensirion website
15+ http://www.sensirion.com/en/pdf/product_information/Datasheet-humidity-sensor-SHT25.pdf
16+
17+Author:
18+ Urs Fleisch <urs.fleisch@sensirion.com>
19+
20+Description
21+-----------
22+
23+The SHT21 and SHT25 are humidity and temperature sensors in a DFN package of
24+only 3 x 3 mm footprint and 1.1 mm height. The difference between the two
25+devices is the higher level of precision of the SHT25 (1.8% relative humidity,
26+0.2 degree Celsius) compared with the SHT21 (2.0% relative humidity,
27+0.3 degree Celsius).
28+
29+The devices communicate with the I2C protocol. All sensors are set to the same
30+I2C address 0x40, so an entry with I2C_BOARD_INFO("sht21", 0x40) can be used
31+in the board setup code.
32+
33+sysfs-Interface
34+---------------
35+
36+temp1_input - temperature input
37+humidity1_input - humidity input
38+
39+Notes
40+-----
41+
42+The driver uses the default resolution settings of 12 bit for humidity and 14
43+bit for temperature, which results in typical measurement times of 22 ms for
44+humidity and 66 ms for temperature. To keep self heating below 0.1 degree
45+Celsius, the device should not be active for more than 10% of the time,
46+e.g. maximum two measurements per second at the given resolution.
47+
48+Different resolutions, the on-chip heater, using the CRC checksum and reading
49+the serial number are not supported yet.
Documentation/hwmon/sysfs-interface+42−7
@@ -384,10 +384,20 @@ curr[1-*]_min Current min value. · 383 unmodified lines
384384 Unit: milliampere
385385 RW
386386
387+curr[1-*]_lcrit Current critical low value
388+ Unit: milliampere
389+ RW
390+
391+curr[1-*]_crit Current critical high value.
392+ Unit: milliampere
393+ RW
394+
387395 curr[1-*]_input Current input value
388396 Unit: milliampere
389397 RO
390398
399+Also see the Alarms section for status flags associated with currents.
400+
391401 *********
392402 * Power *
393403 *********
@@ -450,13 +460,6 @@ power[1-*]_accuracy Accuracy of the power meter. · 56 unmodified lines
450460 Unit: Percent
451461 RO
452462
453−power[1-*]_alarm 1 if the system is drawing more power than the
454− cap allows; 0 otherwise. A poll notification is
455− sent to this file when the power use exceeds the
456− cap. This file only appears if the cap is known
457− to be enforced by hardware.
458− RO
459−
460463 power[1-*]_cap If power use rises above this limit, the
461464 system should take action to reduce power use.
462465 A poll notification is sent to this file if the
@@ -479,6 +482,20 @@ power[1-*]_cap_min Minimum cap that can be set. · 16 unmodified lines
479482 Unit: microWatt
480483 RO
481484
485+power[1-*]_max Maximum power.
486+ Unit: microWatt
487+ RW
488+
489+power[1-*]_crit Critical maximum power.
490+ If power rises to or above this limit, the
491+ system is expected take drastic action to reduce
492+ power consumption, such as a system shutdown or
493+ a forced powerdown of some devices.
494+ Unit: microWatt
495+ RW
496+
497+Also see the Alarms section for status flags associated with power readings.
498+
482499 **********
483500 * Energy *
484501 **********
@@ -488,6 +505,15 @@ energy[1-*]_input Cumulative energy use · 3 unmodified lines
488505 RO
489506
490507
508+************
509+* Humidity *
510+************
511+
512+humidity[1-*]_input Humidity
513+ Unit: milli-percent (per cent mille, pcm)
514+ RO
515+
516+
491517 **********
492518 * Alarms *
493519 **********
@@ -501,6 +527,7 @@ implementation. · 7 unmodified lines
501527
502528 in[0-*]_alarm
503529 curr[1-*]_alarm
530+power[1-*]_alarm
504531 fan[1-*]_alarm
505532 temp[1-*]_alarm
506533 Channel alarm
@@ -512,12 +539,20 @@ OR · 5 unmodified lines
512539
513540 in[0-*]_min_alarm
514541 in[0-*]_max_alarm
542+in[0-*]_lcrit_alarm
543+in[0-*]_crit_alarm
515544 curr[1-*]_min_alarm
516545 curr[1-*]_max_alarm
546+curr[1-*]_lcrit_alarm
547+curr[1-*]_crit_alarm
548+power[1-*]_cap_alarm
549+power[1-*]_max_alarm
550+power[1-*]_crit_alarm
517551 fan[1-*]_min_alarm
518552 fan[1-*]_max_alarm
519553 temp[1-*]_min_alarm
520554 temp[1-*]_max_alarm
555+temp[1-*]_lcrit_alarm
521556 temp[1-*]_crit_alarm
522557 temp[1-*]_emergency_alarm
523558 Limit alarm
Documentation/hwmon/w83627hf+22−0
@@ -91,3 +91,25 @@ isaset -y -f 0x2e 0xaa · 90 unmodified lines
9191
9292 The above sequence assumes a Super-I/O config space at 0x2e/0x2f, but
9393 0x4e/0x4f is also possible.
94+
95+Voltage pin mapping
96+-------------------
97+
98+Here is a summary of the voltage pin mapping for the W83627THF. This
99+can be useful to convert data provided by board manufacturers into
100+working libsensors configuration statements.
101+
102+ W83627THF |
103+ Pin | Name | Register | Sysfs attribute
104+-----------------------------------------------------
105+ 100 | CPUVCORE | 20h | in0
106+ 99 | VIN0 | 21h | in1
107+ 98 | VIN1 | 22h | in2
108+ 97 | VIN2 | 24h | in4
109+ 114 | AVCC | 23h | in3
110+ 61 | 5VSB | 50h (bank 5) | in7
111+ 74 | VBAT | 51h (bank 5) | in8
112+
113+For other supported devices, you'll have to take the hard path and
114+look up the information in the datasheet yourself (and then add it
115+to this document please.)
Documentation/hwmon/w83793+1−1
@@ -92,7 +92,7 @@ This driver implements support for Winbond W83793G/W83793R chips. · 91 unmodified lines
9292
9393 * Chassis
9494 If the case open alarm triggers, it will stay in this state unless cleared
95− by any write to the sysfs file "chassis".
95+ by writing 0 to the sysfs file "intrusion0_alarm".
9696
9797 * VID and VRM
9898 The VRM version is detected automatically, don't modify the it unless you
Documentation/i2c/muxes/gpio-i2cmux+65−0
@@ -0,0 +1,65 @@
1+Kernel driver gpio-i2cmux
2+
3+Author: Peter Korsgaard <peter.korsgaard@barco.com>
4+
5+Description
6+-----------
7+
8+gpio-i2cmux is an i2c mux driver providing access to I2C bus segments
9+from a master I2C bus and a hardware MUX controlled through GPIO pins.
10+
11+E.G.:
12+
13+ ---------- ---------- Bus segment 1 - - - - -
14+ | | SCL/SDA | |-------------- | |
15+ | |------------| |
16+ | | | | Bus segment 2 | |
17+ | Linux | GPIO 1..N | MUX |--------------- Devices
18+ | |------------| | | |
19+ | | | | Bus segment M
20+ | | | |---------------| |
21+ ---------- ---------- - - - - -
22+
23+SCL/SDA of the master I2C bus is multiplexed to bus segment 1..M
24+according to the settings of the GPIO pins 1..N.
25+
26+Usage
27+-----
28+
29+gpio-i2cmux uses the platform bus, so you need to provide a struct
30+platform_device with the platform_data pointing to a struct
31+gpio_i2cmux_platform_data with the I2C adapter number of the master
32+bus, the number of bus segments to create and the GPIO pins used
33+to control it. See include/linux/gpio-i2cmux.h for details.
34+
35+E.G. something like this for a MUX providing 4 bus segments
36+controlled through 3 GPIO pins:
37+
38+#include <linux/gpio-i2cmux.h>
39+#include <linux/platform_device.h>
40+
41+static const unsigned myboard_gpiomux_gpios[] = {
42+ AT91_PIN_PC26, AT91_PIN_PC25, AT91_PIN_PC24
43+};
44+
45+static const unsigned myboard_gpiomux_values[] = {
46+ 0, 1, 2, 3
47+};
48+
49+static struct gpio_i2cmux_platform_data myboard_i2cmux_data = {
50+ .parent = 1,
51+ .base_nr = 2, /* optional */
52+ .values = myboard_gpiomux_values,
53+ .n_values = ARRAY_SIZE(myboard_gpiomux_values),
54+ .gpios = myboard_gpiomux_gpios,
55+ .n_gpios = ARRAY_SIZE(myboard_gpiomux_gpios),
56+ .idle = 4, /* optional */
57+};
58+
59+static struct platform_device myboard_i2cmux = {
60+ .name = "gpio-i2cmux",
61+ .id = 0,
62+ .dev = {
63+ .platform_data = &myboard_i2cmux_data,
64+ },
65+};
Documentation/input/cma3000_d0x.txt+115−0
@@ -0,0 +1,115 @@
1+Kernel driver for CMA3000-D0x
2+============================
3+
4+Supported chips:
5+* VTI CMA3000-D0x
6+Datasheet:
7+ CMA3000-D0X Product Family Specification 8281000A.02.pdf
8+ <http://www.vti.fi/en/>
9+
10+Author: Hemanth V <hemanthv@ti.com>
11+
12+
13+Description
14+-----------
15+CMA3000 Tri-axis accelerometer supports Motion detect, Measurement and
16+Free fall modes.
17+
18+Motion Detect Mode: Its the low power mode where interrupts are generated only
19+when motion exceeds the defined thresholds.
20+
21+Measurement Mode: This mode is used to read the acceleration data on X,Y,Z
22+axis and supports 400, 100, 40 Hz sample frequency.
23+
24+Free fall Mode: This mode is intended to save system resources.
25+
26+Threshold values: Chip supports defining threshold values for above modes
27+which includes time and g value. Refer product specifications for more details.
28+
29+CMA3000 chip supports mutually exclusive I2C and SPI interfaces for
30+communication, currently the driver supports I2C based communication only.
31+Initial configuration for bus mode is set in non volatile memory and can later
32+be modified through bus interface command.
33+
34+Driver reports acceleration data through input subsystem. It generates ABS_MISC
35+event with value 1 when free fall is detected.
36+
37+Platform data need to be configured for initial default values.
38+
39+Platform Data
40+-------------
41+fuzz_x: Noise on X Axis
42+
43+fuzz_y: Noise on Y Axis
44+
45+fuzz_z: Noise on Z Axis
46+
47+g_range: G range in milli g i.e 2000 or 8000
48+
49+mode: Default Operating mode
50+
51+mdthr: Motion detect g range threshold value
52+
53+mdfftmr: Motion detect and free fall time threshold value
54+
55+ffthr: Free fall g range threshold value
56+
57+Input Interface
58+--------------
59+Input driver version is 1.0.0
60+Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
61+Input device name: "cma3000-accelerometer"
62+Supported events:
63+ Event type 0 (Sync)
64+ Event type 3 (Absolute)
65+ Event code 0 (X)
66+ Value 47
67+ Min -8000
68+ Max 8000
69+ Fuzz 200
70+ Event code 1 (Y)
71+ Value -28
72+ Min -8000
73+ Max 8000
74+ Fuzz 200
75+ Event code 2 (Z)
76+ Value 905
77+ Min -8000
78+ Max 8000
79+ Fuzz 200
80+ Event code 40 (Misc)
81+ Value 0
82+ Min 0
83+ Max 1
84+ Event type 4 (Misc)
85+
86+
87+Register/Platform parameters Description
88+----------------------------------------
89+
90+mode:
91+ 0: power down mode
92+ 1: 100 Hz Measurement mode
93+ 2: 400 Hz Measurement mode
94+ 3: 40 Hz Measurement mode
95+ 4: Motion Detect mode (default)
96+ 5: 100 Hz Free fall mode
97+ 6: 40 Hz Free fall mode
98+ 7: Power off mode
99+
100+grange:
101+ 2000: 2000 mg or 2G Range
102+ 8000: 8000 mg or 8G Range
103+
104+mdthr:
105+ X: X * 71mg (8G Range)
106+ X: X * 18mg (2G Range)
107+
108+mdfftmr:
109+ X: (X & 0x70) * 100 ms (MDTMR)
110+ (X & 0x0F) * 2.5 ms (FFTMR 400 Hz)
111+ (X & 0x0F) * 10 ms (FFTMR 100 Hz)
112+
113+ffthr:
114+ X: (X >> 2) * 18mg (2G Range)
115+ X: (X & 0x0F) * 71 mg (8G Range)
Documentation/input/ff.txt+3−1
@@ -49,7 +49,9 @@ This information is subject to change. · 48 unmodified lines
4949 #include <linux/input.h>
5050 #include <sys/ioctl.h>
5151
52−unsigned long features[1 + FF_MAX/sizeof(unsigned long)];
52+#define BITS_TO_LONGS(x) \
53+ (((x) + 8 * sizeof (unsigned long) - 1) / (8 * sizeof (unsigned long)))
54+unsigned long features[BITS_TO_LONGS(FF_CNT)];
5355 int ioctl(int file_descriptor, int request, unsigned long *features);
5456
5557 "request" must be EVIOCGBIT(EV_FF, size of features array in bytes )
Documentation/input/multi-touch-protocol.txt+34−19
@@ -1,6 +1,6 @@
11 Multi-touch (MT) Protocol
22 -------------------------
3− Copyright (C) 2009 Henrik Rydberg <rydberg@euromail.se>
3+ Copyright (C) 2009-2010 Henrik Rydberg <rydberg@euromail.se>
44
55
66 Introduction
@@ -161,19 +161,24 @@ against the glass. The inner region will increase, and in general, the · 154 unmodified lines
161161 ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than
162162 unity, is related to the contact pressure. For pressure-based devices,
163163 ABS_MT_PRESSURE may be used to provide the pressure on the contact area
164−instead.
164+instead. Devices capable of contact hovering can use ABS_MT_DISTANCE to
165+indicate the distance between the contact and the surface.
165166
166167 In addition to the MAJOR parameters, the oval shape of the contact can be
167168 described by adding the MINOR parameters, such that MAJOR and MINOR are the
168169 major and minor axis of an ellipse. Finally, the orientation of the oval
169170 shape can be describe with the ORIENTATION parameter.
170171
172+For type A devices, further specification of the touch shape is possible
173+via ABS_MT_BLOB_ID.
174+
171175 The ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a
172−contact or a pen or something else. Devices with more granular information
173−may specify general shapes as blobs, i.e., as a sequence of rectangular
174−shapes grouped together by an ABS_MT_BLOB_ID. Finally, for the few devices
175−that currently support it, the ABS_MT_TRACKING_ID event may be used to
176−report contact tracking from hardware [5].
176+finger or a pen or something else. Finally, the ABS_MT_TRACKING_ID event
177+may be used to track identified contacts over time [5].
178+
179+In the type B protocol, ABS_MT_TOOL_TYPE and ABS_MT_TRACKING_ID are
180+implicitly handled by input core; drivers should instead call
181+input_mt_report_slot_state().
177182
178183
179184 Event Semantics
@@ -213,6 +218,12 @@ The pressure, in arbitrary units, on the contact area. May be used instead · 33 unmodified lines
213218 of TOUCH and WIDTH for pressure-based devices or any device with a spatial
214219 signal intensity distribution.
215220
221+ABS_MT_DISTANCE
222+
223+The distance, in surface units, between the contact and the surface. Zero
224+distance means the contact is touching the surface. A positive number means
225+the contact is hovering above the surface.
226+
216227 ABS_MT_ORIENTATION
217228
218229 The orientation of the ellipse. The value should describe a signed quarter
@@ -240,21 +251,24 @@ ABS_MT_TOOL_TYPE · 21 unmodified lines
240251 The type of approaching tool. A lot of kernel drivers cannot distinguish
241252 between different tool types, such as a finger or a pen. In such cases, the
242253 event should be omitted. The protocol currently supports MT_TOOL_FINGER and
243−MT_TOOL_PEN [2].
254+MT_TOOL_PEN [2]. For type B devices, this event is handled by input core;
255+drivers should instead use input_mt_report_slot_state().
244256
245257 ABS_MT_BLOB_ID
246258
247259 The BLOB_ID groups several packets together into one arbitrarily shaped
248−contact. This is a low-level anonymous grouping for type A devices, and
260+contact. The sequence of points forms a polygon which defines the shape of
261+the contact. This is a low-level anonymous grouping for type A devices, and
249262 should not be confused with the high-level trackingID [5]. Most type A
250263 devices do not have blob capability, so drivers can safely omit this event.
251264
252265 ABS_MT_TRACKING_ID
253266
254267 The TRACKING_ID identifies an initiated contact throughout its life cycle
255−[5]. This event is mandatory for type B devices. The value range of the
256−TRACKING_ID should be large enough to ensure unique identification of a
257−contact maintained over an extended period of time.
268+[5]. The value range of the TRACKING_ID should be large enough to ensure
269+unique identification of a contact maintained over an extended period of
270+time. For type B devices, this event is handled by input core; drivers
271+should instead use input_mt_report_slot_state().
258272
259273
260274 Event Computation
@@ -301,18 +315,19 @@ and with ORIENTATION, one can detect twisting of fingers. · 40 unmodified lines
301315 Notes
302316 -----
303317
304−In order to stay compatible with existing applications, the data
305−reported in a finger packet must not be recognized as single-touch
306−events. In addition, all finger data must bypass input filtering,
307−since subsequent events of the same type refer to different fingers.
318+In order to stay compatible with existing applications, the data reported
319+in a finger packet must not be recognized as single-touch events.
320+
321+For type A devices, all finger data bypasses input filtering, since
322+subsequent events of the same type refer to different fingers.
308323
309−The first kernel driver to utilize the MT protocol is the bcm5974 driver,
310−where examples can be found.
324+For example usage of the type A protocol, see the bcm5974 driver. For
325+example usage of the type B protocol, see the hid-egalax driver.
311326
312327 [1] With the extension ABS_MT_APPROACH_X and ABS_MT_APPROACH_Y, the
313328 difference between the contact position and the approaching tool position
314329 could be used to derive tilt.
315330 [2] The list can of course be extended.
316−[3] Multitouch X driver project: http://bitmath.org/code/multitouch/.
331+[3] The mtdev project: http://bitmath.org/code/mtdev/.
317332 [4] See the section on event computation.
318333 [5] See the section on finger tracking.
Documentation/ioctl/ioctl-number.txt+1−7
@@ -155,7 +155,6 @@ Code Seq#(hex) Include File Comments · 154 unmodified lines
155155 'Q' all linux/soundcard.h
156156 'R' 00-1F linux/random.h conflict!
157157 'R' 01 linux/rfkill.h conflict!
158−'R' 01-0F media/rds.h conflict!
159158 'R' C0-DF net/bluetooth/rfcomm.h
160159 'S' all linux/cdrom.h conflict!
161160 'S' 80-81 scsi/scsi_ioctl.h conflict!
@@ -194,7 +193,6 @@ Code Seq#(hex) Include File Comments · 32 unmodified lines
194193 <http://lrcwww.epfl.ch/>
195194 'b' 00-FF conflict! bit3 vme host bridge
196195 <mailto:natalia@nikhefk.nikhef.nl>
197−'b' 00-0F media/bt819.h conflict!
198196 'c' all linux/cm4000_cs.h conflict!
199197 'c' 00-7F linux/comstats.h conflict!
200198 'c' 00-7F linux/coda.h conflict!
@@ -249,7 +247,7 @@ Code Seq#(hex) Include File Comments · 48 unmodified lines
249247 'p' 40-7F linux/nvram.h
250248 'p' 80-9F linux/ppdev.h user-space parport
251249 <mailto:tim@cyberelk.net>
252−'p' A1-A4 linux/pps.h LinuxPPS
250+'p' A1-A5 linux/pps.h LinuxPPS
253251 <mailto:giometti@linux.it>
254252 'q' 00-1F linux/serio.h
255253 'q' 80-FF linux/telephony.h Internet PhoneJACK, Internet LineJACK
@@ -260,14 +258,11 @@ Code Seq#(hex) Include File Comments · 4 unmodified lines
260258 't' 80-8F linux/isdn_ppp.h
261259 't' 90 linux/toshiba.h
262260 'u' 00-1F linux/smb_fs.h gone
263−'v' all linux/videodev.h conflict!
264261 'v' 00-1F linux/ext2_fs.h conflict!
265262 'v' 00-1F linux/fs.h conflict!
266263 'v' 00-0F linux/sonypi.h conflict!
267−'v' C0-CF drivers/media/video/ov511.h conflict!
268264 'v' C0-DF media/pwc-ioctl.h conflict!
269265 'v' C0-FF linux/meye.h conflict!
270−'v' C0-CF drivers/media/video/zoran/zoran.h conflict!
271266 'v' D0-DF drivers/media/video/cpia2/cpia2dev.h conflict!
272267 'w' all CERN SCI driver
273268 'y' 00-1F packet based user level communications
@@ -278,7 +273,6 @@ Code Seq#(hex) Include File Comments · 4 unmodified lines
278273 <mailto:oe@port.de>
279274 'z' 10-4F drivers/s390/crypto/zcrypt_api.h conflict!
280275 0x80 00-1F linux/fb.h
281−0x88 00-3F media/ovcamchip.h
282276 0x89 00-06 arch/x86/include/asm/sockios.h
283277 0x89 0B-DF linux/sockios.h
284278 0x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range
Documentation/iostats.txt+1−1
@@ -81,7 +81,7 @@ Field 9 -- # of I/Os currently in progress · 80 unmodified lines
8181 The only field that should go to zero. Incremented as requests are
8282 given to appropriate struct request_queue and decremented as they finish.
8383 Field 10 -- # of milliseconds spent doing I/Os
84− This field is increases so long as field 9 is nonzero.
84+ This field increases so long as field 9 is nonzero.
8585 Field 11 -- weighted # of milliseconds spent doing I/Os
8686 This field is incremented at each I/O start, I/O completion, I/O
8787 merge, or read of these stats by the number of I/Os in progress
Documentation/kbuild/kbuild.txt+8−0
@@ -73,6 +73,14 @@ Specify the output directory when building the kernel. · 72 unmodified lines
7373 The output directory can also be specified using "O=...".
7474 Setting "O=..." takes precedence over KBUILD_OUTPUT.
7575
76+KBUILD_DEBARCH
77+--------------------------------------------------
78+For the deb-pkg target, allows overriding the normal heuristics deployed by
79+deb-pkg. Normally deb-pkg attempts to guess the right architecture based on
80+the UTS_MACHINE variable, and on some architectures also the kernel config.
81+The value of KBUILD_DEBARCH is assumed (not checked) to be a valid Debian
82+architecture.
83+
7684 ARCH
7785 --------------------------------------------------
7886 Set ARCH to the architecture to be built.
Documentation/kbuild/kconfig-language.txt+5−2
@@ -112,7 +112,6 @@ applicable everywhere (see syntax). · 111 unmodified lines
112112 (no prompts anywhere) and for symbols with no dependencies.
113113 That will limit the usefulness but on the other hand avoid
114114 the illegal configurations all over.
115− kconfig should one day warn about such things.
116115
117116 - numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
118117 This allows to limit the range of possible input values for int
@@ -268,7 +267,7 @@ separate list of options. · 149 unmodified lines
268267
269268 choices:
270269
271− "choice"
270+ "choice" [symbol]
272271 <choice options>
273272 <choice block>
274273 "endchoice"
@@ -282,6 +281,10 @@ single driver can be compiled/loaded into the kernel, but all drivers · 7 unmodified lines
282281 can be compiled as modules.
283282 A choice accepts another option "optional", which allows to set the
284283 choice to 'n' and no entry needs to be selected.
284+If no [symbol] is associated with a choice, then you can not have multiple
285+definitions of that choice. If a [symbol] is associated to the choice,
286+then you may define the same choice (ie. with the same entries) in another
287+place.
285288
286289 comment:
287290
Documentation/kbuild/makefiles.txt+15−0
@@ -1136,6 +1136,21 @@ When kbuild executes, the following steps are followed (roughly): · 1135 unmodified lines
11361136 resulting in the target file being recompiled for no
11371137 obvious reason.
11381138
1139+ dtc
1140+ Create flattend device tree blob object suitable for linking
1141+ into vmlinux. Device tree blobs linked into vmlinux are placed
1142+ in an init section in the image. Platform code *must* copy the
1143+ blob to non-init memory prior to calling unflatten_device_tree().
1144+
1145+ Example:
1146+ #arch/x86/platform/ce4100/Makefile
1147+ clean-files := *dtb.S
1148+
1149+ DTC_FLAGS := -p 1024
1150+ obj-y += foo.dtb.o
1151+
1152+ $(obj)/%.dtb: $(src)/%.dts
1153+ $(call cmd,dtc)
11391154
11401155 --- 6.7 Custom kbuild commands
11411156
Documentation/kdump/kdump.txt+9−6
@@ -65,18 +65,21 @@ Install kexec-tools · 64 unmodified lines
6565
6666 2) Download the kexec-tools user-space package from the following URL:
6767
68−http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools.tar.gz
68+http://kernel.org/pub/linux/utils/kernel/kexec/kexec-tools.tar.gz
6969
7070 This is a symlink to the latest version.
7171
7272 The latest kexec-tools git tree is available at:
7373
74−git://git.kernel.org/pub/scm/linux/kernel/git/horms/kexec-tools.git
75−or
76−http://www.kernel.org/git/?p=linux/kernel/git/horms/kexec-tools.git
74+git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git
75+and
76+http://www.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git
77+
78+There is also a gitweb interface available at
79+http://www.kernel.org/git/?p=utils/kernel/kexec/kexec-tools.git
7780
7881 More information about kexec-tools can be found at
79−http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/README.html
82+http://www.kernel.org/pub/linux/utils/kernel/kexec/README.html
8083
8184 3) Unpack the tarball with the tar command, as follows:
8285
@@ -439,6 +442,6 @@ To Do · 356 unmodified lines
439442 Contact
440443 =======
441444
442−Vivek Goyal (vgoyal@in.ibm.com)
445+Vivek Goyal (vgoyal@redhat.com)
443446 Maneesh Soni (maneesh@in.ibm.com)
444447
Documentation/kernel-docs.txt+2−25
@@ -537,7 +537,7 @@ · 536 unmodified lines
537537 Notes: Further information in
538538 http://www.oreilly.com/catalog/linuxdrive2/
539539
540− * Title: "Linux Device Drivers, 3nd Edition"
540+ * Title: "Linux Device Drivers, 3rd Edition"
541541 Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
542542 Publisher: O'Reilly & Associates.
543543 Date: 2005.
@@ -592,14 +592,6 @@ · 48 unmodified lines
592592 Pages: 600.
593593 ISBN: 0-13-101908-2
594594
595− * Title: "The Design and Implementation of the 4.4 BSD UNIX
596− Operating System"
597− Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
598− John S. Quarterman.
599− Publisher: Addison-Wesley.
600− Date: 1996.
601− ISBN: 0-201-54979-4
602−
603595 * Title: "Programming for the real world - POSIX.4"
604596 Author: Bill O. Gallmeister.
605597 Publisher: O'Reilly & Associates, Inc..
@@ -610,28 +602,13 @@ · 4 unmodified lines
610602 POSIX. Good reference.
611603
612604 * Title: "UNIX Systems for Modern Architectures: Symmetric
613− Multiprocesssing and Caching for Kernel Programmers"
605+ Multiprocessing and Caching for Kernel Programmers"
614606 Author: Curt Schimmel.
615607 Publisher: Addison Wesley.
616608 Date: June, 1994.
617609 Pages: 432.
618610 ISBN: 0-201-63338-8
619611
620− * Title: "The Design and Implementation of the 4.3 BSD UNIX
621− Operating System"
622− Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
623− Karels, John S. Quarterman.
624− Publisher: Addison-Wesley.
625− Date: 1989 (reprinted with corrections on October, 1990).
626− ISBN: 0-201-06196-1
627−
628− * Title: "The Design of the UNIX Operating System"
629− Author: Maurice J. Bach.
630− Publisher: Prentice Hall.
631− Date: 1986.
632− Pages: 471.
633− ISBN: 0-13-201757-1
634−
635612 MISCELLANEOUS:
636613
637614 * Name: linux/Documentation
Documentation/kernel-parameters.txt+38−33
@@ -43,11 +43,11 @@ parameter is applicable: · 42 unmodified lines
4343 AVR32 AVR32 architecture is enabled.
4444 AX25 Appropriate AX.25 support is enabled.
4545 BLACKFIN Blackfin architecture is enabled.
46+ DRM Direct Rendering Management support is enabled.
47+ DYNAMIC_DEBUG Build in debug messages and enable them at runtime
4648 EDD BIOS Enhanced Disk Drive Services (EDD) is enabled
4749 EFI EFI Partitioning (GPT) is enabled
4850 EIDE EIDE/ATAPI support is enabled.
49− DRM Direct Rendering Management support is enabled.
50− DYNAMIC_DEBUG Build in debug messages and enable them at runtime
5151 FB The frame buffer device is enabled.
5252 GCOV GCOV profiling is enabled.
5353 HW Appropriate hardware is enabled.
@@ -144,6 +144,11 @@ a fixed number of characters. This limit depends on the architecture · 90 unmodified lines
144144 and is between 256 and 4096 characters. It is defined in the file
145145 ./include/asm/setup.h as COMMAND_LINE_SIZE.
146146
147+Finally, the [KMG] suffix is commonly described after a number of kernel
148+parameter values. These 'K', 'M', and 'G' letters represent the _binary_
149+multipliers 'Kilo', 'Mega', and 'Giga', equalling 2^10, 2^20, and 2^30
150+bytes respectively. Such letter suffixes can also be entirely omitted.
151+
147152
148153 acpi= [HW,ACPI,X86]
149154 Advanced Configuration and Power Interface
@@ -199,11 +204,6 @@ and is between 256 and 4096 characters. It is defined in the file · 49 unmodified lines
199204 unusable. The "log_buf_len" parameter may be useful
200205 if you need to capture more output.
201206
202− acpi_display_output= [HW,ACPI]
203− acpi_display_output=vendor
204− acpi_display_output=video
205− See above.
206−
207207 acpi_irq_balance [HW,ACPI]
208208 ACPI will balance active IRQs
209209 default in APIC mode
@@ -403,6 +403,10 @@ and is between 256 and 4096 characters. It is defined in the file · 193 unmodified lines
403403 bttv.pll= See Documentation/video4linux/bttv/Insmod-options
404404 bttv.tuner= and Documentation/video4linux/bttv/CARDLIST
405405
406+ bulk_remove=off [PPC] This parameter disables the use of the pSeries
407+ firmware feature for flushing multiple hpte entries
408+ at a time.
409+
406410 c101= [NET] Moxa C101 synchronous serial card
407411
408412 cachesize= [BUGS=X86-32] Override level 2 CPU cache size detection.
@@ -546,16 +550,20 @@ and is between 256 and 4096 characters. It is defined in the file · 137 unmodified lines
546550 Format:
547551 <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
548552
549− crashkernel=nn[KMG]@ss[KMG]
550− [KNL] Reserve a chunk of physical memory to
551− hold a kernel to switch to with kexec on panic.
553+ crashkernel=size[KMG][@offset[KMG]]
554+ [KNL] Using kexec, Linux can switch to a 'crash kernel'
555+ upon panic. This parameter reserves the physical
556+ memory region [offset, offset + size] for that kernel
557+ image. If '@offset' is omitted, then a suitable offset
558+ is selected automatically. Check
559+ Documentation/kdump/kdump.txt for further details.
552560
553561 crashkernel=range1:size1[,range2:size2,...][@offset]
554562 [KNL] Same as above, but depends on the memory
555563 in the running system. The syntax of range is
556564 start-[end] where start and end are both
557565 a memory unit (amount[KMG]). See also
558− Documentation/kdump/kdump.txt for a example.
566+ Documentation/kdump/kdump.txt for an example.
559567
560568 cs89x0_dma= [HW,NET]
561569 Format: <dma>
@@ -655,11 +663,6 @@ and is between 256 and 4096 characters. It is defined in the file · 93 unmodified lines
655663
656664 dscc4.setup= [NET]
657665
658− dynamic_printk Enables pr_debug()/dev_dbg() calls if
659− CONFIG_DYNAMIC_PRINTK_DEBUG has been enabled.
660− These can also be switched on/off via
661− <debugfs>/dynamic_printk/modules
662−
663666 earlycon= [KNL] Output early console device and options.
664667 uart[8250],io,<addr>[,options]
665668 uart[8250],mmio,<addr>[,options]
@@ -884,6 +887,7 @@ and is between 256 and 4096 characters. It is defined in the file · 218 unmodified lines
884887 controller
885888 i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX
886889 controllers
890+ i8042.notimeout [HW] Ignore timeout condition signalled by conroller
887891 i8042.reset [HW] Reset the controller during init and cleanup
888892 i8042.unlock [HW] Unlock (ignore) the keylock
889893
@@ -1267,10 +1271,9 @@ and is between 256 and 4096 characters. It is defined in the file · 377 unmodified lines
12671271 6 (KERN_INFO) informational
12681272 7 (KERN_DEBUG) debug-level messages
12691273
1270− log_buf_len=n Sets the size of the printk ring buffer, in bytes.
1271− Format: { n | nk | nM }
1272− n must be a power of two. The default size
1273− is set in the kernel config file.
1274+ log_buf_len=n[KMG] Sets the size of the printk ring buffer,
1275+ in bytes. n must be a power of two. The default
1276+ size is set in the kernel config file.
12741277
12751278 logo.nologo [FB] Disables display of the built-in Linux logo.
12761279 This may be used to provide more screen space for
@@ -1490,6 +1493,10 @@ and is between 256 and 4096 characters. It is defined in the file · 213 unmodified lines
14901493 mtdparts= [MTD]
14911494 See drivers/mtd/cmdlinepart.c.
14921495
1496+ multitce=off [PPC] This parameter disables the use of the pSeries
1497+ firmware feature for updating multiple TCE entries
1498+ at a time.
1499+
14931500 onenand.bdry= [HW,MTD] Flex-OneNAND Boundary Configuration
14941501
14951502 Format: [die0_boundary][,die0_lock][,die1_boundary][,die1_lock]
@@ -1579,20 +1586,12 @@ and is between 256 and 4096 characters. It is defined in the file · 83 unmodified lines
15791586
15801587 nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels
15811588 Format: [panic,][num]
1582− Valid num: 0,1,2
1589+ Valid num: 0
15831590 0 - turn nmi_watchdog off
1584− 1 - use the IO-APIC timer for the NMI watchdog
1585− 2 - use the local APIC for the NMI watchdog using
1586− a performance counter. Note: This will use one
1587− performance counter and the local APIC's performance
1588− vector.
15891591 When panic is specified, panic when an NMI watchdog
15901592 timeout occurs.
15911593 This is useful when you use a panic=... timeout and
15921594 need the box quickly up again.
1593− Instead of 1 and 2 it is possible to use the following
1594− symbolic names: lapic and ioapic
1595− Example: nmi_watchdog=2 or nmi_watchdog=panic,lapic
15961595
15971596 netpoll.carrier_timeout=
15981597 [NET] Specifies amount of time (in seconds) that
@@ -1622,6 +1621,8 @@ and is between 256 and 4096 characters. It is defined in the file · 23 unmodified lines
16221621 noapic [SMP,APIC] Tells the kernel to not make use of any
16231622 IOAPICs that may be present in the system.
16241623
1624+ noautogroup Disable scheduler automatic task group creation.
1625+
16251626 nobats [PPC] Do not use BATs for mapping kernel lowmem
16261627 on "Classic" PPC cores.
16271628
@@ -1707,6 +1708,9 @@ and is between 256 and 4096 characters. It is defined in the file · 79 unmodified lines
17071708
17081709 no-kvmclock [X86,KVM] Disable paravirtualized KVM clock driver
17091710
1711+ no-kvmapf [X86,KVM] Disable paravirtualized asynchronous page
1712+ fault handling.
1713+
17101714 nolapic [X86-32,APIC] Do not enable or use the local APIC.
17111715
17121716 nolapic_timer [X86-32,APIC] Do not use the local APIC timer.
@@ -2467,12 +2471,13 @@ and is between 256 and 4096 characters. It is defined in the file · 754 unmodified lines
24672471 to facilitate early boot debugging.
24682472 See also Documentation/trace/events.txt
24692473
2470− tsc= Disable clocksource-must-verify flag for TSC.
2474+ tsc= Disable clocksource stability checks for TSC.
24712475 Format: <string>
24722476 [x86] reliable: mark tsc clocksource as reliable, this
2473− disables clocksource verification at runtime.
2474− Used to enable high-resolution timer mode on older
2475− hardware, and in virtualized environment.
2477+ disables clocksource verification at runtime, as well
2478+ as the stability checks done at bootup. Used to enable
2479+ high-resolution timer mode on older hardware, and in
2480+ virtualized environment.
24762481 [x86] noirqtime: Do not use TSC to do irq accounting.
24772482 Used to run time disable IRQ_TIME_ACCOUNTING on any
24782483 platforms where RDTSC is slow and this accounting
Documentation/keys-trusted-encrypted.txt+145−0
@@ -0,0 +1,145 @@
1+ Trusted and Encrypted Keys
2+
3+Trusted and Encrypted Keys are two new key types added to the existing kernel
4+key ring service. Both of these new types are variable length symmetic keys,
5+and in both cases all keys are created in the kernel, and user space sees,
6+stores, and loads only encrypted blobs. Trusted Keys require the availability
7+of a Trusted Platform Module (TPM) chip for greater security, while Encrypted
8+Keys can be used on any system. All user level blobs, are displayed and loaded
9+in hex ascii for convenience, and are integrity verified.
10+
11+Trusted Keys use a TPM both to generate and to seal the keys. Keys are sealed
12+under a 2048 bit RSA key in the TPM, and optionally sealed to specified PCR
13+(integrity measurement) values, and only unsealed by the TPM, if PCRs and blob
14+integrity verifications match. A loaded Trusted Key can be updated with new
15+(future) PCR values, so keys are easily migrated to new pcr values, such as
16+when the kernel and initramfs are updated. The same key can have many saved
17+blobs under different PCR values, so multiple boots are easily supported.
18+
19+By default, trusted keys are sealed under the SRK, which has the default
20+authorization value (20 zeros). This can be set at takeownership time with the
21+trouser's utility: "tpm_takeownership -u -z".
22+
23+Usage:
24+ keyctl add trusted name "new keylen [options]" ring
25+ keyctl add trusted name "load hex_blob [pcrlock=pcrnum]" ring
26+ keyctl update key "update [options]"
27+ keyctl print keyid
28+
29+ options:
30+ keyhandle= ascii hex value of sealing key default 0x40000000 (SRK)
31+ keyauth= ascii hex auth for sealing key default 0x00...i
32+ (40 ascii zeros)
33+ blobauth= ascii hex auth for sealed data default 0x00...
34+ (40 ascii zeros)
35+ blobauth= ascii hex auth for sealed data default 0x00...
36+ (40 ascii zeros)
37+ pcrinfo= ascii hex of PCR_INFO or PCR_INFO_LONG (no default)
38+ pcrlock= pcr number to be extended to "lock" blob
39+ migratable= 0|1 indicating permission to reseal to new PCR values,
40+ default 1 (resealing allowed)
41+
42+"keyctl print" returns an ascii hex copy of the sealed key, which is in standard
43+TPM_STORED_DATA format. The key length for new keys are always in bytes.
44+Trusted Keys can be 32 - 128 bytes (256 - 1024 bits), the upper limit is to fit
45+within the 2048 bit SRK (RSA) keylength, with all necessary structure/padding.
46+
47+Encrypted keys do not depend on a TPM, and are faster, as they use AES for
48+encryption/decryption. New keys are created from kernel generated random
49+numbers, and are encrypted/decrypted using a specified 'master' key. The
50+'master' key can either be a trusted-key or user-key type. The main
51+disadvantage of encrypted keys is that if they are not rooted in a trusted key,
52+they are only as secure as the user key encrypting them. The master user key
53+should therefore be loaded in as secure a way as possible, preferably early in
54+boot.
55+
56+Usage:
57+ keyctl add encrypted name "new key-type:master-key-name keylen" ring
58+ keyctl add encrypted name "load hex_blob" ring
59+ keyctl update keyid "update key-type:master-key-name"
60+
61+where 'key-type' is either 'trusted' or 'user'.
62+
63+Examples of trusted and encrypted key usage:
64+
65+Create and save a trusted key named "kmk" of length 32 bytes:
66+
67+ $ keyctl add trusted kmk "new 32" @u
68+ 440502848
69+
70+ $ keyctl show
71+ Session Keyring
72+ -3 --alswrv 500 500 keyring: _ses
73+ 97833714 --alswrv 500 -1 \_ keyring: _uid.500
74+ 440502848 --alswrv 500 500 \_ trusted: kmk
75+
76+ $ keyctl print 440502848
77+ 0101000000000000000001005d01b7e3f4a6be5709930f3b70a743cbb42e0cc95e18e915
78+ 3f60da455bbf1144ad12e4f92b452f966929f6105fd29ca28e4d4d5a031d068478bacb0b
79+ 27351119f822911b0a11ba3d3498ba6a32e50dac7f32894dd890eb9ad578e4e292c83722
80+ a52e56a097e6a68b3f56f7a52ece0cdccba1eb62cad7d817f6dc58898b3ac15f36026fec
81+ d568bd4a706cb60bb37be6d8f1240661199d640b66fb0fe3b079f97f450b9ef9c22c6d5d
82+ dd379f0facd1cd020281dfa3c70ba21a3fa6fc2471dc6d13ecf8298b946f65345faa5ef0
83+ f1f8fff03ad0acb083725535636addb08d73dedb9832da198081e5deae84bfaf0409c22b
84+ e4a8aea2b607ec96931e6f4d4fe563ba
85+
86+ $ keyctl pipe 440502848 > kmk.blob
87+
88+Load a trusted key from the saved blob:
89+
90+ $ keyctl add trusted kmk "load `cat kmk.blob`" @u
91+ 268728824
92+
93+ $ keyctl print 268728824
94+ 0101000000000000000001005d01b7e3f4a6be5709930f3b70a743cbb42e0cc95e18e915
95+ 3f60da455bbf1144ad12e4f92b452f966929f6105fd29ca28e4d4d5a031d068478bacb0b
96+ 27351119f822911b0a11ba3d3498ba6a32e50dac7f32894dd890eb9ad578e4e292c83722
97+ a52e56a097e6a68b3f56f7a52ece0cdccba1eb62cad7d817f6dc58898b3ac15f36026fec
98+ d568bd4a706cb60bb37be6d8f1240661199d640b66fb0fe3b079f97f450b9ef9c22c6d5d
99+ dd379f0facd1cd020281dfa3c70ba21a3fa6fc2471dc6d13ecf8298b946f65345faa5ef0
100+ f1f8fff03ad0acb083725535636addb08d73dedb9832da198081e5deae84bfaf0409c22b
101+ e4a8aea2b607ec96931e6f4d4fe563ba
102+
103+Reseal a trusted key under new pcr values:
104+
105+ $ keyctl update 268728824 "update pcrinfo=`cat pcr.blob`"
106+ $ keyctl print 268728824
107+ 010100000000002c0002800093c35a09b70fff26e7a98ae786c641e678ec6ffb6b46d805
108+ 77c8a6377aed9d3219c6dfec4b23ffe3000001005d37d472ac8a44023fbb3d18583a4f73
109+ d3a076c0858f6f1dcaa39ea0f119911ff03f5406df4f7f27f41da8d7194f45c9f4e00f2e
110+ df449f266253aa3f52e55c53de147773e00f0f9aca86c64d94c95382265968c354c5eab4
111+ 9638c5ae99c89de1e0997242edfb0b501744e11ff9762dfd951cffd93227cc513384e7e6
112+ e782c29435c7ec2edafaa2f4c1fe6e7a781b59549ff5296371b42133777dcc5b8b971610
113+ 94bc67ede19e43ddb9dc2baacad374a36feaf0314d700af0a65c164b7082401740e489c9
114+ 7ef6a24defe4846104209bf0c3eced7fa1a672ed5b125fc9d8cd88b476a658a4434644ef
115+ df8ae9a178e9f83ba9f08d10fa47e4226b98b0702f06b3b8
116+
117+Create and save an encrypted key "evm" using the above trusted key "kmk":
118+
119+ $ keyctl add encrypted evm "new trusted:kmk 32" @u
120+ 159771175
121+
122+ $ keyctl print 159771175
123+ trusted:kmk 32 2375725ad57798846a9bbd240de8906f006e66c03af53b1b382dbbc55
124+ be2a44616e4959430436dc4f2a7a9659aa60bb4652aeb2120f149ed197c564e024717c64
125+ 5972dcb82ab2dde83376d82b2e3c09ffc
126+
127+ $ keyctl pipe 159771175 > evm.blob
128+
129+Load an encrypted key "evm" from saved blob:
130+
131+ $ keyctl add encrypted evm "load `cat evm.blob`" @u
132+ 831684262
133+
134+ $ keyctl print 831684262
135+ trusted:kmk 32 2375725ad57798846a9bbd240de8906f006e66c03af53b1b382dbbc55
136+ be2a44616e4959430436dc4f2a7a9659aa60bb4652aeb2120f149ed197c564e024717c64
137+ 5972dcb82ab2dde83376d82b2e3c09ffc
138+
139+
140+The initial consumer of trusted keys is EVM, which at boot time needs a high
141+quality symmetric key for HMAC protection of file metadata. The use of a
142+trusted key provides strong guarantees that the EVM key has not been
143+compromised by a user level problem, and when sealed to specific boot PCR
144+values, protects against boot and offline attacks. Other uses for trusted and
145+encrypted keys, such as for disk and file encryption are anticipated.
Documentation/ko_KR/HOWTO+2−2
@@ -391,8 +391,8 @@ bugme-new 메일링 리스트나(새로운 버그 리포트들만이 이곳에 · 390 unmodified lines
391391 bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메일로 전해진다)
392392 에 등록하면 된다.
393393
394− http://lists.osdl.org/mailman/listinfo/bugme-new
395− http://lists.osdl.org/mailman/listinfo/bugme-janitors
394+ https://lists.linux-foundation.org/mailman/listinfo/bugme-new
395+ https://lists.linux-foundation.org/mailman/listinfo/bugme-janitors
396396
397397
398398
Documentation/kprobes.txt+1−1
@@ -598,7 +598,7 @@ a 5-byte jump instruction. So there are several limitations. · 597 unmodified lines
598598 a) The instructions in DCR must be relocatable.
599599 b) The instructions in DCR must not include a call instruction.
600600 c) JTPR must not be targeted by any jump or call instruction.
601−d) DCR must not straddle the border betweeen functions.
601+d) DCR must not straddle the border between functions.
602602
603603 Anyway, these limitations are checked by the in-kernel instruction
604604 decoder, so you don't need to worry about that.
Documentation/kvm/api.txt+179−1
@@ -874,7 +874,7 @@ Possible values are: · 873 unmodified lines
874874 - KVM_MP_STATE_HALTED: the vcpu has executed a HLT instruction and
875875 is waiting for an interrupt
876876 - KVM_MP_STATE_SIPI_RECEIVED: the vcpu has just received a SIPI (vector
877− accesible via KVM_GET_VCPU_EVENTS)
877+ accessible via KVM_GET_VCPU_EVENTS)
878878
879879 This ioctl is only useful after KVM_CREATE_IRQCHIP. Without an in-kernel
880880 irqchip, the multiprocessing state must be maintained by userspace.
@@ -1085,6 +1085,184 @@ of 4 instructions that make up a hypercall. · 204 unmodified lines
10851085 If any additional field gets added to this structure later on, a bit for that
10861086 additional piece of information will be set in the flags bitmap.
10871087
1088+4.47 KVM_ASSIGN_PCI_DEVICE
1089+
1090+Capability: KVM_CAP_DEVICE_ASSIGNMENT
1091+Architectures: x86 ia64
1092+Type: vm ioctl
1093+Parameters: struct kvm_assigned_pci_dev (in)
1094+Returns: 0 on success, -1 on error
1095+
1096+Assigns a host PCI device to the VM.
1097+
1098+struct kvm_assigned_pci_dev {
1099+ __u32 assigned_dev_id;
1100+ __u32 busnr;
1101+ __u32 devfn;
1102+ __u32 flags;
1103+ __u32 segnr;
1104+ union {
1105+ __u32 reserved[11];
1106+ };
1107+};
1108+
1109+The PCI device is specified by the triple segnr, busnr, and devfn.
1110+Identification in succeeding service requests is done via assigned_dev_id. The
1111+following flags are specified:
1112+
1113+/* Depends on KVM_CAP_IOMMU */
1114+#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
1115+
1116+4.48 KVM_DEASSIGN_PCI_DEVICE
1117+
1118+Capability: KVM_CAP_DEVICE_DEASSIGNMENT
1119+Architectures: x86 ia64
1120+Type: vm ioctl
1121+Parameters: struct kvm_assigned_pci_dev (in)
1122+Returns: 0 on success, -1 on error
1123+
1124+Ends PCI device assignment, releasing all associated resources.
1125+
1126+See KVM_CAP_DEVICE_ASSIGNMENT for the data structure. Only assigned_dev_id is
1127+used in kvm_assigned_pci_dev to identify the device.
1128+
1129+4.49 KVM_ASSIGN_DEV_IRQ
1130+
1131+Capability: KVM_CAP_ASSIGN_DEV_IRQ
1132+Architectures: x86 ia64
1133+Type: vm ioctl
1134+Parameters: struct kvm_assigned_irq (in)
1135+Returns: 0 on success, -1 on error
1136+
1137+Assigns an IRQ to a passed-through device.
1138+
1139+struct kvm_assigned_irq {
1140+ __u32 assigned_dev_id;
1141+ __u32 host_irq;
1142+ __u32 guest_irq;
1143+ __u32 flags;
1144+ union {
1145+ struct {
1146+ __u32 addr_lo;
1147+ __u32 addr_hi;
1148+ __u32 data;
1149+ } guest_msi;
1150+ __u32 reserved[12];
1151+ };
1152+};
1153+
1154+The following flags are defined:
1155+
1156+#define KVM_DEV_IRQ_HOST_INTX (1 << 0)
1157+#define KVM_DEV_IRQ_HOST_MSI (1 << 1)
1158+#define KVM_DEV_IRQ_HOST_MSIX (1 << 2)
1159+
1160+#define KVM_DEV_IRQ_GUEST_INTX (1 << 8)
1161+#define KVM_DEV_IRQ_GUEST_MSI (1 << 9)
1162+#define KVM_DEV_IRQ_GUEST_MSIX (1 << 10)
1163+
1164+It is not valid to specify multiple types per host or guest IRQ. However, the
1165+IRQ type of host and guest can differ or can even be null.
1166+
1167+4.50 KVM_DEASSIGN_DEV_IRQ
1168+
1169+Capability: KVM_CAP_ASSIGN_DEV_IRQ
1170+Architectures: x86 ia64
1171+Type: vm ioctl
1172+Parameters: struct kvm_assigned_irq (in)
1173+Returns: 0 on success, -1 on error
1174+
1175+Ends an IRQ assignment to a passed-through device.
1176+
1177+See KVM_ASSIGN_DEV_IRQ for the data structure. The target device is specified
1178+by assigned_dev_id, flags must correspond to the IRQ type specified on
1179+KVM_ASSIGN_DEV_IRQ. Partial deassignment of host or guest IRQ is allowed.
1180+
1181+4.51 KVM_SET_GSI_ROUTING
1182+
1183+Capability: KVM_CAP_IRQ_ROUTING
1184+Architectures: x86 ia64
1185+Type: vm ioctl
1186+Parameters: struct kvm_irq_routing (in)
1187+Returns: 0 on success, -1 on error
1188+
1189+Sets the GSI routing table entries, overwriting any previously set entries.
1190+
1191+struct kvm_irq_routing {
1192+ __u32 nr;
1193+ __u32 flags;
1194+ struct kvm_irq_routing_entry entries[0];
1195+};
1196+
1197+No flags are specified so far, the corresponding field must be set to zero.
1198+
1199+struct kvm_irq_routing_entry {
1200+ __u32 gsi;
1201+ __u32 type;
1202+ __u32 flags;
1203+ __u32 pad;
1204+ union {
1205+ struct kvm_irq_routing_irqchip irqchip;
1206+ struct kvm_irq_routing_msi msi;
1207+ __u32 pad[8];
1208+ } u;
1209+};
1210+
1211+/* gsi routing entry types */
1212+#define KVM_IRQ_ROUTING_IRQCHIP 1
1213+#define KVM_IRQ_ROUTING_MSI 2
1214+
1215+No flags are specified so far, the corresponding field must be set to zero.
1216+
1217+struct kvm_irq_routing_irqchip {
1218+ __u32 irqchip;
1219+ __u32 pin;
1220+};
1221+
1222+struct kvm_irq_routing_msi {
1223+ __u32 address_lo;
1224+ __u32 address_hi;
1225+ __u32 data;
1226+ __u32 pad;
1227+};
1228+
1229+4.52 KVM_ASSIGN_SET_MSIX_NR
1230+
1231+Capability: KVM_CAP_DEVICE_MSIX
1232+Architectures: x86 ia64
1233+Type: vm ioctl
1234+Parameters: struct kvm_assigned_msix_nr (in)
1235+Returns: 0 on success, -1 on error
1236+
1237+Set the number of MSI-X interrupts for an assigned device. This service can
1238+only be called once in the lifetime of an assigned device.
1239+
1240+struct kvm_assigned_msix_nr {
1241+ __u32 assigned_dev_id;
1242+ __u16 entry_nr;
1243+ __u16 padding;
1244+};
1245+
1246+#define KVM_MAX_MSIX_PER_DEV 256
1247+
1248+4.53 KVM_ASSIGN_SET_MSIX_ENTRY
1249+
1250+Capability: KVM_CAP_DEVICE_MSIX
1251+Architectures: x86 ia64
1252+Type: vm ioctl
1253+Parameters: struct kvm_assigned_msix_entry (in)
1254+Returns: 0 on success, -1 on error
1255+
1256+Specifies the routing of an MSI-X assigned device interrupt to a GSI. Setting
1257+the GSI vector to zero means disabling the interrupt.
1258+
1259+struct kvm_assigned_msix_entry {
1260+ __u32 assigned_dev_id;
1261+ __u32 gsi;
1262+ __u16 entry; /* The index of entry in the MSI-X table */
1263+ __u16 padding[3];
1264+};
1265+
10881266 5. The kvm_run structure
10891267
10901268 Application code obtains a pointer to the kvm_run structure by
Documentation/kvm/cpuid.txt+3−0
@@ -36,6 +36,9 @@ KVM_FEATURE_MMU_OP || 2 || deprecated. · 35 unmodified lines
3636 KVM_FEATURE_CLOCKSOURCE2 || 3 || kvmclock available at msrs
3737 || || 0x4b564d00 and 0x4b564d01
3838 ------------------------------------------------------------------------------
39+KVM_FEATURE_ASYNC_PF || 4 || async pf can be enabled by
40+ || || writing to msr 0x4b564d02
41+------------------------------------------------------------------------------
3942 KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side
4043 || || per-cpu warps are expected in
4144 || || kvmclock.
Documentation/kvm/msr.txt+35−1
@@ -3,7 +3,6 @@ Glauber Costa <glommer@redhat.com>, Red Hat Inc, 2010 · 2 unmodified lines
33 =====================================================
44
55 KVM makes use of some custom MSRs to service some requests.
6−At present, this facility is only used by kvmclock.
76
87 Custom MSRs have a range reserved for them, that goes from
98 0x4b564d00 to 0x4b564dff. There are MSRs outside this area,
@@ -151,3 +150,38 @@ MSR_KVM_SYSTEM_TIME: 0x12 · 141 unmodified lines
151150 return PRESENT;
152151 } else
153152 return NON_PRESENT;
153+
154+MSR_KVM_ASYNC_PF_EN: 0x4b564d02
155+ data: Bits 63-6 hold 64-byte aligned physical address of a
156+ 64 byte memory area which must be in guest RAM and must be
157+ zeroed. Bits 5-2 are reserved and should be zero. Bit 0 is 1
158+ when asynchronous page faults are enabled on the vcpu 0 when
159+ disabled. Bit 2 is 1 if asynchronous page faults can be injected
160+ when vcpu is in cpl == 0.
161+
162+ First 4 byte of 64 byte memory location will be written to by
163+ the hypervisor at the time of asynchronous page fault (APF)
164+ injection to indicate type of asynchronous page fault. Value
165+ of 1 means that the page referred to by the page fault is not
166+ present. Value 2 means that the page is now available. Disabling
167+ interrupt inhibits APFs. Guest must not enable interrupt
168+ before the reason is read, or it may be overwritten by another
169+ APF. Since APF uses the same exception vector as regular page
170+ fault guest must reset the reason to 0 before it does
171+ something that can generate normal page fault. If during page
172+ fault APF reason is 0 it means that this is regular page
173+ fault.
174+
175+ During delivery of type 1 APF cr2 contains a token that will
176+ be used to notify a guest when missing page becomes
177+ available. When page becomes available type 2 APF is sent with
178+ cr2 set to the token associated with the page. There is special
179+ kind of token 0xffffffff which tells vcpu that it should wake
180+ up all processes waiting for APFs and no individual type 2 APFs
181+ will be sent.
182+
183+ If APF is disabled while there are outstanding APFs, they will
184+ not be delivered.
185+
186+ Currently type 2 APF will be always delivered on the same vcpu as
187+ type 1 was, but guest should not rely on that.
Documentation/lguest/lguest.c+65−8
@@ -39,6 +39,9 @@ · 38 unmodified lines
3939 #include <limits.h>
4040 #include <stddef.h>
4141 #include <signal.h>
42+#include <pwd.h>
43+#include <grp.h>
44+
4245 #include <linux/virtio_config.h>
4346 #include <linux/virtio_net.h>
4447 #include <linux/virtio_blk.h>
@@ -298,20 +301,27 @@ static void *map_zeroed_pages(unsigned int num) · 253 unmodified lines
298301
299302 /*
300303 * We use a private mapping (ie. if we write to the page, it will be
301− * copied).
304+ * copied). We allocate an extra two pages PROT_NONE to act as guard
305+ * pages against read/write attempts that exceed allocated space.
302306 */
303− addr = mmap(NULL, getpagesize() * num,
304− PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, fd, 0);
307+ addr = mmap(NULL, getpagesize() * (num+2),
308+ PROT_NONE, MAP_PRIVATE, fd, 0);
309+
305310 if (addr == MAP_FAILED)
306311 err(1, "Mmapping %u pages of /dev/zero", num);
307312
313+ if (mprotect(addr + getpagesize(), getpagesize() * num,
314+ PROT_READ|PROT_WRITE) == -1)
315+ err(1, "mprotect rw %u pages failed", num);
316+
308317 /*
309318 * One neat mmap feature is that you can close the fd, and it
310319 * stays mapped.
311320 */
312321 close(fd);
313322
314− return addr;
323+ /* Return address after PROT_NONE page */
324+ return addr + getpagesize();
315325 }
316326
317327 /* Get some more pages for a device. */
@@ -343,7 +353,7 @@ static void map_at(int fd, void *addr, unsigned long offset, unsigned long len) · 25 unmodified lines
343353 * done to it. This allows us to share untouched memory between
344354 * Guests.
345355 */
346− if (mmap(addr, len, PROT_READ|PROT_WRITE|PROT_EXEC,
356+ if (mmap(addr, len, PROT_READ|PROT_WRITE,
347357 MAP_FIXED|MAP_PRIVATE, fd, offset) != MAP_FAILED)
348358 return;
349359
@@ -573,10 +583,10 @@ static void *_check_pointer(unsigned long addr, unsigned int size, · 223 unmodified lines
573583 unsigned int line)
574584 {
575585 /*
576− * We have to separately check addr and addr+size, because size could
577− * be huge and addr + size might wrap around.
586+ * Check if the requested address and size exceeds the allocated memory,
587+ * or addr + size wraps around.
578588 */
579− if (addr >= guest_limit || addr + size >= guest_limit)
589+ if ((addr + size) > guest_limit || (addr + size) < addr)
580590 errx(1, "%s:%i: Invalid address %#lx", __FILE__, line, addr);
581591 /*
582592 * We return a pointer for the caller's convenience, now we know it's
@@ -1872,6 +1882,8 @@ static struct option opts[] = { · 1289 unmodified lines
18721882 { "block", 1, NULL, 'b' },
18731883 { "rng", 0, NULL, 'r' },
18741884 { "initrd", 1, NULL, 'i' },
1885+ { "username", 1, NULL, 'u' },
1886+ { "chroot", 1, NULL, 'c' },
18751887 { NULL },
18761888 };
18771889 static void usage(void)
@@ -1894,6 +1906,12 @@ int main(int argc, char *argv[]) · 16 unmodified lines
18941906 /* If they specify an initrd file to load. */
18951907 const char *initrd_name = NULL;
18961908
1909+ /* Password structure for initgroups/setres[gu]id */
1910+ struct passwd *user_details = NULL;
1911+
1912+ /* Directory to chroot to */
1913+ char *chroot_path = NULL;
1914+
18971915 /* Save the args: we "reboot" by execing ourselves again. */
18981916 main_args = argv;
18991917
@@ -1950,6 +1968,14 @@ int main(int argc, char *argv[]) · 50 unmodified lines
19501968 case 'i':
19511969 initrd_name = optarg;
19521970 break;
1971+ case 'u':
1972+ user_details = getpwnam(optarg);
1973+ if (!user_details)
1974+ err(1, "getpwnam failed, incorrect username?");
1975+ break;
1976+ case 'c':
1977+ chroot_path = optarg;
1978+ break;
19531979 default:
19541980 warnx("Unknown argument %s", argv[optind]);
19551981 usage();
@@ -2021,6 +2047,37 @@ int main(int argc, char *argv[]) · 65 unmodified lines
20212047 /* If we exit via err(), this kills all the threads, restores tty. */
20222048 atexit(cleanup_devices);
20232049
2050+ /* If requested, chroot to a directory */
2051+ if (chroot_path) {
2052+ if (chroot(chroot_path) != 0)
2053+ err(1, "chroot(\"%s\") failed", chroot_path);
2054+
2055+ if (chdir("/") != 0)
2056+ err(1, "chdir(\"/\") failed");
2057+
2058+ verbose("chroot done\n");
2059+ }
2060+
2061+ /* If requested, drop privileges */
2062+ if (user_details) {
2063+ uid_t u;
2064+ gid_t g;
2065+
2066+ u = user_details->pw_uid;
2067+ g = user_details->pw_gid;
2068+
2069+ if (initgroups(user_details->pw_name, g) != 0)
2070+ err(1, "initgroups failed");
2071+
2072+ if (setresgid(g, g, g) != 0)
2073+ err(1, "setresgid failed");
2074+
2075+ if (setresuid(u, u, u) != 0)
2076+ err(1, "setresuid failed");
2077+
2078+ verbose("Dropping privileges completed\n");
2079+ }
2080+
20242081 /* Finally, run the Guest. This doesn't return. */
20252082 run_guest();
20262083 }
Documentation/lguest/lguest.txt+10−2
@@ -111,8 +111,16 @@ Running Lguest: · 110 unmodified lines
111111
112112 Then use --tunnet=bridge:lg0 when launching the guest.
113113
114− See http://linux-net.osdl.org/index.php/Bridge for general information
115− on how to get bridging working.
114+ See:
115+
116+ http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge
117+
118+ for general information on how to get bridging to work.
119+
120+- Random number generation. Using the --rng option will provide a
121+ /dev/hwrng in the guest that will read from the host's /dev/random.
122+ Use this option in conjunction with rng-tools (see ../hw_random.txt)
123+ to provide entropy to the guest kernel's /dev/random.
116124
117125 There is a helpful mailing list at http://ozlabs.org/mailman/listinfo/lguest
118126
Documentation/magic-number.txt+1−1
@@ -150,7 +150,7 @@ NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h · 149 unmodified lines
150150 STL_BOARDMAGIC 0xa2267f52 stlbrd include/linux/stallion.h
151151 ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h
152152 SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h
153−CODA_MAGIC 0xC0DAC0DA coda_file_info include/linux/coda_fs_i.h
153+CODA_MAGIC 0xC0DAC0DA coda_file_info fs/coda/coda_fs_i.h
154154 DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h
155155 STLI_PORTMAGIC 0xe671c7a1 stliport include/linux/istallion.h
156156 YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c
Documentation/make/headers_install.txt+3−2
@@ -39,8 +39,9 @@ INSTALL_HDR_PATH indicates where to install the headers. It defaults to · 38 unmodified lines
3939 The command "make headers_install_all" exports headers for all architectures
4040 simultaneously. (This is mostly of interest to distribution maintainers,
4141 who create an architecture-independent tarball from the resulting include
42−directory.) Remember to provide the appropriate linux/asm directory via "mv"
43−or "ln -s" before building a C library with headers exported this way.
42+directory.) You also can use HDR_ARCH_LIST to specify list of architectures.
43+Remember to provide the appropriate linux/asm directory via "mv" or "ln -s"
44+before building a C library with headers exported this way.
4445
4546 The kernel header export infrastructure is maintained by David Woodhouse
4647 <dwmw2@infradead.org>.
Documentation/networking/LICENSE.qlcnic+327−0
@@ -0,0 +1,327 @@
1+Copyright (c) 2009-2010 QLogic Corporation
2+QLogic Linux qlcnic NIC Driver
3+
4+This program includes a device driver for Linux 2.6 that may be
5+distributed with QLogic hardware specific firmware binary file.
6+You may modify and redistribute the device driver code under the
7+GNU General Public License (a copy of which is attached hereto as
8+Exhibit A) published by the Free Software Foundation (version 2).
9+
10+You may redistribute the hardware specific firmware binary file
11+under the following terms:
12+
13+ 1. Redistribution of source code (only if applicable),
14+ must retain the above copyright notice, this list of
15+ conditions and the following disclaimer.
16+
17+ 2. Redistribution in binary form must reproduce the above
18+ copyright notice, this list of conditions and the
19+ following disclaimer in the documentation and/or other
20+ materials provided with the distribution.
21+
22+ 3. The name of QLogic Corporation may not be used to
23+ endorse or promote products derived from this software
24+ without specific prior written permission
25+
26+REGARDLESS OF WHAT LICENSING MECHANISM IS USED OR APPLICABLE,
27+THIS PROGRAM IS PROVIDED BY QLOGIC CORPORATION "AS IS'' AND ANY
28+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
30+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
31+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
33+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
35+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
36+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38+POSSIBILITY OF SUCH DAMAGE.
39+
40+USER ACKNOWLEDGES AND AGREES THAT USE OF THIS PROGRAM WILL NOT
41+CREATE OR GIVE GROUNDS FOR A LICENSE BY IMPLICATION, ESTOPPEL, OR
42+OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT,
43+TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN
44+ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN
45+COMBINATION WITH THIS PROGRAM.
46+
47+
48+EXHIBIT A
49+
50+ GNU GENERAL PUBLIC LICENSE
51+ Version 2, June 1991
52+
53+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
54+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
55+ Everyone is permitted to copy and distribute verbatim copies
56+ of this license document, but changing it is not allowed.
57+
58+ Preamble
59+
60+ The licenses for most software are designed to take away your
61+freedom to share and change it. By contrast, the GNU General Public
62+License is intended to guarantee your freedom to share and change free
63+software--to make sure the software is free for all its users. This
64+General Public License applies to most of the Free Software
65+Foundation's software and to any other program whose authors commit to
66+using it. (Some other Free Software Foundation software is covered by
67+the GNU Lesser General Public License instead.) You can apply it to
68+your programs, too.
69+
70+ When we speak of free software, we are referring to freedom, not
71+price. Our General Public Licenses are designed to make sure that you
72+have the freedom to distribute copies of free software (and charge for
73+this service if you wish), that you receive source code or can get it
74+if you want it, that you can change the software or use pieces of it
75+in new free programs; and that you know you can do these things.
76+
77+ To protect your rights, we need to make restrictions that forbid
78+anyone to deny you these rights or to ask you to surrender the rights.
79+These restrictions translate to certain responsibilities for you if you
80+distribute copies of the software, or if you modify it.
81+
82+ For example, if you distribute copies of such a program, whether
83+gratis or for a fee, you must give the recipients all the rights that
84+you have. You must make sure that they, too, receive or can get the
85+source code. And you must show them these terms so they know their
86+rights.
87+
88+ We protect your rights with two steps: (1) copyright the software, and
89+(2) offer you this license which gives you legal permission to copy,
90+distribute and/or modify the software.
91+
92+ Also, for each author's protection and ours, we want to make certain
93+that everyone understands that there is no warranty for this free
94+software. If the software is modified by someone else and passed on, we
95+want its recipients to know that what they have is not the original, so
96+that any problems introduced by others will not reflect on the original
97+authors' reputations.
98+
99+ Finally, any free program is threatened constantly by software
100+patents. We wish to avoid the danger that redistributors of a free
101+program will individually obtain patent licenses, in effect making the
102+program proprietary. To prevent this, we have made it clear that any
103+patent must be licensed for everyone's free use or not licensed at all.
104+
105+ The precise terms and conditions for copying, distribution and
106+modification follow.
107+
108+ GNU GENERAL PUBLIC LICENSE
109+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
110+
111+ 0. This License applies to any program or other work which contains
112+a notice placed by the copyright holder saying it may be distributed
113+under the terms of this General Public License. The "Program", below,
114+refers to any such program or work, and a "work based on the Program"
115+means either the Program or any derivative work under copyright law:
116+that is to say, a work containing the Program or a portion of it,
117+either verbatim or with modifications and/or translated into another
118+language. (Hereinafter, translation is included without limitation in
119+the term "modification".) Each licensee is addressed as "you".
120+
121+Activities other than copying, distribution and modification are not
122+covered by this License; they are outside its scope. The act of
123+running the Program is not restricted, and the output from the Program
124+is covered only if its contents constitute a work based on the
125+Program (independent of having been made by running the Program).
126+Whether that is true depends on what the Program does.
127+
128+ 1. You may copy and distribute verbatim copies of the Program's
129+source code as you receive it, in any medium, provided that you
130+conspicuously and appropriately publish on each copy an appropriate
131+copyright notice and disclaimer of warranty; keep intact all the
132+notices that refer to this License and to the absence of any warranty;
133+and give any other recipients of the Program a copy of this License
134+along with the Program.
135+
136+You may charge a fee for the physical act of transferring a copy, and
137+you may at your option offer warranty protection in exchange for a fee.
138+
139+ 2. You may modify your copy or copies of the Program or any portion
140+of it, thus forming a work based on the Program, and copy and
141+distribute such modifications or work under the terms of Section 1
142+above, provided that you also meet all of these conditions:
143+
144+ a) You must cause the modified files to carry prominent notices
145+ stating that you changed the files and the date of any change.
146+
147+ b) You must cause any work that you distribute or publish, that in
148+ whole or in part contains or is derived from the Program or any
149+ part thereof, to be licensed as a whole at no charge to all third
150+ parties under the terms of this License.
151+
152+ c) If the modified program normally reads commands interactively
153+ when run, you must cause it, when started running for such
154+ interactive use in the most ordinary way, to print or display an
155+ announcement including an appropriate copyright notice and a
156+ notice that there is no warranty (or else, saying that you provide
157+ a warranty) and that users may redistribute the program under
158+ these conditions, and telling the user how to view a copy of this
159+ License. (Exception: if the Program itself is interactive but
160+ does not normally print such an announcement, your work based on
161+ the Program is not required to print an announcement.)
162+
163+These requirements apply to the modified work as a whole. If
164+identifiable sections of that work are not derived from the Program,
165+and can be reasonably considered independent and separate works in
166+themselves, then this License, and its terms, do not apply to those
167+sections when you distribute them as separate works. But when you
168+distribute the same sections as part of a whole which is a work based
169+on the Program, the distribution of the whole must be on the terms of
170+this License, whose permissions for other licensees extend to the
171+entire whole, and thus to each and every part regardless of who wrote it.
172+
173+Thus, it is not the intent of this section to claim rights or contest
174+your rights to work written entirely by you; rather, the intent is to
175+exercise the right to control the distribution of derivative or
176+collective works based on the Program.
177+
178+In addition, mere aggregation of another work not based on the Program
179+with the Program (or with a work based on the Program) on a volume of
180+a storage or distribution medium does not bring the other work under
181+the scope of this License.
182+
183+ 3. You may copy and distribute the Program (or a work based on it,
184+under Section 2) in object code or executable form under the terms of
185+Sections 1 and 2 above provided that you also do one of the following:
186+
187+ a) Accompany it with the complete corresponding machine-readable
188+ source code, which must be distributed under the terms of Sections
189+ 1 and 2 above on a medium customarily used for software interchange; or,
190+
191+ b) Accompany it with a written offer, valid for at least three
192+ years, to give any third party, for a charge no more than your
193+ cost of physically performing source distribution, a complete
194+ machine-readable copy of the corresponding source code, to be
195+ distributed under the terms of Sections 1 and 2 above on a medium
196+ customarily used for software interchange; or,
197+
198+ c) Accompany it with the information you received as to the offer
199+ to distribute corresponding source code. (This alternative is
200+ allowed only for noncommercial distribution and only if you
201+ received the program in object code or executable form with such
202+ an offer, in accord with Subsection b above.)
203+
204+The source code for a work means the preferred form of the work for
205+making modifications to it. For an executable work, complete source
206+code means all the source code for all modules it contains, plus any
207+associated interface definition files, plus the scripts used to
208+control compilation and installation of the executable. However, as a
209+special exception, the source code distributed need not include
210+anything that is normally distributed (in either source or binary
211+form) with the major components (compiler, kernel, and so on) of the
212+operating system on which the executable runs, unless that component
213+itself accompanies the executable.
214+
215+If distribution of executable or object code is made by offering
216+access to copy from a designated place, then offering equivalent
217+access to copy the source code from the same place counts as
218+distribution of the source code, even though third parties are not
219+compelled to copy the source along with the object code.
220+
221+ 4. You may not copy, modify, sublicense, or distribute the Program
222+except as expressly provided under this License. Any attempt
223+otherwise to copy, modify, sublicense or distribute the Program is
224+void, and will automatically terminate your rights under this License.
225+However, parties who have received copies, or rights, from you under
226+this License will not have their licenses terminated so long as such
227+parties remain in full compliance.
228+
229+ 5. You are not required to accept this License, since you have not
230+signed it. However, nothing else grants you permission to modify or
231+distribute the Program or its derivative works. These actions are
232+prohibited by law if you do not accept this License. Therefore, by
233+modifying or distributing the Program (or any work based on the
234+Program), you indicate your acceptance of this License to do so, and
235+all its terms and conditions for copying, distributing or modifying
236+the Program or works based on it.
237+
238+ 6. Each time you redistribute the Program (or any work based on the
239+Program), the recipient automatically receives a license from the
240+original licensor to copy, distribute or modify the Program subject to
241+these terms and conditions. You may not impose any further
242+restrictions on the recipients' exercise of the rights granted herein.
243+You are not responsible for enforcing compliance by third parties to
244+this License.
245+
246+ 7. If, as a consequence of a court judgment or allegation of patent
247+infringement or for any other reason (not limited to patent issues),
248+conditions are imposed on you (whether by court order, agreement or
249+otherwise) that contradict the conditions of this License, they do not
250+excuse you from the conditions of this License. If you cannot
251+distribute so as to satisfy simultaneously your obligations under this
252+License and any other pertinent obligations, then as a consequence you
253+may not distribute the Program at all. For example, if a patent
254+license would not permit royalty-free redistribution of the Program by
255+all those who receive copies directly or indirectly through you, then
256+the only way you could satisfy both it and this License would be to
257+refrain entirely from distribution of the Program.
258+
259+If any portion of this section is held invalid or unenforceable under
260+any particular circumstance, the balance of the section is intended to
261+apply and the section as a whole is intended to apply in other
262+circumstances.
263+
264+It is not the purpose of this section to induce you to infringe any
265+patents or other property right claims or to contest validity of any
266+such claims; this section has the sole purpose of protecting the
267+integrity of the free software distribution system, which is
268+implemented by public license practices. Many people have made
269+generous contributions to the wide range of software distributed
270+through that system in reliance on consistent application of that
271+system; it is up to the author/donor to decide if he or she is willing
272+to distribute software through any other system and a licensee cannot
273+impose that choice.
274+
275+This section is intended to make thoroughly clear what is believed to
276+be a consequence of the rest of this License.
277+
278+ 8. If the distribution and/or use of the Program is restricted in
279+certain countries either by patents or by copyrighted interfaces, the
280+original copyright holder who places the Program under this License
281+may add an explicit geographical distribution limitation excluding
282+those countries, so that distribution is permitted only in or among
283+countries not thus excluded. In such case, this License incorporates
284+the limitation as if written in the body of this License.
285+
286+ 9. The Free Software Foundation may publish revised and/or new versions
287+of the General Public License from time to time. Such new versions will
288+be similar in spirit to the present version, but may differ in detail to
289+address new problems or concerns.
290+
291+Each version is given a distinguishing version number. If the Program
292+specifies a version number of this License which applies to it and "any
293+later version", you have the option of following the terms and conditions
294+either of that version or of any later version published by the Free
295+Software Foundation. If the Program does not specify a version number of
296+this License, you may choose any version ever published by the Free Software
297+Foundation.
298+
299+ 10. If you wish to incorporate parts of the Program into other free
300+programs whose distribution conditions are different, write to the author
301+to ask for permission. For software which is copyrighted by the Free
302+Software Foundation, write to the Free Software Foundation; we sometimes
303+make exceptions for this. Our decision will be guided by the two goals
304+of preserving the free status of all derivatives of our free software and
305+of promoting the sharing and reuse of software generally.
306+
307+ NO WARRANTY
308+
309+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
310+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
311+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
312+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
313+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
314+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
315+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
316+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
317+REPAIR OR CORRECTION.
318+
319+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
320+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
321+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
322+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
323+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
324+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
325+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
326+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
327+POSSIBILITY OF SUCH DAMAGES.
Documentation/networking/Makefile+2−0
@@ -4,6 +4,8 @@ obj- := dummy.o · 3 unmodified lines
44 # List of programs to build
55 hostprogs-y := ifenslave
66
7+HOSTCFLAGS_ifenslave.o += -I$(objtree)/usr/include
8+
79 # Tell kbuild to always build the programs
810 always := $(hostprogs-y)
911
Documentation/networking/batman-adv.txtrenamed from drivers/staging/batman-adv/README+3−3
@@ -1,4 +1,4 @@
1−[state: 04-09-2010]
1+[state: 21-11-2010]
22
33 BATMAN-ADV
44 ----------
@@ -67,7 +67,8 @@ All mesh wide settings can be found in batman's own interface · 62 unmodified lines
6767 folder:
6868
6969 # ls /sys/class/net/bat0/mesh/
70−# aggregated_ogms bonding orig_interval vis_mode
70+# aggregated_ogms bonding fragmentation orig_interval
71+# vis_mode
7172
7273
7374 There is a special folder for debugging informations:
@@ -237,4 +238,3 @@ You can also contact the Authors: · 163 unmodified lines
237238
238239 Marek Lindner <lindner_marek@yahoo.de>
239240 Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
240−
Documentation/networking/bonding.txt+71−12
@@ -49,7 +49,8 @@ Table of Contents · 48 unmodified lines
4949 3.3 Configuring Bonding Manually with Ifenslave
5050 3.3.1 Configuring Multiple Bonds Manually
5151 3.4 Configuring Bonding Manually via Sysfs
52−3.5 Overriding Configuration for Special Cases
52+3.5 Configuration with Interfaces Support
53+3.6 Overriding Configuration for Special Cases
5354
5455 4. Querying Bonding Configuration
5556 4.1 Bonding Configuration
@@ -161,8 +162,8 @@ onwards) do not have /usr/include/linux symbolically linked to the · 105 unmodified lines
161162 default kernel source include directory.
162163
163164 SECOND IMPORTANT NOTE:
164− If you plan to configure bonding using sysfs, you do not need
165−to use ifenslave.
165+ If you plan to configure bonding using sysfs or using the
166+/etc/network/interfaces file, you do not need to use ifenslave.
166167
167168 2. Bonding Driver Options
168169 =========================
@@ -779,22 +780,26 @@ resend_igmp · 610 unmodified lines
779780
780781 You can configure bonding using either your distro's network
781782 initialization scripts, or manually using either ifenslave or the
782−sysfs interface. Distros generally use one of two packages for the
783−network initialization scripts: initscripts or sysconfig. Recent
784−versions of these packages have support for bonding, while older
783+sysfs interface. Distros generally use one of three packages for the
784+network initialization scripts: initscripts, sysconfig or interfaces.
785+Recent versions of these packages have support for bonding, while older
785786 versions do not.
786787
787788 We will first describe the options for configuring bonding for
788−distros using versions of initscripts and sysconfig with full or
789−partial support for bonding, then provide information on enabling
789+distros using versions of initscripts, sysconfig and interfaces with full
790+or partial support for bonding, then provide information on enabling
790791 bonding without support from the network initialization scripts (i.e.,
791792 older versions of initscripts or sysconfig).
792793
793− If you're unsure whether your distro uses sysconfig or
794−initscripts, or don't know if it's new enough, have no fear.
794+ If you're unsure whether your distro uses sysconfig,
795+initscripts or interfaces, or don't know if it's new enough, have no fear.
795796 Determining this is fairly straightforward.
796797
797− First, issue the command:
798+ First, look for a file called interfaces in /etc/network directory.
799+If this file is present in your system, then your system use interfaces. See
800+Configuration with Interfaces Support.
801+
802+ Else, issue the command:
798803
799804 $ rpm -qf /sbin/ifup
800805
@@ -1327,8 +1332,62 @@ echo 2000 > /sys/class/net/bond1/bonding/arp_interval · 526 unmodified lines
13271332 echo +eth2 > /sys/class/net/bond1/bonding/slaves
13281333 echo +eth3 > /sys/class/net/bond1/bonding/slaves
13291334
1330−3.5 Overriding Configuration for Special Cases
1335+3.5 Configuration with Interfaces Support
1336+-----------------------------------------
1337+
1338+ This section applies to distros which use /etc/network/interfaces file
1339+to describe network interface configuration, most notably Debian and it's
1340+derivatives.
1341+
1342+ The ifup and ifdown commands on Debian don't support bonding out of
1343+the box. The ifenslave-2.6 package should be installed to provide bonding
1344+support. Once installed, this package will provide bond-* options to be used
1345+into /etc/network/interfaces.
1346+
1347+ Note that ifenslave-2.6 package will load the bonding module and use
1348+the ifenslave command when appropriate.
1349+
1350+Example Configurations
1351+----------------------
1352+
1353+In /etc/network/interfaces, the following stanza will configure bond0, in
1354+active-backup mode, with eth0 and eth1 as slaves.
1355+
1356+auto bond0
1357+iface bond0 inet dhcp
1358+ bond-slaves eth0 eth1
1359+ bond-mode active-backup
1360+ bond-miimon 100
1361+ bond-primary eth0 eth1
1362+
1363+If the above configuration doesn't work, you might have a system using
1364+upstart for system startup. This is most notably true for recent
1365+Ubuntu versions. The following stanza in /etc/network/interfaces will
1366+produce the same result on those systems.
1367+
1368+auto bond0
1369+iface bond0 inet dhcp
1370+ bond-slaves none
1371+ bond-mode active-backup
1372+ bond-miimon 100
1373+
1374+auto eth0
1375+iface eth0 inet manual
1376+ bond-master bond0
1377+ bond-primary eth0 eth1
1378+
1379+auto eth1
1380+iface eth1 inet manual
1381+ bond-master bond0
1382+ bond-primary eth0 eth1
1383+
1384+For a full list of bond-* supported options in /etc/network/interfaces and some
1385+more advanced examples tailored to you particular distros, see the files in
1386+/usr/share/doc/ifenslave-2.6.
1387+
1388+3.6 Overriding Configuration for Special Cases
13311389 ----------------------------------------------
1390+
13321391 When using the bonding driver, the physical port which transmits a frame is
13331392 typically selected by the bonding driver, and is not relevant to the user or
13341393 system administrator. The output port is simply selected using the policies of
Documentation/networking/bridge.txt+2−2
@@ -1,8 +1,8 @@
11 In order to use the Ethernet bridging functionality, you'll need the
22 userspace tools. These programs and documentation are available
3−at http://www.linux-foundation.org/en/Net:Bridge. The download page is
3+at http://www.linuxfoundation.org/en/Net:Bridge. The download page is
44 http://prdownloads.sourceforge.net/bridge.
55
66 If you still have questions, don't hesitate to post to the mailing list
7−(more info http://lists.osdl.org/mailman/listinfo/bridge).
7+(more info https://lists.linux-foundation.org/mailman/listinfo/bridge).
88
Documentation/networking/caif/spi_porting.txt+1−1
@@ -32,7 +32,7 @@ the physical hardware, both with regard to SPI and to GPIOs. · 31 unmodified lines
3232 This function is called by the CAIF SPI interface to give
3333 you a chance to set up your hardware to be ready to receive
3434 a stream of data from the master. The xfer structure contains
35− both physical and logical adresses, as well as the total length
35+ both physical and logical addresses, as well as the total length
3636 of the transfer in both directions.The dev parameter can be used
3737 to map to different CAIF SPI slave devices.
3838
Documentation/networking/dccp.txt+23−2
@@ -38,15 +38,35 @@ The Linux DCCP implementation does not currently support all the features that a · 37 unmodified lines
3838 specified in RFCs 4340...42.
3939
4040 The known bugs are at:
41− http://linux-net.osdl.org/index.php/TODO#DCCP
41+ http://www.linuxfoundation.org/collaborate/workgroups/networking/todo#DCCP
4242
4343 For more up-to-date versions of the DCCP implementation, please consider using
4444 the experimental DCCP test tree; instructions for checking this out are on:
45−http://linux-net.osdl.org/index.php/DCCP_Testing#Experimental_DCCP_source_tree
45+http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp_testing#Experimental_DCCP_source_tree
4646
4747
4848 Socket options
4949 ==============
50+DCCP_SOCKOPT_QPOLICY_ID sets the dequeuing policy for outgoing packets. It takes
51+a policy ID as argument and can only be set before the connection (i.e. changes
52+during an established connection are not supported). Currently, two policies are
53+defined: the "simple" policy (DCCPQ_POLICY_SIMPLE), which does nothing special,
54+and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an
55+u32 priority value as ancillary data to sendmsg(), where higher numbers indicate
56+a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to
57+be formatted using a cmsg(3) message header filled in as follows:
58+ cmsg->cmsg_level = SOL_DCCP;
59+ cmsg->cmsg_type = DCCP_SCM_PRIORITY;
60+ cmsg->cmsg_len = CMSG_LEN(sizeof(uint32_t)); /* or CMSG_LEN(4) */
61+
62+DCCP_SOCKOPT_QPOLICY_TXQLEN sets the maximum length of the output queue. A zero
63+value is always interpreted as unbounded queue length. If different from zero,
64+the interpretation of this parameter depends on the current dequeuing policy
65+(see above): the "simple" policy will enforce a fixed queue size by returning
66+EAGAIN, whereas the "prio" policy enforces a fixed queue length by dropping the
67+lowest-priority packet first. The default value for this parameter is
68+initialised from /proc/sys/net/dccp/default/tx_qlen.
69+
5070 DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of
5171 service codes (RFC 4340, sec. 8.1.2); if this socket option is not set,
5272 the socket will fall back to 0 (which means that no meaningful service code
@@ -147,6 +167,7 @@ rx_ccid = 2 · 94 unmodified lines
147167 seq_window = 100
148168 The initial sequence window (sec. 7.5.2) of the sender. This influences
149169 the local ackno validity and the remote seqno validity windows (7.5.1).
170+ Values in the range Wmin = 32 (RFC 4340, 7.5.2) up to 2^32-1 can be set.
150171
151172 tx_qlen = 5
152173 The size of the transmit buffer in packets. A value of 0 corresponds
Documentation/networking/e100.txt+5−14
@@ -72,7 +72,7 @@ Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a data · 71 unmodified lines
7272 ethtool -G eth? tx n, where n is the number of desired tx descriptors.
7373
7474 Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by
75− default. Ethtool can be used as follows to force speed/duplex.
75+ default. The ethtool utility can be used as follows to force speed/duplex.
7676
7777 ethtool -s eth? autoneg off speed {10|100} duplex {full|half}
7878
@@ -126,30 +126,21 @@ Additional Configurations · 47 unmodified lines
126126 -------
127127
128128 The driver utilizes the ethtool interface for driver configuration and
129− diagnostics, as well as displaying statistical information. Ethtool
129+ diagnostics, as well as displaying statistical information. The ethtool
130130 version 1.6 or later is required for this functionality.
131131
132132 The latest release of ethtool can be found from
133− http://sourceforge.net/projects/gkernel.
134−
135− NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
136− for a more complete ethtool feature set can be enabled by upgrading
137− ethtool to ethtool-1.8.1.
138−
133+ http://ftp.kernel.org/pub/software/network/ethtool/
139134
140135 Enabling Wake on LAN* (WoL)
141136 ---------------------------
142− WoL is provided through the Ethtool* utility. Ethtool is included with Red
143− Hat* 8.0. For other Linux distributions, download and install Ethtool from
144− the following website: http://sourceforge.net/projects/gkernel.
145−
146− For instructions on enabling WoL with Ethtool, refer to the Ethtool man page.
137+ WoL is provided through the ethtool* utility. For instructions on enabling
138+ WoL with ethtool, refer to the ethtool man page.
147139
148140 WoL will be enabled on the system during the next shut down or reboot. For
149141 this driver version, in order to enable WoL, the e100 driver must be
150142 loaded when shutting down or rebooting the system.
151143
152−
153144 NAPI
154145 ----
155146
Documentation/networking/e1000.txt+8−8
@@ -79,7 +79,7 @@ InterruptThrottleRate · 78 unmodified lines
7979 ---------------------
8080 (not supported on Intel(R) 82542, 82543 or 82544-based adapters)
8181 Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,
82− 4=simplified balancing)
82+ 4=simplified balancing)
8383 Default Value: 3
8484
8585 The driver can limit the amount of interrupts per second that the adapter
@@ -124,8 +124,8 @@ InterruptThrottleRate is set to mode 1. In this mode, which operates · 38 unmodified lines
124124 the same as mode 3, the InterruptThrottleRate will be increased stepwise to
125125 70000 for traffic in class "Lowest latency".
126126
127−In simplified mode the interrupt rate is based on the ratio of Tx and
128−Rx traffic. If the bytes per second rate is approximately equal, the
127+In simplified mode the interrupt rate is based on the ratio of TX and
128+RX traffic. If the bytes per second rate is approximately equal, the
129129 interrupt rate will drop as low as 2000 interrupts per second. If the
130130 traffic is mostly transmit or mostly receive, the interrupt rate could
131131 be as high as 8000.
@@ -245,7 +245,7 @@ NOTE: Depending on the available system resources, the request for a · 113 unmodified lines
245245 TxDescriptorStep
246246 ----------------
247247 Valid Range: 1 (use every Tx Descriptor)
248− 4 (use every 4th Tx Descriptor)
248+ 4 (use every 4th Tx Descriptor)
249249
250250 Default Value: 1 (use every Tx Descriptor)
251251
@@ -312,7 +312,7 @@ Valid Range: 0-xxxxxxx (0=off) · 60 unmodified lines
312312 Default Value: 256
313313 Usage: insmod e1000.ko copybreak=128
314314
315−Driver copies all packets below or equaling this size to a fresh Rx
315+Driver copies all packets below or equaling this size to a fresh RX
316316 buffer before handing it up the stack.
317317
318318 This parameter is different than other parameters, in that it is a
@@ -431,15 +431,15 @@ Additional Configurations · 112 unmodified lines
431431 Ethtool
432432 -------
433433 The driver utilizes the ethtool interface for driver configuration and
434− diagnostics, as well as displaying statistical information. Ethtool
434+ diagnostics, as well as displaying statistical information. The ethtool
435435 version 1.6 or later is required for this functionality.
436436
437437 The latest release of ethtool can be found from
438− http://sourceforge.net/projects/gkernel.
438+ http://ftp.kernel.org/pub/software/network/ethtool/
439439
440440 Enabling Wake on LAN* (WoL)
441441 ---------------------------
442− WoL is configured through the Ethtool* utility.
442+ WoL is configured through the ethtool* utility.
443443
444444 WoL will be enabled on the system during the next shut down or reboot.
445445 For this driver version, in order to enable WoL, the e1000 driver must be
Documentation/networking/e1000e.txt+28−24
@@ -1,5 +1,5 @@
11 Linux* Driver for Intel(R) Network Connection
2−===============================================================
2+=============================================
33
44 Intel Gigabit Linux driver.
55 Copyright(c) 1999 - 2010 Intel Corporation.
@@ -61,6 +61,12 @@ per second, even if more packets have come in. This reduces interrupt · 55 unmodified lines
6161 load on the system and can lower CPU utilization under heavy load,
6262 but will increase latency as packets are not processed as quickly.
6363
64+The default behaviour of the driver previously assumed a static
65+InterruptThrottleRate value of 8000, providing a good fallback value for
66+all traffic types, but lacking in small packet performance and latency.
67+The hardware can handle many more small packets per second however, and
68+for this reason an adaptive interrupt moderation algorithm was implemented.
69+
6470 The driver has two adaptive modes (setting 1 or 3) in which
6571 it dynamically adjusts the InterruptThrottleRate value based on the traffic
6672 that it receives. After determining the type of incoming traffic in the last
@@ -86,8 +92,8 @@ InterruptThrottleRate is set to mode 1. In this mode, which operates · 19 unmodified lines
8692 the same as mode 3, the InterruptThrottleRate will be increased stepwise to
8793 70000 for traffic in class "Lowest latency".
8894
89−In simplified mode the interrupt rate is based on the ratio of Tx and
90−Rx traffic. If the bytes per second rate is approximately equal the
95+In simplified mode the interrupt rate is based on the ratio of TX and
96+RX traffic. If the bytes per second rate is approximately equal, the
9197 interrupt rate will drop as low as 2000 interrupts per second. If the
9298 traffic is mostly transmit or mostly receive, the interrupt rate could
9399 be as high as 8000.
@@ -177,7 +183,7 @@ Copybreak · 83 unmodified lines
177183 Valid Range: 0-xxxxxxx (0=off)
178184 Default Value: 256
179185
180−Driver copies all packets below or equaling this size to a fresh Rx
186+Driver copies all packets below or equaling this size to a fresh RX
181187 buffer before handing it up the stack.
182188
183189 This parameter is different than other parameters, in that it is a
@@ -223,17 +229,17 @@ loading or enabling the driver, try disabling this feature. · 39 unmodified lines
223229
224230 WriteProtectNVM
225231 ---------------
226−Valid Range: 0-1
227−Default Value: 1 (enabled)
228−
229−Set the hardware to ignore all write/erase cycles to the GbE region in the
230−ICHx NVM (non-volatile memory). This feature can be disabled by the
231−WriteProtectNVM module parameter (enabled by default) only after a hardware
232−reset, but the machine must be power cycled before trying to enable writes.
233−
234−Note: the kernel boot option iomem=relaxed may need to be set if the kernel
235−config option CONFIG_STRICT_DEVMEM=y, if the root user wants to write the
236−NVM from user space via ethtool.
232+Valid Range: 0,1
233+Default Value: 1
234+
235+If set to 1, configure the hardware to ignore all write/erase cycles to the
236+GbE region in the ICHx NVM (in order to prevent accidental corruption of the
237+NVM). This feature can be disabled by setting the parameter to 0 during initial
238+driver load.
239+NOTE: The machine must be power cycled (full off/on) when enabling NVM writes
240+via setting the parameter to zero. Once the NVM has been locked (via the
241+parameter at 1 when the driver loads) it cannot be unlocked except via power
242+cycle.
237243
238244 Additional Configurations
239245 =========================
@@ -259,32 +265,30 @@ Additional Configurations · 19 unmodified lines
259265 - Some adapters limit Jumbo Frames sized packets to a maximum of
260266 4096 bytes and some adapters do not support Jumbo Frames.
261267
262−
263268 Ethtool
264269 -------
265270 The driver utilizes the ethtool interface for driver configuration and
266271 diagnostics, as well as displaying statistical information. We
267− strongly recommend downloading the latest version of Ethtool at:
272+ strongly recommend downloading the latest version of ethtool at:
268273
269− http://sourceforge.net/projects/gkernel.
274+ http://ftp.kernel.org/pub/software/network/ethtool/
270275
271276 Speed and Duplex
272277 ----------------
273− Speed and Duplex are configured through the Ethtool* utility. For
274− instructions, refer to the Ethtool man page.
278+ Speed and Duplex are configured through the ethtool* utility. For
279+ instructions, refer to the ethtool man page.
275280
276281 Enabling Wake on LAN* (WoL)
277282 ---------------------------
278− WoL is configured through the Ethtool* utility. For instructions on
279− enabling WoL with Ethtool, refer to the Ethtool man page.
283+ WoL is configured through the ethtool* utility. For instructions on
284+ enabling WoL with ethtool, refer to the ethtool man page.
280285
281286 WoL will be enabled on the system during the next shut down or reboot.
282287 For this driver version, in order to enable WoL, the e1000e driver must be
283288 loaded when shutting down or rebooting the system.
284289
285290 In most cases Wake On LAN is only supported on port A for multiple port
286− adapters. To verify if a port supports Wake on LAN run ethtool eth<X>.
287−
291+ adapters. To verify if a port supports Wake on Lan run ethtool eth<X>.
288292
289293 Support
290294 =======
Documentation/networking/generic_netlink.txt+1−1
@@ -1,3 +1,3 @@
11 A wiki document on how to use Generic Netlink can be found here:
22
3− * http://linux-net.osdl.org/index.php/Generic_Netlink_HOWTO
3+ * http://www.linuxfoundation.org/collaborate/workgroups/networking/generic_netlink_howto
Documentation/networking/igb.txt+6−29
@@ -36,6 +36,7 @@ Default Value: 0 · 35 unmodified lines
3636 This parameter adds support for SR-IOV. It causes the driver to spawn up to
3737 max_vfs worth of virtual function.
3838
39+
3940 Additional Configurations
4041 =========================
4142
@@ -60,15 +61,16 @@ Additional Configurations · 18 unmodified lines
6061 Ethtool
6162 -------
6263 The driver utilizes the ethtool interface for driver configuration and
63− diagnostics, as well as displaying statistical information.
64+ diagnostics, as well as displaying statistical information. The latest
65+ version of ethtool can be found at:
6466
65− http://sourceforge.net/projects/gkernel.
67+ http://ftp.kernel.org/pub/software/network/ethtool/
6668
6769 Enabling Wake on LAN* (WoL)
6870 ---------------------------
69− WoL is configured through the Ethtool* utility.
71+ WoL is configured through the ethtool* utility.
7072
71− For instructions on enabling WoL with Ethtool, refer to the Ethtool man page.
73+ For instructions on enabling WoL with ethtool, refer to the ethtool man page.
7274
7375 WoL will be enabled on the system during the next shut down or reboot.
7476 For this driver version, in order to enable WoL, the igb driver must be
@@ -91,31 +93,6 @@ Additional Configurations · 16 unmodified lines
9193 REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not
9294 found, the system will fallback to MSI or to Legacy interrupts.
9395
94− LRO
95− ---
96− Large Receive Offload (LRO) is a technique for increasing inbound throughput
97− of high-bandwidth network connections by reducing CPU overhead. It works by
98− aggregating multiple incoming packets from a single stream into a larger
99− buffer before they are passed higher up the networking stack, thus reducing
100− the number of packets that have to be processed. LRO combines multiple
101− Ethernet frames into a single receive in the stack, thereby potentially
102− decreasing CPU utilization for receives.
103−
104− NOTE: You need to have inet_lro enabled via either the CONFIG_INET_LRO or
105− CONFIG_INET_LRO_MODULE kernel config option. Additionally, if
106− CONFIG_INET_LRO_MODULE is used, the inet_lro module needs to be loaded
107− before the igb driver.
108−
109− You can verify that the driver is using LRO by looking at these counters in
110− Ethtool:
111−
112− lro_aggregated - count of total packets that were combined
113− lro_flushed - counts the number of packets flushed out of LRO
114− lro_no_desc - counts the number of times an LRO descriptor was not available
115− for the LRO packet
116−
117− NOTE: IPv6 and UDP are not supported by LRO.
118−
11996 Support
12097 =======
12198
Documentation/networking/igbvf.txt+4−2
@@ -58,9 +58,11 @@ Additional Configurations · 57 unmodified lines
5858 Ethtool
5959 -------
6060 The driver utilizes the ethtool interface for driver configuration and
61− diagnostics, as well as displaying statistical information.
61+ diagnostics, as well as displaying statistical information. The ethtool
62+ version 3.0 or later is required for this functionality, although we
63+ strongly recommend downloading the latest version at:
6264
63− http://sourceforge.net/projects/gkernel.
65+ http://ftp.kernel.org/pub/software/network/ethtool/
6466
6567 Support
6668 =======
Documentation/networking/ip-sysctl.txt+25−5
@@ -11,7 +11,9 @@ ip_forward - BOOLEAN · 10 unmodified lines
1111 for routers)
1212
1313 ip_default_ttl - INTEGER
14− default 64
14+ Default value of TTL field (Time To Live) for outgoing (but not
15+ forwarded) IP packets. Should be between 1 and 255 inclusive.
16+ Default: 64 (as recommended by RFC1700)
1517
1618 ip_no_pmtu_disc - BOOLEAN
1719 Disable Path MTU Discovery.
@@ -185,7 +187,7 @@ tcp_cookie_size - INTEGER · 167 unmodified lines
185187 tcp_dsack - BOOLEAN
186188 Allows TCP to send "duplicate" SACKs.
187189
188−tcp_ecn - BOOLEAN
190+tcp_ecn - INTEGER
189191 Enable Explicit Congestion Notification (ECN) in TCP. ECN is only
190192 used when both ends of the TCP flow support it. It is useful to
191193 avoid losses due to congestion (when the bottleneck router supports
@@ -708,10 +710,28 @@ igmp_max_memberships - INTEGER · 516 unmodified lines
708710 Change the maximum number of multicast groups we can subscribe to.
709711 Default: 20
710712
711−conf/interface/* changes special settings per interface (where "interface" is
712− the name of your network interface)
713−conf/all/* is special, changes the settings for all interfaces
713+ Theoretical maximum value is bounded by having to send a membership
714+ report in a single datagram (i.e. the report can't span multiple
715+ datagrams, or risk confusing the switch and leaving groups you don't
716+ intend to).
714717
718+ The number of supported groups 'M' is bounded by the number of group
719+ report entries you can fit into a single datagram of 65535 bytes.
720+
721+ M = 65536-sizeof (ip header)/(sizeof(Group record))
722+
723+ Group records are variable length, with a minimum of 12 bytes.
724+ So net.ipv4.igmp_max_memberships should not be set higher than:
725+
726+ (65536-24) / 12 = 5459
727+
728+ The value 5459 assumes no IP header options, so in practice
729+ this number may be lower.
730+
731+ conf/interface/* changes special settings per interface (where
732+ "interface" is the name of your network interface)
733+
734+ conf/all/* is special, changes the settings for all interfaces
715735
716736 log_martians - BOOLEAN
717737 Log packets with impossible addresses to kernel log.
Documentation/networking/ixgb.txt+5−5
@@ -309,15 +309,15 @@ Additional Configurations · 308 unmodified lines
309309 Ethtool
310310 -------
311311 The driver utilizes the ethtool interface for driver configuration and
312− diagnostics, as well as displaying statistical information. Ethtool
312+ diagnostics, as well as displaying statistical information. The ethtool
313313 version 1.6 or later is required for this functionality.
314314
315315 The latest release of ethtool can be found from
316− http://sourceforge.net/projects/gkernel
316+ http://ftp.kernel.org/pub/software/network/ethtool/
317317
318− NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
319− for a more complete ethtool feature set can be enabled by upgrading
320− to the latest version.
318+ NOTE: The ethtool version 1.6 only supports a limited set of ethtool options.
319+ Support for a more complete ethtool feature set can be enabled by
320+ upgrading to the latest version.
321321
322322
323323 NAPI
Documentation/networking/ixgbe.txt+137−76
@@ -1,107 +1,126 @@
11 Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection
22 ========================================================================
33
4−March 10, 2009
5−
4+Intel Gigabit Linux driver.
5+Copyright(c) 1999 - 2010 Intel Corporation.
66
77 Contents
88 ========
99
10−- In This Release
1110 - Identifying Your Adapter
12−- Building and Installation
1311 - Additional Configurations
12+- Performance Tuning
13+- Known Issues
1414 - Support
1515
16+Identifying Your Adapter
17+========================
1618
19+The driver in this release is compatible with 82598 and 82599-based Intel
20+Network Connections.
1721
18−In This Release
19−===============
22+For more information on how to identify your adapter, go to the Adapter &
23+Driver ID Guide at:
2024
21−This file describes the ixgbe Linux Base Driver for the 10 Gigabit PCI
22−Express Intel(R) Network Connection. This driver includes support for
23−Itanium(R)2-based systems.
25+ http://support.intel.com/support/network/sb/CS-012904.htm
2426
25−For questions related to hardware requirements, refer to the documentation
26−supplied with your 10 Gigabit adapter. All hardware requirements listed apply
27−to use with Linux.
27+SFP+ Devices with Pluggable Optics
28+----------------------------------
2829
29−The following features are available in this kernel:
30− - Native VLANs
31− - Channel Bonding (teaming)
32− - SNMP
33− - Generic Receive Offload
34− - Data Center Bridging
30+82599-BASED ADAPTERS
3531
36−Channel Bonding documentation can be found in the Linux kernel source:
37−/Documentation/networking/bonding.txt
32+NOTES: If your 82599-based Intel(R) Network Adapter came with Intel optics, or
33+is an Intel(R) Ethernet Server Adapter X520-2, then it only supports Intel
34+optics and/or the direct attach cables listed below.
3835
39−Ethtool, lspci, and ifconfig can be used to display device and driver
40−specific information.
36+When 82599-based SFP+ devices are connected back to back, they should be set to
37+the same Speed setting via ethtool. Results may vary if you mix speed settings.
38+82598-based adapters support all passive direct attach cables that comply
39+with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach
40+cables are not supported.
4141
42+Supplier Type Part Numbers
4243
43−Identifying Your Adapter
44−========================
44+SR Modules
45+Intel DUAL RATE 1G/10G SFP+ SR (bailed) FTLX8571D3BCV-IT
46+Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDDZ-IN1
47+Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDZ-IN2
48+LR Modules
49+Intel DUAL RATE 1G/10G SFP+ LR (bailed) FTLX1471D3BCV-IT
50+Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDDZ-IN1
51+Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2
4552
46−This driver supports devices based on the 82598 controller and the 82599
47−controller.
53+The following is a list of 3rd party SFP+ modules and direct attach cables that
54+have received some testing. Not all modules are applicable to all devices.
4855
49−For specific information on identifying which adapter you have, please visit:
56+Supplier Type Part Numbers
5057
51− http://support.intel.com/support/network/sb/CS-008441.htm
58+Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL
59+Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ
60+Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL
5261
62+Finisar DUAL RATE 1G/10G SFP+ SR (No Bail) FTLX8571D3QCV-IT
63+Avago DUAL RATE 1G/10G SFP+ SR (No Bail) AFBR-703SDZ-IN1
64+Finisar DUAL RATE 1G/10G SFP+ LR (No Bail) FTLX1471D3QCV-IT
65+Avago DUAL RATE 1G/10G SFP+ LR (No Bail) AFCT-701SDZ-IN1
66+Finistar 1000BASE-T SFP FCLF8522P2BTL
67+Avago 1000BASE-T SFP ABCU-5710RZ
5368
54−Building and Installation
55−=========================
69+82599-based adapters support all passive and active limiting direct attach
70+cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications.
5671
57−select m for "Intel(R) 10GbE PCI Express adapters support" located at:
58− Location:
59− -> Device Drivers
60− -> Network device support (NETDEVICES [=y])
61− -> Ethernet (10000 Mbit) (NETDEV_10000 [=y])
72+Laser turns off for SFP+ when ifconfig down
73+-------------------------------------------
74+"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters.
75+"ifconfig up" turns on the later.
6276
63−1. make modules & make modules_install
6477
65−2. Load the module:
78+82598-BASED ADAPTERS
6679
67−# modprobe ixgbe
80+NOTES for 82598-Based Adapters:
81+- Intel(R) Network Adapters that support removable optical modules only support
82+ their original module type (i.e., the Intel(R) 10 Gigabit SR Dual Port
83+ Express Module only supports SR optical modules). If you plug in a different
84+ type of module, the driver will not load.
85+- Hot Swapping/hot plugging optical modules is not supported.
86+- Only single speed, 10 gigabit modules are supported.
87+- LAN on Motherboard (LOMs) may support DA, SR, or LR modules. Other module
88+ types are not supported. Please see your system documentation for details.
6889
69− The insmod command can be used if the full
70− path to the driver module is specified. For example:
90+The following is a list of 3rd party SFP+ modules and direct attach cables that
91+have received some testing. Not all modules are applicable to all devices.
7192
72− insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/ixgbe/ixgbe.ko
93+Supplier Type Part Numbers
7394
74− With 2.6 based kernels also make sure that older ixgbe drivers are
75− removed from the kernel, before loading the new module:
95+Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL
96+Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ
97+Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL
7698
77− rmmod ixgbe; modprobe ixgbe
99+82598-based adapters support all passive direct attach cables that comply
100+with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach
101+cables are not supported.
78102
79−3. Assign an IP address to the interface by entering the following, where
80− x is the interface number:
81103
82− ifconfig ethx <IP_address>
104+Flow Control
105+------------
106+Ethernet Flow Control (IEEE 802.3x) can be configured with ethtool to enable
107+receiving and transmitting pause frames for ixgbe. When TX is enabled, PAUSE
108+frames are generated when the receive packet buffer crosses a predefined
109+threshold. When rx is enabled, the transmit unit will halt for the time delay
110+specified when a PAUSE frame is received.
83111
84−4. Verify that the interface works. Enter the following, where <IP_address>
85− is the IP address for another machine on the same subnet as the interface
86− that is being tested:
112+Flow Control is enabled by default. If you want to disable a flow control
113+capable link partner, use ethtool:
87114
88− ping <IP_address>
115+ ethtool -A eth? autoneg off RX off TX off
89116
117+NOTE: For 82598 backplane cards entering 1 gig mode, flow control default
118+behavior is changed to off. Flow control in 1 gig mode on these devices can
119+lead to Tx hangs.
90120
91121 Additional Configurations
92122 =========================
93123
94− Viewing Link Messages
95− ---------------------
96− Link messages will not be displayed to the console if the distribution is
97− restricting system messages. In order to see network driver link messages on
98− your console, set dmesg to eight by entering the following:
99−
100− dmesg -n 8
101−
102− NOTE: This setting is not saved across reboots.
103−
104−
105124 Jumbo Frames
106125 ------------
107126 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is
@@ -123,13 +142,8 @@ Additional Configurations · 15 unmodified lines
123142 other protocols besides TCP. It's also safe to use with configurations that
124143 are problematic for LRO, namely bridging and iSCSI.
125144
126− GRO is enabled by default in the driver. Future versions of ethtool will
127− support disabling and re-enabling GRO on the fly.
128−
129−
130145 Data Center Bridging, aka DCB
131146 -----------------------------
132−
133147 DCB is a configuration Quality of Service implementation in hardware.
134148 It uses the VLAN priority tag (802.1p) to filter traffic. That means
135149 that there are 8 different priorities that traffic can be filtered into.
@@ -163,24 +177,71 @@ Additional Configurations · 27 unmodified lines
163177
164178 http://e1000.sf.net
165179
166−
167180 Ethtool
168181 -------
169182 The driver utilizes the ethtool interface for driver configuration and
170− diagnostics, as well as displaying statistical information. Ethtool
171− version 3.0 or later is required for this functionality.
183+ diagnostics, as well as displaying statistical information. The latest
184+ ethtool version is required for this functionality.
172185
173186 The latest release of ethtool can be found from
174− http://sourceforge.net/projects/gkernel.
187+ http://ftp.kernel.org/pub/software/network/ethtool/
175188
176−
177− NAPI
189+ FCoE
178190 ----
191+ This release of the ixgbe driver contains new code to enable users to use
192+ Fiber Channel over Ethernet (FCoE) and Data Center Bridging (DCB)
193+ functionality that is supported by the 82598-based hardware. This code has
194+ no default effect on the regular driver operation, and configuring DCB and
195+ FCoE is outside the scope of this driver README. Refer to
196+ http://www.open-fcoe.org/ for FCoE project information and contact
197+ e1000-eedc@lists.sourceforge.net for DCB information.
198+
199+ MAC and VLAN anti-spoofing feature
200+ ----------------------------------
201+ When a malicious driver attempts to send a spoofed packet, it is dropped by
202+ the hardware and not transmitted. An interrupt is sent to the PF driver
203+ notifying it of the spoof attempt.
204+
205+ When a spoofed packet is detected the PF driver will send the following
206+ message to the system log (displayed by the "dmesg" command):
207+
208+ Spoof event(s) detected on VF (n)
209+
210+ Where n=the VF that attempted to do the spoofing.
211+
212+
213+Performance Tuning
214+==================
215+
216+An excellent article on performance tuning can be found at:
217+
218+http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf
219+
220+
221+Known Issues
222+============
223+
224+ Enabling SR-IOV in a 32-bit Microsoft* Windows* Server 2008 Guest OS using
225+ Intel (R) 82576-based GbE or Intel (R) 82599-based 10GbE controller under KVM
226+ -----------------------------------------------------------------------------
227+ KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This
228+ includes traditional PCIe devices, as well as SR-IOV-capable devices using
229+ Intel 82576-based and 82599-based controllers.
230+
231+ While direct assignment of a PCIe device or an SR-IOV Virtual Function (VF)
232+ to a Linux-based VM running 2.6.32 or later kernel works fine, there is a
233+ known issue with Microsoft Windows Server 2008 VM that results in a "yellow
234+ bang" error. This problem is within the KVM VMM itself, not the Intel driver,
235+ or the SR-IOV logic of the VMM, but rather that KVM emulates an older CPU
236+ model for the guests, and this older CPU model does not support MSI-X
237+ interrupts, which is a requirement for Intel SR-IOV.
179238
180− NAPI (Rx polling mode) is supported in the ixgbe driver. NAPI is enabled
181− by default in the driver.
239+ If you wish to use the Intel 82576 or 82599-based controllers in SR-IOV mode
240+ with KVM and a Microsoft Windows Server 2008 guest try the following
241+ workaround. The workaround is to tell KVM to emulate a different model of CPU
242+ when using qemu to create the KVM guest:
182243
183− See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI.
244+ "-cpu qemu64,model=13"
184245
185246
186247 Support
Documentation/networking/ixgbevf.txt+0−4
@@ -35,10 +35,6 @@ Driver ID Guide at: · 34 unmodified lines
3535 Known Issues/Troubleshooting
3636 ============================
3737
38− Unloading Physical Function (PF) Driver Causes System Reboots When VM is
39− Running and VF is Loaded on the VM
40− ------------------------------------------------------------------------
41− Do not unload the PF driver (ixgbe) while VFs are assigned to guests.
4238
4339 Support
4440 =======
Documentation/networking/stmmac.txt+37−11
@@ -7,7 +7,7 @@ This is the driver for the MAC 10/100/1000 on-chip Ethernet controllers · 6 unmodified lines
77 (Synopsys IP blocks); it has been fully tested on STLinux platforms.
88
99 Currently this network device driver is for all STM embedded MAC/GMAC
10−(7xxx SoCs).
10+(7xxx SoCs). Other platforms start using it i.e. ARM SPEAr.
1111
1212 DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100
1313 Universal version 4.0 have been used for developing the first code
@@ -95,9 +95,14 @@ Several information came from the platform; please refer to the · 81 unmodified lines
9595 driver's Header file in include/linux directory.
9696
9797 struct plat_stmmacenet_data {
98− int bus_id;
99− int pbl;
100− int has_gmac;
98+ int bus_id;
99+ int pbl;
100+ int clk_csr;
101+ int has_gmac;
102+ int enh_desc;
103+ int tx_coe;
104+ int bugged_jumbo;
105+ int pmt;
101106 void (*fix_mac_speed)(void *priv, unsigned int speed);
102107 void (*bus_setup)(unsigned long ioaddr);
103108 #ifdef CONFIG_STM_DRIVERS
@@ -114,6 +119,12 @@ Where: · 10 unmodified lines
114119 registers (on STM platforms);
115120 - has_gmac: GMAC core is on board (get it at run-time in the next step);
116121 - bus_id: bus identifier.
122+- tx_coe: core is able to perform the tx csum in HW.
123+- enh_desc: if sets the MAC will use the enhanced descriptor structure.
124+- clk_csr: CSR Clock range selection.
125+- bugged_jumbo: some HWs are not able to perform the csum in HW for
126+ over-sized frames due to limited buffer sizes. Setting this
127+ flag the csum will be done in SW on JUMBO frames.
117128
118129 struct plat_stmmacphy_data {
119130 int bus_id;
@@ -131,13 +142,28 @@ Where: · 11 unmodified lines
131142 - interface: physical MII interface mode;
132143 - phy_reset: hook to reset HW function.
133144
145+SOURCES:
146+- Kconfig
147+- Makefile
148+- stmmac_main.c: main network device driver;
149+- stmmac_mdio.c: mdio functions;
150+- stmmac_ethtool.c: ethtool support;
151+- stmmac_timer.[ch]: timer code used for mitigating the driver dma interrupts
152+ Only tested on ST40 platforms based.
153+- stmmac.h: private driver structure;
154+- common.h: common definitions and VFTs;
155+- descs.h: descriptor structure definitions;
156+- dwmac1000_core.c: GMAC core functions;
157+- dwmac1000_dma.c: dma functions for the GMAC chip;
158+- dwmac1000.h: specific header file for the GMAC;
159+- dwmac100_core: MAC 100 core and dma code;
160+- dwmac100_dma.c: dma funtions for the MAC chip;
161+- dwmac1000.h: specific header file for the MAC;
162+- dwmac_lib.c: generic DMA functions shared among chips
163+- enh_desc.c: functions for handling enhanced descriptors
164+- norm_desc.c: functions for handling normal descriptors
165+
134166 TODO:
135−- Continue to make the driver more generic and suitable for other Synopsys
136− Ethernet controllers used on other architectures (i.e. ARM).
137−- 10G controllers are not supported.
138−- MAC uses Normal descriptors and GMAC uses enhanced ones.
139− This is a limit that should be reviewed. MAC could want to
140− use the enhanced structure.
141−- Checksumming: Rx/Tx csum is done in HW in case of GMAC only.
167+- XGMAC controller is not supported.
142168 - Review the timer optimisation code to use an embedded device that seems to be
143169 available in new chip generations.
Documentation/nfc/nfc-pn544.txt+114−0
@@ -0,0 +1,114 @@
1+Kernel driver for the NXP Semiconductors PN544 Near Field
2+Communication chip
3+
4+Author: Jari Vanhala
5+Contact: Matti Aaltonen (matti.j.aaltonen at nokia.com)
6+
7+General
8+-------
9+
10+The PN544 is an integrated transmission module for contactless
11+communication. The driver goes under drives/nfc/ and is compiled as a
12+module named "pn544". It registers a misc device and creates a device
13+file named "/dev/pn544".
14+
15+Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C.
16+
17+The Interface
18+-------------
19+
20+The driver offers a sysfs interface for a hardware test and an IOCTL
21+interface for selecting between two operating modes. There are read,
22+write and poll functions for transferring messages. The two operating
23+modes are the normal (HCI) mode and the firmware update mode.
24+
25+PN544 is controlled by sending messages from the userspace to the
26+chip. The main function of the driver is just to pass those messages
27+without caring about the message content.
28+
29+
30+Protocols
31+---------
32+
33+In the normal (HCI) mode and in the firmware update mode read and
34+write functions behave a bit differently because the message formats
35+or the protocols are different.
36+
37+In the normal (HCI) mode the protocol used is derived from the ETSI
38+HCI specification. The firmware is updated using a specific protocol,
39+which is different from HCI.
40+
41+HCI messages consist of an eight bit header and the message body. The
42+header contains the message length. Maximum size for an HCI message is
43+33. In HCI mode sent messages are tested for a correct
44+checksum. Firmware update messages have the length in the second (MSB)
45+and third (LSB) bytes of the message. The maximum FW message length is
46+1024 bytes.
47+
48+For the ETSI HCI specification see
49+http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx
50+
51+The Hardware Test
52+-----------------
53+
54+The idea of the test is that it can performed by reading from the
55+corresponding sysfs file. The test is implemented in the board file
56+and it should test that PN544 can be put into the firmware update
57+mode. If the test is not implemented the sysfs file does not get
58+created.
59+
60+Example:
61+> cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test
62+1
63+
64+Normal Operation
65+----------------
66+
67+PN544 is powered up when the device file is opened, otherwise it's
68+turned off. Only one instance can use the device at a time.
69+
70+Userspace applications control PN544 with HCI messages. The hardware
71+sends an interrupt when data is available for reading. Data is
72+physically read when the read function is called by a userspace
73+application. Poll() checks the read interrupt state. Configuration and
74+self testing are also done from the userspace using read and write.
75+
76+Example platform data:
77+
78+static int rx71_pn544_nfc_request_resources(struct i2c_client *client)
79+{
80+ /* Get and setup the HW resources for the device */
81+}
82+
83+static void rx71_pn544_nfc_free_resources(void)
84+{
85+ /* Release the HW resources */
86+}
87+
88+static void rx71_pn544_nfc_enable(int fw)
89+{
90+ /* Turn the device on */
91+}
92+
93+static int rx71_pn544_nfc_test(void)
94+{
95+ /*
96+ * Put the device into the FW update mode
97+ * and then back to the normal mode.
98+ * Check the behavior and return one on success,
99+ * zero on failure.
100+ */
101+}
102+
103+static void rx71_pn544_nfc_disable(void)
104+{
105+ /* turn the power off */
106+}
107+
108+static struct pn544_nfc_platform_data rx71_nfc_data = {
109+ .request_resources = rx71_pn544_nfc_request_resources,
110+ .free_resources = rx71_pn544_nfc_free_resources,
111+ .enable = rx71_pn544_nfc_enable,
112+ .test = rx71_pn544_nfc_test,
113+ .disable = rx71_pn544_nfc_disable,
114+};
Documentation/power/drivers-testing.txt+4−4
@@ -23,10 +23,10 @@ Once you have resolved the suspend/resume-related problems with your test system · 22 unmodified lines
2323 without the new driver, you are ready to test it:
2424
2525 a) Build the driver as a module, load it and try the test modes of hibernation
26− (see: Documents/power/basic-pm-debugging.txt, 1).
26+ (see: Documentation/power/basic-pm-debugging.txt, 1).
2727
2828 b) Load the driver and attempt to hibernate in the "reboot", "shutdown" and
29− "platform" modes (see: Documents/power/basic-pm-debugging.txt, 1).
29+ "platform" modes (see: Documentation/power/basic-pm-debugging.txt, 1).
3030
3131 c) Compile the driver directly into the kernel and try the test modes of
3232 hibernation.
@@ -34,12 +34,12 @@ c) Compile the driver directly into the kernel and try the test modes of · 1 unmodified line
3434 d) Attempt to hibernate with the driver compiled directly into the kernel
3535 in the "reboot", "shutdown" and "platform" modes.
3636
37−e) Try the test modes of suspend (see: Documents/power/basic-pm-debugging.txt,
37+e) Try the test modes of suspend (see: Documentation/power/basic-pm-debugging.txt,
3838 2). [As far as the STR tests are concerned, it should not matter whether or
3939 not the driver is built as a module.]
4040
4141 f) Attempt to suspend to RAM using the s2ram tool with the driver loaded
42− (see: Documents/power/basic-pm-debugging.txt, 2).
42+ (see: Documentation/power/basic-pm-debugging.txt, 2).
4343
4444 Each of the above tests should be repeated several times and the STD tests
4545 should be mixed with the STR tests. If any of them fails, the driver cannot be
Documentation/power/runtime_pm.txt+31−0
@@ -50,6 +50,15 @@ type's callbacks are not defined) of given device. The bus type, device type · 49 unmodified lines
5050 and device class callbacks are referred to as subsystem-level callbacks in what
5151 follows.
5252
53+By default, the callbacks are always invoked in process context with interrupts
54+enabled. However, subsystems can use the pm_runtime_irq_safe() helper function
55+to tell the PM core that a device's ->runtime_suspend() and ->runtime_resume()
56+callbacks should be invoked in atomic context with interrupts disabled
57+(->runtime_idle() is still invoked the default way). This implies that these
58+callback routines must not block or sleep, but it also means that the
59+synchronous helper functions listed at the end of Section 4 can be used within
60+an interrupt handler or in an atomic context.
61+
5362 The subsystem-level suspend callback is _entirely_ _responsible_ for handling
5463 the suspend of the device as appropriate, which may, but need not include
5564 executing the device driver's own ->runtime_suspend() callback (from the
@@ -237,6 +246,10 @@ defined in include/linux/pm.h: · 181 unmodified lines
237246 Section 8); it may be modified only by the pm_runtime_no_callbacks()
238247 helper function
239248
249+ unsigned int irq_safe;
250+ - indicates that the ->runtime_suspend() and ->runtime_resume() callbacks
251+ will be invoked with the spinlock held and interrupts disabled
252+
240253 unsigned int use_autosuspend;
241254 - indicates that the device's driver supports delayed autosuspend (see
242255 Section 9); it may be modified only by the
@@ -344,6 +357,10 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h: · 101 unmodified lines
344357 - decrement the device's usage counter; if the result is 0 then run
345358 pm_runtime_idle(dev) and return its result
346359
360+ int pm_runtime_put_sync_suspend(struct device *dev);
361+ - decrement the device's usage counter; if the result is 0 then run
362+ pm_runtime_suspend(dev) and return its result
363+
347364 int pm_runtime_put_sync_autosuspend(struct device *dev);
348365 - decrement the device's usage counter; if the result is 0 then run
349366 pm_runtime_autosuspend(dev) and return its result
@@ -397,6 +414,11 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h: · 47 unmodified lines
397414 PM attributes from /sys/devices/.../power (or prevent them from being
398415 added when the device is registered)
399416
417+ void pm_runtime_irq_safe(struct device *dev);
418+ - set the power.irq_safe flag for the device, causing the runtime-PM
419+ suspend and resume callbacks (but not the idle callback) to be invoked
420+ with interrupts disabled
421+
400422 void pm_runtime_mark_last_busy(struct device *dev);
401423 - set the power.last_busy field to the current time
402424
@@ -438,6 +460,15 @@ pm_runtime_suspended() · 35 unmodified lines
438460 pm_runtime_mark_last_busy()
439461 pm_runtime_autosuspend_expiration()
440462
463+If pm_runtime_irq_safe() has been called for a device then the following helper
464+functions may also be used in interrupt context:
465+
466+pm_runtime_suspend()
467+pm_runtime_autosuspend()
468+pm_runtime_resume()
469+pm_runtime_get_sync()
470+pm_runtime_put_sync_suspend()
471+
441472 5. Run-time PM Initialization, Device Probing and Removal
442473
443474 Initially, the run-time PM is disabled for all devices, which means that the
Documentation/pps/pps.txt+46−0
@@ -170,3 +170,49 @@ and the run ppstest as follow: · 169 unmodified lines
170170
171171 Please, note that to compile userland programs you need the file timepps.h
172172 (see Documentation/pps/).
173+
174+
175+Generators
176+----------
177+
178+Sometimes one needs to be able not only to catch PPS signals but to produce
179+them also. For example, running a distributed simulation, which requires
180+computers' clock to be synchronized very tightly. One way to do this is to
181+invent some complicated hardware solutions but it may be neither necessary
182+nor affordable. The cheap way is to load a PPS generator on one of the
183+computers (master) and PPS clients on others (slaves), and use very simple
184+cables to deliver signals using parallel ports, for example.
185+
186+Parallel port cable pinout:
187+pin name master slave
188+1 STROBE *------ *
189+2 D0 * | *
190+3 D1 * | *
191+4 D2 * | *
192+5 D3 * | *
193+6 D4 * | *
194+7 D5 * | *
195+8 D6 * | *
196+9 D7 * | *
197+10 ACK * ------*
198+11 BUSY * *
199+12 PE * *
200+13 SEL * *
201+14 AUTOFD * *
202+15 ERROR * *
203+16 INIT * *
204+17 SELIN * *
205+18-25 GND *-----------*
206+
207+Please note that parallel port interrupt occurs only on high->low transition,
208+so it is used for PPS assert edge. PPS clear edge can be determined only
209+using polling in the interrupt handler which actually can be done way more
210+precisely because interrupt handling delays can be quite big and random. So
211+current parport PPS generator implementation (pps_gen_parport module) is
212+geared towards using the clear edge for time synchronization.
213+
214+Clear edge polling is done with disabled interrupts so it's better to select
215+delay between assert and clear edge as small as possible to reduce system
216+latencies. But if it is too small slave won't be able to capture clear edge
217+transition. The default of 30us should be good enough in most situations.
218+The delay can be selected using 'delay' pps_gen_parport module parameter.
Documentation/scheduler/00-INDEX+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
33 sched-arch.txt
44 - CPU Scheduler implementation hints for architecture specific code.
55 sched-design-CFS.txt
6− - goals, design and implementation of the Complete Fair Scheduler.
6+ - goals, design and implementation of the Completely Fair Scheduler.
77 sched-domains.txt
88 - information on scheduling domains.
99 sched-nice-design.txt
Documentation/scheduler/sched-stats.txt+15−18
@@ -1,3 +1,7 @@
1+Version 15 of schedstats dropped counters for some sched_yield:
2+yld_exp_empty, yld_act_empty and yld_both_empty. Otherwise, it is
3+identical to version 14.
4+
15 Version 14 of schedstats includes support for sched_domains, which hit the
26 mainline kernel in 2.6.20 although it is identical to the stats from version
37 12 which was in the kernel from 2.6.13-2.6.19 (version 13 never saw a kernel
@@ -28,32 +32,25 @@ to write their own scripts, the fields are described here. · 24 unmodified lines
2832
2933 CPU statistics
3034 --------------
31−cpu<N> 1 2 3 4 5 6 7 8 9 10 11 12
32−
33−NOTE: In the sched_yield() statistics, the active queue is considered empty
34− if it has only one process in it, since obviously the process calling
35− sched_yield() is that process.
35+cpu<N> 1 2 3 4 5 6 7 8 9
3636
37−First four fields are sched_yield() statistics:
38− 1) # of times both the active and the expired queue were empty
39− 2) # of times just the active queue was empty
40− 3) # of times just the expired queue was empty
41− 4) # of times sched_yield() was called
37+First field is a sched_yield() statistic:
38+ 1) # of times sched_yield() was called
4239
4340 Next three are schedule() statistics:
44− 5) # of times we switched to the expired queue and reused it
45− 6) # of times schedule() was called
46− 7) # of times schedule() left the processor idle
41+ 2) # of times we switched to the expired queue and reused it
42+ 3) # of times schedule() was called
43+ 4) # of times schedule() left the processor idle
4744
4845 Next two are try_to_wake_up() statistics:
49− 8) # of times try_to_wake_up() was called
50− 9) # of times try_to_wake_up() was called to wake up the local cpu
46+ 5) # of times try_to_wake_up() was called
47+ 6) # of times try_to_wake_up() was called to wake up the local cpu
5148
5249 Next three are statistics describing scheduling latency:
53− 10) sum of all time spent running by tasks on this processor (in jiffies)
54− 11) sum of all time spent waiting to run by tasks on this processor (in
50+ 7) sum of all time spent running by tasks on this processor (in jiffies)
51+ 8) sum of all time spent waiting to run by tasks on this processor (in
5552 jiffies)
56− 12) # of timeslices run on this cpu
53+ 9) # of timeslices run on this cpu
5754
5855
5956 Domain statistics
Documentation/scsi/ChangeLog.lpfc+1−1
@@ -573,7 +573,7 @@ Changes from 20041018 to 20041123 · 572 unmodified lines
573573 * Backround nodev_timeout processing to DPC This enables us to
574574 unblock (stop dev_loss_tmo) when appopriate.
575575 * Fix array discovery with multiple luns. The max_luns was 0 at
576− the time the host structure was intialized. lpfc_cfg_params
576+ the time the host structure was initialized. lpfc_cfg_params
577577 then set the max_luns to the correct value afterwards.
578578 * Remove unused define LPFC_MAX_LUN and set the default value of
579579 lpfc_max_lun parameter to 512.
Documentation/scsi/ChangeLog.megaraid_sas+22−0
@@ -1,3 +1,25 @@
1+Release Date : Tues. Dec 14, 2010 17:00:00 PST 2010 -
2+ (emaild-id:megaraidlinux@lsi.com)
3+ Adam Radford
4+Current Version : 00.00.05.29-rc1
5+Old Version : 00.00.04.31-rc1
6+ 1. Rename megaraid_sas.c to megaraid_sas_base.c.
7+ 2. Update GPL headers.
8+ 3. Add MSI-X support and 'msix_disable' module parameter.
9+ 4. Use lowest memory bar (for SR-IOV VF support).
10+ 5. Add struct megasas_instance_temlate changes, and change all code to use
11+ new instance entries:
12+
13+ irqreturn_t (*service_isr )(int irq, void *devp);
14+ void (*tasklet)(unsigned long);
15+ u32 (*init_adapter)(struct megasas_instance *);
16+ u32 (*build_and_issue_cmd) (struct megasas_instance *,
17+ struct scsi_cmnd *);
18+ void (*issue_dcmd) (struct megasas_instance *instance,
19+ struct megasas_cmd *cmd);
20+
21+ 6. Add code to support MegaRAID 9265/9285 controllers device id (0x5b).
22+-------------------------------------------------------------------------------
123 1 Release Date : Thur. May 03, 2010 09:12:45 PST 2009 -
224 (emaild-id:megaraidlinux@lsi.com)
325 Bo Yang
Documentation/serial/00-INDEX+2−0
@@ -14,6 +14,8 @@ riscom8.txt · 13 unmodified lines
1414 - notes on using the RISCom/8 multi-port serial driver.
1515 rocket.txt
1616 - info on the Comtrol RocketPort multiport serial driver.
17+serial-rs485.txt
18+ - info about RS485 structures and support in the kernel.
1719 specialix.txt
1820 - info on hardware/driver for specialix IO8+ multiport serial card.
1921 stallion.txt
Documentation/serial/serial-rs485.txt+120−0
@@ -0,0 +1,120 @@
1+ RS485 SERIAL COMMUNICATIONS
2+
3+1. INTRODUCTION
4+
5+ EIA-485, also known as TIA/EIA-485 or RS-485, is a standard defining the
6+ electrical characteristics of drivers and receivers for use in balanced
7+ digital multipoint systems.
8+ This standard is widely used for communications in industrial automation
9+ because it can be used effectively over long distances and in electrically
10+ noisy environments.
11+
12+2. HARDWARE-RELATED CONSIDERATIONS
13+
14+ Some CPUs/UARTs (e.g., Atmel AT91 or 16C950 UART) contain a built-in
15+ half-duplex mode capable of automatically controlling line direction by
16+ toggling RTS or DTR signals. That can be used to control external
17+ half-duplex hardware like an RS485 transceiver or any RS232-connected
18+ half-duplex devices like some modems.
19+
20+ For these microcontrollers, the Linux driver should be made capable of
21+ working in both modes, and proper ioctls (see later) should be made
22+ available at user-level to allow switching from one mode to the other, and
23+ vice versa.
24+
25+3. DATA STRUCTURES ALREADY AVAILABLE IN THE KERNEL
26+
27+ The Linux kernel provides the serial_rs485 structure (see [1]) to handle
28+ RS485 communications. This data structure is used to set and configure RS485
29+ parameters in the platform data and in ioctls.
30+
31+ Any driver for devices capable of working both as RS232 and RS485 should
32+ provide at least the following ioctls:
33+
34+ - TIOCSRS485 (typically associated with number 0x542F). This ioctl is used
35+ to enable/disable RS485 mode from user-space
36+
37+ - TIOCGRS485 (typically associated with number 0x542E). This ioctl is used
38+ to get RS485 mode from kernel-space (i.e., driver) to user-space.
39+
40+ In other words, the serial driver should contain a code similar to the next
41+ one:
42+
43+ static struct uart_ops atmel_pops = {
44+ /* ... */
45+ .ioctl = handle_ioctl,
46+ };
47+
48+ static int handle_ioctl(struct uart_port *port,
49+ unsigned int cmd,
50+ unsigned long arg)
51+ {
52+ struct serial_rs485 rs485conf;
53+
54+ switch (cmd) {
55+ case TIOCSRS485:
56+ if (copy_from_user(&rs485conf,
57+ (struct serial_rs485 *) arg,
58+ sizeof(rs485conf)))
59+ return -EFAULT;
60+
61+ /* ... */
62+ break;
63+
64+ case TIOCGRS485:
65+ if (copy_to_user((struct serial_rs485 *) arg,
66+ ...,
67+ sizeof(rs485conf)))
68+ return -EFAULT;
69+ /* ... */
70+ break;
71+
72+ /* ... */
73+ }
74+ }
75+
76+
77+4. USAGE FROM USER-LEVEL
78+
79+ From user-level, RS485 configuration can be get/set using the previous
80+ ioctls. For instance, to set RS485 you can use the following code:
81+
82+ #include <linux/serial.h>
83+
84+ /* Driver-specific ioctls: */
85+ #define TIOCGRS485 0x542E
86+ #define TIOCSRS485 0x542F
87+
88+ /* Open your specific device (e.g., /dev/mydevice): */
89+ int fd = open ("/dev/mydevice", O_RDWR);
90+ if (fd < 0) {
91+ /* Error handling. See errno. */
92+ }
93+
94+ struct serial_rs485 rs485conf;
95+
96+ /* Set RS485 mode: */
97+ rs485conf.flags |= SER_RS485_ENABLED;
98+
99+ /* Set rts delay before send, if needed: */
100+ rs485conf.flags |= SER_RS485_RTS_BEFORE_SEND;
101+ rs485conf.delay_rts_before_send = ...;
102+
103+ /* Set rts delay after send, if needed: */
104+ rs485conf.flags |= SER_RS485_RTS_AFTER_SEND;
105+ rs485conf.delay_rts_after_send = ...;
106+
107+ if (ioctl (fd, TIOCSRS485, &rs485conf) < 0) {
108+ /* Error handling. See errno. */
109+ }
110+
111+ /* Use read() and write() syscalls here... */
112+
113+ /* Close the device when finished: */
114+ if (close (fd) < 0) {
115+ /* Error handling. See errno. */
116+ }
117+
118+5. REFERENCES
119+
120+ [1] include/linux/serial.h
Documentation/serial/tty.txt+1−1
@@ -107,7 +107,7 @@ write_wakeup() - May be called at any point between open and close. · 106 unmodified lines
107107
108108 dcd_change() - Report to the tty line the current DCD pin status
109109 changes and the relative timestamp. The timestamp
110− can be NULL.
110+ cannot be NULL.
111111
112112
113113 Driver Access
Documentation/sound/alsa/ALSA-Configuration.txt+9−11
@@ -974,13 +974,6 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 973 unmodified lines
974974
975975 See hdspm.txt for details.
976976
977− Module snd-hifier
978− -----------------
979−
980− Module for the MediaTek/TempoTec HiFier Fantasia sound card.
981−
982− This module supports autoprobe and multiple cards.
983−
984977 Module snd-ice1712
985978 ------------------
986979
@@ -1531,15 +1524,20 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 544 unmodified lines
15311524 Module snd-oxygen
15321525 -----------------
15331526
1534− Module for sound cards based on the C-Media CMI8788 chip:
1527+ Module for sound cards based on the C-Media CMI8786/8787/8788 chip:
15351528 * Asound A-8788
1529+ * Asus Xonar DG
15361530 * AuzenTech X-Meridian
1531+ * AuzenTech X-Meridian 2G
15371532 * Bgears b-Enspirer
15381533 * Club3D Theatron DTS
15391534 * HT-Omega Claro (plus)
15401535 * HT-Omega Claro halo (XT)
1536+ * Kuroutoshikou CMI8787-HG2PCI
15411537 * Razer Barracuda AC-1
15421538 * Sondigo Inferno
1539+ * TempoTec HiFier Fantasia
1540+ * TempoTec HiFier Serenade
15431541
15441542 This module supports autoprobe and multiple cards.
15451543
@@ -2006,9 +2004,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. · 460 unmodified lines
20062004 Module snd-virtuoso
20072005 -------------------
20082006
2009− Module for sound cards based on the Asus AV100/AV200 chips,
2010− i.e., Xonar D1, DX, D2, D2X, DS, HDAV1.3 (Deluxe), Essence ST
2011− (Deluxe) and Essence STX.
2007+ Module for sound cards based on the Asus AV66/AV100/AV200 chips,
2008+ i.e., Xonar D1, DX, D2, D2X, DS, Essence ST (Deluxe), Essence STX,
2009+ HDAV1.3 (Deluxe), and HDAV1.3 Slim.
20122010
20132011 This module supports autoprobe and multiple cards.
20142012
Documentation/sound/alsa/HD-Audio-Models.txt+1−1
@@ -149,7 +149,6 @@ ALC882/883/885/888/889 · 148 unmodified lines
149149 acer-aspire-7730g Acer Aspire 7730G
150150 acer-aspire-8930g Acer Aspire 8930G
151151 medion Medion Laptops
152− medion-md2 Medion MD2
153152 targa-dig Targa/MSI
154153 targa-2ch-dig Targa/MSI with 2-channel
155154 targa-8ch-dig Targa/MSI with 8-channel (MSI GX620)
@@ -297,6 +296,7 @@ Conexant 5066 · 141 unmodified lines
297296 =============
298297 laptop Basic Laptop config (default)
299298 hp-laptop HP laptops, e g G60
299+ asus Asus K52JU, Lenovo G560
300300 dell-laptop Dell laptops
301301 dell-vostro Dell Vostro
302302 olpc-xo-1_5 OLPC XO 1.5
Documentation/sound/alsa/soc/codec.txt+21−24
@@ -27,42 +27,38 @@ ASoC Codec driver breakdown · 26 unmodified lines
2727
2828 1 - Codec DAI and PCM configuration
2929 -----------------------------------
30−Each codec driver must have a struct snd_soc_codec_dai to define its DAI and
30+Each codec driver must have a struct snd_soc_dai_driver to define its DAI and
3131 PCM capabilities and operations. This struct is exported so that it can be
3232 registered with the core by your machine driver.
3333
3434 e.g.
3535
36−struct snd_soc_codec_dai wm8731_dai = {
37− .name = "WM8731",
38− /* playback capabilities */
36+static struct snd_soc_dai_ops wm8731_dai_ops = {
37+ .prepare = wm8731_pcm_prepare,
38+ .hw_params = wm8731_hw_params,
39+ .shutdown = wm8731_shutdown,
40+ .digital_mute = wm8731_mute,
41+ .set_sysclk = wm8731_set_dai_sysclk,
42+ .set_fmt = wm8731_set_dai_fmt,
43+};
44+
45+struct snd_soc_dai_driver wm8731_dai = {
46+ .name = "wm8731-hifi",
3947 .playback = {
4048 .stream_name = "Playback",
4149 .channels_min = 1,
4250 .channels_max = 2,
4351 .rates = WM8731_RATES,
4452 .formats = WM8731_FORMATS,},
45− /* capture capabilities */
4653 .capture = {
4754 .stream_name = "Capture",
4855 .channels_min = 1,
4956 .channels_max = 2,
5057 .rates = WM8731_RATES,
5158 .formats = WM8731_FORMATS,},
52− /* pcm operations - see section 4 below */
53− .ops = {
54− .prepare = wm8731_pcm_prepare,
55− .hw_params = wm8731_hw_params,
56− .shutdown = wm8731_shutdown,
57− },
58− /* DAI operations - see DAI.txt */
59− .dai_ops = {
60− .digital_mute = wm8731_mute,
61− .set_sysclk = wm8731_set_dai_sysclk,
62− .set_fmt = wm8731_set_dai_fmt,
63− }
59+ .ops = &wm8731_dai_ops,
60+ .symmetric_rates = 1,
6461 };
65−EXPORT_SYMBOL_GPL(wm8731_dai);
6662
6763
6864 2 - Codec control IO
@@ -186,13 +182,14 @@ when the mute is applied or freed. · 117 unmodified lines
186182
187183 i.e.
188184
189−static int wm8974_mute(struct snd_soc_codec *codec,
190− struct snd_soc_codec_dai *dai, int mute)
185+static int wm8974_mute(struct snd_soc_dai *dai, int mute)
191186 {
192− u16 mute_reg = wm8974_read_reg_cache(codec, WM8974_DAC) & 0xffbf;
193− if(mute)
194− wm8974_write(codec, WM8974_DAC, mute_reg | 0x40);
187+ struct snd_soc_codec *codec = dai->codec;
188+ u16 mute_reg = snd_soc_read(codec, WM8974_DAC) & 0xffbf;
189+
190+ if (mute)
191+ snd_soc_write(codec, WM8974_DAC, mute_reg | 0x40);
195192 else
196− wm8974_write(codec, WM8974_DAC, mute_reg);
193+ snd_soc_write(codec, WM8974_DAC, mute_reg);
197194 return 0;
198195 }
Documentation/sound/alsa/soc/machine.txt+9−29
@@ -12,6 +12,8 @@ the following struct:- · 11 unmodified lines
1212 struct snd_soc_card {
1313 char *name;
1414
15+ ...
16+
1517 int (*probe)(struct platform_device *pdev);
1618 int (*remove)(struct platform_device *pdev);
1719
@@ -22,12 +24,13 @@ struct snd_soc_card { · 4 unmodified lines
2224 int (*resume_pre)(struct platform_device *pdev);
2325 int (*resume_post)(struct platform_device *pdev);
2426
25− /* machine stream operations */
26− struct snd_soc_ops *ops;
27+ ...
2728
2829 /* CPU <--> Codec DAI links */
2930 struct snd_soc_dai_link *dai_link;
3031 int num_links;
32+
33+ ...
3134 };
3235
3336 probe()/remove()
@@ -42,11 +45,6 @@ of any machine audio tasks that have to be done before or after the codec, DAIs · 8 unmodified lines
4245 and DMA is suspended and resumed. Optional.
4346
4447
45−Machine operations
46−------------------
47−The machine specific audio operations can be set here. Again this is optional.
48−
49−
5048 Machine DAI Configuration
5149 -------------------------
5250 The machine DAI configuration glues all the codec and CPU DAIs together. It can
@@ -61,8 +59,10 @@ struct snd_soc_dai_link is used to set up each DAI in your machine. e.g. · 8 unmodified lines
6159 static struct snd_soc_dai_link corgi_dai = {
6260 .name = "WM8731",
6361 .stream_name = "WM8731",
64− .cpu_dai = &pxa_i2s_dai,
65− .codec_dai = &wm8731_dai,
62+ .cpu_dai_name = "pxa-is2-dai",
63+ .codec_dai_name = "wm8731-hifi",
64+ .platform_name = "pxa-pcm-audio",
65+ .codec_name = "wm8713-codec.0-001a",
6666 .init = corgi_wm8731_init,
6767 .ops = &corgi_ops,
6868 };
@@ -77,26 +77,6 @@ static struct snd_soc_card snd_soc_corgi = { · 8 unmodified lines
7777 };
7878
7979
80−Machine Audio Subsystem
81−-----------------------
82−
83−The machine soc device glues the platform, machine and codec driver together.
84−Private data can also be set here. e.g.
85−
86−/* corgi audio private data */
87−static struct wm8731_setup_data corgi_wm8731_setup = {
88− .i2c_address = 0x1b,
89−};
90−
91−/* corgi audio subsystem */
92−static struct snd_soc_device corgi_snd_devdata = {
93− .machine = &snd_soc_corgi,
94− .platform = &pxa2xx_soc_platform,
95− .codec_dev = &soc_codec_dev_wm8731,
96− .codec_data = &corgi_wm8731_setup,
97−};
98−
99−
10080 Machine Power Map
10181 -----------------
10282
Documentation/sound/alsa/soc/platform.txt+10−2
@@ -20,9 +20,10 @@ struct snd_soc_ops { · 19 unmodified lines
2020 int (*trigger)(struct snd_pcm_substream *, int);
2121 };
2222
23−The platform driver exports its DMA functionality via struct snd_soc_platform:-
23+The platform driver exports its DMA functionality via struct
24+snd_soc_platform_driver:-
2425
25−struct snd_soc_platform {
26+struct snd_soc_platform_driver {
2627 char *name;
2728
2829 int (*probe)(struct platform_device *pdev);
@@ -34,6 +35,13 @@ struct snd_soc_platform { · 5 unmodified lines
3435 int (*pcm_new)(struct snd_card *, struct snd_soc_codec_dai *, struct snd_pcm *);
3536 void (*pcm_free)(struct snd_pcm *);
3637
38+ /*
39+ * For platform caused delay reporting.
40+ * Optional.
41+ */
42+ snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *,
43+ struct snd_soc_dai *);
44+
3745 /* platform stream ops */
3846 struct snd_pcm_ops *pcm_ops;
3947 };
Documentation/spi/pxa2xx+2−2
@@ -19,7 +19,7 @@ Declaring PXA2xx Master Controllers · 18 unmodified lines
1919 -----------------------------------
2020 Typically a SPI master is defined in the arch/.../mach-*/board-*.c as a
2121 "platform device". The master configuration is passed to the driver via a table
22−found in arch/arm/mach-pxa/include/mach/pxa2xx_spi.h:
22+found in include/linux/spi/pxa2xx_spi.h:
2323
2424 struct pxa2xx_spi_master {
2525 enum pxa_ssp_type ssp_type;
@@ -94,7 +94,7 @@ using the "spi_board_info" structure found in "linux/spi/spi.h". See · 68 unmodified lines
9494
9595 Each slave device attached to the PXA must provide slave specific configuration
9696 information via the structure "pxa2xx_spi_chip" found in
97−"arch/arm/mach-pxa/include/mach/pxa2xx_spi.h". The pxa2xx_spi master controller driver
97+"include/linux/spi/pxa2xx_spi.h". The pxa2xx_spi master controller driver
9898 will uses the configuration whenever the driver communicates with the slave
9999 device. All fields are optional.
100100
Documentation/sysctl/00-INDEX+0−2
@@ -4,8 +4,6 @@ README · 3 unmodified lines
44 - general information about /proc/sys/ sysctl files.
55 abi.txt
66 - documentation for /proc/sys/abi/*.
7−ctl_unnumbered.txt
8− - explanation of why one should not add new binary sysctl numbers.
97 fs.txt
108 - documentation for /proc/sys/fs/*.
119 kernel.txt
Documentation/sysctl/kernel.txt+15−1
@@ -34,6 +34,7 @@ show up in /proc/sys/kernel: · 33 unmodified lines
3434 - hotplug
3535 - java-appletviewer [ binfmt_java, obsolete ]
3636 - java-interpreter [ binfmt_java, obsolete ]
37+- kptr_restrict
3738 - kstack_depth_to_print [ X86 only ]
3839 - l2cr [ PPC only ]
3940 - modprobe ==> Documentation/debugging-modules.txt
@@ -219,7 +220,7 @@ dmesg_restrict: · 179 unmodified lines
219220 This toggle indicates whether unprivileged users are prevented from using
220221 dmesg(8) to view messages from the kernel's log buffer. When
221222 dmesg_restrict is set to (0) there are no restrictions. When
222−dmesg_restrict is set set to (1), users must have CAP_SYS_ADMIN to use
223+dmesg_restrict is set set to (1), users must have CAP_SYSLOG to use
223224 dmesg(8).
224225
225226 The kernel config option CONFIG_SECURITY_DMESG_RESTRICT sets the default
@@ -261,6 +262,19 @@ This flag controls the L2 cache of G3 processor boards. If · 35 unmodified lines
261262
262263 ==============================================================
263264
265+kptr_restrict:
266+
267+This toggle indicates whether restrictions are placed on
268+exposing kernel addresses via /proc and other interfaces. When
269+kptr_restrict is set to (0), there are no restrictions. When
270+kptr_restrict is set to (1), the default, kernel pointers
271+printed using the %pK format specifier will be replaced with 0's
272+unless the user has CAP_SYSLOG. When kptr_restrict is set to
273+(2), kernel pointers printed using %pK will be replaced with 0's
274+regardless of privileges.
275+
276+==============================================================
277+
264278 kstack_depth_to_print: (X86 only)
265279
266280 Controls the number of words to print when dumping the raw
Documentation/target/tcm_mod_builder.py+1094−0
@@ -0,0 +1,1094 @@
1+#!/usr/bin/python
2+# The TCM v4 multi-protocol fabric module generation script for drivers/target/$NEW_MOD
3+#
4+# Copyright (c) 2010 Rising Tide Systems
5+# Copyright (c) 2010 Linux-iSCSI.org
6+#
7+# Author: nab@kernel.org
8+#
9+import os, sys
10+import subprocess as sub
11+import string
12+import re
13+import optparse
14+
15+tcm_dir = ""
16+
17+fabric_ops = []
18+fabric_mod_dir = ""
19+fabric_mod_port = ""
20+fabric_mod_init_port = ""
21+
22+def tcm_mod_err(msg):
23+ print msg
24+ sys.exit(1)
25+
26+def tcm_mod_create_module_subdir(fabric_mod_dir_var):
27+
28+ if os.path.isdir(fabric_mod_dir_var) == True:
29+ return 1
30+
31+ print "Creating fabric_mod_dir: " + fabric_mod_dir_var
32+ ret = os.mkdir(fabric_mod_dir_var)
33+ if ret:
34+ tcm_mod_err("Unable to mkdir " + fabric_mod_dir_var)
35+
36+ return
37+
38+def tcm_mod_build_FC_include(fabric_mod_dir_var, fabric_mod_name):
39+ global fabric_mod_port
40+ global fabric_mod_init_port
41+ buf = ""
42+
43+ f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h"
44+ print "Writing file: " + f
45+
46+ p = open(f, 'w');
47+ if not p:
48+ tcm_mod_err("Unable to open file: " + f)
49+
50+ buf = "#define " + fabric_mod_name.upper() + "_VERSION \"v0.1\"\n"
51+ buf += "#define " + fabric_mod_name.upper() + "_NAMELEN 32\n"
52+ buf += "\n"
53+ buf += "struct " + fabric_mod_name + "_nacl {\n"
54+ buf += " /* Binary World Wide unique Port Name for FC Initiator Nport */\n"
55+ buf += " u64 nport_wwpn;\n"
56+ buf += " /* ASCII formatted WWPN for FC Initiator Nport */\n"
57+ buf += " char nport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
58+ buf += " /* Returned by " + fabric_mod_name + "_make_nodeacl() */\n"
59+ buf += " struct se_node_acl se_node_acl;\n"
60+ buf += "};\n"
61+ buf += "\n"
62+ buf += "struct " + fabric_mod_name + "_tpg {\n"
63+ buf += " /* FC lport target portal group tag for TCM */\n"
64+ buf += " u16 lport_tpgt;\n"
65+ buf += " /* Pointer back to " + fabric_mod_name + "_lport */\n"
66+ buf += " struct " + fabric_mod_name + "_lport *lport;\n"
67+ buf += " /* Returned by " + fabric_mod_name + "_make_tpg() */\n"
68+ buf += " struct se_portal_group se_tpg;\n"
69+ buf += "};\n"
70+ buf += "\n"
71+ buf += "struct " + fabric_mod_name + "_lport {\n"
72+ buf += " /* SCSI protocol the lport is providing */\n"
73+ buf += " u8 lport_proto_id;\n"
74+ buf += " /* Binary World Wide unique Port Name for FC Target Lport */\n"
75+ buf += " u64 lport_wwpn;\n"
76+ buf += " /* ASCII formatted WWPN for FC Target Lport */\n"
77+ buf += " char lport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
78+ buf += " /* Returned by " + fabric_mod_name + "_make_lport() */\n"
79+ buf += " struct se_wwn lport_wwn;\n"
80+ buf += "};\n"
81+
82+ ret = p.write(buf)
83+ if ret:
84+ tcm_mod_err("Unable to write f: " + f)
85+
86+ p.close()
87+
88+ fabric_mod_port = "lport"
89+ fabric_mod_init_port = "nport"
90+
91+ return
92+
93+def tcm_mod_build_SAS_include(fabric_mod_dir_var, fabric_mod_name):
94+ global fabric_mod_port
95+ global fabric_mod_init_port
96+ buf = ""
97+
98+ f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h"
99+ print "Writing file: " + f
100+
101+ p = open(f, 'w');
102+ if not p:
103+ tcm_mod_err("Unable to open file: " + f)
104+
105+ buf = "#define " + fabric_mod_name.upper() + "_VERSION \"v0.1\"\n"
106+ buf += "#define " + fabric_mod_name.upper() + "_NAMELEN 32\n"
107+ buf += "\n"
108+ buf += "struct " + fabric_mod_name + "_nacl {\n"
109+ buf += " /* Binary World Wide unique Port Name for SAS Initiator port */\n"
110+ buf += " u64 iport_wwpn;\n"
111+ buf += " /* ASCII formatted WWPN for Sas Initiator port */\n"
112+ buf += " char iport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
113+ buf += " /* Returned by " + fabric_mod_name + "_make_nodeacl() */\n"
114+ buf += " struct se_node_acl se_node_acl;\n"
115+ buf += "};\n\n"
116+ buf += "struct " + fabric_mod_name + "_tpg {\n"
117+ buf += " /* SAS port target portal group tag for TCM */\n"
118+ buf += " u16 tport_tpgt;\n"
119+ buf += " /* Pointer back to " + fabric_mod_name + "_tport */\n"
120+ buf += " struct " + fabric_mod_name + "_tport *tport;\n"
121+ buf += " /* Returned by " + fabric_mod_name + "_make_tpg() */\n"
122+ buf += " struct se_portal_group se_tpg;\n"
123+ buf += "};\n\n"
124+ buf += "struct " + fabric_mod_name + "_tport {\n"
125+ buf += " /* SCSI protocol the tport is providing */\n"
126+ buf += " u8 tport_proto_id;\n"
127+ buf += " /* Binary World Wide unique Port Name for SAS Target port */\n"
128+ buf += " u64 tport_wwpn;\n"
129+ buf += " /* ASCII formatted WWPN for SAS Target port */\n"
130+ buf += " char tport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
131+ buf += " /* Returned by " + fabric_mod_name + "_make_tport() */\n"
132+ buf += " struct se_wwn tport_wwn;\n"
133+ buf += "};\n"
134+
135+ ret = p.write(buf)
136+ if ret:
137+ tcm_mod_err("Unable to write f: " + f)
138+
139+ p.close()
140+
141+ fabric_mod_port = "tport"
142+ fabric_mod_init_port = "iport"
143+
144+ return
145+
146+def tcm_mod_build_iSCSI_include(fabric_mod_dir_var, fabric_mod_name):
147+ global fabric_mod_port
148+ global fabric_mod_init_port
149+ buf = ""
150+
151+ f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h"
152+ print "Writing file: " + f
153+
154+ p = open(f, 'w');
155+ if not p:
156+ tcm_mod_err("Unable to open file: " + f)
157+
158+ buf = "#define " + fabric_mod_name.upper() + "_VERSION \"v0.1\"\n"
159+ buf += "#define " + fabric_mod_name.upper() + "_NAMELEN 32\n"
160+ buf += "\n"
161+ buf += "struct " + fabric_mod_name + "_nacl {\n"
162+ buf += " /* ASCII formatted InitiatorName */\n"
163+ buf += " char iport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
164+ buf += " /* Returned by " + fabric_mod_name + "_make_nodeacl() */\n"
165+ buf += " struct se_node_acl se_node_acl;\n"
166+ buf += "};\n\n"
167+ buf += "struct " + fabric_mod_name + "_tpg {\n"
168+ buf += " /* iSCSI target portal group tag for TCM */\n"
169+ buf += " u16 tport_tpgt;\n"
170+ buf += " /* Pointer back to " + fabric_mod_name + "_tport */\n"
171+ buf += " struct " + fabric_mod_name + "_tport *tport;\n"
172+ buf += " /* Returned by " + fabric_mod_name + "_make_tpg() */\n"
173+ buf += " struct se_portal_group se_tpg;\n"
174+ buf += "};\n\n"
175+ buf += "struct " + fabric_mod_name + "_tport {\n"
176+ buf += " /* SCSI protocol the tport is providing */\n"
177+ buf += " u8 tport_proto_id;\n"
178+ buf += " /* ASCII formatted TargetName for IQN */\n"
179+ buf += " char tport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
180+ buf += " /* Returned by " + fabric_mod_name + "_make_tport() */\n"
181+ buf += " struct se_wwn tport_wwn;\n"
182+ buf += "};\n"
183+
184+ ret = p.write(buf)
185+ if ret:
186+ tcm_mod_err("Unable to write f: " + f)
187+
188+ p.close()
189+
190+ fabric_mod_port = "tport"
191+ fabric_mod_init_port = "iport"
192+
193+ return
194+
195+def tcm_mod_build_base_includes(proto_ident, fabric_mod_dir_val, fabric_mod_name):
196+
197+ if proto_ident == "FC":
198+ tcm_mod_build_FC_include(fabric_mod_dir_val, fabric_mod_name)
199+ elif proto_ident == "SAS":
200+ tcm_mod_build_SAS_include(fabric_mod_dir_val, fabric_mod_name)
201+ elif proto_ident == "iSCSI":
202+ tcm_mod_build_iSCSI_include(fabric_mod_dir_val, fabric_mod_name)
203+ else:
204+ print "Unsupported proto_ident: " + proto_ident
205+ sys.exit(1)
206+
207+ return
208+
209+def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
210+ buf = ""
211+
212+ f = fabric_mod_dir_var + "/" + fabric_mod_name + "_configfs.c"
213+ print "Writing file: " + f
214+
215+ p = open(f, 'w');
216+ if not p:
217+ tcm_mod_err("Unable to open file: " + f)
218+
219+ buf = "#include <linux/module.h>\n"
220+ buf += "#include <linux/moduleparam.h>\n"
221+ buf += "#include <linux/version.h>\n"
222+ buf += "#include <generated/utsrelease.h>\n"
223+ buf += "#include <linux/utsname.h>\n"
224+ buf += "#include <linux/init.h>\n"
225+ buf += "#include <linux/slab.h>\n"
226+ buf += "#include <linux/kthread.h>\n"
227+ buf += "#include <linux/types.h>\n"
228+ buf += "#include <linux/string.h>\n"
229+ buf += "#include <linux/configfs.h>\n"
230+ buf += "#include <linux/ctype.h>\n"
231+ buf += "#include <asm/unaligned.h>\n\n"
232+ buf += "#include <target/target_core_base.h>\n"
233+ buf += "#include <target/target_core_transport.h>\n"
234+ buf += "#include <target/target_core_fabric_ops.h>\n"
235+ 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"
240+ buf += "#include <target/target_core_base.h>\n"
241+ buf += "#include <target/configfs_macros.h>\n\n"
242+ buf += "#include <" + fabric_mod_name + "_base.h>\n"
243+ buf += "#include <" + fabric_mod_name + "_fabric.h>\n\n"
244+
245+ buf += "/* Local pointer to allocated TCM configfs fabric module */\n"
246+ buf += "struct target_fabric_configfs *" + fabric_mod_name + "_fabric_configfs;\n\n"
247+
248+ buf += "static struct se_node_acl *" + fabric_mod_name + "_make_nodeacl(\n"
249+ buf += " struct se_portal_group *se_tpg,\n"
250+ buf += " struct config_group *group,\n"
251+ buf += " const char *name)\n"
252+ buf += "{\n"
253+ buf += " struct se_node_acl *se_nacl, *se_nacl_new;\n"
254+ buf += " struct " + fabric_mod_name + "_nacl *nacl;\n"
255+
256+ if proto_ident == "FC" or proto_ident == "SAS":
257+ buf += " u64 wwpn = 0;\n"
258+
259+ buf += " u32 nexus_depth;\n\n"
260+ buf += " /* " + fabric_mod_name + "_parse_wwn(name, &wwpn, 1) < 0)\n"
261+ buf += " return ERR_PTR(-EINVAL); */\n"
262+ buf += " se_nacl_new = " + fabric_mod_name + "_alloc_fabric_acl(se_tpg);\n"
263+ buf += " if (!(se_nacl_new))\n"
264+ buf += " return ERR_PTR(-ENOMEM);\n"
265+ buf += "//#warning FIXME: Hardcoded nexus depth in " + fabric_mod_name + "_make_nodeacl()\n"
266+ buf += " nexus_depth = 1;\n"
267+ buf += " /*\n"
268+ buf += " * se_nacl_new may be released by core_tpg_add_initiator_node_acl()\n"
269+ buf += " * when converting a NodeACL from demo mode -> explict\n"
270+ buf += " */\n"
271+ buf += " se_nacl = core_tpg_add_initiator_node_acl(se_tpg, se_nacl_new,\n"
272+ buf += " name, nexus_depth);\n"
273+ buf += " if (IS_ERR(se_nacl)) {\n"
274+ buf += " " + fabric_mod_name + "_release_fabric_acl(se_tpg, se_nacl_new);\n"
275+ buf += " return se_nacl;\n"
276+ buf += " }\n"
277+ buf += " /*\n"
278+ buf += " * Locate our struct " + fabric_mod_name + "_nacl and set the FC Nport WWPN\n"
279+ buf += " */\n"
280+ buf += " nacl = container_of(se_nacl, struct " + fabric_mod_name + "_nacl, se_node_acl);\n"
281+
282+ if proto_ident == "FC" or proto_ident == "SAS":
283+ buf += " nacl->" + fabric_mod_init_port + "_wwpn = wwpn;\n"
284+
285+ buf += " /* " + fabric_mod_name + "_format_wwn(&nacl->" + fabric_mod_init_port + "_name[0], " + fabric_mod_name.upper() + "_NAMELEN, wwpn); */\n\n"
286+ buf += " return se_nacl;\n"
287+ buf += "}\n\n"
288+ buf += "static void " + fabric_mod_name + "_drop_nodeacl(struct se_node_acl *se_acl)\n"
289+ buf += "{\n"
290+ buf += " struct " + fabric_mod_name + "_nacl *nacl = container_of(se_acl,\n"
291+ buf += " struct " + fabric_mod_name + "_nacl, se_node_acl);\n"
292+ buf += " kfree(nacl);\n"
293+ buf += "}\n\n"
294+
295+ buf += "static struct se_portal_group *" + fabric_mod_name + "_make_tpg(\n"
296+ buf += " struct se_wwn *wwn,\n"
297+ buf += " struct config_group *group,\n"
298+ buf += " const char *name)\n"
299+ buf += "{\n"
300+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + "*" + fabric_mod_port + " = container_of(wwn,\n"
301+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + ", " + fabric_mod_port + "_wwn);\n\n"
302+ buf += " struct " + fabric_mod_name + "_tpg *tpg;\n"
303+ buf += " unsigned long tpgt;\n"
304+ buf += " int ret;\n\n"
305+ buf += " if (strstr(name, \"tpgt_\") != name)\n"
306+ buf += " return ERR_PTR(-EINVAL);\n"
307+ buf += " if (strict_strtoul(name + 5, 10, &tpgt) || tpgt > UINT_MAX)\n"
308+ buf += " return ERR_PTR(-EINVAL);\n\n"
309+ buf += " tpg = kzalloc(sizeof(struct " + fabric_mod_name + "_tpg), GFP_KERNEL);\n"
310+ buf += " if (!(tpg)) {\n"
311+ buf += " printk(KERN_ERR \"Unable to allocate struct " + fabric_mod_name + "_tpg\");\n"
312+ buf += " return ERR_PTR(-ENOMEM);\n"
313+ buf += " }\n"
314+ buf += " tpg->" + fabric_mod_port + " = " + fabric_mod_port + ";\n"
315+ buf += " tpg->" + fabric_mod_port + "_tpgt = tpgt;\n\n"
316+ buf += " ret = core_tpg_register(&" + fabric_mod_name + "_fabric_configfs->tf_ops, wwn,\n"
317+ buf += " &tpg->se_tpg, (void *)tpg,\n"
318+ buf += " TRANSPORT_TPG_TYPE_NORMAL);\n"
319+ buf += " if (ret < 0) {\n"
320+ buf += " kfree(tpg);\n"
321+ buf += " return NULL;\n"
322+ buf += " }\n"
323+ buf += " return &tpg->se_tpg;\n"
324+ buf += "}\n\n"
325+ buf += "static void " + fabric_mod_name + "_drop_tpg(struct se_portal_group *se_tpg)\n"
326+ buf += "{\n"
327+ buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
328+ buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n\n"
329+ buf += " core_tpg_deregister(se_tpg);\n"
330+ buf += " kfree(tpg);\n"
331+ buf += "}\n\n"
332+
333+ buf += "static struct se_wwn *" + fabric_mod_name + "_make_" + fabric_mod_port + "(\n"
334+ buf += " struct target_fabric_configfs *tf,\n"
335+ buf += " struct config_group *group,\n"
336+ buf += " const char *name)\n"
337+ buf += "{\n"
338+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + ";\n"
339+
340+ if proto_ident == "FC" or proto_ident == "SAS":
341+ buf += " u64 wwpn = 0;\n\n"
342+
343+ buf += " /* if (" + fabric_mod_name + "_parse_wwn(name, &wwpn, 1) < 0)\n"
344+ buf += " return ERR_PTR(-EINVAL); */\n\n"
345+ buf += " " + fabric_mod_port + " = kzalloc(sizeof(struct " + fabric_mod_name + "_" + fabric_mod_port + "), GFP_KERNEL);\n"
346+ buf += " if (!(" + fabric_mod_port + ")) {\n"
347+ buf += " printk(KERN_ERR \"Unable to allocate struct " + fabric_mod_name + "_" + fabric_mod_port + "\");\n"
348+ buf += " return ERR_PTR(-ENOMEM);\n"
349+ buf += " }\n"
350+
351+ if proto_ident == "FC" or proto_ident == "SAS":
352+ buf += " " + fabric_mod_port + "->" + fabric_mod_port + "_wwpn = wwpn;\n"
353+
354+ buf += " /* " + fabric_mod_name + "_format_wwn(&" + fabric_mod_port + "->" + fabric_mod_port + "_name[0], " + fabric_mod_name.upper() + "__NAMELEN, wwpn); */\n\n"
355+ buf += " return &" + fabric_mod_port + "->" + fabric_mod_port + "_wwn;\n"
356+ buf += "}\n\n"
357+ buf += "static void " + fabric_mod_name + "_drop_" + fabric_mod_port + "(struct se_wwn *wwn)\n"
358+ buf += "{\n"
359+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = container_of(wwn,\n"
360+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + ", " + fabric_mod_port + "_wwn);\n"
361+ buf += " kfree(" + fabric_mod_port + ");\n"
362+ buf += "}\n\n"
363+ buf += "static ssize_t " + fabric_mod_name + "_wwn_show_attr_version(\n"
364+ buf += " struct target_fabric_configfs *tf,\n"
365+ buf += " char *page)\n"
366+ buf += "{\n"
367+ buf += " return sprintf(page, \"" + fabric_mod_name.upper() + " fabric module %s on %s/%s\"\n"
368+ buf += " \"on \"UTS_RELEASE\"\\n\", " + fabric_mod_name.upper() + "_VERSION, utsname()->sysname,\n"
369+ buf += " utsname()->machine);\n"
370+ buf += "}\n\n"
371+ buf += "TF_WWN_ATTR_RO(" + fabric_mod_name + ", version);\n\n"
372+ buf += "static struct configfs_attribute *" + fabric_mod_name + "_wwn_attrs[] = {\n"
373+ buf += " &" + fabric_mod_name + "_wwn_version.attr,\n"
374+ buf += " NULL,\n"
375+ buf += "};\n\n"
376+
377+ buf += "static struct target_core_fabric_ops " + fabric_mod_name + "_ops = {\n"
378+ buf += " .get_fabric_name = " + fabric_mod_name + "_get_fabric_name,\n"
379+ buf += " .get_fabric_proto_ident = " + fabric_mod_name + "_get_fabric_proto_ident,\n"
380+ buf += " .tpg_get_wwn = " + fabric_mod_name + "_get_fabric_wwn,\n"
381+ buf += " .tpg_get_tag = " + fabric_mod_name + "_get_tag,\n"
382+ buf += " .tpg_get_default_depth = " + fabric_mod_name + "_get_default_depth,\n"
383+ buf += " .tpg_get_pr_transport_id = " + fabric_mod_name + "_get_pr_transport_id,\n"
384+ buf += " .tpg_get_pr_transport_id_len = " + fabric_mod_name + "_get_pr_transport_id_len,\n"
385+ buf += " .tpg_parse_pr_out_transport_id = " + fabric_mod_name + "_parse_pr_out_transport_id,\n"
386+ buf += " .tpg_check_demo_mode = " + fabric_mod_name + "_check_false,\n"
387+ buf += " .tpg_check_demo_mode_cache = " + fabric_mod_name + "_check_true,\n"
388+ buf += " .tpg_check_demo_mode_write_protect = " + fabric_mod_name + "_check_true,\n"
389+ buf += " .tpg_check_prod_mode_write_protect = " + fabric_mod_name + "_check_false,\n"
390+ buf += " .tpg_alloc_fabric_acl = " + fabric_mod_name + "_alloc_fabric_acl,\n"
391+ buf += " .tpg_release_fabric_acl = " + fabric_mod_name + "_release_fabric_acl,\n"
392+ buf += " .tpg_get_inst_index = " + fabric_mod_name + "_tpg_get_inst_index,\n"
393+ buf += " .release_cmd_to_pool = " + fabric_mod_name + "_release_cmd,\n"
394+ buf += " .release_cmd_direct = " + fabric_mod_name + "_release_cmd,\n"
395+ buf += " .shutdown_session = " + fabric_mod_name + "_shutdown_session,\n"
396+ buf += " .close_session = " + fabric_mod_name + "_close_session,\n"
397+ buf += " .stop_session = " + fabric_mod_name + "_stop_session,\n"
398+ buf += " .fall_back_to_erl0 = " + fabric_mod_name + "_reset_nexus,\n"
399+ buf += " .sess_logged_in = " + fabric_mod_name + "_sess_logged_in,\n"
400+ buf += " .sess_get_index = " + fabric_mod_name + "_sess_get_index,\n"
401+ buf += " .sess_get_initiator_sid = NULL,\n"
402+ buf += " .write_pending = " + fabric_mod_name + "_write_pending,\n"
403+ buf += " .write_pending_status = " + fabric_mod_name + "_write_pending_status,\n"
404+ buf += " .set_default_node_attributes = " + fabric_mod_name + "_set_default_node_attrs,\n"
405+ buf += " .get_task_tag = " + fabric_mod_name + "_get_task_tag,\n"
406+ buf += " .get_cmd_state = " + fabric_mod_name + "_get_cmd_state,\n"
407+ buf += " .new_cmd_failure = " + fabric_mod_name + "_new_cmd_failure,\n"
408+ buf += " .queue_data_in = " + fabric_mod_name + "_queue_data_in,\n"
409+ buf += " .queue_status = " + fabric_mod_name + "_queue_status,\n"
410+ buf += " .queue_tm_rsp = " + fabric_mod_name + "_queue_tm_rsp,\n"
411+ buf += " .get_fabric_sense_len = " + fabric_mod_name + "_get_fabric_sense_len,\n"
412+ buf += " .set_fabric_sense_len = " + fabric_mod_name + "_set_fabric_sense_len,\n"
413+ buf += " .is_state_remove = " + fabric_mod_name + "_is_state_remove,\n"
414+ buf += " .pack_lun = " + fabric_mod_name + "_pack_lun,\n"
415+ buf += " /*\n"
416+ buf += " * Setup function pointers for generic logic in target_core_fabric_configfs.c\n"
417+ buf += " */\n"
418+ buf += " .fabric_make_wwn = " + fabric_mod_name + "_make_" + fabric_mod_port + ",\n"
419+ buf += " .fabric_drop_wwn = " + fabric_mod_name + "_drop_" + fabric_mod_port + ",\n"
420+ buf += " .fabric_make_tpg = " + fabric_mod_name + "_make_tpg,\n"
421+ buf += " .fabric_drop_tpg = " + fabric_mod_name + "_drop_tpg,\n"
422+ buf += " .fabric_post_link = NULL,\n"
423+ buf += " .fabric_pre_unlink = NULL,\n"
424+ buf += " .fabric_make_np = NULL,\n"
425+ buf += " .fabric_drop_np = NULL,\n"
426+ buf += " .fabric_make_nodeacl = " + fabric_mod_name + "_make_nodeacl,\n"
427+ buf += " .fabric_drop_nodeacl = " + fabric_mod_name + "_drop_nodeacl,\n"
428+ buf += "};\n\n"
429+
430+ buf += "static int " + fabric_mod_name + "_register_configfs(void)\n"
431+ buf += "{\n"
432+ buf += " struct target_fabric_configfs *fabric;\n"
433+ buf += " int ret;\n\n"
434+ buf += " printk(KERN_INFO \"" + fabric_mod_name.upper() + " fabric module %s on %s/%s\"\n"
435+ buf += " \" on \"UTS_RELEASE\"\\n\"," + fabric_mod_name.upper() + "_VERSION, utsname()->sysname,\n"
436+ buf += " utsname()->machine);\n"
437+ buf += " /*\n"
438+ buf += " * Register the top level struct config_item_type with TCM core\n"
439+ buf += " */\n"
440+ buf += " fabric = target_fabric_configfs_init(THIS_MODULE, \"" + fabric_mod_name[4:] + "\");\n"
441+ buf += " if (!(fabric)) {\n"
442+ buf += " printk(KERN_ERR \"target_fabric_configfs_init() failed\\n\");\n"
443+ buf += " return -ENOMEM;\n"
444+ buf += " }\n"
445+ buf += " /*\n"
446+ buf += " * Setup fabric->tf_ops from our local " + fabric_mod_name + "_ops\n"
447+ buf += " */\n"
448+ buf += " fabric->tf_ops = " + fabric_mod_name + "_ops;\n"
449+ buf += " /*\n"
450+ buf += " * Setup default attribute lists for various fabric->tf_cit_tmpl\n"
451+ buf += " */\n"
452+ buf += " TF_CIT_TMPL(fabric)->tfc_wwn_cit.ct_attrs = " + fabric_mod_name + "_wwn_attrs;\n"
453+ buf += " TF_CIT_TMPL(fabric)->tfc_tpg_base_cit.ct_attrs = NULL;\n"
454+ buf += " TF_CIT_TMPL(fabric)->tfc_tpg_attrib_cit.ct_attrs = NULL;\n"
455+ buf += " TF_CIT_TMPL(fabric)->tfc_tpg_param_cit.ct_attrs = NULL;\n"
456+ buf += " TF_CIT_TMPL(fabric)->tfc_tpg_np_base_cit.ct_attrs = NULL;\n"
457+ buf += " TF_CIT_TMPL(fabric)->tfc_tpg_nacl_base_cit.ct_attrs = NULL;\n"
458+ buf += " TF_CIT_TMPL(fabric)->tfc_tpg_nacl_attrib_cit.ct_attrs = NULL;\n"
459+ buf += " TF_CIT_TMPL(fabric)->tfc_tpg_nacl_auth_cit.ct_attrs = NULL;\n"
460+ buf += " TF_CIT_TMPL(fabric)->tfc_tpg_nacl_param_cit.ct_attrs = NULL;\n"
461+ buf += " /*\n"
462+ buf += " * Register the fabric for use within TCM\n"
463+ buf += " */\n"
464+ buf += " ret = target_fabric_configfs_register(fabric);\n"
465+ buf += " if (ret < 0) {\n"
466+ buf += " printk(KERN_ERR \"target_fabric_configfs_register() failed\"\n"
467+ buf += " \" for " + fabric_mod_name.upper() + "\\n\");\n"
468+ buf += " return ret;\n"
469+ buf += " }\n"
470+ buf += " /*\n"
471+ buf += " * Setup our local pointer to *fabric\n"
472+ buf += " */\n"
473+ buf += " " + fabric_mod_name + "_fabric_configfs = fabric;\n"
474+ buf += " printk(KERN_INFO \"" + fabric_mod_name.upper() + "[0] - Set fabric -> " + fabric_mod_name + "_fabric_configfs\\n\");\n"
475+ buf += " return 0;\n"
476+ buf += "};\n\n"
477+ buf += "static void " + fabric_mod_name + "_deregister_configfs(void)\n"
478+ buf += "{\n"
479+ buf += " if (!(" + fabric_mod_name + "_fabric_configfs))\n"
480+ buf += " return;\n\n"
481+ buf += " target_fabric_configfs_deregister(" + fabric_mod_name + "_fabric_configfs);\n"
482+ buf += " " + fabric_mod_name + "_fabric_configfs = NULL;\n"
483+ buf += " printk(KERN_INFO \"" + fabric_mod_name.upper() + "[0] - Cleared " + fabric_mod_name + "_fabric_configfs\\n\");\n"
484+ buf += "};\n\n"
485+
486+ buf += "static int __init " + fabric_mod_name + "_init(void)\n"
487+ buf += "{\n"
488+ buf += " int ret;\n\n"
489+ buf += " ret = " + fabric_mod_name + "_register_configfs();\n"
490+ buf += " if (ret < 0)\n"
491+ buf += " return ret;\n\n"
492+ buf += " return 0;\n"
493+ buf += "};\n\n"
494+ buf += "static void " + fabric_mod_name + "_exit(void)\n"
495+ buf += "{\n"
496+ buf += " " + fabric_mod_name + "_deregister_configfs();\n"
497+ buf += "};\n\n"
498+
499+ buf += "#ifdef MODULE\n"
500+ buf += "MODULE_DESCRIPTION(\"" + fabric_mod_name.upper() + " series fabric driver\");\n"
501+ buf += "MODULE_LICENSE(\"GPL\");\n"
502+ buf += "module_init(" + fabric_mod_name + "_init);\n"
503+ buf += "module_exit(" + fabric_mod_name + "_exit);\n"
504+ buf += "#endif\n"
505+
506+ ret = p.write(buf)
507+ if ret:
508+ tcm_mod_err("Unable to write f: " + f)
509+
510+ p.close()
511+
512+ return
513+
514+def tcm_mod_scan_fabric_ops(tcm_dir):
515+
516+ fabric_ops_api = tcm_dir + "include/target/target_core_fabric_ops.h"
517+
518+ print "Using tcm_mod_scan_fabric_ops: " + fabric_ops_api
519+ process_fo = 0;
520+
521+ p = open(fabric_ops_api, 'r')
522+
523+ line = p.readline()
524+ while line:
525+ if process_fo == 0 and re.search('struct target_core_fabric_ops {', line):
526+ line = p.readline()
527+ continue
528+
529+ if process_fo == 0:
530+ process_fo = 1;
531+ line = p.readline()
532+ # Search for function pointer
533+ if not re.search('\(\*', line):
534+ continue
535+
536+ fabric_ops.append(line.rstrip())
537+ continue
538+
539+ line = p.readline()
540+ # Search for function pointer
541+ if not re.search('\(\*', line):
542+ continue
543+
544+ fabric_ops.append(line.rstrip())
545+
546+ p.close()
547+ return
548+
549+def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name):
550+ buf = ""
551+ bufi = ""
552+
553+ f = fabric_mod_dir_var + "/" + fabric_mod_name + "_fabric.c"
554+ print "Writing file: " + f
555+
556+ p = open(f, 'w')
557+ if not p:
558+ tcm_mod_err("Unable to open file: " + f)
559+
560+ fi = fabric_mod_dir_var + "/" + fabric_mod_name + "_fabric.h"
561+ print "Writing file: " + fi
562+
563+ pi = open(fi, 'w')
564+ if not pi:
565+ tcm_mod_err("Unable to open file: " + fi)
566+
567+ buf = "#include <linux/slab.h>\n"
568+ buf += "#include <linux/kthread.h>\n"
569+ buf += "#include <linux/types.h>\n"
570+ buf += "#include <linux/list.h>\n"
571+ buf += "#include <linux/types.h>\n"
572+ buf += "#include <linux/string.h>\n"
573+ buf += "#include <linux/ctype.h>\n"
574+ buf += "#include <asm/unaligned.h>\n"
575+ buf += "#include <scsi/scsi.h>\n"
576+ buf += "#include <scsi/scsi_host.h>\n"
577+ buf += "#include <scsi/scsi_device.h>\n"
578+ buf += "#include <scsi/scsi_cmnd.h>\n"
579+ buf += "#include <scsi/libfc.h>\n\n"
580+ buf += "#include <target/target_core_base.h>\n"
581+ buf += "#include <target/target_core_transport.h>\n"
582+ buf += "#include <target/target_core_fabric_ops.h>\n"
583+ buf += "#include <target/target_core_fabric_lib.h>\n"
584+ buf += "#include <target/target_core_device.h>\n"
585+ buf += "#include <target/target_core_tpg.h>\n"
586+ buf += "#include <target/target_core_configfs.h>\n"
587+ buf += "#include <" + fabric_mod_name + "_base.h>\n"
588+ buf += "#include <" + fabric_mod_name + "_fabric.h>\n\n"
589+
590+ buf += "int " + fabric_mod_name + "_check_true(struct se_portal_group *se_tpg)\n"
591+ buf += "{\n"
592+ buf += " return 1;\n"
593+ buf += "}\n\n"
594+ bufi += "int " + fabric_mod_name + "_check_true(struct se_portal_group *);\n"
595+
596+ buf += "int " + fabric_mod_name + "_check_false(struct se_portal_group *se_tpg)\n"
597+ buf += "{\n"
598+ buf += " return 0;\n"
599+ buf += "}\n\n"
600+ bufi += "int " + fabric_mod_name + "_check_false(struct se_portal_group *);\n"
601+
602+ total_fabric_ops = len(fabric_ops)
603+ i = 0
604+
605+ while i < total_fabric_ops:
606+ fo = fabric_ops[i]
607+ i += 1
608+# print "fabric_ops: " + fo
609+
610+ if re.search('get_fabric_name', fo):
611+ buf += "char *" + fabric_mod_name + "_get_fabric_name(void)\n"
612+ buf += "{\n"
613+ buf += " return \"" + fabric_mod_name[4:] + "\";\n"
614+ buf += "}\n\n"
615+ bufi += "char *" + fabric_mod_name + "_get_fabric_name(void);\n"
616+ continue
617+
618+ if re.search('get_fabric_proto_ident', fo):
619+ buf += "u8 " + fabric_mod_name + "_get_fabric_proto_ident(struct se_portal_group *se_tpg)\n"
620+ buf += "{\n"
621+ buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
622+ buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n"
623+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n"
624+ buf += " u8 proto_id;\n\n"
625+ buf += " switch (" + fabric_mod_port + "->" + fabric_mod_port + "_proto_id) {\n"
626+ if proto_ident == "FC":
627+ buf += " case SCSI_PROTOCOL_FCP:\n"
628+ buf += " default:\n"
629+ buf += " proto_id = fc_get_fabric_proto_ident(se_tpg);\n"
630+ buf += " break;\n"
631+ elif proto_ident == "SAS":
632+ buf += " case SCSI_PROTOCOL_SAS:\n"
633+ buf += " default:\n"
634+ buf += " proto_id = sas_get_fabric_proto_ident(se_tpg);\n"
635+ buf += " break;\n"
636+ elif proto_ident == "iSCSI":
637+ buf += " case SCSI_PROTOCOL_ISCSI:\n"
638+ buf += " default:\n"
639+ buf += " proto_id = iscsi_get_fabric_proto_ident(se_tpg);\n"
640+ buf += " break;\n"
641+
642+ buf += " }\n\n"
643+ buf += " return proto_id;\n"
644+ buf += "}\n\n"
645+ bufi += "u8 " + fabric_mod_name + "_get_fabric_proto_ident(struct se_portal_group *);\n"
646+
647+ if re.search('get_wwn', fo):
648+ buf += "char *" + fabric_mod_name + "_get_fabric_wwn(struct se_portal_group *se_tpg)\n"
649+ buf += "{\n"
650+ buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
651+ buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n"
652+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n\n"
653+ buf += " return &" + fabric_mod_port + "->" + fabric_mod_port + "_name[0];\n"
654+ buf += "}\n\n"
655+ bufi += "char *" + fabric_mod_name + "_get_fabric_wwn(struct se_portal_group *);\n"
656+
657+ if re.search('get_tag', fo):
658+ buf += "u16 " + fabric_mod_name + "_get_tag(struct se_portal_group *se_tpg)\n"
659+ buf += "{\n"
660+ buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
661+ buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n"
662+ buf += " return tpg->" + fabric_mod_port + "_tpgt;\n"
663+ buf += "}\n\n"
664+ bufi += "u16 " + fabric_mod_name + "_get_tag(struct se_portal_group *);\n"
665+
666+ if re.search('get_default_depth', fo):
667+ buf += "u32 " + fabric_mod_name + "_get_default_depth(struct se_portal_group *se_tpg)\n"
668+ buf += "{\n"
669+ buf += " return 1;\n"
670+ buf += "}\n\n"
671+ bufi += "u32 " + fabric_mod_name + "_get_default_depth(struct se_portal_group *);\n"
672+
673+ if re.search('get_pr_transport_id\)\(', fo):
674+ buf += "u32 " + fabric_mod_name + "_get_pr_transport_id(\n"
675+ buf += " struct se_portal_group *se_tpg,\n"
676+ buf += " struct se_node_acl *se_nacl,\n"
677+ buf += " struct t10_pr_registration *pr_reg,\n"
678+ buf += " int *format_code,\n"
679+ buf += " unsigned char *buf)\n"
680+ buf += "{\n"
681+ buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
682+ buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n"
683+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n"
684+ buf += " int ret = 0;\n\n"
685+ buf += " switch (" + fabric_mod_port + "->" + fabric_mod_port + "_proto_id) {\n"
686+ if proto_ident == "FC":
687+ buf += " case SCSI_PROTOCOL_FCP:\n"
688+ buf += " default:\n"
689+ buf += " ret = fc_get_pr_transport_id(se_tpg, se_nacl, pr_reg,\n"
690+ buf += " format_code, buf);\n"
691+ buf += " break;\n"
692+ elif proto_ident == "SAS":
693+ buf += " case SCSI_PROTOCOL_SAS:\n"
694+ buf += " default:\n"
695+ buf += " ret = sas_get_pr_transport_id(se_tpg, se_nacl, pr_reg,\n"
696+ buf += " format_code, buf);\n"
697+ buf += " break;\n"
698+ elif proto_ident == "iSCSI":
699+ buf += " case SCSI_PROTOCOL_ISCSI:\n"
700+ buf += " default:\n"
701+ buf += " ret = iscsi_get_pr_transport_id(se_tpg, se_nacl, pr_reg,\n"
702+ buf += " format_code, buf);\n"
703+ buf += " break;\n"
704+
705+ buf += " }\n\n"
706+ buf += " return ret;\n"
707+ buf += "}\n\n"
708+ bufi += "u32 " + fabric_mod_name + "_get_pr_transport_id(struct se_portal_group *,\n"
709+ bufi += " struct se_node_acl *, struct t10_pr_registration *,\n"
710+ bufi += " int *, unsigned char *);\n"
711+
712+ if re.search('get_pr_transport_id_len\)\(', fo):
713+ buf += "u32 " + fabric_mod_name + "_get_pr_transport_id_len(\n"
714+ buf += " struct se_portal_group *se_tpg,\n"
715+ buf += " struct se_node_acl *se_nacl,\n"
716+ buf += " struct t10_pr_registration *pr_reg,\n"
717+ buf += " int *format_code)\n"
718+ buf += "{\n"
719+ buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
720+ buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n"
721+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n"
722+ buf += " int ret = 0;\n\n"
723+ buf += " switch (" + fabric_mod_port + "->" + fabric_mod_port + "_proto_id) {\n"
724+ if proto_ident == "FC":
725+ buf += " case SCSI_PROTOCOL_FCP:\n"
726+ buf += " default:\n"
727+ buf += " ret = fc_get_pr_transport_id_len(se_tpg, se_nacl, pr_reg,\n"
728+ buf += " format_code);\n"
729+ buf += " break;\n"
730+ elif proto_ident == "SAS":
731+ buf += " case SCSI_PROTOCOL_SAS:\n"
732+ buf += " default:\n"
733+ buf += " ret = sas_get_pr_transport_id_len(se_tpg, se_nacl, pr_reg,\n"
734+ buf += " format_code);\n"
735+ buf += " break;\n"
736+ elif proto_ident == "iSCSI":
737+ buf += " case SCSI_PROTOCOL_ISCSI:\n"
738+ buf += " default:\n"
739+ buf += " ret = iscsi_get_pr_transport_id_len(se_tpg, se_nacl, pr_reg,\n"
740+ buf += " format_code);\n"
741+ buf += " break;\n"
742+
743+
744+ buf += " }\n\n"
745+ buf += " return ret;\n"
746+ buf += "}\n\n"
747+ bufi += "u32 " + fabric_mod_name + "_get_pr_transport_id_len(struct se_portal_group *,\n"
748+ bufi += " struct se_node_acl *, struct t10_pr_registration *,\n"
749+ bufi += " int *);\n"
750+
751+ if re.search('parse_pr_out_transport_id\)\(', fo):
752+ buf += "char *" + fabric_mod_name + "_parse_pr_out_transport_id(\n"
753+ buf += " struct se_portal_group *se_tpg,\n"
754+ buf += " const char *buf,\n"
755+ buf += " u32 *out_tid_len,\n"
756+ buf += " char **port_nexus_ptr)\n"
757+ buf += "{\n"
758+ buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
759+ buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n"
760+ buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n"
761+ buf += " char *tid = NULL;\n\n"
762+ buf += " switch (" + fabric_mod_port + "->" + fabric_mod_port + "_proto_id) {\n"
763+ if proto_ident == "FC":
764+ buf += " case SCSI_PROTOCOL_FCP:\n"
765+ buf += " default:\n"
766+ buf += " tid = fc_parse_pr_out_transport_id(se_tpg, buf, out_tid_len,\n"
767+ buf += " port_nexus_ptr);\n"
768+ elif proto_ident == "SAS":
769+ buf += " case SCSI_PROTOCOL_SAS:\n"
770+ buf += " default:\n"
771+ buf += " tid = sas_parse_pr_out_transport_id(se_tpg, buf, out_tid_len,\n"
772+ buf += " port_nexus_ptr);\n"
773+ elif proto_ident == "iSCSI":
774+ buf += " case SCSI_PROTOCOL_ISCSI:\n"
775+ buf += " default:\n"
776+ buf += " tid = iscsi_parse_pr_out_transport_id(se_tpg, buf, out_tid_len,\n"
777+ buf += " port_nexus_ptr);\n"
778+
779+ buf += " }\n\n"
780+ buf += " return tid;\n"
781+ buf += "}\n\n"
782+ bufi += "char *" + fabric_mod_name + "_parse_pr_out_transport_id(struct se_portal_group *,\n"
783+ bufi += " const char *, u32 *, char **);\n"
784+
785+ if re.search('alloc_fabric_acl\)\(', fo):
786+ buf += "struct se_node_acl *" + fabric_mod_name + "_alloc_fabric_acl(struct se_portal_group *se_tpg)\n"
787+ buf += "{\n"
788+ buf += " struct " + fabric_mod_name + "_nacl *nacl;\n\n"
789+ buf += " nacl = kzalloc(sizeof(struct " + fabric_mod_name + "_nacl), GFP_KERNEL);\n"
790+ buf += " if (!(nacl)) {\n"
791+ buf += " printk(KERN_ERR \"Unable to alocate struct " + fabric_mod_name + "_nacl\\n\");\n"
792+ buf += " return NULL;\n"
793+ buf += " }\n\n"
794+ buf += " return &nacl->se_node_acl;\n"
795+ buf += "}\n\n"
796+ bufi += "struct se_node_acl *" + fabric_mod_name + "_alloc_fabric_acl(struct se_portal_group *);\n"
797+
798+ if re.search('release_fabric_acl\)\(', fo):
799+ buf += "void " + fabric_mod_name + "_release_fabric_acl(\n"
800+ buf += " struct se_portal_group *se_tpg,\n"
801+ buf += " struct se_node_acl *se_nacl)\n"
802+ buf += "{\n"
803+ buf += " struct " + fabric_mod_name + "_nacl *nacl = container_of(se_nacl,\n"
804+ buf += " struct " + fabric_mod_name + "_nacl, se_node_acl);\n"
805+ buf += " kfree(nacl);\n"
806+ buf += "}\n\n"
807+ bufi += "void " + fabric_mod_name + "_release_fabric_acl(struct se_portal_group *,\n"
808+ bufi += " struct se_node_acl *);\n"
809+
810+ if re.search('tpg_get_inst_index\)\(', fo):
811+ buf += "u32 " + fabric_mod_name + "_tpg_get_inst_index(struct se_portal_group *se_tpg)\n"
812+ buf += "{\n"
813+ buf += " return 1;\n"
814+ buf += "}\n\n"
815+ bufi += "u32 " + fabric_mod_name + "_tpg_get_inst_index(struct se_portal_group *);\n"
816+
817+ if re.search('release_cmd_to_pool', fo):
818+ buf += "void " + fabric_mod_name + "_release_cmd(struct se_cmd *se_cmd)\n"
819+ buf += "{\n"
820+ buf += " return;\n"
821+ buf += "}\n\n"
822+ bufi += "void " + fabric_mod_name + "_release_cmd(struct se_cmd *);\n"
823+
824+ if re.search('shutdown_session\)\(', fo):
825+ buf += "int " + fabric_mod_name + "_shutdown_session(struct se_session *se_sess)\n"
826+ buf += "{\n"
827+ buf += " return 0;\n"
828+ buf += "}\n\n"
829+ bufi += "int " + fabric_mod_name + "_shutdown_session(struct se_session *);\n"
830+
831+ if re.search('close_session\)\(', fo):
832+ buf += "void " + fabric_mod_name + "_close_session(struct se_session *se_sess)\n"
833+ buf += "{\n"
834+ buf += " return;\n"
835+ buf += "}\n\n"
836+ bufi += "void " + fabric_mod_name + "_close_session(struct se_session *);\n"
837+
838+ if re.search('stop_session\)\(', fo):
839+ buf += "void " + fabric_mod_name + "_stop_session(struct se_session *se_sess, int sess_sleep , int conn_sleep)\n"
840+ buf += "{\n"
841+ buf += " return;\n"
842+ buf += "}\n\n"
843+ bufi += "void " + fabric_mod_name + "_stop_session(struct se_session *, int, int);\n"
844+
845+ if re.search('fall_back_to_erl0\)\(', fo):
846+ buf += "void " + fabric_mod_name + "_reset_nexus(struct se_session *se_sess)\n"
847+ buf += "{\n"
848+ buf += " return;\n"
849+ buf += "}\n\n"
850+ bufi += "void " + fabric_mod_name + "_reset_nexus(struct se_session *);\n"
851+
852+ if re.search('sess_logged_in\)\(', fo):
853+ buf += "int " + fabric_mod_name + "_sess_logged_in(struct se_session *se_sess)\n"
854+ buf += "{\n"
855+ buf += " return 0;\n"
856+ buf += "}\n\n"
857+ bufi += "int " + fabric_mod_name + "_sess_logged_in(struct se_session *);\n"
858+
859+ if re.search('sess_get_index\)\(', fo):
860+ buf += "u32 " + fabric_mod_name + "_sess_get_index(struct se_session *se_sess)\n"
861+ buf += "{\n"
862+ buf += " return 0;\n"
863+ buf += "}\n\n"
864+ bufi += "u32 " + fabric_mod_name + "_sess_get_index(struct se_session *);\n"
865+
866+ if re.search('write_pending\)\(', fo):
867+ buf += "int " + fabric_mod_name + "_write_pending(struct se_cmd *se_cmd)\n"
868+ buf += "{\n"
869+ buf += " return 0;\n"
870+ buf += "}\n\n"
871+ bufi += "int " + fabric_mod_name + "_write_pending(struct se_cmd *);\n"
872+
873+ if re.search('write_pending_status\)\(', fo):
874+ buf += "int " + fabric_mod_name + "_write_pending_status(struct se_cmd *se_cmd)\n"
875+ buf += "{\n"
876+ buf += " return 0;\n"
877+ buf += "}\n\n"
878+ bufi += "int " + fabric_mod_name + "_write_pending_status(struct se_cmd *);\n"
879+
880+ if re.search('set_default_node_attributes\)\(', fo):
881+ buf += "void " + fabric_mod_name + "_set_default_node_attrs(struct se_node_acl *nacl)\n"
882+ buf += "{\n"
883+ buf += " return;\n"
884+ buf += "}\n\n"
885+ bufi += "void " + fabric_mod_name + "_set_default_node_attrs(struct se_node_acl *);\n"
886+
887+ if re.search('get_task_tag\)\(', fo):
888+ buf += "u32 " + fabric_mod_name + "_get_task_tag(struct se_cmd *se_cmd)\n"
889+ buf += "{\n"
890+ buf += " return 0;\n"
891+ buf += "}\n\n"
892+ bufi += "u32 " + fabric_mod_name + "_get_task_tag(struct se_cmd *);\n"
893+
894+ if re.search('get_cmd_state\)\(', fo):
895+ buf += "int " + fabric_mod_name + "_get_cmd_state(struct se_cmd *se_cmd)\n"
896+ buf += "{\n"
897+ buf += " return 0;\n"
898+ buf += "}\n\n"
899+ bufi += "int " + fabric_mod_name + "_get_cmd_state(struct se_cmd *);\n"
900+
901+ if re.search('new_cmd_failure\)\(', fo):
902+ buf += "void " + fabric_mod_name + "_new_cmd_failure(struct se_cmd *se_cmd)\n"
903+ buf += "{\n"
904+ buf += " return;\n"
905+ buf += "}\n\n"
906+ bufi += "void " + fabric_mod_name + "_new_cmd_failure(struct se_cmd *);\n"
907+
908+ if re.search('queue_data_in\)\(', fo):
909+ buf += "int " + fabric_mod_name + "_queue_data_in(struct se_cmd *se_cmd)\n"
910+ buf += "{\n"
911+ buf += " return 0;\n"
912+ buf += "}\n\n"
913+ bufi += "int " + fabric_mod_name + "_queue_data_in(struct se_cmd *);\n"
914+
915+ if re.search('queue_status\)\(', fo):
916+ buf += "int " + fabric_mod_name + "_queue_status(struct se_cmd *se_cmd)\n"
917+ buf += "{\n"
918+ buf += " return 0;\n"
919+ buf += "}\n\n"
920+ bufi += "int " + fabric_mod_name + "_queue_status(struct se_cmd *);\n"
921+
922+ if re.search('queue_tm_rsp\)\(', fo):
923+ buf += "int " + fabric_mod_name + "_queue_tm_rsp(struct se_cmd *se_cmd)\n"
924+ buf += "{\n"
925+ buf += " return 0;\n"
926+ buf += "}\n\n"
927+ bufi += "int " + fabric_mod_name + "_queue_tm_rsp(struct se_cmd *);\n"
928+
929+ if re.search('get_fabric_sense_len\)\(', fo):
930+ buf += "u16 " + fabric_mod_name + "_get_fabric_sense_len(void)\n"
931+ buf += "{\n"
932+ buf += " return 0;\n"
933+ buf += "}\n\n"
934+ bufi += "u16 " + fabric_mod_name + "_get_fabric_sense_len(void);\n"
935+
936+ if re.search('set_fabric_sense_len\)\(', fo):
937+ buf += "u16 " + fabric_mod_name + "_set_fabric_sense_len(struct se_cmd *se_cmd, u32 sense_length)\n"
938+ buf += "{\n"
939+ buf += " return 0;\n"
940+ buf += "}\n\n"
941+ bufi += "u16 " + fabric_mod_name + "_set_fabric_sense_len(struct se_cmd *, u32);\n"
942+
943+ if re.search('is_state_remove\)\(', fo):
944+ buf += "int " + fabric_mod_name + "_is_state_remove(struct se_cmd *se_cmd)\n"
945+ buf += "{\n"
946+ buf += " return 0;\n"
947+ buf += "}\n\n"
948+ bufi += "int " + fabric_mod_name + "_is_state_remove(struct se_cmd *);\n"
949+
950+ if re.search('pack_lun\)\(', fo):
951+ buf += "u64 " + fabric_mod_name + "_pack_lun(unsigned int lun)\n"
952+ buf += "{\n"
953+ buf += " WARN_ON(lun >= 256);\n"
954+ buf += " /* Caller wants this byte-swapped */\n"
955+ buf += " return cpu_to_le64((lun & 0xff) << 8);\n"
956+ buf += "}\n\n"
957+ bufi += "u64 " + fabric_mod_name + "_pack_lun(unsigned int);\n"
958+
959+
960+ ret = p.write(buf)
961+ if ret:
962+ tcm_mod_err("Unable to write f: " + f)
963+
964+ p.close()
965+
966+ ret = pi.write(bufi)
967+ if ret:
968+ tcm_mod_err("Unable to write fi: " + fi)
969+
970+ pi.close()
971+ return
972+
973+def tcm_mod_build_kbuild(fabric_mod_dir_var, fabric_mod_name):
974+
975+ buf = ""
976+ f = fabric_mod_dir_var + "/Kbuild"
977+ print "Writing file: " + f
978+
979+ p = open(f, 'w')
980+ if not p:
981+ tcm_mod_err("Unable to open file: " + f)
982+
983+ buf = "EXTRA_CFLAGS += -I$(srctree)/drivers/target/ -I$(srctree)/include/ -I$(srctree)/drivers/scsi/ -I$(srctree)/include/scsi/ -I$(srctree)/drivers/target/" + fabric_mod_name + "\n\n"
984+ buf += fabric_mod_name + "-objs := " + fabric_mod_name + "_fabric.o \\\n"
985+ buf += " " + fabric_mod_name + "_configfs.o\n"
986+ buf += "obj-$(CONFIG_" + fabric_mod_name.upper() + ") += " + fabric_mod_name + ".o\n"
987+
988+ ret = p.write(buf)
989+ if ret:
990+ tcm_mod_err("Unable to write f: " + f)
991+
992+ p.close()
993+ return
994+
995+def tcm_mod_build_kconfig(fabric_mod_dir_var, fabric_mod_name):
996+
997+ buf = ""
998+ f = fabric_mod_dir_var + "/Kconfig"
999+ print "Writing file: " + f
1000+
1001+ p = open(f, 'w')
1002+ if not p:
1003+ tcm_mod_err("Unable to open file: " + f)
1004+
1005+ buf = "config " + fabric_mod_name.upper() + "\n"
1006+ buf += " tristate \"" + fabric_mod_name.upper() + " fabric module\"\n"
1007+ buf += " depends on TARGET_CORE && CONFIGFS_FS\n"
1008+ buf += " default n\n"
1009+ buf += " ---help---\n"
1010+ buf += " Say Y here to enable the " + fabric_mod_name.upper() + " fabric module\n"
1011+
1012+ ret = p.write(buf)
1013+ if ret:
1014+ tcm_mod_err("Unable to write f: " + f)
1015+
1016+ p.close()
1017+ return
1018+
1019+def tcm_mod_add_kbuild(tcm_dir, fabric_mod_name):
1020+ buf = "obj-$(CONFIG_" + fabric_mod_name.upper() + ") += " + fabric_mod_name.lower() + "/\n"
1021+ kbuild = tcm_dir + "/drivers/target/Kbuild"
1022+
1023+ f = open(kbuild, 'a')
1024+ f.write(buf)
1025+ f.close()
1026+ return
1027+
1028+def tcm_mod_add_kconfig(tcm_dir, fabric_mod_name):
1029+ buf = "source \"drivers/target/" + fabric_mod_name.lower() + "/Kconfig\"\n"
1030+ kconfig = tcm_dir + "/drivers/target/Kconfig"
1031+
1032+ f = open(kconfig, 'a')
1033+ f.write(buf)
1034+ f.close()
1035+ return
1036+
1037+def main(modname, proto_ident):
1038+# proto_ident = "FC"
1039+# proto_ident = "SAS"
1040+# proto_ident = "iSCSI"
1041+
1042+ tcm_dir = os.getcwd();
1043+ tcm_dir += "/../../"
1044+ print "tcm_dir: " + tcm_dir
1045+ fabric_mod_name = modname
1046+ fabric_mod_dir = tcm_dir + "drivers/target/" + fabric_mod_name
1047+ print "Set fabric_mod_name: " + fabric_mod_name
1048+ print "Set fabric_mod_dir: " + fabric_mod_dir
1049+ print "Using proto_ident: " + proto_ident
1050+
1051+ if proto_ident != "FC" and proto_ident != "SAS" and proto_ident != "iSCSI":
1052+ print "Unsupported proto_ident: " + proto_ident
1053+ sys.exit(1)
1054+
1055+ ret = tcm_mod_create_module_subdir(fabric_mod_dir)
1056+ if ret:
1057+ print "tcm_mod_create_module_subdir() failed because module already exists!"
1058+ sys.exit(1)
1059+
1060+ tcm_mod_build_base_includes(proto_ident, fabric_mod_dir, fabric_mod_name)
1061+ tcm_mod_scan_fabric_ops(tcm_dir)
1062+ tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir, fabric_mod_name)
1063+ tcm_mod_build_configfs(proto_ident, fabric_mod_dir, fabric_mod_name)
1064+ tcm_mod_build_kbuild(fabric_mod_dir, fabric_mod_name)
1065+ tcm_mod_build_kconfig(fabric_mod_dir, fabric_mod_name)
1066+
1067+ input = raw_input("Would you like to add " + fabric_mod_name + "to drivers/target/Kbuild..? [yes,no]: ")
1068+ if input == "yes" or input == "y":
1069+ tcm_mod_add_kbuild(tcm_dir, fabric_mod_name)
1070+
1071+ input = raw_input("Would you like to add " + fabric_mod_name + "to drivers/target/Kconfig..? [yes,no]: ")
1072+ if input == "yes" or input == "y":
1073+ tcm_mod_add_kconfig(tcm_dir, fabric_mod_name)
1074+
1075+ return
1076+
1077+parser = optparse.OptionParser()
1078+parser.add_option('-m', '--modulename', help='Module name', dest='modname',
1079+ action='store', nargs=1, type='string')
1080+parser.add_option('-p', '--protoident', help='Protocol Ident', dest='protoident',
1081+ action='store', nargs=1, type='string')
1082+
1083+(opts, args) = parser.parse_args()
1084+
1085+mandatories = ['modname', 'protoident']
1086+for m in mandatories:
1087+ if not opts.__dict__[m]:
1088+ print "mandatory option is missing\n"
1089+ parser.print_help()
1090+ exit(-1)
1091+
1092+if __name__ == "__main__":
1093+
1094+ main(str(opts.modname), opts.protoident)
Documentation/target/tcm_mod_builder.txt+145−0
@@ -0,0 +1,145 @@
1+>>>>>>>>>> The TCM v4 fabric module script generator <<<<<<<<<<
2+
3+Greetings all,
4+
5+This document is intended to be a mini-HOWTO for using the tcm_mod_builder.py
6+script to generate a brand new functional TCM v4 fabric .ko module of your very own,
7+that once built can be immediately be loaded to start access the new TCM/ConfigFS
8+fabric skeleton, by simply using:
9+
10+ modprobe $TCM_NEW_MOD
11+ mkdir -p /sys/kernel/config/target/$TCM_NEW_MOD
12+
13+This script will create a new drivers/target/$TCM_NEW_MOD/, and will do the following
14+
15+ *) Generate new API callers for drivers/target/target_core_fabric_configs.c logic
16+ ->make_nodeacl(), ->drop_nodeacl(), ->make_tpg(), ->drop_tpg()
17+ ->make_wwn(), ->drop_wwn(). These are created into $TCM_NEW_MOD/$TCM_NEW_MOD_configfs.c
18+ *) Generate basic infrastructure for loading/unloading LKMs and TCM/ConfigFS fabric module
19+ using a skeleton struct target_core_fabric_ops API template.
20+ *) Based on user defined T10 Proto_Ident for the new fabric module being built,
21+ the TransportID / Initiator and Target WWPN related handlers for
22+ SPC-3 persistent reservation are automatically generated in $TCM_NEW_MOD/$TCM_NEW_MOD_fabric.c
23+ using drivers/target/target_core_fabric_lib.c logic.
24+ *) NOP API calls for all other Data I/O path and fabric dependent attribute logic
25+ in $TCM_NEW_MOD/$TCM_NEW_MOD_fabric.c
26+
27+tcm_mod_builder.py depends upon the mandatory '-p $PROTO_IDENT' and '-m
28+$FABRIC_MOD_name' parameters, and actually running the script looks like:
29+
30+target:/mnt/sdb/lio-core-2.6.git/Documentation/target# python tcm_mod_builder.py -p iSCSI -m tcm_nab5000
31+tcm_dir: /mnt/sdb/lio-core-2.6.git/Documentation/target/../../
32+Set fabric_mod_name: tcm_nab5000
33+Set fabric_mod_dir:
34+/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000
35+Using proto_ident: iSCSI
36+Creating fabric_mod_dir:
37+/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000
38+Writing file:
39+/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_base.h
40+Using tcm_mod_scan_fabric_ops:
41+/mnt/sdb/lio-core-2.6.git/Documentation/target/../../include/target/target_core_fabric_ops.h
42+Writing file:
43+/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric.c
44+Writing file:
45+/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric.h
46+Writing file:
47+/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_configfs.c
48+Writing file:
49+/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/Kbuild
50+Writing file:
51+/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/Kconfig
52+Would you like to add tcm_nab5000to drivers/target/Kbuild..? [yes,no]: yes
53+Would you like to add tcm_nab5000to drivers/target/Kconfig..? [yes,no]: yes
54+
55+At the end of tcm_mod_builder.py. the script will ask to add the following
56+line to drivers/target/Kbuild:
57+
58+ obj-$(CONFIG_TCM_NAB5000) += tcm_nab5000/
59+
60+and the same for drivers/target/Kconfig:
61+
62+ source "drivers/target/tcm_nab5000/Kconfig"
63+
64+*) Run 'make menuconfig' and select the new CONFIG_TCM_NAB5000 item:
65+
66+ <M> TCM_NAB5000 fabric module
67+
68+*) Build using 'make modules', once completed you will have:
69+
70+target:/mnt/sdb/lio-core-2.6.git# ls -la drivers/target/tcm_nab5000/
71+total 1348
72+drwxr-xr-x 2 root root 4096 2010-10-05 03:23 .
73+drwxr-xr-x 9 root root 4096 2010-10-05 03:22 ..
74+-rw-r--r-- 1 root root 282 2010-10-05 03:22 Kbuild
75+-rw-r--r-- 1 root root 171 2010-10-05 03:22 Kconfig
76+-rw-r--r-- 1 root root 49 2010-10-05 03:23 modules.order
77+-rw-r--r-- 1 root root 738 2010-10-05 03:22 tcm_nab5000_base.h
78+-rw-r--r-- 1 root root 9096 2010-10-05 03:22 tcm_nab5000_configfs.c
79+-rw-r--r-- 1 root root 191200 2010-10-05 03:23 tcm_nab5000_configfs.o
80+-rw-r--r-- 1 root root 40504 2010-10-05 03:23 .tcm_nab5000_configfs.o.cmd
81+-rw-r--r-- 1 root root 5414 2010-10-05 03:22 tcm_nab5000_fabric.c
82+-rw-r--r-- 1 root root 2016 2010-10-05 03:22 tcm_nab5000_fabric.h
83+-rw-r--r-- 1 root root 190932 2010-10-05 03:23 tcm_nab5000_fabric.o
84+-rw-r--r-- 1 root root 40713 2010-10-05 03:23 .tcm_nab5000_fabric.o.cmd
85+-rw-r--r-- 1 root root 401861 2010-10-05 03:23 tcm_nab5000.ko
86+-rw-r--r-- 1 root root 265 2010-10-05 03:23 .tcm_nab5000.ko.cmd
87+-rw-r--r-- 1 root root 459 2010-10-05 03:23 tcm_nab5000.mod.c
88+-rw-r--r-- 1 root root 23896 2010-10-05 03:23 tcm_nab5000.mod.o
89+-rw-r--r-- 1 root root 22655 2010-10-05 03:23 .tcm_nab5000.mod.o.cmd
90+-rw-r--r-- 1 root root 379022 2010-10-05 03:23 tcm_nab5000.o
91+-rw-r--r-- 1 root root 211 2010-10-05 03:23 .tcm_nab5000.o.cmd
92+
93+*) Load the new module, create a lun_0 configfs group, and add new TCM Core
94+ IBLOCK backstore symlink to port:
95+
96+target:/mnt/sdb/lio-core-2.6.git# insmod drivers/target/tcm_nab5000.ko
97+target:/mnt/sdb/lio-core-2.6.git# mkdir -p /sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0
98+target:/mnt/sdb/lio-core-2.6.git# cd /sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0/
99+target:/sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0# ln -s /sys/kernel/config/target/core/iblock_0/lvm_test0 nab5000_port
100+
101+target:/sys/kernel/config/target/nab5000/iqn.foo/tpgt_1/lun/lun_0# cd -
102+target:/mnt/sdb/lio-core-2.6.git# tree /sys/kernel/config/target/nab5000/
103+/sys/kernel/config/target/nab5000/
104+|-- discovery_auth
105+|-- iqn.foo
106+| `-- tpgt_1
107+| |-- acls
108+| |-- attrib
109+| |-- lun
110+| | `-- lun_0
111+| | |-- alua_tg_pt_gp
112+| | |-- alua_tg_pt_offline
113+| | |-- alua_tg_pt_status
114+| | |-- alua_tg_pt_write_md
115+| | `-- nab5000_port -> ../../../../../../target/core/iblock_0/lvm_test0
116+| |-- np
117+| `-- param
118+`-- version
119+
120+target:/mnt/sdb/lio-core-2.6.git# lsmod
121+Module Size Used by
122+tcm_nab5000 3935 4
123+iscsi_target_mod 193211 0
124+target_core_stgt 8090 0
125+target_core_pscsi 11122 1
126+target_core_file 9172 2
127+target_core_iblock 9280 1
128+target_core_mod 228575 31
129+tcm_nab5000,iscsi_target_mod,target_core_stgt,target_core_pscsi,target_core_file,target_core_iblock
130+libfc 73681 0
131+scsi_debug 56265 0
132+scsi_tgt 8666 1 target_core_stgt
133+configfs 20644 2 target_core_mod
134+
135+----------------------------------------------------------------------
136+
137+Future TODO items:
138+
139+ *) Add more T10 proto_idents
140+ *) Make tcm_mod_dump_fabric_ops() smarter and generate function pointer
141+ defs directly from include/target/target_core_fabric_ops.h:struct target_core_fabric_ops
142+ structure members.
143+
144+October 5th, 2010
145+Nicholas A. Bellinger <nab@linux-iscsi.org>
Documentation/thermal/sysfs-api.txt+12−0
@@ -278,3 +278,15 @@ method, the sys I/F structure will be built like this: · 277 unmodified lines
278278 |---name: acpitz
279279 |---temp1_input: 37000
280280 |---temp1_crit: 100000
281+
282+4. Event Notification
283+
284+The framework includes a simple notification mechanism, in the form of a
285+netlink event. Netlink socket initialization is done during the _init_
286+of the framework. Drivers which intend to use the notification mechanism
287+just need to call generate_netlink_event() with two arguments viz
288+(originator, event). Typically the originator will be an integer assigned
289+to a thermal_zone_device when it registers itself with the framework. The
290+event will be one of:{THERMAL_AUX0, THERMAL_AUX1, THERMAL_CRITICAL,
291+THERMAL_DEV_FAULT}. Notification can be sent when the current temperature
292+crosses any of the configured thresholds.
Documentation/timers/timer_stats.txt+1−1
@@ -19,7 +19,7 @@ Linux system over a sample period: · 18 unmodified lines
1919
2020 - the pid of the task(process) which initialized the timer
2121 - the name of the process which initialized the timer
22−- the function where the timer was intialized
22+- the function where the timer was initialized
2323 - the callback function which is associated to the timer
2424 - the number of events (callbacks)
2525
Documentation/trace/events-power.txt+90−0
@@ -0,0 +1,90 @@
1+
2+ Subsystem Trace Points: power
3+
4+The power tracing system captures events related to power transitions
5+within the kernel. Broadly speaking there are three major subheadings:
6+
7+ o Power state switch which reports events related to suspend (S-states),
8+ cpuidle (C-states) and cpufreq (P-states)
9+ o System clock related changes
10+ o Power domains related changes and transitions
11+
12+This document describes what each of the tracepoints is and why they
13+might be useful.
14+
15+Cf. include/trace/events/power.h for the events definitions.
16+
17+1. Power state switch events
18+============================
19+
20+1.1 New trace API
21+-----------------
22+
23+A 'cpu' event class gathers the CPU-related events: cpuidle and
24+cpufreq.
25+
26+cpu_idle "state=%lu cpu_id=%lu"
27+cpu_frequency "state=%lu cpu_id=%lu"
28+
29+A suspend event is used to indicate the system going in and out of the
30+suspend mode:
31+
32+machine_suspend "state=%lu"
33+
34+
35+Note: the value of '-1' or '4294967295' for state means an exit from the current state,
36+i.e. trace_cpu_idle(4, smp_processor_id()) means that the system
37+enters the idle state 4, while trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id())
38+means that the system exits the previous idle state.
39+
40+The event which has 'state=4294967295' in the trace is very important to the user
41+space tools which are using it to detect the end of the current state, and so to
42+correctly draw the states diagrams and to calculate accurate statistics etc.
43+
44+1.2 DEPRECATED trace API
45+------------------------
46+
47+A new Kconfig option CONFIG_EVENT_POWER_TRACING_DEPRECATED with the default value of
48+'y' has been created. This allows the legacy trace power API to be used conjointly
49+with the new trace API.
50+The Kconfig option, the old trace API (in include/trace/events/power.h) and the
51+old trace points will disappear in a future release (namely 2.6.41).
52+
53+power_start "type=%lu state=%lu cpu_id=%lu"
54+power_frequency "type=%lu state=%lu cpu_id=%lu"
55+power_end "cpu_id=%lu"
56+
57+The 'type' parameter takes one of those macros:
58+ . POWER_NONE = 0,
59+ . POWER_CSTATE = 1, /* C-State */
60+ . POWER_PSTATE = 2, /* Fequency change or DVFS */
61+
62+The 'state' parameter is set depending on the type:
63+ . Target C-state for type=POWER_CSTATE,
64+ . Target frequency for type=POWER_PSTATE,
65+
66+power_end is used to indicate the exit of a state, corresponding to the latest
67+power_start event.
68+
69+2. Clocks events
70+================
71+The clock events are used for clock enable/disable and for
72+clock rate change.
73+
74+clock_enable "%s state=%lu cpu_id=%lu"
75+clock_disable "%s state=%lu cpu_id=%lu"
76+clock_set_rate "%s state=%lu cpu_id=%lu"
77+
78+The first parameter gives the clock name (e.g. "gpio1_iclk").
79+The second parameter is '1' for enable, '0' for disable, the target
80+clock rate for set_rate.
81+
82+3. Power domains events
83+=======================
84+The power domain events are used for power domains transitions
85+
86+power_domain_target "%s state=%lu cpu_id=%lu"
87+
88+The first parameter gives the power domain name (e.g. "mpu_pwrdm").
89+The second parameter is the power domain target state.
90+
Documentation/trace/events.txt+4−4
@@ -125,7 +125,7 @@ is the size of the data item, in bytes. · 124 unmodified lines
125125 For example, here's the information displayed for the 'sched_wakeup'
126126 event:
127127
128−# cat /debug/tracing/events/sched/sched_wakeup/format
128+# cat /sys/kernel/debug/tracing/events/sched/sched_wakeup/format
129129
130130 name: sched_wakeup
131131 ID: 60
@@ -201,19 +201,19 @@ to the 'filter' file for the given event. · 69 unmodified lines
201201
202202 For example:
203203
204−# cd /debug/tracing/events/sched/sched_wakeup
204+# cd /sys/kernel/debug/tracing/events/sched/sched_wakeup
205205 # echo "common_preempt_count > 4" > filter
206206
207207 A slightly more involved example:
208208
209−# cd /debug/tracing/events/sched/sched_signal_send
209+# cd /sys/kernel/debug/tracing/events/signal/signal_generate
210210 # echo "((sig >= 10 && sig < 15) || sig == 17) && comm != bash" > filter
211211
212212 If there is an error in the expression, you'll get an 'Invalid
213213 argument' error when setting it, and the erroneous string along with
214214 an error message can be seen by looking at the filter e.g.:
215215
216−# cd /debug/tracing/events/sched/sched_signal_send
216+# cd /sys/kernel/debug/tracing/events/signal/signal_generate
217217 # echo "((sig >= 10 && sig < 15) || dsig == 17) && comm != bash" > filter
218218 -bash: echo: write error: Invalid argument
219219 # cat filter
Documentation/usb/power-management.txt+58−55
@@ -2,7 +2,7 @@ · 1 unmodified line
22
33 Alan Stern <stern@rowland.harvard.edu>
44
5− December 11, 2009
5+ October 28, 2010
66
77
88
@@ -107,9 +107,14 @@ allowed to issue dynamic suspends. · 98 unmodified lines
107107 The user interface for controlling dynamic PM is located in the power/
108108 subdirectory of each USB device's sysfs directory, that is, in
109109 /sys/bus/usb/devices/.../power/ where "..." is the device's ID. The
110−relevant attribute files are: wakeup, control, and autosuspend.
111−(There may also be a file named "level"; this file was deprecated
112−as of the 2.6.35 kernel and replaced by the "control" file.)
110+relevant attribute files are: wakeup, control, and
111+autosuspend_delay_ms. (There may also be a file named "level"; this
112+file was deprecated as of the 2.6.35 kernel and replaced by the
113+"control" file. In 2.6.38 the "autosuspend" file will be deprecated
114+and replaced by the "autosuspend_delay_ms" file. The only difference
115+is that the newer file expresses the delay in milliseconds whereas the
116+older file uses seconds. Confusingly, both files are present in 2.6.37
117+but only "autosuspend" works.)
113118
114119 power/wakeup
115120
@@ -140,33 +145,36 @@ as of the 2.6.35 kernel and replaced by the "control" file.) · 24 unmodified lines
140145 suspended and autoresume was not allowed. This
141146 setting is no longer supported.)
142147
143− power/autosuspend
148+ power/autosuspend_delay_ms
144149
145150 This file contains an integer value, which is the
146− number of seconds the device should remain idle before
147− the kernel will autosuspend it (the idle-delay time).
148− The default is 2. 0 means to autosuspend as soon as
149− the device becomes idle, and negative values mean
150− never to autosuspend. You can write a number to the
151− file to change the autosuspend idle-delay time.
152−
153−Writing "-1" to power/autosuspend and writing "on" to power/control do
154−essentially the same thing -- they both prevent the device from being
155−autosuspended. Yes, this is a redundancy in the API.
151+ number of milliseconds the device should remain idle
152+ before the kernel will autosuspend it (the idle-delay
153+ time). The default is 2000. 0 means to autosuspend
154+ as soon as the device becomes idle, and negative
155+ values mean never to autosuspend. You can write a
156+ number to the file to change the autosuspend
157+ idle-delay time.
158+
159+Writing "-1" to power/autosuspend_delay_ms and writing "on" to
160+power/control do essentially the same thing -- they both prevent the
161+device from being autosuspended. Yes, this is a redundancy in the
162+API.
156163
157164 (In 2.6.21 writing "0" to power/autosuspend would prevent the device
158165 from being autosuspended; the behavior was changed in 2.6.22. The
159166 power/autosuspend attribute did not exist prior to 2.6.21, and the
160167 power/level attribute did not exist prior to 2.6.22. power/control
161−was added in 2.6.34.)
168+was added in 2.6.34, and power/autosuspend_delay_ms was added in
169+2.6.37 but did not become functional until 2.6.38.)
162170
163171
164172 Changing the default idle-delay time
165173 ------------------------------------
166174
167−The default autosuspend idle-delay time is controlled by a module
168−parameter in usbcore. You can specify the value when usbcore is
169−loaded. For example, to set it to 5 seconds instead of 2 you would
175+The default autosuspend idle-delay time (in seconds) is controlled by
176+a module parameter in usbcore. You can specify the value when usbcore
177+is loaded. For example, to set it to 5 seconds instead of 2 you would
170178 do:
171179
172180 modprobe usbcore autosuspend=5
@@ -234,25 +242,23 @@ every device. · 61 unmodified lines
234242
235243 If a driver knows that its device has proper suspend/resume support,
236244 it can enable autosuspend all by itself. For example, the video
237−driver for a laptop's webcam might do this, since these devices are
238−rarely used and so should normally be autosuspended.
245+driver for a laptop's webcam might do this (in recent kernels they
246+do), since these devices are rarely used and so should normally be
247+autosuspended.
239248
240249 Sometimes it turns out that even when a device does work okay with
241−autosuspend there are still problems. For example, there are
242−experimental patches adding autosuspend support to the usbhid driver,
243−which manages keyboards and mice, among other things. Tests with a
244−number of keyboards showed that typing on a suspended keyboard, while
245−causing the keyboard to do a remote wakeup all right, would
246−nonetheless frequently result in lost keystrokes. Tests with mice
247−showed that some of them would issue a remote-wakeup request in
248−response to button presses but not to motion, and some in response to
249−neither.
250+autosuspend there are still problems. For example, the usbhid driver,
251+which manages keyboards and mice, has autosuspend support. Tests with
252+a number of keyboards show that typing on a suspended keyboard, while
253+causing the keyboard to do a remote wakeup all right, will nonetheless
254+frequently result in lost keystrokes. Tests with mice show that some
255+of them will issue a remote-wakeup request in response to button
256+presses but not to motion, and some in response to neither.
250257
251258 The kernel will not prevent you from enabling autosuspend on devices
252259 that can't handle it. It is even possible in theory to damage a
253−device by suspending it at the wrong time -- for example, suspending a
254−USB hard disk might cause it to spin down without parking the heads.
255−(Highly unlikely, but possible.) Take care.
260+device by suspending it at the wrong time. (Highly unlikely, but
261+possible.) Take care.
256262
257263
258264 The driver interface for Power Management
@@ -336,10 +342,6 @@ autosuspend the interface's device. When the usage counter is = 0 · 77 unmodified lines
336342 then the interface is considered to be idle, and the kernel may
337343 autosuspend the device.
338344
339−(There is a similar usage counter field in struct usb_device,
340−associated with the device itself rather than any of its interfaces.
341−This counter is used only by the USB core.)
342−
343345 Drivers need not be concerned about balancing changes to the usage
344346 counter; the USB core will undo any remaining "get"s when a driver
345347 is unbound from its interface. As a corollary, drivers must not call
@@ -409,11 +411,11 @@ during autosuspend. For example, there's not much point · 63 unmodified lines
409411 autosuspending a keyboard if the user can't cause the keyboard to do a
410412 remote wakeup by typing on it. If the driver sets
411413 intf->needs_remote_wakeup to 1, the kernel won't autosuspend the
412−device if remote wakeup isn't available or has been disabled through
413−the power/wakeup attribute. (If the device is already autosuspended,
414−though, setting this flag won't cause the kernel to autoresume it.
415−Normally a driver would set this flag in its probe method, at which
416−time the device is guaranteed not to be autosuspended.)
414+device if remote wakeup isn't available. (If the device is already
415+autosuspended, though, setting this flag won't cause the kernel to
416+autoresume it. Normally a driver would set this flag in its probe
417+method, at which time the device is guaranteed not to be
418+autosuspended.)
417419
418420 If a driver does its I/O asynchronously in interrupt context, it
419421 should call usb_autopm_get_interface_async() before starting output and
@@ -422,20 +424,19 @@ it receives an input event, it should call · 2 unmodified lines
422424
423425 usb_mark_last_busy(struct usb_device *udev);
424426
425−in the event handler. This sets udev->last_busy to the current time.
426−udev->last_busy is the field used for idle-delay calculations;
427−updating it will cause any pending autosuspend to be moved back. Most
428−of the usb_autopm_* routines will also set the last_busy field to the
429−current time.
427+in the event handler. This tells the PM core that the device was just
428+busy and therefore the next autosuspend idle-delay expiration should
429+be pushed back. Many of the usb_autopm_* routines also make this call,
430+so drivers need to worry only when interrupt-driven input arrives.
430431
431432 Asynchronous operation is always subject to races. For example, a
432−driver may call one of the usb_autopm_*_interface_async() routines at
433−a time when the core has just finished deciding the device has been
434−idle for long enough but not yet gotten around to calling the driver's
435−suspend method. The suspend method must be responsible for
436−synchronizing with the output request routine and the URB completion
437−handler; it should cause autosuspends to fail with -EBUSY if the
438−driver needs to use the device.
433+driver may call the usb_autopm_get_interface_async() routine at a time
434+when the core has just finished deciding the device has been idle for
435+long enough but not yet gotten around to calling the driver's suspend
436+method. The suspend method must be responsible for synchronizing with
437+the I/O request routine and the URB completion handler; it should
438+cause autosuspends to fail with -EBUSY if the driver needs to use the
439+device.
439440
440441 External suspend calls should never be allowed to fail in this way,
441442 only autosuspend calls. The driver can tell them apart by checking
@@ -472,7 +473,9 @@ Firstly, a device may already be autosuspended when a system suspend · 30 unmodified lines
472473 occurs. Since system suspends are supposed to be as transparent as
473474 possible, the device should remain suspended following the system
474475 resume. But this theory may not work out well in practice; over time
475−the kernel's behavior in this regard has changed.
476+the kernel's behavior in this regard has changed. As of 2.6.37 the
477+policy is to resume all devices during a system resume and let them
478+handle their own runtime suspends afterward.
476479
477480 Secondly, a dynamic power-management event may occur as a system
478481 suspend is underway. The window for this is short, since system
Documentation/video4linux/CARDLIST.em28xx+3−3
@@ -1,5 +1,5 @@
11 0 -> Unknown EM2800 video grabber (em2800) [eb1a:2800]
2− 1 -> Unknown EM2750/28xx video grabber (em2820/em2840) [eb1a:2710,eb1a:2820,eb1a:2821,eb1a:2860,eb1a:2861,eb1a:2862,eb1a:2863,eb1a:2870,eb1a:2881,eb1a:2883,eb1a:2868]
2+ 1 -> Unknown EM2750/28xx video grabber (em2820/em2840) [eb1a:2710,eb1a:2820,eb1a:2821,eb1a:2860,eb1a:2861,eb1a:2862,eb1a:2863,eb1a:2870,eb1a:2881,eb1a:2883,eb1a:2868,eb1a:2875]
33 2 -> Terratec Cinergy 250 USB (em2820/em2840) [0ccd:0036]
44 3 -> Pinnacle PCTV USB 2 (em2820/em2840) [2304:0208]
55 4 -> Hauppauge WinTV USB 2 (em2820/em2840) [2040:4200,2040:4201]
@@ -9,7 +9,7 @@ · 3 unmodified lines
99 8 -> Kworld USB2800 (em2800)
1010 9 -> Pinnacle Dazzle DVC 90/100/101/107 / Kaiser Baas Video to DVD maker (em2820/em2840) [1b80:e302,1b80:e304,2304:0207,2304:021a]
1111 10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500]
12− 11 -> Terratec Hybrid XS (em2880) [0ccd:0042]
12+ 11 -> Terratec Hybrid XS (em2880)
1313 12 -> Kworld PVR TV 2800 RF (em2820/em2840)
1414 13 -> Terratec Prodigy XS (em2880) [0ccd:0047]
1515 14 -> SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0 (em2820/em2840)
@@ -53,7 +53,7 @@ · 37 unmodified lines
5353 52 -> DNT DA2 Hybrid (em2881)
5454 53 -> Pinnacle Hybrid Pro (em2881)
5555 54 -> Kworld VS-DVB-T 323UR (em2882) [eb1a:e323]
56− 55 -> Terratec Hybrid XS (em2882) (em2882) [0ccd:005e]
56+ 55 -> Terratec Cinnergy Hybrid T USB XS (em2882) (em2882) [0ccd:005e,0ccd:0042]
5757 56 -> Pinnacle Hybrid Pro (2) (em2882) [2304:0226]
5858 57 -> Kworld PlusTV HD Hybrid 330 (em2883) [eb1a:a316]
5959 58 -> Compro VideoMate ForYou/Stereo (em2820/em2840) [185b:2041]
Documentation/video4linux/CARDLIST.saa7134+2−0
@@ -180,3 +180,5 @@ · 179 unmodified lines
180180 179 -> Beholder BeholdTV A7 [5ace:7090]
181181 180 -> Avermedia PCI M733A [1461:4155,1461:4255]
182182 181 -> TechoTrend TT-budget T-3000 [13c2:2804]
183+182 -> Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid [17de:b136]
184+183 -> Compro VideoMate Vista M1F [185b:c900]
Documentation/video4linux/Makefile+0−8
@@ -1,8 +0,0 @@
1−# kbuild trick to avoid linker error. Can be omitted if a module is built.
2−obj- := dummy.o
3−
4−# List of programs to build
5−hostprogs-y := v4lgrab
6−
7−# Tell kbuild to always build the programs
8−always := $(hostprogs-y)
Documentation/video4linux/README.cpia+0−191
@@ -1,191 +0,0 @@
1−This is a driver for the CPiA PPC2 driven parallel connected
2−Camera. For example the Creative WebcamII is CPiA driven.
3−
4− ) [1]Peter Pregler, Linz 2000, published under the [2]GNU GPL
5−
6−---------------------------------------------------------------------------
7−
8−USAGE:
9−
10−General:
11−========
12−
13−1) Make sure you have created the video devices (/dev/video*):
14−
15−- if you have a recent MAKEDEV do a 'cd /dev;./MAKEDEV video'
16−- otherwise do a:
17−
18−cd /dev
19−mknod video0 c 81 0
20−ln -s video0 video
21−
22−2) Compile the kernel (see below for the list of options to use),
23− configure your parport and reboot.
24−
25−3) If all worked well you should get messages similar
26− to the following (your versions may be different) on the console:
27−
28−V4L-Driver for Vision CPiA based cameras v0.7.4
29−parport0: read2 timeout.
30−parport0: Multimedia device, VLSI Vision Ltd PPC2
31−Parallel port driver for Vision CPiA based camera
32− CPIA Version: 1.20 (2.0)
33− CPIA PnP-ID: 0553:0002:0100
34− VP-Version: 1.0 0100
35− 1 camera(s) found
36−
37−
38−As modules:
39−===========
40−
41−Make sure you have selected the following kernel options (you can
42−select all stuff as modules):
43−
44−The cpia-stuff is in the section 'Character devices -> Video For Linux'.
45−
46−CONFIG_PARPORT=m
47−CONFIG_PARPORT_PC=m
48−CONFIG_PARPORT_PC_FIFO=y
49−CONFIG_PARPORT_1284=y
50−CONFIG_VIDEO_DEV=m
51−CONFIG_VIDEO_CPIA=m
52−CONFIG_VIDEO_CPIA_PP=m
53−
54−For autoloading of all those modules you need to tell module-init-tools
55−some stuff. Add the following line to your module-init-tools config-file
56−(e.g. /etc/modprobe.conf or wherever your distribution does store that
57−stuff):
58−
59−options parport_pc io=0x378 irq=7 dma=3
60−alias char-major-81 cpia_pp
61−
62−The first line tells the dma/irq channels to use. Those _must_ match
63−the settings of your BIOS. Do NOT simply use the values above. See
64−Documentation/parport.txt for more information about this. The second
65−line associates the video-device file with the driver. Of cause you
66−can also load the modules once upon boot (usually done in /etc/modules).
67−
68−Linked into the kernel:
69−=======================
70−
71−Make sure you have selected the following kernel options. Note that
72−you cannot compile the parport-stuff as modules and the cpia-driver
73−statically (the other way round is okay though).
74−
75−The cpia-stuff is in the section 'Character devices -> Video For Linux'.
76−
77−CONFIG_PARPORT=y
78−CONFIG_PARPORT_PC=y
79−CONFIG_PARPORT_PC_FIFO=y
80−CONFIG_PARPORT_1284=y
81−CONFIG_VIDEO_DEV=y
82−CONFIG_VIDEO_CPIA=y
83−CONFIG_VIDEO_CPIA_PP=y
84−
85−To use DMA/irq you will need to tell the kernel upon boot time the
86−hardware configuration of the parport. You can give the boot-parameter
87−at the LILO-prompt or specify it in lilo.conf. I use the following
88−append-line in lilo.conf:
89−
90− append="parport=0x378,7,3"
91−
92−See Documentation/parport.txt for more information about the
93−configuration of the parport and the values given above. Do not simply
94−use the values given above.
95−
96−---------------------------------------------------------------------------
97−FEATURES:
98−
99−- mmap/read v4l-interface (but no overlay)
100−- image formats: CIF/QCIF, SIF/QSIF, various others used by isabel;
101− note: all sizes except CIF/QCIF are implemented by clipping, i.e.
102− pixels are not uploaded from the camera
103−- palettes: VIDEO_PALETTE_GRAY, VIDEO_PALETTE_RGB565, VIDEO_PALETTE_RGB555,
104− VIDEO_PALETTE_RGB24, VIDEO_PALETTE_RGB32, VIDEO_PALETTE_YUYV,
105− VIDEO_PALETTE_UYVY, VIDEO_PALETTE_YUV422
106−- state information (color balance, exposure, ...) is preserved between
107− device opens
108−- complete control over camera via proc-interface (_all_ camera settings are
109− supported), there is also a python-gtk application available for this [3]
110−- works under SMP (but the driver is completely serialized and synchronous)
111− so you get no benefit from SMP, but at least it does not crash your box
112−- might work for non-Intel architecture, let us know about this
113−
114−---------------------------------------------------------------------------
115−TESTED APPLICATIONS:
116−
117−- a simple test application based on Xt is available at [3]
118−- another test-application based on gqcam-0.4 (uses GTK)
119−- gqcam-0.6 should work
120−- xawtv-3.x (also the webcam software)
121−- xawtv-2.46
122−- w3cam (cgi-interface and vidcat, e.g. you may try out 'vidcat |xv
123− -maxpect -root -quit +noresetroot -rmode 5 -')
124−- vic, the MBONE video conferencing tool (version 2.8ucl4-1)
125−- isabel 3R4beta (barely working, but AFAICT all the problems are on
126− their side)
127−- camserv-0.40
128−
129−See [3] for pointers to v4l-applications.
130−
131−---------------------------------------------------------------------------
132−KNOWN PROBLEMS:
133−
134−- some applications do not handle the image format correctly, you will
135− see strange horizontal stripes instead of a nice picture -> make sure
136− your application does use a supported image size or queries the driver
137− for the actually used size (reason behind this: the camera cannot
138− provide any image format, so if size NxM is requested the driver will
139− use a format to the closest fitting N1xM1, the application should now
140− query for this granted size, most applications do not).
141−- all the todo ;)
142−- if there is not enough light and the picture is too dark try to
143− adjust the SetSensorFPS setting, automatic frame rate adjustment
144− has its price
145−- do not try out isabel 3R4beta (built 135), you will be disappointed
146−
147−---------------------------------------------------------------------------
148−TODO:
149−
150−- multiple camera support (struct camera or something) - This should work,
151− but hasn't been tested yet.
152−- architecture independence?
153−- SMP-safe asynchronous mmap interface
154−- nibble mode for old parport interfaces
155−- streaming capture, this should give a performance gain
156−
157−---------------------------------------------------------------------------
158−IMPLEMENTATION NOTES:
159−
160−The camera can act in two modes, streaming or grabbing. Right now a
161−polling grab-scheme is used. Maybe interrupt driven streaming will be
162−used for a asynchronous mmap interface in the next major release of the
163−driver. This might give a better frame rate.
164−
165−---------------------------------------------------------------------------
166−THANKS (in no particular order):
167−
168−- Scott J. Bertin <sbertin@mindspring.com> for cleanups, the proc-filesystem
169− and much more
170−- Henry Bruce <whb@vvl.co.uk> for providing developers information about
171− the CPiA chip, I wish all companies would treat Linux as seriously
172−- Karoly Erdei <Karoly.Erdei@risc.uni-linz.ac.at> and RISC-Linz for being
173− my boss ;) resp. my employer and for providing me the hardware and
174− allow me to devote some working time to this project
175−- Manuel J. Petit de Gabriel <mpetit@dit.upm.es> for providing help
176− with Isabel (http://isabel.dit.upm.es/)
177−- Bas Huisman <bhuism@cs.utwente.nl> for writing the initial parport code
178−- Jarl Totland <Jarl.Totland@bdc.no> for setting up the mailing list
179− and maintaining the web-server[3]
180−- Chris Whiteford <Chris@informinteractive.com> for fixes related to the
181− 1.02 firmware
182−- special kudos to all the tester whose machines crashed and/or
183− will crash. :)
184−
185−---------------------------------------------------------------------------
186−REFERENCES
187−
188− 1. http://www.risc.uni-linz.ac.at/
189− mailto:Peter_Pregler@email.com
190− 2. see the file COPYING in the top directory of the kernel tree
191− 3. http://webcam.sourceforge.net/
Documentation/video4linux/Zoran+3−71
@@ -322,76 +322,11 @@ your IRQs and make sure the card has its own interrupts. · 321 unmodified lines
322322
323323 4. Programming interface
324324
325−This driver conforms to video4linux and video4linux2, both can be used to
326−use the driver. Since video4linux didn't provide adequate calls to fully
327−use the cards' features, we've introduced several programming extensions,
328−which are currently officially accepted in the 2.4.x branch of the kernel.
329−These extensions are known as the v4l/mjpeg extensions. See zoran.h for
330−details (structs/ioctls).
331−
332−Information - video4linux:
333−http://linux.bytesex.org/v4l2/API.html
334−Documentation/video4linux/API.html
335−/usr/include/linux/videodev.h
336−
337−Information - video4linux/mjpeg extensions:
338−./zoran.h
339−(also see below)
340−
341−Information - video4linux2:
342−http://linuxtv.org
343−http://v4l2spec.bytesex.org/
344−/usr/include/linux/videodev2.h
345−
346−More information on the video4linux/mjpeg extensions, by Serguei
347−Miridonovi and Rainer Johanni:
348−--
349−The ioctls for that interface are as follows:
350−
351−BUZIOC_G_PARAMS
352−BUZIOC_S_PARAMS
353−
354−Get and set the parameters of the buz. The user should always do a
355−BUZIOC_G_PARAMS (with a struct buz_params) to obtain the default
356−settings, change what he likes and then make a BUZIOC_S_PARAMS call.
357−
358−BUZIOC_REQBUFS
359−
360−Before being able to capture/playback, the user has to request
361−the buffers he is wanting to use. Fill the structure
362−zoran_requestbuffers with the size (recommended: 256*1024) and
363−the number (recommended 32 up to 256). There are no such restrictions
364−as for the Video for Linux buffers, you should LEAVE SUFFICIENT
365−MEMORY for your system however, else strange things will happen ....
366−On return, the zoran_requestbuffers structure contains number and
367−size of the actually allocated buffers.
368−You should use these numbers for doing a mmap of the buffers
369−into the user space.
370−The BUZIOC_REQBUFS ioctl also makes it happen, that the next mmap
371−maps the MJPEG buffer instead of the V4L buffers.
372−
373−BUZIOC_QBUF_CAPT
374−BUZIOC_QBUF_PLAY
375−
376−Queue a buffer for capture or playback. The first call also starts
377−streaming capture. When streaming capture is going on, you may
378−only queue further buffers or issue syncs until streaming
379−capture is switched off again with a argument of -1 to
380−a BUZIOC_QBUF_CAPT/BUZIOC_QBUF_PLAY ioctl.
381−
382−BUZIOC_SYNC
383−
384−Issue this ioctl when all buffers are queued. This ioctl will
385−block until the first buffer becomes free for saving its
386−data to disk (after BUZIOC_QBUF_CAPT) or for reuse (after BUZIOC_QBUF_PLAY).
387−
388−BUZIOC_G_STATUS
389−
390−Get the status of the input lines (video source connected/norm).
325+This driver conforms to video4linux2. Support for V4L1 and for the custom
326+zoran ioctls has been removed in kernel 2.6.38.
391327
392328 For programming example, please, look at lavrec.c and lavplay.c code in
393−lavtools-1.2p2 package (URL: http://www.cicese.mx/)
394−and the 'examples' directory in the original Buz driver distribution.
329+the MJPEG-tools (http://mjpeg.sf.net/).
395330
396331 Additional notes for software developers:
397332
@@ -402,9 +337,6 @@ Additional notes for software developers: · 4 unmodified lines
402337 standard is "more constant" for current country than geometry
403338 settings of a variety of TV capture cards which may work in ITU or
404339 square pixel format.
405−--
406−Please note that lavplay/lavrec are also included in the MJPEG-tools
407−(http://mjpeg.sf.net/).
408340
409341 ===========================
410342
Documentation/video4linux/bttv/Cards+0−4
@@ -464,10 +464,6 @@ Siemens · 463 unmodified lines
464464 -------
465465 Multimedia eXtension Board (MXB) (SAA7146, SAA7111)
466466
467−Stradis
468−-------
469− SDM275,SDM250,SDM026,SDM025 (SAA7146, IBMMPEG2): MPEG2 decoder only
470−
471467 Powercolor
472468 ----------
473469 MTV878
Documentation/video4linux/gspca.txt+1−0
@@ -366,6 +366,7 @@ t613 17a1:0128 TASCORP JPEG Webcam, NGS Cyclops · 365 unmodified lines
366366 vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC
367367 pac207 2001:f115 D-Link DSB-C120
368368 sq905c 2770:9050 Disney pix micro (CIF)
369+sq905c 2770:9051 Lego Bionicle
369370 sq905c 2770:9052 Disney pix micro 2 (VGA)
370371 sq905c 2770:905c All 11 known cameras with this ID
371372 sq905 2770:9120 All 24 known cameras with this ID
Documentation/video4linux/meye.txt+2−8
@@ -45,8 +45,6 @@ module argument syntax (<param>=<value> when passing the option to the · 44 unmodified lines
4545 module or meye.<param>=<value> on the kernel boot line when meye is
4646 statically linked into the kernel). Those options are:
4747
48− forcev4l1: force use of V4L1 API instead of V4L2
49−
5048 gbuffers: number of capture buffers, default is 2 (32 max)
5149
5250 gbufsize: size of each capture buffer, default is 614400
@@ -79,9 +77,8 @@ Usage: · 26 unmodified lines
7977 Private API:
8078 ------------
8179
82− The driver supports frame grabbing with the video4linux API
83− (either v4l1 or v4l2), so all video4linux tools (like xawtv)
84− should work with this driver.
80+ The driver supports frame grabbing with the video4linux API,
81+ so all video4linux tools (like xawtv) should work with this driver.
8582
8683 Besides the video4linux interface, the driver has a private interface
8784 for accessing the Motion Eye extended parameters (camera sharpness,
@@ -123,7 +120,4 @@ Private API: · 35 unmodified lines
123120 Bugs / Todo:
124121 ------------
125122
126− - the driver could be much cleaned up by removing the v4l1 support.
127− However, this means all v4l1-only applications will stop working.
128−
129123 - 'motioneye' still uses the meye private v4l1 API extensions.
Documentation/video4linux/v4l2-controls.txt+12−0
@@ -285,6 +285,9 @@ implement g_volatile_ctrl like this: · 284 unmodified lines
285285 The 'new value' union is not used in g_volatile_ctrl. In general controls
286286 that need to implement g_volatile_ctrl are read-only controls.
287287
288+Note that if one or more controls in a control cluster are marked as volatile,
289+then all the controls in the cluster are seen as volatile.
290+
288291 To mark a control as volatile you have to set the is_volatile flag:
289292
290293 ctrl = v4l2_ctrl_new_std(&sd->ctrl_handler, ...);
@@ -462,6 +465,15 @@ pointer to the v4l2_ctrl_ops struct that is used for that cluster. · 171 unmodified lines
462465 Obviously, all controls in the cluster array must be initialized to either
463466 a valid control or to NULL.
464467
468+In rare cases you might want to know which controls of a cluster actually
469+were set explicitly by the user. For this you can check the 'is_new' flag of
470+each control. For example, in the case of a volume/mute cluster the 'is_new'
471+flag of the mute control would be set if the user called VIDIOC_S_CTRL for
472+mute only. If the user would call VIDIOC_S_EXT_CTRLS for both mute and volume
473+controls, then the 'is_new' flag would be 1 for both controls.
474+
475+The 'is_new' flag is always 1 when called from v4l2_ctrl_handler_setup().
476+
465477
466478 VIDIOC_LOG_STATUS Support
467479 =========================
Documentation/video4linux/v4lgrab.c+0−201
@@ -1,201 +0,0 @@
1−/* Simple Video4Linux image grabber. */
2−/*
3− * Video4Linux Driver Test/Example Framegrabbing Program
4− *
5− * Compile with:
6− * gcc -s -Wall -Wstrict-prototypes v4lgrab.c -o v4lgrab
7− * Use as:
8− * v4lgrab >image.ppm
9− *
10− * Copyright (C) 1998-05-03, Phil Blundell <philb@gnu.org>
11− * Copied from http://www.tazenda.demon.co.uk/phil/vgrabber.c
12− * with minor modifications (Dave Forrest, drf5n@virginia.edu).
13− *
14− *
15− * For some cameras you may need to pre-load libv4l to perform
16− * the necessary decompression, e.g.:
17− *
18− * export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
19− * ./v4lgrab >image.ppm
20− *
21− * see http://hansdegoede.livejournal.com/3636.html for details.
22− *
23− */
24−
25−#include <unistd.h>
26−#include <sys/types.h>
27−#include <sys/stat.h>
28−#include <fcntl.h>
29−#include <stdio.h>
30−#include <sys/ioctl.h>
31−#include <stdlib.h>
32−
33−#include <linux/types.h>
34−#include <linux/videodev.h>
35−
36−#define VIDEO_DEV "/dev/video0"
37−
38−/* Stole this from tvset.c */
39−
40−#define READ_VIDEO_PIXEL(buf, format, depth, r, g, b) \
41−{ \
42− switch (format) \
43− { \
44− case VIDEO_PALETTE_GREY: \
45− switch (depth) \
46− { \
47− case 4: \
48− case 6: \
49− case 8: \
50− (r) = (g) = (b) = (*buf++ << 8);\
51− break; \
52− \
53− case 16: \
54− (r) = (g) = (b) = \
55− *((unsigned short *) buf); \
56− buf += 2; \
57− break; \
58− } \
59− break; \
60− \
61− \
62− case VIDEO_PALETTE_RGB565: \
63− { \
64− unsigned short tmp = *(unsigned short *)buf; \
65− (r) = tmp&0xF800; \
66− (g) = (tmp<<5)&0xFC00; \
67− (b) = (tmp<<11)&0xF800; \
68− buf += 2; \
69− } \
70− break; \
71− \
72− case VIDEO_PALETTE_RGB555: \
73− (r) = (buf[0]&0xF8)<<8; \
74− (g) = ((buf[0] << 5 | buf[1] >> 3)&0xF8)<<8; \
75− (b) = ((buf[1] << 2 ) & 0xF8)<<8; \
76− buf += 2; \
77− break; \
78− \
79− case VIDEO_PALETTE_RGB24: \
80− (r) = buf[0] << 8; (g) = buf[1] << 8; \
81− (b) = buf[2] << 8; \
82− buf += 3; \
83− break; \
84− \
85− default: \
86− fprintf(stderr, \
87− "Format %d not yet supported\n", \
88− format); \
89− } \
90−}
91−
92−static int get_brightness_adj(unsigned char *image, long size, int *brightness) {
93− long i, tot = 0;
94− for (i=0;i<size*3;i++)
95− tot += image[i];
96− *brightness = (128 - tot/(size*3))/3;
97− return !((tot/(size*3)) >= 126 && (tot/(size*3)) <= 130);
98−}
99−
100−int main(int argc, char ** argv)
101−{
102− int fd = open(VIDEO_DEV, O_RDONLY), f;
103− struct video_capability cap;
104− struct video_window win;
105− struct video_picture vpic;
106−
107− unsigned char *buffer, *src;
108− int bpp = 24, r = 0, g = 0, b = 0;
109− unsigned int i, src_depth = 16;
110−
111− if (fd < 0) {
112− perror(VIDEO_DEV);
113− exit(1);
114− }
115−
116− if (ioctl(fd, VIDIOCGCAP, &cap) < 0) {
117− perror("VIDIOGCAP");
118− fprintf(stderr, "(" VIDEO_DEV " not a video4linux device?)\n");
119− close(fd);
120− exit(1);
121− }
122−
123− if (ioctl(fd, VIDIOCGWIN, &win) < 0) {
124− perror("VIDIOCGWIN");
125− close(fd);
126− exit(1);
127− }
128−
129− if (ioctl(fd, VIDIOCGPICT, &vpic) < 0) {
130− perror("VIDIOCGPICT");
131− close(fd);
132− exit(1);
133− }
134−
135− if (cap.type & VID_TYPE_MONOCHROME) {
136− vpic.depth=8;
137− vpic.palette=VIDEO_PALETTE_GREY; /* 8bit grey */
138− if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
139− vpic.depth=6;
140− if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
141− vpic.depth=4;
142− if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
143− fprintf(stderr, "Unable to find a supported capture format.\n");
144− close(fd);
145− exit(1);
146− }
147− }
148− }
149− } else {
150− vpic.depth=24;
151− vpic.palette=VIDEO_PALETTE_RGB24;
152−
153− if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
154− vpic.palette=VIDEO_PALETTE_RGB565;
155− vpic.depth=16;
156−
157− if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
158− vpic.palette=VIDEO_PALETTE_RGB555;
159− vpic.depth=15;
160−
161− if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
162− fprintf(stderr, "Unable to find a supported capture format.\n");
163− return -1;
164− }
165− }
166− }
167− }
168−
169− buffer = malloc(win.width * win.height * bpp);
170− if (!buffer) {
171− fprintf(stderr, "Out of memory.\n");
172− exit(1);
173− }
174−
175− do {
176− int newbright;
177− read(fd, buffer, win.width * win.height * bpp);
178− f = get_brightness_adj(buffer, win.width * win.height, &newbright);
179− if (f) {
180− vpic.brightness += (newbright << 8);
181− if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
182− perror("VIDIOSPICT");
183− break;
184− }
185− }
186− } while (f);
187−
188− fprintf(stdout, "P6\n%d %d 255\n", win.width, win.height);
189−
190− src = buffer;
191−
192− for (i = 0; i < win.width * win.height; i++) {
193− READ_VIDEO_PIXEL(src, vpic.palette, src_depth, r, g, b);
194− fputc(r>>8, stdout);
195− fputc(g>>8, stdout);
196− fputc(b>>8, stdout);
197− }
198−
199− close(fd);
200− return 0;
201−}
Documentation/video4linux/videobuf+1−6
@@ -247,8 +247,6 @@ calls. The relevant helper functions are: · 246 unmodified lines
247247 int nonblocking);
248248 int videobuf_streamon(struct videobuf_queue *q);
249249 int videobuf_streamoff(struct videobuf_queue *q);
250− int videobuf_cgmbuf(struct videobuf_queue *q, struct video_mbuf *mbuf,
251− int count);
252250
253251 So, for example, a VIDIOC_REQBUFS call turns into a call to the driver's
254252 vidioc_reqbufs() callback which, in turn, usually only needs to locate the
@@ -258,10 +256,7 @@ boilerplate in a lot of V4L2 drivers. · 3 unmodified lines
258256
259257 The vidioc_streamon() and vidioc_streamoff() functions will be a bit more
260258 complex, of course, since they will also need to deal with starting and
261−stopping the capture engine. videobuf_cgmbuf(), called from the driver's
262−vidiocgmbuf() function, only exists if the V4L1 compatibility module has
263−been selected with CONFIG_VIDEO_V4L1_COMPAT, so its use must be surrounded
264−with #ifdef directives.
259+stopping the capture engine.
265260
266261 Buffer allocation
267262
Documentation/vm/Makefile+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 obj- := dummy.o
33
44 # List of programs to build
5−hostprogs-y := slabinfo page-types hugepage-mmap hugepage-shm map_hugetlb
5+hostprogs-y := page-types hugepage-mmap hugepage-shm map_hugetlb
66
77 # Tell kbuild to always build the programs
88 always := $(hostprogs-y)
Documentation/vm/transhuge.txt+298−0
@@ -0,0 +1,298 @@
1+= Transparent Hugepage Support =
2+
3+== Objective ==
4+
5+Performance critical computing applications dealing with large memory
6+working sets are already running on top of libhugetlbfs and in turn
7+hugetlbfs. Transparent Hugepage Support is an alternative means of
8+using huge pages for the backing of virtual memory with huge pages
9+that supports the automatic promotion and demotion of page sizes and
10+without the shortcomings of hugetlbfs.
11+
12+Currently it only works for anonymous memory mappings but in the
13+future it can expand over the pagecache layer starting with tmpfs.
14+
15+The reason applications are running faster is because of two
16+factors. The first factor is almost completely irrelevant and it's not
17+of significant interest because it'll also have the downside of
18+requiring larger clear-page copy-page in page faults which is a
19+potentially negative effect. The first factor consists in taking a
20+single page fault for each 2M virtual region touched by userland (so
21+reducing the enter/exit kernel frequency by a 512 times factor). This
22+only matters the first time the memory is accessed for the lifetime of
23+a memory mapping. The second long lasting and much more important
24+factor will affect all subsequent accesses to the memory for the whole
25+runtime of the application. The second factor consist of two
26+components: 1) the TLB miss will run faster (especially with
27+virtualization using nested pagetables but almost always also on bare
28+metal without virtualization) and 2) a single TLB entry will be
29+mapping a much larger amount of virtual memory in turn reducing the
30+number of TLB misses. With virtualization and nested pagetables the
31+TLB can be mapped of larger size only if both KVM and the Linux guest
32+are using hugepages but a significant speedup already happens if only
33+one of the two is using hugepages just because of the fact the TLB
34+miss is going to run faster.
35+
36+== Design ==
37+
38+- "graceful fallback": mm components which don't have transparent
39+ hugepage knowledge fall back to breaking a transparent hugepage and
40+ working on the regular pages and their respective regular pmd/pte
41+ mappings
42+
43+- if a hugepage allocation fails because of memory fragmentation,
44+ regular pages should be gracefully allocated instead and mixed in
45+ the same vma without any failure or significant delay and without
46+ userland noticing
47+
48+- if some task quits and more hugepages become available (either
49+ immediately in the buddy or through the VM), guest physical memory
50+ backed by regular pages should be relocated on hugepages
51+ automatically (with khugepaged)
52+
53+- it doesn't require memory reservation and in turn it uses hugepages
54+ whenever possible (the only possible reservation here is kernelcore=
55+ to avoid unmovable pages to fragment all the memory but such a tweak
56+ is not specific to transparent hugepage support and it's a generic
57+ feature that applies to all dynamic high order allocations in the
58+ kernel)
59+
60+- this initial support only offers the feature in the anonymous memory
61+ regions but it'd be ideal to move it to tmpfs and the pagecache
62+ later
63+
64+Transparent Hugepage Support maximizes the usefulness of free memory
65+if compared to the reservation approach of hugetlbfs by allowing all
66+unused memory to be used as cache or other movable (or even unmovable
67+entities). It doesn't require reservation to prevent hugepage
68+allocation failures to be noticeable from userland. It allows paging
69+and all other advanced VM features to be available on the
70+hugepages. It requires no modifications for applications to take
71+advantage of it.
72+
73+Applications however can be further optimized to take advantage of
74+this feature, like for example they've been optimized before to avoid
75+a flood of mmap system calls for every malloc(4k). Optimizing userland
76+is by far not mandatory and khugepaged already can take care of long
77+lived page allocations even for hugepage unaware applications that
78+deals with large amounts of memory.
79+
80+In certain cases when hugepages are enabled system wide, application
81+may end up allocating more memory resources. An application may mmap a
82+large region but only touch 1 byte of it, in that case a 2M page might
83+be allocated instead of a 4k page for no good. This is why it's
84+possible to disable hugepages system-wide and to only have them inside
85+MADV_HUGEPAGE madvise regions.
86+
87+Embedded systems should enable hugepages only inside madvise regions
88+to eliminate any risk of wasting any precious byte of memory and to
89+only run faster.
90+
91+Applications that gets a lot of benefit from hugepages and that don't
92+risk to lose memory by using hugepages, should use
93+madvise(MADV_HUGEPAGE) on their critical mmapped regions.
94+
95+== sysfs ==
96+
97+Transparent Hugepage Support can be entirely disabled (mostly for
98+debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to
99+avoid the risk of consuming more memory resources) or enabled system
100+wide. This can be achieved with one of:
101+
102+echo always >/sys/kernel/mm/transparent_hugepage/enabled
103+echo madvise >/sys/kernel/mm/transparent_hugepage/enabled
104+echo never >/sys/kernel/mm/transparent_hugepage/enabled
105+
106+It's also possible to limit defrag efforts in the VM to generate
107+hugepages in case they're not immediately free to madvise regions or
108+to never try to defrag memory and simply fallback to regular pages
109+unless hugepages are immediately available. Clearly if we spend CPU
110+time to defrag memory, we would expect to gain even more by the fact
111+we use hugepages later instead of regular pages. This isn't always
112+guaranteed, but it may be more likely in case the allocation is for a
113+MADV_HUGEPAGE region.
114+
115+echo always >/sys/kernel/mm/transparent_hugepage/defrag
116+echo madvise >/sys/kernel/mm/transparent_hugepage/defrag
117+echo never >/sys/kernel/mm/transparent_hugepage/defrag
118+
119+khugepaged will be automatically started when
120+transparent_hugepage/enabled is set to "always" or "madvise, and it'll
121+be automatically shutdown if it's set to "never".
122+
123+khugepaged runs usually at low frequency so while one may not want to
124+invoke defrag algorithms synchronously during the page faults, it
125+should be worth invoking defrag at least in khugepaged. However it's
126+also possible to disable defrag in khugepaged:
127+
128+echo yes >/sys/kernel/mm/transparent_hugepage/khugepaged/defrag
129+echo no >/sys/kernel/mm/transparent_hugepage/khugepaged/defrag
130+
131+You can also control how many pages khugepaged should scan at each
132+pass:
133+
134+/sys/kernel/mm/transparent_hugepage/khugepaged/pages_to_scan
135+
136+and how many milliseconds to wait in khugepaged between each pass (you
137+can set this to 0 to run khugepaged at 100% utilization of one core):
138+
139+/sys/kernel/mm/transparent_hugepage/khugepaged/scan_sleep_millisecs
140+
141+and how many milliseconds to wait in khugepaged if there's an hugepage
142+allocation failure to throttle the next allocation attempt.
143+
144+/sys/kernel/mm/transparent_hugepage/khugepaged/alloc_sleep_millisecs
145+
146+The khugepaged progress can be seen in the number of pages collapsed:
147+
148+/sys/kernel/mm/transparent_hugepage/khugepaged/pages_collapsed
149+
150+for each pass:
151+
152+/sys/kernel/mm/transparent_hugepage/khugepaged/full_scans
153+
154+== Boot parameter ==
155+
156+You can change the sysfs boot time defaults of Transparent Hugepage
157+Support by passing the parameter "transparent_hugepage=always" or
158+"transparent_hugepage=madvise" or "transparent_hugepage=never"
159+(without "") to the kernel command line.
160+
161+== Need of application restart ==
162+
163+The transparent_hugepage/enabled values only affect future
164+behavior. So to make them effective you need to restart any
165+application that could have been using hugepages. This also applies to
166+the regions registered in khugepaged.
167+
168+== get_user_pages and follow_page ==
169+
170+get_user_pages and follow_page if run on a hugepage, will return the
171+head or tail pages as usual (exactly as they would do on
172+hugetlbfs). Most gup users will only care about the actual physical
173+address of the page and its temporary pinning to release after the I/O
174+is complete, so they won't ever notice the fact the page is huge. But
175+if any driver is going to mangle over the page structure of the tail
176+page (like for checking page->mapping or other bits that are relevant
177+for the head page and not the tail page), it should be updated to jump
178+to check head page instead (while serializing properly against
179+split_huge_page() to avoid the head and tail pages to disappear from
180+under it, see the futex code to see an example of that, hugetlbfs also
181+needed special handling in futex code for similar reasons).
182+
183+NOTE: these aren't new constraints to the GUP API, and they match the
184+same constrains that applies to hugetlbfs too, so any driver capable
185+of handling GUP on hugetlbfs will also work fine on transparent
186+hugepage backed mappings.
187+
188+In case you can't handle compound pages if they're returned by
189+follow_page, the FOLL_SPLIT bit can be specified as parameter to
190+follow_page, so that it will split the hugepages before returning
191+them. Migration for example passes FOLL_SPLIT as parameter to
192+follow_page because it's not hugepage aware and in fact it can't work
193+at all on hugetlbfs (but it instead works fine on transparent
194+hugepages thanks to FOLL_SPLIT). migration simply can't deal with
195+hugepages being returned (as it's not only checking the pfn of the
196+page and pinning it during the copy but it pretends to migrate the
197+memory in regular page sizes and with regular pte/pmd mappings).
198+
199+== Optimizing the applications ==
200+
201+To be guaranteed that the kernel will map a 2M page immediately in any
202+memory region, the mmap region has to be hugepage naturally
203+aligned. posix_memalign() can provide that guarantee.
204+
205+== Hugetlbfs ==
206+
207+You can use hugetlbfs on a kernel that has transparent hugepage
208+support enabled just fine as always. No difference can be noted in
209+hugetlbfs other than there will be less overall fragmentation. All
210+usual features belonging to hugetlbfs are preserved and
211+unaffected. libhugetlbfs will also work fine as usual.
212+
213+== Graceful fallback ==
214+
215+Code walking pagetables but unware about huge pmds can simply call
216+split_huge_page_pmd(mm, pmd) where the pmd is the one returned by
217+pmd_offset. It's trivial to make the code transparent hugepage aware
218+by just grepping for "pmd_offset" and adding split_huge_page_pmd where
219+missing after pmd_offset returns the pmd. Thanks to the graceful
220+fallback design, with a one liner change, you can avoid to write
221+hundred if not thousand of lines of complex code to make your code
222+hugepage aware.
223+
224+If you're not walking pagetables but you run into a physical hugepage
225+but you can't handle it natively in your code, you can split it by
226+calling split_huge_page(page). This is what the Linux VM does before
227+it tries to swapout the hugepage for example.
228+
229+Example to make mremap.c transparent hugepage aware with a one liner
230+change:
231+
232+diff --git a/mm/mremap.c b/mm/mremap.c
233+--- a/mm/mremap.c
234++++ b/mm/mremap.c
235+@@ -41,6 +41,7 @@ static pmd_t *get_old_pmd(struct mm_stru
236+ return NULL;
237+
238+ pmd = pmd_offset(pud, addr);
239++ split_huge_page_pmd(mm, pmd);
240+ if (pmd_none_or_clear_bad(pmd))
241+ return NULL;
242+
243+== Locking in hugepage aware code ==
244+
245+We want as much code as possible hugepage aware, as calling
246+split_huge_page() or split_huge_page_pmd() has a cost.
247+
248+To make pagetable walks huge pmd aware, all you need to do is to call
249+pmd_trans_huge() on the pmd returned by pmd_offset. You must hold the
250+mmap_sem in read (or write) mode to be sure an huge pmd cannot be
251+created from under you by khugepaged (khugepaged collapse_huge_page
252+takes the mmap_sem in write mode in addition to the anon_vma lock). If
253+pmd_trans_huge returns false, you just fallback in the old code
254+paths. If instead pmd_trans_huge returns true, you have to take the
255+mm->page_table_lock and re-run pmd_trans_huge. Taking the
256+page_table_lock will prevent the huge pmd to be converted into a
257+regular pmd from under you (split_huge_page can run in parallel to the
258+pagetable walk). If the second pmd_trans_huge returns false, you
259+should just drop the page_table_lock and fallback to the old code as
260+before. Otherwise you should run pmd_trans_splitting on the pmd. In
261+case pmd_trans_splitting returns true, it means split_huge_page is
262+already in the middle of splitting the page. So if pmd_trans_splitting
263+returns true it's enough to drop the page_table_lock and call
264+wait_split_huge_page and then fallback the old code paths. You are
265+guaranteed by the time wait_split_huge_page returns, the pmd isn't
266+huge anymore. If pmd_trans_splitting returns false, you can proceed to
267+process the huge pmd and the hugepage natively. Once finished you can
268+drop the page_table_lock.
269+
270+== compound_lock, get_user_pages and put_page ==
271+
272+split_huge_page internally has to distribute the refcounts in the head
273+page to the tail pages before clearing all PG_head/tail bits from the
274+page structures. It can do that easily for refcounts taken by huge pmd
275+mappings. But the GUI API as created by hugetlbfs (that returns head
276+and tail pages if running get_user_pages on an address backed by any
277+hugepage), requires the refcount to be accounted on the tail pages and
278+not only in the head pages, if we want to be able to run
279+split_huge_page while there are gup pins established on any tail
280+page. Failure to be able to run split_huge_page if there's any gup pin
281+on any tail page, would mean having to split all hugepages upfront in
282+get_user_pages which is unacceptable as too many gup users are
283+performance critical and they must work natively on hugepages like
284+they work natively on hugetlbfs already (hugetlbfs is simpler because
285+hugetlbfs pages cannot be splitted so there wouldn't be requirement of
286+accounting the pins on the tail pages for hugetlbfs). If we wouldn't
287+account the gup refcounts on the tail pages during gup, we won't know
288+anymore which tail page is pinned by gup and which is not while we run
289+split_huge_page. But we still have to add the gup pin to the head page
290+too, to know when we can free the compound page in case it's never
291+splitted during its lifetime. That requires changing not just
292+get_page, but put_page as well so that when put_page runs on a tail
293+page (and only on a tail page) it will find its respective head page,
294+and then it will decrease the head page refcount in addition to the
295+tail page refcount. To obtain a head page reliably and to decrease its
296+refcount without race conditions, put_page has to serialize against
297+__split_huge_page_refcount using a special per-page lock called
298+compound_lock.
Documentation/w1/slaves/00-INDEX+2−0
@@ -2,3 +2,5 @@ · 1 unmodified line
22 - This file
33 w1_therm
44 - The Maxim/Dallas Semiconductor ds18*20 temperature sensor.
5+w1_ds2423
6+ - The Maxim/Dallas Semiconductor ds2423 counter device.
Documentation/w1/slaves/w1_ds2423+47−0
@@ -0,0 +1,47 @@
1+Kernel driver w1_ds2423
2+=======================
3+
4+Supported chips:
5+ * Maxim DS2423 based counter devices.
6+
7+supported family codes:
8+ W1_THERM_DS2423 0x1D
9+
10+Author: Mika Laitio <lamikr@pilppa.org>
11+
12+Description
13+-----------
14+
15+Support is provided through the sysfs w1_slave file. Each opening and
16+read sequence of w1_slave file initiates the read of counters and ram
17+available in DS2423 pages 12 - 15.
18+
19+Result of each page is provided as an ASCII output where each counter
20+value and associated ram buffer is outpputed to own line.
21+
22+Each lines will contain the values of 42 bytes read from the counter and
23+memory page along the crc=YES or NO for indicating whether the read operation
24+was successfull and CRC matched.
25+If the operation was successfull, there is also in the end of each line
26+a counter value expressed as an integer after c=
27+
28+Meaning of 42 bytes represented is following:
29+ - 1 byte from ram page
30+ - 4 bytes for the counter value
31+ - 4 zero bytes
32+ - 2 bytes for crc16 which was calculated from the data read since the previous crc bytes
33+ - 31 remaining bytes from the ram page
34+ - crc=YES/NO indicating whether read was ok and crc matched
35+ - c=<int> current counter value
36+
37+example from the successfull read:
38+00 02 00 00 00 00 00 00 00 6d 38 00 ff ff 00 00 fe ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff crc=YES c=2
39+00 02 00 00 00 00 00 00 00 e0 1f 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff crc=YES c=2
40+00 29 c6 5d 18 00 00 00 00 04 37 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff crc=YES c=408798761
41+00 05 00 00 00 00 00 00 00 8d 39 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff crc=YES c=5
42+
43+example from the read with crc errors:
44+00 02 00 00 00 00 00 00 00 6d 38 00 ff ff 00 00 fe ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff crc=YES c=2
45+00 02 00 00 22 00 00 00 00 e0 1f 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff crc=NO
46+00 e1 61 5d 19 00 00 00 00 df 0b 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff crc=NO
47+00 05 00 00 20 00 00 00 00 8d 39 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff crc=NO
Documentation/workqueue.txt+2−2
@@ -190,9 +190,9 @@ resources, scheduled and executed. · 189 unmodified lines
190190 * Long running CPU intensive workloads which can be better
191191 managed by the system scheduler.
192192
193− WQ_FREEZEABLE
193+ WQ_FREEZABLE
194194
195− A freezeable wq participates in the freeze phase of the system
195+ A freezable wq participates in the freeze phase of the system
196196 suspend operations. Work items on the wq are drained and no
197197 new work item starts execution until thawed.
198198
Documentation/x86/boot.txt+4−3
@@ -600,6 +600,7 @@ Protocol: 2.07+ · 599 unmodified lines
600600 0x00000001 lguest
601601 0x00000002 Xen
602602 0x00000003 Moorestown MID
603+ 0x00000004 CE4100 TV Platform
603604
604605 Field name: hardware_subarch_data
605606 Type: write (subarch-dependent)
@@ -621,9 +622,9 @@ Protocol: 2.08+ · 15 unmodified lines
621622 The payload may be compressed. The format of both the compressed and
622623 uncompressed data should be determined using the standard magic
623624 numbers. The currently supported compression formats are gzip
624− (magic numbers 1F 8B or 1F 9E), bzip2 (magic number 42 5A) and LZMA
625− (magic number 5D 00). The uncompressed payload is currently always ELF
626− (magic number 7F 45 4C 46).
625+ (magic numbers 1F 8B or 1F 9E), bzip2 (magic number 42 5A), LZMA
626+ (magic number 5D 00), and XZ (magic number FD 37). The uncompressed
627+ payload is currently always ELF (magic number 7F 45 4C 46).
627628
628629 Field name: payload_length
629630 Type: read
Documentation/xz.txt+121−0
@@ -0,0 +1,121 @@
1+
2+XZ data compression in Linux
3+============================
4+
5+Introduction
6+
7+ XZ is a general purpose data compression format with high compression
8+ ratio and relatively fast decompression. The primary compression
9+ algorithm (filter) is LZMA2. Additional filters can be used to improve
10+ compression ratio even further. E.g. Branch/Call/Jump (BCJ) filters
11+ improve compression ratio of executable data.
12+
13+ The XZ decompressor in Linux is called XZ Embedded. It supports
14+ the LZMA2 filter and optionally also BCJ filters. CRC32 is supported
15+ for integrity checking. The home page of XZ Embedded is at
16+ <http://tukaani.org/xz/embedded.html>, where you can find the
17+ latest version and also information about using the code outside
18+ the Linux kernel.
19+
20+ For userspace, XZ Utils provide a zlib-like compression library
21+ and a gzip-like command line tool. XZ Utils can be downloaded from
22+ <http://tukaani.org/xz/>.
23+
24+XZ related components in the kernel
25+
26+ The xz_dec module provides XZ decompressor with single-call (buffer
27+ to buffer) and multi-call (stateful) APIs. The usage of the xz_dec
28+ module is documented in include/linux/xz.h.
29+
30+ The xz_dec_test module is for testing xz_dec. xz_dec_test is not
31+ useful unless you are hacking the XZ decompressor. xz_dec_test
32+ allocates a char device major dynamically to which one can write
33+ .xz files from userspace. The decompressed output is thrown away.
34+ Keep an eye on dmesg to see diagnostics printed by xz_dec_test.
35+ See the xz_dec_test source code for the details.
36+
37+ For decompressing the kernel image, initramfs, and initrd, there
38+ is a wrapper function in lib/decompress_unxz.c. Its API is the
39+ same as in other decompress_*.c files, which is defined in
40+ include/linux/decompress/generic.h.
41+
42+ scripts/xz_wrap.sh is a wrapper for the xz command line tool found
43+ from XZ Utils. The wrapper sets compression options to values suitable
44+ for compressing the kernel image.
45+
46+ For kernel makefiles, two commands are provided for use with
47+ $(call if_needed). The kernel image should be compressed with
48+ $(call if_needed,xzkern) which will use a BCJ filter and a big LZMA2
49+ dictionary. It will also append a four-byte trailer containing the
50+ uncompressed size of the file, which is needed by the boot code.
51+ Other things should be compressed with $(call if_needed,xzmisc)
52+ which will use no BCJ filter and 1 MiB LZMA2 dictionary.
53+
54+Notes on compression options
55+
56+ Since the XZ Embedded supports only streams with no integrity check or
57+ CRC32, make sure that you don't use some other integrity check type
58+ when encoding files that are supposed to be decoded by the kernel. With
59+ liblzma, you need to use either LZMA_CHECK_NONE or LZMA_CHECK_CRC32
60+ when encoding. With the xz command line tool, use --check=none or
61+ --check=crc32.
62+
63+ Using CRC32 is strongly recommended unless there is some other layer
64+ which will verify the integrity of the uncompressed data anyway.
65+ Double checking the integrity would probably be waste of CPU cycles.
66+ Note that the headers will always have a CRC32 which will be validated
67+ by the decoder; you can only change the integrity check type (or
68+ disable it) for the actual uncompressed data.
69+
70+ In userspace, LZMA2 is typically used with dictionary sizes of several
71+ megabytes. The decoder needs to have the dictionary in RAM, thus big
72+ dictionaries cannot be used for files that are intended to be decoded
73+ by the kernel. 1 MiB is probably the maximum reasonable dictionary
74+ size for in-kernel use (maybe more is OK for initramfs). The presets
75+ in XZ Utils may not be optimal when creating files for the kernel,
76+ so don't hesitate to use custom settings. Example:
77+
78+ xz --check=crc32 --lzma2=dict=512KiB inputfile
79+
80+ An exception to above dictionary size limitation is when the decoder
81+ is used in single-call mode. Decompressing the kernel itself is an
82+ example of this situation. In single-call mode, the memory usage
83+ doesn't depend on the dictionary size, and it is perfectly fine to
84+ use a big dictionary: for maximum compression, the dictionary should
85+ be at least as big as the uncompressed data itself.
86+
87+Future plans
88+
89+ Creating a limited XZ encoder may be considered if people think it is
90+ useful. LZMA2 is slower to compress than e.g. Deflate or LZO even at
91+ the fastest settings, so it isn't clear if LZMA2 encoder is wanted
92+ into the kernel.
93+
94+ Support for limited random-access reading is planned for the
95+ decompression code. I don't know if it could have any use in the
96+ kernel, but I know that it would be useful in some embedded projects
97+ outside the Linux kernel.
98+
99+Conformance to the .xz file format specification
100+
101+ There are a couple of corner cases where things have been simplified
102+ at expense of detecting errors as early as possible. These should not
103+ matter in practice all, since they don't cause security issues. But
104+ it is good to know this if testing the code e.g. with the test files
105+ from XZ Utils.
106+
107+Reporting bugs
108+
109+ Before reporting a bug, please check that it's not fixed already
110+ at upstream. See <http://tukaani.org/xz/embedded.html> to get the
111+ latest code.
112+
113+ Report bugs to <lasse.collin@tukaani.org> or visit #tukaani on
114+ Freenode and talk to Larhzu. I don't actively read LKML or other
115+ kernel-related mailing lists, so if there's something I should know,
116+ you should email to me personally or use IRC.
117+
118+ Don't bother Igor Pavlov with questions about the XZ implementation
119+ in the kernel or about XZ Utils. While these two implementations
120+ include essential code that is directly based on Igor Pavlov's code,
121+ these implementations aren't maintained nor supported by him.
Documentation/zh_CN/HOWTO+2−2
@@ -347,8 +347,8 @@ bugzilla.kernel.org是Linux内核开发者们用来跟踪内核Bug的网站。 · 346 unmodified lines
347347 最新bug的通知,可以订阅bugme-new邮件列表(只有新的bug报告会被寄到这里)
348348 或者订阅bugme-janitor邮件列表(所有bugzilla的变动都会被寄到这里)。
349349
350− http://lists.osdl.org/mailman/listinfo/bugme-new
351− http://lists.osdl.org/mailman/listinfo/bugme-janitors
350+ https://lists.linux-foundation.org/mailman/listinfo/bugme-new
351+ https://lists.linux-foundation.org/mailman/listinfo/bugme-janitors
352352
353353
354354 邮件列表
Documentation/zh_CN/SubmittingDrivers+1−1
@@ -61,7 +61,7 @@ Linux 2.4: · 60 unmodified lines
6161 Linux 2.6:
6262 除了遵循和 2.4 版内核同样的规则外,你还需要在 linux-kernel 邮件
6363 列表上跟踪最新的 API 变化。向 Linux 2.6 内核提交驱动的顶级联系人
64− 是 Andrew Morton <akpm@osdl.org>。
64+ 是 Andrew Morton <akpm@linux-foundation.org>。
6565
6666 决定设备驱动能否被接受的条件
6767 ----------------------------
MAINTAINERS+332−88
@@ -162,13 +162,12 @@ L: linux-serial@vger.kernel.org · 161 unmodified lines
162162 W: http://serial.sourceforge.net
163163 S: Maintained
164164 T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git
165−F: drivers/serial/8250*
165+F: drivers/tty/serial/8250*
166166 F: include/linux/serial_8250.h
167167
168168 8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.]
169−M: Paul Gortmaker <p_gortmaker@yahoo.com>
170169 L: netdev@vger.kernel.org
171−S: Maintained
170+S: Orphan / Obsolete
172171 F: drivers/net/*8390*
173172 F: drivers/net/ax88796.c
174173
@@ -286,6 +285,41 @@ L: linux-parisc@vger.kernel.org · 111 unmodified lines
286285 S: Maintained
287286 F: sound/pci/ad1889.*
288287
288+AD525X ANALOG DEVICES DIGITAL POTENTIOMETERS DRIVER
289+M: Michael Hennerich <michael.hennerich@analog.com>
290+L: device-driver-devel@blackfin.uclinux.org
291+W: http://wiki-analog.com/AD5254
292+S: Supported
293+F: drivers/misc/ad525x_dpot.c
294+
295+AD5398 CURRENT REGULATOR DRIVER (AD5398/AD5821)
296+M: Michael Hennerich <michael.hennerich@analog.com>
297+L: device-driver-devel@blackfin.uclinux.org
298+W: http://wiki-analog.com/AD5398
299+S: Supported
300+F: drivers/regulator/ad5398.c
301+
302+AD714X CAPACITANCE TOUCH SENSOR DRIVER (AD7142/3/7/8/7A)
303+M: Michael Hennerich <michael.hennerich@analog.com>
304+L: device-driver-devel@blackfin.uclinux.org
305+W: http://wiki-analog.com/AD7142
306+S: Supported
307+F: drivers/input/misc/ad714x.c
308+
309+AD7877 TOUCHSCREEN DRIVER
310+M: Michael Hennerich <michael.hennerich@analog.com>
311+L: device-driver-devel@blackfin.uclinux.org
312+W: http://wiki-analog.com/AD7877
313+S: Supported
314+F: drivers/input/touchscreen/ad7877.c
315+
316+AD7879 TOUCHSCREEN DRIVER (AD7879/AD7889)
317+M: Michael Hennerich <michael.hennerich@analog.com>
318+L: device-driver-devel@blackfin.uclinux.org
319+W: http://wiki-analog.com/AD7879
320+S: Supported
321+F: drivers/input/touchscreen/ad7879.c
322+
289323 ADM1025 HARDWARE MONITOR DRIVER
290324 M: Jean Delvare <khali@linux-fr.org>
291325 L: lm-sensors@lm-sensors.org
@@ -305,6 +339,32 @@ W: http://linuxwireless.org/ · 13 unmodified lines
305339 S: Orphan
306340 F: drivers/net/wireless/adm8211.*
307341
342+ADP5520 BACKLIGHT DRIVER WITH IO EXPANDER (ADP5520/ADP5501)
343+M: Michael Hennerich <michael.hennerich@analog.com>
344+L: device-driver-devel@blackfin.uclinux.org
345+W: http://wiki-analog.com/ADP5520
346+S: Supported
347+F: drivers/mfd/adp5520.c
348+F: drivers/video/backlight/adp5520_bl.c
349+F: drivers/led/leds-adp5520.c
350+F: drivers/gpio/adp5520-gpio.c
351+F: drivers/input/keyboard/adp5520-keys.c
352+
353+ADP5588 QWERTY KEYPAD AND IO EXPANDER DRIVER (ADP5588/ADP5587)
354+M: Michael Hennerich <michael.hennerich@analog.com>
355+L: device-driver-devel@blackfin.uclinux.org
356+W: http://wiki-analog.com/ADP5588
357+S: Supported
358+F: drivers/input/keyboard/adp5588-keys.c
359+F: drivers/gpio/adp5588-gpio.c
360+
361+ADP8860 BACKLIGHT DRIVER (ADP8860/ADP8861/ADP8863)
362+M: Michael Hennerich <michael.hennerich@analog.com>
363+L: device-driver-devel@blackfin.uclinux.org
364+W: http://wiki-analog.com/ADP8860
365+S: Supported
366+F: drivers/video/backlight/adp8860_bl.c
367+
308368 ADT746X FAN DRIVER
309369 M: Colin Leroy <colin@colino.net>
310370 S: Maintained
@@ -317,6 +377,13 @@ S: Maintained · 6 unmodified lines
317377 F: Documentation/hwmon/adt7475
318378 F: drivers/hwmon/adt7475.c
319379
380+ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
381+M: Michael Hennerich <michael.hennerich@analog.com>
382+L: device-driver-devel@blackfin.uclinux.org
383+W: http://wiki-analog.com/ADXL345
384+S: Supported
385+F: drivers/input/misc/adxl34x.c
386+
320387 ADVANSYS SCSI DRIVER
321388 M: Matthew Wilcox <matthew@wil.cx>
322389 L: linux-scsi@vger.kernel.org
@@ -429,7 +496,6 @@ S: Supported · 106 unmodified lines
429496 F: arch/x86/kernel/microcode_amd.c
430497
431498 AMS (Apple Motion Sensor) DRIVER
432−M: Stelian Pop <stelian@popies.net>
433499 M: Michael Hanselmann <linux-kernel@hansmi.ch>
434500 S: Supported
435501 F: drivers/macintosh/ams/
@@ -441,17 +507,23 @@ L: linux-rdma@vger.kernel.org · 5 unmodified lines
441507 S: Maintained
442508 F: drivers/infiniband/hw/amso1100/
443509
444−ANALOG DEVICES INC ASOC DRIVERS
445−L: uclinux-dist-devel@blackfin.uclinux.org
510+ANALOG DEVICES INC ASOC CODEC DRIVERS
511+L: device-driver-devel@blackfin.uclinux.org
446512 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
447−W: http://blackfin.uclinux.org/
513+W: http://wiki-analog.com/
448514 S: Supported
449−F: sound/soc/blackfin/*
450515 F: sound/soc/codecs/ad1*
451516 F: sound/soc/codecs/adau*
452517 F: sound/soc/codecs/adav*
453518 F: sound/soc/codecs/ssm*
454519
520+ANALOG DEVICES INC ASOC DRIVERS
521+L: uclinux-dist-devel@blackfin.uclinux.org
522+L: alsa-devel@alsa-project.org (moderated for non-subscribers)
523+W: http://blackfin.uclinux.org/
524+S: Supported
525+F: sound/soc/blackfin/*
526+
455527 AOA (Apple Onboard Audio) ALSA DRIVER
456528 M: Johannes Berg <johannes@sipsolutions.net>
457529 L: linuxppc-dev@lists.ozlabs.org
@@ -552,11 +624,15 @@ M: Lennert Buytenhek <kernel@wantstofly.org> · 94 unmodified lines
552624 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
553625 S: Maintained
554626
555−ARM/ATMEL AT91RM9200 ARM ARCHITECTURE
627+ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES
556628 M: Andrew Victor <linux@maxim.org.za>
629+M: Nicolas Ferre <nicolas.ferre@atmel.com>
630+M: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
557631 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
558632 W: http://maxim.org.za/at91_26.html
559−S: Maintained
633+W: http://www.linux4sam.org
634+S: Supported
635+F: arch/arm/mach-at91/
560636
561637 ARM/BCMRING ARM ARCHITECTURE
562638 M: Jiandong Zheng <jdzheng@broadcom.com>
@@ -809,15 +885,15 @@ S: Supported · 246 unmodified lines
809885
810886 ARM/QUALCOMM MSM MACHINE SUPPORT
811887 M: David Brown <davidb@codeaurora.org>
812−M: Daniel Walker <dwalker@codeaurora.org>
888+M: Daniel Walker <dwalker@fifo99.com>
813889 M: Bryan Huntsman <bryanh@codeaurora.org>
814890 L: linux-arm-msm@vger.kernel.org
815891 F: arch/arm/mach-msm/
816892 F: drivers/video/msm/
817893 F: drivers/mmc/host/msm_sdcc.c
818894 F: drivers/mmc/host/msm_sdcc.h
819−F: drivers/serial/msm_serial.h
820−F: drivers/serial/msm_serial.c
895+F: drivers/tty/serial/msm_serial.h
896+F: drivers/tty/serial/msm_serial.c
821897 T: git git://codeaurora.org/quic/kernel/davidb/linux-msm.git
822898 S: Maintained
823899
@@ -902,6 +978,8 @@ S: Maintained · 78 unmodified lines
902978 F: arch/arm/plat-samsung/
903979 F: arch/arm/plat-s3c24xx/
904980 F: arch/arm/plat-s5p/
981+F: drivers/*/*s3c2410*
982+F: drivers/*/*/*s3c2410*
905983
906984 ARM/S3C2410 ARM ARCHITECTURE
907985 M: Ben Dooks <ben-linux@fluff.org>
@@ -1095,6 +1173,12 @@ S: Supported · 187 unmodified lines
10951173 F: Documentation/aoe/
10961174 F: drivers/block/aoe/
10971175
1176+ATHEROS ATH GENERIC UTILITIES
1177+M: "Luis R. Rodriguez" <lrodriguez@atheros.com>
1178+L: linux-wireless@vger.kernel.org
1179+S: Supported
1180+F: drivers/net/wireless/ath/*
1181+
10981182 ATHEROS ATH5K WIRELESS DRIVER
10991183 M: Jiri Slaby <jirislaby@gmail.com>
11001184 M: Nick Kossifidis <mickflemm@gmail.com>
@@ -1178,7 +1262,7 @@ F: drivers/mmc/host/atmel-mci-regs.h · 77 unmodified lines
11781262 ATMEL AT91 / AT32 SERIAL DRIVER
11791263 M: Nicolas Ferre <nicolas.ferre@atmel.com>
11801264 S: Supported
1181−F: drivers/serial/atmel_serial.c
1265+F: drivers/tty/serial/atmel_serial.c
11821266
11831267 ATMEL LCDFB DRIVER
11841268 M: Nicolas Ferre <nicolas.ferre@atmel.com>
@@ -1273,6 +1357,15 @@ S: Maintained · 88 unmodified lines
12731357 F: drivers/video/backlight/
12741358 F: include/linux/backlight.h
12751359
1360+BATMAN ADVANCED
1361+M: Marek Lindner <lindner_marek@yahoo.de>
1362+M: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
1363+M: Sven Eckelmann <sven@narfation.org>
1364+L: b.a.t.m.a.n@lists.open-mesh.org
1365+W: http://www.open-mesh.org/
1366+S: Maintained
1367+F: net/batman-adv/
1368+
12761369 BAYCOM/HDLCDRV DRIVERS FOR AX.25
12771370 M: Thomas Sailer <t.sailer@alumni.ethz.ch>
12781371 L: linux-hams@vger.kernel.org
@@ -1325,7 +1418,7 @@ M: Sonic Zhang <sonic.zhang@analog.com> · 46 unmodified lines
13251418 L: uclinux-dist-devel@blackfin.uclinux.org
13261419 W: http://blackfin.uclinux.org
13271420 S: Supported
1328−F: drivers/serial/bfin_5xx.c
1421+F: drivers/tty/serial/bfin_5xx.c
13291422
13301423 BLACKFIN WATCHDOG DRIVER
13311424 M: Mike Frysinger <vapier.adi@gmail.com>
@@ -1409,7 +1502,9 @@ F: drivers/net/tg3.* · 77 unmodified lines
14091502 BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
14101503 M: Brett Rudley <brudley@broadcom.com>
14111504 M: Henry Ptasinski <henryp@broadcom.com>
1412−M: Nohee Ko <noheek@broadcom.com>
1505+M: Dowan Kim <dowan@broadcom.com>
1506+M: Roland Vossen <rvossen@broadcom.com>
1507+M: Arend van Spriel <arend@broadcom.com>
14131508 L: linux-wireless@vger.kernel.org
14141509 S: Supported
14151510 F: drivers/staging/brcm80211/
@@ -1434,6 +1529,14 @@ S: Supported · 18 unmodified lines
14341529 F: block/bsg.c
14351530 F: include/linux/bsg.h
14361531
1532+BT87X AUDIO DRIVER
1533+M: Clemens Ladisch <clemens@ladisch.de>
1534+L: alsa-devel@alsa-project.org (moderated for non-subscribers)
1535+T: git git://git.alsa-project.org/alsa-kernel.git
1536+S: Maintained
1537+F: Documentation/sound/alsa/Bt87x.txt
1538+F: sound/pci/bt87x.c
1539+
14371540 BT8XXGPIO DRIVER
14381541 M: Michael Buesch <mb@bu3sch.de>
14391542 W: http://bu3sch.de/btgpio.php
@@ -1459,6 +1562,13 @@ S: Maintained · 19 unmodified lines
14591562 F: Documentation/video4linux/bttv/
14601563 F: drivers/media/video/bt8xx/bttv*
14611564
1565+C-MEDIA CMI8788 DRIVER
1566+M: Clemens Ladisch <clemens@ladisch.de>
1567+L: alsa-devel@alsa-project.org (moderated for non-subscribers)
1568+T: git git://git.alsa-project.org/alsa-kernel.git
1569+S: Maintained
1570+F: sound/pci/oxygen/
1571+
14621572 CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
14631573 M: David Howells <dhowells@redhat.com>
14641574 L: linux-cachefs@redhat.com
@@ -1695,7 +1805,8 @@ S: Maintained · 230 unmodified lines
16951805 F: drivers/usb/atm/cxacru.c
16961806
16971807 CONFIGFS
1698−M: Joel Becker <joel.becker@oracle.com>
1808+M: Joel Becker <jlbec@evilplan.org>
1809+T: git git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/configfs.git
16991810 S: Supported
17001811 F: fs/configfs/
17011812 F: include/linux/configfs.h
@@ -1772,7 +1883,7 @@ L: linux-cris-kernel@axis.com · 70 unmodified lines
17721883 W: http://developer.axis.com
17731884 S: Maintained
17741885 F: arch/cris/
1775−F: drivers/serial/crisv10.*
1886+F: drivers/tty/serial/crisv10.*
17761887
17771888 CRYPTO API
17781889 M: Herbert Xu <herbert@gondor.apana.org.au>
@@ -1917,7 +2028,7 @@ F: drivers/scsi/dc395x.* · 138 unmodified lines
19172028 DCCP PROTOCOL
19182029 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
19192030 L: dccp@vger.kernel.org
1920−W: http://linux-net.osdl.org/index.php/DCCP
2031+W: http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp
19212032 S: Maintained
19222033 F: include/linux/dccp.h
19232034 F: include/linux/tfrc.h
@@ -2015,6 +2126,7 @@ S: Supported · 91 unmodified lines
20152126 F: fs/dlm/
20162127
20172128 DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
2129+M: Vinod Koul <vinod.koul@intel.com>
20182130 M: Dan Williams <dan.j.williams@intel.com>
20192131 S: Supported
20202132 F: drivers/dma/
@@ -2111,7 +2223,7 @@ F: drivers/net/wan/dscc4.c · 90 unmodified lines
21112223 DZ DECSTATION DZ11 SERIAL DRIVER
21122224 M: "Maciej W. Rozycki" <macro@linux-mips.org>
21132225 S: Maintained
2114−F: drivers/serial/dz.*
2226+F: drivers/tty/serial/dz.*
21152227
21162228 EATA-DMA SCSI DRIVER
21172229 M: Michael Neuffer <mike@i-Connect.Net>
@@ -2249,6 +2361,13 @@ W: bluesmoke.sourceforge.net · 131 unmodified lines
22492361 S: Maintained
22502362 F: drivers/edac/r82600_edac.c
22512363
2364+EDIROL UA-101/UA-1000 DRIVER
2365+M: Clemens Ladisch <clemens@ladisch.de>
2366+L: alsa-devel@alsa-project.org (moderated for non-subscribers)
2367+T: git git://git.alsa-project.org/alsa-kernel.git
2368+S: Maintained
2369+F: sound/usb/misc/ua101.c
2370+
22522371 EEEPC LAPTOP EXTRAS DRIVER
22532372 M: Corentin Chary <corentincj@iksaif.net>
22542373 L: acpi4asus-user@lists.sourceforge.net
@@ -2257,6 +2376,14 @@ W: http://acpi4asus.sf.net · 2 unmodified lines
22572376 S: Maintained
22582377 F: drivers/platform/x86/eeepc-laptop.c
22592378
2379+EEEPC WMI EXTRAS DRIVER
2380+M: Corentin Chary <corentincj@iksaif.net>
2381+L: acpi4asus-user@lists.sourceforge.net
2382+L: platform-driver-x86@vger.kernel.org
2383+W: http://acpi4asus.sf.net
2384+S: Maintained
2385+F: drivers/platform/x86/eeepc-wmi.c
2386+
22602387 EFIFB FRAMEBUFFER DRIVER
22612388 L: linux-fbdev@vger.kernel.org
22622389 M: Peter Jones <pjones@redhat.com>
@@ -2331,7 +2458,7 @@ ETHERNET BRIDGE · 68 unmodified lines
23312458 M: Stephen Hemminger <shemminger@linux-foundation.org>
23322459 L: bridge@lists.linux-foundation.org
23332460 L: netdev@vger.kernel.org
2334−W: http://www.linux-foundation.org/en/Net:Bridge
2461+W: http://www.linuxfoundation.org/en/Net:Bridge
23352462 S: Maintained
23362463 F: include/linux/netfilter_bridge/
23372464 F: net/bridge/
@@ -2523,7 +2650,7 @@ FREESCALE QUICC ENGINE UCC UART DRIVER · 185 unmodified lines
25232650 M: Timur Tabi <timur@freescale.com>
25242651 L: linuxppc-dev@lists.ozlabs.org
25252652 S: Supported
2526−F: drivers/serial/ucc_uart.c
2653+F: drivers/tty/serial/ucc_uart.c
25272654
25282655 FREESCALE SOC SOUND DRIVERS
25292656 M: Timur Tabi <timur@freescale.com>
@@ -2594,6 +2721,14 @@ S: Supported · 64 unmodified lines
25942721 F: drivers/i2c/busses/i2c-gpio.c
25952722 F: include/linux/i2c-gpio.h
25962723
2724+GENERIC GPIO I2C MULTIPLEXER DRIVER
2725+M: Peter Korsgaard <peter.korsgaard@barco.com>
2726+L: linux-i2c@vger.kernel.org
2727+S: Supported
2728+F: drivers/i2c/muxes/gpio-i2cmux.c
2729+F: include/linux/gpio-i2cmux.h
2730+F: Documentation/i2c/muxes/gpio-i2cmux
2731+
25972732 GENERIC HDLC (WAN) DRIVERS
25982733 M: Krzysztof Halasa <khc@pm.waw.pl>
25992734 W: http://www.kernel.org/pub/linux/utils/net/hdlc/
@@ -2640,6 +2775,15 @@ F: Documentation/isdn/README.gigaset · 40 unmodified lines
26402775 F: drivers/isdn/gigaset/
26412776 F: include/linux/gigaset_dev.h
26422777
2778+GPIO SUBSYSTEM
2779+M: Grant Likely <grant.likely@secretlab.ca>
2780+L: linux-kernel@vger.kernel.org
2781+S: Maintained
2782+T: git git://git.secretlab.ca/git/linux-2.6.git
2783+F: Documentation/gpio/gpio.txt
2784+F: drivers/gpio/
2785+F: include/linux/gpio*
2786+
26432787 GRETH 10/100/1G Ethernet MAC device driver
26442788 M: Kristoffer Glembo <kristoffer@gaisler.com>
26452789 L: netdev@vger.kernel.org
@@ -2729,7 +2873,6 @@ M: Guenter Roeck <guenter.roeck@ericsson.com> · 83 unmodified lines
27292873 L: lm-sensors@lm-sensors.org
27302874 W: http://www.lm-sensors.org/
27312875 T: quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-hwmon/
2732−T: quilt kernel.org/pub/linux/kernel/people/groeck/linux-staging/
27332876 T: git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
27342877 S: Maintained
27352878 F: Documentation/hwmon/
@@ -2812,6 +2955,10 @@ M: Thomas Gleixner <tglx@linutronix.de> · 76 unmodified lines
28122955 S: Maintained
28132956 F: Documentation/timers/
28142957 F: kernel/hrtimer.c
2958+F: kernel/time/clockevents.c
2959+F: kernel/time/tick*.*
2960+F: kernel/time/timer_*.c
2961+F include/linux/clockevents.h
28152962 F: include/linux/hrtimer.h
28162963
28172964 HIGH-SPEED SCC DRIVER FOR AX.25
@@ -3003,6 +3150,12 @@ S: Maintained · 185 unmodified lines
30033150 F: net/ieee802154/
30043151 F: drivers/ieee802154/
30053152
3153+IKANOS/ADI EAGLE ADSL USB DRIVER
3154+M: Matthieu Castet <castet.matthieu@free.fr>
3155+M: Stanislaw Gruszka <stf_xl@wp.pl>
3156+S: Maintained
3157+F: drivers/usb/atm/ueagle-atm.c
3158+
30063159 INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
30073160 M: Mimi Zohar <zohar@us.ibm.com>
30083161 S: Supported
@@ -3014,7 +3167,7 @@ S: Orphan · 5 unmodified lines
30143167 F: drivers/video/imsttfb.c
30153168
30163169 INFINIBAND SUBSYSTEM
3017−M: Roland Dreier <rolandd@cisco.com>
3170+M: Roland Dreier <roland@kernel.org>
30183171 M: Sean Hefty <sean.hefty@intel.com>
30193172 M: Hal Rosenstock <hal.rosenstock@gmail.com>
30203173 L: linux-rdma@vger.kernel.org
@@ -3047,8 +3200,10 @@ F: drivers/input/ · 26 unmodified lines
30473200 INPUT MULTITOUCH (MT) PROTOCOL
30483201 M: Henrik Rydberg <rydberg@euromail.se>
30493202 L: linux-input@vger.kernel.org
3203+T: git git://git.kernel.org/pub/scm/linux/kernel/git/rydberg/input-mt.git
30503204 S: Maintained
30513205 F: Documentation/input/multi-touch-protocol.txt
3206+F: drivers/input/input-mt.c
30523207 K: \b(ABS|SYN)_MT_
30533208
30543209 INTEL IDLE DRIVER
@@ -3135,6 +3290,8 @@ M: Alex Duyck <alexander.h.duyck@intel.com> · 80 unmodified lines
31353290 M: John Ronciak <john.ronciak@intel.com>
31363291 L: e1000-devel@lists.sourceforge.net
31373292 W: http://e1000.sourceforge.net/
3293+T: git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-2.6.git
3294+T: git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next-2.6.git
31383295 S: Supported
31393296 F: Documentation/networking/e100.txt
31403297 F: Documentation/networking/e1000.txt
@@ -3187,7 +3344,6 @@ F: drivers/net/wimax/i2400m/ · 46 unmodified lines
31873344 F: include/linux/wimax/i2400m.h
31883345
31893346 INTEL WIRELESS WIFI LINK (iwlwifi)
3190−M: Reinette Chatre <reinette.chatre@intel.com>
31913347 M: Wey-Yi Guy <wey-yi.w.guy@intel.com>
31923348 M: Intel Linux Wireless <ilw@linux.intel.com>
31933349 L: linux-wireless@vger.kernel.org
@@ -3214,7 +3370,7 @@ IOC3 SERIAL DRIVER · 20 unmodified lines
32143370 M: Pat Gefre <pfg@sgi.com>
32153371 L: linux-serial@vger.kernel.org
32163372 S: Maintained
3217−F: drivers/serial/ioc3_serial.c
3373+F: drivers/tty/serial/ioc3_serial.c
32183374
32193375 IP MASQUERADING
32203376 M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
@@ -3391,7 +3547,14 @@ JSM Neo PCI based serial card · 170 unmodified lines
33913547 M: Breno Leitao <leitao@linux.vnet.ibm.com>
33923548 L: linux-serial@vger.kernel.org
33933549 S: Maintained
3394−F: drivers/serial/jsm/
3550+F: drivers/tty/serial/jsm/
3551+
3552+K10TEMP HARDWARE MONITORING DRIVER
3553+M: Clemens Ladisch <clemens@ladisch.de>
3554+L: lm-sensors@lm-sensors.org
3555+S: Maintained
3556+F: Documentation/hwmon/k10temp
3557+F: drivers/hwmon/k10temp.c
33953558
33963559 K8TEMP HARDWARE MONITORING DRIVER
33973560 M: Rudolf Marek <r.marek@assembler.cz>
@@ -3527,6 +3690,28 @@ F: include/linux/key-type.h · 129 unmodified lines
35273690 F: include/keys/
35283691 F: security/keys/
35293692
3693+KEYS-TRUSTED
3694+M: David Safford <safford@watson.ibm.com>
3695+M: Mimi Zohar <zohar@us.ibm.com>
3696+L: linux-security-module@vger.kernel.org
3697+L: keyrings@linux-nfs.org
3698+S: Supported
3699+F: Documentation/keys-trusted-encrypted.txt
3700+F: include/keys/trusted-type.h
3701+F: security/keys/trusted.c
3702+F: security/keys/trusted.h
3703+
3704+KEYS-ENCRYPTED
3705+M: Mimi Zohar <zohar@us.ibm.com>
3706+M: David Safford <safford@watson.ibm.com>
3707+L: linux-security-module@vger.kernel.org
3708+L: keyrings@linux-nfs.org
3709+S: Supported
3710+F: Documentation/keys-trusted-encrypted.txt
3711+F: include/keys/encrypted-type.h
3712+F: security/keys/encrypted.c
3713+F: security/keys/encrypted.h
3714+
35303715 KGDB / KDB /debug_core
35313716 M: Jason Wessel <jason.wessel@windriver.com>
35323717 W: http://kgdb.wiki.kernel.org/
@@ -3534,14 +3719,14 @@ L: kgdb-bugreport@lists.sourceforge.net · 1 unmodified line
35343719 S: Maintained
35353720 F: Documentation/DocBook/kgdb.tmpl
35363721 F: drivers/misc/kgdbts.c
3537−F: drivers/serial/kgdboc.c
3722+F: drivers/tty/serial/kgdboc.c
35383723 F: include/linux/kdb.h
35393724 F: include/linux/kgdb.h
35403725 F: kernel/debug/
35413726
35423727 KMEMCHECK
35433728 M: Vegard Nossum <vegardno@ifi.uio.no>
3544−M: Pekka Enberg <penberg@cs.helsinki.fi>
3729+M: Pekka Enberg <penberg@kernel.org>
35453730 S: Maintained
35463731 F: Documentation/kmemcheck.txt
35473732 F: arch/x86/include/asm/kmemcheck.h
@@ -3978,9 +4163,8 @@ F: include/linux/module.h · 430 unmodified lines
39784163 F: kernel/module.c
39794164
39804165 MOTION EYE VAIO PICTUREBOOK CAMERA DRIVER
3981−M: Stelian Pop <stelian@popies.net>
39824166 W: http://popies.net/meye/
3983−S: Maintained
4167+S: Orphan
39844168 F: Documentation/video4linux/meye.txt
39854169 F: drivers/media/video/meye.*
39864170 F: include/linux/meye.h
@@ -4246,6 +4430,7 @@ NILFS2 FILESYSTEM · 259 unmodified lines
42464430 M: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp>
42474431 L: linux-nilfs@vger.kernel.org
42484432 W: http://www.nilfs.org/en/
4433+T: git git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2.git
42494434 S: Supported
42504435 F: Documentation/filesystems/nilfs2.txt
42514436 F: fs/nilfs2/
@@ -4267,11 +4452,11 @@ F: Documentation/scsi/NinjaSCSI.txt · 15 unmodified lines
42674452 F: drivers/scsi/nsp32*
42684453
42694454 NTFS FILESYSTEM
4270−M: Anton Altaparmakov <aia21@cantab.net>
4455+M: Anton Altaparmakov <anton@tuxera.com>
42714456 L: linux-ntfs-dev@lists.sourceforge.net
4272−W: http://www.linux-ntfs.org/
4457+W: http://www.tuxera.com/
42734458 T: git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git
4274−S: Maintained
4459+S: Supported
42754460 F: Documentation/filesystems/ntfs.txt
42764461 F: fs/ntfs/
42774462
@@ -4343,6 +4528,20 @@ M: Deepak Saxena <dsaxena@plexity.net> · 65 unmodified lines
43434528 S: Maintained
43444529 F: drivers/char/hw_random/omap-rng.c
43454530
4531+OMAP HWMOD SUPPORT
4532+M: Benoît Cousson <b-cousson@ti.com>
4533+M: Paul Walmsley <paul@pwsan.com>
4534+L: linux-omap@vger.kernel.org
4535+S: Maintained
4536+F: arch/arm/mach-omap2/omap_hwmod.c
4537+F: arch/arm/plat-omap/include/plat/omap_hwmod.h
4538+
4539+OMAP HWMOD DATA FOR OMAP4-BASED DEVICES
4540+M: Benoît Cousson <b-cousson@ti.com>
4541+L: linux-omap@vger.kernel.org
4542+S: Maintained
4543+F: arch/arm/mach-omap2/omap_hwmod_44xx_data.c
4544+
43464545 OMAP USB SUPPORT
43474546 M: Felipe Balbi <balbi@ti.com>
43484547 M: David Brownell <dbrownell@users.sourceforge.net>
@@ -4401,7 +4600,7 @@ F: drivers/i2c/busses/i2c-ocores.c · 52 unmodified lines
44014600
44024601 OPEN FIRMWARE AND FLATTENED DEVICE TREE
44034602 M: Grant Likely <grant.likely@secretlab.ca>
4404−L: devicetree-discuss@lists.ozlabs.org
4603+L: devicetree-discuss@lists.ozlabs.org (moderated for non-subscribers)
44054604 W: http://fdt.secretlab.ca
44064605 T: git git://git.secretlab.ca/git/linux-2.6.git
44074606 S: Maintained
@@ -4409,6 +4608,13 @@ F: drivers/of · 1 unmodified line
44094608 F: include/linux/of*.h
44104609 K: of_get_property
44114610
4611+OPL4 DRIVER
4612+M: Clemens Ladisch <clemens@ladisch.de>
4613+L: alsa-devel@alsa-project.org (moderated for non-subscribers)
4614+T: git git://git.alsa-project.org/alsa-kernel.git
4615+S: Maintained
4616+F: sound/drivers/opl4/
4617+
44124618 OPROFILE
44134619 M: Robert Richter <robert.richter@amd.com>
44144620 L: oprofile-list@lists.sf.net
@@ -4420,7 +4626,7 @@ F: include/linux/oprofile.h · 5 unmodified lines
44204626
44214627 ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
44224628 M: Mark Fasheh <mfasheh@suse.com>
4423−M: Joel Becker <joel.becker@oracle.com>
4629+M: Joel Becker <jlbec@evilplan.org>
44244630 L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
44254631 W: http://oss.oracle.com/projects/ocfs2/
44264632 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2.git
@@ -4505,7 +4711,7 @@ M: Jeremy Fitzhardinge <jeremy@xensource.com> · 78 unmodified lines
45054711 M: Chris Wright <chrisw@sous-sol.org>
45064712 M: Alok Kataria <akataria@vmware.com>
45074713 M: Rusty Russell <rusty@rustcorp.com.au>
4508−L: virtualization@lists.osdl.org
4714+L: virtualization@lists.linux-foundation.org
45094715 S: Supported
45104716 F: Documentation/ia64/paravirt_ops.txt
45114717 F: arch/*/kernel/paravirt*
@@ -4617,6 +4823,16 @@ S: Maintained · 105 unmodified lines
46174823 F: crypto/pcrypt.c
46184824 F: include/crypto/pcrypt.h
46194825
4826+PER-CPU MEMORY ALLOCATOR
4827+M: Tejun Heo <tj@kernel.org>
4828+M: Christoph Lameter <cl@linux-foundation.org>
4829+L: linux-kernel@vger.kernel.org
4830+T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git
4831+S: Maintained
4832+F: include/linux/percpu*.h
4833+F: mm/percpu*.c
4834+F: arch/*/include/asm/percpu.h
4835+
46204836 PER-TASK DELAY ACCOUNTING
46214837 M: Balbir Singh <balbir@linux.vnet.ibm.com>
46224838 S: Maintained
@@ -4627,7 +4843,7 @@ PERFORMANCE EVENTS SUBSYSTEM · 4 unmodified lines
46274843 M: Peter Zijlstra <a.p.zijlstra@chello.nl>
46284844 M: Paul Mackerras <paulus@samba.org>
46294845 M: Ingo Molnar <mingo@elte.hu>
4630−M: Arnaldo Carvalho de Melo <acme@redhat.com>
4846+M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
46314847 S: Supported
46324848 F: kernel/perf_event*.c
46334849 F: include/linux/perf_event.h
@@ -4993,11 +5209,6 @@ F: kernel/rcu* · 359 unmodified lines
49935209 F: kernel/srcu*
49945210 X: kernel/rcutorture.c
49955211
4996−REAL TIME CLOCK DRIVER (LEGACY)
4997−M: Paul Gortmaker <p_gortmaker@yahoo.com>
4998−S: Maintained
4999−F: drivers/char/rtc.c
5000−
50015212 REAL TIME CLOCK (RTC) SUBSYSTEM
50025213 M: Alessandro Zummo <a.zummo@towertech.it>
50035214 L: rtc-linux@googlegroups.com
@@ -5052,7 +5263,7 @@ L: linux-wireless@vger.kernel.org · 48 unmodified lines
50525263 W: http://linuxwireless.org/
50535264 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
50545265 S: Maintained
5055−F: drivers/net/wireless/rtl818x/rtl8180*
5266+F: drivers/net/wireless/rtl818x/rtl8180/
50565267
50575268 RTL8187 WIRELESS DRIVER
50585269 M: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
@@ -5062,7 +5273,17 @@ L: linux-wireless@vger.kernel.org · 3 unmodified lines
50625273 W: http://linuxwireless.org/
50635274 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
50645275 S: Maintained
5065−F: drivers/net/wireless/rtl818x/rtl8187*
5276+F: drivers/net/wireless/rtl818x/rtl8187/
5277+
5278+RTL8192CE WIRELESS DRIVER
5279+M: Larry Finger <Larry.Finger@lwfinger.net>
5280+M: Chaoming Li <chaoming_li@realsil.com.cn>
5281+L: linux-wireless@vger.kernel.org
5282+W: http://linuxwireless.org/
5283+T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
5284+S: Maintained
5285+F: drivers/net/wireless/rtlwifi/
5286+F: drivers/net/wireless/rtlwifi/rtl8192ce/
50665287
50675288 S3 SAVAGE FRAMEBUFFER DRIVER
50685289 M: Antonino Daplas <adaplas@gmail.com>
@@ -5093,8 +5314,7 @@ S: Supported · 24 unmodified lines
50935314 F: drivers/s390/net/
50945315
50955316 S390 ZCRYPT DRIVER
5096−M: Felix Beck <felix.beck@de.ibm.com>
5097−M: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
5317+M: Holger Dengler <hd@linux.vnet.ibm.com>
50985318 M: linux390@de.ibm.com
50995319 L: linux-s390@vger.kernel.org
51005320 W: http://www.ibm.com/developerworks/linux/linux390/
@@ -5140,7 +5360,19 @@ SAMSUNG AUDIO (ASoC) DRIVERS · 39 unmodified lines
51405360 M: Jassi Brar <jassi.brar@samsung.com>
51415361 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
51425362 S: Supported
5143−F: sound/soc/s3c24xx
5363+F: sound/soc/samsung
5364+
5365+TIMEKEEPING, NTP
5366+M: John Stultz <johnstul@us.ibm.com>
5367+M: Thomas Gleixner <tglx@linutronix.de>
5368+S: Supported
5369+F: include/linux/clocksource.h
5370+F: include/linux/time.h
5371+F: include/linux/timex.h
5372+F: include/linux/timekeeping.h
5373+F: kernel/time/clocksource.c
5374+F: kernel/time/time*.c
5375+F: kernel/time/ntp.c
51445376
51455377 TLG2300 VIDEO4LINUX-2 DRIVER
51465378 M: Huang Shijie <shijie8@gmail.com>
@@ -5328,12 +5560,11 @@ S: Supported · 181 unmodified lines
53285560 F: drivers/scsi/be2iscsi/
53295561
53305562 SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
5331−M: Sathya Perla <sathyap@serverengines.com>
5332−M: Subbu Seetharaman <subbus@serverengines.com>
5333−M: Sarveshwar Bandi <sarveshwarb@serverengines.com>
5334−M: Ajit Khaparde <ajitk@serverengines.com>
5563+M: Sathya Perla <sathya.perla@emulex.com>
5564+M: Subbu Seetharaman <subbu.seetharaman@emulex.com>
5565+M: Ajit Khaparde <ajit.khaparde@emulex.com>
53355566 L: netdev@vger.kernel.org
5336−W: http://www.serverengines.com
5567+W: http://www.emulex.com
53375568 S: Supported
53385569 F: drivers/net/benet/
53395570
@@ -5355,7 +5586,7 @@ M: Pat Gefre <pfg@sgi.com> · 15 unmodified lines
53555586 L: linux-ia64@vger.kernel.org
53565587 S: Supported
53575588 F: Documentation/ia64/serial.txt
5358−F: drivers/serial/ioc?_serial.c
5589+F: drivers/tty/serial/ioc?_serial.c
53595590 F: include/linux/ioc?.h
53605591
53615592 SGI VISUAL WORKSTATION 320 AND 540
@@ -5377,7 +5608,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) · 15 unmodified lines
53775608 S: Maintained
53785609 F: Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen
53795610 F: arch/arm/mach-lh7a40x/
5380−F: drivers/serial/serial_lh7a40x.c
5611+F: drivers/tty/serial/serial_lh7a40x.c
53815612 F: drivers/usb/gadget/lh7a40*
53825613 F: drivers/usb/host/ohci-lh7a40*
53835614
@@ -5393,18 +5624,20 @@ F: include/linux/sfi*.h · 9 unmodified lines
53935624
53945625 SIMTEC EB110ATX (Chalice CATS)
53955626 P: Ben Dooks
5396−M: Vincent Sanders <support@simtec.co.uk>
5627+P: Vincent Sanders <vince@simtec.co.uk>
5628+M: Simtec Linux Team <linux@simtec.co.uk>
53975629 W: http://www.simtec.co.uk/products/EB110ATX/
53985630 S: Supported
53995631
54005632 SIMTEC EB2410ITX (BAST)
54015633 P: Ben Dooks
5402−M: Vincent Sanders <support@simtec.co.uk>
5634+P: Vincent Sanders <vince@simtec.co.uk>
5635+M: Simtec Linux Team <linux@simtec.co.uk>
54035636 W: http://www.simtec.co.uk/products/EB2410ITX/
54045637 S: Supported
5405−F: arch/arm/mach-s3c2410/
5406−F: drivers/*/*s3c2410*
5407−F: drivers/*/*/*s3c2410*
5638+F: arch/arm/mach-s3c2410/mach-bast.c
5639+F: arch/arm/mach-s3c2410/bast-ide.c
5640+F: arch/arm/mach-s3c2410/bast-irq.c
54085641
54095642 TI DAVINCI MACHINE SUPPORT
54105643 M: Kevin Hilman <khilman@deeprootsystems.com>
@@ -5456,7 +5689,7 @@ F: drivers/net/sky2.* · 45 unmodified lines
54565689
54575690 SLAB ALLOCATOR
54585691 M: Christoph Lameter <cl@linux-foundation.org>
5459−M: Pekka Enberg <penberg@cs.helsinki.fi>
5692+M: Pekka Enberg <penberg@kernel.org>
54605693 M: Matt Mackall <mpm@selenic.com>
54615694 L: linux-mm@kvack.org
54625695 S: Maintained
@@ -5597,14 +5830,14 @@ L: sparclinux@vger.kernel.org · 134 unmodified lines
55975830 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git
55985831 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git
55995832 S: Maintained
5600−F: drivers/serial/suncore.c
5601−F: drivers/serial/suncore.h
5602−F: drivers/serial/sunhv.c
5603−F: drivers/serial/sunsab.c
5604−F: drivers/serial/sunsab.h
5605−F: drivers/serial/sunsu.c
5606−F: drivers/serial/sunzilog.c
5607−F: drivers/serial/sunzilog.h
5833+F: drivers/tty/serial/suncore.c
5834+F: drivers/tty/serial/suncore.h
5835+F: drivers/tty/serial/sunhv.c
5836+F: drivers/tty/serial/sunsab.c
5837+F: drivers/tty/serial/sunsab.h
5838+F: drivers/tty/serial/sunsu.c
5839+F: drivers/tty/serial/sunzilog.c
5840+F: drivers/tty/serial/sunzilog.h
56085841
56095842 SPEAR PLATFORM SUPPORT
56105843 M: Viresh Kumar <viresh.kumar@st.com>
@@ -5712,12 +5945,6 @@ M: Ion Badulescu <ionut@badula.org> · 101 unmodified lines
57125945 S: Odd Fixes
57135946 F: drivers/net/starfire*
57145947
5715−STRADIS MPEG-2 DECODER DRIVER
5716−M: Nathan Laredo <laredo@gnu.org>
5717−W: http://www.stradis.com/
5718−S: Maintained
5719−F: drivers/media/video/stradis.c
5720−
57215948 SUN3/3X
57225949 M: Sam Creasey <sammy@sammy.net>
57235950 W: http://sammy.net/sun3/
@@ -5867,7 +6094,8 @@ F: drivers/net/tlan.* · 143 unmodified lines
58676094 TOMOYO SECURITY MODULE
58686095 M: Kentaro Takeda <takedakn@nttdata.co.jp>
58696096 M: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
5870−L: tomoyo-users-en@lists.sourceforge.jp (subscribers-only, for developers and users in English)
6097+L: tomoyo-dev-en@lists.sourceforge.jp (subscribers-only, for developers in English)
6098+L: tomoyo-users-en@lists.sourceforge.jp (subscribers-only, for users in English)
58716099 L: tomoyo-dev@lists.sourceforge.jp (subscribers-only, for developers in Japanese)
58726100 L: tomoyo-users@lists.sourceforge.jp (subscribers-only, for users in Japanese)
58736101 W: http://tomoyo.sourceforge.jp/
@@ -5939,8 +6167,8 @@ TTY LAYER · 65 unmodified lines
59396167 M: Greg Kroah-Hartman <gregkh@suse.de>
59406168 S: Maintained
59416169 T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git
5942−F: drivers/char/tty_*
5943−F: drivers/serial/serial_core.c
6170+F: drivers/tty/*
6171+F: drivers/tty/serial/serial_core.c
59446172 F: include/linux/serial_core.h
59456173 F: include/linux/serial.h
59466174 F: include/linux/tty.h
@@ -6141,6 +6369,13 @@ S: Maintained · 194 unmodified lines
61416369 W: http://www.one-eyed-alien.net/~mdharm/linux-usb/
61426370 F: drivers/usb/storage/
61436371
6372+USB MIDI DRIVER
6373+M: Clemens Ladisch <clemens@ladisch.de>
6374+L: alsa-devel@alsa-project.org (moderated for non-subscribers)
6375+T: git git://git.alsa-project.org/alsa-kernel.git
6376+S: Maintained
6377+F: sound/usb/midi.*
6378+
61446379 USB OHCI DRIVER
61456380 M: David Brownell <dbrownell@users.sourceforge.net>
61466381 L: linux-usb@vger.kernel.org
@@ -6377,10 +6612,20 @@ S: Maintained · 230 unmodified lines
63776612 F: drivers/char/virtio_console.c
63786613 F: include/linux/virtio_console.h
63796614
6615+VIRTIO CORE, NET AND BLOCK DRIVERS
6616+M: Rusty Russell <rusty@rustcorp.com.au>
6617+M: "Michael S. Tsirkin" <mst@redhat.com>
6618+L: virtualization@lists.linux-foundation.org
6619+S: Maintained
6620+F: drivers/virtio/
6621+F: drivers/net/virtio_net.c
6622+F: drivers/block/virtio_blk.c
6623+F: include/linux/virtio_*.h
6624+
63806625 VIRTIO HOST (VHOST)
63816626 M: "Michael S. Tsirkin" <mst@redhat.com>
63826627 L: kvm@vger.kernel.org
6383−L: virtualization@lists.osdl.org
6628+L: virtualization@lists.linux-foundation.org
63846629 L: netdev@vger.kernel.org
63856630 S: Maintained
63866631 F: drivers/vhost/
@@ -6399,13 +6644,12 @@ F: Documentation/i2c/busses/i2c-viapro · 12 unmodified lines
63996644 F: drivers/i2c/busses/i2c-viapro.c
64006645
64016646 VIA SD/MMC CARD CONTROLLER DRIVER
6402−M: Joseph Chan <JosephChan@via.com.tw>
6647+M: Bruce Chang <brucechang@via.com.tw>
64036648 M: Harald Welte <HaraldWelte@viatech.com>
64046649 S: Maintained
64056650 F: drivers/mmc/host/via-sdmmc.c
64066651
64076652 VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
6408−M: Joseph Chan <JosephChan@via.com.tw>
64096653 M: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
64106654 L: linux-fbdev@vger.kernel.org
64116655 S: Maintained
@@ -6430,7 +6674,7 @@ F: net/8021q/ · 18 unmodified lines
64306674
64316675 VLYNQ BUS
64326676 M: Florian Fainelli <florian@openwrt.org>
6433−L: openwrt-devel@lists.openwrt.org
6677+L: openwrt-devel@lists.openwrt.org (subscribers-only)
64346678 S: Maintained
64356679 F: drivers/vlynq/vlynq.c
64366680 F: include/linux/vlynq.h
@@ -6551,12 +6795,12 @@ S: Maintained · 114 unmodified lines
65516795 F: drivers/net/wireless/wl1251/*
65526796
65536797 WL1271 WIRELESS DRIVER
6554−M: Luciano Coelho <luciano.coelho@nokia.com>
6798+M: Luciano Coelho <coelho@ti.com>
65556799 L: linux-wireless@vger.kernel.org
6556−W: http://wireless.kernel.org
6800+W: http://wireless.kernel.org/en/users/Drivers/wl12xx
65576801 T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
65586802 S: Maintained
6559−F: drivers/net/wireless/wl12xx/wl1271*
6803+F: drivers/net/wireless/wl12xx/
65606804 F: include/linux/wl12xx.h
65616805
65626806 WL3501 WIRELESS PCMCIA CARD DRIVER
@@ -6650,7 +6894,7 @@ XEN HYPERVISOR INTERFACE · 87 unmodified lines
66506894 M: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
66516895 M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
66526896 L: xen-devel@lists.xensource.com (moderated for non-subscribers)
6653−L: virtualization@lists.osdl.org
6897+L: virtualization@lists.linux-foundation.org
66546898 S: Supported
66556899 F: arch/x86/xen/
66566900 F: drivers/*/xen-*front.c
@@ -6679,7 +6923,7 @@ XILINX UARTLITE SERIAL DRIVER · 22 unmodified lines
66796923 M: Peter Korsgaard <jacmet@sunsite.dk>
66806924 L: linux-serial@vger.kernel.org
66816925 S: Maintained
6682−F: drivers/serial/uartlite.c
6926+F: drivers/tty/serial/uartlite.c
66836927
66846928 YAM DRIVER FOR AX.25
66856929 M: Jean-Paul Roubelat <jpr@f6fbb.org>
@@ -6725,7 +6969,7 @@ F: drivers/media/video/zoran/ · 39 unmodified lines
67256969 ZS DECSTATION Z85C30 SERIAL DRIVER
67266970 M: "Maciej W. Rozycki" <macro@linux-mips.org>
67276971 S: Maintained
6728−F: drivers/serial/zs.*
6972+F: drivers/tty/serial/zs.*
67296973
67306974 GRE DEMULTIPLEXER DRIVER
67316975 M: Dmitry Kozlov <xeb@mail.ru>
Makefile+3−2
@@ -1,7 +1,7 @@
11 VERSION = 2
22 PATCHLEVEL = 6
3−SUBLEVEL = 37
4−EXTRAVERSION =
3+SUBLEVEL = 38
4+EXTRAVERSION = -rc6
55 NAME = Flesh-Eating Bats with Fangs
66
77 # *DOCUMENTATION*
@@ -224,6 +224,7 @@ ifeq ($(ARCH),m68knommu) · 216 unmodified lines
224224 endif
225225
226226 KCONFIG_CONFIG ?= .config
227+export KCONFIG_CONFIG
227228
228229 # SHELL used by kbuild
229230 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
arch/Kconfig+3−0
@@ -175,4 +175,7 @@ config HAVE_PERF_EVENTS_NMI · 174 unmodified lines
175175 config HAVE_ARCH_JUMP_LABEL
176176 bool
177177
178+config HAVE_ARCH_MUTEX_CPU_RELAX
179+ bool
180+
178181 source "kernel/gcov/Kconfig"
arch/alpha/Kconfig+3−13
@@ -8,6 +8,9 @@ config ALPHA · 7 unmodified lines
88 select HAVE_IRQ_WORK
99 select HAVE_PERF_EVENTS
1010 select HAVE_DMA_ATTRS
11+ select HAVE_GENERIC_HARDIRQS
12+ select GENERIC_IRQ_PROBE
13+ select AUTO_IRQ_AFFINITY if SMP
1114 help
1215 The Alpha is a 64-bit general-purpose processor designed and
1316 marketed by the Digital Equipment Corporation of blessed memory,
@@ -68,19 +71,6 @@ config GENERIC_IOMAP · 54 unmodified lines
6871 bool
6972 default n
7073
71−config GENERIC_HARDIRQS
72− bool
73− default y
74−
75−config GENERIC_IRQ_PROBE
76− bool
77− default y
78−
79−config AUTO_IRQ_AFFINITY
80− bool
81− depends on SMP
82− default y
83−
8474 source "init/Kconfig"
8575 source "kernel/Kconfig.freezer"
8676
arch/alpha/include/asm/io.h+5−3
@@ -37,8 +37,9 @@ · 36 unmodified lines
3737 */
3838 extern inline void __set_hae(unsigned long new_hae)
3939 {
40− unsigned long flags;
41− local_irq_save(flags);
40+ unsigned long flags = swpipl(IPL_MAX);
41+
42+ barrier();
4243
4344 alpha_mv.hae_cache = new_hae;
4445 *alpha_mv.hae_register = new_hae;
@@ -46,7 +47,8 @@ extern inline void __set_hae(unsigned long new_hae) · 1 unmodified line
4647 /* Re-read to make sure it was written. */
4748 new_hae = *alpha_mv.hae_register;
4849
49− local_irq_restore(flags);
50+ setipl(flags);
51+ barrier();
5052 }
5153
5254 extern inline void set_hae(unsigned long new_hae)
arch/alpha/include/asm/ioctls.h+1−0
@@ -92,6 +92,7 @@ · 91 unmodified lines
9292 #define TIOCGSID 0x5429 /* Return the session ID of FD */
9393 #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
9494 #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
95+#define TIOCGDEV _IOR('T',0x32, unsigned int) /* Get primary device node of /dev/console */
9596 #define TIOCSIG _IOW('T',0x36, int) /* Generate signal on Pty slave */
9697
9798 #define TIOCSERCONFIG 0x5453
arch/alpha/include/asm/mman.h+3−0
@@ -53,6 +53,9 @@ · 52 unmodified lines
5353 #define MADV_MERGEABLE 12 /* KSM may merge identical pages */
5454 #define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */
5555
56+#define MADV_HUGEPAGE 14 /* Worth backing with hugepages */
57+#define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages */
58+
5659 /* compatibility flags */
5760 #define MAP_FILE 0
5861
arch/alpha/include/asm/perf_event.h+0−6
@@ -1,10 +1,4 @@
11 #ifndef __ASM_ALPHA_PERF_EVENT_H
22 #define __ASM_ALPHA_PERF_EVENT_H
33
4−#ifdef CONFIG_PERF_EVENTS
5−extern void init_hw_perf_events(void);
6−#else
7−static inline void init_hw_perf_events(void) { }
8−#endif
9−
104 #endif /* __ASM_ALPHA_PERF_EVENT_H */
arch/alpha/kernel/Makefile+2−2
@@ -3,8 +3,8 @@ · 2 unmodified lines
33 #
44
55 extra-y := head.o vmlinux.lds
6−EXTRA_AFLAGS := $(KBUILD_CFLAGS)
7−EXTRA_CFLAGS := -Werror -Wno-sign-compare
6+asflags-y := $(KBUILD_CFLAGS)
7+ccflags-y := -Werror -Wno-sign-compare
88
99 obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \
1010 irq_alpha.o signal.o setup.o ptrace.o time.o \
arch/alpha/kernel/irq.c+20−11
@@ -44,10 +44,11 @@ static char irq_user_affinity[NR_IRQS]; · 43 unmodified lines
4444
4545 int irq_select_affinity(unsigned int irq)
4646 {
47+ struct irq_desc *desc = irq_to_desc[irq];
4748 static int last_cpu;
4849 int cpu = last_cpu + 1;
4950
50− if (!irq_desc[irq].chip->set_affinity || irq_user_affinity[irq])
51+ if (!desc || !get_irq_desc_chip(desc)->set_affinity || irq_user_affinity[irq])
5152 return 1;
5253
5354 while (!cpu_possible(cpu) ||
@@ -55,8 +56,8 @@ int irq_select_affinity(unsigned int irq) · 1 unmodified line
5556 cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
5657 last_cpu = cpu;
5758
58− cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu));
59− irq_desc[irq].chip->set_affinity(irq, cpumask_of(cpu));
59+ cpumask_copy(desc->affinity, cpumask_of(cpu));
60+ get_irq_desc_chip(desc)->set_affinity(irq, cpumask_of(cpu));
6061 return 0;
6162 }
6263 #endif /* CONFIG_SMP */
@@ -67,6 +68,7 @@ show_interrupts(struct seq_file *p, void *v) · 4 unmodified lines
6768 int j;
6869 int irq = *(loff_t *) v;
6970 struct irqaction * action;
71+ struct irq_desc *desc;
7072 unsigned long flags;
7173
7274 #ifdef CONFIG_SMP
@@ -79,8 +81,13 @@ show_interrupts(struct seq_file *p, void *v) · 6 unmodified lines
7981 #endif
8082
8183 if (irq < ACTUAL_NR_IRQS) {
82− raw_spin_lock_irqsave(&irq_desc[irq].lock, flags);
83− action = irq_desc[irq].action;
84+ desc = irq_to_desc(irq);
85+
86+ if (!desc)
87+ return 0;
88+
89+ raw_spin_lock_irqsave(&desc->lock, flags);
90+ action = desc->action;
8491 if (!action)
8592 goto unlock;
8693 seq_printf(p, "%3d: ", irq);
@@ -90,7 +97,7 @@ show_interrupts(struct seq_file *p, void *v) · 3 unmodified lines
9097 for_each_online_cpu(j)
9198 seq_printf(p, "%10u ", kstat_irqs_cpu(irq, j));
9299 #endif
93− seq_printf(p, " %14s", irq_desc[irq].chip->name);
100+ seq_printf(p, " %14s", get_irq_desc_chip(desc)->name);
94101 seq_printf(p, " %c%s",
95102 (action->flags & IRQF_DISABLED)?'+':' ',
96103 action->name);
@@ -103,7 +110,7 @@ show_interrupts(struct seq_file *p, void *v) · 6 unmodified lines
103110
104111 seq_putc(p, '\n');
105112 unlock:
106− raw_spin_unlock_irqrestore(&irq_desc[irq].lock, flags);
113+ raw_spin_unlock_irqrestore(&desc->lock, flags);
107114 } else if (irq == ACTUAL_NR_IRQS) {
108115 #ifdef CONFIG_SMP
109116 seq_puts(p, "IPI: ");
@@ -142,8 +149,10 @@ handle_irq(int irq) · 32 unmodified lines
142149 * handled by some other CPU. (or is disabled)
143150 */
144151 static unsigned int illegal_count=0;
152+ struct irq_desc *desc = irq_to_desc(irq);
145153
146− if ((unsigned) irq > ACTUAL_NR_IRQS && illegal_count < MAX_ILLEGAL_IRQS ) {
154+ if (!desc || ((unsigned) irq > ACTUAL_NR_IRQS &&
155+ illegal_count < MAX_ILLEGAL_IRQS)) {
147156 irq_err_count++;
148157 illegal_count++;
149158 printk(KERN_CRIT "device_interrupt: invalid interrupt %d\n",
@@ -151,14 +160,14 @@ handle_irq(int irq) · 1 unmodified line
151160 return;
152161 }
153162
154− irq_enter();
155163 /*
156− * __do_IRQ() must be called with IPL_MAX. Note that we do not
164+ * From here we must proceed with IPL_MAX. Note that we do not
157165 * explicitly enable interrupts afterwards - some MILO PALcode
158166 * (namely LX164 one) seems to have severe problems with RTI
159167 * at IPL 0.
160168 */
161169 local_irq_disable();
162− __do_IRQ(irq);
170+ irq_enter();
171+ generic_handle_irq_desc(irq, desc);
163172 irq_exit();
164173 }
arch/alpha/kernel/irq_alpha.c+8−18
@@ -112,8 +112,6 @@ init_IRQ(void) · 111 unmodified lines
112112 wrent(entInt, 0);
113113
114114 alpha_mv.init_irq();
115−
116− init_hw_perf_events();
117115 }
118116
119117 /*
@@ -221,31 +219,23 @@ process_mcheck_info(unsigned long vector, unsigned long la_ptr, · 101 unmodified lines
221219 * processed by PALcode, and comes in via entInt vector 1.
222220 */
223221
224−static void rtc_enable_disable(unsigned int irq) { }
225−static unsigned int rtc_startup(unsigned int irq) { return 0; }
226−
227222 struct irqaction timer_irqaction = {
228223 .handler = timer_interrupt,
229224 .flags = IRQF_DISABLED,
230225 .name = "timer",
231226 };
232227
233−static struct irq_chip rtc_irq_type = {
234− .name = "RTC",
235− .startup = rtc_startup,
236− .shutdown = rtc_enable_disable,
237− .enable = rtc_enable_disable,
238− .disable = rtc_enable_disable,
239− .ack = rtc_enable_disable,
240− .end = rtc_enable_disable,
241−};
242−
243228 void __init
244229 init_rtc_irq(void)
245230 {
246− irq_desc[RTC_IRQ].status = IRQ_DISABLED;
247− irq_desc[RTC_IRQ].chip = &rtc_irq_type;
248− setup_irq(RTC_IRQ, &timer_irqaction);
231+ struct irq_desc *desc = irq_to_desc(RTC_IRQ);
232+
233+ if (desc) {
234+ desc->status |= IRQ_DISABLED;
235+ set_irq_chip_and_handler_name(RTC_IRQ, &no_irq_chip,
236+ handle_simple_irq, "RTC");
237+ setup_irq(RTC_IRQ, &timer_irqaction);
238+ }
249239 }
250240
251241 /* Dummy irqactions. */
arch/alpha/kernel/irq_i8259.c+4−22
@@ -69,28 +69,11 @@ i8259a_mask_and_ack_irq(unsigned int irq) · 68 unmodified lines
6969 spin_unlock(&i8259_irq_lock);
7070 }
7171
72−unsigned int
73−i8259a_startup_irq(unsigned int irq)
74−{
75− i8259a_enable_irq(irq);
76− return 0; /* never anything pending */
77−}
78−
79−void
80−i8259a_end_irq(unsigned int irq)
81−{
82− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
83− i8259a_enable_irq(irq);
84−}
85−
8672 struct irq_chip i8259a_irq_type = {
8773 .name = "XT-PIC",
88− .startup = i8259a_startup_irq,
89− .shutdown = i8259a_disable_irq,
90− .enable = i8259a_enable_irq,
91− .disable = i8259a_disable_irq,
92− .ack = i8259a_mask_and_ack_irq,
93− .end = i8259a_end_irq,
74+ .unmask = i8259a_enable_irq,
75+ .mask = i8259a_disable_irq,
76+ .mask_ack = i8259a_mask_and_ack_irq,
9477 };
9578
9679 void __init
@@ -107,8 +90,7 @@ init_i8259a_irqs(void) · 10 unmodified lines
10790 outb(0xff, 0xA1); /* mask all of 8259A-2 */
10891
10992 for (i = 0; i < 16; i++) {
110− irq_desc[i].status = IRQ_DISABLED;
111− irq_desc[i].chip = &i8259a_irq_type;
93+ set_irq_chip_and_handler(i, &i8259a_irq_type, handle_level_irq);
11294 }
11395
11496 setup_irq(2, &cascade);
arch/alpha/kernel/irq_pyxis.c+5−22
@@ -40,20 +40,6 @@ pyxis_disable_irq(unsigned int irq) · 39 unmodified lines
4040 pyxis_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));
4141 }
4242
43−static unsigned int
44−pyxis_startup_irq(unsigned int irq)
45−{
46− pyxis_enable_irq(irq);
47− return 0;
48−}
49−
50−static void
51−pyxis_end_irq(unsigned int irq)
52−{
53− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
54− pyxis_enable_irq(irq);
55−}
56−
5743 static void
5844 pyxis_mask_and_ack_irq(unsigned int irq)
5945 {
@@ -72,12 +58,9 @@ pyxis_mask_and_ack_irq(unsigned int irq) · 12 unmodified lines
7258
7359 static struct irq_chip pyxis_irq_type = {
7460 .name = "PYXIS",
75− .startup = pyxis_startup_irq,
76− .shutdown = pyxis_disable_irq,
77− .enable = pyxis_enable_irq,
78− .disable = pyxis_disable_irq,
79− .ack = pyxis_mask_and_ack_irq,
80− .end = pyxis_end_irq,
61+ .mask_ack = pyxis_mask_and_ack_irq,
62+ .mask = pyxis_disable_irq,
63+ .unmask = pyxis_enable_irq,
8164 };
8265
8366 void
@@ -119,8 +102,8 @@ init_pyxis_irqs(unsigned long ignore_mask) · 35 unmodified lines
119102 for (i = 16; i < 48; ++i) {
120103 if ((ignore_mask >> i) & 1)
121104 continue;
122− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
123− irq_desc[i].chip = &pyxis_irq_type;
105+ set_irq_chip_and_handler(i, &pyxis_irq_type, handle_level_irq);
106+ irq_to_desc(i)->status |= IRQ_LEVEL;
124107 }
125108
126109 setup_irq(16+7, &isa_cascade_irqaction);
arch/alpha/kernel/irq_srm.c+5−22
@@ -33,29 +33,12 @@ srm_disable_irq(unsigned int irq) · 32 unmodified lines
3333 spin_unlock(&srm_irq_lock);
3434 }
3535
36−static unsigned int
37−srm_startup_irq(unsigned int irq)
38−{
39− srm_enable_irq(irq);
40− return 0;
41−}
42−
43−static void
44−srm_end_irq(unsigned int irq)
45−{
46− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
47− srm_enable_irq(irq);
48−}
49−
5036 /* Handle interrupts from the SRM, assuming no additional weirdness. */
5137 static struct irq_chip srm_irq_type = {
5238 .name = "SRM",
53− .startup = srm_startup_irq,
54− .shutdown = srm_disable_irq,
55− .enable = srm_enable_irq,
56− .disable = srm_disable_irq,
57− .ack = srm_disable_irq,
58− .end = srm_end_irq,
39+ .unmask = srm_enable_irq,
40+ .mask = srm_disable_irq,
41+ .mask_ack = srm_disable_irq,
5942 };
6043
6144 void __init
@@ -68,8 +51,8 @@ init_srm_irqs(long max, unsigned long ignore_mask) · 6 unmodified lines
6851 for (i = 16; i < max; ++i) {
6952 if (i < 64 && ((ignore_mask >> i) & 1))
7053 continue;
71− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
72− irq_desc[i].chip = &srm_irq_type;
54+ set_irq_chip_and_handler(i, &srm_irq_type, handle_level_irq);
55+ irq_to_desc(i)->status |= IRQ_LEVEL;
7356 }
7457 }
7558
arch/alpha/kernel/osf_sys.c+0−3
@@ -951,9 +951,6 @@ SYSCALL_DEFINE2(osf_utimes, const char __user *, filename, · 950 unmodified lines
951951 return do_utimes(AT_FDCWD, filename, tvs ? tv : NULL, 0);
952952 }
953953
954−#define MAX_SELECT_SECONDS \
955− ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1)
956−
957954 SYSCALL_DEFINE5(osf_select, int, n, fd_set __user *, inp, fd_set __user *, outp,
958955 fd_set __user *, exp, struct timeval32 __user *, tvp)
959956 {
arch/alpha/kernel/perf_event.c+7−4
@@ -14,6 +14,7 @@ · 13 unmodified lines
1414 #include <linux/kernel.h>
1515 #include <linux/kdebug.h>
1616 #include <linux/mutex.h>
17+#include <linux/init.h>
1718
1819 #include <asm/hwrpb.h>
1920 #include <asm/atomic.h>
@@ -863,13 +864,13 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr, · 843 unmodified lines
863864 /*
864865 * Init call to initialise performance events at kernel startup.
865866 */
866−void __init init_hw_perf_events(void)
867+int __init init_hw_perf_events(void)
867868 {
868869 pr_info("Performance events: ");
869870
870871 if (!supported_cpu()) {
871872 pr_cont("No support for your CPU.\n");
872− return;
873+ return 0;
873874 }
874875
875876 pr_cont("Supported CPU type!\n");
@@ -881,6 +882,8 @@ void __init init_hw_perf_events(void) · 5 unmodified lines
881882 /* And set up PMU specification */
882883 alpha_pmu = &ev67_pmu;
883884
884− perf_pmu_register(&pmu);
885−}
885+ perf_pmu_register(&pmu, "cpu", PERF_TYPE_RAW);
886886
887+ return 0;
888+}
889+early_initcall(init_hw_perf_events);
arch/alpha/kernel/sys_alcor.c+5−22
@@ -65,13 +65,6 @@ alcor_mask_and_ack_irq(unsigned int irq) · 64 unmodified lines
6565 *(vuip)GRU_INT_CLEAR = 0; mb();
6666 }
6767
68−static unsigned int
69−alcor_startup_irq(unsigned int irq)
70−{
71− alcor_enable_irq(irq);
72− return 0;
73−}
74−
7568 static void
7669 alcor_isa_mask_and_ack_irq(unsigned int irq)
7770 {
@@ -82,21 +75,11 @@ alcor_isa_mask_and_ack_irq(unsigned int irq) · 4 unmodified lines
8275 *(vuip)GRU_INT_CLEAR = 0; mb();
8376 }
8477
85−static void
86−alcor_end_irq(unsigned int irq)
87−{
88− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
89− alcor_enable_irq(irq);
90−}
91−
9278 static struct irq_chip alcor_irq_type = {
9379 .name = "ALCOR",
94− .startup = alcor_startup_irq,
95− .shutdown = alcor_disable_irq,
96− .enable = alcor_enable_irq,
97− .disable = alcor_disable_irq,
98− .ack = alcor_mask_and_ack_irq,
99− .end = alcor_end_irq,
80+ .unmask = alcor_enable_irq,
81+ .mask = alcor_disable_irq,
82+ .mask_ack = alcor_mask_and_ack_irq,
10083 };
10184
10285 static void
@@ -142,8 +125,8 @@ alcor_init_irq(void) · 39 unmodified lines
142125 on while IRQ probing. */
143126 if (i >= 16+20 && i <= 16+30)
144127 continue;
145− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
146− irq_desc[i].chip = &alcor_irq_type;
128+ set_irq_chip_and_handler(i, &alcor_irq_type, handle_level_irq);
129+ irq_to_desc(i)->status |= IRQ_LEVEL;
147130 }
148131 i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq;
149132
arch/alpha/kernel/sys_cabriolet.c+6−22
@@ -57,28 +57,11 @@ cabriolet_disable_irq(unsigned int irq) · 56 unmodified lines
5757 cabriolet_update_irq_hw(irq, cached_irq_mask |= 1UL << irq);
5858 }
5959
60−static unsigned int
61−cabriolet_startup_irq(unsigned int irq)
62−{
63− cabriolet_enable_irq(irq);
64− return 0; /* never anything pending */
65−}
66−
67−static void
68−cabriolet_end_irq(unsigned int irq)
69−{
70− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
71− cabriolet_enable_irq(irq);
72−}
73−
7460 static struct irq_chip cabriolet_irq_type = {
7561 .name = "CABRIOLET",
76− .startup = cabriolet_startup_irq,
77− .shutdown = cabriolet_disable_irq,
78− .enable = cabriolet_enable_irq,
79− .disable = cabriolet_disable_irq,
80− .ack = cabriolet_disable_irq,
81− .end = cabriolet_end_irq,
62+ .unmask = cabriolet_enable_irq,
63+ .mask = cabriolet_disable_irq,
64+ .mask_ack = cabriolet_disable_irq,
8265 };
8366
8467 static void
@@ -122,8 +105,9 @@ common_init_irq(void (*srm_dev_int)(unsigned long v)) · 37 unmodified lines
122105 outb(0xff, 0x806);
123106
124107 for (i = 16; i < 35; ++i) {
125− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
126− irq_desc[i].chip = &cabriolet_irq_type;
108+ set_irq_chip_and_handler(i, &cabriolet_irq_type,
109+ handle_level_irq);
110+ irq_to_desc(i)->status |= IRQ_LEVEL;
127111 }
128112 }
129113
arch/alpha/kernel/sys_dp264.c+8−42
@@ -115,20 +115,6 @@ dp264_disable_irq(unsigned int irq) · 114 unmodified lines
115115 spin_unlock(&dp264_irq_lock);
116116 }
117117
118−static unsigned int
119−dp264_startup_irq(unsigned int irq)
120−{
121− dp264_enable_irq(irq);
122− return 0; /* never anything pending */
123−}
124−
125−static void
126−dp264_end_irq(unsigned int irq)
127−{
128− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
129− dp264_enable_irq(irq);
130−}
131−
132118 static void
133119 clipper_enable_irq(unsigned int irq)
134120 {
@@ -147,20 +133,6 @@ clipper_disable_irq(unsigned int irq) · 12 unmodified lines
147133 spin_unlock(&dp264_irq_lock);
148134 }
149135
150−static unsigned int
151−clipper_startup_irq(unsigned int irq)
152−{
153− clipper_enable_irq(irq);
154− return 0; /* never anything pending */
155−}
156−
157−static void
158−clipper_end_irq(unsigned int irq)
159−{
160− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
161− clipper_enable_irq(irq);
162−}
163−
164136 static void
165137 cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity)
166138 {
@@ -200,23 +172,17 @@ clipper_set_affinity(unsigned int irq, const struct cpumask *affinity) · 33 unmodified lines
200172
201173 static struct irq_chip dp264_irq_type = {
202174 .name = "DP264",
203− .startup = dp264_startup_irq,
204− .shutdown = dp264_disable_irq,
205− .enable = dp264_enable_irq,
206− .disable = dp264_disable_irq,
207− .ack = dp264_disable_irq,
208− .end = dp264_end_irq,
175+ .unmask = dp264_enable_irq,
176+ .mask = dp264_disable_irq,
177+ .mask_ack = dp264_disable_irq,
209178 .set_affinity = dp264_set_affinity,
210179 };
211180
212181 static struct irq_chip clipper_irq_type = {
213182 .name = "CLIPPER",
214− .startup = clipper_startup_irq,
215− .shutdown = clipper_disable_irq,
216− .enable = clipper_enable_irq,
217− .disable = clipper_disable_irq,
218− .ack = clipper_disable_irq,
219− .end = clipper_end_irq,
183+ .unmask = clipper_enable_irq,
184+ .mask = clipper_disable_irq,
185+ .mask_ack = clipper_disable_irq,
220186 .set_affinity = clipper_set_affinity,
221187 };
222188
@@ -302,8 +268,8 @@ init_tsunami_irqs(struct irq_chip * ops, int imin, int imax) · 79 unmodified lines
302268 {
303269 long i;
304270 for (i = imin; i <= imax; ++i) {
305− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
306− irq_desc[i].chip = ops;
271+ irq_to_desc(i)->status |= IRQ_LEVEL;
272+ set_irq_chip_and_handler(i, ops, handle_level_irq);
307273 }
308274 }
309275
arch/alpha/kernel/sys_eb64p.c+5−22
@@ -55,28 +55,11 @@ eb64p_disable_irq(unsigned int irq) · 54 unmodified lines
5555 eb64p_update_irq_hw(irq, cached_irq_mask |= 1 << irq);
5656 }
5757
58−static unsigned int
59−eb64p_startup_irq(unsigned int irq)
60−{
61− eb64p_enable_irq(irq);
62− return 0; /* never anything pending */
63−}
64−
65−static void
66−eb64p_end_irq(unsigned int irq)
67−{
68− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
69− eb64p_enable_irq(irq);
70−}
71−
7258 static struct irq_chip eb64p_irq_type = {
7359 .name = "EB64P",
74− .startup = eb64p_startup_irq,
75− .shutdown = eb64p_disable_irq,
76− .enable = eb64p_enable_irq,
77− .disable = eb64p_disable_irq,
78− .ack = eb64p_disable_irq,
79− .end = eb64p_end_irq,
60+ .unmask = eb64p_enable_irq,
61+ .mask = eb64p_disable_irq,
62+ .mask_ack = eb64p_disable_irq,
8063 };
8164
8265 static void
@@ -135,8 +118,8 @@ eb64p_init_irq(void) · 52 unmodified lines
135118 init_i8259a_irqs();
136119
137120 for (i = 16; i < 32; ++i) {
138− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
139− irq_desc[i].chip = &eb64p_irq_type;
121+ irq_to_desc(i)->status |= IRQ_LEVEL;
122+ set_irq_chip_and_handler(i, &eb64p_irq_type, handle_level_irq);
140123 }
141124
142125 common_init_isa_dma();
arch/alpha/kernel/sys_eiger.c+5−22
@@ -66,28 +66,11 @@ eiger_disable_irq(unsigned int irq) · 65 unmodified lines
6666 eiger_update_irq_hw(irq, mask);
6767 }
6868
69−static unsigned int
70−eiger_startup_irq(unsigned int irq)
71−{
72− eiger_enable_irq(irq);
73− return 0; /* never anything pending */
74−}
75−
76−static void
77−eiger_end_irq(unsigned int irq)
78−{
79− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
80− eiger_enable_irq(irq);
81−}
82−
8369 static struct irq_chip eiger_irq_type = {
8470 .name = "EIGER",
85− .startup = eiger_startup_irq,
86− .shutdown = eiger_disable_irq,
87− .enable = eiger_enable_irq,
88− .disable = eiger_disable_irq,
89− .ack = eiger_disable_irq,
90− .end = eiger_end_irq,
71+ .unmask = eiger_enable_irq,
72+ .mask = eiger_disable_irq,
73+ .mask_ack = eiger_disable_irq,
9174 };
9275
9376 static void
@@ -153,8 +136,8 @@ eiger_init_irq(void) · 59 unmodified lines
153136 init_i8259a_irqs();
154137
155138 for (i = 16; i < 128; ++i) {
156− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
157− irq_desc[i].chip = &eiger_irq_type;
139+ irq_to_desc(i)->status |= IRQ_LEVEL;
140+ set_irq_chip_and_handler(i, &eiger_irq_type, handle_level_irq);
158141 }
159142 }
160143
arch/alpha/kernel/sys_jensen.c+10−45
@@ -62,30 +62,6 @@ · 61 unmodified lines
6262 * world.
6363 */
6464
65−static unsigned int
66−jensen_local_startup(unsigned int irq)
67−{
68− /* the parport is really hw IRQ 1, silly Jensen. */
69− if (irq == 7)
70− i8259a_startup_irq(1);
71− else
72− /*
73− * For all true local interrupts, set the flag that prevents
74− * the IPL from being dropped during handler processing.
75− */
76− if (irq_desc[irq].action)
77− irq_desc[irq].action->flags |= IRQF_DISABLED;
78− return 0;
79−}
80−
81−static void
82−jensen_local_shutdown(unsigned int irq)
83−{
84− /* the parport is really hw IRQ 1, silly Jensen. */
85− if (irq == 7)
86− i8259a_disable_irq(1);
87−}
88−
8965 static void
9066 jensen_local_enable(unsigned int irq)
9167 {
@@ -103,29 +79,18 @@ jensen_local_disable(unsigned int irq) · 11 unmodified lines
10379 }
10480
10581 static void
106−jensen_local_ack(unsigned int irq)
82+jensen_local_mask_ack(unsigned int irq)
10783 {
10884 /* the parport is really hw IRQ 1, silly Jensen. */
10985 if (irq == 7)
11086 i8259a_mask_and_ack_irq(1);
11187 }
11288
113−static void
114−jensen_local_end(unsigned int irq)
115−{
116− /* the parport is really hw IRQ 1, silly Jensen. */
117− if (irq == 7)
118− i8259a_end_irq(1);
119−}
120−
12189 static struct irq_chip jensen_local_irq_type = {
12290 .name = "LOCAL",
123− .startup = jensen_local_startup,
124− .shutdown = jensen_local_shutdown,
125− .enable = jensen_local_enable,
126− .disable = jensen_local_disable,
127− .ack = jensen_local_ack,
128− .end = jensen_local_end,
91+ .unmask = jensen_local_enable,
92+ .mask = jensen_local_disable,
93+ .mask_ack = jensen_local_mask_ack,
12994 };
13095
13196 static void
@@ -158,7 +123,7 @@ jensen_device_interrupt(unsigned long vector) · 26 unmodified lines
158123 }
159124
160125 /* If there is no handler yet... */
161− if (irq_desc[irq].action == NULL) {
126+ if (!irq_has_action(irq)) {
162127 /* If it is a local interrupt that cannot be masked... */
163128 if (vector >= 0x900)
164129 {
@@ -206,11 +171,11 @@ jensen_init_irq(void) · 41 unmodified lines
206171 {
207172 init_i8259a_irqs();
208173
209− irq_desc[1].chip = &jensen_local_irq_type;
210− irq_desc[4].chip = &jensen_local_irq_type;
211− irq_desc[3].chip = &jensen_local_irq_type;
212− irq_desc[7].chip = &jensen_local_irq_type;
213− irq_desc[9].chip = &jensen_local_irq_type;
174+ set_irq_chip_and_handler(1, &jensen_local_irq_type, handle_level_irq);
175+ set_irq_chip_and_handler(4, &jensen_local_irq_type, handle_level_irq);
176+ set_irq_chip_and_handler(3, &jensen_local_irq_type, handle_level_irq);
177+ set_irq_chip_and_handler(7, &jensen_local_irq_type, handle_level_irq);
178+ set_irq_chip_and_handler(9, &jensen_local_irq_type, handle_level_irq);
214179
215180 common_init_isa_dma();
216181 }
arch/alpha/kernel/sys_marvel.c+13−37
@@ -143,20 +143,6 @@ io7_disable_irq(unsigned int irq) · 142 unmodified lines
143143 spin_unlock(&io7->irq_lock);
144144 }
145145
146−static unsigned int
147−io7_startup_irq(unsigned int irq)
148−{
149− io7_enable_irq(irq);
150− return 0; /* never anything pending */
151−}
152−
153−static void
154−io7_end_irq(unsigned int irq)
155−{
156− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
157− io7_enable_irq(irq);
158−}
159−
160146 static void
161147 marvel_irq_noop(unsigned int irq)
162148 {
@@ -171,32 +157,22 @@ marvel_irq_noop_return(unsigned int irq) · 8 unmodified lines
171157
172158 static struct irq_chip marvel_legacy_irq_type = {
173159 .name = "LEGACY",
174− .startup = marvel_irq_noop_return,
175− .shutdown = marvel_irq_noop,
176− .enable = marvel_irq_noop,
177− .disable = marvel_irq_noop,
178− .ack = marvel_irq_noop,
179− .end = marvel_irq_noop,
160+ .mask = marvel_irq_noop,
161+ .unmask = marvel_irq_noop,
180162 };
181163
182164 static struct irq_chip io7_lsi_irq_type = {
183165 .name = "LSI",
184− .startup = io7_startup_irq,
185− .shutdown = io7_disable_irq,
186− .enable = io7_enable_irq,
187− .disable = io7_disable_irq,
188− .ack = io7_disable_irq,
189− .end = io7_end_irq,
166+ .unmask = io7_enable_irq,
167+ .mask = io7_disable_irq,
168+ .mask_ack = io7_disable_irq,
190169 };
191170
192171 static struct irq_chip io7_msi_irq_type = {
193172 .name = "MSI",
194− .startup = io7_startup_irq,
195− .shutdown = io7_disable_irq,
196− .enable = io7_enable_irq,
197− .disable = io7_disable_irq,
173+ .unmask = io7_enable_irq,
174+ .mask = io7_disable_irq,
198175 .ack = marvel_irq_noop,
199− .end = io7_end_irq,
200176 };
201177
202178 static void
@@ -304,8 +280,8 @@ init_io7_irqs(struct io7 *io7, · 101 unmodified lines
304280
305281 /* Set up the lsi irqs. */
306282 for (i = 0; i < 128; ++i) {
307− irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL;
308− irq_desc[base + i].chip = lsi_ops;
283+ irq_to_desc(base + i)->status |= IRQ_LEVEL;
284+ set_irq_chip_and_handler(base + i, lsi_ops, handle_level_irq);
309285 }
310286
311287 /* Disable the implemented irqs in hardware. */
@@ -318,8 +294,8 @@ init_io7_irqs(struct io7 *io7, · 6 unmodified lines
318294
319295 /* Set up the msi irqs. */
320296 for (i = 128; i < (128 + 512); ++i) {
321− irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL;
322− irq_desc[base + i].chip = msi_ops;
297+ irq_to_desc(base + i)->status |= IRQ_LEVEL;
298+ set_irq_chip_and_handler(base + i, msi_ops, handle_level_irq);
323299 }
324300
325301 for (i = 0; i < 16; ++i)
@@ -336,8 +312,8 @@ marvel_init_irq(void) · 10 unmodified lines
336312
337313 /* Reserve the legacy irqs. */
338314 for (i = 0; i < 16; ++i) {
339− irq_desc[i].status = IRQ_DISABLED;
340− irq_desc[i].chip = &marvel_legacy_irq_type;
315+ set_irq_chip_and_handler(i, &marvel_legacy_irq_type,
316+ handle_level_irq);
341317 }
342318
343319 /* Init the io7 irqs. */
arch/alpha/kernel/sys_mikasa.c+5−22
@@ -54,28 +54,11 @@ mikasa_disable_irq(unsigned int irq) · 53 unmodified lines
5454 mikasa_update_irq_hw(cached_irq_mask &= ~(1 << (irq - 16)));
5555 }
5656
57−static unsigned int
58−mikasa_startup_irq(unsigned int irq)
59−{
60− mikasa_enable_irq(irq);
61− return 0;
62−}
63−
64−static void
65−mikasa_end_irq(unsigned int irq)
66−{
67− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
68− mikasa_enable_irq(irq);
69−}
70−
7157 static struct irq_chip mikasa_irq_type = {
7258 .name = "MIKASA",
73− .startup = mikasa_startup_irq,
74− .shutdown = mikasa_disable_irq,
75− .enable = mikasa_enable_irq,
76− .disable = mikasa_disable_irq,
77− .ack = mikasa_disable_irq,
78− .end = mikasa_end_irq,
59+ .unmask = mikasa_enable_irq,
60+ .mask = mikasa_disable_irq,
61+ .mask_ack = mikasa_disable_irq,
7962 };
8063
8164 static void
@@ -115,8 +98,8 @@ mikasa_init_irq(void) · 33 unmodified lines
11598 mikasa_update_irq_hw(0);
11699
117100 for (i = 16; i < 32; ++i) {
118− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
119− irq_desc[i].chip = &mikasa_irq_type;
101+ irq_to_desc(i)->status |= IRQ_LEVEL;
102+ set_irq_chip_and_handler(i, &mikasa_irq_type, handle_level_irq);
120103 }
121104
122105 init_i8259a_irqs();
arch/alpha/kernel/sys_noritake.c+5−22
@@ -59,28 +59,11 @@ noritake_disable_irq(unsigned int irq) · 58 unmodified lines
5959 noritake_update_irq_hw(irq, cached_irq_mask &= ~(1 << (irq - 16)));
6060 }
6161
62−static unsigned int
63−noritake_startup_irq(unsigned int irq)
64−{
65− noritake_enable_irq(irq);
66− return 0;
67−}
68−
69−static void
70−noritake_end_irq(unsigned int irq)
71−{
72− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
73− noritake_enable_irq(irq);
74−}
75−
7662 static struct irq_chip noritake_irq_type = {
7763 .name = "NORITAKE",
78− .startup = noritake_startup_irq,
79− .shutdown = noritake_disable_irq,
80− .enable = noritake_enable_irq,
81− .disable = noritake_disable_irq,
82− .ack = noritake_disable_irq,
83− .end = noritake_end_irq,
64+ .unmask = noritake_enable_irq,
65+ .mask = noritake_disable_irq,
66+ .mask_ack = noritake_disable_irq,
8467 };
8568
8669 static void
@@ -144,8 +127,8 @@ noritake_init_irq(void) · 57 unmodified lines
144127 outw(0, 0x54c);
145128
146129 for (i = 16; i < 48; ++i) {
147− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
148− irq_desc[i].chip = &noritake_irq_type;
130+ irq_to_desc(i)->status |= IRQ_LEVEL;
131+ set_irq_chip_and_handler(i, &noritake_irq_type, handle_level_irq);
149132 }
150133
151134 init_i8259a_irqs();
arch/alpha/kernel/sys_rawhide.c+5−22
@@ -121,28 +121,11 @@ rawhide_mask_and_ack_irq(unsigned int irq) · 120 unmodified lines
121121 spin_unlock(&rawhide_irq_lock);
122122 }
123123
124−static unsigned int
125−rawhide_startup_irq(unsigned int irq)
126−{
127− rawhide_enable_irq(irq);
128− return 0;
129−}
130−
131−static void
132−rawhide_end_irq(unsigned int irq)
133−{
134− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
135− rawhide_enable_irq(irq);
136−}
137−
138124 static struct irq_chip rawhide_irq_type = {
139125 .name = "RAWHIDE",
140− .startup = rawhide_startup_irq,
141− .shutdown = rawhide_disable_irq,
142− .enable = rawhide_enable_irq,
143− .disable = rawhide_disable_irq,
144− .ack = rawhide_mask_and_ack_irq,
145− .end = rawhide_end_irq,
126+ .unmask = rawhide_enable_irq,
127+ .mask = rawhide_disable_irq,
128+ .mask_ack = rawhide_mask_and_ack_irq,
146129 };
147130
148131 static void
@@ -194,8 +177,8 @@ rawhide_init_irq(void) · 45 unmodified lines
194177 }
195178
196179 for (i = 16; i < 128; ++i) {
197− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
198− irq_desc[i].chip = &rawhide_irq_type;
180+ irq_to_desc(i)->status |= IRQ_LEVEL;
181+ set_irq_chip_and_handler(i, &rawhide_irq_type, handle_level_irq);
199182 }
200183
201184 init_i8259a_irqs();
arch/alpha/kernel/sys_rx164.c+5−22
@@ -58,28 +58,11 @@ rx164_disable_irq(unsigned int irq) · 57 unmodified lines
5858 rx164_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));
5959 }
6060
61−static unsigned int
62−rx164_startup_irq(unsigned int irq)
63−{
64− rx164_enable_irq(irq);
65− return 0;
66−}
67−
68−static void
69−rx164_end_irq(unsigned int irq)
70−{
71− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
72− rx164_enable_irq(irq);
73−}
74−
7561 static struct irq_chip rx164_irq_type = {
7662 .name = "RX164",
77− .startup = rx164_startup_irq,
78− .shutdown = rx164_disable_irq,
79− .enable = rx164_enable_irq,
80− .disable = rx164_disable_irq,
81− .ack = rx164_disable_irq,
82− .end = rx164_end_irq,
63+ .unmask = rx164_enable_irq,
64+ .mask = rx164_disable_irq,
65+ .mask_ack = rx164_disable_irq,
8366 };
8467
8568 static void
@@ -116,8 +99,8 @@ rx164_init_irq(void) · 30 unmodified lines
11699
117100 rx164_update_irq_hw(0);
118101 for (i = 16; i < 40; ++i) {
119− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
120− irq_desc[i].chip = &rx164_irq_type;
102+ irq_to_desc(i)->status |= IRQ_LEVEL;
103+ set_irq_chip_and_handler(i, &rx164_irq_type, handle_level_irq);
121104 }
122105
123106 init_i8259a_irqs();
arch/alpha/kernel/sys_sable.c+6−22
@@ -474,20 +474,6 @@ sable_lynx_disable_irq(unsigned int irq) · 473 unmodified lines
474474 #endif
475475 }
476476
477−static unsigned int
478−sable_lynx_startup_irq(unsigned int irq)
479−{
480− sable_lynx_enable_irq(irq);
481− return 0;
482−}
483−
484−static void
485−sable_lynx_end_irq(unsigned int irq)
486−{
487− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
488− sable_lynx_enable_irq(irq);
489−}
490−
491477 static void
492478 sable_lynx_mask_and_ack_irq(unsigned int irq)
493479 {
@@ -503,12 +489,9 @@ sable_lynx_mask_and_ack_irq(unsigned int irq) · 9 unmodified lines
503489
504490 static struct irq_chip sable_lynx_irq_type = {
505491 .name = "SABLE/LYNX",
506− .startup = sable_lynx_startup_irq,
507− .shutdown = sable_lynx_disable_irq,
508− .enable = sable_lynx_enable_irq,
509− .disable = sable_lynx_disable_irq,
510− .ack = sable_lynx_mask_and_ack_irq,
511− .end = sable_lynx_end_irq,
492+ .unmask = sable_lynx_enable_irq,
493+ .mask = sable_lynx_disable_irq,
494+ .mask_ack = sable_lynx_mask_and_ack_irq,
512495 };
513496
514497 static void
@@ -535,8 +518,9 @@ sable_lynx_init_irq(int nr_of_irqs) · 20 unmodified lines
535518 long i;
536519
537520 for (i = 0; i < nr_of_irqs; ++i) {
538− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
539− irq_desc[i].chip = &sable_lynx_irq_type;
521+ irq_to_desc(i)->status |= IRQ_LEVEL;
522+ set_irq_chip_and_handler(i, &sable_lynx_irq_type,
523+ handle_level_irq);
540524 }
541525
542526 common_init_isa_dma();
arch/alpha/kernel/sys_takara.c+5−22
@@ -60,28 +60,11 @@ takara_disable_irq(unsigned int irq) · 59 unmodified lines
6060 takara_update_irq_hw(irq, mask);
6161 }
6262
63−static unsigned int
64−takara_startup_irq(unsigned int irq)
65−{
66− takara_enable_irq(irq);
67− return 0; /* never anything pending */
68−}
69−
70−static void
71−takara_end_irq(unsigned int irq)
72−{
73− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
74− takara_enable_irq(irq);
75−}
76−
7763 static struct irq_chip takara_irq_type = {
7864 .name = "TAKARA",
79− .startup = takara_startup_irq,
80− .shutdown = takara_disable_irq,
81− .enable = takara_enable_irq,
82− .disable = takara_disable_irq,
83− .ack = takara_disable_irq,
84− .end = takara_end_irq,
65+ .unmask = takara_enable_irq,
66+ .mask = takara_disable_irq,
67+ .mask_ack = takara_disable_irq,
8568 };
8669
8770 static void
@@ -153,8 +136,8 @@ takara_init_irq(void) · 65 unmodified lines
153136 takara_update_irq_hw(i, -1);
154137
155138 for (i = 16; i < 128; ++i) {
156− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
157− irq_desc[i].chip = &takara_irq_type;
139+ irq_to_desc(i)->status |= IRQ_LEVEL;
140+ set_irq_chip_and_handler(i, &takara_irq_type, handle_level_irq);
158141 }
159142
160143 common_init_isa_dma();
arch/alpha/kernel/sys_titan.c+7−24
@@ -129,20 +129,6 @@ titan_disable_irq(unsigned int irq) · 128 unmodified lines
129129 spin_unlock(&titan_irq_lock);
130130 }
131131
132−static unsigned int
133−titan_startup_irq(unsigned int irq)
134−{
135− titan_enable_irq(irq);
136− return 0; /* never anything pending */
137−}
138−
139−static void
140−titan_end_irq(unsigned int irq)
141−{
142− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
143− titan_enable_irq(irq);
144−}
145−
146132 static void
147133 titan_cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity)
148134 {
@@ -189,20 +175,17 @@ init_titan_irqs(struct irq_chip * ops, int imin, int imax) · 40 unmodified lines
189175 {
190176 long i;
191177 for (i = imin; i <= imax; ++i) {
192− irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
193− irq_desc[i].chip = ops;
178+ irq_to_desc(i)->status |= IRQ_LEVEL;
179+ set_irq_chip_and_handler(i, ops, handle_level_irq);
194180 }
195181 }
196182
197183 static struct irq_chip titan_irq_type = {
198− .name = "TITAN",
199− .startup = titan_startup_irq,
200− .shutdown = titan_disable_irq,
201− .enable = titan_enable_irq,
202− .disable = titan_disable_irq,
203− .ack = titan_disable_irq,
204− .end = titan_end_irq,
205− .set_affinity = titan_set_irq_affinity,
184+ .name = "TITAN",
185+ .unmask = titan_enable_irq,
186+ .mask = titan_disable_irq,
187+ .mask_ack = titan_disable_irq,
188+ .set_affinity = titan_set_irq_affinity,
206189 };
207190
208191 static irqreturn_t
arch/alpha/kernel/sys_wildfire.c+12−30
@@ -139,32 +139,11 @@ wildfire_mask_and_ack_irq(unsigned int irq) · 138 unmodified lines
139139 spin_unlock(&wildfire_irq_lock);
140140 }
141141
142−static unsigned int
143−wildfire_startup_irq(unsigned int irq)
144−{
145− wildfire_enable_irq(irq);
146− return 0; /* never anything pending */
147−}
148−
149−static void
150−wildfire_end_irq(unsigned int irq)
151−{
152−#if 0
153− if (!irq_desc[irq].action)
154− printk("got irq %d\n", irq);
155−#endif
156− if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
157− wildfire_enable_irq(irq);
158−}
159−
160142 static struct irq_chip wildfire_irq_type = {
161143 .name = "WILDFIRE",
162− .startup = wildfire_startup_irq,
163− .shutdown = wildfire_disable_irq,
164− .enable = wildfire_enable_irq,
165− .disable = wildfire_disable_irq,
166− .ack = wildfire_mask_and_ack_irq,
167− .end = wildfire_end_irq,
144+ .unmask = wildfire_enable_irq,
145+ .mask = wildfire_disable_irq,
146+ .mask_ack = wildfire_mask_and_ack_irq,
168147 };
169148
170149 static void __init
@@ -198,15 +177,18 @@ wildfire_init_irq_per_pca(int qbbno, int pcano) · 27 unmodified lines
198177 for (i = 0; i < 16; ++i) {
199178 if (i == 2)
200179 continue;
201− irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL;
202− irq_desc[i+irq_bias].chip = &wildfire_irq_type;
180+ irq_to_desc(i+irq_bias)->status |= IRQ_LEVEL;
181+ set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type,
182+ handle_level_irq);
203183 }
204184
205− irq_desc[36+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL;
206− irq_desc[36+irq_bias].chip = &wildfire_irq_type;
185+ irq_to_desc(36+irq_bias)->status |= IRQ_LEVEL;
186+ set_irq_chip_and_handler(36+irq_bias, &wildfire_irq_type,
187+ handle_level_irq);
207188 for (i = 40; i < 64; ++i) {
208− irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL;
209− irq_desc[i+irq_bias].chip = &wildfire_irq_type;
189+ irq_to_desc(i+irq_bias)->status |= IRQ_LEVEL;
190+ set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type,
191+ handle_level_irq);
210192 }
211193
212194 setup_irq(32+irq_bias, &isa_enable);
arch/alpha/kernel/time.c+1−1
@@ -506,7 +506,7 @@ set_rtc_mmss(unsigned long nowtime) · 505 unmodified lines
506506 CMOS_WRITE(real_seconds,RTC_SECONDS);
507507 CMOS_WRITE(real_minutes,RTC_MINUTES);
508508 } else {
509− printk(KERN_WARNING
509+ printk_once(KERN_NOTICE
510510 "set_rtc_mmss: can't update from %d to %d\n",
511511 cmos_minutes, real_minutes);
512512 retval = -1;
arch/alpha/lib/Makefile+2−2
@@ -2,8 +2,8 @@ · 1 unmodified line
22 # Makefile for alpha-specific library files..
33 #
44
5−EXTRA_AFLAGS := $(KBUILD_CFLAGS)
6−EXTRA_CFLAGS := -Werror
5+asflags-y := $(KBUILD_CFLAGS)
6+ccflags-y := -Werror
77
88 # Many of these routines have implementations tuned for ev6.
99 # Choose them iff we're targeting ev6 specifically.
arch/alpha/math-emu/Makefile+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 # Makefile for the FPU instruction emulation.
33 #
44
5−EXTRA_CFLAGS := -w
5+ccflags-y := -w
66
77 obj-$(CONFIG_MATHEMU) += math-emu.o
88
arch/alpha/mm/Makefile+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 # Makefile for the linux alpha-specific parts of the memory manager.
33 #
44
5−EXTRA_CFLAGS := -Werror
5+ccflags-y := -Werror
66
77 obj-y := init.o fault.o extable.o
88
arch/alpha/oprofile/Makefile+1−1
@@ -1,4 +1,4 @@
1−EXTRA_CFLAGS := -Werror -Wno-sign-compare
1+ccflags-y := -Werror -Wno-sign-compare
22
33 obj-$(CONFIG_OPROFILE) += oprofile.o
44
arch/arm/Kconfig+131−51
@@ -2,6 +2,7 @@ config ARM · 1 unmodified line
22 bool
33 default y
44 select HAVE_AOUT
5+ select HAVE_DMA_API_DEBUG
56 select HAVE_IDE
67 select HAVE_MEMBLOCK
78 select RTC_LIB
@@ -14,6 +15,7 @@ config ARM · 6 unmodified lines
1415 select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
1516 select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)
1617 select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL)
18+ select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
1719 select HAVE_GENERIC_DMA_COHERENT
1820 select HAVE_KERNEL_GZIP
1921 select HAVE_KERNEL_LZO
@@ -23,6 +25,9 @@ config ARM · 3 unmodified lines
2325 select PERF_USE_VMALLOC
2426 select HAVE_REGS_AND_STACK_ACCESS_API
2527 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V7))
28+ select HAVE_C_RECORDMCOUNT
29+ select HAVE_GENERIC_HARDIRQS
30+ select HAVE_SPARSE_IRQ
2631 help
2732 The ARM series is a line of low-power-consumption RISC chip designs
2833 licensed by ARM Ltd and targeted at embedded applications and
@@ -34,9 +39,15 @@ config ARM · 5 unmodified lines
3439 config HAVE_PWM
3540 bool
3641
42+config MIGHT_HAVE_PCI
43+ bool
44+
3745 config SYS_SUPPORTS_APM_EMULATION
3846 bool
3947
48+config HAVE_SCHED_CLOCK
49+ bool
50+
4051 config GENERIC_GPIO
4152 bool
4253
@@ -88,10 +99,6 @@ config MCA · 45 unmodified lines
8899 <file:Documentation/mca.txt> (and especially the web page given
89100 there) before attempting to build an MCA bus kernel.
90101
91−config GENERIC_HARDIRQS
92− bool
93− default y
94−
95102 config STACKTRACE_SUPPORT
96103 bool
97104 default y
@@ -171,9 +178,6 @@ config FIQ · 73 unmodified lines
171178 config ARCH_MTD_XIP
172179 bool
173180
174−config GENERIC_HARDIRQS_NO__DO_IRQ
175− def_bool y
176−
177181 config ARM_L1_CACHE_SHIFT_6
178182 bool
179183 help
@@ -221,7 +225,7 @@ config ARCH_INTEGRATOR · 41 unmodified lines
221225 bool "ARM Ltd. Integrator family"
222226 select ARM_AMBA
223227 select ARCH_HAS_CPUFREQ
224− select COMMON_CLKDEV
228+ select CLKDEV_LOOKUP
225229 select ICST
226230 select GENERIC_CLOCKEVENTS
227231 select PLAT_VERSATILE
@@ -231,7 +235,8 @@ config ARCH_INTEGRATOR · 3 unmodified lines
231235 config ARCH_REALVIEW
232236 bool "ARM Ltd. RealView family"
233237 select ARM_AMBA
234− select COMMON_CLKDEV
238+ select CLKDEV_LOOKUP
239+ select HAVE_SCHED_CLOCK
235240 select ICST
236241 select GENERIC_CLOCKEVENTS
237242 select ARCH_WANT_OPTIONAL_GPIOLIB
@@ -245,7 +250,8 @@ config ARCH_VERSATILE · 7 unmodified lines
245250 bool "ARM Ltd. Versatile family"
246251 select ARM_AMBA
247252 select ARM_VIC
248− select COMMON_CLKDEV
253+ select CLKDEV_LOOKUP
254+ select HAVE_SCHED_CLOCK
249255 select ICST
250256 select GENERIC_CLOCKEVENTS
251257 select ARCH_WANT_OPTIONAL_GPIOLIB
@@ -259,9 +265,10 @@ config ARCH_VEXPRESS · 7 unmodified lines
259265 select ARCH_WANT_OPTIONAL_GPIOLIB
260266 select ARM_AMBA
261267 select ARM_TIMER_SP804
262− select COMMON_CLKDEV
268+ select CLKDEV_LOOKUP
263269 select GENERIC_CLOCKEVENTS
264270 select HAVE_CLK
271+ select HAVE_SCHED_CLOCK
265272 select ICST
266273 select PLAT_VERSATILE
267274 help
@@ -280,7 +287,7 @@ config ARCH_BCMRING · 12 unmodified lines
280287 depends on MMU
281288 select CPU_V6
282289 select ARM_AMBA
283− select COMMON_CLKDEV
290+ select CLKDEV_LOOKUP
284291 select GENERIC_CLOCKEVENTS
285292 select ARCH_WANT_OPTIONAL_GPIOLIB
286293 help
@@ -298,6 +305,7 @@ config ARCH_CNS3XXX · 11 unmodified lines
298305 select CPU_V6
299306 select GENERIC_CLOCKEVENTS
300307 select ARM_GIC
308+ select MIGHT_HAVE_PCI
301309 select PCI_DOMAINS if PCI
302310 help
303311 Support for Cavium Networks CNS3XXX platform.
@@ -327,7 +335,7 @@ config ARCH_EP93XX · 23 unmodified lines
327335 select CPU_ARM920T
328336 select ARM_AMBA
329337 select ARM_VIC
330− select COMMON_CLKDEV
338+ select CLKDEV_LOOKUP
331339 select ARCH_REQUIRE_GPIOLIB
332340 select ARCH_HAS_HOLES_MEMORYMODEL
333341 select ARCH_USES_GETTIMEOFFSET
@@ -347,14 +355,22 @@ config ARCH_MXC · 13 unmodified lines
347355 bool "Freescale MXC/iMX-based"
348356 select GENERIC_CLOCKEVENTS
349357 select ARCH_REQUIRE_GPIOLIB
350− select COMMON_CLKDEV
358+ select CLKDEV_LOOKUP
351359 help
352360 Support for Freescale MXC/iMX-based family of processors
353361
362+config ARCH_MXS
363+ bool "Freescale MXS-based"
364+ select GENERIC_CLOCKEVENTS
365+ select ARCH_REQUIRE_GPIOLIB
366+ select CLKDEV_LOOKUP
367+ help
368+ Support for Freescale MXS-based family of processors
369+
354370 config ARCH_STMP3XXX
355371 bool "Freescale STMP3xxx"
356372 select CPU_ARM926T
357− select COMMON_CLKDEV
373+ select CLKDEV_LOOKUP
358374 select ARCH_REQUIRE_GPIOLIB
359375 select GENERIC_CLOCKEVENTS
360376 select USB_ARCH_HAS_EHCI
@@ -433,6 +449,8 @@ config ARCH_IXP4XX · 72 unmodified lines
433449 select CPU_XSCALE
434450 select GENERIC_GPIO
435451 select GENERIC_CLOCKEVENTS
452+ select HAVE_SCHED_CLOCK
453+ select MIGHT_HAVE_PCI
436454 select DMABOUNCE if PCI
437455 help
438456 Support for Intel's IXP4XX (XScale) family of processors.
@@ -472,7 +490,7 @@ config ARCH_LPC32XX · 33 unmodified lines
472490 select HAVE_IDE
473491 select ARM_AMBA
474492 select USB_ARCH_HAS_OHCI
475− select COMMON_CLKDEV
493+ select CLKDEV_LOOKUP
476494 select GENERIC_TIME
477495 select GENERIC_CLOCKEVENTS
478496 help
@@ -506,8 +524,9 @@ config ARCH_MMP · 27 unmodified lines
506524 bool "Marvell PXA168/910/MMP2"
507525 depends on MMU
508526 select ARCH_REQUIRE_GPIOLIB
509− select COMMON_CLKDEV
527+ select CLKDEV_LOOKUP
510528 select GENERIC_CLOCKEVENTS
529+ select HAVE_SCHED_CLOCK
511530 select TICK_ONESHOT
512531 select PLAT_PXA
513532 select SPARSE_IRQ
@@ -539,7 +558,7 @@ config ARCH_W90X900 · 25 unmodified lines
539558 bool "Nuvoton W90X900 CPU"
540559 select CPU_ARM926T
541560 select ARCH_REQUIRE_GPIOLIB
542− select COMMON_CLKDEV
561+ select CLKDEV_LOOKUP
543562 select GENERIC_CLOCKEVENTS
544563 help
545564 Support for Nuvoton (Winbond logic dept.) ARM9 processor,
@@ -553,18 +572,19 @@ config ARCH_W90X900 · 7 unmodified lines
553572 config ARCH_NUC93X
554573 bool "Nuvoton NUC93X CPU"
555574 select CPU_ARM926T
556− select COMMON_CLKDEV
575+ select CLKDEV_LOOKUP
557576 help
558577 Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a
559578 low-power and high performance MPEG-4/JPEG multimedia controller chip.
560579
561580 config ARCH_TEGRA
562581 bool "NVIDIA Tegra"
582+ select CLKDEV_LOOKUP
563583 select GENERIC_TIME
564584 select GENERIC_CLOCKEVENTS
565585 select GENERIC_GPIO
566586 select HAVE_CLK
567− select COMMON_CLKDEV
587+ select HAVE_SCHED_CLOCK
568588 select ARCH_HAS_BARRIERS if CACHE_L2X0
569589 select ARCH_HAS_CPUFREQ
570590 help
@@ -574,7 +594,7 @@ config ARCH_TEGRA · 3 unmodified lines
574594 config ARCH_PNX4008
575595 bool "Philips Nexperia PNX4008 Mobile"
576596 select CPU_ARM926T
577− select COMMON_CLKDEV
597+ select CLKDEV_LOOKUP
578598 select ARCH_USES_GETTIMEOFFSET
579599 help
580600 This enables support for Philips PNX4008 mobile platform.
@@ -584,9 +604,10 @@ config ARCH_PXA · 3 unmodified lines
584604 depends on MMU
585605 select ARCH_MTD_XIP
586606 select ARCH_HAS_CPUFREQ
587− select COMMON_CLKDEV
607+ select CLKDEV_LOOKUP
588608 select ARCH_REQUIRE_GPIOLIB
589609 select GENERIC_CLOCKEVENTS
610+ select HAVE_SCHED_CLOCK
590611 select TICK_ONESHOT
591612 select PLAT_PXA
592613 select SPARSE_IRQ
@@ -606,9 +627,15 @@ config ARCH_MSM · 13 unmodified lines
606627 (clock and power control, etc).
607628
608629 config ARCH_SHMOBILE
609− bool "Renesas SH-Mobile"
630+ bool "Renesas SH-Mobile / R-Mobile"
631+ select HAVE_CLK
632+ select CLKDEV_LOOKUP
633+ select GENERIC_CLOCKEVENTS
634+ select NO_IOPORT
635+ select SPARSE_IRQ
636+ select MULTI_IRQ_HANDLER
610637 help
611− Support for Renesas's SH-Mobile ARM platforms
638+ Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
612639
613640 config ARCH_RPC
614641 bool "RiscPC"
@@ -635,6 +662,7 @@ config ARCH_SA1100 · 20 unmodified lines
635662 select CPU_FREQ
636663 select GENERIC_CLOCKEVENTS
637664 select HAVE_CLK
665+ select HAVE_SCHED_CLOCK
638666 select TICK_ONESHOT
639667 select ARCH_REQUIRE_GPIOLIB
640668 help
@@ -738,6 +766,7 @@ config ARCH_S5PV310 · 97 unmodified lines
738766 select ARCH_SPARSEMEM_ENABLE
739767 select GENERIC_GPIO
740768 select HAVE_CLK
769+ select ARCH_HAS_CPUFREQ
741770 select GENERIC_CLOCKEVENTS
742771 select HAVE_S3C_RTC if RTC_CLASS
743772 select HAVE_S3C2410_I2C if I2C
@@ -761,7 +790,7 @@ config ARCH_TCC_926 · 17 unmodified lines
761790 bool "Telechips TCC ARM926-based systems"
762791 select CPU_ARM926T
763792 select HAVE_CLK
764− select COMMON_CLKDEV
793+ select CLKDEV_LOOKUP
765794 select GENERIC_CLOCKEVENTS
766795 help
767796 Support for Telechips TCC ARM926-based systems.
@@ -781,11 +810,12 @@ config ARCH_U300 · 13 unmodified lines
781810 bool "ST-Ericsson U300 Series"
782811 depends on MMU
783812 select CPU_ARM926T
813+ select HAVE_SCHED_CLOCK
784814 select HAVE_TCM
785815 select ARM_AMBA
786816 select ARM_VIC
787817 select GENERIC_CLOCKEVENTS
788− select COMMON_CLKDEV
818+ select CLKDEV_LOOKUP
789819 select GENERIC_GPIO
790820 help
791821 Support for ST-Ericsson U300 series mobile platforms.
@@ -795,8 +825,9 @@ config ARCH_U8500 · 3 unmodified lines
795825 select CPU_V7
796826 select ARM_AMBA
797827 select GENERIC_CLOCKEVENTS
798− select COMMON_CLKDEV
828+ select CLKDEV_LOOKUP
799829 select ARCH_REQUIRE_GPIOLIB
830+ select ARCH_HAS_CPUFREQ
800831 help
801832 Support for ST-Ericsson's Ux500 architecture
802833
@@ -805,7 +836,7 @@ config ARCH_NOMADIK · 2 unmodified lines
805836 select ARM_AMBA
806837 select ARM_VIC
807838 select CPU_ARM926T
808− select COMMON_CLKDEV
839+ select CLKDEV_LOOKUP
809840 select GENERIC_CLOCKEVENTS
810841 select ARCH_REQUIRE_GPIOLIB
811842 help
@@ -817,7 +848,7 @@ config ARCH_DAVINCI · 5 unmodified lines
817848 select ARCH_REQUIRE_GPIOLIB
818849 select ZONE_DMA
819850 select HAVE_IDE
820− select COMMON_CLKDEV
851+ select CLKDEV_LOOKUP
821852 select GENERIC_ALLOCATOR
822853 select ARCH_HAS_HOLES_MEMORYMODEL
823854 help
@@ -829,6 +860,7 @@ config ARCH_OMAP · 5 unmodified lines
829860 select ARCH_REQUIRE_GPIOLIB
830861 select ARCH_HAS_CPUFREQ
831862 select GENERIC_CLOCKEVENTS
863+ select HAVE_SCHED_CLOCK
832864 select ARCH_HAS_HOLES_MEMORYMODEL
833865 help
834866 Support for TI's OMAP platform (OMAP1/2/3/4).
@@ -837,7 +869,7 @@ config PLAT_SPEAR · 2 unmodified lines
837869 bool "ST SPEAr"
838870 select ARM_AMBA
839871 select ARCH_REQUIRE_GPIOLIB
840− select COMMON_CLKDEV
872+ select CLKDEV_LOOKUP
841873 select GENERIC_CLOCKEVENTS
842874 select HAVE_CLK
843875 help
@@ -902,6 +934,8 @@ source "arch/arm/mach-mv78xx0/Kconfig" · 58 unmodified lines
902934
903935 source "arch/arm/plat-mxc/Kconfig"
904936
937+source "arch/arm/mach-mxs/Kconfig"
938+
905939 source "arch/arm/mach-netx/Kconfig"
906940
907941 source "arch/arm/mach-nomadik/Kconfig"
@@ -982,9 +1016,11 @@ config ARCH_ACORN · 74 unmodified lines
9821016 config PLAT_IOP
9831017 bool
9841018 select GENERIC_CLOCKEVENTS
1019+ select HAVE_SCHED_CLOCK
9851020
9861021 config PLAT_ORION
9871022 bool
1023+ select HAVE_SCHED_CLOCK
9881024
9891025 config PLAT_PXA
9901026 bool
@@ -999,8 +1035,8 @@ source arch/arm/mm/Kconfig · 8 unmodified lines
9991035
10001036 config IWMMXT
10011037 bool "Enable iWMMXt support"
1002− depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK
1003− default y if PXA27x || PXA3xx || ARCH_MMP
1038+ depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
1039+ default y if PXA27x || PXA3xx || PXA95x || ARCH_MMP
10041040 help
10051041 Enable support for iWMMXt context switching at run time if
10061042 running on a CPU that supports it.
@@ -1017,6 +1053,11 @@ config CPU_HAS_PMU · 10 unmodified lines
10171053 default y
10181054 bool
10191055
1056+config MULTI_IRQ_HANDLER
1057+ bool
1058+ help
1059+ Allow each machine to specify it's own IRQ handler at run time.
1060+
10201061 if !MMU
10211062 source "arch/arm/Kconfig-nommu"
10221063 endif
@@ -1136,6 +1177,31 @@ config ARM_ERRATA_743622 · 113 unmodified lines
11361177 visible impact on the overall performance or power consumption of the
11371178 processor.
11381179
1180+config ARM_ERRATA_751472
1181+ bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation"
1182+ depends on CPU_V7 && SMP
1183+ help
1184+ This option enables the workaround for the 751472 Cortex-A9 (prior
1185+ to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the
1186+ completion of a following broadcasted operation if the second
1187+ operation is received by a CPU before the ICIALLUIS has completed,
1188+ potentially leading to corrupted entries in the cache or TLB.
1189+
1190+config ARM_ERRATA_753970
1191+ bool "ARM errata: cache sync operation may be faulty"
1192+ depends on CACHE_PL310
1193+ help
1194+ This option enables the workaround for the 753970 PL310 (r3p0) erratum.
1195+
1196+ Under some condition the effect of cache sync operation on
1197+ the store buffer still remains when the operation completes.
1198+ This means that the store buffer is always asked to drain and
1199+ this prevents it from merging any further writes. The workaround
1200+ is to replace the normal offset of cache sync operation (0x730)
1201+ by another offset targeting an unmapped PL310 register 0x740.
1202+ This has the same effect as the cache sync operation: store buffer
1203+ drain and waiting for all buffers empty.
1204+
11391205 endmenu
11401206
11411207 source "arch/arm/common/Kconfig"
@@ -1164,7 +1230,7 @@ config ISA_DMA_API · 22 unmodified lines
11641230 bool
11651231
11661232 config PCI
1167− bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE || ARCH_CNS3XXX
1233+ bool "PCI support" if MIGHT_HAVE_PCI
11681234 help
11691235 Find out whether you have a PCI motherboard. PCI is the name of a
11701236 bus system, i.e. the way the CPU talks to the other stuff inside
@@ -1175,6 +1241,12 @@ config PCI_DOMAINS · 4 unmodified lines
11751241 bool
11761242 depends on PCI
11771243
1244+config PCI_NANOENGINE
1245+ bool "BSE nanoEngine PCI support"
1246+ depends on SA1100_NANOENGINE
1247+ help
1248+ Enable PCI on the BSE nanoEngine board.
1249+
11781250 config PCI_SYSCALL
11791251 def_bool PCI
11801252
@@ -1205,10 +1277,11 @@ config SMP · 24 unmodified lines
12051277 depends on EXPERIMENTAL
12061278 depends on GENERIC_CLOCKEVENTS
12071279 depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \
1208− MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 ||\
1209− ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4
1280+ MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
1281+ ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \
1282+ ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE
12101283 select USE_GENERIC_SMP_HELPERS
1211− select HAVE_ARM_SCU
1284+ select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
12121285 help
12131286 This enables support for systems with more than one CPU. If you have
12141287 a system with only one CPU, like most personal computers, say N. If
@@ -1229,7 +1302,7 @@ config SMP · 14 unmodified lines
12291302 config SMP_ON_UP
12301303 bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"
12311304 depends on EXPERIMENTAL
1232− depends on SMP && !XIP && !THUMB2_KERNEL
1305+ depends on SMP && !XIP_KERNEL
12331306 default y
12341307 help
12351308 SMP kernels contain instructions which fail on non-SMP processors.
@@ -1248,6 +1321,7 @@ config HAVE_ARM_SCU · 12 unmodified lines
12481321 config HAVE_ARM_TWD
12491322 bool
12501323 depends on SMP
1324+ select TICK_ONESHOT
12511325 help
12521326 This options enables support for the ARM timer and watchdog unit
12531327
@@ -1283,6 +1357,7 @@ config NR_CPUS · 29 unmodified lines
12831357 config HOTPLUG_CPU
12841358 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
12851359 depends on SMP && HOTPLUG && EXPERIMENTAL
1360+ depends on !ARCH_MSM
12861361 help
12871362 Say Y here to experiment with turning CPUs off and on. CPUs
12881363 can be controlled through /sys/devices/system/cpu.
@@ -1291,7 +1366,7 @@ config LOCAL_TIMERS · 2 unmodified lines
12911366 bool "Use local timer interrupts"
12921367 depends on SMP
12931368 default y
1294− select HAVE_ARM_TWD
1369+ select HAVE_ARM_TWD if !ARCH_MSM_SCORPIONMP
12951370 help
12961371 Enable support for local timers on SMP platforms, rather then the
12971372 legacy IPI broadcast method. Local timers allows the system
@@ -1310,7 +1385,7 @@ config HZ · 12 unmodified lines
13101385 default 100
13111386
13121387 config THUMB2_KERNEL
1313− bool "Compile the kernel in Thumb-2 mode"
1388+ bool "Compile the kernel in Thumb-2 mode (EXPERIMENTAL)"
13141389 depends on CPU_V7 && !CPU_V6 && EXPERIMENTAL
13151390 select AEABI
13161391 select ARM_ASM_UNIFIED
@@ -1341,7 +1416,7 @@ config AEABI · 24 unmodified lines
13411416
13421417 config OABI_COMPAT
13431418 bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
1344− depends on AEABI && EXPERIMENTAL
1419+ depends on AEABI && EXPERIMENTAL && !THUMB2_KERNEL
13451420 default y
13461421 help
13471422 This option preserves the old syscall interface along with the
@@ -1398,15 +1473,6 @@ config HW_PERF_EVENTS · 50 unmodified lines
13981473 Enable hardware performance counter support for perf events. If
13991474 disabled, perf events will use software events only.
14001475
1401−config SPARSE_IRQ
1402− def_bool n
1403− help
1404− This enables support for sparse irqs. This is useful in general
1405− as most CPUs have a fairly sparse array of IRQ vectors, which
1406− the irq_desc then maps directly on to. Systems with a high
1407− number of off-chip IRQs will want to treat this as
1408− experimental until they have been independently verified.
1409−
14101476 source "mm/Kconfig"
14111477
14121478 config FORCE_MAX_ZONEORDER
@@ -1524,6 +1590,7 @@ config SECCOMP · 111 unmodified lines
15241590
15251591 config CC_STACKPROTECTOR
15261592 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1593+ depends on EXPERIMENTAL
15271594 help
15281595 This option turns on the -fstack-protector GCC feature. This
15291596 feature puts, at the beginning of functions, a canary value on
@@ -1650,6 +1717,19 @@ config ATAGS_PROC · 120 unmodified lines
16501717 Should the atags used to boot the kernel be exported in an "atags"
16511718 file in procfs. Useful with kexec.
16521719
1720+config CRASH_DUMP
1721+ bool "Build kdump crash kernel (EXPERIMENTAL)"
1722+ depends on EXPERIMENTAL
1723+ help
1724+ Generate crash dump after being started by kexec. This should
1725+ be normally only set in special crash dump kernels which are
1726+ loaded in the main kernel with kexec-tools into a specially
1727+ reserved region and then later executed after a crash by
1728+ kdump/kexec. The crash dump kernel must be compiled to a
1729+ memory address not used by the main kernel
1730+
1731+ For more details see Documentation/kdump/kdump.txt
1732+
16531733 config AUTO_ZRELADDR
16541734 bool "Auto calculation of the decompressed kernel image address"
16551735 depends on !ZBOOT_ROM && !ARCH_U300
@@ -1707,7 +1787,7 @@ config CPU_FREQ_S3C · 51 unmodified lines
17071787 Internal configuration node for common cpufreq on Samsung SoC
17081788
17091789 config CPU_FREQ_S3C24XX
1710− bool "CPUfreq driver for Samsung S3C24XX series CPUs"
1790+ bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"
17111791 depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL
17121792 select CPU_FREQ_S3C
17131793 help
@@ -1719,7 +1799,7 @@ config CPU_FREQ_S3C24XX · 5 unmodified lines
17191799 If in doubt, say N.
17201800
17211801 config CPU_FREQ_S3C24XX_PLL
1722− bool "Support CPUfreq changing of PLL frequency"
1802+ bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
17231803 depends on CPU_FREQ_S3C24XX && EXPERIMENTAL
17241804 help
17251805 Compile in support for changing the PLL frequency from the
arch/arm/Kconfig.debug+2−2
@@ -23,7 +23,7 @@ config STRICT_DEVMEM · 22 unmodified lines
2323 config FRAME_POINTER
2424 bool
2525 depends on !THUMB2_KERNEL
26− default y if !ARM_UNWIND
26+ default y if !ARM_UNWIND || FUNCTION_GRAPH_TRACER
2727 help
2828 If you say N here, the resulting kernel will be slightly smaller and
2929 faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled,
@@ -31,7 +31,7 @@ config FRAME_POINTER · 1 unmodified line
3131 reported is severely limited.
3232
3333 config ARM_UNWIND
34− bool "Enable stack unwinding support"
34+ bool "Enable stack unwinding support (EXPERIMENTAL)"
3535 depends on AEABI && EXPERIMENTAL
3636 default y
3737 help
arch/arm/Makefile+3−2
@@ -15,7 +15,7 @@ ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) · 14 unmodified lines
1515 LDFLAGS_vmlinux += --be8
1616 endif
1717
18−OBJCOPYFLAGS :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
18+OBJCOPYFLAGS :=-O binary -R .comment -S
1919 GZFLAGS :=-9
2020 #KBUILD_CFLAGS +=-pipe
2121 # Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
@@ -154,10 +154,11 @@ machine-$(CONFIG_ARCH_MSM) := msm · 132 unmodified lines
154154 machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0
155155 machine-$(CONFIG_ARCH_MX1) := imx
156156 machine-$(CONFIG_ARCH_MX2) := imx
157−machine-$(CONFIG_ARCH_MX25) := mx25
157+machine-$(CONFIG_ARCH_MX25) := imx
158158 machine-$(CONFIG_ARCH_MX3) := mx3
159159 machine-$(CONFIG_ARCH_MX5) := mx5
160160 machine-$(CONFIG_ARCH_MXC91231) := mxc91231
161+machine-$(CONFIG_ARCH_MXS) := mxs
161162 machine-$(CONFIG_ARCH_NETX) := netx
162163 machine-$(CONFIG_ARCH_NOMADIK) := nomadik
163164 machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx
arch/arm/boot/compressed/.gitignore+5−1
@@ -1,3 +1,7 @@
11 font.c
2−piggy.gz
2+lib1funcs.S
3+piggy.gzip
4+piggy.lzo
5+piggy.lzma
6+vmlinux
37 vmlinux.lds
arch/arm/boot/compressed/Makefile+4−0
@@ -45,6 +45,10 @@ else · 44 unmodified lines
4545 endif
4646 endif
4747
48+ifeq ($(CONFIG_ARCH_SHMOBILE),y)
49+OBJS += head-shmobile.o
50+endif
51+
4852 #
4953 # We now have a PIC decompressor implementation. Decompressors running
5054 # from RAM should not define ZTEXTADDR. Decompressors running directly
arch/arm/boot/compressed/head-shmobile.S+53−0
@@ -0,0 +1,53 @@
1+/*
2+ * The head-file for SH-Mobile ARM platforms
3+ *
4+ * Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
5+ * Simon Horman <horms@verge.net.au>
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 as published by
9+ * the Free Software Foundation; version 2 of the License.
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19+ */
20+
21+#ifdef CONFIG_ZBOOT_ROM
22+
23+ .section ".start", "ax"
24+
25+ /* load board-specific initialization code */
26+#include <mach/zboot.h>
27+
28+ b 1f
29+__atags:@ tag #1
30+ .long 12 @ tag->hdr.size = tag_size(tag_core);
31+ .long 0x54410001 @ tag->hdr.tag = ATAG_CORE;
32+ .long 0 @ tag->u.core.flags = 0;
33+ .long 0 @ tag->u.core.pagesize = 0;
34+ .long 0 @ tag->u.core.rootdev = 0;
35+ @ tag #2
36+ .long 8 @ tag->hdr.size = tag_size(tag_mem32);
37+ .long 0x54410002 @ tag->hdr.tag = ATAG_MEM;
38+ .long CONFIG_MEMORY_SIZE @ tag->u.mem.size = CONFIG_MEMORY_SIZE;
39+ .long CONFIG_MEMORY_START @ @ tag->u.mem.start = CONFIG_MEMORY_START;
40+ @ tag #3
41+ .long 0 @ tag->hdr.size = 0
42+ .long 0 @ tag->hdr.tag = ATAG_NONE;
43+1:
44+
45+ /* Set board ID necessary for boot */
46+ ldr r7, 1f @ Set machine type register
47+ adr r8, __atags @ Set atag register
48+ b 2f
49+
50+1 : .long MACH_TYPE
51+2 :
52+
53+#endif /* CONFIG_ZBOOT_ROM */
arch/arm/common/Kconfig+0−4
@@ -37,7 +37,3 @@ config SHARP_PARAM · 36 unmodified lines
3737
3838 config SHARP_SCOOP
3939 bool
40−
41−config COMMON_CLKDEV
42− bool
43− select HAVE_CLK
arch/arm/common/Makefile+1−0
@@ -17,3 +17,4 @@ obj-$(CONFIG_ARCH_IXP2000) += uengine.o · 16 unmodified lines
1717 obj-$(CONFIG_ARCH_IXP23XX) += uengine.o
1818 obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o
1919 obj-$(CONFIG_COMMON_CLKDEV) += clkdev.o
20+obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o
arch/arm/common/dmabounce.c+8−8
@@ -328,7 +328,7 @@ static inline void unmap_single(struct device *dev, dma_addr_t dma_addr, · 327 unmodified lines
328328 * substitute the safe buffer for the unsafe one.
329329 * (basically move the buffer from an unsafe area to a safe one)
330330 */
331−dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size,
331+dma_addr_t __dma_map_single(struct device *dev, void *ptr, size_t size,
332332 enum dma_data_direction dir)
333333 {
334334 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",
@@ -338,7 +338,7 @@ dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size, · 3 unmodified lines
338338
339339 return map_single(dev, ptr, size, dir);
340340 }
341−EXPORT_SYMBOL(dma_map_single);
341+EXPORT_SYMBOL(__dma_map_single);
342342
343343 /*
344344 * see if a mapped address was really a "safe" buffer and if so, copy
@@ -346,7 +346,7 @@ EXPORT_SYMBOL(dma_map_single); · 1 unmodified line
346346 * the safe buffer. (basically return things back to the way they
347347 * should be)
348348 */
349−void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
349+void __dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
350350 enum dma_data_direction dir)
351351 {
352352 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",
@@ -354,9 +354,9 @@ void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, · 1 unmodified line
354354
355355 unmap_single(dev, dma_addr, size, dir);
356356 }
357−EXPORT_SYMBOL(dma_unmap_single);
357+EXPORT_SYMBOL(__dma_unmap_single);
358358
359−dma_addr_t dma_map_page(struct device *dev, struct page *page,
359+dma_addr_t __dma_map_page(struct device *dev, struct page *page,
360360 unsigned long offset, size_t size, enum dma_data_direction dir)
361361 {
362362 dev_dbg(dev, "%s(page=%p,off=%#lx,size=%zx,dir=%x)\n",
@@ -372,7 +372,7 @@ dma_addr_t dma_map_page(struct device *dev, struct page *page, · 9 unmodified lines
372372
373373 return map_single(dev, page_address(page) + offset, size, dir);
374374 }
375−EXPORT_SYMBOL(dma_map_page);
375+EXPORT_SYMBOL(__dma_map_page);
376376
377377 /*
378378 * see if a mapped address was really a "safe" buffer and if so, copy
@@ -380,7 +380,7 @@ EXPORT_SYMBOL(dma_map_page); · 1 unmodified line
380380 * the safe buffer. (basically return things back to the way they
381381 * should be)
382382 */
383−void dma_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size,
383+void __dma_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size,
384384 enum dma_data_direction dir)
385385 {
386386 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",
@@ -388,7 +388,7 @@ void dma_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size, · 1 unmodified line
388388
389389 unmap_single(dev, dma_addr, size, dir);
390390 }
391−EXPORT_SYMBOL(dma_unmap_page);
391+EXPORT_SYMBOL(__dma_unmap_page);
392392
393393 int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr,
394394 unsigned long off, size_t sz, enum dma_data_direction dir)
arch/arm/common/gic.c+80−53
@@ -35,6 +35,9 @@ · 34 unmodified lines
3535
3636 static DEFINE_SPINLOCK(irq_controller_lock);
3737
38+/* Address of GIC 0 CPU interface */
39+void __iomem *gic_cpu_base_addr __read_mostly;
40+
3841 struct gic_chip_data {
3942 unsigned int irq_offset;
4043 void __iomem *dist_base;
@@ -45,59 +48,58 @@ struct gic_chip_data { · 4 unmodified lines
4548 #define MAX_GIC_NR 1
4649 #endif
4750
48−static struct gic_chip_data gic_data[MAX_GIC_NR];
51+static struct gic_chip_data gic_data[MAX_GIC_NR] __read_mostly;
4952
50−static inline void __iomem *gic_dist_base(unsigned int irq)
53+static inline void __iomem *gic_dist_base(struct irq_data *d)
5154 {
52− struct gic_chip_data *gic_data = get_irq_chip_data(irq);
55+ struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);
5356 return gic_data->dist_base;
5457 }
5558
56−static inline void __iomem *gic_cpu_base(unsigned int irq)
59+static inline void __iomem *gic_cpu_base(struct irq_data *d)
5760 {
58− struct gic_chip_data *gic_data = get_irq_chip_data(irq);
61+ struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);
5962 return gic_data->cpu_base;
6063 }
6164
62−static inline unsigned int gic_irq(unsigned int irq)
65+static inline unsigned int gic_irq(struct irq_data *d)
6366 {
64− struct gic_chip_data *gic_data = get_irq_chip_data(irq);
65− return irq - gic_data->irq_offset;
67+ struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);
68+ return d->irq - gic_data->irq_offset;
6669 }
6770
6871 /*
6972 * Routines to acknowledge, disable and enable interrupts
7073 */
71−static void gic_ack_irq(unsigned int irq)
74+static void gic_ack_irq(struct irq_data *d)
7275 {
73−
7476 spin_lock(&irq_controller_lock);
75− writel(gic_irq(irq), gic_cpu_base(irq) + GIC_CPU_EOI);
77+ writel(gic_irq(d), gic_cpu_base(d) + GIC_CPU_EOI);
7678 spin_unlock(&irq_controller_lock);
7779 }
7880
79−static void gic_mask_irq(unsigned int irq)
81+static void gic_mask_irq(struct irq_data *d)
8082 {
81− u32 mask = 1 << (irq % 32);
83+ u32 mask = 1 << (d->irq % 32);
8284
8385 spin_lock(&irq_controller_lock);
84− writel(mask, gic_dist_base(irq) + GIC_DIST_ENABLE_CLEAR + (gic_irq(irq) / 32) * 4);
86+ writel(mask, gic_dist_base(d) + GIC_DIST_ENABLE_CLEAR + (gic_irq(d) / 32) * 4);
8587 spin_unlock(&irq_controller_lock);
8688 }
8789
88−static void gic_unmask_irq(unsigned int irq)
90+static void gic_unmask_irq(struct irq_data *d)
8991 {
90− u32 mask = 1 << (irq % 32);
92+ u32 mask = 1 << (d->irq % 32);
9193
9294 spin_lock(&irq_controller_lock);
93− writel(mask, gic_dist_base(irq) + GIC_DIST_ENABLE_SET + (gic_irq(irq) / 32) * 4);
95+ writel(mask, gic_dist_base(d) + GIC_DIST_ENABLE_SET + (gic_irq(d) / 32) * 4);
9496 spin_unlock(&irq_controller_lock);
9597 }
9698
97−static int gic_set_type(unsigned int irq, unsigned int type)
99+static int gic_set_type(struct irq_data *d, unsigned int type)
98100 {
99− void __iomem *base = gic_dist_base(irq);
100− unsigned int gicirq = gic_irq(irq);
101+ void __iomem *base = gic_dist_base(d);
102+ unsigned int gicirq = gic_irq(d);
101103 u32 enablemask = 1 << (gicirq % 32);
102104 u32 enableoff = (gicirq / 32) * 4;
103105 u32 confmask = 0x2 << ((gicirq % 16) * 2);
@@ -140,21 +142,22 @@ static int gic_set_type(unsigned int irq, unsigned int type) · 36 unmodified lines
140142 }
141143
142144 #ifdef CONFIG_SMP
143−static int gic_set_cpu(unsigned int irq, const struct cpumask *mask_val)
145+static int
146+gic_set_cpu(struct irq_data *d, const struct cpumask *mask_val, bool force)
144147 {
145− void __iomem *reg = gic_dist_base(irq) + GIC_DIST_TARGET + (gic_irq(irq) & ~3);
146− unsigned int shift = (irq % 4) * 8;
148+ void __iomem *reg = gic_dist_base(d) + GIC_DIST_TARGET + (gic_irq(d) & ~3);
149+ unsigned int shift = (d->irq % 4) * 8;
147150 unsigned int cpu = cpumask_first(mask_val);
148151 u32 val;
149152 struct irq_desc *desc;
150153
151154 spin_lock(&irq_controller_lock);
152− desc = irq_to_desc(irq);
155+ desc = irq_to_desc(d->irq);
153156 if (desc == NULL) {
154157 spin_unlock(&irq_controller_lock);
155158 return -EINVAL;
156159 }
157− desc->node = cpu;
160+ d->node = cpu;
158161 val = readl(reg) & ~(0xff << shift);
159162 val |= 1 << (cpu + shift);
160163 writel(val, reg);
@@ -172,7 +175,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) · 11 unmodified lines
172175 unsigned long status;
173176
174177 /* primary controller ack'ing */
175− chip->ack(irq);
178+ chip->irq_ack(&desc->irq_data);
176179
177180 spin_lock(&irq_controller_lock);
178181 status = readl(chip_data->cpu_base + GIC_CPU_INTACK);
@@ -190,17 +193,17 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) · 11 unmodified lines
190193
191194 out:
192195 /* primary controller unmasking */
193− chip->unmask(irq);
196+ chip->irq_unmask(&desc->irq_data);
194197 }
195198
196199 static struct irq_chip gic_chip = {
197− .name = "GIC",
198− .ack = gic_ack_irq,
199− .mask = gic_mask_irq,
200− .unmask = gic_unmask_irq,
201− .set_type = gic_set_type,
200+ .name = "GIC",
201+ .irq_ack = gic_ack_irq,
202+ .irq_mask = gic_mask_irq,
203+ .irq_unmask = gic_unmask_irq,
204+ .irq_set_type = gic_set_type,
202205 #ifdef CONFIG_SMP
203− .set_affinity = gic_set_cpu,
206+ .irq_set_affinity = gic_set_cpu,
204207 #endif
205208 };
206209
@@ -213,21 +216,16 @@ void __init gic_cascade_irq(unsigned int gic_nr, unsigned int irq) · 6 unmodified lines
213216 set_irq_chained_handler(irq, gic_handle_cascade_irq);
214217 }
215218
216−void __init gic_dist_init(unsigned int gic_nr, void __iomem *base,
217− unsigned int irq_start)
219+static void __init gic_dist_init(struct gic_chip_data *gic,
220+ unsigned int irq_start)
218221 {
219222 unsigned int gic_irqs, irq_limit, i;
223+ void __iomem *base = gic->dist_base;
220224 u32 cpumask = 1 << smp_processor_id();
221225
222− if (gic_nr >= MAX_GIC_NR)
223− BUG();
224−
225226 cpumask |= cpumask << 8;
226227 cpumask |= cpumask << 16;
227228
228− gic_data[gic_nr].dist_base = base;
229− gic_data[gic_nr].irq_offset = (irq_start - 1) & ~31;
230−
231229 writel(0, base + GIC_DIST_CTRL);
232230
233231 /*
@@ -267,7 +265,7 @@ void __init gic_dist_init(unsigned int gic_nr, void __iomem *base, · 33 unmodified lines
267265 /*
268266 * Limit number of interrupts registered to the platform maximum
269267 */
270− irq_limit = gic_data[gic_nr].irq_offset + gic_irqs;
268+ irq_limit = gic->irq_offset + gic_irqs;
271269 if (WARN_ON(irq_limit > NR_IRQS))
272270 irq_limit = NR_IRQS;
273271
@@ -276,7 +274,7 @@ void __init gic_dist_init(unsigned int gic_nr, void __iomem *base, · 2 unmodified lines
276274 */
277275 for (i = irq_start; i < irq_limit; i++) {
278276 set_irq_chip(i, &gic_chip);
279− set_irq_chip_data(i, &gic_data[gic_nr]);
277+ set_irq_chip_data(i, gic);
280278 set_irq_handler(i, handle_level_irq);
281279 set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
282280 }
@@ -284,19 +282,12 @@ void __init gic_dist_init(unsigned int gic_nr, void __iomem *base, · 1 unmodified line
284282 writel(1, base + GIC_DIST_CTRL);
285283 }
286284
287−void __cpuinit gic_cpu_init(unsigned int gic_nr, void __iomem *base)
285+static void __cpuinit gic_cpu_init(struct gic_chip_data *gic)
288286 {
289− void __iomem *dist_base;
287+ void __iomem *dist_base = gic->dist_base;
288+ void __iomem *base = gic->cpu_base;
290289 int i;
291290
292− if (gic_nr >= MAX_GIC_NR)
293− BUG();
294−
295− dist_base = gic_data[gic_nr].dist_base;
296− BUG_ON(!dist_base);
297−
298− gic_data[gic_nr].cpu_base = base;
299−
300291 /*
301292 * Deal with the banked PPI and SGI interrupts - disable all
302293 * PPI interrupts, ensure all SGI interrupts are enabled.
@@ -314,6 +305,42 @@ void __cpuinit gic_cpu_init(unsigned int gic_nr, void __iomem *base) · 11 unmodified lines
314305 writel(1, base + GIC_CPU_CTRL);
315306 }
316307
308+void __init gic_init(unsigned int gic_nr, unsigned int irq_start,
309+ void __iomem *dist_base, void __iomem *cpu_base)
310+{
311+ struct gic_chip_data *gic;
312+
313+ BUG_ON(gic_nr >= MAX_GIC_NR);
314+
315+ gic = &gic_data[gic_nr];
316+ gic->dist_base = dist_base;
317+ gic->cpu_base = cpu_base;
318+ gic->irq_offset = (irq_start - 1) & ~31;
319+
320+ if (gic_nr == 0)
321+ gic_cpu_base_addr = cpu_base;
322+
323+ gic_dist_init(gic, irq_start);
324+ gic_cpu_init(gic);
325+}
326+
327+void __cpuinit gic_secondary_init(unsigned int gic_nr)
328+{
329+ BUG_ON(gic_nr >= MAX_GIC_NR);
330+
331+ gic_cpu_init(&gic_data[gic_nr]);
332+}
333+
334+void __cpuinit gic_enable_ppi(unsigned int irq)
335+{
336+ unsigned long flags;
337+
338+ local_irq_save(flags);
339+ irq_to_desc(irq)->status |= IRQ_NOPROBE;
340+ gic_unmask_irq(irq_get_irq_data(irq));
341+ local_irq_restore(flags);
342+}
343+
317344 #ifdef CONFIG_SMP
318345 void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
319346 {
arch/arm/common/it8152.c+10−6
@@ -31,8 +31,10 @@ · 30 unmodified lines
3131
3232 #define MAX_SLOTS 21
3333
34−static void it8152_mask_irq(unsigned int irq)
34+static void it8152_mask_irq(struct irq_data *d)
3535 {
36+ unsigned int irq = d->irq;
37+
3638 if (irq >= IT8152_LD_IRQ(0)) {
3739 __raw_writel((__raw_readl(IT8152_INTC_LDCNIMR) |
3840 (1 << (irq - IT8152_LD_IRQ(0)))),
@@ -48,8 +50,10 @@ static void it8152_mask_irq(unsigned int irq) · 9 unmodified lines
4850 }
4951 }
5052
51−static void it8152_unmask_irq(unsigned int irq)
53+static void it8152_unmask_irq(struct irq_data *d)
5254 {
55+ unsigned int irq = d->irq;
56+
5357 if (irq >= IT8152_LD_IRQ(0)) {
5458 __raw_writel((__raw_readl(IT8152_INTC_LDCNIMR) &
5559 ~(1 << (irq - IT8152_LD_IRQ(0)))),
@@ -67,9 +71,9 @@ static void it8152_unmask_irq(unsigned int irq) · 11 unmodified lines
6771
6872 static struct irq_chip it8152_irq_chip = {
6973 .name = "it8152",
70− .ack = it8152_mask_irq,
71− .mask = it8152_mask_irq,
72− .unmask = it8152_unmask_irq,
74+ .irq_ack = it8152_mask_irq,
75+ .irq_mask = it8152_mask_irq,
76+ .irq_unmask = it8152_unmask_irq,
7377 };
7478
7579 void it8152_init_irq(void)
@@ -236,7 +240,7 @@ static struct resource it8152_mem = { · 160 unmodified lines
236240
237241 /*
238242 * The following functions are needed for DMA bouncing.
239− * ITE8152 chip can addrees up to 64MByte, so all the devices
243+ * ITE8152 chip can address up to 64MByte, so all the devices
240244 * connected to ITE8152 (PCI and USB) should have limited DMA window
241245 */
242246
arch/arm/common/locomo.c+12−12
@@ -144,7 +144,7 @@ static void locomo_handler(unsigned int irq, struct irq_desc *desc) · 143 unmodified lines
144144 int req, i;
145145
146146 /* Acknowledge the parent IRQ */
147− desc->chip->ack(irq);
147+ desc->irq_data.chip->irq_ack(&desc->irq_data);
148148
149149 /* check why this interrupt was generated */
150150 req = locomo_readl(lchip->base + LOCOMO_ICR) & 0x0f00;
@@ -161,33 +161,33 @@ static void locomo_handler(unsigned int irq, struct irq_desc *desc) · 10 unmodified lines
161161 }
162162 }
163163
164−static void locomo_ack_irq(unsigned int irq)
164+static void locomo_ack_irq(struct irq_data *d)
165165 {
166166 }
167167
168−static void locomo_mask_irq(unsigned int irq)
168+static void locomo_mask_irq(struct irq_data *d)
169169 {
170− struct locomo *lchip = get_irq_chip_data(irq);
170+ struct locomo *lchip = irq_data_get_irq_chip_data(d);
171171 unsigned int r;
172172 r = locomo_readl(lchip->base + LOCOMO_ICR);
173− r &= ~(0x0010 << (irq - lchip->irq_base));
173+ r &= ~(0x0010 << (d->irq - lchip->irq_base));
174174 locomo_writel(r, lchip->base + LOCOMO_ICR);
175175 }
176176
177−static void locomo_unmask_irq(unsigned int irq)
177+static void locomo_unmask_irq(struct irq_data *d)
178178 {
179− struct locomo *lchip = get_irq_chip_data(irq);
179+ struct locomo *lchip = irq_data_get_irq_chip_data(d);
180180 unsigned int r;
181181 r = locomo_readl(lchip->base + LOCOMO_ICR);
182− r |= (0x0010 << (irq - lchip->irq_base));
182+ r |= (0x0010 << (d->irq - lchip->irq_base));
183183 locomo_writel(r, lchip->base + LOCOMO_ICR);
184184 }
185185
186186 static struct irq_chip locomo_chip = {
187− .name = "LOCOMO",
188− .ack = locomo_ack_irq,
189− .mask = locomo_mask_irq,
190− .unmask = locomo_unmask_irq,
187+ .name = "LOCOMO",
188+ .irq_ack = locomo_ack_irq,
189+ .irq_mask = locomo_mask_irq,
190+ .irq_unmask = locomo_unmask_irq,
191191 };
192192
193193 static void locomo_setup_irq(struct locomo *lchip)
arch/arm/common/sa1111.c+48−48
@@ -210,7 +210,7 @@ sa1111_irq_handler(unsigned int irq, struct irq_desc *desc) · 209 unmodified lines
210210
211211 sa1111_writel(stat0, mapbase + SA1111_INTSTATCLR0);
212212
213− desc->chip->ack(irq);
213+ desc->irq_data.chip->irq_ack(&desc->irq_data);
214214
215215 sa1111_writel(stat1, mapbase + SA1111_INTSTATCLR1);
216216
@@ -228,35 +228,35 @@ sa1111_irq_handler(unsigned int irq, struct irq_desc *desc) · 11 unmodified lines
228228 generic_handle_irq(i + sachip->irq_base);
229229
230230 /* For level-based interrupts */
231− desc->chip->unmask(irq);
231+ desc->irq_data.chip->irq_unmask(&desc->irq_data);
232232 }
233233
234234 #define SA1111_IRQMASK_LO(x) (1 << (x - sachip->irq_base))
235235 #define SA1111_IRQMASK_HI(x) (1 << (x - sachip->irq_base - 32))
236236
237−static void sa1111_ack_irq(unsigned int irq)
237+static void sa1111_ack_irq(struct irq_data *d)
238238 {
239239 }
240240
241−static void sa1111_mask_lowirq(unsigned int irq)
241+static void sa1111_mask_lowirq(struct irq_data *d)
242242 {
243− struct sa1111 *sachip = get_irq_chip_data(irq);
243+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
244244 void __iomem *mapbase = sachip->base + SA1111_INTC;
245245 unsigned long ie0;
246246
247247 ie0 = sa1111_readl(mapbase + SA1111_INTEN0);
248− ie0 &= ~SA1111_IRQMASK_LO(irq);
248+ ie0 &= ~SA1111_IRQMASK_LO(d->irq);
249249 writel(ie0, mapbase + SA1111_INTEN0);
250250 }
251251
252−static void sa1111_unmask_lowirq(unsigned int irq)
252+static void sa1111_unmask_lowirq(struct irq_data *d)
253253 {
254− struct sa1111 *sachip = get_irq_chip_data(irq);
254+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
255255 void __iomem *mapbase = sachip->base + SA1111_INTC;
256256 unsigned long ie0;
257257
258258 ie0 = sa1111_readl(mapbase + SA1111_INTEN0);
259− ie0 |= SA1111_IRQMASK_LO(irq);
259+ ie0 |= SA1111_IRQMASK_LO(d->irq);
260260 sa1111_writel(ie0, mapbase + SA1111_INTEN0);
261261 }
262262
@@ -267,11 +267,11 @@ static void sa1111_unmask_lowirq(unsigned int irq) · 4 unmodified lines
267267 * be triggered. In fact, its very difficult, if not impossible to get
268268 * INTSET to re-trigger the interrupt.
269269 */
270−static int sa1111_retrigger_lowirq(unsigned int irq)
270+static int sa1111_retrigger_lowirq(struct irq_data *d)
271271 {
272− struct sa1111 *sachip = get_irq_chip_data(irq);
272+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
273273 void __iomem *mapbase = sachip->base + SA1111_INTC;
274− unsigned int mask = SA1111_IRQMASK_LO(irq);
274+ unsigned int mask = SA1111_IRQMASK_LO(d->irq);
275275 unsigned long ip0;
276276 int i;
277277
@@ -279,21 +279,21 @@ static int sa1111_retrigger_lowirq(unsigned int irq) · 1 unmodified line
279279 for (i = 0; i < 8; i++) {
280280 sa1111_writel(ip0 ^ mask, mapbase + SA1111_INTPOL0);
281281 sa1111_writel(ip0, mapbase + SA1111_INTPOL0);
282− if (sa1111_readl(mapbase + SA1111_INTSTATCLR1) & mask)
282+ if (sa1111_readl(mapbase + SA1111_INTSTATCLR0) & mask)
283283 break;
284284 }
285285
286286 if (i == 8)
287287 printk(KERN_ERR "Danger Will Robinson: failed to "
288− "re-trigger IRQ%d\n", irq);
288+ "re-trigger IRQ%d\n", d->irq);
289289 return i == 8 ? -1 : 0;
290290 }
291291
292−static int sa1111_type_lowirq(unsigned int irq, unsigned int flags)
292+static int sa1111_type_lowirq(struct irq_data *d, unsigned int flags)
293293 {
294− struct sa1111 *sachip = get_irq_chip_data(irq);
294+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
295295 void __iomem *mapbase = sachip->base + SA1111_INTC;
296− unsigned int mask = SA1111_IRQMASK_LO(irq);
296+ unsigned int mask = SA1111_IRQMASK_LO(d->irq);
297297 unsigned long ip0;
298298
299299 if (flags == IRQ_TYPE_PROBE)
@@ -313,11 +313,11 @@ static int sa1111_type_lowirq(unsigned int irq, unsigned int flags) · 13 unmodified lines
313313 return 0;
314314 }
315315
316−static int sa1111_wake_lowirq(unsigned int irq, unsigned int on)
316+static int sa1111_wake_lowirq(struct irq_data *d, unsigned int on)
317317 {
318− struct sa1111 *sachip = get_irq_chip_data(irq);
318+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
319319 void __iomem *mapbase = sachip->base + SA1111_INTC;
320− unsigned int mask = SA1111_IRQMASK_LO(irq);
320+ unsigned int mask = SA1111_IRQMASK_LO(d->irq);
321321 unsigned long we0;
322322
323323 we0 = sa1111_readl(mapbase + SA1111_WAKEEN0);
@@ -332,33 +332,33 @@ static int sa1111_wake_lowirq(unsigned int irq, unsigned int on) · 8 unmodified lines
332332
333333 static struct irq_chip sa1111_low_chip = {
334334 .name = "SA1111-l",
335− .ack = sa1111_ack_irq,
336− .mask = sa1111_mask_lowirq,
337− .unmask = sa1111_unmask_lowirq,
338− .retrigger = sa1111_retrigger_lowirq,
339− .set_type = sa1111_type_lowirq,
340− .set_wake = sa1111_wake_lowirq,
335+ .irq_ack = sa1111_ack_irq,
336+ .irq_mask = sa1111_mask_lowirq,
337+ .irq_unmask = sa1111_unmask_lowirq,
338+ .irq_retrigger = sa1111_retrigger_lowirq,
339+ .irq_set_type = sa1111_type_lowirq,
340+ .irq_set_wake = sa1111_wake_lowirq,
341341 };
342342
343−static void sa1111_mask_highirq(unsigned int irq)
343+static void sa1111_mask_highirq(struct irq_data *d)
344344 {
345− struct sa1111 *sachip = get_irq_chip_data(irq);
345+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
346346 void __iomem *mapbase = sachip->base + SA1111_INTC;
347347 unsigned long ie1;
348348
349349 ie1 = sa1111_readl(mapbase + SA1111_INTEN1);
350− ie1 &= ~SA1111_IRQMASK_HI(irq);
350+ ie1 &= ~SA1111_IRQMASK_HI(d->irq);
351351 sa1111_writel(ie1, mapbase + SA1111_INTEN1);
352352 }
353353
354−static void sa1111_unmask_highirq(unsigned int irq)
354+static void sa1111_unmask_highirq(struct irq_data *d)
355355 {
356− struct sa1111 *sachip = get_irq_chip_data(irq);
356+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
357357 void __iomem *mapbase = sachip->base + SA1111_INTC;
358358 unsigned long ie1;
359359
360360 ie1 = sa1111_readl(mapbase + SA1111_INTEN1);
361− ie1 |= SA1111_IRQMASK_HI(irq);
361+ ie1 |= SA1111_IRQMASK_HI(d->irq);
362362 sa1111_writel(ie1, mapbase + SA1111_INTEN1);
363363 }
364364
@@ -369,11 +369,11 @@ static void sa1111_unmask_highirq(unsigned int irq) · 4 unmodified lines
369369 * be triggered. In fact, its very difficult, if not impossible to get
370370 * INTSET to re-trigger the interrupt.
371371 */
372−static int sa1111_retrigger_highirq(unsigned int irq)
372+static int sa1111_retrigger_highirq(struct irq_data *d)
373373 {
374− struct sa1111 *sachip = get_irq_chip_data(irq);
374+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
375375 void __iomem *mapbase = sachip->base + SA1111_INTC;
376− unsigned int mask = SA1111_IRQMASK_HI(irq);
376+ unsigned int mask = SA1111_IRQMASK_HI(d->irq);
377377 unsigned long ip1;
378378 int i;
379379
@@ -387,15 +387,15 @@ static int sa1111_retrigger_highirq(unsigned int irq) · 7 unmodified lines
387387
388388 if (i == 8)
389389 printk(KERN_ERR "Danger Will Robinson: failed to "
390− "re-trigger IRQ%d\n", irq);
390+ "re-trigger IRQ%d\n", d->irq);
391391 return i == 8 ? -1 : 0;
392392 }
393393
394−static int sa1111_type_highirq(unsigned int irq, unsigned int flags)
394+static int sa1111_type_highirq(struct irq_data *d, unsigned int flags)
395395 {
396− struct sa1111 *sachip = get_irq_chip_data(irq);
396+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
397397 void __iomem *mapbase = sachip->base + SA1111_INTC;
398− unsigned int mask = SA1111_IRQMASK_HI(irq);
398+ unsigned int mask = SA1111_IRQMASK_HI(d->irq);
399399 unsigned long ip1;
400400
401401 if (flags == IRQ_TYPE_PROBE)
@@ -415,11 +415,11 @@ static int sa1111_type_highirq(unsigned int irq, unsigned int flags) · 13 unmodified lines
415415 return 0;
416416 }
417417
418−static int sa1111_wake_highirq(unsigned int irq, unsigned int on)
418+static int sa1111_wake_highirq(struct irq_data *d, unsigned int on)
419419 {
420− struct sa1111 *sachip = get_irq_chip_data(irq);
420+ struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
421421 void __iomem *mapbase = sachip->base + SA1111_INTC;
422− unsigned int mask = SA1111_IRQMASK_HI(irq);
422+ unsigned int mask = SA1111_IRQMASK_HI(d->irq);
423423 unsigned long we1;
424424
425425 we1 = sa1111_readl(mapbase + SA1111_WAKEEN1);
@@ -434,12 +434,12 @@ static int sa1111_wake_highirq(unsigned int irq, unsigned int on) · 8 unmodified lines
434434
435435 static struct irq_chip sa1111_high_chip = {
436436 .name = "SA1111-h",
437− .ack = sa1111_ack_irq,
438− .mask = sa1111_mask_highirq,
439− .unmask = sa1111_unmask_highirq,
440− .retrigger = sa1111_retrigger_highirq,
441− .set_type = sa1111_type_highirq,
442− .set_wake = sa1111_wake_highirq,
437+ .irq_ack = sa1111_ack_irq,
438+ .irq_mask = sa1111_mask_highirq,
439+ .irq_unmask = sa1111_unmask_highirq,
440+ .irq_retrigger = sa1111_retrigger_highirq,
441+ .irq_set_type = sa1111_type_highirq,
442+ .irq_set_wake = sa1111_wake_highirq,
443443 };
444444
445445 static void sa1111_setup_irq(struct sa1111 *sachip)
arch/arm/common/timer-sp.crenamed from arch/arm/plat-versatile/timer-sp.c+2−6
@@ -1,5 +1,5 @@
11 /*
2− * linux/arch/arm/plat-versatile/timer-sp.c
2+ * linux/arch/arm/common/timer-sp.c
33 *
44 * Copyright (C) 1999 - 2003 ARM Limited
55 * Copyright (C) 2000 Deep Blue Solutions Ltd
@@ -26,8 +26,6 @@ · 20 unmodified lines
2626
2727 #include <asm/hardware/arm_timer.h>
2828
29−#include <plat/timer-sp.h>
30−
3129 /*
3230 * These timers are currently always setup to be clocked at 1MHz.
3331 */
@@ -46,7 +44,6 @@ static struct clocksource clocksource_sp804 = { · 12 unmodified lines
4644 .rating = 200,
4745 .read = sp804_read,
4846 .mask = CLOCKSOURCE_MASK(32),
49− .shift = 20,
5047 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
5148 };
5249
@@ -63,8 +60,7 @@ void __init sp804_clocksource_init(void __iomem *base) · 10 unmodified lines
6360 writel(TIMER_CTRL_32BIT | TIMER_CTRL_ENABLE | TIMER_CTRL_PERIODIC,
6461 clksrc_base + TIMER_CTRL);
6562
66− cs->mult = clocksource_khz2mult(TIMER_FREQ_KHZ, cs->shift);
67− clocksource_register(cs);
63+ clocksource_register_khz(cs, TIMER_FREQ_KHZ);
6864 }
6965
7066
arch/arm/common/vic.c+17−17
@@ -70,7 +70,7 @@ static inline struct vic_device *to_vic(struct sys_device *sys) · 69 unmodified lines
7070 * vic_init2 - common initialisation code
7171 * @base: Base of the VIC.
7272 *
73− * Common initialisation code for registeration
73+ * Common initialisation code for registration
7474 * and resume.
7575 */
7676 static void vic_init2(void __iomem *base)
@@ -204,26 +204,26 @@ static void __init vic_pm_register(void __iomem *base, unsigned int irq, u32 res · 127 unmodified lines
204204 static inline void vic_pm_register(void __iomem *base, unsigned int irq, u32 arg1) { }
205205 #endif /* CONFIG_PM */
206206
207−static void vic_ack_irq(unsigned int irq)
207+static void vic_ack_irq(struct irq_data *d)
208208 {
209− void __iomem *base = get_irq_chip_data(irq);
210− irq &= 31;
209+ void __iomem *base = irq_data_get_irq_chip_data(d);
210+ unsigned int irq = d->irq & 31;
211211 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
212212 /* moreover, clear the soft-triggered, in case it was the reason */
213213 writel(1 << irq, base + VIC_INT_SOFT_CLEAR);
214214 }
215215
216−static void vic_mask_irq(unsigned int irq)
216+static void vic_mask_irq(struct irq_data *d)
217217 {
218− void __iomem *base = get_irq_chip_data(irq);
219− irq &= 31;
218+ void __iomem *base = irq_data_get_irq_chip_data(d);
219+ unsigned int irq = d->irq & 31;
220220 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
221221 }
222222
223−static void vic_unmask_irq(unsigned int irq)
223+static void vic_unmask_irq(struct irq_data *d)
224224 {
225− void __iomem *base = get_irq_chip_data(irq);
226− irq &= 31;
225+ void __iomem *base = irq_data_get_irq_chip_data(d);
226+ unsigned int irq = d->irq & 31;
227227 writel(1 << irq, base + VIC_INT_ENABLE);
228228 }
229229
@@ -242,10 +242,10 @@ static struct vic_device *vic_from_irq(unsigned int irq) · 12 unmodified lines
242242 return NULL;
243243 }
244244
245−static int vic_set_wake(unsigned int irq, unsigned int on)
245+static int vic_set_wake(struct irq_data *d, unsigned int on)
246246 {
247− struct vic_device *v = vic_from_irq(irq);
248− unsigned int off = irq & 31;
247+ struct vic_device *v = vic_from_irq(d->irq);
248+ unsigned int off = d->irq & 31;
249249 u32 bit = 1 << off;
250250
251251 if (!v)
@@ -267,10 +267,10 @@ static int vic_set_wake(unsigned int irq, unsigned int on) · 15 unmodified lines
267267
268268 static struct irq_chip vic_chip = {
269269 .name = "VIC",
270− .ack = vic_ack_irq,
271− .mask = vic_mask_irq,
272− .unmask = vic_unmask_irq,
273− .set_wake = vic_set_wake,
270+ .irq_ack = vic_ack_irq,
271+ .irq_mask = vic_mask_irq,
272+ .irq_unmask = vic_unmask_irq,
273+ .irq_set_wake = vic_set_wake,
274274 };
275275
276276 static void __init vic_disable(void __iomem *base)
arch/arm/configs/ag5evm_defconfig+83−0
@@ -0,0 +1,83 @@
1+CONFIG_EXPERIMENTAL=y
2+CONFIG_SYSVIPC=y
3+CONFIG_IKCONFIG=y
4+CONFIG_IKCONFIG_PROC=y
5+CONFIG_LOG_BUF_SHIFT=16
6+CONFIG_NAMESPACES=y
7+# CONFIG_UTS_NS is not set
8+# CONFIG_IPC_NS is not set
9+# CONFIG_USER_NS is not set
10+# CONFIG_PID_NS is not set
11+CONFIG_BLK_DEV_INITRD=y
12+CONFIG_INITRAMFS_SOURCE=""
13+CONFIG_EXPERT=y
14+CONFIG_SLAB=y
15+# CONFIG_BLK_DEV_BSG is not set
16+# CONFIG_IOSCHED_DEADLINE is not set
17+# CONFIG_IOSCHED_CFQ is not set
18+CONFIG_ARCH_SHMOBILE=y
19+CONFIG_ARCH_SH73A0=y
20+CONFIG_MACH_AG5EVM=y
21+CONFIG_MEMORY_SIZE=0x10000000
22+CONFIG_CPU_BPREDICT_DISABLE=y
23+CONFIG_ARM_ERRATA_430973=y
24+CONFIG_ARM_ERRATA_458693=y
25+CONFIG_NO_HZ=y
26+CONFIG_AEABI=y
27+# CONFIG_OABI_COMPAT is not set
28+CONFIG_HIGHMEM=y
29+CONFIG_ZBOOT_ROM_TEXT=0x0
30+CONFIG_ZBOOT_ROM_BSS=0x0
31+CONFIG_CMDLINE="console=tty0 console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel"
32+CONFIG_CMDLINE_FORCE=y
33+CONFIG_KEXEC=y
34+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
35+CONFIG_PM=y
36+# CONFIG_SUSPEND is not set
37+CONFIG_PM_RUNTIME=y
38+CONFIG_NET=y
39+CONFIG_PACKET=y
40+CONFIG_UNIX=y
41+CONFIG_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_INET_DIAG is not set
47+# CONFIG_IPV6 is not set
48+# CONFIG_WIRELESS is not set
49+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
50+# CONFIG_BLK_DEV is not set
51+CONFIG_NETDEVICES=y
52+CONFIG_NET_ETHERNET=y
53+CONFIG_SMSC911X=y
54+# CONFIG_NETDEV_1000 is not set
55+# CONFIG_NETDEV_10000 is not set
56+# CONFIG_WLAN is not set
57+CONFIG_INPUT_SPARSEKMAP=y
58+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
59+CONFIG_INPUT_EVDEV=y
60+# CONFIG_INPUT_KEYBOARD is not set
61+# CONFIG_INPUT_MOUSE is not set
62+CONFIG_SERIAL_SH_SCI=y
63+CONFIG_SERIAL_SH_SCI_NR_UARTS=9
64+CONFIG_SERIAL_SH_SCI_CONSOLE=y
65+# CONFIG_LEGACY_PTYS is not set
66+# CONFIG_HW_RANDOM is not set
67+CONFIG_I2C=y
68+CONFIG_I2C_SH_MOBILE=y
69+# CONFIG_HWMON is not set
70+# CONFIG_MFD_SUPPORT is not set
71+CONFIG_FB=y
72+CONFIG_FB_SH_MOBILE_LCDC=y
73+CONFIG_FRAMEBUFFER_CONSOLE=y
74+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
75+# CONFIG_HID_SUPPORT is not set
76+# CONFIG_USB_SUPPORT is not set
77+# CONFIG_DNOTIFY is not set
78+# CONFIG_INOTIFY_USER is not set
79+CONFIG_TMPFS=y
80+# CONFIG_MISC_FILESYSTEMS is not set
81+CONFIG_MAGIC_SYSRQ=y
82+CONFIG_DEBUG_KERNEL=y
83+# CONFIG_FTRACE is not set
arch/arm/configs/am200epdkit_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_LOCALVERSION="gum" · 2 unmodified lines
33 # CONFIG_SWAP is not set
44 CONFIG_SYSVIPC=y
55 CONFIG_SYSFS_DEPRECATED_V2=y
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 # CONFIG_SYSCTL_SYSCALL is not set
88 # CONFIG_EPOLL is not set
99 # CONFIG_SHMEM is not set
arch/arm/configs/ams_delta_defconfig+0−121
@@ -1,121 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−# CONFIG_SWAP is not set
3−CONFIG_SYSVIPC=y
4−CONFIG_TREE_PREEMPT_RCU=y
5−CONFIG_LOG_BUF_SHIFT=14
6−CONFIG_BLK_DEV_INITRD=y
7−CONFIG_EMBEDDED=y
8−# CONFIG_KALLSYMS is not set
9−CONFIG_SLAB=y
10−CONFIG_MODULES=y
11−CONFIG_MODULE_UNLOAD=y
12−CONFIG_MODULE_FORCE_UNLOAD=y
13−# CONFIG_LBDAF is not set
14−CONFIG_ARCH_OMAP=y
15−CONFIG_ARCH_OMAP1=y
16−CONFIG_OMAP_MBOX_FWK=m
17−CONFIG_MACH_AMS_DELTA=y
18−CONFIG_OMAP_ARM_150MHZ=y
19−# CONFIG_OMAP_ARM_60MHZ is not set
20−CONFIG_PREEMPT=y
21−CONFIG_AEABI=y
22−CONFIG_ZBOOT_ROM_TEXT=0x0
23−CONFIG_ZBOOT_ROM_BSS=0x0
24−CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 initrd=0x11c00000,4M"
25−CONFIG_FPE_NWFPE=y
26−CONFIG_PM=y
27−# CONFIG_SUSPEND is not set
28−CONFIG_PM_RUNTIME=y
29−CONFIG_NET=y
30−CONFIG_PACKET=y
31−CONFIG_UNIX=y
32−CONFIG_INET=y
33−CONFIG_IP_MULTICAST=y
34−CONFIG_IPV6=y
35−# CONFIG_FW_LOADER is not set
36−CONFIG_MTD=y
37−CONFIG_MTD_PARTITIONS=y
38−CONFIG_MTD_CHAR=y
39−CONFIG_MTD_BLOCK=y
40−CONFIG_MTD_NAND=y
41−CONFIG_MTD_NAND_AMS_DELTA=y
42−CONFIG_BLK_DEV_LOOP=y
43−CONFIG_BLK_DEV_RAM=y
44−CONFIG_BLK_DEV_RAM_SIZE=8192
45−CONFIG_SCSI=y
46−CONFIG_BLK_DEV_SD=y
47−CONFIG_NETDEVICES=y
48−CONFIG_NET_ETHERNET=y
49−CONFIG_USB_CATC=y
50−CONFIG_USB_KAWETH=y
51−CONFIG_USB_PEGASUS=y
52−CONFIG_USB_RTL8150=y
53−CONFIG_USB_USBNET=y
54−CONFIG_PPP=y
55−CONFIG_PPP_MULTILINK=y
56−CONFIG_INPUT_EVDEV=y
57−CONFIG_KEYBOARD_OMAP=y
58−# CONFIG_INPUT_MOUSE is not set
59−CONFIG_SERIAL_8250=y
60−CONFIG_SERIAL_8250_CONSOLE=y
61−# CONFIG_LEGACY_PTYS is not set
62−CONFIG_HW_RANDOM=y
63−CONFIG_I2C=y
64−CONFIG_I2C_CHARDEV=y
65−CONFIG_I2C_OMAP=y
66−CONFIG_GPIO_SYSFS=y
67−# CONFIG_HWMON is not set
68−CONFIG_FB=y
69−CONFIG_FIRMWARE_EDID=y
70−CONFIG_FB_OMAP=y
71−CONFIG_BACKLIGHT_LCD_SUPPORT=y
72−CONFIG_LCD_CLASS_DEVICE=y
73−# CONFIG_VGA_CONSOLE is not set
74−CONFIG_FRAMEBUFFER_CONSOLE=y
75−CONFIG_FONTS=y
76−CONFIG_FONT_6x11=y
77−CONFIG_LOGO=y
78−# CONFIG_LOGO_LINUX_MONO is not set
79−# CONFIG_LOGO_LINUX_VGA16 is not set
80−CONFIG_SOUND=y
81−CONFIG_SND=y
82−CONFIG_SND_MIXER_OSS=y
83−CONFIG_SND_PCM_OSS=y
84−CONFIG_SND_SOC=y
85−CONFIG_SND_OMAP_SOC=y
86−CONFIG_SND_OMAP_SOC_AMS_DELTA=y
87−CONFIG_USB=y
88−CONFIG_USB_DEVICEFS=y
89−# CONFIG_USB_DEVICE_CLASS is not set
90−CONFIG_USB_MON=y
91−CONFIG_USB_OHCI_HCD=y
92−CONFIG_USB_STORAGE=y
93−CONFIG_NEW_LEDS=y
94−CONFIG_LEDS_CLASS=y
95−CONFIG_LEDS_AMS_DELTA=y
96−CONFIG_LEDS_TRIGGERS=y
97−CONFIG_LEDS_TRIGGER_TIMER=y
98−CONFIG_LEDS_TRIGGER_HEARTBEAT=y
99−CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
100−CONFIG_RTC_CLASS=y
101−CONFIG_RTC_DRV_OMAP=y
102−CONFIG_EXT2_FS=y
103−CONFIG_EXT3_FS=y
104−CONFIG_INOTIFY=y
105−CONFIG_AUTOFS_FS=y
106−CONFIG_AUTOFS4_FS=y
107−CONFIG_MSDOS_FS=y
108−CONFIG_VFAT_FS=y
109−CONFIG_TMPFS=y
110−CONFIG_JFFS2_FS=y
111−CONFIG_JFFS2_SUMMARY=y
112−CONFIG_NFS_FS=y
113−CONFIG_PARTITION_ADVANCED=y
114−CONFIG_NLS_CODEPAGE_437=y
115−CONFIG_NLS_CODEPAGE_850=y
116−CONFIG_NLS_CODEPAGE_852=y
117−CONFIG_NLS_ISO8859_1=y
118−CONFIG_NLS_ISO8859_2=y
119−CONFIG_MAGIC_SYSRQ=y
120−CONFIG_DEBUG_KERNEL=y
121−# CONFIG_DEBUG_BUGVERBOSE is not set
arch/arm/configs/at572d940hfek_defconfig+1−1
@@ -17,7 +17,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y · 16 unmodified lines
1717 CONFIG_RELAY=y
1818 CONFIG_BLK_DEV_INITRD=y
1919 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
20−CONFIG_EMBEDDED=y
20+CONFIG_EXPERT=y
2121 CONFIG_SLAB=y
2222 CONFIG_PROFILING=y
2323 CONFIG_OPROFILE=m
arch/arm/configs/badge4_defconfig+1−1
@@ -1,6 +1,6 @@
11 CONFIG_EXPERIMENTAL=y
22 CONFIG_LOG_BUF_SHIFT=14
3−CONFIG_EMBEDDED=y
3+CONFIG_EXPERT=y
44 CONFIG_MODULES=y
55 CONFIG_MODVERSIONS=y
66 CONFIG_ARCH_SA1100=y
arch/arm/configs/bcmring_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
22 # CONFIG_LOCALVERSION_AUTO is not set
33 # CONFIG_SWAP is not set
44 CONFIG_SYSVIPC=y
5−CONFIG_EMBEDDED=y
5+CONFIG_EXPERT=y
66 CONFIG_KALLSYMS_EXTRA_PASS=y
77 # CONFIG_HOTPLUG is not set
88 # CONFIG_ELF_CORE is not set
arch/arm/configs/cm_x2xx_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y · 5 unmodified lines
66 CONFIG_LOG_BUF_SHIFT=14
77 CONFIG_SYSFS_DEPRECATED_V2=y
88 CONFIG_BLK_DEV_INITRD=y
9−CONFIG_EMBEDDED=y
9+CONFIG_EXPERT=y
1010 # CONFIG_VM_EVENT_COUNTERS is not set
1111 # CONFIG_SLUB_DEBUG is not set
1212 # CONFIG_COMPAT_BRK is not set
arch/arm/configs/colibri_pxa270_defconfig+1−1
@@ -8,7 +8,7 @@ CONFIG_IKCONFIG_PROC=y · 7 unmodified lines
88 CONFIG_LOG_BUF_SHIFT=14
99 CONFIG_SYSFS_DEPRECATED_V2=y
1010 CONFIG_BLK_DEV_INITRD=y
11−CONFIG_EMBEDDED=y
11+CONFIG_EXPERT=y
1212 CONFIG_KALLSYMS_EXTRA_PASS=y
1313 CONFIG_SLAB=y
1414 CONFIG_MODULES=y
arch/arm/configs/collie_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y · 3 unmodified lines
44 CONFIG_LOG_BUF_SHIFT=14
55 CONFIG_BLK_DEV_INITRD=y
66 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 # CONFIG_BASE_FULL is not set
99 # CONFIG_EPOLL is not set
1010 CONFIG_SLOB=y
arch/arm/configs/corgi_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y · 3 unmodified lines
44 CONFIG_LOG_BUF_SHIFT=14
55 CONFIG_SYSFS_DEPRECATED_V2=y
66 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 CONFIG_PROFILING=y
99 CONFIG_OPROFILE=m
1010 CONFIG_MODULES=y
arch/arm/configs/da8xx_omapl_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y · 5 unmodified lines
66 CONFIG_IKCONFIG_PROC=y
77 CONFIG_LOG_BUF_SHIFT=14
88 CONFIG_BLK_DEV_INITRD=y
9−CONFIG_EMBEDDED=y
9+CONFIG_EXPERT=y
1010 CONFIG_MODULES=y
1111 CONFIG_MODULE_UNLOAD=y
1212 CONFIG_MODULE_FORCE_UNLOAD=y
arch/arm/configs/davinci_all_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y · 5 unmodified lines
66 CONFIG_IKCONFIG_PROC=y
77 CONFIG_LOG_BUF_SHIFT=14
88 CONFIG_BLK_DEV_INITRD=y
9−CONFIG_EMBEDDED=y
9+CONFIG_EXPERT=y
1010 CONFIG_MODULES=y
1111 CONFIG_MODULE_UNLOAD=y
1212 CONFIG_MODULE_FORCE_UNLOAD=y
arch/arm/configs/dove_defconfig+1−1
@@ -1,7 +1,7 @@
11 CONFIG_EXPERIMENTAL=y
22 CONFIG_SYSVIPC=y
33 CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_EMBEDDED=y
4+CONFIG_EXPERT=y
55 CONFIG_SLAB=y
66 CONFIG_MODULES=y
77 CONFIG_MODULE_UNLOAD=y
arch/arm/configs/ebsa110_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
22 CONFIG_SYSVIPC=y
33 CONFIG_BSD_PROCESS_ACCT=y
44 CONFIG_LOG_BUF_SHIFT=14
5−CONFIG_EMBEDDED=y
5+CONFIG_EXPERT=y
66 CONFIG_MODULES=y
77 CONFIG_ARCH_EBSA110=y
88 CONFIG_PCCARD=m
arch/arm/configs/edb7211_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
22 CONFIG_SYSVIPC=y
33 CONFIG_LOG_BUF_SHIFT=14
44 CONFIG_BLK_DEV_INITRD=y
5−CONFIG_EMBEDDED=y
5+CONFIG_EXPERT=y
66 # CONFIG_HOTPLUG is not set
77 CONFIG_ARCH_CLPS711X=y
88 CONFIG_ARCH_EDB7211=y
arch/arm/configs/em_x270_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y · 5 unmodified lines
66 CONFIG_LOG_BUF_SHIFT=14
77 CONFIG_SYSFS_DEPRECATED_V2=y
88 CONFIG_BLK_DEV_INITRD=y
9−CONFIG_EMBEDDED=y
9+CONFIG_EXPERT=y
1010 # CONFIG_VM_EVENT_COUNTERS is not set
1111 # CONFIG_SLUB_DEBUG is not set
1212 # CONFIG_COMPAT_BRK is not set
arch/arm/configs/ep93xx_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
44 CONFIG_IKCONFIG_PROC=y
55 CONFIG_LOG_BUF_SHIFT=14
66 CONFIG_SYSFS_DEPRECATED_V2=y
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 CONFIG_SLAB=y
99 CONFIG_MODULES=y
1010 CONFIG_MODULE_UNLOAD=y
arch/arm/configs/eseries_pxa_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
22 CONFIG_SYSVIPC=y
33 CONFIG_LOG_BUF_SHIFT=14
44 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
5−CONFIG_EMBEDDED=y
5+CONFIG_EXPERT=y
66 # CONFIG_KALLSYMS is not set
77 # CONFIG_COMPAT_BRK is not set
88 CONFIG_SLAB=y
arch/arm/configs/ezx_defconfig+1−1
@@ -7,7 +7,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y · 6 unmodified lines
77 CONFIG_BLK_DEV_INITRD=y
88 CONFIG_RD_BZIP2=y
99 CONFIG_RD_LZMA=y
10−CONFIG_EMBEDDED=y
10+CONFIG_EXPERT=y
1111 # CONFIG_COMPAT_BRK is not set
1212 CONFIG_SLAB=y
1313 CONFIG_MODULES=y
arch/arm/configs/footbridge_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
33 CONFIG_BSD_PROCESS_ACCT=y
44 CONFIG_LOG_BUF_SHIFT=14
55 CONFIG_BLK_DEV_INITRD=y
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 # CONFIG_HOTPLUG is not set
88 CONFIG_MODULES=y
99 CONFIG_ARCH_FOOTBRIDGE=y
arch/arm/configs/fortunet_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
22 CONFIG_SYSVIPC=y
33 CONFIG_LOG_BUF_SHIFT=14
44 CONFIG_BLK_DEV_INITRD=y
5−CONFIG_EMBEDDED=y
5+CONFIG_EXPERT=y
66 # CONFIG_HOTPLUG is not set
77 CONFIG_ARCH_CLPS711X=y
88 CONFIG_ARCH_FORTUNET=y
arch/arm/configs/h5000_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
44 CONFIG_IKCONFIG_PROC=y
55 CONFIG_LOG_BUF_SHIFT=16
66 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 # CONFIG_UID16 is not set
99 CONFIG_SLAB=y
1010 CONFIG_MODULES=y
arch/arm/configs/htcherald_defconfig+0−73
@@ -1,73 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_BLK_DEV_INITRD=y
5−CONFIG_SLAB=y
6−CONFIG_MODULES=y
7−CONFIG_MODULE_UNLOAD=y
8−# CONFIG_BLK_DEV_BSG is not set
9−CONFIG_ARCH_OMAP=y
10−CONFIG_ARCH_OMAP1=y
11−CONFIG_ARCH_OMAP850=y
12−# CONFIG_ARCH_OMAP15XX is not set
13−CONFIG_MACH_HERALD=y
14−CONFIG_OMAP_ARM_195MHZ=y
15−# CONFIG_OMAP_ARM_60MHZ is not set
16−CONFIG_CPU_ARM925T=y
17−CONFIG_PREEMPT=y
18−CONFIG_AEABI=y
19−CONFIG_LEDS=y
20−CONFIG_ZBOOT_ROM_TEXT=0x0
21−CONFIG_ZBOOT_ROM_BSS=0x0
22−CONFIG_CMDLINE="mem=32M console=ttyS0,115200 ip=dhcp"
23−CONFIG_FPE_NWFPE=y
24−CONFIG_PM=y
25−CONFIG_NET=y
26−CONFIG_PACKET=y
27−CONFIG_UNIX=y
28−CONFIG_INET=y
29−CONFIG_IP_MULTICAST=y
30−CONFIG_IP_PNP=y
31−CONFIG_IP_PNP_DHCP=y
32−CONFIG_IP_PNP_BOOTP=y
33−# CONFIG_IPV6 is not set
34−CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
35−CONFIG_BLK_DEV_LOOP=y
36−CONFIG_BLK_DEV_RAM=y
37−CONFIG_BLK_DEV_RAM_SIZE=8192
38−CONFIG_NETDEVICES=y
39−CONFIG_NET_ETHERNET=y
40−CONFIG_SMC91X=y
41−# CONFIG_KEYBOARD_ATKBD is not set
42−CONFIG_KEYBOARD_OMAP=y
43−# CONFIG_INPUT_MOUSE is not set
44−CONFIG_SERIAL_8250=m
45−# CONFIG_LEGACY_PTYS is not set
46−CONFIG_VIDEO_OUTPUT_CONTROL=m
47−CONFIG_FB=y
48−CONFIG_FB_MODE_HELPERS=y
49−CONFIG_FB_OMAP=y
50−# CONFIG_VGA_CONSOLE is not set
51−CONFIG_FRAMEBUFFER_CONSOLE=y
52−CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
53−CONFIG_FONTS=y
54−CONFIG_FONT_MINI_4x6=y
55−CONFIG_USB_GADGET=y
56−CONFIG_USB_ETH=m
57−# CONFIG_USB_ETH_RNDIS is not set
58−CONFIG_MMC=y
59−CONFIG_MMC_SDHCI=y
60−CONFIG_MMC_SDHCI_PLTFM=y
61−CONFIG_MMC_OMAP=y
62−CONFIG_RTC_CLASS=y
63−CONFIG_EXT2_FS=y
64−CONFIG_EXT3_FS=y
65−CONFIG_INOTIFY=y
66−CONFIG_TMPFS=y
67−CONFIG_NFS_FS=y
68−CONFIG_ROOT_NFS=y
69−# CONFIG_RCU_CPU_STALL_DETECTOR is not set
70−CONFIG_CRYPTO_DEFLATE=y
71−CONFIG_CRYPTO_ZLIB=y
72−CONFIG_CRYPTO_LZO=y
73−# CONFIG_CRYPTO_ANSI_CPRNG is not set
arch/arm/configs/imote2_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y · 5 unmodified lines
66 CONFIG_BLK_DEV_INITRD=y
77 CONFIG_RD_BZIP2=y
88 CONFIG_RD_LZMA=y
9−CONFIG_EMBEDDED=y
9+CONFIG_EXPERT=y
1010 # CONFIG_COMPAT_BRK is not set
1111 CONFIG_SLAB=y
1212 CONFIG_MODULES=y
arch/arm/configs/ixp2000_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
33 CONFIG_BSD_PROCESS_ACCT=y
44 CONFIG_LOG_BUF_SHIFT=14
55 CONFIG_BLK_DEV_INITRD=y
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 # CONFIG_HOTPLUG is not set
88 CONFIG_SLAB=y
99 CONFIG_MODULES=y
arch/arm/configs/ixp23xx_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
33 CONFIG_BSD_PROCESS_ACCT=y
44 CONFIG_LOG_BUF_SHIFT=14
55 CONFIG_BLK_DEV_INITRD=y
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 CONFIG_SLAB=y
88 CONFIG_MODULES=y
99 CONFIG_MODULE_UNLOAD=y
arch/arm/configs/ixp4xx_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y · 2 unmodified lines
33 CONFIG_BSD_PROCESS_ACCT=y
44 CONFIG_LOG_BUF_SHIFT=14
55 CONFIG_BLK_DEV_INITRD=y
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 CONFIG_MODULES=y
88 CONFIG_MODVERSIONS=y
99 # CONFIG_BLK_DEV_BSG is not set
arch/arm/configs/loki_defconfig+1−1
@@ -1,7 +1,7 @@
11 CONFIG_EXPERIMENTAL=y
22 CONFIG_SYSVIPC=y
33 CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_EMBEDDED=y
4+CONFIG_EXPERT=y
55 CONFIG_SLAB=y
66 CONFIG_MODULES=y
77 CONFIG_MODULE_UNLOAD=y
arch/arm/configs/lpd7a400_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
33 CONFIG_SYSVIPC=y
44 CONFIG_IKCONFIG=y
55 CONFIG_LOG_BUF_SHIFT=14
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 # CONFIG_HOTPLUG is not set
88 # CONFIG_EPOLL is not set
99 # CONFIG_IOSCHED_DEADLINE is not set
arch/arm/configs/lpd7a404_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
33 CONFIG_SYSVIPC=y
44 CONFIG_IKCONFIG=y
55 CONFIG_LOG_BUF_SHIFT=16
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 # CONFIG_HOTPLUG is not set
88 # CONFIG_EPOLL is not set
99 CONFIG_SLAB=y
arch/arm/configs/mackerel_defconfig+138−0
@@ -0,0 +1,138 @@
1+CONFIG_EXPERIMENTAL=y
2+CONFIG_SYSVIPC=y
3+CONFIG_IKCONFIG=y
4+CONFIG_IKCONFIG_PROC=y
5+CONFIG_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
10+# CONFIG_NET_NS is not set
11+CONFIG_SLAB=y
12+CONFIG_MODULES=y
13+CONFIG_MODULE_UNLOAD=y
14+# CONFIG_BLK_DEV_BSG is not set
15+# CONFIG_IOSCHED_DEADLINE is not set
16+# CONFIG_IOSCHED_CFQ is not set
17+CONFIG_ARCH_SHMOBILE=y
18+CONFIG_ARCH_SH7372=y
19+CONFIG_MACH_MACKEREL=y
20+CONFIG_MEMORY_SIZE=0x10000000
21+CONFIG_AEABI=y
22+# CONFIG_OABI_COMPAT is not set
23+CONFIG_FORCE_MAX_ZONEORDER=15
24+CONFIG_ZBOOT_ROM_TEXT=0x0
25+CONFIG_ZBOOT_ROM_BSS=0x0
26+CONFIG_CMDLINE="console=tty0, console=ttySC0,115200 earlyprintk=sh-sci.0,115200 root=/dev/nfs nfsroot=,tcp,v3 ip=dhcp memchunk.vpu=64m memchunk.veu0=8m memchunk.spu0=2m mem=240m"
27+CONFIG_KEXEC=y
28+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
29+CONFIG_PM=y
30+CONFIG_PM_RUNTIME=y
31+CONFIG_NET=y
32+CONFIG_PACKET=y
33+CONFIG_UNIX=y
34+CONFIG_INET=y
35+CONFIG_IP_MULTICAST=y
36+CONFIG_IP_PNP=y
37+CONFIG_IP_PNP_DHCP=y
38+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
39+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
40+# CONFIG_INET_XFRM_MODE_BEET is not set
41+# CONFIG_IPV6 is not set
42+# CONFIG_WIRELESS is not set
43+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
44+# CONFIG_FIRMWARE_IN_KERNEL is not set
45+CONFIG_MTD=y
46+CONFIG_MTD_CONCAT=y
47+CONFIG_MTD_PARTITIONS=y
48+CONFIG_MTD_CHAR=y
49+CONFIG_MTD_BLOCK=y
50+CONFIG_MTD_CFI=y
51+CONFIG_MTD_CFI_ADV_OPTIONS=y
52+CONFIG_MTD_CFI_INTELEXT=y
53+CONFIG_MTD_PHYSMAP=y
54+CONFIG_MTD_ARM_INTEGRATOR=y
55+CONFIG_MTD_BLOCK2MTD=y
56+CONFIG_SCSI=y
57+CONFIG_BLK_DEV_SD=y
58+# CONFIG_SCSI_LOWLEVEL is not set
59+CONFIG_NETDEVICES=y
60+CONFIG_NET_ETHERNET=y
61+CONFIG_SMSC911X=y
62+# CONFIG_NETDEV_1000 is not set
63+# CONFIG_NETDEV_10000 is not set
64+# CONFIG_WLAN is not set
65+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
66+# CONFIG_INPUT_KEYBOARD is not set
67+# CONFIG_INPUT_MOUSE is not set
68+CONFIG_SERIAL_SH_SCI=y
69+CONFIG_SERIAL_SH_SCI_NR_UARTS=8
70+CONFIG_SERIAL_SH_SCI_CONSOLE=y
71+# CONFIG_LEGACY_PTYS is not set
72+# CONFIG_HW_RANDOM is not set
73+# CONFIG_HWMON is not set
74+# CONFIG_MFD_SUPPORT is not set
75+CONFIG_FB=y
76+CONFIG_FB_MODE_HELPERS=y
77+CONFIG_FB_SH_MOBILE_LCDC=y
78+CONFIG_FRAMEBUFFER_CONSOLE=y
79+CONFIG_LOGO=y
80+# CONFIG_LOGO_LINUX_MONO is not set
81+# CONFIG_LOGO_LINUX_CLUT224 is not set
82+# CONFIG_HID_SUPPORT is not set
83+# CONFIG_USB_SUPPORT is not set
84+CONFIG_EXT2_FS=y
85+CONFIG_EXT2_FS_XATTR=y
86+CONFIG_EXT2_FS_POSIX_ACL=y
87+CONFIG_EXT2_FS_SECURITY=y
88+CONFIG_EXT2_FS_XIP=y
89+CONFIG_EXT3_FS=y
90+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
91+CONFIG_EXT3_FS_POSIX_ACL=y
92+CONFIG_EXT3_FS_SECURITY=y
93+# CONFIG_DNOTIFY is not set
94+# CONFIG_INOTIFY_USER is not set
95+CONFIG_MSDOS_FS=y
96+CONFIG_VFAT_FS=y
97+CONFIG_TMPFS=y
98+# CONFIG_MISC_FILESYSTEMS is not set
99+CONFIG_NFS_FS=y
100+CONFIG_NFS_V3=y
101+CONFIG_NFS_V3_ACL=y
102+CONFIG_NFS_V4=y
103+CONFIG_NFS_V4_1=y
104+CONFIG_ROOT_NFS=y
105+CONFIG_NLS_CODEPAGE_437=y
106+CONFIG_NLS_CODEPAGE_737=y
107+CONFIG_NLS_CODEPAGE_775=y
108+CONFIG_NLS_CODEPAGE_850=y
109+CONFIG_NLS_CODEPAGE_852=y
110+CONFIG_NLS_CODEPAGE_855=y
111+CONFIG_NLS_CODEPAGE_857=y
112+CONFIG_NLS_CODEPAGE_860=y
113+CONFIG_NLS_CODEPAGE_861=y
114+CONFIG_NLS_CODEPAGE_862=y
115+CONFIG_NLS_CODEPAGE_863=y
116+CONFIG_NLS_CODEPAGE_864=y
117+CONFIG_NLS_CODEPAGE_865=y
118+CONFIG_NLS_CODEPAGE_866=y
119+CONFIG_NLS_CODEPAGE_869=y
120+CONFIG_NLS_ISO8859_1=y
121+CONFIG_NLS_ISO8859_2=y
122+CONFIG_NLS_ISO8859_3=y
123+CONFIG_NLS_ISO8859_4=y
124+CONFIG_NLS_ISO8859_5=y
125+CONFIG_NLS_ISO8859_6=y
126+CONFIG_NLS_ISO8859_7=y
127+CONFIG_NLS_ISO8859_9=y
128+CONFIG_NLS_ISO8859_13=y
129+CONFIG_NLS_ISO8859_14=y
130+CONFIG_NLS_ISO8859_15=y
131+CONFIG_NLS_KOI8_R=y
132+CONFIG_NLS_KOI8_U=y
133+CONFIG_NLS_UTF8=y
134+# CONFIG_ENABLE_WARN_DEPRECATED is not set
135+# CONFIG_ENABLE_MUST_CHECK is not set
136+# CONFIG_ARM_UNWIND is not set
137+CONFIG_CRYPTO=y
138+CONFIG_CRYPTO_ANSI_CPRNG=y
arch/arm/configs/magician_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
44 CONFIG_IKCONFIG_PROC=y
55 CONFIG_LOG_BUF_SHIFT=16
66 CONFIG_BLK_DEV_INITRD=y
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 # CONFIG_UID16 is not set
99 CONFIG_SLAB=y
1010 CONFIG_MODULES=y
arch/arm/configs/mv78xx0_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
22 CONFIG_SYSVIPC=y
33 CONFIG_LOG_BUF_SHIFT=14
44 CONFIG_SYSFS_DEPRECATED_V2=y
5−CONFIG_EMBEDDED=y
5+CONFIG_EXPERT=y
66 CONFIG_KALLSYMS_ALL=y
77 # CONFIG_SLUB_DEBUG is not set
88 CONFIG_PROFILING=y
arch/arm/configs/mx1_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
44 CONFIG_IKCONFIG_PROC=y
55 CONFIG_LOG_BUF_SHIFT=14
66 CONFIG_SYSFS_DEPRECATED_V2=y
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 CONFIG_SLAB=y
99 CONFIG_MODULES=y
1010 CONFIG_MODULE_UNLOAD=y
arch/arm/configs/mx21_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y · 3 unmodified lines
44 CONFIG_LOG_BUF_SHIFT=14
55 CONFIG_SYSFS_DEPRECATED_V2=y
66 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 CONFIG_KALLSYMS_EXTRA_PASS=y
99 CONFIG_SLAB=y
1010 CONFIG_MODULES=y
arch/arm/configs/mx27_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y · 3 unmodified lines
44 CONFIG_POSIX_MQUEUE=y
55 CONFIG_LOG_BUF_SHIFT=14
66 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 CONFIG_KALLSYMS_EXTRA_PASS=y
99 # CONFIG_COMPAT_BRK is not set
1010 CONFIG_SLAB=y
arch/arm/configs/mx3_defconfig+2−1
@@ -4,7 +4,7 @@ CONFIG_IKCONFIG=y · 3 unmodified lines
44 CONFIG_IKCONFIG_PROC=y
55 CONFIG_LOG_BUF_SHIFT=14
66 CONFIG_SYSFS_DEPRECATED_V2=y
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 CONFIG_SLAB=y
99 CONFIG_MODULES=y
1010 CONFIG_MODULE_UNLOAD=y
@@ -84,6 +84,7 @@ CONFIG_SERIAL_IMX_CONSOLE=y · 73 unmodified lines
8484 CONFIG_I2C=y
8585 CONFIG_I2C_CHARDEV=y
8686 CONFIG_I2C_IMX=y
87+CONFIG_SPI=y
8788 CONFIG_W1=y
8889 CONFIG_W1_MASTER_MXC=y
8990 CONFIG_W1_SLAVE_THERM=y
arch/arm/configs/mx51_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
33 CONFIG_SYSVIPC=y
44 CONFIG_LOG_BUF_SHIFT=18
55 CONFIG_RELAY=y
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 # CONFIG_SLUB_DEBUG is not set
88 # CONFIG_COMPAT_BRK is not set
99 CONFIG_MODULES=y
arch/arm/configs/n770_defconfig+0−138
@@ -1,138 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_POSIX_MQUEUE=y
4−CONFIG_LOG_BUF_SHIFT=14
5−CONFIG_SLAB=y
6−CONFIG_MODULES=y
7−CONFIG_MODULE_UNLOAD=y
8−# CONFIG_BLK_DEV_BSG is not set
9−# CONFIG_IOSCHED_DEADLINE is not set
10−CONFIG_ARCH_OMAP=y
11−CONFIG_ARCH_OMAP1=y
12−CONFIG_OMAP_RESET_CLOCKS=y
13−# CONFIG_OMAP_MUX is not set
14−CONFIG_OMAP_MBOX_FWK=y
15−CONFIG_OMAP_32K_TIMER=y
16−CONFIG_OMAP_DM_TIMER=y
17−# CONFIG_ARCH_OMAP15XX is not set
18−CONFIG_ARCH_OMAP16XX=y
19−CONFIG_MACH_NOKIA770=y
20−CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
21−CONFIG_OMAP_ARM_216MHZ=y
22−# CONFIG_OMAP_ARM_60MHZ is not set
23−CONFIG_ZBOOT_ROM_TEXT=0x0
24−CONFIG_ZBOOT_ROM_BSS=0x0
25−CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 time"
26−CONFIG_FPE_NWFPE=y
27−CONFIG_PM=y
28−CONFIG_PM_RUNTIME=y
29−CONFIG_NET=y
30−CONFIG_PACKET=y
31−CONFIG_UNIX=y
32−CONFIG_INET=y
33−CONFIG_IP_MULTICAST=y
34−CONFIG_IP_PNP=y
35−CONFIG_IP_PNP_DHCP=y
36−CONFIG_IP_PNP_BOOTP=y
37−# CONFIG_INET_LRO is not set
38−# CONFIG_INET_DIAG is not set
39−# CONFIG_IPV6 is not set
40−CONFIG_NETFILTER=y
41−CONFIG_BT=y
42−CONFIG_BT_L2CAP=y
43−CONFIG_BT_SCO=y
44−CONFIG_BT_RFCOMM=y
45−CONFIG_BT_RFCOMM_TTY=y
46−CONFIG_BT_BNEP=y
47−CONFIG_BT_HIDP=y
48−CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
49−CONFIG_CONNECTOR=y
50−# CONFIG_PROC_EVENTS is not set
51−CONFIG_MTD=y
52−CONFIG_MTD_PARTITIONS=y
53−CONFIG_MTD_CMDLINE_PARTS=y
54−CONFIG_MTD_CHAR=y
55−CONFIG_MTD_BLOCK=y
56−CONFIG_MTD_NAND=y
57−CONFIG_BLK_DEV_LOOP=y
58−CONFIG_SCSI=y
59−# CONFIG_SCSI_PROC_FS is not set
60−CONFIG_BLK_DEV_SD=y
61−CONFIG_NETDEVICES=y
62−CONFIG_TUN=y
63−CONFIG_NET_ETHERNET=y
64−CONFIG_USB_USBNET=y
65−# CONFIG_USB_NET_AX8817X is not set
66−# CONFIG_USB_NET_CDC_SUBSET is not set
67−CONFIG_PPP=y
68−CONFIG_PPP_FILTER=y
69−CONFIG_PPP_ASYNC=y
70−CONFIG_PPP_DEFLATE=y
71−CONFIG_PPP_BSDCOMP=y
72−# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
73−CONFIG_INPUT_EVDEV=y
74−# CONFIG_KEYBOARD_ATKBD is not set
75−CONFIG_KEYBOARD_OMAP=y
76−# CONFIG_INPUT_MOUSE is not set
77−CONFIG_INPUT_TOUCHSCREEN=y
78−CONFIG_TOUCHSCREEN_ADS7846=y
79−CONFIG_SERIAL_8250=y
80−CONFIG_SERIAL_8250_CONSOLE=y
81−# CONFIG_LEGACY_PTYS is not set
82−CONFIG_I2C=y
83−CONFIG_I2C_OMAP=y
84−CONFIG_SPI=y
85−CONFIG_SPI_OMAP_UWIRE=y
86−# CONFIG_HWMON is not set
87−CONFIG_WATCHDOG=y
88−CONFIG_WATCHDOG_NOWAYOUT=y
89−CONFIG_OMAP_WATCHDOG=y
90−CONFIG_FB=y
91−CONFIG_FB_OMAP=y
92−CONFIG_FB_OMAP_LCDC_EXTERNAL=y
93−CONFIG_FB_OMAP_LCDC_HWA742=y
94−CONFIG_FB_OMAP_MANUAL_UPDATE=y
95−CONFIG_FB_OMAP_LCD_MIPID=y
96−# CONFIG_VGA_CONSOLE is not set
97−CONFIG_SOUND=y
98−CONFIG_SND=y
99−# CONFIG_SND_SUPPORT_OLD_API is not set
100−CONFIG_SND_DUMMY=y
101−CONFIG_SND_USB_AUDIO=y
102−CONFIG_USB=y
103−CONFIG_USB_DEVICEFS=y
104−CONFIG_USB_SUSPEND=y
105−CONFIG_USB_OTG=y
106−# CONFIG_USB_OTG_WHITELIST is not set
107−CONFIG_USB_OHCI_HCD=y
108−CONFIG_USB_STORAGE=y
109−CONFIG_USB_SERIAL=y
110−CONFIG_USB_SERIAL_CONSOLE=y
111−CONFIG_USB_SERIAL_PL2303=y
112−CONFIG_USB_GADGET=y
113−CONFIG_USB_ETH=m
114−CONFIG_USB_FILE_STORAGE=m
115−CONFIG_USB_FILE_STORAGE_TEST=y
116−CONFIG_MMC=y
117−CONFIG_MMC_OMAP=y
118−CONFIG_EXT2_FS=y
119−CONFIG_EXT3_FS=y
120−CONFIG_MSDOS_FS=y
121−CONFIG_VFAT_FS=y
122−CONFIG_TMPFS=y
123−CONFIG_JFFS2_FS=y
124−CONFIG_JFFS2_SUMMARY=y
125−CONFIG_JFFS2_COMPRESSION_OPTIONS=y
126−CONFIG_NFS_FS=y
127−CONFIG_NFS_V3=y
128−CONFIG_PARTITION_ADVANCED=y
129−CONFIG_NLS_CODEPAGE_437=y
130−CONFIG_NLS_CODEPAGE_852=y
131−CONFIG_NLS_ISO8859_1=y
132−CONFIG_NLS_ISO8859_15=y
133−CONFIG_NLS_UTF8=y
134−CONFIG_MAGIC_SYSRQ=y
135−CONFIG_DEBUG_KERNEL=y
136−CONFIG_DEBUG_MUTEXES=y
137−CONFIG_DEBUG_ERRORS=y
138−CONFIG_SECURITY=y
arch/arm/configs/nhk8815_defconfig+1−1
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG_PROC=y · 6 unmodified lines
77 CONFIG_LOG_BUF_SHIFT=14
88 CONFIG_SYSFS_DEPRECATED_V2=y
99 CONFIG_BLK_DEV_INITRD=y
10−CONFIG_EMBEDDED=y
10+CONFIG_EXPERT=y
1111 CONFIG_KALLSYMS_ALL=y
1212 CONFIG_SLAB=y
1313 CONFIG_MODULES=y
arch/arm/configs/omap1_defconfig+286−0
@@ -0,0 +1,286 @@
1+CONFIG_EXPERIMENTAL=y
2+# CONFIG_SWAP is not set
3+CONFIG_SYSVIPC=y
4+CONFIG_POSIX_MQUEUE=y
5+CONFIG_BSD_PROCESS_ACCT=y
6+CONFIG_IKCONFIG=y
7+CONFIG_LOG_BUF_SHIFT=14
8+CONFIG_BLK_DEV_INITRD=y
9+CONFIG_EXPERT=y
10+# CONFIG_KALLSYMS is not set
11+# CONFIG_ELF_CORE is not set
12+# CONFIG_BASE_FULL is not set
13+# CONFIG_SHMEM is not set
14+# CONFIG_VM_EVENT_COUNTERS is not set
15+CONFIG_SLOB=y
16+CONFIG_PROFILING=y
17+CONFIG_OPROFILE=y
18+CONFIG_MODULES=y
19+CONFIG_MODULE_UNLOAD=y
20+CONFIG_MODULE_FORCE_UNLOAD=y
21+# CONFIG_LBDAF is not set
22+# CONFIG_BLK_DEV_BSG is not set
23+# CONFIG_IOSCHED_DEADLINE is not set
24+# CONFIG_IOSCHED_CFQ is not set
25+CONFIG_ARCH_OMAP=y
26+CONFIG_ARCH_OMAP1=y
27+CONFIG_OMAP_RESET_CLOCKS=y
28+# CONFIG_OMAP_MUX is not set
29+CONFIG_OMAP_MBOX_FWK=y
30+CONFIG_OMAP_32K_TIMER=y
31+CONFIG_OMAP_DM_TIMER=y
32+CONFIG_ARCH_OMAP730=y
33+CONFIG_ARCH_OMAP850=y
34+CONFIG_ARCH_OMAP16XX=y
35+CONFIG_MACH_OMAP_INNOVATOR=y
36+CONFIG_MACH_OMAP_H2=y
37+CONFIG_MACH_OMAP_H3=y
38+CONFIG_MACH_OMAP_HTCWIZARD=y
39+CONFIG_MACH_HERALD=y
40+CONFIG_MACH_OMAP_OSK=y
41+CONFIG_MACH_OMAP_PERSEUS2=y
42+CONFIG_MACH_OMAP_FSAMPLE=y
43+CONFIG_MACH_VOICEBLUE=y
44+CONFIG_MACH_OMAP_PALMTE=y
45+CONFIG_MACH_OMAP_PALMZ71=y
46+CONFIG_MACH_OMAP_PALMTT=y
47+CONFIG_MACH_SX1=y
48+CONFIG_MACH_NOKIA770=y
49+CONFIG_MACH_AMS_DELTA=y
50+CONFIG_MACH_OMAP_GENERIC=y
51+CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
52+CONFIG_OMAP_ARM_216MHZ=y
53+CONFIG_OMAP_ARM_195MHZ=y
54+CONFIG_OMAP_ARM_192MHZ=y
55+CONFIG_OMAP_ARM_182MHZ=y
56+CONFIG_OMAP_ARM_168MHZ=y
57+# CONFIG_OMAP_ARM_60MHZ is not set
58+# CONFIG_ARM_THUMB is not set
59+CONFIG_PCCARD=y
60+CONFIG_OMAP_CF=y
61+CONFIG_NO_HZ=y
62+CONFIG_HIGH_RES_TIMERS=y
63+CONFIG_PREEMPT=y
64+CONFIG_AEABI=y
65+CONFIG_LEDS=y
66+CONFIG_LEDS_CPU=y
67+CONFIG_ZBOOT_ROM_TEXT=0x0
68+CONFIG_ZBOOT_ROM_BSS=0x0
69+CONFIG_CMDLINE="root=1f03 rootfstype=jffs2"
70+CONFIG_FPE_NWFPE=y
71+CONFIG_BINFMT_MISC=y
72+CONFIG_PM=y
73+# CONFIG_SUSPEND is not set
74+CONFIG_PM_RUNTIME=y
75+CONFIG_NET=y
76+CONFIG_PACKET=y
77+CONFIG_UNIX=y
78+CONFIG_NET_KEY=y
79+CONFIG_INET=y
80+CONFIG_IP_MULTICAST=y
81+CONFIG_IP_PNP=y
82+CONFIG_IP_PNP_DHCP=y
83+CONFIG_IP_PNP_BOOTP=y
84+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
85+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
86+# CONFIG_INET_XFRM_MODE_BEET is not set
87+# CONFIG_INET_LRO is not set
88+# CONFIG_INET_DIAG is not set
89+CONFIG_IPV6=y
90+CONFIG_NETFILTER=y
91+CONFIG_BT=y
92+CONFIG_BT_L2CAP=y
93+CONFIG_BT_SCO=y
94+CONFIG_BT_RFCOMM=y
95+CONFIG_BT_RFCOMM_TTY=y
96+CONFIG_BT_BNEP=y
97+CONFIG_BT_HIDP=y
98+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
99+# CONFIG_STANDALONE is not set
100+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
101+CONFIG_CONNECTOR=y
102+# CONFIG_PROC_EVENTS is not set
103+CONFIG_MTD=y
104+CONFIG_MTD_DEBUG=y
105+CONFIG_MTD_DEBUG_VERBOSE=3
106+CONFIG_MTD_PARTITIONS=y
107+CONFIG_MTD_CMDLINE_PARTS=y
108+CONFIG_MTD_CHAR=y
109+CONFIG_MTD_BLOCK=y
110+CONFIG_MTD_CFI=y
111+CONFIG_MTD_CFI_INTELEXT=y
112+CONFIG_MTD_NAND=y
113+CONFIG_BLK_DEV_LOOP=y
114+CONFIG_BLK_DEV_RAM=y
115+CONFIG_BLK_DEV_RAM_COUNT=2
116+CONFIG_BLK_DEV_RAM_SIZE=8192
117+CONFIG_IDE=m
118+CONFIG_BLK_DEV_IDECS=m
119+CONFIG_SCSI=y
120+# CONFIG_SCSI_PROC_FS is not set
121+CONFIG_BLK_DEV_SD=y
122+CONFIG_CHR_DEV_ST=y
123+CONFIG_BLK_DEV_SR=y
124+CONFIG_CHR_DEV_SG=y
125+CONFIG_SCSI_MULTI_LUN=y
126+CONFIG_NETDEVICES=y
127+CONFIG_TUN=y
128+CONFIG_PHYLIB=y
129+CONFIG_NET_ETHERNET=y
130+CONFIG_SMC91X=y
131+CONFIG_USB_CATC=y
132+CONFIG_USB_KAWETH=y
133+CONFIG_USB_PEGASUS=y
134+CONFIG_USB_RTL8150=y
135+CONFIG_USB_USBNET=y
136+# CONFIG_USB_NET_AX8817X is not set
137+# CONFIG_USB_NET_CDC_SUBSET is not set
138+CONFIG_PPP=y
139+CONFIG_PPP_MULTILINK=y
140+CONFIG_PPP_FILTER=y
141+CONFIG_PPP_ASYNC=y
142+CONFIG_PPP_DEFLATE=y
143+CONFIG_PPP_BSDCOMP=y
144+CONFIG_SLIP=y
145+CONFIG_SLIP_COMPRESSED=y
146+# CONFIG_INPUT_MOUSEDEV is not set
147+CONFIG_INPUT_EVDEV=y
148+CONFIG_INPUT_EVBUG=y
149+# CONFIG_INPUT_KEYBOARD is not set
150+# CONFIG_INPUT_MOUSE is not set
151+CONFIG_INPUT_TOUCHSCREEN=y
152+CONFIG_TOUCHSCREEN_ADS7846=y
153+CONFIG_INPUT_MISC=y
154+CONFIG_INPUT_UINPUT=y
155+# CONFIG_SERIO is not set
156+CONFIG_SERIAL_8250=y
157+CONFIG_SERIAL_8250_CONSOLE=y
158+CONFIG_SERIAL_8250_NR_UARTS=3
159+CONFIG_SERIAL_8250_RUNTIME_UARTS=3
160+# CONFIG_LEGACY_PTYS is not set
161+CONFIG_HW_RANDOM=y
162+CONFIG_I2C=y
163+CONFIG_I2C_CHARDEV=y
164+CONFIG_SPI=y
165+CONFIG_SPI_OMAP_UWIRE=y
166+# CONFIG_HWMON is not set
167+CONFIG_WATCHDOG=y
168+CONFIG_WATCHDOG_NOWAYOUT=y
169+CONFIG_OMAP_WATCHDOG=y
170+CONFIG_VIDEO_OUTPUT_CONTROL=y
171+CONFIG_FB=y
172+CONFIG_FIRMWARE_EDID=y
173+CONFIG_FB_MODE_HELPERS=y
174+CONFIG_FB_VIRTUAL=y
175+CONFIG_FB_OMAP=y
176+CONFIG_FB_OMAP_LCDC_EXTERNAL=y
177+CONFIG_FB_OMAP_LCDC_HWA742=y
178+CONFIG_FB_OMAP_MANUAL_UPDATE=y
179+CONFIG_FB_OMAP_LCD_MIPID=y
180+CONFIG_FB_OMAP_BOOTLOADER_INIT=y
181+CONFIG_BACKLIGHT_LCD_SUPPORT=y
182+CONFIG_LCD_CLASS_DEVICE=y
183+CONFIG_FRAMEBUFFER_CONSOLE=y
184+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
185+CONFIG_FONTS=y
186+CONFIG_FONT_8x8=y
187+CONFIG_FONT_8x16=y
188+CONFIG_FONT_6x11=y
189+CONFIG_FONT_MINI_4x6=y
190+CONFIG_LOGO=y
191+# CONFIG_LOGO_LINUX_MONO is not set
192+# CONFIG_LOGO_LINUX_VGA16 is not set
193+CONFIG_SOUND=y
194+CONFIG_SND=y
195+CONFIG_SND_MIXER_OSS=y
196+CONFIG_SND_PCM_OSS=y
197+# CONFIG_SND_SUPPORT_OLD_API is not set
198+# CONFIG_SND_VERBOSE_PROCFS is not set
199+CONFIG_SND_DUMMY=y
200+CONFIG_SND_USB_AUDIO=y
201+CONFIG_SND_SOC=y
202+CONFIG_SND_OMAP_SOC=y
203+# CONFIG_USB_HID is not set
204+CONFIG_USB=y
205+CONFIG_USB_DEBUG=y
206+CONFIG_USB_DEVICEFS=y
207+# CONFIG_USB_DEVICE_CLASS is not set
208+CONFIG_USB_SUSPEND=y
209+CONFIG_USB_MON=y
210+CONFIG_USB_OHCI_HCD=y
211+CONFIG_USB_STORAGE=y
212+CONFIG_USB_STORAGE_DATAFAB=y
213+CONFIG_USB_STORAGE_FREECOM=y
214+CONFIG_USB_STORAGE_SDDR09=y
215+CONFIG_USB_STORAGE_SDDR55=y
216+CONFIG_USB_STORAGE_JUMPSHOT=y
217+CONFIG_USB_SERIAL=y
218+CONFIG_USB_SERIAL_CONSOLE=y
219+CONFIG_USB_SERIAL_PL2303=y
220+CONFIG_USB_TEST=y
221+CONFIG_USB_GADGET=y
222+CONFIG_USB_ETH=m
223+# CONFIG_USB_ETH_RNDIS is not set
224+CONFIG_USB_FILE_STORAGE=m
225+CONFIG_USB_FILE_STORAGE_TEST=y
226+CONFIG_MMC=y
227+CONFIG_MMC_SDHCI=y
228+CONFIG_MMC_SDHCI_PLTFM=y
229+CONFIG_MMC_OMAP=y
230+CONFIG_NEW_LEDS=y
231+CONFIG_LEDS_CLASS=y
232+CONFIG_LEDS_TRIGGERS=y
233+CONFIG_LEDS_TRIGGER_TIMER=y
234+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
235+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
236+CONFIG_RTC_CLASS=y
237+CONFIG_RTC_DRV_OMAP=y
238+CONFIG_EXT2_FS=y
239+CONFIG_EXT3_FS=y
240+# CONFIG_DNOTIFY is not set
241+CONFIG_AUTOFS4_FS=y
242+CONFIG_ISO9660_FS=y
243+CONFIG_JOLIET=y
244+CONFIG_MSDOS_FS=y
245+CONFIG_VFAT_FS=y
246+CONFIG_FAT_DEFAULT_CODEPAGE=866
247+CONFIG_FAT_DEFAULT_IOCHARSET="koi8-r"
248+CONFIG_JFFS2_FS=y
249+CONFIG_JFFS2_SUMMARY=y
250+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
251+CONFIG_CRAMFS=y
252+CONFIG_ROMFS_FS=y
253+CONFIG_NFS_FS=y
254+CONFIG_NFS_V3=y
255+CONFIG_NFS_V4=y
256+CONFIG_ROOT_NFS=y
257+CONFIG_PARTITION_ADVANCED=y
258+CONFIG_NLS_CODEPAGE_437=y
259+CONFIG_NLS_CODEPAGE_850=y
260+CONFIG_NLS_CODEPAGE_852=y
261+CONFIG_NLS_CODEPAGE_866=y
262+CONFIG_NLS_CODEPAGE_1251=y
263+CONFIG_NLS_ISO8859_1=y
264+CONFIG_NLS_ISO8859_2=y
265+CONFIG_NLS_ISO8859_5=y
266+CONFIG_NLS_ISO8859_15=y
267+CONFIG_NLS_KOI8_R=y
268+CONFIG_NLS_UTF8=y
269+# CONFIG_ENABLE_MUST_CHECK is not set
270+CONFIG_MAGIC_SYSRQ=y
271+CONFIG_DEBUG_KERNEL=y
272+CONFIG_DEBUG_SPINLOCK=y
273+CONFIG_DEBUG_MUTEXES=y
274+# CONFIG_DEBUG_BUGVERBOSE is not set
275+CONFIG_DEBUG_INFO=y
276+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
277+CONFIG_DEBUG_USER=y
278+CONFIG_DEBUG_ERRORS=y
279+CONFIG_SECURITY=y
280+CONFIG_CRYPTO_ECB=y
281+CONFIG_CRYPTO_PCBC=y
282+CONFIG_CRYPTO_DEFLATE=y
283+CONFIG_CRYPTO_ZLIB=y
284+CONFIG_CRYPTO_LZO=y
285+# CONFIG_CRYPTO_ANSI_CPRNG is not set
286+CONFIG_LIBCRC32C=y
arch/arm/configs/omap2plus_defconfig+1−1
@@ -6,7 +6,7 @@ CONFIG_IKCONFIG=y · 5 unmodified lines
66 CONFIG_IKCONFIG_PROC=y
77 CONFIG_LOG_BUF_SHIFT=16
88 CONFIG_BLK_DEV_INITRD=y
9−CONFIG_EMBEDDED=y
9+CONFIG_EXPERT=y
1010 # CONFIG_SYSCTL_SYSCALL is not set
1111 CONFIG_KALLSYMS_EXTRA_PASS=y
1212 CONFIG_SLAB=y
arch/arm/configs/omap_generic_1510_defconfig+0−84
@@ -1,84 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_BLK_DEV_INITRD=y
5−CONFIG_SLAB=y
6−CONFIG_MODULES=y
7−CONFIG_MODULE_UNLOAD=y
8−CONFIG_MODULE_FORCE_UNLOAD=y
9−# CONFIG_BLK_DEV_BSG is not set
10−CONFIG_ARCH_OMAP=y
11−CONFIG_ARCH_OMAP1=y
12−CONFIG_MACH_OMAP_GENERIC=y
13−CONFIG_OMAP_ARM_168MHZ=y
14−# CONFIG_OMAP_ARM_60MHZ is not set
15−# CONFIG_ARM_THUMB is not set
16−CONFIG_PREEMPT=y
17−CONFIG_ZBOOT_ROM_TEXT=0x0
18−CONFIG_ZBOOT_ROM_BSS=0x0
19−CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
20−CONFIG_FPE_NWFPE=y
21−CONFIG_PM=y
22−CONFIG_NET=y
23−CONFIG_PACKET=y
24−CONFIG_UNIX=y
25−CONFIG_INET=y
26−CONFIG_IP_MULTICAST=y
27−CONFIG_IP_PNP=y
28−CONFIG_IP_PNP_DHCP=y
29−CONFIG_IP_PNP_BOOTP=y
30−# CONFIG_IPV6 is not set
31−CONFIG_BLK_DEV_LOOP=y
32−CONFIG_BLK_DEV_RAM=y
33−CONFIG_BLK_DEV_RAM_SIZE=8192
34−CONFIG_SCSI=y
35−CONFIG_BLK_DEV_SD=y
36−CONFIG_BLK_DEV_SR=y
37−CONFIG_CHR_DEV_SG=y
38−CONFIG_SCSI_MULTI_LUN=y
39−CONFIG_NETDEVICES=y
40−CONFIG_NET_ETHERNET=y
41−CONFIG_USB_RTL8150=y
42−CONFIG_USB_USBNET=y
43−CONFIG_USB_AN2720=y
44−CONFIG_USB_EPSON2888=y
45−CONFIG_PPP=y
46−CONFIG_PPP_MULTILINK=y
47−CONFIG_KEYBOARD_OMAP=y
48−# CONFIG_INPUT_MOUSE is not set
49−CONFIG_SERIAL_8250=y
50−CONFIG_SERIAL_8250_CONSOLE=y
51−# CONFIG_LEGACY_PTYS is not set
52−CONFIG_I2C=y
53−CONFIG_I2C_CHARDEV=y
54−CONFIG_VIDEO_OUTPUT_CONTROL=m
55−# CONFIG_VGA_CONSOLE is not set
56−CONFIG_USB=y
57−CONFIG_USB_DEBUG=y
58−CONFIG_USB_DEVICEFS=y
59−# CONFIG_USB_DEVICE_CLASS is not set
60−CONFIG_USB_MON=y
61−CONFIG_USB_OHCI_HCD=y
62−CONFIG_USB_STORAGE=y
63−CONFIG_USB_STORAGE_DATAFAB=y
64−CONFIG_USB_STORAGE_FREECOM=y
65−CONFIG_USB_STORAGE_SDDR09=y
66−CONFIG_USB_STORAGE_SDDR55=y
67−CONFIG_USB_STORAGE_JUMPSHOT=y
68−CONFIG_MMC=y
69−CONFIG_MMC_OMAP=y
70−CONFIG_RTC_CLASS=y
71−CONFIG_RTC_DRV_OMAP=y
72−CONFIG_EXT2_FS=y
73−CONFIG_EXT3_FS=y
74−CONFIG_INOTIFY=y
75−CONFIG_AUTOFS_FS=y
76−CONFIG_AUTOFS4_FS=y
77−CONFIG_ISO9660_FS=y
78−CONFIG_JOLIET=y
79−CONFIG_MSDOS_FS=m
80−CONFIG_VFAT_FS=m
81−CONFIG_NFS_FS=y
82−CONFIG_PARTITION_ADVANCED=y
83−CONFIG_MAGIC_SYSRQ=y
84−CONFIG_DEBUG_KERNEL=y
arch/arm/configs/omap_generic_1610_defconfig+0−87
@@ -1,87 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_BLK_DEV_INITRD=y
5−CONFIG_SLAB=y
6−CONFIG_MODULES=y
7−CONFIG_MODULE_UNLOAD=y
8−CONFIG_MODULE_FORCE_UNLOAD=y
9−# CONFIG_BLK_DEV_BSG is not set
10−CONFIG_ARCH_OMAP=y
11−CONFIG_ARCH_OMAP1=y
12−# CONFIG_ARCH_OMAP15XX is not set
13−CONFIG_ARCH_OMAP16XX=y
14−CONFIG_MACH_OMAP_GENERIC=y
15−CONFIG_OMAP_ARM_192MHZ=y
16−# CONFIG_OMAP_ARM_60MHZ is not set
17−# CONFIG_ARM_THUMB is not set
18−CONFIG_PREEMPT=y
19−CONFIG_ZBOOT_ROM_TEXT=0x0
20−CONFIG_ZBOOT_ROM_BSS=0x0
21−CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
22−CONFIG_FPE_NWFPE=y
23−CONFIG_PM=y
24−CONFIG_NET=y
25−CONFIG_PACKET=y
26−CONFIG_UNIX=y
27−CONFIG_INET=y
28−CONFIG_IP_MULTICAST=y
29−CONFIG_IP_PNP=y
30−CONFIG_IP_PNP_DHCP=y
31−CONFIG_IP_PNP_BOOTP=y
32−# CONFIG_IPV6 is not set
33−CONFIG_BLK_DEV_LOOP=y
34−CONFIG_BLK_DEV_RAM=y
35−CONFIG_BLK_DEV_RAM_SIZE=8192
36−CONFIG_SCSI=y
37−CONFIG_BLK_DEV_SD=y
38−CONFIG_BLK_DEV_SR=y
39−CONFIG_CHR_DEV_SG=y
40−CONFIG_SCSI_MULTI_LUN=y
41−CONFIG_NETDEVICES=y
42−CONFIG_NET_ETHERNET=y
43−CONFIG_USB_RTL8150=y
44−CONFIG_USB_USBNET=y
45−CONFIG_USB_ALI_M5632=y
46−CONFIG_USB_AN2720=y
47−CONFIG_USB_EPSON2888=y
48−CONFIG_PPP=y
49−CONFIG_PPP_MULTILINK=y
50−CONFIG_KEYBOARD_OMAP=y
51−# CONFIG_INPUT_MOUSE is not set
52−CONFIG_SERIAL_8250=y
53−CONFIG_SERIAL_8250_CONSOLE=y
54−# CONFIG_LEGACY_PTYS is not set
55−CONFIG_I2C=y
56−CONFIG_I2C_CHARDEV=y
57−CONFIG_VIDEO_OUTPUT_CONTROL=m
58−# CONFIG_VGA_CONSOLE is not set
59−CONFIG_USB=y
60−CONFIG_USB_DEBUG=y
61−CONFIG_USB_DEVICEFS=y
62−# CONFIG_USB_DEVICE_CLASS is not set
63−CONFIG_USB_MON=y
64−CONFIG_USB_OHCI_HCD=y
65−CONFIG_USB_STORAGE=y
66−CONFIG_USB_STORAGE_DATAFAB=y
67−CONFIG_USB_STORAGE_FREECOM=y
68−CONFIG_USB_STORAGE_SDDR09=y
69−CONFIG_USB_STORAGE_SDDR55=y
70−CONFIG_USB_STORAGE_JUMPSHOT=y
71−CONFIG_MMC=y
72−CONFIG_MMC_OMAP=y
73−CONFIG_RTC_CLASS=y
74−CONFIG_RTC_DRV_OMAP=y
75−CONFIG_EXT2_FS=y
76−CONFIG_EXT3_FS=y
77−CONFIG_INOTIFY=y
78−CONFIG_AUTOFS_FS=y
79−CONFIG_AUTOFS4_FS=y
80−CONFIG_ISO9660_FS=y
81−CONFIG_JOLIET=y
82−CONFIG_MSDOS_FS=m
83−CONFIG_VFAT_FS=m
84−CONFIG_NFS_FS=y
85−CONFIG_PARTITION_ADVANCED=y
86−CONFIG_MAGIC_SYSRQ=y
87−CONFIG_DEBUG_KERNEL=y
arch/arm/configs/omap_generic_1710_defconfig+0−75
@@ -1,75 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_BLK_DEV_INITRD=y
5−# CONFIG_BLK_DEV_BSG is not set
6−CONFIG_ARCH_OMAP=y
7−CONFIG_ARCH_OMAP1=y
8−# CONFIG_OMAP_MUX is not set
9−# CONFIG_ARCH_OMAP15XX is not set
10−CONFIG_ARCH_OMAP16XX=y
11−CONFIG_MACH_OMAP_GENERIC=y
12−CONFIG_OMAP_ARM_192MHZ=y
13−# CONFIG_OMAP_ARM_60MHZ is not set
14−# CONFIG_ARM_THUMB is not set
15−CONFIG_ZBOOT_ROM_TEXT=0x0
16−CONFIG_ZBOOT_ROM_BSS=0x0
17−CONFIG_CMDLINE="mem=64M console=tty0 console=ttyS2,115200 root=0801"
18−CONFIG_FPE_NWFPE=y
19−CONFIG_ARTHUR=y
20−CONFIG_PM=y
21−CONFIG_NET=y
22−CONFIG_PACKET=y
23−CONFIG_UNIX=y
24−CONFIG_INET=y
25−CONFIG_IP_MULTICAST=y
26−CONFIG_IP_PNP=y
27−CONFIG_IP_PNP_DHCP=y
28−CONFIG_IP_PNP_BOOTP=y
29−# CONFIG_IPV6 is not set
30−CONFIG_BLK_DEV_LOOP=y
31−CONFIG_BLK_DEV_RAM=y
32−CONFIG_BLK_DEV_RAM_SIZE=8192
33−CONFIG_SCSI=y
34−CONFIG_BLK_DEV_SD=y
35−CONFIG_NETDEVICES=y
36−CONFIG_NET_ETHERNET=y
37−CONFIG_USB_USBNET=y
38−CONFIG_USB_ALI_M5632=y
39−# CONFIG_USB_BELKIN is not set
40−# CONFIG_USB_ARMLINUX is not set
41−CONFIG_PPP=y
42−CONFIG_INPUT_EVDEV=y
43−CONFIG_KEYBOARD_OMAP=y
44−# CONFIG_INPUT_MOUSE is not set
45−CONFIG_SERIAL_8250=y
46−CONFIG_SERIAL_8250_CONSOLE=y
47−CONFIG_VIDEO_OUTPUT_CONTROL=y
48−# CONFIG_VGA_CONSOLE is not set
49−CONFIG_USB=y
50−CONFIG_USB_DEBUG=y
51−CONFIG_USB_DEVICEFS=y
52−CONFIG_USB_MON=y
53−CONFIG_USB_OHCI_HCD=y
54−CONFIG_USB_STORAGE=y
55−CONFIG_MMC=y
56−CONFIG_MMC_OMAP=y
57−CONFIG_EXT2_FS=y
58−CONFIG_EXT3_FS=y
59−CONFIG_INOTIFY=y
60−CONFIG_TMPFS=y
61−CONFIG_NFS_FS=y
62−CONFIG_NFS_V3=y
63−CONFIG_NFS_V4=y
64−CONFIG_PARTITION_ADVANCED=y
65−CONFIG_NLS_CODEPAGE_437=y
66−CONFIG_NLS_CODEPAGE_852=y
67−CONFIG_NLS_ISO8859_1=y
68−CONFIG_NLS_ISO8859_15=y
69−CONFIG_MAGIC_SYSRQ=y
70−CONFIG_DEBUG_KERNEL=y
71−CONFIG_DEBUG_SPINLOCK=y
72−CONFIG_DEBUG_ERRORS=y
73−CONFIG_SECURITY=y
74−CONFIG_CRYPTO_ECB=y
75−CONFIG_CRYPTO_PCBC=y
arch/arm/configs/omap_h2_1610_defconfig+0−109
@@ -1,109 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_BLK_DEV_INITRD=y
5−CONFIG_SLAB=y
6−CONFIG_MODULES=y
7−CONFIG_MODULE_UNLOAD=y
8−# CONFIG_BLK_DEV_BSG is not set
9−CONFIG_ARCH_OMAP=y
10−CONFIG_ARCH_OMAP1=y
11−CONFIG_OMAP_MUX_DEBUG=y
12−CONFIG_OMAP_32K_TIMER=y
13−CONFIG_OMAP_DM_TIMER=y
14−# CONFIG_ARCH_OMAP15XX is not set
15−CONFIG_ARCH_OMAP16XX=y
16−CONFIG_MACH_OMAP_H2=y
17−CONFIG_NO_HZ=y
18−CONFIG_HIGH_RES_TIMERS=y
19−CONFIG_LEDS=y
20−CONFIG_ZBOOT_ROM_TEXT=0x0
21−CONFIG_ZBOOT_ROM_BSS=0x0
22−CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 rw initrd=0x10600000,8M ramdisk_size=8192"
23−CONFIG_FPE_NWFPE=y
24−CONFIG_PM=y
25−CONFIG_PM_RUNTIME=y
26−CONFIG_NET=y
27−CONFIG_PACKET=y
28−CONFIG_UNIX=y
29−CONFIG_INET=y
30−CONFIG_IP_PNP=y
31−CONFIG_IP_PNP_DHCP=y
32−CONFIG_IP_PNP_BOOTP=y
33−# CONFIG_INET_LRO is not set
34−# CONFIG_IPV6 is not set
35−CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
36−CONFIG_DEBUG_DRIVER=y
37−CONFIG_MTD=y
38−CONFIG_MTD_DEBUG=y
39−CONFIG_MTD_DEBUG_VERBOSE=3
40−CONFIG_MTD_PARTITIONS=y
41−CONFIG_MTD_CMDLINE_PARTS=y
42−CONFIG_MTD_CHAR=y
43−CONFIG_MTD_BLOCK=y
44−CONFIG_MTD_CFI=y
45−CONFIG_MTD_CFI_INTELEXT=y
46−CONFIG_BLK_DEV_LOOP=y
47−CONFIG_BLK_DEV_RAM=y
48−CONFIG_BLK_DEV_RAM_SIZE=8192
49−CONFIG_NETDEVICES=y
50−CONFIG_NET_ETHERNET=y
51−CONFIG_SMC91X=y
52−CONFIG_PPP=y
53−CONFIG_SLIP=y
54−CONFIG_SLIP_COMPRESSED=y
55−CONFIG_INPUT_EVDEV=y
56−CONFIG_INPUT_EVBUG=y
57−# CONFIG_INPUT_KEYBOARD is not set
58−# CONFIG_INPUT_MOUSE is not set
59−CONFIG_INPUT_MISC=y
60−CONFIG_INPUT_UINPUT=y
61−CONFIG_SERIAL_8250=y
62−CONFIG_SERIAL_8250_CONSOLE=y
63−# CONFIG_LEGACY_PTYS is not set
64−CONFIG_I2C=y
65−CONFIG_I2C_OMAP=y
66−CONFIG_SPI=y
67−CONFIG_SPI_OMAP_UWIRE=y
68−CONFIG_WATCHDOG=y
69−CONFIG_WATCHDOG_NOWAYOUT=y
70−CONFIG_VIDEO_OUTPUT_CONTROL=m
71−CONFIG_FB=y
72−CONFIG_FIRMWARE_EDID=y
73−CONFIG_FB_MODE_HELPERS=y
74−CONFIG_FB_OMAP=y
75−# CONFIG_VGA_CONSOLE is not set
76−CONFIG_FRAMEBUFFER_CONSOLE=y
77−CONFIG_LOGO=y
78−# CONFIG_LOGO_LINUX_MONO is not set
79−# CONFIG_LOGO_LINUX_VGA16 is not set
80−# CONFIG_USB_HID is not set
81−CONFIG_USB=y
82−CONFIG_USB_DEVICEFS=y
83−# CONFIG_USB_DEVICE_CLASS is not set
84−CONFIG_USB_SUSPEND=y
85−CONFIG_USB_OTG=y
86−CONFIG_USB_MON=y
87−CONFIG_USB_OHCI_HCD=y
88−CONFIG_USB_TEST=y
89−CONFIG_USB_GADGET=y
90−CONFIG_USB_ETH=m
91−CONFIG_MMC=y
92−CONFIG_MMC_OMAP=y
93−CONFIG_RTC_CLASS=y
94−CONFIG_RTC_DRV_OMAP=y
95−CONFIG_EXT2_FS=y
96−CONFIG_INOTIFY=y
97−CONFIG_MSDOS_FS=y
98−CONFIG_VFAT_FS=y
99−CONFIG_JFFS2_FS=y
100−CONFIG_CRAMFS=y
101−CONFIG_ROMFS_FS=y
102−CONFIG_NFS_FS=y
103−CONFIG_ROOT_NFS=y
104−CONFIG_NLS_CODEPAGE_437=y
105−CONFIG_NLS_ISO8859_1=y
106−CONFIG_DEBUG_KERNEL=y
107−CONFIG_DEBUG_INFO=y
108−CONFIG_DEBUG_USER=y
109−CONFIG_DEBUG_ERRORS=y
arch/arm/configs/omap_innovator_1510_defconfig+0−102
@@ -1,102 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_BLK_DEV_INITRD=y
5−CONFIG_SLAB=y
6−CONFIG_MODULES=y
7−CONFIG_MODULE_UNLOAD=y
8−# CONFIG_BLK_DEV_BSG is not set
9−CONFIG_ARCH_OMAP=y
10−CONFIG_ARCH_OMAP1=y
11−CONFIG_MACH_OMAP_INNOVATOR=y
12−CONFIG_OMAP_ARM_168MHZ=y
13−# CONFIG_OMAP_ARM_60MHZ is not set
14−CONFIG_PREEMPT=y
15−CONFIG_LEDS=y
16−CONFIG_ZBOOT_ROM_TEXT=0x0
17−CONFIG_ZBOOT_ROM_BSS=0x0
18−CONFIG_CMDLINE="console=ttyS0,115200n8 root=/dev/nfs ip=bootp noinitrd"
19−CONFIG_FPE_NWFPE=y
20−CONFIG_PM=y
21−CONFIG_NET=y
22−CONFIG_PACKET=y
23−CONFIG_UNIX=y
24−CONFIG_INET=y
25−CONFIG_IP_MULTICAST=y
26−CONFIG_IP_PNP=y
27−CONFIG_IP_PNP_DHCP=y
28−CONFIG_IP_PNP_BOOTP=y
29−# CONFIG_IPV6 is not set
30−CONFIG_BLK_DEV_LOOP=y
31−CONFIG_BLK_DEV_RAM=y
32−CONFIG_BLK_DEV_RAM_SIZE=8192
33−CONFIG_SCSI=y
34−CONFIG_BLK_DEV_SD=y
35−CONFIG_CHR_DEV_ST=y
36−CONFIG_BLK_DEV_SR=y
37−CONFIG_CHR_DEV_SG=y
38−CONFIG_SCSI_MULTI_LUN=y
39−CONFIG_NETDEVICES=y
40−CONFIG_NET_ETHERNET=y
41−CONFIG_SMC91X=y
42−CONFIG_USB_RTL8150=y
43−CONFIG_USB_USBNET=y
44−# CONFIG_USB_NET_CDC_SUBSET is not set
45−CONFIG_PPP=y
46−CONFIG_PPP_MULTILINK=y
47−CONFIG_PPP_ASYNC=y
48−CONFIG_PPP_DEFLATE=y
49−CONFIG_PPP_BSDCOMP=y
50−CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
51−CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
52−# CONFIG_KEYBOARD_ATKBD is not set
53−CONFIG_KEYBOARD_OMAP=y
54−# CONFIG_INPUT_MOUSE is not set
55−CONFIG_SERIAL_8250=y
56−CONFIG_SERIAL_8250_CONSOLE=y
57−# CONFIG_LEGACY_PTYS is not set
58−CONFIG_I2C=y
59−CONFIG_VIDEO_OUTPUT_CONTROL=m
60−CONFIG_FB=y
61−CONFIG_FB_OMAP=y
62−# CONFIG_VGA_CONSOLE is not set
63−CONFIG_FRAMEBUFFER_CONSOLE=y
64−CONFIG_FONTS=y
65−CONFIG_FONT_8x8=y
66−CONFIG_FONT_8x16=y
67−CONFIG_LOGO=y
68−CONFIG_USB=y
69−CONFIG_USB_DEBUG=y
70−CONFIG_USB_DEVICEFS=y
71−# CONFIG_USB_DEVICE_CLASS is not set
72−CONFIG_USB_MON=y
73−CONFIG_USB_OHCI_HCD=y
74−CONFIG_USB_STORAGE=y
75−CONFIG_USB_STORAGE_DATAFAB=y
76−CONFIG_USB_STORAGE_FREECOM=y
77−CONFIG_USB_STORAGE_SDDR09=y
78−CONFIG_USB_STORAGE_SDDR55=y
79−CONFIG_USB_STORAGE_JUMPSHOT=y
80−CONFIG_MMC=y
81−CONFIG_MMC_OMAP=y
82−CONFIG_RTC_CLASS=y
83−CONFIG_RTC_DRV_OMAP=y
84−CONFIG_EXT2_FS=y
85−CONFIG_EXT3_FS=y
86−CONFIG_INOTIFY=y
87−CONFIG_AUTOFS_FS=y
88−CONFIG_AUTOFS4_FS=y
89−CONFIG_ISO9660_FS=y
90−CONFIG_JOLIET=y
91−CONFIG_MSDOS_FS=m
92−CONFIG_VFAT_FS=m
93−CONFIG_TMPFS=y
94−CONFIG_NFS_FS=y
95−CONFIG_NFS_V3=y
96−CONFIG_NFS_V4=y
97−CONFIG_ROOT_NFS=y
98−CONFIG_PARTITION_ADVANCED=y
99−CONFIG_MAGIC_SYSRQ=y
100−CONFIG_DEBUG_KERNEL=y
101−CONFIG_CRYPTO_ECB=m
102−CONFIG_CRYPTO_PCBC=m
arch/arm/configs/omap_innovator_1610_defconfig+0−58
@@ -1,58 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_BLK_DEV_INITRD=y
5−CONFIG_MODULES=y
6−CONFIG_MODULE_UNLOAD=y
7−# CONFIG_BLK_DEV_BSG is not set
8−CONFIG_ARCH_OMAP=y
9−CONFIG_ARCH_OMAP1=y
10−# CONFIG_ARCH_OMAP15XX is not set
11−CONFIG_ARCH_OMAP16XX=y
12−CONFIG_MACH_OMAP_INNOVATOR=y
13−CONFIG_OMAP_ARM_192MHZ=y
14−# CONFIG_OMAP_ARM_60MHZ is not set
15−# CONFIG_ARM_THUMB is not set
16−CONFIG_CPU_DCACHE_WRITETHROUGH=y
17−CONFIG_ZBOOT_ROM_TEXT=0x0
18−CONFIG_ZBOOT_ROM_BSS=0x0
19−CONFIG_CMDLINE="mem=32M console=tty0 console=ttyS0,115200 initrd=0x10200000,8M root=/dev/ram0 rw"
20−CONFIG_FPE_NWFPE=y
21−CONFIG_NET=y
22−CONFIG_PACKET=m
23−CONFIG_UNIX=y
24−CONFIG_INET=y
25−CONFIG_IP_MULTICAST=y
26−CONFIG_IP_PNP=y
27−CONFIG_IP_PNP_DHCP=y
28−CONFIG_IP_PNP_BOOTP=y
29−# CONFIG_IPV6 is not set
30−CONFIG_BLK_DEV_LOOP=y
31−CONFIG_BLK_DEV_RAM=y
32−CONFIG_BLK_DEV_RAM_SIZE=8192
33−CONFIG_NETDEVICES=y
34−CONFIG_NET_ETHERNET=y
35−CONFIG_SMC91X=y
36−CONFIG_PPP=y
37−CONFIG_PPP_MULTILINK=y
38−# CONFIG_KEYBOARD_ATKBD is not set
39−CONFIG_KEYBOARD_OMAP=y
40−# CONFIG_INPUT_MOUSE is not set
41−CONFIG_SERIAL_8250=y
42−CONFIG_SERIAL_8250_CONSOLE=y
43−CONFIG_VIDEO_OUTPUT_CONTROL=m
44−CONFIG_FB=y
45−CONFIG_FB_MODE_HELPERS=y
46−CONFIG_FB_OMAP=y
47−# CONFIG_VGA_CONSOLE is not set
48−CONFIG_FRAMEBUFFER_CONSOLE=y
49−CONFIG_FONTS=y
50−CONFIG_FONT_8x8=y
51−CONFIG_FONT_8x16=y
52−CONFIG_LOGO=y
53−CONFIG_EXT2_FS=y
54−CONFIG_INOTIFY=y
55−CONFIG_AUTOFS_FS=y
56−CONFIG_AUTOFS4_FS=y
57−CONFIG_NFS_FS=y
58−CONFIG_NFS_V3=y
arch/arm/configs/omap_osk_5912_defconfig+0−87
@@ -1,87 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_BLK_DEV_INITRD=y
5−CONFIG_MODULES=y
6−CONFIG_MODULE_UNLOAD=y
7−# CONFIG_BLK_DEV_BSG is not set
8−CONFIG_ARCH_OMAP=y
9−CONFIG_ARCH_OMAP1=y
10−CONFIG_OMAP_RESET_CLOCKS=y
11−CONFIG_OMAP_32K_TIMER=y
12−# CONFIG_ARCH_OMAP15XX is not set
13−CONFIG_ARCH_OMAP16XX=y
14−CONFIG_MACH_OMAP_OSK=y
15−CONFIG_OMAP_ARM_192MHZ=y
16−# CONFIG_OMAP_ARM_60MHZ is not set
17−# CONFIG_ARM_THUMB is not set
18−CONFIG_PCCARD=y
19−CONFIG_OMAP_CF=y
20−CONFIG_NO_HZ=y
21−CONFIG_ZBOOT_ROM_TEXT=0x0
22−CONFIG_ZBOOT_ROM_BSS=0x0
23−CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw"
24−CONFIG_FPE_NWFPE=y
25−CONFIG_PM=y
26−CONFIG_NET=y
27−CONFIG_PACKET=m
28−CONFIG_UNIX=y
29−CONFIG_INET=y
30−CONFIG_IP_MULTICAST=y
31−CONFIG_IP_PNP=y
32−CONFIG_IP_PNP_DHCP=y
33−CONFIG_IP_PNP_BOOTP=y
34−# CONFIG_INET_LRO is not set
35−# CONFIG_IPV6 is not set
36−CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
37−CONFIG_MTD=y
38−CONFIG_MTD_PARTITIONS=y
39−CONFIG_MTD_CMDLINE_PARTS=y
40−CONFIG_MTD_CHAR=y
41−CONFIG_MTD_BLOCK=y
42−CONFIG_MTD_CFI=y
43−CONFIG_MTD_CFI_INTELEXT=y
44−CONFIG_BLK_DEV_LOOP=y
45−CONFIG_BLK_DEV_RAM=y
46−CONFIG_BLK_DEV_RAM_SIZE=8192
47−CONFIG_IDE=m
48−CONFIG_BLK_DEV_IDECS=m
49−CONFIG_NETDEVICES=y
50−CONFIG_NET_ETHERNET=y
51−CONFIG_SMC91X=y
52−CONFIG_PPP=y
53−CONFIG_PPP_MULTILINK=y
54−# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
55−CONFIG_INPUT_EVDEV=y
56−# CONFIG_KEYBOARD_ATKBD is not set
57−CONFIG_KEYBOARD_OMAP=y
58−# CONFIG_INPUT_MOUSE is not set
59−CONFIG_INPUT_TOUCHSCREEN=y
60−# CONFIG_SERIO is not set
61−CONFIG_SERIAL_8250=y
62−CONFIG_SERIAL_8250_CONSOLE=y
63−CONFIG_I2C=y
64−CONFIG_I2C_CHARDEV=y
65−CONFIG_VIDEO_OUTPUT_CONTROL=m
66−CONFIG_FB=y
67−CONFIG_FB_MODE_HELPERS=y
68−CONFIG_FB_OMAP=y
69−# CONFIG_VGA_CONSOLE is not set
70−CONFIG_FRAMEBUFFER_CONSOLE=y
71−CONFIG_FONTS=y
72−CONFIG_FONT_8x8=y
73−CONFIG_LOGO=y
74−# CONFIG_LOGO_LINUX_MONO is not set
75−# CONFIG_LOGO_LINUX_VGA16 is not set
76−CONFIG_EXT2_FS=y
77−CONFIG_INOTIFY=y
78−CONFIG_AUTOFS_FS=y
79−CONFIG_AUTOFS4_FS=y
80−CONFIG_MSDOS_FS=m
81−CONFIG_VFAT_FS=m
82−CONFIG_JFFS2_FS=y
83−CONFIG_NFS_FS=y
84−CONFIG_NFS_V3=y
85−CONFIG_ROOT_NFS=y
86−CONFIG_NLS_CODEPAGE_437=m
87−CONFIG_NLS_ISO8859_1=m
arch/arm/configs/omap_perseus2_730_defconfig+0−65
@@ -1,65 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_LOG_BUF_SHIFT=14
4−CONFIG_BLK_DEV_INITRD=y
5−CONFIG_SLAB=y
6−CONFIG_MODULES=y
7−CONFIG_MODULE_UNLOAD=y
8−# CONFIG_BLK_DEV_BSG is not set
9−CONFIG_ARCH_OMAP=y
10−CONFIG_ARCH_OMAP1=y
11−CONFIG_ARCH_OMAP730=y
12−# CONFIG_ARCH_OMAP15XX is not set
13−CONFIG_MACH_OMAP_PERSEUS2=y
14−CONFIG_OMAP_ARM_182MHZ=y
15−# CONFIG_OMAP_ARM_60MHZ is not set
16−# CONFIG_ARM_THUMB is not set
17−CONFIG_PREEMPT=y
18−CONFIG_LEDS=y
19−CONFIG_LEDS_CPU=y
20−CONFIG_ZBOOT_ROM_TEXT=0x0
21−CONFIG_ZBOOT_ROM_BSS=0x0
22−CONFIG_CMDLINE="mem=32M console=ttyS0,115200 ip=dhcp"
23−CONFIG_FPE_NWFPE=y
24−CONFIG_PM=y
25−CONFIG_NET=y
26−CONFIG_PACKET=y
27−CONFIG_UNIX=y
28−CONFIG_INET=y
29−CONFIG_IP_MULTICAST=y
30−CONFIG_IP_PNP=y
31−CONFIG_IP_PNP_DHCP=y
32−CONFIG_IP_PNP_BOOTP=y
33−# CONFIG_IPV6 is not set
34−CONFIG_MTD=y
35−CONFIG_MTD_PARTITIONS=y
36−CONFIG_MTD_CMDLINE_PARTS=y
37−CONFIG_MTD_CHAR=y
38−CONFIG_MTD_BLOCK=y
39−CONFIG_MTD_CFI=y
40−CONFIG_MTD_CFI_INTELEXT=y
41−CONFIG_MTD_NAND=y
42−CONFIG_BLK_DEV_LOOP=y
43−CONFIG_BLK_DEV_RAM=y
44−CONFIG_BLK_DEV_RAM_SIZE=8192
45−CONFIG_NETDEVICES=y
46−CONFIG_NET_ETHERNET=y
47−CONFIG_SMC91X=y
48−# CONFIG_KEYBOARD_ATKBD is not set
49−CONFIG_KEYBOARD_OMAP=y
50−# CONFIG_INPUT_MOUSE is not set
51−CONFIG_SERIAL_8250=y
52−CONFIG_SERIAL_8250_CONSOLE=y
53−# CONFIG_LEGACY_PTYS is not set
54−CONFIG_VIDEO_OUTPUT_CONTROL=m
55−CONFIG_FB=y
56−CONFIG_FB_MODE_HELPERS=y
57−CONFIG_FB_VIRTUAL=y
58−# CONFIG_VGA_CONSOLE is not set
59−CONFIG_RTC_CLASS=y
60−CONFIG_RTC_DRV_OMAP=y
61−CONFIG_EXT2_FS=y
62−CONFIG_INOTIFY=y
63−CONFIG_JFFS2_FS=y
64−CONFIG_NFS_FS=y
65−CONFIG_ROOT_NFS=y
arch/arm/configs/orion5x_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
22 CONFIG_SYSVIPC=y
33 CONFIG_LOG_BUF_SHIFT=14
44 CONFIG_SYSFS_DEPRECATED_V2=y
5−CONFIG_EMBEDDED=y
5+CONFIG_EXPERT=y
66 # CONFIG_SLUB_DEBUG is not set
77 CONFIG_PROFILING=y
88 CONFIG_OPROFILE=y
arch/arm/configs/palmte_defconfig+0−48
@@ -1,48 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−# CONFIG_SWAP is not set
3−CONFIG_SYSVIPC=y
4−CONFIG_BSD_PROCESS_ACCT=y
5−CONFIG_LOG_BUF_SHIFT=14
6−CONFIG_SLAB=y
7−# CONFIG_IOSCHED_DEADLINE is not set
8−# CONFIG_IOSCHED_CFQ is not set
9−CONFIG_ARCH_OMAP=y
10−CONFIG_ARCH_OMAP1=y
11−CONFIG_MACH_OMAP_PALMTE=y
12−CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
13−# CONFIG_OMAP_ARM_60MHZ is not set
14−# CONFIG_ARM_THUMB is not set
15−# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
16−CONFIG_ZBOOT_ROM_TEXT=0x0
17−CONFIG_ZBOOT_ROM_BSS=0x0
18−CONFIG_FPE_NWFPE=y
19−# CONFIG_STANDALONE is not set
20−# CONFIG_PREVENT_FIRMWARE_BUILD is not set
21−# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
22−CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
23−CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
24−# CONFIG_INPUT_KEYBOARD is not set
25−# CONFIG_INPUT_MOUSE is not set
26−# CONFIG_SERIO is not set
27−# CONFIG_LEGACY_PTYS is not set
28−# CONFIG_HWMON is not set
29−CONFIG_FB=y
30−CONFIG_FB_OMAP=y
31−# CONFIG_VGA_CONSOLE is not set
32−CONFIG_FRAMEBUFFER_CONSOLE=y
33−CONFIG_LOGO=y
34−# CONFIG_LOGO_LINUX_MONO is not set
35−# CONFIG_LOGO_LINUX_VGA16 is not set
36−CONFIG_USB_GADGET=y
37−CONFIG_MMC=y
38−CONFIG_MMC_OMAP=y
39−CONFIG_EXT2_FS=y
40−CONFIG_MSDOS_FS=y
41−CONFIG_VFAT_FS=y
42−CONFIG_FAT_DEFAULT_CODEPAGE=850
43−CONFIG_TMPFS=y
44−CONFIG_CRAMFS=y
45−CONFIG_PARTITION_ADVANCED=y
46−CONFIG_NLS_CODEPAGE_850=y
47−CONFIG_NLS_ISO8859_1=y
48−CONFIG_CRC_CCITT=y
arch/arm/configs/palmtt_defconfig+0−56
@@ -1,56 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_BSD_PROCESS_ACCT=y
4−CONFIG_LOG_BUF_SHIFT=14
5−CONFIG_SLAB=y
6−# CONFIG_IOSCHED_DEADLINE is not set
7−# CONFIG_IOSCHED_CFQ is not set
8−CONFIG_ARCH_OMAP=y
9−CONFIG_ARCH_OMAP1=y
10−CONFIG_MACH_OMAP_PALMTT=y
11−CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
12−# CONFIG_OMAP_ARM_60MHZ is not set
13−# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
14−CONFIG_ZBOOT_ROM_TEXT=0x0
15−CONFIG_ZBOOT_ROM_BSS=0x0
16−CONFIG_CMDLINE="root=/dev/mmcblk0p2 rw init=/init"
17−CONFIG_FPE_NWFPE=y
18−CONFIG_NET=y
19−CONFIG_PACKET=y
20−CONFIG_UNIX=y
21−CONFIG_NET_KEY=y
22−CONFIG_INET=y
23−# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
24−# CONFIG_INET_XFRM_MODE_TUNNEL is not set
25−# CONFIG_INET_XFRM_MODE_BEET is not set
26−# CONFIG_INET_DIAG is not set
27−# CONFIG_IPV6 is not set
28−CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
29−CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
30−CONFIG_INPUT_EVDEV=y
31−# CONFIG_INPUT_KEYBOARD is not set
32−# CONFIG_INPUT_MOUSE is not set
33−CONFIG_INPUT_TOUCHSCREEN=y
34−CONFIG_TOUCHSCREEN_ADS7846=y
35−# CONFIG_SERIO is not set
36−CONFIG_SPI=y
37−CONFIG_SPI_OMAP_UWIRE=y
38−CONFIG_FB=y
39−CONFIG_FIRMWARE_EDID=y
40−CONFIG_FB_OMAP=y
41−CONFIG_BACKLIGHT_LCD_SUPPORT=y
42−# CONFIG_VGA_CONSOLE is not set
43−CONFIG_FRAMEBUFFER_CONSOLE=y
44−CONFIG_NEW_LEDS=y
45−CONFIG_LEDS_CLASS=y
46−CONFIG_LEDS_TRIGGERS=y
47−CONFIG_LEDS_TRIGGER_TIMER=y
48−CONFIG_LEDS_TRIGGER_HEARTBEAT=y
49−CONFIG_RTC_CLASS=y
50−CONFIG_RTC_DRV_OMAP=y
51−CONFIG_EXT2_FS=y
52−CONFIG_PARTITION_ADVANCED=y
53−# CONFIG_ENABLE_MUST_CHECK is not set
54−CONFIG_CRC_CCITT=y
55−CONFIG_CRC16=y
56−CONFIG_LIBCRC32C=y
arch/arm/configs/palmz71_defconfig+0−53
@@ -1,53 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_LOCALVERSION="-z71"
3−CONFIG_SYSVIPC=y
4−CONFIG_BSD_PROCESS_ACCT=y
5−CONFIG_LOG_BUF_SHIFT=14
6−CONFIG_SLAB=y
7−# CONFIG_IOSCHED_DEADLINE is not set
8−# CONFIG_IOSCHED_CFQ is not set
9−CONFIG_ARCH_OMAP=y
10−CONFIG_ARCH_OMAP1=y
11−CONFIG_MACH_OMAP_PALMZ71=y
12−CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
13−# CONFIG_OMAP_ARM_60MHZ is not set
14−# CONFIG_ARM_THUMB is not set
15−# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
16−CONFIG_ZBOOT_ROM_TEXT=0x0
17−CONFIG_ZBOOT_ROM_BSS=0x0
18−CONFIG_FPE_NWFPE=y
19−CONFIG_NET=y
20−CONFIG_PACKET=y
21−CONFIG_UNIX=y
22−CONFIG_NET_KEY=y
23−CONFIG_INET=y
24−# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
25−# CONFIG_INET_XFRM_MODE_TUNNEL is not set
26−# CONFIG_INET_DIAG is not set
27−# CONFIG_IPV6 is not set
28−CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
29−CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
30−# CONFIG_INPUT_KEYBOARD is not set
31−# CONFIG_INPUT_MOUSE is not set
32−CONFIG_INPUT_TOUCHSCREEN=y
33−CONFIG_TOUCHSCREEN_ADS7846=y
34−# CONFIG_SERIO is not set
35−CONFIG_SERIAL_8250=y
36−CONFIG_SERIAL_8250_CONSOLE=y
37−CONFIG_LEGACY_PTY_COUNT=16
38−CONFIG_SPI=y
39−CONFIG_SPI_OMAP_UWIRE=y
40−CONFIG_FB=y
41−CONFIG_FIRMWARE_EDID=y
42−CONFIG_FB_OMAP=y
43−CONFIG_BACKLIGHT_LCD_SUPPORT=y
44−# CONFIG_VGA_CONSOLE is not set
45−CONFIG_FRAMEBUFFER_CONSOLE=y
46−CONFIG_MMC=y
47−CONFIG_MMC_OMAP=y
48−CONFIG_RTC_CLASS=y
49−CONFIG_RTC_DRV_OMAP=y
50−CONFIG_EXT2_FS=y
51−CONFIG_CRC_CCITT=y
52−CONFIG_CRC16=y
53−CONFIG_LIBCRC32C=y
arch/arm/configs/pcm027_defconfig+1−1
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG=y · 6 unmodified lines
77 CONFIG_IKCONFIG_PROC=y
88 CONFIG_LOG_BUF_SHIFT=14
99 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10−CONFIG_EMBEDDED=y
10+CONFIG_EXPERT=y
1111 # CONFIG_KALLSYMS is not set
1212 CONFIG_SLAB=y
1313 CONFIG_MODULES=y
arch/arm/configs/pcontrol_g20_defconfig+1−1
@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y · 9 unmodified lines
1010 CONFIG_LOG_BUF_SHIFT=14
1111 CONFIG_NAMESPACES=y
1212 CONFIG_BLK_DEV_INITRD=y
13−CONFIG_EMBEDDED=y
13+CONFIG_EXPERT=y
1414 # CONFIG_SYSCTL_SYSCALL is not set
1515 # CONFIG_KALLSYMS is not set
1616 # CONFIG_VM_EVENT_COUNTERS is not set
arch/arm/configs/pleb_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
33 CONFIG_SYSVIPC=y
44 CONFIG_LOG_BUF_SHIFT=14
55 CONFIG_BLK_DEV_INITRD=y
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 # CONFIG_HOTPLUG is not set
88 # CONFIG_SHMEM is not set
99 CONFIG_MODULES=y
arch/arm/configs/pnx4008_defconfig+1−1
@@ -5,7 +5,7 @@ CONFIG_BSD_PROCESS_ACCT=y · 4 unmodified lines
55 CONFIG_AUDIT=y
66 CONFIG_LOG_BUF_SHIFT=14
77 CONFIG_BLK_DEV_INITRD=y
8−CONFIG_EMBEDDED=y
8+CONFIG_EXPERT=y
99 CONFIG_SLAB=y
1010 CONFIG_MODULES=y
1111 CONFIG_MODULE_UNLOAD=y
arch/arm/configs/simpad_defconfig+1−1
@@ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y · 1 unmodified line
22 CONFIG_LOCALVERSION="oe1"
33 CONFIG_SYSVIPC=y
44 CONFIG_LOG_BUF_SHIFT=14
5−CONFIG_EMBEDDED=y
5+CONFIG_EXPERT=y
66 CONFIG_KALLSYMS_ALL=y
77 CONFIG_KALLSYMS_EXTRA_PASS=y
88 CONFIG_MODULES=y
arch/arm/configs/spitz_defconfig+1−1
@@ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y · 3 unmodified lines
44 CONFIG_LOG_BUF_SHIFT=14
55 CONFIG_SYSFS_DEPRECATED_V2=y
66 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
7−CONFIG_EMBEDDED=y
7+CONFIG_EXPERT=y
88 CONFIG_PROFILING=y
99 CONFIG_OPROFILE=m
1010 CONFIG_MODULES=y
arch/arm/configs/stmp378x_defconfig+1−1
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y · 4 unmodified lines
55 CONFIG_BSD_PROCESS_ACCT=y
66 CONFIG_SYSFS_DEPRECATED_V2=y
77 CONFIG_BLK_DEV_INITRD=y
8−CONFIG_EMBEDDED=y
8+CONFIG_EXPERT=y
99 CONFIG_SLAB=y
1010 CONFIG_MODULES=y
1111 CONFIG_MODULE_UNLOAD=y
arch/arm/configs/stmp37xx_defconfig+1−1
@@ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y · 4 unmodified lines
55 CONFIG_BSD_PROCESS_ACCT=y
66 CONFIG_SYSFS_DEPRECATED_V2=y
77 CONFIG_BLK_DEV_INITRD=y
8−CONFIG_EMBEDDED=y
8+CONFIG_EXPERT=y
99 CONFIG_SLAB=y
1010 CONFIG_MODULES=y
1111 CONFIG_MODULE_UNLOAD=y
arch/arm/configs/sx1_defconfig+0−110
@@ -1,110 +0,0 @@
1−CONFIG_EXPERIMENTAL=y
2−CONFIG_SYSVIPC=y
3−CONFIG_POSIX_MQUEUE=y
4−CONFIG_IKCONFIG=y
5−CONFIG_LOG_BUF_SHIFT=14
6−CONFIG_EMBEDDED=y
7−# CONFIG_KALLSYMS is not set
8−# CONFIG_ELF_CORE is not set
9−# CONFIG_BASE_FULL is not set
10−# CONFIG_SHMEM is not set
11−# CONFIG_VM_EVENT_COUNTERS is not set
12−CONFIG_SLOB=y
13−CONFIG_PROFILING=y
14−CONFIG_OPROFILE=y
15−CONFIG_MODULES=y
16−CONFIG_MODULE_UNLOAD=y
17−# CONFIG_IOSCHED_CFQ is not set
18−CONFIG_ARCH_OMAP=y
19−CONFIG_ARCH_OMAP1=y
20−CONFIG_OMAP_MBOX_FWK=y
21−CONFIG_MACH_SX1=y
22−CONFIG_OMAP_ARM_168MHZ=y
23−# CONFIG_OMAP_ARM_60MHZ is not set
24−# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
25−CONFIG_PREEMPT=y
26−CONFIG_ZBOOT_ROM_TEXT=0x0
27−CONFIG_ZBOOT_ROM_BSS=0x0
28−CONFIG_FPE_NWFPE=y
29−CONFIG_BINFMT_MISC=y
30−CONFIG_NET=y
31−CONFIG_PACKET=y
32−CONFIG_UNIX=y
33−CONFIG_INET=y
34−CONFIG_IP_PNP=y
35−# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
36−# CONFIG_INET_XFRM_MODE_TUNNEL is not set
37−# CONFIG_INET_XFRM_MODE_BEET is not set
38−# CONFIG_INET_DIAG is not set
39−# CONFIG_IPV6 is not set
40−# CONFIG_FW_LOADER is not set
41−CONFIG_CONNECTOR=y
42−# CONFIG_PROC_EVENTS is not set
43−CONFIG_BLK_DEV_LOOP=m
44−CONFIG_BLK_DEV_RAM=m
45−CONFIG_BLK_DEV_RAM_COUNT=2
46−CONFIG_NETDEVICES=y
47−CONFIG_PHYLIB=y
48−CONFIG_NET_ETHERNET=y
49−CONFIG_MII=y
50−# CONFIG_INPUT_MOUSEDEV is not set
51−CONFIG_INPUT_EVDEV=y
52−# CONFIG_KEYBOARD_ATKBD is not set
53−CONFIG_KEYBOARD_OMAP=y
54−# CONFIG_INPUT_MOUSE is not set
55−# CONFIG_SERIO is not set
56−CONFIG_SERIAL_8250=y
57−CONFIG_SERIAL_8250_NR_UARTS=3
58−# CONFIG_LEGACY_PTYS is not set
59−# CONFIG_HW_RANDOM is not set
60−CONFIG_I2C=y
61−CONFIG_I2C_CHARDEV=y
62−CONFIG_I2C_OMAP=y
63−# CONFIG_HWMON is not set
64−CONFIG_FB=y
65−CONFIG_FB_OMAP=y
66−CONFIG_FB_OMAP_BOOTLOADER_INIT=y
67−# CONFIG_VGA_CONSOLE is not set
68−CONFIG_FRAMEBUFFER_CONSOLE=y
69−CONFIG_FONTS=y
70−CONFIG_FONT_MINI_4x6=y
71−CONFIG_LOGO=y
72−# CONFIG_LOGO_LINUX_MONO is not set
73−# CONFIG_LOGO_LINUX_VGA16 is not set
74−CONFIG_SOUND=y
75−CONFIG_SND=y
76−CONFIG_SND_MIXER_OSS=y
77−CONFIG_SND_PCM_OSS=y
78−# CONFIG_SND_SUPPORT_OLD_API is not set
79−# CONFIG_SND_VERBOSE_PROCFS is not set
80−CONFIG_USB_GADGET=y
81−CONFIG_USB_ETH=m
82−CONFIG_MMC=y
83−CONFIG_MMC_OMAP=y
84−CONFIG_RTC_CLASS=y
85−CONFIG_RTC_DRV_OMAP=y
86−CONFIG_EXT2_FS=y
87−# CONFIG_DNOTIFY is not set
88−CONFIG_INOTIFY=y
89−CONFIG_MSDOS_FS=y
90−CONFIG_VFAT_FS=y
91−CONFIG_FAT_DEFAULT_CODEPAGE=866
92−CONFIG_FAT_DEFAULT_IOCHARSET="koi8-r"
93−CONFIG_CRAMFS=y
94−CONFIG_NFS_FS=y
95−CONFIG_ROOT_NFS=y
96−CONFIG_PARTITION_ADVANCED=y
97−CONFIG_NLS_CODEPAGE_437=y
98−CONFIG_NLS_CODEPAGE_866=y
99−CONFIG_NLS_CODEPAGE_1251=y
100−CONFIG_NLS_ISO8859_1=y
101−CONFIG_NLS_ISO8859_5=y
102−CONFIG_NLS_KOI8_R=y
103−CONFIG_NLS_UTF8=y
104−# CONFIG_ENABLE_MUST_CHECK is not set
105−CONFIG_DEBUG_KERNEL=y
106−# CONFIG_DETECT_SOFTLOCKUP is not set
107−# CONFIG_DEBUG_BUGVERBOSE is not set
108−CONFIG_CRC_CCITT=y
109−CONFIG_CRC16=y
110−CONFIG_LIBCRC32C=y
arch/arm/configs/tct_hammer_defconfig+1−1
@@ -5,7 +5,7 @@ CONFIG_SYSVIPC=y · 4 unmodified lines
55 CONFIG_LOG_BUF_SHIFT=14
66 CONFIG_SYSFS_DEPRECATED_V2=y
77 CONFIG_BLK_DEV_INITRD=y
8−CONFIG_EMBEDDED=y
8+CONFIG_EXPERT=y
99 # CONFIG_KALLSYMS is not set
1010 # CONFIG_BUG is not set
1111 # CONFIG_ELF_CORE is not set
arch/arm/configs/trizeps4_defconfig+1−1
@@ -7,7 +7,7 @@ CONFIG_IKCONFIG=y · 6 unmodified lines
77 CONFIG_IKCONFIG_PROC=y
88 CONFIG_LOG_BUF_SHIFT=14
99 CONFIG_BLK_DEV_INITRD=y
10−CONFIG_EMBEDDED=y
10+CONFIG_EXPERT=y
1111 CONFIG_KALLSYMS_EXTRA_PASS=y
1212 CONFIG_SLAB=y
1313 CONFIG_MODULES=y
arch/arm/configs/u300_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
33 # CONFIG_SWAP is not set
44 CONFIG_SYSVIPC=y
55 CONFIG_LOG_BUF_SHIFT=14
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 # CONFIG_AIO is not set
88 # CONFIG_VM_EVENT_COUNTERS is not set
99 CONFIG_MODULES=y
arch/arm/configs/u8500_defconfig+4−0
@@ -9,6 +9,10 @@ CONFIG_MODULE_UNLOAD=y · 8 unmodified lines
99 # CONFIG_LBDAF is not set
1010 # CONFIG_BLK_DEV_BSG is not set
1111 CONFIG_ARCH_U8500=y
12+CONFIG_UX500_SOC_DB5500=y
13+CONFIG_UX500_SOC_DB8500=y
14+CONFIG_MACH_U8500=y
15+CONFIG_MACH_U5500=y
1216 CONFIG_SMP=y
1317 CONFIG_NR_CPUS=2
1418 CONFIG_PREEMPT=y
arch/arm/configs/viper_defconfig+1−1
@@ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y · 2 unmodified lines
33 CONFIG_SYSVIPC=y
44 CONFIG_LOG_BUF_SHIFT=13
55 CONFIG_SYSFS_DEPRECATED_V2=y
6−CONFIG_EMBEDDED=y
6+CONFIG_EXPERT=y
77 # CONFIG_ELF_CORE is not set
88 # CONFIG_SHMEM is not set
99 CONFIG_SLAB=y
arch/arm/configs/xcep_defconfig+1−1
@@ -8,7 +8,7 @@ CONFIG_IKCONFIG_PROC=y · 7 unmodified lines
88 CONFIG_LOG_BUF_SHIFT=16
99 CONFIG_SYSFS_DEPRECATED_V2=y
1010 CONFIG_BLK_DEV_INITRD=y
11−CONFIG_EMBEDDED=y
11+CONFIG_EXPERT=y
1212 # CONFIG_UID16 is not set
1313 # CONFIG_SHMEM is not set
1414 # CONFIG_VM_EVENT_COUNTERS is not set
arch/arm/include/asm/assembler.h+26−9
@@ -18,6 +18,7 @@ · 17 unmodified lines
1818 #endif
1919
2020 #include <asm/ptrace.h>
21+#include <asm/domain.h>
2122
2223 /*
2324 * Endian independent macros for shifting bytes within registers.
@@ -157,16 +158,24 @@ · 133 unmodified lines
157158 #ifdef CONFIG_SMP
158159 #define ALT_SMP(instr...) \
159160 9998: instr
161+/*
162+ * Note: if you get assembler errors from ALT_UP() when building with
163+ * CONFIG_THUMB2_KERNEL, you almost certainly need to use
164+ * ALT_SMP( W(instr) ... )
165+ */
160166 #define ALT_UP(instr...) \
161167 .pushsection ".alt.smp.init", "a" ;\
162168 .long 9998b ;\
163− instr ;\
169+9997: instr ;\
170+ .if . - 9997b != 4 ;\
171+ .error "ALT_UP() content must assemble to exactly 4 bytes";\
172+ .endif ;\
164173 .popsection
165174 #define ALT_UP_B(label) \
166175 .equ up_b_offset, label - 9998b ;\
167176 .pushsection ".alt.smp.init", "a" ;\
168177 .long 9998b ;\
169− b . + up_b_offset ;\
178+ W(b) . + up_b_offset ;\
170179 .popsection
171180 #else
172181 #define ALT_SMP(instr...)
@@ -177,16 +186,24 @@ · 4 unmodified lines
177186 /*
178187 * SMP data memory barrier
179188 */
180− .macro smp_dmb
189+ .macro smp_dmb mode
181190 #ifdef CONFIG_SMP
182191 #if __LINUX_ARM_ARCH__ >= 7
192+ .ifeqs "\mode","arm"
183193 ALT_SMP(dmb)
194+ .else
195+ ALT_SMP(W(dmb))
196+ .endif
184197 #elif __LINUX_ARM_ARCH__ == 6
185198 ALT_SMP(mcr p15, 0, r0, c7, c10, 5) @ dmb
186199 #else
187200 #error Incompatible SMP platform
188201 #endif
202+ .ifeqs "\mode","arm"
189203 ALT_UP(nop)
204+ .else
205+ ALT_UP(W(nop))
206+ .endif
190207 #endif
191208 .endm
192209
@@ -206,12 +223,12 @@ · 13 unmodified lines
206223 */
207224 #ifdef CONFIG_THUMB2_KERNEL
208225
209− .macro usraccoff, instr, reg, ptr, inc, off, cond, abort
226+ .macro usraccoff, instr, reg, ptr, inc, off, cond, abort, t=T()
210227 9999:
211228 .if \inc == 1
212− \instr\cond\()bt \reg, [\ptr, #\off]
229+ \instr\cond\()b\()\t\().w \reg, [\ptr, #\off]
213230 .elseif \inc == 4
214− \instr\cond\()t \reg, [\ptr, #\off]
231+ \instr\cond\()\t\().w \reg, [\ptr, #\off]
215232 .else
216233 .error "Unsupported inc macro argument"
217234 .endif
@@ -246,13 +263,13 @@ · 28 unmodified lines
246263
247264 #else /* !CONFIG_THUMB2_KERNEL */
248265
249− .macro usracc, instr, reg, ptr, inc, cond, rept, abort
266+ .macro usracc, instr, reg, ptr, inc, cond, rept, abort, t=T()
250267 .rept \rept
251268 9999:
252269 .if \inc == 1
253− \instr\cond\()bt \reg, [\ptr], #\inc
270+ \instr\cond\()b\()\t \reg, [\ptr], #\inc
254271 .elseif \inc == 4
255− \instr\cond\()t \reg, [\ptr], #\inc
272+ \instr\cond\()\t \reg, [\ptr], #\inc
256273 .else
257274 .error "Unsupported inc macro argument"
258275 .endif
arch/arm/include/asm/bitops.h+1−1
@@ -285,7 +285,7 @@ static inline int fls(int x) · 284 unmodified lines
285285 if (__builtin_constant_p(x))
286286 return constant_fls(x);
287287
288− asm("clz\t%0, %1" : "=r" (ret) : "r" (x) : "cc");
288+ asm("clz\t%0, %1" : "=r" (ret) : "r" (x));
289289 ret = 32 - ret;
290290 return ret;
291291 }
arch/arm/include/asm/cache.h+2−0
@@ -23,4 +23,6 @@ · 22 unmodified lines
2323 #define ARCH_SLAB_MINALIGN 8
2424 #endif
2525
26+#define __read_mostly __attribute__((__section__(".data..read_mostly")))
27+
2628 #endif
arch/arm/include/asm/clkdev.h+6−16
@@ -12,23 +12,13 @@ · 11 unmodified lines
1212 #ifndef __ASM_CLKDEV_H
1313 #define __ASM_CLKDEV_H
1414
15−struct clk;
16−struct device;
15+#include <linux/slab.h>
1716
18−struct clk_lookup {
19− struct list_head node;
20− const char *dev_id;
21− const char *con_id;
22− struct clk *clk;
23−};
17+#include <mach/clkdev.h>
2418
25−struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
26− const char *dev_fmt, ...);
27−
28−void clkdev_add(struct clk_lookup *cl);
29−void clkdev_drop(struct clk_lookup *cl);
30−
31−void clkdev_add_table(struct clk_lookup *, size_t);
32−int clk_add_alias(const char *, const char *, char *, struct device *);
19+static inline struct clk_lookup_alloc *__clkdev_alloc(size_t size)
20+{
21+ return kzalloc(size, GFP_KERNEL);
22+}
3323
3424 #endif
arch/arm/include/asm/dma-mapping.h+69−24
@@ -5,24 +5,29 @@ · 4 unmodified lines
55
66 #include <linux/mm_types.h>
77 #include <linux/scatterlist.h>
8+#include <linux/dma-debug.h>
89
910 #include <asm-generic/dma-coherent.h>
1011 #include <asm/memory.h>
1112
13+#ifdef __arch_page_to_dma
14+#error Please update to __arch_pfn_to_dma
15+#endif
16+
1217 /*
13− * page_to_dma/dma_to_virt/virt_to_dma are architecture private functions
14− * used internally by the DMA-mapping API to provide DMA addresses. They
15− * must not be used by drivers.
18+ * dma_to_pfn/pfn_to_dma/dma_to_virt/virt_to_dma are architecture private
19+ * functions used internally by the DMA-mapping API to provide DMA
20+ * addresses. They must not be used by drivers.
1621 */
17−#ifndef __arch_page_to_dma
18−static inline dma_addr_t page_to_dma(struct device *dev, struct page *page)
22+#ifndef __arch_pfn_to_dma
23+static inline dma_addr_t pfn_to_dma(struct device *dev, unsigned long pfn)
1924 {
20− return (dma_addr_t)__pfn_to_bus(page_to_pfn(page));
25+ return (dma_addr_t)__pfn_to_bus(pfn);
2126 }
2227
23−static inline struct page *dma_to_page(struct device *dev, dma_addr_t addr)
28+static inline unsigned long dma_to_pfn(struct device *dev, dma_addr_t addr)
2429 {
25− return pfn_to_page(__bus_to_pfn(addr));
30+ return __bus_to_pfn(addr);
2631 }
2732
2833 static inline void *dma_to_virt(struct device *dev, dma_addr_t addr)
@@ -35,14 +40,14 @@ static inline dma_addr_t virt_to_dma(struct device *dev, void *addr) · 6 unmodified lines
3540 return (dma_addr_t)__virt_to_bus((unsigned long)(addr));
3641 }
3742 #else
38−static inline dma_addr_t page_to_dma(struct device *dev, struct page *page)
43+static inline dma_addr_t pfn_to_dma(struct device *dev, unsigned long pfn)
3944 {
40− return __arch_page_to_dma(dev, page);
45+ return __arch_pfn_to_dma(dev, pfn);
4146 }
4247
43−static inline struct page *dma_to_page(struct device *dev, dma_addr_t addr)
48+static inline unsigned long dma_to_pfn(struct device *dev, dma_addr_t addr)
4449 {
45− return __arch_dma_to_page(dev, addr);
50+ return __arch_dma_to_pfn(dev, addr);
4651 }
4752
4853 static inline void *dma_to_virt(struct device *dev, dma_addr_t addr)
@@ -293,13 +298,13 @@ extern int dma_needs_bounce(struct device*, dma_addr_t, size_t); · 244 unmodified lines
293298 /*
294299 * The DMA API, implemented by dmabounce.c. See below for descriptions.
295300 */
296−extern dma_addr_t dma_map_single(struct device *, void *, size_t,
301+extern dma_addr_t __dma_map_single(struct device *, void *, size_t,
297302 enum dma_data_direction);
298−extern void dma_unmap_single(struct device *, dma_addr_t, size_t,
303+extern void __dma_unmap_single(struct device *, dma_addr_t, size_t,
299304 enum dma_data_direction);
300−extern dma_addr_t dma_map_page(struct device *, struct page *,
305+extern dma_addr_t __dma_map_page(struct device *, struct page *,
301306 unsigned long, size_t, enum dma_data_direction);
302−extern void dma_unmap_page(struct device *, dma_addr_t, size_t,
307+extern void __dma_unmap_page(struct device *, dma_addr_t, size_t,
303308 enum dma_data_direction);
304309
305310 /*
@@ -323,6 +328,34 @@ static inline int dmabounce_sync_for_device(struct device *d, dma_addr_t addr, · 17 unmodified lines
323328 }
324329
325330
331+static inline dma_addr_t __dma_map_single(struct device *dev, void *cpu_addr,
332+ size_t size, enum dma_data_direction dir)
333+{
334+ __dma_single_cpu_to_dev(cpu_addr, size, dir);
335+ return virt_to_dma(dev, cpu_addr);
336+}
337+
338+static inline dma_addr_t __dma_map_page(struct device *dev, struct page *page,
339+ unsigned long offset, size_t size, enum dma_data_direction dir)
340+{
341+ __dma_page_cpu_to_dev(page, offset, size, dir);
342+ return pfn_to_dma(dev, page_to_pfn(page)) + offset;
343+}
344+
345+static inline void __dma_unmap_single(struct device *dev, dma_addr_t handle,
346+ size_t size, enum dma_data_direction dir)
347+{
348+ __dma_single_dev_to_cpu(dma_to_virt(dev, handle), size, dir);
349+}
350+
351+static inline void __dma_unmap_page(struct device *dev, dma_addr_t handle,
352+ size_t size, enum dma_data_direction dir)
353+{
354+ __dma_page_dev_to_cpu(pfn_to_page(dma_to_pfn(dev, handle)),
355+ handle & ~PAGE_MASK, size, dir);
356+}
357+#endif /* CONFIG_DMABOUNCE */
358+
326359 /**
327360 * dma_map_single - map a single buffer for streaming DMA
328361 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
@@ -340,11 +373,16 @@ static inline int dmabounce_sync_for_device(struct device *d, dma_addr_t addr, · 11 unmodified lines
340373 static inline dma_addr_t dma_map_single(struct device *dev, void *cpu_addr,
341374 size_t size, enum dma_data_direction dir)
342375 {
376+ dma_addr_t addr;
377+
343378 BUG_ON(!valid_dma_direction(dir));
344379
345− __dma_single_cpu_to_dev(cpu_addr, size, dir);
380+ addr = __dma_map_single(dev, cpu_addr, size, dir);
381+ debug_dma_map_page(dev, virt_to_page(cpu_addr),
382+ (unsigned long)cpu_addr & ~PAGE_MASK, size,
383+ dir, addr, true);
346384
347− return virt_to_dma(dev, cpu_addr);
385+ return addr;
348386 }
349387
350388 /**
@@ -364,11 +402,14 @@ static inline dma_addr_t dma_map_single(struct device *dev, void *cpu_addr, · 13 unmodified lines
364402 static inline dma_addr_t dma_map_page(struct device *dev, struct page *page,
365403 unsigned long offset, size_t size, enum dma_data_direction dir)
366404 {
405+ dma_addr_t addr;
406+
367407 BUG_ON(!valid_dma_direction(dir));
368408
369− __dma_page_cpu_to_dev(page, offset, size, dir);
409+ addr = __dma_map_page(dev, page, offset, size, dir);
410+ debug_dma_map_page(dev, page, offset, size, dir, addr, false);
370411
371− return page_to_dma(dev, page) + offset;
412+ return addr;
372413 }
373414
374415 /**
@@ -388,7 +429,8 @@ static inline dma_addr_t dma_map_page(struct device *dev, struct page *page, · 13 unmodified lines
388429 static inline void dma_unmap_single(struct device *dev, dma_addr_t handle,
389430 size_t size, enum dma_data_direction dir)
390431 {
391− __dma_single_dev_to_cpu(dma_to_virt(dev, handle), size, dir);
432+ debug_dma_unmap_page(dev, handle, size, dir, true);
433+ __dma_unmap_single(dev, handle, size, dir);
392434 }
393435
394436 /**
@@ -408,10 +450,9 @@ static inline void dma_unmap_single(struct device *dev, dma_addr_t handle, · 13 unmodified lines
408450 static inline void dma_unmap_page(struct device *dev, dma_addr_t handle,
409451 size_t size, enum dma_data_direction dir)
410452 {
411− __dma_page_dev_to_cpu(dma_to_page(dev, handle), handle & ~PAGE_MASK,
412− size, dir);
453+ debug_dma_unmap_page(dev, handle, size, dir, false);
454+ __dma_unmap_page(dev, handle, size, dir);
413455 }
414−#endif /* CONFIG_DMABOUNCE */
415456
416457 /**
417458 * dma_sync_single_range_for_cpu
@@ -437,6 +478,8 @@ static inline void dma_sync_single_range_for_cpu(struct device *dev, · 19 unmodified lines
437478 {
438479 BUG_ON(!valid_dma_direction(dir));
439480
481+ debug_dma_sync_single_for_cpu(dev, handle + offset, size, dir);
482+
440483 if (!dmabounce_sync_for_cpu(dev, handle, offset, size, dir))
441484 return;
442485
@@ -449,6 +492,8 @@ static inline void dma_sync_single_range_for_device(struct device *dev, · 6 unmodified lines
449492 {
450493 BUG_ON(!valid_dma_direction(dir));
451494
495+ debug_dma_sync_single_for_device(dev, handle + offset, size, dir);
496+
452497 if (!dmabounce_sync_for_device(dev, handle, offset, size, dir))
453498 return;
454499
arch/arm/include/asm/domain.h+29−2
@@ -45,13 +45,17 @@ · 44 unmodified lines
4545 */
4646 #define DOMAIN_NOACCESS 0
4747 #define DOMAIN_CLIENT 1
48+#ifdef CONFIG_CPU_USE_DOMAINS
4849 #define DOMAIN_MANAGER 3
50+#else
51+#define DOMAIN_MANAGER 1
52+#endif
4953
5054 #define domain_val(dom,type) ((type) << (2*(dom)))
5155
5256 #ifndef __ASSEMBLY__
5357
54−#ifdef CONFIG_MMU
58+#ifdef CONFIG_CPU_USE_DOMAINS
5559 #define set_domain(x) \
5660 do { \
5761 __asm__ __volatile__( \
@@ -74,5 +78,28 @@ · 16 unmodified lines
7478 #define modify_domain(dom,type) do { } while (0)
7579 #endif
7680
81+/*
82+ * Generate the T (user) versions of the LDR/STR and related
83+ * instructions (inline assembly)
84+ */
85+#ifdef CONFIG_CPU_USE_DOMAINS
86+#define T(instr) #instr "t"
87+#else
88+#define T(instr) #instr
7789 #endif
78−#endif /* !__ASSEMBLY__ */
90+
91+#else /* __ASSEMBLY__ */
92+
93+/*
94+ * Generate the T (user) versions of the LDR/STR and related
95+ * instructions
96+ */
97+#ifdef CONFIG_CPU_USE_DOMAINS
98+#define T(instr) instr ## t
99+#else
100+#define T(instr) instr
101+#endif
102+
103+#endif /* __ASSEMBLY__ */
104+
105+#endif /* !__ASM_PROC_DOMAIN_H */
arch/arm/include/asm/elf.h+2−0
@@ -99,6 +99,8 @@ struct elf32_hdr; · 98 unmodified lines
9999 extern int elf_check_arch(const struct elf32_hdr *);
100100 #define elf_check_arch elf_check_arch
101101
102+#define vmcore_elf64_check_arch(x) (0)
103+
102104 extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int);
103105 #define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk)
104106
arch/arm/include/asm/entry-macro-multi.S+44−0
@@ -0,0 +1,44 @@
1+/*
2+ * Interrupt handling. Preserves r7, r8, r9
3+ */
4+ .macro arch_irq_handler_default
5+ get_irqnr_preamble r5, lr
6+1: get_irqnr_and_base r0, r6, r5, lr
7+ movne r1, sp
8+ @
9+ @ routine called with r0 = irq number, r1 = struct pt_regs *
10+ @
11+ adrne lr, BSYM(1b)
12+ bne asm_do_IRQ
13+
14+#ifdef CONFIG_SMP
15+ /*
16+ * XXX
17+ *
18+ * this macro assumes that irqstat (r6) and base (r5) are
19+ * preserved from get_irqnr_and_base above
20+ */
21+ ALT_SMP(test_for_ipi r0, r6, r5, lr)
22+ ALT_UP_B(9997f)
23+ movne r1, sp
24+ adrne lr, BSYM(1b)
25+ bne do_IPI
26+
27+#ifdef CONFIG_LOCAL_TIMERS
28+ test_for_ltirq r0, r6, r5, lr
29+ movne r0, sp
30+ adrne lr, BSYM(1b)
31+ bne do_local_timer
32+#endif
33+#endif
34+9997:
35+ .endm
36+
37+ .macro arch_irq_handler, symbol_name
38+ .align 5
39+ .global \symbol_name
40+\symbol_name:
41+ mov r4, lr
42+ arch_irq_handler_default
43+ mov pc, r4
44+ .endm
arch/arm/include/asm/futex.h+5−4
@@ -13,12 +13,13 @@ · 12 unmodified lines
1313 #include <linux/preempt.h>
1414 #include <linux/uaccess.h>
1515 #include <asm/errno.h>
16+#include <asm/domain.h>
1617
1718 #define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
1819 __asm__ __volatile__( \
19− "1: ldrt %1, [%2]\n" \
20+ "1: " T(ldr) " %1, [%2]\n" \
2021 " " insn "\n" \
21− "2: strt %0, [%2]\n" \
22+ "2: " T(str) " %0, [%2]\n" \
2223 " mov %0, #0\n" \
2324 "3:\n" \
2425 " .pushsection __ex_table,\"a\"\n" \
@@ -97,10 +98,10 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) · 72 unmodified lines
9798 pagefault_disable(); /* implies preempt_disable() */
9899
99100 __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
100− "1: ldrt %0, [%3]\n"
101+ "1: " T(ldr) " %0, [%3]\n"
101102 " teq %0, %1\n"
102103 " it eq @ explicit IT needed for the 2b label\n"
103− "2: streqt %2, [%3]\n"
104+ "2: " T(streq) " %2, [%3]\n"
104105 "3:\n"
105106 " .pushsection __ex_table,\"a\"\n"
106107 " .align 3\n"
arch/arm/include/asm/hardirq.h+18−0
@@ -5,13 +5,31 @@ · 4 unmodified lines
55 #include <linux/threads.h>
66 #include <asm/irq.h>
77
8+#define NR_IPI 5
9+
810 typedef struct {
911 unsigned int __softirq_pending;
12+#ifdef CONFIG_LOCAL_TIMERS
1013 unsigned int local_timer_irqs;
14+#endif
15+#ifdef CONFIG_SMP
16+ unsigned int ipi_irqs[NR_IPI];
17+#endif
1118 } ____cacheline_aligned irq_cpustat_t;
1219
1320 #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
1421
22+#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++
23+#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member)
24+
25+#ifdef CONFIG_SMP
26+u64 smp_irq_stat_cpu(unsigned int cpu);
27+#else
28+#define smp_irq_stat_cpu(cpu) 0
29+#endif
30+
31+#define arch_irq_stat_cpu smp_irq_stat_cpu
32+
1533 #if NR_IRQS > 512
1634 #define HARDIRQ_BITS 10
1735 #elif NR_IRQS > 256
arch/arm/include/asm/hardware/cache-l2x0.h+12−1
@@ -36,6 +36,7 @@ · 35 unmodified lines
3636 #define L2X0_RAW_INTR_STAT 0x21C
3737 #define L2X0_INTR_CLEAR 0x220
3838 #define L2X0_CACHE_SYNC 0x730
39+#define L2X0_DUMMY_REG 0x740
3940 #define L2X0_INV_LINE_PA 0x770
4041 #define L2X0_INV_WAY 0x77C
4142 #define L2X0_CLEAN_LINE_PA 0x7B0
@@ -59,7 +60,17 @@ · 17 unmodified lines
5960 #define L2X0_CACHE_ID_PART_MASK (0xf << 6)
6061 #define L2X0_CACHE_ID_PART_L210 (1 << 6)
6162 #define L2X0_CACHE_ID_PART_L310 (3 << 6)
62−#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x3 << 17)
63+
64+#define L2X0_AUX_CTRL_MASK 0xc0000fff
65+#define L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT 16
66+#define L2X0_AUX_CTRL_WAY_SIZE_SHIFT 17
67+#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x3 << 17)
68+#define L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT 22
69+#define L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT 26
70+#define L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT 27
71+#define L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT 28
72+#define L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT 29
73+#define L2X0_AUX_CTRL_EARLY_BRESP_SHIFT 30
6374
6475 #ifndef __ASSEMBLY__
6576 extern void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask);
arch/arm/include/asm/hardware/entry-macro-gic.S+75−0
@@ -0,0 +1,75 @@
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-28 are reserved
26+ * 29-31 are local. We allow 30 to be used for the watchdog.
27+ * 32-1020 are global
28+ * 1021-1022 are reserved
29+ * 1023 is "spurious" (no interrupt)
30+ *
31+ * For now, we ignore all local interrupts so only return an interrupt if it's
32+ * between 30 and 1020. The test_for_ipi routine below will pick up on IPIs.
33+ *
34+ * A simple read from the controller will tell us the number of the highest
35+ * priority enabled interrupt. We then just need to check whether it is in the
36+ * valid range for an IRQ (30-1020 inclusive).
37+ */
38+
39+ .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
40+
41+ ldr \irqstat, [\base, #GIC_CPU_INTACK]
42+ /* bits 12-10 = src CPU, 9-0 = int # */
43+
44+ ldr \tmp, =1021
45+ bic \irqnr, \irqstat, #0x1c00
46+ cmp \irqnr, #29
47+ cmpcc \irqnr, \irqnr
48+ cmpne \irqnr, \tmp
49+ cmpcs \irqnr, \irqnr
50+ .endm
51+
52+/* We assume that irqstat (the raw value of the IRQ acknowledge
53+ * register) is preserved from the macro above.
54+ * If there is an IPI, we immediately signal end of interrupt on the
55+ * controller, since this requires the original irqstat value which
56+ * we won't easily be able to recreate later.
57+ */
58+
59+ .macro test_for_ipi, irqnr, irqstat, base, tmp
60+ bic \irqnr, \irqstat, #0x1c00
61+ cmp \irqnr, #16
62+ strcc \irqstat, [\base, #GIC_CPU_EOI]
63+ cmpcs \irqnr, \irqnr
64+ .endm
65+
66+/* As above, this assumes that irqstat and base are preserved.. */
67+
68+ .macro test_for_ltirq, irqnr, irqstat, base, tmp
69+ bic \irqnr, \irqstat, #0x1c00
70+ mov \tmp, #0
71+ cmp \irqnr, #29
72+ moveq \tmp, #1
73+ streq \irqstat, [\base, #GIC_CPU_EOI]
74+ cmp \tmp, #0
75+ .endm
arch/arm/include/asm/hardware/gic.h+5−2
@@ -33,10 +33,13 @@ · 32 unmodified lines
3333 #define GIC_DIST_SOFTINT 0xf00
3434
3535 #ifndef __ASSEMBLY__
36−void gic_dist_init(unsigned int gic_nr, void __iomem *base, unsigned int irq_start);
37−void gic_cpu_init(unsigned int gic_nr, void __iomem *base);
36+extern void __iomem *gic_cpu_base_addr;
37+
38+void gic_init(unsigned int, unsigned int, void __iomem *, void __iomem *);
39+void gic_secondary_init(unsigned int);
3840 void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);
3941 void gic_raise_softirq(const struct cpumask *mask, unsigned int irq);
42+void gic_enable_ppi(unsigned int);
4043 #endif
4144
4245 #endif
arch/arm/include/asm/hardware/sp810.h+9−0
@@ -50,8 +50,17 @@ · 49 unmodified lines
5050 #define SCPCELLID2 0xFF8
5151 #define SCPCELLID3 0xFFC
5252
53+#define SCCTRL_TIMEREN0SEL_REFCLK (0 << 15)
54+#define SCCTRL_TIMEREN0SEL_TIMCLK (1 << 15)
55+
56+#define SCCTRL_TIMEREN1SEL_REFCLK (0 << 17)
57+#define SCCTRL_TIMEREN1SEL_TIMCLK (1 << 17)
58+
5359 static inline void sysctl_soft_reset(void __iomem *base)
5460 {
61+ /* switch to slow mode */
62+ writel(0x2, base + SCCTRL);
63+
5564 /* writing any value to SCSYSSTAT reg will reset system */
5665 writel(0, base + SCSYSSTAT);
5766 }
arch/arm/include/asm/hardware/timer-sp.hrenamed from arch/arm/plat-versatile/include/plat/timer-sp.h+0−0

File renamed without changes.

arch/arm/include/asm/hw_breakpoint.h+2−2
@@ -20,8 +20,8 @@ struct arch_hw_breakpoint_ctrl { · 19 unmodified lines
2020 struct arch_hw_breakpoint {
2121 u32 address;
2222 u32 trigger;
23− struct perf_event *suspended_wp;
24− struct arch_hw_breakpoint_ctrl ctrl;
23+ struct arch_hw_breakpoint_ctrl step_ctrl;
24+ struct arch_hw_breakpoint_ctrl ctrl;
2525 };
2626
2727 static inline u32 encode_ctrl_reg(struct arch_hw_breakpoint_ctrl ctrl)
arch/arm/include/asm/io.h+22−24
@@ -95,6 +95,15 @@ static inline void __iomem *__typesafe_io(unsigned long addr) · 94 unmodified lines
9595 return (void __iomem *)addr;
9696 }
9797
98+/* IO barriers */
99+#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
100+#define __iormb() rmb()
101+#define __iowmb() wmb()
102+#else
103+#define __iormb() do { } while (0)
104+#define __iowmb() do { } while (0)
105+#endif
106+
98107 /*
99108 * Now, pick up the machine-defined IO definitions
100109 */
@@ -125,17 +134,17 @@ static inline void __iomem *__typesafe_io(unsigned long addr) · 24 unmodified lines
125134 * The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space.
126135 */
127136 #ifdef __io
128−#define outb(v,p) __raw_writeb(v,__io(p))
129−#define outw(v,p) __raw_writew((__force __u16) \
130− cpu_to_le16(v),__io(p))
131−#define outl(v,p) __raw_writel((__force __u32) \
132− cpu_to_le32(v),__io(p))
137+#define outb(v,p) ({ __iowmb(); __raw_writeb(v,__io(p)); })
138+#define outw(v,p) ({ __iowmb(); __raw_writew((__force __u16) \
139+ cpu_to_le16(v),__io(p)); })
140+#define outl(v,p) ({ __iowmb(); __raw_writel((__force __u32) \
141+ cpu_to_le32(v),__io(p)); })
133142
134−#define inb(p) ({ __u8 __v = __raw_readb(__io(p)); __v; })
143+#define inb(p) ({ __u8 __v = __raw_readb(__io(p)); __iormb(); __v; })
135144 #define inw(p) ({ __u16 __v = le16_to_cpu((__force __le16) \
136− __raw_readw(__io(p))); __v; })
145+ __raw_readw(__io(p))); __iormb(); __v; })
137146 #define inl(p) ({ __u32 __v = le32_to_cpu((__force __le32) \
138− __raw_readl(__io(p))); __v; })
147+ __raw_readl(__io(p))); __iormb(); __v; })
139148
140149 #define outsb(p,d,l) __raw_writesb(__io(p),d,l)
141150 #define outsw(p,d,l) __raw_writesw(__io(p),d,l)
@@ -192,14 +201,6 @@ extern void _memset_io(volatile void __iomem *, int, size_t); · 50 unmodified lines
192201 #define writel_relaxed(v,c) ((void)__raw_writel((__force u32) \
193202 cpu_to_le32(v),__mem_pci(c)))
194203
195−#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
196−#define __iormb() rmb()
197−#define __iowmb() wmb()
198−#else
199−#define __iormb() do { } while (0)
200−#define __iowmb() do { } while (0)
201−#endif
202−
203204 #define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; })
204205 #define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(); __v; })
205206 #define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
@@ -241,18 +242,15 @@ extern void _memset_io(volatile void __iomem *, int, size_t); · 35 unmodified lines
241242 *
242243 */
243244 #ifndef __arch_ioremap
244−#define ioremap(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE)
245−#define ioremap_nocache(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE)
246−#define ioremap_cached(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_CACHED)
247−#define ioremap_wc(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_WC)
248−#define iounmap(cookie) __iounmap(cookie)
249−#else
245+#define __arch_ioremap __arm_ioremap
246+#define __arch_iounmap __iounmap
247+#endif
248+
250249 #define ioremap(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
251250 #define ioremap_nocache(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
252251 #define ioremap_cached(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_CACHED)
253252 #define ioremap_wc(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_WC)
254−#define iounmap(cookie) __arch_iounmap(cookie)
255−#endif
253+#define iounmap __arch_iounmap
256254
257255 /*
258256 * io{read,write}{8,16,32} macros
arch/arm/include/asm/kexec.h+14−4
@@ -33,10 +33,20 @@ static inline void crash_setup_regs(struct pt_regs *newregs, · 32 unmodified lines
3333 if (oldregs) {
3434 memcpy(newregs, oldregs, sizeof(*newregs));
3535 } else {
36− __asm__ __volatile__ ("stmia %0, {r0 - r15}"
37− : : "r" (&newregs->ARM_r0));
38− __asm__ __volatile__ ("mrs %0, cpsr"
39− : "=r" (newregs->ARM_cpsr));
36+ __asm__ __volatile__ (
37+ "stmia %[regs_base], {r0-r12}\n\t"
38+ "mov %[_ARM_sp], sp\n\t"
39+ "str lr, %[_ARM_lr]\n\t"
40+ "adr %[_ARM_pc], 1f\n\t"
41+ "mrs %[_ARM_cpsr], cpsr\n\t"
42+ "1:"
43+ : [_ARM_pc] "=r" (newregs->ARM_pc),
44+ [_ARM_cpsr] "=r" (newregs->ARM_cpsr),
45+ [_ARM_sp] "=r" (newregs->ARM_sp),
46+ [_ARM_lr] "=o" (newregs->ARM_lr)
47+ : [regs_base] "r" (&newregs->ARM_r0)
48+ : "memory"
49+ );
4050 }
4151 }
4252
arch/arm/include/asm/localtimer.h+0−12
@@ -30,7 +30,6 @@ asmlinkage void do_local_timer(struct pt_regs *); · 29 unmodified lines
3030 #include "smp_twd.h"
3131
3232 #define local_timer_ack() twd_timer_ack()
33−#define local_timer_stop() twd_timer_stop()
3433
3534 #else
3635
@@ -40,11 +39,6 @@ asmlinkage void do_local_timer(struct pt_regs *); · 3 unmodified lines
4039 */
4140 int local_timer_ack(void);
4241
43−/*
44− * Stop a local timer interrupt.
45− */
46−void local_timer_stop(void);
47−
4842 #endif
4943
5044 /*
@@ -52,12 +46,6 @@ void local_timer_stop(void); · 1 unmodified line
5246 */
5347 void local_timer_setup(struct clock_event_device *);
5448
55−#else
56−
57−static inline void local_timer_stop(void)
58−{
59−}
60−
6149 #endif
6250
6351 #endif
arch/arm/include/asm/mach/arch.h+9−0
@@ -37,11 +37,20 @@ struct machine_desc { · 36 unmodified lines
3737 struct meminfo *);
3838 void (*reserve)(void);/* reserve mem blocks */
3939 void (*map_io)(void);/* IO mapping function */
40+ void (*init_early)(void);
4041 void (*init_irq)(void);
4142 struct sys_timer *timer; /* system tick timer */
4243 void (*init_machine)(void);
44+#ifdef CONFIG_MULTI_IRQ_HANDLER
45+ void (*handle_irq)(struct pt_regs *);
46+#endif
4347 };
4448
49+/*
50+ * Current machine - only accessible during boot.
51+ */
52+extern struct machine_desc *machine_desc;
53+
4554 /*
4655 * Set of macros to define architecture features. This is built into
4756 * a table by the linker.
arch/arm/include/asm/mach/irq.h+5−3
@@ -17,10 +17,12 @@ struct seq_file; · 16 unmodified lines
1717 /*
1818 * This is internal. Do not use it.
1919 */
20−extern unsigned int arch_nr_irqs;
21−extern void (*init_arch_irq)(void);
2220 extern void init_FIQ(void);
23−extern int show_fiq_list(struct seq_file *, void *);
21+extern int show_fiq_list(struct seq_file *, int);
22+
23+#ifdef CONFIG_MULTI_IRQ_HANDLER
24+extern void (*handle_arch_irq)(struct pt_regs *);
25+#endif
2426
2527 /*
2628 * This is for easy migration, but should be changed in the source
arch/arm/include/asm/mach/time.h+0−1
@@ -43,7 +43,6 @@ struct sys_timer { · 42 unmodified lines
4343 #endif
4444 };
4545
46−extern struct sys_timer *system_timer;
4746 extern void timer_tick(void);
4847
4948 #endif
arch/arm/include/asm/memory.h+1−1
@@ -188,7 +188,7 @@ · 187 unmodified lines
188188 * translation for translating DMA addresses. Use the driver
189189 * DMA support - see dma-mapping.h.
190190 */
191−static inline unsigned long virt_to_phys(void *x)
191+static inline unsigned long virt_to_phys(const volatile void *x)
192192 {
193193 return __virt_to_phys((unsigned long)(x));
194194 }
arch/arm/include/asm/module.h+5−10
@@ -8,11 +8,6 @@ · 7 unmodified lines
88 struct unwind_table;
99
1010 #ifdef CONFIG_ARM_UNWIND
11−struct arm_unwind_mapping {
12− Elf_Shdr *unw_sec;
13− Elf_Shdr *sec_text;
14− struct unwind_table *unwind;
15−};
1611 enum {
1712 ARM_SEC_INIT,
1813 ARM_SEC_DEVINIT,
@@ -21,13 +16,13 @@ enum { · 2 unmodified lines
2116 ARM_SEC_DEVEXIT,
2217 ARM_SEC_MAX,
2318 };
19+#endif
20+
2421 struct mod_arch_specific {
25− struct arm_unwind_mapping map[ARM_SEC_MAX];
26−};
27−#else
28−struct mod_arch_specific {
29−};
22+#ifdef CONFIG_ARM_UNWIND
23+ struct unwind_table *unwind[ARM_SEC_MAX];
3024 #endif
25+};
3126
3227 /*
3328 * Include the ARM architecture version.
arch/arm/include/asm/page.h+4−2
@@ -151,13 +151,15 @@ extern void __cpu_copy_user_highpage(struct page *to, struct page *from, · 150 unmodified lines
151151 #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
152152 extern void copy_page(void *to, const void *from);
153153
154+typedef unsigned long pteval_t;
155+
154156 #undef STRICT_MM_TYPECHECKS
155157
156158 #ifdef STRICT_MM_TYPECHECKS
157159 /*
158160 * These are used to make use of C type-checking..
159161 */
160−typedef struct { unsigned long pte; } pte_t;
162+typedef struct { pteval_t pte; } pte_t;
161163 typedef struct { unsigned long pmd; } pmd_t;
162164 typedef struct { unsigned long pgd[2]; } pgd_t;
163165 typedef struct { unsigned long pgprot; } pgprot_t;
@@ -175,7 +177,7 @@ typedef struct { unsigned long pgprot; } pgprot_t; · 11 unmodified lines
175177 /*
176178 * .. while these make it easier on the compiler
177179 */
178−typedef unsigned long pte_t;
180+typedef pteval_t pte_t;
179181 typedef unsigned long pmd_t;
180182 typedef unsigned long pgd_t[2];
181183 typedef unsigned long pgprot_t;
arch/arm/include/asm/pgalloc.h+22−28
@@ -30,14 +30,16 @@ · 29 unmodified lines
3030 #define pmd_free(mm, pmd) do { } while (0)
3131 #define pgd_populate(mm,pmd,pte) BUG()
3232
33−extern pgd_t *get_pgd_slow(struct mm_struct *mm);
34−extern void free_pgd_slow(struct mm_struct *mm, pgd_t *pgd);
35−
36−#define pgd_alloc(mm) get_pgd_slow(mm)
37−#define pgd_free(mm, pgd) free_pgd_slow(mm, pgd)
33+extern pgd_t *pgd_alloc(struct mm_struct *mm);
34+extern void pgd_free(struct mm_struct *mm, pgd_t *pgd);
3835
3936 #define PGALLOC_GFP (GFP_KERNEL | __GFP_NOTRACK | __GFP_REPEAT | __GFP_ZERO)
4037
38+static inline void clean_pte_table(pte_t *pte)
39+{
40+ clean_dcache_area(pte + PTE_HWTABLE_PTRS, PTE_HWTABLE_SIZE);
41+}
42+
4143 /*
4244 * Allocate one PTE table.
4345 *
@@ -45,14 +47,14 @@ extern void free_pgd_slow(struct mm_struct *mm, pgd_t *pgd); · 1 unmodified line
4547 * into one table thus:
4648 *
4749 * +------------+
48− * | h/w pt 0 |
49− * +------------+
50− * | h/w pt 1 |
51− * +------------+
5250 * | Linux pt 0 |
5351 * +------------+
5452 * | Linux pt 1 |
5553 * +------------+
54+ * | h/w pt 0 |
55+ * +------------+
56+ * | h/w pt 1 |
57+ * +------------+
5658 */
5759 static inline pte_t *
5860 pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr)
@@ -60,10 +62,8 @@ pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr) · 1 unmodified line
6062 pte_t *pte;
6163
6264 pte = (pte_t *)__get_free_page(PGALLOC_GFP);
63− if (pte) {
64− clean_dcache_area(pte, sizeof(pte_t) * PTRS_PER_PTE);
65− pte += PTRS_PER_PTE;
66− }
65+ if (pte)
66+ clean_pte_table(pte);
6767
6868 return pte;
6969 }
@@ -79,10 +79,8 @@ pte_alloc_one(struct mm_struct *mm, unsigned long addr) · 9 unmodified lines
7979 pte = alloc_pages(PGALLOC_GFP, 0);
8080 #endif
8181 if (pte) {
82− if (!PageHighMem(pte)) {
83− void *page = page_address(pte);
84− clean_dcache_area(page, sizeof(pte_t) * PTRS_PER_PTE);
85− }
82+ if (!PageHighMem(pte))
83+ clean_pte_table(page_address(pte));
8684 pgtable_page_ctor(pte);
8785 }
8886
@@ -94,10 +92,8 @@ pte_alloc_one(struct mm_struct *mm, unsigned long addr) · 5 unmodified lines
9492 */
9593 static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
9694 {
97− if (pte) {
98− pte -= PTRS_PER_PTE;
95+ if (pte)
9996 free_page((unsigned long)pte);
100− }
10197 }
10298
10399 static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
@@ -106,8 +102,10 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte) · 2 unmodified lines
106102 __free_page(pte);
107103 }
108104
109−static inline void __pmd_populate(pmd_t *pmdp, unsigned long pmdval)
105+static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte,
106+ unsigned long prot)
110107 {
108+ unsigned long pmdval = (pte + PTE_HWTABLE_OFF) | prot;
111109 pmdp[0] = __pmd(pmdval);
112110 pmdp[1] = __pmd(pmdval + 256 * sizeof(pte_t));
113111 flush_pmd_entry(pmdp);
@@ -122,20 +120,16 @@ static inline void __pmd_populate(pmd_t *pmdp, unsigned long pmdval) · 8 unmodified lines
122120 static inline void
123121 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep)
124122 {
125− unsigned long pte_ptr = (unsigned long)ptep;
126−
127123 /*
128− * The pmd must be loaded with the physical
129− * address of the PTE table
124+ * The pmd must be loaded with the physical address of the PTE table
130125 */
131− pte_ptr -= PTRS_PER_PTE * sizeof(void *);
132− __pmd_populate(pmdp, __pa(pte_ptr) | _PAGE_KERNEL_TABLE);
126+ __pmd_populate(pmdp, __pa(ptep), _PAGE_KERNEL_TABLE);
133127 }
134128
135129 static inline void
136130 pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep)
137131 {
138− __pmd_populate(pmdp, page_to_pfn(ptep) << PAGE_SHIFT | _PAGE_USER_TABLE);
132+ __pmd_populate(pmdp, page_to_phys(ptep), _PAGE_USER_TABLE);
139133 }
140134 #define pmd_pgtable(pmd) pmd_page(pmd)
141135
arch/arm/include/asm/pgtable.h+155−160
@@ -10,6 +10,7 @@ · 9 unmodified lines
1010 #ifndef _ASMARM_PGTABLE_H
1111 #define _ASMARM_PGTABLE_H
1212
13+#include <linux/const.h>
1314 #include <asm-generic/4level-fixup.h>
1415 #include <asm/proc-fns.h>
1516
@@ -54,7 +55,7 @@ · 38 unmodified lines
5455 * Therefore, we tweak the implementation slightly - we tell Linux that we
5556 * have 2048 entries in the first level, each of which is 8 bytes (iow, two
5657 * hardware pointers to the second level.) The second level contains two
57− * hardware PTE tables arranged contiguously, followed by Linux versions
58+ * hardware PTE tables arranged contiguously, preceded by Linux versions
5859 * which contain the state information Linux needs. We, therefore, end up
5960 * with 512 entries in the "PTE" level.
6061 *
@@ -62,15 +63,15 @@ · 1 unmodified line
6263 *
6364 * pgd pte
6465 * | |
65− * +--------+ +0
66− * | |-----> +------------+ +0
66+ * +--------+
67+ * | | +------------+ +0
68+ * +- - - - + | Linux pt 0 |
69+ * | | +------------+ +1024
70+ * +--------+ +0 | Linux pt 1 |
71+ * | |-----> +------------+ +2048
6772 * +- - - - + +4 | h/w pt 0 |
68− * | |-----> +------------+ +1024
73+ * | |-----> +------------+ +3072
6974 * +--------+ +8 | h/w pt 1 |
70− * | | +------------+ +2048
71− * +- - - - + | Linux pt 0 |
72− * | | +------------+ +3072
73− * +--------+ | Linux pt 1 |
7475 * | | +------------+ +4096
7576 *
7677 * See L_PTE_xxx below for definitions of bits in the "Linux pt", and
@@ -102,6 +103,10 @@ · 25 unmodified lines
102103 #define PTRS_PER_PMD 1
103104 #define PTRS_PER_PGD 2048
104105
106+#define PTE_HWTABLE_PTRS (PTRS_PER_PTE)
107+#define PTE_HWTABLE_OFF (PTE_HWTABLE_PTRS * sizeof(pte_t))
108+#define PTE_HWTABLE_SIZE (PTRS_PER_PTE * sizeof(u32))
109+
105110 /*
106111 * PMD_SHIFT determines the size of the area a second-level page table can map
107112 * PGDIR_SHIFT determines what a third-level page table entry can map
@@ -112,13 +117,13 @@ · 4 unmodified lines
112117 #define LIBRARY_TEXT_START 0x0c000000
113118
114119 #ifndef __ASSEMBLY__
115−extern void __pte_error(const char *file, int line, unsigned long val);
116−extern void __pmd_error(const char *file, int line, unsigned long val);
117−extern void __pgd_error(const char *file, int line, unsigned long val);
120+extern void __pte_error(const char *file, int line, pte_t);
121+extern void __pmd_error(const char *file, int line, pmd_t);
122+extern void __pgd_error(const char *file, int line, pgd_t);
118123
119−#define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte_val(pte))
120−#define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd_val(pmd))
121−#define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd_val(pgd))
124+#define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte)
125+#define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd)
126+#define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd)
122127 #endif /* !__ASSEMBLY__ */
123128
124129 #define PMD_SIZE (1UL << PMD_SHIFT)
@@ -133,8 +138,7 @@ extern void __pgd_error(const char *file, int line, unsigned long val); · 8 unmodified lines
133138 */
134139 #define FIRST_USER_ADDRESS PAGE_SIZE
135140
136−#define FIRST_USER_PGD_NR 1
137−#define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR)
141+#define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE)
138142
139143 /*
140144 * section address mask and size definitions.
@@ -161,30 +165,30 @@ extern void __pgd_error(const char *file, int line, unsigned long val); · 20 unmodified lines
161165 * The PTE table pointer refers to the hardware entries; the "Linux"
162166 * entries are stored 1024 bytes below.
163167 */
164−#define L_PTE_PRESENT (1 << 0)
165−#define L_PTE_YOUNG (1 << 1)
166−#define L_PTE_FILE (1 << 2) /* only when !PRESENT */
167−#define L_PTE_DIRTY (1 << 6)
168−#define L_PTE_WRITE (1 << 7)
169−#define L_PTE_USER (1 << 8)
170−#define L_PTE_EXEC (1 << 9)
171−#define L_PTE_SHARED (1 << 10) /* shared(v6), coherent(xsc3) */
168+#define L_PTE_PRESENT (_AT(pteval_t, 1) << 0)
169+#define L_PTE_YOUNG (_AT(pteval_t, 1) << 1)
170+#define L_PTE_FILE (_AT(pteval_t, 1) << 2) /* only when !PRESENT */
171+#define L_PTE_DIRTY (_AT(pteval_t, 1) << 6)
172+#define L_PTE_RDONLY (_AT(pteval_t, 1) << 7)
173+#define L_PTE_USER (_AT(pteval_t, 1) << 8)
174+#define L_PTE_XN (_AT(pteval_t, 1) << 9)
175+#define L_PTE_SHARED (_AT(pteval_t, 1) << 10) /* shared(v6), coherent(xsc3) */
172176
173177 /*
174178 * These are the memory types, defined to be compatible with
175179 * pre-ARMv6 CPUs cacheable and bufferable bits: XXCB
176180 */
177−#define L_PTE_MT_UNCACHED (0x00 << 2) /* 0000 */
178−#define L_PTE_MT_BUFFERABLE (0x01 << 2) /* 0001 */
179−#define L_PTE_MT_WRITETHROUGH (0x02 << 2) /* 0010 */
180−#define L_PTE_MT_WRITEBACK (0x03 << 2) /* 0011 */
181−#define L_PTE_MT_MINICACHE (0x06 << 2) /* 0110 (sa1100, xscale) */
182−#define L_PTE_MT_WRITEALLOC (0x07 << 2) /* 0111 */
183−#define L_PTE_MT_DEV_SHARED (0x04 << 2) /* 0100 */
184−#define L_PTE_MT_DEV_NONSHARED (0x0c << 2) /* 1100 */
185−#define L_PTE_MT_DEV_WC (0x09 << 2) /* 1001 */
186−#define L_PTE_MT_DEV_CACHED (0x0b << 2) /* 1011 */
187−#define L_PTE_MT_MASK (0x0f << 2)
181+#define L_PTE_MT_UNCACHED (_AT(pteval_t, 0x00) << 2) /* 0000 */
182+#define L_PTE_MT_BUFFERABLE (_AT(pteval_t, 0x01) << 2) /* 0001 */
183+#define L_PTE_MT_WRITETHROUGH (_AT(pteval_t, 0x02) << 2) /* 0010 */
184+#define L_PTE_MT_WRITEBACK (_AT(pteval_t, 0x03) << 2) /* 0011 */
185+#define L_PTE_MT_MINICACHE (_AT(pteval_t, 0x06) << 2) /* 0110 (sa1100, xscale) */
186+#define L_PTE_MT_WRITEALLOC (_AT(pteval_t, 0x07) << 2) /* 0111 */
187+#define L_PTE_MT_DEV_SHARED (_AT(pteval_t, 0x04) << 2) /* 0100 */
188+#define L_PTE_MT_DEV_NONSHARED (_AT(pteval_t, 0x0c) << 2) /* 1100 */
189+#define L_PTE_MT_DEV_WC (_AT(pteval_t, 0x09) << 2) /* 1001 */
190+#define L_PTE_MT_DEV_CACHED (_AT(pteval_t, 0x0b) << 2) /* 1011 */
191+#define L_PTE_MT_MASK (_AT(pteval_t, 0x0f) << 2)
188192
189193 #ifndef __ASSEMBLY__
190194
@@ -201,23 +205,44 @@ extern pgprot_t pgprot_kernel; · 10 unmodified lines
201205
202206 #define _MOD_PROT(p, b) __pgprot(pgprot_val(p) | (b))
203207
204−#define PAGE_NONE pgprot_user
205−#define PAGE_SHARED _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_WRITE)
206−#define PAGE_SHARED_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_WRITE | L_PTE_EXEC)
207−#define PAGE_COPY _MOD_PROT(pgprot_user, L_PTE_USER)
208−#define PAGE_COPY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_EXEC)
209−#define PAGE_READONLY _MOD_PROT(pgprot_user, L_PTE_USER)
210−#define PAGE_READONLY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_EXEC)
211−#define PAGE_KERNEL pgprot_kernel
212−#define PAGE_KERNEL_EXEC _MOD_PROT(pgprot_kernel, L_PTE_EXEC)
213−
214−#define __PAGE_NONE __pgprot(_L_PTE_DEFAULT)
215−#define __PAGE_SHARED __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_WRITE)
216−#define __PAGE_SHARED_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_WRITE | L_PTE_EXEC)
217−#define __PAGE_COPY __pgprot(_L_PTE_DEFAULT | L_PTE_USER)
218−#define __PAGE_COPY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_EXEC)
219−#define __PAGE_READONLY __pgprot(_L_PTE_DEFAULT | L_PTE_USER)
220−#define __PAGE_READONLY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_EXEC)
208+#define PAGE_NONE _MOD_PROT(pgprot_user, L_PTE_XN | L_PTE_RDONLY)
209+#define PAGE_SHARED _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_XN)
210+#define PAGE_SHARED_EXEC _MOD_PROT(pgprot_user, L_PTE_USER)
211+#define PAGE_COPY _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
212+#define PAGE_COPY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY)
213+#define PAGE_READONLY _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
214+#define PAGE_READONLY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY)
215+#define PAGE_KERNEL _MOD_PROT(pgprot_kernel, L_PTE_XN)
216+#define PAGE_KERNEL_EXEC pgprot_kernel
217+
218+#define __PAGE_NONE __pgprot(_L_PTE_DEFAULT | L_PTE_RDONLY | L_PTE_XN)
219+#define __PAGE_SHARED __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_XN)
220+#define __PAGE_SHARED_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER)
221+#define __PAGE_COPY __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
222+#define __PAGE_COPY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY)
223+#define __PAGE_READONLY __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
224+#define __PAGE_READONLY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY)
225+
226+#define __pgprot_modify(prot,mask,bits) \
227+ __pgprot((pgprot_val(prot) & ~(mask)) | (bits))
228+
229+#define pgprot_noncached(prot) \
230+ __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_UNCACHED)
231+
232+#define pgprot_writecombine(prot) \
233+ __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE)
234+
235+#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
236+#define pgprot_dmacoherent(prot) \
237+ __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE | L_PTE_XN)
238+#define __HAVE_PHYS_MEM_ACCESS_PROT
239+struct file;
240+extern pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
241+ unsigned long size, pgprot_t vma_prot);
242+#else
243+#define pgprot_dmacoherent(prot) \
244+ __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_UNCACHED | L_PTE_XN)
245+#endif
221246
222247 #endif /* __ASSEMBLY__ */
223248
@@ -255,26 +280,84 @@ extern pgprot_t pgprot_kernel; · 31 unmodified lines
255280 extern struct page *empty_zero_page;
256281 #define ZERO_PAGE(vaddr) (empty_zero_page)
257282
258−#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)
259−#define pfn_pte(pfn,prot) (__pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)))
260283
261−#define pte_none(pte) (!pte_val(pte))
262−#define pte_clear(mm,addr,ptep) set_pte_ext(ptep, __pte(0), 0)
263−#define pte_page(pte) (pfn_to_page(pte_pfn(pte)))
264−#define pte_offset_kernel(dir,addr) (pmd_page_vaddr(*(dir)) + __pte_index(addr))
284+extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
285+
286+/* to find an entry in a page-table-directory */
287+#define pgd_index(addr) ((addr) >> PGDIR_SHIFT)
288+
289+#define pgd_offset(mm, addr) ((mm)->pgd + pgd_index(addr))
290+
291+/* to find an entry in a kernel page-table-directory */
292+#define pgd_offset_k(addr) pgd_offset(&init_mm, addr)
293+
294+/*
295+ * The "pgd_xxx()" functions here are trivial for a folded two-level
296+ * setup: the pgd is never bad, and a pmd always exists (as it's folded
297+ * into the pgd entry)
298+ */
299+#define pgd_none(pgd) (0)
300+#define pgd_bad(pgd) (0)
301+#define pgd_present(pgd) (1)
302+#define pgd_clear(pgdp) do { } while (0)
303+#define set_pgd(pgd,pgdp) do { } while (0)
304+
305+
306+/* Find an entry in the second-level page table.. */
307+#define pmd_offset(dir, addr) ((pmd_t *)(dir))
308+
309+#define pmd_none(pmd) (!pmd_val(pmd))
310+#define pmd_present(pmd) (pmd_val(pmd))
311+#define pmd_bad(pmd) (pmd_val(pmd) & 2)
312+
313+#define copy_pmd(pmdpd,pmdps) \
314+ do { \
315+ pmdpd[0] = pmdps[0]; \
316+ pmdpd[1] = pmdps[1]; \
317+ flush_pmd_entry(pmdpd); \
318+ } while (0)
319+
320+#define pmd_clear(pmdp) \
321+ do { \
322+ pmdp[0] = __pmd(0); \
323+ pmdp[1] = __pmd(0); \
324+ clean_pmd_entry(pmdp); \
325+ } while (0)
326+
327+static inline pte_t *pmd_page_vaddr(pmd_t pmd)
328+{
329+ return __va(pmd_val(pmd) & PAGE_MASK);
330+}
331+
332+#define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd)))
333+
334+/* we don't need complex calculations here as the pmd is folded into the pgd */
335+#define pmd_addr_end(addr,end) (end)
265336
266−#define pte_offset_map(dir,addr) (__pte_map(dir) + __pte_index(addr))
267−#define pte_unmap(pte) __pte_unmap(pte)
268337
269338 #ifndef CONFIG_HIGHPTE
270−#define __pte_map(dir) pmd_page_vaddr(*(dir))
339+#define __pte_map(pmd) pmd_page_vaddr(*(pmd))
271340 #define __pte_unmap(pte) do { } while (0)
272341 #else
273−#define __pte_map(dir) ((pte_t *)kmap_atomic(pmd_page(*(dir))) + PTRS_PER_PTE)
274−#define __pte_unmap(pte) kunmap_atomic((pte - PTRS_PER_PTE))
342+#define __pte_map(pmd) (pte_t *)kmap_atomic(pmd_page(*(pmd)))
343+#define __pte_unmap(pte) kunmap_atomic(pte)
275344 #endif
276345
346+#define pte_index(addr) (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
347+
348+#define pte_offset_kernel(pmd,addr) (pmd_page_vaddr(*(pmd)) + pte_index(addr))
349+
350+#define pte_offset_map(pmd,addr) (__pte_map(pmd) + pte_index(addr))
351+#define pte_unmap(pte) __pte_unmap(pte)
352+
353+#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)
354+#define pfn_pte(pfn,prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
355+
356+#define pte_page(pte) pfn_to_page(pte_pfn(pte))
357+#define mk_pte(page,prot) pfn_pte(page_to_pfn(page), prot)
358+
277359 #define set_pte_ext(ptep,pte,ext) cpu_set_pte_ext(ptep,pte,ext)
360+#define pte_clear(mm,addr,ptep) set_pte_ext(ptep, __pte(0), 0)
278361
279362 #if __LINUX_ARM_ARCH__ < 6
280363 static inline void __sync_icache_dcache(pte_t pteval)
@@ -295,15 +378,12 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, · 14 unmodified lines
295378 }
296379 }
297380
298−/*
299− * The following only work if pte_present() is true.
300− * Undefined behaviour if not..
301− */
381+#define pte_none(pte) (!pte_val(pte))
302382 #define pte_present(pte) (pte_val(pte) & L_PTE_PRESENT)
303−#define pte_write(pte) (pte_val(pte) & L_PTE_WRITE)
383+#define pte_write(pte) (!(pte_val(pte) & L_PTE_RDONLY))
304384 #define pte_dirty(pte) (pte_val(pte) & L_PTE_DIRTY)
305385 #define pte_young(pte) (pte_val(pte) & L_PTE_YOUNG)
306−#define pte_exec(pte) (pte_val(pte) & L_PTE_EXEC)
386+#define pte_exec(pte) (!(pte_val(pte) & L_PTE_XN))
307387 #define pte_special(pte) (0)
308388
309389 #define pte_present_user(pte) \
@@ -313,8 +393,8 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, · 3 unmodified lines
313393 #define PTE_BIT_FUNC(fn,op) \
314394 static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }
315395
316−PTE_BIT_FUNC(wrprotect, &= ~L_PTE_WRITE);
317−PTE_BIT_FUNC(mkwrite, |= L_PTE_WRITE);
396+PTE_BIT_FUNC(wrprotect, |= L_PTE_RDONLY);
397+PTE_BIT_FUNC(mkwrite, &= ~L_PTE_RDONLY);
318398 PTE_BIT_FUNC(mkclean, &= ~L_PTE_DIRTY);
319399 PTE_BIT_FUNC(mkdirty, |= L_PTE_DIRTY);
320400 PTE_BIT_FUNC(mkold, &= ~L_PTE_YOUNG);
@@ -322,101 +402,13 @@ PTE_BIT_FUNC(mkyoung, |= L_PTE_YOUNG); · 1 unmodified line
322402
323403 static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
324404
325−#define __pgprot_modify(prot,mask,bits) \
326− __pgprot((pgprot_val(prot) & ~(mask)) | (bits))
327−
328−/*
329− * Mark the prot value as uncacheable and unbufferable.
330− */
331−#define pgprot_noncached(prot) \
332− __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_UNCACHED)
333−#define pgprot_writecombine(prot) \
334− __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE)
335−#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE
336−#define pgprot_dmacoherent(prot) \
337− __pgprot_modify(prot, L_PTE_MT_MASK|L_PTE_EXEC, L_PTE_MT_BUFFERABLE)
338−#define __HAVE_PHYS_MEM_ACCESS_PROT
339−struct file;
340−extern pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
341− unsigned long size, pgprot_t vma_prot);
342−#else
343−#define pgprot_dmacoherent(prot) \
344− __pgprot_modify(prot, L_PTE_MT_MASK|L_PTE_EXEC, L_PTE_MT_UNCACHED)
345−#endif
346−
347−#define pmd_none(pmd) (!pmd_val(pmd))
348−#define pmd_present(pmd) (pmd_val(pmd))
349−#define pmd_bad(pmd) (pmd_val(pmd) & 2)
350−
351−#define copy_pmd(pmdpd,pmdps) \
352− do { \
353− pmdpd[0] = pmdps[0]; \
354− pmdpd[1] = pmdps[1]; \
355− flush_pmd_entry(pmdpd); \
356− } while (0)
357−
358−#define pmd_clear(pmdp) \
359− do { \
360− pmdp[0] = __pmd(0); \
361− pmdp[1] = __pmd(0); \
362− clean_pmd_entry(pmdp); \
363− } while (0)
364−
365−static inline pte_t *pmd_page_vaddr(pmd_t pmd)
366−{
367− unsigned long ptr;
368−
369− ptr = pmd_val(pmd) & ~(PTRS_PER_PTE * sizeof(void *) - 1);
370− ptr += PTRS_PER_PTE * sizeof(void *);
371−
372− return __va(ptr);
373−}
374−
375−#define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd)))
376−
377−/* we don't need complex calculations here as the pmd is folded into the pgd */
378−#define pmd_addr_end(addr,end) (end)
379−
380−/*
381− * Conversion functions: convert a page and protection to a page entry,
382− * and a page entry and page directory to the page they refer to.
383− */
384−#define mk_pte(page,prot) pfn_pte(page_to_pfn(page),prot)
385−
386−/*
387− * The "pgd_xxx()" functions here are trivial for a folded two-level
388− * setup: the pgd is never bad, and a pmd always exists (as it's folded
389− * into the pgd entry)
390− */
391−#define pgd_none(pgd) (0)
392−#define pgd_bad(pgd) (0)
393−#define pgd_present(pgd) (1)
394−#define pgd_clear(pgdp) do { } while (0)
395−#define set_pgd(pgd,pgdp) do { } while (0)
396−
397−/* to find an entry in a page-table-directory */
398−#define pgd_index(addr) ((addr) >> PGDIR_SHIFT)
399−
400−#define pgd_offset(mm, addr) ((mm)->pgd+pgd_index(addr))
401−
402−/* to find an entry in a kernel page-table-directory */
403−#define pgd_offset_k(addr) pgd_offset(&init_mm, addr)
404−
405−/* Find an entry in the second-level page table.. */
406−#define pmd_offset(dir, addr) ((pmd_t *)(dir))
407−
408−/* Find an entry in the third-level page table.. */
409−#define __pte_index(addr) (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
410−
411405 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
412406 {
413− const unsigned long mask = L_PTE_EXEC | L_PTE_WRITE | L_PTE_USER;
407+ const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER;
414408 pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
415409 return pte;
416410 }
417411
418−extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
419−
420412 /*
421413 * Encode and decode a swap entry. Swap entries are stored in the Linux
422414 * page tables as follows:
@@ -481,6 +473,9 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; · 58 unmodified lines
481473
482474 #define pgtable_cache_init() do { } while (0)
483475
476+void identity_mapping_add(pgd_t *, unsigned long, unsigned long);
477+void identity_mapping_del(pgd_t *, unsigned long, unsigned long);
478+
484479 #endif /* !__ASSEMBLY__ */
485480
486481 #endif /* CONFIG_MMU */
arch/arm/include/asm/sched_clock.h+120−0
@@ -0,0 +1,120 @@
1+/*
2+ * sched_clock.h: support for extending counters to full 64-bit ns counter
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+#ifndef ASM_SCHED_CLOCK
9+#define ASM_SCHED_CLOCK
10+
11+#include <linux/kernel.h>
12+#include <linux/types.h>
13+
14+struct 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+
24+static 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+ */
35+static 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+ */
59+static 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+ */
86+static 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+ */
98+void 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+ */
106+static 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+
118+extern void sched_clock_postinit(void);
119+
120+#endif
arch/arm/include/asm/smp.h+9−8
@@ -33,27 +33,23 @@ struct seq_file; · 32 unmodified lines
3333 /*
3434 * generate IPI list text
3535 */
36−extern void show_ipi_list(struct seq_file *p);
36+extern void show_ipi_list(struct seq_file *, int);
3737
3838 /*
3939 * Called from assembly code, this handles an IPI.
4040 */
41−asmlinkage void do_IPI(struct pt_regs *regs);
41+asmlinkage void do_IPI(int ipinr, struct pt_regs *regs);
4242
4343 /*
4444 * Setup the set of possible CPUs (via set_cpu_possible)
4545 */
4646 extern void smp_init_cpus(void);
4747
48−/*
49− * Move global data into per-processor storage.
50− */
51−extern void smp_store_cpu_info(unsigned int cpuid);
5248
5349 /*
5450 * Raise an IPI cross call on CPUs in callmap.
5551 */
56−extern void smp_cross_call(const struct cpumask *mask);
52+extern void smp_cross_call(const struct cpumask *mask, int ipi);
5753
5854 /*
5955 * Boot a secondary CPU, and assign it the specified idle task.
@@ -72,6 +68,11 @@ asmlinkage void secondary_start_kernel(void); · 12 unmodified lines
7268 */
7369 extern void platform_secondary_init(unsigned int cpu);
7470
71+/*
72+ * Initialize cpu_possible map, and enable coherency
73+ */
74+extern void platform_smp_prepare_cpus(unsigned int);
75+
7576 /*
7677 * Initial data for bringing up a secondary CPU.
7778 */
@@ -97,6 +98,6 @@ extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); · 19 unmodified lines
9798 /*
9899 * show local interrupt info
99100 */
100−extern void show_local_irqs(struct seq_file *);
101+extern void show_local_irqs(struct seq_file *, int);
101102
102103 #endif /* ifndef __ASM_ARM_SMP_H */
arch/arm/include/asm/smp_mpidr.h+0−17
@@ -1,17 +0,0 @@
1−#ifndef ASMARM_SMP_MIDR_H
2−#define ASMARM_SMP_MIDR_H
3−
4−#define hard_smp_processor_id() \
5− ({ \
6− unsigned int cpunum; \
7− __asm__("\n" \
8− "1: mrc p15, 0, %0, c0, c0, 5\n" \
9− " .pushsection \".alt.smp.init\", \"a\"\n"\
10− " .long 1b\n" \
11− " mov %0, #0\n" \
12− " .popsection" \
13− : "=r" (cpunum)); \
14− cpunum &= 0x0F; \
15− })
16−
17−#endif
arch/arm/include/asm/smp_twd.h+0−1
@@ -22,7 +22,6 @@ struct clock_event_device; · 21 unmodified lines
2222
2323 extern void __iomem *twd_base;
2424
25−void twd_timer_stop(void);
2625 int twd_timer_ack(void);
2726 void twd_timer_setup(struct clock_event_device *);
2827
arch/arm/include/asm/system.h+12−0
@@ -63,6 +63,11 @@ · 62 unmodified lines
6363 #include <asm/outercache.h>
6464
6565 #define __exception __attribute__((section(".exception.text")))
66+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
67+#define __exception_irq_entry __irq_entry
68+#else
69+#define __exception_irq_entry __exception
70+#endif
6671
6772 struct thread_info;
6873 struct task_struct;
@@ -119,6 +124,13 @@ extern unsigned int user_debug; · 50 unmodified lines
119124 #define vectors_high() (0)
120125 #endif
121126
127+#if __LINUX_ARM_ARCH__ >= 7 || \
128+ (__LINUX_ARM_ARCH__ == 6 && defined(CONFIG_CPU_32v6K))
129+#define sev() __asm__ __volatile__ ("sev" : : : "memory")
130+#define wfe() __asm__ __volatile__ ("wfe" : : : "memory")
131+#define wfi() __asm__ __volatile__ ("wfi" : : : "memory")
132+#endif
133+
122134 #if __LINUX_ARM_ARCH__ >= 7
123135 #define isb() __asm__ __volatile__ ("isb" : : : "memory")
124136 #define dsb() __asm__ __volatile__ ("dsb" : : : "memory")
arch/arm/include/asm/tlb.h+92−13
@@ -18,16 +18,34 @@ · 17 unmodified lines
1818 #define __ASMARM_TLB_H
1919
2020 #include <asm/cacheflush.h>
21−#include <asm/tlbflush.h>
2221
2322 #ifndef CONFIG_MMU
2423
2524 #include <linux/pagemap.h>
25+
26+#define tlb_flush(tlb) ((void) tlb)
27+
2628 #include <asm-generic/tlb.h>
2729
2830 #else /* !CONFIG_MMU */
2931
32+#include <linux/swap.h>
3033 #include <asm/pgalloc.h>
34+#include <asm/tlbflush.h>
35+
36+/*
37+ * We need to delay page freeing for SMP as other CPUs can access pages
38+ * which have been removed but not yet had their TLB entries invalidated.
39+ * Also, as ARMv7 speculative prefetch can drag new entries into the TLB,
40+ * we need to apply this same delaying tactic to ensure correct operation.
41+ */
42+#if defined(CONFIG_SMP) || defined(CONFIG_CPU_32v7)
43+#define tlb_fast_mode(tlb) 0
44+#define FREE_PTE_NR 500
45+#else
46+#define tlb_fast_mode(tlb) 1
47+#define FREE_PTE_NR 0
48+#endif
3149
3250 /*
3351 * TLB handling. This allows us to remove pages from the page
@@ -36,12 +54,58 @@ · 2 unmodified lines
3654 struct mmu_gather {
3755 struct mm_struct *mm;
3856 unsigned int fullmm;
57+ struct vm_area_struct *vma;
3958 unsigned long range_start;
4059 unsigned long range_end;
60+ unsigned int nr;
61+ struct page *pages[FREE_PTE_NR];
4162 };
4263
4364 DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
4465
66+/*
67+ * This is unnecessarily complex. There's three ways the TLB shootdown
68+ * code is used:
69+ * 1. Unmapping a range of vmas. See zap_page_range(), unmap_region().
70+ * tlb->fullmm = 0, and tlb_start_vma/tlb_end_vma will be called.
71+ * tlb->vma will be non-NULL.
72+ * 2. Unmapping all vmas. See exit_mmap().
73+ * tlb->fullmm = 1, and tlb_start_vma/tlb_end_vma will be called.
74+ * tlb->vma will be non-NULL. Additionally, page tables will be freed.
75+ * 3. Unmapping argument pages. See shift_arg_pages().
76+ * tlb->fullmm = 0, but tlb_start_vma/tlb_end_vma will not be called.
77+ * tlb->vma will be NULL.
78+ */
79+static inline void tlb_flush(struct mmu_gather *tlb)
80+{
81+ if (tlb->fullmm || !tlb->vma)
82+ flush_tlb_mm(tlb->mm);
83+ else if (tlb->range_end > 0) {
84+ flush_tlb_range(tlb->vma, tlb->range_start, tlb->range_end);
85+ tlb->range_start = TASK_SIZE;
86+ tlb->range_end = 0;
87+ }
88+}
89+
90+static inline void tlb_add_flush(struct mmu_gather *tlb, unsigned long addr)
91+{
92+ if (!tlb->fullmm) {
93+ if (addr < tlb->range_start)
94+ tlb->range_start = addr;
95+ if (addr + PAGE_SIZE > tlb->range_end)
96+ tlb->range_end = addr + PAGE_SIZE;
97+ }
98+}
99+
100+static inline void tlb_flush_mmu(struct mmu_gather *tlb)
101+{
102+ tlb_flush(tlb);
103+ if (!tlb_fast_mode(tlb)) {
104+ free_pages_and_swap_cache(tlb->pages, tlb->nr);
105+ tlb->nr = 0;
106+ }
107+}
108+
45109 static inline struct mmu_gather *
46110 tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush)
47111 {
@@ -49,6 +113,8 @@ tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush) · 1 unmodified line
49113
50114 tlb->mm = mm;
51115 tlb->fullmm = full_mm_flush;
116+ tlb->vma = NULL;
117+ tlb->nr = 0;
52118
53119 return tlb;
54120 }
@@ -56,8 +122,7 @@ tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush) · 1 unmodified line
56122 static inline void
57123 tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
58124 {
59− if (tlb->fullmm)
60− flush_tlb_mm(tlb->mm);
125+ tlb_flush_mmu(tlb);
61126
62127 /* keep the page table cache within bounds */
63128 check_pgt_cache();
@@ -71,12 +136,7 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) · 7 unmodified lines
71136 static inline void
72137 tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, unsigned long addr)
73138 {
74− if (!tlb->fullmm) {
75− if (addr < tlb->range_start)
76− tlb->range_start = addr;
77− if (addr + PAGE_SIZE > tlb->range_end)
78− tlb->range_end = addr + PAGE_SIZE;
79− }
139+ tlb_add_flush(tlb, addr);
80140 }
81141
82142 /*
@@ -89,6 +149,7 @@ tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) · 6 unmodified lines
89149 {
90150 if (!tlb->fullmm) {
91151 flush_cache_range(vma, vma->vm_start, vma->vm_end);
152+ tlb->vma = vma;
92153 tlb->range_start = TASK_SIZE;
93154 tlb->range_end = 0;
94155 }
@@ -97,12 +158,30 @@ tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) · 2 unmodified lines
97158 static inline void
98159 tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
99160 {
100− if (!tlb->fullmm && tlb->range_end > 0)
101− flush_tlb_range(vma, tlb->range_start, tlb->range_end);
161+ if (!tlb->fullmm)
162+ tlb_flush(tlb);
163+}
164+
165+static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
166+{
167+ if (tlb_fast_mode(tlb)) {
168+ free_page_and_swap_cache(page);
169+ } else {
170+ tlb->pages[tlb->nr++] = page;
171+ if (tlb->nr >= FREE_PTE_NR)
172+ tlb_flush_mmu(tlb);
173+ }
174+}
175+
176+static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
177+ unsigned long addr)
178+{
179+ pgtable_page_dtor(pte);
180+ tlb_add_flush(tlb, addr);
181+ tlb_remove_page(tlb, pte);
102182 }
103183
104−#define tlb_remove_page(tlb,page) free_page_and_swap_cache(page)
105−#define pte_free_tlb(tlb, ptep, addr) pte_free((tlb)->mm, ptep)
184+#define pte_free_tlb(tlb, ptep, addr) __pte_free_tlb(tlb, ptep, addr)
106185 #define pmd_free_tlb(tlb, pmdp, addr) pmd_free((tlb)->mm, pmdp)
107186
108187 #define tlb_migrate_finish(mm) do { } while (0)
arch/arm/include/asm/tlbflush.h+1−6
@@ -10,12 +10,7 @@ · 9 unmodified lines
1010 #ifndef _ASMARM_TLBFLUSH_H
1111 #define _ASMARM_TLBFLUSH_H
1212
13−
14−#ifndef CONFIG_MMU
15−
16−#define tlb_flush(tlb) ((void) tlb)
17−
18−#else /* CONFIG_MMU */
13+#ifdef CONFIG_MMU
1914
2015 #include <asm/glue.h>
2116
arch/arm/include/asm/traps.h+23−2
@@ -15,16 +15,37 @@ struct undef_hook { · 14 unmodified lines
1515 void register_undef_hook(struct undef_hook *hook);
1616 void unregister_undef_hook(struct undef_hook *hook);
1717
18+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
19+static inline int __in_irqentry_text(unsigned long ptr)
20+{
21+ extern char __irqentry_text_start[];
22+ extern char __irqentry_text_end[];
23+
24+ return ptr >= (unsigned long)&__irqentry_text_start &&
25+ ptr < (unsigned long)&__irqentry_text_end;
26+}
27+#else
28+static inline int __in_irqentry_text(unsigned long ptr)
29+{
30+ return 0;
31+}
32+#endif
33+
1834 static inline int in_exception_text(unsigned long ptr)
1935 {
2036 extern char __exception_text_start[];
2137 extern char __exception_text_end[];
38+ int in;
2239
23− return ptr >= (unsigned long)&__exception_text_start &&
24− ptr < (unsigned long)&__exception_text_end;
40+ in = ptr >= (unsigned long)&__exception_text_start &&
41+ ptr < (unsigned long)&__exception_text_end;
42+
43+ return in ? : __in_irqentry_text(ptr);
2544 }
2645
2746 extern void __init early_trap_init(void);
2847 extern void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame);
2948
49+extern void *vectors_page;
50+
3051 #endif
arch/arm/include/asm/uaccess.h+8−8
@@ -227,7 +227,7 @@ do { \ · 226 unmodified lines
227227
228228 #define __get_user_asm_byte(x,addr,err) \
229229 __asm__ __volatile__( \
230− "1: ldrbt %1,[%2]\n" \
230+ "1: " T(ldrb) " %1,[%2],#0\n" \
231231 "2:\n" \
232232 " .pushsection .fixup,\"ax\"\n" \
233233 " .align 2\n" \
@@ -263,7 +263,7 @@ do { \ · 29 unmodified lines
263263
264264 #define __get_user_asm_word(x,addr,err) \
265265 __asm__ __volatile__( \
266− "1: ldrt %1,[%2]\n" \
266+ "1: " T(ldr) " %1,[%2],#0\n" \
267267 "2:\n" \
268268 " .pushsection .fixup,\"ax\"\n" \
269269 " .align 2\n" \
@@ -308,7 +308,7 @@ do { \ · 38 unmodified lines
308308
309309 #define __put_user_asm_byte(x,__pu_addr,err) \
310310 __asm__ __volatile__( \
311− "1: strbt %1,[%2]\n" \
311+ "1: " T(strb) " %1,[%2],#0\n" \
312312 "2:\n" \
313313 " .pushsection .fixup,\"ax\"\n" \
314314 " .align 2\n" \
@@ -341,7 +341,7 @@ do { \ · 26 unmodified lines
341341
342342 #define __put_user_asm_word(x,__pu_addr,err) \
343343 __asm__ __volatile__( \
344− "1: strt %1,[%2]\n" \
344+ "1: " T(str) " %1,[%2],#0\n" \
345345 "2:\n" \
346346 " .pushsection .fixup,\"ax\"\n" \
347347 " .align 2\n" \
@@ -366,10 +366,10 @@ do { \ · 18 unmodified lines
366366
367367 #define __put_user_asm_dword(x,__pu_addr,err) \
368368 __asm__ __volatile__( \
369− ARM( "1: strt " __reg_oper1 ", [%1], #4\n" ) \
370− ARM( "2: strt " __reg_oper0 ", [%1]\n" ) \
371− THUMB( "1: strt " __reg_oper1 ", [%1]\n" ) \
372− THUMB( "2: strt " __reg_oper0 ", [%1, #4]\n" ) \
369+ ARM( "1: " T(str) " " __reg_oper1 ", [%1], #4\n" ) \
370+ ARM( "2: " T(str) " " __reg_oper0 ", [%1]\n" ) \
371+ THUMB( "1: " T(str) " " __reg_oper1 ", [%1]\n" ) \
372+ THUMB( "2: " T(str) " " __reg_oper0 ", [%1, #4]\n" ) \
373373 "3:\n" \
374374 " .pushsection .fixup,\"ax\"\n" \
375375 " .align 2\n" \
arch/arm/kernel/Makefile+7−2
@@ -5,7 +5,7 @@ · 4 unmodified lines
55 CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
66 AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
77
8−ifdef CONFIG_DYNAMIC_FTRACE
8+ifdef CONFIG_FUNCTION_TRACER
99 CFLAGS_REMOVE_ftrace.o = -pg
1010 endif
1111
@@ -29,10 +29,12 @@ obj-$(CONFIG_MODULES) += armksyms.o module.o · 17 unmodified lines
2929 obj-$(CONFIG_ARTHUR) += arthur.o
3030 obj-$(CONFIG_ISA_DMA) += dma-isa.o
3131 obj-$(CONFIG_PCI) += bios32.o isa.o
32−obj-$(CONFIG_SMP) += smp.o
32+obj-$(CONFIG_HAVE_SCHED_CLOCK) += sched_clock.o
33+obj-$(CONFIG_SMP) += smp.o smp_tlb.o
3334 obj-$(CONFIG_HAVE_ARM_SCU) += smp_scu.o
3435 obj-$(CONFIG_HAVE_ARM_TWD) += smp_twd.o
3536 obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
37+obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
3638 obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
3739 obj-$(CONFIG_KPROBES) += kprobes.o kprobes-decode.o
3840 obj-$(CONFIG_ATAGS_PROC) += atags.o
@@ -42,6 +44,8 @@ obj-$(CONFIG_KGDB) += kgdb.o · 3 unmodified lines
4244 obj-$(CONFIG_ARM_UNWIND) += unwind.o
4345 obj-$(CONFIG_HAVE_TCM) += tcm.o
4446 obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
47+obj-$(CONFIG_SWP_EMULATE) += swp_emulate.o
48+CFLAGS_swp_emulate.o := -Wa,-march=armv7-a
4549 obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
4650
4751 obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o
@@ -50,6 +54,7 @@ AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312 · 2 unmodified lines
5054 obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o
5155 obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o
5256 obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o
57+obj-$(CONFIG_CPU_PJ4) += pj4-cp0.o
5358 obj-$(CONFIG_IWMMXT) += iwmmxt.o
5459 obj-$(CONFIG_CPU_HAS_PMU) += pmu.o
5560 obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o
arch/arm/kernel/ecard.c+14−14
@@ -443,40 +443,40 @@ static expansioncard_ops_t ecard_default_ops = { · 442 unmodified lines
443443 *
444444 * They are not meant to be called directly, but via enable/disable_irq.
445445 */
446−static void ecard_irq_unmask(unsigned int irqnr)
446+static void ecard_irq_unmask(struct irq_data *d)
447447 {
448− ecard_t *ec = slot_to_ecard(irqnr - 32);
448+ ecard_t *ec = slot_to_ecard(d->irq - 32);
449449
450450 if (ec) {
451451 if (!ec->ops)
452452 ec->ops = &ecard_default_ops;
453453
454454 if (ec->claimed && ec->ops->irqenable)
455− ec->ops->irqenable(ec, irqnr);
455+ ec->ops->irqenable(ec, d->irq);
456456 else
457457 printk(KERN_ERR "ecard: rejecting request to "
458− "enable IRQs for %d\n", irqnr);
458+ "enable IRQs for %d\n", d->irq);
459459 }
460460 }
461461
462−static void ecard_irq_mask(unsigned int irqnr)
462+static void ecard_irq_mask(struct irq_data *d)
463463 {
464− ecard_t *ec = slot_to_ecard(irqnr - 32);
464+ ecard_t *ec = slot_to_ecard(d->irq - 32);
465465
466466 if (ec) {
467467 if (!ec->ops)
468468 ec->ops = &ecard_default_ops;
469469
470470 if (ec->ops && ec->ops->irqdisable)
471− ec->ops->irqdisable(ec, irqnr);
471+ ec->ops->irqdisable(ec, d->irq);
472472 }
473473 }
474474
475475 static struct irq_chip ecard_chip = {
476− .name = "ECARD",
477− .ack = ecard_irq_mask,
478− .mask = ecard_irq_mask,
479− .unmask = ecard_irq_unmask,
476+ .name = "ECARD",
477+ .irq_ack = ecard_irq_mask,
478+ .irq_mask = ecard_irq_mask,
479+ .irq_unmask = ecard_irq_unmask,
480480 };
481481
482482 void ecard_enablefiq(unsigned int fiqnr)
@@ -551,7 +551,7 @@ static void ecard_check_lockup(struct irq_desc *desc) · 68 unmodified lines
551551 printk(KERN_ERR "\nInterrupt lockup detected - "
552552 "disabling all expansion card interrupts\n");
553553
554− desc->chip->mask(IRQ_EXPANSIONCARD);
554+ desc->irq_data.chip->irq_mask(&desc->irq_data);
555555 ecard_dump_irq_state();
556556 }
557557 } else
@@ -574,7 +574,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc) · 16 unmodified lines
574574 ecard_t *ec;
575575 int called = 0;
576576
577− desc->chip->mask(irq);
577+ desc->irq_data.chip->irq_mask(&desc->irq_data);
578578 for (ec = cards; ec; ec = ec->next) {
579579 int pending;
580580
@@ -591,7 +591,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc) · 10 unmodified lines
591591 called ++;
592592 }
593593 }
594− desc->chip->unmask(irq);
594+ desc->irq_data.chip->irq_unmask(&desc->irq_data);
595595
596596 if (called == 0)
597597 ecard_check_lockup(desc);
arch/arm/kernel/entry-armv.S+23−33
@@ -25,42 +25,22 @@ · 24 unmodified lines
2525 #include <asm/tls.h>
2626
2727 #include "entry-header.S"
28+#include <asm/entry-macro-multi.S>
2829
2930 /*
3031 * Interrupt handling. Preserves r7, r8, r9
3132 */
3233 .macro irq_handler
33− get_irqnr_preamble r5, lr
34−1: get_irqnr_and_base r0, r6, r5, lr
35− movne r1, sp
36− @
37− @ routine called with r0 = irq number, r1 = struct pt_regs *
38− @
39− adrne lr, BSYM(1b)
40− bne asm_do_IRQ
41−
42−#ifdef CONFIG_SMP
43− /*
44− * XXX
45− *
46− * this macro assumes that irqstat (r6) and base (r5) are
47− * preserved from get_irqnr_and_base above
48− */
49− ALT_SMP(test_for_ipi r0, r6, r5, lr)
50− ALT_UP_B(9997f)
51− movne r0, sp
52− adrne lr, BSYM(1b)
53− bne do_IPI
54−
55−#ifdef CONFIG_LOCAL_TIMERS
56− test_for_ltirq r0, r6, r5, lr
57− movne r0, sp
58− adrne lr, BSYM(1b)
59− bne do_local_timer
34+#ifdef CONFIG_MULTI_IRQ_HANDLER
35+ ldr r5, =handle_arch_irq
36+ mov r0, sp
37+ ldr r5, [r5]
38+ adr lr, BSYM(9997f)
39+ teq r5, #0
40+ movne pc, r5
6041 #endif
42+ arch_irq_handler_default
6143 9997:
62−#endif
63−
6444 .endm
6545
6646 #ifdef CONFIG_KPROBES
@@ -198,6 +178,7 @@ __dabt_svc: · 131 unmodified lines
198178 @
199179 @ set desired IRQ state, then call main handler
200180 @
181+ debug_entry r1
201182 msr cpsr_c, r9
202183 mov r2, sp
203184 bl do_DataAbort
@@ -324,6 +305,7 @@ __pabt_svc: · 120 unmodified lines
324305 #else
325306 bl CPU_PABORT_HANDLER
326307 #endif
308+ debug_entry r1
327309 msr cpsr_c, r9 @ Maybe enable interrupts
328310 mov r2, sp @ regs
329311 bl do_PrefetchAbort @ call abort handler
@@ -439,6 +421,7 @@ __dabt_usr: · 109 unmodified lines
439421 @
440422 @ IRQs on, then call the main handler
441423 @
424+ debug_entry r1
442425 enable_irq
443426 mov r2, sp
444427 adr lr, BSYM(ret_from_exception)
@@ -703,6 +686,7 @@ __pabt_usr: · 258 unmodified lines
703686 #else
704687 bl CPU_PABORT_HANDLER
705688 #endif
689+ debug_entry r1
706690 enable_irq @ Enable interrupts
707691 mov r2, sp @ regs
708692 bl do_PrefetchAbort @ call abort handler
@@ -735,7 +719,7 @@ ENTRY(__switch_to) · 26 unmodified lines
735719 THUMB( stmia ip!, {r4 - sl, fp} ) @ Store most regs on stack
736720 THUMB( str sp, [ip], #4 )
737721 THUMB( str lr, [ip], #4 )
738−#ifdef CONFIG_MMU
722+#ifdef CONFIG_CPU_USE_DOMAINS
739723 ldr r6, [r2, #TI_CPU_DOMAIN]
740724 #endif
741725 set_tls r3, r4, r5
@@ -744,7 +728,7 @@ ENTRY(__switch_to) · 2 unmodified lines
744728 ldr r8, =__stack_chk_guard
745729 ldr r7, [r7, #TSK_STACK_CANARY]
746730 #endif
747−#ifdef CONFIG_MMU
731+#ifdef CONFIG_CPU_USE_DOMAINS
748732 mcr p15, 0, r6, c3, c0, 0 @ Set domain register
749733 #endif
750734 mov r5, r0
@@ -842,7 +826,7 @@ __kuser_helper_start: · 91 unmodified lines
842826 */
843827
844828 __kuser_memory_barrier: @ 0xffff0fa0
845− smp_dmb
829+ smp_dmb arm
846830 usr_ret lr
847831
848832 .align 5
@@ -959,7 +943,7 @@ kuser_cmpxchg_fixup: · 110 unmodified lines
959943
960944 #else
961945
962− smp_dmb
946+ smp_dmb arm
963947 1: ldrex r3, [r2]
964948 subs r3, r3, r0
965949 strexeq r3, r1, [r2]
@@ -1245,3 +1229,9 @@ cr_alignment: · 279 unmodified lines
12451229 .space 4
12461230 cr_no_alignment:
12471231 .space 4
1232+
1233+#ifdef CONFIG_MULTI_IRQ_HANDLER
1234+ .globl handle_arch_irq
1235+handle_arch_irq:
1236+ .space 4
1237+#endif
arch/arm/kernel/entry-common.S+137−65
@@ -147,98 +147,170 @@ ENDPROC(ret_from_fork) · 146 unmodified lines
147147 #endif
148148 #endif
149149
150−#ifdef CONFIG_DYNAMIC_FTRACE
151−ENTRY(__gnu_mcount_nc)
152− mov ip, lr
153− ldmia sp!, {lr}
154− mov pc, ip
155−ENDPROC(__gnu_mcount_nc)
150+.macro __mcount suffix
151+ mcount_enter
152+ ldr r0, =ftrace_trace_function
153+ ldr r2, [r0]
154+ adr r0, .Lftrace_stub
155+ cmp r0, r2
156+ bne 1f
157+
158+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
159+ ldr r1, =ftrace_graph_return
160+ ldr r2, [r1]
161+ cmp r0, r2
162+ bne ftrace_graph_caller\suffix
163+
164+ ldr r1, =ftrace_graph_entry
165+ ldr r2, [r1]
166+ ldr r0, =ftrace_graph_entry_stub
167+ cmp r0, r2
168+ bne ftrace_graph_caller\suffix
169+#endif
156170
157−ENTRY(ftrace_caller)
158− stmdb sp!, {r0-r3, lr}
159− mov r0, lr
171+ mcount_exit
172+
173+1: mcount_get_lr r1 @ lr of instrumented func
174+ mov r0, lr @ instrumented function
175+ sub r0, r0, #MCOUNT_INSN_SIZE
176+ adr lr, BSYM(2f)
177+ mov pc, r2
178+2: mcount_exit
179+.endm
180+
181+.macro __ftrace_caller suffix
182+ mcount_enter
183+
184+ mcount_get_lr r1 @ lr of instrumented func
185+ mov r0, lr @ instrumented function
160186 sub r0, r0, #MCOUNT_INSN_SIZE
161− ldr r1, [sp, #20]
162187
163− .global ftrace_call
164−ftrace_call:
188+ .globl ftrace_call\suffix
189+ftrace_call\suffix:
165190 bl ftrace_stub
166− ldmia sp!, {r0-r3, ip, lr}
167− mov pc, ip
168−ENDPROC(ftrace_caller)
191+
192+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
193+ .globl ftrace_graph_call\suffix
194+ftrace_graph_call\suffix:
195+ mov r0, r0
196+#endif
197+
198+ mcount_exit
199+.endm
200+
201+.macro __ftrace_graph_caller
202+ sub r0, fp, #4 @ &lr of instrumented routine (&parent)
203+#ifdef CONFIG_DYNAMIC_FTRACE
204+ @ called from __ftrace_caller, saved in mcount_enter
205+ ldr r1, [sp, #16] @ instrumented routine (func)
206+#else
207+ @ called from __mcount, untouched in lr
208+ mov r1, lr @ instrumented routine (func)
209+#endif
210+ sub r1, r1, #MCOUNT_INSN_SIZE
211+ mov r2, fp @ frame pointer
212+ bl prepare_ftrace_return
213+ mcount_exit
214+.endm
169215
170216 #ifdef CONFIG_OLD_MCOUNT
217+/*
218+ * mcount
219+ */
220+
221+.macro mcount_enter
222+ stmdb sp!, {r0-r3, lr}
223+.endm
224+
225+.macro mcount_get_lr reg
226+ ldr \reg, [fp, #-4]
227+.endm
228+
229+.macro mcount_exit
230+ ldr lr, [fp, #-4]
231+ ldmia sp!, {r0-r3, pc}
232+.endm
233+
171234 ENTRY(mcount)
235+#ifdef CONFIG_DYNAMIC_FTRACE
172236 stmdb sp!, {lr}
173237 ldr lr, [fp, #-4]
174238 ldmia sp!, {pc}
239+#else
240+ __mcount _old
241+#endif
175242 ENDPROC(mcount)
176243
244+#ifdef CONFIG_DYNAMIC_FTRACE
177245 ENTRY(ftrace_caller_old)
178− stmdb sp!, {r0-r3, lr}
179− ldr r1, [fp, #-4]
180− mov r0, lr
181− sub r0, r0, #MCOUNT_INSN_SIZE
182−
183− .globl ftrace_call_old
184−ftrace_call_old:
185− bl ftrace_stub
186− ldr lr, [fp, #-4] @ restore lr
187− ldmia sp!, {r0-r3, pc}
246+ __ftrace_caller _old
188247 ENDPROC(ftrace_caller_old)
189248 #endif
190249
191−#else
250+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
251+ENTRY(ftrace_graph_caller_old)
252+ __ftrace_graph_caller
253+ENDPROC(ftrace_graph_caller_old)
254+#endif
192255
193−ENTRY(__gnu_mcount_nc)
256+.purgem mcount_enter
257+.purgem mcount_get_lr
258+.purgem mcount_exit
259+#endif
260+
261+/*
262+ * __gnu_mcount_nc
263+ */
264+
265+.macro mcount_enter
194266 stmdb sp!, {r0-r3, lr}
195− ldr r0, =ftrace_trace_function
196− ldr r2, [r0]
197− adr r0, .Lftrace_stub
198− cmp r0, r2
199− bne gnu_trace
267+.endm
268+
269+.macro mcount_get_lr reg
270+ ldr \reg, [sp, #20]
271+.endm
272+
273+.macro mcount_exit
200274 ldmia sp!, {r0-r3, ip, lr}
201275 mov pc, ip
276+.endm
202277
203−gnu_trace:
204− ldr r1, [sp, #20] @ lr of instrumented routine
205− mov r0, lr
206− sub r0, r0, #MCOUNT_INSN_SIZE
207− adr lr, BSYM(1f)
208− mov pc, r2
209−1:
210− ldmia sp!, {r0-r3, ip, lr}
278+ENTRY(__gnu_mcount_nc)
279+#ifdef CONFIG_DYNAMIC_FTRACE
280+ mov ip, lr
281+ ldmia sp!, {lr}
211282 mov pc, ip
283+#else
284+ __mcount
285+#endif
212286 ENDPROC(__gnu_mcount_nc)
213287
214−#ifdef CONFIG_OLD_MCOUNT
215−/*
216− * This is under an ifdef in order to force link-time errors for people trying
217− * to build with !FRAME_POINTER with a GCC which doesn't use the new-style
218− * mcount.
219− */
220−ENTRY(mcount)
221− stmdb sp!, {r0-r3, lr}
222− ldr r0, =ftrace_trace_function
223− ldr r2, [r0]
224− adr r0, ftrace_stub
225− cmp r0, r2
226− bne trace
227− ldr lr, [fp, #-4] @ restore lr
228− ldmia sp!, {r0-r3, pc}
288+#ifdef CONFIG_DYNAMIC_FTRACE
289+ENTRY(ftrace_caller)
290+ __ftrace_caller
291+ENDPROC(ftrace_caller)
292+#endif
229293
230−trace:
231− ldr r1, [fp, #-4] @ lr of instrumented routine
232− mov r0, lr
233− sub r0, r0, #MCOUNT_INSN_SIZE
234− mov lr, pc
235− mov pc, r2
236− ldr lr, [fp, #-4] @ restore lr
237− ldmia sp!, {r0-r3, pc}
238−ENDPROC(mcount)
294+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
295+ENTRY(ftrace_graph_caller)
296+ __ftrace_graph_caller
297+ENDPROC(ftrace_graph_caller)
239298 #endif
240299
241−#endif /* CONFIG_DYNAMIC_FTRACE */
300+.purgem mcount_enter
301+.purgem mcount_get_lr
302+.purgem mcount_exit
303+
304+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
305+ .globl return_to_handler
306+return_to_handler:
307+ stmdb sp!, {r0-r3}
308+ mov r0, fp @ frame pointer
309+ bl ftrace_return_to_handler
310+ mov lr, r0 @ r0 has real ret addr
311+ ldmia sp!, {r0-r3}
312+ mov pc, lr
313+#endif
242314
243315 ENTRY(ftrace_stub)
244316 .Lftrace_stub:
arch/arm/kernel/entry-header.S+19−0
@@ -165,6 +165,25 @@ · 164 unmodified lines
165165 .endm
166166 #endif /* !CONFIG_THUMB2_KERNEL */
167167
168+ @
169+ @ Debug exceptions are taken as prefetch or data aborts.
170+ @ We must disable preemption during the handler so that
171+ @ we can access the debug registers safely.
172+ @
173+ .macro debug_entry, fsr
174+#if defined(CONFIG_HAVE_HW_BREAKPOINT) && defined(CONFIG_PREEMPT)
175+ ldr r4, =0x40f @ mask out fsr.fs
176+ and r5, r4, \fsr
177+ cmp r5, #2 @ debug exception
178+ bne 1f
179+ get_thread_info r10
180+ ldr r6, [r10, #TI_PREEMPT] @ get preempt count
181+ add r11, r6, #1 @ increment it
182+ str r11, [r10, #TI_PREEMPT]
183+1:
184+#endif
185+ .endm
186+
168187 /*
169188 * These are the registers used in the syscall handler, and allow us to
170189 * have in theory up to 7 arguments to a function - r0 to r6.
arch/arm/kernel/fiq.c+8−2
@@ -45,6 +45,7 @@ · 44 unmodified lines
4545 #include <asm/fiq.h>
4646 #include <asm/irq.h>
4747 #include <asm/system.h>
48+#include <asm/traps.h>
4849
4950 static unsigned long no_fiq_insn;
5051
@@ -67,17 +68,22 @@ static struct fiq_handler default_owner = { · 16 unmodified lines
6768
6869 static struct fiq_handler *current_fiq = &default_owner;
6970
70−int show_fiq_list(struct seq_file *p, void *v)
71+int show_fiq_list(struct seq_file *p, int prec)
7172 {
7273 if (current_fiq != &default_owner)
73− seq_printf(p, "FIQ: %s\n", current_fiq->name);
74+ seq_printf(p, "%*s: %s\n", prec, "FIQ",
75+ current_fiq->name);
7476
7577 return 0;
7678 }
7779
7880 void set_fiq_handler(void *start, unsigned int length)
7981 {
82+#if defined(CONFIG_CPU_USE_DOMAINS)
8083 memcpy((void *)0xffff001c, start, length);
84+#else
85+ memcpy(vectors_page + 0x1c, start, length);
86+#endif
8187 flush_icache_range(0xffff001c, 0xffff001c + length);
8288 if (!vectors_high())
8389 flush_icache_range(0x1c, 0x1c + length);
arch/arm/kernel/ftrace.c+98−5
@@ -24,6 +24,7 @@ · 23 unmodified lines
2424 #define NOP 0xe8bd4000 /* pop {lr} */
2525 #endif
2626
27+#ifdef CONFIG_DYNAMIC_FTRACE
2728 #ifdef CONFIG_OLD_MCOUNT
2829 #define OLD_MCOUNT_ADDR ((unsigned long) mcount)
2930 #define OLD_FTRACE_ADDR ((unsigned long) ftrace_caller_old)
@@ -59,9 +60,9 @@ static unsigned long adjust_address(struct dyn_ftrace *rec, unsigned long addr) · 29 unmodified lines
5960 }
6061 #endif
6162
62−/* construct a branch (BL) instruction to addr */
6363 #ifdef CONFIG_THUMB2_KERNEL
64−static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)
64+static unsigned long ftrace_gen_branch(unsigned long pc, unsigned long addr,
65+ bool link)
6566 {
6667 unsigned long s, j1, j2, i1, i2, imm10, imm11;
6768 unsigned long first, second;
@@ -83,15 +84,22 @@ static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr) · 15 unmodified lines
8384 j2 = (!i2) ^ s;
8485
8586 first = 0xf000 | (s << 10) | imm10;
86− second = 0xd000 | (j1 << 13) | (j2 << 11) | imm11;
87+ second = 0x9000 | (j1 << 13) | (j2 << 11) | imm11;
88+ if (link)
89+ second |= 1 << 14;
8790
8891 return (second << 16) | first;
8992 }
9093 #else
91−static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)
94+static unsigned long ftrace_gen_branch(unsigned long pc, unsigned long addr,
95+ bool link)
9296 {
97+ unsigned long opcode = 0xea000000;
9398 long offset;
9499
100+ if (link)
101+ opcode |= 1 << 24;
102+
95103 offset = (long)addr - (long)(pc + 8);
96104 if (unlikely(offset < -33554432 || offset > 33554428)) {
97105 /* Can't generate branches that far (from ARM ARM). Ftrace
@@ -103,10 +111,15 @@ static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr) · 5 unmodified lines
103111
104112 offset = (offset >> 2) & 0x00ffffff;
105113
106− return 0xeb000000 | offset;
114+ return opcode | offset;
107115 }
108116 #endif
109117
118+static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)
119+{
120+ return ftrace_gen_branch(pc, addr, true);
121+}
122+
110123 static int ftrace_modify_code(unsigned long pc, unsigned long old,
111124 unsigned long new)
112125 {
@@ -193,3 +206,83 @@ int __init ftrace_dyn_arch_init(void *data) · 80 unmodified lines
193206
194207 return 0;
195208 }
209+#endif /* CONFIG_DYNAMIC_FTRACE */
210+
211+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
212+void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr,
213+ unsigned long frame_pointer)
214+{
215+ unsigned long return_hooker = (unsigned long) &return_to_handler;
216+ struct ftrace_graph_ent trace;
217+ unsigned long old;
218+ int err;
219+
220+ if (unlikely(atomic_read(&current->tracing_graph_pause)))
221+ return;
222+
223+ old = *parent;
224+ *parent = return_hooker;
225+
226+ err = ftrace_push_return_trace(old, self_addr, &trace.depth,
227+ frame_pointer);
228+ if (err == -EBUSY) {
229+ *parent = old;
230+ return;
231+ }
232+
233+ trace.func = self_addr;
234+
235+ /* Only trace if the calling function expects to */
236+ if (!ftrace_graph_entry(&trace)) {
237+ current->curr_ret_stack--;
238+ *parent = old;
239+ }
240+}
241+
242+#ifdef CONFIG_DYNAMIC_FTRACE
243+extern unsigned long ftrace_graph_call;
244+extern unsigned long ftrace_graph_call_old;
245+extern void ftrace_graph_caller_old(void);
246+
247+static int __ftrace_modify_caller(unsigned long *callsite,
248+ void (*func) (void), bool enable)
249+{
250+ unsigned long caller_fn = (unsigned long) func;
251+ unsigned long pc = (unsigned long) callsite;
252+ unsigned long branch = ftrace_gen_branch(pc, caller_fn, false);
253+ unsigned long nop = 0xe1a00000; /* mov r0, r0 */
254+ unsigned long old = enable ? nop : branch;
255+ unsigned long new = enable ? branch : nop;
256+
257+ return ftrace_modify_code(pc, old, new);
258+}
259+
260+static int ftrace_modify_graph_caller(bool enable)
261+{
262+ int ret;
263+
264+ ret = __ftrace_modify_caller(&ftrace_graph_call,
265+ ftrace_graph_caller,
266+ enable);
267+
268+#ifdef CONFIG_OLD_MCOUNT
269+ if (!ret)
270+ ret = __ftrace_modify_caller(&ftrace_graph_call_old,
271+ ftrace_graph_caller_old,
272+ enable);
273+#endif
274+
275+ return ret;
276+}
277+
278+int ftrace_enable_ftrace_graph_caller(void)
279+{
280+ return ftrace_modify_graph_caller(true);
281+}
282+
283+int ftrace_disable_ftrace_graph_caller(void)
284+{
285+ return ftrace_modify_graph_caller(false);
286+}
287+#endif /* CONFIG_DYNAMIC_FTRACE */
288+#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
arch/arm/kernel/head-common.S+2−0
@@ -60,6 +60,8 @@ str_a1: .asciz "\nError: unrecognized/unsupported machine ID (r1 = 0x" · 59 unmodified lines
6060 str_a2: .asciz ").\n\nAvailable machine support:\n\nID (hex)\tNAME\n"
6161 str_a3: .asciz "\nPlease check your kernel config and/or bootloader.\n"
6262 .align
63+#else
64+ b __error
6365 #endif
6466
6567 /*
arch/arm/kernel/head.S+45−21
@@ -91,6 +91,11 @@ ENTRY(stext) · 90 unmodified lines
9191 movs r8, r5 @ invalid machine (r5=0)?
9292 THUMB( it eq ) @ force fixup-able long branch encoding
9393 beq __error_a @ yes, error 'a'
94+
95+ /*
96+ * r1 = machine no, r2 = atags,
97+ * r8 = machinfo, r9 = cpuid, r10 = procinfo
98+ */
9499 bl __vet_atags
95100 #ifdef CONFIG_SMP_ON_UP
96101 bl __fixup_smp
@@ -386,37 +391,32 @@ ENDPROC(__turn_mmu_on) · 289 unmodified lines
386391
387392
388393 #ifdef CONFIG_SMP_ON_UP
394+ __INIT
389395 __fixup_smp:
390− mov r7, #0x00070000
391− orr r6, r7, #0xff000000 @ mask 0xff070000
392− orr r7, r7, #0x41000000 @ val 0x41070000
393− and r0, r9, r6
394− teq r0, r7 @ ARM CPU and ARMv6/v7?
396+ and r3, r9, #0x000f0000 @ architecture version
397+ teq r3, #0x000f0000 @ CPU ID supported?
395398 bne __fixup_smp_on_up @ no, assume UP
396399
397− orr r6, r6, #0x0000ff00
398− orr r6, r6, #0x000000f0 @ mask 0xff07fff0
399− orr r7, r7, #0x0000b000
400− orr r7, r7, #0x00000020 @ val 0x4107b020
401− and r0, r9, r6
402− teq r0, r7 @ ARM 11MPCore?
400+ bic r3, r9, #0x00ff0000
401+ bic r3, r3, #0x0000000f @ mask 0xff00fff0
402+ mov r4, #0x41000000
403+ orr r4, r4, #0x0000b000
404+ orr r4, r4, #0x00000020 @ val 0x4100b020
405+ teq r3, r4 @ ARM 11MPCore?
403406 moveq pc, lr @ yes, assume SMP
404407
405408 mrc p15, 0, r0, c0, c0, 5 @ read MPIDR
406− tst r0, #1 << 31
407− movne pc, lr @ bit 31 => SMP
409+ and r0, r0, #0xc0000000 @ multiprocessing extensions and
410+ teq r0, #0x80000000 @ not part of a uniprocessor system?
411+ moveq pc, lr @ yes, assume SMP
408412
409413 __fixup_smp_on_up:
410414 adr r0, 1f
411− ldmia r0, {r3, r6, r7}
415+ ldmia r0, {r3 - r5}
412416 sub r3, r0, r3
413− add r6, r6, r3
414− add r7, r7, r3
415−2: cmp r6, r7
416− ldmia r6!, {r0, r4}
417− strlo r4, [r0, r3]
418− blo 2b
419− mov pc, lr
417+ add r4, r4, r3
418+ add r5, r5, r3
419+ b __do_fixup_smp_on_up
420420 ENDPROC(__fixup_smp)
421421
422422 .align
@@ -430,7 +430,31 @@ smp_on_up: · 7 unmodified lines
430430 ALT_SMP(.long 1)
431431 ALT_UP(.long 0)
432432 .popsection
433+#endif
433434
435+ .text
436+__do_fixup_smp_on_up:
437+ cmp r4, r5
438+ movhs pc, lr
439+ ldmia r4!, {r0, r6}
440+ ARM( str r6, [r0, r3] )
441+ THUMB( add r0, r0, r3 )
442+#ifdef __ARMEB__
443+ THUMB( mov r6, r6, ror #16 ) @ Convert word order for big-endian.
434444 #endif
445+ THUMB( strh r6, [r0], #2 ) @ For Thumb-2, store as two halfwords
446+ THUMB( mov r6, r6, lsr #16 ) @ to be robust against misaligned r3.
447+ THUMB( strh r6, [r0] )
448+ b __do_fixup_smp_on_up
449+ENDPROC(__do_fixup_smp_on_up)
450+
451+ENTRY(fixup_smp)
452+ stmfd sp!, {r4 - r6, lr}
453+ mov r4, r0
454+ add r5, r0, r1
455+ mov r3, #0
456+ bl __do_fixup_smp_on_up
457+ ldmfd sp!, {r4 - r6, pc}
458+ENDPROC(fixup_smp)
435459
436460 #include "head-common.S"
arch/arm/kernel/hw_breakpoint.c+331−228
@@ -24,6 +24,7 @@ · 23 unmodified lines
2424 #define pr_fmt(fmt) "hw-breakpoint: " fmt
2525
2626 #include <linux/errno.h>
27+#include <linux/hardirq.h>
2728 #include <linux/perf_event.h>
2829 #include <linux/hw_breakpoint.h>
2930 #include <linux/smp.h>
@@ -44,6 +45,7 @@ static DEFINE_PER_CPU(struct perf_event *, wp_on_reg[ARM_MAX_WRP]); · 14 unmodified lines
4445
4546 /* Number of BRP/WRP registers on this CPU. */
4647 static int core_num_brps;
48+static int core_num_reserved_brps;
4749 static int core_num_wrps;
4850
4951 /* Debug architecture version. */
@@ -52,87 +54,6 @@ static u8 debug_arch; · 2 unmodified lines
5254 /* Maximum supported watchpoint length. */
5355 static u8 max_watchpoint_len;
5456
55−/* Determine number of BRP registers available. */
56−static int get_num_brps(void)
57−{
58− u32 didr;
59− ARM_DBG_READ(c0, 0, didr);
60− return ((didr >> 24) & 0xf) + 1;
61−}
62−
63−/* Determine number of WRP registers available. */
64−static int get_num_wrps(void)
65−{
66− /*
67− * FIXME: When a watchpoint fires, the only way to work out which
68− * watchpoint it was is by disassembling the faulting instruction
69− * and working out the address of the memory access.
70− *
71− * Furthermore, we can only do this if the watchpoint was precise
72− * since imprecise watchpoints prevent us from calculating register
73− * based addresses.
74− *
75− * For the time being, we only report 1 watchpoint register so we
76− * always know which watchpoint fired. In the future we can either
77− * add a disassembler and address generation emulator, or we can
78− * insert a check to see if the DFAR is set on watchpoint exception
79− * entry [the ARM ARM states that the DFAR is UNKNOWN, but
80− * experience shows that it is set on some implementations].
81− */
82−
83−#if 0
84− u32 didr, wrps;
85− ARM_DBG_READ(c0, 0, didr);
86− return ((didr >> 28) & 0xf) + 1;
87−#endif
88−
89− return 1;
90−}
91−
92−int hw_breakpoint_slots(int type)
93−{
94− /*
95− * We can be called early, so don't rely on
96− * our static variables being initialised.
97− */
98− switch (type) {
99− case TYPE_INST:
100− return get_num_brps();
101− case TYPE_DATA:
102− return get_num_wrps();
103− default:
104− pr_warning("unknown slot type: %d\n", type);
105− return 0;
106− }
107−}
108−
109−/* Determine debug architecture. */
110−static u8 get_debug_arch(void)
111−{
112− u32 didr;
113−
114− /* Do we implement the extended CPUID interface? */
115− if (((read_cpuid_id() >> 16) & 0xf) != 0xf) {
116− pr_warning("CPUID feature registers not supported. "
117− "Assuming v6 debug is present.\n");
118− return ARM_DEBUG_ARCH_V6;
119− }
120−
121− ARM_DBG_READ(c0, 0, didr);
122− return (didr >> 16) & 0xf;
123−}
124−
125−/* Does this core support mismatch breakpoints? */
126−static int core_has_mismatch_bps(void)
127−{
128− return debug_arch >= ARM_DEBUG_ARCH_V7_ECP14 && core_num_brps > 1;
129−}
130−
131−u8 arch_get_debug_arch(void)
132−{
133− return debug_arch;
134−}
135−
13657 #define READ_WB_REG_CASE(OP2, M, VAL) \
13758 case ((OP2 << 4) + M): \
13859 ARM_DBG_READ(c ## M, OP2, VAL); \
@@ -210,6 +131,99 @@ static void write_wb_reg(int n, u32 val) · 71 unmodified lines
210131 isb();
211132 }
212133
134+/* Determine debug architecture. */
135+static u8 get_debug_arch(void)
136+{
137+ u32 didr;
138+
139+ /* Do we implement the extended CPUID interface? */
140+ if (WARN_ONCE((((read_cpuid_id() >> 16) & 0xf) != 0xf),
141+ "CPUID feature registers not supported. "
142+ "Assuming v6 debug is present.\n"))
143+ return ARM_DEBUG_ARCH_V6;
144+
145+ ARM_DBG_READ(c0, 0, didr);
146+ return (didr >> 16) & 0xf;
147+}
148+
149+u8 arch_get_debug_arch(void)
150+{
151+ return debug_arch;
152+}
153+
154+static int debug_arch_supported(void)
155+{
156+ u8 arch = get_debug_arch();
157+ return arch >= ARM_DEBUG_ARCH_V6 && arch <= ARM_DEBUG_ARCH_V7_ECP14;
158+}
159+
160+/* Determine number of BRP register available. */
161+static int get_num_brp_resources(void)
162+{
163+ u32 didr;
164+ ARM_DBG_READ(c0, 0, didr);
165+ return ((didr >> 24) & 0xf) + 1;
166+}
167+
168+/* Does this core support mismatch breakpoints? */
169+static int core_has_mismatch_brps(void)
170+{
171+ return (get_debug_arch() >= ARM_DEBUG_ARCH_V7_ECP14 &&
172+ get_num_brp_resources() > 1);
173+}
174+
175+/* Determine number of usable WRPs available. */
176+static int get_num_wrps(void)
177+{
178+ /*
179+ * FIXME: When a watchpoint fires, the only way to work out which
180+ * watchpoint it was is by disassembling the faulting instruction
181+ * and working out the address of the memory access.
182+ *
183+ * Furthermore, we can only do this if the watchpoint was precise
184+ * since imprecise watchpoints prevent us from calculating register
185+ * based addresses.
186+ *
187+ * Providing we have more than 1 breakpoint register, we only report
188+ * a single watchpoint register for the time being. This way, we always
189+ * know which watchpoint fired. In the future we can either add a
190+ * disassembler and address generation emulator, or we can insert a
191+ * check to see if the DFAR is set on watchpoint exception entry
192+ * [the ARM ARM states that the DFAR is UNKNOWN, but experience shows
193+ * that it is set on some implementations].
194+ */
195+
196+#if 0
197+ int wrps;
198+ u32 didr;
199+ ARM_DBG_READ(c0, 0, didr);
200+ wrps = ((didr >> 28) & 0xf) + 1;
201+#endif
202+ int wrps = 1;
203+
204+ if (core_has_mismatch_brps() && wrps >= get_num_brp_resources())
205+ wrps = get_num_brp_resources() - 1;
206+
207+ return wrps;
208+}
209+
210+/* We reserve one breakpoint for each watchpoint. */
211+static int get_num_reserved_brps(void)
212+{
213+ if (core_has_mismatch_brps())
214+ return get_num_wrps();
215+ return 0;
216+}
217+
218+/* Determine number of usable BRPs available. */
219+static int get_num_brps(void)
220+{
221+ int brps = get_num_brp_resources();
222+ if (core_has_mismatch_brps())
223+ brps -= get_num_reserved_brps();
224+ return brps;
225+}
226+
213227 /*
214228 * In order to access the breakpoint/watchpoint control registers,
215229 * we must be running in debug monitor mode. Unfortunately, we can
@@ -230,8 +244,12 @@ static int enable_monitor_mode(void) · 14 unmodified lines
230244 goto out;
231245 }
232246
247+ /* If monitor mode is already enabled, just return. */
248+ if (dscr & ARM_DSCR_MDBGEN)
249+ goto out;
250+
233251 /* Write to the corresponding DSCR. */
234− switch (debug_arch) {
252+ switch (get_debug_arch()) {
235253 case ARM_DEBUG_ARCH_V6:
236254 case ARM_DEBUG_ARCH_V6_1:
237255 ARM_DBG_WRITE(c1, 0, (dscr | ARM_DSCR_MDBGEN));
@@ -246,15 +264,33 @@ static int enable_monitor_mode(void) · 8 unmodified lines
246264
247265 /* Check that the write made it through. */
248266 ARM_DBG_READ(c1, 0, dscr);
249− if (WARN_ONCE(!(dscr & ARM_DSCR_MDBGEN),
250− "failed to enable monitor mode.")) {
267+ if (!(dscr & ARM_DSCR_MDBGEN))
251268 ret = -EPERM;
252− }
253269
254270 out:
255271 return ret;
256272 }
257273
274+int hw_breakpoint_slots(int type)
275+{
276+ if (!debug_arch_supported())
277+ return 0;
278+
279+ /*
280+ * We can be called early, so don't rely on
281+ * our static variables being initialised.
282+ */
283+ switch (type) {
284+ case TYPE_INST:
285+ return get_num_brps();
286+ case TYPE_DATA:
287+ return get_num_wrps();
288+ default:
289+ pr_warning("unknown slot type: %d\n", type);
290+ return 0;
291+ }
292+}
293+
258294 /*
259295 * Check if 8-bit byte-address select is available.
260296 * This clobbers WRP 0.
@@ -268,9 +304,6 @@ static u8 get_max_wp_len(void) · 7 unmodified lines
268304 if (debug_arch < ARM_DEBUG_ARCH_V7_ECP14)
269305 goto out;
270306
271− if (enable_monitor_mode())
272− goto out;
273−
274307 memset(&ctrl, 0, sizeof(ctrl));
275308 ctrl.len = ARM_BREAKPOINT_LEN_8;
276309 ctrl_reg = encode_ctrl_reg(ctrl);
@@ -289,23 +322,6 @@ u8 arch_get_max_wp_len(void) · 12 unmodified lines
289322 return max_watchpoint_len;
290323 }
291324
292−/*
293− * Handler for reactivating a suspended watchpoint when the single
294− * step `mismatch' breakpoint is triggered.
295− */
296−static void wp_single_step_handler(struct perf_event *bp, int unused,
297− struct perf_sample_data *data,
298− struct pt_regs *regs)
299−{
300− perf_event_enable(counter_arch_bp(bp)->suspended_wp);
301− unregister_hw_breakpoint(bp);
302−}
303−
304−static int bp_is_single_step(struct perf_event *bp)
305−{
306− return bp->overflow_handler == wp_single_step_handler;
307−}
308−
309325 /*
310326 * Install a perf counter breakpoint.
311327 */
@@ -314,30 +330,41 @@ int arch_install_hw_breakpoint(struct perf_event *bp) · 2 unmodified lines
314330 struct arch_hw_breakpoint *info = counter_arch_bp(bp);
315331 struct perf_event **slot, **slots;
316332 int i, max_slots, ctrl_base, val_base, ret = 0;
333+ u32 addr, ctrl;
317334
318335 /* Ensure that we are in monitor mode and halting mode is disabled. */
319336 ret = enable_monitor_mode();
320337 if (ret)
321338 goto out;
322339
340+ addr = info->address;
341+ ctrl = encode_ctrl_reg(info->ctrl) | 0x1;
342+
323343 if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE) {
324344 /* Breakpoint */
325345 ctrl_base = ARM_BASE_BCR;
326346 val_base = ARM_BASE_BVR;
327− slots = __get_cpu_var(bp_on_reg);
328− max_slots = core_num_brps - 1;
329−
330− if (bp_is_single_step(bp)) {
331− info->ctrl.mismatch = 1;
332− i = max_slots;
333− slots[i] = bp;
334− goto setup;
347+ slots = (struct perf_event **)__get_cpu_var(bp_on_reg);
348+ max_slots = core_num_brps;
349+ if (info->step_ctrl.enabled) {
350+ /* Override the breakpoint data with the step data. */
351+ addr = info->trigger & ~0x3;
352+ ctrl = encode_ctrl_reg(info->step_ctrl);
335353 }
336354 } else {
337355 /* Watchpoint */
338− ctrl_base = ARM_BASE_WCR;
339− val_base = ARM_BASE_WVR;
340− slots = __get_cpu_var(wp_on_reg);
356+ if (info->step_ctrl.enabled) {
357+ /* Install into the reserved breakpoint region. */
358+ ctrl_base = ARM_BASE_BCR + core_num_brps;
359+ val_base = ARM_BASE_BVR + core_num_brps;
360+ /* Override the watchpoint data with the step data. */
361+ addr = info->trigger & ~0x3;
362+ ctrl = encode_ctrl_reg(info->step_ctrl);
363+ } else {
364+ ctrl_base = ARM_BASE_WCR;
365+ val_base = ARM_BASE_WVR;
366+ }
367+ slots = (struct perf_event **)__get_cpu_var(wp_on_reg);
341368 max_slots = core_num_wrps;
342369 }
343370
@@ -355,12 +382,11 @@ int arch_install_hw_breakpoint(struct perf_event *bp) · 11 unmodified lines
355382 goto out;
356383 }
357384
358−setup:
359385 /* Setup the address register. */
360− write_wb_reg(val_base + i, info->address);
386+ write_wb_reg(val_base + i, addr);
361387
362388 /* Setup the control register. */
363− write_wb_reg(ctrl_base + i, encode_ctrl_reg(info->ctrl) | 0x1);
389+ write_wb_reg(ctrl_base + i, ctrl);
364390
365391 out:
366392 return ret;
@@ -375,18 +401,15 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp) · 8 unmodified lines
375401 if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE) {
376402 /* Breakpoint */
377403 base = ARM_BASE_BCR;
378− slots = __get_cpu_var(bp_on_reg);
379− max_slots = core_num_brps - 1;
380−
381− if (bp_is_single_step(bp)) {
382− i = max_slots;
383− slots[i] = NULL;
384− goto reset;
385− }
404+ slots = (struct perf_event **)__get_cpu_var(bp_on_reg);
405+ max_slots = core_num_brps;
386406 } else {
387407 /* Watchpoint */
388− base = ARM_BASE_WCR;
389− slots = __get_cpu_var(wp_on_reg);
408+ if (info->step_ctrl.enabled)
409+ base = ARM_BASE_BCR + core_num_brps;
410+ else
411+ base = ARM_BASE_WCR;
412+ slots = (struct perf_event **)__get_cpu_var(wp_on_reg);
390413 max_slots = core_num_wrps;
391414 }
392415
@@ -403,7 +426,6 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp) · 10 unmodified lines
403426 if (WARN_ONCE(i == max_slots, "Can't find any breakpoint slot"))
404427 return;
405428
406−reset:
407429 /* Reset the control register. */
408430 write_wb_reg(base + i, 0);
409431 }
@@ -537,12 +559,23 @@ static int arch_build_bp_info(struct perf_event *bp) · 127 unmodified lines
537559 return -EINVAL;
538560 }
539561
562+ /*
563+ * Breakpoints must be of length 2 (thumb) or 4 (ARM) bytes.
564+ * Watchpoints can be of length 1, 2, 4 or 8 bytes if supported
565+ * by the hardware and must be aligned to the appropriate number of
566+ * bytes.
567+ */
568+ if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE &&
569+ info->ctrl.len != ARM_BREAKPOINT_LEN_2 &&
570+ info->ctrl.len != ARM_BREAKPOINT_LEN_4)
571+ return -EINVAL;
572+
540573 /* Address */
541574 info->address = bp->attr.bp_addr;
542575
543576 /* Privilege */
544577 info->ctrl.privilege = ARM_BREAKPOINT_USER;
545− if (arch_check_bp_in_kernelspace(bp) && !bp_is_single_step(bp))
578+ if (arch_check_bp_in_kernelspace(bp))
546579 info->ctrl.privilege |= ARM_BREAKPOINT_PRIV;
547580
548581 /* Enabled? */
@@ -561,7 +594,7 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp) · 12 unmodified lines
561594 {
562595 struct arch_hw_breakpoint *info = counter_arch_bp(bp);
563596 int ret = 0;
564− u32 bytelen, max_len, offset, alignment_mask = 0x3;
597+ u32 offset, alignment_mask = 0x3;
565598
566599 /* Build the arch_hw_breakpoint. */
567600 ret = arch_build_bp_info(bp);
@@ -571,84 +604,85 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp) · 3 unmodified lines
571604 /* Check address alignment. */
572605 if (info->ctrl.len == ARM_BREAKPOINT_LEN_8)
573606 alignment_mask = 0x7;
574− if (info->address & alignment_mask) {
575− /*
576− * Try to fix the alignment. This may result in a length
577− * that is too large, so we must check for that.
578− */
579− bytelen = get_hbp_len(info->ctrl.len);
580− max_len = info->ctrl.type == ARM_BREAKPOINT_EXECUTE ? 4 :
581− max_watchpoint_len;
582−
583− if (max_len >= 8)
584− offset = info->address & 0x7;
585− else
586− offset = info->address & 0x3;
587−
588− if (bytelen > (1 << ((max_len - (offset + 1)) >> 1))) {
589− ret = -EFBIG;
590− goto out;
591− }
592−
593− info->ctrl.len <<= offset;
594− info->address &= ~offset;
595−
596− pr_debug("breakpoint alignment fixup: length = 0x%x, "
597− "address = 0x%x\n", info->ctrl.len, info->address);
607+ offset = info->address & alignment_mask;
608+ switch (offset) {
609+ case 0:
610+ /* Aligned */
611+ break;
612+ case 1:
613+ /* Allow single byte watchpoint. */
614+ if (info->ctrl.len == ARM_BREAKPOINT_LEN_1)
615+ break;
616+ case 2:
617+ /* Allow halfword watchpoints and breakpoints. */
618+ if (info->ctrl.len == ARM_BREAKPOINT_LEN_2)
619+ break;
620+ default:
621+ ret = -EINVAL;
622+ goto out;
598623 }
599624
625+ info->address &= ~alignment_mask;
626+ info->ctrl.len <<= offset;
627+
600628 /*
601629 * Currently we rely on an overflow handler to take
602630 * care of single-stepping the breakpoint when it fires.
603631 * In the case of userspace breakpoints on a core with V7 debug,
604− * we can use the mismatch feature as a poor-man's hardware single-step.
632+ * we can use the mismatch feature as a poor-man's hardware
633+ * single-step, but this only works for per-task breakpoints.
605634 */
606635 if (WARN_ONCE(!bp->overflow_handler &&
607− (arch_check_bp_in_kernelspace(bp) || !core_has_mismatch_bps()),
636+ (arch_check_bp_in_kernelspace(bp) || !core_has_mismatch_brps()
637+ || !bp->hw.bp_target),
608638 "overflow handler required but none found")) {
609639 ret = -EINVAL;
610− goto out;
611640 }
612641 out:
613642 return ret;
614643 }
615644
616−static void update_mismatch_flag(int idx, int flag)
645+/*
646+ * Enable/disable single-stepping over the breakpoint bp at address addr.
647+ */
648+static void enable_single_step(struct perf_event *bp, u32 addr)
617649 {
618− struct perf_event *bp = __get_cpu_var(bp_on_reg[idx]);
619− struct arch_hw_breakpoint *info;
620−
621− if (bp == NULL)
622− return;
650+ struct arch_hw_breakpoint *info = counter_arch_bp(bp);
623651
624− info = counter_arch_bp(bp);
652+ arch_uninstall_hw_breakpoint(bp);
653+ info->step_ctrl.mismatch = 1;
654+ info->step_ctrl.len = ARM_BREAKPOINT_LEN_4;
655+ info->step_ctrl.type = ARM_BREAKPOINT_EXECUTE;
656+ info->step_ctrl.privilege = info->ctrl.privilege;
657+ info->step_ctrl.enabled = 1;
658+ info->trigger = addr;
659+ arch_install_hw_breakpoint(bp);
660+}
625661
626− /* Update the mismatch field to enter/exit `single-step' mode */
627− if (!bp->overflow_handler && info->ctrl.mismatch != flag) {
628− info->ctrl.mismatch = flag;
629− write_wb_reg(ARM_BASE_BCR + idx, encode_ctrl_reg(info->ctrl) | 0x1);
630− }
662+static void disable_single_step(struct perf_event *bp)
663+{
664+ arch_uninstall_hw_breakpoint(bp);
665+ counter_arch_bp(bp)->step_ctrl.enabled = 0;
666+ arch_install_hw_breakpoint(bp);
631667 }
632668
633669 static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs)
634670 {
635671 int i;
636− struct perf_event *bp, **slots = __get_cpu_var(wp_on_reg);
672+ struct perf_event *wp, **slots;
637673 struct arch_hw_breakpoint *info;
638− struct perf_event_attr attr;
674+
675+ slots = (struct perf_event **)__get_cpu_var(wp_on_reg);
639676
640677 /* Without a disassembler, we can only handle 1 watchpoint. */
641678 BUG_ON(core_num_wrps > 1);
642679
643− hw_breakpoint_init(&attr);
644− attr.bp_addr = regs->ARM_pc & ~0x3;
645− attr.bp_len = HW_BREAKPOINT_LEN_4;
646− attr.bp_type = HW_BREAKPOINT_X;
647−
648680 for (i = 0; i < core_num_wrps; ++i) {
649681 rcu_read_lock();
650682
651− if (slots[i] == NULL) {
683+ wp = slots[i];
684+
685+ if (wp == NULL) {
652686 rcu_read_unlock();
653687 continue;
654688 }
@@ -658,24 +692,51 @@ static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs) · 3 unmodified lines
658692 * single watchpoint, we can set the trigger to the lowest
659693 * possible faulting address.
660694 */
661− info = counter_arch_bp(slots[i]);
662− info->trigger = slots[i]->attr.bp_addr;
695+ info = counter_arch_bp(wp);
696+ info->trigger = wp->attr.bp_addr;
663697 pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
664− perf_bp_event(slots[i], regs);
698+ perf_bp_event(wp, regs);
665699
666700 /*
667701 * If no overflow handler is present, insert a temporary
668702 * mismatch breakpoint so we can single-step over the
669703 * watchpoint trigger.
670704 */
671− if (!slots[i]->overflow_handler) {
672− bp = register_user_hw_breakpoint(&attr,
673− wp_single_step_handler,
674− current);
675− counter_arch_bp(bp)->suspended_wp = slots[i];
676− perf_event_disable(slots[i]);
677− }
705+ if (!wp->overflow_handler)
706+ enable_single_step(wp, instruction_pointer(regs));
707+
708+ rcu_read_unlock();
709+ }
710+}
711+
712+static void watchpoint_single_step_handler(unsigned long pc)
713+{
714+ int i;
715+ struct perf_event *wp, **slots;
716+ struct arch_hw_breakpoint *info;
717+
718+ slots = (struct perf_event **)__get_cpu_var(wp_on_reg);
719+
720+ for (i = 0; i < core_num_reserved_brps; ++i) {
721+ rcu_read_lock();
722+
723+ wp = slots[i];
724+
725+ if (wp == NULL)
726+ goto unlock;
727+
728+ info = counter_arch_bp(wp);
729+ if (!info->step_ctrl.enabled)
730+ goto unlock;
731+
732+ /*
733+ * Restore the original watchpoint if we've completed the
734+ * single-step.
735+ */
736+ if (info->trigger != pc)
737+ disable_single_step(wp);
678738
739+unlock:
679740 rcu_read_unlock();
680741 }
681742 }
@@ -683,62 +744,69 @@ static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs) · 1 unmodified line
683744 static void breakpoint_handler(unsigned long unknown, struct pt_regs *regs)
684745 {
685746 int i;
686− int mismatch;
687747 u32 ctrl_reg, val, addr;
688− struct perf_event *bp, **slots = __get_cpu_var(bp_on_reg);
748+ struct perf_event *bp, **slots;
689749 struct arch_hw_breakpoint *info;
690750 struct arch_hw_breakpoint_ctrl ctrl;
691751
752+ slots = (struct perf_event **)__get_cpu_var(bp_on_reg);
753+
692754 /* The exception entry code places the amended lr in the PC. */
693755 addr = regs->ARM_pc;
694756
757+ /* Check the currently installed breakpoints first. */
695758 for (i = 0; i < core_num_brps; ++i) {
696759 rcu_read_lock();
697760
698761 bp = slots[i];
699762
700− if (bp == NULL) {
701− rcu_read_unlock();
702− continue;
703− }
763+ if (bp == NULL)
764+ goto unlock;
704765
705− mismatch = 0;
766+ info = counter_arch_bp(bp);
706767
707768 /* Check if the breakpoint value matches. */
708769 val = read_wb_reg(ARM_BASE_BVR + i);
709770 if (val != (addr & ~0x3))
710− goto unlock;
771+ goto mismatch;
711772
712773 /* Possible match, check the byte address select to confirm. */
713774 ctrl_reg = read_wb_reg(ARM_BASE_BCR + i);
714775 decode_ctrl_reg(ctrl_reg, &ctrl);
715776 if ((1 << (addr & 0x3)) & ctrl.len) {
716− mismatch = 1;
717− info = counter_arch_bp(bp);
718777 info->trigger = addr;
719− }
720−
721−unlock:
722− if ((mismatch && !info->ctrl.mismatch) || bp_is_single_step(bp)) {
723778 pr_debug("breakpoint fired: address = 0x%x\n", addr);
724779 perf_bp_event(bp, regs);
780+ if (!bp->overflow_handler)
781+ enable_single_step(bp, addr);
782+ goto unlock;
725783 }
726784
727− update_mismatch_flag(i, mismatch);
785+mismatch:
786+ /* If we're stepping a breakpoint, it can now be restored. */
787+ if (info->step_ctrl.enabled)
788+ disable_single_step(bp);
789+unlock:
728790 rcu_read_unlock();
729791 }
792+
793+ /* Handle any pending watchpoint single-step breakpoints. */
794+ watchpoint_single_step_handler(addr);
730795 }
731796
732797 /*
733798 * Called from either the Data Abort Handler [watchpoint] or the
734− * Prefetch Abort Handler [breakpoint].
799+ * Prefetch Abort Handler [breakpoint] with preemption disabled.
735800 */
736801 static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr,
737802 struct pt_regs *regs)
738803 {
739− int ret = 1; /* Unhandled fault. */
804+ int ret = 0;
740805 u32 dscr;
741806
807+ /* We must be called with preemption disabled. */
808+ WARN_ON(preemptible());
809+
742810 /* We only handle watchpoints and hardware breakpoints. */
743811 ARM_DBG_READ(c1, 0, dscr);
744812
@@ -753,25 +821,47 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr, · 8 unmodified lines
753821 watchpoint_handler(addr, regs);
754822 break;
755823 default:
756− goto out;
824+ ret = 1; /* Unhandled fault. */
757825 }
758826
759− ret = 0;
760−out:
827+ /*
828+ * Re-enable preemption after it was disabled in the
829+ * low-level exception handling code.
830+ */
831+ preempt_enable();
832+
761833 return ret;
762834 }
763835
764836 /*
765837 * One-time initialisation.
766838 */
767−static void __init reset_ctrl_regs(void *unused)
839+static void reset_ctrl_regs(void *unused)
768840 {
769841 int i;
770842
843+ /*
844+ * v7 debug contains save and restore registers so that debug state
845+ * can be maintained across low-power modes without leaving the debug
846+ * logic powered up. It is IMPLEMENTATION DEFINED whether we can access
847+ * the debug registers out of reset, so we must unlock the OS Lock
848+ * Access Register to avoid taking undefined instruction exceptions
849+ * later on.
850+ */
851+ if (debug_arch >= ARM_DEBUG_ARCH_V7_ECP14) {
852+ /*
853+ * Unconditionally clear the lock by writing a value
854+ * other than 0xC5ACCE55 to the access register.
855+ */
856+ asm volatile("mcr p14, 0, %0, c1, c0, 4" : : "r" (0));
857+ isb();
858+ }
859+
771860 if (enable_monitor_mode())
772861 return;
773862
774− for (i = 0; i < core_num_brps; ++i) {
863+ /* We must also reset any reserved registers. */
864+ for (i = 0; i < core_num_brps + core_num_reserved_brps; ++i) {
775865 write_wb_reg(ARM_BASE_BCR + i, 0UL);
776866 write_wb_reg(ARM_BASE_BVR + i, 0UL);
777867 }
@@ -782,45 +872,57 @@ static void __init reset_ctrl_regs(void *unused) · 4 unmodified lines
782872 }
783873 }
784874
875+static int __cpuinit dbg_reset_notify(struct notifier_block *self,
876+ unsigned long action, void *cpu)
877+{
878+ if (action == CPU_ONLINE)
879+ smp_call_function_single((int)cpu, reset_ctrl_regs, NULL, 1);
880+ return NOTIFY_OK;
881+}
882+
883+static struct notifier_block __cpuinitdata dbg_reset_nb = {
884+ .notifier_call = dbg_reset_notify,
885+};
886+
785887 static int __init arch_hw_breakpoint_init(void)
786888 {
787− int ret = 0;
788889 u32 dscr;
789890
790891 debug_arch = get_debug_arch();
791892
792− if (debug_arch > ARM_DEBUG_ARCH_V7_ECP14) {
893+ if (!debug_arch_supported()) {
793894 pr_info("debug architecture 0x%x unsupported.\n", debug_arch);
794− ret = -ENODEV;
795− goto out;
895+ return 0;
796896 }
797897
798898 /* Determine how many BRPs/WRPs are available. */
799899 core_num_brps = get_num_brps();
900+ core_num_reserved_brps = get_num_reserved_brps();
800901 core_num_wrps = get_num_wrps();
801902
802903 pr_info("found %d breakpoint and %d watchpoint registers.\n",
803− core_num_brps, core_num_wrps);
904+ core_num_brps + core_num_reserved_brps, core_num_wrps);
905+
906+ if (core_num_reserved_brps)
907+ pr_info("%d breakpoint(s) reserved for watchpoint "
908+ "single-step.\n", core_num_reserved_brps);
804909
805− if (core_has_mismatch_bps())
806− pr_info("1 breakpoint reserved for watchpoint single-step.\n");
910+ /*
911+ * Reset the breakpoint resources. We assume that a halting
912+ * debugger will leave the world in a nice state for us.
913+ */
914+ on_each_cpu(reset_ctrl_regs, NULL, 1);
807915
808916 ARM_DBG_READ(c1, 0, dscr);
809917 if (dscr & ARM_DSCR_HDBGEN) {
918+ max_watchpoint_len = 4;
810919 pr_warning("halting debug mode enabled. Assuming maximum "
811− "watchpoint size of 4 bytes.");
920+ "watchpoint size of %u bytes.", max_watchpoint_len);
812921 } else {
813922 /* Work out the maximum supported watchpoint length. */
814923 max_watchpoint_len = get_max_wp_len();
815924 pr_info("maximum watchpoint size is %u bytes.\n",
816925 max_watchpoint_len);
817−
818− /*
819− * Reset the breakpoint resources. We assume that a halting
820− * debugger will leave the world in a nice state for us.
821− */
822− smp_call_function(reset_ctrl_regs, NULL, 1);
823− reset_ctrl_regs(NULL);
824926 }
825927
826928 /* Register debug fault handler. */
@@ -829,8 +931,9 @@ static int __init arch_hw_breakpoint_init(void) · 2 unmodified lines
829931 hook_ifault_code(2, hw_breakpoint_pending, SIGTRAP, TRAP_HWBKPT,
830932 "breakpoint debug exception");
831933
832−out:
833− return ret;
934+ /* Register hotplug notifier. */
935+ register_cpu_notifier(&dbg_reset_nb);
936+ return 0;
834937 }
835938 arch_initcall(arch_hw_breakpoint_init);
836939
arch/arm/kernel/irq.c+33−18
@@ -35,8 +35,10 @@ · 34 unmodified lines
3535 #include <linux/list.h>
3636 #include <linux/kallsyms.h>
3737 #include <linux/proc_fs.h>
38+#include <linux/ftrace.h>
3839
3940 #include <asm/system.h>
41+#include <asm/mach/arch.h>
4042 #include <asm/mach/irq.h>
4143 #include <asm/mach/time.h>
4244
@@ -47,8 +49,6 @@ · 4 unmodified lines
4749 #define irq_finish(irq) do { } while (0)
4850 #endif
4951
50−unsigned int arch_nr_irqs;
51−void (*init_arch_irq)(void) __initdata = NULL;
5252 unsigned long irq_err_count;
5353
5454 int show_interrupts(struct seq_file *p, void *v)
@@ -57,11 +57,20 @@ int show_interrupts(struct seq_file *p, void *v) · 2 unmodified lines
5757 struct irq_desc *desc;
5858 struct irqaction * action;
5959 unsigned long flags;
60+ int prec, n;
61+
62+ for (prec = 3, n = 1000; prec < 10 && n <= nr_irqs; prec++)
63+ n *= 10;
64+
65+#ifdef CONFIG_SMP
66+ if (prec < 4)
67+ prec = 4;
68+#endif
6069
6170 if (i == 0) {
6271 char cpuname[12];
6372
64− seq_printf(p, " ");
73+ seq_printf(p, "%*s ", prec, "");
6574 for_each_present_cpu(cpu) {
6675 sprintf(cpuname, "CPU%d", cpu);
6776 seq_printf(p, " %10s", cpuname);
@@ -76,10 +85,10 @@ int show_interrupts(struct seq_file *p, void *v) · 8 unmodified lines
7685 if (!action)
7786 goto unlock;
7887
79− seq_printf(p, "%3d: ", i);
88+ seq_printf(p, "%*d: ", prec, i);
8089 for_each_present_cpu(cpu)
8190 seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu));
82− seq_printf(p, " %10s", desc->chip->name ? : "-");
91+ seq_printf(p, " %10s", desc->irq_data.chip->name ? : "-");
8392 seq_printf(p, " %s", action->name);
8493 for (action = action->next; action; action = action->next)
8594 seq_printf(p, ", %s", action->name);
@@ -89,13 +98,15 @@ unlock: · 3 unmodified lines
8998 raw_spin_unlock_irqrestore(&desc->lock, flags);
9099 } else if (i == nr_irqs) {
91100 #ifdef CONFIG_FIQ
92− show_fiq_list(p, v);
101+ show_fiq_list(p, prec);
93102 #endif
94103 #ifdef CONFIG_SMP
95− show_ipi_list(p);
96− show_local_irqs(p);
104+ show_ipi_list(p, prec);
105+#endif
106+#ifdef CONFIG_LOCAL_TIMERS
107+ show_local_irqs(p, prec);
97108 #endif
98− seq_printf(p, "Err: %10lu\n", irq_err_count);
109+ seq_printf(p, "%*s: %10lu\n", prec, "Err", irq_err_count);
99110 }
100111 return 0;
101112 }
@@ -105,7 +116,8 @@ unlock: · 3 unmodified lines
105116 * come via this function. Instead, they should provide their
106117 * own 'handler'
107118 */
108−asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
119+asmlinkage void __exception_irq_entry
120+asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
109121 {
110122 struct pt_regs *old_regs = set_irq_regs(regs);
111123
@@ -154,13 +166,13 @@ void set_irq_flags(unsigned int irq, unsigned int iflags) · 42 unmodified lines
154166
155167 void __init init_IRQ(void)
156168 {
157− init_arch_irq();
169+ machine_desc->init_irq();
158170 }
159171
160172 #ifdef CONFIG_SPARSE_IRQ
161173 int __init arch_probe_nr_irqs(void)
162174 {
163− nr_irqs = arch_nr_irqs ? arch_nr_irqs : NR_IRQS;
175+ nr_irqs = machine_desc->nr_irqs ? machine_desc->nr_irqs : NR_IRQS;
164176 return nr_irqs;
165177 }
166178 #endif
@@ -169,10 +181,11 @@ int __init arch_probe_nr_irqs(void) · 2 unmodified lines
169181
170182 static void route_irq(struct irq_desc *desc, unsigned int irq, unsigned int cpu)
171183 {
172− pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->node, cpu);
184+ pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->irq_data.node, cpu);
173185
174186 raw_spin_lock_irq(&desc->lock);
175− desc->chip->set_affinity(irq, cpumask_of(cpu));
187+ desc->irq_data.chip->irq_set_affinity(&desc->irq_data,
188+ cpumask_of(cpu), false);
176189 raw_spin_unlock_irq(&desc->lock);
177190 }
178191
@@ -187,16 +200,18 @@ void migrate_irqs(void) · 8 unmodified lines
187200 struct irq_desc *desc;
188201
189202 for_each_irq_desc(i, desc) {
190− if (desc->node == cpu) {
191− unsigned int newcpu = cpumask_any_and(desc->affinity,
203+ struct irq_data *d = &desc->irq_data;
204+
205+ if (d->node == cpu) {
206+ unsigned int newcpu = cpumask_any_and(d->affinity,
192207 cpu_online_mask);
193208 if (newcpu >= nr_cpu_ids) {
194209 if (printk_ratelimit())
195210 printk(KERN_INFO "IRQ%u no longer affine to CPU%u\n",
196211 i, cpu);
197212
198− cpumask_setall(desc->affinity);
199− newcpu = cpumask_any_and(desc->affinity,
213+ cpumask_setall(d->affinity);
214+ newcpu = cpumask_any_and(d->affinity,
200215 cpu_online_mask);
201216 }
202217
arch/arm/kernel/iwmmxt.S+42−13
@@ -19,6 +19,14 @@ · 18 unmodified lines
1919 #include <asm/thread_info.h>
2020 #include <asm/asm-offsets.h>
2121
22+#if defined(CONFIG_CPU_PJ4)
23+#define PJ4(code...) code
24+#define XSC(code...)
25+#else
26+#define PJ4(code...)
27+#define XSC(code...) code
28+#endif
29+
2230 #define MMX_WR0 (0x00)
2331 #define MMX_WR1 (0x08)
2432 #define MMX_WR2 (0x10)
@@ -58,11 +66,17 @@ · 33 unmodified lines
5866
5967 ENTRY(iwmmxt_task_enable)
6068
61− mrc p15, 0, r2, c15, c1, 0
62− tst r2, #0x3 @ CP0 and CP1 accessible?
69+ XSC(mrc p15, 0, r2, c15, c1, 0)
70+ PJ4(mrc p15, 0, r2, c1, c0, 2)
71+ @ CP0 and CP1 accessible?
72+ XSC(tst r2, #0x3)
73+ PJ4(tst r2, #0xf)
6374 movne pc, lr @ if so no business here
64− orr r2, r2, #0x3 @ enable access to CP0 and CP1
65− mcr p15, 0, r2, c15, c1, 0
75+ @ enable access to CP0 and CP1
76+ XSC(orr r2, r2, #0x3)
77+ XSC(mcr p15, 0, r2, c15, c1, 0)
78+ PJ4(orr r2, r2, #0xf)
79+ PJ4(mcr p15, 0, r2, c1, c0, 2)
6680
6781 ldr r3, =concan_owner
6882 add r0, r10, #TI_IWMMXT_STATE @ get task Concan save area
@@ -179,17 +193,26 @@ ENTRY(iwmmxt_task_disable) · 110 unmodified lines
179193 teqne r1, r2 @ or specified one?
180194 bne 1f @ no: quit
181195
182− mrc p15, 0, r4, c15, c1, 0
183− orr r4, r4, #0x3 @ enable access to CP0 and CP1
184− mcr p15, 0, r4, c15, c1, 0
196+ @ enable access to CP0 and CP1
197+ XSC(mrc p15, 0, r4, c15, c1, 0)
198+ XSC(orr r4, r4, #0xf)
199+ XSC(mcr p15, 0, r4, c15, c1, 0)
200+ PJ4(mrc p15, 0, r4, c1, c0, 2)
201+ PJ4(orr r4, r4, #0x3)
202+ PJ4(mcr p15, 0, r4, c1, c0, 2)
203+
185204 mov r0, #0 @ nothing to load
186205 str r0, [r3] @ no more current owner
187206 mrc p15, 0, r2, c2, c0, 0
188207 mov r2, r2 @ cpwait
189208 bl concan_save
190209
191− bic r4, r4, #0x3 @ disable access to CP0 and CP1
192− mcr p15, 0, r4, c15, c1, 0
210+ @ disable access to CP0 and CP1
211+ XSC(bic r4, r4, #0x3)
212+ XSC(mcr p15, 0, r4, c15, c1, 0)
213+ PJ4(bic r4, r4, #0xf)
214+ PJ4(mcr p15, 0, r4, c1, c0, 2)
215+
193216 mrc p15, 0, r2, c2, c0, 0
194217 mov r2, r2 @ cpwait
195218
@@ -277,8 +300,11 @@ ENTRY(iwmmxt_task_restore) · 81 unmodified lines
277300 */
278301 ENTRY(iwmmxt_task_switch)
279302
280− mrc p15, 0, r1, c15, c1, 0
281− tst r1, #0x3 @ CP0 and CP1 accessible?
303+ XSC(mrc p15, 0, r1, c15, c1, 0)
304+ PJ4(mrc p15, 0, r1, c1, c0, 2)
305+ @ CP0 and CP1 accessible?
306+ XSC(tst r1, #0x3)
307+ PJ4(tst r1, #0xf)
282308 bne 1f @ yes: block them for next task
283309
284310 ldr r2, =concan_owner
@@ -287,8 +313,11 @@ ENTRY(iwmmxt_task_switch) · 2 unmodified lines
287313 teq r2, r3 @ next task owns it?
288314 movne pc, lr @ no: leave Concan disabled
289315
290−1: eor r1, r1, #3 @ flip Concan access
291− mcr p15, 0, r1, c15, c1, 0
316+1: @ flip Conan access
317+ XSC(eor r1, r1, #0x3)
318+ XSC(mcr p15, 0, r1, c15, c1, 0)
319+ PJ4(eor r1, r1, #0xf)
320+ PJ4(mcr p15, 0, r1, c1, c0, 2)
292321
293322 mrc p15, 0, r1, c2, c0, 0
294323 sub pc, lr, r1, lsr #32 @ cpwait and return
arch/arm/kernel/kprobes-decode.c+1−1
@@ -1437,7 +1437,7 @@ arm_kprobe_decode_insn(kprobe_opcode_t insn, struct arch_specific_insn *asi) · 1436 unmodified lines
14371437
14381438 return space_cccc_1100_010x(insn, asi);
14391439
1440− } else if ((insn & 0x0e000000) == 0x0c400000) {
1440+ } else if ((insn & 0x0e000000) == 0x0c000000) {
14411441
14421442 return space_cccc_110x(insn, asi);
14431443
arch/arm/kernel/machine_kexec.c+30−0
@@ -23,6 +23,8 @@ extern unsigned long kexec_indirection_page; · 22 unmodified lines
2323 extern unsigned long kexec_mach_type;
2424 extern unsigned long kexec_boot_atags;
2525
26+static atomic_t waiting_for_crash_ipi;
27+
2628 /*
2729 * Provide a dummy crash_notes definition while crash dump arrives to arm.
2830 * This prevents breakage of crash_notes attribute in kernel/ksysfs.c.
@@ -37,9 +39,37 @@ void machine_kexec_cleanup(struct kimage *image) · 8 unmodified lines
3739 {
3840 }
3941
42+void machine_crash_nonpanic_core(void *unused)
43+{
44+ struct pt_regs regs;
45+
46+ crash_setup_regs(&regs, NULL);
47+ printk(KERN_DEBUG "CPU %u will stop doing anything useful since another CPU has crashed\n",
48+ smp_processor_id());
49+ crash_save_cpu(&regs, smp_processor_id());
50+ flush_cache_all();
51+
52+ atomic_dec(&waiting_for_crash_ipi);
53+ while (1)
54+ cpu_relax();
55+}
56+
4057 void machine_crash_shutdown(struct pt_regs *regs)
4158 {
59+ unsigned long msecs;
60+
4261 local_irq_disable();
62+
63+ atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1);
64+ smp_call_function(machine_crash_nonpanic_core, NULL, false);
65+ msecs = 1000; /* Wait at most a second for the other cpus to stop */
66+ while ((atomic_read(&waiting_for_crash_ipi) > 0) && msecs) {
67+ mdelay(1);
68+ msecs--;
69+ }
70+ if (atomic_read(&waiting_for_crash_ipi) > 0)
71+ printk(KERN_WARNING "Non-crashing CPUs did not react to IPI\n");
72+
4373 crash_save_cpu(regs, smp_processor_id());
4474
4575 printk(KERN_INFO "Loading crashdump kernel...\n");
arch/arm/kernel/module.c+77−66
@@ -22,6 +22,7 @@ · 21 unmodified lines
2222
2323 #include <asm/pgtable.h>
2424 #include <asm/sections.h>
25+#include <asm/smp_plat.h>
2526 #include <asm/unwind.h>
2627
2728 #ifdef CONFIG_XIP_KERNEL
@@ -38,17 +39,9 @@ · 10 unmodified lines
3839 #ifdef CONFIG_MMU
3940 void *module_alloc(unsigned long size)
4041 {
41− struct vm_struct *area;
42−
43− size = PAGE_ALIGN(size);
44− if (!size)
45− return NULL;
46−
47− area = __get_vm_area(size, VM_ALLOC, MODULES_VADDR, MODULES_END);
48− if (!area)
49− return NULL;
50−
51− return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL_EXEC);
42+ return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
43+ GFP_KERNEL, PAGE_KERNEL_EXEC, -1,
44+ __builtin_return_address(0));
5245 }
5346 #else /* CONFIG_MMU */
5447 void *module_alloc(unsigned long size)
@@ -67,35 +60,6 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, · 12 unmodified lines
6760 char *secstrings,
6861 struct module *mod)
6962 {
70−#ifdef CONFIG_ARM_UNWIND
71− Elf_Shdr *s, *sechdrs_end = sechdrs + hdr->e_shnum;
72− struct arm_unwind_mapping *maps = mod->arch.map;
73−
74− for (s = sechdrs; s < sechdrs_end; s++) {
75− char const *secname = secstrings + s->sh_name;
76−
77− if (strcmp(".ARM.exidx.init.text", secname) == 0)
78− maps[ARM_SEC_INIT].unw_sec = s;
79− else if (strcmp(".ARM.exidx.devinit.text", secname) == 0)
80− maps[ARM_SEC_DEVINIT].unw_sec = s;
81− else if (strcmp(".ARM.exidx", secname) == 0)
82− maps[ARM_SEC_CORE].unw_sec = s;
83− else if (strcmp(".ARM.exidx.exit.text", secname) == 0)
84− maps[ARM_SEC_EXIT].unw_sec = s;
85− else if (strcmp(".ARM.exidx.devexit.text", secname) == 0)
86− maps[ARM_SEC_DEVEXIT].unw_sec = s;
87− else if (strcmp(".init.text", secname) == 0)
88− maps[ARM_SEC_INIT].sec_text = s;
89− else if (strcmp(".devinit.text", secname) == 0)
90− maps[ARM_SEC_DEVINIT].sec_text = s;
91− else if (strcmp(".text", secname) == 0)
92− maps[ARM_SEC_CORE].sec_text = s;
93− else if (strcmp(".exit.text", secname) == 0)
94− maps[ARM_SEC_EXIT].sec_text = s;
95− else if (strcmp(".devexit.text", secname) == 0)
96− maps[ARM_SEC_DEVEXIT].sec_text = s;
97− }
98−#endif
9963 return 0;
10064 }
10165
@@ -300,41 +264,88 @@ apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, · 198 unmodified lines
300264 return -ENOEXEC;
301265 }
302266
303−#ifdef CONFIG_ARM_UNWIND
304−static void register_unwind_tables(struct module *mod)
305−{
306− int i;
307− for (i = 0; i < ARM_SEC_MAX; ++i) {
308− struct arm_unwind_mapping *map = &mod->arch.map[i];
309− if (map->unw_sec && map->sec_text)
310− map->unwind = unwind_table_add(map->unw_sec->sh_addr,
311− map->unw_sec->sh_size,
312− map->sec_text->sh_addr,
313− map->sec_text->sh_size);
314− }
315−}
267+struct mod_unwind_map {
268+ const Elf_Shdr *unw_sec;
269+ const Elf_Shdr *txt_sec;
270+};
316271
317−static void unregister_unwind_tables(struct module *mod)
272+static const Elf_Shdr *find_mod_section(const Elf32_Ehdr *hdr,
273+ const Elf_Shdr *sechdrs, const char *name)
318274 {
319− int i = ARM_SEC_MAX;
320− while (--i >= 0)
321− unwind_table_del(mod->arch.map[i].unwind);
275+ const Elf_Shdr *s, *se;
276+ const char *secstrs = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
277+
278+ for (s = sechdrs, se = sechdrs + hdr->e_shnum; s < se; s++)
279+ if (strcmp(name, secstrs + s->sh_name) == 0)
280+ return s;
281+
282+ return NULL;
322283 }
323−#else
324−static inline void register_unwind_tables(struct module *mod) { }
325−static inline void unregister_unwind_tables(struct module *mod) { }
326−#endif
327284
328−int
329−module_finalize(const Elf32_Ehdr *hdr, const Elf_Shdr *sechdrs,
330− struct module *module)
285+extern void fixup_smp(const void *, unsigned long);
286+
287+int module_finalize(const Elf32_Ehdr *hdr, const Elf_Shdr *sechdrs,
288+ struct module *mod)
331289 {
332− register_unwind_tables(module);
290+ const Elf_Shdr * __maybe_unused s = NULL;
291+#ifdef CONFIG_ARM_UNWIND
292+ const char *secstrs = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
293+ const Elf_Shdr *sechdrs_end = sechdrs + hdr->e_shnum;
294+ struct mod_unwind_map maps[ARM_SEC_MAX];
295+ int i;
296+
297+ memset(maps, 0, sizeof(maps));
298+
299+ for (s = sechdrs; s < sechdrs_end; s++) {
300+ const char *secname = secstrs + s->sh_name;
301+
302+ if (!(s->sh_flags & SHF_ALLOC))
303+ continue;
304+
305+ if (strcmp(".ARM.exidx.init.text", secname) == 0)
306+ maps[ARM_SEC_INIT].unw_sec = s;
307+ else if (strcmp(".ARM.exidx.devinit.text", secname) == 0)
308+ maps[ARM_SEC_DEVINIT].unw_sec = s;
309+ else if (strcmp(".ARM.exidx", secname) == 0)
310+ maps[ARM_SEC_CORE].unw_sec = s;
311+ else if (strcmp(".ARM.exidx.exit.text", secname) == 0)
312+ maps[ARM_SEC_EXIT].unw_sec = s;
313+ else if (strcmp(".ARM.exidx.devexit.text", secname) == 0)
314+ maps[ARM_SEC_DEVEXIT].unw_sec = s;
315+ else if (strcmp(".init.text", secname) == 0)
316+ maps[ARM_SEC_INIT].txt_sec = s;
317+ else if (strcmp(".devinit.text", secname) == 0)
318+ maps[ARM_SEC_DEVINIT].txt_sec = s;
319+ else if (strcmp(".text", secname) == 0)
320+ maps[ARM_SEC_CORE].txt_sec = s;
321+ else if (strcmp(".exit.text", secname) == 0)
322+ maps[ARM_SEC_EXIT].txt_sec = s;
323+ else if (strcmp(".devexit.text", secname) == 0)
324+ maps[ARM_SEC_DEVEXIT].txt_sec = s;
325+ }
326+
327+ for (i = 0; i < ARM_SEC_MAX; i++)
328+ if (maps[i].unw_sec && maps[i].txt_sec)
329+ mod->arch.unwind[i] =
330+ unwind_table_add(maps[i].unw_sec->sh_addr,
331+ maps[i].unw_sec->sh_size,
332+ maps[i].txt_sec->sh_addr,
333+ maps[i].txt_sec->sh_size);
334+#endif
335+ s = find_mod_section(hdr, sechdrs, ".alt.smp.init");
336+ if (s && !is_smp())
337+ fixup_smp((void *)s->sh_addr, s->sh_size);
333338 return 0;
334339 }
335340
336341 void
337342 module_arch_cleanup(struct module *mod)
338343 {
339− unregister_unwind_tables(mod);
344+#ifdef CONFIG_ARM_UNWIND
345+ int i;
346+
347+ for (i = 0; i < ARM_SEC_MAX; i++)
348+ if (mod->arch.unwind[i])
349+ unwind_table_del(mod->arch.unwind[i]);
350+#endif
340351 }
arch/arm/kernel/perf_event.c+46−2426
@@ -4,9 +4,7 @@ · 3 unmodified lines
44 * ARM performance counter support.
55 *
66 * Copyright (C) 2009 picoChip Designs, Ltd., Jamie Iles
7− *
8− * ARMv7 support: Jean Pihet <jpihet@mvista.com>
9− * 2010 (c) MontaVista Software, LLC.
7+ * Copyright (C) 2010 ARM Ltd., Will Deacon <will.deacon@arm.com>
108 *
119 * This code is based on the sparc64 perf event code, which is in turn based
1210 * on the x86 code. Callchain code is based on the ARM OProfile backtrace
@@ -34,7 +32,7 @@ static struct platform_device *pmu_device; · 21 unmodified lines
3432 * Hardware lock to serialize accesses to PMU registers. Needed for the
3533 * read/modify/write sequences.
3634 */
37−DEFINE_SPINLOCK(pmu_lock);
35+static DEFINE_RAW_SPINLOCK(pmu_lock);
3836
3937 /*
4038 * ARMv6 supports a maximum of 3 events, starting from index 1. If we add
@@ -67,31 +65,25 @@ struct cpu_hw_events { · 26 unmodified lines
6765 */
6866 unsigned long active_mask[BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)];
6967 };
70−DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events);
71−
72−/* PMU names. */
73−static const char *arm_pmu_names[] = {
74− [ARM_PERF_PMU_ID_XSCALE1] = "xscale1",
75− [ARM_PERF_PMU_ID_XSCALE2] = "xscale2",
76− [ARM_PERF_PMU_ID_V6] = "v6",
77− [ARM_PERF_PMU_ID_V6MP] = "v6mpcore",
78− [ARM_PERF_PMU_ID_CA8] = "ARMv7 Cortex-A8",
79− [ARM_PERF_PMU_ID_CA9] = "ARMv7 Cortex-A9",
80−};
68+static DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events);
8169
8270 struct arm_pmu {
8371 enum arm_perf_pmu_ids id;
72+ const char *name;
8473 irqreturn_t (*handle_irq)(int irq_num, void *dev);
8574 void (*enable)(struct hw_perf_event *evt, int idx);
8675 void (*disable)(struct hw_perf_event *evt, int idx);
87− int (*event_map)(int evt);
88− u64 (*raw_event)(u64);
8976 int (*get_event_idx)(struct cpu_hw_events *cpuc,
9077 struct hw_perf_event *hwc);
9178 u32 (*read_counter)(int idx);
9279 void (*write_counter)(int idx, u32 val);
9380 void (*start)(void);
9481 void (*stop)(void);
82+ const unsigned (*cache_map)[PERF_COUNT_HW_CACHE_MAX]
83+ [PERF_COUNT_HW_CACHE_OP_MAX]
84+ [PERF_COUNT_HW_CACHE_RESULT_MAX];
85+ const unsigned (*event_map)[PERF_COUNT_HW_MAX];
86+ u32 raw_event_mask;
9587 int num_events;
9688 u64 max_period;
9789 };
@@ -136,10 +128,6 @@ EXPORT_SYMBOL_GPL(perf_num_counters); · 38 unmodified lines
136128
137129 #define CACHE_OP_UNSUPPORTED 0xFFFF
138130
139−static unsigned armpmu_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
140− [PERF_COUNT_HW_CACHE_OP_MAX]
141− [PERF_COUNT_HW_CACHE_RESULT_MAX];
142−
143131 static int
144132 armpmu_map_cache_event(u64 config)
145133 {
@@ -157,7 +145,7 @@ armpmu_map_cache_event(u64 config) · 11 unmodified lines
157145 if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX)
158146 return -EINVAL;
159147
160− ret = (int)armpmu_perf_cache_map[cache_type][cache_op][cache_result];
148+ ret = (int)(*armpmu->cache_map)[cache_type][cache_op][cache_result];
161149
162150 if (ret == CACHE_OP_UNSUPPORTED)
163151 return -ENOENT;
@@ -165,6 +153,19 @@ armpmu_map_cache_event(u64 config) · 1 unmodified line
165153 return ret;
166154 }
167155
156+static int
157+armpmu_map_event(u64 config)
158+{
159+ int mapping = (*armpmu->event_map)[config];
160+ return mapping == HW_OP_UNSUPPORTED ? -EOPNOTSUPP : mapping;
161+}
162+
163+static int
164+armpmu_map_raw_event(u64 config)
165+{
166+ return (int)(config & armpmu->raw_event_mask);
167+}
168+
168169 static int
169170 armpmu_event_set_period(struct perf_event *event,
170171 struct hw_perf_event *hwc,
@@ -458,11 +459,11 @@ __hw_perf_event_init(struct perf_event *event) · 287 unmodified lines
458459
459460 /* Decode the generic type into an ARM event identifier. */
460461 if (PERF_TYPE_HARDWARE == event->attr.type) {
461− mapping = armpmu->event_map(event->attr.config);
462+ mapping = armpmu_map_event(event->attr.config);
462463 } else if (PERF_TYPE_HW_CACHE == event->attr.type) {
463464 mapping = armpmu_map_cache_event(event->attr.config);
464465 } else if (PERF_TYPE_RAW == event->attr.type) {
465− mapping = armpmu->raw_event(event->attr.config);
466+ mapping = armpmu_map_raw_event(event->attr.config);
466467 } else {
467468 pr_debug("event type %x not supported\n", event->attr.type);
468469 return -EOPNOTSUPP;
@@ -603,2366 +604,10 @@ static struct pmu pmu = { · 134 unmodified lines
603604 .read = armpmu_read,
604605 };
605606
606−/*
607− * ARMv6 Performance counter handling code.
608− *
609− * ARMv6 has 2 configurable performance counters and a single cycle counter.
610− * They all share a single reset bit but can be written to zero so we can use
611− * that for a reset.
612− *
613− * The counters can't be individually enabled or disabled so when we remove
614− * one event and replace it with another we could get spurious counts from the
615− * wrong event. However, we can take advantage of the fact that the
616− * performance counters can export events to the event bus, and the event bus
617− * itself can be monitored. This requires that we *don't* export the events to
618− * the event bus. The procedure for disabling a configurable counter is:
619− * - change the counter to count the ETMEXTOUT[0] signal (0x20). This
620− * effectively stops the counter from counting.
621− * - disable the counter's interrupt generation (each counter has it's
622− * own interrupt enable bit).
623− * Once stopped, the counter value can be written as 0 to reset.
624− *
625− * To enable a counter:
626− * - enable the counter's interrupt generation.
627− * - set the new event type.
628− *
629− * Note: the dedicated cycle counter only counts cycles and can't be
630− * enabled/disabled independently of the others. When we want to disable the
631− * cycle counter, we have to just disable the interrupt reporting and start
632− * ignoring that counter. When re-enabling, we have to reset the value and
633− * enable the interrupt.
634− */
635−
636−enum armv6_perf_types {
637− ARMV6_PERFCTR_ICACHE_MISS = 0x0,
638− ARMV6_PERFCTR_IBUF_STALL = 0x1,
639− ARMV6_PERFCTR_DDEP_STALL = 0x2,
640− ARMV6_PERFCTR_ITLB_MISS = 0x3,
641− ARMV6_PERFCTR_DTLB_MISS = 0x4,
642− ARMV6_PERFCTR_BR_EXEC = 0x5,
643− ARMV6_PERFCTR_BR_MISPREDICT = 0x6,
644− ARMV6_PERFCTR_INSTR_EXEC = 0x7,
645− ARMV6_PERFCTR_DCACHE_HIT = 0x9,
646− ARMV6_PERFCTR_DCACHE_ACCESS = 0xA,
647− ARMV6_PERFCTR_DCACHE_MISS = 0xB,
648− ARMV6_PERFCTR_DCACHE_WBACK = 0xC,
649− ARMV6_PERFCTR_SW_PC_CHANGE = 0xD,
650− ARMV6_PERFCTR_MAIN_TLB_MISS = 0xF,
651− ARMV6_PERFCTR_EXPL_D_ACCESS = 0x10,
652− ARMV6_PERFCTR_LSU_FULL_STALL = 0x11,
653− ARMV6_PERFCTR_WBUF_DRAINED = 0x12,
654− ARMV6_PERFCTR_CPU_CYCLES = 0xFF,
655− ARMV6_PERFCTR_NOP = 0x20,
656−};
657−
658−enum armv6_counters {
659− ARMV6_CYCLE_COUNTER = 1,
660− ARMV6_COUNTER0,
661− ARMV6_COUNTER1,
662−};
663−
664−/*
665− * The hardware events that we support. We do support cache operations but
666− * we have harvard caches and no way to combine instruction and data
667− * accesses/misses in hardware.
668− */
669−static const unsigned armv6_perf_map[PERF_COUNT_HW_MAX] = {
670− [PERF_COUNT_HW_CPU_CYCLES] = ARMV6_PERFCTR_CPU_CYCLES,
671− [PERF_COUNT_HW_INSTRUCTIONS] = ARMV6_PERFCTR_INSTR_EXEC,
672− [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,
673− [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,
674− [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV6_PERFCTR_BR_EXEC,
675− [PERF_COUNT_HW_BRANCH_MISSES] = ARMV6_PERFCTR_BR_MISPREDICT,
676− [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
677−};
678−
679−static const unsigned armv6_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
680− [PERF_COUNT_HW_CACHE_OP_MAX]
681− [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
682− [C(L1D)] = {
683− /*
684− * The performance counters don't differentiate between read
685− * and write accesses/misses so this isn't strictly correct,
686− * but it's the best we can do. Writes and reads get
687− * combined.
688− */
689− [C(OP_READ)] = {
690− [C(RESULT_ACCESS)] = ARMV6_PERFCTR_DCACHE_ACCESS,
691− [C(RESULT_MISS)] = ARMV6_PERFCTR_DCACHE_MISS,
692− },
693− [C(OP_WRITE)] = {
694− [C(RESULT_ACCESS)] = ARMV6_PERFCTR_DCACHE_ACCESS,
695− [C(RESULT_MISS)] = ARMV6_PERFCTR_DCACHE_MISS,
696− },
697− [C(OP_PREFETCH)] = {
698− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
699− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
700− },
701− },
702− [C(L1I)] = {
703− [C(OP_READ)] = {
704− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
705− [C(RESULT_MISS)] = ARMV6_PERFCTR_ICACHE_MISS,
706− },
707− [C(OP_WRITE)] = {
708− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
709− [C(RESULT_MISS)] = ARMV6_PERFCTR_ICACHE_MISS,
710− },
711− [C(OP_PREFETCH)] = {
712− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
713− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
714− },
715− },
716− [C(LL)] = {
717− [C(OP_READ)] = {
718− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
719− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
720− },
721− [C(OP_WRITE)] = {
722− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
723− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
724− },
725− [C(OP_PREFETCH)] = {
726− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
727− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
728− },
729− },
730− [C(DTLB)] = {
731− /*
732− * The ARM performance counters can count micro DTLB misses,
733− * micro ITLB misses and main TLB misses. There isn't an event
734− * for TLB misses, so use the micro misses here and if users
735− * want the main TLB misses they can use a raw counter.
736− */
737− [C(OP_READ)] = {
738− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
739− [C(RESULT_MISS)] = ARMV6_PERFCTR_DTLB_MISS,
740− },
741− [C(OP_WRITE)] = {
742− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
743− [C(RESULT_MISS)] = ARMV6_PERFCTR_DTLB_MISS,
744− },
745− [C(OP_PREFETCH)] = {
746− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
747− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
748− },
749− },
750− [C(ITLB)] = {
751− [C(OP_READ)] = {
752− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
753− [C(RESULT_MISS)] = ARMV6_PERFCTR_ITLB_MISS,
754− },
755− [C(OP_WRITE)] = {
756− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
757− [C(RESULT_MISS)] = ARMV6_PERFCTR_ITLB_MISS,
758− },
759− [C(OP_PREFETCH)] = {
760− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
761− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
762− },
763− },
764− [C(BPU)] = {
765− [C(OP_READ)] = {
766− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
767− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
768− },
769− [C(OP_WRITE)] = {
770− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
771− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
772− },
773− [C(OP_PREFETCH)] = {
774− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
775− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
776− },
777− },
778−};
779−
780−enum armv6mpcore_perf_types {
781− ARMV6MPCORE_PERFCTR_ICACHE_MISS = 0x0,
782− ARMV6MPCORE_PERFCTR_IBUF_STALL = 0x1,
783− ARMV6MPCORE_PERFCTR_DDEP_STALL = 0x2,
784− ARMV6MPCORE_PERFCTR_ITLB_MISS = 0x3,
785− ARMV6MPCORE_PERFCTR_DTLB_MISS = 0x4,
786− ARMV6MPCORE_PERFCTR_BR_EXEC = 0x5,
787− ARMV6MPCORE_PERFCTR_BR_NOTPREDICT = 0x6,
788− ARMV6MPCORE_PERFCTR_BR_MISPREDICT = 0x7,
789− ARMV6MPCORE_PERFCTR_INSTR_EXEC = 0x8,
790− ARMV6MPCORE_PERFCTR_DCACHE_RDACCESS = 0xA,
791− ARMV6MPCORE_PERFCTR_DCACHE_RDMISS = 0xB,
792− ARMV6MPCORE_PERFCTR_DCACHE_WRACCESS = 0xC,
793− ARMV6MPCORE_PERFCTR_DCACHE_WRMISS = 0xD,
794− ARMV6MPCORE_PERFCTR_DCACHE_EVICTION = 0xE,
795− ARMV6MPCORE_PERFCTR_SW_PC_CHANGE = 0xF,
796− ARMV6MPCORE_PERFCTR_MAIN_TLB_MISS = 0x10,
797− ARMV6MPCORE_PERFCTR_EXPL_MEM_ACCESS = 0x11,
798− ARMV6MPCORE_PERFCTR_LSU_FULL_STALL = 0x12,
799− ARMV6MPCORE_PERFCTR_WBUF_DRAINED = 0x13,
800− ARMV6MPCORE_PERFCTR_CPU_CYCLES = 0xFF,
801−};
802−
803−/*
804− * The hardware events that we support. We do support cache operations but
805− * we have harvard caches and no way to combine instruction and data
806− * accesses/misses in hardware.
807− */
808−static const unsigned armv6mpcore_perf_map[PERF_COUNT_HW_MAX] = {
809− [PERF_COUNT_HW_CPU_CYCLES] = ARMV6MPCORE_PERFCTR_CPU_CYCLES,
810− [PERF_COUNT_HW_INSTRUCTIONS] = ARMV6MPCORE_PERFCTR_INSTR_EXEC,
811− [PERF_COUNT_HW_CACHE_REFERENCES] = HW_OP_UNSUPPORTED,
812− [PERF_COUNT_HW_CACHE_MISSES] = HW_OP_UNSUPPORTED,
813− [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV6MPCORE_PERFCTR_BR_EXEC,
814− [PERF_COUNT_HW_BRANCH_MISSES] = ARMV6MPCORE_PERFCTR_BR_MISPREDICT,
815− [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
816−};
817−
818−static const unsigned armv6mpcore_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
819− [PERF_COUNT_HW_CACHE_OP_MAX]
820− [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
821− [C(L1D)] = {
822− [C(OP_READ)] = {
823− [C(RESULT_ACCESS)] =
824− ARMV6MPCORE_PERFCTR_DCACHE_RDACCESS,
825− [C(RESULT_MISS)] =
826− ARMV6MPCORE_PERFCTR_DCACHE_RDMISS,
827− },
828− [C(OP_WRITE)] = {
829− [C(RESULT_ACCESS)] =
830− ARMV6MPCORE_PERFCTR_DCACHE_WRACCESS,
831− [C(RESULT_MISS)] =
832− ARMV6MPCORE_PERFCTR_DCACHE_WRMISS,
833− },
834− [C(OP_PREFETCH)] = {
835− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
836− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
837− },
838− },
839− [C(L1I)] = {
840− [C(OP_READ)] = {
841− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
842− [C(RESULT_MISS)] = ARMV6MPCORE_PERFCTR_ICACHE_MISS,
843− },
844− [C(OP_WRITE)] = {
845− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
846− [C(RESULT_MISS)] = ARMV6MPCORE_PERFCTR_ICACHE_MISS,
847− },
848− [C(OP_PREFETCH)] = {
849− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
850− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
851− },
852− },
853− [C(LL)] = {
854− [C(OP_READ)] = {
855− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
856− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
857− },
858− [C(OP_WRITE)] = {
859− [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
860− [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,

2235 more lines aren’t shown here.

arch/arm/kernel/perf_event_v6.c+672−0

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

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

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

arch/arm/kernel/perf_event_xscale.c+807−0

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

arch/arm/kernel/pj4-cp0.c+94−0

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

arch/arm/kernel/pmu.c+14−8

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

arch/arm/kernel/process.c+2−0

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

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

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

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

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

arch/arm/kernel/setup.c+30−33

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

arch/arm/kernel/signal.c+3−1

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

arch/arm/kernel/smp.c+159−289

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

arch/arm/kernel/smp_tlb.c+139−0

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

arch/arm/kernel/smp_twd.c+4−22

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

arch/arm/kernel/stacktrace.c+6−3

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

arch/arm/kernel/swp_emulate.c+267−0

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

arch/arm/kernel/time.c+7−1

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

arch/arm/kernel/traps.c+16−10

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

arch/arm/kernel/vmlinux.lds.S+13−0

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

arch/arm/lib/delay.S+4−0

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

arch/arm/lib/getuser.S+7−6

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

arch/arm/lib/putuser.S+15−14

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

arch/arm/lib/uaccess.S+42−41

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

arch/arm/mach-aaec2000/core.c+9−9

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

arch/arm/mach-at91/Kconfig+13−0

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

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

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

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

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

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

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

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

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

arch/arm/mach-at91/board-foxg20.c+274−0

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

arch/arm/mach-at91/board-gsia18s.c+584−0

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

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

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

arch/arm/mach-at91/gpio.c+17−17

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

arch/arm/mach-at91/include/mach/gsia18s.h+33−0

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

arch/arm/mach-at91/irq.c+18−18

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

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

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

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

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

arch/arm/mach-bcmring/core.c+5−11

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

arch/arm/mach-bcmring/csp/chipc/chipcHw.c+1−1

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

arch/arm/mach-bcmring/csp/dmac/dmacHw.c+1−1

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

arch/arm/mach-bcmring/csp/dmac/dmacHw_extra.c+1−1

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

arch/arm/mach-bcmring/csp/tmr/tmrHw.c+1−1

This diff is large: its 9 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/csp/dmacHw.h+1−1

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

arch/arm/mach-bcmring/include/csp/tmrHw.h+2−2

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

arch/arm/mach-bcmring/include/mach/csp/dmacHw_priv.h+1−1

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

arch/arm/mach-bcmring/include/mach/csp/dmacHw_reg.h+1−1

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

arch/arm/mach-bcmring/irq.c+21−21

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

arch/arm/mach-clps711x/irq.c+20−20

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

arch/arm/mach-cns3xxx/Kconfig+1−0

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

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

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

arch/arm/mach-cns3xxx/core.c+2−5

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

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

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

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

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

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

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

arch/arm/mach-cns3xxx/include/mach/entry-macro.S+1−65

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

arch/arm/mach-cns3xxx/include/mach/pm.h+23−0

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

arch/arm/mach-cns3xxx/pm.c+23−0

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

arch/arm/mach-davinci/Kconfig+18−1

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

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

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

arch/arm/mach-davinci/board-da850-evm.c+321−18

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

arch/arm/mach-davinci/clock.c+2−2

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

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

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

arch/arm/mach-davinci/cp_intc.c+15−15

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

arch/arm/mach-davinci/da850.c+60−15

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

arch/arm/mach-davinci/devices-tnetv107x.c+14−1

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

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

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

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

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

arch/arm/mach-davinci/gpio.c+23−23

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

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

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

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

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

arch/arm/mach-davinci/include/mach/spi.h+46−6

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

arch/arm/mach-davinci/irq.c+13−13

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

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

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

arch/arm/mach-davinci/psc.c+4−9

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

arch/arm/mach-davinci/time.c+25−6

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

arch/arm/mach-davinci/tnetv107x.c+12−11

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

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

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

arch/arm/mach-dove/Kconfig+6−0

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

arch/arm/mach-dove/Makefile+2−1

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

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

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

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

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

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

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

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

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

arch/arm/mach-dove/irq.c+9−9

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

arch/arm/mach-dove/mpp.c+212−0

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

arch/arm/mach-dove/mpp.h+220−0

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

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

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

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

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

arch/arm/mach-ep93xx/core.c+1−1

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

arch/arm/mach-ep93xx/gpio.c+25−18

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

arch/arm/mach-footbridge/common.c+7−7

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

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

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

arch/arm/mach-footbridge/isa-irq.c+18−18

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

arch/arm/mach-gemini/gpio.c+13−13

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

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

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

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

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

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

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

arch/arm/mach-h720x/cpu-h7202.c+7−7

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

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

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

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

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

arch/arm/mach-imx/Kconfig+119−20

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

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

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

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

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

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

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

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

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

arch/arm/mach-imx/clock-imx25.crenamed from arch/arm/mach-mx25/clock.c+2−3

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

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

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

arch/arm/mach-imx/cpu-imx27.c+13−1

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

arch/arm/mach-imx/devices-imx21.h+24−0

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

arch/arm/mach-imx/devices-imx25.hrenamed from arch/arm/mach-mx25/devices-imx25.h+42−9

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

arch/arm/mach-imx/devices-imx27.h+35−0

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

arch/arm/mach-imx/devices.c+0−553

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

arch/arm/mach-imx/devices.h+0−29

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

arch/arm/mach-imx/dma-v1.c+3−1

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

arch/arm/mach-imx/eukrea_mbimx27-baseboard.c+7−10

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

arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.crenamed from arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c+4−6

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

arch/arm/mach-imx/mach-cpuimx27.c+9−12

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

arch/arm/mach-imx/mach-eukrea_cpuimx25.crenamed from arch/arm/mach-mx25/mach-cpuimx25.c+8−11

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

arch/arm/mach-imx/mach-imx27_visstrim_m10.c+5−7

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

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

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

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

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

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

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

arch/arm/mach-imx/mach-mx25_3ds.crenamed from arch/arm/mach-mx25/mach-mx25_3ds.c+22−12

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

arch/arm/mach-imx/mach-mx27_3ds.c+159−7

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

arch/arm/mach-imx/mach-mx27ads.c+7−10

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

arch/arm/mach-imx/mach-mxt_td60.c+4−7

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

arch/arm/mach-imx/mach-pca100.c+12−21

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

arch/arm/mach-imx/mach-pcm038.c+7−9

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

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

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

arch/arm/mach-imx/mm-imx1.c+1−6

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

arch/arm/mach-imx/mm-imx21.c+3−18

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

arch/arm/mach-imx/mm-imx25.crenamed from arch/arm/mach-mx25/mm.c+7−20

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

arch/arm/mach-imx/mm-imx27.c+3−18

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

arch/arm/mach-imx/pcm970-baseboard.c+5−7

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

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

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

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

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

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

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

arch/arm/mach-integrator/cpu.c+1−1

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

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

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

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

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

arch/arm/mach-integrator/integrator_cp.c+26−27

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

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

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

arch/arm/mach-iop13xx/include/mach/memory.h+3−3

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

arch/arm/mach-iop13xx/irq.c+32−32

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

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

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

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

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

arch/arm/mach-iop32x/irq.c+8−8

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

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

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

arch/arm/mach-iop33x/irq.c+16−16

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

arch/arm/mach-ixp2000/core.c+38−32

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

arch/arm/mach-ixp2000/ixdp2x00.c+9−9

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

arch/arm/mach-ixp2000/ixdp2x01.c+9−9

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

arch/arm/mach-ixp23xx/core.c+31−24

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

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

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

arch/arm/mach-ixp23xx/ixdp2351.c+18−18

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

arch/arm/mach-ixp4xx/common.c+43−38

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

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

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

arch/arm/mach-ixp4xx/include/mach/timex.h+3−2

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

arch/arm/mach-ixp4xx/ixp4xx_qmgr.c+5−4

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

arch/arm/mach-kirkwood/Kconfig+6−6

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

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

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

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

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

arch/arm/mach-kirkwood/ts219-setup.c+14−2

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

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

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

arch/arm/mach-ks8695/Kconfig+1−0

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

arch/arm/mach-ks8695/include/mach/memory.h+4−4

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

arch/arm/mach-ks8695/irq.c+22−21

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

arch/arm/mach-lh7a40x/arch-kev7a400.c+10−10

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

arch/arm/mach-lh7a40x/arch-lpd7a40x.c+13−12

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

arch/arm/mach-lh7a40x/irq-lh7a400.c+15−15

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

arch/arm/mach-lh7a40x/irq-lh7a404.c+30−30

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

arch/arm/mach-lh7a40x/irq-lpd7a40x.c+11−11

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

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

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

arch/arm/mach-lpc32xx/irq.c+28−28

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

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

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

arch/arm/mach-lpc32xx/timer.c+1−4

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

arch/arm/mach-mmp/Kconfig+17−5

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

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

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

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

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

arch/arm/mach-mmp/clock.h+1−1

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

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

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

arch/arm/mach-mmp/include/mach/mfp-mmp2.h+170−170

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

arch/arm/mach-mmp/include/mach/mfp-pxa910.h+1−1

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

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

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

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

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

arch/arm/mach-mmp/irq-mmp2.c+24−22

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

arch/arm/mach-mmp/irq-pxa168.c+9−9

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

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

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

arch/arm/mach-mmp/mmp2.c+35−0

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

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

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

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

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

arch/arm/mach-msm/Kconfig+15−0

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

arch/arm/mach-msm/Makefile+8−1

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

arch/arm/mach-msm/board-msm7x30.c+20−0

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

arch/arm/mach-msm/board-msm8x60.c+2−5

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

arch/arm/mach-msm/board-qsd8x50.c+21−2

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

arch/arm/mach-msm/board-trout-gpio.c+29−21

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

arch/arm/mach-msm/board-trout-panel.c+297−0

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

arch/arm/mach-msm/clock.c+15−0

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

arch/arm/mach-msm/devices-msm7x00.c+68−1

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

arch/arm/mach-msm/devices-msm7x30.c+72−0

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

arch/arm/mach-msm/devices-msm8x60-iommu.c+133−110

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

arch/arm/mach-msm/devices-qsd8x50.c+71−0

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

arch/arm/mach-msm/devices.h+6−0

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

arch/arm/mach-msm/gpio-v2.c+426−0

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

arch/arm/mach-msm/gpio.c+24−24

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

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

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

arch/arm/mach-msm/hotplug.c+91−0

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

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

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

arch/arm/mach-msm/include/mach/iommu.h+14−1

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

arch/arm/mach-msm/include/mach/iommu_hw-8xxx.h+21−1

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

arch/arm/mach-msm/include/mach/irqs-8x60.h+6−1

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

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

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

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

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

arch/arm/mach-msm/include/mach/smp.h+2−2

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

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

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

arch/arm/mach-msm/iommu.c+115−31

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

arch/arm/mach-msm/iommu_dev.c+2−2

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

arch/arm/mach-msm/irq-vic.c+32−33

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

arch/arm/mach-msm/irq.c+22−23

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

arch/arm/mach-msm/platsmp.c+166−0

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

arch/arm/mach-msm/scm-boot.c+39−0

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

arch/arm/mach-msm/scm-boot.h+38−0

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

arch/arm/mach-msm/scm.c+287−0

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

arch/arm/mach-msm/scm.h+41−0

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

arch/arm/mach-msm/sirc.c+19−23

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

arch/arm/mach-msm/smd.c+6−11

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

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

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

arch/arm/mach-msm/timer.c+103−27

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

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

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

arch/arm/mach-mx25/Kconfig+0−34

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

arch/arm/mach-mx25/Makefile+0−5

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

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

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

arch/arm/mach-mx25/devices.c+0−308

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

arch/arm/mach-mx25/devices.h+0−13

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

arch/arm/mach-mx3/Kconfig+63−21

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

arch/arm/mach-mx3/Makefile+2−5

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

arch/arm/mach-mx3/clock-imx31.c+3−3

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

arch/arm/mach-mx3/clock-imx35.c+2−3

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

arch/arm/mach-mx3/cpu.c+18−13

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

arch/arm/mach-mx3/devices-imx31.h+27−0

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

arch/arm/mach-mx3/devices-imx35.h+33−8

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

arch/arm/mach-mx3/devices.c+12−259

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

arch/arm/mach-mx3/devices.h+0−10

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

arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c+2−2

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

arch/arm/mach-mx3/mach-armadillo5x0.c+6−8

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

arch/arm/mach-mx3/mach-cpuimx35.c+8−14

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

arch/arm/mach-mx3/mach-kzm_arm11_01.c+3−3

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

arch/arm/mach-mx3/mach-mx31_3ds.c+119−9

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

arch/arm/mach-mx3/mach-mx31ads.c+9−9

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

arch/arm/mach-mx3/mach-mx31lilly.c+4−5

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

arch/arm/mach-mx3/mach-mx31lite.c+2−3

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

arch/arm/mach-mx3/mach-mx31moboard.c+14−10

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

arch/arm/mach-mx3/mach-mx35_3ds.c+32−8

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

arch/arm/mach-mx3/mach-pcm037.c+10−13

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

arch/arm/mach-mx3/mach-pcm043.c+23−25

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

arch/arm/mach-mx3/mm.c+35−49

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

arch/arm/mach-mx3/mx31lilly-db.c+2−3

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

arch/arm/mach-mx3/mx31lite-db.c+3−5

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

arch/arm/mach-mx3/mx31moboard-devboard.c+11−9

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

arch/arm/mach-mx3/mx31moboard-marxbot.c+12−9

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

arch/arm/mach-mx3/mx31moboard-smartbot.c+10−6

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

arch/arm/mach-mx5/Kconfig+79−4

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

arch/arm/mach-mx5/Makefile+6−1

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

arch/arm/mach-mx5/Makefile.boot+9−3

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

arch/arm/mach-mx5/board-cpuimx51.c+18−14

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

arch/arm/mach-mx5/board-cpuimx51sd.c+36−32

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

arch/arm/mach-mx5/board-mx50_rdp.c+197−0

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

arch/arm/mach-mx5/board-mx51_3ds.c+7−7

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

arch/arm/mach-mx5/board-mx51_babbage.c+71−30

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

arch/arm/mach-mx5/board-mx51_efikamx.c+246−1

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

arch/arm/mach-mx5/board-mx53_evk.c+158−0

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

arch/arm/mach-mx5/board-mx53_loco.c+111−0

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

arch/arm/mach-mx5/board-mx53_smd.c+111−0

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

arch/arm/mach-mx5/clock-mx51-mx53.crenamed from arch/arm/mach-mx5/clock-mx51.c+304−10

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

arch/arm/mach-mx5/cpu.c+69−49

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

arch/arm/mach-mx5/crm_regs.h+9−1

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

arch/arm/mach-mx5/devices-imx51.h+16−3

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

arch/arm/mach-mx5/devices-imx53.h+31−0

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

arch/arm/mach-mx5/devices-mx50.h+26−0

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

arch/arm/mach-mx5/devices.c+40−24

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

arch/arm/mach-mx5/devices.h+1−2

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

arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c+15−16

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

arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c+8−9

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

arch/arm/mach-mx5/mm-mx50.c+59−0

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

arch/arm/mach-mx5/mm.c+44−31

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

arch/arm/mach-mxc91231/clock.c+1−1

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

arch/arm/mach-mxc91231/mm.c+10−43

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

arch/arm/mach-mxs/Kconfig+34−0

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

arch/arm/mach-mxs/Makefile+10−0

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

arch/arm/mach-mxs/Makefile.boot+1−0

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

arch/arm/mach-mxs/clock-mx23.c+535−0

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

arch/arm/mach-mxs/clock-mx28.c+745−0

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

arch/arm/mach-mxs/clock.c+198−0

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

arch/arm/mach-mxs/devices-mx23.h+16−0

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

arch/arm/mach-mxs/devices-mx28.h+20−0

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

arch/arm/mach-mxs/devices.c+88−0

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

arch/arm/mach-mxs/devices/Kconfig+6−0

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

arch/arm/mach-mxs/devices/Makefile+2−0

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

arch/arm/mach-mxs/devices/amba-duart.c+40−0

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

arch/arm/mach-mxs/devices/platform-fec.c+50−0

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

arch/arm/mach-mxs/gpio.c+327−0

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

arch/arm/mach-mxs/gpio.h+34−0

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

arch/arm/mach-mxs/icoll.c+81−0

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

arch/arm/mach-mxs/include/mach/clkdev.h+7−0

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

arch/arm/mach-mxs/include/mach/clock.h+62−0

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

arch/arm/mach-mxs/include/mach/common.h+31−0

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

arch/arm/mach-mxs/include/mach/debug-macro.S+38−0

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

arch/arm/mach-mxs/include/mach/devices-common.h+43−0

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

arch/arm/mach-mxs/include/mach/entry-macro.S+41−0

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

arch/arm/mach-mxs/include/mach/gpio.h+35−0

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

arch/arm/mach-mxs/include/mach/hardware.h+29−0

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

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

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

arch/arm/mach-mxs/include/mach/iomux-mx23.h+355−0

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

arch/arm/mach-mxs/include/mach/iomux-mx28.h+537−0

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

arch/arm/mach-mxs/include/mach/iomux.h+165−0

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

arch/arm/mach-mxs/include/mach/irqs.h+32−0

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

arch/arm/mach-mxs/include/mach/memory.h+24−0

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

arch/arm/mach-mxs/include/mach/mx23.h+145−0

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

arch/arm/mach-mxs/include/mach/mx28.h+188−0

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

arch/arm/mach-mxs/include/mach/mxs.h+105−0

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

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

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

arch/arm/mach-mxs/include/mach/timex.h+21−0

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

arch/arm/mach-mxs/include/mach/uncompress.h+76−0

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

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

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

arch/arm/mach-mxs/iomux.c+101−0

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

arch/arm/mach-mxs/mach-mx23evk.c+57−0

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

arch/arm/mach-mxs/mach-mx28evk.c+158−0

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

arch/arm/mach-mxs/mm-mx23.c+45−0

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

arch/arm/mach-mxs/mm-mx28.c+45−0

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

arch/arm/mach-mxs/regs-clkctrl-mx23.h+455−0

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

arch/arm/mach-mxs/regs-clkctrl-mx28.h+663−0

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

arch/arm/mach-mxs/system.c+137−0

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

arch/arm/mach-mxs/timer.c+296−0

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

arch/arm/mach-netx/generic.c+15−15

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

arch/arm/mach-netx/time.c+1−4

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

arch/arm/mach-nomadik/clock.c+1−1

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

arch/arm/mach-ns9xxx/board-a9m9750dev.c+14−14

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

arch/arm/mach-ns9xxx/irq.c+14−14

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

arch/arm/mach-ns9xxx/time-ns9360.c+1−5

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

arch/arm/mach-nuc93x/clock.h+1−1

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

arch/arm/mach-nuc93x/irq.c+8−8

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

arch/arm/mach-omap1/Kconfig+3−10

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

arch/arm/mach-omap1/Makefile+9−4

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

arch/arm/mach-omap1/ams-delta-fiq.c+5−3

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

arch/arm/mach-omap1/board-ams-delta.c+87−67

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

arch/arm/mach-omap1/board-fsample.c+46−43

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

arch/arm/mach-omap1/board-h2.c+41−38

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

arch/arm/mach-omap1/board-h3.c+50−47

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

arch/arm/mach-omap1/board-htcherald.c+52−50

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

arch/arm/mach-omap1/board-innovator.c+16−16

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

arch/arm/mach-omap1/board-nokia770.c+16−14

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

arch/arm/mach-omap1/board-osk.c+15−12

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

arch/arm/mach-omap1/board-palmte.c+16−13

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

arch/arm/mach-omap1/board-palmtt.c+16−12

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

arch/arm/mach-omap1/board-palmz71.c+17−14

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

arch/arm/mach-omap1/board-perseus2.c+47−44

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

arch/arm/mach-omap1/board-sx1.c+30−28

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

arch/arm/mach-omap1/board-voiceblue.c+6−1

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

arch/arm/mach-omap1/clock.c+1−1

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

arch/arm/mach-omap1/clock_data.c+13−14

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

arch/arm/mach-omap1/devices.c+4−0

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

arch/arm/mach-omap1/dma.c+390−0

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

arch/arm/mach-omap1/flash.c+1−0

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

arch/arm/mach-omap1/fpga.c+20−18

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

arch/arm/mach-omap1/gpio15xx.c+99−0

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

arch/arm/mach-omap1/gpio16xx.c+200−0

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

arch/arm/mach-omap1/gpio7xx.c+262−0

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

arch/arm/mach-omap1/include/mach/entry-macro.S+3−15

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

arch/arm/mach-omap1/io.c+39−0

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

arch/arm/mach-omap1/irq.c+27−22

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

arch/arm/mach-omap1/lcd_dma.c+15−12

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

arch/arm/mach-omap1/leds.c+3−0

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

arch/arm/mach-omap1/mailbox.c+2−3

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

arch/arm/mach-omap1/mcbsp.c+4−1

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

arch/arm/mach-omap1/mux.c+1−1

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

arch/arm/mach-omap1/pm.c+4−1

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

arch/arm/mach-omap1/pm_bus.c+3−1

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

arch/arm/mach-omap1/serial.c+9−2

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

arch/arm/mach-omap1/time.c+95−12

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

arch/arm/mach-omap1/timer32k.c+6−7

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

arch/arm/mach-omap2/Kconfig+30−5

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

arch/arm/mach-omap2/Makefile+70−22

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

arch/arm/mach-omap2/board-2430sdp.c+3−5

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

arch/arm/mach-omap2/board-3430sdp.c+11−7

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

arch/arm/mach-omap2/board-3630sdp.c+4−5

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

arch/arm/mach-omap2/board-4430sdp.c+74−8

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

arch/arm/mach-omap2/board-am3517crane.c+116−0

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

arch/arm/mach-omap2/board-am3517evm.c+19−11

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

arch/arm/mach-omap2/board-apollon.c+4−6

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

arch/arm/mach-omap2/board-cm-t35.c+22−16

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

arch/arm/mach-omap2/board-cm-t3517.c+26−7

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

arch/arm/mach-omap2/board-devkit8000.c+42−28

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

arch/arm/mach-omap2/board-generic.c+2−1

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

arch/arm/mach-omap2/board-h4.c+36−35

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

arch/arm/mach-omap2/board-igep0020.c+116−53

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

arch/arm/mach-omap2/board-igep0030.c+75−17

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

arch/arm/mach-omap2/board-ldp.c+3−5

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

arch/arm/mach-omap2/board-n8x0.c+50−25

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

arch/arm/mach-omap2/board-omap3beagle.c+66−14

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

arch/arm/mach-omap2/board-omap3evm.c+11−7

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

arch/arm/mach-omap2/board-omap3logic.c+2−4

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

arch/arm/mach-omap2/board-omap3pandora.c+13−29

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

arch/arm/mach-omap2/board-omap3stalker.c+19−10

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

arch/arm/mach-omap2/board-omap3touchbook.c+3−5

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

arch/arm/mach-omap2/board-omap4panda.c+40−8

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

arch/arm/mach-omap2/board-overo.c+3−5

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

arch/arm/mach-omap2/board-rm680.c+184−0

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

arch/arm/mach-omap2/board-rx51-peripherals.c+41−36

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

arch/arm/mach-omap2/board-rx51-video.c+8−1

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

arch/arm/mach-omap2/board-rx51.c+4−6

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

arch/arm/mach-omap2/board-zoom-display.c+168−0

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

arch/arm/mach-omap2/board-zoom-peripherals.c+50−5

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

arch/arm/mach-omap2/board-zoom.crenamed from arch/arm/mach-omap2/board-zoom3.c+61−42

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

arch/arm/mach-omap2/board-zoom2.c+0−117

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

arch/arm/mach-omap2/clkt2xxx_apll.c+6−6

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

arch/arm/mach-omap2/clkt2xxx_dpllcore.c+5−5

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

arch/arm/mach-omap2/clkt2xxx_osc.c+1−1

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

arch/arm/mach-omap2/clkt2xxx_sys.c+1−1

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

arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c+7−7

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

arch/arm/mach-omap2/clkt_dpll.c+0−1

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

arch/arm/mach-omap2/clock.c+2−4

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

arch/arm/mach-omap2/clock.h+0−1

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

arch/arm/mach-omap2/clock2420_data.c+8−8

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

arch/arm/mach-omap2/clock2430.c+1−1

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

arch/arm/mach-omap2/clock2430_data.c+8−8

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

arch/arm/mach-omap2/clock34xx.c+1−1

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

arch/arm/mach-omap2/clock3517.c+1−1

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

arch/arm/mach-omap2/clock3xxx.c+3−3

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

arch/arm/mach-omap2/clock3xxx_data.c+126−115

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

arch/arm/mach-omap2/clock44xx_data.c+487−209

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

arch/arm/mach-omap2/clockdomain.c+150−100

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

arch/arm/mach-omap2/clockdomain.hrenamed from arch/arm/plat-omap/include/plat/clockdomain.h+22−16

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

arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.crenamed from arch/arm/mach-omap2/clockdomains.h+16−93

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

arch/arm/mach-omap2/clockdomains44xx_data.crenamed from arch/arm/mach-omap2/clockdomains44xx.h+113−54

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

arch/arm/mach-omap2/cm-regbits-24xx.h+9−2

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

arch/arm/mach-omap2/cm-regbits-34xx.h+11−2

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

arch/arm/mach-omap2/cm-regbits-44xx.h+0−3

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

arch/arm/mach-omap2/cm.c+0−68

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

arch/arm/mach-omap2/cm.h+3−134

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

arch/arm/mach-omap2/cm1_44xx.h+261−0

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

arch/arm/mach-omap2/cm2_44xx.h+508−0

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

arch/arm/mach-omap2/cm2xxx_3xxx.c+471−0

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

arch/arm/mach-omap2/cm2xxx_3xxx.h+147−0

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

arch/arm/mach-omap2/cm44xx.c+52−0

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

arch/arm/mach-omap2/cm44xx.h+16−652

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

arch/arm/mach-omap2/cm4xxx.c+0−62

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

arch/arm/mach-omap2/cminst44xx.c+214−0

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

arch/arm/mach-omap2/cminst44xx.h+31−0

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

arch/arm/mach-omap2/control.c+110−23

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

arch/arm/mach-omap2/control.h+40−2

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

arch/arm/mach-omap2/cpuidle34xx.c+31−13

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

arch/arm/mach-omap2/devices.c+27−83

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

arch/arm/mach-omap2/dma.c+297−0

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

arch/arm/mach-omap2/dpll3xxx.c+37−22

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

arch/arm/mach-omap2/dsp.c+15−8

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

arch/arm/mach-omap2/gpio.c+104−0

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

arch/arm/mach-omap2/gpmc-nand.c+1−1

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

arch/arm/mach-omap2/gpmc-onenand.c+14−5

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

arch/arm/mach-omap2/gpmc.c+11−1

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

arch/arm/mach-omap2/include/mach/board-zoom.h+3−0

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

arch/arm/mach-omap2/include/mach/entry-macro.S+36−93

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

arch/arm/mach-omap2/include/mach/omap4-common.h+0−1

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

arch/arm/mach-omap2/io.c+118−21

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

arch/arm/mach-omap2/irq.c+16−11

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

arch/arm/mach-omap2/mailbox.c+11−8

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

arch/arm/mach-omap2/mux.c+397−131

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

arch/arm/mach-omap2/mux.h+142−12

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

arch/arm/mach-omap2/mux2420.c+6−4

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

arch/arm/mach-omap2/mux2430.c+6−4

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

arch/arm/mach-omap2/mux34xx.c+7−6

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

arch/arm/mach-omap2/mux44xx.c+1625−0

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

arch/arm/mach-omap2/mux44xx.h+298−0

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

arch/arm/mach-omap2/omap-hotplug.c+1−13

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

arch/arm/mach-omap2/omap-iommu.c+9−1

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

arch/arm/mach-omap2/omap-smp.c+16−52

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

arch/arm/mach-omap2/omap4-common.c+29−12

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

arch/arm/mach-omap2/omap_hwmod.c+292−191

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

arch/arm/mach-omap2/omap_hwmod_2420_data.c+460−5

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

arch/arm/mach-omap2/omap_hwmod_2430_data.c+515−4

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

arch/arm/mach-omap2/omap_hwmod_3xxx_data.c+868−2

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

arch/arm/mach-omap2/omap_hwmod_44xx_data.c+1436−208

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

arch/arm/mach-omap2/omap_opp_data.h+72−0

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

arch/arm/mach-omap2/omap_phy_internal.c+149−0

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

arch/arm/mach-omap2/omap_twl.c+279−0

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

arch/arm/mach-omap2/opp.c+93−0

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

arch/arm/mach-omap2/opp3xxx_data.c+107−0

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

arch/arm/mach-omap2/opp4xxx_data.c+57−0

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

arch/arm/mach-omap2/pm-debug.c+13−8

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

arch/arm/mach-omap2/pm.c+132−12

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

arch/arm/mach-omap2/pm.h+56−3

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

arch/arm/mach-omap2/pm24xx.c+111−119

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

arch/arm/mach-omap2/pm34xx.c+137−112

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

arch/arm/mach-omap2/pm44xx.c+4−16

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

arch/arm/mach-omap2/pm_bus.c+2−2

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

arch/arm/mach-omap2/powerdomain-common.c+110−0

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

arch/arm/mach-omap2/powerdomain.c+152−289

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

arch/arm/mach-omap2/powerdomain.hrenamed from arch/arm/plat-omap/include/plat/powerdomain.h+75−9

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

arch/arm/mach-omap2/powerdomain2xxx_3xxx.c+241−0

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

arch/arm/mach-omap2/powerdomain44xx.c+225−0

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

arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.crenamed from arch/arm/mach-omap2/powerdomains.h+5−79

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

arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.h+22−0

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

arch/arm/mach-omap2/powerdomains2xxx_data.crenamed from arch/arm/mach-omap2/powerdomains24xx.h+28−20

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

arch/arm/mach-omap2/powerdomains3xxx_data.crenamed from arch/arm/mach-omap2/powerdomains34xx.h+42−14

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

arch/arm/mach-omap2/powerdomains44xx_data.crenamed from arch/arm/mach-omap2/powerdomains44xx.h+64−28

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

arch/arm/mach-omap2/prcm-common.h+13−72

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

arch/arm/mach-omap2/prcm.c+51−505

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

arch/arm/mach-omap2/prcm44xx.h+42−0

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

arch/arm/mach-omap2/prcm_mpu44xx.c+45−0

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

arch/arm/mach-omap2/prcm_mpu44xx.h+104−0

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

arch/arm/mach-omap2/prm-regbits-24xx.h+1−1

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

arch/arm/mach-omap2/prm-regbits-34xx.h+7−4

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

arch/arm/mach-omap2/prm-regbits-44xx.h+0−2

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

arch/arm/mach-omap2/prm.h+4−365

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

arch/arm/mach-omap2/prm2xxx_3xxx.c+55−9

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

arch/arm/mach-omap2/prm2xxx_3xxx.h+428−0

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

arch/arm/mach-omap2/prm44xx.c+80−1

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

arch/arm/mach-omap2/prm44xx.h+396−370

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

arch/arm/mach-omap2/prminst44xx.c+66−0

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

arch/arm/mach-omap2/prminst44xx.h+25−0

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

arch/arm/mach-omap2/scrm44xx.h+175−0

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

arch/arm/mach-omap2/sdram-nokia.crenamed from arch/arm/mach-omap2/board-rx51-sdram.c+80−22

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

arch/arm/mach-omap2/sdram-nokia.h+12−0

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

arch/arm/mach-omap2/sdrc.c+0−2

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

arch/arm/mach-omap2/sdrc.h+0−1

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

arch/arm/mach-omap2/sdrc2xxx.c+5−1

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

arch/arm/mach-omap2/serial.c+43−32

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

arch/arm/mach-omap2/sleep34xx.S+466−370

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

arch/arm/mach-omap2/smartreflex-class3.c+59−0

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

arch/arm/mach-omap2/smartreflex.c+1028−0

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

arch/arm/mach-omap2/sr_device.c+147−0

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

arch/arm/mach-omap2/sram242x.S+8−2

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

arch/arm/mach-omap2/sram243x.S+8−2

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

arch/arm/mach-omap2/sram34xx.S+7−1

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

arch/arm/mach-omap2/timer-gp.c+10−8

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

arch/arm/mach-omap2/usb-ehci.c+136−8

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

arch/arm/mach-omap2/usb-musb.c+102−2

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

arch/arm/mach-omap2/usb-tusb6010.c+4−3

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

arch/arm/mach-omap2/voltage.c+1572−0

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

arch/arm/mach-omap2/wd_timer.c+56−0

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

arch/arm/mach-omap2/wd_timer.h+17−0

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

arch/arm/mach-orion5x/Kconfig+7−0

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

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

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

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

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

arch/arm/mach-orion5x/ls-chl-setup.c+327−0

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

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

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

arch/arm/mach-pnx4008/irq.c+33−29

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

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

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

arch/arm/mach-pxa/Kconfig+18−7

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

arch/arm/mach-pxa/Makefile+6−4

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

arch/arm/mach-pxa/balloon3.c+49−33

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

arch/arm/mach-pxa/capc7117.c+1−1

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

arch/arm/mach-pxa/clock-pxa2xx.c+64−0

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

arch/arm/mach-pxa/clock-pxa3xx.c+217−0

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

arch/arm/mach-pxa/clock.c+10−19

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

arch/arm/mach-pxa/clock.h+29−20

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

arch/arm/mach-pxa/cm-x255.c+1−1

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

arch/arm/mach-pxa/cm-x270.c+1−1

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

arch/arm/mach-pxa/cm-x2xx-pci.c+1−1

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

arch/arm/mach-pxa/cm-x2xx.c+18−8

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

arch/arm/mach-pxa/cm-x300.c+1−1

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

arch/arm/mach-pxa/colibri-evalboard.crenamed from arch/arm/mach-pxa/colibri-pxa270-evalboard.c+53−43

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

arch/arm/mach-pxa/colibri-pxa270-income.c+0−47

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

arch/arm/mach-pxa/colibri-pxa270.c+104−4

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

arch/arm/mach-pxa/colibri-pxa300.c+35−38

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

arch/arm/mach-pxa/colibri-pxa320.c+69−70

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

arch/arm/mach-pxa/colibri-pxa3xx.c+0−49

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

arch/arm/mach-pxa/corgi.c+4−4

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

arch/arm/mach-pxa/cpufreq-pxa2xx.c+6−4

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

arch/arm/mach-pxa/csb726.c+5−4

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

arch/arm/mach-pxa/devices.c+125−124

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

arch/arm/mach-pxa/em-x270.c+3−3

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

arch/arm/mach-pxa/eseries.c+6−6

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

arch/arm/mach-pxa/ezx.c+6−6

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

arch/arm/mach-pxa/generic.c+10−39

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

arch/arm/mach-pxa/generic.h+8−7

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

arch/arm/mach-pxa/gumstix.c+1−1

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

arch/arm/mach-pxa/h5000.c+6−5

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

arch/arm/mach-pxa/himalaya.c+1−1

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

arch/arm/mach-pxa/hx4700.c+2−2

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

arch/arm/mach-pxa/icontrol.c+2−2

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

arch/arm/mach-pxa/idp.c+1−1

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

arch/arm/mach-pxa/include/mach/addr-map.h+48−0

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

arch/arm/mach-pxa/include/mach/balloon3.h+4−2

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

arch/arm/mach-pxa/include/mach/colibri.h+10−4

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

arch/arm/mach-pxa/include/mach/hardware.h+33−14

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

arch/arm/mach-pxa/include/mach/irqs.h+15−33

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

arch/arm/mach-pxa/include/mach/pxa2xx-regs.h+0−66

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

arch/arm/mach-pxa/include/mach/pxa3xx-regs.h+0−9

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

arch/arm/mach-pxa/include/mach/regs-intc.h+0−4

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

arch/arm/mach-pxa/include/mach/smemc.h+74−0

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

arch/arm/mach-pxa/irq.c+96−66

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

arch/arm/mach-pxa/littleton.c+2−2

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

arch/arm/mach-pxa/lpd270.c+12−10

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

arch/arm/mach-pxa/lubbock.c+13−11

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

arch/arm/mach-pxa/magician.c+1−1

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

arch/arm/mach-pxa/mainstone.c+12−10

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

arch/arm/mach-pxa/mioa701.c+1−1

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

arch/arm/mach-pxa/mp900.c+1−1

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

arch/arm/mach-pxa/mxm8x10.c+1−1

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

arch/arm/mach-pxa/palm27x.c+1−1

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

arch/arm/mach-pxa/palmld.c+1−1

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

arch/arm/mach-pxa/palmt5.c+1−1

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

arch/arm/mach-pxa/palmtc.c+158−32

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

arch/arm/mach-pxa/palmte2.c+1−1

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

arch/arm/mach-pxa/palmtreo.c+2−2

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

arch/arm/mach-pxa/palmtx.c+1−1

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

arch/arm/mach-pxa/palmz72.c+1−1

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

arch/arm/mach-pxa/pcm027.c+2−2

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

arch/arm/mach-pxa/pcm990-baseboard.c+8−7

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

arch/arm/mach-pxa/pm.c+3−3

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

arch/arm/mach-pxa/poodle.c+2−2

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

arch/arm/mach-pxa/pxa25x.c+56−37

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

arch/arm/mach-pxa/pxa27x.c+72−39

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

arch/arm/mach-pxa/pxa3xx.c+46−224

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

arch/arm/mach-pxa/pxa930.c+1−1

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

arch/arm/mach-pxa/pxa95x.c+308−0

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

arch/arm/mach-pxa/raumfeld.c+8−3

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

arch/arm/mach-pxa/saar.c+1−1

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

arch/arm/mach-pxa/saarb.c+114−0

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

arch/arm/mach-pxa/sharpsl_pm.c+3−2

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

arch/arm/mach-pxa/sleep.S+1−1

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

arch/arm/mach-pxa/smemc.c+17−34

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

arch/arm/mach-pxa/spitz.c+10−7

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

arch/arm/mach-pxa/stargate2.c+5−4

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

arch/arm/mach-pxa/tavorevb.c+1−1

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

arch/arm/mach-pxa/tavorevb3.c+1−1

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

arch/arm/mach-pxa/time.c+10−25

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

arch/arm/mach-pxa/tosa.c+7−4

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

arch/arm/mach-pxa/trizeps4.c+3−3

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

arch/arm/mach-pxa/viper.c+12−12

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

arch/arm/mach-pxa/vpac270.c+1−1

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

arch/arm/mach-pxa/xcep.c+4−3

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

arch/arm/mach-pxa/z2.c+2−2

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

arch/arm/mach-pxa/zeus.c+19−15

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

arch/arm/mach-pxa/zylonite.c+1−1

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

arch/arm/mach-realview/Kconfig+27−22

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

arch/arm/mach-realview/core.c+12−6

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

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

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

arch/arm/mach-realview/hotplug.c+15−29

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

arch/arm/mach-realview/include/mach/entry-macro.S+1−64

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

arch/arm/mach-realview/include/mach/smp.h+2−3

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

arch/arm/mach-realview/platsmp.c+37−79

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

arch/arm/mach-realview/realview_eb.c+6−8

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

arch/arm/mach-realview/realview_pb1176.c+6−5

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

arch/arm/mach-realview/realview_pb11mp.c+5−5

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

arch/arm/mach-realview/realview_pba8.c+3−3

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

arch/arm/mach-realview/realview_pbx.c+5−8

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

arch/arm/mach-rpc/irq.c+30−30

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

arch/arm/mach-s3c2410/bast-irq.c+11−11

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

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

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

arch/arm/mach-s3c2410/include/mach/map.h+2−2

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

arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h+1−0

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

arch/arm/mach-s3c2410/mach-h1940.c+1−1

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

arch/arm/mach-s3c2412/Kconfig+1−1

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

arch/arm/mach-s3c2412/irq.c+25−25

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

arch/arm/mach-s3c2416/Kconfig+12−0

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

arch/arm/mach-s3c2416/Makefile+4−0

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

arch/arm/mach-s3c2416/clock.c+13−5

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

arch/arm/mach-s3c2416/irq.c+36−40

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

arch/arm/mach-s3c2416/mach-smdk2416.c+23−0

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

arch/arm/mach-s3c2416/s3c2416.c+5−0

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

arch/arm/mach-s3c2416/setup-sdhci-gpio.c+34−0

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

arch/arm/mach-s3c2416/setup-sdhci.c+61−0

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

arch/arm/mach-s3c2440/irq.c+9−9

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

arch/arm/mach-s3c2440/mach-rx1950.c+1−1

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

arch/arm/mach-s3c2440/s3c244x-irq.c+9−9

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

arch/arm/mach-s3c2443/Kconfig+2−1

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

arch/arm/mach-s3c2443/clock.c+2−2

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

arch/arm/mach-s3c2443/irq.c+45−50

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

arch/arm/mach-s3c2443/mach-smdk2443.c+8−1

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

arch/arm/mach-s3c2443/s3c2443.c+7−0

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

arch/arm/mach-s3c64xx/clock.c+4−17

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

arch/arm/mach-s3c64xx/dev-audio.c+35−40

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

arch/arm/mach-s3c64xx/dma.c+2−1

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

arch/arm/mach-s3c64xx/irq-eint.c+19−18

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

arch/arm/mach-s3c64xx/mach-smdk6410.c+1−1

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

arch/arm/mach-s5p6442/clock.c+3−13

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

arch/arm/mach-s5p6442/dev-audio.c+37−7

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

arch/arm/mach-s5p6442/include/mach/map.h+38−30

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

arch/arm/mach-s5p6442/mach-smdk6442.c+11−0

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

arch/arm/mach-s5p6442/setup-i2c0.c+4−1

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

arch/arm/mach-s5p64x0/Makefile+2−2

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

arch/arm/mach-s5p64x0/clock-s5p6440.c+7−17

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

arch/arm/mach-s5p64x0/clock-s5p6450.c+22−14

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

arch/arm/mach-s5p64x0/dev-audio.c+114−30

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

arch/arm/mach-s5p64x0/gpiolib.crenamed from arch/arm/mach-s5p64x0/gpio.c+195−26

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

arch/arm/mach-s5p64x0/include/mach/map.h+44−38

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

arch/arm/mach-s5p64x0/include/mach/regs-gpio.h+16−41

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

arch/arm/mach-s5p64x0/mach-smdk6440.c+2−0

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

arch/arm/mach-s5p64x0/mach-smdk6450.c+2−0

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

arch/arm/mach-s5pc100/clock.c+3−13

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

arch/arm/mach-s5pc100/dev-audio.c+42−14

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

arch/arm/mach-s5pc100/include/mach/map.h+82−107

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

arch/arm/mach-s5pc100/mach-smdkc100.c+2−0

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

arch/arm/mach-s5pv210/Kconfig+2−0

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

arch/arm/mach-s5pv210/clock.c+15−20

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

arch/arm/mach-s5pv210/cpu.c+0−5

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

arch/arm/mach-s5pv210/dev-audio.c+43−15

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

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

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

arch/arm/mach-s5pv210/include/mach/map.h+85−81

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

arch/arm/mach-s5pv210/include/mach/regs-clock.h+1−4

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

arch/arm/mach-s5pv210/mach-aquila.c+9−6

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

arch/arm/mach-s5pv210/mach-goni.c+9−6

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

arch/arm/mach-s5pv210/mach-smdkc110.c+2−0

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

arch/arm/mach-s5pv210/mach-smdkv210.c+136−4

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

arch/arm/mach-s5pv310/Kconfig+23−0

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

arch/arm/mach-s5pv310/Makefile+6−1

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

arch/arm/mach-s5pv310/clock.c+55−22

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

arch/arm/mach-s5pv310/cpu.c+21−6

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

arch/arm/mach-s5pv310/cpufreq.c+580−0

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

arch/arm/mach-s5pv310/dev-audio.c+364−0

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

arch/arm/mach-s5pv310/dev-pd.c+139−0

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

arch/arm/mach-s5pv310/dev-sysmmu.c+187−0

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

arch/arm/mach-s5pv310/dma.c+168−0

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

arch/arm/mach-s5pv310/hotplug.c+15−29

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

arch/arm/mach-s5pv310/include/mach/dma.hrenamed from arch/arm/mach-pxa/include/mach/pxa2xx_spi.h+7−28

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

arch/arm/mach-s5pv310/include/mach/irqs.h+34−3

This diff is large: its 75 lines aren’t shown here.

arch/arm/mach-s5pv310/include/mach/map.h+83−38

This diff is large: its 160 lines aren’t shown here.

arch/arm/mach-s5pv310/include/mach/regs-clock.h+78−2

This diff is large: its 112 lines aren’t shown here.

arch/arm/mach-s5pv310/include/mach/regs-mem.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-s5pv310/include/mach/regs-pmu.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-s5pv310/include/mach/regs-srom.h+0−50

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-s5pv310/include/mach/regs-sysmmu.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-s5pv310/include/mach/smp.h+2−5

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-s5pv310/include/mach/sysmmu.h+122−0

This diff is large: its 123 lines aren’t shown here.

arch/arm/mach-s5pv310/irq-combiner.c+19−13

This diff is large: its 86 lines aren’t shown here.

arch/arm/mach-s5pv310/irq-eint.c+28−27

This diff is large: its 111 lines aren’t shown here.

arch/arm/mach-s5pv310/mach-smdkc210.c+37−16

This diff is large: its 101 lines aren’t shown here.

arch/arm/mach-s5pv310/mach-smdkv310.c+37−16

This diff is large: its 101 lines aren’t shown here.

arch/arm/mach-s5pv310/mach-universal_c210.c+80−0

This diff is large: its 115 lines aren’t shown here.

arch/arm/mach-s5pv310/platsmp.c+24−44

This diff is large: its 137 lines aren’t shown here.

arch/arm/mach-s5pv310/time.c+1−5

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-sa1100/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-sa1100/Makefile+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-sa1100/collie.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-sa1100/cpu-sa1100.c+25−26

This diff is large: its 90 lines aren’t shown here.

arch/arm/mach-sa1100/cpu-sa1110.c+33−24

This diff is large: its 148 lines aren’t shown here.

arch/arm/mach-sa1100/generic.c+33−32

This diff is large: its 127 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/hardware.h+8−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-sa1100/include/mach/nanoengine.h+52−0

This diff is large: its 53 lines aren’t shown here.

arch/arm/mach-sa1100/irq.c+42−42

This diff is large: its 178 lines aren’t shown here.

arch/arm/mach-sa1100/nanoengine.c+119−0

This diff is large: its 120 lines aren’t shown here.

arch/arm/mach-sa1100/neponset.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-sa1100/pci-nanoengine.c+284−0

This diff is large: its 285 lines aren’t shown here.

arch/arm/mach-sa1100/pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-sa1100/simpad.c+4−3

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-sa1100/time.c+31−5

This diff is large: its 72 lines aren’t shown here.

arch/arm/mach-shark/irq.c+13−13

This diff is large: its 60 lines aren’t shown here.

arch/arm/mach-shmobile/Kconfig+25−12

This diff is large: its 76 lines aren’t shown here.

arch/arm/mach-shmobile/Makefile+24−4

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-shmobile/board-ag5evm.c+491−0

This diff is large: its 492 lines aren’t shown here.

arch/arm/mach-shmobile/board-ap4evb.c+59−49

This diff is large: its 234 lines aren’t shown here.

arch/arm/mach-shmobile/board-g3evm.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-shmobile/board-g4evm.c+16−0

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-shmobile/board-mackerel.c+1220−0

This diff is large: its 1221 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh7367.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh7372.c+12−7

This diff is large: its 69 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh7377.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-shmobile/clock-sh73a0.c+377−0

This diff is large: its 378 lines aren’t shown here.

arch/arm/mach-shmobile/entry-gic.S+18−0

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-shmobile/entry-intc.S+57−0

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-shmobile/headsmp.S+27−0

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-shmobile/hotplug.c+41−0

This diff is large: its 42 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/common.h+16−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/entry-macro.S+7−34

This diff is large: its 62 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/hardware.h+0−3

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/head-ap4evb.txt+94−0

This diff is large: its 95 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/head-mackerel.txt+94−0

This diff is large: its 95 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/irqs.h+4−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/sh7372.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/sh73a0.h+467−0

This diff is large: its 468 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/smp.h+16−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/zboot.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-shmobile/include/mach/zboot_macros.h+65−0

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-shmobile/intc-sh7367.c+3−3

This diff is large: its 22 lines aren’t shown here.

arch/arm/mach-shmobile/intc-sh7372.c+9−6

This diff is large: its 66 lines aren’t shown here.

arch/arm/mach-shmobile/intc-sh7377.c+2−2

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-shmobile/intc-sh73a0.c+268−0

This diff is large: its 269 lines aren’t shown here.

arch/arm/mach-shmobile/localtimer.c+25−0

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-shmobile/pfc-sh73a0.c+2746−0

This diff is large: its 2747 lines aren’t shown here.

arch/arm/mach-shmobile/platsmp.c+70−0

This diff is large: its 71 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh7367.c+14−0

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh7372.c+24−0

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh7377.c+16−0

This diff is large: its 72 lines aren’t shown here.

arch/arm/mach-shmobile/setup-sh73a0.c+430−0

This diff is large: its 431 lines aren’t shown here.

arch/arm/mach-shmobile/smp-sh73a0.c+97−0

This diff is large: its 98 lines aren’t shown here.

arch/arm/mach-spear3xx/include/mach/spear320.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-spear3xx/spear300.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-spear3xx/spear310.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-spear3xx/spear320.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-spear3xx/spear3xx.c+3−3

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-spear6xx/spear6xx.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-stmp378x/stmp378x.c+8−8

This diff is large: its 41 lines aren’t shown here.

arch/arm/mach-stmp37xx/stmp37xx.c+12−12

This diff is large: its 49 lines aren’t shown here.

arch/arm/mach-tcc8k/clock.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-tcc8k/irq.c+28−28

This diff is large: its 94 lines aren’t shown here.

arch/arm/mach-tcc8k/time.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-tegra/clock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-tegra/clock.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-tegra/gpio.c+21−21

This diff is large: its 109 lines aren’t shown here.

arch/arm/mach-tegra/hotplug.c+15−29

This diff is large: its 111 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/clk.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/clkdev.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/entry-macro.S+2−64

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/io.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/kbc.h+61−0

This diff is large: its 62 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/sdhci.h+29−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-tegra/include/mach/smp.h+2−10

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-tegra/irq.c+22−22

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-tegra/platsmp.c+9−26

This diff is large: its 73 lines aren’t shown here.

arch/arm/mach-tegra/tegra2_clocks.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-tegra/timer.c+25−6

This diff is large: its 73 lines aren’t shown here.

arch/arm/mach-u300/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-u300/clock.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-u300/include/mach/coh901318.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-u300/timer.c+15−7

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-ux500/Kconfig+14−12

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-ux500/Makefile+9−6

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-keypads.c+229−0

This diff is large: its 230 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-regulators.c+74−79

This diff is large: its 174 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-regulators.h+19−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-sdi.c+74−5

This diff is large: its 111 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500.c+65−166

This diff is large: its 314 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500.h+9−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-ux500/board-u5500-sdi.c+49−0

This diff is large: its 50 lines aren’t shown here.

arch/arm/mach-ux500/board-u5500.c+12−7

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-ux500/clock.c+273−105

This diff is large: its 481 lines aren’t shown here.

arch/arm/mach-ux500/clock.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-ux500/cpu-db5500.c+47−9

This diff is large: its 93 lines aren’t shown here.

arch/arm/mach-ux500/cpu-db8500.c+60−95

This diff is large: its 203 lines aren’t shown here.

arch/arm/mach-ux500/cpu.c+41−48

This diff is large: its 147 lines aren’t shown here.

arch/arm/mach-ux500/cpufreq.c+211−0

This diff is large: its 212 lines aren’t shown here.

arch/arm/mach-ux500/devices-common.c+145−0

This diff is large: its 146 lines aren’t shown here.

arch/arm/mach-ux500/devices-common.h+82−0

This diff is large: its 83 lines aren’t shown here.

arch/arm/mach-ux500/devices-db5500.c+0−46

This diff is large: its 47 lines aren’t shown here.

arch/arm/mach-ux500/devices-db5500.h+66−0

This diff is large: its 67 lines aren’t shown here.

arch/arm/mach-ux500/devices-db8500.c+1−168

This diff is large: its 183 lines aren’t shown here.

arch/arm/mach-ux500/devices-db8500.h+98−0

This diff is large: its 99 lines aren’t shown here.

arch/arm/mach-ux500/devices.c+0−63

This diff is large: its 70 lines aren’t shown here.

arch/arm/mach-ux500/dma-db5500.c+120−0

This diff is large: its 121 lines aren’t shown here.

arch/arm/mach-ux500/headsmp.S+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ux500/hotplug.c+1−17

This diff is large: its 44 lines aren’t shown here.

arch/arm/mach-ux500/id.c+107−0

This diff is large: its 108 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/db5500-regs.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/db8500-regs.h+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/debug-macro.S+18−1

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/devices.h+0−17

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/entry-macro.S+1−70

This diff is large: its 81 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/gpio.h+0−38

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/hardware.h+2−106

This diff is large: its 121 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/id.h+80−0

This diff is large: its 81 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/irqs-board-mop500.h+26−2

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/irqs.h+1−45

This diff is large: its 60 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/mbox-db5500.hrenamed from arch/arm/mach-ux500/include/mach/mbox.h+0−0

File renamed without changes.

arch/arm/mach-ux500/include/mach/prcmu-defs.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/prcmu-regs.h+10−5

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/prcmu.h+14−1

This diff is large: its 29 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/setup.h+7−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/smp.h+2−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-ux500/include/mach/uncompress.h+14−9

This diff is large: its 53 lines aren’t shown here.

arch/arm/mach-ux500/mbox-db5500.crenamed from arch/arm/mach-ux500/mbox.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-ux500/modem-irq-db5500.crenamed from arch/arm/mach-ux500/modem_irq.c+5−0

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-ux500/platsmp.c+54−54

This diff is large: its 186 lines aren’t shown here.

arch/arm/mach-ux500/prcmu.c+171−8

This diff is large: its 235 lines aren’t shown here.

arch/arm/mach-versatile/Kconfig+7−4

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-versatile/core.c+22−11

This diff is large: its 80 lines aren’t shown here.

arch/arm/mach-vexpress/Makefile+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-vexpress/core.h+0−2

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-vexpress/ct-ca9x4.c+4−8

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-vexpress/hotplug.c+128−0

This diff is large: its 129 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/entry-macro.S+1−61

This diff is large: its 69 lines aren’t shown here.

arch/arm/mach-vexpress/include/mach/smp.h+2−3

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-vexpress/platsmp.c+27−49

This diff is large: its 144 lines aren’t shown here.

arch/arm/mach-vexpress/v2m.c+14−3

This diff is large: its 40 lines aren’t shown here.

arch/arm/mach-w90x900/clock.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-w90x900/irq.c+10−10

This diff is large: its 57 lines aren’t shown here.

arch/arm/mach-w90x900/time.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/arm/mm/Kconfig+45−4

This diff is large: its 98 lines aren’t shown here.

arch/arm/mm/Makefile+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mm/cache-l2x0.c+6−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/mm/dma-mapping.c+24−6

This diff is large: its 88 lines aren’t shown here.

arch/arm/mm/fault-armv.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mm/fault.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mm/flush.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/idmap.c+67−0

This diff is large: its 68 lines aren’t shown here.

arch/arm/mm/init.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/mm/ioremap.c+2−6

This diff is large: its 15 lines aren’t shown here.

arch/arm/mm/mm.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mm/mmu.c+16−52

This diff is large: its 173 lines aren’t shown here.

arch/arm/mm/pgd.c+19−20

This diff is large: its 84 lines aren’t shown here.

arch/arm/mm/proc-macros.S+22−15

This diff is large: its 115 lines aren’t shown here.

arch/arm/mm/proc-v7.S+23−12

This diff is large: its 86 lines aren’t shown here.

arch/arm/mm/proc-xscale.S+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/oprofile/common.c+3−11

This diff is large: its 46 lines aren’t shown here.

arch/arm/plat-iop/time.c+17−10

This diff is large: its 86 lines aren’t shown here.

arch/arm/plat-mxc/3ds_debugboard.c+14−14

This diff is large: its 78 lines aren’t shown here.

arch/arm/plat-mxc/Kconfig+4−11

This diff is large: its 36 lines aren’t shown here.

arch/arm/plat-mxc/Makefile+3−2

This diff is large: its 14 lines aren’t shown here.

arch/arm/plat-mxc/audmux-v2.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/plat-mxc/avic.crenamed from arch/arm/plat-mxc/irq.c+23−17

This diff is large: its 89 lines aren’t shown here.

arch/arm/plat-mxc/cpufreq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-mxc/devices.c+21−2

This diff is large: its 45 lines aren’t shown here.

arch/arm/plat-mxc/devices/Kconfig+49−5

This diff is large: its 79 lines aren’t shown here.

arch/arm/plat-mxc/devices/Makefile+15−1

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-esdhc.c+0−71

This diff is large: its 72 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-fec.c+9−4

This diff is large: its 36 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-flexcan.c+38−10

This diff is large: its 65 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c+56−0

This diff is large: its 57 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imx-dma.c+108−19

This diff is large: its 172 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imx-fb.c+52−0

This diff is large: its 53 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imx-i2c.c+17−8

This diff is large: its 68 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imx-keypad.c+67−0

This diff is large: its 68 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imx-ssi.c+9−8

This diff is large: its 57 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imx-uart.c+30−8

This diff is large: its 82 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imx2-wdt.c+68−0

This diff is large: its 69 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imx21-hcd.c+41−0

This diff is large: its 42 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imx_udc.c+75−0

This diff is large: its 76 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-imxdi_rtc.c+41−0

This diff is large: its 42 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-mx1-camera.c+42−0

This diff is large: its 43 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-mx2-camera.c+64−0

This diff is large: its 65 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-mxc-ehci.c+69−0

This diff is large: its 70 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-mxc-mmc.c+72−0

This diff is large: its 73 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-mxc_nand.c+5−5

This diff is large: its 33 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-mxc_pwm.c+69−0

This diff is large: its 70 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-mxc_rnga.c+56−0

This diff is large: its 57 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-mxc_w1.c+50−0

This diff is large: its 51 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-sdhci-esdhc-imx.c+86−0

This diff is large: its 87 lines aren’t shown here.

arch/arm/plat-mxc/devices/platform-spi_imx.c+20−8

This diff is large: its 71 lines aren’t shown here.

arch/arm/plat-mxc/ehci.c+58−19

This diff is large: its 189 lines aren’t shown here.

arch/arm/plat-mxc/epit.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/arm/plat-mxc/gpio.c+127−17

This diff is large: its 199 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/common.h+8−1

This diff is large: its 37 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/debug-macro.S+7−16

This diff is large: its 66 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/devices-common.h+159−15

This diff is large: its 224 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/entry-macro.S+7−7

This diff is large: its 23 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/gpio.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/hardware.h+90−4

This diff is large: its 109 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/imxfb.h+3−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/iomux-mx50.h+977−0

This diff is large: its 978 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/iomux-mx51.h+1539−359

This diff is large: its 1913 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/iomux-mx53.h+325−0

This diff is large: its 326 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/iomux-v3.h+41−24

This diff is large: its 91 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/irqs.h+7−3

This diff is large: its 29 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/memory.h+7−1

This diff is large: its 24 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx1.h+15−140

This diff is large: its 192 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx21.h+8−42

This diff is large: its 90 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx25.h+29−17

This diff is large: its 93 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx27.h+17−88

This diff is large: its 164 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx2x.h+0−149

This diff is large: its 171 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx31.h+17−70

This diff is large: its 169 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx35.h+14−37

This diff is large: its 119 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx3x.h+2−196

This diff is large: its 264 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx50.h+285−0

This diff is large: its 286 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx51.h+14−65

This diff is large: its 186 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mx53.h+353−0

This diff is large: its 354 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mxc.h+41−1

This diff is large: its 66 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mxc91231.h+3−20

This diff is large: its 81 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/mxc_ehci.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/sdma.h+46−0

This diff is large: its 64 lines aren’t shown here.

arch/arm/plat-mxc/include/mach/uncompress.h+10−0

This diff is large: its 33 lines aren’t shown here.

arch/arm/plat-mxc/iomux-v3.c+19−12

This diff is large: its 51 lines aren’t shown here.

arch/arm/plat-mxc/irq-common.c+60−0

This diff is large: its 61 lines aren’t shown here.

arch/arm/plat-mxc/irq-common.h+29−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-mxc/pwm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-mxc/system.c+9−1

This diff is large: its 29 lines aren’t shown here.

arch/arm/plat-mxc/time.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/arm/plat-mxc/tzic.c+54−22

This diff is large: its 137 lines aren’t shown here.

arch/arm/plat-nomadik/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-nomadik/gpio.c+73−35

This diff is large: its 240 lines aren’t shown here.

arch/arm/plat-nomadik/include/plat/pincfg.h+55−15

This diff is large: its 103 lines aren’t shown here.

arch/arm/plat-nomadik/include/plat/ste_dma40.h+8−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/plat-nomadik/timer.c+11−69

This diff is large: its 123 lines aren’t shown here.

arch/arm/plat-omap/Kconfig+38−7

This diff is large: its 88 lines aren’t shown here.

arch/arm/plat-omap/counter_32k.c+45−22

This diff is large: its 156 lines aren’t shown here.

arch/arm/plat-omap/devices.c+0−40

This diff is large: its 47 lines aren’t shown here.

arch/arm/plat-omap/dma.c+292−406

This diff is large: its 1412 lines aren’t shown here.

arch/arm/plat-omap/gpio.c+280−489

This diff is large: its 1207 lines aren’t shown here.

arch/arm/plat-omap/i2c.c+57−71

This diff is large: its 202 lines aren’t shown here.

arch/arm/plat-omap/include/plat/clkdev_omap.h+11−11

This diff is large: its 38 lines aren’t shown here.

arch/arm/plat-omap/include/plat/clock.h+11−5

This diff is large: its 41 lines aren’t shown here.

arch/arm/plat-omap/include/plat/common.h+5−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/plat-omap/include/plat/display.h+9−0

This diff is large: its 44 lines aren’t shown here.

arch/arm/plat-omap/include/plat/dma.h+99−133

This diff is large: its 255 lines aren’t shown here.

arch/arm/plat-omap/include/plat/fpga.h+0−4

This diff is large: its 12 lines aren’t shown here.

arch/arm/plat-omap/include/plat/gpio.h+29−19

This diff is large: its 73 lines aren’t shown here.

arch/arm/plat-omap/include/plat/gpmc.h+5−4

This diff is large: its 25 lines aren’t shown here.

arch/arm/plat-omap/include/plat/i2c.h+13−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/plat-omap/include/plat/io.h+5−4

This diff is large: its 17 lines aren’t shown here.

arch/arm/plat-omap/include/plat/iommu.h+5−0

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-omap/include/plat/irqs.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-omap/include/plat/keypad.h+20−15

This diff is large: its 56 lines aren’t shown here.

arch/arm/plat-omap/include/plat/l4_3xxx.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/plat-omap/include/plat/mailbox.h+5−3

This diff is large: its 28 lines aren’t shown here.

arch/arm/plat-omap/include/plat/memory.h+4−4

This diff is large: its 22 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap-pm.h+14−25

This diff is large: its 69 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap-serial.h+1−13

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap44xx.h+5−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap_device.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/include/plat/omap_hwmod.h+54−21

This diff is large: its 228 lines aren’t shown here.

arch/arm/plat-omap/include/plat/onenand.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-omap/include/plat/panel-generic-dpi.h+37−0

This diff is large: its 38 lines aren’t shown here.

arch/arm/plat-omap/include/plat/prcm.h+4−16

This diff is large: its 34 lines aren’t shown here.

arch/arm/plat-omap/include/plat/serial.h+4−1

This diff is large: its 14 lines aren’t shown here.

arch/arm/plat-omap/include/plat/smartreflex.h+245−0

This diff is large: its 246 lines aren’t shown here.

arch/arm/plat-omap/include/plat/smp.h+2−3

This diff is large: its 20 lines aren’t shown here.

arch/arm/plat-omap/include/plat/sram.h+11−0

This diff is large: its 23 lines aren’t shown here.

arch/arm/plat-omap/include/plat/uncompress.h+3−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/plat-omap/include/plat/usb.h+10−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/plat-omap/include/plat/voltage.h+155−0

This diff is large: its 156 lines aren’t shown here.

arch/arm/plat-omap/io.c+0−58

This diff is large: its 62 lines aren’t shown here.

arch/arm/plat-omap/iommu.c+24−0

This diff is large: its 38 lines aren’t shown here.

arch/arm/plat-omap/iovmm.c+46−35

This diff is large: its 190 lines aren’t shown here.

arch/arm/plat-omap/mailbox.c+76−54

This diff is large: its 229 lines aren’t shown here.

arch/arm/plat-omap/mcbsp.c+11−15

This diff is large: its 88 lines aren’t shown here.

arch/arm/plat-omap/omap-pm-noop.c+55−23

This diff is large: its 109 lines aren’t shown here.

arch/arm/plat-omap/omap_device.c+28−0

This diff is large: its 35 lines aren’t shown here.

arch/arm/plat-omap/sram.c+6−8

This diff is large: its 38 lines aren’t shown here.

arch/arm/plat-orion/gpio.c+18−19

This diff is large: its 90 lines aren’t shown here.

arch/arm/plat-orion/irq.c+9−9

This diff is large: its 41 lines aren’t shown here.

arch/arm/plat-orion/time.c+11−39

This diff is large: its 93 lines aren’t shown here.

arch/arm/plat-pxa/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-pxa/gpio.c+14−14

This diff is large: its 80 lines aren’t shown here.

arch/arm/plat-pxa/include/plat/gpio.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/plat-pxa/include/plat/mfp.h+2−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/plat-pxa/mfp.c+6−2

This diff is large: its 24 lines aren’t shown here.

arch/arm/plat-pxa/ssp.c+1−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/plat-s3c24xx/cpu-freq.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-s3c24xx/devs.c+3−17

This diff is large: its 42 lines aren’t shown here.

arch/arm/plat-s3c24xx/include/plat/irq.h+2−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/plat-s3c24xx/irq-pm.c+6−3

This diff is large: its 34 lines aren’t shown here.

arch/arm/plat-s3c24xx/irq.c+87−95

This diff is large: its 364 lines aren’t shown here.

arch/arm/plat-s3c24xx/s3c2443-clock.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-s5p/Kconfig+18−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/plat-s5p/Makefile+3−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/plat-s5p/cpu.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/plat-s5p/dev-csis0.c+34−0

This diff is large: its 35 lines aren’t shown here.

arch/arm/plat-s5p/dev-csis1.c+34−0

This diff is large: its 35 lines aren’t shown here.

arch/arm/plat-s5p/dev-uart.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/arm/plat-s5p/include/plat/csis.h+28−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/plat-s5p/include/plat/map-s5p.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-s5p/include/plat/regs-srom.h+54−0

This diff is large: its 55 lines aren’t shown here.

arch/arm/plat-s5p/irq-eint.c+44−42

This diff is large: its 152 lines aren’t shown here.

arch/arm/plat-s5p/irq-gpioint.c+25−25

This diff is large: its 118 lines aren’t shown here.

arch/arm/plat-s5p/irq-pm.c+3−3

This diff is large: its 18 lines aren’t shown here.

arch/arm/plat-s5p/sysmmu.c+326−0

This diff is large: its 327 lines aren’t shown here.

arch/arm/plat-samsung/Kconfig+14−0

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-samsung/Makefile+5−0

This diff is large: its 19 lines aren’t shown here.

arch/arm/plat-samsung/clock.c+92−0

This diff is large: its 103 lines aren’t shown here.

arch/arm/plat-samsung/dev-asocdma.c+25−0

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-samsung/dev-nand.c+0−2

This diff is large: its 6 lines aren’t shown here.

arch/arm/plat-samsung/dev-ts.c+0−1

This diff is large: its 5 lines aren’t shown here.

arch/arm/plat-samsung/gpio-config.c+42−0

This diff is large: its 49 lines aren’t shown here.

arch/arm/plat-samsung/gpiolib.c+7−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/audio.h+24−0

This diff is large: its 35 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/clock.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/devs.h+18−1

This diff is large: its 47 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/gpio-core.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/pd.h+30−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/pm.h+5−1

This diff is large: its 20 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/sdhci.h+35−0

This diff is large: its 49 lines aren’t shown here.

arch/arm/plat-samsung/irq-uart.c+20−20

This diff is large: its 100 lines aren’t shown here.

arch/arm/plat-samsung/irq-vic-timer.c+15−11

This diff is large: its 68 lines aren’t shown here.

arch/arm/plat-samsung/pd.c+95−0

This diff is large: its 96 lines aren’t shown here.

arch/arm/plat-samsung/pm.c+4−4

This diff is large: its 28 lines aren’t shown here.

arch/arm/plat-spear/include/plat/clock.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-spear/include/plat/keyboard.h+141−0

This diff is large: its 142 lines aren’t shown here.

arch/arm/plat-spear/include/plat/uncompress.h+2−2

This diff is large: its 13 lines aren’t shown here.

arch/arm/plat-spear/include/plat/vmalloc.h+1−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-spear/shirq.c+11−11

This diff is large: its 59 lines aren’t shown here.

arch/arm/plat-spear/time.c+1−5

This diff is large: its 21 lines aren’t shown here.

arch/arm/plat-stmp3xxx/clock.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/arm/plat-stmp3xxx/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-stmp3xxx/pinmux.c+16−16

This diff is large: its 97 lines aren’t shown here.

arch/arm/plat-stmp3xxx/timer.c+1−4

This diff is large: its 26 lines aren’t shown here.

arch/arm/plat-versatile/Makefile+3−3

This diff is large: its 11 lines aren’t shown here.

arch/arm/plat-versatile/include/plat/sched_clock.h+6−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/plat-versatile/sched-clock.c+28−23

This diff is large: its 65 lines aren’t shown here.

arch/arm/tools/mach-types+101−4

This diff is large: its 137 lines aren’t shown here.

arch/arm/vfp/vfpmodule.c+23−1

This diff is large: its 48 lines aren’t shown here.

arch/avr32/Kconfig+2−2

This diff is large: its 11 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/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/configs/atngw100_defconfig+10−13

This diff is large: its 97 lines aren’t shown here.

arch/avr32/configs/atngw100_evklcd100_defconfig+10−7

This diff is large: its 86 lines aren’t shown here.

arch/avr32/configs/atngw100_evklcd101_defconfig+10−7

This diff is large: its 86 lines aren’t shown here.

arch/avr32/configs/atngw100mkii_defconfig+10−12

This diff is large: its 95 lines aren’t shown here.

arch/avr32/configs/atngw100mkii_evklcd100_defconfig+10−7

This diff is large: its 86 lines aren’t shown here.

arch/avr32/configs/atngw100mkii_evklcd101_defconfig+10−7

This diff is large: its 86 lines aren’t shown here.

arch/avr32/configs/atstk1002_defconfig+11−14

This diff is large: its 111 lines aren’t shown here.

arch/avr32/configs/atstk1003_defconfig+19−22

This diff is large: its 120 lines aren’t shown here.

arch/avr32/configs/atstk1004_defconfig+93−16

This diff is large: its 154 lines aren’t shown here.

arch/avr32/configs/atstk1006_defconfig+10−13

This diff is large: its 91 lines aren’t shown here.

arch/avr32/configs/favr-32_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/configs/hammerhead_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/avr32/include/asm/pgalloc.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/avr32/include/asm/syscalls.h+0−14

This diff is large: its 21 lines aren’t shown here.

arch/avr32/kernel/process.c+4−5

This diff is large: its 19 lines aren’t shown here.

arch/avr32/kernel/time.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/avr32/mach-at32ap/pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/Kconfig+3−14

This diff is large: its 38 lines aren’t shown here.

arch/blackfin/Makefile+6−3

This diff is large: its 23 lines aren’t shown here.

arch/blackfin/boot/Makefile+1−1

This diff is large: its 9 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/BF527-TLL6527M_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+113−0

This diff is large: its 114 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+121−0

This diff is large: its 122 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_dma.h+91−0

This diff is large: its 92 lines aren’t shown here.

arch/blackfin/include/asm/bfin_serial.h+277−0

This diff is large: its 278 lines aren’t shown here.

arch/blackfin/include/asm/bitops.h+2−0

This diff is large: its 10 lines aren’t shown here.

arch/blackfin/include/asm/cache.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/include/asm/cacheflush.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/blackfin/include/asm/dma.h+2−35

This diff is large: its 51 lines aren’t shown here.

arch/blackfin/include/asm/dpmc.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/include/asm/io.h+37−231

This diff is large: its 301 lines aren’t shown here.

arch/blackfin/include/asm/irqflags.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/blackfin/include/asm/processor.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/include/asm/spinlock.h+16−12

This diff is large: its 62 lines aren’t shown here.

arch/blackfin/include/mach-common/pll.h+86−0

This diff is large: its 87 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-a.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-b.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-c.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-d.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-e.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-f.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-g.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-h.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-i.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/include/mach-common/ports-j.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/kernel/cplb-nompu/cplbinit.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/kernel/kgdb.c+26−0

This diff is large: its 47 lines aren’t shown here.

arch/blackfin/kernel/kgdb_test.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/blackfin/mach-bf518/boards/ezbrd.c+14−15

This diff is large: its 75 lines aren’t shown here.

arch/blackfin/mach-bf518/boards/tcm-bf518.c+6−6

This diff is large: its 42 lines aren’t shown here.

arch/blackfin/mach-bf518/dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/bfin_serial.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/bfin_serial_5xx.h+2−71

This diff is large: its 94 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/blackfin.h+25−43

This diff is large: its 87 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/cdefBF512.h+1030−8

This diff is large: its 1052 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/cdefBF514.h+1−4

This diff is large: its 17 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/cdefBF516.h+1−4

This diff is large: its 17 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/cdefBF518.h+1−4

This diff is large: its 17 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/cdefBF51x_base.h+0−1061

This diff is large: its 1062 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/defBF512.h+1382−6

This diff is large: its 1401 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/defBF51x_base.h+0−1495

This diff is large: its 1496 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/gpio.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf518/include/mach/pll.h+1−63

This diff is large: its 65 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/ad7160eval.c+8−7

This diff is large: its 59 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/cm_bf527.c+10−7

This diff is large: its 73 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/ezbrd.c+10−7

This diff is large: its 73 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/ezkit.c+15−7

This diff is large: its 85 lines aren’t shown here.

arch/blackfin/mach-bf527/boards/tll6527m.c+8−8

This diff is large: its 60 lines aren’t shown here.

arch/blackfin/mach-bf527/dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/bfin_serial.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h+2−71

This diff is large: its 94 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/blackfin.h+18−30

This diff is large: its 68 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/cdefBF522.h+1083−9

This diff is large: its 1105 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/cdefBF525.h+2−5

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/cdefBF527.h+2−5

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h+0−1113

This diff is large: its 1114 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/defBF522.h+1387−6

This diff is large: its 1406 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/defBF525.h+1−1

This diff is large: its 7 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/defBF527.h+1−1

This diff is large: its 7 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/defBF52x_base.h+0−1506

This diff is large: its 1507 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/gpio.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf527/include/mach/pll.h+1−63

This diff is large: its 65 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/H8606.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/blackstamp.c+15−10

This diff is large: its 62 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/cm_bf533.c+5−5

This diff is large: its 33 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/ezkit.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/ip0x.c+1−10

This diff is large: its 33 lines aren’t shown here.

arch/blackfin/mach-bf533/boards/stamp.c+17−13

This diff is large: its 72 lines aren’t shown here.

arch/blackfin/mach-bf533/dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf533/include/mach/bfin_serial.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h+2−72

This diff is large: its 95 lines aren’t shown here.

arch/blackfin/mach-bf533/include/mach/blackfin.h+9−21

This diff is large: its 44 lines aren’t shown here.

arch/blackfin/mach-bf533/include/mach/cdefBF532.h+46−17

This diff is large: its 94 lines aren’t shown here.

arch/blackfin/mach-bf533/include/mach/defBF532.h+3−125

This diff is large: its 163 lines aren’t shown here.

arch/blackfin/mach-bf533/include/mach/fio_flag.h+0−55

This diff is large: its 56 lines aren’t shown here.

arch/blackfin/mach-bf533/include/mach/gpio.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/blackfin/mach-bf533/include/mach/pll.h+1−57

This diff is large: its 59 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/Kconfig+6−0

This diff is large: its 11 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/cm_bf537e.c+6−6

This diff is large: its 42 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/cm_bf537u.c+6−6

This diff is large: its 42 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/dnp5370.c+418−0

This diff is large: its 419 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/minotaur.c+6−6

This diff is large: its 42 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/pnav10.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/stamp.c+9−9

This diff is large: its 69 lines aren’t shown here.

arch/blackfin/mach-bf537/boards/tcm_bf537.c+6−6

This diff is large: its 42 lines aren’t shown here.

arch/blackfin/mach-bf537/dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf537/include/mach/bfin_serial.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h+2−70

This diff is large: its 93 lines aren’t shown here.

arch/blackfin/mach-bf537/include/mach/blackfin.h+14−24

This diff is large: its 57 lines aren’t shown here.

arch/blackfin/mach-bf537/include/mach/cdefBF534.h+5−22

This diff is large: its 51 lines aren’t shown here.

arch/blackfin/mach-bf537/include/mach/cdefBF537.h+1−4

This diff is large: its 17 lines aren’t shown here.

arch/blackfin/mach-bf537/include/mach/defBF534.h+4−109

This diff is large: its 153 lines aren’t shown here.

arch/blackfin/mach-bf537/include/mach/defBF537.h+1−4

This diff is large: its 17 lines aren’t shown here.

arch/blackfin/mach-bf537/include/mach/gpio.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf537/include/mach/pll.h+1−57

This diff is large: its 59 lines aren’t shown here.

arch/blackfin/mach-bf538/boards/ezkit.c+10−10

This diff is large: its 78 lines aren’t shown here.

arch/blackfin/mach-bf538/dma.c+9−9

This diff is large: its 32 lines aren’t shown here.

arch/blackfin/mach-bf538/include/mach/bfin_serial.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/blackfin/mach-bf538/include/mach/bfin_serial_5xx.h+2−71

This diff is large: its 94 lines aren’t shown here.

arch/blackfin/mach-bf538/include/mach/blackfin.h+15−22

This diff is large: its 53 lines aren’t shown here.

arch/blackfin/mach-bf538/include/mach/cdefBF538.h+217−287

This diff is large: its 542 lines aren’t shown here.

arch/blackfin/mach-bf538/include/mach/cdefBF539.h+4−4

This diff is large: its 19 lines aren’t shown here.

arch/blackfin/mach-bf538/include/mach/defBF538.h+1825−0

This diff is large: its 1826 lines aren’t shown here.

arch/blackfin/mach-bf538/include/mach/defBF539.h+2−2093

This diff is large: its 2112 lines aren’t shown here.

arch/blackfin/mach-bf538/include/mach/gpio.h+5−0

This diff is large: its 10 lines aren’t shown here.

arch/blackfin/mach-bf538/include/mach/pll.h+1−63

This diff is large: its 65 lines aren’t shown here.

arch/blackfin/mach-bf548/boards/cm_bf548.c+15−12

This diff is large: its 118 lines aren’t shown here.

arch/blackfin/mach-bf548/boards/ezkit.c+15−12

This diff is large: its 118 lines aren’t shown here.

arch/blackfin/mach-bf548/dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/bfin_serial.h+16−0

This diff is large: its 17 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h+2−58

This diff is large: its 79 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/blackfin.h+26−44

This diff is large: its 91 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/cdefBF542.h+1−9

This diff is large: its 22 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/cdefBF544.h+1−9

This diff is large: its 22 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/cdefBF547.h+1−9

This diff is large: its 22 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/cdefBF548.h+1−9

This diff is large: its 22 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/cdefBF549.h+1−9

This diff is large: its 22 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h+1−22

This diff is large: its 41 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/defBF542.h+1−6

This diff is large: its 19 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/defBF544.h+1−6

This diff is large: its 19 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/defBF547.h+1−6

This diff is large: its 19 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/defBF548.h+1−6

This diff is large: its 19 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/defBF549.h+1−6

This diff is large: its 19 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/defBF54x_base.h+3−318

This diff is large: its 365 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/gpio.h+11−0

This diff is large: its 16 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/irq.h+22−0

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf548/include/mach/pll.h+1−69

This diff is large: its 71 lines aren’t shown here.

arch/blackfin/mach-bf561/atomic.S+5−0

This diff is large: its 26 lines aren’t shown here.

arch/blackfin/mach-bf561/boards/acvilon.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf561/boards/cm_bf561.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf561/boards/ezkit.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf561/boards/tepla.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/blackfin/mach-bf561/dma.c+9−9

This diff is large: its 32 lines aren’t shown here.

arch/blackfin/mach-bf561/hotplug.c+2−0

This diff is large: its 10 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/anomaly.h+5−1

This diff is large: its 13 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/bfin_serial.h+14−0

This diff is large: its 15 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h+2−72

This diff is large: its 95 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/blackfin.h+7−19

This diff is large: its 45 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/cdefBF561.h+217−286

This diff is large: its 541 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/defBF561.h+115−293

This diff is large: its 454 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/gpio.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/mem_map.h+9−7

This diff is large: its 57 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/pll.h+37−46

This diff is large: its 101 lines aren’t shown here.

arch/blackfin/mach-bf561/include/mach/smp.h+6−4

This diff is large: its 27 lines aren’t shown here.

arch/blackfin/mach-bf561/smp.c+17−12

This diff is large: its 72 lines aren’t shown here.

arch/blackfin/mach-common/entry.S+2−2

This diff is large: its 18 lines aren’t shown here.

arch/blackfin/mach-common/ints-priority.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/blackfin/mach-common/pm.c+1−11

This diff is large: its 57 lines aren’t shown here.

arch/blackfin/mach-common/smp.c+79−125

This diff is large: its 351 lines aren’t shown here.

arch/blackfin/mm/sram-alloc.c+9−9

This diff is large: its 28 lines aren’t shown here.

arch/cris/Kconfig+2−4

This diff is large: its 20 lines aren’t shown here.

arch/cris/arch-v10/kernel/irq.c+10−31

This diff is large: its 62 lines aren’t shown here.

arch/cris/arch-v32/kernel/irq.c+15−35

This diff is large: its 78 lines aren’t shown here.

arch/cris/arch-v32/lib/nand_init.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/configs/artpec_3_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/configs/etrax-100lx_v2_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/configs/etraxfs_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/include/asm/etraxgpio.h+1−1

This diff is large: its 7 lines aren’t shown here.

arch/cris/kernel/irq.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/cris/kernel/time.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/frv/Kconfig+1−8

This diff is large: its 23 lines aren’t shown here.

arch/frv/defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/h8300/Kconfig+2−4

This diff is large: its 20 lines aren’t shown here.

arch/h8300/Kconfig.debug+1−1

This diff is large: its 9 lines aren’t shown here.

arch/h8300/defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/h8300/kernel/irq.c+20−30

This diff is large: its 95 lines aren’t shown here.

arch/ia64/Kconfig+4−22

This diff is large: its 40 lines aren’t shown here.

arch/ia64/include/asm/io.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/ia64/include/asm/kvm_host.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/ia64/include/asm/page.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/processor.h+3−2

This diff is large: its 12 lines aren’t shown here.

arch/ia64/kernel/acpi.c+6−0

This diff is large: its 13 lines aren’t shown here.

arch/ia64/kernel/irq_ia64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/perfmon.c+7−6

This diff is large: its 54 lines aren’t shown here.

arch/ia64/kernel/process.c+1−5

This diff is large: its 14 lines aren’t shown here.

arch/ia64/kernel/smp.c+10−3

This diff is large: its 27 lines aren’t shown here.

arch/ia64/kernel/time.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kvm/kvm-ia64.c+9−21

This diff is large: its 84 lines aren’t shown here.

arch/ia64/kvm/mmio.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/mm/hugetlbpage.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/Kconfig+3−8

This diff is large: its 25 lines aren’t shown here.

arch/m32r/configs/m32700ut.smp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/m32700ut.up_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/mappi.nommu_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/mappi.smp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/mappi.up_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/mappi2.opsp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/mappi2.vdec2_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/mappi3.smp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/oaks32r_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/opsput_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/configs/usrv_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m32r/kernel/irq.c+7−5

This diff is large: its 40 lines aren’t shown here.

arch/m32r/platforms/m32104ut/setup.c+21−37

This diff is large: its 98 lines aren’t shown here.

arch/m32r/platforms/m32700ut/setup.c+73−141

This diff is large: its 384 lines aren’t shown here.

arch/m32r/platforms/mappi/setup.c+26−52

This diff is large: its 138 lines aren’t shown here.

arch/m32r/platforms/mappi2/setup.c+30−59

This diff is large: its 157 lines aren’t shown here.

arch/m32r/platforms/mappi3/setup.c+31−61

This diff is large: its 160 lines aren’t shown here.

arch/m32r/platforms/oaks32r/setup.c+22−43

This diff is large: its 115 lines aren’t shown here.

arch/m32r/platforms/opsput/setup.c+75−145

This diff is large: its 387 lines aren’t shown here.

arch/m32r/platforms/usrv/setup.c+40−75

This diff is large: its 208 lines aren’t shown here.

arch/m68k/amiga/config.c+7−9

This diff is large: its 34 lines aren’t shown here.

arch/m68k/atari/ataints.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/m68k/atari/config.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/atari/debug.c+7−7

This diff is large: its 45 lines aren’t shown here.

arch/m68k/ifpsp060/src/fpsp.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/include/asm/atarihw.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/include/asm/cacheflush_no.h+41−54

This diff is large: its 130 lines aren’t shown here.

arch/m68k/include/asm/coldfire.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/include/asm/entry_no.h+34−25

This diff is large: its 114 lines aren’t shown here.

arch/m68k/include/asm/gpio.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68k/include/asm/io_no.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/include/asm/m5206sim.h+13−1

This diff is large: its 35 lines aren’t shown here.

arch/m68k/include/asm/m520xsim.h+16−1

This diff is large: its 52 lines aren’t shown here.

arch/m68k/include/asm/m523xsim.h+11−0

This diff is large: its 25 lines aren’t shown here.

arch/m68k/include/asm/m5249sim.h+10−0

This diff is large: its 24 lines aren’t shown here.

arch/m68k/include/asm/m5272sim.h+8−0

This diff is large: its 22 lines aren’t shown here.

arch/m68k/include/asm/m527xsim.h+10−0

This diff is large: its 24 lines aren’t shown here.

arch/m68k/include/asm/m528xsim.h+11−0

This diff is large: its 25 lines aren’t shown here.

arch/m68k/include/asm/m52xxacr.h+94−0

This diff is large: its 95 lines aren’t shown here.

arch/m68k/include/asm/m5307sim.h+16−27

This diff is large: its 63 lines aren’t shown here.

arch/m68k/include/asm/m532xsim.h+9−24

This diff is large: its 48 lines aren’t shown here.

arch/m68k/include/asm/m53xxacr.h+101−0

This diff is large: its 102 lines aren’t shown here.

arch/m68k/include/asm/m5407sim.h+8−34

This diff is large: its 62 lines aren’t shown here.

arch/m68k/include/asm/m54xxacr.h+97−0

This diff is large: its 98 lines aren’t shown here.

arch/m68k/include/asm/m54xxgpt.hrenamed from arch/m68k/include/asm/m548xgpt.h+7−5

This diff is large: its 38 lines aren’t shown here.

arch/m68k/include/asm/m54xxsim.hrenamed from arch/m68k/include/asm/m548xsim.h+18−5

This diff is large: its 42 lines aren’t shown here.

arch/m68k/include/asm/mcfcache.h+0−150

This diff is large: its 151 lines aren’t shown here.

arch/m68k/include/asm/mcfsim.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/m68k/include/asm/mcfuart.h+1−44

This diff is large: its 59 lines aren’t shown here.

arch/m68k/include/asm/processor.h+8−5

This diff is large: its 32 lines aren’t shown here.

arch/m68k/include/asm/string.h+1−15

This diff is large: its 35 lines aren’t shown here.

arch/m68k/include/asm/sun3_pgtable.h+2−3

This diff is large: its 12 lines aren’t shown here.

arch/m68k/include/asm/thread_info.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/m68k/include/asm/unistd.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/m68k/kernel/entry.S+6−24

This diff is large: its 54 lines aren’t shown here.

arch/m68k/kernel/signal.c+131−183

This diff is large: its 546 lines aren’t shown here.

arch/m68k/lib/string.c+0−11

This diff is large: its 15 lines aren’t shown here.

arch/m68k/mac/psc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/Kconfig+88−19

This diff is large: its 237 lines aren’t shown here.

arch/m68knommu/Makefile+7−7

This diff is large: its 42 lines aren’t shown here.

arch/m68knommu/configs/m5208evb_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/configs/m5249evb_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/configs/m5272c3_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/configs/m5275evb_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/configs/m5307c3_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/configs/m5407c3_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/kernel/entry.S+0−16

This diff is large: its 23 lines aren’t shown here.

arch/m68knommu/kernel/setup.c+18−54

This diff is large: its 110 lines aren’t shown here.

arch/m68knommu/kernel/signal.c+82−106

This diff is large: its 464 lines aren’t shown here.

arch/m68knommu/kernel/vmlinux.lds.S+6−0

This diff is large: its 13 lines aren’t shown here.

arch/m68knommu/lib/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/m68knommu/lib/memmove.c+105−0

This diff is large: its 106 lines aren’t shown here.

arch/m68knommu/mm/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/m68knommu/mm/fault.c+0−57

This diff is large: its 58 lines aren’t shown here.

arch/m68knommu/mm/kmap.c+0−9

This diff is large: its 16 lines aren’t shown here.

arch/m68knommu/mm/memory.c+0−33

This diff is large: its 34 lines aren’t shown here.

arch/m68knommu/platform/5249/intc2.c+3−1

This diff is large: its 12 lines aren’t shown here.

arch/m68knommu/platform/54xx/Makefilerenamed from arch/m68knommu/platform/548x/Makefile+0−0

File renamed without changes.

arch/m68knommu/platform/54xx/config.crenamed from arch/m68knommu/platform/548x/config.c+16−16

This diff is large: its 95 lines aren’t shown here.

arch/m68knommu/platform/68328/entry.S+3−5

This diff is large: its 26 lines aren’t shown here.

arch/m68knommu/platform/68328/ints.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/m68knommu/platform/68360/commproc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/platform/68360/config.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/m68knommu/platform/68360/entry.S+3−5

This diff is large: its 26 lines aren’t shown here.

arch/m68knommu/platform/68360/ints.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/m68knommu/platform/coldfire/Makefile+2−2

This diff is large: its 18 lines aren’t shown here.

arch/m68knommu/platform/coldfire/cache.c+48−0

This diff is large: its 49 lines aren’t shown here.

arch/m68knommu/platform/coldfire/entry.S+12−50

This diff is large: its 120 lines aren’t shown here.

arch/m68knommu/platform/coldfire/head.S+21−5

This diff is large: its 48 lines aren’t shown here.

arch/microblaze/Kconfig+3−10

This diff is large: its 34 lines aren’t shown here.

arch/microblaze/Kconfig.debug+0−4

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/boot/Makefile+3−9

This diff is large: its 28 lines aren’t shown here.

arch/microblaze/configs/mmu_defconfig+1−2

This diff is large: its 15 lines aren’t shown here.

arch/microblaze/configs/nommu_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/include/asm/irqflags.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/include/asm/pgtable.h+17−16

This diff is large: its 54 lines aren’t shown here.

arch/microblaze/include/asm/prom.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/microblaze/include/asm/pvr.h+96−89

This diff is large: its 223 lines aren’t shown here.

arch/microblaze/include/asm/tlb.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/kernel/cpu/cpuinfo.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/kernel/cpu/pvr.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/microblaze/kernel/entry.S+39−7

This diff is large: its 79 lines aren’t shown here.

arch/microblaze/kernel/exceptions.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/microblaze/kernel/head.S+19−10

This diff is large: its 43 lines aren’t shown here.

arch/microblaze/kernel/hw_exception_handler.S+9−4

This diff is large: its 32 lines aren’t shown here.

arch/microblaze/kernel/prom.c+3−5

This diff is large: its 28 lines aren’t shown here.

arch/microblaze/kernel/prom_parse.c+0−38

This diff is large: its 42 lines aren’t shown here.

arch/microblaze/kernel/setup.c+2−2

This diff is large: its 14 lines aren’t shown here.

arch/microblaze/kernel/vmlinux.lds.S+3−13

This diff is large: its 24 lines aren’t shown here.

arch/microblaze/lib/fastcopy.S+4−0

This diff is large: its 11 lines aren’t shown here.

arch/microblaze/lib/memmove.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/lib/muldi3.S+0−121

This diff is large: its 122 lines aren’t shown here.

arch/microblaze/lib/muldi3.c+60−0

This diff is large: its 61 lines aren’t shown here.

arch/mips/Kbuild.platforms+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/Kconfig+38−4

This diff is large: its 89 lines aren’t shown here.

arch/mips/Kconfig.debug+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/common/power.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/alchemy/devboards/pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/ath79/Kconfig+50−0

This diff is large: its 51 lines aren’t shown here.

arch/mips/ath79/Makefile+28−0

This diff is large: its 29 lines aren’t shown here.

arch/mips/ath79/Platform+7−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/ath79/clock.c+183−0

This diff is large: its 184 lines aren’t shown here.

arch/mips/ath79/common.c+97−0

This diff is large: its 98 lines aren’t shown here.

arch/mips/ath79/common.h+31−0

This diff is large: its 32 lines aren’t shown here.

arch/mips/ath79/dev-ar913x-wmac.c+60−0

This diff is large: its 61 lines aren’t shown here.

arch/mips/ath79/dev-ar913x-wmac.h+17−0

This diff is large: its 18 lines aren’t shown here.

arch/mips/ath79/dev-common.c+77−0

This diff is large: its 78 lines aren’t shown here.

arch/mips/ath79/dev-common.h+18−0

This diff is large: its 19 lines aren’t shown here.

arch/mips/ath79/dev-gpio-buttons.c+58−0

This diff is large: its 59 lines aren’t shown here.

arch/mips/ath79/dev-gpio-buttons.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/mips/ath79/dev-leds-gpio.c+56−0

This diff is large: its 57 lines aren’t shown here.

arch/mips/ath79/dev-leds-gpio.h+21−0

This diff is large: its 22 lines aren’t shown here.

arch/mips/ath79/dev-spi.c+38−0

This diff is large: its 39 lines aren’t shown here.

arch/mips/ath79/dev-spi.h+22−0

This diff is large: its 23 lines aren’t shown here.

arch/mips/ath79/early_printk.c+36−0

This diff is large: its 37 lines aren’t shown here.

arch/mips/ath79/gpio.c+197−0

This diff is large: its 198 lines aren’t shown here.

arch/mips/ath79/irq.c+187−0

This diff is large: its 188 lines aren’t shown here.

arch/mips/ath79/mach-ap81.c+98−0

This diff is large: its 99 lines aren’t shown here.

arch/mips/ath79/mach-pb44.c+118−0

This diff is large: its 119 lines aren’t shown here.

arch/mips/ath79/machtypes.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/mips/ath79/prom.c+57−0

This diff is large: its 58 lines aren’t shown here.

arch/mips/ath79/setup.c+206−0

This diff is large: its 207 lines aren’t shown here.

arch/mips/configs/ar7_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/bcm47xx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/bcm63xx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/bigsur_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/capcella_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/cavium-octeon_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/cobalt_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/db1000_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/db1100_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/db1200_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/db1500_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/db1550_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/decstation_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/e55_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/fuloong2e_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/gpr_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/ip22_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/ip27_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/ip28_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/ip32_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/jazz_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/jmr3927_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/lasat_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/lemote2f_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/malta_defconfig+4−1

This diff is large: its 20 lines aren’t shown here.

arch/mips/configs/markeins_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/mipssim_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/mpc30x_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/msp71xx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/mtx1_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/pb1100_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/pb1200_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/pb1500_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/pb1550_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/pnx8335-stb225_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/pnx8550-jbs_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/pnx8550-stb810_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/powertv_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/rb532_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/rbtx49xx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/rm200_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/sb1250-swarm_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/tb0219_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/tb0226_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/tb0287_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/workpad_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/wrppmc_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/configs/yosemite_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/dec/time.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/cache.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/mips/include/asm/cpu-info.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/inst.h+14−0

This diff is large: its 28 lines aren’t shown here.

arch/mips/include/asm/ioctls.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/jump_label.h+48−0

This diff is large: its 49 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/ar71xx_regs.h+233−0

This diff is large: its 234 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/ath79.h+96−0

This diff is large: its 97 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/ath79_spi_platform.h+23−0

This diff is large: its 24 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h+56−0

This diff is large: its 57 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/gpio.h+26−0

This diff is large: its 27 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/irq.h+36−0

This diff is large: its 37 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/kernel-entry-init.h+32−0

This diff is large: its 33 lines aren’t shown here.

arch/mips/include/asm/mach-ath79/war.h+25−0

This diff is large: its 26 lines aren’t shown here.

arch/mips/include/asm/mach-powertv/ioremap.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mc146818-time.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mips_machine.h+54−0

This diff is large: its 55 lines aren’t shown here.

arch/mips/include/asm/mman.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/mips/include/asm/mmu_context.h+1−7

This diff is large: its 15 lines aren’t shown here.

arch/mips/include/asm/uasm.h+7−0

This diff is large: its 29 lines aren’t shown here.

arch/mips/jz4740/board-qi_lb60.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/jz4740/gpio.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/jz4740/pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/Makefile+3−0

This diff is large: its 15 lines aren’t shown here.

arch/mips/kernel/cpu-probe.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/jump_label.c+54−0

This diff is large: its 55 lines aren’t shown here.

arch/mips/kernel/mips_machine.c+86−0

This diff is large: its 87 lines aren’t shown here.

arch/mips/kernel/module.c+8−11

This diff is large: its 40 lines aren’t shown here.

arch/mips/kernel/perf_event_mipsxx.c+1−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/proc.c+8−1

This diff is large: its 31 lines aren’t shown here.

arch/mips/kernel/prom.c+2−4

This diff is large: its 14 lines aren’t shown here.

arch/mips/kernel/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/traps.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/mips/kernel/vmlinux.lds.S+7−0

This diff is large: its 14 lines aren’t shown here.

arch/mips/loongson/common/pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/tlbex.c+503−87

This diff is large: its 819 lines aren’t shown here.

arch/mips/mm/uasm.c+31−25

This diff is large: its 158 lines aren’t shown here.

arch/mips/mti-malta/malta-memory.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/pci/pcie-octeon.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/powertv/memory.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sibyte/common/sb_tbprof.c+1−2

This diff is large: its 16 lines aren’t shown here.

arch/mips/txx9/generic/pci.c+3−6

This diff is large: its 23 lines aren’t shown here.

arch/mn10300/Kconfig+2−12

This diff is large: its 49 lines aren’t shown here.

arch/mn10300/configs/asb2303_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mn10300/configs/asb2364_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mn10300/kernel/rtc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/Kconfig+4−14

This diff is large: its 35 lines aren’t shown here.

arch/parisc/configs/a500_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/configs/c3000_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/parisc/include/asm/ioctls.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/mman.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/parisc/include/asm/pgtable.h+3−1

This diff is large: its 15 lines aren’t shown here.

arch/parisc/kernel/firmware.c+1−12

This diff is large: its 33 lines aren’t shown here.

arch/parisc/kernel/pdc_cons.c+4−4

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/Kconfig+17−29

This diff is large: its 113 lines aren’t shown here.

arch/powerpc/boot/Makefile+4−6

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/boot/dts/bluestone.dts+4−4

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/boot/dts/canyonlands.dts+9−22

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/boot/dts/cm5200.dts+24−170

This diff is large: its 245 lines aren’t shown here.

arch/powerpc/boot/dts/digsy_mtc.dts+25−152

This diff is large: its 238 lines aren’t shown here.

arch/powerpc/boot/dts/hotfoot.dts+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/boot/dts/kilauea.dts+9−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/boot/dts/lite5200b.dts+14−206

This diff is large: its 296 lines aren’t shown here.

arch/powerpc/boot/dts/media5200.dts+23−191

This diff is large: its 299 lines aren’t shown here.

arch/powerpc/boot/dts/motionpro.dts+25−169

This diff is large: its 262 lines aren’t shown here.

arch/powerpc/boot/dts/mpc5200b.dtsi+275−0

This diff is large: its 276 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8308_p1m.dts+8−0

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/boot/dts/mpc8308rdb.dts+9−1

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/boot/dts/mucmc52.dts+46−128

This diff is large: its 261 lines aren’t shown here.

arch/powerpc/boot/dts/p1022ds.dts+2−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/boot/dts/pcm030.dts+19−177

This diff is large: its 298 lines aren’t shown here.

arch/powerpc/boot/dts/pcm032.dts+35−207

This diff is large: its 361 lines aren’t shown here.

arch/powerpc/boot/dts/uc101.dts+33−127

This diff is large: its 252 lines aren’t shown here.

arch/powerpc/configs/40x/acadia_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/40x/ep405_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/40x/hcu4_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/40x/kilauea_defconfig+6−1

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/configs/40x/makalu_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/40x/walnut_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/arches_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/bamboo_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/bluestone_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/canyonlands_defconfig+4−1

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/44x/ebony_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/eiger_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/icon_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/iss476-smp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/katmai_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/rainier_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/redwood_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/sam440ep_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/sequoia_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/taishan_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/warp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/52xx/cm5200_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/52xx/lite5200b_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/52xx/motionpro_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/52xx/pcm030_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/52xx/tqm5200_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/asp8347_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/kmeter1_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc8313_rdb_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc8315_rdb_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc832x_mds_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc832x_rdb_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc834x_itx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc834x_mds_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc836x_mds_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc836x_rdk_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc837x_mds_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc837x_rdb_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/83xx/sbc834x_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/ksi8560_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/mpc8540_ads_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/mpc8560_ads_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/mpc85xx_cds_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/sbc8548_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/sbc8560_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/socrates_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/stx_gp3_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8540_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8541_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8548_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8555_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8560_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/85xx/xes_mpc85xx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/86xx/gef_ppc9a_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/86xx/gef_sbc310_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/86xx/gef_sbc610_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/86xx/sbc8641d_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/adder875_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/e55xx_smp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/ep8248e_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/ep88xc_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/gamecube_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/holly_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mgcoge_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mgsuvd_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mpc7448_hpc2_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mpc8272_ads_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mpc83xx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mpc85xx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mpc85xx_smp_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mpc866_ads_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mpc86xx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/mpc885_ads_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/ppc40x_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/ppc44x_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/pq2fads_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/ps3_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/pseries_defconfig+4−3

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/configs/storcenter_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/tqm8xx_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/wii_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/8xx_immap.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/bitops.h+9−0

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/include/asm/cputable.h+6−3

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/include/asm/cputhreads.h+9−6

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/include/asm/device.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/include/asm/feature-fixups.h+15−12

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/include/asm/firmware.h+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/include/asm/hvcall.h+3−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/include/asm/immap_qe.h+15−6

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/include/asm/ioctls.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/irqflags.h+30−10

This diff is large: its 55 lines aren’t shown here.

arch/powerpc/include/asm/lppaca.h+4−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/machdep.h+2−22

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/include/asm/mmu-book3e.h+4−4

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/mmzone.h+5−0

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/nvram.h+11−41

This diff is large: its 83 lines aren’t shown here.

arch/powerpc/include/asm/page.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/ppc-opcode.h+8−0

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/include/asm/processor.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/include/asm/prom.h+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/reg.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/include/asm/reg_booke.h+14−0

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/include/asm/spu.h+0−8

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/include/asm/topology.h+14−1

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/include/asm/vdso_datapage.h+0−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kernel/Makefile+4−5

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/kernel/asm-offsets.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/cpu_setup_6xx.S+20−20

This diff is large: its 113 lines aren’t shown here.

arch/powerpc/kernel/cpu_setup_fsl_booke.S+6−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/kernel/cputable.c+18−31

This diff is large: its 228 lines aren’t shown here.

arch/powerpc/kernel/crash.c+2−70

This diff is large: its 100 lines aren’t shown here.

arch/powerpc/kernel/crash_dump.c+33−0

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/kernel/dma-iommu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/e500-pmu.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/kernel/entry_32.S+12−0

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/kernel/exceptions-64s.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/fpu.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/head_40x.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/head_44x.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/head_64.S+3−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/kernel/head_8xx.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/head_fsl_booke.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/iommu.c+8−6

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/kernel/machine_kexec.c+9−10

This diff is large: its 47 lines aren’t shown here.

arch/powerpc/kernel/misc.S+0−5

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/misc_32.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/misc_64.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/mpc7450-pmu.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/kernel/nvram_64.c+160−321

This diff is large: its 621 lines aren’t shown here.

arch/powerpc/kernel/pci_64.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kernel/perf_event.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/kernel/perf_event_fsl_emb.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/kernel/power4-pmu.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/kernel/power5+-pmu.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/kernel/power5-pmu.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/kernel/power6-pmu.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/kernel/power7-pmu.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/kernel/ppc970-pmu.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/kernel/ppc_ksyms.c+7−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/ppc_save_regs.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/process.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/prom.c+2−2

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/kernel/prom_parse.c+0−38

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/kernel/ptrace.c+16−6

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/kernel/ptrace32.c+7−0

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/kernel/rtas.c+3−0

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/kernel/rtas_flash.c+6−47

This diff is large: its 90 lines aren’t shown here.

arch/powerpc/kernel/rtasd.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/setup_64.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/kernel/smp.c+16−3

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/kernel/time.c+21−6

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/kernel/traps.c+1−11

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/kernel/vector.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kernel/vio.c+12−3

This diff is large: its 50 lines aren’t shown here.

arch/powerpc/kvm/book3s.c+1−3

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/kvm/powerpc.c+3−17

This diff is large: its 37 lines aren’t shown here.

arch/powerpc/lib/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/lib/feature-fixups-test.S+19−0

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/lib/hweight_64.S+110−0

This diff is large: its 111 lines aren’t shown here.

arch/powerpc/mm/gup.c+12−0

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/mm/hash_utils_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/mmu_context_nohash.c+6−6

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/mm/numa.c+304−14

This diff is large: its 383 lines aren’t shown here.

arch/powerpc/mm/pgtable_32.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/mm/pgtable_64.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/oprofile/op_model_cell.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/40x/ppc40x_simple.c+4−9

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/44x/Makefile+4−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc5121_generic.c+2−11

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/52xx/lite5200.c+7−9

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/platforms/52xx/lite5200_pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/52xx/media5200.c+2−11

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/52xx/mpc5200_simple.c+2−11

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/52xx/mpc52xx_pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc830x_rdb.c+8−5

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc831x_rdb.c+7−4

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc837x_rdb.c+9−6

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc83xx.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/suspend-asm.S+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/83xx/suspend.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/usb.c+16−5

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_mds.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/85xx/tqm85xx.c+10−10

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/platforms/Kconfig+4−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/cell/beat_iommu.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/platforms/cell/cpufreq_spudemand.c+3−17

This diff is large: its 55 lines aren’t shown here.

arch/powerpc/platforms/cell/qpace_setup.c+0−5

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_base.c+70−0

This diff is large: its 84 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/file.c+7−20

This diff is large: its 70 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/inode.c+12−6

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/lscsa_alloc.c+1−2

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/chrp/time.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/gamecube.c+0−11

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/wii.c+0−11

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/platforms/iseries/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/iseries/mf.c+0−62

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/platforms/pasemi/iommu.c+1−18

This diff is large: its 47 lines aren’t shown here.

arch/powerpc/platforms/powermac/setup.c+9−0

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/platforms/ps3/device-init.c+2−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/platforms/ps3/interrupt.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/Kconfig+13−3

This diff is large: its 37 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/eeh_sysfs.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pseries/firmware.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pseries/hvCall.S+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pseries/hvCall_inst.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/iommu.c+21−28

This diff is large: its 108 lines aren’t shown here.

arch/powerpc/platforms/pseries/kexec.c+0−10

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/platforms/pseries/lpar.c+49−0

This diff is large: its 76 lines aren’t shown here.

arch/powerpc/platforms/pseries/nvram.c+205−0

This diff is large: its 224 lines aren’t shown here.

arch/powerpc/platforms/pseries/pseries_energy.c+326−0

This diff is large: its 327 lines aren’t shown here.

arch/powerpc/platforms/pseries/ras.c+69−33

This diff is large: its 151 lines aren’t shown here.

arch/powerpc/platforms/pseries/suspend.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/sysdev/dart_iommu.c+1−8

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/sysdev/fsl_pmc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/fsl_rio.c+0−3

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/sysdev/mpc8xxx_gpio.c+67−8

This diff is large: its 134 lines aren’t shown here.

arch/powerpc/sysdev/mpic.c+4−2

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/sysdev/mv64x60_dev.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/sysdev/ppc4xx_cpm.c+346−0

This diff is large: its 347 lines aren’t shown here.

arch/powerpc/sysdev/tsi108_dev.c+5−4

This diff is large: its 30 lines aren’t shown here.

arch/s390/Kconfig+68−63

This diff is large: its 392 lines aren’t shown here.

arch/s390/Kconfig.debug+3−3

This diff is large: its 20 lines aren’t shown here.

arch/s390/boot/compressed/misc.c+3−2

This diff is large: its 15 lines aren’t shown here.

arch/s390/crypto/sha_common.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/defconfig+67−93

This diff is large: its 258 lines aren’t shown here.

arch/s390/hypfs/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/s390/hypfs/hypfs.h+31−2

This diff is large: its 45 lines aren’t shown here.

arch/s390/hypfs/hypfs_dbfs.c+116−0

This diff is large: its 117 lines aren’t shown here.

arch/s390/hypfs/hypfs_diag.c+20−62

This diff is large: its 117 lines aren’t shown here.

arch/s390/hypfs/hypfs_vm.c+20−42

This diff is large: its 100 lines aren’t shown here.

arch/s390/hypfs/inode.c+7−11

This diff is large: its 48 lines aren’t shown here.

arch/s390/include/asm/atomic.h+18−8

This diff is large: its 48 lines aren’t shown here.

arch/s390/include/asm/cache.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/cacheflush.h+1−22

This diff is large: its 31 lines aren’t shown here.

arch/s390/include/asm/ccwdev.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/compat.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/cputime.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/dasd.h+3−0

This diff is large: its 17 lines aren’t shown here.

arch/s390/include/asm/elf.h+8−1

This diff is large: its 28 lines aren’t shown here.

arch/s390/include/asm/ftrace.h+4−7

This diff is large: its 25 lines aren’t shown here.

arch/s390/include/asm/hardirq.h+0−16

This diff is large: its 21 lines aren’t shown here.

arch/s390/include/asm/irq.h+22−12

This diff is large: its 46 lines aren’t shown here.

arch/s390/include/asm/kprobes.h+2−18

This diff is large: its 52 lines aren’t shown here.

arch/s390/include/asm/mutex.h+2−0

This diff is large: its 6 lines aren’t shown here.

arch/s390/include/asm/processor.h+2−7

This diff is large: its 30 lines aren’t shown here.

arch/s390/include/asm/ptrace.h+51−1

This diff is large: its 62 lines aren’t shown here.

arch/s390/include/asm/qdio.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/qeth.h+41−10

This diff is large: its 81 lines aren’t shown here.

arch/s390/include/asm/s390_ext.h+7−22

This diff is large: its 40 lines aren’t shown here.

arch/s390/include/asm/smp.h+2−1

This diff is large: its 19 lines aren’t shown here.

arch/s390/include/asm/system.h+3−3

This diff is large: its 37 lines aren’t shown here.

arch/s390/include/asm/thread_info.h+12−4

This diff is large: its 52 lines aren’t shown here.

arch/s390/include/asm/timex.h+20−0

This diff is large: its 34 lines aren’t shown here.

arch/s390/include/asm/tlb.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/asm-offsets.c+8−6

This diff is large: its 33 lines aren’t shown here.

arch/s390/kernel/compat_ptrace.h+16−37

This diff is large: its 79 lines aren’t shown here.

arch/s390/kernel/entry.S+137−137

This diff is large: its 597 lines aren’t shown here.

arch/s390/kernel/entry.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/entry64.S+34−39

This diff is large: its 153 lines aren’t shown here.

arch/s390/kernel/ftrace.c+117−121

This diff is large: its 317 lines aren’t shown here.

arch/s390/kernel/irq.c+35−6

This diff is large: its 72 lines aren’t shown here.

arch/s390/kernel/kprobes.c+228−242

This diff is large: its 758 lines aren’t shown here.

arch/s390/kernel/mcount.S+9−23

This diff is large: its 61 lines aren’t shown here.

arch/s390/kernel/mcount64.S+9−20

This diff is large: its 56 lines aren’t shown here.

arch/s390/kernel/nmi.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/s390/kernel/process.c+49−10

This diff is large: its 108 lines aren’t shown here.

arch/s390/kernel/processor.c+4−16

This diff is large: its 56 lines aren’t shown here.

arch/s390/kernel/ptrace.c+187−119

This diff is large: its 430 lines aren’t shown here.

arch/s390/kernel/s390_ext.c+44−81

This diff is large: its 184 lines aren’t shown here.

arch/s390/kernel/signal.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/smp.c+28−19

This diff is large: its 123 lines aren’t shown here.

arch/s390/kernel/time.c+5−1

This diff is large: its 41 lines aren’t shown here.

arch/s390/kernel/traps.c+7−45

This diff is large: its 87 lines aren’t shown here.

arch/s390/kernel/vdso.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/s390/kernel/vtime.c+4−2

This diff is large: its 34 lines aren’t shown here.

arch/s390/kvm/Kconfig+4−3

This diff is large: its 21 lines aren’t shown here.

arch/s390/kvm/kvm-s390.c+6−17

This diff is large: its 57 lines aren’t shown here.

arch/s390/lib/delay.c+0−2

This diff is large: its 16 lines aren’t shown here.

arch/s390/lib/uaccess_std.c+4−6

This diff is large: its 44 lines aren’t shown here.

arch/s390/mm/fault.c+20−15

This diff is large: its 90 lines aren’t shown here.

arch/s390/mm/mmap.c+31−18

This diff is large: its 72 lines aren’t shown here.

arch/s390/mm/pgtable.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/score/Kconfig+4−6

This diff is large: its 30 lines aren’t shown here.

arch/score/configs/spct6600_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/Kconfig+18−12

This diff is large: its 126 lines aren’t shown here.

arch/sh/Makefile+2−1

This diff is large: its 16 lines aren’t shown here.

arch/sh/boards/Kconfig+18−0

This diff is large: its 32 lines aren’t shown here.

arch/sh/boards/Makefile+2−0

This diff is large: its 6 lines aren’t shown here.

arch/sh/boards/board-apsh4a3a.c+175−0

This diff is large: its 176 lines aren’t shown here.

arch/sh/boards/board-apsh4ad0a.c+125−0

This diff is large: its 126 lines aren’t shown here.

arch/sh/boards/board-edosk7705.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/board-edosk7760.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/board-secureedge5410.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/board-sh7785lcr.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-ap325rxa/setup.c+16−0

This diff is large: its 47 lines aren’t shown here.

arch/sh/boards/mach-cayman/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-ecovec24/setup.c+4−0

This diff is large: its 32 lines aren’t shown here.

arch/sh/boards/mach-highlander/setup.c+1−1

This diff is large: its 12 lines aren’t shown here.

arch/sh/boards/mach-hp6xx/pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-kfr2r09/setup.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sh/boards/mach-landisk/irq.c+35−24

This diff is large: its 90 lines aren’t shown here.

arch/sh/boards/mach-landisk/setup.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/sh/boards/mach-migor/setup.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sh/boards/mach-r2d/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-rsk/devices-rsk7203.c+36−1

This diff is large: its 62 lines aren’t shown here.

arch/sh/boards/mach-sdk7786/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/sh/boards/mach-sdk7786/nmi.c+83−0

This diff is large: its 84 lines aren’t shown here.

arch/sh/boards/mach-sdk7786/setup.c+3−2

This diff is large: its 32 lines aren’t shown here.

arch/sh/boards/mach-se/7206/setup.c+7−1

This diff is large: its 20 lines aren’t shown here.

arch/sh/boards/mach-se/7724/setup.c+8−0

This diff is large: its 43 lines aren’t shown here.

arch/sh/boards/mach-se/7751/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-se/board-se7619.c+6−0

This diff is large: its 18 lines aren’t shown here.

arch/sh/boards/mach-sh03/rtc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boards/mach-sh03/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/boot/Makefile+9−2

This diff is large: its 36 lines aren’t shown here.

arch/sh/boot/compressed/Makefile+3−1

This diff is large: its 18 lines aren’t shown here.

arch/sh/boot/compressed/misc.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/sh/boot/romimage/mmcif-sh7724.c+3−4

This diff is large: its 21 lines aren’t shown here.

arch/sh/configs/apsh4a3a_defconfig+102−0

This diff is large: its 103 lines aren’t shown here.

arch/sh/configs/apsh4ad0a_defconfig+133−0

This diff is large: its 134 lines aren’t shown here.

arch/sh/configs/migor_defconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/configs/sh7757lcr_defconfig+1−10

This diff is large: its 42 lines aren’t shown here.

arch/sh/drivers/pci/fixups-landisk.c+26−2

This diff is large: its 53 lines aren’t shown here.

arch/sh/drivers/pci/pci.c+1−2

This diff is large: its 16 lines aren’t shown here.

arch/sh/drivers/push-switch.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/clkdev.h+17−21

This diff is large: its 53 lines aren’t shown here.

arch/sh/include/asm/io.h+146−174

This diff is large: its 405 lines aren’t shown here.

arch/sh/include/asm/io_generic.h+0−25

This diff is large: its 32 lines aren’t shown here.

arch/sh/include/asm/ioctls.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/include/asm/machvec.h+1−21

This diff is large: its 36 lines aren’t shown here.

arch/sh/include/asm/pgtable.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/include/asm/pgtable_32.h+7−8

This diff is large: its 36 lines aren’t shown here.

arch/sh/include/asm/processor.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/processor_32.h+4−2

This diff is large: its 20 lines aren’t shown here.

arch/sh/include/asm/ptrace.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/sh/include/asm/ptrace_32.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/ptrace_64.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/unaligned-sh4a.h+52−112

This diff is large: its 282 lines aren’t shown here.

arch/sh/include/mach-common/mach/romimage.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/mach-ecovec24/mach/romimage.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/mach-kfr2r09/mach/romimage.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/mach-landisk/mach/iodata_landisk.h+4−2

This diff is large: its 27 lines aren’t shown here.

arch/sh/include/mach-sdk7786/mach/fpga.h+8−0

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/Makefile+6−2

This diff is large: its 29 lines aren’t shown here.

arch/sh/kernel/clkdev.c+0−171

This diff is large: its 172 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/clock-cpg.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/clock.c+0−16

This diff is large: its 21 lines aren’t shown here.

arch/sh/kernel/cpu/proc.c+148−0

This diff is large: its 149 lines aren’t shown here.

arch/sh/kernel/cpu/sh2/clock-sh7619.c+12−10

This diff is large: its 44 lines aren’t shown here.

arch/sh/kernel/cpu/sh2/setup-sh7619.c+6−0

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/clock-sh7201.c+10−10

This diff is large: its 37 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/clock-sh7203.c+9−12

This diff is large: its 38 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/clock-sh7206.c+9−11

This diff is large: its 37 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/setup-mxg.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/setup-sh7201.c+16−0

This diff is large: its 72 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/setup-sh7203.c+8−0

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh2a/setup-sh7206.c+8−0

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/setup-sh7705.c+5−0

This diff is large: its 19 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/setup-sh770x.c+6−0

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/setup-sh7710.c+6−0

This diff is large: its 20 lines aren’t shown here.

arch/sh/kernel/cpu/sh3/setup-sh7720.c+5−1

This diff is large: its 25 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/clock-sh4-202.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/perf_event.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/probe.c+6−0

This diff is large: its 15 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/setup-sh4-202.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/setup-sh7750.c+26−10

This diff is large: its 98 lines aren’t shown here.

arch/sh/kernel/cpu/sh4/setup-sh7760.c+8−0

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7343.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7366.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7722.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7723.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7724.c+1−1

This diff is large: its 9 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/clock-sh7763.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7780.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7785.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-sh7786.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/clock-shx3.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/perf_event.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7343.c+22−11

This diff is large: its 108 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7366.c+16−10

This diff is large: its 80 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7722.c+7−1

This diff is large: its 36 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7723.c+14−2

This diff is large: its 72 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7724.c+14−2

This diff is large: its 72 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7757.c+6−0

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7763.c+6−0

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7770.c+20−0

This diff is large: its 90 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7780.c+12−0

This diff is large: its 40 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7785.c+12−0

This diff is large: its 54 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-sh7786.c+43−4

This diff is large: its 116 lines aren’t shown here.

arch/sh/kernel/cpu/sh4a/setup-shx3.c+6−0

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/cpu/sh5/setup-sh5.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/cpu/shmobile/cpuidle.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpu/shmobile/pm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/io_generic.c+0−180

This diff is large: its 181 lines aren’t shown here.

arch/sh/kernel/iomap.c+165−0

This diff is large: its 166 lines aren’t shown here.

arch/sh/kernel/ioport.c+43−0

This diff is large: its 44 lines aren’t shown here.

arch/sh/kernel/machvec.c+0−22

This diff is large: its 29 lines aren’t shown here.

arch/sh/kernel/perf_event.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/kernel/setup.c+0−144

This diff is large: its 155 lines aren’t shown here.

arch/sh/kernel/topology.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/mm/cache-sh5.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/mm/hugetlbpage.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/mm/init.c+8−2

This diff is large: its 28 lines aren’t shown here.

arch/sh/tools/mach-types+3−0

This diff is large: its 14 lines aren’t shown here.

arch/sparc/Kconfig+1−8

This diff is large: its 30 lines aren’t shown here.

arch/sparc/boot/Makefile+9−19

This diff is large: its 73 lines aren’t shown here.

arch/sparc/boot/piggyback.c+272−0

This diff is large: its 273 lines aren’t shown here.

arch/sparc/boot/piggyback_32.c+0−137

This diff is large: its 138 lines aren’t shown here.

arch/sparc/boot/piggyback_64.c+0−110

This diff is large: its 111 lines aren’t shown here.

arch/sparc/include/asm/ioctls.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/leon.h+12−0

This diff is large: its 19 lines aren’t shown here.

arch/sparc/include/asm/leon_amba.h+3−3

This diff is large: its 20 lines aren’t shown here.

arch/sparc/include/asm/oplib_32.h+5−43

This diff is large: its 102 lines aren’t shown here.

arch/sparc/include/asm/oplib_64.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/sparc/include/asm/pcr.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/sparc/include/asm/perf_event.h+0−4

This diff is large: its 18 lines aren’t shown here.

arch/sparc/kernel/auxio_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/cpu.c+1−1

This diff is large: its 7 lines aren’t shown here.

arch/sparc/kernel/head_32.S+1−2

This diff is large: its 14 lines aren’t shown here.

arch/sparc/kernel/iommu.c+2−3

This diff is large: its 13 lines aren’t shown here.

arch/sparc/kernel/leon_kernel.c+97−17

This diff is large: its 174 lines aren’t shown here.

arch/sparc/kernel/module.c+4−10

This diff is large: its 22 lines aren’t shown here.

arch/sparc/kernel/nmi.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/pcr.c+0−2

This diff is large: its 6 lines aren’t shown here.

arch/sparc/kernel/perf_event.c+6−3

This diff is large: its 27 lines aren’t shown here.

arch/sparc/kernel/prom_32.c+19−8

This diff is large: its 46 lines aren’t shown here.

arch/sparc/kernel/setup_32.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/sparc/kernel/smp_64.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/sparc/kernel/starfire.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/traps_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/kernel/una_asm_32.S+2−2

This diff is large: its 12 lines aren’t shown here.

arch/sparc/lib/bitext.c+2−3

This diff is large: its 19 lines aren’t shown here.

arch/sparc/mm/generic_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/mm/generic_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/mm/hugetlbpage.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/mm/sun4c.c+3−5

This diff is large: its 20 lines aren’t shown here.

arch/sparc/prom/Makefile+0−2

This diff is large: its 13 lines aren’t shown here.

arch/sparc/prom/bootstr_32.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/sparc/prom/console_32.c+4−3

This diff is large: its 26 lines aren’t shown here.

arch/sparc/prom/console_64.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/sparc/prom/devmap.c+0−53

This diff is large: its 54 lines aren’t shown here.

arch/sparc/prom/init_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/prom/init_64.c+3−4

This diff is large: its 26 lines aren’t shown here.

arch/sparc/prom/misc_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/prom/mp.c+0−78

This diff is large: its 82 lines aren’t shown here.

arch/sparc/prom/palloc.c+0−43

This diff is large: its 44 lines aren’t shown here.

arch/sparc/prom/ranges.c+3−3

This diff is large: its 20 lines aren’t shown here.

arch/sparc/prom/tree_32.c+16−51

This diff is large: its 162 lines aren’t shown here.

arch/sparc/prom/tree_64.c+9−9

This diff is large: its 66 lines aren’t shown here.

arch/tile/Kconfig+22−33

This diff is large: its 82 lines aren’t shown here.

arch/tile/Kconfig.debug+1−1

This diff is large: its 9 lines aren’t shown here.

arch/tile/configs/tile_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/Kconfig.common+1−5

This diff is large: its 16 lines aren’t shown here.

arch/um/Kconfig.um+1−4

This diff is large: its 19 lines aren’t shown here.

arch/um/defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/um/drivers/line.c+2−2

This diff is large: its 15 lines aren’t shown here.

arch/um/drivers/mmapper_kern.c+2−7

This diff is large: its 20 lines aren’t shown here.

arch/um/kernel/skas/mmu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/Kconfig+62−22

This diff is large: its 233 lines aren’t shown here.

arch/x86/Kconfig.cpu+4−1

This diff is large: its 19 lines aren’t shown here.

arch/x86/Kconfig.debug+13−2

This diff is large: its 36 lines aren’t shown here.

arch/x86/boot/compressed/Makefile+4−1

This diff is large: its 25 lines aren’t shown here.

arch/x86/boot/compressed/head_64.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/boot/compressed/misc.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/x86/boot/compressed/mkpiggy.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/crypto/aesni-intel_asm.S+1802−30

This diff is large: its 2075 lines aren’t shown here.

arch/x86/crypto/aesni-intel_glue.c+533−7

This diff is large: its 668 lines aren’t shown here.

arch/x86/include/asm/acpi.h+5−6

This diff is large: its 23 lines aren’t shown here.

arch/x86/include/asm/alternative.h+8−0

This diff is large: its 24 lines aren’t shown here.

arch/x86/include/asm/amd_nb.h+44−16

This diff is large: its 81 lines aren’t shown here.

arch/x86/include/asm/apic.h+3−1

This diff is large: its 21 lines aren’t shown here.

arch/x86/include/asm/apicdef.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/boot.h+1−5

This diff is large: its 13 lines aren’t shown here.

arch/x86/include/asm/bootparam.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/cacheflush.h+1−41

This diff is large: its 50 lines aren’t shown here.

arch/x86/include/asm/cpu.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/x86/include/asm/debugreg.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/fixmap.h+4−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/gpio.h+1−4

This diff is large: its 14 lines aren’t shown here.

arch/x86/include/asm/hypervisor.h+12−0

This diff is large: its 24 lines aren’t shown here.

arch/x86/include/asm/i387.h+24−0

This diff is large: its 52 lines aren’t shown here.

arch/x86/include/asm/io_apic.h+5−4

This diff is large: its 39 lines aren’t shown here.

arch/x86/include/asm/irq.h+3−4

This diff is large: its 19 lines aren’t shown here.

arch/x86/include/asm/jump_label.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/kdebug.h+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/kvm_emulate.h+24−11

This diff is large: its 105 lines aren’t shown here.

arch/x86/include/asm/kvm_host.h+73−27

This diff is large: its 244 lines aren’t shown here.

arch/x86/include/asm/kvm_para.h+24−0

This diff is large: its 61 lines aren’t shown here.

arch/x86/include/asm/mach_traps.h+11−1

This diff is large: its 21 lines aren’t shown here.

arch/x86/include/asm/mce.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/include/asm/microcode.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/include/asm/mmu_context.h+3−2

This diff is large: its 19 lines aren’t shown here.

arch/x86/include/asm/mpspec.h+12−19

This diff is large: its 76 lines aren’t shown here.

arch/x86/include/asm/mpspec_def.h+0−7

This diff is large: its 14 lines aren’t shown here.

arch/x86/include/asm/mrst-vrtc.h+9−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/include/asm/mrst.h+13−1

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/msr-index.h+16−0

This diff is large: its 30 lines aren’t shown here.

arch/x86/include/asm/nmi.h+20−51

This diff is large: its 96 lines aren’t shown here.

arch/x86/include/asm/numa_32.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/numa_64.h+2−1

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/olpc.h+7−3

This diff is large: its 18 lines aren’t shown here.

arch/x86/include/asm/olpc_ofw.h+9−0

This diff is large: its 27 lines aren’t shown here.

arch/x86/include/asm/paravirt.h+25−1

This diff is large: its 54 lines aren’t shown here.

arch/x86/include/asm/paravirt_types.h+6−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/include/asm/pci.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/percpu.h+157−1

This diff is large: its 205 lines aren’t shown here.

arch/x86/include/asm/perf_event.h+0−2

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/perf_event_p4.h+58−8

This diff is large: its 86 lines aren’t shown here.

arch/x86/include/asm/pgalloc.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/pgtable-2level.h+9−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/pgtable-3level.h+23−0

This diff is large: its 30 lines aren’t shown here.

arch/x86/include/asm/pgtable.h+142−1

This diff is large: its 212 lines aren’t shown here.

arch/x86/include/asm/pgtable_64.h+21−7

This diff is large: its 50 lines aren’t shown here.

arch/x86/include/asm/pgtable_types.h+3−0

This diff is large: its 24 lines aren’t shown here.

arch/x86/include/asm/processor.h+5−5

This diff is large: its 35 lines aren’t shown here.

arch/x86/include/asm/prom.h+1−0

This diff is large: its 2 lines aren’t shown here.

arch/x86/include/asm/setup.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/x86/include/asm/smp.h+1−4

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/smpboot_hooks.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/stacktrace.h+30−3

This diff is large: its 59 lines aren’t shown here.

arch/x86/include/asm/svm.h+38−19

This diff is large: its 102 lines aren’t shown here.

arch/x86/include/asm/system_64.h+0−22

This diff is large: its 23 lines aren’t shown here.

arch/x86/include/asm/timer.h+0−6

This diff is large: its 13 lines aren’t shown here.

arch/x86/include/asm/traps.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/uv/uv_bau.h+5−4

This diff is large: its 34 lines aren’t shown here.

arch/x86/include/asm/vmx.h+15−0

This diff is large: its 45 lines aren’t shown here.

arch/x86/include/asm/xen/hypervisor.h+35−0

This diff is large: its 40 lines aren’t shown here.

arch/x86/include/asm/xen/page.h+13−3

This diff is large: its 37 lines aren’t shown here.

arch/x86/kernel/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/acpi/boot.c+14−46

This diff is large: its 129 lines aren’t shown here.

arch/x86/kernel/acpi/sleep.c+11−4

This diff is large: its 37 lines aren’t shown here.

arch/x86/kernel/alternative.c+42−10

This diff is large: its 102 lines aren’t shown here.

arch/x86/kernel/amd_iommu.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/amd_nb.c+87−55

This diff is large: its 220 lines aren’t shown here.

arch/x86/kernel/apb_timer.c+8−5

This diff is large: its 22 lines aren’t shown here.

arch/x86/kernel/aperture_64.c+21−33

This diff is large: its 120 lines aren’t shown here.

arch/x86/kernel/apic/Makefile+1−4

This diff is large: its 12 lines aren’t shown here.

arch/x86/kernel/apic/apic.c+102−99

This diff is large: its 374 lines aren’t shown here.

arch/x86/kernel/apic/hw_nmi.c+19−20

This diff is large: its 93 lines aren’t shown here.

arch/x86/kernel/apic/io_apic.c+53−65

This diff is large: its 259 lines aren’t shown here.

arch/x86/kernel/apic/nmi.c+0−567

This diff is large: its 568 lines aren’t shown here.

arch/x86/kernel/apic/x2apic_uv_x.c+38−31

This diff is large: its 188 lines aren’t shown here.

arch/x86/kernel/cpu/amd.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/common.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/cpufreq/powernow-k8.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/cpu/intel_cacheinfo.c+68−86

This diff is large: its 310 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce-inject.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce.c+10−10

This diff is large: its 90 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce_amd.c+77−58

This diff is large: its 221 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/mce_intel.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/mcheck/therm_throt.c+41−0

This diff is large: its 71 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/main.c+9−1

This diff is large: its 23 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event.c+64−40

This diff is large: its 239 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_amd.c+3−13

This diff is large: its 71 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_intel.c+28−2

This diff is large: its 51 lines aren’t shown here.

arch/x86/kernel/cpu/perf_event_p4.c+25−15

This diff is large: its 78 lines aren’t shown here.

arch/x86/kernel/cpu/perfctr-watchdog.c+1−643

This diff is large: its 667 lines aren’t shown here.

arch/x86/kernel/dumpstack.c+7−12

This diff is large: its 57 lines aren’t shown here.

arch/x86/kernel/dumpstack_32.c+7−18

This diff is large: its 63 lines aren’t shown here.

arch/x86/kernel/dumpstack_64.c+8−18

This diff is large: its 71 lines aren’t shown here.

arch/x86/kernel/e820.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/early_printk.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/entry_32.S+10−0

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/entry_64.S+26−13

This diff is large: its 70 lines aren’t shown here.

arch/x86/kernel/ftrace.c+6−3

This diff is large: its 45 lines aren’t shown here.

arch/x86/kernel/head32.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/head_32.S+59−56

This diff is large: its 227 lines aren’t shown here.

arch/x86/kernel/hw_breakpoint.c+6−6

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/i387.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/irq.c+15−4

This diff is large: its 52 lines aren’t shown here.

arch/x86/kernel/irq_32.c+4−7

This diff is large: its 40 lines aren’t shown here.

arch/x86/kernel/kgdb.c+2−5

This diff is large: its 28 lines aren’t shown here.

arch/x86/kernel/kprobes.c+112−15

This diff is large: its 206 lines aren’t shown here.

arch/x86/kernel/kvm.c+317−0

This diff is large: its 352 lines aren’t shown here.

arch/x86/kernel/kvmclock.c+1−12

This diff is large: its 34 lines aren’t shown here.

arch/x86/kernel/microcode_amd.c+10−24

This diff is large: its 69 lines aren’t shown here.

arch/x86/kernel/module.c+4−13

This diff is large: its 25 lines aren’t shown here.

arch/x86/kernel/mpparse.c+11−103

This diff is large: its 201 lines aren’t shown here.

arch/x86/kernel/paravirt.c+3−0

This diff is large: its 12 lines aren’t shown here.

arch/x86/kernel/pci-gart_64.c+17−17

This diff is large: its 111 lines aren’t shown here.

arch/x86/kernel/process.c+38−29

This diff is large: its 193 lines aren’t shown here.

arch/x86/kernel/process_32.c+0−4

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/process_64.c+0−4

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/reboot.c+4−1

This diff is large: its 26 lines aren’t shown here.

arch/x86/kernel/reboot_fixups_32.c+16−0

This diff is large: its 34 lines aren’t shown here.

arch/x86/kernel/rtc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/setup.c+5−8

This diff is large: its 37 lines aren’t shown here.

arch/x86/kernel/smpboot.c+35−28

This diff is large: its 177 lines aren’t shown here.

arch/x86/kernel/stacktrace.c+4−4

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/tboot.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/time.c+0−18

This diff is large: its 32 lines aren’t shown here.

arch/x86/kernel/trampoline_64.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/traps.c+64−67

This diff is large: its 208 lines aren’t shown here.

arch/x86/kernel/tsc.c+93−7

This diff is large: its 147 lines aren’t shown here.

arch/x86/kernel/verify_cpu.Srenamed from arch/x86/kernel/verify_cpu_64.S+41−8

This diff is large: its 76 lines aren’t shown here.

arch/x86/kernel/vm86_32.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/vmlinux.lds.S+6−2

This diff is large: its 29 lines aren’t shown here.

arch/x86/kvm/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kvm/Makefile+2−1

This diff is large: its 15 lines aren’t shown here.

arch/x86/kvm/emulate.c+154−213

This diff is large: its 958 lines aren’t shown here.

arch/x86/kvm/kvm_cache_regs.h+22−0

This diff is large: its 34 lines aren’t shown here.

arch/x86/kvm/lapic.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kvm/mmu.c+270−106

This diff is large: its 741 lines aren’t shown here.

arch/x86/kvm/mmu_audit.c+22−17

This diff is large: its 105 lines aren’t shown here.

arch/x86/kvm/paging_tmpl.h+93−63

This diff is large: its 319 lines aren’t shown here.

arch/x86/kvm/svm.c+558−307

This diff is large: its 1605 lines aren’t shown here.

arch/x86/kvm/trace.h+13−4

This diff is large: its 41 lines aren’t shown here.

arch/x86/kvm/vmx.c+115−41

This diff is large: its 471 lines aren’t shown here.

arch/x86/kvm/x86.c+355−127

This diff is large: its 1097 lines aren’t shown here.

arch/x86/lguest/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/lguest/boot.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/lguest/i386_head.S+0−105

This diff is large: its 122 lines aren’t shown here.

arch/x86/lib/delay.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/amdtopology_64.crenamed from arch/x86/mm/k8topology_64.c+77−20

This diff is large: its 141 lines aren’t shown here.

arch/x86/mm/gup.c+27−1

This diff is large: its 63 lines aren’t shown here.

arch/x86/mm/init.c+2−1

This diff is large: its 11 lines aren’t shown here.

arch/x86/mm/init_32.c+21−1

This diff is large: its 57 lines aren’t shown here.

arch/x86/mm/kmemcheck/error.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/numa.c+22−0

This diff is large: its 29 lines aren’t shown here.

arch/x86/mm/numa_64.c+138−61

This diff is large: its 343 lines aren’t shown here.

arch/x86/mm/pageattr.c+14−11

This diff is large: its 75 lines aren’t shown here.

arch/x86/mm/pgtable.c+66−0

This diff is large: its 87 lines aren’t shown here.

arch/x86/mm/setup_nx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/srat_32.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/x86/mm/srat_64.c+28−8

This diff is large: its 77 lines aren’t shown here.

arch/x86/oprofile/backtrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/oprofile/nmi_int.c+5−3

This diff is large: its 36 lines aren’t shown here.

arch/x86/oprofile/nmi_timer_int.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/x86/oprofile/op_model_amd.c+37−18

This diff is large: its 164 lines aren’t shown here.

arch/x86/oprofile/op_model_p4.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/oprofile/op_model_ppro.c+4−4

This diff is large: its 22 lines aren’t shown here.

arch/x86/pci/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/pci/amd_bus.c+33−0

This diff is large: its 54 lines aren’t shown here.

arch/x86/pci/broadcom_bus.c+7−4

This diff is large: its 27 lines aren’t shown here.

arch/x86/pci/ce4100.c+315−0

This diff is large: its 316 lines aren’t shown here.

arch/x86/pci/common.c+41−0

This diff is large: its 62 lines aren’t shown here.

arch/x86/pci/irq.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/pci/pcbios.c+23−0

This diff is large: its 44 lines aren’t shown here.

arch/x86/platform/Makefile+2−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/platform/ce4100/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

arch/x86/platform/ce4100/ce4100.c+132−0

This diff is large: its 133 lines aren’t shown here.

arch/x86/platform/iris/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

arch/x86/platform/iris/iris.c+91−0

This diff is large: its 92 lines aren’t shown here.

arch/x86/platform/mrst/Makefile+2−0

This diff is large: its 4 lines aren’t shown here.

arch/x86/platform/mrst/early_printk_mrst.crenamed from arch/x86/kernel/early_printk_mrst.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/mrst/mrst.c+537−39

This diff is large: its 669 lines aren’t shown here.

arch/x86/platform/mrst/vrtc.c+165−0

This diff is large: its 166 lines aren’t shown here.

arch/x86/platform/olpc/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/x86/platform/olpc/olpc-xo1.c+55−46

This diff is large: its 160 lines aren’t shown here.

arch/x86/platform/olpc/olpc_dt.c+183−0

This diff is large: its 184 lines aren’t shown here.

arch/x86/platform/olpc/olpc_ofw.c+5−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/sfi/sfi.c+3−14

This diff is large: its 35 lines aren’t shown here.

arch/x86/platform/uv/tlb_uv.c+18−4

This diff is large: its 71 lines aren’t shown here.

arch/x86/platform/visws/visws_quirks.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/Makefile+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/xen/enlighten.c+24−22

This diff is large: its 81 lines aren’t shown here.

arch/x86/xen/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/mmu.c+1−365

This diff is large: its 380 lines aren’t shown here.

arch/x86/xen/multicalls.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/p2m.c+522−0

This diff is large: its 523 lines aren’t shown here.

arch/x86/xen/setup.c+7−1

This diff is large: its 23 lines aren’t shown here.

arch/x86/xen/spinlock.c+4−4

This diff is large: its 28 lines aren’t shown here.

arch/x86/xen/time.c+4−4

This diff is large: its 29 lines aren’t shown here.

arch/xtensa/configs/common_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/configs/iss_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/configs/s6105_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/include/asm/ioctls.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/xtensa/include/asm/mman.h+3−0

This diff is large: its 10 lines aren’t shown here.

block/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

block/blk-cgroup.c+0−4

This diff is large: its 11 lines aren’t shown here.

block/blk-core.c+29−11

This diff is large: its 106 lines aren’t shown here.

block/blk-ioc.c+2−3

This diff is large: its 21 lines aren’t shown here.

block/blk-merge.c+2−1

This diff is large: its 14 lines aren’t shown here.

block/blk-throttle.c+9−1

This diff is large: its 17 lines aren’t shown here.

block/cfq-iosched.c+84−56

This diff is large: its 430 lines aren’t shown here.

block/genhd.c+520−30

This diff is large: its 631 lines aren’t shown here.

block/ioctl.c+3−2

This diff is large: its 15 lines aren’t shown here.

crypto/Kconfig+28−6

This diff is large: its 62 lines aren’t shown here.

crypto/Makefile+10−7

This diff is large: its 50 lines aren’t shown here.

crypto/af_alg.c+483−0

This diff is large: its 484 lines aren’t shown here.

crypto/algif_hash.c+319−0

This diff is large: its 320 lines aren’t shown here.

crypto/algif_skcipher.c+632−0

This diff is large: its 633 lines aren’t shown here.

crypto/authenc.c+4−18

This diff is large: its 57 lines aren’t shown here.

crypto/cast5.c+24−50

This diff is large: its 94 lines aren’t shown here.

crypto/crypto_wq.c+2−1

This diff is large: its 10 lines aren’t shown here.

crypto/deflate.c+1−2

This diff is large: its 14 lines aren’t shown here.

crypto/eseqiv.c+2−16

This diff is large: its 37 lines aren’t shown here.

crypto/gcm.c+2−17

This diff is large: its 38 lines aren’t shown here.

crypto/pcrypt.c+2−1

This diff is large: its 10 lines aren’t shown here.

crypto/rmd128.c+2−1

This diff is large: its 15 lines aren’t shown here.

crypto/rmd160.c+2−1

This diff is large: its 15 lines aren’t shown here.

crypto/rmd256.c+2−1

This diff is large: its 15 lines aren’t shown here.

crypto/rmd320.c+2−1

This diff is large: its 15 lines aren’t shown here.

crypto/shash.c+7−1

This diff is large: its 15 lines aren’t shown here.

crypto/tcrypt.c+11−0

This diff is large: its 25 lines aren’t shown here.

crypto/testmgr.c+24−0

This diff is large: its 38 lines aren’t shown here.

crypto/testmgr.h+361−0

This diff is large: its 382 lines aren’t shown here.

crypto/zlib.c+1−2

This diff is large: its 13 lines aren’t shown here.

drivers/Kconfig+6−0

This diff is large: its 25 lines aren’t shown here.

drivers/Makefile+5−3

This diff is large: its 32 lines aren’t shown here.

drivers/acpi/Kconfig+14−6

This diff is large: its 49 lines aren’t shown here.

drivers/acpi/Makefile+2−1

This diff is large: its 16 lines aren’t shown here.

drivers/acpi/ac.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/acpi_ipmi.c+525−0

This diff is large: its 526 lines aren’t shown here.

drivers/acpi/acpica/Makefile+1−1

This diff is large: its 9 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+1−1

This diff is large: its 9 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+12−11

This diff is large: its 77 lines aren’t shown here.

drivers/acpi/acpica/acglobal.h+9−2

This diff is large: its 41 lines aren’t shown here.

drivers/acpi/acpica/achware.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/acinterp.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/aclocal.h+8−7

This diff is large: its 42 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+12−6

This diff is large: its 55 lines aren’t shown here.

drivers/acpi/acpica/acopcode.h+1−1

This diff is large: its 9 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/acresrc.h+1−1

This diff is large: its 9 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/amlcode.h+2−8

This diff is large: its 27 lines aren’t shown here.

drivers/acpi/acpica/amlresrc.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/dsfield.c+1−1

This diff is large: its 9 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+48−16

This diff is large: its 126 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/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+11−3

This diff is large: its 29 lines aren’t shown here.

drivers/acpi/acpica/evgpe.c+177−92

This diff is large: its 489 lines aren’t shown here.

drivers/acpi/acpica/evgpeblk.c+19−16

This diff is large: its 93 lines aren’t shown here.

drivers/acpi/acpica/evgpeinit.c+22−5

This diff is large: its 75 lines aren’t shown here.

drivers/acpi/acpica/evgpeutil.c+40−1

This diff is large: its 55 lines aren’t shown here.

drivers/acpi/acpica/evmisc.c+54−40

This diff is large: its 144 lines aren’t shown here.

drivers/acpi/acpica/evregion.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/evrgnini.c+3−3

This diff is large: its 21 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+65−14

This diff is large: its 147 lines aren’t shown here.

drivers/acpi/acpica/evxfevnt.c+1−601

This diff is large: its 639 lines aren’t shown here.

drivers/acpi/acpica/evxfgpe.c+672−0

This diff is large: its 673 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+1−1

This diff is large: its 9 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+5−5

This diff is large: its 34 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+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/exfield.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/exfldio.c+1−1

This diff is large: its 9 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+1−1

This diff is large: its 9 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+1−1

This diff is large: its 9 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+20−14

This diff is large: its 98 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/hwxface.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsaccess.c+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/acpi/acpica/nsalloc.c+12−3

This diff is large: its 50 lines aren’t shown here.

drivers/acpi/acpica/nsdump.c+16−1

This diff is large: its 41 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+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/nsinit.c+1−3

This diff is large: its 19 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsrepair.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/nsrepair2.c+1−1

This diff is large: its 9 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+3−4

This diff is large: its 22 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psloop.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/acpica/psopcode.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/psparse.c+9−18

This diff is large: its 50 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+1−1

This diff is large: its 9 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+4−5

This diff is large: its 36 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rscreate.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rsdump.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rsinfo.c+1−1

This diff is large: its 9 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rslist.c+1−1

This diff is large: its 9 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+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rsutils.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/rsxface.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/acpica/tbfadt.c+1−1

This diff is large: its 9 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+1−1

This diff is large: its 9 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/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/utdelete.c+1−1

This diff is large: its 9 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+3−2

This diff is large: its 26 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+1−1

This diff is large: its 9 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+2−1

This diff is large: its 17 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+1−1

This diff is large: its 9 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+1−1

This diff is large: its 9 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/apei/apei-internal.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/apei/cper.c+311−0

This diff is large: its 318 lines aren’t shown here.

drivers/acpi/apei/einj.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/apei/erst.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/apei/ghes.c+343−88

This diff is large: its 608 lines aren’t shown here.

drivers/acpi/apei/hest.c+11−15

This diff is large: its 52 lines aren’t shown here.

drivers/acpi/battery.c+15−0

This diff is large: its 36 lines aren’t shown here.

drivers/acpi/bus.c+81−72

This diff is large: its 223 lines aren’t shown here.

drivers/acpi/button.c+7−2

This diff is large: its 37 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.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/acpi/fan.c+7−20

This diff is large: its 63 lines aren’t shown here.

drivers/acpi/glue.c+1−4

This diff is large: its 13 lines aren’t shown here.

drivers/acpi/internal.h+11−2

This diff is large: its 30 lines aren’t shown here.

drivers/acpi/numa.c+8−2

This diff is large: its 21 lines aren’t shown here.

drivers/acpi/nvs.crenamed from kernel/power/nvs.c+14−5

This diff is large: its 48 lines aren’t shown here.

drivers/acpi/osl.c+32−16

This diff is large: its 123 lines aren’t shown here.

drivers/acpi/pci_root.c+35−0

This diff is large: its 63 lines aren’t shown here.

drivers/acpi/power.c+72−56

This diff is large: its 223 lines aren’t shown here.

drivers/acpi/proc.c+12−29

This diff is large: its 71 lines aren’t shown here.

drivers/acpi/processor_core.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/acpi/processor_driver.c+6−74

This diff is large: its 148 lines aren’t shown here.

drivers/acpi/processor_idle.c+14−20

This diff is large: its 114 lines aren’t shown here.

drivers/acpi/processor_throttling.c+73−117

This diff is large: its 243 lines aren’t shown here.

drivers/acpi/sbs.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/scan.c+43−27

This diff is large: its 180 lines aren’t shown here.

drivers/acpi/sleep.c+15−8

This diff is large: its 86 lines aren’t shown here.

drivers/acpi/sysfs.c+17−2

This diff is large: its 54 lines aren’t shown here.

drivers/acpi/thermal.c+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/acpi/video.c+16−90

This diff is large: its 194 lines aren’t shown here.

drivers/acpi/video_detect.c+4−48

This diff is large: its 83 lines aren’t shown here.

drivers/acpi/wakeup.c+16−10

This diff is large: its 56 lines aren’t shown here.

drivers/amba/bus.c+39−0

This diff is large: its 67 lines aren’t shown here.

drivers/ata/Kconfig+19−11

This diff is large: its 63 lines aren’t shown here.

drivers/ata/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/ata/acard-ahci.c+528−0

This diff is large: its 529 lines aren’t shown here.

drivers/ata/ahci.c+3−0

This diff is large: its 17 lines aren’t shown here.

drivers/ata/ahci.h+3−0

This diff is large: its 17 lines aren’t shown here.

drivers/ata/libahci.c+5−6

This diff is large: its 47 lines aren’t shown here.

drivers/ata/libata-core.c+4−3

This diff is large: its 35 lines aren’t shown here.

drivers/ata/libata-scsi.c+43−41

This diff is large: its 292 lines aren’t shown here.

drivers/ata/libata-sff.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/pata_hpt366.c+31−24

This diff is large: its 114 lines aren’t shown here.

drivers/ata/pata_hpt37x.c+154−104

This diff is large: its 465 lines aren’t shown here.

drivers/ata/pata_hpt3x2n.c+103−51

This diff is large: its 296 lines aren’t shown here.

drivers/ata/pata_mpc52xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ata/sata_vsc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/ambassador.c+12−7

This diff is large: its 50 lines aren’t shown here.

drivers/atm/fore200e.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/idt77105.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/idt77252.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/atm/iphase.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/atm/lanai.c+2−5

This diff is large: its 14 lines aren’t shown here.

drivers/atm/solos-pci.c+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/base/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/base/base.h+25−37

This diff is large: its 91 lines aren’t shown here.

drivers/base/bus.c+7−8

This diff is large: its 57 lines aren’t shown here.

drivers/base/class.c+21−21

This diff is large: its 151 lines aren’t shown here.

drivers/base/core.c+52−13

This diff is large: its 173 lines aren’t shown here.

drivers/base/node.c+18−3

This diff is large: its 39 lines aren’t shown here.

drivers/base/power/generic_ops.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/base/power/main.c+63−113

This diff is large: its 420 lines aren’t shown here.

drivers/base/power/runtime.c+44−12

This diff is large: its 117 lines aren’t shown here.

drivers/base/power/wakeup.c+10−10

This diff is large: its 37 lines aren’t shown here.

drivers/block/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/block/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/block/aoe/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/block/aoe/aoecmd.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/block/cciss.c+12−13

This diff is large: its 89 lines aren’t shown here.

drivers/block/cciss.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/block/cciss_cmd.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/drbd/drbd_int.h+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/block/drbd/drbd_main.c+2−5

This diff is large: its 14 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.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t